Сжатие и снятие сжатия изображения

Иллюстрации

Показать все

Изобретение относится к области обработки изображений, и в частности к способам и устройствам для сжатия и снятия сжатия (декомпрессии) изображения. Техническим результатом является обеспечение ослабления артефактов сжатия. Указанный технический результат достигается тем, что кластеры пикселей задаются для использования при сжатии и снятии сжатия изображения, при этом информация изображения, используемая для задания кластеров, может включать в себя значения пикселя в заранее определенной позиции относительно пикселя или соответствующие векторы движения, градиенты, текстуру и т.д. В процессе сжатия изображений информация изображения относительно пикселей исследуется для определения кластера, которому он принадлежит. Для каждого кластера набор параметров управления вычисляется для операции пост-обработки, например коэффициенты фильтра для фильтрации или статистические данные для локальной генерации текстуры, при этом набор параметров управления выбирается в зависимости от контента изображения. Сжатое изображение и наборы параметров управления передаются на устройство снятия сжатия. После снятия сжатия информация изображения, которая представляет изображение со снятым сжатием, исследуется для классификации пикселей согласно кластерам, и разные наборы параметров управления для выбранных кластеров используются для управления пост-обработкой в положениях пикселей. 4 н. и 10 з.п. ф-лы, 30 ил.

Реферат

Область техники

Изобретение относится к способам и устройствам для сжатия и снятия сжатия изображения.

Уровень техники

Способы сжатия изображения с потерями известны, в контексте сжатия, как видеосигнала, так и отдельных изображений. Наиболее яркими примерами являются способы, заданные в различных стандартах сжатия/снятия сжатия MPEG и JPEG, которые включают в себя грубое квантование данных изображения. Эти способы сжатия с потерями привносят артефакты, т.е. различия между исходными изображениями и реконструированными изображениями, полученными после сжатия и снятия сжатия.

Способ уменьшения этих различий описан в публикации под названием "Post filter SEI message for 4:4:4 coding", авторы S. Wittmann и T. Wedi, на 18-й встрече Joint Video Team (JVT) ISP/IEC MPEG и ITU-T VCEG (документ № JVT S030).

В этой публикации предлагается добавлять в видеопоток MPEG сообщения, задающие коэффициенты фильтра для пост-фильтра КИХ (с конечной импульсной характеристикой), который необходимо применять к декодированным изображениям на стороне декодера для ослабления артефактов сжатия. Используется фильтрация по Винеру, т.е. задается статистическая мера различия между исходным изображением и пост-фильтрованным изображением со снятым сжатием, и коэффициенты фильтра выбираются так, чтобы минимизировать значение этой меры. Это означает, что значения коэффициентов фильтра зависят от контента изображения. Коэффициенты фильтра вычисляются в кодере и включаются в видеопоток. Декодер извлекает коэффициенты из потока и применяет пост-фильтрацию с использованием извлеченных коэффициентов.

К сожалению, этот тип пост-фильтрации обеспечивает лишь частичное ослабление артефактов сжатия.

Сущность изобретения

Помимо прочего, задачей изобретения является обеспечение способа ослабления артефактов сжатия.

Предусмотрено устройство снятия сжатия по п.1 формулы изобретения. Здесь, для каждого из совокупности пикселей в изображении со снятым сжатием, пиксели классифицируются на основании контента изображения в соответствующем окне относительно пикселя. Классификация используется для выбора набора параметров управления из совокупности наборов параметров управления, которые были переданы с изображением. Выбранный набор параметров управления используется для управления пост-обработкой для пикселей. Таким образом, это позволяет использовать различную пост-обработку на разных пикселях в изображении. На пикселях, где обнаружены разные классы признаков, можно использовать, например, разные наборы параметров управления для пост-фильтрации. Аналогично, при возникновении градиентов в разных направлениях можно использовать разные наборы параметров управления для пост-фильтрации.

В рамках изобретения "пост-фильтрация" и "пост-обработка" включают в себя фильтрацию и обработку после полного декодирования изображения, т.е. после процесса полного декодирования. Изображения часто декодируются с использованием циклического процесса, в котором после начального декодирования осуществляется циклический процесс для получения конечного декодированного изображения. Затем конечное декодированное изображение фильтруется вне цикла. Такие "внецикловые" варианты осуществления изобретения образуют группу предпочтительных вариантов осуществления.

