КОДЕР, ДЕКОДЕР И СООТВЕТСТВУЮЩИЕ СПОСОБЫ С ИСПОЛЬЗОВАНИЕМ АДАПТИВНОГО КОНТУРНОГО ФИЛЬТРА Российский патент 2024 года по МПК H04N19/117 

Описание патента на изобретение RU2823558C2

ПЕРЕКРЕСТНАЯ ССЫЛКА НА СВЯЗАННЫЕ ЗАЯВКИ

Данная патентная заявка испрашивает приоритет по. предварительной патентной заявке США №. 62/843 431, поданной 4 мая 2019 г. Раскрытие вышеупомянутой патентной заявки включается в данный документ посредством ссылки в полном объеме.

ОБЛАСТЬ ТЕХНИКИ

Варианты осуществления настоящей заявки (раскрытие) в целом относятся к области обработки картинок и, более конкретно, к фильтрации выборок блоков в картинке.

УРОВЕНЬ ТЕХНИКИ

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

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

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Согласно девятому аспекту настоящего раскрытия предоставляется декодер, содержащий:

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

Согласно десятому аспекту настоящего раскрытия предоставляется кодер, содержащий:

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

Согласно одиннадцатому аспекту настоящего раскрытия предоставляется декодер, содержащий:

блок энтропийного декодирования, сконфигурированный для получения битового потока, в котором по меньшей мере один бит в битовом потоке представляет элемент синтаксиса для текущего блока, причем элемент синтаксиса указывает индекс усечения значения усечения для адаптивного контурного фильтра (ALF);

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

Согласно двенадцатому аспекту настоящего раскрытия предоставляется декодер, содержащий:

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

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

Согласно тринадцатому аспекту настоящего раскрытия предоставляется кодер, содержащий:

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

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

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

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

получение битового потока, где n битов в битовом потоке представляют элемент синтаксиса, указывающий индекс усечения значения усечения для адаптивного контурного фильтра (ALF), где n является целым числом, большим или равным 0;

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

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

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

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

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

Согласно семнадцатому аспекту настоящего раскрытия предоставляется декодер, содержащий:

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

Согласно восемнадцатому аспекту настоящего раскрытия предоставляется кодер, содержащий:

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

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

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

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

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

Согласно двадцать третьему аспекту настоящего раскрытия предоставляется декодер, содержащий:

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

Согласно двадцать четвертому аспекту настоящего раскрытия предоставляется кодер, содержащий:

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

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

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

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

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

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

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

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

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

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

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

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

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

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

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

Фиг.6 показаны формы фильтра ALF, ромб цветности 5×5, ромб яркости 7×7;

Фиг.7 иллюстрирует классификацию субдискретизированных блоков ALF;

Фиг.8 иллюстрирует сигнализацию параметров усечения яркости и цветности VTM-5.0 ALF;

Фиг.9 иллюстрирует модифицированную сигнализацию параметров усечения яркости и цветности VTM-5.0 ALF, при этом параметры усечения передаются с использованием кода фиксированной длины из 2 битов;

Фиг.10 - блок-схема, иллюстрирующая способ согласно первому аспекту настоящего раскрытия;

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

Фиг.12 - блок-схема, иллюстрирующая способ согласно третьему аспекту настоящего раскрытия;

Фиг.13 - блок-схема, иллюстрирующая способ согласно четвертому аспекту настоящего раскрытия;

Фиг.14 - блок-схема, иллюстрирующая декодер согласно пятому аспекту настоящего раскрытия;

Фиг.15 - блок-схема, иллюстрирующая кодер согласно шестому аспекту настоящего раскрытия;

Фиг.16 - блок-схема, иллюстрирующая декодер согласно девятому аспекту настоящего раскрытия;

Фиг.17 - блок-схема, иллюстрирующая кодер согласно десятому аспекту настоящего раскрытия;

Фиг.18 - блок-схема, иллюстрирующая декодер согласно одиннадцатому аспекту настоящего раскрытия;

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

Фиг.20 - блок-схема, иллюстрирующая кодер согласно тринадцатому аспекту настоящего раскрытия;

Фиг.21 - блок-схема, иллюстрирующая кодер согласно четырнадцатому аспекту настоящего раскрытия;

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

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

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

ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ

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

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

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

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

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

В нижеследующих вариантах осуществления системы 10 видеокодировки, видеокодер 20 и видеодекодер 30 описаны на основе Фиг. с 1 по 3.

Фиг.1A является схематической блок-схемой, иллюстрирующей примерную систему 10 кодировки, например систему 10 видеокодировки (или, кратко, систему 10 кодировки), которая может использовать методы этой настоящей заявки. Видеокодер 20 (или, кратко, кодер 20) и видеодекодер 30 (или, кратко, декодер 30) системы 10 видеокодировки представляют примеры устройств, которые могут быть выполнены с возможностью выполнения методов в соответствии с различными примерами, описанными в настоящей заявке.

Как показано на фиг.1A, система 10 кодировки содержит устройство-источник 12, сконфигурированное для предоставления данных 21 закодированной картинки, например, устройству-получателю 14 для декодирования данных 13 кодированной картинки.

Устройство-источник 12 содержит кодер 20 и может дополнительно, т.е. необязательно, содержать источник 16 картинки, препроцессор (или блок предварительной обработки) 18, например, препроцессор 18 картинки, и интерфейс связи или блок 22 связи.

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

В отличие от препроцессора 18 и обработки, выполняемой посредством блока 18 предварительной обработки, картинка или данные 17 картинки также могут именоваться необработанной (raw) картинкой или необработанными данными 17 картинки.

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

Видеокодер 20 выполнен с возможностью приема предварительно обработанных данных 19 картинки и предоставления данных 21 закодированной картинки (дополнительные подробности будут описаны ниже, например, на основе Фиг.2).

Интерфейс связи 22 устройства-источника 12 может быть сконфигурирован для приема данных 21 закодированной картинки и передачи данных 21 закодированной картинки (или любой их дополнительной обработанной версии) по каналу 13 связи на другое устройство, например, на устройство-получатель 14 или любое другое устройство, для хранения или прямого восстановления (реконструкции).

Устройство-получатель 14 содержит декодер 30 (например, видеодекодер 30) и может дополнительно, т.е. необязательно, содержать интерфейс связи или блок 28 связи, постпроцессор 32 (или блок 32 постобработки) и устройство отображения 34.

Интерфейс 28 связи устройства-получателя 14 сконфигурирован для приема данных 21 закодированной картинки (или любой их дополнительной обработанной версии), например, непосредственно от устройства-источника 12 или из любого другого источника, например, запоминающего устройства, например, устройства хранения данных закодированной картинки и предоставить данные 21 закодированной картинки в декодер 30.

Интерфейс 22 связи и интерфейс 28 связи могут быть сконфигурированы для передачи или приема данных 21 закодированной картинки или закодированных данных 13 через прямую линию связи между устройством-источником 12 и устройством-получателем 14, например, прямое проводное или беспроводное соединение, или через сеть любого типа, например, проводную или беспроводную сеть или любую их комбинацию, или любую частную и общедоступную сеть, или любую их комбинацию.

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

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

И интерфейс 22 связи, и интерфейс 28 связи могут быть сконфигурированы как однонаправленные интерфейсы связи, как показано стрелкой для канала 13 связи на фиг.1A, указывающей от устройства-источника 12 к устройству-получателю 14, или двунаправленные интерфейсы связи, и могут быть сконфигурированы, например, для отправки и приема сообщений, например, для установки соединения, для подтверждения и обмена любой другой информацией, относящейся к каналу связи и/или передаче данных, например, к передаче данных закодированной картинки.

