СИСТЕМА И СПОСОБ ДЛЯ КОДИРОВКИ ВИДЕО Российский патент 2024 года по МПК H04N19/82 H04N19/186 

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

Область техники, к которой относится изобретение

[0001] Данное раскрытие относится к кодировке видео и, в частности, к системам, компонентам и способам кодирования и декодирования видео при кодировке и декодировки видео, к примеру, для выполнения процесса CCALF (кросскомпонентной адаптивной контурной фильтрации).

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

[0002] В силу совершенствований в технологии кодировки видео, из (H.261 и MPEG-1 в (H.264/AVC (стандарт усовершенствованной кодировки видео), MPEG-LA, (H.265/HEVC (стандарт высокоэффективной кодировки видео) и (H.266/VVC (универсальный видеокодек), остается постоянная потребность, чтобы предоставлять улучшения и оптимизации для технологии кодировки видео, чтобы обрабатывать постоянно увеличивающийся объем цифровых видеоданных в различных вариантах применения. Данное раскрытие относится к дополнительным усовершенствованиям, улучшениям и оптимизациям при кодировке видео, в частности, в процессе CCALF (кросскомпонентной адаптивной контурной фильтрации).

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

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

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

[0005] Согласно другому аспекту, схема при работе задает первое значение коэффициента равным нулю в ответ на первое значение коэффициента, меньшее 64.

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

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

- отсечение первого значения коэффициента;

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

- отсечение второго значения коэффициента;

- формирование третьего значения коэффициента посредством суммирования отсеченного первого значения коэффициента с отсеченным вторым значением коэффициента; и

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

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

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

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

- отсечение первого значения коэффициента;

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

- отсечение второго значения коэффициента;

- формирование третьего значения коэффициента посредством суммирования отсеченного первого значения коэффициента с отсеченным вторым значением коэффициента; и

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

[0009] Согласно другому аспекту, предоставляется способ кодирования, который включает в себя:

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

- отсечение первого значения коэффициента;

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

- отсечение второго значения коэффициента;

- формирование третьего значения коэффициента посредством суммирования отсеченного первого значения коэффициента с отсеченным вторым значением коэффициента; и

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

[0010] Согласно дополнительному аспекту, предоставляется способ декодирования, который включает в себя:

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

- отсечение первого значения коэффициента;

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

- отсечение второго значения коэффициента;

- формирование третьего значения коэффициента посредством суммирования отсеченного первого значения коэффициента с отсеченным вторым значением коэффициента; и

- отсечение третьего значения коэффициента; и

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

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

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

[0013] Согласно дополнительному аспекту, предоставляется кодер, который включает в себя схему и запоминающее устройство. Схема при работе формирует первое значение коэффициента посредством применения процесса CCALF (кросскомпонентной адаптивной контурной фильтрации) к первой восстановленной выборке изображений компонента сигнала яркости. Схема формирует второе значение коэффициента посредством применения процесса ALF (адаптивной контурной фильтрации) ко второй восстановленной выборке изображений компонента сигнала цветности. Схема формирует третье значение коэффициента посредством суммирования первого значения коэффициента со вторым значением коэффициента и кодирует третью восстановленную выборку изображений компонента сигнала цветности с использованием третьего значения коэффициента. В CCALF-процессе, в ответ на координату второй восстановленной выборки изображений, представляющую собой (x, y), координаты первой выборки восстановленных изображений представляют собой (2x, 2y-1), (2×1, 2y), (2x, 2y), (2x+1, 2y), (2×1, 2y+1), (2x, 2y+1), (2x+1, 2y+1) и (2x, 2y+2).

[0014] Согласно дополнительному аспекту, предоставляется декодер, который включает в себя схему и запоминающее устройство. Схема при работе формирует первое значение коэффициента посредством применения процесса CCALF (кросскомпонентной адаптивной контурной фильтрации) к первой восстановленной выборке изображений компонента сигнала яркости. Схема формирует второе значение коэффициента посредством применения процесса ALF (адаптивной контурной фильтрации) ко второй восстановленной выборке изображений компонента сигнала цветности. Схема формирует третье значение коэффициента посредством суммирования первого значения коэффициента со вторым значением коэффициента и кодирует третью восстановленную выборку изображений компонента сигнала цветности с использованием третьего значения коэффициента. В CCALF-процессе, в ответ на координату второй восстановленной выборки изображений, представляющую собой (x, y), координаты первой выборки восстановленных изображений представляют собой (2x, 2y-1), (2×1, 2y), (2x, 2y), (2x+1, 2y), (2×1, 2y+1), (2x, 2y+1), (2x+1, 2y+1) и (2x, 2y+2).

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

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

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

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

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

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

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

[0021] Фиг. 1 является принципиальной схемой, иллюстрирующей один пример функциональной конфигурации системы передачи согласно варианту осуществления.

Фиг. 2 является концептуальной схемой для иллюстрации одного примера иерархической структуры данных в потоке.

Фиг. 3 является концептуальной схемой для иллюстрации одного примера конфигурации слайсов.

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

Фиг. 5 является концептуальной схемой для иллюстрации одного примера структуры кодирования при масштабируемом кодировании.

Фиг. 6 является концептуальной схемой для иллюстрации одного примера структуры кодирования при масштабируемом кодировании.

Фиг. 7 является блок-схемой, иллюстрирующей функциональную конфигурацию кодера согласно варианту осуществления.

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

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

Фиг. 10 является концептуальной схемой для иллюстрации одного примера разбиения блоков.

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

Фиг. 12 является концептуальной схемой для иллюстрации примеров шаблонов разбиения.

Фиг. 13A является концептуальной схемой для иллюстрации одного примера синтаксического дерева шаблона разбиения.

Фиг. 13B является концептуальной схемой для иллюстрации другого примера синтаксического дерева шаблона разбиения.

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

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

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

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

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

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

Фиг. 20 является блок-схемой, иллюстрирующей один пример функциональной конфигурации энтропийного кодера согласно варианту осуществления.

Фиг. 21 является концептуальной схемой для иллюстрации примерной последовательности операций процесса контекстно-адаптивной двоичной арифметической кодировки (CABAC) в энтропийном кодере.

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

Фиг. 23A является концептуальной схемой, иллюстрирующей один пример формы фильтра, используемой в адаптивном контурном фильтре (ALF).

Фиг. 23B является концептуальной схемой для иллюстрации другого примера формы фильтра, используемой в ALF.

Фиг. 23C является концептуальной схемой для иллюстрации другого примера формы фильтра, используемой в ALF.

Фиг. 23D является концептуальной схемой для иллюстрации примерной последовательности операций кросскомпонентной ALF (CCALF).

Фиг. 23E является концептуальной схемой для иллюстрации примера формы фильтра, используемой в CCALF.

Фиг. 23F является концептуальной схемой для иллюстрации примерной последовательности операций объединенной CCALF сигналов цветности (JC-CCALF).

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

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

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

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

Фиг. 27 является концептуальной схемой для иллюстрации примеров значений граничной интенсивности (Bs).

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

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

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

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

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

Фиг. 33 является концептуальной схемой для иллюстрации примеров опорных картинок.

Фиг. 34 является концептуальной схемой для иллюстрации примеров списков опорных картинок.

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

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

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

Фиг. 38A является концептуальной схемой для иллюстрации примерных характеризаций режимов для MV-извлечения.

Фиг. 38B является концептуальной схемой для иллюстрации примерных характеризаций режимов для MV-извлечения.

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

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

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

Фиг. 42 является концептуальной схемой для иллюстрации одного примера процесса MV-извлечения для текущей картинки посредством HMVP-режима объединения.

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

Фиг. 44 является концептуальной схемой для иллюстрации одного примера сопоставления с шаблоном (билатерального сопоставления) между двумя блоками вдоль траектории движения.

Фиг. 45 является концептуальной схемой для иллюстрации одного примера сопоставления с шаблоном (сопоставления с эталоном) между эталоном в текущей картинке и блоком в опорной картинке.

Фиг. 46A является концептуальной схемой для иллюстрации одного примера извлечения вектора движения каждого субблока на основе векторов движения множества соседних блоков.

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

Фиг. 47A является концептуальной схемой для иллюстрации примерного MV-извлечения в управляющих точках в аффинном режиме.

Фиг. 47B является концептуальной схемой для иллюстрации примерного MV-извлечения в управляющих точках в аффинном режиме.

Фиг. 47C является концептуальной схемой для иллюстрации примерного MV-извлечения в управляющих точках в аффинном режиме.

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

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

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

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

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

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

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

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

Фиг. 52C является концептуальной схемой для иллюстрации первой части первого сегмента, которая составляет часть первого сегмента, которая перекрывается с частью смежного сегмента.

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

Фиг. 54 является концептуальной схемой для иллюстрации одного примера режима усовершенствованного временного предсказания векторов движения (ATMVP), в котором MV извлекается в единицах субблоков.

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

Фиг. 56 является концептуальной схемой для иллюстрации одного примера DMVR.

Фиг. 57 является концептуальной схемой для иллюстрации другого примера DMVR для определения MV.

Фиг. 58A является концептуальной схемой для иллюстрации одного примера оценки движения в DMVR.

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

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

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

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

Фиг. 62 является концептуальной схемой для иллюстрации одного примера процесса коррекции изображений предсказания посредством OBMC.

Фиг. 63 является концептуальной схемой для иллюстрации модели при условии равномерного прямолинейного движения.

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

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

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

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

Фиг. 67 является блок-схемой, иллюстрирующей функциональную конфигурацию декодера согласно варианту осуществления.

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

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

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

Фиг. 71 является блок-схемой, иллюстрирующей один пример функциональной конфигурации энтропийного декодера.

Фиг. 72 является концептуальной схемой для иллюстрации примерной последовательности операций CABAC-процесса в энтропийном декодере.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Фиг. 97 является блок-схемой последовательности операций способа для примерной последовательности операций обработки для декодирования изображения, применяющего процесс CCALF (кросскомпонентной адаптивной контурной фильтрации) согласно первому аспекту.

Фиг. 98 является блок-схемой, иллюстрирующей функциональную конфигурацию кодера и декодера согласно варианту осуществления.

Фиг. 99 является блок-схемой, иллюстрирующей функциональную конфигурацию кодера и декодера согласно варианту осуществления.

Фиг. 100 является блок-схемой, иллюстрирующей функциональную конфигурацию кодера и декодера согласно варианту осуществления.

Фиг. 101 является блок-схемой, иллюстрирующей функциональную конфигурацию кодера и декодера согласно варианту осуществления.

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

Фиг. 103A иллюстрирует выборочные местоположения параметров отсечения, которые должны синтаксически анализироваться, например, из VPS, APS, SPS, PPS, заголовка слайса, CTU или TU потока битов.

Фиг. 103B иллюстрирует выборочные местоположения параметров отсечения, которые должны синтаксически анализироваться, например, из VPS, APS, SPS, PPS, заголовка слайса, CTU или TU потока битов.

Фиг. 103C иллюстрирует выборочные местоположения параметров отсечения, которые должны синтаксически анализироваться, например, из VPS, APS, SPS, PPS, заголовка слайса, CTU или TU потока битов.

Фиг. 103D иллюстрирует выборочные местоположения параметров отсечения, которые должны синтаксически анализироваться, например, из VPS, APS, SPS, PPS, заголовка слайса, CTU или TU потока битов.

Фиг. 103E иллюстрирует выборочные местоположения параметров отсечения, которые должны синтаксически анализироваться, например, из VPS, APS, SPS, PPS, заголовка слайса, CTU или TU потока битов.

Фиг. 103F иллюстрирует выборочные местоположения параметров отсечения, которые должны синтаксически анализироваться, например, из VPS, APS, SPS, PPS, заголовка слайса, CTU или TU потока битов.

Фиг. 104(i)-(iii) иллюстрируют примеры параметров отсечения.

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

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

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

Фиг. 106C является концептуальной схемой примеров, указывающих местоположения коэффициентов фильтрации, которые должны использоваться в CCALF-процессе.

Фиг. 106D является концептуальной схемой примеров, указывающих местоположения коэффициентов фильтрации, которые должны использоваться в CCALF-процессе.

Фиг. 106E является концептуальной схемой примеров, указывающих местоположения коэффициентов фильтрации, которые должны использоваться в CCALF-процессе.

Фиг. 106F является концептуальной схемой примеров, указывающих местоположения коэффициентов фильтрации, которые должны использоваться в CCALF-процессе.

Фиг. 106G является концептуальной схемой примеров, указывающих местоположения коэффициентов фильтрации, которые должны использоваться в CCALF-процессе.

Фиг. 106H является концептуальной схемой примеров, указывающих местоположения коэффициентов фильтрации, которые должны использоваться в CCALF-процессе.

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

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

Фиг. 107C является концептуальной схемой примеров, указывающих местоположения коэффициентов фильтрации, которые должны использоваться в CCALF-процессе.

Фиг. 107D является концептуальной схемой примеров, указывающих местоположения коэффициентов фильтрации, которые должны использоваться в CCALF-процессе.

Фиг. 107E является концептуальной схемой примеров, указывающих местоположения коэффициентов фильтрации, которые должны использоваться в CCALF-процессе.

Фиг. 107F является концептуальной схемой примеров, указывающих местоположения коэффициентов фильтрации, которые должны использоваться в CCALF-процессе.

Фиг. 107G является концептуальной схемой примеров, указывающих местоположения коэффициентов фильтрации, которые должны использоваться в CCALF-процессе.

Фиг. 107H является концептуальной схемой примеров, указывающих местоположения коэффициентов фильтрации, которые должны использоваться в CCALF-процессе.

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

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

Фиг. 108C является концептуальной схемой примеров, указывающих местоположения коэффициентов фильтрации, которые должны использоваться в CCALF-процессе.

Фиг. 108D является концептуальной схемой примеров, указывающих местоположения коэффициентов фильтрации, которые должны использоваться в CCALF-процессе.

Фиг. 108E является концептуальной схемой примеров, указывающих местоположения коэффициентов фильтрации, которые должны использоваться в CCALF-процессе.

Фиг. 108F является концептуальной схемой примеров, указывающих местоположения коэффициентов фильтрации, которые должны использоваться в CCALF-процессе.

Фиг. 108G является концептуальной схемой примеров, указывающих местоположения коэффициентов фильтрации, которые должны использоваться в CCALF-процессе.

Фиг. 108H является концептуальной схемой примеров, указывающих местоположения коэффициентов фильтрации, которые должны использоваться в CCALF-процессе.

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

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

Фиг. 109C является концептуальной схемой примеров, указывающих местоположения коэффициентов фильтрации, которые должны использоваться в CCALF-процессе.

Фиг. 109D является концептуальной схемой примеров, указывающих местоположения коэффициентов фильтрации, которые должны использоваться в CCALF-процессе.

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

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

Фиг. 110C является концептуальной схемой примеров, указывающих местоположения коэффициентов фильтрации, которые должны использоваться в CCALF-процессе.

Фиг. 110D является концептуальной схемой примеров, указывающих местоположения коэффициентов фильтрации, которые должны использоваться в CCALF-процессе.

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

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

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

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

Фиг. 115 иллюстрирует пример последовательности операций обработки выбора фильтра.

Фиг. 116-1A иллюстрирует пример фильтров.

Фиг. 116-1B иллюстрирует пример фильтров.

Фиг. 116-1C иллюстрирует пример фильтров.

Фиг. 116-1D иллюстрирует пример фильтров.

Фиг. 116-1E иллюстрирует пример фильтров.

Фиг. 116-1F иллюстрирует пример фильтров.

Фиг. 116-1G иллюстрирует пример фильтров.

Фиг. 116-1H иллюстрирует пример фильтров.

Фиг. 116-1I иллюстрирует пример фильтров.

Фиг. 117-2A иллюстрирует пример фильтров.

Фиг. 117-2B иллюстрирует пример фильтров.

Фиг. 117-2C иллюстрирует пример фильтров.

Фиг. 117-2D иллюстрирует пример фильтров.

Фиг. 117-2E иллюстрирует пример фильтров.

Фиг. 117-2F иллюстрирует пример фильтров.

Фиг. 117-2G иллюстрирует пример фильтров.

Фиг. 117-2H иллюстрирует пример фильтров.

Фиг. 117-2I иллюстрирует пример фильтров.

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

Фиг. 119(i)-(iv) иллюстрируют примеры числа (NumCoeff) коэффициентов, которые должны синтаксически анализироваться из потока битов.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Фиг. 131A показывает выборочные значения второго параметра.

Фиг. 131B показывает выборочные значения второго параметра.

Фиг. 131C показывает выборочные значения второго параметра.

Фиг. 132 показывает пример синтаксического анализа второго параметра с использованием арифметической кодировки.

Фиг. 133 является концептуальной схемой варьирования этого варианта осуществления, применяемого к прямоугольным сегментам и непрямоугольным сегментам, таким как треугольные сегменты.

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

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

Фиг. 136 показывает примерные местоположения типов 0-5 выборок сигналов цветности.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Фиг. 155A иллюстрирует дополнительные примеры дополнения горизонтальной и вертикальной виртуальной границей.

Фиг. 155B иллюстрирует дополнительные примеры дополнения горизонтальной и вертикальной виртуальной границей.

Фиг. 155C иллюстрирует дополнительные примеры дополнения горизонтальной и вертикальной виртуальной границей.

Фиг. 155D иллюстрирует дополнительные примеры дополнения горизонтальной и вертикальной виртуальной границей.

Фиг. 155E иллюстрирует дополнительные примеры дополнения горизонтальной и вертикальной виртуальной границей.

Фиг. 155F иллюстрирует дополнительные примеры дополнения горизонтальной и вертикальной виртуальной границей.

Фиг. 155G иллюстрирует дополнительные примеры дополнения горизонтальной и вертикальной виртуальной границей.

Фиг. 155H иллюстрирует дополнительные примеры дополнения горизонтальной и вертикальной виртуальной границей.

Фиг. 155I иллюстрирует дополнительные примеры дополнения горизонтальной и вертикальной виртуальной границей.

Фиг. 155J иллюстрирует дополнительные примеры дополнения горизонтальной и вертикальной виртуальной границей.

Фиг. 155K иллюстрирует дополнительные примеры дополнения горизонтальной и вертикальной виртуальной границей.

Фиг. 155L иллюстрирует дополнительные примеры дополнения горизонтальной и вертикальной виртуальной границей.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Фиг. 161 является концептуальной схемой примера фильтра, который должен применяться в CCALF-процессе.

Фиг. 162 описывает примерные уравнения процесса фильтрации.

Фиг. 163 является концептуальной схемой примера синтаксиса относительно CCALF.

Фиг. 164 является концептуальной схемой примера сигнализации значения коэффициента фильтрации с использованием экспоненциального кода Голомба с фиксированным порядком k (обозначается как EGk).

Фиг. 165A является концептуальной схемой примеров EGk, применяемого к коэффициентам фильтрации.

Фиг. 165B является концептуальной схемой примеров EGk, применяемого к коэффициентам фильтрации.

Фиг. 165C является концептуальной схемой примеров EGk, применяемого к коэффициентам фильтрации.

Фиг. 165D является концептуальной схемой примеров EGk, применяемого к коэффициентам фильтрации.

Фиг. 166A является концептуальной схемой примеров EGk, применяемого к коэффициентам фильтрации.

Фиг. 166B является концептуальной схемой примеров EGk, применяемого к коэффициентам фильтрации.

Фиг. 167A являются концептуальной схемой примеров EGk, применяемого к коэффициентам фильтрации.

Фиг. 167B является концептуальной схемой примеров EGk, применяемого к коэффициентам фильтрации.

Фиг. 168A является концептуальной схемой примеров EGk, применяемого к коэффициентам фильтрации.

Фиг. 168B является концептуальной схемой примеров EGk, применяемого к коэффициентам фильтрации.

Фиг. 169 является концептуальной схемой примера синтаксиса параметров, используемых в ALF-процессе.

Фиг. 170 является концептуальной схемой примера синтаксиса параметров, используемых в CCALF-процессе.

Фиг. 171 является блок-схемой последовательности операций способа для примера последовательности операций обработки декодирования изображения, применяющего CCALF-процесс с использованием набора коэффициентов.

Фиг. 172A является концептуальной схемой примеров формы наборов коэффициентов фильтрации.

Фиг. 172B является концептуальной схемой примеров формы наборов коэффициентов фильтрации.

Фиг. 172C является концептуальной схемой примеров формы наборов коэффициентов фильтрации.

Фиг. 172D является концептуальной схемой примеров формы наборов коэффициентов фильтрации.

Фиг. 173A является концептуальной схемой примеров позиций восстановленных выборок первых компонентов и второго компонента.

Фиг. 173B является концептуальной схемой примеров позиций восстановленных выборок первых компонентов и второго компонента.

Фиг. 173C является концептуальной схемой примеров позиций восстановленных выборок первых компонентов и второго компонента.

Фиг. 173D является концептуальной схемой примеров позиций восстановленных выборок первых компонентов и второго компонента.

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

Фиг. 175A является концептуальной схемой примеров местоположений первого блока и второго блока.

Фиг. 175B является концептуальной схемой примеров местоположений первого блока и второго блока.

Фиг. 175C является концептуальной схемой примеров местоположений первого блока и второго блока.

Фиг. 175D является концептуальной схемой примеров местоположений первого блока и второго блока.

Фиг. 176 является концептуальной схемой другого примера местоположений первого блока и второго блока.

Фиг. 177 является таблицей примера уравнения вычисления ctxIdx.

Фиг. 178 является таблицей примера initValue и shiftIdx для ctxIdx третьего флага.

Фиг. 179 является таблицей примера вычисленного ctxIdx.

Фиг. 180 является таблицей другого примера initValue и shiftIdx для ctxIdx третьего флага.

Фиг. 181 является таблицей другого примера вычисленного ctxIdx.

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

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

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

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

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

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

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

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

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

[0025] (1) Любой из компонентов кодера или декодера согласно вариантам осуществления, представленным в описании аспектов настоящего раскрытия, может заменяться или комбинироваться с другим компонентом, представленным в любом месте в описании аспектов настоящего раскрытия.

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

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

[0028] (4) Один или более компонентов, включенных в кодер или декодер согласно вариантам осуществления, могут комбинироваться с компонентом, представленным в любом месте в описании аспектов настоящего раскрытия, могут комбинироваться с компонентом, включающим в себя одну или более функций, представленных в любом месте в описании аспектов настоящего раскрытия, и могут комбинироваться с компонентом, который реализует один или более процессов, реализованных посредством компонента, представленного в описании аспектов настоящего раскрытия.

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

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

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

[0032] (8) Реализация процессов и/или конфигураций, представленных в описании аспектов настоящего раскрытия, не ограничена кодером или декодером согласно вариантам осуществления. Например, процессы и/или конфигурации могут реализовываться в устройстве, используемом для цели, отличающейся от кодера движущихся картинок или декодера движущихся картинок, раскрытого в вариантах осуществления.

[0033] Определения терминов

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

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

[0035] Картинка представляет собой единицу обработки изображений, сконфигурированную с набором пикселов, и также может называться "кадром" или "полем". Картинка, например, может принимать форму массива выборок сигналов яркости в монохромном формате или массива выборок сигналов яркости и двух соответствующих массивов выборок сигналов цветности в цветовом формате 4:2:0, 4:2:2 и 4:4:4.

[0036] Блок представляет собой единицу обработки, которая представляет собой набор определенного числа пикселов. Блоки могут иметь любое число различных форм. Например, блок может иметь прямоугольную форму в MxN (M столбцов на N строк) пикселов, квадратную форму в MxM пикселов, треугольную форму, круглую форму и т.д. Примеры блоков включают в себя слайсы, тайлы, кирпичи, CTU, суперблоки, базовые единицы разбиения, VPDU, единицы разбиения для обработки для аппаратных средств, CU, блочные единицы для обработки, блочные единицы предсказания (PU), блочные единицы ортогонального преобразования (TU), единицы и субблоки. Блок может принимать форму массива MxN выборок или массива MxN коэффициентов преобразования. Например, блок может представлять собой квадратную или прямоугольную область пикселов, включающую в себя одну матрицу сигналов яркости и две матрицы сигналов цветности.

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

[0038] Пиксельное значение или выборочное значение представляет собой собственное значение пиксела. Пиксельные значения или выборочные значения могут включать в себя одно или более из значения сигнала яркости, значения сигнала цветности, уровня RGB-градации, значения глубины, двоичных значений в нуль или 1 и т.д.

[0039] Сигнал цветности или цветность представляют собой интенсивность цвета, типично представленную посредством символов Cb и Cr, которые указывают , что значения массива выборок или одно выборочное значение представляют значения одного из двух цветоразностных сигналов, связанных с первичными цветами.

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

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

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

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

[0044] Разность означает различные математические разности, к примеру, простую разность (x-y), абсолютное значение разности (|x-y|), квадрат разности (x^2-y^2), квадратный корень разности (√(x-y)), взвешенную разность (ax-by: a и b являются константами), разность смещения (x-y+a: a является смещением) и т.д. В случае скалярной величины, простая разность может быть достаточной, и вычисление разности может включаться.

[0045] Сумма означает различные математические суммы, к примеру, простую сумму (x+y), абсолютное значение суммы (|x+y|), возведенную в квадрат сумму (x^2+y^2), квадратный корень суммы (√(x+y)), взвешенную разность (ax+by: a и b являются константами), сумму смещения (x+y+a: a является смещением) и т.д. В случае скалярной величины, простая сумма может быть достаточной, и вычисление сумм может включаться.

[0046] Картинка представляет собой композицию верхнего поля и нижнего поля, при этом строки 0, 2, 4, ..., выборок инициируются из верхнего поля, и строки 1, 3, 5, ..., выборок инициируются из нижнего поля.

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

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

[0049] Единица дерева кодировки (CTU) может представлять собой блок дерева кодировки выборок сигнала яркости картинки, которая имеет три массива выборок, или два соответствующих блока дерева кодировки выборок сигнала цветности. Альтернативно, CTU может представлять собой блок дерева кодировки выборок одного из монохромной картинки и картинки, которая кодируется с использованием трех отдельных цветовых плоскостей и синтаксических структур, используемых для того, чтобы кодировать выборки. Суперблок может представлять собой квадратный блок в 64×64 пикселов, который состоит из или 1 или 2 блоков информации режима или рекурсивно сегментируется на четыре блока 32×32, которые сами дополнительно могут сегментироваться.

[0050] Конфигурация системы

Во-первых, описывается система передачи согласно варианту осуществления. Фиг. 1 является принципиальной схемой, иллюстрирующей один пример конфигурации системы 400 передачи согласно варианту осуществления.

[0051] Система 400 передачи представляет собой систему, которая передает поток, сформированный посредством кодирования изображения, и декодирует передаваемый поток. Как проиллюстрировано, система 400 передачи включает в себя кодер 100, сеть 300 и декодер 200, как проиллюстрировано на фиг. 1.

[0052] Изображение вводится в кодер 100. Кодер 100 формирует поток посредством кодирования входного изображения и выводит поток в сеть 300. Поток включает в себя, например, кодированную информацию изображений и управляющую информацию для декодирования кодированного изображения. Изображение сжимается посредством кодирования.

[0053] Следует отметить, что изображение до кодирования посредством кодера 100 также называется "исходным изображением", "исходным сигналом" или "исходной выборкой". Изображение может представлять собой видео или неподвижное изображение. Изображение представляет собой общий принцип последовательности, картинки и блока и в силу этого не ограничено пространственной областью, имеющей конкретный размер, и временной областью, имеющей конкретный размер, если не указано иное. Изображение представляет собой массив пикселов или пиксельных значений, и сигнал, представляющий изображение или пиксельные значения, также называется "выборками". Поток может называться "потоком битов", "кодированным потоком битов", "сжатым потоком битов" или "кодированным сигналом". Кроме того, кодер 100 может называться "кодером изображений" или "видеокодером". Способ кодирования, выполняемый посредством кодера 100, может называться "способом кодирования", "способом кодирования изображений" или "способом кодирования видео".

[0054] Сеть 300 передает поток, сформированный посредством кодера 100, в декодер 200. Сеть 200 может представлять собой Интернет, глобальную вычислительную сеть (WAN), локальную вычислительную сеть (LAN) либо любую комбинацию сетей. Сеть 300 не ограничена сетью двунаправленной связи и может представлять собой сеть однонаправленной связи, которая передает широковещательные волны цифровой наземной широковещательной передачи, спутниковой широковещательной передачи и т.п. Альтернативно, сеть 300 может заменяться посредством носителя записи, такого как универсальный цифровой диск (DVD) и Blu-Ray-диск (BD) и т.д., на который записывается поток.

[0055] Декодер 200 формирует, для примера, декодированное изображение, которое представляет собой несжатое изображение, посредством декодирования потока, передаваемого посредством сети 300. Например, декодер декодирует поток согласно способу декодирования, соответствующему способу кодирования, используемому посредством кодера 100.

[0056] Следует отметить, что декодер 200 также может называться "декодером изображений" или "видеодекодером", и что способ декодирования (декодировки), выполняемый посредством декодера 200, также может называться "способом декодирования", "способом декодирования изображений" или "способом декодирования видео".

[0057] Структура данных

Фиг. 2 является концептуальной схемой для иллюстрации одного примера иерархической структуры данных в потоке. Для удобства, фиг. 2 описывается со ссылкой на систему 400 передачи по фиг. 1. Поток включает в себя, например, видеопоследовательность. Как проиллюстрировано в (a) на фиг. 2, видеопоследовательность включает в себя один или более наборов параметров видео (VPS), один или более наборов параметров последовательности (SPS), один или более наборов параметров картинки (PPS), дополнительную улучшающую информацию (SEI) и множество картинок.

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

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

[0060] PPS включает в себя параметр, который используется для картинки, т.е. параметр кодировки, к которому обращается декодер 200 для того, чтобы декодировать каждую из картинок в последовательности. Например, параметр кодировки может включать в себя опорное значение для ширины квантования, которая используется для того, чтобы декодировать картинку, и флаг, указывающий применение предсказания со взвешиванием. Следует отметить, что множество PPS могут присутствовать. Каждый из SPS и PPS может называться просто "набором параметров".

[0061] Как проиллюстрировано в (b) по фиг. 2, картинка может включать в себя заголовок картинки и один или более слайсов. Заголовок картинки включает в себя параметр кодировки, к которому обращается декодер 200 для того, чтобы декодировать один или более слайсов.

[0062] Как проиллюстрировано в (c) на фиг. 2, слайс включает в себя заголовок слайса и один или более кирпичей. Заголовок слайса включает в себя параметр кодировки, к которому обращается декодер 200 для того, чтобы декодировать один или более кирпичей.

[0063] Как проиллюстрировано в (d) на фиг. 2, кирпич включает в себя одну или более единиц дерева кодировки (CTU). Следует отметить, что картинка может не включать в себя слайс и может включать в себя группу тайлов вместо слайса. В этом случае, группа тайлов включает в себя, по меньшей мере, один тайл. Дополнительно, кирпич может включать в себя слайс.

[0064] CTU также называется "суперблоком" или "базисной единицей разбиения". Как проиллюстрировано в (e) на фиг. 2, CTU включает в себя CTU-заголовок и, по меньшей мере, одну единицу кодировки (CU). Как проиллюстрировано, CTU включает в себя четыре единицы кодировки CU(10), CU(11), (CU(12) и CU(13). CTU-заголовок включает в себя параметр кодировки, к которому обращается декодер 200 для того, чтобы декодировать, по меньшей мере, одну CU.

[0065] CU может разбиваться на множество меньших CU. Как показано, CU(10) не разбивается на меньшие единицы кодировки; CU(11) разбивается на четыре меньших единицы кодировки CU(110), CU(111), CU(112) и CU(113); CU(12) не разбивается на меньшие единицы кодировки; и CU(13) разбивается на семь меньших единиц кодировки CU(1310), CU(1311), CU(1312), CU(1313), CU(132), CU(133) и CU(134), как проиллюстрировано в (f) на фиг. 2, CU включает в себя заголовок CU, информацию предсказания и информацию остаточных коэффициентов. Информация предсказания представляет собой информацию для предсказания CU, и информация остаточных коэффициентов представляет собой информацию, указывающую остаток предсказания, который описывается ниже. Хотя CU является по существу такой же как единица предсказания (PU) и единица преобразования (TU), следует отметить, что, например, субблочное преобразование (SBT), которое описывается ниже, может включать в себя множество TU, меньших чем CU. Дополнительно, CU может обрабатываться для каждой виртуальной конвейерной единицы декодирования (VPDU), включенной в CU. VPDU, например, представляет собой фиксированную единицу, которая может обрабатываться на одном этапе, когда конвейерная обработка выполняется в аппаратных средствах.

[0066] Следует отметить, что поток может не включать в себя все иерархические слои, проиллюстрированные на фиг. 2. Порядок иерархических слоев может меняться, или любой из иерархических слоев может заменяться посредством другого иерархического слоя. Здесь, картинка, которая представляет собой цель для процесса, который должен выполняться посредством устройства, такого как кодер 100 или декодер 200, называется "текущей картинкой". Текущая картинка означает текущую картинку, которая должна кодироваться, когда процесс представляет собой процесс кодирования, и текущая картинка означает текущую картинку, которая должна декодироваться, когда процесс представляет собой процесс декодирования. Аналогично, например, CU или блок CU, который представляет собой цель для процесса, который должен выполняться посредством устройства, такого как кодер 100 или декодер 200, называется "текущим блоком". Текущий блок означает текущий блок, который должен кодироваться, когда процесс представляет собой процесс кодирования, и текущий блок означает текущий блок, который должен декодироваться, когда процесс представляет собой процесс декодирования.

[0067] Структура картинки: слайс/тайл

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

[0068] Слайсы представляют собой базовые единицы кодировки, включенные в картинку. Картинка может включать в себя, например, один или более слайсов. Дополнительно, слайс включает в себя одну или боле единиц дерева кодировки (CTU).

[0069] Фиг. 3 является концептуальной схемой для иллюстрации одного примера конфигурации слайсов. Например, на фиг. 3, картинка включает в себя CTU 11×8 и разбивается на четыре слайса (слайсы 1-4). Слайс 1 включает в себя шестнадцать CTU, слайс 2 включает в себя двадцать одну CTU, слайс 3 включает в себя двадцать девять CTU, и слайс 4 включает в себя двадцать две CTU. Здесь, каждая CTU в картинке принадлежит одному из слайсов. Форма каждого слайса представляет собой форму, полученную посредством разбиения картинки горизонтально. Граница каждого слайса не должна обязательно совпадать с концом изображения и может совпадать с любой из границ между CTU в изображении. Порядок обработки CTU в слайсе (порядок кодирования или порядок декодирования), например, представляет собой порядок растрового сканирования. Слайс включает в себя заголовок слайса и кодированные данные. Признаки слайса могут записываться в заголовок слайса. Признаки могут включать в себя CTU-адрес верхней CTU в слайсе, тип слайса и т.д. Тайл представляет собой единицу прямоугольной области, включенной в картинку. Тайлам картинки может назначаться номер, называемый "TileId" в порядке растрового сканирования.

[0070] Фиг. 4 является концептуальной схемой для иллюстрации одного примера конфигурации тайлов. Например, на фиг. 4, картинка включает в себя CTU 11×8 и разбивается на четыре тайла прямоугольных областей (тайлы 1-4). Когда тайлы используются, порядок обработки CTU может отличаться от порядка обработки в случае, если тайлы не используются. Когда тайлы не используются, множество CTU в картинке, в общем, обрабатываются в порядке растрового сканирования. Когда множество тайлов используются, по меньшей мере, одна CTU в каждой из множества тайлов обрабатывается в порядке растрового сканирования. Например, как проиллюстрировано на фиг. 4 порядок обработки CTU, включенных в тайл 1, с левого конца первого столбца тайла 1 к правому концу первого столбца тайла 1, а затем продолжается с левого конца второго столбца тайла 1 к правому концу второго столбца тайла 1.

[0071] Следует отметить, что один тайл может включать в себя один или более слайсов, и один слайс может включать в себя один или более тайлов. Следует отметить, что картинка может быть сконфигурирована с одним или более наборов тайлов. Набор тайлов может включать в себя одну или более групп тайлов или один или более тайлов. картинка может быть сконфигурирована с одним из набора тайлов, группы тайлов и тайла. Например, порядок для сканирования множества тайлов для каждого набора тайлов в порядке растрового сканирования предположительно представляет собой базовый порядок кодирования тайлов. Набор из одного или более тайлов, которые являются непрерывными в базовом порядке кодирования в каждом наборе тайлов, предположительно представляет собой группу тайлов. Такая картинка может быть сконфигурирована посредством модуля 102 разбиения (см. фиг. 7), который описывается ниже.

[0072] Масштабируемое кодирование

Фиг. 5 и 6 являются концептуальными схемами, иллюстрирующими примеры масштабируемых структур потока, и описываются для удобства со ссылкой на фиг. 1.

[0073] Как проиллюстрировано на фиг. 5, кодер 100 может формировать временно/пространственно масштабируемый поток посредством разделения каждого из множества картинок на любые из множества слоев и кодирования картинки в слое. Например, кодер 100 кодирует картинку для каждого слоя, за счет этого достигая масштабируемости, при которой улучшающий слой присутствует выше базового слоя. Такое кодирование каждой картинки также называется "масштабируемым кодированием". Таким образом, декодер 200 допускает переключение качества изображений для изображения, которое отображается посредством декодирования потока. Другими словами, декодер 200 может определять то, какой слой следует декодировать, на основе внутренних факторов, таких как характеристики обработки декодера 200, и внешних факторов, таких как состояние полосы пропускания линий связи. Как результат, декодер 200 допускает декодирование контента при свободном переключении между низким разрешением и высоким разрешением. Например, пользователь потока просматривает видео потока наполовину с использованием смартфона по пути домой и продолжает просмотр ролика дома на таком устройстве, как телевизор, соединенный с Интернетом. Следует отметить, что каждое из смартфона и устройства, описанных выше, включает в себя декодер 200, имеющий одинаковую или различную производительность. В этом случае, когда устройство декодирует слои вплоть до верхнего слоя в потоке, пользователь может просматривать видео в высоком качестве дома. Таким образом, кодер 100 не должен формировать множество потоков, имеющих различные качества изображений одинакового контента, и в силу этого нагрузка по обработке может уменьшаться.

[0074] Кроме того, улучшающий слой может включать в себя метаинформацию на основе статистической информации относительно изображения. Декодер 200 может формировать видео, качество изображений которого повышено посредством выполнения формирования изображений со сверхразрешением на картинке в базовом слое на основе метаданных. Формирование изображений со сверхразрешением может включать в себя, например, улучшение SN-отношения при одинаковом разрешении, увеличение разрешения и т.д. Метаданные могут включать в себя, например, информацию для идентификации коэффициента линейной или нелинейной фильтрации, используемой в процессе на основе сверхразрешения, либо информацию, идентифицирующую значение параметра в процессе фильтрации, при машинном обучении или в методе наименьших квадратов, используемом в обработке на основе сверхразрешения и т.д.

[0075] В варианте осуществления, может предоставляться конфигурация, в которой картинка разделяется, например, на тайлы, например, в соответствии со смысловым значением объекта в картинке. В этом случае, декодер 200 может декодировать только частичную область в картинке посредством выбора тайлы, который должен декодироваться. Дополнительно, атрибут объекта (человека, автомобиля, шара и т.д.) и позиция объекта в картинке (координаты в одинаковых изображениях) могут сохраняться в качестве метаданных. В этом случае, декодер 200 допускает идентификацию позиции требуемого объекта на основе метаданных и определение тайла, включающего в себя объект. Например, как проиллюстрировано на фиг. 6, метаданные могут сохраняться с использованием структуры хранения данных, отличающейся от данных изображений, такой как сообщение с SEI (дополнительной улучшающей информацией) в HEVC. Эти метаданные указывают, например, позицию, размер или цвет основного объекта.

[0076] Метаданные могут сохраняться в единицах множества картинок, к примеру, как поток, последовательность или единица произвольного доступа. Таким образом, декодер 200 допускает получение, например, времени, в которое конкретный человек появляется в видео, и посредством подгонки информации времени к информации единицы картинок, допускает идентификацию картинки, в которой объект (человек) присутствует, и определение позиции объекта в картинке.

[0077] Кодер

В дальнейшем описывается кодер согласно варианту осуществления. Фиг. 7 является блок-схемой, иллюстрирующей функциональную конфигурацию кодера 100 согласно варианту осуществления. Кодер 100 представляет собой видеокодер, который кодирует видео в единицах блоков.

[0078] Как проиллюстрировано на фиг. 7, кодер 100 представляет собой оборудование, которое кодирует изображение в единицах блоков, и включает в себя модуль 102 разбиения, вычитатель 104, преобразователь 106, квантователь 108, энтропийный кодер 110, обратный квантователь 112, обратный преобразователь 114, сумматор 116, запоминающее устройство 118 блоков, контурный фильтр 120, запоминающее устройство 122 кадров, модуль 124 внутреннего предсказания, модуль 126 внешнего предсказания, контроллер 128 предсказания и формирователь 130 параметров предсказания. Как проиллюстрировано, модуль 124 внутреннего предсказания и модуль 126 внешнего предсказания представляют собой часть контроллера предсказания.

[0079] Кодер 100 реализуется, например, в качестве общего процессора и запоминающего устройства. В этом случае, когда программно-реализованная программа, сохраненная в запоминающем устройстве, выполняется посредством процессора, процессор функционирует в качестве модуля 102 разбиения, вычитателя 104, преобразователя 106, квантователя 108, энтропийного кодера 110, обратного квантователя 112, обратного преобразователя 114, сумматора 116, контурного фильтра 120, модуля 124 внутреннего предсказания, модуля 126 внешнего предсказания и контроллера 128 предсказания. Альтернативно, кодер 100 может реализовываться в качестве одной или более специализированных электронных схем, соответствующих модулю 102 разбиения, вычитателю 104, преобразователю 106, квантователю 108, энтропийному кодеру 110, обратному квантователю 112, обратному преобразователю 114, сумматору 116, контурному фильтру 120, модулю 124 внутреннего предсказания, модулю 126 внешнего предсказания и контроллеру 128 предсказания.

[0080] Пример монтажа кодера

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

[0081] Процессор a1 представляет собой схему, которая выполняет обработку информации, и соединяется с запоминающим устройством a2. Например, процессор a1 представляет собой специализированную или общую электронную схему, которая кодирует изображение. Процессор a1 может представлять собой процессор, такой как CPU. Дополнительно, процессор a1 может представлять собой совокупность множества электронных схем. Дополнительно, например, процессор a1 может выполнять роли двух или более составляющих элементов из множества составляющих элементов кодера 100, проиллюстрированного на фиг. 7, и т.д.

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

[0083] Например, запоминающее устройство a2 может сохранять изображение, которое должно кодироваться, или поток битов, соответствующий кодированному изображению. Дополнительно, запоминающее устройство a2 может сохранять программу для инструктирования процессору a1 кодировать изображение.

[0084] Дополнительно, например, запоминающее устройство a2 может выполнять роли двух или более составляющих элементов для сохранения информации из множества составляющих элементов кодера 100, проиллюстрированного на фиг. 7, и т.д. Например, запоминающее устройство a2 может выполнять роли запоминающего устройства 118 блоков и запоминающего устройства 122 кадров, проиллюстрированных на фиг. 7. Более конкретно, запоминающее устройство a2 может сохранять восстановленный блок, восстановленную картинку и т.д.

[0085] Следует отметить, что, в кодере 100, все из множества составляющих элементов, указываемых на фиг. 7 и т.д., могут не реализовываться, и все процессы, описанные в данном документе, могут не выполняться. Часть составляющих элементов, указываемых на фиг. 7 и т.д., может включаться в другое устройство, или часть процессов, описанных в данном документе, может выполняться посредством другого устройства.

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

[0087] Общая последовательность операций процесса кодирования

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

[0088] Во-первых, модуль 102 разбиения кодера 100 разбивает каждый из картинок, включенных во входное изображение, на множество блоков, имеющих фиксированный размер (например, 128×128 пикселов) (этап Sa_1). Модуль 102 разбиения затем выбирает шаблон разбиения для блока фиксированного размера (также называется "формой блока") (этап Sa_2). Другими словами, модуль 102 разбиения дополнительно разбивает блок фиксированного размера на множество блоков, которые формируют выбранный шаблон разбиения. Кодер 100 выполняет, для каждого из множества блоков, этапы Sa_3-Sa_9 для блока (который представляет собой текущий блок, который должен кодироваться).

[0089] Контроллер 128 предсказания и модуль выполнения предсказания (который включает в себя модуль 124 внутреннего предсказания и модуль 126 внешнего предсказания) формируют изображение предсказания текущего блока (этап Sa 3). Изображение предсказания также может называться "сигналом предсказания", "блоком предсказания" или "выборками предсказания".

[0090] Затем, вычитатель 104 формирует разность между текущим блоком и изображением предсказания в качестве остатка предсказания (этап Sa_4). Остаток предсказания также может называться "ошибкой предсказания".

[0091] Затем, преобразователь 106 преобразует изображение предсказания, и квантователь 108 квантует результат для того, чтобы формировать множество квантованных коэффициентов (этап Sa_5). Множество квантованных коэффициентов иногда могут называться "блоком коэффициентов".

[0092] Затем, энтропийный кодер 110 кодирует (в частности, энтропийно кодирует) множество квантованных коэффициентов и параметр предсказания, связанный с формированием изображения предсказания, чтобы формировать поток (этап Sa_6). Поток может иногда называться "кодированным потоком битов" или "сжатым потоком битов".

[0093] Затем, обратный квантователь 112 выполняет обратное квантование множества квантованных коэффициентов, и обратный преобразователь 114 выполняет обратное преобразование результата, чтобы восстанавливать остаток предсказания (этап Sa_7).

[0094] Затем, сумматор 116 суммирует изображение предсказания с восстановленным остатком предсказания, чтобы восстанавливать текущий блок (этап Sa_8). Таким образом, восстановленное изображение формируется. Восстановленное изображение также может называться "восстановленным блоком" или "декодированным блоком изображений".

[0095] Когда восстановленное изображение формируется, контурный фильтр 120 выполняет фильтрацию восстановленного изображения при необходимости (этап Sa_9).

[0096] Кодер 100 затем определяет то, закончено или нет кодирование всей картинки (этап Sa_10). При определении того, что кодирование еще не закончено ("Нет" на этапе Sa_10), выполнение процессов с этапа Sa_2 повторяется для следующего блока картинки.

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

[0098] Как проиллюстрировано, процессы на этапах Sa_1-Sa_10 выполняются последовательно посредством кодера 100. Альтернативно, два или более процессов могут выполняться параллельно, процессы могут переупорядочиваться и т.д.

[0099] Процесс кодирования, используемый посредством кодера 100, представляет собой гибридное кодирование с использованием кодирования с предсказанием и кодирования с преобразованием. Дополнительно, кодирование с предсказанием выполняется посредством контура кодирования, сконфигурированного с вычитателем 104, преобразователем 106, квантователем 108, обратным квантователем 112, обратным преобразователем 114, сумматором 116, контурным фильтром 120, запоминающим устройством 118 блоков, запоминающим устройством 122 кадров, модулем 124 внутреннего предсказания, модулем 126 внешнего предсказания и контроллером 128 предсказания. Другими словами, модуль выполнения предсказания, сконфигурированный с модулем 124 внутреннего предсказания и модулем 126 внешнего предсказания, представляет собой часть контура кодирования.

[0100] Модуль разбиения

Модуль 102 разбиения разбивает каждую картинку, включенную в исходное изображение, на множество блоков, и выводит каждый блок в вычитатель 104. Например, модуль 102 разбиения сначала разбивает картинку на блоки фиксированного размера (например, 128×128 пикселов). Могут использоваться другие фиксированные размеры блоков. Блок фиксированного размера также называется "единицей дерева кодировки (CTU)". Модуль 102 разбиения затем разбивает каждый блок фиксированного размера на блоки переменных размеров (например, 64×64 пикселов или меньше), на основе рекурсивного разбиения на блоки дерева квадрантов и/или двоичного дерева. Другими словами, модуль 102 разбиения выбирает шаблон разбиения. Блок переменного размера также может называться "единицей кодировки (CU)", "единицей предсказания (PU)" или "единицей преобразования (TU)". Следует отметить, что, в различных видах примеров обработки, нет необходимости различать CU, PU и TU между собой; все или некоторые блоки в картинке могут обрабатываться в единицах CU, PU или TU.

[0101] Фиг. 10 является концептуальной схемой для иллюстрации одного примера разбиения на блоки согласно варианту осуществления. На фиг. 10, сплошные линии представляют границы блоков для блоков, разбитых посредством разбиения на блоки дерева квадрантов, и пунктирные линии представляют границы блоков для блоков, разбитых посредством разбиения на блоки двоичного дерева.

[0102] Здесь, блок 10 представляет собой квадратный блок, имеющий 128×128 пикселов (блок 128×128). Это блок 10 128×128 сначала разбивается на четыре квадратных 64×64-пиксельных блока (разбиение на блоки дерева квадрантов).

[0103] Верхний левый 64×64-пиксельный блок дополнительно вертикально разбивается на два прямоугольных 32×64-пиксельных блока, и левый 32×64-пиксельный блок дополнительно вертикально разбивается на два прямоугольных 16×64-пиксельных блока (разбиение на блоки двоичного дерева). Как результат, верхний левый 64×64-пиксельный блок разбивается на два 16×64-пиксельных блока 11 и 12 и один 32×64-писелный блок 13.

[0104] Верхний правый 64×64-пиксельный блок горизонтально разбивается на два прямоугольных 64×32-пиксельных блока 14 и 15 (разбиение на блоки двоичного дерева).

[0105] Левый нижний квадратный 64×64-пиксельный блок сначала разбивается на четыре квадратных 32×32-пиксельных блока (разбиение на блоки дерева квадрантов). Верхний левый блок и нижний правый блок из четырех квадратных 32×32-пиксельных блоков дополнительно разбиваются. Верхний левый квадратный 32×32-пиксельный блок вертикально разбивается на два прямоугольных 16×32-пиксельных блока, и правый 16×32-пиксельный блок дополнительно горизонтально разбивается на два 16×16-пиксельных блока (разбиение на блоки двоичного дерева). Правый нижний 32×32-пиксельный блок горизонтально разбивается на два 32×16-пиксельных блока (разбиение на блоки двоичного дерева). Верхний правый квадратный 32×32-пиксельный блок горизонтально разбивается на два прямоугольных 32×16-пиксельных блока (разбиение на блоки двоичного дерева). Как результат, левый нижний квадратный 64×64-пиксельный блок разбивается на прямоугольный 16×32-пиксельный блок 16, два квадратных 16×16-пиксельных блока 17 и 18, два квадратных 32×32-пиксельных блока 19 и 20 и два прямоугольных 32×16-пиксельных блока 21 и 22.

[0106] Правый нижний 64×64-пиксельный блок 23 не разбивается.

[0107] Как описано выше, на фиг. 10, блок 10 разбивается на тринадцать блоков 11-23 переменного размера на основе рекурсивного разбиения на блоки дерева квадрантов и двоичного дерева. Этот тип разбиения также называется "разбиением на дерево квадрантов плюс двоичное дерево (QTBT)".

[0108] Следует отметить, что, на фиг. 10, один блок разбивается на четыре или два блока (разбиение на блоки дерева квадрантов или двоичного дерева), но разбиение не ограничено этими примерами. Например, один блок может разбиваться на три блока (разбиение на троичные блоки). Разбиение, включающее в себя такое разбиение на троичные блоки, также называется "разбиением на многотипное дерево (MBT)".

[0109] Фиг. 11 является блок-схемой, иллюстрирующей один пример функциональной конфигурации модуля 102 разбиения согласно одному варианту осуществления. Как проиллюстрировано на фиг. 11, модуль 102 разбиения может включать в себя модуль 102a определения разбиения блоков. Модуль 102a определения разбиения блоков может выполнять следующие процессы в качестве примеров.

[0110] Например, модуль 102a определения разбиения блоков может получать или извлекать информацию блоков из запоминающего устройства 118 блоков и/или запоминающего устройства 122 кадров и определять шаблон разбиения (например, вышеописанный шаблон разбиения) на основе информации блоков. Модуль 102 разбиения разбивает исходное изображение согласно шаблону разбиения и выводит, по меньшей мере, один блок, полученный посредством разбиения, в вычитатель 104.

[0111] Дополнительно, например, модуль 102a определения разбиения блоков выводит один или более параметров, указывающих определенный шаблон разбиения (например, вышеописанный шаблон разбиения), в преобразователь 106, обратный преобразователь 114, модуль 124 внутреннего предсказания, модуль 126 внешнего предсказания и энтропийный кодер 110. Преобразователь 106 может преобразовывать остаток предсказания на основе одного или более параметров. Модуль 124 внутреннего предсказания и модуль 126 внешнего предсказания могут формировать изображение предсказания на основе одного или более параметров. Дополнительно, энтропийный кодер 110 может энтропийно кодировать один или более параметров.

[0112] Параметр, связанный с шаблоном разбиения, может записываться в поток, как указано ниже в качестве одного примера.

[0113] Фиг. 12 является концептуальной схемой для иллюстрации примеров шаблонов разбиения. Примеры шаблонов разбиения включают в себя: разбиение на четыре области (QT), при котором блок разбивается на две области как горизонтально, так и вертикально; разбиение на три области (HT или VT), при котором блок разбивается в том же направлении в соотношении 1:2:1; разбиение на две области (HB или VB), при котором блок разбивается в том же направлении в соотношении 1:1; и отсутствие разбиения (NS).

[0114] Следует отметить, что шаблон разбиения не имеет направления разбиения блоков в случае разбиения на четыре области и отсутствия разбиения, и что шаблон разбиения имеет информацию направления разбиения в случае разбиения на две области или три области.

[0115] Фиг. 13A является концептуальной схемой для иллюстрации одного примера синтаксического дерева шаблона разбиения. Фиг. 13B является концептуальной схемой для иллюстрации другого примера синтаксического дерева шаблона разбиения.

[0116] Фиг. 13A и 13B являются концептуальными схемами для иллюстрации примеров синтаксического дерева шаблона разбиения. В примере по фиг. 13A, во-первых, информация, указывающая то, следует выполнять или нет разбиение (S: флаг разбиения), присутствует, и информация, указывающая то, следует или нет выполнять разбиение на четыре области (QT: QT-флаг), присутствует после нее. Информация, указывающая , что из разбиения на три области и две области должно выполняться (TT: TT-флаг или BT: BT-флаг), присутствует после нее, и информация, указывающая направление разделения (Ver: вертикальный флаг, или Hor: горизонтальный флаг), присутствует после этого. Следует отметить, что каждый, по меньшей мере, один блок, полученный посредством разбиения согласно такому шаблону разбиения, дополнительно может разбиваться многократно в аналогичном процессе. Другими словами, в качестве одного примера, то, выполняется лили нет разбиение, то, выполняется или нет разбиение на четыре области, то, какое из горизонтального направления и вертикального направления представляет собой направление, в котором должен выполняться способ разбиения, что из разбиения на три области и разбиения на две области должно выполняться, может рекурсивно определяться, и результаты определения могут кодироваться в потоке согласно порядку кодирования, раскрытому посредством синтаксического дерева, проиллюстрированного на фиг. 13A.

[0117] Дополнительно, хотя информационные элементы, соответственно, указывающие S, QT, TT и Ver, размещаются в перечисленном порядке в синтаксическом дереве, проиллюстрированном на фиг. 13A, информационные элементы, соответственно, указывающие S, QT, Ver и BT, могут размещаться в перечисленном порядке. Другими словами, в примере по фиг. 13B, во-первых, информация, указывающая то, следует или нет выполнять разбиение (S: флаг разбиения), присутствует, и информация, указывающая то, следует или нет выполнять разбиение на четыре области (QT: QT-флаг), присутствует после нее. Информация, указывающая направление разбиения (Ver: вертикальный флаг, или Hor: горизонтальный флаг), присутствует после нее, и информация, указывающая , что из разбиения на две области и разбиения на три области должно выполняться (BT: BT-флаг, или TT: TT-флаг), присутствует после этого.

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

[0119] Вычитатель

Вычитатель 104 вычитает изображение предсказания (выборку предсказания, которая вводится из контроллера 128 предсказания, указываемого ниже) из исходного изображения, в единицах блоков вводятся из модуля 102 разбиения и разбиения посредством модуля 102 разбиения. Другими словами, вычитатель 104 вычисляет остатки предсказания (также называемые "ошибками") текущего блока. Вычитатель 104 затем выводит вычисленные остатки предсказания в преобразователь 106.

[0120] Исходное изображение может представлять собой изображение, которое введено в кодер 100 в качестве сигнала, представляющего изображение каждой картинки, включенного в видео (например, сигнала яркости и двух сигналов цветности). Сигнал, представляющий изображение, также может называться "выборкой".

[0121] Преобразователь

Преобразователь 106 преобразует остатки предсказания в пространственной области в коэффициенты преобразования в частотной области и выводит коэффициенты преобразования в квантователь 108. Более конкретно, преобразователь 106 применяет, например, заданное дискретное косинусное преобразование (DCT) или дискретное синусное преобразование (DST) к остаткам предсказания в пространственной области. Заданное DCT или DST может быть предварительно задано.

[0122] Следует отметить, что преобразователь 106 может адаптивно выбирать тип преобразования из множества типов преобразования и преобразовывать остатки предсказания в коэффициенты преобразования посредством использования базисной функции преобразования, соответствующей выбранному типу преобразования. Этот вид преобразования также называется "явным множественным базовым преобразованием (EMT)" или "адаптивным множественным преобразованием (AMT)". Базисная функция преобразования также может называться "базисом".

[0123] Типы преобразования включают в себя, например, DCT-II, DCT-V, DCT-VIII, DST-I и DST-VII. Следует отметить, что эти типы преобразования могут представляться как DCT2, DCT5, DCT8, DST1 и DST7. Фиг. 14 является диаграммой, указывающей примерные базисные функции преобразования для примерных типов преобразования. На фиг. 14, N указывает число входных пикселов. Например, выбор типа преобразования из множества типов преобразования может зависеть от типа предсказания (одно из внутреннего предсказания и внешнего предсказания) и может зависеть от режима внутреннего предсказания.

[0124] Информация, указывающая то, следует или нет применять такое EMT или AMT (называется, например, "EMT-флагом" или "AMT-флагом"), и информация, указывающая выбранный тип преобразования, нормально сигнализируется на уровне CU. Следует отметить, что сигнализация этой информации не должна обязательно выполняться на уровне CU и может выполняться на другом уровне (например, на уровне последовательности, уровне картинки, уровне слайса, уровне тайла или уровне CTU).

[0125] Дополнительно, преобразователь 106 может повторно преобразовывать коэффициенты преобразования (которые представляют собой результаты преобразования). Такое повторное преобразование также называется "адаптивным вторичным преобразованием (AST)" или "неразделимым вторичным преобразованием (NSST)". Например, преобразователь 106 выполняет повторное преобразование в единицах субблока (например, 4×4-пиксельного субблока), включенного в блок коэффициентов преобразования, соответствующий остатку внутреннего предсказания. Информация, указывающая то, следует или нет применять NSST, и информация, связанная с матрицей преобразования для использования в NSST, нормально сигнализируется на уровне CU. Следует отметить, что сигнализация этой информации не должна обязательно выполняться на уровне CU и может выполняться на другом уровне (например, на уровне последовательности, уровне картинки, уровне слайса, уровне тайла или уровне CTU).

[0126] Преобразователь 106 может использовать разделимое преобразование и неразделимое преобразование. Разделимое преобразование представляет собой способ, в котором преобразование выполняется многократно посредством отдельного выполнения преобразования для каждого из определенного числа направлений согласно числу размерностей вводов. Неразделимое преобразование представляет собой способ выполнения коллективного преобразования, в котором две или более размерностей в многомерных вводах совместно рассматриваются в качестве одной размерности.

[0127] В одном примере неразделимого преобразования, когда ввод представляет собой 4×4-пиксельный блок, 4×4-пиксельный блок рассматривается в качестве единого массива, включающего в себя шестнадцать элементов, и преобразование применяет матрицу преобразования 16×16 к массиву.

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

[0129] При преобразовании в преобразователе 106, типы преобразования для базовых функций преобразования, которые должны преобразовываться в частотную область согласно областям в CU, могут переключаться. Примеры включают в себя пространственно варьирующееся преобразование (SVT).

[0130] Фиг. 15 является концептуальной схемой для иллюстрации одного примера SVT. В SVT, как проиллюстрировано на фиг. 15B, CU разбиваются на две равных области горизонтально или вертикально, и только одна из областей преобразуется в частотную область. Базисный тип преобразования может задаваться для каждой области. Например, используются DST7 и DST8. Например, из двух областей, полученных посредством разбиения CU вертикально на две равных области, DST7 и DCT8 могут использоваться для области в позиции 0. Альтернативно, из двух областей, DST7 используется для области в позиции 1. Аналогично, из двух областей, полученных посредством разбиения CU горизонтально на две равных области, DST7 и DCT8 используются для области в позиции 0. Альтернативно, из двух областей, DST7 используется для области в позиции 1. Хотя только одна из двух областей в CU преобразуется, а другая не преобразуется в примере, проиллюстрированном на фиг. 15, каждая из двух областей может преобразовываться. Дополнительно, способ разбиения может включать в себя не только разбиение на две области, но также и разбиение на четыре области. Дополнительно, способ разбиения может быть более гибким. Например, информация, указывающая способ разбиения, может кодироваться и может сигнализироваться подобно CU-разбиению. Следует отметить, что SVT также может называться "субблочным преобразованием (SBT)".

[0131] AMT и EMT, описанные выше, могут называться "MTS (множественным выбором преобразования)". Когда MTS применяется, тип преобразования, который представляет собой DST7, DCT8 и т.п., может выбираться, и информация, указывающая выбранный тип преобразования, может кодироваться как информация индекса для каждой CU. Предусмотрен другой процесс, называемый "IMTS (неявным MTS)", в качестве процесса для выбора типа преобразования, который должен использоваться для ортогонального преобразования, выполняемого без кодирования информации индекса. Когда IMTS применяется, например, когда CU имеет прямоугольную форму, ортогональное преобразование прямоугольной формы может выполняться с использованием DST7 для короткой стороны и DST2 для длинной стороны. Дополнительно, например, когда CU имеет квадратную форму, ортогональное преобразование прямоугольной формы может выполняться с использованием DCT2, когда MTS является эффективным в последовательности, и с использованием DST7, когда MTS является неэффективным в последовательности. DCT2 и DST7 представляют собой просто примеры. Другие типы преобразования могут использоваться, и также можно изменять комбинацию типов преобразования для использования на другую комбинацию типов преобразования. IMTS может использоваться только для блоков внутреннего предсказания или может использоваться для блоков внутреннего предсказания и блока внешнего предсказания.

[0132] Три процесса в виде MTS, SBT и IMTS описываются выше в качестве процессов выбора для избирательного переключения типов преобразования для использования при ортогональном преобразовании. Тем не менее, все три процесса выбора могут использоваться, или только часть процессов выбора может избирательно использоваться. То, используются либо нет один или более процессов выбора, может идентифицироваться, например, на основе информации флага и т.п. в заголовке, к примеру, в SPS. Например, когда все три процесса выбора доступны для использования, один из трех процессов выбора выбирается для каждой CU, и ортогональное преобразование CU выполняется. Следует отметить, что процессы выбора для избирательного переключения типов преобразования могут представлять собой процессы выбора, отличающиеся от вышеуказанных трех процессов выбора, либо каждый из трех процессов выбора может заменяться посредством другого процесса. Типично, по меньшей мере, одна из следующих четырех передаточных функций [1]-[4] выполняется. Функция [1] представляет собой функцию для выполнения ортогонального преобразования всей CU и кодирования информации, указывающей тип преобразования, используемый при преобразовании. Функция [2] представляет собой функцию для выполнения ортогонального преобразования всей CU и определения типа преобразования на основе определенного правила без кодирования информации, указывающей тип преобразования. Функция [3] представляет собой функцию для выполнения ортогонального преобразования частичной области CU и кодирования информации, указывающей тип преобразования, используемый при преобразовании. Функция [4] представляет собой функцию для выполнения ортогонального преобразования частичной области CU и определения типа преобразования на основе определенного правила без кодирования информации, указывающей тип преобразования, используемый при преобразовании. Определенные правила могут быть предварительно определены.

[0133] Следует отметить, что то, применяется либо нет MTS, IMTS и/или SBT, может определяться для каждой единицы обработки. Например, то, применяется либо нет MTS, IMTS и/или SBT, может определяться для каждой последовательности, картинки, кирпича, слайса, CTU или CU.

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

[0135] Фиг. 16 является блок-схемой последовательности операций способа, иллюстрирующей один пример процесса, выполняемого посредством преобразователя 106, и описывается для удобства со ссылкой на фиг. 7. Например, преобразователь 106 определяет то, следует или нет выполнять ортогональное преобразование (этап St_1). Здесь, при определении необходимости выполнять ортогональное преобразование ("Да" на этапе St_1), преобразователь 106 выбирает тип преобразования для использования при ортогональном преобразовании из множества типов преобразования (этап St_2). Затем, преобразователь 106 выполняет ортогональное преобразование посредством применения выбранного типа преобразования к остатку предсказания текущего блока (этап St_3). Преобразователь 106 затем выводит информацию, указывающую выбранный тип преобразования, в энтропийный кодер 110, чтобы обеспечивать возможность энтропийному кодеру 110 кодировать информацию (этап St_4). С другой стороны, при определении необходимости не выполнять ортогональное преобразование ("Нет" на этапе St_1), преобразователь 106 выводит информацию, указывающую , что ортогональное преобразование не выполняется, чтобы обеспечивать возможность энтропийному кодеру 110 кодировать информацию (этап St_5). Следует отметить, что то, следует или нет выполнять ортогональное преобразование, на этапе St_1 может определяться, например, на основе размера блока преобразования, режима предсказания, применяемого к CU, и т.д. Альтернативно, ортогональное преобразование может выполняться с использованием заданного типа преобразования без кодирования информации, указывающей тип преобразования для использования при ортогональном преобразовании. Заданный тип преобразования может быть предварительно задан.

[0136] Фиг. 17 является блок-схемой последовательности операций способа, иллюстрирующей один пример процесса, выполняемого посредством преобразователя 106, и описывается для удобства со ссылкой на фиг. 7. Следует отметить, что пример, проиллюстрированный на фиг. 17, представляет собой пример ортогонального преобразования в случае, если типы преобразования для использования при ортогональном преобразовании избирательно переключаются, как и в случае примера, проиллюстрированного на фиг. 16.

[0137] В качестве одного примера, первая группа типов преобразования может включать в себя DCT2, DST7 и DCT8. В качестве другого примера, вторая группа типов преобразования может включать в себя DCT2. Типы преобразования, включенные в первую группу типов преобразования, и типы преобразования, включенные во вторую группу типов преобразования, могут частично перекрываться между собой или могут полностью отличаться друг от друга.

[0138] Преобразователь 106 определяет то, меньше или равен либо нет размер преобразования определенному значению (этап Su_1). Здесь, при определении того, что размер преобразования меньше или равен определенному значению ("Да" на этапе Su_1), преобразователь 106 выполняет ортогональное преобразование остатка предсказания текущего блока с использованием типа преобразования, включенного в первую группу типов преобразования (этап Su_2). Затем, преобразователь 106 выводит информацию, указывающую тип преобразования, который должен использоваться, по меньшей мере, из одного типа преобразования, включенного в первую группу типов преобразования, в энтропийный кодер 110, чтобы обеспечивать возможность энтропийному кодеру 110 кодировать информацию (этап Su_3). С другой стороны, при определении того, что размер преобразования не меньше или равен предварительно определенному значению ("Нет" на этапе Su_1), преобразователь 106 выполняет ортогональное преобразование остатка предсказания текущего блока с использованием второй группы типов преобразования (этап Su_4). Определенное значение может представлять собой пороговое значение и может составлять предварительно определенное значение.

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

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

[0141] Квантователь

Квантователь 108 квантует коэффициенты преобразования, выводимые из преобразователя 106. Более конкретно, квантователь 108 сканирует, в определенном порядке сканирования, коэффициенты преобразования текущего блока и квантует сканированные коэффициенты преобразования на основе параметров квантования (QP), соответствующих коэффициентам преобразования. Квантователь 108 затем выводит квантованные коэффициенты преобразования (в дальнейшем также называются "квантованными коэффициентами") текущего блока в энтропийный кодер 110 и обратный квантователь 112. Определенный порядок сканирования может быть предварительно определен.

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

[0143] Параметр квантования (QP) представляет собой параметр, задающий шаг квантования (ширину квантования). Например, когда значение параметра квантования увеличивается, размер шага квантования также увеличивается. Другими словами, когда значение параметра квантования увеличивается, ошибка в квантованных коэффициентах (ошибка квантования) увеличивается.

[0144] Дополнительно, матрица квантования может использоваться для квантования. Например, несколько видов матриц квантования могут использоваться, соответственно, чтобы выполнять преобразование частоты для размеров, таких как 4×4 и 8×8, режимов предсказания, таких как внутреннее предсказание и внешнее предсказание, и пиксельных компонентов, таких как пиксельные компоненты сигнала яркости и сигнала цветности. Следует отметить, что квантование означает оцифровку значений, дискретизированных с определенными интервалами, соответственно, в определенные уровни. В этой области техники, квантование может упоминаться с использованием других выражений, таких как округление и масштабирование, и может использовать округление и масштабирование. Определенные интервалы и определенные уровни могут быть предварительно определены.

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

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

[0147] Матрица квантования может кодироваться, например, на уровне последовательности, уровне картинки, уровне слайса, уровне кирпича или уровне CTU. Матрица квантования может указываться с использованием, например, набора параметров последовательности (SPS) или набора параметров картинки (PPS). SPS включает в себя параметр, который используется для последовательности, и PPS включает в себя параметр, который используется для картинки. Каждый из SPS и PPS может называться просто "набором параметров".

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

[0149] Фиг. 18 является блок-схемой, иллюстрирующей один пример функциональной конфигурации квантователя согласно варианту осуществления. Например, квантователь 108 включает в себя формирователь 108a параметров разностного квантования, формирователь 108b предсказанных параметров квантования, формирователь 108c параметров квантования, устройство 108d хранения параметров квантования и модуль 108e выполнения квантования.

[0150] Фиг. 19 является блок-схемой последовательности операций способа, иллюстрирующей один пример процесса квантования, выполняемого посредством квантователя 108, и описывается для удобства со ссылкой на фиг. 7 и 18. В качестве одного примера, квантователь 108 может выполнять квантование для каждой CU на основе блок-схемы последовательности операций способа, проиллюстрированной на фиг. 19. Более конкретно, формирователь 108c параметров квантования определяет то, следует или нет выполнять квантование (этап Sv_1). Здесь, при определении необходимости выполнять квантование ("Да" на этапе Sv_1), формирователь 108c параметров квантования формирует параметр квантования для текущего блока (этап Sv_2) и сохраняет параметр квантования в устройство 108d хранения параметров квантования (этап Sv_3).

[0151] Затем, модуль 108e выполнения квантования квантует коэффициенты преобразования текущего блока с использованием параметра квантования, сформированного на этапе Sv_2 (этап Sv_4). Формирователь 108b предсказанных параметров квантования затем получает параметр квантования для единицы обработки, отличающейся от текущего блока, из устройства 108d хранения параметров квантования (этап Sv_5). Формирователь 108b предсказанных параметров квантования формирует предсказанный параметр квантования текущего блока на основе полученного параметра квантования (этап Sv_6). Формирователь 108a параметров разностного квантования вычисляет разность между параметром квантования текущего блока, сформированным посредством формирователя 108c параметров квантования, и предсказанным параметром квантования текущего блока, сформированным посредством формирователя 108b предсказанных параметров квантования (этап Sv_7). Параметр разностного квантования может формироваться посредством вычисления разности. Формирователь 108a параметров разностного квантования выводит параметр разностного квантования в энтропийный кодер 110, чтобы обеспечивать возможность энтропийному кодеру 110 кодировать параметр разностного квантования (этап Sv_8).

[0152] Следует отметить, что параметр разностного квантования может кодироваться, например, на уровне последовательности, уровне картинки, уровне слайса, уровне кирпича или уровне CTU. Дополнительно, начальное значение параметра квантования может кодироваться на уровне последовательности, уровне картинки, уровне слайса, уровне кирпича или уровне CTU. При инициализации, параметр квантования может формироваться с использованием начального значения параметра квантования и параметра разностного квантования.

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

[0154] Энтропийный кодер

Фиг. 20 является блок-схемой, иллюстрирующей один пример функциональной конфигурации энтропийного кодера 110 согласно варианту осуществления, и описывается для удобства со ссылкой на фиг. 7. Энтропийный кодер 110 формирует поток посредством энтропийного кодирования квантованных коэффициентов, вводимых из квантователя 108, и параметра предсказания, вводимого из формирователя 130 параметров предсказания. Например, контекстно-адаптивная двоичная арифметическая кодировка (CABAC) используется в качестве энтропийного кодирования. Более конкретно, энтропийный кодер 110, как проиллюстрировано, включает в себя модуль 110a преобразования в двоичную форму, контроллер 110b контекстов и двоичный арифметический кодер 110c. Модуль 110a преобразования в двоичную форму выполняет преобразование в двоичную форму, при котором многоуровневые сигналы, такие как квантованные коэффициенты и параметр предсказания, преобразуются в двоичные сигналы. Примеры способов преобразования в двоичную форму включают в себя преобразование в двоичную форму усеченным кодом Райса, экспоненциальные коды Голомба и преобразование в двоичную форму кодом фиксированной длины. Контроллер 110b контекстов извлекает значение контекста согласно признаку или окружающему состоянию синтаксического элемента, который представляет собой вероятность возникновения двоичного сигнала. Примеры способов для извлечения значения контекста включают в себя обход, обращение к синтаксическому элементу, обращение к верхнему и левому смежным блокам, обращение к иерархической информации и т.д. Двоичный арифметический кодер 110c арифметически кодирует двоичный сигнал с использованием извлеченного контекста.

[0155] Фиг. 21 является концептуальной схемой для иллюстрации примерной последовательности операций CABAC-процесса в энтропийном кодере 110. Во-первых, инициализация выполняется в CABAC в энтропийном кодере 110. При инициализации, выполняются инициализация в двоичном арифметическом кодере 110c и задание начального значения контекста. Например, модуль 110a преобразования в двоичную форму и двоичный арифметический кодер 110c могут выполнять преобразование в двоичную форму и арифметическое кодирование множества коэффициентов квантования в CTU последовательно. Контроллер 110b контекстов может обновлять значение контекста каждый раз, когда арифметическое кодирование выполняется. Контроллер 110b контекстов затем может сохранять значение контекста в качестве постобработки. Сохраненное значение контекста может использоваться, например, чтобы инициализировать значение контекста для следующей CTU.

[0156] Обратный квантователь

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

[0157] Обратный преобразователь

Обратный преобразователь 114 восстанавливает остатки предсказания посредством обратного преобразования коэффициентов преобразования, которые введены из обратного квантователя 112. Более конкретно, обратный преобразователь 114 восстанавливает остатки предсказания текущего блока посредством выполнения обратного преобразования, соответствующего преобразованию, применяемого к коэффициентам преобразования посредством преобразователя 106. Обратный преобразователь 114 затем выводит восстановленные остатки предсказания в сумматор 116.

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

[0159] Сумматор

Сумматор 116 восстанавливает текущий блок посредством суммирования остатков предсказания, которые введены из обратного преобразователя 114, и изображений предсказания, которые введены из контроллера 128 предсказания. Следовательно, восстановленное изображение формируется. Сумматор 116 затем выводит восстановленное изображение в запоминающее устройство 118 блоков и контурный фильтр 120. Восстановленный блок также может называться "локальным декодированным блоком".

[0160] Запоминающее устройство блоков

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

[0161] Запоминающее устройство кадров

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

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

Контурный фильтр 120 применяет контурный фильтр к восстановленному изображению, выводимому посредством сумматора 116, и выводит фильтрованное восстановленное изображение в запоминающее устройство 122 кадров. Контурный фильтр представляет собой фильтр, используемый в контуре кодирования (внутриконтурном фильтре). Примеры контурных фильтров включают в себя, например, адаптивный контурный фильтр (ALF), фильтр удаления блочности (DB или DBF), фильтр на основе дискретизированного адаптивного смещения (SAO) и т.д.

[0163] Фиг. 22 является блок-схемой, иллюстрирующей один пример функциональной конфигурации контурного фильтра 120 согласно варианту осуществления. Например, как проиллюстрировано на фиг. 22, контурный фильтр 120 включает в себя модуль 120a выполнения фильтрации для удаления блочности, модуль 120b SAO-выполнения и модуль 120c ALF-выполнения. Модуль 120a выполнения фильтрации для удаления блочности выполняет процесс фильтрации для удаления блочности для восстановленного изображения. Модуль 120b SAO-выполнения выполняет SAO-процесс для восстановленного изображения после подвергания процессу фильтрации для удаления блочности. Модуль 120c ALF-выполнения выполняет ALF-процесс для восстановленного изображения после подвергания SAO-процессу. Ниже подробно описываются ALF и фильтр удаления блочности. SAO-процесс представляет собой процесс для повышения качества изображений посредством уменьшения кольцевания (явления, при котором пиксельные значения искажаются как волны вокруг края) и коррекции отклонения в пиксельном значении. Примеры SAO-процессов включают в себя процесс краевого смещения и процесс полосового смещения. Следует отметить, что контурный фильтр 120, в некоторых вариантах осуществления, может не включать в себя все составляющие элементы, раскрытые на фиг. 22, и может включать в себя некоторые составляющие элементы и может включать в себя дополнительные элементы. Дополнительно, контурный фильтр 120 может быть выполнен с возможностью выполнять вышеуказанные процессы в порядке обработки, отличающемся от порядка обработки, раскрытого на фиг. 22, может не выполнять все процессы и т.д.

[0164] Контурный фильтр > адаптивный контурный фильтр

В ALF, применяется фильтр ошибок по методу наименьших квадратов для удаления артефактов сжатия. Например, один фильтр, выбранный из множества фильтров на основе направления и активности локальных градиентов, применяется для каждого 2×2-пиксельного субблока в текущем блоке.

[0165] Более конкретно, сначала каждый субблок (например, каждый 2×2-пиксельный субблок) классифицируется на один из множества классов (например, пятнадцать или двадцать пять классов). Классификация субблока может быть основана, например, на направленности и активности градиентов. Например, классификационный индекс C (например, C=5D+A) извлекается на основе направленности D градиентов (например, 0-2 или 0-4) и активности A градиентов (например, 0-4). Затем на основе классификационного индекса C каждый субблок классифицируется на один из множества классов.

[0166] Например, направленность D градиентов вычисляется посредством сравнения градиентов множества направлений (например, горизонтального, вертикального и двух диагональных направлений). Кроме того, например, активность A градиентов вычисляется посредством суммирования градиентов множества направлений и квантования результата суммирования.

[0167] Фильтр, который должен использоваться для каждого субблока, может определяться из множества фильтров на основе результата такой классификации. Форма фильтра, который должен использоваться в ALF, например, представляет собой круглую симметричную форму фильтра. Фиг. 23A-23C являются концептуальными схемами для иллюстрации примеров форм фильтра, используемых в ALF. Фиг. 23A иллюстрирует фильтр ромбовидной формы 5×5, фиг. 23B иллюстрирует фильтр ромбовидной формы 7×7, и фиг. 23C иллюстрирует фильтр ромбовидной формы 9×9. Информация, указывающая форму фильтра, нормально сигнализируется на уровне картинки. Следует отметить, что сигнализация этой информации, указывающей форму фильтра, не обязательно должна выполняться на уровне картинки и может выполняться на другом уровне (например, на уровне последовательности, уровне слайса, уровне тайла, уровне CTU или уровне CU).

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

[0169] Дополнительно, как описано выше, один фильтр выбирается из множества фильтров, и ALF-процесс субблока выполняется. Набор коэффициентов для коэффициентов, которые должны использоваться для каждого из множества фильтров (например, вплоть до пятнадцатого или двадцать пятого фильтра), нормально сигнализируется на уровне картинки. Следует отметить, что сигнализация набора коэффициентов не должна обязательно выполняться на уровне картинки и может выполняться на другом уровне (например, на уровне последовательности, уровне слайса, уровне тайла, уровне CTU, уровне CU или уровне субблока).

[0170] Контурный фильтр > кросскомпонентный адаптивный контурный фильтр

Фиг. 23D является концептуальной схемой для иллюстрации примерной последовательности операций кросскомпонентной ALF (CCALF). Фиг. 23E является концептуальной схемой для иллюстрации примера формы фильтра, используемой в CCALF, к примеру, CCALF по фиг. 23D. Примерная CCALF по фиг. 23D и 23E работает посредством применения линейного, ромбовидного фильтра к каналу сигнала яркости для каждого компонента сигнала цветности. Коэффициенты фильтрации, например, могут передаваться в APS, масштабироваться на коэффициент 2^10 и округляться для представления с фиксированной запятой. Например, на фиг. 23D, Y-выборки (первый компонент) используются для CCALF для Cb и CCALF для Cr (для компонентов, отличающихся от первого компонента).

[0171] Применение фильтров может управляться для переменного размера блока и сигнализироваться посредством контекстно-кодированного флага, принимаемого для каждого блока выборок. Размер блока наряду с флагом CCALF-активации может приниматься на уровне слайса для каждого компонента сигнала цветности. CCALF может поддерживать различные размеры блоков, например (в выборках сигналов цветности) 16×16 пикселов, 32×32 пикселов, 64×64 пикселов, 128×128 пикселов.

[0172] Контурный фильтр > объединенный кросскомпонентный адаптивный контурный фильтр сигналов цветности

Один пример объединенной CCALF сигналов цветности проиллюстрирован на фиг. 23F и 23G. Фиг. 23F является концептуальной схемой для иллюстрации примерной последовательности операций объединенной CCALF сигналов цветности. Фиг. 23G является таблицей, иллюстрирующей примерные возможные варианты весовых индексов. Как проиллюстрировано, один CCALF-фильтр используется для того, чтобы формировать один CCALF-фильтрованный вывод в качестве сигнала детализации сигнала цветности для одного цветового компонента, в то время как взвешенная версия такого же сигнала детализации сигнала цветности применяется к другому цветовому компоненту. Таким образом, сложность существующей CCALF уменьшается примерно наполовину. Значение весового коэффициента может кодироваться как флаг знака и весовой индекс. Весовой индекс (обозначаемый в качестве weight_index) может кодироваться в 3 битах и указывает абсолютную величину весового JC-CCALF-коэффициента JcCcWeight, которая представляет собой ненулевую абсолютную величину. Абсолютная величина JcCcWeight, например, может определяться следующим образом:

Если weight_index меньше или равен 4, JcCcWeight равен weight_index>>2;

В противном случае, JcCcWeight равен 4/(weight_index-4).

[0173] Управление включением/выключением на блочном уровне ALF-фильтрации для Cb и Cr может быть отдельным. Это является одинаковым с CCALF, и могут кодироваться два отдельных набора флагов управления включением/выключением на блочном уровне. В отличие от CCALF, в данном документе, размеры блоков управления включением/выключением Cb, Cr являются одинаковыми, и в силу этого может кодироваться только одна переменная размера блока.

[0174] Контурный фильтр > фильтр удаления блочности

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

[0175] Фиг. 24 является блок-схемой, иллюстрирующей один пример конкретной конфигурации модуля 120a выполнения фильтрации для удаления блочности контурного фильтра 120 (см. фиг. 7 и 22), который функционирует в качестве фильтра удаления блочности.

[0176] Модуль 120a выполнения фильтрации для удаления блочности включает в себя: модуль 1201 определения границ; модуль 1203 определения фильтрации; модуль 1205 выполнения фильтрации; модуль 1208 определения обработки; модуль 1207 определения характеристик фильтра; и переключатели 1202, 1204 and 1206.

[0177] Модуль 1201 определения границ определяет то, присутствует или нет пиксел, который должен фильтроваться для удаления блочности (т.е. текущий пиксел), около блока около границы блока. Модуль 1201 определения границ затем выводит результат определения в переключатель 1202 и модуль 1208 определения обработки.

[0178] В случае если модуль 1201 определения границ определяет , что текущий пиксел присутствует около границы блока, переключатель 1202 выводит нефильтрованное изображение в переключатель 1204. В противоположном случае, в котором модуль 1201 определения границ определяет , что текущий пиксел не присутствует около границы блока, переключатель 1202 выводит нефильтрованное изображение в переключатель 1206. Следует отметить, что нефильтрованное изображение представляет собой изображение, сконфигурированное с текущим пикселом и, по меньшей мере, одним окружающим пикселом, расположенным около текущего пиксела.

[0179] Модуль 1203 определения фильтрации определяет то, следует или нет выполнять фильтрацию для удаления блочности текущего пиксела, на основе пиксельного значения, по меньшей мере, одного окружающего пиксела, расположенного около текущего пиксела. Модуль 1203 определения фильтрации затем выводит результат определения в переключатель 1204 и модуль 1208 определения обработки.

[0180] В случае если определено , что модуль 1203 определения фильтрации выполняет фильтрацию для удаления блочности текущего пиксела, переключатель 1204 выводит нефильтрованное изображение, полученное через переключатель 1202, в модуль 1205 выполнения фильтрации. В противоположном случае, в котором определено , что модуль 1203 определения фильтрации не выполняет фильтрацию для удаления блочности текущего пиксела, переключатель 1204 выводит нефильтрованное изображение, полученное через переключатель 1202, в переключатель 1206.

[0181] При получении нефильтрованного изображения через переключатели 1202 и 1204, модуль 1205 выполнения фильтрации выполняет, для текущего пиксела, фильтрацию для удаления блочности с характеристикой фильтра, определенной посредством модуля 1207 определения характеристик фильтра. Модуль 1205 выполнения фильтрации затем выводит фильтрованный пиксел в переключатель 1206.

[0182] Под управлением модуля 1208 определения обработки, переключатель 1206 избирательно выводит один из пиксела, который не фильтруется для удаления блочности, и пиксела, который фильтруется для удаления блочности посредством модуля 1205 выполнения фильтрации.

[0183] Модуль 1208 определения обработки управляет переключателем 1206 на основе результатов определений, выполняемых посредством модуля 1201 определения границ и модуля 1203 определения фильтрации. Другими словами, модуль 1208 определения обработки инструктирует переключателю 1206 выводить пиксел, который фильтруется для удаления блочности, когда модуль 1201 определения границ определяет , что текущий пиксел присутствует около границы блока, и когда модуль 1203 определения фильтрации определяет необходимость выполнять фильтрацию для удаления блочности текущего пиксела. Дополнительно, в отличие от вышеописанного случая, модуль 1208 определения обработки инструктирует переключателю 1206 выводить пиксел, который не фильтруется для удаления блочности. Фильтрованное изображение выводится из переключателя 1206 посредством повторения вывода пиксела таким образом. Следует отметить, что конфигурация, проиллюстрированная на фиг. 24, представляет собой один пример конфигурации в модуле 120a выполнения фильтрации для удаления блочности. Модуль 120a выполнения фильтрации для удаления блочности может иметь различные конфигурации.

[0184] Фиг. 25 является концептуальной схемой для иллюстрации примера фильтра удаления блочности, имеющего симметричную характеристику фильтрации относительно границы блока. В процессе фильтрации для удаления блочности, один из двух фильтров удаления блочности, имеющих различные характеристики, т.е. из сильного фильтра и слабого фильтра, может выбираться с использованием пиксельных значений и параметров квантования. В случае сильного фильтра, когда пикселы p0-p2 и пикселы q0-q2 присутствуют на границе блока, как проиллюстрировано на фиг. 25, пиксельные значения соответствующего пиксела q0-q2 изменяются на пиксельные значения q'0-q'2 посредством выполнения, например, вычислений согласно нижеприведенным выражениям.

[0185] q'0=(p1+2*p0+2*q0+2*q1+q2+4)/8

q'1=(p0+q0+q1+q2+2)/4

q'2=(p0+q0+q1+3*q2+2*q3+4)/8

[0186] Следует отметить, что, в вышеприведенных выражениях, p0-p2 и q0-q2 представляют собой пиксельные значения соответствующих пикселов p0-p2 и пикселов q0-q2. Дополнительно, q3 представляет собой пиксельное значение соседнего пиксела q3, расположенного в противоположной стороне пиксела q2 относительно границы блока. Дополнительно, в правой стороне каждого из выражений, коэффициенты, которые умножаются на соответствующие пиксельные значения пикселов, которые должны использоваться для фильтрации для удаления блочности, представляют собой коэффициенты фильтрации.

[0187] Кроме того, при фильтрации для удаления блочности, отсечение может выполняться таким образом, что вычисленные пиксельные значения не изменяются более чем на пороговое значение. Например, в процессе отсечения, пиксельные значения, вычисленные согласно вышеприведенным выражениям, могут отсекаться до значения, полученного согласно "вычисленное пиксельное значение ± 2 * пороговое значение" с использованием порогового значения, определенного на основе параметра квантования. Таким образом, можно предотвращать чрезмерное сглаживание.

[0188] Фиг. 26 является концептуальной схемой для иллюстрации границы блока, для которой выполняется процесс фильтрации для удаления блочности. Фиг. 27 является концептуальной схемой для иллюстрации примеров значений граничной интенсивности (Bs).

[0189] Граница блока, для которой выполняется процесс фильтрации для удаления блочности, например, представляет собой границу между CU, PU или TU, имеющими 8×8-пиксельные блоки, как проиллюстрировано на фиг. 26. Процесс фильтрации для удаления блочности может выполняться, например, в единицах четырех строк или четырех столбцов. Во-первых, значения граничной интенсивности (Bs) определяются, как указано на фиг. 27 для блока P и блока Q, проиллюстрированных на фиг. 26.

[0190] Согласно Bs-значениям на фиг. 27, может определяться то, следует или нет выполнять процессы фильтрации для удаления блочности границ блоков, принадлежащих одинаковому изображению, с использованием различных интенсивностей. Процесс фильтрации для удаления блочности для сигнала цветности выполняется, когда Bs-значение равно 2. Процесс фильтрации для удаления блочности для сигнала яркости выполняется, когда Bs-значение равно 1 или более, и определенное условие удовлетворяется. Определенное условие может быть предварительно определено. Следует отметить, что условия для определения Bs-значений не ограничены указываемыми на фиг. 27, и Bs-значение может определяться на основе другого параметра.

[0191] Модуль предсказания (модуль внутреннего предсказания, модуль внешнего предсказания, контроллер предсказания)

Фиг. 28 является блок-схемой последовательности операций способа, иллюстрирующей один пример процесса, выполняемого посредством модуля предсказания кодера 100. Следует отметить, что модуль предсказания включает в себя все или часть следующих составляющих элементов: модуль 124 внутреннего предсказания; модуль 126 внешнего предсказания; и контроллер 128 предсказания. Модуль выполнения предсказания включает в себя, например, модуль 124 внутреннего предсказания и модуль 126 внешнего предсказания.

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

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

[0194] Фиг. 29 является блок-схемой последовательности операций способа, иллюстрирующей другой пример процесса, выполняемого посредством модуля предсказания кодера 100. Модуль предсказания формирует изображение предсказания с использованием первого способа (этап Sc_1a), формирует изображение предсказания с использованием второго способа (этап Sc_1b) и формирует изображение предсказания с использованием третьего способа (этап Sc_1c). Первый способ, второй способ и третий способ могут представлять собой взаимно различные способы для формирования изображения предсказания. Каждый из первого-третьего способов может представлять собой способ внешнего предсказания, способ внутреннего предсказания или другой способ предсказания. Вышеописанное восстановленное изображение может использоваться в этих способах предсказания.

[0195] Затем, процессор предсказания оценивает изображения предсказания, сформированные на этапах Sc_1a, Sc_1b и Sc_1c (этап Sc_2). Например, модуль предсказания вычисляет затраты C для изображений предсказания, сформированных на этапе Sc_1a, Sc_1b и Sc_1, и оценивает изображения предсказания посредством сравнения затрат C изображений предсказания. Следует отметить, что затраты C могут вычисляться, например, согласно выражению модели R-D-оптимизации, например, C=D+λ x R. В этом выражении, D указывает артефакты сжатия изображения предсказания и представляется, например, как сумма абсолютных разностей между пиксельным значением текущего блока и пиксельным значением изображения предсказания. Дополнительно, R указывает скорость передачи битов потока. Дополнительно, λ указывает, например, множитель согласно способу на основе множителей Лагранжа.

[0196] Модуль предсказания затем выбирает одно из изображений предсказания, сформированных на этапах Sc_1a, Sc_1b и Sc_1c (этап Sc_3). Другими словами, модуль предсказания выбирает способ или режим для получения конечного изображения предсказания. Например, модуль предсказания выбирает изображение предсказания, имеющее наименьшие затраты C, на основе затрат C, вычисленных для изображений предсказания. Альтернативно, оценка на этапе Sc_2 и выбор изображения предсказания на этапе Sc_3 могут выполняться на основе параметра, который используется в процессе кодирования. Кодер 100 может преобразовывать информацию для идентификации выбранного изображения предсказания, способа или режима в поток. Информация, например, может представлять собой флаг и т.п. Таким образом, декодер 200 допускает формирование изображения предсказания согласно способу или режиму, выбранному посредством кодера 100, на основе информации. Следует отметить, что, в примере, проиллюстрированном на фиг. 29, модуль предсказания выбирает любое из изображений предсказания после того, как изображения предсказания формируются с использованием соответствующих способов. Тем не менее, модуль предсказания может выбирать способ или режим на основе параметра для использования в вышеописанном процессе кодирования до формирования изображений предсказания и может формировать изображение предсказания согласно выбранному способу или режиму.

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

[0198] Фиг. 30 является блок-схемой последовательности операций способа, иллюстрирующей другой пример процесса, выполняемого посредством модуля предсказания кодера 100. Во-первых, модуль предсказания формирует изображение предсказания с использованием внутреннего предсказания (этап Sd_1a) и формирует изображение предсказания с использованием внешнего предсказания (этап Sd_1b). Следует отметить, что изображение предсказания, сформированное посредством внутреннего предсказания, также называется изображением внутреннего предсказания, и изображение предсказания, сформированное посредством внешнего предсказания, также называется изображением внешнего предсказания.

[0199] Затем, модуль предсказания оценивает каждое из внутреннего изображения предсказания и внешнего изображения предсказания (этап Sd_2). Затраты C, описанные выше, могут использоваться при оценке. Модуль предсказания затем может выбирать изображение предсказания, для которого наименьшие затраты C вычислены, из внутреннего изображения предсказания и внешнего изображения предсказания, в качестве конечного изображения предсказания для текущего блока (этап Sd_3). Другими словами, выбирается способ или режим предсказания для формирования изображения предсказания для текущего блока.

[0200] Процессор предсказания затем выбирает изображение предсказания, для которого наименьшие затраты C вычислены из внутреннего изображения предсказания и внешнего изображения предсказания, в качестве конечного изображения предсказания для текущего блока (этап Sd_3). Другими словами, выбирается способ или режим предсказания для формирования изображения предсказания для текущего блока.

[0201] Модуль внутреннего предсказания

Модуль 124 внутреннего предсказания формирует сигнал предсказания (т.е. внутренний сигнал предсказания) посредством выполнения внутреннего предсказания (также называется "внутрикадровым предсказанием") текущего блока посредством обращения к блоку или блокам в текущей картинке, сохраненной в запоминающем устройстве 118 блоков. Более конкретно, модуль 124 внутреннего предсказания формирует внутреннее изображение предсказания посредством выполнения внутреннего предсказания посредством обращения к пиксельным значениям (например, значениям сигнала яркости и/или сигнала цветности) блока или блоков, соседних с текущим блоком, и затем выводит внутреннее изображение предсказания в контроллер 128 предсказания.

[0202] Например, модуль 124 внутреннего предсказания выполняет внутреннее предсказание посредством использования одного режима из множества режимов внутреннего предсказания, которые задаются. Режимы внутреннего предсказания типично включают в себя один или более режимов ненаправленного предсказания и множество режимов направленного предсказания. Заданные режимы могут быть предварительно заданы.

[0203] Один или более режимов ненаправленного предсказания включают в себя, например, режим планарного предсказания и режим DC-предсказания, заданные в стандарте H.265/высокоэффективной кодировки видео (HEVC).

[0204] Множество режимов направленного предсказания включают в себя, например, тридцать три режима направленного предсказания, заданные в H.265/HEVC-стандарте. Следует отметить, что множество режимов направленного предсказания дополнительно могут включать в себя тридцать два режима направленного предсказания в дополнение к тридцати трем режимам направленного предсказания (в сумме шестьдесят пять режимов направленного предсказания). Фиг. 31 является концептуальной схемой для иллюстрации шестьдесят семи режимов внутреннего предсказания в сумме, которые могут использоваться при внутреннем предсказании (два режима ненаправленного предсказания и шестьдесят пять режимов направленного предсказания). Сплошные стрелки представляют тридцать три направления, заданные в H.265/HEVC-стандарте, и пунктирные стрелки представляют дополнительные тридцать два направления (два режима ненаправленного предсказания не проиллюстрированы на фиг. 31).

[0205] В различных видах примеров обработки, на блок сигналов яркости можно ссылаться при внутреннем предсказании блока сигналов цветности. Другими словами, компонент сигнала цветности текущего блока может предсказываться на основе компонента сигнала яркости текущего блока. Такое внутреннее предсказание также называется "предсказанием на основе кросскомпонентной линейной модели (CCLM)". Режим внутреннего предсказания для блока сигналов цветности, в котором на такой блок сигналов яркости ссылаются (также называется, например, "CCLM-режимом"), может добавляться в качестве одного из режимов внутреннего предсказания для блоков сигналов цветности.

[0206] Модуль 124 внутреннего предсказания может корректировать внутренне предсказанные пиксельные значения на основе горизонтальных/вертикальных опорных пиксельных градиентов. Внутреннее предсказание, сопровождаемое посредством этого вида коррекции, также называется "позиционно-зависимой комбинацией с внутренним предсказанием (PDPC)". Информация, указывающая то, следует или нет применять PDPC (называется, например, "PDPC-флагом"), нормально сигнализируется на уровне CU. Следует отметить, что сигнализация этой информации не должна обязательно выполняться на уровне CU и может выполняться на другом уровне (например, на уровне последовательности, уровне картинки, уровне слайса, уровне тайла или уровне CTU).

[0207] Фиг. 32 является блок-схемой последовательности операций способа, иллюстрирующей один пример процесса, выполняемого посредством модуля 124 внутреннего предсказания. Модуль 124 внутреннего предсказания выбирает один режим внутреннего предсказания из множества режимов внутреннего предсказания (этап Sw_1). Модуль 124 внутреннего предсказания затем формирует изображение предсказания согласно выбранному режиму внутреннего предсказания (этап Sw_2). Затем, модуль 124 внутреннего предсказания определяет наиболее вероятные режимы (MPM) (этап Sw_3). MPM включают в себя, например, шесть режимов внутреннего предсказания. Например, два режима из шести режимов внутреннего предсказания могут представлять собой планарный режим и режим DC-предсказания, и другие четыре режима могут представлять собой режимы направленного предсказания. Модуль 124 внутреннего предсказания определяет то, включается или нет режим внутреннего предсказания, выбранный на этапе Sw_1, в MPM (этап Sw_4).

[0208] Здесь, при определении того, что режим внутреннего предсказания, выбранный на этапе Sw_1, включается в MPM ("Да" на этапе Sw_4), модуль 124 внутреннего предсказания задает MPM-флаг равным 1 (этап Sw_5) и формирует информацию, указывающую выбранный режим внутреннего предсказания, из MPM (этап Sw_6). Следует отметить, что MPM-флаг, заданный равным 1, и информация, указывающая режим внутреннего предсказания, могут кодироваться как параметры предсказания посредством энтропийного кодера 110.

[0209] При определении того, что выбранный режим внутреннего предсказания не включается в MPM ("Нет" на этапе Sw_4), модуль 124 внутреннего предсказания задает MPM-флаг равным 0 (этап Sw_7). Альтернативно, модуль 124 внутреннего предсказания вообще не задает MPM-флаг. Модуль 124 внутреннего предсказания затем формирует информацию, указывающую выбранный режим внутреннего предсказания, по меньшей мере, из одного режима внутреннего предсказания, который не включается в MPM (этап Sw_8). Следует отметить, что MPM-флаг, заданный равным 0, и информация, указывающая режим внутреннего предсказания, могут кодироваться как параметры предсказания посредством энтропийного кодера 110. Информация, указывающая режим внутреннего предсказания, указывает, например, любое из 0-60.

[0210] Модуль внутреннего предсказания

Модуль 126 внешнего предсказания формирует изображение предсказания (изображение внешнего предсказания) посредством выполнения внешнего предсказания (также называется "межкадровым предсказанием") текущего блока посредством обращения к блоку или блокам в опорной картинке, которая отличается от текущей картинки и сохраняется в запоминающем устройстве 122 кадров. Внешнее предсказание выполняется в единицах текущего блока или текущего субблока (например, блока 4×4) в текущем блоке. Субблок включается в блок и представляет собой единицу меньше блока. Размер субблока может иметь форму слайса, кирпича, картинки и т.д.

[0211] Например, модуль 126 внешнего предсказания выполняет оценку движения в опорной картинке для текущего блока или текущего субблока и находит опорный блок или опорный субблок, который имеет наилучшее совпадение с текущим блоком или текущим субблоком. Модуль 126 внешнего предсказания затем получает информацию движения (например, вектор движения), которая компенсирует движение или изменение с опорного блока или опорного субблока на текущий блок или субблок. Модуль 126 внешнего предсказания формирует изображение внешнего предсказания текущего блока или субблока посредством выполнения компенсации движения (или предсказания движения) на основе информации движения. Модуль 126 внешнего предсказания выводит сформированное изображение внешнего предсказания в контроллер 128 предсказания.

[0212] Информация движения, используемая при компенсации движения, может сигнализироваться в качестве сигналов внешнего предсказания в различных формах. Например, вектор движения может сигнализироваться. Другими словами, разность между вектором движения и предиктором вектора движения может сигнализироваться.

[0213] Список опорных картинок

Фиг. 33 является концептуальной схемой для иллюстрации примеров опорных картинок. Фиг. 34 является концептуальной схемой для иллюстрации примеров списков опорных картинок. Список опорных картинок представляет собой список, указывающий, по меньшей мере, одну опорную картинку, сохраненную в запоминающем устройстве 122 кадров. Следует отметить, что на фиг. 33, каждый из прямоугольников указывает картинку, каждая из стрелок указывает опорную взаимосвязь картинок, горизонтальная ось указывает время, I, P и B в прямоугольниках указывают картинку внутреннего предсказания, картинку уни-предсказания и картинку би-предсказания, соответственно, и номера в прямоугольниках указывают порядок декодирования. Как проиллюстрировано на фиг. 33, порядок декодирования картинок представляет собой порядок I0, P1, B2, B3 и B4, и порядок отображения картинок представляет собой порядок I0, B3, B2, B4 и P1. Как проиллюстрировано на фиг. 34, список опорных картинок представляет собой список, представляющий возможные варианты опорных картинок. Например, одна картинка (или слайс) может включать в себя, по меньшей мере, один список опорных картинок. Например, один список опорных картинок используется, когда текущая картинка представляет собой картинку уни-предсказания, и два списка опорных картинок используются, когда текущая картинка представляет собой картинку би-предсказания. В примерах по фиг. 33 и 34, картинка B3, которую представляет собой текущая картинка currPic, имеет два списка опорных картинок, которые представляют собой L0-список и L1-список. Когда текущая картинка currPic представляет собой картинку B3, возможные варианты опорных картинок для текущей картинки currPic представляют собой I0, P1 и B2, и списки опорных картинок (которые представляют собой L0-список и L1-список) указывают эти картинки. Модуль 126 внешнего предсказания или контроллер 128 предсказания указывает то, к какой картинке в каждом списке опорных картинок следует фактически обращаться, в форме индекса refidxLx опорной картинки. На фиг. 34, опорные картинки P1 и B2 указываются посредством индексов refIdxL0 и refIdxL1 опорных картинок.

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

[0215] Базовая последовательность операций внешнего предсказания

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

[0216] Во-первых, модуль 126 внешнего предсказания формирует сигнал предсказания (этапы Se_1-Se_3). Затем, вычитатель 104 формирует разность между текущим блоком и изображением предсказания в качестве остатка предсказания (этап Se_4).

[0217] Здесь, при формировании изображения предсказания, модуль 126 внешнего предсказания формирует изображение предсказания посредством определения вектора движения (MV) текущего блока (этапы Se_1 и Se_2) и компенсации движения (этап Se_3). Кроме того, при определении MV, модуль 126 внешнего предсказания определяет MV посредством выбора возможного варианта вектора движения (возможного MV-варианта) (этап Se_1) и извлечения MV (этап Se_2). Выбор возможного MV-варианта выполняется, например, посредством модуля 126 внутреннего предсказания, формирующего список возможных MV-вариантов и выбирающего, по меньшей мере, один возможный MV-вариант из списка возможных MV-вариантов. Следует отметить, что MV, извлекаемые ранее, могут добавляться в список возможных MV-вариантов. Альтернативно, при извлечении MV, модуль 126 внешнего предсказания дополнительно может выбирать, по меньшей мере, один возможный MV-вариант, по меньшей мере, из одного возможного MV-варианта и определять выбранный, по меньшей мере, один возможный MV-вариант в качестве MV для текущего блока. Альтернативно, модуль 126 внешнего предсказания может определять MV для текущего блока посредством выполнения оценки в области опорной картинки, указываемой посредством каждого из выбранного, по меньшей мере, одного возможного MV-варианта. Следует отметить, что оценка в области опорной картинки может называться "оценкой движения".

[0218] Дополнительно, хотя этапы Se_1-Se_3 выполняются посредством модуля 126 внешнего предсказания в вышеописанном примере, процесс, который, например, представляет собой этап Se_1, этап Se_2 и т.п., может выполняться посредством другого составляющего элемента, включенного в кодер 100.

[0219] Следует отметить, что список возможных MV-вариантов может формироваться для каждого процесса в режиме внешнего предсказания, или общий список возможных MV-вариантов может использоваться во множестве режимов внешнего предсказания. Процессы на этапах Se_3 и Se_4 соответствуют этапам Sa_3 и Sa_4, проиллюстрированным на фиг. 9, соответственно. Процесс на этапе Se_3 соответствует процессу на этапе Sd_1b на фиг. 30.

[0220] Последовательность операций извлечения векторов движения

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

[0221] Модуль 126 внешнего предсказания может извлекать MV текущего блока в режиме для кодирования информации движения (например, MV). В этом случае, например, информация движения может кодироваться как параметр предсказания и может сигнализироваться. Другими словами, кодированная информация движения включается в поток.

[0222] Альтернативно, модуль 126 внешнего предсказания может извлекать MV в режиме, в котором информация движения не кодируется. В этом случае, информация движения не включается в поток. Здесь, режимы MV-извлечения могут включать в себя нормальный внешний режим, режим объединения, FRUC-режим, аффинный режим и т.д., которые описываются ниже. Режимы, в которых информация движения кодируется, из числа режимов, включают в себя нормальный внешний режим, режим нормального объединения, аффинный режим (в частности, аффинный внешний режим и аффинный режим объединения) и т.д. Следует отметить, что информация движения может включать в себя не только MV, но также и информацию выбора предиктора вектора движения, которая описывается ниже. Режимы, в которых информация движения не кодируется, включают в себя FRUC-режим и т.д. Модуль 126 внешнего предсказания выбирает режим для извлечения MV текущего блока из множества режимов и извлекает MV текущего блока с использованием выбранного режима.

[0223] Фиг. 37 является блок-схемой последовательности операций способа, иллюстрирующей другой пример извлечения векторов движения. Модуль 126 внешнего предсказания может извлекать MV текущего блока в режиме, в котором MV-разность кодируется. В этом случае, например, MV-разность может кодироваться как параметр предсказания и может сигнализироваться. Другими словами, кодированная MV-разность включается в поток. MV-разность представляет собой разность между MV текущего блока и MV-предиктором. Следует отметить, что MV-предиктор представляет собой предиктор вектора движения.

[0224] Альтернативно, модуль 126 внешнего предсказания может извлекать MV в режиме, в котором MV-разность не кодируется. В этом случае, кодированная MV-разность не включается в поток. Здесь, как описано выше, режимы MV-извлечения включают в себя нормальный внешний режим, режим нормального объединения, FRUC-режим, аффинный режим и т.д., которые описываются ниже. Режимы, в которых MV-разность кодируется, из числа режимов включают в себя нормальный внешний режим, аффинный режим (в частности, аффинный внешний режим) и т.д. Режимы, в которых MV-разность не кодируется, включают в себя FRUC-режим, режим нормального объединения, аффинный режим (в частности, аффинный режим объединения) и т.д. Модуль 126 внешнего предсказания выбирает режим для извлечения MV текущего блока из множества режимов и извлекает MV текущего блока с использованием выбранного режима.

[0225] Режимы извлечения векторов движения

Фиг. 38A и 38B являются концептуальными схемами для иллюстрации примерной категоризации режимов для MV-извлечения. Например, как проиллюстрировано на фиг. 38A, режимы MV-извлечения примерно категоризируются на три режима согласно тому, следует или нет кодировать информацию движения, и тому, следует или нет кодировать MV-разности. Три режима представляют собой внешний режим, режим объединения и режим преобразования с повышением частоты кадров (FRUC). Внешний режим представляет собой режим, в котором оценка движения выполняется, и в котором информация движения и MV-разность кодируются. Например, как проиллюстрировано на фиг. 38B, внешний режим включает в себя аффинный внешний режим и нормальный внешний режим. Режим объединения представляет собой режим, в котором оценка движения не выполняется, и в котором MV выбирается из кодированного окружающего блока, и MV для текущего блока извлекается с использованием MV. Режим объединения представляет собой режим, в котором, по существу, информация движения кодируется, а MV-разность не кодируется. Например, как проиллюстрировано на фиг. 38B, режимы объединения включают в себя режим нормального объединения (также называемый "режимом нормального объединения" или "регулярным режимом объединения"), режим объединения с разностью векторов движения (MMVD), режим комбинированного внешнего объединения и внутреннего предсказания (CIIP), треугольный режим, ATMVP-режим и аффинный режим объединения. Здесь, MV-разность кодируется исключительно в MMVD-режиме из режимов, включенных в режимы объединения. Следует отметить, что аффинный режим объединения и аффинный внешний режим представляют собой режимы, включенные в аффинные режимы. Аффинный режим представляет собой режим для извлечения, в качестве MV текущего блока, MV каждого из множества субблоков, включенных в текущий блок, при условии аффинного преобразования. FRUC-режим представляет собой режим, который служит для извлечения MV текущего блока посредством выполнения оценки между кодированными областями, и в котором не кодируются ни информация движения, ни любая MV-разность. Следует отметить, что ниже подробнее описываются соответствующие режимы.

[0226] Следует отметить, что категоризация режимов, проиллюстрированных на фиг. 38A и 38B, представляет собой примеры, и категоризация не ограничена этим. Например, когда MV-разность кодируется в CIIP-режиме, CIIP-режим категоризируется на внешние режимы.

[0227] MV-извлечение > нормальный внешний режим

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

[0228] Фиг. 39 является блок-схемой последовательности операций способа, иллюстрирующей пример процесса внешнего предсказания в нормальном внешнем режиме. Во-первых, модуль 126 внешнего предсказания получает множество возможных MV-вариантов для текущего блока на основе такой информации, как MV множества кодированных блоков, временно или пространственно окружающих текущий блок (этап Sg_1). Другими словами, модуль 126 внешнего предсказания формирует список возможных MV-вариантов.

[0229] Затем, модуль 126 внешнего предсказания извлекает N (целое число в 2 или более) возможных MV-вариантов из множества возможных MV-вариантов, полученных на этапе Sg_1, в качестве возможных вариантов предикторов векторов движения (также называются "возможными вариантами MV-предикторов") согласно определенному порядку приоритетов (этап Sg_2). Следует отметить, что порядок приоритетов может определяться заранее для каждого из N возможных MV-вариантов.

[0230] Затем, модуль 126 внешнего предсказания выбирает один возможный вариант предиктора вектора движения из возможных вариантов предикторов векторов движения N, в качестве предиктора вектора движения (также называется "MV-предиктором") текущего блока (этап Sg_3). В это время, модуль 126 внешнего предсказания кодирует, в потоке, информацию выбора предиктора вектора движения для идентификации выбранного предиктора вектора движения. Другими словами, модуль 126 внешнего предсказания выводит информацию выбора MV-предикторов в качестве параметра предсказания в энтропийный кодер 110 через формирователь 130 параметров предсказания.

[0231] Затем, модуль 126 внешнего предсказания извлекает MV текущего блока посредством обращения к кодированной опорной картинке (этап Sg_4). В это время, модуль 126 внешнего предсказания дополнительно кодирует, в потоке, значение разности между извлеченным MV и предиктором вектора движения в качестве MV-разности. Другими словами, модуль 126 внешнего предсказания выводит MV-разность в качестве параметра предсказания в энтропийный кодер 110 через формирователь 130 параметров предсказания. Следует отметить, что кодированная опорная картинка представляет собой картинку, включающую в себя множество блоков, которые восстановлены после кодирования.

[0232] В завершение, модуль 126 внешнего предсказания формирует изображение предсказания для текущего блока посредством выполнения компенсации движения текущего блока с использованием извлеченного MV и кодированной опорной картинки (этап Sg_5). Процессы на этапах Sg_1-Sg_5 выполняются для каждого блока. Например, когда процессы на этапах Sg_1-Sg_5 выполняются для всех блоков в слайсе, внешнее предсказание слайса с использованием нормального внешнего режима заканчивается. Например, когда процессы на этапах Sg_1-Sg_5 выполняются для всех блоков в картинке, внешнее предсказание картинки с использованием нормального внешнего режима заканчивается. Следует отметить, что не все блоки включены в слайс, процессы могут подвергаться на этапах Sg_1-Sg_5, и внешнее предсказание слайса с использованием нормального внешнего режима может заканчиваться, когда часть блоков подвергается процессам. Это также применяется к процессам на этапах Sg_1-Sg_5. Внешнее предсказание картинки с использованием нормального внешнего режима может заканчиваться, когда процессы выполняются для части блоков в картинке.

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

[0234] Следует отметить, что список возможных MV-вариантов также может использоваться в качестве списка для использования в другом режиме. Дополнительно, процессы, связанные со списком возможных MV-вариантов, могут применяться к процессам, связанным со списком для использования в другом режиме. Процессы, связанные со списком возможных MV-вариантов, включают в себя, например, извлечение или выбор возможного MV-варианта из списка возможных MV-вариантов, переупорядочение возможных MV-вариантов или удаление возможного MV-варианта.

[0235] MV-извлечение > режим нормального объединения

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

[0236] Фиг. 40 является блок-схемой последовательности операций способа, иллюстрирующей пример внешнего предсказания в режиме нормального объединения. Во-первых, модуль 126 внешнего предсказания получает множество возможных MV-вариантов для текущего блока на основе такой информации, как MV множества кодированных блоков, временно или пространственно окружающих текущий блок (этап Sh_1). Другими словами, модуль 126 внешнего предсказания формирует список возможных MV-вариантов.

[0237] Затем, модуль 126 внешнего предсказания выбирает один возможный MV-вариант из множества возможных MV-вариантов, полученных на этапе Sh_1, за счет этого извлекая MV текущего блока (этап Sh_2). В это время, модуль 126 внешнего предсказания кодирует, в потоке, информацию MV-выбора для идентификации выбранного возможного MV-варианта. Другими словами, модуль 126 внешнего предсказания выводит информацию MV-выбора в качестве параметра предсказания в энтропийный кодер 110 через формирователь 130 параметров предсказания.

[0238] В завершение, модуль 126 внешнего предсказания формирует изображение предсказания для текущего блока посредством выполнения компенсации движения текущего блока с использованием извлеченного MV и кодированной опорной картинки (этап Sh_3). Процессы на этапах Sh_1-Sh_3 выполняются, например, для каждого блока. Например, когда процессы на этапах Sh_1-Sh_3 выполняются для всех блоков в слайсе, внешнее предсказание слайса с использованием режима нормального объединения заканчивается. Дополнительно, когда процессы на этапах Sh_1-Sh_3 выполняются для всех блоков в картинке, внешнее предсказание картинки с использованием режима нормального объединения заканчивается. Следует отметить, что не все блоки, включенные в слайс, могут подвергаться процессам на этапах Sh_1-Sh_3, и внешнее предсказание слайса с использованием режима нормального объединения может заканчиваться, когда часть блоков подвергается процессам. Это также применяется к процессам на этапах Sh_1-Sh_3. Внешнее предсказание картинки с использованием режима нормального объединения может заканчиваться, когда процессы выполняются для части блоков в картинке.

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

[0240] Фиг. 41 является концептуальной схемой для иллюстрации одного примера процесса извлечения векторов движения текущей картинки посредством режима нормального объединения. Во-первых, модуль 126 внешнего предсказания формирует список возможных MV-вариантов, в котором регистрируются возможные MV-варианты. Примеры возможных MV-вариантов включают в себя: пространственно соседние возможные MV-варианты, которые представляют собой MV множества кодированных блоков, расположенных пространственно окружающими текущий блок; временно соседние возможные MV-варианты, которые представляют собой MV окружающих блоков, на которые проецируется позиция текущего блока в кодированной опорной картинке; комбинированные возможные MV-варианты, которые представляют собой MV, сформированные посредством комбинирования MV-значения пространственно соседнего MV-предиктора и MV-значения временно соседнего MV-предиктора; и нулевой возможный MV-вариант, который представляет собой MV, имеющий нулевое значение.

[0241] Затем, модуль 126 внешнего предсказания выбирает один возможный MV-вариант из множества возможных MV-вариантов, зарегистрированных в списке возможных MV-вариантов, и определяет возможный MV-вариант в качестве MV текущего блока.

[0242] Кроме того, энтропийный кодер 110 записывает и кодирует, в потоке, merge_idx, который представляет собой сигнал, указывающий, какой возможный MV-вариант выбран. Следует отметить, что возможные MV-варианты, зарегистрированные в списке возможных MV-вариантов, описанном на фиг. 41, представляют собой примеры. Число возможных MV-вариантов может отличаться от числа возможных MV-вариантов на схеме, список возможных MV-вариантов может быть сконфигурирован таким образом, что некоторые виды возможных MV-вариантов на схеме могут не включаться, либо таким образом, что один или более возможных MV-вариантов, отличных от видов возможных MV-вариантов на схеме, включаются.

[0243] Конечный MV может определяться посредством выполнения динамического обновления векторов движения (DMVR), которое описывается ниже, с использованием MV текущего блока, извлекаемого посредством режима нормального объединения. Следует отметить, что в режиме нормального объединения, информация движения кодируется, а MV-разность не кодируется. В MMVD-режиме, один возможный MV-вариант выбирается из списка возможных MV-вариантов, как и в случае режима нормального объединения, MV-разность кодируется. Как проиллюстрировано на фиг. 38B, MMVD может категоризироваться на режимы объединения вместе с режимом нормального объединения. Следует отметить, что MV-разность в MMVD-режиме не всегда должна быть такой же как MV-разность для использования во внешнем режиме. Например, извлечение MV-разностей в MMVD-режиме может представлять собой процесс, который требует меньшего объема обработки, чем объем обработки, требуемый для извлечения MV-разностей во внешнем режиме.

[0244] Дополнительно, режим комбинированного внешнего объединения и внутреннего предсказания (CIIP) может выполняться. Режим служит для перекрытия изображения предсказания, сформированного при внешнем предсказании, и изображения предсказания, сформированного при внутреннем предсказании, чтобы формировать изображение предсказания для текущего блока. Следует отметить, что список возможных MV-вариантов может называться "списком возможных вариантов". Дополнительно, merge_idx представляет собой информацию MV-выбора.

[0245] MV-извлечение > HMVP-режим

Фиг. 42 является концептуальной схемой для иллюстрации одного примера процесса MV-извлечения для текущей картинки с использованием HMVP-режима объединения. В режиме нормального объединения, MV, например, для CU, которая представляет собой текущий блок, определяется посредством выбора одного возможного MV-варианта из MV-списка, сформированного посредством обращения к кодированному блоку (например, CU). Здесь, другой возможный MV-вариант может регистрироваться в списке возможных MV-вариантов. Режим, в котором регистрируется такой другой возможный MV-вариант, называется "HMVP-режимом".

[0246] В HMVP-режиме, возможные MV-варианты управляются с использованием сервера на основе принципа "первый на входе - первый на выходе" (FIFO) для HMVP, отдельно от списка возможных MV-вариантов для режима нормального объединения. В FIFO-буфере, информация движения, такая как MV блоков, обработанных ранее, сохраняются "самые новые первыми". При управлении FIFO-буфером, каждый раз, когда один блок обрабатывается, MV для самого нового блока (который представляет собой CU, обработанную непосредственно перед этим) сохраняется в FIFO-буфере, и MV самой старой CU (т.е. CU, обработанной раньше всего), удаляется из FIFO-буфера. В примере, проиллюстрированном на фиг. 42, HMVP1 представляет собой MV для самого нового блока, и HMVP5 представляет собой MV для самого старого MV.

[0247] Модуль 126 внешнего предсказания затем, например, проверяет то, представляет собой каждый MV, управляемый в FIFO-буфере, или нет MV, отличающийся от всех возможных MV-вариантов, которые уже зарегистрированы в списке возможных MV-вариантов, для режима нормального объединения, начинающегося с HMVP1. При определении того, что MV отличается от всех возможных MV-вариантов, модуль 126 внешнего предсказания может добавлять MV, управляемый в FIFO-буфере, в список возможных MV-вариантов для режима нормального объединения, в качестве возможного MV-варианта. В это время, один или более возможных MV-вариантов в FIFO-буфере могут регистрироваться (добавляться в список возможных MV-вариантов).

[0248] Посредством использования HMVP-режима таким образом, можно добавлять не только MV блока, который граничит с текущим блоком пространственно или временно, но также и MV для блока, обработанного ранее. Как результат, варьирование возможных MV-вариантов для режима нормального объединения расширяется, что увеличивает вероятность того, что эффективность кодировки может повышаться.

[0249] Следует отметить, что MV может представлять собой информацию движения. Другими словами, информация, сохраненная в списке возможных MV-вариантов и FIFO-буфере, может включать в себя не только MV-значения, но также и информацию опорных картинок, опорные направления, числа картинок и т.д. Дополнительно, блок, например, может представлять собой CU.

[0250] Следует отметить, что список возможных MV-вариантов и FIFO-буфер, проиллюстрированные на фиг. 42, представляют собой примеры. Список возможных MV-вариантов и FIFO-буфер могут отличаться по размеру от списка возможных MV-вариантов и FIFO-буфера на фиг. 42 или могут быть выполнены с возможностью регистрировать возможные MV-варианты в порядке, отличающемся от порядка на фиг. 42. Дополнительно, процесс, описанный здесь, может быть общим между кодером 100 и декодером 200.

[0251] Следует отметить, что HMVP-режим может применяться для режимов, отличных от режима нормального объединения. Например, также возможно , что информация движения, такая как MV блоков, обработанных в аффинном режиме ранее, может сохраняться "самые новые сначала" и может использоваться в качестве возможных MV-вариантов, которые могут способствовать лучшей эффективности. Режим, полученный посредством применения HMVP-режима к аффинному режиму, может называться "аффинным режимом на основе предыстории".

[0252] MV-извлечение > FRUC-режим

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

[0253] Один пример FRUC-процесса в форме блок-схемы последовательности операций способа проиллюстрирован на фиг. 43. Во-первых, список, который указывает, в качестве возможных MV-вариантов, MV для кодированных блоков, каждый из которых граничит с текущим блоком пространственно или временно посредством обращения к MV (список может представлять собой список возможных MV-вариантов и также использоваться в качестве списка возможных MV-вариантов для режима нормального объединения) (этап Si_1).

[0254] Затем, наилучший возможный MV-вариант выбирается из множества возможных MV-вариантов, зарегистрированных в списке возможных MV-вариантов (этап Si_2). Например, значения оценки соответствующих возможных MV-вариантов, включенных в список возможных MV-вариантов, вычисляются, и один возможный MV-вариант выбирается на основе значений оценки. На основе выбранных возможных вариантов векторов движения, вектор движения для текущего блока затем извлекается (этап Si_4). Более конкретно, например, выбранный возможный вариант вектора движения (наилучший возможный MV-вариант) извлекается непосредственно в качестве вектора движения для текущего блока. Дополнительно, например, вектор движения для текущего блока может извлекаться с использованием сопоставления с шаблоном в окружающей области позиции в опорной картинке, при этом позиция в опорной картинке соответствует выбранному возможному варианту вектора движения. Другими словами, оценка с использованием сопоставления с шаблоном и значений оценки может выполняться в окружающей области наилучшего возможного MV-варианта, и когда имеется MV, который дает в результате лучшее значение оценки, наилучший возможный MV-вариант может обновляться на MV, который дает в результате лучшее значение оценки, и обновленный MV может определяться в качестве конечного MV для текущего блока. В некоторых вариантах осуществления, обновление вектора движения, который дает в результате лучшее значение оценки, может не выполняться.

[0255] В завершение, модуль 126 внешнего предсказания формирует изображение предсказания для текущего блока посредством выполнения компенсации движения текущего блока с использованием извлеченного MV и кодированной опорной картинки (этап Si_5). Процессы на этапах Si_1-Si_5 выполняются, например, для каждого блока. Например, когда процессы на этапах Si_1-Si_5 выполняются для всех блоков в слайсе, внешнее предсказание слайса с использованием FRUC-режима заканчивается. Например, когда процессы на этапах Si_1-Si_5 выполняются для всех блоков в картинке, внешнее предсказание картинки с использованием FRUC-режима заканчивается. Следует отметить, что не все блоки, включенные в слайс, могут подвергаться процессам на этапах Si_1-Si_5, и внешнее предсказание слайса с использованием FRUC-режима может заканчиваться, когда часть блоков подвергается процессам. Когда процессы на этапах Si_1-Si_5 выполняются для части блоков, включенных в картинку аналогичным образом, внешнее предсказание картинки с использованием FRUC-режима может заканчиваться.

[0256] Аналогичный процесс может выполняться в единицах субблоков. Значения оценки могут вычисляться согласно различным видам способов. Например, сравнение проводится между восстановленным изображением в области в опорной картинке, соответствующей вектору движения, и восстановленным изображением в определенной области (область, например, может представлять собой область в другой опорной картинке или область в соседнем блоке текущей картинки, как указано ниже). Определенная область может быть предварительно определена.

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

[0258] Далее подробно описывается пример сопоставления с шаблоном. Во-первых, один возможный MV-вариант, включенный в список возможных MV-вариантов (например, список объединения), выбирается в качестве начальной точки оценки посредством сопоставления с шаблоном. Например, в качестве сопоставления с шаблоном, может использоваться первое сопоставление с шаблоном или второе сопоставление с шаблоном. Первое сопоставление с шаблоном и второе сопоставление с шаблоном могут называться "билатеральным сопоставлением" и "сопоставлением с эталоном", соответственно.

[0259] MV-извлечение > FRUC > билатеральное сопоставление

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

[0260] Фиг. 44 является концептуальной схемой для иллюстрации одного примера первого сопоставления с шаблоном (билатерального сопоставления) между двумя блоками в двух опорных картинках вдоль траектории движения. Как проиллюстрировано на фиг. 44, при первом сопоставлении с шаблоном, два вектора (MV0, MV1) движения извлекаются посредством оценки пары, которая имеет наилучшее совпадение, из числа пар в двух блоках, включенных в две разных опорных картинки (Ref0, Ref1) и расположенных вдоль траектории движения текущего блока (Cur block). Более конкретно, разность между восстановленным изображением в указанном местоположении в первой кодированной опорной картинке (Ref0), указываемом посредством возможного MV-варианта, и восстановленным изображением в указанном местоположении во второй кодированной опорной картинке (Ref1), указываемом посредством симметричного MV, полученная посредством масштабирования возможного MV-варианта во временном интервале отображения, извлекается для текущего блока, и значение оценки вычисляется с использованием значения полученной разности. Можно выбирать, в качестве конечного MV, возможный MV-вариант, который дает в результате наилучшее значение оценки из множества возможных MV-вариантов и который с большой вероятностью должен приводить к хорошим результатам.

[0261] При допущении относительно траектории непрерывного движения, векторы (MV0, MV1) движения, указывающие два опорных блока, являются пропорциональными временным расстояниям (TD0, TD1) между текущей картинкой (Cur Pic) и двумя опорными картинками (Ref0, Ref1). Например, когда текущая картинка временно находится между двумя опорными картинками, и временные расстояния от текущей картинки до соответствующих двух опорных картинок равны друг другу, зеркально-симметричные двунаправленные векторы движения извлекаются при первом сопоставлении с шаблоном.

[0262] MV-извлечение > FRUC > сопоставление с эталоном

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

[0263] Фиг. 45 является концептуальной схемой для иллюстрации одного примера сопоставления с шаблоном (сопоставления с эталоном) между эталоном в текущей картинке и блоком в опорной картинке. Как проиллюстрировано на фиг. 45, при втором сопоставлении с шаблоном, вектор движения текущего блока (Cur block) извлекается посредством оценки, в опорной картинке (Ref0), блока, который имеет наилучшее совпадение с блоком, соседним с текущим блоком в текущей картинке (Cur Pic). Более конкретно, разность между восстановленным изображением в кодированной области, которая граничит как слева, так и выше либо или слева, или выше, и восстановленным изображением, которое находится в соответствующей области в кодированной опорной картинке (Ref0) и указывается посредством возможного MV-варианта, извлекается, и значение оценки вычисляется с использованием значения полученной разности. Возможный MV-вариант, который дает в результате наилучшее значение оценки из множества возможных MV-вариантов, может выбираться в качестве наилучшего возможного MV-варианта.

[0264] Эта информация, указывающая то, следует или нет применять FRUC-режим (называется, например, "FRUC-флагом"), может сигнализироваться на уровне CU. Дополнительно, когда FRUC-режим применяется (например, когда FRUC-флаг является истинным), информация, указывающая применимый способ сопоставления с шаблоном (например, первое сопоставление с шаблоном или второе сопоставление с шаблоном), может сигнализироваться на уровне CU. Следует отметить, что сигнализация этой информации не должна обязательно выполняться на уровне CU и может выполняться на другом уровне (например, на уровне последовательности, уровне картинки, уровне слайса, уровне тайла, уровне CTU или уровне субблока).

[0265] MV-извлечение > аффинный режим

Аффинный режим представляет собой режим для формирования MV с использованием аффинного преобразования. Например, MV может извлекаться в единицах субблоков на основе векторов движения множества соседних блоков. Этот режим также называется "аффинным режимом предсказания с компенсацией движения".

[0266] Фиг. 46A является концептуальной схемой для иллюстрации одного примера MV-извлечения в единицах субблоков на основе векторов движения множества соседних блоков. На фиг. 46A текущий блок включает в себя, например, шестнадцать субблоков 4×4. Здесь, вектор V0 движения в верхней левой угловой управляющей точке в текущем блоке извлекается на основе вектора движения соседнего блока, и аналогично, вектор V1 движения в верхней правой угловой управляющей точке в текущем блоке извлекается на основе вектора движения соседнего субблока. Два вектора v0 и v1 движения могут проецироваться согласно выражению (1A), указываемому ниже, и векторы (vx, vy) движения для соответствующих субблоков в текущем блоке могут извлекаться.

[0267] Математическое выражение 1

[0268] Здесь, x и y указывают горизонтальную позицию и вертикальную позицию субблока, соответственно, и w указывает определенный весовой коэффициент. Определенный весовой коэффициент может быть предварительно определен.

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

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

[0271] MV-извлечение > аффинный режим

Фиг. 46B является концептуальной схемой для иллюстрации одного примера MV-извлечения в единицах субблоков в аффинном режиме, в котором используются три управляющих точки. На фиг. 46B, текущий блок включает в себя, например, шестнадцать блоков 4×4. Здесь, вектор v0 движения в верхней левой угловой управляющей точке в текущем блоке извлекается на основе вектора движения соседнего блока. Здесь, вектор V1 движения в верхней правой угловой управляющей точке в текущем блоке извлекается на основе вектора движения соседнего блока, и аналогично, вектор V2 движения в нижней левой угловой управляющей точке для текущего блока извлекается на основе вектора движения соседнего блока. Три вектора v0, v1 и v2 движения могут проецироваться согласно выражению (1B), указываемому ниже, и векторы (vx, vy) движения для соответствующих субблоков в текущем блоке могут извлекаться.

[0272] Математическое выражение 2

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

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

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

[0275] Следует отметить, что, в аффинных режимах, размер каждого субблока, включенного в текущий блок, может не быть ограничен 4×4 пикселов и может представлять собой другой размер. Например, размер каждого субблока может составлять 8×8 пикселов.

[0276] MV-извлечение > аффинный режим > управляющая точка

Фиг. 47A, фиг. 47B и фиг. 47C является концептуальными схемами для иллюстрации примеров MV-извлечения в управляющих точках в аффинном режиме.

[0277] Как проиллюстрировано на фиг. 47A, в аффинном режиме, например, предикторы векторов движения в соответствующих управляющих точках текущего блока вычисляются на основе множества векторов движения, соответствующих блокам, кодированным согласно аффинному режиму, из кодированного блока A (левого), блока B (верхнего), блока C (верхнего правого), блока D (нижнего левого) и блока E (верхнего левого), которые являются соседними с текущим блоком. Более конкретно, кодированный блок A (левый), блок B (верхний), блок C (верхний правый), блок D (нижний левый) и блок E (верхний левый) проверяются в перечисленном порядке, и первый эффективный блок, кодированный согласно аффинному режиму, идентифицируется. Предикторы векторов движения в управляющих точках текущего блока вычисляются на основе множества векторов движения, соответствующих идентифицированному блоку.

[0278] Например, как проиллюстрировано на фиг. 47B, когда блок A, который является соседним слева от текущего блока, кодирован согласно аффинному режиму, в котором используются две управляющих точки, векторы v3 и v4 движения, проецируемые в верхней левой угловой позиции и верхней правой угловой позиции кодированного блока, включающего в себя блок A, извлекаются. Вектор v0 движения в верхней левой угловой управляющей точке текущего блока и вектор v1 движения в верхней правой угловой управляющей точке текущего блока затем вычисляются из извлеченных векторов v3 и v4 движения.

[0279] Например, как проиллюстрировано на фиг. 47C, когда блок A, который является соседним слева от текущего блока, кодирован согласно аффинному режиму, в котором используются три управляющих точки, векторы v3, v4 и v5 движения, проецируемые в верхней левой угловой позиции, верхней правой угловой позиции и нижней левой угловой позиции кодированного блока, включающего в себя блок A, извлекаются. Вектор v0 движения в верхней левой угловой управляющей точке текущего блока, вектор v1 движения в верхней правой угловой управляющей точке текущего блока и вектор v2 движения в нижней левой угловой управляющей точке текущего блока затем вычисляются из извлеченных векторов v3, v4 и v5 движения.

[0280] Способы MV-извлечения, проиллюстрированные на фиг. 47A-47C, могут использоваться при MV-извлечении в каждой управляющей точке для текущего блока на этапе Sk_1, проиллюстрированном на фиг. 50, или могут использоваться для извлечения MV-предиктора в каждой управляющей точке для текущего блока на этапе Sj_1, проиллюстрированном на фиг. 51, описанном ниже.

[0281] Фиг. 48A и 48B являются концептуальными схемами для иллюстрации примеров MV-извлечения в управляющих точках в аффинном режиме. Фиг. 48A является концептуальной схемой для иллюстрации примерного аффинного режима, в котором используются две управляющих точки.

[0282] В аффинном режиме, как проиллюстрировано на фиг. 48A, MV, выбранный из MV в кодированном блоке A, блок B и блок C, которые граничат с текущим блоком, используются в качестве вектора v0 движения в верхней левой угловой управляющей точке для текущего блока. Аналогично, MV, выбранный из MV кодированного блока D и блока E, которые граничат с текущим блоком, используется в качестве вектора v1 движения в верхней правой угловой управляющей точке для текущего блока.

[0283] Фиг. 48B является концептуальной схемой для иллюстрации примерного аффинного режима, в котором используются три управляющих точки. В аффинном режиме, как проиллюстрировано на фиг. 48B, MV, выбранный из MV в кодированном блоке A, блок B и блок C, которые граничат с текущим блоком, используются в качестве вектора v0 движения в верхней левой угловой управляющей точке для текущего блока. Аналогично, MV, выбранный из MV кодированного блока D и блока E, которые граничат с текущим блоком, используется в качестве вектора v1 движения в верхней правой угловой управляющей точке для текущего блока. Кроме того, MV, выбранный из MV кодированного блока F и блока G, которые граничат с текущим блоком, используется в качестве вектора v2 движения в нижней левой угловой управляющей точке для текущего блока.

[0284] Следует отметить, что способы MV-извлечения, проиллюстрированные на фиг. 48A и 48B, могут использоваться при MV-извлечении в каждой управляющей точке для текущего блока на этапе Sk_1, проиллюстрированном на фиг. 50, описанном ниже, или может использоваться для извлечения MV-предиктора в каждой управляющей точке для текущего блока на этапе Sj_1, проиллюстрированном на фиг. 51, описанном ниже.

[0285] Здесь, когда аффинные режимы, в которых используются различные числа управляющих точек (например, две и три управляющих точки), могут переключаться и сигнализироваться на уровне CU, число управляющих точек для кодированного блока и число управляющих точек для текущего блока могут отличаться друг от друга.

[0286] Фиг. 49A и 49B являются концептуальными схемами для иллюстрации примеров способа для MV-извлечения в управляющих точках, когда число управляющих точек для кодированного блока и число управляющих точек для текущего блока отличаются друг от друга.

[0287] Например, как проиллюстрировано на фиг. 49A, текущий блок имеет три управляющих точки в верхнем левом углу, верхнем правом углу и левом нижнем углу, и блок A, который граничит слева относительно текущего блока, кодирован согласно аффинному режиму, в котором используются две управляющих точки. В этом случае, векторы v3 и v4 движения, проецируемые в верхней левой угловой позиции и верхней правой угловой позиции в кодированном блоке, включающем в себя блок A, извлекаются. Вектор v0 движения в верхней левой угловой управляющей точке и вектор v1 движения в верхней правой угловой управляющей точке для текущего блока затем вычисляются из извлеченных векторов v3 и v4 движения. Кроме того, вектор v2 движения в нижней левой угловой управляющей точке вычисляется из извлеченных векторов v0 и v1 движения.

[0288] Например, как проиллюстрировано на фиг. 49B, текущий блок имеет две управляющих точки в верхнем левом углу и в верхнем правом углу, и блок A, который граничит слева относительно текущего блока, кодирован согласно аффинному режиму, в котором используются три управляющих точки. В этом случае, векторы v3, v4 и v5 движения, проецируемые в верхней левой угловой позиции в кодированном блоке, включающем в себя блок A, в верхней правой угловой позиции в кодированном блоке и в нижней левой угловой позиции в кодированном блоке, извлекаются. Вектор v0 движения в верхней левой угловой управляющей точке для текущего блока и вектор v1 движения в верхней правой угловой управляющей точке для текущего блока затем вычисляются из извлеченных векторов v3, v4 и v5 движения.

[0289] Следует отметить, что способы MV-извлечения, проиллюстрированные на фиг. 49A и 49B, могут использоваться при MV-извлечении в каждой управляющей точке для текущего блока на этапе Sk_1, проиллюстрированном на фиг. 50, описанном ниже, или может использоваться для извлечения MV-предиктора в каждой управляющей точке для текущего блока на этапе Sj_1, проиллюстрированном на фиг. 51, описанном ниже.

[0290] MV-извлечение > аффинный режим > аффинный режим объединения

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

[0291] В аффинном режиме объединения, как проиллюстрировано, сначала, модуль 126 внешнего предсказания извлекает MV в соответствующих управляющих точках для текущего блока (этап Sk_1). Управляющие точки представляют собой верхнюю левую угловую точку текущего блока и верхнюю правую угловую точку текущего блока, как проиллюстрировано на фиг. 46A, либо верхнюю левую угловую точку текущего блока, верхнюю правую угловую точку текущего блока и нижнюю левую угловую точку текущего блока, как проиллюстрировано на фиг. 46B. Модуль 126 внешнего предсказания может кодировать информацию MV-выбора для идентификации двух или трех извлеченных MV в потоке.

[0292] Например, когда способы MV-извлечения, проиллюстрированные на фиг. 47A-47C, используются, как проиллюстрировано на фиг. 47A, модуль 126 внешнего предсказания проверяет кодированный блок A (левый), блок B (верхний), блок C (верхний правый), блок D (нижний левый) и блок E (верхний левый) в перечисленном порядке и идентифицирует первый эффективный блок, кодированный согласно аффинному режиму.

[0293] Модуль 126 внешнего предсказания извлекает MV в управляющей точке с использованием идентифицированного первого эффективного блока, кодированного согласно идентифицированному аффинному режиму. Например, когда блок A идентифицируется, и блок A имеет две управляющих точки, как проиллюстрировано на фиг. 47B, модуль 126 внешнего предсказания вычисляет вектор v0 движения в верхней левой угловой управляющей точке текущего блока и вектор v1 движения в верхней правой угловой управляющей точке текущего блока из векторов v3 и v4 движения в верхнем левом углу кодированного блока, включающего в себя блок A, и в верхнем правом углу кодированного блока. Например, модуль 126 внешнего предсказания вычисляет вектор v0 движения в верхней левой угловой управляющей точке текущего блока и вектор v1 движения в верхней правой угловой управляющей точке текущего блока посредством проецирования векторов v3 и v4 движения в верхнем левом углу и в верхнем правом углу кодированного блока на текущий блок.

[0294] Альтернативно, когда блок A идентифицируется, и блок A имеет три управляющих точки, как проиллюстрировано на фиг. 47C, модуль 126 внешнего предсказания вычисляет вектор v0 движения в верхней левой угловой управляющей точке текущего блока, вектор v1 движения в верхней правой угловой управляющей точке текущего блока и вектор v2 движения в нижней левой угловой управляющей точке текущего блока из векторов v3, v4 и v5 движения в верхнем левом углу кодированного блока, включающего в себя блок A, в верхнем правому углу кодированного блока и в левом нижнем углу кодированного блока. Например, модуль 126 внешнего предсказания вычисляет вектор v0 движения в верхней левой угловой управляющей точке текущего блока, вектор v1 движения в верхней правой угловой управляющей точке текущего блока и вектор v2 движения в нижней левой угловой управляющей точке текущего блока посредством проецирования векторов v3, v4 и v5 движения в верхнем левом углу, верхнем правом углу и левом нижнем угле кодированного блока на текущий блок.

[0295] Следует отметить, что, как проиллюстрировано на фиг. 49A, описанном выше, MV в трех управляющих точках могут вычисляться, когда блок A идентифицируется, и блок A имеет две управляющих точки, и что, как проиллюстрировано на фиг. 49B, описанном выше, MV в двух управляющих точках могут вычисляться, когда блок A идентифицируется, и блок A имеет три управляющих точки.

[0296] Затем, модуль 126 внешнего предсказания выполняет компенсацию движения каждого из множества субблоков, включенных в текущий блок. Другими словами, модуль 126 внешнего предсказания вычисляет MV для каждого из множества субблоков в качестве аффинного MV, например, с использованием двух векторов v0 и v1 движения и вышеуказанного выражения (1A) или трех векторов v0, v1 и v2 движения и вышеуказанного выражения (1B) (этап Sk_2). Модуль 126 внешнего предсказания затем выполняет компенсацию движения субблоков с использованием этих аффинных MV и кодированных опорных картинок (этап Sk_3). Когда процессы на этапах Sk_2 и Sk_3 выполняются для каждого из всех субблоков, включенных в текущий блок, процесс для формирования изображения предсказания с использованием аффинного режима объединения для текущего блока заканчивается. Другими словами, компенсация движения текущего блока выполняется для того, чтобы формировать изображение предсказания текущего блока.

[0297] Следует отметить, что вышеописанный список возможных MV-вариантов может формироваться на этапе Sk_1. Список возможных MV-вариантов, например, может представлять собой список, включающий в себя возможные MV-варианты, извлекаемые с использованием множества способов MV-извлечения для каждой управляющей точки. Множество способов MV-извлечения, например, могут представлять собой любую комбинацию способов MV-извлечения, проиллюстрированных на фиг. 47A-47C, способов MV-извлечения, проиллюстрированных на фиг. 48A и 48B, способов MV-извлечения, проиллюстрированных на фиг. 49A и 49B, и других способов MV-извлечения.

[0298] Следует отметить, что списки возможных MV-вариантов могут включать в себя возможные MV-варианты в режиме, в котором предсказание выполняется в единицах субблоков, отличном от аффинного режима. Следует отметить, что, например, список возможных MV-вариантов, включающий в себя возможные MV-варианты в аффинном режиме объединения, в котором используются две управляющих точки, и в аффинном режиме объединения, в котором используются три управляющих точки, может формироваться в качестве списка возможных MV-вариантов. Альтернативно, список возможных MV-вариантов, включающий в себя возможные MV-варианты в аффинном режиме объединения, в котором используются две управляющих точки, и список возможных MV-вариантов, включающий в себя возможные MV-варианты в аффинном режиме объединения, в котором используются три управляющих точки, могут формироваться отдельно. Альтернативно, список возможных MV-вариантов, включающий в себя возможные MV-варианты в одном из аффинного режима объединения, в котором используются две управляющих точки, и аффинного режима объединения, в котором используются три управляющих точки, может формироваться. Возможный MV-вариант(ы), например, может представлять собой MV для кодированного блока A (левого), блока B (верхнего), блока C (верхнего правого), блока D (нижнего левого) и блока E (верхнего левого) или MV для эффективного блока из блоков. Следует отметить, что индекс, указывающий один из MV в списке возможных MV-вариантов, может передаваться как информация MV-выбора.

[0299] MV-извлечение > аффинный режим > аффинный внешний режим

Фиг. 51 является блок-схемой последовательности операций способа, иллюстрирующей один пример процесса в аффинном внешнем режиме. В аффинном внешнем режиме, сначала, модуль 126 внешнего предсказания извлекает MV-предикторы (v0, v1) или (v0, v1, v2) соответствующих двух или трех управляющих точек текущего блока (этап Sj_1). Управляющие точки, например, могут представлять собой верхнюю левую угловую точку для текущего блока, верхнюю правую угловую точку текущего блока и верхнюю правую угловую точку для текущего блока, как проиллюстрировано на фиг. 46A или фиг. 46B.

[0300] Например, когда способы MV-извлечения, проиллюстрированные на фиг. 48A и 48B, используются, модуль 126 внешнего предсказания извлекает MV-предикторы (v0, v1) или (v0, v1, v2) в соответствующих двух или трех управляющих точках для текущего блока посредством выбора MV любого из блоков из кодированных блоков около соответствующих управляющих точек для текущего блока, проиллюстрированного на фиг. 48A или фиг. 48B. В это время модуль 126 внешнего предсказания кодирует в потоке информацию выбора MV-предикторов для идентификации выбранных двух или трех MV-предикторов.

[0301] Например, модуль 126 внешнего предсказания может определять, с использованием оценки затрат и т.п., блок, из которого выбирается MV в качестве MV-предиктора в управляющей точке, из числа кодированных блоков, граничащих с текущим блоком, и может записывать, в потоке битов, флаг, указывающий, какой MV-предиктор выбран. Другими словами, модуль 126 внешнего предсказания выводит, в качестве параметра предсказания, информацию выбора MV-предикторов, такую как флаг, в энтропийный кодер 110 через формирователь 130 параметров предсказания.

[0302] Затем, модуль 126 внешнего предсказания выполняет оценку движения (этап Sj_3 и Sj_4) при обновлении MV-предиктора вектора, выбранного или извлеченного на этапе Sj_1 (этап Sj_2). Другими словами, модуль 126 внешнего предсказания вычисляет, в качестве аффинного MV, MV каждого из субблоков, который соответствует обновленному MV-предиктору, с использованием выражения (1A) либо выражения (1B), описанных выше (этап Sj_3). Модуль 126 внешнего предсказания затем выполняет компенсацию движения субблоков с использованием этих аффинных MV и кодированных опорных картинок (этап Sj_4). Процессы на этапе Sj_3 и Sj_4 выполняются для всех блоков в текущем блоке, когда MV-предиктор обновляется на этапе Sj_2. Как результат, например, модуль 126 внешнего предсказания определяет MV-предиктор, который дает в результате наименьшие затраты, в качестве MV в управляющей точке в контуре оценки движения (этап Sj_5). В это время, модуль 126 внешнего предсказания дополнительно кодирует, в потоке, значение разности между определенным MV и MV-предиктором в качестве MV-разности. Другими словами, модуль 126 внешнего предсказания выводит MV-разность в качестве параметра предсказания в энтропийный кодер 110 через формирователь 130 параметров предсказания.

[0303] В завершение, модуль 126 внешнего предсказания формирует изображение предсказания для текущего блока посредством выполнения компенсации движения текущего блока с использованием определенного MV и кодированной опорной картинки (этап Sj_6).

[0304] Следует отметить, что вышеописанный список возможных MV-вариантов может формироваться на этапе Sj_1. Список возможных MV-вариантов, например, может представлять собой список, включающий в себя возможные MV-варианты, извлекаемые с использованием множества способов MV-извлечения для каждой управляющей точки. Множество способов MV-извлечения, например, могут представлять собой любую комбинацию способов MV-извлечения, проиллюстрированных на фиг. 47A-47C, способов MV-извлечения, проиллюстрированных на фиг. 48A и 48B, способов MV-извлечения, проиллюстрированных на фиг. 49A и 49B, и других способов MV-извлечения.

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

Следует отметить, что, например, список возможных MV-вариантов, включающий в себя возможные MV-варианты в аффинном внешнем режиме, в котором используются две управляющих точки, и в аффинном внешнем режиме, в котором используются три управляющих точки, может формироваться в качестве списка возможных MV-вариантов. Альтернативно, список возможных MV-вариантов, включающий в себя возможные MV-варианты в аффинном внешнем режиме, в котором используются две управляющих точки, и список возможных MV-вариантов, включающий в себя возможные MV-варианты в аффинном внешнем режиме, в котором используются три управляющих точки, могут формироваться отдельно. Альтернативно, список возможных MV-вариантов, включающий в себя возможные MV-варианты в одном из аффинного внешнего режима, в котором используются две управляющих точки, и аффинного внешнего режима, в котором используются три управляющих точки, может формироваться. Возможный MV-вариант(ы), например, может представлять собой MV для кодированного блока A (левого), блока B (верхнего), блока C (верхнего правого), блока D (нижнего левого) и блока E (верхнего левого) или MV для эффективного блока из блоков.

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

[0306] MV-извлечение > треугольный режим

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

[0307] Фиг. 52A является концептуальной схемой для иллюстрации формирования двух треугольных изображений предсказания.

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

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

[0309] Фиг. 52B является концептуальной схемой для иллюстрации примеров первой части первого сегмента, которая перекрывается со вторым сегментом, и первого и второго наборов выборок, которые могут взвешиваться в качестве части процесса коррекции. Первая часть, например, может составлять одну четверть от ширины или высоты первого сегмента. В другом примере первая часть может иметь ширину, соответствующую N выборок, смежных с краем первого сегмента, где N является целым числом, большим нуля, например, N может быть целым числом 2. Как проиллюстрировано, левый пример по фиг. 52B показывает прямоугольный сегмент, имеющий прямоугольную часть с шириной, которая составляет одну четверть от ширины первого сегмента, с первым набором выборок, включающим в себя выборки за пределами первой части и выборки внутри первой части, и вторым набором выборок, включающим в себя выборки внутри первой части. Центральный пример по фиг. 52B показывает прямоугольный сегмент, имеющий прямоугольную часть с высотой, которая составляет одну четверть от высоты первого сегмента, с первым набором выборок, включающим в себя выборки за пределами первой части и выборки внутри первой части, и вторым набором выборок, включающим в себя выборки внутри первой части. Правый пример по фиг. 52B показывает треугольный сегмент, имеющий многоугольную часть с высотой, которая соответствует двум выборкам, с первым набором выборок, включающим в себя выборки за пределами первой части и выборки внутри первой части, и вторым набором выборок, включающим в себя выборки внутри первой части.

[0310] Первая часть может составлять часть первого сегмента, которая перекрывается со смежным сегментом. Фиг. 52C является концептуальной схемой для иллюстрации первой части первого сегмента, которая составляет часть первого сегмента, которая перекрывается с частью смежного сегмента. Для простоты иллюстрации, показывается прямоугольный сегмент, имеющий перекрывающуюся часть с пространственно смежным прямоугольным сегментом. Сегменты, имеющие другие формы, к примеру, треугольные сегменты, могут использоваться, и перекрывающиеся части могут перекрываться с пространственно смежным или смежным во времени сегментом.

[0311] Дополнительно, хотя приводится пример, в котором изображение предсказания формируется для каждого из двух сегментов с использованием внешнего предсказания, изображение предсказания может формироваться, по меньшей мере, для одного сегмента с использованием внутреннего предсказания.

[0312] Фиг. 53 является блок-схемой последовательности операций способа, иллюстрирующей один пример процесса в треугольном режиме.

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

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

[0314] Модуль 126 внешнего предсказания затем выбирает возможный MV-вариант для первого сегмента и возможный MV-вариант для второго сегмента в качестве первого MV и второго MV, соответственно, из множества возможных MV-вариантов, полученных на этапе Sx_1 (этап Sx_3). В это время, модуль 126 внешнего предсказания кодирует, в потоке, информацию MV-выбора для идентификации выбранного возможного MV-варианта. Другими словами, модуль 126 внешнего предсказания выводит информацию MV-выбора в качестве параметра предсказания в энтропийный кодер 110 через формирователь 130 параметров предсказания.

[0315] Затем, модуль 126 внешнего предсказания формирует первое изображение предсказания посредством выполнения компенсации движения с использованием выбранного первого MV и кодированной опорной картинки (этап Sx_4). Аналогично, модуль 126 внешнего предсказания формирует второе изображение предсказания посредством выполнения компенсации движения с использованием выбранного второго MV и кодированной опорной картинки (этап Sx_5).

[0316] В завершение, модуль 126 внешнего предсказания формирует изображение предсказания для текущего блока посредством выполнения суммирования со взвешиванием первого изображения предсказания и второго изображения предсказания (этап Sx_6).

[0317] Следует отметить, что хотя первый сегмент и второй сегмент представляют собой треугольники в примере, проиллюстрированном на фиг. 52A, первый сегмент и второй сегмент могут представлять собой трапеции либо другие формы, отличающиеся друг от друга. Кроме того, хотя текущий блок включает в себя два сегмента в примерах, проиллюстрированных на фиг. 52A и 52C, текущий блок может включать в себя три или более сегментов.

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

[0319] Дополнительно, хотя проиллюстрирован пример, в котором изображение предсказания формируется для каждого из двух сегментов с использованием внешнего предсказания, изображение предсказания может формироваться, по меньшей мере, для одного сегмента с использованием внутреннего предсказания.

[0320] Следует отметить, что список возможных MV-вариантов для выбора первого MV и список возможных MV-вариантов для выбора второго MV могут отличаться друг от друга, либо список возможных MV-вариантов для выбора первого MV также может использоваться в качестве списка возможных MV-вариантов для выбора второго MV.

[0321] Следует отметить, что информация сегментов может включать в себя индекс, указывающий направление разбиения, в котором, по меньшей мере, текущий блок разбивается на множество сегментов. Информация MV-выбора может включать в себя индекс, указывающий выбранный первый MV, и индекс, указывающий выбранный второй MV. Один индекс может указывать множество фрагментов информации. Например, один индекс, совместно указывающий часть или всю информацию сегментов и часть или всю информацию MV-выбора, может кодироваться.

[0322] MV-извлечение > ATMVP-режим

Фиг. 54 является концептуальной схемой для иллюстрации одного примера режима усовершенствованного временного предсказания векторов движения (ATMVP), в котором MV извлекается в единицах субблоков.

[0323] ATMVP-режим представляет собой режим, категоризированный на режим объединения. Например, в ATMVP-режиме, возможный MV-вариант для каждого субблока регистрируется в списке возможных MV-вариантов для использования в режиме нормального объединения.

[0324] Более конкретно, в ATMVP-режиме, во-первых, как проиллюстрировано на фиг. 54, временной опорный MV-блок, ассоциированный с текущим блоком, идентифицируется в кодированной опорной картинке, указываемом посредством MV (MV0) соседнего блока, расположенного в левой нижней позиции относительно текущего блока. Затем, в каждом субблоке в текущем блоке, идентифицируется MV, используемый для того, чтобы кодировать область, соответствующую субблоку во временном опорном MV-блоке. MV, идентифицированный таким образом, включается в список возможных MV-вариантов в качестве возможного MV-варианта для субблока в текущем блоке. Когда возможный MV-вариант для каждого субблока выбирается из списка возможных MV-вариантов, субблок подвергается компенсации движения, при которой возможный MV-вариант используется в качестве MV для субблока. Таким образом, изображение предсказания для каждого субблока формируется.

[0325] Хотя блок, расположенный в левой нижней позиции относительно текущего блока, используется в качестве окружающего опорного MV-блока в примере, проиллюстрированном на фиг. 54, следует отметить, что может использоваться другой блок. Дополнительно, размер субблока может составлять 4×4 пикселов, 8×8 пикселов или другой размер. Размер субблока может переключаться для единицы, такой как слайс, кирпич, картинка и т.д.

[0326] MV-извлечение > DMVR

Фиг. 55 является блок-схемой последовательности операций способа, иллюстрирующей взаимосвязь между режимом объединения и детализацией векторов движения в декодере (DMVR).

[0327] Модуль 126 внешнего предсказания извлекает вектор движения для текущего блока согласно режиму объединения (этап Sl_1). Затем, модуль 126 внешнего предсказания определяет то, следует или нет выполнять оценку вектора движения, т.е. оценку движения (этап Sl_2). Здесь, при определении необходимости не выполнять оценку движения ("Нет" на этапе Sl_2), модуль 126 внешнего предсказания определяет вектор движения, извлекаемый на этапе Sl_1, в качестве конечного вектора движения для текущего блока (этап Sl_4). Другими словами, в этом случае, вектор движения текущего блока определяется согласно режиму объединения.

[0328] При определении необходимости выполнять оценку движения на этапе Sl_1 ("Да" на этапе Sl_2), модуль 126 внешнего предсказания извлекает конечный вектор движения для текущего блока посредством оценки окружающей области опорной картинки, указываемой посредством вектора движения, извлекаемого на этапе Sl_1 (этап Sl_3). Другими словами, в этом случае, вектор движения текущего блока определяется согласно DMVR.

[0329] Фиг. 56 является концептуальной схемой для иллюстрации одного примера DMVR-процесса для определения MV.

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

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

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

[0332] Фиг. 57 является концептуальной схемой для иллюстрации другого примера DMVR для определения MV. В отличие от примера DMVR, проиллюстрированного на фиг. 56, в примере, проиллюстрированном на фиг. 57, затраты вычисляются без формирования эталона.

[0333] Во-первых, модуль 126 внешнего предсказания оценивает окружающую область опорного блока, включенного в каждый из опорных картинок в L0-списке и L1-списке, на основе начального MV, который представляет собой возможный MV-вариант, полученный из каждого списка возможных MV-вариантов. Например, как проиллюстрировано на фиг. 57, начальный MV, соответствующий опорному блоку в L0-списке, представляет собой InitMV_L0, и начальный MV, соответствующий опорному блоку в L1-списке, представляет собой InitMV_L1. При оценке движения, модуль 126 внешнего предсказания сначала задает позицию поиска для опорной картинки в L0-списке. На основе позиции, указываемой посредством векторной разности, указывающей позицию поиска, которая должна задаваться, а именно, начального MV (т.е. InitMV_L0), векторная разность для позиции поиска представляет собой MVd_L0. Модуль 126 внешнего предсказания затем определяет оцениваемую позицию в опорной картинке в L1-списке. Эта позиция поиска указывается посредством векторной разности для позиции поиска из позиции, указываемой посредством начального MV (т.е. InitMV_L1). Более конкретно, модуль 126 внешнего предсказания определяет векторную разность в качестве MVd_L1 посредством зеркалирования MVd_L0. Другими словами, модуль 126 внешнего предсказания определяет позицию, которая является симметричной относительно позиции, указываемой посредством начального MV, в качестве позиции поиска в каждой опорной картинке в L0-списке и L1-списке. Модуль 126 внешнего предсказания вычисляет, для каждой позиции поиска, общую сумму абсолютных разностей (SAD) между значениями пикселов в позициях поиска в блоках в качестве затрат и узнает позицию поиска, которая дает в результате наименьшие затраты.

[0334] Фиг. 58A является концептуальной схемой для иллюстрации одного примера оценки движения в DMVR, и фиг. 58B является блок-схемой последовательности операций способа, иллюстрирующей один пример процесса оценки движения.

[0335] Во-первых, на этапе 1, модуль 126 внешнего предсказания вычисляет затраты между позицией поиска (также называемой "начальной точкой"), указываемой посредством начального MV, и восемью окружающими позициями поиска. Модуль 126 внешнего предсказания затем определяет то, являются или нет затраты в каждой из позиций поиска, отличных от начальной точки, наименьшими. Здесь, при определении того, что затраты в позиции поиска, отличной от начальной точки, являются наименьшими, модуль 126 внешнего предсказания изменяет цель на позицию поиска, в которой наименьшие затраты получаются, и выполняет процесс на этапе 2. Когда затраты в начальной точке являются наименьшими, модуль 126 внешнего предсказания пропускает процесс на этапе 2 и выполняет процесс на этапе 3.

[0336] На этапе 2, модуль 126 внешнего предсказания выполняет поиск, аналогичный процессу на этапе 1, относительно, в качестве новой начальной точки, позиции поиска после того, как цель изменяется, согласно результату процесса на этапе 1. Модуль 126 внешнего предсказания затем определяет то, являются или нет затраты в каждой из позиций поиска, отличных от начальной точки, наименьшими. Здесь, при определении того, что затраты в позиции поиска, отличной от начальной точки, являются наименьшими, модуль 126 внешнего предсказания выполняет процесс на этапе 4. Когда затраты в начальной точке являются наименьшими, модуль 126 внешнего предсказания выполняет процесс на этапе 3.

[0337] На этапе 4, модуль 126 внешнего предсказания рассматривает позицию поиска в начальной точке в качестве конечной позиции поиска и определяет разность между позицией, указываемой посредством начального MV, и конечной позицией поиска в качестве векторной разности.

[0338] На этапе 3, модуль 126 внешнего предсказания определяет пиксельную позицию с субпиксельной точностью, при которой наименьшие затраты получаются, на основе затрат в четырех точках, расположенных в верхней, нижней, левой и правой позициях относительно начальной точки на этапе 1 или на этапе 2, и рассматривает пиксельную позицию в качестве конечной позиции поиска. Пиксельная позиция с субпиксельной точностью определяется посредством выполнения суммирования со взвешиванием каждого из четырех верхнего, нижнего, левого и правого векторов ((0, 1), (0,-1), (-1, 0) и (1, 0)), с использованием, в качестве весового коэффициента, затрат в соответствующих одной из четырех позиций поиска. Модуль 126 внешнего предсказания затем определяет разность между позицией, указываемой посредством начального MV, и конечной позицией поиска в качестве векторной разности.

[0339] Компенсация движения > BIO/OBMC/LIC

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

[0340] Фиг. 59 является блок-схемой последовательности операций способа, иллюстрирующей один пример процесса формирования изображения предсказания.

Модуль 126 внешнего предсказания формирует изображение предсказания (этап Sm_1) и корректирует изображение предсказания согласно любому из режимов, описанных выше (этап Sm_2).

[0341] Фиг. 60 является блок-схемой последовательности операций способа, иллюстрирующей другой пример процесса формирования изображения предсказания.

Модуль 126 внешнего предсказания определяет вектор движения текущего блока (этап Sn_1). Затем, модуль 126 внешнего предсказания формирует изображение предсказания с использованием вектора движения (этап Sn_2) и определяет то, следует или нет выполнять процесс коррекции (этап Sn_3). Здесь, при определении необходимости выполнять процесс коррекции ("Да" на этапе Sn_3), модуль 126 внешнего предсказания формирует конечное изображение предсказания посредством коррекции изображения предсказания (этап Sn_4). Следует отметить, что в LIC, описанной ниже, яркость и цветность может корректироваться на этапе Sn_4. При определении необходимости не выполнять процесс коррекции ("Нет" на этапе Sn_3), модуль 126 внешнего предсказания выводит изображение предсказания в качестве конечного изображения предсказания без коррекции изображения предсказания (этап Sn_5).

[0342] Компенсация движения > OBMC

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

[0343] В OBMC-режиме, информация, указывающая размер субблока для OBMC (называется, например, "размером OBMC-блока"), может сигнализироваться на уровне последовательности. Кроме того, информация, указывающая то, следует или нет применять OBMC-режим (называется, например, "OBMC-флагом"), сигнализируется на уровне CU. Следует отметить, что сигнализация этой информации не должна обязательно выполняться на уровне последовательности и уровне CU и может выполняться на другом уровне (например, на уровне картинки, уровне слайса, уровне кирпича, уровне CTU или уровне субблока).

[0344] В дальнейшем подробнее описывается OBMC-режим. Фиг. 61 и 62 являются блок-схемой последовательности операций способа и концептуальной схемой для иллюстрации краткого представления процесса коррекции изображений предсказания, выполняемого посредством OBMC.

[0345] Во-первых, как проиллюстрировано на фиг. 62, изображение предсказания (Pred) посредством нормальной компенсации движения получается с использованием MV, назначенного текущему блоку. На фиг. 62, стрелка "MV" указывает на опорную картинку и указывает то, на что ссылается текущий блок текущей картинки, чтобы получать изображение предсказания.

[0346] Затем, изображение предсказания (Pred_L) получается посредством применения вектора (MV_L) движения, который уже извлечен для кодированного блока, соседнего слева от текущего блока, к текущему блоку (многократного использования вектора движения для текущего блока). Вектор (MV_L) движения указывается посредством стрелки "MV_L", указывающей опорную картинку, из текущего блока. Первая коррекция изображения предсказания выполняется посредством перекрытия двух изображений предсказания Pred и Pred_L. Это предоставляет преимущество смешивания границы между соседними блоками.

[0347] Аналогично, изображение предсказания (Pred_U) получается посредством применения MV (MV_U), который уже извлечен для кодированного блока, соседнего выше текущего блока, к текущему блоку (многократного использования MV для текущего блока). MV (MV_U) указывается посредством стрелки "MV_U", указывающей опорную картинку, из текущего блока. Вторая коррекция изображения предсказания выполняется посредством перекрытия изображения предсказания Pred_U с изображениями предсказания (например, Pred и Pred_L), для которых выполнена первая коррекция. Это предоставляет преимущество смешивания границы между соседними блоками. Изображение предсказания, полученное посредством второй коррекции, представляет собой изображение предсказания, в котором граница между соседними блоками смешивается (сглаживается), и в силу этого представляет собой конечное изображение предсказания текущего блока.

[0348] Хотя вышеприведенный пример представляет собой способ коррекции с двумя трактами с использованием левого и верхнего соседних блоков, следует отметить, что способ коррекции может представлять собой способ коррекции с тремя или более трактов с использованием также правого соседнего блока и/или нижнего соседнего блока.

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

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

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

Один пример способа для определения того, следует или нет применять OBMC, представляет собой способ для использования obmc_flag, который представляет собой сигнал, указывающий, следует или нет применять OBMC. В качестве одного конкретного примера, кодер 100 может определять то, принадлежит или нет текущий блок области, имеющей усложненное движение. Кодер 100 задает obmc_flag равным значению "1", когда блок принадлежит области, имеющей усложненное движение, и применяет OBMC при кодировании и задает obmc_flag равным значению "0", когда блок не принадлежит области, имеющей усложненное движение, и кодирует блок без применения OBMC. Декодер 200 переключается между применением и неприменением OBMC посредством декодирования obmc_flag, записываемого в поток.

[0351] Компенсация движения > BIO

Далее описывается способ MV-извлечения. Во-первых, описывается режим для извлечения MV на основе модели при условии равномерного прямолинейного движения. Этот режим также называется "режимом двунаправленного оптического потока (BIO)". Дополнительно, этот двунаправленный оптический поток может записываться в качестве BDOF вместо BIO.

[0352] Фиг. 63 является концептуальной схемой для иллюстрации модели при условии равномерного прямолинейного движения. На фиг. 63, (vx, vy) указывает вектор скорости, и τ0 и τ1 указывают временные расстояния между текущей картинкой (Cur Pic) и двумя опорными картинками (Ref0, Ref1). (MVx0, MVy0) указывают MV, соответствующие опорной картинке Ref0, и (MVx1, MVy1) указывают MV, соответствующие опорной картинке Ref0.

[0353] Здесь, согласно допущению относительно равномерного прямолинейного движения, демонстрируемого посредством вектора скорости (vx, vy), (MVx0, MVy0) и (MVx1, MVy1) представляются как (vxτ0, vyτ0) и (-vxτ1,- vyτ1), соответственно, и задается следующее уравнение (2) оптического потока:

[0354] Математическое выражение 3

[0355] Здесь, I(k) указывает значение сигнала яркости с компенсацией движения опорной картинки k (k=0, 1) после компенсации движения. Это уравнение оптического потока показывает , что сумма (i) производной по времени значения сигнала яркости, (ii) произведения горизонтальной скорости и горизонтального компонента пространственного градиента опорного изображения и (iii) произведения вертикальной скорости и вертикального компонента пространственного градиента опорного изображения равна нулю. Вектор движения каждого блока, полученный, например, из списка возможных MV-вариантов, может корректироваться в единицах пикселов, на основе комбинации уравнения оптического потока и эрмитовой интерполяции.

[0356] Следует отметить, что вектор движения может извлекаться на стороне декодера 200 с использованием способа, отличного от извлечения вектора движения, на основе модели при условии равномерного прямолинейного движения. Например, вектор движения может извлекаться в единицах субблока на основе векторов движения множества соседних блоков.

[0357] Фиг. 64 является блок-схемой последовательности операций способа, иллюстрирующей один пример процесса внешнего предсказания согласно BIO. Фиг. 65 является функциональной блок-схемой, иллюстрирующей один пример функциональной конфигурации модуля 126 внешнего предсказания, который может выполнять внешнее предсказание согласно BIO.

[0358] Как проиллюстрировано на фиг. 65, модуль 126 внешнего предсказания включает в себя, например, запоминающее устройство 126a, модуль 126b извлечения интерполированных изображений, модуль 126c извлечения градиентных изображений, модуль 126d извлечения оптических потоков, модуль 126e извлечения значений коррекции и корректор 126f изображений предсказания. Следует отметить, что запоминающее устройство 126a может представлять собой запоминающее устройство 122 кадров.

[0359] Модуль 126 внешнего предсказания извлекает два вектора (M0, M1) движения с использованием двух опорных картинок (Ref0, Ref1), отличающихся от картинки (Cur Pic), включающей в себя текущий блок. Модуль 126 внешнего предсказания затем извлекает изображение предсказания для текущего блока с использованием двух векторов (M0, M1) движения (этап Sy_1). Следует отметить, что вектор M0 движения представляет собой вектор (MVx0, MVy0) движения, соответствующий опорной картинке Ref0, и вектор M1 движения представляет собой вектор (MVx1, MVy1) движения, соответствующий опорной картинке Ref1.

[0360] Затем, модуль 126b извлечения интерполированных изображений извлекает интерполированное изображение I0 для текущего блока с использованием вектора M0 движения и опорной картинки L0 посредством обращения к запоминающему устройству 126a. Дополнительно, модуль 126b извлечения интерполированных изображений извлекает интерполированное изображение I1 для текущего блока с использованием вектора M1 движения и опорной картинки L1 посредством обращения к запоминающему устройству 126a (этап Sy_2). Здесь, интерполированное изображение I0 представляет собой изображение, включенное в опорную картинку Ref0, и которое должно извлекаться для текущего блока, и интерполированное изображение I1 представляет собой изображение, включенное в опорную картинку Ref1, и которое должно извлекаться для текущего блока. Каждое из интерполированного изображения I0 и интерполированного изображения I1 может иметь размер, такой же как размер текущего блока. Альтернативно, каждое из интерполированного изображения I0 и интерполированного изображения I1 может представлять собой изображение, большее текущего блока. Кроме того, интерполированное изображение I0 и интерполированное изображение I1 могут включать в себя изображение предсказания, полученное посредством использования векторов (M0, M1) движения и опорных картинок (L0, L1) и применения фильтра для компенсации движения.

[0361] Дополнительно, модуль 126c извлечения градиентных изображений извлекает градиентные изображения (Ix0, Ix1, Iy0, Iy1) текущего блока из интерполированного изображения I0 и интерполированного изображения I1 (этап Sy_3). Следует отметить, что градиентные изображения в горизонтальном направлении представляют собой (Ix0, Ix1), и градиентные изображения в вертикальном направлении представляют собой (Iy0, Iy1). Модуль 126c извлечения градиентных изображений может извлекать каждое градиентное изображение, например, посредством применения градиентного фильтра к интерполированным изображениям. Градиентное изображение может указывать величину пространственного изменения пиксельного значения вдоль горизонтального направления, вдоль вертикального направления либо вдоль обоих направлений.

[0362] Затем, модуль 126d извлечения оптических потоков извлекает, для каждого субблока текущего блока, оптический поток (vx, vy), который представляет собой вектор скорости, с использованием интерполированных изображений (I0, I1) и градиентных изображений (Ix0, Ix1, Iy0, Iy1) (этап Sy_4). Оптический поток указывает коэффициенты для коррекции величины пространственного пиксельного перемещения и может называться "локальным значением оценки движения", "скорректированным вектором движения" или "скорректированным весовым вектором". В качестве одного примера, субблок может представлять собой 4×4-пиксельную суб-CU. Следует отметить, что извлечение оптических потоков может выполняться для каждой единицы пикселов и т.п. вместо выполнения для каждого субблока.

[0363] Затем, модуль 126 внешнего предсказания корректирует изображение предсказания для текущего блока с использованием оптического потока (vx, vy). Например, модуль 126e извлечения значений коррекции извлекает значение коррекции для значения пиксела, включенного в текущий блок, с использованием оптического потока (vx, vy) (этап Sy_5). Корректор 126f изображений предсказания затем может корректировать изображение предсказания для текущего блока с использованием значения коррекции (этап Sy_6). Следует отметить, что значение коррекции может извлекаться в единицах пиксела либо может извлекаться в единицах множества пикселов или в единицах субблоков.

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

[0365] Компенсация движения > LIC

Далее описывается один пример режима для формирования изображения предсказания (предсказания) с использованием процесса компенсации локальной освещенности (LIC).

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

[0366] Во-первых, модуль 126 внешнего предсказания извлекает MV из кодированной опорной картинки и получает опорное изображение, соответствующее текущему блоку (этап Sz_1).

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

[0367] Модуль 126 внешнего предсказания формирует изображение предсказания для текущего блока посредством выполнения процесса коррекции яркости, в котором параметр коррекции яркости применяется к опорному изображению в опорной картинке, указываемой посредством MV (этап Sz_4). Другими словами, изображение предсказания, которое представляет собой опорное изображение в опорной картинке, указываемой посредством MV, подвергается коррекции на основе параметра коррекции яркости. При этой коррекции, яркость может корректироваться, либо цветность может корректироваться, либо и то, и другое может корректироваться. Другими словами, параметр коррекции цветности может вычисляться с использованием информации, указывающей то, как цветность изменена, и процесс коррекции цветности может выполняться.

[0368] Следует отметить, что форма окружающей опорной области, проиллюстрированной на фиг. 66A, представляет собой один пример; может использоваться другая форма.

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

[0369] Один пример способа для определения того, следует или нет применять LIC, представляет собой способ для использования lic_flag, который представляет собой сигнал, указывающий, следует или нет применять LIC. В качестве одного конкретного примера, кодер 100 определяет то, принадлежит или нет текущий блок области, имеющей изменение яркости. Кодер 100 задает lic_flag равным значению "1", когда блок принадлежит области, имеющей изменение яркости, и применяет LIC при кодировании и задает lic_flag равным значению "0", когда блок не принадлежит области, имеющей изменение яркости, и выполняет кодирование без применения LIC. Декодер 200 может декодировать lic_flag, записываемый в потоке, и декодировать текущий блок посредством переключения между применением и неприменением LIC в соответствии со значением флага.

[0370] Один пример другого способа определения того, следует или нет применять LIC-процесс, представляет собой способ определения в соответствии с тем, применен или нет LIC-процесс к окружающему блоку. В качестве одного конкретного примера, когда текущий блок обрабатывается в режиме объединения, модуль 126 внешнего предсказания определяет то, кодирован или нет кодированный окружающий блок, выбранный при MV-извлечении в режиме объединения, с использованием LIC. Модуль 126 внешнего предсказания выполняет кодирование посредством переключения между применением и неприменением LIC согласно результату. Следует отметить, что также в этом примере, одинаковые процессы применяются в процессах на стороне декодера 200.

[0371] Процесс коррекции яркости (LIC) описывается со ссылкой на фиг. 66A и 66B и дополнительно описывается ниже.

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

[0372] Затем, модуль 126 внешнего предсказания извлекает информацию, указывающую то, как значение сигнала яркости опорной картинки изменено на значение сигнала яркости текущей картинки, с использованием пиксельных значений сигнала яркости кодированных окружающих опорных областей, которые являются соседними слева от или выше текущего блока, и значений сигнала яркости в соответствующих позициях в опорных картинках, указываемых посредством MV, и вычисляет параметр коррекции яркости. Например, предполагается, что пиксельное значение сигнала яркости данного пиксела в окружающей опорной области в текущей картинке составляет p0, и что пиксельное значение сигнала яркости пиксела, соответствующего данному пикселу в окружающей опорной области в опорной картинке, составляет p1. Модуль 126 внешнего предсказания вычисляет коэффициенты A и B для оптимизации A*p1+B=p0 в качестве параметра коррекции яркости для множества пикселов в окружающей опорной области.

[0373] Затем, модуль 126 внешнего предсказания выполняет процесс коррекции яркости с использованием параметра коррекции яркости для опорного изображения в опорной картинке, указываемой посредством MV, чтобы формировать изображение предсказания для текущего блока. Например, предполагается, что пиксельное значение сигнала яркости в опорном изображении составляет p2, и что скорректированное по яркости пиксельное значение сигнала яркости изображения предсказания составляет p3. Модуль 126 внешнего предсказания формирует изображение предсказания после подвергания процессу коррекции яркости посредством вычисления A*p2+B=p3 для каждого из пикселов в опорном изображении.

[0374] Например, область, имеющая определенное число пикселов, извлеченных из каждого из верхнего соседнего пиксела и левого соседнего пиксела, может использоваться в качестве окружающей опорной области. Дополнительно, окружающая опорная область не ограничена областью, которая является соседней с текущим блоком, и может представлять собой область, которая не является соседней с текущим блоком. В примере, проиллюстрированном на фиг. 66A, окружающая опорная область в опорной картинке может представлять собой область, указываемую посредством другого MV в текущей картинке, из окружающей опорной области в текущей картинке. Например, другой MV может представлять собой MV в окружающей опорной области в текущей картинке.

[0375] Хотя здесь описываются операции, выполняемые посредством кодера 100, следует отметить, что декодер 200 выполняет аналогичные операции.

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

[0376] Дополнительно, LIC-процесс может применяться в единицах субблоков. Например, параметр коррекции может извлекаться с использованием окружающей опорной области в текущем субблоке и окружающей опорной области в опорном субблоке в опорной картинке, указываемой посредством MV текущего субблока.

[0377] Контроллер предсказания

Контроллер 128 предсказания выбирает один из сигнала внутреннего предсказания (изображения или сигнала, выводимого из модуля 124 внутреннего предсказания) и сигнала внешнего предсказания (изображения или сигнала, выводимого из модуля 126 внешнего предсказания) и выводит выбранное изображение предсказания в вычитатель 104 и сумматор 116 в качестве сигнала предсказания.

[0378] Формирователь параметров предсказания

Формирователь 130 параметров предсказания может выводить информацию, связанную с внутренним предсказанием, внешним предсказанием, выбором изображения предсказания в контроллере 128 предсказания и т.д. в качестве параметра предсказания в энтропийный кодер 110. Энтропийный кодер 110 может формировать поток, на основе параметра предсказания, который вводится из формирователя 130 параметров предсказания, и квантованных коэффициентов, которые вводятся из квантователя 108. Параметр предсказания может использоваться в декодере 200. Декодер 200 может принимать и декодировать поток и выполнять процессы, такие же как процессы предсказания, выполняемые посредством модуля 124 внутреннего предсказания, модуля 126 внешнего предсказания и контроллера 128 предсказания. Параметр предсказания может включать в себя, например, (i) выбираемый сигнал предсказания (например, MV, тип предсказания или режим предсказания, используемый посредством модуля 124 внутреннего предсказания или модуля 126 внешнего предсказания), или (ii) необязательный индекс, флаг или значение, которое основано на процессе предсказания, выполняемом в каждом из модуля 124 внутреннего предсказания, модуля 126 внешнего предсказания и контроллера 128 предсказания, либо которое указывает процесс предсказания.

[0379] Декодер

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

[0380] Как проиллюстрировано на фиг. 67, декодер 200 включает в себя энтропийный декодер 202, обратный квантователь 204, обратный преобразователь 206, сумматор 208, запоминающее устройство 210 блоков, контурный фильтр 212, запоминающее устройство 214 кадров, модуль 216 внутреннего предсказания, модуль 218 внешнего предсказания, контроллер 220 предсказания, формирователь 222 параметров предсказания и модуль 224 определения разбиения. Следует отметить, что модуль 216 внутреннего предсказания и модуль 218 внешнего предсказания сконфигурированы как часть модуля выполнения предсказания.

[0381] Пример монтажа декодера

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

[0382] Процессор b1 представляет собой схему, которая выполняет обработку информации, и соединяется с запоминающим устройством b2. Например, процессор b1 представляет собой специализированную или общую электронную схему, которая декодирует поток. Процессор b1 может представлять собой процессор, такой как CPU. Дополнительно, процессор b1 может представлять собой совокупность множества электронных схем. Дополнительно, например, процессор b1 может выполнять роли двух или более составляющих элементов, отличных от составляющего элемента для сохранения информации, из множества составляющих элементов декодера 200, проиллюстрированного на фиг. 67, и т.д.

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

[0384] Например, запоминающее устройство b2 может сохранять изображение или поток. Дополнительно, запоминающее устройство b2 может сохранять программу для инструктирования процессору b1 декодировать поток.

Дополнительно, например, запоминающее устройство b2 может выполнять роли двух или более составляющих элементов для сохранения информации из множества составляющих элементов декодера 200, проиллюстрированного на фиг. 67, и т.д. Более конкретно, запоминающее устройство b2 может выполнять роли запоминающего устройства 210 блоков и запоминающего устройства 214 кадров, проиллюстрированных на фиг. 67. Более конкретно, запоминающее устройство b2 может сохранять восстановленное изображение (в частности, восстановленный блок, восстановленная картинка и т.п.).

[0385] Следует отметить, что, в декодере 200, не все из множества составляющих элементов, проиллюстрированных на фиг. 67 и т.д., могут реализовываться, и не все процессы, описанные в данном документе, могут выполняться. Часть составляющих элементов, указываемых на фиг. 67 и т.д., может включаться в другое устройство, или часть процессов, описанных в данном документе, может выполняться посредством другого устройства.

[0386] В дальнейшем в этом документе, описывается полная последовательность операций процессов, выполняемых посредством декодера 200, и после этого описывается каждый из составляющих элементов, включенных в декодер 200. Следует отметить, что некоторые составляющие элементы, включенные в декодер 200, выполняют процессы, такие же как процессы, выполняемые посредством части кодера 100, и в силу этого одинаковые процессы подробно не описываются повторно. Например, обратный квантователь 204, обратный преобразователь 206, сумматор 208, запоминающее устройство 210 блоков, запоминающее устройство 214 кадров, модуль 216 внутреннего предсказания, модуль 218 внешнего предсказания, контроллер 220 предсказания и контурный фильтр 212, включенные в декодер 200, выполняют процессы, аналогичные процессам, выполняемым посредством обратного квантователя 112, обратного преобразователя 114, сумматора 116, запоминающего устройства 118 блоков, запоминающего устройства 122 кадров, модуля 124 внутреннего предсказания, модуля 126 внешнего предсказания, контроллера 128 предсказания и контурного фильтра 120, включенных в декодер 200, соответственно.

[0387] Общая последовательность операций процесса декодирования

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

[0388] Во-первых, модуль 224 определения разбиения в декодере 200 определяет шаблон разбиения каждого из множества блоков фиксированного размера (128×128 пикселов), включенных в картинку, на основе параметра, который вводится из энтропийного декодера 202 (этап Sp_1). Этот шаблон разбиения представляет собой шаблон разбиения, выбранный посредством кодера 100. Декодер 200 затем выполняет процессы этапа Sp_2-Sp_6 для каждого из множества блоков шаблона разбиения.

[0389] Энтропийный декодер 202 декодирует (в частности, энтропийно декодирует) кодированные квантованные коэффициенты и параметр предсказания текущего блока (этап Sp_2).

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

[0390] Затем, модуль выполнения предсказания, включающий в себя все или часть из модуля 216 внутреннего предсказания, модуля 218 внешнего предсказания и контроллера 220 предсказания, формирует сигнал предсказания текущего блока (этап Sp_4).

[0391] Затем, сумматор 208 суммирует изображение предсказания с остатком предсказания для того, чтобы формировать восстановленное изображение (также называется "декодированным блоком изображений") текущего блока (этап Sp_5).

[0392] Когда восстановленное изображение формируется, контурный фильтр 212 выполняет фильтрацию восстановленного изображения (этап Sp_6).

Декодер 200 затем определяет, закончено или нет декодирование всей картинки (этап Sp_7). При определении того, что декодирование еще не закончено ("Нет" на этапе Sp_7), декодер 200 повторяет процессы, начиная с этапа Sp_1.

[0393] Следует отметить, что процессы этих этапов Sp_1-Sp_7 могут выполняться последовательно посредством декодера 200, либо два или более процессов могут выполняться параллельно. Порядок обработки двух или более процессов может модифицироваться.

[0394] Модуль определения разбиения

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

[0395] Например, модуль 224 определения разбиения собирает информацию блоков из запоминающего устройства 210 блоков или запоминающего устройства 214 кадров и, кроме того, получает параметр из энтропийного декодера 202. Модуль 224 определения разбиения затем может определять шаблон разбиения блока фиксированного размера, на основе информации блоков и параметра. Модуль 224 определения разбиения затем может выводить информацию, указывающую определенный шаблон разбиения, в обратный преобразователь 206, модуль 216 внутреннего предсказания и модуль 218 внешнего предсказания. Обратный преобразователь 206 может выполнять обратное преобразование коэффициентов преобразования, на основе шаблона разбиения, указываемого посредством информации из модуля 224 определения разбиения. Модуль 216 внутреннего предсказания и модуль 218 внешнего предсказания могут формировать изображение предсказания, на основе шаблона разбиения, указываемого посредством информации из модуля 224 определения разбиения.

[0396] Энтропийный декодер

Фиг. 71 является блок-схемой, иллюстрирующей один пример функциональной конфигурации энтропийного декодера 202.

[0397] Энтропийный декодер 202 формирует квантованные коэффициенты, параметр предсказания и параметр, связанный с шаблоном разбиения, посредством энтропийного декодирования потока. Например, CABAC используется при энтропийном декодировании. Более конкретно, энтропийно декодировать 202, включает в себя, например, двоичный арифметический декодер 202a, контроллер 202b контекстов и модуль 202c отмены преобразования в двоичную форму. Двоичный арифметический декодер 202a арифметически декодирует поток с использованием значения контекста, извлекаемого посредством контроллера 202b контекстов, в двоичный сигнал. Контроллер 202b контекстов извлекает значение контекста согласно признаку или окружающему состоянию синтаксического элемента, которое представляет собой вероятность возникновения двоичного сигнала, так же как выполняется посредством контроллера 110b контекстов кодера 100. Модуль 202c отмены преобразования в двоичную форму выполняет отмену преобразования в двоичную форму для преобразования двоичного сигнала, выводимого из двоичного арифметического декодера 202a, в многоуровневый сигнал, указывающий квантованные коэффициенты, как описано выше. Это преобразование в двоичную форму может выполняться согласно способу преобразования в двоичную форму, описанному выше.

[0398] Вследствие этого, энтропийный декодер 202 выводит квантованные коэффициенты каждого блока в обратный квантователь 204. Энтропийный декодер 202 может выводить параметр предсказания, включенный в поток (см. фиг. 1), в модуль 216 внутреннего предсказания, модуль 218 внешнего предсказания и контроллер 220 предсказания. Модуль 216 внутреннего предсказания, модуль 218 внешнего предсказания и контроллер 220 предсказания допускают выполнение процессов предсказания, таких же как процессы предсказания, выполняемые посредством модуля 124 внутреннего предсказания, модуля 126 внешнего предсказания и контроллера 128 предсказания на стороне кодера 100.

[0399] Фиг. 72 является концептуальной схемой для иллюстрации последовательности операций примерного CABAC-процесса в энтропийном декодере 202.

Во-первых, инициализация выполняется в CABAC в энтропийном декодере 202. При инициализации, инициализация в двоичном арифметическом декодере 202a и задание начального значения контекста выполняется. Двоичный арифметический декодер 202a и модуль 202c отмены преобразования в двоичную форму затем выполняют арифметическое декодирование и отмену преобразования в двоичную форму, например, кодированных данных CTU. В это время, контроллер 202b контекстов обновляет значение контекста каждый раз, когда выполняется арифметическое декодирование. Контроллер 202b контекстов затем сохраняет значение контекста в качестве постобработки. Сохраненное значение контекста используется, например, чтобы инициализировать значение контекста для следующей CTU.

[0400] Обратный квантователь

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

[0401] Фиг. 73 является блок-схемой, иллюстрирующей один пример функциональной конфигурации обратного квантователя 204.

Обратный квантователь 204 включает в себя, например, формирователь 204a параметров квантования, формирователь 204b предсказанных параметров квантования, устройство 204d хранения параметров квантования и модуль 204e выполнения обратного квантования.

[0402] Фиг. 74 является блок-схемой последовательности операций способа, иллюстрирующей один пример процесса обратного квантования, выполняемого посредством обратного квантователя 204.

Обратный квантователь 204 может выполнять процесс обратного квантования в качестве одного примера для каждой CU на основе последовательности операций, проиллюстрированной на фиг. 74. Более конкретно, формирователь 204a параметров квантования определяет то, следует или нет выполнять обратное квантование (этап Sv_11). Здесь, при определении необходимости выполнять обратное квантование ("Да" на этапе Sv_11), формирователь 204a параметров квантования получает параметр разностного квантования для текущего блока из энтропийного декодера 202 (этап Sv_12).

[0403] Затем, формирователь 204b предсказанных параметров квантования затем получает параметр квантования для единицы обработки, отличающейся от текущего блока, из устройства 204d хранения параметров квантования (этап Sv_13). Формирователь 204b предсказанных параметров квантования формирует предсказанный параметр квантования текущего блока на основе полученного параметра квантования (этап Sv_14).

[0404] Формирователь 204a параметров квантования затем формирует параметр квантования для текущего блока на основе параметра разностного квантования для текущего блока, полученного из энтропийного декодера 202, и предсказанного параметра квантования для текущего блока, сформированного посредством формирователя 204b предсказанных параметров квантования (этап Sv_15). Например, параметр разностного квантования для текущего блока, полученный из энтропийного декодера 202, и предсказанный параметр квантования для текущего блока, сформированный посредством формирователя 204b предсказанных параметров квантования, могут суммироваться между собой, чтобы формировать параметр квантования для текущего блока. Дополнительно, формирователь 204a параметров квантования сохраняет параметр квантования для текущего блока в устройстве 204d хранения параметров квантования (этап Sv_16).

[0405] Затем, модуль 204e выполнения обратного квантования обратно квантует квантованные коэффициенты текущего блока в коэффициенты преобразования, с использованием параметра квантования, сформированного на этапе Sv_15 (этап Sv_17).

[0406] Следует отметить, что параметр разностного квантования может декодироваться на уровне битовой последовательности, уровне картинки, уровне слайса, уровне кирпича или уровне CTU. Дополнительно, начальное значение параметра квантования может декодироваться на уровне последовательности, уровне картинки, уровне слайса, уровне кирпича или уровне CTU. В это время, параметр квантования может формироваться с использованием начального значения параметра квантования и параметра разностного квантования.

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

[0408] Обратный преобразователь

Обратный преобразователь 206 восстанавливает остатки предсказания посредством обратного преобразования коэффициентов преобразования, которые представляют собой вводы из обратного квантователя 204.

[0409] Например, когда информация, синтаксически проанализированная из потока, указывает , что EMT или AMT должно применяться (например, когда AMT-флаг является истинным), обратный преобразователь 206 обратно преобразует коэффициенты преобразования текущего блока на основе информации, указывающей синтаксически проанализированный тип преобразования.

[0410] Кроме того, например, когда информация, синтаксически проанализированная из потока, указывает , что NSST должно применяться, обратный преобразователь 206 применяет вторичное обратное преобразование к коэффициентам преобразования.

[0411] Фиг. 75 является блок-схемой последовательности операций способа, иллюстрирующей один пример процесса, выполняемого посредством обратного преобразователя 206.

Например, обратный преобразователь 206 определяет то, присутствует или нет информация, указывающая , что ортогональное преобразование не выполняется, в потоке (этап St_11). Здесь, при определении того, что эта информация не присутствует ("Нет" на этапе St_11) (например: отсутствие индикаторов в отношении того, выполняется или нет ортогональное преобразование; присутствие индикатора того, что ортогональное преобразование должно выполняться); обратный преобразователь 206 получает информацию, указывающую тип преобразования, декодированный посредством энтропийного декодера 202 (этап St_12). Затем, на основе информации, обратный преобразователь 206 определяет тип преобразования, используемый для ортогонального преобразования в кодере 100 (этап St_13). Обратный преобразователь 206 затем выполняет обратное ортогональное преобразование с использованием определенного типа преобразования (этап St_14). Как проиллюстрировано на фиг. 75, при определении того, что информация, указывающая , что ортогональное преобразование не выполняется, присутствует ("Да" на этапе St_11) (например, явный индикатор того, что ортогональное преобразование не выполняется; отсутствие индикатора ортогональное преобразование выполняется), ортогональное преобразование не выполняется.

[0412] Фиг. 76 является блок-схемой последовательности операций способа, иллюстрирующей один пример процесса, выполняемого посредством обратного преобразователя 206.

Например, обратный преобразователь 206 определяет то, меньше или равен либо нет размер преобразования определенному значению (этап Su_11). Определенное значение может быть предварительно определено. Здесь, при определении того, что размер преобразования меньше или равен определенному значению ("Да" на этапе Su_11), обратный преобразователь 206 получает, из энтропийного декодера 202, информацию, указывающую то, какой тип преобразования использован посредством кодера 100, по меньшей мере, из одного типа преобразования, включенного в первую группу типов преобразования (этап Su_12). Следует отметить, что эта информация декодируется посредством энтропийного декодера 202 и выводится в обратный преобразователь 206.

[0413] На основе информации, обратный преобразователь 206 определяет тип преобразования, используемый для ортогонального преобразования в кодере 100 (этап Su_13). Обратный преобразователь 206 затем выполняет обратное ортогональное преобразование для коэффициентов преобразования текущего блока с использованием определенного типа преобразования (этап Su_14). При определении того, что размер преобразования не меньше или равен определенному значению ("Нет" на этапе Su_11), обратный преобразователь 206 обратно преобразует коэффициенты преобразования текущего блока с использованием второй группы типов преобразования (этап Su_15).

[0414] Следует отметить, что обратное ортогональное преобразование посредством обратного преобразователя 206 может выполняться согласно последовательности операций, проиллюстрированной на фиг. 75 или фиг. 76 для каждой TU, в качестве одного примера. Дополнительно, обратное ортогональное преобразование может выполняться посредством использования заданного типа преобразования без декодирования информации, указывающей тип преобразования, используемый для ортогонального преобразования. Заданный тип преобразования может представлять собой предварительно заданный тип преобразования или тип преобразования по умолчанию. Дополнительно, тип преобразования конкретно может представлять собой DST7, DCT8 и т.п. При обратном ортогональном преобразовании, используется базисная функция обратного преобразования, соответствующая типу преобразования.

[0415] Сумматор

Сумматор 208 восстанавливает текущий блок посредством суммирования остатка предсказания, который представляет собой ввод из обратного преобразователя 206, и изображения предсказания, которое представляет собой ввод из контроллера 220 предсказания. Другими словами, восстановленное изображение текущего блока формируется. Сумматор 208 затем выводит восстановленное изображение текущего блока в запоминающее устройство 210 блоков и контурный фильтр 212.

[0416] Запоминающее устройство блоков

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

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

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

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

[0419] Фиг. 77 является блок-схемой, иллюстрирующей один пример функциональной конфигурации контурного фильтра 212. Следует отметить, что контурный фильтр 212 имеет конфигурацию, аналогичную конфигурации контурного фильтра 120 кодера 100.

[0420] Например, как проиллюстрировано на фиг. 77, контурный фильтр 212 включает в себя модуль 212a выполнения фильтрации для удаления блочности, модуль 212b SAO-выполнения и модуль 212c ALF-выполнения. Модуль 212a выполнения фильтрации для удаления блочности выполняет процесс фильтрации для удаления блочности для восстановленного изображения. Модуль 212b SAO-выполнения выполняет SAO-процесс для восстановленного изображения после подвергания процессу фильтрации для удаления блочности. Модуль 212c ALF-выполнения выполняет ALF-процесс для восстановленного изображения после подвергания SAO-процессу. Следует отметить, что контурный фильтр 212 не всегда должен включать в себя все составляющие элементы, раскрытые на фиг. 77, и может включать в себя только часть составляющих элементов. Дополнительно, контурный фильтр 212 может быть выполнен с возможностью выполнять вышеуказанные процессы в порядке обработки, отличающемся от порядка обработки, раскрытого на фиг. 77, может не выполнять все процессы, проиллюстрированные на фиг. 77, и т.д.

[0421] Запоминающее устройство кадров

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

[0422] Модуль предсказания (модуль внутреннего предсказания, модуль внешнего предсказания, контроллер предсказания)

Фиг. 78 является блок-схемой последовательности операций способа, иллюстрирующей один пример процесса, выполняемого посредством модуля предсказания декодера 200. Следует отметить, что модуль выполнения предсказания может включать в себя все или часть следующих составляющих элементов: модуль 216 внутреннего предсказания; модуль 218 внешнего предсказания; и контроллер 220 предсказания. Модуль выполнения предсказания включает в себя, например, модуль 216 внутреннего предсказания и модуль 218 внешнего предсказания.

[0423] Модуль предсказания формирует изображение предсказания текущего блока (этап Sq_1). Это изображение предсказания также называется "сигналом предсказания" или "блоком предсказания". Следует отметить, что сигнал предсказания, например, представляет собой внутренний сигнал предсказания или сигнал внешнего предсказания. Более конкретно, модуль предсказания формирует изображение предсказания текущего блока с использованием восстановленного изображения, которое уже получено для другого блока через формирование изображения предсказания, восстановление остатка предсказания и суммирование изображения предсказания. Модуль предсказания декодера 200 формирует изображение предсказания, такое же как предсказанное изображение, сформированное посредством модуля предсказания кодера 100. Другими словами, изображения предсказания формируются согласно способу, общему между модулями предсказания, или взаимно соответствующими способами.

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

[0425] Фиг. 79 является блок-схемой последовательности операций способа, иллюстрирующей другой пример процесса, выполняемого посредством модуля предсказания декодера 200.

Модуль предсказания определяет способ или режим для формирования изображения предсказания (этап Sr_1). Например, способ или режим может определяться, например, на основе параметра предсказания и т.д.

[0426] При определении первого способа в качестве режима для формирования изображения предсказания, модуль предсказания формирует изображение предсказания согласно первому способу (этап Sr_2a). При определении второго способа в качестве режима для формирования изображения предсказания, модуль предсказания формирует изображение предсказания согласно второму способу (этап Sr_2b). При определении третьего способа в качестве режима для формирования изображения предсказания, модуль предсказания формирует изображение предсказания согласно третьему способу (этап Sr_2c).

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

[0428] Фиг. 80A-80C (совместно, фиг. 80) являются блок-схемой последовательности операций способа, иллюстрирующей другой пример процесса, выполняемого посредством модуля предсказания декодера 200.

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

[0429] Модуль внутреннего предсказания

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

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

[0431] Кроме того, когда информация, синтаксически проанализированная из потока, указывает , что PDPC должна применяться, модуль 216 внутреннего предсказания корректирует внутренне предсказанные пиксельные значения на основе горизонтальных/вертикальных опорных пиксельных градиентов.

[0432] Фиг. 81 является схемой, иллюстрирующей один пример процесса, выполняемого посредством модуля 216 внутреннего предсказания декодера 200.

Модуль 216 внутреннего предсказания сначала определяет то, должен или нет использоваться MPM. Как проиллюстрировано на фиг. 81, модуль 216 внутреннего предсказания определяет то, присутствует или нет MPM-флаг, указывающий 1, в потоке (этап Sw_11). Здесь, при определении того, что MPM-флаг, указывающий 1, присутствует ("Да" на этапе Sw_11), модуль 216 внутреннего предсказания получает, из энтропийного декодера 202, информацию, указывающую режим внутреннего предсказания, выбранный в кодере 100, из MPM. Следует отметить, что эта информация декодируется посредством энтропийного декодера 202 и выводится в модуль 216 внутреннего предсказания. Затем, модуль 216 внутреннего предсказания определяет MPM (этап Sw_13). MPM включают в себя, например, шесть режимов внутреннего предсказания. Модуль 216 внутреннего предсказания затем определяет режим внутреннего предсказания, который включается во множество режимов внутреннего предсказания, включенных в MPM, и указывается посредством информации, полученной на этапе Sw_12 (этап Sw_14).

[0433] При определении того, что MPM-флаг, указывающий 1, не присутствует ("Нет" на этапе Sw_11), модуль 216 внутреннего предсказания получает информацию, указывающую режим внутреннего предсказания, выбранный в кодере 100 (этап Sw_15). Другими словами, модуль 216 внутреннего предсказания получает, из энтропийного декодера 202, информацию, указывающую режим внутреннего предсказания, выбранный в кодере 100 из числа, по меньшей мере, одного режима внутреннего предсказания, который не включается в MPM. Следует отметить, что эта информация декодируется посредством энтропийного декодера 202 и выводится в модуль 216 внутреннего предсказания. Модуль 216 внутреннего предсказания затем определяет режим внутреннего предсказания, который не включается во множество режимов внутреннего предсказания, включенных в MPM, и указывается посредством информации, полученной на этапе Sw_15 (этап Sw_17).

Модуль 216 внутреннего предсказания формирует изображение предсказания согласно режиму внутреннего предсказания, определенному на этапе Sw_14 или на этапе Sw_17 (этап Sw_18).

[0434] Модуль внешнего предсказания

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

[0435] Например, модуль 218 внешнего предсказания формирует сигнал внешнего предсказания текущего блока или субблока посредством выполнения компенсации движения посредством использования информации движения (например, вектора движения), синтаксически проанализированной из кодированного потока битов (например, параметра предсказания, выводимого из энтропийного декодера 202), и выводит сигнал внешнего предсказания в контроллер 220 предсказания.

[0436] Когда информация, синтаксически проанализированная из потока, указывает , что OBMC-режим должен применяться, модуль 218 внешнего предсказания формирует изображение внешнего предсказания с использованием информации движения соседнего блока в дополнение к информации движения текущего блока, полученной через оценку движения.

[0437] Кроме того, когда информация, синтаксически проанализированная из потока, указывает , что FRUC-режим должен применяться, модуль 218 внешнего предсказания извлекает информацию движения посредством выполнения оценки движения в соответствии со способом сопоставления с шаблоном (к примеру, билатеральным сопоставлением или сопоставлением с эталоном), синтаксически проанализированным из потока. Модуль 218 внешнего предсказания затем выполняет компенсацию движения (предсказание) с использованием извлеченной информации движения.

[0438] Кроме того, когда BIO-режим должен применяться, модуль 218 внешнего предсказания извлекает MV на основе модели при условии равномерного прямолинейного движения. Дополнительно, когда информация, синтаксически проанализированная из потока, указывает , что аффинный режим должен применяться, модуль 218 внешнего предсказания извлекает MV для каждого субблока, на основе MV множества соседних блоков.

[0439] Последовательность операций для MV-извлечения

Фиг. 82 является блок-схемой последовательности операций способа, иллюстрирующей один пример процесса MV-извлечения в декодере 200.

[0440] Модуль 218 внешнего предсказания определяет то, например, следует или нет декодировать информацию движения (например, MV). Например, модуль 218 внешнего предсказания может выполнять определение согласно режиму предсказания, включенному в поток, или может выполнять определение на основе другой информации, включенной в поток. Здесь, при определении необходимости декодировать информацию движения, модуль 218 внешнего предсказания извлекает MV для текущего блока в режиме, в котором информация движения декодируется. При определении необходимости не декодировать информацию движения, модуль 218 внешнего предсказания извлекает MV в режиме, в котором информация движения не декодируется.

[0441] Здесь, режимы MV-извлечения могут включать в себя нормальный внешний режим, режим нормального объединения, FRUC-режим, аффинный режим и т.д., которые описываются ниже. Режимы, в которых информация движения декодируется, из числа режимов, включают в себя нормальный внешний режим, режим нормального объединения, аффинный режим (в частности, аффинный внешний режим и аффинный режим объединения) и т.д. Следует отметить, что информация движения может включать в себя не только MV, но также и информацию выбора MV-предикторов, которая описывается ниже. Режимы, в которых информация движения не декодируется, включают в себя FRUC-режим и т.д. Модуль 218 внешнего предсказания выбирает режим для извлечения MV для текущего блока из множества режимов и извлекает MV для текущего блока с использованием выбранного режима.

[0442] Фиг. 83 является блок-схемой последовательности операций способа, иллюстрирующей один пример процесса MV-извлечения в декодере 200.

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

[0443] При определении необходимости вообще не декодировать MV-разность, модуль 218 внешнего предсказания извлекает MV в режиме, в котором MV-разность не декодируется. В этом случае, кодированная MV-разность не включается в поток.

[0444] Здесь, как описано выше, режимы MV-извлечения включают в себя нормальный внешний режим, режим нормального объединения, FRUC-режим, аффинный режим и т.д., которые описываются ниже. Режимы, в которых MV-разность кодируется, из числа режимов включают в себя нормальный внешний режим и аффинный режим (в частности, аффинный внешний режим) и т.д. Режимы, в которых MV-разность не кодируется, включают в себя FRUC-режим, режим нормального объединения, аффинный режим (в частности, аффинный режим объединения) и т.д. Модуль 218 внешнего предсказания выбирает режим для извлечения MV для текущего блока из множества режимов и извлекает MV для текущего блока с использованием выбранного режима.

[0445] MV-извлечение > нормальный внешний режим

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

[0446] Фиг. 84 является блок-схемой последовательности операций способа, иллюстрирующей пример процесса внешнего предсказания посредством нормального внешнего режима в декодере 200.

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

[0447] Затем, модуль 218 внешнего предсказания извлекает N (целое число в 2 или более) возможных MV-вариантов из множества возможных MV-вариантов, полученных на этапе Sg_11, в качестве возможных вариантов предикторов векторов движения (также называются "возможными вариантами MV-предикторов") согласно определенным рангам в порядке приоритетов (этап Sg_12). Следует отметить, что ранги в порядке приоритетов могут определяться заранее для соответствующих N возможных вариантов MV-предикторов и могут быть предварительно определены.

[0448] Затем, модуль 218 внешнего предсказания декодирует информацию выбора MV-предикторов из входного потока и выбирает один возможный вариант MV-предиктора из N возможных вариантов MV-предикторов в качестве MV-предиктора для текущего блока с использованием декодированной информации выбора MV-предикторов (этап Sg_13).

[0449] Затем, модуль 218 внешнего предсказания декодирует MV-разность из входного потока и извлекает MV для текущего блока посредством суммирования значения разности, которое представляет собой декодированную MV-разность, и выбранного MV-предиктора (этап Sg_14).

[0450] В завершение, модуль 218 внешнего предсказания формирует изображение предсказания для текущего блока посредством выполнения компенсации движения текущего блока с использованием извлеченного MV и декодированной опорной картинки (этап Sg_15). Процессы на этапах Sg_11-Sg_15 выполняются для каждого блока. Например, когда процессы на этапах Sg_11-Sg_15 выполняются для каждого из всех блоков в слайсе, внешнее предсказание слайса с использованием нормального внешнего режима заканчивается. Например, когда процессы на этапах Sg_11-Sg_15 выполняются для каждого из всех блоков в картинке, внешнее предсказание картинки с использованием нормального внешнего режима заканчивается. Следует отметить, что не все блоки, включенные в слайс, могут подвергаться процессам на этапах Sg_11-Sg_15, и внешнее предсказание слайса с использованием нормального внешнего режима может заканчиваться, когда часть блоков подвергается процессам. Это также применяется к картинкам на этапах Sg_11-Sg_15. Внешнее предсказание картинки с использованием нормального внешнего режима может заканчиваться, когда процессы выполняются для части блоков в картинке.

[0451] MV-извлечение > режим нормального объединения

Например, когда информация, синтаксически проанализированная из потока, указывает , что режим нормального объединения должен применяться, модуль 218 внешнего предсказания извлекает MV и выполняет компенсацию (предсказание) движения с использованием MV.

[0452] Фиг. 85 является блок-схемой последовательности операций способа, иллюстрирующей пример процесса внешнего предсказания посредством режима нормального объединения в декодере 200.

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

[0453] Затем, модуль 218 внешнего предсказания выбирает один возможный MV-вариант из множества возможных MV-вариантов, полученных на этапе Sh_11, извлекая MV текущего блока (этап Sh_12). Более конкретно, модуль 218 внешнего предсказания получает информацию MV-выбора, включенную в качестве параметра предсказания в поток, и выбирает возможный MV-вариант, идентифицированный посредством информации MV-выбора в качестве MV для текущего блока.

[0454] В завершение, модуль 218 внешнего предсказания формирует изображение предсказания для текущего блока посредством выполнения компенсации движения текущего блока с использованием извлеченного MV и декодированной опорной картинки (этап Sh_13). Процессы на этапах Sh_11-Sh_13 выполняются, например, для каждого блока. Например, когда процессы на этапах Sh_11-Sh_13 выполняются для каждого из всех блоков в слайсе, внешнее предсказание слайса с использованием режима нормального объединения заканчивается. Дополнительно, когда процессы на этапах Sh_11-Sh_13 выполняются для каждого из всех блоков в картинке, внешнее предсказание картинки с использованием режима нормального объединения заканчивается. Следует отметить, что не все блоки, включенные в слайс, подвергаются процессам на этапах Sh_11-Sh_13, и внешнее предсказание слайса с использованием режима нормального объединения может заканчиваться, когда часть блоков подвергается процессам. Это также применяется к картинкам на этапах Sh_11-Sh_13. Внешнее предсказание картинки с использованием режима нормального объединения может заканчиваться, когда процессы выполняются для части блоков в картинке.

[0455] MV-извлечение > FRUC-режим

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

[0456] Фиг. 86 является блок-схемой последовательности операций способа, иллюстрирующей пример процесса внешнего предсказания посредством FRUC-режима в декодере 200.

Во-первых, модуль 218 внешнего предсказания формирует список, указывающий MV декодированных блоков, пространственно или временно соседних с текущие блоком, посредством обращения к MV в качестве возможных MV-вариантов (список представляет собой список возможных MV-вариантов и, например, может использоваться также в качестве списка возможных MV-вариантов для режима нормального объединения (этап Si_11). Затем, наилучший возможный MV-вариант выбирается из множества возможных MV-вариантов, зарегистрированных в списке возможных MV-вариантов (этап Si_12). Например, модуль 218 внешнего предсказания вычисляет значение оценки каждого возможного MV-варианта, включенного в список возможных MV-вариантов, и выбирает один из возможных MV-вариантов в качестве наилучшего возможного MV-варианта на основе значений оценки. На основе выбранных наилучших возможных MV-вариантов, модуль 218 внешнего предсказания затем извлекает MV для текущего блока (этап Si_14). Более конкретно, например, выбранные наилучшие возможные MV-варианты непосредственно извлекаются в качестве MV для текущего блока. Дополнительно, например, MV для текущего блока может извлекаться с использованием сопоставления с шаблоном в окружающей области позиции, которая включается в опорную картинку и соответствует выбранному наилучшему возможному MV-варианту. Другими словами, оценка с использованием сопоставления с шаблоном в опорной картинке и значений оценки может выполняться в окружающей области наилучшего возможного MV-варианта, и когда имеется MV, который дает в результате лучшее значение оценки, наилучший возможный MV-вариант может обновляться на MV, который дает в результате лучшее значение оценки, и обновленный MV может определяться в качестве конечного MV для текущего блока. В варианте осуществления, обновление на MV, который дает в результате лучшее значение оценки, может не выполняться.

[0457] В завершение, модуль 218 внешнего предсказания формирует изображение предсказания для текущего блока посредством выполнения компенсации движения текущего блока с использованием извлеченного MV и декодированной опорной картинки (этап Si_15). Процессы на этапах Si_11-Si_15 выполняются, например, для каждого блока. Например, когда процессы на этапах Si_11-Si_15 выполняются для каждого из всех блоков в слайсе, внешнее предсказание слайса с использованием FRUC-режима заканчивается. Например, когда процессы на этапах Si_11-Si_15 выполняются для каждого из всех блоков в картинке, внешнее предсказание картинки с использованием FRUC-режима заканчивается. Каждый субблок может обрабатываться аналогично случаю каждого блока.

[0458] MV-извлечение > FRUC-режим

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

[0459] Фиг. 87 является блок-схемой последовательности операций способа, иллюстрирующей пример процесса внешнего предсказания посредством аффинного режима объединения в декодере 200.

В аффинном режиме объединения, во-первых, модуль 218 внешнего предсказания извлекает MV в соответствующих управляющих точках для текущего блока (этап Sk_11). Управляющие точки представляют собой верхнюю левую угловую точку текущего блока и верхнюю правую угловую точку текущего блока, как проиллюстрировано на фиг. 46A, либо верхнюю левую угловую точку текущего блока, верхнюю правую угловую точку текущего блока и нижнюю левую угловую точку текущего блока, как проиллюстрировано на фиг. 46B.

[0460] Например, когда способы MV-извлечения, проиллюстрированные на фиг. 47A-47C, используются, как проиллюстрировано на фиг. 47A, модуль 218 внешнего предсказания проверяет декодированный блок A (левый), блок B (верхний), блок C (верхний правый), блок D (нижний левый) и блок E (верхний левый) в этом порядке и идентифицирует первый эффективный блок, декодированный согласно аффинному режиму. Модуль 218 внешнего предсказания извлекает MV в управляющей точке с использованием идентифицированного первого эффективного блока, декодированного согласно аффинному режиму. Например, когда блок A идентифицируется, и блок A имеет две управляющих точки, как проиллюстрировано на фиг. 47B, модуль 218 внешнего предсказания вычисляет вектор v0 движения в верхней левой угловой управляющей точке текущего блока и вектор v1 движения в верхней правой угловой управляющей точке текущего блока из векторов v3 и v4 движения в верхнем левом углу и в верхнем правом углу декодированного блока, включающего в себя блок A. Таким образом, MV в каждой управляющей точке извлекается.

[0461] Следует отметить, что, как проиллюстрировано на фиг. 49A, MV в трех управляющих точках могут вычисляться, когда блок A идентифицируется, и блок A имеет две управляющих точки, и что, как проиллюстрировано на фиг. 49B, MV в двух управляющих точках могут вычисляться, когда блок A идентифицируется, и когда блок A имеет три управляющих точки.

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

[0463] Затем, модуль 218 внешнего предсказания выполняет компенсацию движения каждого из множества субблоков, включенных в текущий блок. Другими словами, модуль 218 внешнего предсказания вычисляет MV для каждого из множества субблоков в качестве аффинного MV, с использованием либо двух векторов v0 и v1 движения и вышеуказанного выражения (1A), либо трех векторов v0, v1 и v2 движения и вышеуказанного выражения (1B) (этап Sk_12). Модуль 218 внешнего предсказания затем выполняет компенсацию движения субблоков с использованием этих аффинных MV и декодированных опорных картинок (этап Sk_13). Когда процессы на этапах Sk_12 и Sk_13 выполняются для каждого из субблоков, включенных в текущий блок, внешнее предсказание с использованием аффинного режима объединения для текущего блока завершается. Другими словами, компенсация движения текущего блока выполняется для того, чтобы формировать изображение предсказания текущего блока.

[0464] Следует отметить, что вышеописанный список возможных MV-вариантов может формироваться на этапе Sk_11. Список возможных MV-вариантов, например, может представлять собой список, включающий в себя возможные MV-варианты, извлекаемые с использованием множества способов MV-извлечения для каждой управляющей точки. Множество способов MV-извлечения, например, могут представлять собой любую комбинацию способов MV-извлечения, проиллюстрированных на фиг. 47A-47C, способов MV-извлечения, проиллюстрированных на фиг. 48A и 48B, способов MV-извлечения, проиллюстрированных на фиг. 49A и 49B, и других способов MV-извлечения.

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

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

[0466] MV-извлечение > аффинный внешний режим

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

[0467] Фиг. 88 является блок-схемой последовательности операций способа, иллюстрирующей пример процесса внешнего предсказания посредством аффинного внешнего режима в декодере 200.

В аффинном внешнем режиме, сначала, модуль 218 внешнего предсказания извлекает MV-предикторы (v0, v1) или (v0, v1, v2) соответствующих двух или трех управляющих точек текущего блока (этап Sj_11). Управляющие точки представляют собой верхнюю левую угловую точку текущего блока, верхнюю правую угловую точку текущего блока и нижнюю левую угловую точку текущего блока, как проиллюстрировано на фиг. 46A или фиг. 46B.

[0468] Модуль 218 внешнего предсказания получает информацию выбора MV-предикторов, включенную в качестве параметра предсказания в поток, и извлекает MV-предиктор в каждой управляющей точке для текущего блока с использованием MV, идентифицированного посредством информации выбора MV-предикторов. Например, когда способы MV-извлечения, проиллюстрированные на фиг. 48A и 48B, используются, модуль 218 внешнего предсказания извлекает предикторы (v0, v1) или (v0, v1, v2) векторов движения в управляющих точках для текущего блока посредством выбора MV блока, идентифицированного посредством информации выбора MV-предикторов, из декодированных блоков около соответствующих управляющих точек для текущего блока, проиллюстрированного на фиг. 48A либо на фиг. 48B.

[0469] Затем, модуль 218 внешнего предсказания получает каждую MV-разность, включенную в качестве параметра предсказания в поток, и суммирует MV-предиктор в каждой управляющей точке для текущего блока и MV-разность, соответствующую MV-предиктору (этап Sj_12). Таким образом, MV в каждой управляющей точке для текущего блока извлекается.

[0470] Затем, модуль 218 внешнего предсказания выполняет компенсацию движения каждого из множества субблоков, включенных в текущий блок. Другими словами, модуль 218 внешнего предсказания вычисляет MV для каждого из множества субблоков в качестве аффинного MV с использованием либо двух векторов v0 и v1 движения и вышеуказанного выражения (1A), либо трех векторов v0, v1 и v2 движения и вышеуказанного выражения (1B) (этап Sj_13). Модуль 218 внешнего предсказания затем выполняет компенсацию движения субблоков с использованием этих аффинных MV и декодированных опорных картинок (этап Sj_14). Когда процессы на этапах Sj_13 и Sj_14 выполняются для каждого из субблоков, включенных в текущий блок, внешнее предсказание с использованием аффинного режима объединения для текущего блока завершается. Другими словами, компенсация движения текущего блока выполняется для того, чтобы формировать изображение предсказания текущего блока.

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

[0471] MV-извлечение > треугольный режим

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

[0472] Фиг. 89 является блок-схемой последовательности операций способа, иллюстрирующей пример процесса внешнего предсказания посредством треугольного режима в декодере 200.

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

[0473] Затем, модуль 218 внешнего предсказания получает множество возможных MV-вариантов для текущего блока на основе такой информации, как MV множества декодированных блоков, временно или пространственно окружающих текущий блок (этап Sx_12). Другими словами, модуль 218 внешнего предсказания формирует список возможных MV-вариантов.

[0474] Модуль 218 внешнего предсказания затем выбирает возможный MV-вариант для первого сегмента и возможный MV-вариант для второго сегмента в качестве первого MV и второго MV, соответственно, из множества возможных MV-вариантов, полученных на этапе Sx_11 (этап Sx_13). В это время, модуль 218 внешнего предсказания может получать, из потока, информацию MV-выбора для идентификации выбранного возможного MV-варианта в качестве параметра предсказания. Модуль 218 внешнего предсказания затем может выбирать первый MV и второй MV согласно информации MV-выбора.

[0475] Затем, модуль 218 внешнего предсказания формирует первое изображение предсказания посредством выполнения компенсации движения с использованием выбранного первого MV и декодированной опорной картинки (этап Sx_14). Аналогично, модуль 218 внешнего предсказания формирует второе изображение предсказания посредством выполнения компенсации движения с использованием выбранного второго MV и декодированной опорной картинки (этап Sx_15).

[0476] В завершение, модуль 218 внешнего предсказания формирует изображение предсказания для текущего блока посредством выполнения суммирования со взвешиванием первого изображения предсказания и второго изображения предсказания (этап Sx_16).

[0477] MV-оценка > DMVR

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

[0478] Фиг. 90 является блок-схемой последовательности операций способа, иллюстрирующей пример процесса оценки движения посредством DMVR в декодере 200.

Модуль 218 внешнего предсказания извлекает MV для текущего блока согласно режиму объединения (этап Sl_11). Затем, модуль 218 внешнего предсказания извлекает конечный MV для текущего блока посредством выполнения поиска в области, окружающей опорную картинку, указываемую посредством MV, извлекаемого на этапе Sl_11 (этап Sl_12). Другими словами, в этом случае, MV текущего блока определяется согласно DMVR.

[0479] Фиг. 91 является блок-схемой последовательности операций способа, иллюстрирующей пример процесса оценки движения посредством DMVR в декодере 200 и является такой же как фиг. 58B.

Во-первых, на этапе 1, проиллюстрированном на фиг. 58A, модуль 218 внешнего предсказания вычисляет затраты между позицией поиска (также называемой "начальной точкой"), указываемой посредством начального MV, и восемью окружающими позициями поиска. Модуль 218 внешнего предсказания затем определяет то, являются или нет затраты в каждой из позиций поиска, отличных от начальной точки, наименьшими. Здесь, при определении того, что затраты в одной из позиций поиска, отличных от начальной точки, являются наименьшими, модуль 218 внешнего предсказания изменяет цель на позицию поиска, в которой наименьшие затраты получаются, и выполняет процесс на этапе 2, проиллюстрированном на фиг. 58. Когда затраты в начальной точке являются наименьшими, модуль 218 внешнего предсказания пропускает процесс на этапе 2, проиллюстрированном на фиг. 58A, и выполняет процесс на этапе 3.

[0480] На этапе 2, проиллюстрированном на фиг. 58A, модуль 218 внешнего предсказания выполняет поиск, аналогичный процессу на этапе 1, относительно позиции поиска после того, как цель изменяется, в качестве новой начальной точки согласно результату процесса на этапе 1. Модуль 218 внешнего предсказания затем определяет то, являются или нет затраты в каждой из позиций поиска, отличных от начальной точки, наименьшими. Здесь, при определении того, что затраты в одной из позиций поиска, отличных от начальной точки, являются наименьшими, модуль 218 внешнего предсказания выполняет процесс на этапе 4. Когда затраты в начальной точке являются наименьшими, модуль 218 внешнего предсказания выполняет процесс на этапе 3.

[0481] На этапе 4, модуль 218 внешнего предсказания рассматривает позицию поиска в начальной точке в качестве конечной позиции поиска и определяет разность между позицией, указываемой посредством начального MV, и конечной позицией поиска в качестве векторной разности.

[0482] На этапе 3, проиллюстрированном на фиг. 58A, модуль 218 внешнего предсказания определяет пиксельную позицию с субпиксельной точностью, при которой наименьшие затраты получаются, на основе затрат в четырех точках, расположенных в верхней, нижней, левой и правой позициях относительно начальной точки на этапе 1 или на этапе 2, и рассматривает пиксельную позицию в качестве конечной позиции поиска.

[0483] Пиксельная позиция с субпиксельной точностью определяется посредством выполнения суммирования со взвешиванием каждого из четырех верхнего, нижнего, левого и правого векторов ((0, 1), (0,-1), (-1, 0) и (1, 0)), с использованием, в качестве весового коэффициента, затрат в соответствующих одной из четырех позиций поиска. Модуль 218 внешнего предсказания затем определяет разность между позицией, указываемой посредством начального MV, и конечной позицией поиска в качестве векторной разности.

[0484] Компенсация движения > BIO/OBMC/LIC

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

[0485] Фиг. 92 является блок-схемой последовательности операций способа, иллюстрирующей один пример процесса формирования изображения предсказания в декодере 200.

Модуль 218 внешнего предсказания формирует изображение предсказания (этап Sm_11) и корректирует изображение предсказания согласно любому из режимов, описанных выше (этап Sm_12).

[0486] Фиг. 93 является блок-схемой последовательности операций способа, иллюстрирующей другой пример процесса формирования изображения предсказания в декодере 200.

Модуль 218 внешнего предсказания извлекает MV для текущего блока (этап Sn_11). Затем, модуль 218 внешнего предсказания формирует изображение предсказания с использованием MV (этап Sn_12) и определяет то, следует или нет выполнять процесс коррекции (этап Sn_13). Например, модуль 218 внешнего предсказания получает параметр предсказания, включенный в поток, и определяет то, следует или нет выполнять процесс коррекции, на основе параметра предсказания. Этот параметр предсказания, например, представляет собой флаг, указывающий, должны либо нет применяться один или более вышеописанных режимов. Здесь, при определении необходимости выполнять процесс коррекции ("Да" на этапе Sn_13), модуль 218 внешнего предсказания формирует конечное изображение предсказания посредством коррекции изображения предсказания (этап Sn_14). Следует отметить, что, в LIC, яркость и цветность может корректироваться на этапе Sn_14. При определении необходимости не выполнять процесс коррекции ("Нет" на этапе Sn_13), модуль 218 внешнего предсказания выводит конечное изображение предсказания без коррекции изображения предсказания (этап Sn_15).

[0487] Компенсация движения > OBMC

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

[0488] Фиг. 94 является блок-схемой последовательности операций способа, иллюстрирующей пример процесса коррекции изображения предсказания посредством OBMC в декодере 200. Следует отметить, что блок-схема последовательности операций способа на фиг. 94 указывает последовательность операций коррекции изображения предсказания с использованием текущей картинки и опорной картинки, проиллюстрированную на фиг. 62.

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

Затем, модуль 218 внешнего предсказания получает изображение предсказания (Pred_L) посредством применения вектора (MV_L) движения, который уже извлечен для кодированного блока, соседнего слева от текущего блока, к текущему блоку (многократного использования вектора движения для текущего блока). Модуль 218 внешнего предсказания затем выполняет первую коррекцию изображения предсказания посредством перекрытия двух изображений предсказания Pred и Pred_L. Это предоставляет преимущество смешивания границы между соседними блоками.

[0490] Аналогично, модуль 218 внешнего предсказания получает изображение предсказания (Pred_U) посредством применения MV (MV_U), который уже извлечен для декодированного блока, граничащего выше текущего блока с текущим блоком (многократного использования вектора движения для текущего блока). Модуль 218 внешнего предсказания затем выполняет вторую коррекцию изображения предсказания посредством перекрытия изображения предсказания Pred_U с изображениями предсказания (например, Pred и Pred_L), для которых выполнена первая коррекция. Это предоставляет преимущество смешивания границы между соседними блоками. Изображение предсказания, полученное посредством второй коррекции, представляет собой изображение предсказания, в котором граница между соседними блоками смешивается (сглаживается), и в силу этого представляет собой конечное изображение предсказания текущего блока.

[0491] Компенсация движения > BIO

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

[0492] Фиг. 95 является блок-схемой последовательности операций способа, иллюстрирующей пример процесса коррекции изображения предсказания посредством BIO в декодере 200.

Как проиллюстрировано на фиг. 63, модуль 218 внешнего предсказания извлекает два вектора (M0, M1) движения, с использованием двух опорных картинок (Ref0, Ref1), отличающихся от картинки (Cur Pic), включающей в себя текущий блок. Модуль 218 внешнего предсказания затем извлекает изображение предсказания для текущего блока с использованием двух векторов (M0, M1) движения (этап Sy_11). Следует отметить, что вектор M0 движения представляет собой вектор (MVx0, MVy0) движения, соответствующий опорной картинке Ref0, и вектор M1 движения представляет собой вектор (MVx1, MVy1) движения, соответствующий опорной картинке Ref0.

[0493] Затем, модуль 218 внешнего предсказания извлекает интерполированное изображение I0 для текущего блока с использованием вектора M0 движения и опорной картинки L0. Дополнительно, модуль 218 внешнего предсказания извлекает интерполированное изображение I1 для текущего блока с использованием вектора M1 движения и опорной картинки L1 (этап Sy_12). Здесь, интерполированное изображение I0 представляет собой изображение, включенное в опорную картинку Ref0, и которое должно извлекаться для текущего блока, и интерполированное изображение I1 представляет собой изображение, включенное в опорную картинку Ref1, и которое должно извлекаться для текущего блока. Каждое из интерполированного изображения I0 и интерполированного изображения I1 может иметь размер, такой же как размер текущего блока. Альтернативно, каждое из интерполированного изображения I0 и интерполированного изображения I1 может представлять собой изображение, большее текущего блока. Кроме того, интерполированное изображение I0 и интерполированное изображение I1 могут включать в себя изображение предсказания, полученное посредством использования векторов (M0, M1) движения и опорных картинок (L0, L1) и применения фильтра для компенсации движения.

[0494] Дополнительно, модуль 218 внешнего предсказания извлекает градиентные изображения (Ix0, Ix1, Iy0, Iy1) текущего блока, из интерполированного изображения I0 и интерполированного изображения I1 (этап Sy_13). Следует отметить, что градиентные изображения в горизонтальном направлении представляют собой (Ix0, Ix1), и градиентные изображения в вертикальном направлении представляют собой (Iy0, Iy1). Модуль 218 внешнего предсказания может извлекать градиентные изображения, например, посредством применяя градиентный фильтр к интерполированным изображениям. Градиентные изображения могут представлять собой градиентные изображения, каждое из которых указывает величину пространственного изменения пиксельного значения вдоль горизонтального направления или величину пространственного изменения пиксельного значения вдоль вертикального направления.

[0495] Затем, модуль 218 внешнего предсказания извлекает, для каждого субблока текущего блока, оптический поток (vx, vy), который представляет собой вектор скорости, с использованием интерполированных изображений (I0, I1) и градиентных изображений (Ix0, Ix1, Iy0, Iy1) (этап Sy_14). В качестве одного примера, субблок может представлять собой 4×4-пиксельную суб-CU.

[0496] Затем, модуль 218 внешнего предсказания корректирует изображение предсказания для текущего блока с использованием оптического потока (vx, vy). Например, модуль 218 внешнего предсказания извлекает значение коррекции для значения пиксела, включенного в текущий блок, с использованием оптического потока (vx, vy) (этап Sy_15). Модуль 218 внешнего предсказания затем может корректировать изображение предсказания для текущего блока с использованием значения коррекции (этап Sy_16). Следует отметить, что значение коррекции может извлекаться в единицах пиксела либо может извлекаться в единицах множества пикселов или в единицах субблоков и т.д.

[0497] Следует отметить, что поток BIO-процесса не ограничен процессом, раскрытым на фиг. 95. Только часть процессов, раскрытая на фиг. 95, может выполняться, либо другой процесс может добавляться или использоваться в качестве замены, либо процессы могут выполняться в другом порядке обработки.

[0498] Компенсация движения > LIC

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

[0499] Фиг. 96 является блок-схемой последовательности операций способа, иллюстрирующей пример процесса коррекции изображения предсказания посредством LIC в декодере 200.

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

[0500] Затем, модуль 218 внешнего предсказания извлекает, для текущего блока, информацию, указывающую то, как значение яркости изменено между текущей картинкой и опорной картинкой (этап Sz_12). Это извлечение может выполняться на основе пиксельных значений сигнала яркости для декодированной левой соседней опорной области (окружающей опорной области) и декодированной верхней соседней опорной области (окружающей опорной области) и пиксельных значений сигнала яркости в соответствующих позициях в опорной картинке, указываемых посредством извлеченных MV. Модуль 218 внешнего предсказания вычисляет параметр коррекции яркости, с использованием информации, указывающей то, как значение сигнала яркости изменено (этап Sz_13).

[0501] Модуль 218 внешнего предсказания формирует изображение предсказания для текущего блока посредством выполнения процесса коррекции яркости, в котором параметр коррекции яркости применяется к опорному изображению в опорной картинке, указываемой посредством MV (этап Sz_14). Другими словами, изображение предсказания, которое представляет собой опорное изображение в опорной картинке, указываемой посредством MV, подвергается коррекции на основе параметра коррекции яркости. При этой коррекции, яркость может корректироваться, либо цветность может корректироваться.

[0502] Контроллер предсказания

Контроллер 220 предсказания выбирает внутреннее изображение предсказания или изображение внешнего предсказания и выводит выбранное изображение в сумматор 208. В целом, конфигурации, функции и процессы контроллера 220 предсказания, модуля 216 внутреннего предсказания и модуля 218 внешнего предсказания на стороне декодера 200 могут соответствовать конфигурациям, функциям и процессам контроллера 128 предсказания, модуля 124 внутреннего предсказания и модуля 126 внешнего предсказания на стороне кодера 100.

[0503] Первый аспект

Фиг. 97 является блок-схемой последовательности операций способа для примера последовательности 1000 операций обработки для декодирования изображения с использованием процесса CCALF (кросскомпонентной адаптивной контурной фильтрации) согласно первому аспекту. Последовательность операций обработки 1000 может выполняться, например, посредством декодера 200 по фиг. 67 и т.д.

[0504] На этапе S1001, процесс фильтрации применяется к восстановленным выборкам изображений первого компонента. Первый компонент, например, может представлять собой компонент сигнала яркости. Компонент сигнала яркости может представляться как Y-компонент. Восстановленные выборки изображений сигнала яркости могут представлять собой выходные сигналы ALF-процесса. Выходные сигналы ALF могут представлять собой восстановленные выборки сигналов яркости, сформированные через SAO-процесс. В некоторых вариантах осуществления, этот процесс фильтрации, выполняемый на этапе S1001, может представляться как CCALF-процесс. Числа восстановленных выборок сигналов яркости могут быть такими же как число коэффициентов фильтра, которые должны использоваться в CCALF-процессе. В других вариантах осуществления, процесс отсечения может выполняться для фильтрованных восстановленных выборок сигналов яркости.

[0505] На этапе S1002, восстановленная выборка изображений второго компонента модифицируется. Второй компонент может представлять собой компонент сигнала цветности. Компонент сигнала цветности может представляться как Cb- и/или Cr-компонент. Восстановленные выборки изображений сигнала цветности могут представлять собой выходные сигналы ALF-процесса. Выходные сигналы ALF могут восстанавливаться выборки сигналов цветности, сформированные через SAO-процесс. Модифицированная восстановленная выборка изображений может представлять собой сумму восстановленных выборок сигнала цветности и фильтрованных восстановленных выборок сигнала яркости, которые представляют собой вывод этапа S1001. Другими словами, процесс модификации может выполняться посредством суммирования фильтрованного значения восстановленных выборок сигналов яркости, сформированных посредством CCALF-процесса этапа S1001, с фильтрованным значением восстановленных выборок сигналов цветности, сформированных посредством ALF-процесса. В некоторых вариантах осуществления, процесс отсечения может выполняться для восстановленных выборок сигналов цветности. Первый компонент и второй компонент могут принадлежать одинаковому блоку или могут принадлежать различным блокам.

[0506] На этапе S1003, значение модифицированной восстановленной выборки изображений компонента сигнала цветности отсекается. Посредством выполнения процесса отсечения, значение выборок может гарантированно находиться в определенном диапазоне. Дополнительно, отсечение может способствовать лучшей сходимости в процессе оптимизации методом наименьших квадратов и т.д., чтобы минимизировать разность между остатком (разностью между исходным выборочным значением и восстановленным выборочным значением) и фильтрованным значением выборок сигналов цветности, чтобы определять коэффициенты фильтрации.

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

[0508] Фиг. 98 является блок-схемой, иллюстрирующей функциональную конфигурацию кодера и декодера согласно варианту осуществления. В этом варианте осуществления, процесс отсечения применяется к модифицированной восстановленной выборке изображений компонента сигнала цветности, аналогично этапу S1003 по фиг. 97. Например, модифицированная восстановленная выборка изображений может отсекаться таким образом, что она находится в диапазоне [0, 1023] для 10-битового вывода. Когда фильтрованные восстановленные выборки изображений компонента сигнала яркости, сформированного посредством CCALF-процесса, отсекаются, может быть необязательным отсекать модифицированную восстановленную выборку изображений компонента сигнала цветности в некоторых вариантах осуществления.

[0509] Фиг. 99 является блок-схемой, иллюстрирующей функциональную конфигурацию кодера и декодера согласно варианту осуществления. В этом варианте осуществления, процесс отсечения применяется к модифицированной восстановленной выборке изображений компонента сигнала цветности, аналогично этапу S1003 по фиг. 97. Процесс отсечения не применяется к фильтрованным восстановленным выборкам сигналов яркости, сформированным посредством CCALF-процесса. Фильтрованное значение восстановленных выборок сигналов цветности, сформированных посредством ALF-процесса, не должно отсекаться, как показано посредством "без отсечения" на фиг. 99. Другими словами, восстановленная выборка изображений, которая должна модифицироваться, формируется с использованием фильтрованного значения (ALF-сигнала цветности) и разностного значения (Cb/Cr CCALF), при этом отсечение не применяется к выводу сформированного выборочного значения.

[0510] Фиг. 100 является блок-схемой, иллюстрирующей функциональную конфигурацию кодера и декодера согласно варианту осуществления. В этом варианте осуществления, процесс отсечения применяется к фильтрованным восстановленным выборкам сигналов яркости, сформированным посредством CCALF-процесса ("отсечение выходных выборок"), и к модифицированным восстановленным выборкам изображений компонента сигнала цветности ("отсечение после суммирования"). Фильтрованное значение восстановленных выборок сигналов цветности, сформированных посредством ALF-процесса, не отсекается ("без отсечения"). В качестве примера, отсеченный диапазон, применяемый к фильтрованной восстановленной выборке изображений компонента сигнала яркости, может составлять [-2^15, 2^15-1] или [-2^7, 2^7-1].

[0511] Фиг. 101 показывает другой пример, в котором процесс отсечения применяется к фильтрованным восстановленным выборкам сигналов яркости, сформированным посредством CCALF-процесса ("отсечение выходных выборок"), к модифицированным восстановленным выборкам изображений компонента сигнала цветности ("отсечение после суммирования") и к фильтрованным восстановленным выборкам сигналов цветности, сформированным посредством ALF-процесса ("отсечение"). Другими словами, выходные значения из CCALF-процесса и ALF-процесса для сигналов цветности отдельно отсекаются и отсекаются снова после того, как они суммируются. В этом варианте осуществления, модифицированная восстановленная выборка изображений компонента сигнала цветности не должна отсекаться. В качестве примера, конечный вывод из ALF-процесса для сигналов цветности может отсекаться до 10-битового значения. В качестве примера, отсеченный диапазон, применяемый к фильтрованным восстановленным выборкам изображений компонента сигнала яркости, может составлять [-2^15, 2^15-1] или [-2^7, 2^7-1]. Этот диапазон может быть фиксированным или может адаптивно определяться. В любом случае, диапазон может сигнализироваться в информации заголовка, например, в SPS (наборе параметров последовательности) или APS (наборе параметров адаптации). В случае, когда нелинейная ALF используется, параметры отсечения могут задаваться для "отсечения после суммирования" на фиг. 101.

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

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

[0513] Второй аспект

Фиг. 102 является блок-схемой последовательности операций способа для примера последовательности 2000 операций обработки для декодирования изображения, применяющего CCALF-процесс с использованием заданной информации, согласно второму аспекту. Последовательность операций обработки 2000 может выполняться, например, посредством декодера 200 по фиг. 67 и т.д.

[0514] На этапе S2001, параметр отсечения синтаксически анализируется из потока битов. Параметр отсечения может синтаксически анализироваться из VPS, APS, SPS, PPS, заголовка слайса, на CTU- или TU-уровне, как описано на фиг. 103A-103F. Фиг. 103A-103F являются концептуальными схемами, указывающими местоположение(я) параметров отсечения. Параметр, описанный в каждом из фиг. 103A-103F, может заменяться посредством другого типа параметра отсечения, флага или индекса. Два или более параметров отсечения могут синтаксически анализироваться из двух или более наборов параметров в потоке битов.

[0515] На этапе S2002, разность отсекается с использованием параметра отсечения. Разность формируется на основе восстановленных выборок изображений первого компонента (например, разностного значения (Cb/Cr CCALF) на фиг. 98-101). В качестве примера, первый компонент представляет собой компонент сигнала яркости, и разность представляет собой фильтрованные восстановленные выборки сигналов яркости, сформированные посредством CCALF-процесса. В этом случае, процесс отсечения применяется к фильтрованным восстановленным выборкам сигналов яркости с использованием синтаксически проанализированного параметра отсечения.

[0516] Параметр отсечения ограничивает значение таким образом, что оно находится в требуемом диапазоне. Если требуемый диапазон составляет [-3, 3], согласно примеру, значение 5 отсекается до 3 с использованием операции clip(-3, 3, 5). В этом примере, значение -3 представляет собой нижний диапазон, и значение 3 представляет собой верхний диапазон.

[0517] Параметр отсечения может указывать индекс, чтобы извлекать нижний диапазон и верхний диапазон, как показано на фиг. 104I. В этом примере, ccalf_luma_clip_idx[ ] представляет собой индекс, -range_array[ ] представляет собой нижний диапазон, и range_array[ ] представляет собой верхний диапазон. В этом примере, range_array[ ] представляет собой определенный массив диапазонов, который может отличаться от массива диапазонов, используемого для ALF. Определенный массив диапазонов может быть предварительно определен.

[0518] Параметр отсечения может указывать нижний диапазон и верхний диапазон, как показано на фиг. 104(ii). В этом примере, -ccalf_luma_clip_low_range[ ] представляет собой нижний диапазон, и ccalf_luma_clip_up_range[ ] представляет собой верхний диапазон.

[0519] Параметр отсечения может указывать общий диапазон как для нижнего диапазона, так и для верхнего диапазона, как показано на фиг. 104(iii). В этом примере, -ccalf_luma_clip_range представляет собой нижний диапазон, и ccalf_luma_clip_range представляет собой верхний диапазон.

[0520] Разность формируется посредством умножения, деления, суммирования или вычитания, по меньшей мере, двух восстановленных выборок изображений первого компонента. Две восстановленных выборки изображений, например, могут исходить из текущих и соседних выборок изображений или двух соседних выборок изображений. Местоположения текущих и соседних выборок изображений могут быть предварительно определены.

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

[0522] На этапе S2004, изображение декодируется с использованием модифицированной восстановленной выборки изображений.

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

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

[0524] Третий аспект

Фиг. 105 является блок-схемой последовательности операций способа для примера последовательности 3000 операций обработки для декодирования изображения, применяющего CCALF-процесс с использованием коэффициента фильтрации согласно третьему аспекту. Последовательность операций обработки 3000 может выполняться, например, посредством декодера 200 по фиг. 67 и т.д. Коэффициент фильтрации используется на этапе фильтрации CCALF-процесса, чтобы формировать фильтрованную восстановленную выборку изображений компонента сигнала яркости.

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

[0526] На этапе S3002, если коэффициент фильтрации находится внутри заданной симметричной области ("Да" на этапе S3001), коэффициент фильтрации копируется в симметричную позицию, и набор коэффициентов фильтрации формируется.

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

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

[0528] На этапе S3005, изображение декодируется с использованием модифицированной восстановленной выборки изображений.

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

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

[0530] Фиг. 106A-106H, 107A-107H, 108A-108H, 109A-109D и 110A-110D являются концептуальными схемами примеров, указывающих местоположения коэффициентов фильтрации, которые должны использоваться в CCALF-процессе. В этих примерах, некоторые коэффициенты, включенные в набор коэффициентов, сигнализируются, при условии, что симметрия существует.

[0531] В частности, фиг. 106A, 106B, 106C и 106D указывают примеры, в которых часть набора CCALF-коэффициентов (помеченных посредством диагональных линий и шаблонов зернистости) расположена в заданной симметричной области. В этих примерах, симметричные области имеют линейно-симметричную форму. Только некоторые помеченные коэффициенты (помеченные посредством диагональных линий или шаблонов зернистости) и коэффициенты белого цвета могут кодироваться в поток битов, и другие коэффициенты могут формироваться посредством использования кодированных коэффициентов. В качестве других примеров, только помеченные коэффициенты могут формироваться и использоваться в процессе фильтрации. Другие коэффициенты белого цвета (не помеченные посредством любого шаблона) не должны использоваться в процессе фильтрации.

[0532] Фиг. 106E, 106F, 106G и 106H указывают примеры, в которых форма симметричной области является горизонтальной, вертикальной, диагональной, наряду с направлением, точечно-симметричной или точечно-симметричной с направлением.

[0533] На этих чертежах, только часть коэффициентов, которые помечаются посредством диагональных линий или шаблонов зернистости, возможно, должна кодироваться. Местоположения коэффициентов, которые должны кодироваться, могут определяться или предварительно определяться. Например, коэффициенты могут кодироваться в определенном порядке сканирования, и коэффициент, который появляется первым, может кодироваться первым. Коэффициент в симметричной области, коэффициент которой не кодируется, может копироваться из коэффициента, который расположен в его симметричной позиции. В некоторых вариантах осуществления, может быть необязательным обрабатывать коэффициенты на основе симметрии. Например, когда определяется , что i-ый коэффициент является таким же как j-ый коэффициент в порядке сканирования, процесс может просто копировать j-ое значение в i-ое значение. Местоположение может определяться на основе других параметров.

[0534] Фиг. 107A, 107B, 107C и 107D указывают примеры, в которых часть набора CCALF-коэффициентов (помеченных посредством диагональных линий и шаблонов зернистости) расположена в заданной симметричной области. В этих примерах, число симметричных коэффициентов может отличаться. Число симметричных коэффициентов может определяться, предварительно определяться или может сигнализироваться на уровне картинки, уровне слайса или уровне блока.

[0535] Фиг. 107E, 107F, 107G и 107H указывают примеры, в которых часть набора CCALF-коэффициентов (помеченных посредством диагональных линий и шаблонов зернистости) расположена в заданной симметричной области. В этих примерах, симметричные коэффициенты на одной симметричной стороне могут отличаться от соответствующих коэффициентов на другой симметричной стороне, т.е. некоторые коэффициенты (например, набор коэффициентов) на одной стороне являются симметричными с различными значениями коэффициентов (например, другим набором коэффициентов) на другой стороне. В качестве примера, только часть коэффициентов "шаблона зернистости" на одной симметричной стороне может кодироваться в поток битов и копироваться, чтобы формировать коэффициенты "шаблона с диагональными линиями" на другой симметричной стороне.

[0536] Фиг. 108A, 108B, 108C и 108D указывают примеры форм фильтра, в которых тип сигналов цветности служит в качестве определенного формата. Определенный формат, например, может представлять собой YUV 420 тип 0. Отмеченные коэффициенты (коэффициенты шаблона с диагональными линиями или коэффициенты шаблонов зернистости) являются симметричными относительно позиции сигнала цветности типа сигналов цветности. Форма фильтра может проектироваться с возможностью быть симметричной относительно позиции сигнала цветности других YUV-форматов. Например, эти формы фильтра по фиг. 108A-108D могут использоваться в качестве значения по умолчанию, и другие формы фильтра могут определяться для использования в процессе фильтрации, когда параметр, кодированный в потоке битов, указывает другие форматы.

[0537] Фиг. 108E, 108F, 108G и 108H указывают примеры форм фильтра, в которых тип сигналов цветности служит в качестве определенного формата. Определенный формат может представлять собой YUV-формат сигнала цветности, отличающийся от YUV 420 тип 0. Различные формы фильтра могут использоваться для других форматов.

[0538] Фиг. 109A, 109B, 109C и 109D указывают другие примеры форм фильтра. На фиг. 109A, число симметричных коэффициентов может быть нулем, и все коэффициенты сигнализируются независимо. Число симметричных коэффициентов не должно обязательно кодироваться в поток битов. На фиг. 109B, число симметричных коэффициентов может составлять одну половину от всех коэффициентов.

[0539] Фиг. 110A, 110B, 110C и 110D указывают другие примеры форм фильтра и сигналов, которые должны кодироваться, с порядком сканирования, указываемым посредством стрелок. На фиг. 110A, порядок растрового сканирования применяется к коэффициентам фильтрации независимо от типа симметрии. На фиг. 110B, порядок растрового сканирования применяется к коэффициентам фильтрации, независимо от типа симметрии, и только коэффициенты белого цвета и коэффициенты шаблонов зернистости сигнализируются в потоке битов в порядке растрового сканирования. Декодер может использовать LUT (таблицу поиска), чтобы дублировать шаблоны зернистости, чтобы формировать коэффициенты шаблона с диагональными линиями. На фиг. 110C, шаблоны зернистости, расположенные в симметричной области, сканируются и сигнализируются, и затем коэффициенты белого цвета, расположенные в асимметричной области, сканируются и сигнализируются. На фиг. 110D, коэффициенты, расположенные в асимметричной области, сканируются и сигнализируются, и затем коэффициенты шаблона зернистости сканируются и сигнализируются.

[0540] Фиг. 111 и 112 являются концептуальными схемами дополнительных примеров, указывающих местоположения коэффициентов фильтрации, которые должны использоваться в CCALF-процессе. В этих примерах, симметричные позиции, местоположения или числа коэффициентов в наборе коэффициентов фильтрации могут быть адаптивными относительно типа сигналов цветности.

[0541] Фиг. 113 является блок-схемой, иллюстрирующей функциональную конфигурацию CCALF-процесса, выполняемого посредством кодера и декодера согласно варианту осуществления. После фильтрации картинки сигналов яркости с использованием сформированных коэффициентов фильтрации, выходные выборки применяются к картинке сигналов цветности. Фильтр с сформированными коэффициентами фильтрации применяется к выходной SAO-картинке сигналов яркости. Фильтрованные выборки (CC ALF Cb и CC ALF Cr) затем суммируются с выходной ALF-картинкой сигналов цветности.

[0542] Четвертый аспект

Фиг. 114 является блок-схемой последовательности операций способа для примера последовательности 4000 операций обработки для декодирования изображения, применяющего CCALF-процесс с использованием фильтра, выбранного из множества фильтров согласно четвертому аспекту. Последовательность 4000 операций обработки может выполняться, например, посредством декодера 200 по фиг. 67 и т.д. Этот вариант осуществления раскрывает способы модификации восстановленных выборок компонента с использованием информации из другого компонента.

[0543] На этапе S4001, параметр определяется. Параметр может синтаксически анализироваться из VPS, APS, SPS, PPS, заголовка слайса или на CTU- или TU-уровне, как описано на фиг. 103A-103F. Параметр синтаксически анализируется из потока битов, чтобы указывать фильтр. Например, параметр может указывать индекс, чтобы выбирать фильтр из определенного множества фильтров. Параметр может синтаксически анализироваться из потока битов, чтобы указывать формат субдискретизации сигналов цветности в качестве 4:4:4, 4:2:0, 4:2:2 или 4:1:1. Параметр может синтаксически анализироваться из потока битов, чтобы указывать цветовое пространство в качестве YCbCr или RGB. Параметр может синтаксически анализироваться из потока битов, чтобы указывать разрешение картинок в качестве 4K, FHD, CIF, QCIF. Параметр может указывать цветовой компонент в качестве Y, Cb или Cr. Параметр также может извлекаться с использованием информации сигнала яркости без сигнализации. Согласно примеру, параметр, соответствующий фильтру с небольшим числом отводов, может извлекаться, если сильный градиент или край обнаруживается в восстановленном изображении сигнала яркости, и параметр, соответствующий фильтру с большим числом отводов, может извлекаться, если слабый градиент или край обнаруживается в восстановленном изображении сигнала яркости. В качестве другого примера, параметр, соответствующий фильтру с большим числом отводов, может извлекаться, если сильный градиент или край обнаруживается в восстановленном изображении сигнала яркости, и параметр, соответствующий фильтру с небольшим числом отводов, может извлекаться, если слабый градиент или край обнаруживается в восстановленном изображении сигнала яркости.

[0544] На этапе S4002, фильтр выбирается из множества фильтров на основе параметра. Множество фильтров могут иметь различные формы или размеры. Множество фильтров могут иметь одинаковую форму и иметь различные значения коэффициентов. Параметр может указывать значения коэффициентов, которые должны использоваться для того, чтобы формировать набор коэффициентов фильтрации.

[0545] Фиг. 115 показывает пример последовательности операций обработки выбора фильтра.

На этапе S4011, определяется то, указывает или нет параметр определенный формат. Формат может быть предварительно определен. Определенный формат может указывать формат субдискретизации сигналов цветности в качестве 4:4:4, 4:2:0, 4:2:2 или 4:1:1. Определенный формат может указывать цветовой компонент в качестве Y, Cb или Cr. Определенный формат может указывать цветовое пространство в качестве YCbCr или RGB. Определенный формат может указывать разрешение картинок в качестве 4K, FHD, CIF, QCIF.

[0546] На этапе S4012, если определяется , что параметр указывает определенный формат ("Да" на этапе S4011), первый фильтр из множества фильтров выбирается.

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

[0547] Фиг. 116 и фиг. 117 иллюстрируют некоторые примеры фильтров. На фиг. 116, показывающем фильтры (1a)-(1i), общее число строк, имеющих максимальное число коэффициентов, является четным (например, 2, 4 или 6). На фиг. 117, показывающем фильтры (2a)-(2i), общее число строк, имеющих максимальное число коэффициентов, является нечетным (например, 1, 3 или 5).

[0548] Например, фильтр из фиг. 116 может выбираться, если параметр указывает , что формат субдискретизации сигналов цветности 4:2:0 применяется, в то время как фильтр из фиг. 117 может выбираться, если параметр указывает , что формат субдискретизации сигналов цветности 4:2:2, 4:4:4 или 4:1:1 применяется. Выбор фильтров из фиг. 116 и фиг. 117 может быть изменен на противоположное.

[0549] Например, фильтр из фиг. 116 может выбираться, если параметр указывает , что Y используется для того, чтобы модифицировать Cb или Cr, в то время как фильтр из фиг. 117 может выбираться, если параметр указывает , что Cb используется для того, чтобы модифицировать Cr, либо Cr используется для того, чтобы модифицировать Cb. Выбор фильтров из фиг. 116 и фиг. 117 может быть изменен на противоположное.

[0550] Например, фильтр из фиг. 116 может выбираться, если параметр указывает , что цветовое YCbCr-пространство применяется, в то время как фильтр из фиг. 117 может выбираться, если параметр указывает , что цветовое RGB-пространство применяется. Выбор фильтров из фиг. 116 и фиг. 117 может быть изменен на противоположное.

[0551] Например, первый фильтр из фиг. 116 может выбираться, если параметр указывает , что разрешение изображений является большим (например, 4K или 8K), в то время как фильтр, отличающийся от первого фильтра из фиг. 116, может выбираться, если параметр указывает , что разрешение изображений является небольшим (например, QCIF или CIF). Размер двух выбранных фильтров может отличаться. Например, фильтр (1a) может выбираться для QCIF-разрешения изображений, фильтр (1c) может выбираться для FHD-разрешения изображений, и фильтр (1e) может выбираться для 8K-разрешения изображений.

[0552] Например, первый фильтр из фиг. 117 может выбираться, если параметр указывает , что разрешение изображений является большим (например, 4K или 8K), в то время как фильтр, отличающийся от первого фильтра из фиг. 117, может выбираться, если параметр указывает , что разрешение изображений является небольшим (например, QCIF или CIF). Размер двух выбранных фильтров может отличаться. Например, фильтр (2a) может выбираться для QCIF-разрешения изображений, фильтр (2c) может выбираться для FHD-разрешения изображений, и фильтр (2e) может выбираться для 8K-разрешения изображений.

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

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

[0555] На этапе S4005, изображение декодируется с использованием модифицированной восстановленной выборки изображений.

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

[0556] Более одного набора фильтров может сигнализироваться. Различные наборы фильтров могут иметь различные формы и размеры. То, какой фильтр должен использоваться, может синтаксически анализироваться или определяться после этого (например, из filter_id).

[0557] Пятый аспект

Фиг. 118 является блок-схемой последовательности операций способа для примера последовательности 5000 операций обработки для декодирования изображения, применяющего CCALF-процесс с использованием параметра согласно пятому аспекту. Последовательность операций обработки 5000 может выполняться, например, посредством декодера 200 по фиг. 67 и т.д.

[0558] На этапе S5001, первый параметр синтаксически анализируется из потока битов. Первый параметр может синтаксически анализироваться из VPS, APS, SPS, PPS, заголовка слайса или на CTU- или TU-уровне (фиг. 103A-103F, при этом "параметр" соответствует "первому параметру"). Первый параметр может указывать формат субдискретизации сигналов цветности в качестве 4:4:4, 4:2:0, 4:2:2 или 4:1:1. Первый параметр может указывать цветовое пространство в качестве YCbCr или RGB. Первый параметр может указывать разрешение картинок в качестве 4K, FHD, CIF, QCIF. Первый параметр может указывать цветовой компонент в качестве Y, Cb или Cr.

[0559] На этапе S5002, определяется то, равен или нет первый параметр определенному значению. Определенное значение может быть предварительно определено.

На этапе S5003, если определяется , что первый параметр равен определенному значению ("Да" на этапе S5002), первое число коэффициентов синтаксически анализируется из потока битов. Первое число коэффициентов может синтаксически анализироваться из VPS, APS, SPS, PPS, заголовка слайса или на CTU- или TU-уровне (фиг. 103A-103F, при этом "параметр" соответствует "первому числу коэффициентов").

[0560] На этапе S5004, если определяется , что первый параметр не равен определенному значению ("Нет" на этапе S5003), второе число коэффициентов, не равное первому числу коэффициентов, синтаксически анализируется из потока битов. Второе число коэффициентов может синтаксически анализироваться из VPS, APS, SPS, PPS, заголовка слайса или на CTU- или TU-уровне (фиг. 103A-103F, при этом "параметр" соответствует "второму числу коэффициентов"). Первое число и второе число из этапа S5002 и этапа S5003 могут отличаться.

[0561] Например, как показано на фиг. 119I, число коэффициентов (NumCoeff), когда первый параметр указывает , что формат субдискретизации сигналов цветности 4:2:0 применяется, отличается от числа коэффициентов, когда первый параметр указывает , что формат субдискретизации сигналов цветности 4:2:2, 4:4:4 или 4:1:1 применяется.

[0562] Например, как показано на фиг. 119(ii), число коэффициентов, когда первый параметр указывает , что цветовое YCbCr-пространство применяется, отличается от числа коэффициентов, когда первый параметр указывает , что цветовое RGB-пространство применяется.

[0563] Например, как показано на фиг. 119(iii), число коэффициентов, когда первый параметр указывает , что Y используется для того, чтобы модифицировать Cb или Cr, отличается от числа коэффициентов, когда первый параметр указывает , что Cb используется для того, чтобы модифицировать Cr, или Cr используется для того, чтобы модифицировать Cb.

[0564] Например, как показано на фиг. 119 (iv), число коэффициентов, когда первый параметр указывает , что разрешение изображений является большим (например, 4K, или 8K), отличается от числа коэффициентов, когда первый параметр указывает , что разрешение изображений является небольшим (например, QCIF или CIF).

[0565] На фиг. 119 (i)-(iv), информация как формат субдискретизации сигналов цветности и разрешение изображений может получаться, если SPS_id кодируется в APS.

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

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

[0567] На этапе S5007, изображение декодируется с использованием модифицированной восстановленной выборки изображений.

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

[0568] Более одного набора коэффициентов может сигнализироваться. Различные наборы коэффициентов могут иметь различные числа коэффициентов. Различные наборы коэффициентов могут иметь одинаковое число коэффициентов. Число коэффициентов из этих наборов коэффициентов может быть фиксированным. Который набор коэффициентов использоваться синтаксически анализируется или определяется после этого (например, из coeff_set_id или filter_id).

[0569] Шестой аспект

Фиг. 120 является блок-схемой последовательности операций способа для примера последовательности 6000 операций обработки для декодирования изображения, применяющего CCALF-процесс с использованием параметра согласно шестому аспекту. Последовательность операций обработки 6000 может выполняться, например, посредством декодера 200 по фиг. 67 и т.д.

[0570] На этапе S6001, процесс выбирает, по меньшей мере, набор восстановленных выборок из первого компонента.

На этапе S6002, процесс извлекает значение на основе выбранного набора восстановленных выборок.

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

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

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

[0571] Фиг. 121, 122 и 123 являются концептуальными схемами, иллюстрирующими примеры формирования CCALF-значения компонента сигнала яркости (см. этап S6002) для текущей выборки сигналов цветности посредством вычисления средневзвешенного значения соседних выборок. Другими словами, в этом примере, CCALF-значение выборок сигналов яркости для выборки сигналов цветности формируется посредством вычисления взвешенной суммы выборок сигналов яркости, расположенных в соседней области выборки сигналов цветности. Выборки сигналов яркости включают в себя выборку, расположенную рядом с выборкой сигналов цветности.

[0572] На фиг. 121, местоположение, указываемое посредством ромбовидной формы, представляет собой местоположение текущей выборки сигналов цветности. Например, значение, соответствующее местоположению (curr) для CCALF, может извлекаться посредством вычисления усредненного значения соседних выборок сигналов яркости, которые помечаются с шаблонами зернистости. Выборки сигналов яркости белого цвета не должны использоваться для процесса усреднения. Другими словами, значение для CCALF может извлекаться посредством обращения к выборочному значению выборки сигналов яркости, расположенной рядом с текущей выборкой сигналов цветности. Предусмотрено две таких выборки сигналов яркости в примере по фиг. 121.

[0573] Фиг. 122 описывает примерные уравнения для вычисления CCALF-значения. CCALF-значение может извлекаться посредством использования значений коэффициентов фильтрации и выборочных значений сигналов яркости. Значение коэффициента фильтрации умножается на результат вычитания двух значений соседней выборки сигналов яркости. Выборка сигналов яркости, используемая при каждом вычислении вычитания, может быть расположена рядом с текущей выборкой сигналов цветности. Форма уравнений может быть такой же как форма, используемая в процессе ALF-фильтрации. В некоторых вариантах осуществления, если значение коэффициента фильтрации меньше 64, значение коэффициента может задаваться равным нулю.

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

[0575] Фиг. 124 и 125 являются концептуальными схемами, иллюстрирующими примеры формирования CCALF-значения компонента сигнала яркости для текущей выборки посредством вычисления средневзвешенного значения соседних выборок, при этом местоположения соседних выборок определяются адаптивно относительно (согласно) типа сигналов цветности. Другими словами, местоположения выборок сигналов яркости, которые должны использоваться при вычислении со взвешиванием, определяются на основе местоположения текущей выборки сигналов цветности.

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

[0577] Фиг. 126 и 127 являются концептуальными схемами, иллюстрирующими примеры формирования CCALF-значения компонента сигнала яркости посредством применения побитового сдвига к выходному значению вычисления со взвешиванием. Другими словами, процесс сдвига с понижающим масштабированием применяется к фильтрованному значению выборок сигналов яркости, так же как в ALF-процессе. В некоторых вариантах осуществления, если значение коэффициента меньше 64, значение коэффициента может задаваться равным нулю.

[0578] Число битов для сдвига для CCALF представляется как x. Значение x может определяться в качестве одинакового значения со значением в ALF-процессе. В некоторых примерах значение x может быть фиксированно равным 10. В некоторых примерах значение x может быть фиксированно равным 7.

[0579] Седьмой аспект

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

[0580] На этапе S7001, один или более параметров синтаксически анализируются из потока битов. Один или более параметров могут кодироваться, по меньшей мере, в одном из APS, SPS, PPS, заголовка слайса или на уровне CTU, как показано на фиг. 129A-129E. Фиг. 130A-130D показывает примерные процессы извлечения одного или более параметров.

[0581] Один или более параметров могут находиться в SPS. Слайс во-первых находит PPS согласно PPS_id, который кодируется в слайсе. PPS затем находит SPS согласно SPS_id, который кодируется в PPS. Через это соединение, слайс может извлекать один или более параметров в SPS, как показано на фиг. 130A.

[0582] Один или более параметров могут находиться в наборе параметров на уровне картинки, например, в PPS. Слайс во-первых находит PPS согласно PPS_id, который кодируется в слайсе. Через это соединение, слайс может извлекать один или более параметров в PPS, как показано на фиг. 130B.

[0583] Один или более параметров могут находиться в APS. Слайс во-первых находит APS согласно APS_id, который кодируется в слайсе. Через это соединение, слайс может извлекать один или более параметров в APS, как показано на фиг. 130C.

[0584] Один или более параметров могут находиться в слайсе (фиг. 130D). Слайс может получать один или более параметров из своего внутреннего заголовка или данных.

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

[0585] Выборки могут группироваться в квадратную форму, имеющую конкретный размер, к примеру, в 4×4, 8×8, 16×16, 16×16, 32×32, 64×64 или 128×128 выборок.

Первый параметр может синтаксически анализироваться до синтаксического анализа заголовка слайса или данных слайсов. Например, первый параметр может синтаксически анализироваться из APS, SPS или PPS.

[0586] Первый параметр может синтаксически анализироваться из заголовка слайса.

Первый параметр может синтаксически анализироваться из данных единиц дерева кодировки (CTU).

Первый параметр может зависеть от типа субдискретизации сигналов цветности или CTU-размера или обоих. Если тип субдискретизации сигналов цветности представляет собой 4:4:4, размер блока, выбранный посредством первого параметра, может составлять 4×4, 8×8, 16×16, 32×32, 64×64 или 128×128. Если тип субдискретизации сигналов цветности представляет собой 4:2:2 или 4:2:0, размер блока, выбранный посредством первого параметра, может составлять 4×4, 8×8, 16×16, 32×32 или 64×64.

[0587] Первый параметр может зависеть от CTU-размера, причем выбранный размер блока не может превышать его CTU-размер.

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

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

Второй параметр может синтаксически анализироваться до синтаксического анализа первых данных единиц дерева кодировки (CTU). Например, второй параметр может синтаксически анализироваться из APS, SPS, PPS, заголовка слайса или данных слайсов.

[0589] Второй параметр может синтаксически анализироваться из данных единиц дерева кодировки (CTU). Фиг. 131A-131C показывают выборочные значения второго параметра. На фиг. 131A, второй параметр=1, что означает, например, "использовать фильтр для блока". На фиг. 131B, второй параметр=0, что означает, например, "не использовать фильтр для блока". На фиг. 131C, первый параметр выбирает размер блока 32×32, и второй параметр=1000 (в двоичном значении), блок 0=1, что означает "использовать фильтр для блока 0", блок 1=0, что означает "не использовать фильтр для блока 1", блок 2=0, что означает "не использовать фильтр для блока 2" и блок 3=0, что означает, например, "не использовать фильтр для блока 3". Множество вторых параметров могут указывать то, должны или нет модифицироваться множество блоков в единице дерева кодировки (CTU), имеющей конкретные размеры.

[0590] Вторые параметры могут указывать то, деактивируется или нет модификация восстановленных выборок в картинке или последовательности. Если вторые параметры указывают , что модификация восстановленных выборок деактивируется, этап S7002 по фиг. 128 должен приводить к этапу S7005 непосредственно, который соответствует ветви "Нет" на фиг. 128.

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

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

[0592] Согласно примеру, как показано на фиг. 132, второй параметр может синтаксически анализироваться с использованием арифметической кодировки до синтаксического анализа первых данных единиц дерева кодировки в слайсе, а далее данных байтового совмещения или битового совмещения. Фиг. 132 показывает пример байтового совмещения и местоположения инициализации арифметической кодировки (CABAC). В этом примере, инициализация арифметической кодировки для синтаксического анализа параметров после второго параметра в таком же слайсе может применяться.

[0593] На этапе S7002, определяется, должен или нет использоваться фильтр, на основе синтаксически проанализированных параметров.

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

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

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

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

[0596] Фиг. 133 является концептуальной схемой варьирования этого варианта осуществления.

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

[0597] Форма или выборки, описанные в седьмом аспекте, могут заменяться сегментом прямоугольной или непрямоугольной формы. Примеры сегмента непрямоугольной формы могут представлять собой, по меньшей мере, одно из сегмента треугольной формы, сегмента Г-образной формы, сегмента пятиугольной формы, сегмента шестиугольной формы и сегмента многоугольной формы, как показано на фиг. 133.

[0598] Восьмой аспект

Фиг. 134 является блок-схемой последовательности операций способа для примера последовательности 8000 операций обработки для декодирования изображения, применяющего CCALF-процесс с использованием параметра согласно восьмому аспекту. Последовательность 8000 операций обработки может выполняться, например, посредством декодера 200 по фиг. 67 и т.д.

[0599] На этапе S8001, определяется то, находится или нет первая выборка первого компонента за пределами виртуальной границы.

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

[0600] На этапе S8003, восстановленная выборка первого компонента, который включает в себя первую и вторую выборки, фильтруется.

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

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

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

[0602] Первый компонент может представлять собой выборки сигналов яркости, и другой компонент, выборочные значения которого модифицируются, могут представлять собой выборки сигналов цветности. Сигнал цветности может представлять собой Cb, Cr либо и то, и другое.

Фиг. 135 является блок-схемой последовательности операций способа для примера последовательности 8100 операций обработки для декодирования изображения, применяющего CCALF-процесс с использованием параметра согласно восьмому аспекту. Последовательность 8100 операций обработки может выполняться, например, посредством декодера 200 по фиг. 67 и т.д.

[0603] На этапе S8101, определяется то, представляет собой тип выборок сигналов цветности или нет первый тип. Фиг. 136 показывает примерные местоположения типов 0-5 выборок сигналов цветности. В частности, фиг. 136, например, показывает типы выборок сигналов цветности и их позиции относительно выборочных позиций сигналов яркости для 4:2:0.

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

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

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

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

Фиг. 137A-137D, 138 и 139 являются концептуальными схемами примеров симметричного дополнения.

[0608] Например, на этапе S8002 по фиг. 134, если тип выборок сигналов цветности равен 0 или 1, и виртуальная граница находится между C0 и C2, как показано на фиг. 137A, восстановленное выборочное значение второй выборки (C15) дублируется в первую выборку (C17). Аналогично, восстановленное выборочное значение второй выборки (C2) дублируется в первую выборку (C0).

[0609] В качестве другого примера, на этапе S8002, если тип выборок сигналов цветности равен 0 или 1, и виртуальная граница находится между C15 и C17, как показано на фиг. 137B, восстановленное выборочное значение второй выборки (C2) дублируется в первую выборку (C0). Аналогично, восстановленное выборочное значение второй выборки (C15) дублируется в первую выборку (C17).

[0610] В качестве другого примера, на этапе S8002, если тип выборок сигналов цветности равен 0 или 1, и виртуальная граница находится между C2 и C6, как показано на фиг. 137C, восстановленные выборочные значения вторых выборок (C10, C11 и C12) дублируются в первые выборки (C14, C15, C16 и C17). Аналогично, восстановленные выборочные значения вторых выборок (C5, C6 и C7) дублируются в первые выборки (C0, C1, C2 и C3).

[0611] В качестве другого примера, на этапе S8002, если тип выборок сигналов цветности равен 0 или 1, и виртуальная граница находится между C11 и C15, как показано на фиг. 137D, восстановленные выборочные значения вторых выборок (C5, C6 и C7) дублируются в первые выборки (C0, C1, C2 и C3). Аналогично, восстановленные выборочные значения вторых выборок (C10, C11 и C12) дублируются в первые выборки (C14, C15, C16 и C17).

[0612] Фиг. 138 и 139 показывают примеры выборок, которые дублируются на фиг. 137A и фиг. 137C, соответственно.

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

[0613] Фиг. 140A-140D, 141, 142 и 143 является концептуальными схемами примеров несимметричного дополнения.

Например, на этапе S8002, если тип выборок сигналов цветности равен 2 или 3, и виртуальная граница находится между C0 и C2, как показано на фиг. 140A, восстановленные выборочные значения вторых выборок (C10, C11 и C12) дублируются в первые выборки (C14, C15, C16 или C17). Аналогично, восстановленное выборочное значение второй выборки (C2) дублируется в первую выборку (C0).

[0614] В другом примере S8002, если тип выборок сигналов цветности равен 2 или 3, и виртуальная граница находится между C15 и C17, как показано на фиг. 140B, восстановленное выборочное значение второй выборки (C15) дублируется в первую выборку (C17).

[0615] В другом примере S8002, если тип выборок сигналов цветности равен 2 или 3, и виртуальная граница находится между C2 и C6, как показано на фиг. 140C, восстановленные выборочные значения вторых выборок (C4, C5, C6, C7 и C8) дублируются в первые выборки (C9, C10, C11, C12, C13, C14, C15, C16 и C17). Аналогично, восстановленные выборочные значения вторых выборок (C5, C6 и C7) дублируются в первые выборки (C0, C1, C2 и C3).

[0616] В другом примере S8002, если тип выборок сигналов цветности равен 2 или 3, и виртуальная граница находится между C11 и C15, как показано на фиг. 140D, восстановленные выборочные значения вторых выборок (C5, C6 и C7) дублируются в первые выборки (C0, C1, C2 и C3).

[0617] Фиг. 141, 142 и 143 показывают примеры выборок, которые дублируются на фиг. 140A, фиг. 140C и фиг. 140D, соответственно.

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

[0618] Фиг. 144A-144D, 145, 146 и 147 являются концептуальными схемами дополнительных примеров несимметричного дополнения.

В примере S8002, если тип выборок сигналов цветности равен 4 или 5, и виртуальная граница находится между C0 и C2, как показано на фиг. 144A, восстановленное выборочное значение второй выборки (C2) дублируется в первую выборку (C0).

[0619] В другом примере S8002, если тип выборок сигналов цветности равен 4 или 5, и виртуальная граница находится между C15 и C17, как показано на фиг. 144B, восстановленные выборочные значения вторых выборок (C5, C6 и C7) дублируются в первые выборки (C0, C1, C2 и C3). Аналогично, восстановленное выборочное значение второй выборки (C15) дублируется в первую выборку (C17).

[0620] В другом примере S8002, если тип выборок сигналов цветности равен 4 или 5, и виртуальная граница находится между C2 и C6, как показано на фиг. 144C, восстановленное выборочное значение второй выборки (C15) дублируется в первую выборку (C17). Аналогично, восстановленные выборочные значения вторых выборок (C5, C6 и C7) дублируются в первые выборки (C0, C1, C2 и C3).

[0621] В другом примере S8002, если тип выборок сигналов цветности равен 4 или 5, и виртуальная граница находится между C11 и C15, как показано на фиг. 144D, восстановленные выборочные значения вторых выборок (C9, C10, C11, C12 и C13) дублируются в первые выборки (C0, C1, C2, C3, C4, C5, C6, C7 и C8).

[0622] Фиг. 145, 146 и 147 показывают примеры выборок, которые дублируются на фиг. 144B, фиг. 144C и фиг. 144D, соответственно.

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

[0623] Фиг. 148A-148D, 149 и 150 являются концептуальными схемами дополнительных примеров симметричного дополнения.

В примере S8002, если тип выборок сигналов цветности равен 0, 2 или 4, и виртуальная граница находится между C4 и C5, как показано на фиг. 148A, восстановленные выборочные значения вторых выборок (C7 и C12) дублируются в первые выборки (C8 и C13). Аналогично, восстановленные выборочные значения вторых выборок (C5 и C10) дублируются в первые выборки (C4 и C9).

[0624] В другом примере S8002, если тип выборок сигналов цветности равен 0, 2 или 4, и виртуальная граница находится между C7 и C8, как показано на фиг. 148B, восстановленные выборочные значения вторых выборок (C5 и C10) дублируются в первые выборки (C4 и C9). Аналогично, восстановленные выборочные значения вторых выборок (C7 и C12) дублируются в первые выборки (C8 и C13).

[0625] В другом примере S8002, если тип выборок сигналов цветности равен 0, 2 или 4, и виртуальная граница находится между C5 и C6, как показано на фиг. 148C, восстановленные выборочные значения вторых выборок (C2, C6, C11 и C15) дублируются в первые выборки (C1, C4, C5, C9, C10 и C14). Аналогично, восстановленные выборочные значения вторых выборок (C2, C6, C11 и C15) дублируются в первые выборки (C3, C7, C8, C12, C13 и C16).

[0626] В другом примере S8002, если тип выборок сигналов цветности равен 0, 2 или 4, и виртуальная граница находится между C6 и C7, как показано на фиг. 148D, восстановленные выборочные значения вторых выборок (C2, C6, C11 и C15) дублируются в первые выборки (C1, C4, C5, C9, C10 и C14). Аналогично, восстановленные выборочные значения вторых выборок (C2, C6, C11 и C15) дублируются в первые выборки (C3, C7, C8, C12, C13 и C16).

[0627] Фиг. 149 и фиг. 150 показывают примеры выборок, которые дублируются на фиг. 148A и фиг. 148C, соответственно.

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

[0628] Фиг. 151A-151C, 152, 153, 154 и 155A-155L являются концептуальными схемами дополнительных примеров несимметричного дополнения.

В примере S8002, если тип выборок сигналов цветности равен 1, 3 или 5, и виртуальная граница находится между C4 и C5, как показано на фиг. 151A, восстановленные выборочные значения вторых выборок (C5 и C10) дублируются в первые выборки (C4 и C9).

[0629] В другом примере S8002, если тип выборок сигналов цветности равен 1, 3 или 5, и виртуальная граница находится между C7 и C8, как показано на фиг. 151B, восстановленные выборочные значения вторых выборок (C2, C6, C11 и C15) дублируются в первые выборки (C1, C4, C5, C9, C10 и C14). Аналогично, восстановленные выборочные значения вторых выборок (C7 и C12) дублируются в первые выборки (C8 и C13).

[0630] В другом примере S8002, если тип выборок сигналов цветности равен 1, 3 или 5, и виртуальная граница находится между C5 и C6, как показано на фиг. 151C, восстановленные выборочные значения вторых выборок (C7 и C12) дублируются в первые выборки (C8 и C13). Аналогично, восстановленные выборочные значения вторых выборок (C2, C6, C11 и C15) дублируются в первые выборки (C1, C4, C5, C9, C10 и C14).

[0631] Фиг. 152, 153 и 154 показывают примеры выборок, которые дублируются на фиг. 151A, фиг. 151B и фиг. 151C, соответственно.

Фиг. 155A-155L показывает дополнительные примеры дополнения с горизонтальной и вертикальной виртуальной границей.

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

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

[0633] Разновидности

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

[0634] Тип выборок сигналов цветности может заменяться флагом, который выбирает симметричное или несимметричное дополнение внутри виртуальной границы, где 0 выбирает симметричное дополнение, и 1 выбирает несимметричное дополнение, или 1 выбирает симметричное дополнение, и 0 выбирает несимметричное дополнение.

[0635] Флаг может сигнализироваться из потока битов или может извлекаться.

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

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

[0636] Например, флаг может извлекаться на основе состояния включения/выключения другого фильтра. Например, если ALF-фильтр включен, флаг может выбирать симметричное дополнение. Если ALF-фильтр выключен, флаг может выбирать несимметричное дополнение.

[0637] В качестве другого примера, если ALF-фильтр включен, флаг может выбирать несимметричное дополнение. Если ALF-фильтр выключен, флаг может выбирать симметричное дополнение.

Другие фильтры, которые могут использоваться, включают в себя LMCS, SAO, DBF и другие постфильтры.

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

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

[0638] Фиг. 156 является блок-схемой, иллюстрирующей функциональную конфигурацию кодера и декодера согласно примеру, в котором симметричное дополнение используется в виртуальных граничных местоположениях для ALF, и симметричное или несимметричное дополнение используется в виртуальных граничных местоположениях для CCALF на основе типа выборок сигналов цветности и виртуальном граничном местоположении.

[0639] Фиг. 157 является блок-схемой, иллюстрирующей функциональную конфигурацию кодера и декодера согласно примеру, в котором другое симметричное дополнение используется в виртуальных граничных местоположениях для ALF, и одностороннее дополнение используется в виртуальных граничных местоположениях для CCALF.

[0640] Фиг. 158A-158H являются концептуальными схемами, иллюстрирующими примеры одностороннего дополнения с горизонтальной или вертикальной виртуальной границей.

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

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

[0642] CCALF может включаться/выключаться в каждом блоке. Блок не должен обязательно перекрываться более чем между одной CTU. Поскольку ALF может включаться/выключаться в CTU, CCALF может включаться для CTU, в которой ALF включен.

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

[0644] Девятый аспект

Фиг. 160 является блок-схемой последовательности операций способа для примера последовательности 9000 операций обработки для декодирования изображения, применяющего CCALF-процесс с использованием параметра согласно девятому аспекту. Последовательность 9000 операций обработки может выполняться, например, посредством декодера 200 по фиг. 67 и т.д.

[0645] На этапе S9001, декодируется параметр CCALF-процесса. В этом процессе, первый параметр, который должен использоваться для определения модели энтропийного декодирования второго параметра, может определяться. Первый параметр для Cb-компонента и первый параметр для Cr-компонента могут иметь одинаковое значение. В качестве примера, первый параметр может представлять собой значение k, указывающее порядок двоичных битов экспоненциального кода Голомба. Значение k представляет собой индекс, соответствующий модели сигнализации значений в процессе энтропийного декодирования. Первый параметр может представлять собой другой параметр, указывающий способ для энтропийного декодирования. Декодер может выбирать модель из множества моделей, ссылающихся на первый параметр. В качестве примера, второй параметр может представлять собой параметр, указывающий значение коэффициента фильтрации фильтра, используемого в CCALF-процессе, т.е. второй параметр может декодироваться с экспоненциальным кодом Голомба с использованием порядков, указываемых посредством значения k. Одинаковое значение k может применяться ко всем коэффициентам фильтрации, включенным в фильтр CCALF.

[0646] На этапе S9002, фильтруются восстановленные выборки изображений первого компонента. Первый компонент может представлять собой компонент сигнала яркости.

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

[0647] На этапе S9004, изображение декодируется с использованием фильтрованной восстановленной выборки изображений.

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

[0648] Фиг. 162 является концептуальной схемой примерных уравнений процесса фильтрации. Форма уравнений CCALF-процесса может быть такой же как форма, используемая в ALF-процессе. Сумма может извлекаться посредством выполнения вычисления, описанного на фиг. 162, с использованием значений коэффициентов фильтрации и выборочных значений сигналов яркости. Число коэффициентов фильтрации может отличаться.

[0649] Фиг. 163 является концептуальной схемой примера синтаксиса относительно CCALF. Коэффициенты f[idx[k]] фильтрации для Cb и Cr могут сигнализироваться в потоке битов следующим образом: alf_cross_component_cb_coeff_abs, alf_cross_component_cb_coeff_sign, alf_cross_component_cr_coeff_abs и alf_cross_component_cr_coeff_sign, как описано на фиг. 163.

[0650] Фиг. 164 является концептуальной схемой примера сигнализации значения коэффициента фильтрации с использованием экспоненциального кода Голомба с фиксированным порядком k (обозначается как EGk). Значение коэффициента фильтрации преобразуется в двоичную форму с использованием битов 0 и 1. В качестве примера, значение коэффициента Cb, cb_coeff_abs, описанное в качестве значения x, может сигнализироваться со ссылкой на модель, определенную посредством значения k. Когда значение k равно 1 (EG1), и значение x равно 2, значение x сигнализируется в качестве 0100. Значение k может быть ассоциировано с другим правилом передачи служебных сигналов, например, значение x может сигнализироваться в качестве 1011, когда значение k равно 1, и значение x равно 2.

[0651] Фиг. 165A, 165B, 165C и 165D являются концептуальными схемами примеров EGk, применяемого к коэффициентам фильтрации. В качестве примера, коэффициенты, помеченные с пунктирными шаблонами, сигнализируются с использованием EG3, коэффициенты, помеченные с диагональными линиями, сигнализируются с использованием EG2, и коэффициенты, которые являются непомеченными (белые круги), не используются в процессе фильтрации.

[0652] На фиг. 165A, все коэффициенты сигнализируются с использованием одинакового значения EGk. Другими словами, все коэффициенты, используемые для процесса фильтрации, сигнализируются одинаковым способом. На фиг. 165B, только часть коэффициентов сигнализируется с использованием одинакового значения EGk. На фиг. 165C, только часть коэффициентов, которые помечаются с пунктирными шаблонами, используется в фильтрации, и коэффициенты, используемые в процессе фильтрации, сигнализируются с использованием одинакового значения EGk. Часть коэффициентов, помеченных с пунктирными шаблонами, может сигнализироваться. На фиг. 165D, только часть коэффициентов, которые помечаются с пунктирными шаблонами или шаблонами с диагональными линиями, используется в процессе фильтрации. Коэффициенты, помеченные с пунктирными шаблонами, и коэффициенты, помеченные с шаблонами с диагональными линиями, сигнализируются с использованием различных значений EGk.

[0653] Когда условие задается как удовлетворение тому, что все коэффициенты, которые должны использоваться в процессе фильтрации, сигнализируются одинаковым способом, примеры, описанные на фиг. 165A и 165C, удовлетворяют условию, и примеры, описанные на фиг. 165B и 165D, не удовлетворяют условию. Таким образом, при условии, что множество коэффициентов фильтрации используются для того, чтобы извлекать одно значение суммы, значение k, указывающее EG-порядок, который должен использоваться при кодировке и декодировании значений множества коэффициентов фильтрации, может иметь только одно значение.

[0654] Фиг. 166A и 166B являются концептуальными схемами примеров EGk, применяемого к коэффициентам фильтрации. В качестве примера, коэффициенты, помеченные с пунктирными шаблонами, сигнализируются с использованием EG3, и коэффициенты, помеченные с шаблонами с диагональными линиями, сигнализируются с использованием EG2.

[0655] На фиг. 166A, EG-порядок cb_coeff_abs может быть таким же как cr_coeff_abs. Например, EG3 для cb_coeff_abs и EG3 для cr_coeff_abs. На фиг. 166B, EG-порядок cb_coeff_abs может отличаться от cr_coeff_abs. Например, EG3 для cb_coeff_abs, но EG2 для cr_coeff_abs.

[0656] Фиг. 167A и 167B являются концептуальными схемами примеров EGk, применяемого к коэффициентам фильтрации. В качестве примера, коэффициенты, помеченные с пунктирными шаблонами, сигнализируются с использованием EG3, коэффициенты, помеченные с шаблонами с диагональными линиями, сигнализируются с использованием EG2, и непомеченные коэффициенты не используются в процессе фильтрации.

[0657] На фиг. 167A, EG-порядок cb_coeff_abs может быть таким же как cr_coeff_abs. Например, EG3 для cb_coeff_abs и EG3 для cr_coeff_abs.

На фиг. 167B, EG-порядок cb_coeff_abs может отличаться от cr_coeff_abs. Например, EG3 для cb_coeff_abs, но EG2 для cr_coeff_abs.

[0658] Фиг. 168A и 168B являются концептуальными схемами примеров EGk, применяемого к коэффициентам фильтрации. В качестве примера, коэффициенты, помеченные с пунктирными шаблонами, сигнализируются с использованием EG3, коэффициенты, помеченные в диагональном шаблоне, сигнализируются с использованием EG2.

[0659] На фиг. 168A, EG-порядок различных CTU может отличаться. Например, EG3 для CTU1, но EG2 для CTU2.

На фиг. 168B, на котором выборки используются для фильтрации, не все коэффициенты используют одинаковый EGk для CTU2.

[0660] Значение k, указывающее EG-порядок, который должен использоваться при кодировке и декодировании коэффициентов фильтрации, может определяться в качестве одного значения для каждой CTU. Таким образом, значение k может определяться относительно каждой CTU. Значение k может определяться на другом уровне, к примеру, на уровне CU, кирпича, слайса, тайла, субкадра, картинки или последовательности. Значение k может предварительно определяться или сигнализироваться в потоке битов.

[0661] Значение k, которое должно использоваться для того, чтобы получать выборочное значение Cr, и значение k, которое должно использоваться для того, чтобы получать выборочное значение Cb, могут иметь одинаковое значение или различные значения.

Различные фильтры могут применяться к различной CU, CTU либо слайсу Cr или Cb. В этом случае, различное значение k может использоваться в каждом фильтре.

[0662] Фиг. 169 является концептуальной схемой примера синтаксиса параметров, используемых в ALF-процессе. Значения коэффициентов для сигнала яркости, представленные в качестве alf_luma_coeff_abs, и значения коэффициентов для сигнала цветности, представленные в качестве alf_chroma_coeff_abs, могут сигнализироваться с использованием одинакового значения k.

[0663] На фиг. 169, alf_luma_coeff_abs[sfIdx][j] указывает абсолютное значение j-ого коэффициента, сигнализируемого фильтра сигналов яркости, указываемого посредством sfIdx. Когда alf_luma_coeff_abs[sfIdx][j] не присутствует, он логически выводится равным 0.

[0664] Порядок k экспоненциального преобразования uek(v) в двоичную форму Голомба задается равным 3.

alf_chroma_coeff_abs[altIdx][j] указывает абсолютное значение j-ого коэффициента фильтрации сигнала цветности для альтернативного фильтра сигнала цветности с индексом altIdx. Когда alf-chroma_coeff_abs[altIdx][j] не присутствует, он логически выводится равным 0. Требование соответствия потока битов заключается в том, что значения alf_chroma_coeff_abs[altIdx][j] должны находиться в диапазоне от 0 до 27-1, включительно.

[0665] Порядок k экспоненциального преобразования uek(v) в двоичную форму Голомба задается равным 3.

Фиг. 170 является концептуальной схемой примера синтаксиса параметров, используемых в CCALF-процессе. Значения коэффициентов для Cb, представленные в качестве alf_cross_component_cb_coeff_abs, и значения коэффициентов для Cr, представленные в качестве alf_cross_component_cr_coeff_abs, могут сигнализироваться с использованием одинакового значения k. Таким образом, одинаковый параметр для энтропийной кодировки параметров CCALF может применяться к Cb и Cr.

[0666] На фиг. 170, alf_cross_component_cb_oeff_abs[j] указывает абсолютное значение j-ого коэффициента сигнализируемого кросскомпонентного Cb-фильтра. Когда alf_cross_component_cb_coeff_abs[j] не присутствует, он логически выводится равным 0.

[0667] Порядок k экспоненциального кода Голомба задается равным 3.

alf_cross_component_cr_coeff_abs[j] указывает абсолютное значение j-ого коэффициента сигнализируемого кросскомпонентного Cr-фильтра. Когда alf-cross_component_cr_coeff_abs[j] не присутствует, он логически выводится равным равному 0.

[0668] Порядок k экспоненциального кода Голомба задается равным 3.

На фиг. 169 и 170, коэффициенты ALF- и CCALF-фильтрации сигнализируются с использованием фиксированного EGk. Таким образом, EG-порядок k является фиксированным. Фиксированный EG-порядок k для ALF и CCALF может отличаться. Например, 3 для ALF, но 4 для CCALF cb_coeff_abs и cr_coeff_abs. Фиксированный EG-порядок k для CCALF cb_coeff_a и cr_coeff_abs может отличаться. Например, 3 для cb_coeff_abs, но 4 для cr_coeff_abs.

[0669] Десятый аспект

Фиг. 171 является блок-схемой последовательности операций способа для примера последовательности 10000 операций обработки декодирования изображения, применяющего CCALF-процесс с использованием набора коэффициентов согласно десятому аспекту. Последовательность 10000 операций обработки может выполняться, например, посредством декодера 200 по фиг. 67 и т.д.

[0670] На этапе S10001, синтаксически анализируется набор коэффициентов. Число коэффициентов, включенных в набор коэффициентов, равно N.

На этапе S10002, восстановленные выборки изображений первого компонента фильтруются с использованием набора коэффициентов. Число восстановленных выборок изображений равно N. Первый компонент может представлять собой Y-компонент. Восстановленные выборки изображений фильтрации могут выводиться из набора адаптивных контурных фильтров, применяемых к восстановленным выборкам сигналов яркости, сформированным после SAO-процесса.

На этапе S10003, восстановленная выборка изображений второго компонента модифицируется с использованием фильтрованного значения. Второй компонент отличается от первого компонента. Второй компонент может представлять собой Cb/Cr-компонент. Модифицированная восстановленная выборка изображений может представлять собой сумму фильтрованной выборки второго компонента после ALF-процесса и фильтрованных восстановленных выборок первого компонента.

На этапе S10004, модифицированная восстановленная выборка изображений второго компонента декодируется. Восстановленная выборка изображений может отсекаться. Процесс отсечения применяется к модифицированной восстановленной выборке изображений. Например, для 10-битового вывода, модифицированная восстановленная выборка изображений может отсекаться таким образом, что она находится в диапазоне [0, 1023].

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

[0672] В ALF-процессе для сигнала цветности, конечный вывод может отсекаться до 10-битового значения. Процесс отсечения может не выполняться для конечного вывода, и процесс отсечения может выполняться для модифицированной восстановленной выборки изображений.

[0673] Фиг. 172A, 172B, 172C и 172D являются концептуальными схемами примеров формы наборов коэффициентов фильтрации.

Фиг. 172A и 172C показывают примеры 8-отводных CCALF-фильтров, имеющих ромбовидные формы 3×4. Позиции коэффициентов фильтрации соответствуют позициям восстановленных выборок изображений первого компонента. Восстановленная выборка изображений второго компонента, которая должна модифицироваться, может быть расположена в позиции, помеченной в качестве 2. Восстановленная выборка изображений второго компонента, которая должна модифицироваться, может быть расположена между 2 и 5. Первое значение коэффициента может формироваться посредством извлечения разности между значением первой восстановленной выборки изображений, расположенной в 2, и значениями первых восстановленных выборок изображений, расположенных в 0, 1, 3, 4, 5, 6 и 7.

[0674] Фиг. 173A, 173B, 173C и 173D являются концептуальными схемами примеров позиций восстановленных выборок первых компонентов и второго компонента.

Когда восстановленная выборка изображений второго компонента расположена в (x, y), позиция восстановленных выборок первых компонентов приводится на фиг. 173A, 173B, 173C и 173D.

[0675] На фиг. 173A, число коэффициентов фильтрации равно 8. Каждый коэффициент может иметь различное значение. Когда координата второй восстановленной выборки изображений представляет собой (x, y), координаты первой выборки восстановленных изображений представляют собой (2x, 2y-1), (2×1, 2y), (2x, 2y), (2x+1, 2y), (2×1, 2y+1), (2x, 2y+1), (2x+1, 2y+1) и (2x, 2y+2). первое значение коэффициента формируется посредством умножения значения коэффициента фильтрации CCALF-фильтра на результат вычитания значения одной из первых восстановленных выборок изображений (2x, 2y-1), (2×1, 2y), (2x, 2y), (2x+1, 2y), (2×1, 2y+1), (2x, 2y+1), (2x+1, 2y+1) и (2x, 2y+2) и значения первой восстановленной выборки изображений, расположенной в (2x, 2y). Процесс извлечения первого значения коэффициента может выполняться так же как описано в шестом варианте осуществления.

[0676] На фиг. 173B, число коэффициентов фильтрации равно 6.

На фиг. 173C, первый и последний коэффициент имеют одинаковое значение. Предусмотрено 7 коэффициентов.

[0677] На фиг. 173D, симметричные структуры используются для того, чтобы уменьшать число коэффициентов.

Следует отметить, что виртуальная граница, такая как виртуальная ALF-граница или виртуальная CCALF-граница, может применяться к фиг. 173A, 173C и 173D. Виртуальная граница может не применяться к фиг. 173B.

[0678] Следует отметить, что CCALF может не применяться к зоне CU, когда кодировка без потерь активируется или используется.

Процесс обработки виртуальных границ представляет собой управляющее регулирование для того, чтобы сокращать число строк опорных выборок изображений, которые должны использоваться в процессе фильтрации, за рамками границы, например, границы тайла, границы слайса или CTU-границы и т.д. В качестве одного примера, когда виртуальная граница задается как 2 строки пикселов, строки опорных выборок изображений, на которую ссылаются с пересечением границы, представляют собой 2 строки пикселов, и процесс фильтрации выполняется с использованием пикселов, сформированных посредством процесса дополнения. В качестве другого примера, когда форма фильтра представляет собой одну из форм, описанных на фиг. 173A, 173C или 173D, на соседний пиксел, смежный с верхней стороной текущего пиксела (x, y), ссылаются для процесса фильтрации, и процесс обработки виртуальных границ активируется. Когда форма фильтра представляет собой форму, описанную на фиг. 173B, процесс фильтрации может выполняться без ссылки на соседний пиксел, смежный с верхней стороной текущего пиксела, и процесс обработки виртуальных границ может деактивироваться, чтобы уменьшать объем обработки.

[0679] Режим кодировки без потерь представляет собой режим, чтобы пропускать процесс преобразования и процесс квантования. Кодированная картинка и декодированная картинка CU являются такими же как входная картинка (без потерь), когда CU обрабатывается с использованием режима кодировки без потерь. CCALF-процесс может деактивироваться в режиме без потерь. Когда CCALF-процесс деактивируется в режиме кодировки без потерь, модифицирование значения пиксела посредством процесса фильтрации деактивируется, и без потерь может гарантироваться.

[0680] Одиннадцатый аспект

Фиг. 174 является блок-схемой последовательности операций способа для примера последовательности 11000 операций обработки декодирования изображения, применяющего CCALF-процесс с использованием контекстной модели, выбранной на основе других блоков согласно одиннадцатому аспекту. Последовательность 11000 операций обработки может выполняться, например, посредством декодера 200 по фиг. 67 и т.д.

[0681] На этапе S11001, определяется флаг для первого блока. Флаг для первого блока указывает то, активируется или нет фильтр для первого блока. В примере, первый блок представляет собой пространственный соседний блок, смежный с третьим блоком. В примере, флаг для первого блока может указывать то, активируется или нет CCALF-фильтр для первого блока. Если CCALF-фильтр активируется, флаг для первого блока может задаваться равным 1. Если CCALF-фильтр деактивируется, флаг для первого блока может задаваться равным 0. Если первый блок не доступен, флаг для первого блока может задаваться равным 0. Флаг для первого блока может синтаксически анализироваться из потока битов.

[0682] На этапе S11002, определяется флаг для второго блока. Флаг для второго блока указывает то, активируется или нет фильтр для второго блока. В примере, второй блок отличается от первого блока и пространственного соседнего блока, смежного с третьим блоком. В примере, флаг для второго блока может указывать то, активируется или нет CCALF-фильтр для второго блока. Если CCALF-фильтр активируется, флаг для второго блока может задаваться равным 1. Если CCALF-фильтр деактивируется, флаг для второго блока может задаваться равным 0. Если второй блок не доступен, флаг для второго блока может задаваться равным 0. Флаг для второго блока может синтаксически анализироваться из потока битов.

[0683] Фиг. 175A, 175B, 175C и 175D являются концептуальными схемами примеров местоположений первого блока и второго блока. На фиг. 175A, первый блок является пространственно смежным с третьим блоком и расположен в левой стороне третьего блока. Второй блок является пространственно смежным с третьим блоком и расположен в верхней стороне третьего блока. На фиг. 175B, первый блок является пространственно смежным с третьим блоком и расположен в верхней стороне третьего блока. Второй блок является пространственно смежным с третьим блоком и расположен в левой стороне третьего блока. На фиг. 175C, первый блок является пространственно смежным с третьим блоком и расположен в правой стороне третьего блока. Второй блок является пространственно смежным с третьим блоком и расположен в верхней стороне третьего блока. На фиг. 175D, первый блок является пространственно смежным с третьим блоком и расположен в верхней стороне третьего блока. Второй блок является пространственно смежным с третьим блоком и расположен в правой стороне третьего блока. На фиг. 175A, 175B, 175C и 175D, первый блок и второй блок расположены на той же картинке с третьим блоком. Третий блок может представлять собой текущий блок.

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

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

[0686] В примере, второе значение вычисляется из суммирования значения флага для первого блока, значения флага для второго блока и первого значения, указывающего цветовой компонент. Фиг. 177 является примером уравнения вычисления второго значения. На фиг. 177, значение первого флага подставляется в condL, значение второго флага подставляется в condA, и первое значение первого индекса подставляется в ctxSetIdx. В этом примере, второе значение второго индекса представляется как ctxIdx.

[0687] Фиг. 178 является таблицей примера initValue и shiftIdx для ctxIdx третьего флага. initValue и shiftidx являются значениями для контекстной модели и могут преобразовываться в значение ctxIdx. Фиг. 179 является таблицей примера вычисленного ctxIdx. В этом примере, ctxSetIdx задается равным 0, когда цветовой компонент, который должен обрабатываться, представляет собой Cb-компонент. ctxSetIdx задается равным 1, когда цветовой компонент, который должен обрабатываться, представляет собой Cr-компонент. В другом примере, ctxSetIdx для Cr-компонента может быть равным 0 и быть таким же как ctxSetIdx для Cb-компонента. В этом случае, вычисленный ctxIdx для Cb и Cr могут иметь одинаковое значение.

[0688] Фиг. 180 является таблицей другого примера initValue и shiftIdx для ctxIdx третьего флага. Фиг. 181 является таблицей другого примера вычисленного ctxIdx. В этом примере, ctxSetIdx задается равным 1, когда цветовой компонент, который должен обрабатываться, представляет собой Cb-компонент. ctxSetIdx задается равным 2, когда цветовой компонент, который должен обрабатываться, представляет собой Cr-компонент.

[0689] На этапе S11004, третий флаг третьего блока декодируется с использованием выбранной контекстной модели. В примере, третий блок представляет собой текущий блок, и третий флаг указывает то, активируется CCALF-фильтр или нет для текущего блока. Третий флаг может представлять собой флаг, указывающий, применяется или нет CCALF-процесс к Cb-компоненту текущего блока. Третий флаг может представлять собой флаг, указывающий, применяется или нет CCALF-процесс к Cr-компоненту текущего блока.

[0690] На этапе S11005, определяется то, активируется или нет фильтр, на основе третьего флага. В примере, фильтр представляет собой CCALF. Если третий флаг представляет собой "истина", фильтр активируется. Если третий флаг представляет собой "ложь", фильтр деактивируется. В другом примере, фильтр может применяться, когда третий флаг представляет собой "истина", и фильтр может не применяться, когда третий флаг представляет собой "ложь".

[0691] На этапе S11006, если определяется , что фильтр активируется ("Да" на этапе S11005), выполняется CCALF-процесс. Восстановленные выборки изображений первого компонента фильтруются. Первый компонент может представлять собой компонент сигнала яркости.

[0692] На этапе S11007, восстановленная выборка изображений компонента, отличающегося от первого компонента, модифицируется с использованием вывода фильтрации. Компонент может представлять собой Cb-компонент. Компонент может представлять собой Cr-компонент.

[0693] На этапе S11008, изображение декодируется с использованием модифицированной восстановленной выборки изображений компонента.

CCALF-процесс может быть таким же как процессы, описанные в других вариантах осуществления.

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

[0694] Пример вычисленного ctxIdx флага ALF-управления может быть таким же как пример, показанный на фиг. 181.

Флаг CCALF-управления может определяться для каждой CTU. Флаг CCALF-управления может определяться для Cb-компонента и Cr-компонента отдельно.

[0695] Логика выбора контекстной модели для флага управления CCALF-фильтрацией использует одинаковую логику выбора контекстной модели с флагом управления ALF-фильтрацией.

Способ выбора контекстной модели для флага управления CCALF-фильтрацией использует одинаковый способ выбора контекстной модели с флагом управления ALF-фильтрацией. Например, способ уравнения, описанного на фиг. 177, может использоваться как для CCALF, так и для ALF. В этом случае, соответствующий флаг для ALF может представлять собой alf_ctb_flag, и он может указывать то, применяется или нет ALF к текущему блоку. Для флага управления ALF-фильтрацией, ctxSetIdx может задаваться так, как описано на фиг. 181.

[0696] Реализации и варианты применения

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

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

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

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

[0700] Примеры использования

Фиг. 182 иллюстрирует общую конфигурацию системы ex100 предоставления контента, подходящей для реализации услуги распространения контента. Зона, в которой предоставляется услуга связи, разделяется на соты требуемых размеров, и базовые станции ex106, ex107, ex108, ex109 и ex110, которые представляют собой стационарные беспроводные станции в проиллюстрированном примере, расположены в соответствующих сотах.

[0701] В системе ex100 предоставления контента, устройства, включающие в себя компьютер ex111, игровое устройство ex112, камеру ex113, бытовой прибор ex114 и смартфон ex115, соединяются с Интернетом ex101 через поставщика ex102 Интернет-услуг или сеть ex104 связи и базовые станции ex106-ex110. Система ex100 предоставления контента может комбинировать и соединять любую комбинацию вышеуказанных устройств. В различных реализациях, устройства могут прямо или косвенно соединяться между собой через телефонную сеть или связь ближнего радиуса действия, а не через базовые станции ex106-ex110. Дополнительно, потоковый сервер ex103 может соединяться с устройствами, включающими в себя компьютер ex111, игровое устройство ex112, камеру ex113, бытовой прибор ex114 и смартфон ex115, например, через Интернет ex101. Потоковый сервер ex103 также может соединяться, например, с терминалом в публичной точке доступа в самолете ex117 через спутник ex116.

[0702] Следует отметить, что вместо базовых станций ex106-ex110, могут использоваться точки беспроводного доступа или публичные точки доступа. Потоковый сервер ex103 может соединяться с сетью ex104 связи непосредственно, а не через Интернет ex101 или поставщика ex102 Интернет-услуг, и может соединяться с самолетом ex117 непосредственно, а не через спутник ex116.

[0703] Камера ex113 может представлять собой устройство, допускающее захват неподвижных изображений и видео, к примеру, цифровую камеру. Смартфон ex115 может представлять собой смартфон, сотовый телефон или телефон по стандарту системы персональных мобильных телефонов (PHS), который может работать согласно стандартам системы мобильной связи для 2G-, 3G-, 3,9G- и 4G-систем, а также 5G-системы следующего поколения.

[0704] Бытовой прибор ex114, например, представляет собой холодильник или устройство, включенное в домашнюю систему совместной выработки тепла и электроэнергии на топливных элементах.

В системе ex100 предоставления контента, терминал, включающий в себя функцию захвата изображений и/или видео, допускает, например, потоковую передачу вживую посредством соединения с потоковым сервером ex103, например, через базовую станцию ex106. При потоковой передаче вживую, терминал (например, компьютер ex111, игровое устройство ex112, камера ex113, бытовой прибор ex114, смартфон ex115 или терминал в самолете ex117) может выполнять обработку кодирования, описанную в вышеприведенных вариантах осуществления, для контента неподвижных изображений или видеоконтента, захваченного пользователем через терминал, может мультиплексировать видеоданные, полученные через кодирование, и аудиоданные, полученные посредством кодирования аудио, соответствующего видео, и может передавать полученные данные на потоковый сервер ex103. Другими словами, терминал функционирует в качестве кодера изображений согласно одному аспекту настоящего раскрытия.

[0705] Потоковый сервер ex103 передает в потоковом режиме передаваемые данные контента в клиенты, которые запрашивают поток. Примеры клиента включают в себя компьютер ex111, игровое устройство ex112, камеру ex113, бытовой прибор ex114, смартфон ex115 и терминалы в самолете ex117, которые допускают декодирование вышеописанных кодированных данных. Устройства, которые принимают передаваемые в потоковом режиме данные, могут декодировать и воспроизводить принимаемые данные. Другими словами, устройства могут функционировать в качестве декодера изображений согласно одному аспекту настоящего раскрытия.

[0706] Децентрализованная обработка

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

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

[0708] В другом примере, камера ex113 и т.п. извлекает количество признаков (количество признаков или характеристик) из изображения, сжимает данные, связанные с количеством признаков, в качестве метаданных, и передает сжатые метаданные на сервер. Например, сервер определяет значимость объекта на основе количества признаков и изменяет точность квантования, соответственно, чтобы выполнять сжатие, подходящее для смыслового значения (или значимости контента) изображения. Данные количества признаков являются, в частности, эффективными при повышении точности и эффективности предсказания векторов движения во время второго прохода сжатия, выполняемого посредством сервера. Кроме того, кодирование, которое имеет относительно низкую нагрузку по обработке, такое как кодировка переменной длины (VLC), может обрабатываться посредством терминала, и кодирование, которое имеет относительно высокую нагрузку по обработке, такое как контекстно-адаптивная двоичная арифметическая кодировка (CABAC), может обрабатываться посредством сервера.

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

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

[0711] Кроме того, сервер может передавать в потоковом режиме видеоданные после выполнения транскодирования, чтобы преобразовывать формат кодирования видеоданных. Например, сервер может преобразовывать формат кодирования от MPEG до VP (например, VP9), может преобразовываться (H.264 в (H.265 и т.д.

[0712] Таким образом, кодирование может выполняться посредством терминала или одного или более серверов. Соответственно, хотя устройство, которое выполняет кодирование, называется "сервером" или "терминалом" в нижеприведенном описании, некоторые или все процессы, выполняемые посредством сервера, могут выполняться посредством терминала, и аналогично некоторые или все процессы, выполняемые посредством терминала, могут выполняться посредством сервера. Это также применяется к процессам декодирования.

[0713] Трехмерный многоракурсный режим

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

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

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

[0716] В последние годы, также становится популярным контент, который представляет собой составной объект из реального мира и виртуального мира, к примеру, контент в стиле виртуальной реальности (VR) и дополненной реальности (AR). В случае VR-изображений, сервер может создавать изображения из точек обзора левого и правого глаза и выполнять кодирование, которое допускает ссылку между двумя изображениями точек обзора, такое как многовидовая кодировка (MVC), и альтернативно, может кодировать изображения в качестве отдельных потоков без ссылки. Когда изображения декодируются в качестве отдельных потоков, потоки могут синхронизироваться при воспроизведении таким образом, чтобы воссоздавать виртуальное трехмерное пространство в соответствии с точкой обзора пользователя.

[0717] В случае AR-изображений, сервер может накладывать информацию виртуальных объектов, существующую в виртуальном пространстве, на информацию камеры, представляющую пространство реального мира, например, на основе трехмерной позиции или перемещения с точки зрения пользователя. Декодер может получать или сохранять информацию виртуальных объектов и трехмерные данные, формировать двумерные изображения на основе перемещения с точки зрения пользователя и затем формировать наложенные данные посредством прозрачного соединения изображений. Альтернативно, декодер может передавать, в сервер, движение с точки зрения пользователя в дополнение к запросу на информацию виртуальных объектов. Сервер может формировать наложенные данные на основе трехмерных данных, сохраненных на сервере в соответствии с принимаемым движением, и кодировать и передавать в потоковом режиме сформированные наложенные данные в декодер. Следует отметить, что наложенные данные типично включают в себя, в дополнение к RGB-значениям, значение α, указывающее прозрачность, и сервер задает значение α для секций, отличных от объекта, сформированного из трехмерных данных, например, равным 0, и может выполнять кодирование в то время, когда эти секции являются прозрачными. Альтернативно, сервер может задавать фон как определенное RGB-значение, такое как цветовая рирпроекция, и формировать данные, в которых зоны, отличные от объекта, задаются в качестве фона. Определенное RGB-значение может быть предварительно определено.

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

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

[0720] (Оптимизация веб-страниц)

Фиг. 183, например, иллюстрирует пример экрана отображения веб-страницы на компьютере ex111. Фиг. 176, например, иллюстрирует пример экрана отображения веб-страницы на смартфоне ex115. Как проиллюстрировано на фиг. 183 и фиг. 184, веб-страница может включать в себя множество ссылок на изображения, которые представляют собой ссылки на контент изображений, и внешний вид веб-страницы может отличаться в зависимости от устройства, используемого для того, чтобы просматривать веб-страницу. Когда множество ссылок на изображения являются просматриваемыми на экране до тех пор, пока пользователь явно не выбирает ссылку на изображение, либо до тех пор, пока ссылка на изображение не находится в аппроксимированном центре экрана, или полная ссылка на изображение не вписывается в экран, оборудование отображения (декодер) может отображать, в качестве ссылок на изображения, неподвижные изображения, включенные в контент, или I-кадры, может отображать видео, такое как анимированный GIF-файл с использованием множества неподвижных изображений или I-картинок, например, либо может принимать только базовый слой и декодировать и отображать видео.

[0721] Когда ссылка на изображение выбирается пользователем, оборудование отображения выполняет декодирование, например, при предоставлении наивысшего приоритета для базового слоя. Следует отметить, что если имеется информация в HTML-коде веб-страницы, указывающая , что контент является масштабируемым, оборудование отображения может декодировать вплоть до улучшающего слоя. Дополнительно, чтобы упрощать воспроизведение в реальном времени, до того, как осуществляется выбор, либо когда полоса пропускания сильно ограничивается, оборудование отображения может уменьшать задержку между моментом времени, в который декодируется опережающая картинка, и моментом времени, в который отображается декодированная картинка (т.е. задержку от начала декодирования контента до отображения контента) посредством декодирования и отображения только прямых опорных картинок (I-кадра, P-кадра, прямого опорного B-кадра). Еще дополнительно, оборудование отображения может намеренно игнорировать опорную взаимосвязь между картинками и приблизительно декодировать все B- и P- картинки в качестве прямых опорных картинок и затем выполнять нормальное декодирование по мере того, как число картинок, принимаемых во времени, увеличивается.

[0722] Автономное вождение

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

[0723] В таком случае, поскольку автомобиль, беспилотный аппарат, самолет и т.д., содержащий приемный терминал, является мобильным, приемный терминал может прозрачно принимать и выполнять декодирование при переключении между базовыми станциями из числа базовых станций ex106-ex110 посредством передачи информации, указывающей позицию приемного терминала. Кроме того, в соответствии с выбором, осуществленным пользователем, ситуацией пользователя и/или полосой пропускания соединения, приемный терминал может динамически выбирать то, до какой степени принимаются метаданные, либо то, до какой степени, например, обновляется картографическая информация.

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

[0724] Потоковая передача контента от людей

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

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

[0726] Могут возникать случаи, в которых контент от людей может включать в себя контент, который нарушает авторское право, моральное право, книжные права и т.д. Такой случай может приводить к непредпочтительной ситуации для создателя, к примеру, когда контент совместно используется за пределами объема, намеченного создателем. Соответственно, перед кодированием, сервер, например, может редактировать изображения таким образом, чтобы, например, размывать лица людей на периферии экрана или размывать внутреннюю часть дома. Дополнительно, сервер может быть выполнен с возможностью распознавать лица людей, отличных от зарегистрированного человека, в изображениях, которые должны кодироваться, и когда такие лица появляются в изображении, может применять мозаичный фильтр, например, к лицу человека. Альтернативно, в качестве предварительной обработки или постобработки для кодирования, пользователь может указывать, по причинам авторского права, область изображения, включающую в себя человека, или область фона, которая должна обрабатываться. Сервер может обрабатывать указанную область, например, посредством замены области другим изображением или размытия области. Если область включает в себя человека, человек может отслеживаться в движущейся картинке, и область головы пользователя может заменяться другим изображением по мере того, как человек перемещается.

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

[0728] Другие примеры реализации и вариантов применения

Кодирование и декодирование может выполняться посредством LSI ex500 (большой интегральной схемы) (см. фиг. 182), которая типично включается в каждый терминал. LSI ex500 может быть сконфигурирована из одной микросхемы или множества микросхем. Программное обеспечение для кодирования и декодирования движущихся картинок может интегрироваться в некоторый тип носителя записи (такой как CD-ROM, гибкий диск или жесткий диск), который является считываемым, например, посредством компьютера ex111, и кодирование и декодирование могут выполняться с использованием программного обеспечения. Кроме того, когда смартфон ex115 оснащен камерой, могут передаваться видеоданные, полученные посредством камеры. В этом случае, видеоданные могут кодироваться посредством LSI ex500, включенной в смартфон ex115.

[0729] Следует отметить, что LSI ex500 может быть выполнена с возможностью загружать и активировать приложение. В таком случае, терминал сначала определяет то, является он или нет совместимым со схемой, используемой для того, чтобы кодировать контент, либо то, допускает он или нет выполнение конкретной услуги. Когда терминал не является совместимым со схемой кодирования контента, либо когда терминал не допускает выполнение конкретной услуги, терминал сначала может загружать кодек или прикладное программное обеспечение, а затем получать и воспроизводить контент.

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

[0730] Аппаратная конфигурация

Фиг. 185 иллюстрирует дополнительные сведения относительно примерного смартфона ex115, показанного на фиг. 182. Фиг. 186 иллюстрирует пример функциональной конфигурации смартфона ex115. Смартфон ex115 включает в себя антенну ex450 для передачи и приема радиоволн в/из базовой станции ex110, камеру ex465, допускающую захват видео и неподвижных изображений, и дисплей ex458, который отображает декодированные данные, такие как видео, захваченное посредством камеры ex465, и видео, принимаемое посредством антенны ex450. Смартфон ex115 дополнительно включает в себя пользовательский интерфейс ex466, такой как сенсорная панель; модуль ex457 аудиовывода, такой как динамик для вывода речи или другого аудио; модуль ex456 аудиоввода, такой как микрофон для аудиоввода; запоминающее устройство ex467, допускающее сохранение декодированных данных, таких как захваченные видео или неподвижные изображения, записанное аудио, принимаемые видео или неподвижные изображения и почтовые сообщения, а также декодированные данные; и гнездо ex464, которое представляет собой интерфейс для SIM-карты ex468 для авторизации доступа к сети и различным данным. Следует отметить, что внешнее запоминающее устройство может использоваться вместо или в дополнение к запоминающему устройству ex467.

[0731] Главный контроллер ex460, который может всесторонне управлять дисплеем ex458 и пользовательским интерфейсом ex466, схема ex461 подачи мощности, контроллер ex462 ввода из пользовательского интерфейса, процессор ex455 видеосигналов, интерфейс ex463 камеры, контроллер ex459 отображения, модулятор/демодулятор ex452, мультиплексор/демультиплексор ex453, процессор ex454 аудиосигналов, гнездо ex464 и запоминающее устройство ex467 соединяются через шину ex470.

[0732] Когда пользователь включает кнопку питания схемы ex461 подачи мощности, смартфон ex115 включается в работоспособное состояние, и каждый компонент снабжается мощностью, например, из аккумуляторного блока.

[0733] Смартфон ex115 выполняет обработку, например, для вызовов и передачи данных, на основе управления, выполняемого посредством главного контроллера ex460, который включает в себя CPU, ROM и RAM. При выполнении вызовов, аудиосигнал, записанный посредством модуля ex456 аудиоввода, преобразуется в цифровой аудиосигнал посредством процессора ex454 аудиосигналов, к которому применяется обработка с расширенным спектром посредством модулятора/демодулятора ex452 и применяется обработка цифро-аналогового преобразования и преобразования частоты посредством приемо-передающего устройства ex451, и результирующий сигнал передается через антенну ex450. Принимаемые данные усиливаются, преобразуются по частоте и подвергаются аналого-цифровому преобразованию, подвергаются обратной обработке с расширенным спектром посредством модулятора/демодулятора ex452, преобразуются в аналоговый аудиосигнал посредством процессора ex454 аудиосигналов и затем выводятся из модуля ex457 аудиовывода.

[0734] В режиме передачи данных, текст, данные неподвижных изображений или видеоданные могут передаваться, например, под управлением главного контроллера ex460 через контроллер ex462 ввода из пользовательского интерфейса на основе операции пользовательского интерфейса ex466 основного корпуса. Аналогичная обработка передачи и приема выполняется. В режиме передачи данных, при отправке видео, неподвижного изображения или видео и аудио, процессор ex455 видеосигналов кодирует со сжатием, через способ кодирования движущихся картинок, описанный в вышеприведенных вариантах осуществления, видеосигнал, сохраненный в запоминающем устройстве ex467, или видеосигнал, вводимый из камеры ex465, и передает кодированные видеоданные в мультиплексор/демультиплексор ex453. Процессор ex454 аудиосигналов кодирует аудиосигнал, записанный посредством модуля ex456 аудиоввода, в то время как камера ex465 захватывает видео или неподвижное изображение, и передает кодированные аудиоданные в мультиплексор/демультиплексор ex453. Мультиплексор/демультиплексор ex453 мультиплексирует кодированные видеоданные и кодированные аудиоданные с использованием определенной схемы, модулирует и преобразует данные с использованием модулятора/демодулятора ex452 (схемы модулятора/демодулятора) и приемо-передающего устройства ex451 и передает результат через антенну ex450. Определенная схема может быть предварительно определена.

[0735] Когда видео, вложенное в почтовом сообщении или в чате, или видео, содержащее ссылку из веб-страницы, принимается, например, для того чтобы декодировать мультиплексированные данные, принимаемые через антенну ex450, мультиплексор/демультиплексор ex453 демультиплексирует мультиплексированные данные, чтобы разделять мультиплексированные данные на поток битов видеоданных и поток битов аудиоданных, предоставляет кодированные видеоданные в процессор ex455 видеосигналов через синхронную шину ex470 и предоставляет кодированные аудиоданные в процессор ex454 аудиосигналов через синхронную шину ex470. Процессор ex455 видеосигналов декодирует видеосигнал с использованием способа декодирования движущихся картинок, соответствующего способу кодирования движущихся картинок, описанному в вышеприведенных вариантах осуществления, и видео или неподвижное изображение, включенное в связанный файл движущихся картинок, отображается на дисплее ex458 через контроллер ex459 отображения. Процессор ex454 аудиосигналов декодирует аудиосигнал и выводит аудио из модуля ex457 аудиовывода. Поскольку потоковая передача в режиме реального времени становится все более популярной, могут возникать случаи, в которых воспроизведение аудио может быть социально нецелесообразным, в зависимости от окружения пользователя. Соответственно, в качестве начального значения, может быть предпочтительной конфигурация, в которой только видеоданные воспроизводятся, например, аудиосигнал не воспроизводится; аудио может синхронизироваться и воспроизводиться только тогда, когда принимается ввод, к примеру, когда пользователь щелкает видеоданные.

[0736] Хотя смартфон ex115 использован в вышеприведенном примере, другие реализации возможны: приемо-передающий терминал, включающий в себя как кодер, так и декодер; передающий терминал, включающий в себя только кодер; и приемный терминал, включающий в себя только декодер. В описании цифровой широковещательной системы, приводится пример, в котором мультиплексированные данные, полученные в результате мультиплексирования видеоданных с аудиоданными, принимаются или передаются. Тем не менее, мультиплексированные данные могут представлять собой видеоданные, мультиплексированные с данными, отличными от аудиоданных, такими как текстовые данные, связанные с видео. Дополнительно, непосредственно видеоданные, а не мультиплексированные данные могут приниматься или передаваться.

[0737] Хотя главный контроллер ex460, включающий в себя CPU, описывается как управляющий процессами кодирования или декодирования, различные терминалы зачастую включают в себя графические процессоры (GPU). Соответственно, приемлемой является конфигурация, в которой большая зона обрабатывается сразу посредством использования характеристик с точки зрения производительности GPU через запоминающее устройство, совместно используемое посредством CPU и GPU, либо через запоминающее устройство, включающее в себя адрес, которое управляется таким образом, чтобы обеспечивать возможность широкого использования посредством CPU и GPU, либо через отдельные запоминающие устройства. Это позволяет сокращать время кодирования, поддерживать характер реального времени потока и уменьшать задержку. В частности, обработка, связанная с оценкой движения, фильтрацией для удаления блочности, дискретизированным адаптивным смещением (SAO) и преобразованием/квантованием, может эффективно выполняться посредством GPU вместо CPU, например, в единицах картинок, одновременно.

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

название год авторы номер документа
СИСТЕМА И СПОСОБ ДЛЯ КОДИРОВАНИЯ ВИДЕО 2020
  • Ванг, Чу Тонг
  • Лим, Чонг Соон
  • Тео, Хан Боон
  • Сунь, Хай Вэй
  • Ли, Цзин Я
  • Куо, Чэ-Вэй
  • Тома, Тадамаса
  • Ниси, Такахиро
  • Абе, Киёфуми
  • Като, Юсуке
RU2817290C2
СИСТЕМА И СПОСОБ ДЛЯ КОДИРОВАНИЯ ВИДЕО 2020
  • Сунь, Хай Вэй
  • Лим, Чонг Соон
  • Ли, Цзин Я
  • Тео, Хан Боон
  • Куо, Чэ-Вэй
  • Ванг, Чу Тонг
  • Тома, Тадамаса
  • Ниси, Такахиро
  • Абе, Киёфуми
  • Като, Юсуке
RU2819086C2
УСТРОЙСТВО И СИГНАЛИЗАЦИЯ АДАПТИВНОГО КОНТУРНОГО ФИЛЬТРА (ALF) НА БЛОЧНОЙ ОСНОВЕ 2019
  • Карчевич, Марта
  • Гадде, Акшай
  • Серегин, Вадим
  • Чиэнь, Вэй-Цзюн
RU2783335C2
УТОЧНЕНИЕ ПРЕДСКАЗАНИЯ НА ОСНОВЕ ГРАДИЕНТА ДЛЯ КОДИРОВАНИЯ ВИДЕО 2020
  • Хуан, Хань
  • Чиэнь, Вэй-Цзюн
  • Карчевич, Марта
RU2817298C2
ПЕРЕДАЧА В СЛУЖЕБНЫХ СИГНАЛАХ ПРЕДИКТОРА ВЕКТОРА ДВИЖЕНИЯ НА ОСНОВЕ СУБЪЕДИНИЦ ПРЕДСКАЗАНИЯ 2019
  • Хуан, Хань
  • Чиэнь, Вэй-Цзюн
  • Серегин, Вадим
  • Карчевич, Марта
RU2783333C2
ВРЕМЕННОЕ ПРЕДСКАЗАНИЕ ПАРАМЕТРОВ АДАПТИВНОГО КОНТУРНОГО ФИЛЬТРА СО СНИЖЕННЫМ ПОТРЕБЛЕНИЕМ ПАМЯТИ ДЛЯ КОДИРОВАНИЯ ВИДЕО 2019
  • Эгылмез, Хилми Энес
  • Ху, Нан
  • Серегин, Вадим
  • Чиэнь, Вэй-Цзюн
  • Карчевич, Марта
RU2803195C2
РАННЕЕ ПРЕКРАЩЕНИЕ УТОЧНЕНИЯ ОПТИЧЕСКОГО ПОТОКА 2020
  • Эсенлик, Семих
  • Сетураман, Срирам
  • А, Джива Радж
  • Котеча, Сагар
RU2808608C2
МНОЖЕСТВО ОСНОВАННЫХ НА ИСТОРИИ НЕСМЕЖНЫХ MVP ДЛЯ ОБРАБОТКИ ВОЛНОВОГО ФРОНТА КОДИРОВАНИЯ ВИДЕО 2019
  • Фам Ван, Луонг
  • Чиэнь, Вэй-Цзюн
  • Серегин, Вадим
  • Карчевич, Марта
  • Хуан, Хань
RU2800009C2
СПОСОБ ВЫЧИСЛЕНИЯ ПОЗИЦИИ ОПОРНОЙ ВЫБОРКИ ЦЕЛОЧИСЛЕННОЙ СЕТКИ ДЛЯ ВЫЧИСЛЕНИЯ ГРАДИЕНТА ГРАНИЧНОЙ ВЫБОРКИ БЛОЧНОГО УРОВНЯ В ВЫЧИСЛЕНИИ ОПТИЧЕСКОГО ПОТОКА С ДВОЙНЫМ ПРЕДСКАЗАНИЕМ И КОРРЕКЦИИ С ДВОЙНЫМ ПРЕДСКАЗАНИЕМ 2020
  • Сетураман, Срирам
  • А, Джива Радж
  • Котеча, Сагар
RU2820638C2
ОГРАНИЧЕНИЕ СОГЛАСОВАННОСТИ ДЛЯ СОВМЕЩЕННОГО ОПОРНОГО ИНДЕКСА В КОДИРОВАНИИ ВИДЕО 2017
  • Джоши Раджан Лаксман
  • Серегин Вадим
  • Ван Е-Куй
  • Рапака Кришнакантх
  • Карчевич Марта
RU2733267C2

Иллюстрации к изобретению RU 2 813 135 C1

Реферат патента 2024 года СИСТЕМА И СПОСОБ ДЛЯ КОДИРОВКИ ВИДЕО

Изобретение относится к области кодирования/декодирования для выполнения процесса кросскомпонентной адаптивной контурной фильтрации (CCALF). Техническим результатом является повышение эффективности кодирования/декодирования. Предложен кодер, который выполняет CCALF-процесс для текущего блока, задает первый флаг, указывающий, активируется или нет CCALF-процесс для первого блока, причем первый блок является смежным с левой стороной текущего блока, при этом задает второй флаг, указывающий, активируется или нет CCALF-процесс для второго блока, причем второй блок является смежным с верхней стороной текущего блока и задает третий флаг, указывающий, что CCALF-процесс активируется для текущего блока, а также определяет первый индекс, ассоциированный с цветовым компонентом текущего блока. Извлекает второй индекс, указывающий контекстную модель, с использованием первого флага, второго флага и первого индекса, и выполняет энтропийное кодирование третьего флага, указывающего, активируется или нет CCALF-процесс для текущего блока, с использованием контекстной модели, указываемой посредством второго индекса. 3 н. и 4 з.п. ф-лы, 186 ил.

Формула изобретения RU 2 813 135 C1

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

- схему; и

- запоминающее устройство, соединенное со схемой;

- при этом схема при работе:

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

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

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

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

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

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

2. Декодер по п. 1, в котором:

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

3. Декодер по п. 2, в котором упомянутая схема задает значение первого индекса равным 1 в ответ на цветовой компонент, представляющий собой Cr-компонент.

4. Оборудование декодирования, содержащее:

- декодер, который при работе декодирует кодированный поток битов, чтобы выводить квантованные коэффициенты;

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

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

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

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

- контурный фильтр, который при работе фильтрует блоки, включенные в первое изображение; и

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

- при этом контурный фильтр при работе выполняет:

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

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

- определение первого индекса, ассоциированного с цветовым компонентом текущего блока;

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

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

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

5. Оборудование декодирования по п. 4, в котором:

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

6. Способ декодирования, содержащий этапы, на которых:

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

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

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

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

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

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

7. Способ декодирования по п. 6, содержащий этап, на котором:

задают значение первого индекса равным 0 в ответ на цветовой компонент, представляющий собой Cb-компонент.

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

US 2018220138 A1 - 2018.08.02
MISRA K
et al
Cross-Component Adaptive Loop Filter for chroma, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-O0636, 15th Meeting: Gothenburg, 3-12 July 2019
US 2017302934 A1 - 2017.10.19
WO 2014052731 A2 - 2014.04.03
BROSS B
et al
Приспособление для точного наложения листов бумаги при снятии оттисков 1922
  • Асафов Н.И.
SU6A1

RU 2 813 135 C1

Авторы

Куо, Чэ-Вэй

Лим, Чонг Соон

Тео, Хан Боон

Ли, Цзин Я

Сунь, Хай Вэй

Ванг, Чу Тонг

Тома, Тадамаса

Ниси, Такахиро

Абе, Киёфуми

Като, Юсуке

Даты

2024-02-06Публикация

2020-09-18Подача