Согласно изобретению предусмотрено также применение внутрицикловых фильтров, например внутрицикловое применение фильтров снятия разбиения на блоки. Затем "пост-фильтрация" применяется в цикле после этапа начального декодирования. Такие "внутрицикловые" варианты осуществления изобретения также образуют группу предпочтительных вариантов осуществления.

Согласно варианту осуществления наборы параметров управления мультиплексируются в поток изображения совместно со сжатым изображением. Альтернативно, наборы параметров управления и сжатые изображения можно подавать на устройство снятия сжатия по отдельности, например на отдельные субвходы входа устройства снятия сжатия, когда пользователь устройства снятия сжатия подписан на прием изображения для применения пост-обработки.

Согласно варианту осуществления пост-обработка содержит фильтрацию с помощью фильтра, например фильтра с конечной импульсной характеристикой, причем коэффициенты фильтра задаются набором параметров управления. Но, альтернативно, можно использовать другие формы пост-обработки, например локальные добавления текстуры, причем статистические параметры задаются набором параметров управления.

Предусмотрено устройство сжатия по п.8. Это устройство сжатия выбирает наборы параметров управления для разных классов и добавляет их к сжатому сигналу изображения. Согласно варианту осуществления устройство сжатия также выбирает определение класса в зависимости от контента изображения и добавляет его в сжатый сигнал изображения. Определение класса может содержать, например, репрезентативные векторы значений пикселя в окнах изображения со снятым сжатием. Согласно варианту осуществления совокупность наборов параметров управления вычисляется, в целом, для совокупности входных изображений. Таким образом, набор параметров управления можно повторно использовать для разных изображений. Это уменьшает полосу, необходимую для сжатого сигнала. Наборы параметров управления можно выбирать в зависимости от различия между входным изображением и изображением со снятым сжатием, заданным сигналом изображения со снятым сжатием, для задания операций пост-обработки, которые определяют это различие.

Краткое описание чертежей

Эти и другие задачи и преимущественные аспекты явно следуют из иллюстративных вариантов осуществления, которые описаны ниже с использованием следующих фигур.

Фиг.1 - устройство сжатия.

Фиг.2 - устройство снятия сжатия.

Фиг.3 - вариант осуществления пост-фильтра.

Фиг.3a - кластеризация пикселей.

Фиг.3b и 3c - положительный эффект.

Фиг.4 - устройство снятия сжатия.

Фиг.5 - схема блока 16 оценки параметров.

Фиг.6 - пост-процессор.

Фиг.7 - система сжатия/снятия сжатия.

Фиг.8 - устройство сжатия.

Фиг.9 - устройство снятия сжатия.

Фиг.10 - система сжатия/снятия сжатия.

Фиг.11 - вариант осуществления, в котором градиенты используются в качестве критериев выбора.

Фиг.12 - позиции центров кластера при использовании градиентов в качестве критериев выбора.

Фиг.13 - преимущества использования градиентов в качестве критериев выбора.

Фиг.14 - иерархическая структура.

Фиг.15a, 15b и 15c - еще один вариант осуществления с использованием функции снятия разбиения на блоки.

Фиг.16 - иллюстративные условия, используемые для принятия решения, соседствуют ли пиксели p0 и q0 с краем подблока BE.

Фиг.17 - измерения снижения битовой скорости.

Фиг.18 - еще один вариант осуществления.

Фиг.19 - шаблоны, демонстрирующие поворотную симметрию.

Фиг.20 - шаблоны, демонстрирующие сдвиговую симметрию.

Фиг.21 - шаблоны, демонстрирующие зеркальную симметрию.

Фиг.22a-22c - примеры шаблонов, демонстрирующих инвариантность к преобразованиям.

Фиг.23 - структура сигнала.

Подробное описание вариантов осуществления

На фиг.1 показано устройство сжатия. Устройство сжатия содержит вход 10 потока, блок 12 сжатия, блок 14 снятия сжатия, блок 16 оценки параметров, мультиплексор 18 потока и выход 19 сжатого потока. Блок 12 сжатия имеет вход, связанный с входом 10 потока, и выход, связанный с мультиплексором 18 потока. Блок 14 снятия сжатия имеет вход, связанный с выходом блока 12 сжатия. Блок 16 оценки параметров имеет входы, связанные с входом 10 потока и с входом блока 14 снятия сжатия. Блок 16 оценки параметров имеет выход, связанный с мультиплексором 18 потока для обеспечения параметрических данных 17. Мультиплексор 18 потока имеет выход, связанный с выходом 19 сжатого потока.