Декодер 30 выполнен с возможностью приема данных 21 закодированной картинки и предоставления данных 31 декодированной картинки или декодированной картинки 31 (дополнительные подробности будут описаны ниже, например, на основе Фиг.3 или Фиг.5.

Постпроцессор 32 устройства-получателя 14 сконфигурирован для пост-обработки данных 31 декодированной картинки (также называемых данными восстановленной картинки), например, декодированной картинки 31, для получения данных 33 постобработанной картинки, например, постобработанной картинки 33. Постобработка, выполняемая блоком 32 постобработки, может содержать, например, преобразование цветового формата (например, из YCbCr в RGB), цветокоррекцию, обрезку или повторную выборку, или любую другую обработку, например, для подготовки данных 31 декодированной картинки для отображения, например, устройством 34 отображения.

Устройство 34 отображения устройства-получателя 14 выполнено с возможностью приема пост-обработанных данных 33 картинки для отображения картинки, например, пользователю или зрителю. Устройство 34 отображения может быть или содержать любой вид дисплея для представления восстановленной картинки, например интегрированный или внешний дисплей или монитор. Дисплеи могут, например, содержать жидкокристаллические дисплеи (LCD), дисплеи на органических светодиодах (OLED), плазменные дисплеи, проекторы, микро-светодиодные дисплеи, жидкие кристаллы на кремнии (LCoS), цифровой световой процессор (DLP) или любой вид другой дисплей.

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

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

Кодер 20 (например, видеокодер 20) или декодер 30 (например, видеодекодер 30) или и кодер 20, и декодер 30 могут быть реализованы с помощью схемы обработки, показанной на фиг.1B, такой как один или несколько микропроцессоров, цифровые сигнальные процессоры (DSP), специализированные интегральные схемы (ASIC), программируемые вентильные матрицы (FPGA), дискретная логика, аппаратное обеспечение, выделенная видеокодировка или любые их комбинации. Кодер 20 может быть реализован через схему 46 обработки для воплощения различных модулей, как обсуждалось в отношении кодера 20 с Фиг.2 и/или любой другой системы кодера или подсистемы, описанной в данном документе. Декодер 30 может быть реализован через схему 46 обработки для воплощения различных модулей, как обсуждалось в отношении декодера 30 с Фиг.3 и/или любой другой системы декодера или подсистемы, описанной в данном документе. Схема обработки может быть выполнена с возможностью выполнения различных операций, которые будут описаны ниже. Как показано на Фиг.5, если методики частично реализованы в программном обеспечении, устройство может хранить инструкции для программного обеспечения на подходящем долговременном машиночитаемом носителе данных и может выполнять инструкции в аппаратных средствах, используя один или более процессоров для выполнения методик этого раскрытия. Любой из видеокодера 20 и видеодекодера 30 может быть интегрирован как часть объединенного кодера/декодера (CODEC) в одном устройстве, например, как показано на Фиг.1B.

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

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

Для удобства описания здесь описаны варианты осуществления данного изобретения, например, со ссылкой на высокоэффективное видеокодирование (HEVC) или на эталонное программное обеспечение универсального видеокодирования (VVC), стандарт видеокодировки следующего поколения, разрабатываемый объединенной группой сотрудничества по видеокодировке (JCT-VC) экспертной группы по видеокодировке ITU-T (VCEG) и экспертной группы по движущимся картинкам ISO/IEC (MPEG). Обычный специалист в данной области техники поймет, что варианты осуществления данного изобретения не ограничиваются HEVC или VVC.

Кодер и способ кодирования

Фиг.2 показывает схематичное блочное представление примерного видеокодера 20, который выполнен с возможностью реализации методов настоящей заявки. В примере на Фиг.2 видеокодер 20 содержит ввод 201 (или входной интерфейс 201), блок 204 вычисления остатка, блок 206 обработки преобразования, блок 208 квантования, блок 210 обратного квантования и блок 212 обработки обратного преобразования, блок 214 восстановления, блок 220 контурного фильтра, буфер 230 (DPB) декодированных картинок, блок 260 выбора режима, блок 270 энтропийного кодирования и вывод 272 (или выходной интерфейс 272). Блок 260 выбора режима может включать в себя блок 244 внешнего предсказания, блок 254 внутреннего предсказания и блок 262 разделения. Блок 244 внешнего предсказания может включать в себя блок оценки движения и блок компенсации движения (не показаны). Видеокодер 20, показанный на фиг.2, также может называться гибридным видеокодером или видеокодером согласно гибридному видеокодеку.

Блок 204 вычисления остатка, блок 206 обработки преобразования, блок 208 квантования, блок 260 выбора режима могут относится к формированию прямого тракта сигнала кодера 20, тогда как блок 210 обратного квантования, блок 212 обработки обратного преобразования, блок 214 восстановления, буфер 216, контурный фильтр 220, буфер 230 (DPB) декодированных картинок, блок 244 внешнего предсказания и блок 254 внутреннего предсказания могут относится к формированию обратного тракта сигнала видеокодера 20, при этом обратный тракт сигнала видеокодера 20 соответствует тракту сигнала декодера (см. видеодекодер 30 на Фиг.3). Блок 210 обратного квантования, блок 212 обработки обратного преобразования, блок 214 восстановления, контурный фильтр 220, буфер декодированных картинок (DPB) 230, блок 244 внешнего предсказания и блок 254 внутреннего предсказания также относятся к формированию «встроенного декодера» видеокодера 20.

Картинки и разделение картинок (картинки и блоки)

Кодер 20 может быть сконфигурирован для приема, например, через вход 201 картинки 17 (или данных 17 картинки), например картинки последовательности картинок, образующих видео или видеопоследовательность. Принятая картинка или данные картинки также могут представлять собой предварительно обработанную картинку 19 (или предварительно обработанные данные 19 картинки). Для простоты нижеследующее описание ссылается на картинку 17. Картинка 17 также может называться текущей картинкой или картинкой, которая должна быть кодирована (в частности, при видеокодировке, чтобы отличать текущую картинку от других картинок, например, ранее кодированных и/или декодированных картинок той же видеопоследовательности, то есть видеопоследовательности которая также содержит текущую картинку).

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

Варианты осуществления видеокодера 20 могут содержать блок разделения картинки (не показан на Фиг.2), выполненный с возможностью разделения картинки 17 на множество (обычно не перекрывающихся) блоков 203 картинки. Эти блоки также могут называться корневыми блоками, макроблоками (H.264/AVC) или блоками дерева кодировки (CTB) или единицами дерева кодировки (CTU) (H.265/HEVC и VVC). Блок разделения картинки может быть выполнен с возможностью использования одного и того же размера блока для всех картинок в видеопоследовательности и соответствующей сетки, определяющей размер блока, или изменения размера блока между картинками или подмножествами или группами картинок и разделения каждой картинки на соответствующие блоки.

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

Подобно картинке 17, блок 203 картинки снова является или может рассматриваться как двумерный массив или матрица выборок со значениями интенсивности (значениями выборок), хотя и меньшего размера, чем картинка 17. Другими словами, блок 203 может содержать, например, один массив выборок (например, массив яркости в случае монохромной картинки 17 или массив яркости или цветности в случае цветной картинки) или три массива выборок (например, яркость и два массива цветности в случае цветной картинки 17) или любое другое количество и/или вид массивов в зависимости от применяемого цветового формата. Число выборок в горизонтальном и вертикальном направлении (или оси) блока 203 определяет размер блока 203. Соответственно, блок может, представлять собой, например, массив дискретных массивов MxN (M-столбец на N-строка) или массив MxN коэффициентов преобразования.

Варианты осуществления видеокодера 20, как показано на фиг.2, могут быть сконфигурированы для кодирования картинки 17 блок за блоком, например, кодирование и предсказание выполняются для каждого блока 203.

Вычисление остатка

Блок 204 вычисления остатка может быть сконфигурирован для вычисления остаточного блока 205 (также называемого остатком 205) на основе блока 203 картинки и блока 265 предсказания (дополнительные подробности о блоке 265 предсказания предоставлены позже), например, путем вычитания значения выборок блока 265 предсказания из значений выборок блока 203 картинки, выборка за выборкой (пиксель за пикселем), чтобы получить остаточный блок 205 в области выборки.

Преобразование

Блок 206 обработки преобразования может быть сконфигурирован для применения преобразования, например, дискретного косинусного преобразования (DCT) или дискретного синусоидального преобразования (DST), к значениям выборок остаточного блока 205 для получения коэффициентов 207 преобразования в области преобразования. Коэффициенты 207 преобразования могут также именоваться остаточными коэффициентами преобразования и представлять остаточный блок 205 в области преобразования.

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

Варианты осуществления видеокодера 20 (соответственно блок 206 обработки преобразования) могут быть сконфигурированы для вывода параметров преобразования, например, типа преобразования или преобразований, например, непосредственно или закодированы или сжаты посредством блока 270 энтропийного кодирования, так что, например, видеодекодер 30 может принимать и использовать параметры преобразования для декодирования.

Квантование

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

Процесс квантования может уменьшить битовую глубину, связанную с некоторыми или всеми коэффициентами 207 преобразования. Например, n-битовый коэффициент преобразования может быть округлен до m-битового коэффициента преобразования во время квантования, где n больше m. Степень квантования может быть изменена посредством регулировки параметра квантования (QP). Например, для скалярного квантования может применяться другое масштабирование для достижения более точного или более грубого квантования. Меньшие размеры шагов квантования соответствуют более точному квантованию, тогда как большие размеры шагов квантования соответствуют более грубому квантованию. Применимый размер шага квантования может быть указан параметром квантования (QP). Параметр квантования может, например, представлять собой индекс для предопределенного набора применимых размеров шагов квантования. Например, небольшие параметры квантования могут соответствовать точному квантованию (небольшим размерам шагов квантования), а большие параметры квантования могут соответствовать грубому квантованию (большим размерам шагов квантования) или наоборот. Квантование может включать в себя деление на размер шага квантования и соответствующее и/или обратное деквантование, например, посредством блока 210 обратного квантования, может включать в себя умножение на размер шага квантования. Варианты осуществления согласно некоторым стандартам, например HEVC, могут быть сконфигурированы для использования параметра квантования для определения размера шага квантования. Как правило, размер шага квантования может быть вычислен на основе параметра квантования с использованием аппроксимации фиксированной точки уравнения, включающего в себя деление. Дополнительные коэффициенты масштабирования могут быть введены для квантования и деквантования, чтобы восстановить норму остаточного блока, которая могла быть изменена из-за масштабирования, используемого в аппроксимации фиксированной точки упомянутого уравнения для размера шага квантования и параметра квантования. В одной примерной реализации масштабирование обратного преобразования и деквантование могут быть объединены. В качестве альтернативы могут использоваться настроенные таблицы квантования и передаваться сигнал от кодера к декодеру, например, в битовом потоке. Квантование является операцией с потерями, при которой потери возрастают с увеличением размеров шагов квантования.

Варианты осуществления видеокодера 20 (соответственно блок 208 квантования) могут быть сконфигурированы для вывода параметров квантования (QP), например, напрямую или закодированы через блок 270 энтропийного кодирования, так что, например, видеодекодер 30 может принимать и применять квантование параметры для декодирования.

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

Блок 210 обратного квантования сконфигурирован для применения обратного квантования блока 208 квантования к квантованным коэффициентам для получения деквантованных коэффициентов 211, например, путем применения обратной схемы квантования, применяемой блоком 208 квантования, на основе или с использованием того же размер шага квантования в качестве блока 208 квантования. Деквантованные коэффициенты 211 также могут упоминаться как деквантованные остаточные коэффициенты 211 и соответствовать, хотя они обычно не идентичны коэффициентам преобразования из-за потери при квантовании, коэффициентам 207 преобразования.

Обратное преобразование

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

Восстановление

Блок 214 восстановления (например, сумматор или сумматор 214) сконфигурирован для добавления блока 213 преобразования (т.е. восстановленного остаточного блока 213) к блоку 265 предсказания, чтобы получить восстановленный блок 215 в области выборки, например, путем добавления, выборка за выборкой, значений выборки восстановленного остаточного блока 213 и значений выборки блока 265 предсказания.

Фильтрация

Блок 220 контурного фильтра (или, кратко, «контурный фильтр» 220) выполнен с возможностью фильтрации восстановленного блока 215, чтобы получить отфильтрованный блок 221, или, в общем, для фильтрации восстановленных выборок для получения отфильтрованных выборок. Блок контурного фильтра, например, выполнен с возможностью сглаживания переходов пикселей или иного улучшения качества видео. Блок 220 контурного фильтра может содержать один или несколько контурных фильтров, таких как фильтр деблокирования, фильтр с адаптивным смещением (SAO) или один или несколько других фильтров, например, двусторонний фильтр, адаптивный контурный фильтр (ALF), фильтры резкости, сглаживающие фильтры или совместные фильтры, или любая их комбинация. Хотя блок 220 контурного фильтра показан на Фиг.2 как контурный фильтр, в других конфигурациях блок 220 контурного фильтра может быть реализован как постконтурный фильтр. Отфильтрованный блок 221 также может именоваться отфильтрованным восстановленным блоком 221.

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

Буфер декодированных картинок

Буфер 230 декодированных картинок (DPB) может быть памятью, в которой хранятся опорные картинки или, в общем, данные опорных картинок для кодирования видеоданных посредством видеокодера 20. DPB 230 может быть сформирован любым из множества запоминающих устройств, таких как динамическая память с произвольным доступом (DRAM), в том числе синхронная DRAM (SDRAM), магниторезистивная RAM (MRAM), резистивная RAM (RRAM) или запоминающие устройства других типов. Буфер 230 (DPB) декодированных картинок может быть выполнен с возможностью сохранения одного или более фильтрованных блоков 221. Буфер 230 декодированных картинок может быть дополнительно сконфигурирован для хранения других ранее отфильтрованных блоков, например, ранее восстановленных и отфильтрованных блоков 221, одной и той же текущей картинки или разных картинок, например, ранее восстановленных картинок, и может предоставлять полностью ранее восстановленные, то есть декодированные, картинки (и соответствующие опорные блоки и выборки) и/или частично восстановленную текущую картинку (и соответствующие опорные блоки и выборки), например, для внешнего предсказания. Буфер 230 декодированных картинок (DPB) также может быть сконфигурирован для хранения одного или нескольких нефильтрованных восстановленных блоков 215 или, в общем, нефильтрованных восстановленных выборок, например, если восстановленный блок 215 не фильтруется блоком 220 контурной фильтрации или любой другой дополнительной обработанной версией восстановленных блоков или выборок.

Выбор режима (разделение и предсказание)

Блок 260 выбора режима содержит блок 262 разделения, блок 244 внешнего предсказания и блок 254 внутреннего предсказания и сконфигурирован для приема или получения данных исходной картинки, например, исходного блока 203 (текущего блока 203 текущей картинки 17), и данные восстановленной картинки, например, отфильтрованные и/или нефильтрованные восстановленные выборки или блоки одной и той же (текущей) картинки и/или из одной или множества ранее декодированных картинок, например, из буфера 230 декодированных картинок или других буферов (например, линейного буфера, не показан). Данные восстановленной картинки используются в качестве данных опорной картинки для предсказания, например, внешнего предсказания или внутреннего предсказания, чтобы получить блок 265 предсказания или предсказатель 265.

Блок 260 выбора режима может быть сконфигурирован для определения или выбора разделения для текущего режима предсказания блока (включая отсутствие разделения) и режима предсказания (например, режима внутреннего или внешнего предсказания) и генерирования соответствующего блока 265 предсказания, который используется для вычисления остаточного блока 205 и восстановления восстановленного блока 215.

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

Другими словами, блок 262 разделения может быть сконфигурирован для разделения блока 203 на более мелкие разделы или подблоки (которые снова образуют блоки), например, итеративно с использованием квадратичного разделения (QT), двоичного разделения (BT) или разделения на тройное дерево (TT) или любую их комбинацию, а также для выполнения, например, предсказания для каждого из разделов или подблоков блока, при этом выбор режима содержит выбор древовидной структуры разделенного блока 203 и режимы предсказания применяются к каждому из разделов или подблоков блока.

Далее более подробно поясняется разделение (например, блоком 260 разделения) и обработка предсказания (блоком 244 внешнего предсказания и блоком 254 внутреннего предсказания), выполняемые примерным видеокодером 20.

Разделение

Блок 262 разделения может разделять (или разбивать) текущий блок 203 на меньшие части, например, меньшие блоки квадратного или прямоугольного размера. Эти меньшие блоки (которые также могут именоваться субблоками) могут быть дополнительно разделены на еще меньшие разделы. Это также называется разделением дерева или иерархическим разделением дерева, в котором корневой блок, например, на уровне 0 корневого дерева (уровень 0 иерархии, глубина 0), может быть рекурсивно разделен, например, разделен на два или более блоков следующего более низкого уровня дерева, например, узлов на уровне 1 дерева (уровень 1 иерархии, глубина 1), при этом эти блоки могут быть снова разделены на два или более блоков следующего более низкого уровня, например, уровня 2 дерева (уровень 2 иерархии, глубина 2) и т.д. до тех пор, пока разделение не будет завершено, например, потому что критерий завершения выполняется, например, достигается максимальная глубина дерева или минимальный размер блока. Блоки, которые далее не разделяются, также называются листовыми блоками или листовыми узлами дерева. Дерево, использующее разделение на два раздела, называется двоичным деревом (BT), дерево, использующее разделение на три раздела, называется троичным деревом (TT), а дерево, использующее разделение на четыре раздела, называется квадродеревом (QT).

Как упоминалось ранее, используемый здесь термин «блок» может быть частью, в частности квадратной или прямоугольной частью картинки. Со ссылкой, например, на HEVC и VVC, блок может быть или соответствовать единице дерева кодировки (CTU), единице кодировки (CU), единице предсказания (PU) и единице преобразования (TU) и/или соответствующие блоки, например, блок дерева кодировки (CTB), блок кодировки (CB), блок преобразования (TB) или блок предсказания (PB).

Например, единица дерева кодировки (CTU) может быть или содержать CTB выборок яркости, два соответствующих CTB выборок цветности картинки, которая имеет три массива выборок, или CTB выборок монохромной картинки или картинки, которая кодируется с использованием трех отдельных цветовых плоскостей и синтаксических структур, используемых для кодировки выборок. Соответственно, блок дерева кодировки (CTB) может быть N×N блоком выборок для некоторого значения N, так что деление компоненты на CTB является разделением. Единица кодировки (CU) может быть или содержать блок кодировки выборок яркости, два соответствующих блока кодировки выборок цветности картинки, которое имеет три массива выборок, или блок кодировки выборок монохромной картинки или картинки, которая кодируется с использованием трех отдельных цветовых плоскостей и синтаксических структур, используемых для кодировки выборок. Соответственно, блок кодировки (CB) может быть M×N блоком выборок для некоторых значений M и N, так что деление CTB на блоки кодировки является разделением.

В вариантах осуществления, например, согласно HEVC, единица дерева кодировки (CTU) может быть разбита на CU с использованием структуры квадродерева, обозначенной в качества дерева кодировки. Решение о том, следует ли кодировать область картинки с использованием предсказания вне картинки (временного) или внутри картинки (пространственного), принимается на уровне CU. Каждая CU может быть дополнительно разбита на одну, две или четыре PU в соответствии с типом разбиения на PU. Внутри одной PU применяется один и тот же процесс предсказания, а релевантная информация передается в декодер на основе PU. После получения остаточного блока путем применения процесса предсказания на основе типа разбиения на PU, CU может быть разделена на единицы (TU) преобразования в соответствии с другой структурой квадродерева, аналогичной дереву кодировки для CU.

В вариантах осуществления, например, согласно последнему разрабатываемому в настоящее время стандарту кодировки видео, который называется универсальной кодировкой видео (VVC), для разделения блока кодировки используется разделение на квадраты и двоичное дерево (QTBT). В блочной структуре QTBT CU может иметь либо квадратную, либо прямоугольную форму. Например, единица дерева кодировки (CTU) сначала разделяется на структуру квадродерева. Листовые узлы квадродерева дополнительно разделяются двоичным деревом или тройчной (или тройной) древовидной структурой. Листовые узлы дерева разделения называются единицами кодирования (CU), и эта сегментация используется для обработки предсказания и преобразования без какого-либо дальнейшего разделения. Это означает, что CU, PU и TU имеют одинаковый размер блока в структуре блока кодирования QTBT. Параллельно с блочной структурой QTBT было предложено использовать множественное разделение, например, тройное разделение дерева.

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

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

Внутреннее предсказание

Набор режимов внутреннего предсказания может содержать 35 разных режимов внутреннего предсказания, например, ненаправленные режимы, такие как режим DC (или средний) и планарный режим, или направленные режимы, например, как определено в HEVC, или может содержать 67 разных режимов внутреннего предсказания, например, ненаправленные режимы, такие как режим DC (или средний) и планарный режим, или направленные режимы, например, как определено для VVC.

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

Блок 254 внутреннего предсказания (или, в общем, блок 260 выбора режима) дополнительно выполнен с возможностью вывода параметров внутреннего предсказания (или, в общем, информации, указывающей выбранный режим внутреннего предсказания для блока) в блок 270 энтропийного кодирования в форме элементов 266 синтаксиса для включения в данные 21 закодированной картинки, чтобы, например, видеодекодер 30 мог принимать и использовать параметры предсказания для декодирования.

Внешнее предсказание

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

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

Блок 244 внешнего предсказания может включать в себя блок оценки движения (ME) и блок компенсации движения (MC) (оба на Фиг.2 не показаны). Блок оценки движения может быть сконфигурирован для приема или получения блока 203 картинки (блока 203 текущей картинки для текущей картинки 17) и декодированной картинки 231, или, по меньшей мере, одного или множества ранее восстановленных блоков, например, восстановленных блоков одного или множество других/отличных ранее декодированных картинок 231 для оценки движения. Например, видеопоследовательность может содержать текущую картинку и ранее декодированные картинки 231, или, другими словами, текущая картинка и ранее декодированная картинка 231 могут быть частью или формировать последовательность картинок, образующих видеопоследовательность.

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

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

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

Энтропийная кодировка

Блок 270 энтропийного кодирования сконфигурирован для применения, например, алгоритма или схемы энтропийной кодировки (например, схемы кодировки с переменной длиной (VLC), контекстно-адаптивной схемы VLC (CAVLC), схемы арифметической кодировки, бинаризации, контекстно адаптивной двоичной арифметической кодировки (CABAC), основанной на синтаксисе контекстно-адаптивной двоичной арифметической кодировки (SBAC), энтропийной кодировки с интервалом вероятности (PIPE) или другого метод или методики энтропийного кодирования) или обхода (без сжатия) квантованных коэффициентов 209, параметров внешнего предсказания, параметров внутреннего предсказания, параметров контурного фильтра и/или других элементов синтаксиса для получения данных 21 закодированной картинки, которые могут выводиться через выход 272, например, в форме кодированного битового потока 21, так что, например, видеодекодер 30 может принимать и использовать параметры для декодирования. Кодированный битовый поток 21 может быть передан на видеодекодер 30 или сохранен в памяти для последующей передачи или извлечения видеодекодером 30.

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

Декодер и способ декодирования

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

В примере на фиг.3 декодер 30 содержит блок 304 энтропийного декодирования, блок 310 обратного квантования, блок 312 обработки обратного преобразования, блок 314 восстановления (например, сумматор 314), контурный фильтр 320, буфер декодированных картинок (DBP) 330, блок 344 внешнего предсказания и блок 354 внутреннего предсказания. Блок 344 внешнего предсказания может быть или включать в себя блок компенсации движения. Видеодекодер 30 может, в некоторых примерах, выполнять этап декодирования, в целом обратный этапу кодирования, описанному в отношении видеокодера 100 на Фиг.2.

Как описано в отношении кодера 20, блок 210 обратного квантования, блок 212 обработки обратного преобразования, блок 214 восстановления, контурный фильтр 220, буфер 230 (DPB) декодированных картинок, блок 344 внешнего предсказания и блок 354 внутреннего предсказания также относятся к формированию «встроенного декодера» видеокодера 20. Соответственно, блок 310 обратного квантования может быть идентичен по функции блоку 110 обратного квантования, блок 312 обработки обратного преобразования может быть идентичен по функции блоку 212 обработки обратного преобразования, блок 314 восстановления может быть идентичен по функции блоку 214 восстановления, контурный фильтр 320 может быть идентичен по функции контурному фильтру 220, а буфер 330 декодированных картинок может быть идентичен по функции буферу 230 декодированных картинок. Следовательно, пояснения, предоставленные для соответствующих блоков и функций видеокодера 20, применимы соответственно и к соответствующим блокам и функциям видеодекодера 30.

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

Блок 304 энтропийного декодирования сконфигурирован для синтаксического анализа битового потока 21 (или, в общем, данных 21 закодированной картинки) и выполнения, например, энтропийного декодирования для данных 21 закодированной картинки, чтобы получить, например, квантованные коэффициенты 309 и/или декодированные параметры кодировки (не показано на фиг.3), например, любой или все параметры внешнего предсказания (например, индекс опорной картинки и вектор движения), параметр внутреннего предсказания (например, режим или индекс внутреннего предсказания), параметры преобразования, параметры квантования, параметры контурного фильтра, и/или другие элементы синтаксиса. Блок 304 энтропийного декодирования может быть выполнен с возможностью применения алгоритмов или схем декодирования, соответствующих схемам кодирования, как описано в отношении модуля 270 энтропийного кодирования кодера 20. Блок 304 энтропийного декодирования может быть дополнительно сконфигурирован для предоставления параметров внешнего предсказания, параметра внутреннего предсказания и/или других элементов синтаксиса в блок 360 выбора режима и других параметров в другие блоки декодера 30. Видеодекодер 30 может принимать элементы синтаксиса на уровне слайса видео и/или уровне видеоблока.

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

Блок 310 обратного квантования может быть сконфигурирован для приема параметров квантования (QP) (или, в общем, информации, относящейся к обратному квантованию) и квантованных коэффициентов из данных 21 закодированной картинки (например, путем анализа и/или декодирования, например, путем блока 304 энтропийного декодирования) и применять на основе параметров квантования обратное квантование к декодированным квантованным коэффициентам 309 для получения деквантованных коэффициентов 311, которые также могут называться коэффициентами 311 преобразования. Процесс обратного квантования может включать в себя использование параметра квантования, определенного видеокодером 20 для каждого видеоблока в слайсе видео, для определения степени квантования и, аналогично, степени обратного квантования, которое должно быть применено.

Обратное преобразование

Блок 312 обработки обратного преобразования может быть выполнен с возможностью приема деквантованных коэффициентов 311, также именуемых коэффициентами 311 преобразования, и применения преобразования к деквантованным коэффициентам 311 для того, чтобы получить восстановленные остаточные блоки 213 в области выборок. Восстановленные остаточные блоки 213 также могут именоваться блоками 313 преобразования. Преобразование может быть обратным преобразованием, например, обратным DCT, обратным DST, обратным целочисленным преобразованием или концептуально аналогичным процессом обратного преобразования. Блок 312 обработки обратного преобразования может быть дополнительно сконфигурирован для приема параметров преобразования или соответствующей информации из данных 21 закодированной картинки (например, путем синтаксического анализа и/или декодирования, например, посредством блока 304 энтропийного декодирования) для определения преобразования, которое должно применяться к деквантованным коэффициентам 311.

Восстановление

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

Фильтрация

Блок 320 контурного фильтра (либо в контуре кодировки, либо после контура кодировки) сконфигурирован для фильтрации восстановленного блока 315 для получения отфильтрованного блока 321, например, для сглаживания переходов пикселей или иного улучшения качества видео. Блок 320 контурного фильтра может содержать один или несколько контурных фильтров, таких как де-блочный фильтр, фильтр с адаптивным смещением (SAO) или один или несколько других фильтров, например, двусторонний фильтр, адаптивный контурный фильтр (ALF), фильтры резкости, сглаживающие фильтры или коллаборативные фильтры, или любая их комбинация. Хотя блок 320 контурного фильтра показан на Фиг.3 как контурный фильтр, в других конфигурациях блок 320 контурного фильтра может быть реализован как постконтурный фильтр.

Буфер декодированных картинок

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

Декодер 30 выполнен с возможностью вывода декодированной картинки 311, например, через выход 312 для представления или просмотра пользователю.

Предсказание

Блок 344 внешнего предсказания может быть идентичен блоку 244 внешнего предсказания (в частности, модулю компенсации движения), а блок 354 внутреннего предсказания может быть идентичен блоку 254 внешнего предсказания по функциям и выполняет решения о разделении или разбиении и прогнозирование на основе о параметрах разделения и/или предсказания или соответствующей информации, принятой из данных 21 закодированной картинки (например, путем синтаксического анализа и/или декодирования, например, посредством блока 304 энтропийного декодирования). Блок 360 выбора режима может быть сконфигурирован для выполнения предсказания (внутреннее или внешнее предсказание) для каждого блока на основе восстановленных картинок, блоков или соответствующих выборок (фильтрованных или нефильтрованных) для получения блока 365 предсказания.

Когда слайс видео кодируется как слайс с внутренним кодированием (I), блок 354 внутреннего предсказания блока 360 выбора режима конфигурируется для генерирования блока 365 предсказания для блока картинки текущего слайса видео на основе сигнального режима внутреннего предсказания и данных из ранее декодированных блоков текущей картинки. Когда видеокартинка кодируется как внешне кодированная (то есть B или P) слайс, блок 344 внешнего предсказания (например, блок компенсации движения) блока 360 выбора режима конфигурируется для создания блоков 365 предсказания для видеоблока текущего слайса видео на основе векторов движения и других элементов синтаксиса, принятых от блока 304 энтропийного декодирования. Для внешнего предсказания блоки предсказания могут быть созданы из одной из опорных картинок в пределах одного из списков опорных картинок. Видеодекодер 30 может строить списки опорных кадров, Список 0 и Список 1, используя методики построения по умолчанию на основе опорных картинок, хранящихся в DPB 330.

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

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

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

Следует отметить, что дополнительные операции могут применяться к выведенным векторам движения текущего блока (в том числе, но без ограничения, к векторам движения контрольной точки аффинного режима, векторам движения субблока в аффинном, планарном, ATMVP режимах, временным векторам движения и тому подобному). Например, значение вектора движения ограничивается предопределенным диапазоном в соответствии с его представляющим битом. Если представляющий бит вектора движения является bitDepth (битовой глубиной), тогда диапазон составляет -2^(bitDepth-1) ~ 2^(bitDepth-1)-1, где «^» означает возведение в степень. Например, если bitDepth равна 16, диапазон составляет -32768~32767; если bitDepth равна 18, диапазон составляет -131072~131071. Например, значение производного вектора движения (например, MV четырех субблоков 4×4 в одном блоке 8×8) ограничено таким образом, чтобы максимальная разность между целыми частями четырех MV субблока 4×4 не превышала N пикселей, например, не более 1 пикселя. Здесь представлены два способа ограничения вектора движения в соответствии с bitDepth.

Способ 1: удаление MSB (старшего бита) переполнения посредством потоковых операций

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

Например, если значение mvx равно -32769, после применения формул (1) и (2) результирующее значение равняется 32767. В компьютерной системе десятичные числа хранятся как дополнение до двойки. Дополнением до двойки для -32769 является 1,0111,1111,1111,1111 (17 битов), затем MSB отбрасывается, поэтому результирующим дополнением до двойки является 0111,1111,1111,1111 (десятичное число составляет 32767), что совпадает с выходными данными от применения формул (1) и (2).

Операции могут применяться во время суммирования mvp и mvd, как показано в формулах с (5) по (8).

Способ 2: удаление MSB переполнения посредством усечения значения

где vx представляет собой горизонтальную компоненту вектора движения блока изображения или субблока, vy представляет собой вертикальную компоненту вектора движения блока изображения или субблока; x, y и z соответственно соответствуют трем входным значениям процесса усечения MV, а определение функции Clip3 является следующим:

Фиг.4 является схематичным представлением устройства 400 видеокодировки согласно варианту осуществления настоящего раскрытия. Устройство 400 видеокодировки подходит для реализации раскрытых вариантов осуществления, которые описаны в данном документе. В варианте осуществления устройство 400 видеокодировки может быть декодером, таким как видеодекодер 30 по ФИГ. 1A, или кодером, таким как видеокодер 20 по ФИГ. 1А.

Устройство 400 видеокодировки содержит входные порты 410 (или порты 410 ввода) и блоки 420 (Rx) приемника для приема данных; процессор, логический блок или центральный процессор (CPU) 430 для обработки данных; блоки 440 (Tx) передатчика и выходные порты 450 (или порты 450 вывода) для передачи данных; и память 460 для хранения данных. Устройство 400 видеокодировки также может содержать компоненты преобразования оптических сигналов в электрические (OE) и компоненты преобразования электрических сигналов в оптические (EO), подключенные к входным портам 410, блокам 420 приемника, блокам 440 передатчика и выходным портам 450 для обеспечения входа или выхода оптических или электрических сигналов.

Процессор 430 реализуется аппаратным обеспечением и программным обеспечением. Процессор 430 может быть реализован в виде одного или более CPU-чипов, ядер (например, в виде многоядерного процессора), FPGA, ASIC и DSP. Процессор 430 поддерживает связь с входными портами 410, блоками 420 приемника, блоками 440 передатчика, выходными портами 450 и памятью 460. Процессор 430 содержит модуль 470 кодировки. Модуль 470 кодировки реализует раскрытые варианты осуществления, описанные выше. Например, модуль 470 кодировки реализует, обрабатывает, подготавливает или предоставляет различные операции кодировки. Следовательно, включение модуля 470 кодировки обеспечивает существенное улучшение функциональных возможностей устройства 400 видеокодировки и обеспечивает трансформацию устройства 400 видеокодировки в другое состояние. В качестве альтернативы модуль 470 кодировки реализуется как инструкции, хранящиеся в памяти 460 и исполняемые процессором 430.

Память 460 может содержать один или более дисков, ленточных накопителей и твердотельных накопителей и может использоваться в качестве устройства хранения данных переполнения для хранения программ, когда такие программы выбраны для исполнения, и для хранения инструкций и данных, которые считываются во время исполнения программ. Память 460 может быть, например, энергозависимой и/или энергонезависимой и может быть постоянной памятью (ROM), оперативной памятью (RAM), троичной ассоциативной памятью (TCAM) и/или статической оперативной памятью (SRAM).

Фиг.5 является упрощенной блок-схемой аппаратуры 500, которая может использоваться как одно или оба из устройства-источника 12 и устройства-получателя 14 с Фиг.1 согласно примерному варианту осуществления.

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

Память 504 в аппаратуре 500 может быть постоянной памятью (ROM) или устройством оперативной памяти (RAM) в некоторой реализации. В качестве памяти 504 может использоваться запоминающее устройство любого другого подходящего типа устройства. Память 504 может включать в себя код и данные 506, доступ к которым осуществляется процессором 502 с использованием шины 512. Память 504 может дополнительно включать в себя операционную систему 508 и прикладные программы 510, причем прикладные программы 510 включают в себя по меньшей мере одну программу, которая позволяет процессору 502 выполнять описанные в данном документе способы. Например, прикладные программы 510 могут включать в себя приложения с 1 по N, которые дополнительно включают в себя приложение видеокодировки, которое выполняет описанные в данном документе способы.

Аппаратура 500 может также включать в себя одно или более устройств вывода, например, дисплей 518. Дисплей 518 может быть, в одном примере, дисплеем, чувствительным к касанию, который объединяет дисплей с элементом, чувствительным к касанию, способным воспринимать сенсорные вводы (касанием). Дисплей 518 может быть соединен с процессором 502 через шину 512.

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

Контурный фильтр

Всего в VTM3 есть три контурных фильтра. Помимо фильтра удаления блочности и SAO (двух контурных фильтров в HEVC), в VTM3 применяется адаптивный контурный фильтр (ALF). Порядок фильтрации в VTM3 - это фильтр удаления блочности, SAO и ALF.

ALF

В VTM5 применяется адаптивный контурный фильтр (ALF) с блочной адаптацией фильтра. Для компонента яркости один из 25 фильтров выбирается для каждого блока 4 × 4 на основе направления и активности локальных градиентов.

Форма фильтра:

В JEM используются две формы ромбов фильтров (как показано на рисунке 6) для компонента яркости. Форма ромба 7 × 7 применяется для компонента яркости, а форма ромба 5 × 5 применяется для компонента цветности.

Классификация блоков:

Для компонента яркости каждый блок 4 × 4 относится к одному из 25 классов. Классификационный индекс C выводится на основе его направленности D и квантованного значения активности следующим образом:

Чтобы вычислить и сначала вычисляются градиенты в горизонтальном, вертикальном и двух диагональных направлениях с использованием одномерного лапласиана:

Где индексы и относятся к координатам верхней левой выборки в блоке 4 × 4, а R(i, j) указывает восстановленную выборку в координате .

Чтобы упростить классификацию блоков, применяется одномерное вычисление лапласиана с подвыборкой. Как показано на Фиг.7 (a)-(d), для расчета градиента во всех направлениях используются одни и те же субдискретизированные позиции.

Тогда максимальное и минимальное значения градиентов горизонтального и вертикального направлений задаются как:

,

Максимальное и минимальное значения градиента двух диагональных направлений устанавливаются как:

,

Чтобы получить значение направленности , эти значения сравниваются друг с другом и с двумя пороговыми значениями и

ЭТАП 1. Если и истинны, устанавливается в .

ЭТАП 2. Если , продолжить с этапа 3; в противном случае продолжить с этапа 4.

ЭТАП 3. Если , устанавливается в , иначе D устанавливается в 1.

ЭТАП 4. Если , D устанавливается в , иначе устанавливается в 3.

Значение A активности вычисляется как:

A дополнительно квантуется до диапазона от 0 до 4 включительно, и квантованное значение обозначается .

Для компонентов цветности в картинке способ классификации не применяется, т.е. для каждого компонента цветности применяется один набор коэффициентов ALF.

Геометрические преобразования коэффициентов фильтра

Перед фильтрацией каждого блока яркости 4 × 4 к коэффициентам f(k, l) фильтра применяются геометрические преобразования, такие как вращение или диагональный и вертикальный переворот, в зависимости от значений градиента, вычисленных для этого блока. Это эквивалентно применению этих преобразований к выборкам в области поддержки фильтра. Идея состоит в том, чтобы сделать разные блоки, к которым применяется ALF, более похожими, выровняв их направленность.

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

Диагональный: fDk,

Вертикальный переворот:

Вращение: fRk,

где размер фильтра, а 0≤k, l≤K-1 - координаты коэффициентов, так что местоположение 0,0 находится в верхнем левом углу, а местоположение K-1, K-1 находится в нижнем правом углу. Преобразования применяются к коэффициентам f(k, l) фильтра в зависимости от значений градиента, вычисленных для этого блока. Взаимосвязь между преобразованием и четырьмя градиентами в четырех направлениях суммирована в следующей таблице.

Таблица 1 Отображение градиента, вычисленного для одного блока, и преобразований Значения градиента Преобразование gd2<gd1 and gh<gv Без преобразования gd2<gd1 and gv<gh Диагональный gd1<gd2 and gh<gv Вертикальный переворот gd1<gd2 and gv<gh Вращение

Сигнализация параметров фильтра

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

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

Коэффициенты фильтра квантуются с нормой 128. Чтобы еще больше ограничить сложность умножения, применяется соответствие битового потока, согласно которому значение коэффициента центральной позиции должно быть в диапазоне от 0 до 28, а значения коэффициентов остальных позиций должны находиться в диапазоне от -27 до 27-1, включительно.

Процесс фильтрации

На стороне декодера, когда ALF включен для CTB, каждая выборка R(i, j) в CU фильтруется, в результате получается значение выборки , как показано ниже, где L обозначает длину фильтра, fm, n представляет коэффициент фильтра, а f(k, l) обозначает декодированные коэффициенты фильтра.

Или фильтрация также может быть выражена как

где выборки I (x+i, y+j) являются входными выборками, O(x, y) - это отфильтрованная выходная выборка (т.е. результат фильтрации), а обозначает коэффициенты фильтра, где выборки I (x+i, y+j) - входные выборки, O(x, y) - отфильтрованные выходные выборки (т.е. результат фильтрации), а обозначает коэффициенты фильтра. На практике в VTM реализовано с использованием целочисленной арифметики для вычислений с точностью до фиксированной точки:

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

Начиная с VTM5 (ITU JVET-N0242), ALF выполняется нелинейным образом. Уравнение 21 можно сформулировать следующим образом:

Где те же коэффициенты фильтра, что и в уравнении (22) [за исключением который равен 1 в уравнении (23), тогда как он равен в уравнении (21].

Фильтр дополнительно модифицируется путем введения нелинейности, чтобы сделать ALF более эффективным за счет использования функции усечения, чтобы уменьшить влияние значений соседних выборок ((Ix+i, y+j), когда они слишком отличаются от отфильтрованного значения () текущей выборки.

В VTM5 фильтр ALF модифицирован следующим образом:

где - функция усечения, а k(i, j) - параметры усечения, которые зависят от коэффициента (i, j) фильтра. Параметры усечения указываются для каждого фильтра ALF, одно значение усечения сигнализируется на каждый коэффициент фильтра. Это означает, что до 12 значений усечения могут передаваться в битовом потоке на фильтр яркости и до 6 значений усечения для фильтра цветности.

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

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

Наборы значений усечения, используемые в VTM5, представлены в таблице 2. 4 значения были выбраны путем примерно равного разделения в логарифмической области полного диапазона значений выборки (закодированных на 10 битах) для яркости и диапазона от 4 до 1024 для цветности.

Точнее, таблица яркости значений усечения была получена по следующей формуле:

где M=210 и N=4.

Точно так же таблицы цветности значений усечения получаются по следующей формуле:

где M=210, N=4 и A=4.

Группа плитки INTRA/INTER LUMA (яркость) { 1024, 181, 32, 6 } ХРОМА (цветность) { 1024, 161, 25, 4 }

Таблица 2: Авторизованные значения усечения

Другой контурный фильтр

Всего в VVC есть три внутриконтурных фильтра. Помимо фильтра удаления блочности и SAO (двух контурных фильтров в HEVC) применяется адаптивный контурный фильтр (ALF). ALF состоит из ALF яркости, ALF цветности и кросс-компонентного ALF (CC-ALF). Процесс фильтрации ALF разработан таким образом, что ALF яркости, ALF цветности и CC-ALF могут выполняться параллельно. Порядок фильтрации в VVC - это фильтр удаления блочности, SAO и ALF. SAO в VVC такая же, как и в HEVC.

В VVC был добавлен новый процесс, называемый сопоставлением яркости с масштабированием цветности (этот процесс ранее был известен как адаптивный внутриконтурный преобразователь). LMCS модифицирует значения выборки перед кодированием и после реконструкции путем перераспределения кодовых слов по всему динамическому диапазону. Этот новый процесс выполняется перед снятием блокировки.

Адаптивный контурный фильтр

В VVC применяется адаптивный контурный фильтр (ALF) с блочной адаптацией фильтра. Для компонента яркости один из 25 фильтров выбирается для каждого блока 4×4 на основе направления и активности локальных градиентов.

Форма фильтра:

Используются две формы ромбов фильтров (как показано на рисунке 6). Форма ромба 7×7 применяется для компонента яркости, а форма ромба 5×5 применяется для компонентов цветности.

Классификация блоков:

Для компонента яркости каждый блок 4 × 4 относится к одному из 25 классов. Классификационный индекс C выводится на основе его направленности D и квантованного значения активности следующим образом:

Чтобы вычислить и сначала вычисляются градиенты в горизонтальном, вертикальном и двух диагональных направлениях с использованием одномерного лапласиана:

Где индексы и относятся к координатам верхней левой выборки в блоке 4 × 4, а R(i, j) указывает восстановленную выборку в координате .

Чтобы упростить классификацию блоков, применяется одномерное вычисление лапласиана с подвыборкой. Как показано на Фиг.7 (a)-(d), для вычисления градиента во всех направлениях используются одни и те же субдискретизированные позиции.

Тогда максимальное и минимальное значения градиентов горизонтального и вертикального направлений задаются как:

Максимальное и минимальное значения градиента двух диагональных направлений задаются как:

Чтобы вывести значение направленности , эти значения сравниваются друг с другом и с двумя пороговыми значениями и

ЭТАП 1. Если оба и истинны, устанавливается в .

ЭТАП 2. Если , продолжить с этапа 3; в противном случае продолжить с этапа 4.

ЭТАП 3. Если , D устанавливается в , иначе D устанавливается .

ЭТАП 4. Если , D устанавливается в , иначе D устанавливается .

Значение активности вычисляется как:

дополнительно квантуется до диапазона от 0 до 4 включительно, и квантованное значение обозначается .

Для компонентов цветности в картинке способ классификации не применяется, т.е. для каждого компонента цветности применяется один набор коэффициентов ALF.

Геометрические преобразования коэффициентов фильтра и значений усечения

Перед фильтрацией каждого блока яркости 4×4 к коэффициентам f(k, l) фильтра и к соответствующим значениям усечения фильтра применяются геометрические преобразования, такие как вращение или диагональный и вертикальный переворот, в зависимости от значений градиента, вычисленных для этого блока. Это эквивалентно применению этих преобразований к выборкам в области поддержки фильтра. Идея состоит в том, чтобы сделать разные блоки, к которым применяется ALF, более похожими, выровняв их направленность.

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

Диагональный:

Вертикальный переворот:

Вращение:

где это размер фильтра, а 0≤k, l≤K-1 - координаты коэффициентов, так что местоположение (0,0) находится в верхнем левом углу, а местоположение находится в нижнем правом углу. Преобразования применяются к коэффициентам f(k, l) фильтра и к значениям усечения в зависимости от значений градиента, вычисленных для этого блока. Взаимосвязь между преобразованием четырех градиентов в четырех направлениях суммирована в таблице 1 выше.

Сигнализация параметров фильтра

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

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

с B, равным внутренней битовой глубине, α - это предварительно определенное постоянное значение, равное 2,35, а N, равное 4, - количество допустимых значений усечения в VVC. Затем AlfClip округляется до ближайшего значения в формате степени 2.

В заголовке слайса можно сигнализировать до 7 индексов APS, чтобы указать наборы фильтров яркости, которые используются для текущего слайса. Дополнительное управление процессом фильтрации можно осуществлять на уровне CTB. Флаг всегда сигнализируется, чтобы указать, применяется ли ALF к CTB яркости. CTB яркости может выбирать набор фильтров из 16 фиксированных наборов фильтров и наборов фильтров из APS. Индекс набора фильтров сигнализируется для CTB яркости, чтобы указать, какой набор фильтров применяется. 16 фиксированных наборов фильтров предварительно определены и жестко закодированы как в кодере, так и в декодере.

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

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

Процесс фильтрации

На стороне декодера, когда ALF задействован для CTB, каждая выборка R(i, j) в CU фильтруется, в результате чего получается значение выборки как показано ниже,

где f(k, l) обозначает декодированные коэффициенты фильтра, K(x,y) - функция усечения, а обозначает декодированные параметры усечения. Переменные k и l варьируются между и , где L обозначает длину фильтра. Функция усечения , которая соответствует функции Операция усечения вводит нелинейность, чтобы сделать ALF более эффективным за счет уменьшения влияния значений соседних выборок, которые слишком отличаются от значения текущей выборки.

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

Подробности синтаксиса показаны в таблице ниже.

Семантика вновь введенных элементов синтаксиса следующая:

alf_luma_clip, равное 0, указывает, что линейный адаптивный контурный фильтр применяется к компоненту яркости. alf_luma_clip, равное 1, указывает, что нелинейный адаптивный контурный фильтр может применяться к компоненту яркости.

alf_chroma_clip, равное 0, указывает, что линейный адаптивный контурный фильтр применяется к компонентам цветности; alf_chroma_clip, равное 1, указывает, что нелинейный адаптивный контурный фильтр применяется к компоненту цветности. Если нет, alf_chroma_clip выводится как 0.

alf_luma_clip_min_eg_order_minus1 плюс 1 указывает минимальный порядок кода exp-Golomb для сигнализации индексов усечения яркости. Значение alf_luma_clip_min_eg_order_minus1 должно быть в диапазоне от 0 до 6 включительно.

alf_luma_clip_eg_order_increase_flag [i], равный 1, указывает, что минимальный порядок кода ехр-Голомба для сигнализации индексов усечения яркости увеличивается на 1. alf_luma_clip_eg_order_increase_flag [i], равный 0, указывает, что минимальный порядок кода exp-Golomb для сигнализации индексов усечения яркости не увеличивается на 1.

Порядок expGoOrderYClip [i] кода ехр-Голомба, используемого для декодирования значений alf_luma_clip_idx [sigFiltIdx] [j], выводится следующим образом:

expGoOrderYClip[i]=alf_luma_clip_min_eg_order_minus1+1+alf_luma_clip_eg_order_increase_flag[i]

alf_luma_clip_idx [sigFiltIdx] [j] указывает индекс усечения значения усечения для использования перед умножением на j-й коэффициент сигнального фильтра яркости, указанного sigFiltIdx. Когда alf_luma_clip_idx [sigFiltIdx] [j] отсутствует, предполагается, что он равен 0 (без усечения).

Порядок k бинаризации ехр-Голомба uek (v) выводится следующим образом:

golombOrderIdxYClip []={0, 0, 1, 0, 0, 1, 2, 1, 0, 0, 1, 2}

k=expGoOrderYClip [golombOrderIdxYClip [j]]

Переменная filterClips [sigFiltIdx] [j] с sigFiltIdx=0..alf_luma_num_filters_signalled_minus1, j=0..11 инициализируется следующим образом: Переменная NumYClipValue установлена в 4.

Для i=0..NumYClipValue - 1

alf_luma_clipping_value[i]=Round (2(BitDepthY * (NumYClipValue - i)/NumYClipValue))

filterClips[sigFiltIdx][j]=alf_luma_clipping_value[alf_luma_clip_idx[sigFiltIdx][j]]

Значения усечения фильтра яркости AlfClipL с элементами AlfClipL[filtIdx][j], с filtIdx=0..NumAlfFilters - 1 и j=0..11 выводятся следующим образом

AlfClipL[filtIdx][j]=filterClips[alf_luma_coeff_delta_idx[filtIdx]][j]

alf_chroma_clip_min_eg_order_minus1 плюс 1 указывает минимальный порядок кода ехр-Голомба для сигнализации индексов усечения цветности. Значение alf_chroma_clip_min_eg_order_minus1 должно быть в диапазоне от 0 до 6 включительно.

alf_chroma_clip_eg_order_increase_flag [i], равный 1, указывает, что минимальный порядок кода ехр-Голомба для сигнализации индексов усечения цветности увеличивается на 1. alf_chroma_clip_eg_order_increase_flag [i], равный 0, указывает, что минимальный порядок кода ехр-Голомба для сигнализации индексов усечения цветности сигнализация не увеличивается на 1.

Порядок expGoOrderC [i] кода ехр-Голомба, используемого для декодирования значений alf_chroma_clip _idx [j], выводится следующим образом:

expGoOrderC[i]=alf_chroma_clip_min_eg_order_minus1+1+alf_chroma_clip_eg_order_increase_flag[i]

alf_chroma_clip_idx [j] указывает индекс усечения значения усечения для использования перед умножением на j-й коэффициент фильтра цветности. Когда alf_chroma_clip_idx [j] отсутствует, предполагается, что он равен 0 (без усечения).

Порядок k бинаризации ехр-Голомба uek (v) выводится следующим образом:

golombOrderIdxC []={0, 0, 1, 0, 0, 1}

k=expGoOrderC [golombOrderIdxC [j]]

Значения усечения фильтра цветности AlfClipC с элементами AlfClipC [j], с j=0..5 выводятся следующим образом:

Переменная NumCClipValue установлена в 4.

Для i=0..NumCClipValue - 1

alf_chroma_clipping_value[i]=Round (2(BitDepthC - 8) * 2 (8 * (NumCClipValue - i - 1)/(NumCClipValue -1)))

AlfClipC[j]=alf_chroma_clipping_value[alf_chroma_clip_idx[j]]

Спецификация синтаксиса ALF согласно спецификации VVC

Процесс адаптивной контурной фильтрации

1.1 Общие положения

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

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

Значения выборок в модифицированных массивах выборок восстановленных картинок после адаптивного контурного фильтра alfPictureL, alfPictureCb и alfPictureCr изначально устанавливаются равными значениям выборок в массивах выборок восстановленных картинок перед адаптивным контурным фильтром recPictureL, recPictureCb и recPictureCr, соответственно.

Когда значение tile_group_alf_enabled_flag равно 1, для каждой единицы дерева кодировки с местоположением блока дерева кодировки яркости (rx, ry), где rx=0..PicWidthInCtbs - 1 и ry=0..PicHeightInCtbs - 1, применяется следующий процесс:

Когда значение alf_ctb_flag [0] [rx] [ry] равно 1, процесс фильтрации блока дерева кодировки для выборок яркости, как указано в пункте 1.2, вызывается с recPictureL, alfPictureL и местоположением блока дерева кодировки яркости (xCtb, yCtb), установленным равным (rx<<CtbLog2SizeY, ry<<CtbLog2SizeY ) в качестве входных данных, а на выходе - модифицированная отфильтрованная картинка alfPictureL.

Когда значение alf_ctb_flag [1] [rx] [ry] равно 1, процесс фильтрации блока дерева кодировки для выборок цветности, как указано в пункте 1.1, вызывается с recPicture, установленным равным recPictureCb, alfPicture установленным равным alfPictureCb, и местоположением блока дерева кодировки цветности (xCtbC, yCtbC), установленным равным (rx<<(CtbLog2SizeY - 1), ry<<(CtbLog2SizeY - 1)) в качестве входных данных, а на выходе - модифицированная отфильтрованная картинка alfPictureCb.

Когда значение alf_ctb_flag [2] [rx] [ry] равно 1, процесс фильтрации блока дерева кодировки для выборок цветности, как указано в пункте 1.4, вызывается с recPicture, установленным равным recPictureCr, alfPicture установлен равным alfPictureCr, и Местоположение блока дерева кодировки цветности (xCtbC, yCtbC) установлено равным (rx<<(CtbLog2SizeY - 1), ry<<(CtbLog2SizeY - 1)) в качестве входных данных, а на выходе - модифицированная отфильтрованная картинка alfPictureCr.

1.2 Процесс фильтрации блоков дерева кодировки для выборок яркости

Входы этого процесса:

восстановленный массив выборок картинки яркости recPictureL до процесса адаптивной контурной фильтрации,

фильтрованный восстановленный массив выборок картинки яркости alfPictureL, Data

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

Выходными данными этого процесса является модифицированный отфильтрованный массив выборок восстановленной картинки яркости alfPictureL.

Вызывается процесс вывода для пункта 1.3 индекса фильтра с местоположением (xCtb, yCtb) и восстановленным массивом выборок картинки яркости recPictureL в качестве входных данных, а также с filterIdx [x] [y] и transposeIdx [x] [y] с x, y=0..CtbSizeY - 1 в качестве выходов.

Для выведения отфильтрованных восстановленных выборок яркости alfPictureL [x] [y] каждая восстановленная выборка яркости внутри текущего блока дерева кодировки яркости recPictureL [x] [y] фильтруется следующим образом с x, y=0..CtbSizeY - 1:

Массив коэффициентов фильтра яркости f [j], соответствующий фильтру, указанному в filterIdx [x] [y], выводится следующим образом с j=0..12:

f[j]=AlfCoeffL [filterIdx [x] [y]] [j].

Массив значений усечения фильтра яркости c[j], соответствующий фильтру, указанному в filterIdx [x] [y], выводится следующим образом с j=0..11:

c[j]=AlfClipL[filtIdx[x][y]][j]

Коэффициенты фильтра яркости filterCoeff выводятся в зависимости от transposeIdx [x] [y] следующим образом:

Если transposeIndex [x] [y]=1,

filterCoeff []={f [9], f [4], f [10], f [8], f [1], f [5], f [11], f [7], f [3], f [0], f [2], f [6], f [12]}

filterClip []={c [9], c [4], c [10], c [8], c [1], c [5], c [11], c [7], c [3], c [0], c [2], c [6]}

В противном случае, если transposeIndex [x] [y]=2,

filterCoeff []={f [0], f [3], f [2], f [1], f [8], f [7], f [6], f [5], f [4], f [9], f [10], f [11], f [12]}

filterClip []={c [0], c [3], c [2], c [1], c [8], c [7], c [6], c [5], c [4], c [9], c [10], c [11]}

В противном случае, если transposeIndex [x] [y]=3,

filterCoeff []={f [9], f [8], f [10], f [4], f [3], f [7], f [11], f [5], f [1], f [0], f [2], f [6], f [12]}

filterClip []={c [9], c [8], c [10], c [4], c [3], c [7], c [11], c [5], c [1], c [0], c [2], c [6]}

Иначе

filterCoeff []={f [0], f [1], f [2], f [3], f [4], f [5], f [6], f [7], f [8], f [9], f [10], f [11], f [12]}

filterClip []={c [0], c [1], c [2], c [3], c [4], c [5], c [6], c [7], c [8], c [9], c [10], c [11]}

Местоположения (hx, vy) для каждой из соответствующих выборок яркости (x, y) внутри данного массива recPicture выборок яркости выводятся следующим образом:

hx=Clip3 (0, pic_width_in_luma_samples - 1, xCtb+x)

vy=Clip3 (0, pic_height_in_luma_samples - 1, yCtb+y)

Сумма переменных выводится следующим образом:

Сумма переменных выводится следующим образом:

Модифицированная отфильтрованная выборка восстановленной картинки яркости alfPictureL [xCtb+x] [yCtb+y] выводится следующим образом:

alfPictureL[xCtb+x][yCtb+y]=Clip3(0, (1<<BitDepthY) - 1, sum).

1.3 Процесс вывода для транспонирования ALF и индекса фильтра для выборок яркости

Входы этого процесса:

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

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

Результатами этого процесса являются:

массив индекса фильтра классификации filterIdx [x] [y] с x, y=0..CtbSizeY - 1,

массив индексов транспонирования transposeIdx [x] [y] с x, y=0..CtbSizeY - 1.

Местоположения (hx, vy) для каждой из соответствующих выборок яркости (x, y) внутри данного массива recPicture выборок яркости выводятся следующим образом:

hx=Clip3 (0, pic_width_in_luma_samples - 1, x)

vy=Clip3 (0, pic_height_in_luma_samples - 1, y)

Массив индексов фильтра классификации filterIdx и массив индексов транспонирования transposeIdx получают с помощью следующих упорядоченных этапов:

Переменные filterH [x] [y], filterV [x] [y], filterD0 [x] [y] и filterD1 [x] [y] с x, y=- 2..CtbSizeY+1 выводятся следующим образом:

Если оба x и y - четные числа или оба x и y - нечетные числа, применяется следующее:

filtH[x][y]=Abs( (recPicture[hxCtb+x, vyCtb+y]<<1) - recPicture[hxCtb+x-1, vyCtb+y] -recPicture[hxCtb+x+1, vyCtb+y] )

filtV[x][y]=Abs( (recPicture[hxCtb+x, vyCtb+y]<<1) - recPicture[hxCtb+x, vyCtb+y-1] - recPicture[hxCtb+x, vyCtb+y+1] )

filtD0[x][y]=Abs( (recPicture[hxCtb+x, vyCtb+y]<<1) - recPicture[hxCtb+x-1, vyCtb+y-1] - recPicture[hxCtb+x+1, vyCtb+y+1] )

filtD1[x][y]=Abs( (recPicture[hxCtb+x, vyCtb+y]<<1) - recPicture[hxCtb+x+1, vyCtb+y-1] - recPicture[hxCtb+x-1, vyCtb+y+1] )

В противном случае filterH [x] [y], filterV [x] [y], filterD0 [x] [y] и filterD1 [x] [y] устанавливаются равными 0.

Переменные varTempH1[x][y], varTempV1[x][y], varTempD01[x][y], varTempD11[x][y] and varTemp[x][y] with x, y=0..(CtbSizeY - 1)>>2 выводятся следующим образом:

sumH[x][y]=ΣiΣj filtH[(x<<2)+i][(y<<2)+j] with i, j=-2..5

sumV[x][y]=ΣiΣj filtV[(x<<2)+i][(y<<2)+j] with i, j=-2..5

sumD0[x][y]=ΣiΣj filtD0[(x<<2)+i][(y<<2)+j] with i, j=-2..5

sumD1[x][y]=ΣiΣj filtD1[(x<<2)+i][(y<<2)+j] with i, j=-2..5

sumOfHV[x][y]=sumH[x][y]+sumV[x][y]

Переменные dir1 [x] [y], dir2 [x] [y] и dirS [x] [y] с x, y=0..CtbSizeY - 1 выводятся следующим образом:

Переменные hv1, hv0 и dirHV выводятся следующим образом:

Если sumV[x>>2][y>>2] больше sumH[x>>2][y>>2], применяется следующее:

hv1=sumV[x>>2][y>>2]

hv0=sumH[x>>2][y>>2]

dirHV=1

Иначе применяется следующее:

hv1=sumH[x>>2][y>>2]

hv0=sumV[x>>2][y>>2]

dirHV=3

Переменные d1, d0 и dirD выводятся следующим образом:

Если sumD0[x>>2][y>>2] больше sumD1[x>>2][y>>2], применяется следующее:

d1=sumD0[x>>2][y>>2]

d0=sumD1[x>>2][y>>2]

dirD=0

Иначе применяется следующее:

d1=sumD1[x>>2][y>>2]

d0=sumD0[x>>2][y>>2]

dirD=2

Переменные hvd1, hvd0 выводятся следующим образом:

hvd1=(d1 * hv0>hv1 * d0) ? d1 : hv1

hvd0=(d1 * hv0>hv1 * d0) ? d0 : hv0

Переменные dirS [x] [y], dir1 [x] [y] и dir2 [x] [y] получены следующим образом:

dir1[x][y]=(d1 * hv0>hv1 * d0) ? dirD : dirHV

dir2[x][y]=(d1 * hv0>hv1 * d0) ? dirHV : dirD

dirS[x][y]=(hvd1>2 * hvd0) ? 1 : ((hvd1 * 2>9 * hvd0) ? 2 : 0)

Переменная avgVar [x] [y] с x, y=0..CtbSizeY - 1 выводится следующим образом:

varTab[]={ 0, 1, 2, 2, 2, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 4 }

avgVar[x][y]=varTab[Clip3(0, 15, (sumOfHV[x>>2][y>>2] * 64)>>(3+BitDepthY))]

Массив индексов фильтра классификации filterIdx [x] [y] и массив индексов транспонирования transposeIdx [x] [y] с x=y=0..CtbSizeY - 1 выводятся следующим образом:

transposeTable []={0, 1, 0, 2, 2, 3, 1, 3}

transposeIdx[x][y]=transposeTable[dir1[x][y] * 2+(dir2[x][y]>>1)]

filtIdx[x][y]=avgVar[x][y]

Когда dirS [x] [y] не равно 0, filterIdx [x] [y] модифицируется следующим образом:

filtIdx[x][y]+=(((dir1[x][y] & 0x1)<<1)+dirS[x][y]) * 5.

1.4 Процесс фильтрации блоков дерева кодировки для выборок цветности

Входы этого процесса:

восстановленный массив выборок картинки цветности recPicture до процесса адаптивной контурной фильтрации,

фильтрованный восстановленный массив выборок картинки цветности alfPicture,

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

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

Размер текущего блока дерева кодировки цветности ctbSizeC выводится следующим образом:

ctbSizeC=CtbSizeY/SubWidthC

Для выведения отфильтрованных восстановленных выборок цветности alfPicture [x] [y] каждая восстановленная выборка цветности внутри текущего блока дерева кодировки цветности recPicture [x] [y] фильтруется следующим образом с x, y=0..ctbSizeC - 1:

Местоположение (hx, vy) для каждого из соответствующих выборок цветности (x, y) внутри данного массива recPicture выборок цветности выводится следующим образом:

hx=Clip3 (0, pic_width_in_luma_samples/SubWidthC - 1, xCtbC+x)

vy=Clip3 (0, pic_height_in_luma_samples/SubHeightC - 1, yCtbC+y)

Сумма переменных выводится следующим образом:

sum=AlfCoeffC[0] * (Clip3(-AlfClipC[0], AlfClipC[0], recPicture[hx, vy+2] - curr)+Clip3 (-AlfClipC[0], AlfClipC[0], recPicture[hx, vy - 2] - curr))+
AlfCoeffC[1] * (Clip3(-AlfClipC[1], AlfClipC[1], recPicture[hx+1, vy+1] - curr)+Clip3 (-AlfClipC[1], AlfClipC[1],recPicture[hx - 1, vy - 1] - curr))+
AlfCoeffC[2] * (Clip3(-AlfClipC[2], AlfClipC[2], recPicture[hx, vy+1] - curr)+Clip3 (-AlfClipC[2], AlfClipC[2],recPicture[hx, vy - 1] - curr))+AlfCoeffC[3] * (Clip3(-AlfClipC[3], AlfClipC[3], recPicture[hx - 1, vy+1] - curr)+Clip3 (-AlfClipC[3], AlfClipC[3],recPicture[hx+1, vy - 1] - curr)+
AlfCoeffC[4] * (Clip3(-alfClipC[4], alfClipC[4], recPicture[hx+2, vy] - curr)+Clip3 (-AlfClipC[4], AlfClipC[4],recPicture[hx - 2, vy] - curr)+
AlfCoeffC[5] * (Clip3(-AlfClipC[5], AlfClipC[5], recPicture[hx+1, vy] - curr)+Clip3 (-AlfClipC[5], AlfClipC[5], recPicture[hx - 1, vy] - curr))

sum=curr+((sum+64)>>7)

Модифицированная отфильтрованная выборка восстановленной картинки цветности alfPicture [xCtbC+x] [yCtbC+y] выводится следующим образом:

alfPicture[xCtbC+x][yCtbC+y]=Clip3(0, (1<<BitDepthC) - 1, sum).

Как описано выше и как показано на фиг.8, параметры усечения яркости и цветности ALF передаются с использованием экспоненциальных кодов Голомба K-го порядка, подобных коэффициентам фильтра ALF.

Использование экспоненциальных кодов Голомба K-го порядка для параметров усечения может быть неэффективным с точки зрения эффективности кодировки, поскольку сигнализируемый параметр усечения является просто индексом в таблице значений усечения (см. Таблицу 2 выше). Значение индекса колеблется от 0 до 3.

Следовательно, передача значений индекса от 0 до 3 с использованием экспоненциальных кодов Голомба K-го порядка таким же образом, как коэффициенты фильтра ALF, используют дополнительные элементы синтаксиса, alf_luma_clip_min_eg_order_minus1, alf_luma_clip_eg_order_increase_flag[i] для определения значения K (порядок экспоненциального кода Голомба, подлежащего использованию) и затем элемент синтаксиса alf_luma_clip_idx сигнализируется с использованием экспоненциального кода Голомба K-го порядка. Следовательно, этот способ сигнализации сложен и также неэффективен с точки зрения эффективности кодировки. Поэтому желателен более простой способ сигнализации параметров усечения.

В одном варианте осуществления предложенного решения (решение 1), как показано на фиг.9, параметры усечения сигнализируются с использованием кодов фиксированной длины, и следовательно, элементы синтаксиса alf_luma_clip_min_eg_order_minus1, alf_luma_clip_eg_order_increase_flag [i] не используются. Элемент синтаксиса alf_luma_clip_idx сигнализируется с использованием кода фиксированной длины из 2 битов. Этот способ имеет то преимущество, что параметры усечения сигнализируются очень простым способом, эффективность кодировки повышается, поскольку несколько элементов синтаксиса, относящихся к экспоненциальным кодам голомба K-го порядка, больше не передаются.

Модифицированный синтаксис alf_data выглядит следующим образом:

alf_data () { Дескриптор alf_chroma_idc ту (v) alf_luma_clip u(1) if(alf_choma_idc) alf_chroma_clip u(1) alf_luma_num_filters_signalled_minus1 tb (v) if(alf_luma_num_filters_signalled_minus1>0) { for(filtIdx=0; filtIdx<NumAlfFilters; filtIdx++) alf_luma_coeff_delta_idx[filtIdx] tb (v) } alf_luma_coeff_delta_flag u(1) if (!alf_luma_coeff_delta_flag && alf_luma_num_filters_signalled_minus1>0) alf_luma_coeff_delta_prediction_flag u(1) alf_luma_min_eg_order_minus1 ue(v) for(i=0; i<3; i++) alf_luma_eg_order_increase_flag[i] u(1) if (alf_luma_coeff_delta_flag) { for(sigFiltIdx=0; sigFiltIdx<=alf_luma_num_filters_signalled_minus1; sigFiltIdx++) alf_luma_coeff_flag[sigFiltIdx] u(1) } for(sigFiltIdx=0; sigFiltIdx<=alf_luma_num_filters_signalled_minus1; sigFiltIdx++) { if (alf_luma_coeff_flag[sigFiltIdx]) { for (j=0; j<12; j++) { alf_luma_coeff_delta_abs[sigFiltIdx][j] uek (v) if(alf_luma_coeff_delta_abs[sigFiltIdx][j]) alf_luma_coeff_delta_sign[sigFiltIdx][j] u(1) } } } if(alf_luma_clip) { for (sigFiltIdx=0; sigFiltIdx<=alf_luma_num_filters_signalled_minus1; sigFiltIdx++) { if (alf_luma_coeff_flag[sigFiltIdx]) { for (j=0; j<12; j++) { if(filterCoefficients[sigFiltIdx][j]) alf_luma_clip_idx[sigFiltIdx][j] u(2) } } } } if (alf_chroma_idc>0) { for(i=0; i<2; i++) for(j=0; j<6; j++) { alf_chroma_coeff_abs[j] uek (v) if(alf_chroma_coeff_abs[j]>0) alf_chroma_coeff_sign[j] u(1) } } if (alf_chroma_idc>0 && alf_chroma_clip) { for(j=0; j<6; j++) { if(alf_chroma_coeff_abs[j]) alf_chroma_clip_idx[j] u(2) } } }

В качестве варианта осуществления альтернативного решения (решение 2) усеченная унарная кодировка также может использоваться для сигнализации индекса параметра усечения.

В качестве варианта осуществления альтернативного решения (решение 3), если количество параметров усечения изменяется с фиксированного значения 4 на другое число, большее 4, код фиксированной длины (v) «значение v» соответственно увеличивается. Например, если количество параметров усечения увеличивается с 4 до 5 или 6, то код фиксированной длины использует 3 бита для сигнализации параметра усечения.

В качестве варианта осуществления альтернативного решения (решение 4) коэффициенты фильтра ALF сигнализируются с использованием кода фиксированной длины вместо экспоненциального кода Голомба K-го порядка.

Фиг.10 - блок-схема, иллюстрирующая способ согласно первому аспекту настоящего раскрытия. Способ содержит этапы получения битового потока, в котором по меньшей мере один бит в битовом потоке представляет элемент синтаксиса для текущего блока, 1001, при этом элемент синтаксиса представляет собой индекс значения усечения адаптивного контурного фильтра (ALF), указывающий индекс усечения значения усечения для использования перед умножением на коэффициент ALF; синтаксический анализ битового потока для получения значения элемента синтаксиса для текущего блока, при этом элемент синтаксиса кодируется с использованием кода фиксированной длины, 1002; применение адаптивной контурной фильтрации к текущему блоку на основе значения элемента синтаксиса для текущего блока, 1003.

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

получение битового потока, причем по меньшей мере один бит в битовом потоке представляет элемент синтаксиса для текущего блока, 1101, при этом элемент синтаксиса представляет собой индекс значения усечения адаптивного контурного фильтра (ALF) или параметр коэффициента ALF; синтаксический анализ битового потока для получения значения элемента синтаксиса для текущего блока, при этом значение элемента синтаксиса для текущего блока получается с использованием только по меньшей мере одного бита элемента синтаксиса 1102; применение адаптивной контурной фильтрации к текущему блоку на основе значения элемента синтаксиса для текущего блока, 1103.

Фиг.12 - блок-схема, иллюстрирующая способ согласно третьему аспекту настоящего раскрытия. Согласно третьему аспекту предоставляется способ кодировки, реализуемый устройством кодирования, способ, содержащий: определение значения элемента синтаксиса для текущего блока, при этом элемент синтаксиса указывает индекс усечения значения усечения для использования перед умножением на коэффициент адаптивного контурного фильтра (ALF), 1201; генерирование битового потока на основе значения элемента синтаксиса, при этом по меньшей мере один бит в битовом потоке представлет элемент синтаксиса, при этом элемент синтаксиса кодируется с использованием кода фиксированной длины, 1202.

Фиг.13 - блок-схема, иллюстрирующая способ согласно четвертому аспекту настоящего раскрытия. Согласно четвертому аспекту предоставляется способ кодировки, реализуемый устройством кодирования, при этом способ содержит: определение значения элемента синтаксиса для текущего блока, при этом элемент синтаксиса является индексом значения усечения адаптивного контурного фильтра (ALF) или параметром коэффициента фильтра ALF, 1301; генерирование битового потока на основе значения элемента синтаксиса, при этом по меньшей мере один бит в битовом потоке представляет элемент синтаксиса, при этом по меньшей мере один бит элемента синтаксиса получается с использованием только значения элемента синтаксиса для текущего блока, 1302.

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

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

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

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

Фиг.18 - блок-схема, иллюстрирующая декодер согласно одиннадцатому аспекту настоящего раскрытия. Согласно одиннадцатому аспекту настоящего раскрытия, предоставляется декодер 1800, содержащий: блок 1801 энтропийного декодирования (может быть блоком 304 энтропийного декодирования), сконфигурированный для получения битового потока 1811, причем по меньшей мере один бит в битовом потоке 1811 представляет элемент синтаксиса для текущего блока, при этом элемент синтаксиса представляет собой индекс значения усечения ALF, указывающий индекс усечения значения усечения для использования перед умножением на коэффициент адаптивного контурного фильтра (ALF); блок 1801 энтропийного декодирования дополнительно сконфигурирован для синтаксического анализа битового потока 1811 для получения значения 1812 элемента синтаксиса для текущего блока, при этом элемент синтаксиса кодируется с использованием кода фиксированной длины; и блок 1803 фильтрации (может быть контурным фильтром 320), сконфигурированным для применения адаптивной контурной фильтрации к текущему блоку на основе значения 1812 элемента синтаксиса для текущего блока.

Фиг.19 - блок-схема, иллюстрирующая декодер согласно двенадцатому аспекту настоящего раскрытия. Согласно двенадцатому аспекту настоящего раскрытия предоставляется декодер 1900, содержащий: модуль 1901 энтропийного декодирования (может быть модулем 304 энтропийного декодирования), сконфигурированный для получения потока 1911 битов, по меньшей мере, один бит в битовом потоке 1911 представляет элемент синтаксиса для текущего блока, причем элемент синтаксиса представляет собой индекс значения усечения ALF или параметр коэффициента ALF; блок 1801 энтропийного декодирования дополнительно сконфигурирован для синтаксического анализа битового потока для получения значения 1912 элемента синтаксиса для текущего блока, при этом значение элемента синтаксиса для текущего блока получается с использованием только по меньшей мере одного бита элемента синтаксиса; и блок 1903 фильтрации (может быть контурным фильтром 320), сконфигурированный для применения адаптивной контурной фильтрации к текущему блоку на основе значения 1912 элемента синтаксиса для текущего блока.

Фиг.20 - блок-схема, иллюстрирующая кодер согласно тринадцатому аспекту настоящего раскрытия. Согласно тринадцатому аспекту настоящего раскрытия предоставляется кодер 2000, содержащий: блок 2001 определения (может быть контурным фильтром 220), сконфигурированный для определения значения 2012 элемента синтаксиса для текущего блока, при этом элемент синтаксиса указывает индекс усечения значения усечения для использования перед умножением на коэффициент адаптивного контурного фильтра (ALF); блок 2002 энтропийного кодирования (может быть блоком 270 энтропийного кодирования), сконфигурированный для генерирования битового потока 2011 на основе значения 2012 элемента синтаксиса, при этом, по меньшей мере, один бит в битовом потоке 2011 представляет элемент синтаксиса, при этом элемент синтаксиса закодирован используя код фиксированной длины.

Фиг.21 - блок-схема, иллюстрирующая кодер согласно четырнадцатому аспекту настоящего раскрытия. Согласно четырнадцатому аспекту настоящего раскрытия предусмотрен кодер 2100, содержащий: блок 2101 определения (может быть контурным фильтром 220), сконфигурированный для определения значения 2112 элемента синтаксиса для текущего блока, при этом элемент синтаксиса представляет собой индекс значения усечения ALF или параметр коэффициента фильтра ALF; блок 2102 энтропийного кодирования (может быть блоком 270 энтропийного кодирования), сконфигурированный для генерирования битового потока 2111 на основе значения 2112 элемента синтаксиса, при этом по меньшей мере один бит в битовом потоке 2111 представляет элемент синтаксиса, при этом по меньшей мере один бит элемента синтаксиса получается путем использования только значения элемента синтаксиса для текущего блока.

В настоящем раскрытии представлены следующие дополнительные варианты осуществления:

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

получение битового потока, причем по меньшей мере один бит в битовом потоке соответствует элементу синтаксиса для текущего блока (или набора блоков, один блок в наборе блоков является текущим блоком);

синтаксический анализ битового потока для получения значения элемента синтаксиса для текущего блока, при этом полученное значение элемента синтаксиса для текущего блока относится только к по меньшей мере одному биту;

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

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

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

Вариант 4 осуществления. Способ по любому из вариантов осуществления с 1 по 3, в котором элемент синтаксиса является параметром индекса усечения адаптивного контурного фильтра.

Вариант 5 осуществления. Способ по любому из вариантов осуществления с 1 по 3, в котором элемент синтаксиса представляет собой параметр коэффициента адаптивного контурного фильтра.

Вариант 6 осуществления. Способ по любому из вариантов осуществления с 1 по 5, в котором значение элемента синтаксиса используется для определения коэффициента фильтра, коэффициент фильтра используется в процессе фильтрации.

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

Вариант 8 осуществления. Декодер (30), содержащий схему обработки для выполнения способа согласно любому из вариантов осуществления 1-7.

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

Вариант 10 осуществления. Декодер, содержащий:

один или более процессоров; и

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

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

Фиг.22 является блок-схемой, показывающей систему 3100 поставки контента для реализации услуги распространения контента. Данная система 3100 поставки контента включает в себя устройство 3102 захвата, терминальное устройство 3106 и необязательно включает в себя дисплей 3126. Устройство 3102 захвата осуществляет связь с терминальным устройством 3106 по линии 3104 связи. Линия связи может включать в себя канал 13 связи, описанный выше. Линия 3104 связи включает в себя, но без ограничения упомянутым, WIFI, Ethernet, кабель, беспроводную связь (3G/4G/5G), USB или любую их комбинацию, или подобное.

Устройство 3102 захвата генерирует данные и может кодировать данные способом кодирования, показанным в вышеуказанных вариантах осуществления. В качестве альтернативы устройство 3102 захвата может распространять данные на сервер потоковой передачи (не показан на Фигурах), а сервер кодирует данные и передает закодированные данные на терминальное устройство 3106. Устройство 3102 захвата включает в себя, но без ограничения упомянутым, камеру, смартфон или планшет, компьютер или ноутбук, систему видеоконференцсвязи, КПК, устанавливаемое на транспортное средство устройство, или комбинацию любых из них, или тому подобное. Например, устройство 3102 захвата может включать в себя устройство-источник 12, описанное выше. Когда данные включают в себя видео, видеокодер 20, включенный в устройство 3102 захвата, может фактически выполнять обработку видеокодирования. Когда данные включают в себя аудио (т.е. речь), аудиокодер, включенный в устройство 3102 захвата, может фактически выполнять обработку аудиокодирования. Для некоторых практических сценариев устройство 3102 захвата распространяет закодированные видео- и аудиоданные путем их совместного мультиплексирования. Для других практических сценариев, например, в системе видеоконференцсвязи, кодированные аудиоданные и кодированные видеоданные не мультиплексируются. Устройство 3102 захвата распространяет закодированные аудиоданные и закодированные видеоданные на терминальное устройство 3106 по-отдельности.

В системе 3100 поставки контента терминальное устройство 310 принимает и воспроизводит закодированные данные. Терминальное устройство 3106 может быть устройством с возможностью приема и извлечения данных, таким как смартфон или планшет 3108, компьютер или ноутбук 3110, сетевой видеорегистратор (NVR)/цифровой видеорегистратор (DVR) 3112, телевизор 3114, телеприставка (STB) 3116, система 3118 видеоконференцсвязи, система 3120 видеонаблюдения, карманный персональный компьютер (КПК) 3122, устанавливаемое на транспортное средство устройство 3124, или их комбинация, или подобное, способное декодировать вышеупомянутые закодированные данные. Например, терминальное устройство 3106 может включать в себя устройство-получатель 14, описанное выше. Когда закодированные данные включают в себя видео, видеодекодеру 30, включенному в терминальное устройство, отдается приоритет для выполнения видеодекодирования. Когда закодированные данные включают в себя аудио, аудиодекодеру, включенному в терминальное устройство, отдается приоритет для выполнения обработки аудиодекодирования.

Для терминального устройства со своим дисплеем, например, смартфона или планшета 3108, компьютера или ноутбука 3110, сетевого видеорегистратора (NVR)/цифрового видеорегистратора (DVR) 3112, телевизора 3114, карманного персонального компьютера (КПК) 3122 или устанавливаемого на транспортное средство устройства 3124, терминальное устройство может передавать декодированные данные на свой дисплей. Для терминального устройства, не оборудованного дисплеем, такого как STB 3116, система 3118 видеоконференцсвязи или система 3120 видеонаблюдения, контакт в нем устанавливается с внешним дисплеем 3126 для приема и показа декодированных данных.

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

Фиг.23 является схемой, показывающей структуру примерного терминального устройства 3106. После того, как терминальное устройство 3106 принимает поток от устройства 3102 захвата, блок 3202 обработки протокола анализирует протокол передачи упомянутого потока. Протокол включает в себя, но без ограничения упомянутым, протокол потоковой передачи в реальном времени (RTSP), протокол передачи гипертекста (HTTP), протокол потоковой передачи HTTP Live (HLS), MPEG-DASH, транспортный протокол реального времени (RTP), протокол обмена сообщениями в реальном времени (RTMP) или любую их комбинацию, или подобное.

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

Посредством обработки демультиплексирования генерируются элементарный видеопоток (ES), аудио ES и, необязательно, субтитры. Видеодекодер 3206, который включает в себя видеодекодер 30, описанный в вышеупомянутых вариантах осуществления, декодирует видео ES с помощью способа декодирования, как показано в вышеупомянутых вариантах осуществления, для генерирования видеокадра и подает эти данные в синхронный блок 3212. Аудиодекодер 3208 декодирует аудио ES для генерирования аудиокадра и подает эти данные на синхронный блок 3212. В качестве альтернативы видеокадр может сохраняться в буфере (не показан на ФИГ. 23) перед его подачей в синхронный блок 3212. Точно так же аудиокадр может сохраняться в буфере (не показан на ФИГ. 23) перед его подачей в синхронный блок 3212.

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

Если субтитры включены в поток, декодер 3210 субтитров декодирует субтитры и синхронизирует их с видеокадром и звуковым кадром и передает видео/аудио/субтитры на дисплей 3216 видео/аудио/субтитров.

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

Хотя варианты осуществления данного изобретения были в основном описаны на основе видеокодировки, следует отметить, что варианты осуществления системы 10 кодировки, кодера 20 и декодера 30 (и, соответственно, системы 10), а также другие варианты осуществления, описанные в данном документе, также могут быть выполнены с возможностью обработки или кодировки неподвижной картинки, т.е. обработки или кодировки отдельной картинки независимо от любой предшествующей или последующей картинки, как при видеокодировке. В общем, только блоки 244 внешнего предсказания (кодер) и 344 (декодер) могут не быть доступны в случае, если кодировка для обработки картинки ограничена одной картинкой 17. Все другие функции (также называемые инструментами или технологиями) видеокодера 20 и видеодекодера 30 могут в равной степени использоваться для обработки статических картинок, например, вычисление остатка 204/304, преобразование 206, квантование 208, обратное квантование 210/310, (обратное) преобразование 212/312, разделение 262/362, внутреннее предсказание 254/354 и/или контурная фильтрация 220, 320, энтропийное кодирование 270 и энтропийное декодирование 304.

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

В качестве примера, но не ограничения, такие машиночитаемые носители данных могут содержать RAM, ROM, EEPROM, CD-ROM или другое запоминающее устройство на оптическом диске, запоминающее устройство на магнитном диске или другие магнитные запоминающие устройства, флэш-память или любой другой носитель, который может использоваться для хранения желаемого программного кода в форме инструкций или структур данных и может быть доступен для компьютера. Кроме того, любое соединение правильно называть считываемой компьютером средой. Например, если инструкции передаются с веб-сайта, сервера или другого удаленного источника с использованием коаксиального кабеля, оптоволоконного кабеля, витой пары, цифровой абонентской линии (DSL) или беспроводных технологий, таких как инфракрасная-, радио- и микроволновая- связь, тогда коаксиальный кабель, оптоволоконный кабель, витая пара, DSL или беспроводные технологии, такие как инфракрасная-, радио- и микроволновая- связь, включаются в определение носителя. Однако следует понимать, что считываемые компьютером носители и носители хранения данных не включают в себя соединения, несущие волны, сигналы или другие кратковременные носители, а вместо этого направлены на долговременные, материальные запоминающие носители. Диск (disk) и диск (disc), используемые используемые в данном документе, включают в себя компакт-диск (CD), лазерный диск, оптический диск, цифровой универсальный диск (DVD), дискету и диск Blu-ray, где диски (disks) обычно воспроизводят данные магнитным образом, а диски (discs) воспроизводят данные оптически с помощью лазеров. Комбинации вышеперечисленного также должны быть включены в объем считываемых компьютером носителей.

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

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

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

название год авторы номер документа
КОДЕР, ДЕКОДЕР И СООТВЕТСТВУЮЩИЕ СПОСОБЫ ДЛЯ ВНУТРЕННЕГО ПРЕДСКАЗАНИЯ 2020
  • Ван, Бяо
  • Эсенлик, Семих
  • Котра, Ананд Меер
  • Гао, Хань
  • Чен, Цзянле
RU2800681C2
КОДЕР, ДЕКОДЕР И СООТВЕТСТВУЮЩИЕ СПОСОБЫ 2020
  • Ма, Сян
  • Ян, Хайтао
RU2823668C1
КОДЕР, ДЕКОДЕР И СООТВЕТСТВУЮЩИЕ СПОСОБЫ ДЛЯ УПРОЩЕНИЯ СИГНАЛИЗАЦИИ ЗАГОЛОВКА КАРТИНКИ 2020
  • Ван, Бяо
  • Эсенлик, Семих
  • Гао, Хань
  • Котра, Ананд Меер
  • Алшина, Елена Александровна
RU2823042C1
РАННЕЕ ПРЕКРАЩЕНИЕ УТОЧНЕНИЯ ОПТИЧЕСКОГО ПОТОКА 2020
  • Эсенлик, Семих
  • Сетураман, Срирам
  • А, Джива Радж
  • Котеча, Сагар
RU2808608C2
СПОСОБ ВЫЧИСЛЕНИЯ ПОЗИЦИИ ОПОРНОЙ ВЫБОРКИ ЦЕЛОЧИСЛЕННОЙ СЕТКИ ДЛЯ ВЫЧИСЛЕНИЯ ГРАДИЕНТА ГРАНИЧНОЙ ВЫБОРКИ БЛОЧНОГО УРОВНЯ В ВЫЧИСЛЕНИИ ОПТИЧЕСКОГО ПОТОКА С ДВОЙНЫМ ПРЕДСКАЗАНИЕМ И КОРРЕКЦИИ С ДВОЙНЫМ ПРЕДСКАЗАНИЕМ 2020
  • Сетураман, Срирам
  • А, Джива Радж
  • Котеча, Сагар
RU2820638C2
БИТОВЫЙ СДВИГ ДЛЯ КРОСС-КОМПОНЕНТНОЙ АДАПТИВНОЙ КОНТУРНОЙ ФИЛЬТРАЦИИ ДЛЯ КОДИРОВКИ ВИДЕО 2020
  • Ху, Нан
  • Дун, Цзе
  • Серегин, Вадим
  • Карчевич, Марта
RU2824184C1
УСТРОЙСТВО И СИГНАЛИЗАЦИЯ АДАПТИВНОГО КОНТУРНОГО ФИЛЬТРА (ALF) НА БЛОЧНОЙ ОСНОВЕ 2019
  • Карчевич, Марта
  • Гадде, Акшай
  • Серегин, Вадим
  • Чиэнь, Вэй-Цзюн
RU2783335C2
ФЛАГИ ФИЛЬТРА ДЛЯ УСТРАНЕНИЯ БЛОЧНОСТИ СУБКАРТИНОК 2020
  • Хендри, Фну
  • Ван, Е-Куй
  • Чен, Цзянле
RU2825100C2
ФЛАГИ ФИЛЬТРА ДЛЯ УСТРАНЕНИЯ БЛОЧНОСТИ СУБКАРТИНОК 2020
  • Хендри, Фну
  • Ван, Е-Куй
  • Чен, Цзянле
RU2825099C2
СИСТЕМА И СПОСОБ ДЛЯ КОДИРОВКИ ВИДЕО 2020
  • Куо, Чэ Вэй
  • Лим, Чонг Соон
  • Тео, Хан Боон
  • Ли, Цзин Я
  • Сунь, Хай Вэй
  • Ванг, Чу Тонг
  • Тома, Тадамаса
  • Ниси, Такахиро
  • Абе, Киёфуми
  • Като, Юсуке
RU2824190C2

Иллюстрации к изобретению RU 2 823 558 C2

Реферат патента 2024 года КОДЕР, ДЕКОДЕР И СООТВЕТСТВУЮЩИЕ СПОСОБЫ С ИСПОЛЬЗОВАНИЕМ АДАПТИВНОГО КОНТУРНОГО ФИЛЬТРА

Изобретение относится к кодированию и декодированию видео. Техническим результатом является повышение эффективности сжатия видео. Результат достигается тем, что способ кодировки, реализуемый устройством декодирования, содержит этап получения битового потока, в котором по меньшей мере один бит в битовом потоке представляет элемент синтаксиса для текущего блока, причем элемент синтаксиса указывает индекс усечения значения усечения для адаптивного контурного фильтра (ALF); синтаксический анализ битового потока для получения значения элемента синтаксиса для текущего блока, при этом элемент синтаксиса кодируется с использованием кода фиксированной длины; применение адаптивной контурной фильтрации к текущему блоку на основе значения элемента синтаксиса для текущего блока. Здесь код фиксированной длины означает, что все возможные значения элемента синтаксиса сигнализируются с использованием одного и того же количества битов. 9 н. и 12 з.п. ф-лы, 24 ил., 3 табл.

Формула изобретения RU 2 823 558 C2

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

получение битового потока, причем по меньшей мере один бит в битовом потоке представляет элемент синтаксиса для текущего блока, причем элемент синтаксиса указывает индекс усечения значения усечения для адаптивного контурного фильтра (ALF);

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

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

2. Способ по п. 1, в котором код фиксированной длины содержит двоичное представление беззнакового целого числа с использованием по меньшей мере одного бита.

3. Способ по п. 1 или 2, в котором элемент синтаксиса применяется к набору блоков и текущий блок представляет собой один блок в наборе блоков.

4. Способ по п. 1 или 2, в котором элемент синтаксиса находится на уровне слайса.

5. Способ по любому из пп. 1-4, в котором элемент синтаксиса представляет собой индекс значения усечения ALF и по меньшей мере один бит, представляющий элемент синтаксиса, означает два бита.

6. Способ по п. 5, в котором индекс значения усечения ALF идентифицирует одно значение усечения из четырех значений усечения.

7. Способ по любому из пп. 1-6, в котором значение индекса значения усечения ALF используется для определения диапазона усечения, причем диапазон усечения используется в процессе адаптивной контурной фильтрации.

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

определение значения элемента синтаксиса для текущего блока, при этом элемент синтаксиса указывает индекс усечения значения усечения для адаптивного контурного фильтра (ALF);

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

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

10. Способ по п. 8 или 9, в котором элемент синтаксиса применяется к набору блоков и текущий блок является одним блоком в наборе блоков.

11. Способ по п. 8 или 9, в котором элемент синтаксиса находится на уровне слайса.

12. Способ по любому из пп. 8-11, в котором элемент синтаксиса представляет собой индекс значения усечения ALF и по меньшей мере один бит, представляющий элемент синтаксиса, означает два бита.

13. Способ по п. 12, в котором индекс значения усечения ALF идентифицирует одно значение усечения из четырех значений усечения.

14. Способ по любому из пп. 8-13, в котором значение индекса значения усечения ALF используется для определения диапазона усечения, причем диапазон усечения используется в процессе адаптивной контурной фильтрации.

15. Декодер (30), содержащий схему обработки для выполнения способа по любому из пп. 1-7.

16. Кодер (20), содержащий схему обработки для выполнения способа по любому из пп. 8-14.

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

18. Декодер, содержащий:

один или более процессоров; и

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

19. Кодер, содержащий:

один или более процессоров; и

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

20. Декодер, содержащий:

блок энтропийного декодирования, сконфигурированный для получения битового потока, причем по меньшей мере один бит в битовом потоке представляет элемент синтаксиса для текущего блока, причем элемент синтаксиса указывает индекс усечения значения усечения для адаптивного контурного фильтра (ALF);

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

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

21. Кодер, содержащий:

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

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

Документы, цитированные в отчете о поиске Патент 2024 года RU2823558C2

US 2018115787 A1, 2018.04.26
WO 2017045580 A1, 2017.03.23
US 2014010278 A1, 2014.01.09
US 9094658 B2, 2015.07.28
US 9998737 B2, 2018.06.12
US 9386316 B2, 2016.07.05
US 9451252 B2, 2016.09.20
CN 102857746 B, 2017.03.29
CN 103096054 B, 2015.07.08
CN 109076219 A, 2018.12.21
WO 2018135830 A1, 2018.07.26
НАБОР ПАРАМЕТРОВ ВИДЕО ДЛЯ HEVC И РАСШИРЕНИЙ 2013
  • Чэнь Ин
  • Ван Е-Куй
RU2654138C2

RU 2 823 558 C2

Авторы

Котра, Ананд Меер

Эсенлик, Семих

Чен, Цзянле

Гао, Хань

Ван, Бяо

Даты

2024-07-24Публикация

2020-04-30Подача