Способ и устройство для фильтрации изображений с адаптивными коэффициентами множителя

Изобретение относится к области технологий кодирования видеоизображений и/или статических изображений. Предложено устройство и способ фильтрации восстановленных изображений, в частности видеоизображений, с помощью адаптивных мультипликативных фильтров. Эффективность операции фильтрации повышается за счет ограничения допустимых значений коэффициентов фильтра теми, которые имеют только ограниченное количество «единиц» в двоичном представлении. 4 н. и 10 з.п. ф-лы, 11 ил.

 

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

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

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

С момента разработки в 1990 году блочного гибридного подхода к кодированию видео в стандарте H.261 были внедрены новые способы и инструменты кодирования видео, которые легли в основу новых стандартов кодирования видео. Одной из задач большинства стандартов кодирования видео было снижение скорости передачи данных по сравнению с его предшествующим стандартом без ущерба качества изображения. Дополнительные стандарты кодирования видео содержат MPEG-1 видео, MPEG-2 видео, ITU-T H.262/MPEG-2, ITU-T H.263, ITU-T H.264/MPEG-4, часть 10, усовершенствованное кодирование видео (Advanced Video Coding, AVC), ITU-T H.265, высокоэффективное кодирование видео (High Efficiency Video Coding, HEVC) и расширения, например, масштабируемость и/или трехмерные (three-dimensional, 3D) расширения этих стандартов.

На фиг.1 показана блок-схема, иллюстрирующая вариант осуществления системы 300 кодирования, которая будет описана более подробно ниже.

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

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

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

Далее будет обобщена некоторая справочная информация об адаптивной фильтрации.

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

Общая информация об адаптивной фильтрации изложена в статье «Адаптивная контурная фильтрация для кодирования видео» Chia-Yang Tsai, Ching-Yeh Chen, Tomoo Yamakage, In Suk Chong, Yu-Wen Huang, Chin-Ming Fu, Takayuki Itoh, Takayuki Watanabe, Takeshi Chujoh, Marta Karczewicz и Shaw-Min Lei, опубликованной в: IEEE Journal of Selected Topics in Signal Processing (Volume: 7, Issue: 6, Dec. 2013).

Описание, приведенное в вышеуказанном документе, раскрывает конкретную реализацию операции фильтрации с адаптивными коэффициентами фильтрации. Общие принципы работы можно описать следующим образом.

Как правило, уравнение фильтрации выглядит следующим образом:

Здесь R (i, j) является выборкой в кадре изображения до фильтрации по координате (i, j).

R’(i, j) является выборкой в кадре изображения после фильтрации, f (k, l) является коэффициентами фильтра.

На фиг. 4 показан пример ядра фильтра. В этом примере C20 является центральной координатой ядра фильтра (k = 0, l = 0), и L равно 8.

В этом примере ядро фильтра симметрично относительно центра. Но, в общем, данное утверждение неверно.

В случае использования целочисленной арифметики уравнение фильтрации можно записать как:

Здесь N является числом сдвига бита выходного сигнала, то есть выходной сигнал делится на коэффициент нормализации. В частности, N может быть заранее определен. «Смещение» является скалярной величиной для компенсации потерь в целочисленной арифметике. В случае сдвига бита на N, смещение может быть 2(N-1). В приведенном выше уравнении коэффициенты f (k, l) фильтрации могут иметь только целые значения, а не дробные. Реализация уравнения фильтрации в соответствии с целочисленной арифметикой важна для обеспечения точной реализации в оборудовании. Операция сдвига вправо «>> N» имеет эффект деления на 2N с последующей операцией округления в меньшую сторону.

Обычно (но не обязательно) следующее уравнение выполняется, если не требуется изменение среднего уровня освещенности.

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

В приведенном выше уравнении O (i, j) обозначает выборку исходного изображения.

На фиг. 5 показаны некоторые типичные примерные формы фильтров для адаптивных фильтров. На чертеже слева показан ромбовидный фильтр 5×5 (фильтр с 13 отводами с 7 уникальными коэффициентами), на среднем чертеже показан ромбовидный фильтр 7x7 (фильтр с 25 отводами с 13 уникальными коэффициентами) и на чертеже справа показан ромбовидный фильтр 9×9 (фильтр с 41 отводами с 21 уникальными коэффициентами).

Термин «адаптивная» фильтрация относится к тому факту, что процесс фильтрации может регулироваться кодером. Это касается, например, формы фильтра, размера фильтра, количества коэффициентов фильтрации и значений коэффициентов фильтрации. Эти данные, также известные как «подсказки фильтра», передаются декодеру.

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

Техническая задача заключается в том, что реализация операции умножения является дорогостоящей, особенно в специализированных аппаратных реализациях. Применение фильтра требует сравнительно большого числа операций умножения фильтрации (например, 41 умножения на пиксель в случае фильтра в форме ромба 9 × 9, как показано на фиг.4).

Это более подробно проиллюстрировано ниже.

Предположим, мы хотим умножить два беззнаковых восьмибитных целых числа. Коэффициент фильтра равен C и выборка пикселя равна A.

Процесс умножения можно разложить на 8 однобитовых умножений, каждое из которых может быть реализовано как операция сдвига бита в двоичной арифметике, и 7 операций сложения, как показано ниже. Следовательно, примерно 1 умножение эквивалентно 7 сложениям.

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

Здесь 8-битный беззнаковый коэффициент С фильтра показан в двоичном представлении, где C [0] является младшим битом коэффициента C, и C [7] является старшим битом. Аналогично, A [7], A [6], … A [0] являются битами, соответствующие от старшего бита к младшему биту по порядку. Представлена операция P = C * A в двоичной арифметике, и результат отображается в самой нижней строке.

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

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

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

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

На чертеже большие окружности соответствуют фактическим позициям выборки в изображении, и меньшие окружности представляют собой дробные позиции, которые генерируются применением операции интерполяционной фильтрации. В конкретном примере есть 3 дробных позиции (левая четверть пикселя, половина пикселя и правая четверть пикселя) между двумя фактическими позициями выборки изображения. В левой части чертежа показан интерполяционный фильтр, применяемый для интерполяции позиций полу-пикселя (half-pel). Правая сторона чертежа иллюстрирует интерполяционный фильтр, который будет использоваться для позиций четверти пикселя (quartet-pel). Хотя эти фильтры отличаются друг от друга, каждый интерполяционный фильтр является фиксированным. Как указано, пример на фиг. 6 предоставлен только для иллюстративных целей и не является частью изобретения.

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

Раскрытие сущности изобретения

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Более конкретно, длина кодовых слов зависит от количества различных значений коэффициента множителя. Другими словами, существует столько кодовых слов, сколько возможных значений коэффициентов фильтра. Отображение кодового слова на значение (которое является отображением «один-к-одному») может быть фиксированным отображением или может изменяться в зависимости от переданной дополнительной информации.

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

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

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

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

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

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

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

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

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

Далее варианты осуществления изобретения описаны более подробно со ссылкой на прилагаемые чертежи, на которых:

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

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

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

Фиг.4 показывает пример ядра фильтра, к которому может быть применено изобретение;

Фиг.5 показывает примеры типовых форм фильтров для адаптивных фильтров, к которым может применяться изобретение;

Фиг.6 показывает пример множества фиксированных фильтров, которые должны применяться при интерполяционной фильтрации, в качестве сравнительного примера;

Фиг.7 иллюстрирует конкретный пример реализации варианта осуществления изобретения;

Фиг.8A иллюстрирует примерную обработку на стороне кодера для кодирования и сигнализации коэффициентов фильтра;

Фиг.8B иллюстрирует примерную обработку на стороне декодера для декодирования и восстановления коэффициентов фильтра;

Фиг.9 иллюстрирует конкретный пример реализации другого варианта осуществления изобретения;

Фиг.10 иллюстрирует конкретный пример реализации еще одного варианта осуществления изобретения и служит для иллюстрации полученного эффекта изобретения; и

Фиг.11 иллюстрирует дополнительный пример ядра фильтра, к которому может быть применено изобретение.

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

Осуществление изобретения

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

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