На фиг.2 показано устройство снятия сжатия. Устройство снятия сжатия содержит вход 20 сжатого потока, демультиплексор 22 потока, блок 24 снятия сжатия, пост-фильтр 26 и выход 28 со снятым сжатием. Демультиплексор 22 потока имеет вход, связанный с входом 20 сжатого потока, и выходы, связанные с входом блока 24 снятия сжатия и входом управления пост-фильтра 26. Пост-фильтр 26 имеет вход сигнала, связанный с выходом блока 24 снятия сжатия, и выход, связанный с выходом сжатого потока.

На обеих фигурах показаны только компоненты, имеющие отношение к сжатию и снятию сжатия изображения. Следует понимать, что могут присутствовать и другие компоненты, например, для сжатия и снятия сжатия аудиосигнала, управления данными и т.д. Кроме того, следует учесть, что разные компоненты можно реализовать с использованием одной или нескольких программируемых схем обработки, программируемых программой, в соответствии с которой схема обработки действует как соответствующий компонент. Одну программируемую схему обработки можно использовать для работы в качестве разных компонентов под управлением разных программ или можно использовать разные схемы обработки. В качестве альтернативны, компоненты можно реализовать с использованием специализированных схем или как сочетание программируемых и специализированных схем.

В ходе работы устройство сжатия создает сжатый поток, и сжатый поток поступает на устройство снятия сжатия. Можно использовать любой способ связи. Например, сжатый поток из устройства сжатия можно рассылать или передавать в режиме двухточечной связи через любую среду (не показана) и подавать на устройство снятия сжатия или его можно сохранять в запоминающем устройстве и подавать на устройство снятия сжатия из запоминающего устройства. Конечно, можно использовать любое сочетание сохранения и рассылки или передачи.

Блок 12 сжатия и блоки 14, 24 снятия сжатия осуществляют сжатие и соответствующее снятие сжатия изображений. Можно использовать любую форму сжатия и снятия сжатия, например согласно любому стандарту MPEG. Мультиплексор 18 потока объединяет сжатые данные изображения с любыми другими нужными данными в сжатый поток. Демультиплексор 22 потока извлекает сжатые данные изображения и выдает извлеченные данные на блок 24 снятия сжатия. Блок снятия сжатия снимает сжатие данных изображения и выдает данные изображения со снятым сжатием на пост-фильтр 26. Пост-фильтр 26 фильтрует данные и выводит фильтрованные данные изображения, которые можно использовать, например, для управления устройством отображения (не показано) для визуализации изображения на экране.

Хотя были показаны мультиплексор 18 и демультиплексор 22, так что сжатое изображение и наборы параметров управления для пост-обработки этого изображения могут быть объединены в одном сигнале изображения, следует учесть, что сжатое изображение и наборы параметров управления также можно обеспечивать по отдельности, например обеспечивая устройства сжатия и устройства снятия сжатия отдельными субвыходами и субвходами для этих сигналов. Недостаток этой схемы в том, что требуется более сложный способ передачи сигналов, но она имеет преимущество, что наборы параметров управления можно пропустить, когда они не нужны, например сжатое изображение предоставляется абонентам с возможностью пост-обработки или без нее.

Пост-фильтрация

Блок 16 оценки параметров выбирает параметры для управления пост-фильтрацией посредством пост-фильтра 26. Блок 16 оценки параметров выдает выбранные параметры на мультиплексор 18 потока, который добавляет параметры в сжатый поток. Демультиплексор 22 потока извлекает параметры и выдает извлеченные параметры на пост-фильтр 26. Пост-фильтр 26 использует параметры для управления пост-фильтрацией.

