СЖАТИЕ И СНЯТИЕ СЖАТИЯ ИЗОБРАЖЕНИЯ
COMPRESSION AND DECOMPRESSION OF IMAGES

Область техники
Изобретение относится к способам и устройствам для сжатия и снятия сжатия изображения.
Уровень техники
Способы сжатия изображения с потерями известны, в контексте сжатия, как видеосигнала, так и отдельных изображений. Наиболее яркими примерами являются способы, заданные в различных стандартах сжатия/снятия сжатия 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 - еще один вариант осуществления с использованием функции снятия разбиения на блоки.
0
0
Фиг.16 - иллюстративные условия, используемые для принятия решения, соседствуют ли пиксели p и q с краем подблока 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, так что суммарная дисперсия в классе выражается как
.
i
i
i
Согласно вышесказанному, существует всего N классов C (1≤i≤N), x' является выборкой 16- или 25-мерного вектора (для окон 4×4 и 5×5 соответственно) и µ' является вектором математического ожидания всех векторов x', принадлежащих классу C. Такую классификацию можно легко реализовать с использованием итерационного подхода. Это позволяет найти центр каждого класса или кластера, причем кластер и класс означают одно и то же, т.е. совокупность элементов. Этот центр сохраняется для представления класса. Векторы, ближайшие к каждому центру, образуют часть кластера или класса. В этом примере используется сумма квадратов, в предыдущем примере использовалась сумма абсолютных значений. В каждом примере используется всего 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.
В общем случае, можно просто классифицировать все возникающие структуры на несколько классов (например, край, высокочастотную горизонтальную текстуру, …), но, в более широкой трактовке принципов изобретения, классификацию следует осуществлять более структурированным/иерархическим параметрическим способом, включающим в себя иерархическое структурирование, например первоначальное нахождение того, какой тип классификации наиболее пригоден, с последующим осуществлением классификации, или также повторную классификацию или другую классификацию, например выбор кластеров и соответствующего фильтра или параметров пост-обработки можно осуществлять итерационно.
На первом этапе можно задать кластеры, после чего задать параметры пост-обработки, связанные с кластерами.
Эта схема, в целом, обеспечивает хороший результат, но в рамках изобретения можно применять итерационные процессы, например нахождение предварительной кластеризации, нахождение наборов параметров фильтра для предварительных кластеров, уточнение кластеризации для нахождения более подходящих кластеров, уточнение наборов параметров фильтра и т.д.
Вот несколько возможных итерационных процессов.
- Первоначально всем элементам в кластере присваивают одинаковый вес для определения параметров пост-обработки. После определения начальных наборов параметров и соответствующих центров кластера обеспечивают начальный результат для средней разности между исходными значениями пикселя и значениями пикселя после пост-обработки, затем каждому элементу в кластере назначают переменные весовые коэффициенты, например в заранее определенном, но регулируемом режиме в зависимости от меры расстояния до центра кластера. С использованием таких весовых коэффициентов пересчитывают коэффициенты фильтра; если результат улучшается, процесс неоднократно повторяют, пока не перестанут получать дополнительный коэффициент усиления или пока увеличение коэффициента усиления не упадет ниже порога. Простой вариант осуществления этой схемы предусматривает удаление "нечетных" точек в кластере из вычисления для кластера или параметров пост-обработки, т.е. приравнивание весовых коэффициентов таких элементов нулю.
- В то время как в вышеописанном варианте осуществления элементы кластеров остаются неизменными, но их влияние на расчет коэффициентов изменяется, альтернативной схемой было бы поддержание определенных коэффициентов фильтра неизменными, как и центров кластера, но сдвиг элементов из одного кластера в другой и, таким образом, сдвиг границ между кластерами и повторное вычисление разности между исходными значениями пикселя и значениями пикселя после пост-обработки. При наличии улучшения границы сдвигаются немного дальше.
- Способ задания центров кластера и кластеров зависит от алгоритма кластеризации. Как объяснено выше, а также ниже, возможны различные алгоритмы кластеризации, отличающиеся тем, на чем основана кластеризация (на значениях пикселя, на векторах движения, на крае, на текстуре и т.д.), а также тем, каким образом определяется кластеризация (минимизацией суммы абсолютных значений или минимизацией суммы квадратов). Еще один вариант осуществления предусматривает использование алгоритма кластеризации, который объединяет различные критерии, например значения пикселя и векторы движения и/или другие критерии, и использует совокупность таких критериев, причем в итерационном процессе отыскивается оптимальная совокупность критериев и соответствующие наборы параметров.
Изобретение также предусматривает варианты быстрого нахождения оптимальных фильтров на стороне кодера, например, путем прослеживания в пространстве коэффициентов, спектрального анализа Pinput/Pcompressed.
Согласно варианту осуществления блок кластеризации 40 применяет метод кластеризации, идентифицирует репрезентативные комбинации значений пикселя, которые задают разбиение пространства возможных комбинации на части на наименьшем расстоянии до соответствующих репрезентативных комбинаций. Репрезентативные комбинации выбираются на основании заранее определенного критерия качества кластера. Критерий качества кластера может, например, состоять в том, что количество фактически наблюдаемых комбинаций в каждом разбиении одинаково в пределах некоторой заранее определенной предельно допустимой ошибки, или в том, что мера разброса (например, сумма квадратов расстояний до центрального значения пикселя) фактически наблюдаемых комбинаций в каждом разбиении ниже порога. Например, можно использовать алгоритм кластеризации методом k-средних для группирования комбинаций значений пикселя со снятым сжатием, которые возникают в окнах. С использованием таких кластеров гарантируется, что каждый набор коэффициентов фильтра применяется к окнам со сходным контентом. Это минимизирует ошибку после пост-фильтрации.
В еще одном варианте осуществления используется способ кластеризации с использованием качественного критерия на основании остаточной ошибки после пост-фильтрации. В примере такого варианта осуществления производят начальное задание кластеров, выбирают наборы коэффициентов фильтра для каждого кластера и вычисляют размер остаточных ошибок для разных позиций пикселя. Если средний размер кластера выше порога, кластер разделяют, берут две фактически наблюдаемые комбинации из исходного кластера в качестве новых репрезентативных комбинаций. Аналогично, кластеры можно объединять, если средний размер ошибок в соседних кластерах ниже порога и/или разность между наборами коэффициентов фильтра для этих кластеров ниже порога. Повторяя эту процедуру несколько раз можно оптимизировать набор кластеров. Это дополнительный пример итерационного процесса.
Выходной интерфейс 46 имеет входы, связанные с блоком кластеризации 40 и блоком 44 выбора коэффициента. Выходной интерфейс 46 выдает информацию, которая представляет кластеры и коэффициенты фильтра, на мультиплексор 18 потока для подачи на устройство снятия сжатия, где они будут использоваться пост-фильтром 26.
Согласно варианту осуществления, в котором поток видеоизображений является сжатыми кластерами, коэффициенты выбираются для каждого изображения в потоке. Однако это не является необходимым. Кластеры и коэффициенты обычно зависят от сцены. Когда сцены (или сходные сцены) изображаются в последовательности изображений, одни и те же кластеры и коэффициенты можно использовать для всех этих изображений. В другом варианте осуществления блок 16 оценки параметров способен обнаруживать группы изображений, в которых можно использовать одни и те же кластеры и коэффициенты, и сигнализирует, только когда кластеры и коэффициенты изменяются. В этом случае пост-фильтр 26 сохраняет ранее принятые задание кластера и набор коэффициентов фильтра и применяет их к пост-фильтру, снимает сжатие изображения, пока он не получает сигнал, что кластеры и коэффициенты изменились.
В этом варианте осуществления блок 16 оценки параметров может вычислять размер остаточных ошибок после пост-фильтрации с использованием текущего набора для каждого входящего изображения и переходить к вычислению нового набора кластеров и коэффициентов, только если размер превышает порог (и, в необязательном порядке, также после заранее определенного количества изображений, с последнего нового набора кластеров и коэффициентов). В другом варианте осуществления блок 16 оценки параметров может сначала выбирать секции видеопотока и вычислять набор кластеров и коэффициентов для каждой секции. В этом случае блок 16 оценки параметров может выбирать кластеры и коэффициенты путем обработки только одного из изображений в секции или подмножества изображений в секции.
В качестве альтернативы группы можно обнаруживать путем оценивания характеристик изображения согласно заранее определенным функциям и связывания изображений с одной и той же группой, если характеристики изображения отличаются менее чем на заранее определенный порог. Характеристики изображения каждого вновь принятого изображения можно принимать и сравнивать с характеристиками изображения, для которого был использован текущий набор кластеров и коэффициентов, причем набор кластеров и коэффициентов поддерживается неизменным, если характеристики изображения отличаются менее чем на порог.
Согласно варианту осуществления разные наборы кластеров и коэффициентов можно использовать для по-разному сжатых изображений и/или разных предметных плоскостей. Таким образом, например, первые наборы кластеров и коэффициентов можно задать для интракодированных изображений (I-кадров в случае MPEG) и второй набор кластеров и коэффициентов можно задать для изображений, кодированных посредством предсказания на основании близлежащих изображений и оптических остатков (P-кадров и B-кадра в случае MPEG). В качестве другого примера, если контент изображения задан в видеопотоке для совокупности плоскостей, которые могут перекрываться для формирования выходного изображения, разные наборы кластеров и коэффициентов можно использовать для разных плоскостей.
Согласно варианту осуществления набор кластеров может быть одинаковым для этих изображений или плоскостей, но можно использовать разные коэффициенты, каждый из которых выбран для уменьшения ошибок в другом типе кадра. В этом варианте осуществления пост-фильтр 26 сохраняет совокупность определений кластеров и/или коэффициентов одновременно и выбирает из этой совокупности в зависимости от типа кодирования (I или B, P) и/или плоскости. Аналогично, блок 16 оценки параметров выбирает кластеры и коэффициенты на основании типа кодирования и/или плоскости.
Согласно варианту осуществления устройство снятия сжатия способно сохранять совокупность наборов кластеров и/или коэффициентов одновременно, например в памяти 34 задания кластера и в памяти 36 коэффициентов на пост-фильтре 26. Устройство снятия сжатия выбирает текущий набор из совокупности сохраненных наборов в зависимости от сигнала выбора набора, для использования при пост-фильтрации текущего изображения. Сигнал выбора набора можно обеспечивать из демультиплексора 22 потока на основании сигнала выбора, обеспеченного из устройства сжатия, или на основании типа изображения и/или плоскости.
В еще одном варианте осуществления устройство сжатия способно сохранять соответствующую совокупность наборов кластеров и/или коэффициентов. При приеме нового изображения (или предметной плоскости) блок оценки параметров сначала проверяет, можно ли присвоить его одному из сохраненных наборов кластеров и/или коэффициентов. Это можно делать, например, путем сжатия нового изображения, снятия его сжатия и его пост-фильтрации согласно каждому из сохраненных наборов кластеров и коэффициентов и сравнения результатов с исходным новым изображением, причем набор кластеров и коэффициентов выбирается так, чтобы обеспечить наименьшую разность. Если эта разность ниже заранее определенного порога, устройство сжатия сигнализирует устройству снятия сжатия, что следует использовать выбранный набор кластеров и/или коэффициентов. Однако, альтернативно, выбор набора кластеров и/или коэффициентов можно осуществлять путем классификации нового изображения согласно некоторым заранее определенным характеристикам изображения и выбора набора кластеров и/или коэффициентов, который связан с выбранным классом изображения.
Когда разность между новым изображением и результатом сжатия, после которого следуют снятие сжатия и пост-фильтрация с выбранным набором кластеров и/или коэффициентов, превышает порог, новый набор кластеров и/или коэффициентов оценивается и передается на устройство снятия сжатия для замены предыдущего набора кластеров и/или коэффициентов в памяти, причем предыдущий набор выбирается согласно одному и тому же критерию в устройстве сжатия и устройстве снятия сжатия, например путем явной идентификации этого предыдущего набора в сигнале из устройства сжатия на устройство снятия сжатия, с использованием самого последнего использованного набора или наиболее сходного набора и т.д.
Хотя был приведен пример, в котором управление пост-фильтром после снятия сжатия осуществляется с использованием информации, указанной устройством сжатия, следует понимать, что можно использовать и другие формы пост-обработки.
На фиг.6 показан пример схемы пост-обработки, которую можно использовать вместо пост-фильтра 26. В этой схеме пост-обработки добавлены генератор 50 (псевдо-) случайного сигнала и сумматор 52. Генератор 50 случайного сигнала генерирует (псевдо-) случайный сигнал под управлением одного или нескольких коэффициентов из памяти 36 коэффициентов. Сумматор 52 добавляет эти коэффициенты к сигналу со снятым сжатием. Генератор случайного сигнала 50 может быть способен управлять средним и/или стандартным отклонением случайного сигнала, и/или пространственной корреляционной и/или спектральной огибающей, и/или другими статистическими свойствами сгенерированного случайного сигнала как функции коэффициента или коэффициентов. Таким образом, локально генерируемую текстуру можно добавлять к сигналу снятого сжатия. Соответствующий(е) коэффициент или коэффициенты оценивае(ю)тся на блоке оценки параметров устройства сжатия на основании статистики различия между исходным изображением, изображением со сжатием и изображением со снятым сжатием. Оцененный(е) соответствующий(е) коэффициент или коэффициенты передаются с устройства кодирования на устройство декодирования. Таким образом, вместо данных, представляющих фактические значения пикселя, передаются коэффициенты, представляющие статистические свойства.
Следует подчеркнуть, что это лишь один пример генерации текстур. Вместо генератора 50 (псевдо-) случайного сигнала можно использовать другие типы генератора сигнала для прибавления или даже частичного вычитания локально генерируемых сигналов к изображению со снятым сжатием, причем локально генерируемые сигналы генерируются под управлением коэффициентов, передаваемых устройством снятия сжатия. Например, генератор случайного сигнала может использовать коэффициенты для управления набором значений, из которого он делает случайные выборы для генерации значений пикселя, или для управления основными шаблонами текстуры, на основании которых он случайно отображает пиксели в выходной сигнал. Для обеспечения большей свободы генерации текстур генерацию текстур можно объединить с вариантом осуществления, в котором набор коэффициентов выбирается посредством значения сигнала со снятым сжатием для комбинаций средних значений пикселя для соответствующих из набора блоков положений пикселя (например, в окне 3×3 таких блоков, с использованием, например, блоков 8×8 пикселей) или субдискретизированных значений для несоседних положений пикселя.
В еще одном варианте осуществления используется комбинация генерации текстур и фильтрации, причем коэффициенты выбираются под управлением обнаруженного кластера. В другом варианте осуществления используется только пост-фильтрация или только генерация текстур, в зависимости от кластера.
Согласно вышеописанным вариантам осуществления пост-обработка, например пост-фильтрация, применяется к конечному изображению, полученному в результате снятия сжатия. Преимущество состоит в том, что можно использовать любую форму сжатия и снятия сжатия. Однако очевидно, что, альтернативно, можно применять пост-обработку к промежуточным результатам снятия сжатия. Например, когда обратное ДКП (дискретное косинусное преобразование) частотных коэффициентов со снятым сжатием используется как часть снятия сжатия, пост-обработку также можно применять к частотным коэффициентам, например, путем умножения коэффициентов для разных частот на разные коэффициенты. Аналогично, к таким коэффициентам можно добавлять информацию текстуры.
Блок оценки параметров и пост-фильтр можно объединить с различными типами блока сжатия и блока снятия сжатия. Согласно варианту осуществления блок сжатия представляет собой блок сжатия с квантованием, например блок сжатия, который вычисляет коэффициенты ДКП (дискретного косинусного преобразования) для блока пикселей и квантует эти коэффициенты, или блок сжатия, который квантует значения пикселя. В другом варианте осуществления блок сжатия может представлять собой блок сжатия, который уменьшает пространственное разрешение изображения. Соответственно, блоки снятия сжатия могут применять обратное квантование или интерполяцию для реконструкции изображений со снятым сжатием.
На фиг.7 показано применение к сжатию, которое содержит масштабирование разрешения и квантование. Здесь наборы коэффициентов фильтра используются для ослабления артефактов обеих форм сжатия. На фигуре показаны устройство 66 сжатия и устройство 68 снятия сжатия. В устройстве 66 сжатия блок сжатия 12 содержит последовательно соединенные блок 60 масштабирования разрешения и блок 61 сжатия с квантованием. Согласно варианту осуществления блок 61 сжатия с квантованием вычисляет коэффициенты ДКП (дискретного косинусного преобразования) для блоков пикселей и квантует эти коэффициенты. Блок 60 масштабирования разрешения может содержать фильтр для устранения эффектов наложения спектров и блок субдискретизации. Блок снятия сжатия содержит последовательно соединенные блок 63 снятия сжатия с обратным квантованием и блок 62 обратного масштабирования разрешения. В устройстве 68 снятия сжатия блок снятия сжатия содержит последовательно соединенные блок 65 снятия сжатия с обратным квантованием и блок 64 обратного масштабирования разрешения перед пост-фильтром 26.
В ходе работы блок 60 масштабирования разрешения, который может содержать фильтр для устранения наложения спектров и блок субдискретизации, уменьшает разрешение, с которым представлены принятые изображения, до сжатия изображений. Блок 62 обратного масштабирования разрешения реконструирует изображения с исходным разрешением или, по меньшей мере, с более высоким разрешением, чем у изображений с пониженным разрешением после сжатия и последующего снятия сжатия.
Блок 16 оценки параметров выбирает наборы коэффициентов фильтра и, в необязательном порядке, кластеры для работы пост-фильтра, который, в случае применения к реконструированным изображениям, будет делать эти изображения более соответствующими изображениям, соответствующим исходным входным изображениям.
В устройстве 68 снятия сжатия изображения подвергаются снятию сжатия, после чего разрешение повышается. Изображения повышенного разрешения подвергаются пост-фильтрации с использованием выбранных наборов коэффициентов фильтра. Хотя пост-фильтр 26 и блок 64 обратного масштабирования разрешения показаны в виде отдельных блоков, очевидно, что их можно интегрировать, причем коэффициенты фильтра указывают, как нужно интерполировать значения пикселя в ходе повышения разрешения.
Хотя в иллюстрируемом варианте осуществления применимый кластер выбирается под управлением значений пикселя изображения с повышенным разрешением, следует понимать, что, альтернативно, кластеры можно выбирать на основании значений пикселя из изображения с пониженным разрешением со снятым сжатием, т.е. изображения из блока 65 снятия сжатия с обратным квантованием. Согласно варианту осуществления это делается как в устройстве 66 сжатия, так и в устройстве 68 снятия сжатия.
Согласно варианту осуществления блок 61 сжатия с квантованием и блок 63 снятия сжатия с обратным квантованием можно опустить, в результате чего снижение разрешения является единственной формой сжатия. В этом случае пост-фильтр 26 используется только для ослабления артефактов, обусловленных снижением разрешения и последующей реконструкцией изображения с более высоким разрешением. Согласно фиг.7 пост-фильтр 26 используется для ослабления артефактов, обусловленных снижением разрешения и квантованием.
Кроме того, согласно фиг.8, в качестве альтернативного варианта осуществления, можно последовательно использовать отдельные пост-фильтры 39a, 39b в качестве субфильтров в устройстве 68 снятия сжатия для коррекции артефактов, обусловленных сжатием на блоке сжатия 12, и артефактов, обусловленных снижением разрешения на блоке 60 масштабирования разрешения. В этом варианте осуществления отдельные наборы коэффициентов фильтра можно обеспечивать для этих разных операций пост-фильтра. Преимущество состоит в том, что разные наборы можно оптимизировать для разных функций. Согласно варианту осуществления разные наборы кластеров можно задать для разных пост-фильтров 39a, b, и коэффициенты пост-фильтра для пост-фильтров можно обеспечить для кластеров, заданных для этого пост-фильтра 39a, b. Таким образом, фактически кластеры для комбинации первого и второго пост-фильтров 39a, 39b задают субкластеризации кластеров для отдельных пост-фильтров. Разные субкластеры в субкластеризации совместно используют один и тот же набор коэффициентов фильтра. Альтернативно, можно сначала определить субкластеры и затем объединить их в суперкластеры для выбранного пост-фильтра, причем субкластеры в каждом суперкластере совместно используют набор коэффициентов фильтра для выбранного пост-фильтра. В этом случае не требуется передавать отдельные наборы коэффициентов фильтра для разных субкластеров, что позволяет экономить полосу передачи.
На фиг.9 показан еще один вариант осуществления устройства сжатия для генерации такой совокупности наборов. В этом варианте осуществления устройства сжатия добавлены дополнительный блок 16a оценки параметров и пост-фильтр 600. Пост-фильтр 600 подключен между блоком 63 снятия сжатия с обратным квантованием и блоком 64 обратного масштабирования разрешения. Дополнительный блок 16a оценки параметров имеет входы, связанные с выходом блока 60 масштабирования разрешения и выходом блока 63 снятия сжатия с обратным квантованием, и выход, связанный с входом управления пост-фильтром 600 и мультиплексора 18.
В этом варианте осуществления дополнительный блок 16a оценки параметров служит для обеспечения наборов параметров управления для ослабления артефактов, обусловленных сжатием, тогда как блок 16 оценки параметров служит для обеспечения наборов параметров управления для ослабления оставшихся артефактов, в основном обусловленных снижением разрешения и повышением разрешения. Дополнительный блок 16a оценки параметров выбирает наборы параметров управления работой пост-фильтра, что уменьшает различие между изображением до сжатия блоком 61 сжатия с квантованием и после блока 63 снятия сжатия с обратным квантованием. Пост-фильтр 600 применяет операцию пост-фильтра, выбранную согласно этим наборам параметров управления, к изображению со снятым сжатием до передачи изображения на блок 62 обратного масштабирования разрешения. Мультиплексор 18 добавляет эти наборы параметров управления в поток, для использования пост-фильтрами устройства снятия сжатия.
Заметим, что эта часть фиг.9, за исключением блока 60 масштабирования разрешения, пост-фильтра 600, блока 62 обратного масштабирования разрешения и блока 16 оценки параметров, по существу, идентична устройству сжатия, показанному на фиг.1, причем вход блока 14 снятия сжатия образует вход изображения. Как показано, вариант осуществления, показанный на фиг.9, предусматривает добавление дополнительного слоя сжатия с соответствующей оценкой параметров после снятия сжатия. Как будет пояснено ниже, в каждом случае блок оценки параметров используется для вывода наборов параметров управления путем сравнения изображения до операции обработки со сжатием и после операции обработки со снятием сжатия, которая обратна этой операции обработки со сжатием. Наборы параметров управления выбираются для разных кластеров локальных конфигураций изображения.
Согласно фиг.9 в случае применения последовательных операций сжатия оценку параметров можно применять несколько раз, каждый раз для соответствующей операции сжатия. Хотя был показан пример, в котором операциями сжатия являются прореживание и квантование, можно использовать и другие операции сжатия. Согласно варианту осуществления операция сжатия или одна из операций сжатия, для которой используются пост-фильтрация и оценка параметров, может представлять собой сжатие с предсказанием, в котором пост-фильтрация применяется к изображению, представленному посредством указателей, например векторов движения, относительно опорного изображения или совокупности опорных изображений.
Выбор кластеров может осуществляться по отдельности разными блоками оценки параметров. В этом случае информация задания кластера будет включена в поток для всех наборов параметров управления. Это позволяет оптимизировать выбор кластера, пусть даже ценой использования увеличенной полосы для потока. В альтернативном варианте осуществления блоки оценки параметров совместно используют один и тот же выбор кластера. В этом варианте осуществления для этого достаточно включить совместно используемую информацию задания кластера для совокупности наборов параметров управления для последовательно применяемых операций пост-фильтрации. Это уменьшает использование полосы.
На фиг.10 показано применение к сжатию с предсказанием, в котором пост-фильтрация применяется к опорному изображению. Здесь пост-фильтрованные интракодированные изображения со снятым сжатием используются как опорные для сжатия и снятия сжатия с предсказанием. На фигуре показаны устройство сжатия и устройство снятия сжатия, каждое из которых содержит память 72, 74 для опорного изображения. Устройство сжатия содержит пост-фильтр 70, подключенный между выходом блока 14 сжатия и памятью 72. Память 72 устройства сжатия связана с входом блока 12 сжатия. Выход блока 16 оценки параметров связан с входом управления пост-фильтра 70, функция которого аналогична функции пост-фильтра 26 устройства снятия сжатия. В ходе работы в памяти 72 сохраняются выбранные изображения, полученные пост-фильтрацией согласно наборам коэффициентов фильтра, и блок 12 сжатия использует сохраненные изображения для кодирования других изображений применительно к векторам движения и необязательной остаточной информации относительно сохраненных изображений.
Аналогично, память 74 устройства снятия сжатия включена в контур обратной связи между выходом пост-фильтра 26 и входом блока 24 снятия сжатия. В ходе работы в памяти 74 сохраняются выбранные пост-фильтрованные изображения, и блок 24 снятия сжатия использует сохраненные изображения для декодирования других изображений, которые закодированы применительно к векторам движения и необязательной остаточной информации относительно сохраненных изображений. Таким образом, обеспечивается улучшенное опорное изображение для использования в сжатии и снятии сжатия с предсказанием. При сжатии и снятии сжатия с предсказанием предсказанное изображение можно предсказывать с использованием только одного опорного изображения, но, альтернативно, можно использовать предсказание на основании совокупности опорных изображений.
Описанные здесь способ и устройства позволяют ослаблять артефакты сжатия пост-обработкой после, по меньшей мере, частичного снятия сжатия с использованием коэффициентов пост-обработки, заданных устройством сжатия. Качество пост-обработки повышается с использованием разных наборов коэффициентов в разных позициях в изображении, выбранных под управлением контента изображения со снятым сжатием. Возможны многочисленные приложения, связывающие изображения низкого и высокого качества, например фотографирование на мобильном телефоне с хорошей встроенной камерой, но сохранение фотографии в более низком качестве + дополнительная информация, которая затем пересылается другу, который будет просматривать ее на своем телевизоре или ПК (высокой четкости).
Можно использовать разные оптимальные наборы фильтров для разных подгрупп изображений. Например, B-изображения может быть необходимо фильтровать иначе, чем I- и P-изображения. В этом случае сигнал обычно имеет, например, дополнительную информацию для группирования классов и соответствующих параметров фильтрации (фактический формат остается открытым, поскольку фильтры можно задавать разными способами, например алгоритмическое описание, содержащее процедуры для осуществления в нижележащей фильтрованной области) с тегами типа: B-изображение: кластер 1: коэффициент 1, коэффициент 2, …; кластер 2: коэффициент 3, коэффициент 4, …; кластер X; I-изображение: кластер Y: … Другие примеры структурированных кластеризаций можно осуществлять на параметрах сжатия, например разные наборы для высокого и низкого квантования или высокого и низкого движения и т.д.
Выше описан выбор кластеризации согласно различным критериям выбора, в том числе значениям пикселя, векторам движения и совместно значениям пикселя и векторам движения. Изобретение не ограничивается такими иллюстративными критериями выбора/классификации.
Например, другие критерии классификации для адаптивной фильтрации могут приводить к значительному снижению вычислительных затрат для процесса декодирования, даже при повышенном визуальном качестве. Это также уменьшает вычислительные затраты при кодировании и обеспечивает более стабильную производительность для классификации. Такая фильтрация базируется на гипотезе о том, что повышение качества пост-обработанных последовательностей в основном сосредоточено в областях изменяющегося градиента.
В предпочтительном варианте осуществления вычисляются значение горизонтального градиента и/или значение вертикального градиента, которые используются в процессе выбора. Блок выбора способен классифицировать информацию изображения относительно позиции путем классификации на основании значения горизонтального градиента и/или значения вертикального градиента.
Например, при выводе кластеров, адаптивных к сцене, на стороне кодера, вместо использования непосредственно окна с нормализованной апертурой (например, 5×5) в качестве основного шаблона для статистики кластеризации, значение горизонтального градиента ex и значение вертикального градиента ey вычисляются путем свертки каждого окна с двумя краевыми фильтрами Собеля (горизонтальным и вертикальным), заданными следующим образом:
и
.
В результате каждая апертура представляется вектором признака {ex, ey}. Затем на этих кластерах осуществляется алгоритм кластеризации, например, методом k-средних. На фиг.11 показано два типичных результата кластеризации для двух последовательностей. Крестики указывают центры кластера. Точки указывают результаты для большого количества точек.
Дополнительное преимущество, как выяснилось, состоит в том, что центры кластера полностью согласуются для разных последовательностей. Это позволяет задавать несколько профилей кластера независимо от последовательностей. Например, на фиг.12 показаны иллюстративные определения 5-кластерного профиля и 21-кластерного профиля. Определение этих профилей получается путем усреднения результатов автокластеризации нескольких последовательностей. Из этих двухмерных графиков следует, что центры кластера, выведенные методом k-средних для различных последовательностей, фактически совместно используют весьма сходные распределения, как показано на фиг.12. Крестики указывают позиции центров кластера. Это позволяет предварительно задавать центры кластера.
Поскольку профили кластеров можно заранее задавать и, таким образом, стандартизировать, больше не требуется передавать позиции центров кластера совместно с потоками. Поэтому только фильтры, адаптивные к сцене (или, в более общем случае, наборы параметров управления), передаются в качестве, например, дополнительной информации совместно с потоком. Заметим, что наборы параметров управления, например параметры фильтров, все же необходимо динамически генерировать для каждого кластера в ходе кодирования для отражения разных характеристик различных видеосигналов (с различными характеристиками сцены, настройками кодирования и т.д.).
Путем применения вышеописанной схемы экономия на декодере очевидна: выбор правильных кластеров значительно упрощается за счет использования только 2-мерных расстояний в пространстве признаков (вместо 5×5=25-мерных расстояний в пространстве признаков). Кроме того, в предпочтительном варианте осуществления с использованием заранее заданных профилей кластера классификацию можно реализовать, например, посредством заранее заданной 2-мерной поисковой таблицы T
T(ex,ey) = Class-Label
,
где (ex, ey) - это значения градиента на пикселе (x,y) и T(ex,ey) непосредственно задает соответствующий указатель класса для данного профиля. Поэтому на стороне декодера вычислительные затраты для выбора кластера оказываются практически пренебрежимо малыми.
Другое преимущество состоит в более стабильных результатах классификации. Оказывается, что признаки градиента дают более визуально устойчивую классификацию локальных шаблонов, чем исходная апертура яркости, что приводит к большей визуальной привлекательности пост-обработанных последовательностей.
В случае применения заранее заданных профилей на градиентной основе дополнительные битовые затраты для дополнительной информации наполовину снижаются, поскольку не требуется передавать информацию центров кластера. Вычислительные затраты на стороне кодера также снижаются, поскольку автокластеризация не вычисляется, и осуществляется только оптимизация СКО.
На стороне декодера выбор правильных фильтров занимает наибольшее время вычисления. Предположим, мы используем N кластеров, тогда выбор фильтра требует в N раз больше вычислительных затрат, чем сама фильтрация. Путем применения схемы на градиентной основе выбор фильтров предусматривает только собелеву свертку и поиск в таблице на предмет правильного кластера. Процедура выбора обычно занимает менее 1/6 времени вычисления для процесса фильтрации. Это позволяет осуществлять пост-фильтрацию на стороне декодера в реальном времени.
Визуальное качество в случае применения способа выбора на градиентной основе оказывается даже на 0,5~0,7 дБ лучше, чем в случае применения способов на основе значений пикселя. На фиг.13 показан пример, в котором отображаются обрезанные примеры так называемой последовательности Шилдса. Повышенное визуальное качество можно объяснить тем, что информация градиента является лучшим представлением, чем необработанная яркость, и близость по координате X-Y градиента более пригодна для определения классов, чем метрика СКО в M×M-мерном яркостном пространстве.
Альтернативно или дополнительно, простую кластеризацию также можно осуществлять на основании текстуры. Текстуру зачастую просто обнаружить с помощью малого количества параметров, например
1. стандартного отклонения, указывающего, насколько случайно изменяется яркость,
2. скользящего кумулятивного градиента, который является одной из возможных мер того, насколько часто шаблон повышается и понижается, и
3. среднего цвета.
В то время как при выборе градиентного типа задавалось количество центров кластера в двухмерном пространстве (см. фиг.11 и 12), кластеры текстуры можно задать центральными точками кластера в трехмерном пространстве, тремя измерениями которого являются, например, стандартное отклонение, скользящий кумулятивный градиент и средний цвет. Одна точка может соответствовать, например, голубому небу (стандартное отклонение мало, кумулятивный градиент мал, средний цвет - голубой). Другая точка может соответствовать траве.
В еще одном варианте осуществления способа и устройства, отвечающих изобретению, выбор осуществляется в иерархической структуре.
До фактической процедуры классификации выполняется первая грубая классификация наиболее пригодной формы для выбора, например, следует ли проводить классификацию, на основании значений яркости, векторов движения, градиентов, текстуры или любой комбинации таких критериев. После принятия первого иерархического принятия решения осуществляется процедура выбора.
Иерархическое принятие решения может осуществляться для любой части файла, для изображения, для части изображения, последовательности изображений. Кроме того, критерий выбора может зависеть от типа данных изображения, например зависеть от типа кадра.
На фиг.14 схематически показана иерархическая структура, в которой выбираются различные возможные способы выбора.
Сначала, на этапе 110, входные данные изображения или части изображения подвергаются краевой фильтрации в блоке 110 предварительного выбора. В ходе предварительного выбора производится определение, имеет ли шаблон в основном краевой символ или в основном является текстурой.
Если анализ показывает, что изображение или часть изображения в основном имеют краевой символ, то данные поступают на блок 111 окончательного выбора, в котором выбор кластера и определение наборов параметров управления для кластеров осуществляются на основании градиента ex, ey, см. фиг.11 и 12. Если анализ показывает, что шаблон в основном является текстурой, то данные поступают на блок 112 окончательного выбора, в котором выбор кластера и определение наборов параметров управления для кластеров осуществляются на основании параметров текстуры.
На фиг.15a - 15c показан еще один вариант осуществления изобретения.
Во многих методах сжатия сжатие осуществляется на блочной основе. После блока снятия сжатия могут возникать краевые ошибки, т.е. края блоков могут быть видны. Разбиение и обработка изображения на блочной основе приводят к ошибкам, известным как артефакты разбиения на блоки. Эти артефакты разбиения на блоки ухудшают воспринимаемое качество изображения, в особенности на низких битовых скоростях. Использование фильтра снятия разбиения на блоки уменьшает такие ошибки разбиения на блоки. Согласно стандарту H.264, известно применение фильтра снятия разбиения на блоки на декодере, при котором на стороне декодера производится классификация на основании краевых условий. Классификация используется для выбора одного из нескольких возможных стандартных заранее фиксированных фильтров разбиения на блоки. Разные фильтры фиксируются самостоятельно, и выбор фильтров на стороне декодера можно осуществлять без какой-либо дополнительной информации от кодера.
На фиг.15a показан вариант осуществления изобретения. На стороне кодера входной сигнал 150 сжимается на блоке сжатия 152 для обеспечения сжатого сигнала 151. Сжатый сигнал подвергается снятию сжатия на блоке 154 снятия сжатия. После снятия сжатия кластеры C формируются в зависимости от признаков, например позиции в блоке, размера краевой ступеньки и режимов кодирования соседних блоков. Для каждого из кластеров адаптивные фильтры с адаптивными параметрами фильтра F(C) идентифицируются в зависимости от позиции в блоке, и используются адаптивные фильтры с параметрами фильтра F(C). Выходной сигнал фильтров снятия разбиения на блоки поступает на компаратор 154, который сравнивает изображение, подвергнутое сжатию, снятию сжатия и фильтрации, с исходным изображением. Компаратор обеспечивает сигнал ошибки E. Классификация (C) и параметры фильтра F(C) для различных классов адаптированы для минимизации ошибки E. Фильтр снятия разбиения на блоки можно использовать в цикле и вне цикла, на фиг.15a показан пример использования фильтра вне цикла, т.е. после полного снятия сжатия. Фильтр снятия разбиения на блоки также можно использовать в цикле.
На фиг.15b и 15c показано изобретение на стороне декодера.
ДПД означает декодер переменной длины, ОК - обратное квантование, ОДКП - обратное ДКП, DF - фильтр снятия разбиения на блоки и КД - компенсация движения. Работа фильтра определяется данными C (классификацией) и F(C), т.е. наборами параметров фильтра для разных классов. Согласно фиг.15b схема обработки способна применять фильтр снятия разбиения на блоки DF вне цикла, согласно фиг.15c фильтр снятия разбиения на блоки DF применяется в цикле.
В простой форме этого варианта осуществления используются те же критерии выбора фильтров, что и в известном фильтре снятия разбиения на блоки, но фиксированные фильтры заменены фильтрами с адаптивными параметрами. В этой простой форме известные коэффициенты определения классификации на стороне декодера являются просто стандартными, но параметры фильтра являются адаптивными.
0
0
0
0
Процедура выбора начинается, например, с присвоения параметра граничной интенсивности краям каждого подблока яркости 4×4. Граничная интенсивность определяется исключительно режимом и условиями кодирования каждого подблока и его соседних блоков (например, интер или интра, кодированный остаток или нет, размер векторов движения) и производит первый выбор между сильной фильтрацией к краям, которые, вероятно, обусловлены артефактами разбиения на блоки, нормальной фильтрацией к краям, которые, должно быть, обусловлены разбиением на блоки, и отсутствием фильтрации к краям, которые, вероятно, связаны с контентом. После этого начального разделения краевая активность - т.е. условия неравенства по абсолютной разности между значениями пикселя на обеих сторонах края - определяет, применять ли фильтры. На фиг.16 показаны иллюстративные условия, используемые для принятия решения, следует ли фильтровать в режиме нормальной фильтрации пиксели p и q, соседствующие с краем подблока BE. Пиксель q фильтруется только при выполнении условий (1) и (2). Аналогично, p фильтруется только при выполнении условий (1) и (3). Согласно известному способу набор фиксированных фильтров из фильтра снятия разбиения на блоки может выбираться, причем все имеют одинаковую структуру. Они являются 1-мерными фильтрами с конечной импульсной характеристикой (КИХ), с максимальным смещением в 2 отвода относительно пикселя, подлежащего фильтрации. Разные фиксированные фильтры применяются к пикселям с разным расстоянием до края блока. Пиксели, которые дальше от края, с меньшей вероятностью подвержены артефактам разбиения на блоки и поэтому будут подвергаться более слабой фильтрации. Таким образом, фильтр снятия разбиения на блоки очень рудиментарным образом учитывает изменение статистики с относительной позицией в блочном преобразовании. Фильтрация проводится на месте на уровне макроблоков, при этом сначала осуществляется горизонтальная фильтрация вертикальных краев, а затем вертикальная фильтрация горизонтальных краев.
Процедуру определения, какие фильтры применять, можно рассматривать как процесс классификации и можно осуществлять на стороне декодера без необходимости в какой-либо дополнительной информации. Преимущество состоит в том, что не нужно передавать никакой информации о классификации и на стороне декодера можно использовать известные схемы классификации. Идея изобретения сводится к тому, что вместо использования только стандартных фиксированных фильтров на стороне декодера стандартные фильтры заменяются адаптивными фильтрами и для каждого класса устанавливается оптимальный набор параметров. Вычислительная мощность для классификации на стороне декодера не изменяется, что является преимуществом.
В простом варианте осуществления известные коэффициенты на стороне декодера просто копируются, но параметры фильтра являются адаптивными, в более развитых вариантах осуществления коэффициенты определения для выбора класса также являются адаптивными, например, за счет того, что условия 1 и 2 являются адаптивными.
Согласно варианту осуществления способ реализован в двухпроводной процедуре. На первом этапе алгоритм обрабатывает все макроблоки, чтобы определить, какой тип фильтра подлежит применению к каждому пикселю.
В следующем проходе все пиксели, которые подвергаются действию конкретного фильтра, собираются, и оптимальные коэффициенты фильтра оцениваются в смысле СКО (среднеквадратической ошибки). Этот процесс повторяется для всех фильтров. Однако поскольку фильтрация осуществляется на месте, опорный кадр предпочтительно обновляется между ними. Другими словами, каждый раз после вычисления коэффициентов фильтра для класса пикселей фильтр применяется к текущему опорному кадру до продолжения определения коэффициентов для следующего фильтра.
Если фильтр, адаптивный к сцене, работает в цикле, важно, чтобы упорядочение процесса фильтрации на стороне кодера и декодера было одинаковым. Согласно варианту осуществления это достигается фиксацией порядка применения фильтров. Простое развитие до такой реализации состоит в определении оптимального порядка фильтрации на стороне кодера и сигнализации порядка фильтра с потоком, тогда выход 157 будет равен F(C), т.е. коэффициентам фильтра и S(F), т.е. порядку, в котором нужно применять фильтры. В силу фильтрации на месте операция фильтрации не изменяется, и изменение порядка фильтрации может повысить производительность. Во избежание нелинейностей в результате внутрицикловой операции оптимальные коэффициенты фильтра оцениваются покадрово.
Во избежание нелинейностей в результате внутрицикловой операции оптимальные коэффициенты фильтра оцениваются покадрово. По сравнению с эквивалентным пост-фильтром, внутрицикловая операция приводит к дополнительному снижению битовой скорости на 1-1.5%. Это можно объяснить тем фактом, что фильтр улучшает не только конечное изображение, но и опорное изображение, обеспечивая более высокое качество для компенсации движения. Еще одно преимущество внутрицикловой фильтрации состоит в том, что она гарантирует определенный уровень производительности, хотя пост-фильтрация обычно является необязательной. Выяснилось, что, по сравнению с алгоритмом фильтра снятия разбиения на блоки, который делает выбор из набора заранее заданных фильтров с фиксированными коэффициентами, на основании типа края и выбранного режима кодирования, производительность снятия разбиения на блоки путем оценивания оптимальных коэффициентов, связанных с каждым из этих фильтров, и сигнализации их с видеопотоком составляла порядка 5-10%. На фиг.17 показаны измерения снижения битовой скорости с использованием адаптивных активных фильтров по сравнению с фиксированными фильтрами разбиения на блоки согласно стандарту H.264 с использованием стандартных методов классификации с использованием алгоритма классификации, предложенного Листом (List) и др. в IEEE transaction on Circuits and Systems for Video Technology 13(7): 614-619. Кривые C и D относятся к разным выборам фиксированных indexA и indexB, см. фиг.16. Преимущество изобретения очевидно, использование адаптивных коэффициентов фильтра вместо фиксированных фильтров приводит к значительному снижению битовой скорости.
Как объяснено выше, дополнительные усовершенствования можно получить путем оптимизации порядка применения фильтра.
Дополнительные усовершенствования получаются путем адаптивной оптимизации классификации, например, чтобы классификация адаптивных активных фильтров зависела от относительной позиции в блочном преобразовании. На фиг.17 показан результат для варианта осуществления, в котором критерии классификации стандартных фиксированных фильтров снятия разбиения на блоки не были оптимизированы для изобретения, но просто скопированы. Довольно значительный эффект в снижении битовой скорости говорит о том, что еще остается пространство для усовершенствования за счет дополнительной оптимизации классификации и/или критериев выбора фильтра.
Вышеописанный вариант осуществления классификации на блочной основе является примером более широкой группы вариантов осуществления, в которых классификация и/или фильтрация сделана зависящей от положения, в данном случае положения в блоке.
Другие примеры в упомянутой группе вариантов осуществления таковы:
Производить классификацию в зависимости от позиции в изображении, например вблизи границы используется другое количество классов и другой, упрощенный, набор адаптивных фильтров, по сравнению с центральными областями, в которых используется большее количество классов и/или более сложные фильтры. Это позволяет экономить на данных, подлежащих передаче.
Сделать классификацию объектно-зависимой, например область неба может использовать меньше фильтров или менее сложные фильтры. Согласно варианту осуществления фильтры адаптируются к тому, насколько центральными они являются в лицевой сегментированной области (например, вблизи области тени на границе лица). Или же в шаблоне травы или кирпича разные фильтры применяются на краях травинки (для которых может потребоваться повышение резкости) против внутренних областей [и декодер может быть способен повторно оценивать, например, края сегмента кирпича от внутренних областей кирпича] во всей области травы, подлежащей повышению резкости.
Во всех вариантах осуществления классификация, выше также именуемая кластеризацией, осуществляется на данных, адаптируемые фильтры или, в более общем случае, процессы пост-обработки генерируются для каждого класса, и параметры фильтров или, в более общем случае, пост-обработка, на стороне кодера, изменяются и применяются к соответствующим классам данных и оптимизируются для создания, по сравнению с исходным изображением, низкого или минимального искажения или, в более общем случае, оптимальной или увеличенной меры качества, в отношении ослабления артефактов (сжатия) для позиций в соответствующем одном из классов.
Декодер выдает информацию (явно или неявно) для регенерации классификации, используемой на кодере, и параметры для фильтров для кластеров или классов передаются декодеру и применяются на декодере. Как было объяснено, классификация может следовать многими путями, на основании разных концепций (значения, края, движения, шаблона, положения, а также комбинаций таких концепций). Еще один пример основания для классификации состоит в осуществлении классификации в зависимости от выбора сжатия для локальной области. Опять же, на декодирующей стороне известны также факторы, как: какое квантование использовалось, каково движение блока (и, возможно, ошибки предсказания или видимость сниженной ошибки) и т.д. и, опять же, фильтры могут отличаться в зависимости от тех параметров (например, для высокого квантования с использованием фильтра, который смещается/оптимизируется в большей степени в сторону снятия разбиения на блоки и в меньшей степени в сторону повышения резкости).
На фиг.18 показан еще один вариант осуществления. На фиг.18 схематически показаны два окна I и II вокруг пикселя. Окно демонстрирует определенный шаблон. Окно II можно рассматривать как эквивалент окна I, подвергнутого "отражению". Иными словами, при сравнении двух окон наблюдается определенный тип симметрии между двумя окнами.
В этих вариантах осуществления изобретения предпочтительно использовать законы симметрии.
В рамках пост-фильтрации на основе классификации классификация часто основывается на стратегии автокластеризации, в которой пиксели классифицируются с использованием окон вокруг пикселей, например окон n×n и среднего значения в окне. Это весьма гибкий метод классификации, поскольку можно заранее задать любое количество классов. Однако во многих приложениях полное количество классов, которое можно использовать, ограничено, по причине ограничения по ширине полосы и/или емкости хранилища. При ограниченных количествах классов может оказаться очень трудным захватить большое разнообразие локальных шаблонов изображения, возникающих в одном (или нескольких) кадрах. Один способ сокращения этого большого разнообразия состоит в нормализации окон вокруг пикселей в отношении их ориентации до классификации и фактической фильтрации. Эти окна образуют один класс и могут подвергаться пост-фильтрации с помощью одного и того же фильтра. Таким образом, одно и то же количество классов может представлять значительно более широкое разнообразие шаблонов изображения. Помимо вращения можно рассматривать и другие типы геометрической нормализации, например сдвиг и зеркальное отображение.
На фиг.19 представлено несколько шаблонов, которые фактически эквивалентны, но повернуты на 90, 180 или 270 градусов.
На фиг.20 показаны одинаковые или сходные шаблоны, являющиеся отраженными версиями друг друга, на фиг.21 показаны шаблоны, которые являются сдвинутыми версиями друг друга. Гипотеза, на которой базируется вариант осуществления, состоит в том, что различные типы симметрии используются для сокращения этого большого разнообразия путем нормализации окон в отношении их ориентации до классификации и фактической фильтрации. Эти окна образуют один класс и могут подвергаться пост-фильтрации с помощью одного и того же фильтра. Таким образом, одно и то же количество классов может представлять значительно более широкое разнообразие шаблонов изображения. Помимо вращения, показанного на фиг.19, можно рассматривать и другие типы геометрической нормализации, например сдвиг (фиг.21) и зеркальное отображение (фиг.20).
В таком варианте осуществления блок оценки параметров способен осуществлять операцию симметрии на классификации.
Ниже приведен пример, иллюстрирующий, как можно генерировать геометрически инвариантную классификацию, чтобы получить меньшее количество классов. Описание дано в контексте кластеризации, описанной выше, с использованием окон n×n вокруг пикселей и классификации путем минимизации суммы квадратов. Однако очевидно, что подобные рассуждения можно также применять для других типов методов классификации.
Иллюстративная процедура содержит:
этап 1: собрать выборки окон из сжатых кадров;
этап 2: для каждой выборки x окна вывести ее преобразованные версии xi, соответствующие 3 шаблонам вращения, 4 шаблонам отражения и шаблонам сдвига (a это размер апертуры). Пусть размер апертуры a=5, это будет означать, что нужно сгенерировать всего N=3+4+8=15 дополнительных преобразованных шаблонов;
этап 3: расширить метрику расстояния, используемую в алгоритме кластеризации. Если нужно вычислить расстояние между данной выборкой x и центром y кластера, вычисляем расстояние между каждой преобразованной версией выборки x и y и затем выбираем минимальное расстояние;
этап 4: применяя вышеописанный модифицированный алгоритм методом k-средних получаем количество центров кластера (класса), которые являются оптимальными (в смысле СКО) в отношении геометрически инвариантных шаблонов. Однако в ходе генерации фильтра преобразованная версия каждой выборки x, которая приводит к минимальному расстоянию до центра кластера, будет использоваться для оптимизации коэффициентов фильтра.
Выведенные центры кластера (класса) и соответствующие коэффициенты фильтра будут передаваться на сторону декодера для пост-обработки. На стороне декодера для каждой позиции пикселя, кроме использования базисного вектора признака для классификации, нужно генерировать несколько вариантов (как на этапе 2), каждый из которых нужно сравнивать с центрами кластера (класса) для вывода минимального расстояния между всеми вариантами и центрами кластера. Затем соответствующие коэффициенты фильтра выбираются и применяются к выбранному преобразованному варианту. Заметим, что фильтрованные варианты необходимо преобразовывать обратно для применения к декодированному кадру.
Хотя вышеприведенный пример базируется на примере использования минимизации расстояний, его можно легко распространить, например, на стратегию классификации на градиентной основе, например, схематически показанную на фиг.11 и 12. В этом случае после этапа 2 для каждого кандидата преобразованного шаблона соответствующий вектор признака на градиентной основе нужно вычислить и использовать для кластеризации.
Заметим, что предложенный способ также можно применять к внутрицикловой фильтрации.
Были получены экспериментальные результаты.
Вышеописанный вариант осуществления был реализован в виде программного обеспечения на основе H.264 и экспериментирования с последовательностями SD-разрешения, с набором параметров квантования QP от 28 до 34. Геометрически инвариантная фильтрация была реализована как дополнительная опция признака для внутрицикловой пост-фильтрации. Мы измерили коэффициент усиления PSNR для каждого кадра, и для большинства кадров наблюдается коэффициент усиления от 0,03 дБ до 0,06 дБ по сравнению с отсутствием использования геометрической инвариантности (при том же количестве классов). Для некоторых кадров достигнут коэффициент усиления до 0,1 дБ. Поскольку добавление геометрической инвариантности не требует дополнительного увеличения битовой скорости, геометрическая инвариантность обеспечивает дополнительное усовершенствование существующей внутрицикловой фильтрации, без задержек.
В наших экспериментах мы также обратили внимание на то, что для некоторых кадров обеспечение возможности геометрически инвариантной фильтрации может обеспечивать отрицательный эффект в отношении PSNR. Это может быть результатом недостаточного разнообразия шаблонов в кадре, и использование геометрической инвариантности не может положительно влиять на качество. Однако, поскольку классификация и внутрицикловая фильтрация осуществляются на стороне кодера, кодер может принять решение запретить использование геометрической инвариантности для текущего кадра, если возникает такой отрицательный коэффициент усиления. Это означает, что один дополнительный "бит сигнала" должен передаваться для каждого кадра для указания, используется ли геометрическая инвариантность. По сравнению с полной битовой скоростью, это, очевидно, является пренебрежимо малой служебной нагрузкой, хотя средний коэффициент усиления возрастает.
2. Переключение на всех режимах преобразования (например, 3 режимах вращения, 4 режимах отражения и нескольких режимах сдвига) может не обеспечивать оптимальной производительности в отношении PSNR. Например, для последовательности Вертолет мы нашли, что в среднем использование 2 режимов зеркального отображения (вертикальное и горизонтальное транспонирование) и режимов сдвига даст наилучшую производительность. Однако, в зависимости от последовательности, можно принимать решение на переключение на определенные режимы с отключением других. Такая тонкая настройка эквивалентна использованию геометрической инвариантности или нет.
Преобразование, инвариантное к симметрии (отражение, сдвиг, вращение), является подклассом большого класса преобразований, инвариантных относительно шаблона.
Другой простой операцией, инвариантной относительно шаблона, является масштабирование.
Другие примеры шаблонов, демонстрирующих определенную инвариантность к преобразованиям, показаны на фиг.22a-22c.
Пример A: не точно подобные, но близкие к червеобразными структуры: можно производить преобразование "неточного вращения", например: классифицировать пиксели в блоке на темные и яркие [например, выше среднего для блока], и использовать "код ориентации цепи" для проверки подобия: Например: Если направленное изменение происходит в том же направлении компаса, и длина отличается не более чем на 1 пиксель для каждой ориентированной последовательности пикселей (например, 2 против 3-пиксельного начального сегмента), шаблон можно рассматривать аналогично и обрабатывать аналогичным фильтром (например, с определенным размером ядра размывания).
Пример B: можно также нормализовать (значение серого) высоту края (хотя в некоторых случаях фильтра [например, фильтр реализует изменение краевой интенсивности] может быть лучше адаптировать фильтр также к высоте края, но в этих случаях можно, например, классифицировать высоту краевой ступеньки в ряде подклассов (сильный, средний, низкий край).
Пример C представляет собой другой пример, который можно использовать, например, для обработки (псевдо-) периодических текстур (например, с нелинейной функцией, которая оставляет свои верхние части значения серого, но зависит от их долин [может, например, углублять темные области между травинками]).
Шаблон иллюстративно моделируется [это может быть подогнано к нижележащим данным] в качестве синусоидальной дифракционной решетки определенной высоты h [значение серости/яркости/цвета самого яркого пикселя - например, 240- минус наиболее темного -например, 10-], наклона альфа (который приводит к расстоянию D между вершинами), и он имеет определенную пространственную ориентацию бета в блоке (символически показанную здесь как 45 градусов, но это нельзя показать одновременно на графике значения серого в поперечном сечении, поскольку он имеет только одно пространственное измерение).
Все шаблоны со значениями альфа, h, D, которые не слишком сильно отличаются, можно затем классифицировать в одном и том же классе текстур, или, опять же, некоторые подклассы можно создать в возможном диапазоне значений [линейно или нелинейно], и затем параметризованные фильтры можно обучать f(h, alfa); это можно делать, например, проверяя, как коэффициенты фильтра изменяются по разным классам диапазона (h, alfa), и моделируя их многочленами.
На фиг.23 схематически показан сигнал задания изображения согласно изобретению. Сигнал задания изображения содержит информацию изображения, СД в этом примере означает "сжатые данные", которая задает контент изображения;
совокупность наборов параметров управления, задающих параметры управления схемы обработки изображения для пост-обработки упомянутого контента на соответствующих позициях в изображении, в этом примере параметры С задания класса и наборы параметров для каждого класса F(C), например наборы коэффициентов фильтра.
Параметры задания класса могут иметь различные формы в зависимости от пути, выбранные для задания класса. Параметры задания класса могут указывать, как задаются классы (по значению, краю, шаблону, на блочной основе, по вектору движения и т.д.), или могут иметь параметры, непосредственно задающие центры кластера (см. фиг.12). В некоторых вариантах осуществления параметры задания класса могут отсутствовать, например, если используется фиксированный способ для задания классов на кодере и декодере.
Наборы параметров для каждого набора могут представлять собой коэффициенты фильтра. Наборы параметров можно задавать в виде абсолютных значений, например точного значения каждого параметра, или в виде относительных значений, например как изменения параметров в наборе параметров по сравнению с предыдущими значениями.
Согласно вариантам осуществления сигнал задания изображения может содержать информацию о различных отдельных операциях, каждая из которых имеет отдельную классификацию и наборы параметров для классов. Например, внутрицикловая операция снятия разбиения на блоки может сопровождаться дополнительной обработкой на основании кластеризации на градиентной основе в изображении после цикла декодирования. Для каждого из двух упомянутых этапов процесса информация о классификации и наборах коэффициентов для различных классов может присутствовать в сигнале задания изображения. Каждая классификация базируется на отдельном принципе, и коэффициенты также различны, поэтому информация будет различаться.
Данные задания класса и наборы параметров можно обеспечивать любым пригодным способом, например в виде заголовка, с помощью флагов или как отдельный сигнал.
Изобретение изложено в формуле изобретения. Используемый здесь термин "содержащий" не исключает наличия других элементов или этапов, употребление названия элемента в единственном числе не исключает наличия совокупности таких элементов, и один процессор или другое устройство может выполнять функции нескольких средств, упомянутых в формуле изобретения. Термин "схема" охватывает программируемые схемы, запрограммированные на осуществление функции схемы. Условные обозначения в формуле изобретения не следует рассматривать в порядке ограничения объема.
Изобретение можно кратко описать следующим образом.
Кластеры пикселей задаются для использования при сжатии и снятии сжатия изображения. Информация изображения, используемая для задания кластеров, может включать в себя значения пикселя в заранее определенных позициях относительно пикселя или соответствующие векторы движения, градиенты, текстуру и т.д. В ходе сжатия изображений информация изображения относительно пикселей исследуется для определения кластера, которому он принадлежит. Таким образом, пиксели можно классифицировать согласно кластеру для их информации изображения. Согласно варианту осуществления определения кластеров выбираются динамически, в зависимости от контента изображения. Для каждого кластера набор параметров управления вычисляется для операции пост-обработки, например коэффициенты фильтра для фильтрации или статистические данные для локальной генерации текстуры. Набор параметров управления выбирается в зависимости от контента изображения, поэтому когда операция пост-обработки применяется к изображению после снятия сжатия, она будет повышать качество изображения для пикселей, которые классифицируются как принадлежащие кластеру. Сжатое изображение и наборы параметров управления передаются на устройство снятия сжатия. После снятия сжатия информация изображения, которая представляет изображение со снятым сжатием, исследуется для классификации пикселей согласно кластерам, и разные наборы параметров управления для выбранных кластеров используются для управления пост-обработкой в положениях пикселей.