Кодирование видео обычно относится к обработке последовательности изображений, которые образуют видео или видеопоследовательность. Вместо термина «изображение» термины «кадр» или «изображение» могут использоваться как синонимы в области кодирования видео. Кодирование видео содержит две части: кодирования видео и декодирования видео. Кодирование видео выполняется на стороне источника, обычно содержащее обработку (например, путем сжатия) исходных видеоизображений для уменьшения объема данных, необходимых для представления видеоизображений (для более эффективного хранения и/или передачи). Декодирование видео выполняется на стороне назначения и обычно содержит обратную обработку по сравнению с кодером для восстановления видеоизображений. Варианты осуществления, относящиеся к «кодированию» видеоизображений (или изображений в целом, как будет объяснено позже), следует понимать как относящиеся как к «кодированию», так и «декодированию» видеоизображений. Комбинация части кодирования и части декодирования также называется CODEC (COding and DECoding).

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

Несколько стандартов кодирования видео, начиная с H.261, принадлежат к группе «гибридных видеокодеков с потерями» (т.е. объединяют пространственное и временное предсказание в области выборки и кодирование с двумерным преобразованием для применения квантования в области преобразования). Каждое изображение видеопоследовательности обычно разделяется на набор неперекрывающихся блоков, и кодирование обычно выполняется на уровне блоков. Другими словами, в кодере видео обычно обрабатывается, то есть, кодируется на уровне блока (video block), например, с использованием пространственного (внутреннее изображение) предсказания и временного (внешнего) предсказания для генерирования блока предсказания, вычитая блок предсказания из текущего блока (блок, который в настоящее время обрабатывается/должен быть обработан) для получения остаточного блока, выполняется преобразование остаточного блока и квантование остаточного блока в области преобразования, чтобы уменьшить объем данных, которые должны быть переданы (сжатие), тогда как в декодере обработка, обратная по сравнению с кодером, применяется к кодированному или сжатому блоку для восстановления текущего блока для представления. Кроме того, кодер дублирует цикл обработки декодера, так что оба будут генерировать идентичные предсказания (например, внутреннее и внешнее предсказания) и/или восстановление для обработки, то есть, кодирования, последующих блоков.

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

В следующих вариантах осуществления со ссылкой на фиг.1-3 приведено описание кодера 100, декодера 200 и системы 300 кодирования (перед более подробным описанием вариантов осуществления изобретения на основе фиг.7-9).

Фиг.1 представляет собой концептуальную или схематическую блок-схему, иллюстрирующую вариант осуществления системы 300 кодирования, например, системы 300 кодирования изображений, в которой система 300 кодирования содержит устройство 310 источника, выполненное с возможностью предоставлять кодированные данные 330, например, кодированное изображение 330, например, в устройство 320 назначения для декодирования закодированных данных 330.

Устройство 310 источника содержит кодер 100 или блок 100 кодирования и может дополнительно, т.е. возможно, содержать источник 312 изображения, блок 314 предварительной обработки, например, блок 314 предварительной обработки изображения, и интерфейс связи или блок 318 связи.