На фиг.3 показан вариант осуществления пост-фильтра. В этом варианте осуществления пост-фильтр содержит блок 30 оконного сбора, блок 32 выбора кластера, память 34 задания кластера, память 36 коэффициентов, интерфейс управления 38 и КИХ-фильтр 39. Блок 30 оконного сбора связан с выходом блока снятия сжатия (не показан) и имеет выход, связанный с КИХ-фильтром 39. Блок 32 выбора кластера имеет входы, связанные с выходом блока 30 оконного сбора и памяти 34 задания кластера. Блок 32 выбора кластера имеет выход, связанный с входом памяти 36 коэффициентов. Память 36 коэффициентов имеет выход, связанный с входом коэффициентов КИХ-фильтра 39. Интерфейс управления 38 имеет вход для приема данных управления из демультиплексора потока (не показан) и выходы, связанные с памятью 34 задания кластера и памяти 36 коэффициентов. Хотя различные элементы, показанные на фиг.1, например блок памяти 34, 36, изображены как части пост-фильтра 26, следует понимать, что их также можно рассматривать как отдельные части устройства снятия сжатия, не входящие в состав пост-фильтра.

В ходе работы блок 30 оконного сбора собирает значения пикселя для положений пикселя в движущемся окне положений пикселя в изображении (например, в окне положений пикселя 3×3). Блок 30 оконного сбора подает значения пикселя для окна на КИХ-фильтр 39. КИХ-фильтр 39 вычисляет выходное значение пикселя как сумму произведений значений пикселя и коэффициентов фильтра. Каждое произведение вычисляется для соответствующего положения в окне на основании значения пикселя и коэффициента фильтра, связанного с этим положением. Сумму произведений можно нормализовать и выводить как пост-фильтрованное значение пикселя для положения пикселя, соответствующего положению окна. Это повторяется для ряда положений окна, для создания выходных значений пикселя для ряда положений пикселя в заранее определенных относительных позициях в отношении положений окна (например, выходных положений пикселя в центральных точках окон 3×3, но можно использовать другие заранее определенные относительные позиции).

Блок 32 выбора кластера и память 36 коэффициентов управляют коэффициентами, которые используются КИХ-фильтром 39. Информация в памяти 34 задания кластера задает совокупность кластеров, каждый из которых соответствует набору возможных комбинаций значений пикселя в окне. В памяти 36 коэффициентов хранится соответствующий набор коэффициентов фильтра для каждого кластера. Блок 32 выбора кластера принимает комбинацию значений пикселя в текущем окне, которая была создана блоком снятия сжатия (не показан), и на основании этих значений пикселя блок 32 выбора кластера классифицирует контент окна, т.е. определяет кластер, которому принадлежит эта комбинация. Блок 32 выбора кластера использует идентификацию этого кластера для адресации памяти 36 коэффициентов, и в ответ память 36 коэффициентов выдает соответствующий набор коэффициентов фильтра на КИХ-фильтр 39. Это повторяется для ряда положений окна. Таким образом, для каждого положения окна значения пикселя фильтруются согласно классификации положения окна (кластеру, выбранному для положения окна) для создания выходного значения пикселя для соответствующего положения пикселя.

Согласно варианту осуществления в памяти 34 задания кластера хранятся репрезентативные комбинации значений пикселя для каждого кластера. В этом варианте осуществления кластеры задаются расстоянием до этих репрезентативных комбинаций. Любая данная комбинация значений пикселя находится на разных расстояниях до репрезентативных комбинаций значений пикселя. Данная комбинация принадлежит тому из кластеров, который находится на минимальном расстоянии от репрезентативной комбинации.

В этом варианте осуществления блок 32 выбора кластера классифицирует, определяя репрезентативную комбинацию на наименьшем расстоянии. В еще одном варианте осуществления для задания кластеров используется только яркостный компонент значений пикселя. Таким образом, например, если используются окна 3×3, то каждая репрезентативная комбинация содержит девять значений яркости:

(Y1(j), Y2(j), …, Y9(j)).

Здесь "j" является указателем кластера. В этом варианте осуществления блок 32 выбора кластера принимает значения яркости (L1, L2, …, L9) для положений пикселя в текущем окне и выбирает кластер j, который минимизирует расстояние

|L1-Y1(j)| + |L2-Y2(j)|+ … + |L9-Y9(j)|

(| | обозначает абсолютное значение). В этом варианте осуществления блок 32 выбора кластера использует индекс j для выбора набора коэффициентов фильтра.

На фиг.3a показан пример, в котором для нахождения коэффициентов фильтра в сцене выбирается несколько ключевых кадров. Вектором признака для кластеризации является яркость в локальном окне 3×3 вокруг пикселя, как объяснено выше. В верхней строке на фиг.3a находятся исходные кадры, а в нижней строке -декодированные кадры. Элементы нескольких кластеров указаны в нижней строке. Кластеры содержат области или пиксели со сходными шаблонами. В этом примере используется 20 кластеров. На фиг.3a показано, что сходные шаблоны объединяются в кластеры. Кластеры рассеяны по изображению, что часто имеет место, поскольку кластеры образованы сходными шаблонами по изображениям. Алгоритмы кластеризации могут опираться на разные схемы и формулы для отыскания сходных шаблонов. В этом примере алгоритм базируется на значениях яркости.

На фиг.3b показан положительный эффект для этой сцены. На графике средняя PSNR-Y является мерой искажения. Кривая A представляет значение PSNR-Y для декодированного сигнала; кривая B представляет значение PSNR-Y после применения кластеризации и применения адаптивного фильтра. Средняя PSNR-Y возрастает с 32,38 дБ до 32,89 дБ, т.е. улучшение составляет 0,5 дБ.

Следует отметить, что изменение сцены присутствует вокруг кадра 315 и после изменения упомянутой сцены кластеризация предыдущей сцены уже не является оптимальной. Обнаружение ухудшения можно использовать для динамического обновления выбора кластера и соответствующих коэффициентов фильтра. В автономном сценарии возможное изменение сцены может заранее определяться разбиением сцены.

На фиг.3c показано увеличение значения PSNR-Y для видеосигнала, кодированного согласно H.264, как функции битовой скорости. На всех битовых скоростях присутствует заметное увеличение значения PSNR-Y.

На фиг.3d показано увеличение значения PSNR-Y как функции количества кластеров. Предпочтительное количество кластеров равно 5 или более, наиболее предпочтительно менее 30. При увеличении количества кластеров возрастает вычислительная нагрузка, тогда как дополнительный коэффициент усиления уменьшается.

В этом примере для одной сцены видео функция пост-обработки включает в себя 40 чисел с плавающей точкой (центры кластера и коэффициенты фильтра). Эту информацию можно дополнительно квантовать и энтропийно кодировать для дальнейшего снижения битовых затрат. С учетом объема кадров изображения, принадлежащих одной сцене, которые могут подвергаться пост-обработке с помощью одних и тех же данных, этими дополнительными затратами можно пренебречь в практическом смысле, тогда как преимущество является ощутимым и измеримым.

Следует подчеркнуть, что этот вариант осуществления является всего лишь примером. Можно использовать любой другой способ задания кластеров. Например, значения пикселей из разных положений в окне можно по-разному взвешивать при вычислении расстояния или цветовые компоненты можно по-разному взвешивать (например, с использованием только одного цветового компонента на кластер). Вместо суммы абсолютных значений можно использовать, например, сумму квадратов.

Вместо расстояния до набора значений яркости можно использовать расстояние до набора скалярных произведений комбинаций значений яркости со стандартными векторами значений яркости и т.д. Вместо репрезентативных векторов для отдельных кластеров можно использовать систему опорных векторов для управления выбором между группами кластеров вдоль дерева принятия решения. Вместо репрезентативных векторов можно обеспечивать разностные векторы для выбора между кластерами или группами кластеров и т.д. Здесь понятие "классификация вектора" применяется к любому такому типу классификации, независимо от того, осуществляется ли классификация путем первоначального группирования релевантных компонентов вектора в вектор или просто путем учета компонентов: в контексте "классификации" термин "вектор" используется для указания того, что для классификации используется некоторое количество компонентов. Соответственно, блок 32 выбора кластера может использовать другие способы для выбора кластера и компонента "векторов кластера", которые используются в классификации.

Хотя был описан вариант осуществления, в котором кластер выбирается посредством значений со снятым сжатием Y1, Y2, … для окна положений соседнего пикселя, очевидно, что, альтернативно, можно использовать значения сигнала для других комбинаций положений. Например, вместо комбинации отдельных значений пикселя из окна 3×3 можно использовать комбинацию средних значений пикселя, каждое из которых соответствует одному из набора блоков положений пикселя. Например, блоки 8×8 пикселей в окне 3×3 таких блоков. В качестве другого примера, вместо комбинации отдельных значений пикселя из окна 3×3 для выбора кластера можно использовать субдискретизированные значения из заранее определенных несоседних положений относительно текущего положения пикселя.

В качестве дополнительного примера, для вывода классов можно использовать следующие этапы.