Источник 312 изображения может содержать или быть устройством захвата изображения любого типа, например, для захвата реального изображения и/или устройством формирования изображения любого типа, например процессором компьютерной графики для генерирования компьютерного анимированного изображения, или устройством любого типа для получения и/или предоставления реального изображения, компьютерного анимированного изображения (например, экранного контента, изображения виртуальной реальности (virtual reality, VR) и/или любой их комбинации (например, изображения дополненной реальности (augmented reality, AR). В дальнейшем все эти виды изображений или изображений, а также любой другой вид изображения или изображения будут называться «изображение», «кадр», «данные изображения» или «данные кадра», если специально не указано иное, в то время как предшествующие пояснения, касающиеся терминов «изображение» или «кадр», охватывающие «видеоизображения» и «неподвижные изображения», все еще остаются в силе, если явно не указано иное.

(Цифровое) изображение представляет собой или может рассматриваться как двумерный массив или матрица выборок со значениями интенсивности. Выборка в массиве также может называться пикселем (сокращенная форма элемента изображения) или элементом. Количество выборок в горизонтальном и вертикальном направлении (или по оси) массива или изображения определяет размер и/или разрешение изображения. Для представления цвета обычно используются три цветовых компонента, то есть, изображение может быть представлено или включать в себя три массива выборок. В формате RGB или цветовом пространстве изображение содержит соответствующий массив выборок красного, зеленого и синего цветов. Однако при кодировании видео каждый пиксель обычно представлен в формате яркости/цветности или цветовом пространстве, например, YCbCr, который содержит компонент яркости, обозначенный Y (иногда вместо него также используется L), и два компонента цветности, обозначенные Cb и Cr. Компонент Y яркости (или краткости, яркости) представляет яркость или уровень интенсивности серого (например, как в полутоновом изображении), в то время как два компонента цветности (или, для краткости, цветности) Cb и Cr представляют компоненты цветности или информацию о цвете. Соответственно, изображение в формате YCbCr содержит массив выборок яркости значений (Y) выборок яркости и два массива выборок цветности значений (Cb и Cr) цветности. Изображения в формате RGB могут быть преобразованы или трансформированы в формат YCbCr и наоборот, этот процесс также известен как преобразование цвета или трансформация. Если изображение является монохромным, оно может содержать только массив выборок яркости.

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

Интерфейсы между блоками внутри каждого устройства включают в себя кабельные соединения, интерфейсы USB, интерфейсы 318 и 322 связи между устройством 310 источника и устройством 320 назначения включают в себя кабельные соединения, интерфейсы USB, радиоинтерфейсы.

В отличие от блока 314 предварительной обработки и обработки, выполняемой блоком 314 предварительной обработки, изображение или данные 313 изображения также могут называться необработанным изображением или данными 313 необработанного изображения.

Блок 314 предварительной обработки выполнен с возможностью принимать (необработанные) данные 313 изображения и выполнять предварительную обработку данных 313 изображения для получения предварительно обработанного изображения 315 или предварительно обработанных данных 315 изображения. Предварительная обработка, выполняемая блоком 314 предварительной обработки, может, например, содержать обрезку, преобразование цветового формата (например, из RGB в YCbCr), цветокоррекцию или устранение шумов.

Кодер 100 выполнен с возможностью принимать предварительно обработанные данные 315 изображения и предоставлять кодированные данные 171 изображения (дополнительные подробности будут описаны, например, со ссылкой на фиг. 2).

Интерфейс 318 связи устройства 310 источника может быть выполнен с возможностью принимать кодированные данные 171 изображения и непосредственно передавать их другому устройству, например, устройству 320 назначения или любому другому устройству, для хранения или прямого восстановления или для обработки данных 171 кодированного изображения для, соответственно, перед сохранением закодированных данных 330 и/или передачей закодированных данных 330 в другое устройство, например, в устройство 320 назначения или любое другое устройство для декодирования или сохранения.

Устройство 320 назначения содержит декодер 200 или блок 200 декодирования и может дополнительно, т.е. возможно, содержать интерфейс связи или блок 322 связи, блок 326 постобработки и устройство 328 отображения.

Интерфейс 322 связи устройства 320 назначения выполнено с возможностью принимать кодированные данные 171 изображения или кодированные данные 330, например, непосредственно из устройства 310 источника или из любого другого источника, например памяти, например, памяти данных кодированного изображения.

Интерфейс 318 связи и интерфейс 322 связи могут быть выполнены с возможностью передавать, соответственно, принимать кодированные данные 171 изображения или кодированные данные 330 через прямую линию связи между устройством 310 источника и устройством 320 назначения, например, прямое проводное или беспроводное соединение, включающее в себя оптическое соединение или через любой вид сети, например, проводную или беспроводную сеть или любую их комбинацию, или любой вид частной и публичной сети, или любую их комбинацию.

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

Интерфейс 322 связи, образующий аналог интерфейса 318 связи, может быть, например, выполнен с возможностью распаковывать закодированные данные 330 для получения кодированных данных 171 изображения, а также может быть выполнен с возможностью выполнять защиту от потери данных и восстанавливать данные после потери, например, содержащую маскировку ошибок.

Как интерфейс 318 связи, так и интерфейс 322 связи могут быть выполнены как однонаправленные интерфейсы связи, как показано стрелкой, для кодированных данных 330 изображения на фиг.1, указывающей от устройства 310 источника к устройству 320 назначения, или как интерфейсы двунаправленной связи, и может быть выполнен с возможностью, например, отправлять и принимать сообщения, например, для установки соединения, для подтверждения и/или повторной отправки потерянных или задержанных данных, включающие в себя данные изображения, и осуществлять обмен любой другой информацией, относящейся к каналу связи, и/или передавать данные, например, передача кодированных данных изображения.

Декодер 200 выполнен с возможностью принимать кодированные данные 171 изображения и предоставлять декодированные данные 231 изображения или декодированное изображение 231 (дополнительные подробности будут описаны, например, со ссылкой на фиг. 9).

Процессор 326 постобработки устройства 320 назначения выполнен с возможностью пост-обработки декодированных данных 231 изображения, например, декодированного изображения 231, для получения данных 327 постобработанного изображения, например, постобработанного изображения 327. Постобработка, выполняемая блоком 326 постобработки, может содержать, например, преобразование цветового формата (например, из YCbCr в RGB), цветокоррекцию, обрезку или повторную выборку, или любую другую обработку, например, для подготовки декодированных данных 231 изображения для отображения, например, с помощью устройства 328 отображения.

Устройство 328 отображения устройства 320 назначения выполнено с возможностью принимать данные 327 постобработанного изображения для отображения изображения, например, пользователю или зрителю. Устройство 328 отображения может быть или содержать любой вид дисплея для представления восстановленного изображения, например, интегрированный или внешний дисплей или монитор. Дисплеи могут, например, содержать электронно-лучевые трубки (cathode ray tubes, CRT), жидкокристаллические дисплеи (liquid crystal displays, LCD), плазменные дисплеи, дисплеи на органических светодиодах (organic light emitting diodes, OLED) или любой другой дисплей, такой как проекторы, голографические дисплеи, устройства для генерации голограмм.

Хотя фиг. 1 изображает устройство 310 источника и устройство 320 назначения как отдельные устройства, варианты осуществления устройств также могут содержать оба или обе функциональные возможности устройства 310 источника или соответствующие функциональные возможности устройства 320 назначения. В таких вариантах осуществления устройство 310 источника или соответствующие функциональные возможности и устройство 320 назначения или соответствующие функциональные возможности могут быть реализованы с использованием одного и того же аппаратного и/или программного обеспечения или с помощью отдельных аппаратных средств и/или программного обеспечения или любой их комбинации.

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

Далее будут представлены несколько неограничивающих примеров для системы 300 кодирования, устройства 310 источника и/или устройства 320 назначения.

Различные электронные изделия, такие как смартфон, планшет или портативная камера со встроенным дисплеем, могут рассматриваться как примеры системы 300 кодирования. Они содержат устройство 328 отображения и большинство из них содержат встроенную камеру, то есть, источник 312 изображения. Данные изображения, снятые встроенной камерой, обрабатываются и отображаются. Обработка может включать в себя внутреннее кодирование и декодирование данных изображения. Кроме того, кодированные данные изображения могут храниться во встроенной памяти.

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

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

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

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

Напротив, такие устройства, как интеллектуальные очки или 3D-очки, например, используемые для AR или VR, представляют собой устройство 320 назначения. Они принимают закодированные данные изображения и их отображают.

Следовательно, устройство 310 источника и устройство 320 назначения, как показано на фиг.1, представляют собой просто примерные варианты осуществления изобретения, и варианты осуществления изобретения не ограничиваются теми, которые показаны на фиг.1.

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

КОДЕР И СПОСОБ КОДИРОВАНИЯ

На фиг.2 показана схематическая/концептуальная блок-схема варианта осуществления кодера 100, например, кодера 100 изображения, который содержит ввод 102, блок 104 вычисления остаточной величины, блок 106 преобразования, блок 108 квантования, блок 110 обратного квантования и блок 112 обратного преобразования, блок 114 восстановления, буфер 116, контурный фильтр 120, буфер 130 декодированных изображений (decoded picture buffer, DPB), блок 160 предсказания, который включает в себя блок 142 внешней оценки, блок 144 внешнего предсказания, блок 152 внутренней оценки, блок 154 внутреннего предсказания и блок 162 выбора режима, блок 170 энтропийного кодирования и вывод 172. Видеокодер 100, показанный на фиг. 2, также может называться гибридным видеокодером или видеокодером согласно гибридному видеокодеку. Каждый блок может содержать процессор и энергонезависимую память, чтобы выполнять свои этапы обработки, выполняя код, хранящийся в энергонезависимой памяти, процессором.

Например, блок 104 вычисления остаточной величины, блок 106 преобразования, блок 108 квантования и блок 170 энтропийного кодирования образуют прямой тракт сигнала кодера 100, тогда как, например, блок 110 обратного квантования, блок 112 обратного преобразования, блок 114 восстановления, буфер 116, контурный фильтр 120, буфер 130 декодированных изображений (decoded picture buffer, DPB), блок 144 внешнего предсказания и блок 154 внутреннего предсказания образуют обратный тракт сигнала кодера, при этом, обратный тракт сигнала кодера соответствует тракту сигнала декодера, чтобы обеспечить обратную обработку для идентичного восстановления и предсказания (см. декодер 200 на фиг. 3).

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

РАЗДЕЛЕНИЕ

Варианты осуществления кодера 100 могут содержать блок разделения (не изображенный на фиг.2), например, который также может называться блоком разделения изображения, выполненный с возможностью разделять изображения 103 на множество блоков, например, блоки, подобные блоку 103, как правило, на множество неперекрывающихся блоков. Блок разделения может быть выполнен с возможностью использовать один и тот же размер блока для всех изображений видеопоследовательности и соответствующей сетки, определяющей размер блока, или для изменения размера блока между изображениями или подмножествами или группами изображений, а также для разделения каждого изображения на соответствующие блоки.

Каждый блок множества блоков может иметь квадратные размеры или более общие прямоугольные размеры. Блоки, являющиеся областями изображения непрямоугольной формы, могут не отображаться.

Подобно изображению 101, блок 103 снова является или может рассматриваться как двумерный массив или матрица выборок со значениями интенсивности (значениями выборок), хотя и меньшего размера, чем изображение 101. Другими словами, блок 103 может содержать, например, один массив выборок (например, массив яркости в случае монохромного изображения 101) или три массива выборок (например, массивы яркости и два массива цветности в случае цветного изображения 101) или любое другое количество и/или вид массивов в зависимости от применяемого цветового формата. Количество выборок в горизонтальном и вертикальном направлении (или по оси) блока 103 определяет размер блока 103.

Кодер 100, как показано на фиг.2, выполнен с возможностью кодировать изображение 101 блок за блоком, например, кодирование и предсказание выполняется для каждого блока 103.

ВЫЧИСЛЕННИЕ ОСТАТОЧНОЧНОЙ ВЕЛИЧИНЫ

Блок 104 вычисления остаточной величины выполнен с возможностью вычислять остаточный блок 105 на основании блока 103 изображения и блока 165 предсказания (дополнительные подробности о блоке 165 предсказания предоставлены позже), например, путем вычитания значений выборки блока 165 предсказания из выборки значения блока 103 изображения, выборка за выборкой (пиксель за пикселем) для получения остаточного блока 105 в области выборки.

ПРЕОБРАЗОВАНИЕ

Блок 106 преобразования выполнен с возможностью применять преобразование, например, пространственно-частотное преобразование или линейное пространственное преобразование, например, дискретное косинусное преобразование (discrete cosine transform, DCT) или дискретное синусоидальное преобразование (discrete sine transform, DST), к значениям выборок остаточного блока 105, чтобы получить преобразованные коэффициенты 107 в области преобразования. Преобразованные коэффициенты 107 могут также называться преобразованными остаточными коэффициентами и представлять остаточный блок 105 в области преобразования.

Блок 106 преобразования может быть выполнен с возможностью применять целочисленные аппроксимации DCT/DST, такие как базовые преобразования, определенные для HEVC/H.265. По сравнению с ортонормированным преобразованием DCT, такие целочисленные аппроксимации обычно масштабируются с определенным коэффициентом. Чтобы сохранить норму остаточного блока, который обрабатывается прямым и обратным преобразованиями, применяются дополнительные коэффициенты масштабирования как часть процесса преобразования. Коэффициенты масштабирования обычно выбираются на основании определенных ограничений, таких как коэффициенты масштабирования, которые являются степенью два для операции сдвига, битовая глубина преобразованных коэффициентов, компромисс между точностью и затратами на реализацию и т.д. Конкретные коэффициенты масштабирования, например, указываются для обратного преобразования, например, с помощью блока 212 обратного преобразования в декодере 200 (и соответствующее обратному преобразованию, например, с помощью блока 112 обратного преобразования в кодере 100) и могут быть указаны соответственно соответствующие коэффициенты масштабирования для прямого преобразования, например, с помощью блока 106 преобразования в кодере 100.

КВАНТОВАНИЕ

Блок 108 квантования выполнен с возможностью квантовать преобразованные коэффициенты 107 для получения квантованных коэффициентов 109, например, путем применения скалярного квантования или векторного квантования. Квантованные коэффициенты 109 также могут называться квантованными остаточными коэффициентами 109. Например, для скалярного квантования может применяться другое масштабирование для достижения более тонкого или более грубого квантования. Меньшие размеры этапов квантования соответствуют более тонкому квантованию, тогда как большие размеры этапов квантования соответствуют более грубому квантованию. Применимый размер этапа квантования может быть указан параметром квантования (quantization parameter, QP). Параметр квантования может, например, быть индексом для заранее определенного набора применимых размеров этапа квантования. Например, малые параметры квантования могут соответствовать точному квантованию (малые размеры этапов квантования), и большие параметры квантования могут соответствовать грубому квантованию (большие размеры этапов квантования) или наоборот. Квантование может включать в себя деление на размер этапа квантования и соответствующее или обратное деквантование, например, посредством обратного квантования 110, может включать в себя умножение на размер этапа квантования. Варианты осуществления согласно высокоэффективному кодированию видео (High-Efficiency Video Coding, HEVC) могут быть выполнены с возможностью использовать параметр квантования для определения размера этапа квантования. Как правило, размер этапа квантования может быть вычислен на основании параметра квантования с использованием аппроксимации с фиксированной точкой уравнения, включающее в себя деление. Дополнительные коэффициенты масштабирования могут быть введены для квантования и деквантования, чтобы восстановить норму остаточного блока, который может быть изменен из-за масштабирования, используемого в приближении фиксированной точки уравнения для размера этапа квантования и параметра квантования. В одной примерной реализации масштабирование обратного преобразования и деквантование могут быть объединены. В качестве альтернативы могут использоваться сконфигурированные таблицы квантования, и кодер может передавать их в декодер, например, в битовом потоке. Квантование является операцией с потерями, в котором потери возрастают с увеличением размеров этапов квантования.

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

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

Блок 112 обратного преобразования выполнен с возможностью применять обратное преобразование, применяемое блоком 106 преобразования, например, обратное дискретное косинусное преобразование (discrete cosine transform, DCT) или обратное дискретное синусоидальное преобразование (discrete sine transform, DST), чтобы получить блок 113 обратного преобразования в области выборки. Блок 113 обратного преобразования также может упоминаться как деквантованный блок 113 обратного преобразования или остаточный блок 113 обратного преобразования.

Блок 114 восстановления выполнен с возможностью объединять блок 113 обратного преобразования и блок 165 предсказания для получения восстановленного блока 115 в области выборки, например, путем последовательного добавления значений выборок декодированного остаточного блока 113 и значений выборок блока 165 предсказания.

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

Варианты осуществления кодера 100 могут быть выполнены таким образом, что, например, блок 116 буфера используется не только для хранения восстановленных блоков 115 для внутренней оценки 152 и/или внутреннего предсказания 154, но также для блока 120 контурного фильтра и/или, например, блок 116 буфера и блок 130 буфера декодированного изображения образуют один буфер. Дополнительные варианты осуществления могут быть выполнены с возможностью использовать фильтрованные блоки 121 и/или блоки или выборки из буфера 130 декодированного изображения (оба не показаны на фиг.2) в качестве входных данных или основы для внутренней оценки 152 и/или внутреннего предсказания 154.

Блок 120 контурного фильтра (для краткости, «контурный фильтр» 120) выполнен с возможностью фильтрации восстановленного блока 115 для получения фильтрованного блока 121, например, путем применения фильтра удаления блочности адаптивного к выборке смещения (sample-adaptive offset, SAO) или других фильтров, например, фильтры повышения резкости или сглаживания или совместные фильтры. Отфильтрованный блок 121 также может называться фильтрованным восстановленным блоком 121.

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

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

Варианты осуществления кодера 100 (соответственно, блока 120 контурного фильтра) могут быть выполнены с возможностью выводить параметры контурного фильтра, например, непосредственно или энтропийного кодирования через блок 170 энтропийного кодирования или любой другой блок энтропийного кодирования, так что, например, декодер 200 может получать и применять одни и те же параметры контурного фильтра для декодирования.

Буфер 130 декодированных изображений (decoded picture buffer, DPB) выполнен с возможностью принимать и хранить отфильтрованный блок 121. Буфер 130 декодированных изображений может быть дополнительно выполнен с возможностью хранить другие ранее отфильтрованные блоки, например, ранее восстановленные и отфильтрованные блоки 121 того же текущего изображения или различных изображений, например, ранее восстановленных изображений, и может предоставлять полные ранее восстановленные, то есть, декодированные изображения (и соответствующие опорные блоки и выборки) и/или частично восстановленное текущее изображение (и соответствующие опорные блоки и выборки), например, для оценки и/или внешнего предсказания.

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

Блок 160 предсказания, также называемый блоком 160 предсказания блока, выполнен с возможностью принимать или получать блок 103 изображения (блок 103 текущего изображения текущего изображения 101) и декодированные или, по меньшей мере, восстановленные данные изображения, например, опорных выборок одно и то же (текущего) изображения из буфера 116 и/или данные 231 декодированного изображения из одного или множества ранее декодированных изображений из буфера 130 декодированных изображений, и обрабатывать такие данные для предсказания, то есть, для обеспечения блока 165 предсказания, который может быть блоком 145 внешнего предсказания или блоком 155 внутреннего предсказания.

Блок 162 выбора режима может быть выполнен с возможностью выбирать режим предсказания (например, режим внутреннего или внешнего предсказания) и/или соответствующего блока 145 или 155 предсказания, который будет использоваться в качестве блока 165 предсказания для вычисления остаточного блока 105 и для восстановления восстановленного блока 115.

Варианты осуществления блока 162 выбора режима могут быть выполнены с возможностью выбирать режим предсказания (например, из тех, которые поддерживаются блоком 160 предсказания), который обеспечивает наилучшее совпадение или, другими словами, минимальную остаточную величину (минимальная остаточная величина означает лучшее сжатие для передачи или хранения) или минимальные накладные расходы на сигнализацию (минимальные накладные расходы на сигнализацию означают лучшее сжатие для передачи или хранения), или учитывает или уравновешивает и то, и другое. Блок 162 выбора режима может быть выполнен с возможностью определять режим предсказания на основании оптимизации искажения и скорости (rate distortion optimization, RDO), то есть, выбор режима предсказания, который обеспечивает оптимизацию искажения с минимальной скоростью или которое ассоциированное искажение скорости, по меньшей мере, удовлетворяет критерию выбора режима предсказания.

Далее будет более подробно описан процесс обработки предсказания (например, блок 160 предсказания) и выбор режима (например, блоком 162 выбора режима), выполняемые примерным кодером 100.

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

Набор режимов внутреннего предсказания может содержать 32 различных режимов внутреннего предсказания, например, ненаправленные режимы, такие как DC режим (или средний) и планарный режим, или направленные режимы, например, как определено в H.264, или может содержать 65 различных режимов внутреннего предсказания, например, ненаправленные режимы, такие как DC режим (или средний) и планарный режим, или направленные режимы, например, как определено в H.265.

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

В дополнение к вышеупомянутым режимам предсказания могут применяться режим пропуска и/или прямой режим.

Блок 160 предсказания может быть дополнительно выполнен с возможностью разделять блок 103 на более мелкие блоки или подблоки, например, итеративно с использованием квадратичного разделения (quad-tree-partitioning, QT), двоичного разделения (binary partitioning, BT) или разделение троичного дерева (triple-tree-partitioning, TT) или любой их комбинации, а также для выполнения, например, предсказания для каждого из разделенного блока или подблоков блока, при этом выбор режима содержит выбор древовидной структуры разделенного блока 103 и режимов предсказания, применяемых к каждому из разделенных блоков или подблоков.

Блок 142 внешней оценки, также называемый блоком 142 внешней оценки изображения, выполнен с возможностью принимать или получать блок 103 изображения (текущий блок 103 изображения текущего изображения 101) и декодированного изображения 231 или, по меньшей мере, одного или множества ранее восстановленных блоков, например, восстановленных блоков одного или множества других/различных ранее декодированных изображений 231, для внешней оценки (или «внешней оценки изображения»). Например, видеопоследовательность может содержать текущее изображение и ранее декодированные изображения 231 или, другими словами, текущее изображение и ранее декодированные изображения 231 могут быть частью или формировать последовательность изображений, образующих видеопоследовательность.

Кодер 100 может, например, быть выполнен с возможностью выбирать (получать/определять) опорный блок из множества опорных блоков одинаковых или различных изображений из множества других изображений и обеспечивать опорное изображение (или индекс опорного изображения, ...) и/или смещение (пространственное смещение) между позицией (X, Y координаты) опорным блоком и позицией текущего блока в качестве параметров 143 внешней оценки в блок 144 внешнего предсказания. Смещение также называется вектором движения (MV). Внешняя оценка также называется оценкой движения (motion estimation, ME), и внешнее предсказание также называется предсказанием движения (motion estimation, MP).

Блок 144 внешнего предсказания выполнен с возможностью принимать, например, параметр 143 внешнего предсказания и выполнять внешнее предсказание на основании или с использованием параметра 143 внешнего предсказания для получения блока 145 внешнего предсказания.

Хотя на фиг.2 показаны два отдельных блока (или этапы) для внешнего кодирования, а именно, внешняя оценка 142 и внешнее предсказание 152, обе функции могут выполняться как одна (внешняя оценка обычно требует/содержит вычисление/блок внешнего предсказания, т. е. или «вид» внешнего предсказания 154), например, путем итеративного тестирования всех возможных или заранее определенного подмножества возможных режимов внешнего предсказания, сохраняя при этом лучший в настоящее время режим внешнего предсказания и соответствующий блок внешнего предсказания, и используя текущий лучший режим внешнего предсказания и соответствующий блок внешнего предсказания в качестве (окончательного) параметра 143 внешнего предсказания и блок 145 внешнего предсказания без выполнения другого внешнего предсказания 144.

Блок 152 внутренней оценки выполнен с возможностью принимать, например, блок 103 изображения (текущий блок изображения) и одного или множества ранее восстановленных блоков, например, восстановленных соседних блоков, одного и того же изображения для внутренней оценки. Кодер 100 может, например, быть выполнен с возможностью выбирать (получать/определять) режим внутреннего предсказания из множества режимов внутреннего предсказания и предоставлять его в качестве параметра 153 внутренней оценки в блок 154 внутреннего предсказания.

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

Блок 154 внутреннего предсказания выполнен с возможностью определять на основе параметра 153 внутреннего предсказания, например, выбранный режим 153 внутреннего предсказания блока 155 внутреннего предсказания.

Хотя на фиг.2 показаны два отдельных блока (или этапы) для внутреннего кодирования, а именно, внутренняя оценка 152 и внутреннее предсказание 154, обе функции могут выполняться как одна (внутренняя оценка обычно требует/содержит вычисление блока внутреннего предсказания, т.е. или «вид» внутреннего предсказания 154), например, путем итеративного тестирования всех возможных или заранее заданного подмножества возможных режимов внутреннего предсказания с сохранением лучшего в настоящее время режима внутреннего предсказания и соответствующего блока внутреннего предсказания, и с использованием лучшего в настоящее время режима внутреннего предсказания и соответствующего блока внутреннего предсказания в качестве (окончательного) параметра 153 внутреннего предсказания и блок 155 внутреннего предсказания без выполнения другого внутреннего предсказания 154.

Блок 170 энтропийного кодирования выполнен с возможностью применять алгоритм или схему энтропийного кодирования (например, схема кодирования с переменной длиной (variable length coding, VLC), контекстно-адаптивная схема VLC (context adaptive VLC, CALVC), схема арифметического кодирования, схема контекстно-адаптивного двоичного арифметического кодирования (context adaptive binary arithmetic coding, CABAC)) на квантованных остаточных коэффициентах 109, параметрах 143 внешнего предсказания, параметре 153 внутреннего предсказания и/или параметрах контурного фильтра, по отдельности или совместно (или ничего), чтобы получить данные 171 кодированного изображения, которые могут выводиться посредством вывода 172, например, в виде кодированного битового потока 171.

ДЕКОДЕР

Фиг.3 показывает примерный видеодекодер 200, выполненный с возможностью принимать кодированные данные 171 изображения (например, закодированный битовый поток), например, закодированные кодером 100, для получения декодированного изображения 231.

Декодер 200 содержит ввод 202, блок 204 энтропийного декодирования, блок 210 обратного квантования, блок 212 обратного преобразования, блок 214 восстановления, буфер 216, контурный фильтр 220, буфер 230 декодированных изображений, блок 260 предсказания, который включает в себя блок 244 внешнего предсказания, блок 254 внутреннего предсказания и блок 260 выбора режима и вывод 232.

Блок 204 энтропийного декодирования выполнен с возможностью выполнять энтропийное декодирование кодированных данных 171 изображения для получения, например, квантованных коэффициентов 209 и/или декодированных параметров кодирования (не показаны на фиг. 3), например, (декодированных) любых или всех параметров 143 предсказания, параметр 153 внутреннего предсказания и/или параметры контурного фильтра.

В вариантах осуществления декодера 200 блок 210 обратного квантования, блок 212 обратного преобразования, блок 214 восстановления, буфер 216, контурный фильтр 220, буфер 230 декодированных изображений, блок 260 предсказания и блок 260 выбора режима выполнены с возможностью выполнять обратную обработку кодера 100 (и соответствующих функциональных блоков) для декодирования данных 171 кодированного изображения.

В частности, блок 210 обратного квантования может быть идентичен по функциям блоку 110 обратного квантования, блок 212 обратного преобразования может быть идентичен по функциям блоку 112 обратного преобразования, блок 214 восстановления может быть идентичным по функции блоку 114 восстановления, буфер 216 может быть идентичен по функциям буферу 116, контурный фильтр 220 может быть идентичен по функции контурному фильтру 220 (что касается фактического контурного фильтра, поскольку контурный фильтр 220 обычно не содержит блок анализа фильтра для определения параметров фильтра на основании исходного изображения 101 или блока 103, но принимает (явно или неявно) или получает параметры фильтра, используемые для кодирования, например, из блока 204 энтропийного декодирования), и буфер 230 декодированных изображений может быть идентичен по функциям буфера 130 декодированных изображений.

Блок 260 предсказания может содержать блок 244 внешнего предсказания и блок 254 внутреннего предсказания, в котором блок 244 внешнего предсказания может быть идентичен по функциям блоку 144 внешнего предсказания и блок 254 внутреннего предсказания может быть идентичным по функциям блоку 154 внутреннего предсказания. Блок 260 предсказания и блок 262 выбора режима обычно выполнены с возможностью выполнять предсказания блока и/или получать предсказанный блок 265 только из кодированных данных 171 (без какой-либо дополнительной информации об исходном изображении 101) и принимать или получать (явно или неявно) параметры 143 или 153 предсказания и/или информацию о выбранном режиме предсказания, например, из блока 204 энтропийного декодирования.

Декодер 200 выполнен с возможностью выводить декодированное изображение 231, например, через вывод 232, для представления или просмотра пользователю.

Возвращаясь к фиг.1, декодированное изображение 231, выводимое из декодера 200, может подвергаться постобработке в процессоре 326 постобработки. Результирующее постобработанное изображение 327 может быть передано во внутреннее или внешнее устройство 328 отображения и отображено.

ДЕТАЛИ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ

Изобретение ограничивает значения, которые могут быть использованы коэффициентами фильтра адаптивного мультипликативного фильтра, таким образом, что операция умножения упрощается. При фильтрации набора выборок сигнала изображения используется фильтр с адаптивными коэффициентами множителя, где коэффициенты множителя представлены целыми числами. Учитывая, что максимальное значение абсолютного значения коэффициента C равно N, для двоичного представления N требуется L = ceil (log2 (N)) двоичных цифр. Другими словами, L двоичные цифры могут быть выражены абсолютными значениями коэффициентов от нуля (L «нулей») до 2L-1 (L «единиц») (знак коэффициента представлен отдельным битом знака, который здесь не обсуждается). В соответствии с конкретным подходом изобретения этот набор значений ограничен, так что любое значение, которое может быть принято коэффициентом C, включает в себя самое большее число P<L «единиц» («1») в двоичном представлении. Например, исключен случай всех «единиц» (L «единиц»).

Как будет показано ниже, чем меньше количество P разрешенных «единиц», тем выше эффективность и производительность операции фильтрации. Например, лучший выигрыш в эффективности может быть достигнут, если любое значение, которое может быть принято коэффициентом C, включает в себя только до одной «1», то есть, не более одной «1».

Далее будут подробно описаны конкретные варианты осуществления изобретения.

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

Обычно коэффициенты фильтра реализуются с использованием конечной точности. Коэффициент фильтра представлен с помощью L битов вместе с необязательным битом знака. Количество битов L зависит от максимального абсолютного значения коэффициента. В частности, учитывая, что наибольшее значение абсолютного значения коэффициента C равно N, для двоичного представления N требуется L = ceil (log2 (N)) двоичных цифр.

Функция ceil (x), также обозначаемая как или максимум (x), отображает x на наименьшее целое число, большее или равное x.

Согласно первому примерному варианту осуществления изобретения максимум один из L битов (т.е. исключая знаковый бит) коэффициента фильтра может быть одновременно «единицей» («1»). Другие возможности не допускаются.

Например:

Предположим, L = 6, и один бит (крайний левый бит) используется для указания знака коэффициента.

Например, допустимы следующие коэффициенты фильтра: 0 (0000000), 1 (0000001), -1 (1000001), 2 (0000010), -2 (1000010), 4 (0000100), -4 (1000100), 8 (0001000), -8 (1001000), 16 (0010000) …, -32 (1100000).

Например, недопустимы следующие коэффициенты фильтра: 3 (0000011), -15 (1001111), 31 (0011111) …

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

Операция сдвига бита может быть математически представлена как: f (X, M) = X * 2M, где M является целым числом, большее или равное 0. В соответствии с обобщением вышеуказанного варианта осуществления не более M из L битов коэффициента фильтра может быть «1» одновременно. Другие возможности не допускаются.

Например:

Предположим, L = 6, M = 2, и один бит используется для указания знака коэффициента.

Например, разрешены следующие коэффициенты фильтра: 0 (0000000), 3 (0000011), 9 (0001001), -4 (1000100), -9 (1001001), 18 (0010010), 33 (0100001) …

Например, недопустимы следующие коэффициенты фильтра: 7 (0000111), -19 (1010011), 31 (0011111) …

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

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

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

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

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

Коэффициенты фильтра в первой группе могут принимать любое значение в заранее определенном диапазоне. В проиллюстрированном примере предполагается, что диапазон соответствует набору «S1», где S1 = [-511, …, 511]. Это соответствует общему количеству битов (исключая знаковый бит) L = 9.

Коэффициенты фильтра во второй группе могут принимать любое значение в наборе «S2», где S2 является подмножеством S1. Более конкретно, в примере набор S2 определяется как S2 = [-32, -16, -8, -4, -2, -1,0,1,2,4,8,16,32]. Соответственно, допустимые значения в наборе S2 ограничиваются теми, которые могут быть представлены с помощью одной «1» в двоичном представлении. Кроме того, максимально допустимое абсолютное значение ограничено 32, то есть, дополнительно предполагается, что число L ограничено до L = 6. В общем, следует отметить, что число L может быть установлено отдельно и по-разному для каждой группы. Более того, конкретная группировка и определение наборов допустимых значений может изменяться от изображения к изображению (от кадра к кадру). В качестве альтернативы группировка и определение наборов могут быть разными для разных форм фильтров (например, ромб 5x5, ромб 7x7, ромб 9x9, как показано на фиг.5). В качестве альтернативы группировка и определения могут быть предопределены.

В этом примере преимущество состоит в том, что вместо 9-битного умножения для набора S2 используется сдвиг на 1 бит.

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

Более конкретно, значение коэффициентов фильтра, которые применяются кодером, необходимо закодировать и передать в декодер. На стороне кодера значения коэффициентов фильтра преобразуются в двоичные кодовые слова (из значения фильтра в кодовое слово) через таблицу отображения или функцию отображения. Та же самая операция отображения должна применяться в декодере (от кодового слова к значению коэффициента фильтра), чтобы правильно интерпретировать коэффициенты фильтра.

Функция отображения или таблица могут отличаться для S1 и S2. Пример операций отображения приведены ниже для наборов коэффициентов фильтрации S1 и S2.

В приведенном ниже примере S1 задается как {0,1, …, 511}, и S2 задается {0,2,4,8,16,32} (рассматриваются только абсолютные значения).

S1 S2
Значение коэффициента фильтра Кодовое слово Значение коэффициента фильтра Кодовое слово
0 000000000 0 000
1 000000001 2 001
2 000000010 4 010
3 000000011 8 011
4 000000100 16 100
5 000000101 32 101
6 000000110

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

Далее будет дан общий обзор сигнализации коэффициентов фильтра со ссылкой на фиг. 8. Фиг. 8A иллюстрирует обработку на стороне кодера, и фиг. 8B иллюстрирует обработку на стороне декодера.

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

Определенные коэффициенты фильтра используются для фильтрации выборок восстановленного изображения (этап S82). Согласно изобретению, коэффициенты фильтра, которые применяются к выборкам восстановленного изображения, должны подчиняться правилам, изложенным в соответствии с изобретением.

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

На следующем этапе (S86) выполняется отображение остаточных коэффициентов на двоичные кодовые слова. Поскольку вышеупомянутый этап предсказания S84 является возможным, следует отметить, что в качестве альтернативы отображение применяется непосредственно к коэффициентам фильтра, определенным на этапе S80.

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

На последнем этапе S88 преобразованные в двоичную форму (возможно остаточные) коэффициенты фильтра, то есть, кодовые слова, на которые они были отображены, включаются в поток битов. В случае, если предсказание выполняется на этапе S84, дополнительно необходимо сгенерировать информацию управления предсказания и включить упомянутую информацию управления предсказания в поток битов, чтобы сигнализировать декодеру необходимую информацию об обработке предсказания, чтобы иметь возможность выполнить восстановление.

Обычно операции, применяемые в кодере, применяются в декодере в обратном порядке. Это будет объяснено более подробно ниже со ссылкой на фиг. 8B.

На начальном этапе S90 выполняется синтаксический анализ принятого битового потока. Результирующие преобразованные в двоичную форму коэффициенты фильтра (т.е. переданные кодовые слова) возможно представляют остаточные коэффициенты фильтра (если предсказание применялось на стороне кодера). На это указывает дополнительное получение информации управления предсказания из проанализированного битового потока.

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

В результате коэффициенты фильтра определяются (восстанавливаются) на стороне декодера (этап S94). Если предсказание было применено, так что коэффициенты фильтра, полученные на этапе S92, являются остаточными коэффициентами фильтра, восстановление дополнительно включает в себя выполнение предсказания, как указано в информации управления предсказания, и добавление результата предсказания к остаточным коэффициентам фильтра для получения восстановленных коэффициентов фильтра.

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

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

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

Если применяется предсказание коэффициента фильтра, коэффициенты фильтра, которые должны применяться к выборкам восстановленного изображения с целью фильтрации, получаются путем сложения результата предсказания («предиктор») и остаточных коэффициентов фильтра (как объяснено в предшествующих абзацах из кодера и декодера, соответственно). Очевидно, что возможно, что остаточные коэффициенты фильтра могут отсутствовать (равны 0), особенно если предсказание близко к идеальному (коэффициенты фильтра, которые должны быть предсказаны, очень похожи на предиктор). В этом случае, согласно изобретению, применяется одна из следующих двух опций:

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

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

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

Например, фиг.9 иллюстрирует случай, когда коэффициенты фильтра сгруппированы в три группы.

Первая группа коэффициентов, расположенная близко к центру ядра фильтра, определяет значения коэффициентов фильтра в наборе S1 = [-511, …, 511].

Вторая группа коэффициентов фильтрации, расположенная на периферии ядра и обозначенная пунктирными кружками, позволяет значениям коэффициентов фильтрации находиться в пределах модифицированного ограниченного набора S2, в котором S2 здесь S2 = [-128, -64, -32, -16, -8, -4, -2, -1,0,1,2,4,8,16,32,64,128]. Это набор всех значений коэффициентов, которые могут быть представлены L = 8 двоичными цифрами, только с одной «единицей».

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

S3 = [-64, -48, -40, …, 0,1,2,3,4,5,6,8,9,10,12,16,17,18,20,24,32,33, 34,36,40,48,64].

Другими словами, набор S3 является набором всех коэффициентов, которые могут быть представлены с помощью L = 7 двоичных цифр, в котором не более двух битов равны «единице» в абсолютном значении коэффициента, и применяется дополнительное ограничение, заключающееся в том, что максимальное абсолютное значение установлено на 64. (В противном случае, например, также должно быть разрешено абсолютное значение 96, поскольку оно может быть выражено двумя ведущими «единицами» в 7 двоичных цифрах).

Далее, со ссылкой на фиг.10, показан другой примерный вариант осуществления конкретного преимущества изобретения.

В примере на фиг.10 группировка выполняется так же, как на фиг.7.

Коэффициенты фильтра в первой группе могут принимать любые значения с девятью битами полного диапазона и битом знака, то есть, вышеупомянутый набор S1 = [-511, 511].

Коэффициенты фильтра во второй группе могут принимать ограниченный набор значений S2, в котором S2 здесь S2 = [-128, -64, -32, -16, -8, -4, -2, -1,0,1, 2,4,8,16,32,64,128]. Это соответствует тем значениям, которые могут быть представлены одной «1» в двоичном представлении. Более того, максимально допустимое абсолютное значение ограничено 128, т.е. дополнительно предполагается, что число L ограничено до L = 8.

Другими словами, размер фильтра соответствует тому, который был показан на фиг.4, то есть, ромбовидному фильтру 9 × 9. Как было указано в разделе «Уровень техники», обычно требуется 41 умножение 9-битными коэффициентами фильтра. Поскольку одно умножение эквивалентно 8 двоичным сложениям, как упоминалось в разделе «Уровень техники», количество дополнительных операций на пиксель составляет 48 * 8 = 328 операций сложения.

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

Тринадцать операций умножения 9-битными коэффициентами равны 13 * 8 = 104 сложения на пиксель. Количество операций на пиксель снижено на 68%.

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

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

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

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

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

Этап 1: получить все коэффициенты фильтра (C0, …, C20) с использованием способа наименьших квадратов, предполагая отсутствие ограничений значений коэффициентов.

Этап 2: установить ограничение, округляя коэффициенты (C7, …, C20) до ближайшего допустимого значения.

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

Этап 3: переоценить свободно выбираемые коэффициенты фильтра (C0, …, C6) для компенсации ошибки квантования. На этом третьем этапе можно восстановить большую часть потерь кодирования, которые вносятся на этапе 2.

Более детально:

На первом этапе приведенное ниже уравнение решается для фильтра 41 ответвлений (с 21 уникальными коэффициентами):

Вышеприведенное уравнение называется уравнением наименьших квадратов и используется для нахождения коэффициентов Cx фильтра в кодере.

Элемент Xx,y представляет собой ожидаемое значение R (i + k, j + l) * R (i + m, j+n), корреляция между двумя восстановленными выборками перед фильтрацией. Индексы k, l, m и n выбираются в соответствии с формой применяемого фильтра.

Элемент Px обозначает ожидаемое значение R (i + k, j + l) * O (i, j).

На втором этапе для коэффициентов фильтра от C7 до C20 находятся наиболее близкие приближенные коэффициенты, которые удовлетворяют ограничениям:

Коэффициенты от C7’ до C20’ подчиняются правилам, установленным изобретением. Обратите внимание, что функция f (), описанная выше, вносит шум квантования в коэффициенты фильтра от C7 до C20, которые были ранее получены путем решения уравнения наименьших квадратов.

Ожидается, что шум квантования, введенный на втором этапе, снизит производительность операции фильтрации. Эффективность фильтрации обычно измеряется таким показателем, как отношение пикового сигнала к шуму (Peak signal-to-noise ratio, PSNR), поэтому после этапа 2, PSNR фильтрованного изображения будет уменьшено.

На третьем этапе приведенное ниже уравнение решается для фильтра с 13 ответвлениями (с 7 уникальными коэффициентами):

На третьем этапе коэффициенты фильтрации от C0 до C7 вычисляются снова с учетом шума квантования, введенного на втором этапе. Третий этап преимущественно уменьшает снижение эффективности фильтрации, вызванное применением этапа 2.

Следует отметить, что в целом применение операции фильтрации с коэффициентами адаптивного мультипликативного фильтра не ограничивается выборками восстановленных изображений. Как описано на фиг.2 и фиг.3, восстановленный блок обычно соответствует блоку изображения, который получается после комбинации блока обратного преобразования и блока предсказания. Как очевидно для специалиста в данной области техники, операция фильтрации с адаптивными коэффициентами фильтра также может применяться на других этапах операций кодирования и декодирования, например, к блоку (265, 165) предсказания, блоку (213, 113) обратного преобразования, квантованным коэффициентам (209, 109), деквантованным коэффициентам (111, 211) или декодированному изображению (231). В этом случае изобретение применяется к коэффициентам фильтра операции фильтрации.

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

Обратите внимание, что эта спецификация предоставляет объяснения для изображений (кадров), но поля заменяются изображениями в случае сигнала чересстрочного изображения.

Хотя варианты осуществления изобретения были в основном описаны на основе кодирования видео, следует отметить, что варианты осуществления кодера 100 и декодера 200 (и, соответственно, системы 300) также могут быть выполнены с возможностью обработки или кодирования неподвижных изображений, то есть, обработки или кодирования отдельного изображения независимо от любого предшествующего или последующего изображения, как при кодировании видео. В общем, если кодирование обработки изображения ограничено одним изображением 101, то в этом случае не являются доступными только внешняя оценка 142, внешнее предсказание 144, 242. Большинство, если не все другие функции (также называемые инструментами или технологиями) видеокодера 100 и видеодекодера 200 могут в равной степени использоваться для неподвижных изображений, например, для разделения, преобразования (масштабирования) 106, квантования 108, обратного квантования 110, обратного преобразования 112, внутренней оценки 142, внутреннего предсказания 154, 254 и/или контурного фильтра 120, 220 и энтропийного кодирования 170 и энтропийного декодирования 204.

Везде, где варианты осуществления и описание относятся к термину «память», термин «память» следует понимать и/или должен содержать магнитный диск, оптический диск, твердотельный накопитель (solid state drive, SSD), постоянное запоминающее устройство (Read- Only Memory, ROM), память с произвольным доступом (Random Access Memory, RAM), флэш-накопитель USB или любой другой подходящий тип памяти, если явно не указано иное.

Везде, где варианты осуществления и описание относятся к термину «сеть», термин «сеть» должен пониматься и/или должен содержать любой вид беспроводной или проводной сети, такой как локальная сеть (Local Area Network, LAN), глобальная беспроводная локальная сеть (Wireless LAN, WLAN), сеть (Wide Area Network, WAN), Ethernet, интернет, мобильные сети и т.д., если явно не указано иное.

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

Терминология «блоки» используется просто для иллюстративных целей функциональных возможностей вариантов осуществления кодера/декодера и не предназначена для ограничения настоящего изобретения.

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

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

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

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

Варианты осуществления кодера 100 и/или декодера 200 могут быть реализованы как аппаратное обеспечение, встроенное программное обеспечение, программное обеспечение или любая их комбинация. Например, функциональность кодера/кодирования или декодера/декодирования может выполняться схемой обработки с встроенным программным обеспечением или программным обеспечением или без них, например процессором, микроконтроллером, процессором цифровых сигналов (digital signal processor, DSP), программируемой пользователем вентильной матрицей (field programmable gate array, FPGA), специализированной интегральной схемой (application-specific integrated circuit, ASIC) или тому подобное.

Функциональные возможности кодера 100 (и соответствующего способа 100 кодирования) и/или декодера 200 (и соответствующего способа 200 декодирования) могут быть реализованы с помощью программных инструкций, сохраненных на машиночитаемом носителе. Программные инструкции при исполнении побуждают схему обработки, компьютер, процессор и т.п. выполнять этапы способов кодирования и/или декодирования. Машиночитаемый носитель может быть любым носителем, включающий в себя энергонезависимый носитель, на котором хранится программа, например, диск Blu-ray, DVD, CD, USB (флэш-накопитель), жесткий диск, серверное хранилище, доступное через сеть и т.д.

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

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

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

ПЕРЕЧЕНЬ ССЫЛОЧНЫХ ПОЗИЦИЙ

100 кодер

102 ввод (например, порт ввода, входной интерфейс)

103 блок изображения

104 вычисление остаточной величины [блок или этап]

105 остаточный блок

106 преобразование (например, дополнительно содержащее масштабирование) [блок или этап]

107 преобразованные коэффициенты

108 квантование [блок или этап]

109 квантованные коэффициенты

110 обратное квантование [блок или этап]

111 деквантованные коэффициенты

112 обратное преобразование (например, дополнительно содержащее масштабирование) [блок или этап]

113 обратно преобразованный блок

114 восстановление [блок или этап]

115 восстановленный блок

116 (линейный) буфер [блок или этап]

117 опорные выборки

120 контурный фильтр [блок или этап]

121 отфильтрованный блок

130 буфер декодированных изображений (Decoded picture buffer, DPB) [блок или этап]

142 внешняя оценка (или внешняя оценка изображения) [блок или этап]

143 параметры внешней оценки (например, опорное изображение/индекс опорного изображения, вектор движения/смещение)

144 внешнее предсказание (или внешнее предсказание изображения) [блок или этап]

145 блок внешнего предсказания

152 внутренняя оценка (или внутренняя оценка изображения) [блок или этап]

153 параметры внутреннего предсказания (например, режим внутреннего предсказания)

154 внутреннее предсказание (внутреннее предсказание кадра/изображения) [блок или этап]

155 блок внутреннего предсказания

162 выбор режима [блок или этап]

165 блок предсказания (либо блок 145 внешнего предсказания, либо блок 155 внутреннего предсказания)

170 энтропийное кодирование [блок или этап]

171 данные закодированного изображения (например, битовый поток)

172 вывод (порт вывода, выходной интерфейс)

200 декодер

202 ввод (порт/интерфейс)

204 энтропийное декодирование

209 квантованные коэффициенты

210 обратное квантование

211 деквантованные коэффициенты

212 обратное преобразование (масштабирование)

213 обратно преобразованный блок

214 восстановление (блок)

215 восстановленный блок

216 (линейный) буфер

217 опорные выборки

220 контурный фильтр (в контурном фильтре)

221 отфильтрованный блок

230 буфер декодированных изображений (Decoded picture buffer, DPB)

231 декодированное изображение

232 вывод (порт/интерфейс)

244 внешнее предсказание (внешнее предсказание изображения/кадра)

245 блок внешнего предсказания

254 внутреннее предсказание (внутреннее предсказание изображения/кадра)

255 блок внутреннего предсказания

260 выбор режима

265 блок предсказания (блок 245 внешнего предсказания или блок 255 внутреннего предсказания)

300 система кодирования

310 устройство источника

312 изображение источника

313 (необработанные) данные изображения

314 препроцессор/блок предварительной обработки

315 данные предварительно обработанного изображения

318 блок/интерфейс связи

320 устройство назначения

322 блок/интерфейс связи

326 постпроцессор/блок постобработки

327 данные постобработанного изображения

328 устройство/блок отображения

330 данные переданных/принятых/сообщенных (закодированных) изображений

1. Устройство фильтрации набора выборок (115; 215) изображения с использованием фильтра (120; 220) с адаптивными коэффициентами множителя, представленными целыми числами, содержащее схему обработки, выполненную с возможностью

определения значения каждого коэффициента множителя фильтра (120; 220) так, что оно находится в пределах набора допустимых значений, при этом двоичное представление абсолютного значения упомянутого каждого коэффициента множителя с заранее определенным количеством L цифр включает в себя по меньшей мере один «ноль», и

осуществления фильтрации набора выборок (115; 215) изображения с помощью фильтра (120; 220).

2. Устройство по п.1, в котором максимальное абсолютное значение набора ограничено заданным максимальным значением Nmax.

3. Устройство по п.1 или 2, в котором двоичное представление абсолютного значения упомянутого каждого коэффициента множителя включает в себя не более двух «единиц» или двоичное представление абсолютного значения упомянутого каждого коэффициента множителя включает в себя не более одной «единицы».

4. Устройство по п.1 или 2, в котором

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

коэффициенты множителя одной из групп ограничены упомянутым набором допустимых значений; при этом

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

5. Устройство по п.1 или 2, в котором набор выборок изображения представляет собой набор выборок (115; 215) видеоизображения.

6. Устройство по п.5, в котором упомянутое устройство выполнено с возможностью индивидуальной адаптации коэффициентов множителя для каждого изображения и каждого пикселя.

7. Способ фильтрации набора выборок (115; 215) изображения с использованием фильтра (120; 220) с адаптивными коэффициентами множителя, представленными целыми числами, содержащий этапы, на которых:

определяют (S80; S92, S94) значение каждого коэффициента множителя фильтра (120; 220) так, что оно находится в пределах набора допустимых значений, при этом двоичное представление абсолютного значения упомянутого каждого коэффициента множителя с заданным количеством L цифр включает в себя по меньшей мере один «ноль», и

осуществляют фильтрацию (S82; S96) набора выборок (115; 215) изображения с помощью фильтра (120; 220).

8. Устройство кодирования текущего набора выборок (103) изображения, включающего в себя множество пикселей, содержащее:

кодер с декодером (110, 112, 114) для восстановления текущего набора, и

устройство по любому из пп.1-6 для фильтрации восстановленного набора (115).

9. Устройство по п.8, дополнительно содержащее схему обработки, выполненную с возможностью

отображения значения коэффициентов множителя на двоичные кодовые слова; и

добавления кодовых слов в битовый поток (330) для передачи на устройство (200) декодирования; при этом

длина упомянутых кодовых слов зависит от количества различных значений коэффициента множителя.

10. Устройство по п.9, в котором схема обработки дополнительно выполнена с возможностью

выполнения предсказания коэффициентов множителя фильтра (120); и

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

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

11. Устройство декодирования кодированного текущего набора выборок (171) изображения, включающего в себя множество пикселей, содержащее:

декодер (204, 210, 212, 214) для восстановления текущего набора, и

устройство по любому из пп.1-6 для фильтрации восстановленного набора (215).

12. Устройство по п.11, в котором упомянутая схема обработки дополнительно выполнена с возможностью получения коэффициентов множителя из двоичных кодовых слов, включенных в принятый битовый поток (330), посредством применения операции отображения; при этом

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

схема обработки выполнена с возможностью определения значения коэффициентов множителя фильтра (220) посредством их восстановления из полученных остаточных коэффициентов множителя.

13. Устройство по п.12, в котором

схема предсказания указывается информацией управления предсказания, дополнительно включенной в принятый битовый поток (330); при этом

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

14. Устройство по п.12 или 13, в котором этап определения, с помощью схемы обработки, дополнительно включает в себя

выполнение определения, находится ли определенное значение каждого коэффициента множителя, полученное непосредственно из принятого битового потока (330), посредством операции отображения или посредством восстановления из полученных остаточных коэффициентов множителя, в пределах набора допустимых значений; и, если нет,

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



 

Похожие патенты:

Изобретение относится к области вычислительной техники для обмена данными изображения. Технический результат заключается в улучшении обмена данными изображения на основе нелинейности восприятия яркости между разными возможностями отображения.

Изобретение относится к средствам для кодирования видео. Технический результат заключается в повышении эффективности кодирования видео.

Изобретение относится к средствам для кодирования и декодирования видеоизображений. Технический результат заключается в повышении эффективности кодирования видеоизображений.

Изобретение относится к средствам для обработки изображений. Технический результат заключается в повышении эффективности кодирования изображений за счет понижения объема памяти используемого для хранения временных векторов движения (MV) при обеспечении требуемой точности MV.

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

Изобретение относится к преобразованию метаданных, в частности к вычислению набора метаданных особого для модели преобразования объема цвета (CVT), используя существующий набор метаданных, который является особым для совершенно другой модели CVT. Техническим результатом является обеспечение эффективного перехода из форматов расширенного динамического диапазона (HDR).

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

Группа изобретений относится к технологиям предсказывания компонента цветности видео. Техническим результатом является повышение точности предсказываемого значения цветоразностного компонента.

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

Изобретение относится к области кодирования/декодирования изображения. Технический результат заключается в повышении эффективности кодирования.

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