1. Все окна M×M соседства каждого пикселя из подмножества декодированных кадров, составляющих данную информацию изображения, извлекаются из информации изображения. Каждое окно представлено вектором признака x', состоящим из его яркости. Вектор можно нормировать путем вычитания из каждого вектора среднего значения всех компонентов. Таким образом, окно 4×4 вокруг пикселя представлено 16-мерным вектором со значениями 0 … 255 (для 256 цветов) по всем его осям. Окно 5×5 представлено 25-мерным вектором и т.д.

2. Векторы признака дискретизируются в заранее заданное количество классов N, так что суммарная дисперсия в классе выражается как

.

Согласно вышесказанному, существует всего N классов Ci (1≤i≤N), x' является выборкой 16- или 25-мерного вектора (для окон 4×4 и 5×5 соответственно) и µi' является вектором математического ожидания всех векторов x', принадлежащих классу Ci. Такую классификацию можно легко реализовать с использованием итерационного подхода. Это позволяет найти центр каждого класса или кластера, причем кластер и класс означают одно и то же, т.е. совокупность элементов. Этот центр сохраняется для представления класса. Векторы, ближайшие к каждому центру, образуют часть кластера или класса. В этом примере используется сумма квадратов, в предыдущем примере использовалась сумма абсолютных значений. В каждом примере используется всего N классов.

3. Для каждого идентифицированного класса определяются коэффициенты фильтра. Применение фильтра для декодированных кадров обеспечивает новое значение пикселя p" для каждого пикселя в декодированном кадре низкого разрешения, причем p" определяется на основании M×M соседства пикселя. Целью является минимизация СКО (среднеквадратической ошибки) между предсказанным значением p" и соответствующим исходным значением пикселя p для всех выборок в каждом классе.

Это можно рассматривать как стандартную задачу наименьших квадратов, которую можно решить с помощью линейной регрессии с несколькими переменными или другими известными методами решения задач наименьших квадратов.

С использованием фильтров на основании окна 5×5 и общего количества 5 классов были найдены типичные улучшения в значениях PSNR-Y по сравнению с другими известными методами, составляющие около 1 дБ.

Кроме того, окно, используемое для выбора кластера, не обязано быть таким же, как окно, используемое в КИХ-фильтре. Хотя предпочтительно, чтобы эти окна, по меньшей мере, перекрывались, так что выбранные коэффициенты фильтра для положения пикселя зависят от ближнего контекста этого положения, кластер также можно выбирать на основании окна, которое не перекрывается с окном, используемым КИХ-фильтром.

Кроме того, для классификации положений можно использовать векторы движения вместо значений пикселя (или дополнительно к ним). Как известно само по себе, изображение в видеопотоке можно кодировать посредством векторов движения для блоков пикселей, которые задают для каждого блока положение блока в другом изображении, из которого значение пикселя должно быть скопировано в блок. Согласно варианту осуществления векторы движения совокупности блоков в заранее определенных положениях относительно положения пикселя можно использовать для присвоения положения пикселя кластеру. Это можно сделать по аналогии с кластеризацией согласно значению пикселя.

На фиг.4 показан вариант осуществления, в котором блок 24 снятия сжатия содержит блок 240 снятия сжатия изображения, блок 242 извлечения вектора движения и память 244 опорного изображения. Здесь блок 242 извлечения вектора движения извлекает векторы движения из входящей видеоинформации и выдает извлеченные векторы движения на блок 240 снятия сжатия изображения для указания, откуда из памяти 244 опорного изображения нужно считывать блоки пикселей. К тому же извлеченные векторы движения поступают на блок 32 выбора кластера, который использует разности векторов движения между "вектором векторов движения" для блоков в заранее определенных позициях относительно положения пикселя с репрезентативными векторами векторов движения для разных кластеров. Конечно, выбор кластера на основании векторов движения также можно осуществлять способами, отличными от определения разностей с репрезентативными векторами. Кроме того, следует понимать, что для кластеризации можно использовать векторы движения для движения к изображению и/или векторы для движения от изображения. Кроме того, хотя предпочтительно использовать кодированные векторы движения из видеопотока, следует учесть, что альтернативно можно использовать векторы движения, которые определяются заранее определенным способом из контента изображения для изображений в видеопотоке.

В другом варианте осуществления блок выбора 32 может использовать разности с репрезентативными векторами, которые содержат как значения пикселя, так и векторы движения, причем разные весовые коэффициенты можно использовать для разных компонентов репрезентативных векторов при определении разности.

Следует заметить, что используемые кластеры представляют собой кластеры в пространстве возможных комбинаций значений пикселя в окне, но не кластеры положений пикселя. На практике наблюдается, что комбинации значений пикселя для окон в соседних положениях окна часто приводят к одному и тому же выбору кластера, но это не задает кластеры. Эта форма пост-фильтрации хорошо работает, даже когда область изображения имеет положения окна, которым в основном присвоен один кластер, многим положениям окна в этой области присвоены разные кластеры. Наконец, имеет значение именно фильтрованное значение пикселя, а не кластер, который был использован для его получения.

Кроме того, хотя КИХ-фильтр 39 использовался в качестве примера, следует учесть, что вместо него можно использовать фильтр другого типа. Например, можно использовать нелинейный фильтр или рекурсивный фильтр, выходной сигнал которого зависит от выходного сигнала фильтра для одного или нескольких соседних положений. Кроме того, конечно, можно использовать окно любого другого размера, кроме 3×3, например окно размером 3×1 (три положения пикселя по горизонтали и одно по вертикали).

В предыдущих примерах информация, которая задает изображения, например значения пикселя, векторы движения и т.д., была использована для выбора кластеров. Кроме того, в сжатый сигнал изображения также можно включить информацию явного выбора кластера. Это увеличивает размер сигнала, но это может помочь в упрощении классификации. Согласно варианту осуществления такие сигналы явного выбора кластера могут представлять собой только информацию, используемую устройством снятия сжатия для выбора кластеров.

Можно использовать любую удобную реализацию компонентов пост-фильтра. В одном примере пост-фильтр использует полное сохраненное изображение в памяти, и блок 30 оконного сбора извлекает значения пикселя для окна из памяти. В другом варианте осуществления блок 30 оконного сбора только буферизует значения пикселя из достаточного количества строк изображения для обеспечения значений пикселя для окон. Разные компоненты можно реализовать с использованием одной или нескольких программируемых схем обработки, программируемых программой, в соответствии с которой схема обработки действует как соответствующий компонент. Одну программируемую схему обработки можно использовать для работы в качестве разных компонентов под управлением разных программ или можно использовать разные схемы обработки. В качестве альтернативы, компоненты можно реализовать с использованием специализированных схем или как сочетание программируемых и специализированных схем.

Как показано, пост-фильтр 26 и связанный компонент являются частью полного устройства снятия сжатия. Однако очевидно, что его можно реализовать в отдельном устройстве. Согласно варианту осуществления такое устройство можно использовать как интерфейс между мобильным устройством, например мобильным телефоном, и устройством отображения более высокого качества (например, телевизионным монитором). В другом варианте осуществления устройство снятия сжатия может повторно сжимать результат пост-фильтрации для генерации видеопотока повышенного качества.

Оценка параметров

На фиг.5 показана схема блока 16 оценки параметров. Блок 16 оценки параметров содержит блок кластеризации 40, блок 42 оконного сбора, блок 44 выбора коэффициента и выходной интерфейс 46. Блок 44 выбора коэффициента имеет входы, связанные с входом 10 потока и блока 14 снятия сжатия, причем последний - через блок 42 оконного сбора, и вход управления, связанный с блоком кластеризации 40.

В ходе работы блок 44 выбора коэффициента выбирает наборы коэффициентов фильтра для соответствующих кластеров. Для каждого кластера можно выбрать набор коэффициентов, который минимизирует усредненную меру разности между значениями пикселя со входа 10 потока и значениями пикселя, полученными с использованием набора коэффициентов фильтра, для пост-фильтрации результатов сжатия и снятия сжатия, полученных на блоке 12 сжатия и блоке 14 снятия сжатия. Усредненная мера разности усредняется по положениям пикселя, которые присвоены одному и тому же кластеру. Например, можно использовать среднеквадратичную разность, но можно использовать любую другую меру, например статистическую меру перцепционной разности. Методы выбора наборов коэффициентов, которые минимизируют усредненную меру для данного набора пикселей, как таковые известны.

Блок кластеризации 40 определяет, каким кластерам присваивать пиксели. Это может быть сделано в соответствии с выбором кластера на устройстве снятия сжатия. Согласно варианту осуществления блок кластеризации 40 также выбирает кластеры. Можно использовать любой метод кластеризации (в отношении кластеризации понимается не только слепой поиск разделенных кластеров, но и работа по классификации на заранее заданные кластеры). С использованием совокупности разных кластеров, объединенных с наборами коэффициентов фильтра, которые минимизируют разность между результатами пост-фильтрации и исходным значением пикселя в соответствующих кластерах, можно гарантировать, что полная мера разности (например, сумма квадратов разностей) между пост-фильтрованным изображением и исходным изображением меньше, чем полученная при условии, что единый набор коэффициентов фильтра используется для всего изображения. Это уменьшает общую разность уже для произвольно выбранных кластеров. Однако в некоторых вариантах осуществления кластеры выбираются для оптимизации снижения разности. Выбор кластера можно осуществлять до выбора коэффициентов фильтра для кластеров или совместно с выбором коэффициента фильтра.

Общий принцип изобретения базируется на анализе того, какого рода структура присутствовала в исходном изображении и как можно улучшить сжатую версию на стороне декодера (например, чтобы оно выглядело более похожим на исходное; или, в целом, имело более высокое качество изображения, например резкость) путем применения конкретного одного из набора оптимизированных/обученных фильтров изображения, при этом коэффициенты/параметры упомянутых фильтров добавляются в сигнал. Лишь некоторые дополнительные данные нужно передавать для задания этих фильтров; и, например, пару положений изображения, где применяются некоторые из них.

Возможны многочисленные варианты этих принципов изобретения, и некоторые из них описаны ниже, причем такие варианты могут улучшать существующие схемы кодирования, например H265.

В общем случае, можно просто классифицировать все возникающие структуры на несколько классов (например, край, высокочастотную горизонтальную текстуру, …), но, в более широкой трактовке принципов изобретения, классификацию следует осуществлять более структурированным/иерархическим параметрическим способом, включающим в себя иерархическое структурирование, например первоначальное нахождение того, какой тип классификации наиболее пригоден, с последующим осуществлением классификации, или также повторную классификацию или другую классификацию, например выбор кластеров и соответствующего фильтра или параметров пост-обработки можно осуществлять итерационно.

На первом этапе можно задать кластеры, после чего задать параметры пост-обработки, связанные с кластерами.

Эта схема, в целом, обеспечивает хороший результат, но в рамках изобретения можно применять итерационные процессы, например нахождение предварительной кластеризации, нахождение наборов параметров фильтра для предварительных кластеров, уточнение кластеризации для нахождения более подходящих кластеров, уточнение наборов параметров фильтра и т.д.

Вот несколько возможных итерационных процессов.

- Первоначально всем элементам в кластере присваивают одинаковый вес для определения параметров пост-обработки. После определения начальных наборов параметров и соответствующих центров кластера обеспечивают начальный результат для средней разности между исходными значениями пикселя и значениями пикселя после пост-обработки, затем каждому элементу в кластере назначают переменные весовые коэффициенты, например в заранее определенном, но регулируемом режиме в зависимости от меры расстояния до центра кластера. С использованием таких весовых коэффициентов пересчитывают коэффициенты фильтра; если результат улучшается, процесс неоднократно повторяют, пока не перестанут получать дополнительный коэффициент усиления или пока увеличение коэффициента усиления не упадет ниже порога. Простой вариант осуществления этой схемы предусматривает удаление "нечетных" точек в кластере из вычисления для кластера или параметров пост-обработки, т.е. приравнивание весовых коэффициентов таких элементов нулю.

- В то время как в вышеописанном варианте осуществления элементы кластеров остаются неизменными, но их влияние на расчет коэффициентов изменяется, альтернативной схемой было бы поддержание определенных коэффициентов фильтра неизменными, как и центров кластера, но сдвиг элементов из одного кластера в другой и, таким образом, сдвиг границ между кластерами и повторное вычисление разности между исходными значениями пикселя и значениями пикселя после пост-обработки. При наличии улучшения границы сдвигаются немного дальше.

- Способ задания центров кластера и кластеров зависит от алгоритма кластеризации. Как объяснено выше, а также ниже, возможны различные алгоритмы кластеризации, отличающиеся тем, на чем основана кластеризация (на значениях пикселя, на векторах движения, на крае, на текстуре и т.д.), а также тем, каким образом определяется кластеризация (минимизацией суммы абсолютных значений или минимизацией суммы квадратов). Еще один вариант осуществления предусматривает использование алгоритма кластеризации, который объединяет различные критерии, например значения