УСТРОЙСТВО ГЕНЕРИРОВАНИЯ ПРОГНОЗИРУЕМЫХ ИЗОБРАЖЕНИЙ, УСТРОЙСТВО ДЕКОДИРОВАНИЯ ВИДЕОСИГНАЛОВ, УСТРОЙСТВО КОДИРОВАНИЯ ВИДЕОСИГНАЛОВ И СПОСОБ ГЕНЕРИРОВАНИЯ ПРОГНОЗИРУЕМЫХ ИЗОБРАЖЕНИЙ Российский патент 2023 года по МПК H04N19/577 

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

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

[0001]

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

Предпосылки создания изобретения

[0002]

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

[0003]

Установленные схемы кодирования видеосигналов включают в себя, например, H.264/AVC и высокоэффективное кодирование видеосигналов (HEVC) и т.п.

[0004]

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

[0005]

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

[0006]

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

Список библиографических ссылок

Непатентная литература

[0007]

NPL 1: «Универсальное кодирование видео (Проект 3)», JVET-L1001, Объединенная группа по исследованию видео (JVET) ITU-T SG 16 WP 3 и ISO/IEC JTC 1/SC 29/WG 11, 2018 г.

NPL 2: «Связанное с CE9 уменьшение сложности и управление двунаправленным оптическим потоком (BIO) с учетом битовой ширины», JVET-L0256, Объединенная группа по исследованию видео (JVET) ITU-T SG 16 WP 3 и ISO/IEC JTC 1/SC 29/WG 11, 2018 г.

Изложение сущности изобретения

Техническая задача

[0008]

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

Решение задачи

[0009]

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

[0010]

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

Преимущества изобретения

[0011]

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

Краткое описание графических материалов

[0012]

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

На ФИГ. 2 представлена схема, иллюстрирующая конфигурации передающего устройства, оснащенного устройством кодирования видеосигналов, и приемного устройства, оснащенного устройством декодирования видеосигналов, в соответствии с настоящим вариантом осуществления. В варианте (a) показано передающее устройство, оснащенное устройством кодирования видеосигналов, а в варианте (b) показано приемное устройство, оснащенное устройством декодирования видеосигналов.

На ФИГ. 3 представлена схема, иллюстрирующая конфигурации записывающего устройства, оснащенного устройством кодирования видеосигналов, и устройства восстановления, оснащенного устройством декодирования видеосигналов, в соответствии с настоящим вариантом осуществления. В варианте (a) показано записывающее устройство, оснащенное устройством кодирования видеосигналов, а в варианте (b) показано устройство восстановления, оснащенное устройством декодирования видеосигналов.

На ФИГ. 4 представлена схема, иллюстрирующая иерархическую структуру данных потока кодирования.

На ФИГ. 5 представлена схема, иллюстрирующая пример разделения CTU.

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

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

На ФИГ. 8 представлена принципиальная схема, иллюстрирующая конфигурацию устройства декодирования параметров внешнего прогнозирования.

На ФИГ. 9 представлена принципиальная схема, иллюстрирующая конфигурации блока выведения параметров прогнозирования объединения и блока выведения параметров прогнозирования AMVP.

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

На ФИГ. 11 представлена схема, иллюстрирующая пример таблицы gbwTable[], включающей потенциальный весовой коэффициент, используемый при прогнозировании GBI, в соответствии с вариантом осуществления.

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

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

На ФИГ. 14 представлена принципиальная схема, иллюстрирующая конфигурацию блока BIO в соответствии с настоящим вариантом осуществления.

На ФИГ. 15 представлена схема, иллюстрирующая пример области, на которой блоком BIO осуществляется заполнение BIO в соответствии с настоящим вариантом осуществления.

На ФИГ. 16 представлена блок-схема, иллюстрирующая конфигурацию устройства генерирования прогнозируемых изображений L0 и L1.

На ФИГ. 17 представлена блок-схема, иллюстрирующая другую конфигурацию устройства генерирования прогнозируемых изображений L0 и L1.

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

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

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

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

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

Описание вариантов осуществления

[0013]

Первый вариант осуществления

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

[0014]

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

[0015]

Система передачи изображений 1 представляет собой систему, в которой передается поток кодирования, полученный путем кодирования целевого кодируемого изображения, передаваемый поток кодирования декодируется и, таким образом, отображается изображение. Система передачи изображений 1 включает в себя устройство кодирования видеосигналов (устройство кодирования изображений) 11, сеть 21, устройство декодирования видеосигналов (устройство декодирования изображений) 31 и устройство отображения видео (устройство отображения изображений) 41.

[0016]

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

[0017]

Сеть 21 передает поток кодирования Te, сгенерированный устройством кодирования видеосигналов 11, в устройство декодирования видеосигналов 31. Сеть 21 представляет собой сеть Интернет, глобальную сеть (WAN), локальную сеть (LAN) или их комбинацию. Сеть 21 не обязательно ограничена двунаправленной сетью связи и может представлять собой однонаправленную сеть связи, выполненную с возможностью передачи радиоволн цифрового наземного телевещания, спутникового вещания и т.п. Кроме того, сеть 21 может быть замещена носителем данных, на который записывают поток кодирования Te, например, универсальный цифровой диск (DVD: зарегистрированная торговая марка) или диск Blu-ray (BD: зарегистрированная торговая марка).

[0018]

Устройство декодирования видеосигналов 31 декодирует каждый из потоков кодирования Te, передаваемых из сети 21, и генерирует одно или множество декодированных изображений Td.

[0019]

Устройство отображения видео 41 отображает все или часть одного или множества декодированных изображений Td, сгенерированных устройством декодирования видеосигналов 31. Например, устройство отображения видео 41 включает в себя устройство отображения, например, жидкокристаллический дисплей и органический электролюминесцентный (ЭЛ) дисплей. Формы дисплея включают стационарный тип, мобильный тип, НШД и т.п. Кроме того, в случае если устройство декодирования видеосигналов 31 имеет высокую возможность обработки, отображается изображение с высоким качеством изображения, а в случае если устройство имеет более низкую возможность обработки, отображается изображение, которое не требует высокой возможностью обработки и производительности видеосистемы.

[0020]

Оператор

Ниже описаны операторы, используемые в настоящем описании.

[0021]

>> - это битовый сдвиг вправо, << - это битовый сдвиг влево, & - операция побитовое И, | - операция побитовое ИЛИ, |= - операция присваивания ИЛИ, а || - указывает на логическую сумму.

[0022]

x?y:z представляет собой трехместный оператор, который принимает значение y, если x имеет значение «истина» (кроме 0), и принимает значение z, если x имеет значение «ложь» (0).

[0023]

Clip3 (a, b, c) представляет собой функцию, ограничивающую значение c, которое равно или больше a и меньше или равно b, и функцию возврата a в случае, если c меньше a (c < a), возврата b в случае, если c больше b (c > b), и возврата c в других случаях (при условии, что a меньше или равно b (a <= b)).

[0024]

abs (a) представляет собой функцию, которая возвращает абсолютное значение a.

[0025]

Int (a) представляет собой функцию, которая возвращает целое значение a.

[0026]

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

[0027]

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

[0028]

a/d представляет собой деление a на d (с округлением до десятичных знаков).

[0029]

a^ b представляет собой a в степени b.

[0030]

знак (a) представляет собой функцию, которая возвращает знак a. sign(a) = a > 0? 1 : a == 0? 0 : -1

log2(A) представляет собой функцию возврата логарифма a к основанию 2.

[0031]

Max(a, b) представляет собой функцию, которая возвращает a в случае, когда a >= b и b в случае, когда a < b.

[0032]

Min(a, b) представляет собой функцию, которая возвращает a в случае, когда a <= b и b в случае, когда a > b.

[0033]

Round(a) представляет собой функцию возврата округленного значения a. Round(a) = sign(a) * floor (abs(a) + 0,5).

[0034]

Структура потока кодирования Te

Перед подробным описанием устройства кодирования видеосигналов 11 и устройства декодирования видеосигналов 31 в соответствии с настоящим вариантом осуществления будет описана структура данных потока кодирования Te, генерируемого устройством кодирования видеосигналов 11 и декодированного устройством кодирования видеосигналов 31.

[0035]

На ФИГ. 4 представлена схема, иллюстрирующая иерархическую структуру данных потока кодирования Te. Поток кодирования Te содержит последовательность и множество кадров, которые составляют последовательность в качестве примера. В вариантах (a)-(f) на ФИГ. 4 представлены схемы, иллюстрирующие кодирующую видеопоследовательность, которая определена как SEQ, кодируемый кадр, который задан как кадр PICT, кодирующий срез, который задан как срез S, данные кодирующего среза, которые заданы как данные среза, элемент дерева кодирования, который включен в данные кодирующего среза, и элемент кодирования, который включен в элемент дерева кодирования соответственно.

[0036]

Кодирующая видеопоследовательность

В кодирующей видеопоследовательности определен набор данных, на которые ссылается устройство декодирования видеосигналов 31, чтобы декодировать обрабатываемую последовательность SEQ. Как показано на ФИГ. 4(a), последовательность SEQ включает в себя набор параметров видеосигнала, набор параметров последовательности SPS, набор параметров изображения PPS, изображение PICT и информацию для дополнительной оптимизации SEI.

[0037]

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

[0038]

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

[0039]

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

[0040]

Кодированное изображение

В кодированном изображении определен набор данных, на которые ссылается устройство декодирования видеосигналов 31, чтобы декодировать обрабатываемое изображение PICT. Как показано на ФИГ. 4(b), изображение PICT включает в себя срезы от 0 до NS - 1 (NS представляет собой общее количество срезов, включенных в изображение PICT).

[0041]

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

[0042]

Срез кодирования

В срезе кодирования определен набор данных, на которые ссылается устройство декодирования видеосигналов 31, чтобы декодировать обрабатываемый срез S. Как показано на ФИГ. 4(c), срез включает в себя заголовок среза и данные среза.

[0043]

Заголовок среза включает в себя группу параметров кодирования, на которую ссылается устройство декодирования видеосигналов 31 для определения способа декодирования для целевого среза. Информация о типе среза (slice_type), указывающая тип среза, представляет собой один пример параметра кодирования, включенного в заголовок среза.

[0044]

Примеры типов срезов, которые могут быть указаны в информации о типе среза, включают (1) срез I, использующий только внутреннее прогнозирование при кодировании, (2) срез P, использующий однонаправленное прогнозирование или внутреннее прогнозирование при кодировании, и (3) срез B, использующий однонаправленное прогнозирование, двунаправленное прогнозирование или внутреннее прогнозирование при кодировании и т. п. Следует отметить, что внешнее прогнозирование не ограничивается однонаправленным прогнозированием и двунаправленным прогнозированием, и прогнозируемое изображение может генерироваться с использованием большего количества эталонных изображений. Далее, в случае упоминания среза P или B, указывается срез, который включает в себя блок, в котором может использоваться внешнее прогнозирование.

[0045]

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

[0046]

Данные среза кодирования

В данных среза кодирования определен набор данных, на которые ссылается устройство декодирования видеосигналов 31, чтобы декодировать обрабатываемые данные среза. Данные среза включают в себя CTU, как показано на ФИГ. 4(d). CTU представляет собой блок фиксированного размера (например, 64×64), представляющий собой срез, и может упоминаться как «самый большой элемент кодирования (LCU)».

[0047]

Элемент дерева кодирования

На ФИГ. 4(e) определен набор данных, на которые ссылается устройство декодирования видеосигналов 31, чтобы декодировать обрабатываемый CTU. CTU разделен на элементы кодирования CU, каждый из которых представляет собой базовый элемент кодирования, с помощью рекурсивного разделения квадродерева (разделение QT), разделения двоичного дерева (разделение BT) или тройного дерева (разделение TT). Разделение BT и разделение TT в совокупности называют разделением мультидерева (разделение MT). Узлы структуры дерева, полученные методом рекурсивного разделения квадродерева, называют узлами кодирования. Промежуточные узлы квадродерева, двоичного дерева и тройного дерева представляют собой узлы кодирования, а сам CTU также определен как наивысший узел кодирования.

[0048]

CT включает в себя в качестве информации о CT флаг разделения QT (qt_split_cu_flag), указывающий, следует ли выполнять разделение QT, флаг разделения MT (mtt_split_cu_flag), указывающий на наличие или отсутствие разделения MT, направление разделения MT (mtt_split_cu_vertical_flag), указывающее направление разделения MT, и тип разделения MT (mtt_split_cu_binary_flag), указывающий тип разделения для разделения MT split. qt_split_cu_flag, mtt_split_cu_flag, mtt_split_cu_vertical_flag, and mtt_split_cu_binary_flag передают для каждого узла кодирования.

[0049]

На ФИГ. 5 представлена схема, иллюстрирующая пример разделения CTU. В случае, когда qt_split_cu_flag равен 1, узел кодирования разделен на четыре узла кодирования (ФИГ. 5(b)).

[0050]

В случае, когда qt_split_cu_flag равен 0, узел кодирования не разделяется и имеет один CU в качестве узла в случае, когда mtt_split_cu_flag равен 0 (ФИГ. 5(a)). CU представляет собой концевой узел среди кодирующих узлов и больше не разделяется. CU представляет собой основной элемент кодирования.

[0051]

В случае, когда mtt_split_cu_flag равен 1, узел кодирования подвергается разделению MT, как описано ниже. В случае, когда mtt_split_cu_vertical_flag равен 0, а mtt_split_cu_binary_flag равен 1, узел кодирования горизонтально разделен на два узла кодирования (ФИГ. 5(d)). В случае, когда mtt_split_cu_vertical_flag равен 1, а mtt_split_cu_binary_flag равен 1, узел кодирования вертикально разделен на два узла кодирования (ФИГ. 5(c)). Кроме того, в случае, когда mtt_split_cu_vertical_flag равен 0, а mtt_split_cu_binary_flag равен 0, узел кодирования горизонтально разделен на три узла кодирования (ФИГ. 5(f)). В случае, когда mtt_split_cu_vertical_flag равен 1, а mtt_split_cu_binary_flag равен 0, узел кодирования вертикально разделен на три узла кодирования (ФИГ. 5(e)). Они показаны на ФИГ. 5(g).

[0052]

Кроме того, в случае, когда размер CTU составляет 64×64 пикселей, размер CU может быть любым из 64×64 пикселей, 64×32 пикселей, 32×64 пикселей, 32×32 пикселей, 64×16 пикселей, 16×64 пикселей, 32×16 пикселей, 16×32 пикселей, 16×16 пикселей, 64×8 пикселей, 8×64 пикселей, 32×8 пикселей, 8×32 пикселей, 16×8 пикселей, 8×16 пикселей, 8×8 пикселей, 64×4 пикселей, 4×64 пикселей, 32×4 пикселей, 4×32 пикселей, 16×4 пикселей, 4×16 пикселей, 8×4 пикселей, 4×8 пикселей и 4×4 пикселей.

[0053]

Элемент кодирования

Как показано на ФИГ. 4(f) определен набор данных, на которые ссылается устройство декодирования видеосигналов 31, чтобы декодировать обрабатываемый элемент кодирования. В частности, CU состоит из заголовка элемента кодирования (CUH), параметра прогнозирования, параметра преобразования, коэффициента преобразования квантования и т. п. В заголовке CU определен режим прогнозирования и т. п.

[0054]

Существуют случаи, когда обработку прогнозирования выполняют в единицах CU или в подединицах CU, на которые затем разделяют CU. В случае, когда размеры CU и подединиц CU равны друг другу, количество подединиц CU в CU равно единице. В случае, когда размер CU больше подединицы CU, CU разделен на подединицы CU. Например, в случае, когда CU имеет размер 8×8, а подединица CU имеет размер 4×4, CU разделен на четыре подединицы CU, которые включают в себя два горизонтальных разделения и два вертикальных разделения.

[0055]

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

[0056]

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

[0057]

Параметр прогнозирования

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

[0058]

Параметр внешнего прогнозирования будет описан ниже. Параметр внешнего прогнозирования образован флагами использования списка прогнозирования predFlagL0 и predFlagL1, индексами эталонных изображений refIdxL0 и refIdxL1 и векторами движения mvL0 и mvL1. Флаги использования списка прогнозирования predFlagL0 и predFlagL1 представляют собой флаги, указывающие, используются ли списки эталонных изображений, такие как список L0 и список L1 соответственно, и соответствующий список эталонных изображений используется в случае, если значение равно 1. Следует отметить, что в случае, если в настоящем описании упоминается «флаг, указывающий на наличие или отсутствие XX », флаг, отличный от 0 (например, 1), предполагает случай наличия XX, а флаг, имеющий значение 0, предполагает случай отсутствия XX, при этом 1 рассматривается как «истина», а 0 рассматривается как «ложь» при логическом отрицании, логическом произведении и т. п. (далее применяется то же самое). Однако в реальных устройствах и способах могут использоваться другие значения в качестве истинных и ложных значений.

[0059]

Например, элементы синтаксиса для получения параметров внешнего прогнозирования включают в себя аффинный флаг affine_flag, флаг объединения merge_flag, индекс объединения merge_idx, индикатор внешнего прогнозирования inter_pred_idc, индекс эталонного изображения refIdxLX, индекс прогнозного вектора mvp_LX_idx, разность векторов движения mvdLX и режим разложения векторов адаптивного движения amvr_mode.

[0060]

Список эталонных изображений

Список эталонных изображений представляет собой список эталонных изображений, хранящихся в памяти эталонных изображений 306. На ФИГ. 6 представлена концептуальная схема, иллюстрирующая пример эталонных изображений и список эталонных изображений. На ФИГ. 6(a) прямоугольник указывает изображение, стрелка указывает отношение ссылки изображения, горизонтальная ось указывает время, каждое из значений I, P и B в прямоугольнике указывает изображение внутреннего прогнозирования, изображение однонаправленного прогнозирования, изображение двунаправленного прогнозирования, а число в прямоугольнике указывает порядок декодирования. Как показано, порядок декодирования изображений: I0, P1, B2, B3 и B4, а порядок отображения: I0, B3, B2, B4 и P1. На ФИГ. 6(b) приведен пример списков эталонных изображений для изображения В3 (целевое изображение). Список эталонных изображений представляет собой список, который содержит потенциальное эталонное изображение, а одно изображение (срез) может включать один или более списков эталонных изображений. В приведенном примере целевое изображение В3 включает в себя два списка эталонных изображений, т.е. Список L0 RefPicList0 и список L1 RefPicList1. Отдельный CU, на изображение которого в списке эталонных изображений RefPicListX (X=0 или 1) фактически приведена ссылка, установлен с помощью индекса эталонного изображения refIdxLX. На схеме показан пример refIdxL0=2, refIdxL1=0. Следует отметить, что LX представляет собой способ описания, используемый в случае отсутствия необходимости выделять прогнозирование L0 и прогнозирование L1, а в последующем описании выделяют параметры для списка L0 и параметры для списка L1 путем замены LX на L0 и L1.

[0061]

Прогнозирование объединения и прогнозирование AMVP

Способ декодирования (кодирования) параметров прогнозирования включает в себя режим прогнозирования объединения (объединения) и режим усовершенствованного прогнозирования вектора движения (AMVP), а флаг объединения merge_flag представляет собой флаг для определения режимов. Режим прогнозирования объединения представляет собой режим, который используют для получения из параметров прогнозирования соседних блоков, уже обработанных без учета флага использования списка прогнозирования predFlagLX (или индикатора внешнего прогнозирования inter_ pred_idc), индекса эталонного изображения refIdxLX и вектора движения mvLX в кодированных данных. Режим AMVP представляет собой режим, в котором индикатор внешнего прогнозирования inter_ pred_idc, индекс эталонного изображения refIdxLX и вектор движения mvLX включены в кодированные данные. Следует отметить, что вектор движения mvLX кодируется как индекс вектора прогнозирования mvp_LX_idx, определяющий вектор прогнозирования mvpLX, разность векторов движения mvdLX и режим разложения векторов адаптивного движения amvr_mode. Кроме того, в дополнение к режиму прогнозирования объединения может быть предусмотрен режим аффинного прогнозирования, определенный с помощью аффинного флага affine_flag. В качестве одной формы режима прогнозирования объединения может быть предусмотрен режим пропуска, определяемый флагом пропуска skip_flag. Следует отметить, что режим пропуска представляет собой режим, при котором выводится параметр прогнозирования и используется как в случае режима объединения и при котором ошибка прогнозирования (остаточное изображение) не учтена в кодированных данных. Иными словами, если флаг пропуска skip_flag равен 1, кодированные данные для целевого CU включают в себя только синтаксис, связанный с режимом объединения, такой как флаг пропуска skip_flag и индекс объединения merge_idx, и не включают в себя векторов движения и т. п. Таким образом, в случае, если флаг пропуска skip_flag указывает на то, что к целевому CU применяют режим пропуска, декодирование параметров прогнозирования, отличных от флага пропуска skip_flag, не совершают.

[0062]

Вектор движения

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

[0063]

Индикатор внешнего прогнозирования inter_pred_idc и флаг использования списка прогнозирования predFlagLX

Индикатор внешнего прогнозирования inter_pred_idc представляет собой значение, указывающее типы и количество эталонных изображений, и принимает любое значение из PRED_L0, PRED_L1 и PRED_BI. PRED_L0 и PRED_L1 указывают на однонаправленные прогнозы, в которых используется одно эталонное изображение, расположенное в списке L0, и одно эталонное изображение, расположенное в списке L1 соответственно. PRED_BI указывает на двунаправленное прогнозирование BiPred, в котором используется два эталонных изображения, расположенных в списке L0 и списке L1.

[0064]

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

[0065]

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

[0066]

inter_pred_idc = (predFlagL1 << 1) + predFlagL0

predFlagL0=inter_pred_idc & 1

predFlagL1=inter_pred_idc >> 1

Определение двунаправленного прогнозирования biPred

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

[0067]

biPred = (predFlagL0 == 1 && predFlagL1 == 1)

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

[0068]

biPred = (inter_pred_idc == PRED_BI) ? 1 : 0

Конфигурация устройства декодирования видеосигналов

Далее будет описана конфигурация устройства декодирования видеосигналов 31 (ФИГ. 7) согласно настоящему варианту осуществления.

[0069]

Устройство декодирования видеосигналов 31 включает в себя энтропийное декодирующее устройство 301, устройство декодирования параметров (устройство декодирования прогнозируемых изображений) 302, контурный фильтр 305, память эталонных изображений 306, память параметров прогнозирования 307, блок генерирования прогнозируемых изображений (устройство генерирования прогнозируемый изображений) 308, блок обработки обратного квантования и обратного преобразования 311 и блок добавления 312. Следует отметить, что конфигурация, в которой контурный фильтр 305 не включен в устройство декодирования видеосигналов 31, может быть использована в соответствии с описанным ниже устройством кодирования видеосигналов 11.

[0070]

Устройство декодирования параметров 302 дополнительно включает в себя устройство декодирования заголовков 3020, устройство декодирования информации CT 3021 и устройство декодирования CU 3022 (устройство декодирования режима прогнозирования), которые не показаны, а устройство декодирования CU 3022 дополнительно включает в себя устройство декодирования TU 3024. В совокупности они могут называться модулем декодирования. Устройство декодирования заголовков 3020 декодирует из кодированных данных информацию о наборе параметров, например, VPS, SPS и PPS, а также заголовок среза (информация о срезе). Устройство декодирования информации CT 3021 декодирует CT из кодированных данных. Устройство декодирования CU 3022 декодирует CU из кодированных данных. В случае, когда TU включает в себя ошибку прогнозирования, устройство декодирования TU 3024 декодирует информацию об обновлении QP (значение коррекции квантования) и ошибку прогнозирования квантования (residual_coding) из кодированных данных.

[0071]

Кроме того, устройство декодирования параметров 302 включает в себя устройство декодирования параметров внешнего прогнозирования 303 (устройство генерирования прогнозируемых изображений) и устройство декодирования параметров внутреннего прогнозирования 304, которые не показаны. Блок генерирования прогнозируемых изображений 308 включает в себя блок генерирования изображений внешнего прогнозирования 309 (устройство генерирования прогнозируемых изображений) и блок генерирования изображений внутреннего прогнозирования 310.

[0072]

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

[0073]

Энтропийное декодирующее устройство 301 выполняет энтропийное декодирование поступающего снаружи потока кодирования Te и разделяет и декодирует отдельные коды (элементы синтаксиса).

[0074]

Энтропийное декодирующее устройство 301 выводит декодированные коды в устройство декодирования параметров 302. Декодированные коды включают, например, режим прогнозирования predMode, флаг объединения merge_flag, индекс объединения merge_idx, индикатор внешнего прогнозирования inter_pred_idc, индекс эталонного изображения refIdxLX, индекс вектора прогнозирования mvp_LX_idx, разность векторов движения mvdLX, режим разложения векторов адаптивного движения amvr_mode и т. п. Какой код необходимо декодировать контролируется на основании показаний устройства декодирования параметров 302.

[0075]

Конфигурация устройства декодирования параметров внешнего прогнозирования

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

[0076]

На ФИГ. 8 представлена принципиальная схема, иллюстрирующая конфигурацию устройства декодирования параметров внешнего прогнозирования 303 согласно настоящему варианту осуществления. Устройство декодирования параметров внешнего прогнозирования 303 включает в себя блок прогнозирования объединения 30374, блок 30375 DMVR, единицу прогнозирования подблока (блок аффинного прогнозирования) 30372, блок прогнозирования MMVD (блок выведения вектора движения) 30376, блок прогнозирования треугольников 30377, блок выведения параметров прогнозирования AMVP 3032 и блок добавления 3038. Блок прогнозирования объединения 30374 включает в себя блок 3036 выведения параметров прогнозирования объединения. Блок выведения параметров прогнозирования AMVP 3032, блок выведения параметров прогнозирования объединения 3036 и блок аффинного прогнозирования 30372 являются средствами, которые совместно используются устройством кодирования видеосигналов и устройством декодирования видеосигналов, и, таким образом, они могут в совокупности упоминаться как «блок выведения вектора движения» (устройство выведения вектора движения).

[0077]

Устройство декодирования параметров внешнего прогнозирования 303 указывает энтропийному декодирующему устройству 301 декодировать элементы синтаксиса, относящиеся к внешнему прогнозированию, и извлекает элементы синтаксиса, включенные в кодированные данные, например, аффинный флаг affine_flag, флаг объединения merge_flag, индекс объединения merge_idx, индикатор внешнего прогнозирования inter_pred_idc, индекс эталонного изображения refIdxLX, индекс вектора прогнозирования mvp_LX_idx, разность векторов движения mvdLX и режим разложения векторов адаптивного движения amvr_mode.

[0078]

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

[0079]

В случае, если флаг объединения merge_flag указывает 1, т. е. режим прогнозирования объединения, индекс объединения merge_idx декодируется, и результат выводится в блок выведения параметров прогнозирования объединения 3036.

[0080]

В случае, когда флаг объединения merge_flag указывает 0, т. е. режим прогнозирования AMVP, например, индикатор внешнего прогнозирования inter_ pred_idc, индекс эталонного изображения refIdxLX, индекс вектора прогнозирования mvp_Lx_idx и разность векторов движения mvdLX декодируются в качестве параметров прогнозирования AMVP. Блок выведения параметров прогнозирования AMVP 3032 выводит вектор прогнозирования mvpLX из индекса вектора прогнозирования MVP_LX_idx. Блок добавления 3038 добавляет вектор прогнозирования mvpLX и разность векторов движения mvdLX, полученную для получения вектора движения mvLX.

[0081]

Блок аффинного прогнозирования

Блок аффинного прогнозирования 30372 выводит параметр аффинного прогнозирования целевого блока. В настоящем варианте осуществления в качестве параметра аффинного прогнозирования выводятся векторы движения (mv0_x, mv0_y) и (mv1_x, mv1_y) двух контрольных точек (V0, V1) целевого блока. В частности, вектор движения каждой контрольной точки может выводиться посредством прогнозирования из вектора движения смежного с целевым блока, или вектор движения каждой контрольной точки может выводиться как сумма векторов прогнозирования, полученная в виде вектора движения контрольной точки и разность векторов движения, полученная из кодированных данных.

[0082]

Следует отметить, что блок аффинного прогнозирования 30372 может выводить параметры, используемые для аффинного прогнозирования MVD на 4 параметров, или параметры, используемые для аффинного прогнозирования на 6 параметров MVD в зависимости от ситуации.

[0083]

Прогнозирование объединения

На ФИГ. 9(a) представлена принципиальная схема, иллюстрирующая конфигурацию блока выведения параметров прогнозирования объединения 3036, включенного в блок прогнозирования объединения 30374. Блок выведения параметров прогнозирования объединения 3036 включает в себя блок выведения вариантов объединения 30361 и блок выбора вариантов объединения 30362. Следует отметить, что варианты объединения включают в себя флаг использования списка прогнозирования predFlagLX, вектор движения mvLX и индекс эталонного изображения refIdxLX и сохраняются в списке вариантов объединения. Для варианта объединения, который хранится в списке вариантов объединения, назначают индекс в соответствии с заданным правилом.

[0084]

Блок выведения вариантов объединения 30361 выводит вариант объединения непосредственно путем использования вектора движения декодированного смежного блока и индекса эталонного изображения refIdxLX без каких-либо изменений. Кроме того, блок выведения вариантов объединения 30361 может применять описанные ниже обработку выведения вариантов пространственного объединения, обработку выведения вариантов временного объединения, обработку выведения вариантов попарного объединения и обработку выведения вариантов объединения нулей.

[0085]

При обработке выведения вариантов пространственного объединения блок выведения вариантов объединения 30361 считывает параметры прогнозирования, хранящиеся в памяти параметров прогнозирования 307, в соответствии с заданным правилом и конфигурирует параметры прогнозирования в качестве вариантов объединения. Способ указания эталонного изображения включает в себя, например, параметры прогнозирования, относящиеся к соседним блокам, которые находятся в пределах заданного диапазона от целевого блока (напр все или некоторые из блоков, смежных с целевым блоком А1 слева, В1 справа, B0 справа сверху, А0 слева внизу и В2 слева вверху от целевого блока). Соответствующие варианты объединения называются A1, B1, B0, A0 и B2.

[0086]

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

[0087]

A1: (xCb - 1, yCb+cbHeight - 1)

B1: (xCb+cbWidth -1, yCb - 1)

B0: (xCb+cbWidth, yCb - 1)

A0: (xCb - 1, yCb+cbHeight)

B2: (xCb - 1, yCb - 1)

При обработке выведения вариантов временного объединения блок выведения вариантов объединения 30361 считывает параметры прогнозирования для правого нижнего CBR целевого блока или блока C на эталонном изображении, включая координаты центра, из памяти параметров прогнозирования 307 в качестве вариантов объединения Col и сохраняет параметры прогнозирования в списке вариантов объединения mergeCandList[].

[0088]

Блок попарного выведения выводит парные варианты avgK и сохраняет попарные варианты avgK в списке вариантов объединения mergeCandList[].

[0089]

Блок выведения вариантов объединения 30361 выводит варианты объединения нулей Z0,..., ZM, для которых индексы эталонных изображений refIdxLX равны 0,..., M, а компонент X и компонент Y вектора движения mvLX равны 0, и сохраняет варианты объединения нулей Z0,..., ZM в списке вариантов объединения.

[0090]

Блок выведения вариантов объединения 30361 или блок попарного выведения сохраняют варианты объединения в списке вариантов объединения mergeCandList[] в порядке, например, вариантов пространственного объединения (A1, B1, B0, A0, B2), вариантов временного объединения Col, вариантов попарного объединения кандидата AvgK и вариантов объединения нулей ZeroCandK. Следует отметить, что опорный блок, который недоступен (блок внутреннего прогнозирования и т. п.), не хранится в списке вариантов объединения.

i=0

if(availableFlagA1)

mergeCandList[i++] = A1

if(availableFlagB1)

mergeCandList[i++] = B1

if(availableFlagB0)

mergeCandList[i++] = B0

if(availableFlagA0)

mergeCandList[i++] = A0

if(availableFlagB2)

mergeCandList[i++] = B2

if(availableFlagCol)

mergeCandList[i++] = Col

if(availableFlagAvgK)

mergeCandList[i++] = avgK

if(i < MaxNumMergeCand)

mergeCandList[i++] = ZK

Следует отметить, что верхние левые координаты целевого блока обозначены как (xCb, yCb), ширина целевого блока обозначена как cbWidth, а высота целевого блока обозначена как cbHeight.

[0091]

Блок выбора вариантов объединения 30362 выбирает вариант объединения N, указанный индексом объединения merge_idx, из вариантов объединения, включенных в список вариантов объединения, в соответствии с приведенной ниже формулой.

[0092]

N=mergeCandList[merge_idx]

В данном случае N представляет собой метку, указывающую вариант объединения и принимает вариант A1, B1, B0, A0, B2, Col, AvgK, ZeroCandK и т. п. Информация о перемещении варианта объединения, указанная меткой N, указана как (mvLXN [0], mvLXN [1]), predFlagLXN, refIdxLXN.

[0093]

Блок выбора вариантов объединения 30362 выбирает информацию о перемещении (mvLXN[0], mvLXN[1]), predFlagLXN и refIdxLXN выбранного варианта объединения в качестве параметров внешнего прогнозирования для целевого блока. Блок выбора варианта объединения 30362 сохраняет выбранные параметры внешнего прогнозирования в памяти параметров прогнозирования 307 и выводит выбранные параметры внешнего прогнозирования в блок генерирования прогнозируемых изображений 308.

[0094]

Блок прогнозирования MMVD 30373

Блок прогнозирования MMVD 30373 добавляет разность векторов движения mvdLX к центральному вектору mvdLX (вектору движения варианта объединения), полученному блоком выведения варианта объединения 30361 и выводит вектор движения.

[0095]

Блок прогнозирования MMVD 30376 выводит вектор движения mvLX[] с использованием синтаксисов base_candidate_idx, direction_idx и distance_idx, которые декодируются из варианта объединения mergeCandList[] и кодированных данных или кодируются в кодированные данные. Кроме того, блок прогнозирования MMVD 30376 может кодировать или декодировать синтаксис distance_list_idx для выбора таблицы расстояний для применения.

[0096]

Блок прогнозирования MMVD 30376 выбирает центральный вектор mvLN[] с использованием base_candidate_idx.

[0097]

N=mergeCandList[base_candidate_idx]

Блок прогнозирования MMVD 30376 выводит базовое расстояние (mvdUnit[0], mvdUnit[1]) и расстояние DistFromBaseMV.

[0098]

dir_table_x[] = {2, -2, 0, 0, 1, -1, -1, 1}

dir_table_y[] = {0, 0, 2, -2, 1, -1, 1, -1}

mvdUnit[0] = dir_table_x[direction_idx]

mvdUnit[1] = dir_table_y[direction_idx]

DistFromBaseMV=DistanceTable[distance_idx]

Блок прогнозирования MMVD 30376 выводит разность векторов движения refineMv[].

[0099]

firstMv[0] = (DistFromBaseMV << shiftMMVD) * mvdUnit[0]

firstMv[1] = (DistFromBaseMV << shiftMMVD) * mvdUnit[1]

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

[0100]

refineMvL0[0] = firstMv[0]

refineMvL0[1] = firstMv[1]

refineMvL1[0] = -firstMv[0]

refineMvL1[1] = -firstMv[1]

Наконец, блок прогнозирования MMVD 30376 выводит вектор движения варианта объединения MMVD из разность векторов движения refineMvLX и центрального вектора mvLXN следующим образом:

mvL0[0] = mvL0N[0] + refineMvL0[0]

mvL0[1] = mvL0N[1] + refineMvL0[1]

mvL1[0] = mvL1N[0] + refineMvL1[0]

mvL1[1] = mvL1N[1] + refineMvL1[1]

Прогнозирование AMVP

На ФИГ. 9(b) представлена принципиальная схема, иллюстрирующая конфигурацию блока выведения параметров прогнозирования AMVP 3032 в соответствии с настоящим вариантом осуществления. Блок выведения параметров прогнозирования AMVP 3032 включает в себя блок выведения вариантов векторов 3033 и блок выбора вариантов векторов 3034. Блок выведения вариантов векторов 3033 выводит вариант вектора прогнозирования из вектора движения mvLX декодированного смежного блока, хранящегося в памяти параметров прогнозирования 307, на основании индекса эталонного изображения refIdxLX и сохраняет результат в списке вариантов векторов прогнозирования mvpListLX[].

[0101]

Блок выбора вариантов векторов 3034 выбирает среди вариантов векторов прогнозирования из списка вариантов векторов прогнозирования mvpListLX[] вектор движения mvpListLX[mvp_LX_idx], указанный индексом вектора прогнозирования mvp_LX_idx, в качестве вектора прогнозирования mvpLX. Блок выбора вариантов векторов 3034 выводит выбранный вектор прогнозирования mvpLX в блок добавления 3038.

[0102]

Блок добавления 3038 добавляет вход вектора прогнозирования mvpLX от блока выведения параметров прогнозирования AMVP 3032 и декодированная разность векторов движения mvdLX и рассчитывает вектор движения mvLX. Блок добавления 3038 выводит расчетный вектор движения mvLX в блок генерирования прогнозируемых изображений 308 и память параметров прогнозирования 307.

[0103]

mvLX[0] = mvpLX[0] + mvdLX[0]

mvLX[1] = mvpLX[1] + mvdLX[1]

Режим разложения векторов адаптивного движения amvr_mode представляет собой синтаксис, который переключает точность вектора движения, полученную в режиме AMVP, и, например, переключает точность между 1⁄4, 1 и 4 пикселей при amvr_mode=0, 1 и 2.

[0104]

В случае, когда точность векторов движения равна 1/16, обратное квантование может выполняться с использованием MvShift (= 1 << amvr_mode), полученной из amvr_mode, как описано ниже, чтобы изменить разность векторов движения с точностью 1/4, 1 или 4 пикселей на разность векторов движения с точностью 1/16 пикселей.

[0105]

mvdLX [0] = mvdLX [0] << (MvShift+2)

mvdLX[1] = mvdLX[1] << (MvShift+2)

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

- abs_mvd_greater0_flag

- abs_mvd_minus2

- mvd_sign_flag декодированы. Затем устройство декодирования параметров 302 декодирует разность векторов движения lMvd[] от синтаксиса посредством использования уравнения ниже.

[0106]

lMvd[compIdx] = abs_mvd_greater0_flag[compIdx] * (abs_mvd_minus2[compIdx] + 2) * (1 ? 2 * mvd_sign_flag[compIdx]

Более того, декодированная разность векторов движения lMvd [] сконфигурирована на mvdLX для перемещения MVD (MotionModelIdc[x][y] =0) и сконфигурирована на mvdCpLX для контрольной точки MVD (MotionModelIdc[x][y]! = 0).

[0107]

if (MotionModelIdc[x][y] == 0)

mvdLX[x0][y0][compIdx] = lMvd[compIdx]

else

mvdCpLX[x0][y0][compIdx] = lMvd[compIdx] << 2

DMVR

Далее будет описана обработка уточнения вектора движения (DMVR) со стороны блока декодирования, выполняемая блоком DMVR 30375. В случае, когда флаг объединения merge_flag, указывает на то, что режим прогнозирования объединения применяется к целевому CU или что флаг пропуска skip_flag указывает, на то, что к целевому CU применяют режим пропуска, блок DMVR 30375 использует эталонное изображение для изменения вектора движения mvLX целевого CU, полученного блоком прогнозирования объединения 30374.

[0108]

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

[0109]

Прогнозирование треугольников

Ниже приведено описание прогнозирования треугольников. При прогнозировании треугольников целевой CU разделяется на два треугольных блока прогнозирования с использованием диагональной линии или противоположной диагональной линии в качестве границы. Прогнозируемое изображение в каждом треугольном блоке прогнозирования получают путем выполнения обработки весовой маски на каждом пикселе прогнозируемого изображения целевого CU (прямоугольный блок, включающий в себя треугольный блок прогнозирования) в зависимости от положения пикселя. Например, треугольное изображение может быть получено из прямоугольного изображения посредством мультипликации посредством маскирования, при котором пиксели треугольной области, включенной в прямоугольную область, составляют 1, тогда как пиксели участков прямоугольной области, кроме участка, соответствующего треугольной области, составляют 0. Кроме того, после генерирования изображения внешнего прогнозирования адаптивную взвешенную обработку применяют к обеим областям по диагональной линии, и одно прогнозируемое изображение целевого CU (прямоугольный блок) получают посредством адаптивной взвешенной обработки с использованием двух прогнозируемых изображений. Такую обработку называют «обработка объединения треугольников». Затем ко всему целевому CU применяют обработку преобразования (обратное преобразование) и квантования (обратное квантование). Следует отметить, что прогнозирование треугольников применяется только в режиме прогнозирования объединения или режиме пропуска.

[0110]

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

[0111]

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

[0112]

В памяти эталонных изображений 306 хранится декодированное изображение CU, сгенерированное блоком добавления 312, в заданной позиции для каждого целевого изображения и целевого CU.

[0113]

В памяти параметров прогнозирования 307 хранится параметр прогнозирования в положении, заданном для каждого декодируемого CTU или CU. В частности, в памяти параметров прогнозирования 307 хранится параметр, декодированный устройством декодирования параметров 302, режим прогнозирования predMode, декодированный энтропийным декодирующим устройством 301, и т. п.

[0114]

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

[0115]

Блок генерирования изображений внешнего прогнозирования 309

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

[0116]

На ФИГ. 10 представлена принципиальная схема, иллюстрирующая конфигурацию блока генерирования изображений внешнего прогнозирования 309, включенного в блок генерирования прогнозируемых изображений 308, согласно настоящему варианту осуществления. Блок генерирования изображений внешнего прогнозирования 309 включает в себя блок компенсации движения (устройство генерирования прогнозируемых изображений) 3091 и блок объединения 3095.

[0117]

Компенсация движения

Блок компенсации движения 3091 (блок генерирования интерполяционных изображений 3091) генерирует интерполяционное изображение (изображение компенсации движения) на основании параметров внешнего прогнозирования (флаг использования списка прогнозирования predFlagLX, индекс эталонного изображения refIdxLX, вектор движения mvLX), поступающих от устройства декодирования параметров внешнего прогнозирования 303, посредством считывания из памяти эталонных изображений 306 блока в положении, смещенном вектором движения mvLX, во время получения положения целевого блока на эталонном изображении RefPicLX, определяемого индексом эталонного изображения refIdxLX в качестве начальной точки. В данном случае, если точность вектора движения mvLX не является целым числом, за счет применения фильтра для генерирования пикселя положения дробной части, который упоминается как «фильтр компенсации движения», генерируется изображение компенсации движения.

[0118]

Блок компенсации движения 3091 сначала выводит положение целого числа (xInt, yInt) и фазу (xFrac, yFrac), соответствующие координатам блока внутреннего прогнозирования (x, y) с помощью следующего уравнения.

[0119]

xInt=xPb + (mvLX[0] >> (log2(MVPREC))) + x

xFrac=mvLX[0] & (MVPREC - 1)

yInt=yPb + (mvLX[1] >> (log2(MVPREC))) + y

yFrac=mvLX[1] & (MVPREC - 1)

В данном случае (xPb, yPb) указывает верхние левые координаты блока с размером bW* bH, то есть x=0... bW - 1, y=0... bH - 1, и MVPREC указывает на точность вектора движения mvLX (точность пикселя 1/MVPREC). Например, MVPREC=16.

[0120]

Блок компенсации движения 3091 выводит временное изображение temp[][] посредством выполнения обработки горизонтальной интерполяции эталонного изображения с использованием интерполяционного фильтра. В следующем уравнении Σ представляет собой сумму, относящуюся к k=0,..., NTAP - 1, shift1 представляет собой параметр нормализации для корректировки диапазона значений, и offset1=1 << (shift1-1).

[0121]

temp[x][y] = (ΣmcFilter[xFrac][k] * refImg[xInt+k - NTAP/2+1][yInt] + offset1) >> shift1

Затем блок компенсации движения 3091 выводит интерполяционное изображение Pred[][], посредством выполнения обработки вертикальной интерполяции временного изображения temp[][]. В следующем уравнении Σ представляет собой сумму, относящуюся к k=0,..., NTAP - 1, shift2 представляет собой параметр нормализации для корректировки диапазона значений и offset2=1 << (shift2-1).

[0122]

Pred[x][y] = (ΣmcFilter[xFrac][k] * temp[x][y+k - NTAP/2+1] + offset2) >> shift2

Описанная выше обработка генерирования интерполяционных изображений может быть представлена интерполяцией (refImg, xPb, yPb, bW, bH, mvLX).

[0123]

Блок объединения

Блок объединения 3095 ссылается на интерполяционное изображение, подаваемое блоком компенсации движения 3091, параметр внешнего прогнозирования, подаваемый устройством декодирования параметров внешнего прогнозирования 303, и внутреннее изображение, подаваемое блоком генерирования изображений внутреннего прогнозирования 310, для генерирования прогнозируемого изображения и передает сгенерированное прогнозируемое изображение в блок добавления 312.

[0124]

Блок объединения 3095 включает в себя блок смешанного внутреннего/внешнего объединения 30951, блок объединения треугольников 30952, блок OBMC 30953, устройство взвешенного прогнозирования 30954, блок GBI 30955 и блок BIO 30956.

[0125]

Обработка смешанного внутреннего/внешнего объединения

Блок смешанного внутреннего/внешнего объединения 30951 генерирует прогнозируемое изображение посредством составного использования изображения однонаправленного прогнозирования, прогнозируемого изображения на основе режима пропуска или режима объединения и изображения внутреннего прогнозирования в AMVP.

[0126]

Обработка объединения треугольников

Блок объединения треугольников 30952 генерирует прогнозируемое изображение с использованием описанного выше прогнозирования треугольника.

[0127]

Обработка OBMC

Блок OBMC 30953 генерирует прогнозируемое изображение с использованием обработки компенсации движения при наложении блоков (OBMC). Обработка OBMC включает в себя следующую обработку.

- Интерполяционное изображение (изображение компенсации движения) целевого подблока генерируется посредством использования интерполяционного изображения (интерполяционного изображения PU), сгенерированного посредством использования параметра внешнего прогнозирования, добавленного к целевому подблоку, и интерполяционное изображение (интерполяционное изображение OBMC), сгенерированное посредством использования параметра движения смежного подблока целевого подблока.

- Прогнозируемое изображение генерируется посредством взвешенного усреднения интерполяционного изображения OBMC и интерполяционного изображения PU.

[0128]

Устройство взвешенного прогнозирования 30954

Устройство взвешенного прогнозирования 309454 умножает изображения компенсации движения PredL0 и PredL1 на весовой коэффициент для генерирования прогнозируемого изображения блока. В случае, когда один из флагов использования списка прогнозирования (predFlagL0 или predFlagL1) равен 1 (однонаправленное прогнозирование), а взвешенное прогнозирование не используется, выполняется обработка в соответствии со следующим уравнением, в котором изображение компенсации движения PredLX (LX равно L0 или L1) адаптировано к числу бит на пиксель bitDepth.

[0129]

Pred[x][y] = Clip3(0, (1 << bitDepth) - 1, (PredLX[x][y] + offset1) >> shift1)

Здесь установлены shift1=Max(2, 14 - bitDepth), offset1=1 << (shift1-1).

[0130]

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

Более того, в случае, когда оба флага использования списка прогнозирования (predFlagL0 и predFlagL1) равны 1 (двунаправленное прогнозирование BiPred), и не используется взвешенное прогнозирование, выполняется обработка в соответствии со следующим уравнением, в котором изображения компенсации движения PredL0 и PredL1 усредняются и адаптируются к числу бит на пиксель.

[0131]

Pred[x][y] = Clip3(0, (1 << bitDepth) - 1, (PredL0[x][y] + PredL1[x][y] + offset2) >> shift2)

Здесь установлены shift2=Max(3, 15 - bitDepth) и offset2=1 << (shift2-1). Кроме того, описанная ниже обработка с двунаправленным прогнозированием на ФИГ. 18, ФИГ. 19 и ФИГ. 20 относится к описанной выше обработке. Такую обработку также называют стандартным двунаправленным прогнозированием.

[0132]

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

[0133]

Pred[x][y] = Clip3(0, (1 << bitDepth) - 1, ((PredL0[x][y] * w0 + (1 << (log2WD - 1))) >> log2WD) + o0)

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

[0134]

Pred[x][y] = Clip3(0, (1 << bitDepth) - 1, ((PredL1[x][y] * w1 + (1 << (log2WD - 1))) >> log2WD) + o1)

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

[0135]

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

Более того, в случае, когда выполняют двунаправленное прогнозирование и взвешенное прогнозирование, устройство взвешенного прогнозирования 30954 получает взвешенные коэффициенты прогнозирования w0, w1, o0 и o1 из кодированных данных и выполняет обработку в соответствии со следующим уравнением.

[0136]

Pred[x][y] = Clip3(0, (1 << bitDepth) - 1, (PredL0[x][y] * w0+PredL1[x][y] * w1 + ((o0+o1+1) << log2WD)) >> (log2WD+1))

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

[0137]

Обработка GBI

Для описанного выше «взвешенного прогнозирования» был приведен пример, в котором интерполяционное изображение умножают на весовой коэффициент для генерирования прогнозируемого изображения. В данном документе будет описан другой пример, в котором интерполяционное изображение умножают на весовой коэффициент для генерирования прогнозируемого изображения. В частности, будет описана обработка для генерирования прогнозируемого изображения с использованием общего двунаправленного прогнозирования (далее упоминается как «прогнозирование GBI»). При прогнозировании GBI прогнозируемое изображение L0 и прогнозируемое изображение L1 при двунаправленном прогнозировании (PredL0 и PredL1) умножают на весовые коэффициенты (w0, w1) для генерирования прогнозируемого изображения Pred.

[0138]

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

[0139]

Блок GBI 30955 отмечает флаг gbiAppliedFlag, указывающий, нужно ли использовать прогнозирование GBI, и в случае «ЛОЖЬ» блок компенсации движения 3091 генерирует прогнозируемое изображение с использованием следующего уравнения.

[0140]

Pred[x][y] = Clip3(0, (1 << bitDepth)?1,

(PredL0[x][y] + PredL1[x][y] + offset2) >> shift2)

В данном случае исходное состояние флага gbiAppliedFlag - это ЛОЖЬ. Блок GBI 30955 конфигурирует флаг gbiAppliedFlag на значение «ИСТИНА» в том случае, когда флаг SPS, указывающий, что обработка GBI включена, и что выполняется двунаправленное прогнозирование. Кроме того, в качестве дополнительного условия (И) для gbiAppliedFlag также может быть задано значение «ИСТИНА», в том случае, когда gbiIdx, указывающий индекс в таблице для весовых коэффициентов прогнозирования GBI, не равен 0. В данном случае 0 указывает, что прогнозируемое изображение L0 и прогнозируемое изображение L1 имеют равный весовой коэффициент. Кроме того, в качестве дополнительного условия (И) для gbiAppliedFlag также может быть задано значение «ИСТИНА» в случае, когда CU имеет размер блока с определенным значением или больше.

[0141]

В случае, когда gbiAppliedFlag указывает значение «ИСТИНА», блок GBI 30955 выводит прогнозируемое изображение Pred, полученное из весовых коэффициентов w0 и w1, а также PredL0 и PredL1 в соответствии с уравнением ниже.

[0142]

Pred[x][y] = Clip3(0, (1 << bitDepth)?1,

(w0 * PredL0[x][y] + w1 * PredL1[x][y] + offset3) >> (shift2+3))

В данном случае весовой коэффициент w1 представляет собой коэффициент, полученный из таблицы gbwTable [], как показано на ФИГ. 11, причем gbiIdx прямо указан в синтаксисе. gbwTable[] = {4, 5, 3, 10, -2}. Весовой коэффициент w0 определен как (8 - w1). Следует отметить, что в случае, когда gbiIdx=0, то w0=w1=4 и эти значения эквивалентны значениям при стандартном двунаправленном прогнозировании.

[0143]

shift1, shift2, offset1 и offset2 получают в соответствии с уравнением ниже.

[0144]

shift1=Max(2, 14 - bitDepth)

shift2=Max(3, 15 - bitDepth) = shift1+1

offset1=1 << (shift1-1)

offset2=1 << (shift2-1)

offset3=1 << (shift2+2)

В случае, когда может быть множество таблиц gbwTable[], имеющих различные комбинации весовых коэффициентов, блок GBI 30955 может переключать используемую таблицу для выбора весового коэффициента в зависимости от того, является ли структура изображения LowDelay (LB) или нет.

[0145]

В случае использования прогнозирования GBI в режиме прогнозирования AMVP устройство декодирования параметров внешнего прогнозирования 303 декодирует gbiIdx и передает результат декодирования в блок GBI 30955. Кроме того, в случае использования прогнозирования GBI в режиме прогнозирования объединения, устройство декодирования параметров внешнего прогнозирования 303 декодирует индекс объединения merge_idx и блок выведения вариантов объединения 30361 выводит gbiIdx каждого варианта объединения. В частности, блок выведения вариантов объединения 30361 использует весовой коэффициент для смежного блока, используемого для получения варианта объединения, в качестве весового коэффициента для варианта объединения, используемого для целевого блока. Иными словами, в режиме объединения ранее использованный весовой коэффициент унаследован как весовой коэффициент для целевого блока.

[0146]

Выбор режима прогнозирования с использованием прогнозирования GBI

Далее со ссылкой на ФИГ. 12 будет описана обработка для выбора режима прогнозирования с использованием прогнозирования GBI в устройстве декодирования 31. На ФИГ. 12 представлена блок-схема, иллюстрирующая пример протекания обработки выбранных данных для режима прогнозирования в устройстве декодирования видеосигналов 31.

[0147]

Как показано на ФИГ. 12, устройство декодирования параметров внешнего прогнозирования 303 сначала декодирует флаг пропуска (S101). В случае, когда флаг пропуска указывает на то, что режим пропуска активен (ДА в S102), как режим прогнозирования установлен режим объединения (S103). Устройство декодирования параметров внешнего прогнозирования 303 декодирует индекс объединения (S1031), и в случае использования прогнозирования GBI блок GBI 30955 выводит весовой коэффициент с использованием варианта объединения в качестве весового коэффициента для прогнозирования GBI.

[0148]

В случае, когда флаг пропуска не указывает на то, что режим пропуска активен (НЕТ в S102), устройство декодирования параметров внешнего прогнозирования 303 декодирует флаг объединения (S104). В случае, когда флаг объединения указывает, что режим объединения активен (ДА в S105), как режим прогнозирования установлен режим объединения (S103), устройство декодирования параметров внешнего прогнозирования 303 декодирует индекс объединения (S1031). В случае использования прогнозирования GBI блок GBI 30955 выводит весовой коэффициент с использованием варианта объединения в качестве весового коэффициента для прогнозирования GBI.

[0149]

В случае, когда флаг объединения не указывает на то, что режим объединения активен (НЕТ в S105), как режим прогнозирования установлен режим AMVP (S106).

[0150]

В режиме AMVP устройство декодирования параметров внешнего прогнозирования 303 декодирует индикатор внешнего прогнозирования inter_pred_idc (S1061). Затем устройство декодирования параметров внешнего прогнозирования 303 декодирует разность векторов движения mvdLX (S1062). Затем устройство декодирования параметров внешнего прогнозирования 303 декодирует gbiIdx (S1063), и в случае использования прогнозирования GBI блок GBI 30955 выбирает весовой коэффициент w1 для прогнозирования GBI из вариантов весовых коэффициентов, приведенных в таблице на ФИГ. 11.

[0151]

Обработка BIO

Блок BIO 30956 генерирует прогнозируемое изображение посредством выполнения процесса прогнозирования выборки двунаправленного оптического потока (BIO), при котором прогнозируемое изображение выводится из значения уточнения компенсации движения, полученного из градиентного изображения и двух интерполяционных изображений.

[0152]

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

[0153]

На ФИГ. 13 представлена блок-схема, иллюстрирующая поток обработки для получения прогнозируемого изображения.

[0154]

В случае, когда устройство декодирования параметров внешнего прогнозирования 303 определяет однонаправленное прогнозирование L0 (в S201, inter_ pred_idc равно 0), блок компенсации движения 3091 генерирует прогнозируемое изображение L0 PredL0[x][y] (S202). В случае, когда устройство декодирования параметров внешнего прогнозирования 303 определяет однонаправленное прогнозирование L1 (в S201, inter_ pred_idc равно 1), блок компенсации движения 3091 генерирует прогнозируемое изображение L1 PredL1[x][y] (S203). С другой стороны, в случае, когда устройство декодирования параметров внешнего прогнозирования 303 определяет, что режим двойного прогнозирования активен (в S201, inter_ pred_idc равно 2), обработка переходит к описанному ниже S204. В S204 блок объединения 3095 ссылается на bioAvailableFlag, указывающий, следует ли выполнять обработку BIO, и определяет, необходима ли обработка BIO. В случае, когда для bioAvailableFlag указано значение «ИСТИНА», блок BIO 30956 выполняет обработку BIO для генерирования изображения двунаправленного прогнозирования (S206). В случае, когда для если bioAvailableFlag указано значение «ЛОЖЬ», блок объединения 3095 генерирует прогнозируемое изображение посредством обработки стандартного прогнозирования (S205).

[0155]

Устройство декодирования параметров внешнего прогнозирования 303 может выводить значение «ИСТИНА» для bioAvailableFlag в случае, когда эталонное изображение L0 refImgL0 и эталонное изображение L1 refImgL1 являются разными эталонными изображения и когда два эталонных изображения находятся в противоположных направлениях относительно целевого изображения. В частности, если предположить, что currPic - это целевое изображение, для bioAvailableFlag указывается значение «ИСТИНА» в случае, когда соблюдается условие DiffPicOrderCnt (currPic, refImgL0) * DiffPicOrderCnt (currPic, refImgL1) < 0 В данном случае DiffPicOrderCnt() представляет собой функцию, которая определяет разницу между счетчиком порядковых номеров изображений (POC: порядок отображения изображений) двух изображений следующим образом.

[0156]

DiffPicOrderCnt(picA, picB) = PicOrderCnt(picA) - PicOrderCnt(picB)

В качестве условия, при котором для bioAvailableFlag указано значение «ИСТИНА», может быть добавлено условие, при котором вектор движения целевого блока не представляет собой вектор движения в единицах подблоков.

[0157]

Кроме того, в качестве условия, при котором для bioAvailableFlag указано значение «ИСТИНА», может быть добавлено условие, при котором сумма разности абсолютных значений между интерполяционным изображением L0 и интерполяционным изображением L1 больше или равна заданному значению.

[0158]

Кроме того, в качестве условия, при котором для bioAvailableFlag указано значение «ИСТИНА», может быть добавлено условие, при котором как режим создания прогнозируемого изображения установлен режим создания прогнозируемого изображения в единицах блоков.

[0159]

Определение «добавления условия», как описано выше, может быть выполнено на основе условия «логического И».

[0160]

Конкретное содержание обработки, выполняемой блоком BIO 30956, будет описано с использованием ФИГ. 14. Блок обработки BIO 30956 включает в себя блок генерирования прогнозируемых изображений L0 и L1 (309561), блок генерирования градиентных изображений 309562, блок расчета коэффициента корреляции 309563, блок выведения значения уточнения компенсации движения 309564 и блок генерирования изображения прогнозирования BIO 309565. Блок BIO 30956 генерирует прогнозируемое изображение из интерполяционного изображения, полученного от блока компенсации движения 3091, и параметр внешнего прогнозирования, принятый от устройства декодирования параметров внешнего прогнозирования 303, и выводит сгенерированное прогнозируемое изображение в блок добавления 312. Следует отметить, что обработку для получения уточненного значения компенсации движения modBIO (уточненное значение компенсации движения) из градиентного изображения, а также уточнение и выведение прогнозируемых изображений PredL0 и PredL1 называют процессом прогнозирования выборки двунаправленного оптического потока.

[0161]

Блок генерирования прогнозируемых изображений L0 и L1 309561 включает в себя блок обработки интерполяционных изображений L0 и L1 3095611. Как показано на ФИГ. 17, блок генерирования прогнозируемых изображений L0 и L1 309561 может дополнительно включать в себя переключатель 3095612 и блок взвешенной обработки интерполяционных изображений L0 и L1 3095613.

[0162]

Сначала, блок генерирования прогнозируемых изображений L0 и L1 309561 (блок обработки заполнения интерполяционных изображений L0 и L1 3095611) генерирует прогнозируемые изображения L0 и L1 (PredL0 и PredL1), используемые для обработки BIO. В блоке 30956 выполняется обработка BIO на основании прогнозируемых изображений L0 и L1 в единицах CU или подединицах CU, показанных на ФИГ. 15. При обработке BIO, которая предусматривает, что градиентное изображение получает интерполяционное изображение, соответствующее двум пикселям вокруг целевого CU или подединицы CU, иными словами, для CU или подединицы CU с шириной (width) и высотой (height) получает интерполяционное изображение с шириной (width+2) и высотой (height+2). Интерполяционное изображение этого участка может быть сгенерировано с использованием фильтра с короткой длиной отсчета, используемого в билинерном фильтре, а не регулярном интерполяционном фильтре. В частности, блок генерирования прогнозируемых изображений L0 и L1 309561 выводит интерполяционное изображение для внутренней стороны целевого блока с использованием интерполяционного изображения от блока компенсации движения 3091 и выводит интерполяционное изображение для участка за пределами целевого блока с использованием билинеарного фильтра или т. п. Следует отметить, что в случаях, отличных от случая, когда получают градиент (PredL0 и PredL1, используемые в сумме произведения градиента), для участка за пределами целевого блока окружающие пиксели могут быть скопированы как область заполнения, как в случае с внешней стороной изображения. Иными словами, модуль расчета коэффициента корреляции 309563 может использовать копирование для получения участков за пределами целевого блока для PredL0[][] и PredL1[][], используемых в случае получения сумм произведений градиентов s1, s2, s3, s5 и s6.

[0163]

Следует отметить, что блок обработки BIO соответствует N x N пикселям, что равно или меньше единицы CU или подединицы CU, но что обработка генерирования градиентных изображений и обработка выведения коэффициентов корреляции выполняется с использованием (N+2) x (N+2) пикселей, включая приблизительно один пиксель.

[0164]

Блок генерирования градиентных изображений 309562 генерирует градиентное изображение. Предполагается, что при оптическом потоке значение пикселя в каждой точке не изменяется, тогда как изменяется только положение точки. Это можно выразить уравнением ниже с использованием изменения горизонтального значения пикселя I (значение горизонтального градиента lx), изменения положения пикселя Vx и изменения значения вертикального пикселя I (значение вертикального градиента LY), изменения положения пикселя Vy и временного изменения значения lt пикселя I.

[0165]

lx * Vx+ ly * Vy+lt=0

Далее в настоящем документе изменение положения (Vx, Vy) упоминается как скорректированный весовой вектор (u, v).

[0166]

В частности, блок генерирования градиентных изображений 309562 выводит градиентные изображения lx0, ly0, lx1, ly1 в соответствии с уравнением ниже. lx0 and lx1 указывают градиенты по горизонтали, а ly0 и ly1 указывают градиенты по вертикали.

[0167]

lx0[x][y] = (PredL0[x+1][y] - PredL0 [x - 1][y]) >> 4

ly0[x][y] = (PredL0[x][y+1] - PredL0[x][y - 1]) >> 4

lx1[x][y] = (PredL1[x+1][y] - PredL1[x - 1][y]) >> 4

ly1[x][y] = (PredL1[x][y+1] - PredL1[x][y - 1]) >> 4

Затем блок расчета коэффициента корреляции 309563 выводит суммы произведений градиентов s1, s2, s3, s5 и s6 для (N+2) x (N+2) пикселей с использованием одного пикселя вокруг каждого блока из N x N пикселей с внутренней стороны CU.

[0168]

s1=sum(phiX[x][y] * phiX[x][y])

s2=sum(phiX[x][y] * phiY[x][y])

s3=sum(-theta[x][y] * phiX[x][y])

s5=sum(phiY[x][y] * phiY[x][y])

s6=sum(-theta[x][y] * phiY[x][y])

Здесь сумма(a) представляет собой сумму a для координат (x, y) в пределах блока (N+2) x (N+2) пикселей. Кроме того,

phiX[x][y] = (lx1[x][y] + lx0[x][y]) >>3

phiY[x][y] = (ly1[x][y] + ly0[x][y]) >> 3

theta[x][y] = -(PredL1[x][y] >> 6) + (PredL0[x][y] >> 6)

Затем блок выведения уточненного значения компенсации движения 30954 использует полученные суммы произведений градиентов s1, s2, s3, s5 и s6 для получения скорректированного взвешенного вектора (u, v) в единицах N x N пикселей.

[0169]

u = (s3 << 3) >> log2(s1)

v = ((s6 << 3) - ((((u * s2m) << 12) + u * s2s) >> 1)) >> log2(s5)

Здесь s2 m=s2 >> 12 и s2s=s2 & ((1 << 12) - 1).

[0170]

Следует отметить, что диапазоны u и v дополнительно могут быть ограничены применением описанного ниже ограничения.

[0171]

u=s1 > 0? Clip3(-th, th, -(s3 << 3) >> floor (log2(s1))): 0

v=s5 > 0? Clip3(-th, th, ((s6 << 3) - ((((u * s2m) << 12) + u* s2s)) >> 1) >> floor (log2(s5))): 0

Здесь th=1 << (13 - bitDepth).

[0172]

Блок выведения уточненного значения компенсации движения 309564 использует скорректированный взвешенный вектор (u, v) в единицах N x N пикселей и градиентные изображения lx0, ly0, lx1 и ly1 для получения modBIO[x][y] уточненного значения компенсации движения для N x N пикселей.

[0173]

modBIO[x][y] = ((lx1[x][y] - lx0[x][y]) * u + (ly1[x][y] - ly0[x] [y]) * v+1) >> 1 (Уравнение A3).

Или modBIO можно получить с помощью приведенного ниже уравнения с использованием функции округления.

[0174]

modBIO[x][y] = Round(((lx1[x][y] - lx0[x][y]) * u) >> 1) + Round(((ly1[x][y] - ly0[x][y]) * v) >> 1)

Блок генерирования изображения прогнозирования BIO 309565 выводит значение пикселей Pred прогнозируемого изображения N x N пикселей в соответствии с приведенным ниже уравнением с использованием описанных выше параметров.

[0175]

Pred[x][y] = Clip3(0, (1 << bitDepth) - 1, (PredL0[x][y] + PredL1[x][y] + modBIO[x][y] + offset2) >> shift2)

Здесь установлены shift2=Max(3, 15 - bitDepth) и offset2=1 << (shift2-1).

[0176]

Далее будет описан другой вариант осуществления прогнозирования (прогнозирование BIO), в котором используется обработка BIO, выполняемая блоком BIO 30956. Описанный выше вариант осуществления поднимает проблему, которая заключается в том, что правильная операция выполняется в случае, когда битовая глубина изображения bitDepth составляет 10 бит, но в противном случае точность вычисления для градиентного изображения не подходит для кодирующей битовой глубины изображения, что приводит к снижению эффективности кодирования. Таким образом, как описано ниже, операция выполняется во взаимодействии с битовой глубиной изображения и находится в пределах диапазона 32-битовой операции в случае, когда битовая глубина изображения bitDepth составляет 8 бит или более.

[0177]

В частности, блок генерирования градиентных изображений 309562 выводит градиентные изображения lx0, ly0, lx1 и ly1 следующим образом.

[0178]

lx0[x][y] = (PredL0[x+1][y] - PredL0[x - 1][y]) >> shift1

ly0[x][y] = (PredL0[x][y+1] - PredL0[x][y - 1]) >> shift1

lx1[x][y] = (PredL1[x+1][y] - PredL1[x - 1][y]) >> shift1

ly1[x][y] = (PredL1[x][y+1] - PredL1[x][y - 1]) >> shift1

Здесь shift1=Max (2,14 - bitDepth).

[0179]

В случае применения для HEVC интерполяционного фильтра точность вычисления значений PredL0 и PredL1 составляет 14 битов в случае, когда bitDepth находится в диапазоне от 8 до 12 битов, и (bitDepth+ 2) битов в случае, когда bitDepth больше 12. В настоящем варианте осуществления точность вычисления градиентных изображений lx0, ly0, lx1 и ly1 принята равной (bitDepth+1) битов посредством сдвига вправо shift1, в зависимости от значения bitDepth.

[0180]

Затем блок расчета коэффициента корреляции 309563 выводит суммы произведений градиентов s1, s2, s3, s5 и s6 для каждого блока из N x N пикселей в CU. В этом отношении один пиксель вокруг блока дополнительно используется для вычисления значений из сумм s1, s2, s3, s5 и s6 для пикселей в блоке значений (N+2)* (N+2) пикселей.

[0181]

s1=sum(phiX[x][y] * phiX[x][y])

s2=sum(phiX[x][y] * phiY[x][y])

s3=sum(-theta[x][y] * phiX[x][y])

s5=sum(phiY[x][y] * phiY[x][y])

s6=sum(-theta[x][y] * phiY[x][y])

Здесь сумма(a) представляет собой сумму a для координат (x, y) в пределах блока (N+2) x (N+2) пикселей. Кроме того,

theta[x][y] = -(PredL1[x][y] >> shift4) + (PredL0 [x] [y] >> shift4)

phiX[x][y] = (lx1[x][y] + lx0[x][y]) >> shift5

phiY[x][y] = (ly1[x][y] + ly0[x][y]) >> shift5

Здесь:

shift4=Min(8, bitDepth - 4)

shift5=Min(5, bitDepth - 7)

[0182]

В другой конфигурации блок расчета коэффициента корреляции 309563 суммы произведений градиентов s1, s2, s3, s5 и s6 могут быть определены на основании блока из N x N пикселей вместо блока из (N+2) x (N+2) пикселей. В этом случае используются следующие значения сдвига.

[0183]

shift4=Min(7, bitDepth - 5)

shift5=Min(4, bitDepth - 8)

Кроме того, единица обработки BIO идентична области загрузки, что исключает необходимость в наличии области заполнения в виде одного пикселя вокруг целевого CU или подединицы CU, в отличие от ФИГ. 14.

[0184]

Затем блок выведения уточненного значения компенсации движения 309564 использует полученные суммы произведений градиентов s1, s2, s3, s5 и s6 для получения скорректированного взвешенного вектора (u, v) в единицах N x N пикселей.

[0185]

u = (s3 << 3) >> log2(s1)

v = ((s6 << 3) - ((((u * s2m) << 12) + u * s2s) >> 1)) >> log2(s5)

Здесь s2 m=s2 >> 12 и s2s=s2 & ((1 << 12) - 1).

[0186]

Следует отметить, что диапазоны u и v дополнительно могут быть ограничены применением описанного ниже ограничения.

[0187]

u=s1 > 0? Clip3(-th, th, -(s3 << 3) >> floor (log2(s1))): 0

v=s5 > 0? Clip3 (-th, th, ((s6 << 3) - ((((u* s2m) << 12) + u * s2s) >> 1)) >> floor (log2(s5))): 0

Здесь:

th=Max (2, 1 <<(13 - bitDepth)).

Значение th необходимо рассчитывать одновременно со сдвигом shift1 и, следовательно, необходимо учитывать случай, в котором битовая глубина изображения составляет более 12 битов.

[0188]

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

[0189]

Блок выведения уточненного значения компенсации движения 309564 использует скорректированный взвешенный вектор (u, v) в единицах N x N пикселей и градиентные изображения lx0, ly0, lx1 и ly1 для получения modBIO[][] уточненного значения компенсации движения для N x N пикселей.

[0190]

modBIO[x][y] = ((lx1[x][y] - lx0[x][y]) * u + (ly1[x][y] - ly0[x][y]) * v) >> 1

Блок генерирования изображения прогнозирования BIO 309565 выводит значение пикселей Pred прогнозируемого изображения в единицах N x N пикселей в соответствии с приведенным ниже уравнением с использованием описанных выше параметров.

[0191]

Pred[x][y] = Clip3(0, (1 << bitDepth) - 1, (PredL0[x][y] + PredL1[x][y] + modBIO[x][y] + offset2) >> shift2)

Здесь установлены shift2=Max(3, 15 - bitDepth) и offset2=1 << (shift2-1).

[0192]

Взвешенная обработка BIO

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

[0193]

Как показано на ФИГ. 16, блок генерирования прогнозируемых изображений L0 и L1 309561, выполненный с возможностью выполнения взвешенной обработки BIO, включает в себя блок обработки интерполяционных изображений L0 и L1 3095611, переключатель 3095612 и блок взвешенной обработки интерполяционных изображений L0 и L1 3095613.

[0194]

На основании флага weightedBIOFlag, который соответствует внутреннему флагу, указывающему, выполняет ли блок BIO 30956 обработку взвешенного прогнозирования, переключатель 3095612 побуждает блок взвешенной обработки интерполяционных изображений L0 и L1 3095613 выполнять взвешенную обработку интерполяционных изображений L0 и L1 в случае, если для флага weightedBIOFlag установлено значение «ИСТИНА». В частности, результат взвешенной обработки weightedPredL0 для интерполяционного изображения L0 получают следующим образом.

[0195]

weightedPredL0[x][y] = Clip3(0, (1 <<(14+Max(0, Bitdepth - 12)) - 1, ((PredL0[x][y] * w0 + (1 << (Log2WeightDenom - 1))) >> Log2WeightDenom) + (o0 << shift1))

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

[0196]

weightedPredL1[x][y] = Clip3(0, (1 <<(14+Max(0, Bitdepth - 12)) - 1, ((PredL1[x][y] * w1 + (1 << (Log2WeightDenom - 1))) >> Log2WeightDenom) + (o1 << shift1))

Здесь shift1=Max(2, 14 - bitDepth) и Log2WeightDenom представляет собой значение, полученное из значений взвешенных параметров прогнозирования, которые отправляются в заголовке среза отдельно для яркости и для определения цветности.

[0197]

В случае, когда для weightedBIOFlag установлено значение «ЛОЖЬ», интерполяционное изображение или изображение, заполненное интерполяционным изображением, используют следующим образом:

weightedPredL0[x][y] = PredL0[x][y]

weightedPredL1[x][y] = PredL1[x][y].

[0198]

В случае, когда это применяется к описанному выше блоку обработки BIO, вышеописанная обработка может непосредственно использоваться без каких-либо изменений путем замены участков с PredL0 и PredL1 на weightedPredL0 и weightedPredL1. Блок генерирования градиентных изображений 309562 выводит градиентные изображения lx0, ly0, lx1 и ly1 следующим образом.

[0199]

lx0[x][y] = (weightedPredL0[x+1][y] - weightedPredL0 [x - 1][y]) >> shift1

ly0[x][y] = (weightedPredL0[x][y+1] - weightedPredL0[x][y - 1]) >> shift1

lx1[x][y] = (weightedPredL1[x+1][y] - weightedPredL1[x - 1][y]) >> shift1

ly1[x][y] = (weightedPredL1[x][y+1] - weightedPredL1[x][y - 1]) >> shift1

Блок расчета коэффициента корреляции 309563 подразумевает следующее.

theta[x][y] = -(weightedPredL1[x][y] >> shift4) + (weightedPredL0[x][y] >> shift4)

[0200]

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

[0201]

Pred[x][y] = Clip3(0, (1 << bitDepth) - 1, (weightedPredL0[x][y] + weightedPredL1[x][y] + modBIO[x][y] + offset2) >> shift2)

При выполнении взвешенной обработки интерполяционного изображения L0 и интерполяционного изображения L1, как описано выше, конечная обработка BIO приводит к значению прогнозирования, которое соответствует значению взвешенного прогнозирования, к которому прибавляют уточненное значение компенсации движения modBIO[x][y].

[0202]

Следует отметить, что при стандартном взвешенном двунаправленном прогнозировании прогнозируемое изображение с точностью битовой глубины изображения генерируется непосредственно из двух интерполяционных изображений. Для получения уточненного значения компенсации движения, полученного из градиентного изображения, взвешенная обработка BIO настоящего варианта осуществления выполняется следующим образом. Взвешенную обработку с точностью интерполяционного изображения выполняют отдельно для L0 и L1 для генерирования прогнозируемого изображения L0 weightedPredL0 и прогнозируемого изображения L1 weightedPredL1, а также усредняют weightedPredL0 и weightedPredL1. Это приводит к коррекции значений пикселей интерполяционного изображения L0 и значений пикселей интерполяционного изображения L1 в соответствии со взвешенным прогнозированием. Следовательно, в ответ на временное изменение значения пикселя, обработка BIO работает так, как ожидается, даже в случае, когда используется взвешенное прогнозирование. Иными словами, при комбинирования взвешенного прогнозирования и обработки BIO для работы формируется эффект повышения эффективности кодирования.

[0203]

В другом примере конфигурации, как показано на ФИГ. 17, взвешенные интерполяционные изображения weightedPredL0 и weighttedPredL1 после выведения градиентного изображения и до определения уточненного значения компенсации движения modBIO[x][y] обрабатываются отдельно от интерполяционных изображений PredL0 и PredL1, из которых получают конечное прогнозируемое изображение. В этом случае, блок генерирования прогнозируемых изображений BIO 309565 определяет значение прогнозирования с использованием следующего уравнения.

[0204]

Pred[x][y] = Clip3(0, (1 << bitDepth) - 1, (PredL0[x][y] * w0+PredL1[x][y] * w1 + ((o0+o1+1) << log2WD) + (modBIO[x][y] << Log2WeightDenom)) >> (log2WD+1))

В данном случае предполагается, что Log2WD=Log2WeightDenom+shift1.

[0205]

Следует отметить, что в случае получения modBIO[x][y] может быть выполнена операция сдвига modBIO[x][y] << Log2WeightDenom. В этом случае блок выведения уточненного значения компенсации движения 309564 выводит modBIO[][] с использованием уравнения ниже.

[0206]

modBIO[x][y] = ((lx1[x][y] - lx0[x][y]) * u + (ly1[x][y] - ly0[x][y]) * v+1) << (Log2WeightDenom - 1)

В случае, когда для weightedBIOFlag установлено значение «ЛОЖЬ» выводится интерполяционное изображение L0 и интерполяционное изображение L1, подвергнутые обработке заполнения.

[0207]

Для weightedBIOFlag устанавливают значение «ИСТИНА» в случае, когда одно из интерполяционных изображений L0 и L1 используют во взвешенном прогнозировании.

[0208]

В альтернативном варианте для weightedBIOFlag может быть установлено значение «ИСТИНА» в случае, когда применяют сравнение суммы разности абсолютных значений интерполяционных изображений L0 и L1 и суммы разности абсолютных значений интерполяционных изображений L0 и L1 после взвешенной обработки и последняя меньше предыдущей.

[0209]

Кроме того, для weightedBIOFlag может быть установлено значение «ЛОЖЬ» в случае, когда весовые коэффициенты при взвешенном прогнозировании включают в себя отрицательный коэффициент.

[0210]

Взаимосвязь между взвешенным прогнозированием, обработкой GBI и обработкой BIO

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

[0211]

weightedPredFlag, gbiAvaiableFlag, and bioAvailableFlag - это внутренние переменные, представляющие соответствующие состояния взвешенной обработки прогнозирования, обработки GBI и обработки BIO. Флаг, указывающий значение «ИСТИНА», разрешает выполнение соответствующей обработки, тогда как флаг, указывающий значение «ЛОЖЬ», запрещает выполнение соответствующей обработки.

[0212]

На ФИГ. 18 показан вариант осуществления, в котором объединены обработка GBI, обработка BIO и взвешенная обработка прогнозирования (вариант осуществления, в котором выполняется взвешенная обработка BIO). Сначала определяют gbiAvailableFlag, указывающий состояние обработки GBI (S301), и в случае, когда для gbiAvailableFlag указано значение «ЛОЖЬ», определяют флаг bioAvaiableFlag, указывающий состояние обработки BIO (S302). В случае, когда для gbiAvailableFlag указано значение «ИСТИНА», т. е. в случае, когда gbiIdx не равнр 0, обработку GBI выполняют на основании таблицы gbwTable[] (S303). Затем в случае, когда для bioAvaiableFlag указано значение «ЛОЖЬ», обработку BIO не выполняют и определяют weightedPredFlag, указывающий состояние взвешенного прогнозирования (S304). В случае, когда для bioAvaiableFlag указано значение «ИСТИНА», выполняют обработку BIO и определяют weightedPredFlag, указывающий состояние взвешенного прогнозирования (S305). В случае, когда для bioAvaiableFlag указано значение «ЛОЖЬ», и для weightedPredFlag указано значение «ЛОЖЬ», выполняют стандартную обработку двунаправленного прогнозирования (S306), а в случае если для weightedPredFlag указано значение «ИСТИНА», выполняют взвешенную обработку двунаправленного прогнозирования (S307). В случае, когда для bioAvaiableFlag указано значение «ИСТИНА», а для weightedPredFlag указано значение «ЛОЖЬ», выполняют стандартную обработку BIO (S308). В случае, когда для weightedPredFlag указано значение «ИСТИНА», для weightedBIOFlag задают значение «ИСТИНА» для выполнения взвешенной обработки BIO (S309). При взвешенной обработке BIO получают уточненное значение компенсации движения путем взвешивания на интерполяционных изображениях (S309).

[0213]

На ФИГ. 19 показан другой вариант осуществления, в котором объединены обработка GBI, обработка BIO и взвешенная обработка прогнозирования (вариант осуществления, в котором не выполняется взвешенная обработка BIO в ходе обработки GBI и BIO).

[0214]

Сначала определяют gbiAvailableFlag, указывающий состояние обработки GBI (S401), и в случае, когда для gbiAvailableFlag указано значение «ЛОЖЬ», определяют bioAvaiableFlag, указывающий состояние обработки BIO (S402)., Указание посредством gbiAvailableFlag значения «ЛОЖЬ» означает, что gbiIdx равно 0 или весовой коэффициент предназначен для стандартного двунаправленного прогнозирования. В случае, когда для gbiAvaiableFlag указано значение «ИСТИНА», обработку GBI выполняют на основании таблицы gbwTable[] в случае, когда gbiIdx больше 0 (S403). Затем в случае, когда для bioAvaiableFlag указано значение «ЛОЖЬ», обработку BIO не выполняют и определяют weightedPredFlag, указывающий состояние взвешенного прогнозирования (S404). В случае, когда для bioAvaiableFlag указано значение «ИСТИНА», выполняют обработку BIO и обрабатывает стандартный BIO (S405). В случае, когда для weightedPredFlag указано значение «ЛОЖЬ», выполняют стандартную обработку двунаправленного прогнозирования (S406), а в случае если для weightedPredFlag указано значение «ИСТИНА», выполняют взвешенную обработку двунаправленного прогнозирования (S407).

[0215]

На ФИГ. 20 показан вариант осуществления, в котором обработка BIO и взвешенная обработка прогнозирования объединены (вариант осуществления в данном случае не включает в себя обработку GBI). Сначала определяют bioAvaiableFlag, указывающий состояние обработки BIO (S501), и в случае, когда для bioAvaiableFlag указано значение «ЛОЖЬ», обработку BIO не выполняют и определяют weightedPredFlag, указывающий состояние взвешенного прогнозирования (S502). В случае, когда для bioAvailableFlag указано значение «ИСТИНА», выполняют обработку BIO и затем определяют weightedPredFlag, указывающий состояние взвешенного прогнозирования (S503). В случае, когда обработку BIO не выполняют и для weightedPredFlag указано значение «ЛОЖЬ», выполняют стандартную обработку двунаправленного прогнозирования (S504). В случае, когда для weightedPredFlag указано значение «ИСТИНА», выполняют взвешенную обработку двунаправленного прогнозирования (S505). В случае, когда выполняется обработка BIO и для weightedPredFlag указано значение «ЛОЖЬ», обрабатывают стандартный BIO (S506). В случае, когда для weightedPredFlag указано значение «ИСТИНА», выполняют взвешенную обработку BIO (S507). При взвешенной обработке BIO получают уточненное значение компенсации движения путем взвешивания на интерполяционных изображениях.

[0216]

Выход блока объединения

Для выхода блока объединения 3095 сгенерированное прогнозируемое изображение блока выводят в блок добавления 312.

[0217]

Блок обработки обратного квантования и обратного преобразования 311 выполняет обратное квантование коэффициента преобразования квантования, поступающего от энтропийного декодирующего устройства 301, для вычисления коэффициента преобразования. Этот коэффициент преобразования квантования представляет собой коэффициент, полученный путем выполнения при обработке кодирования частотного преобразования, такого как дискретное преобразование (DCT) или дискретное прямое преобразование (DST), в отношении ошибок прогнозирования при квантовании. Блок обработки обратного квантования и обратного преобразования 311 выполняет обратное частотное преобразование, такое как обратное DCT или обратное DST, в отношении рассчитанного коэффициента преобразования для вычисления ошибки прогнозирования. Блок обработки обратного квантования и обратного преобразования 311 выводит рассчитанную ошибку прогнозирования в блок добавления 312.

[0218]

Блок добавления 312 добавляет прогнозируемое изображение блока, поступающего от блока генерирования прогнозируемых изображений 308, и ошибку прогнозирования, поступающую от блока обработки обратного квантования и обратного преобразования 311, друг к другу для каждого пикселя и генерирует декодированное изображение блока. Блок добавления 312 сохраняет декодированное изображение блока в памяти эталонных изображений 306, а также выводит его на контурный фильтр 305.

[0219]

Конфигурация устройства кодирования видеосигналов

Далее будет описана конфигурация устройства кодирования видеосигналов 11 согласно настоящему варианту осуществления. На ФИГ. 21 представлена принципиальная блок-схема, иллюстрирующая конфигурацию устройства кодирования видеосигналов 11 согласно настоящему варианту осуществления. Устройство кодирования видеосигналов 11 включает в себя блок генерирования прогнозируемых изображений 101, блок вычитания 102, блок преобразования и квантования 103, блок обработки обратного квантования и обратного преобразования 105, блок добавления 106, контурный фильтр 107, память параметров прогнозирования (устройство хранения параметров прогнозирования, память кадров) 108, память эталонных изображений (устройство хранения эталонных изображений, память кадров) 109, блок определения параметров кодирования 110, устройство кодирования параметров 111 и энтропийное кодирующее устройство 104.

[0220]

Блок генерирования прогнозируемых изображений 101 генерирует прогнозируемое изображение для каждого CU, которое представляет собой область, полученную путем разделения каждого изображения T. Работа блока генерирования прогнозируемых изображений 101 такая же, как и работа уже описанного блока генерирования прогнозируемых изображений 308, и ее описание будет опущено.

[0221]

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

[0222]

Блок преобразования и квантования 103 выполняет частотное преобразование ошибки прогнозирования, поступающей от блока вычитания 102, для вычисления коэффициента преобразования и получает коэффициент преобразования квантования посредством квантования. Блок преобразования и квантования 103 выводит коэффициент квантования в энтропийное кодирующее устройство 104 и блок обработки обратного квантования и обратного преобразования 105.

[0223]

Блок обработки обратного квантования и обратного преобразования 105 такой же, как блок обработки обратного квантования и обратного преобразования 311 (ФИГ. 7) в устройстве декодирования видеосигналов 31, и его описание опущено. Рассчитанная ошибка прогнозирования выводится в блок добавления 106.

[0224]

В энтропийное кодирующее устройство 104 коэффициент преобразования квантования поступает из блока преобразования и квантования 103, а параметры кодирования поступают из устройства кодирования параметров 111. Например, параметры кодирования включают в себя коды, такие как индекс эталонного изображения refIdxLX, индекс вектора прогнозирования mvp_LX_idx, разность векторов движения mvdLX, режим разложения векторов адаптивного движения amvr_mode, режим прогнозирования predMode и индекс объединения merge_idx.

[0225]

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

[0226]

Устройство кодирования параметров 111 включает в себя устройство кодирования заголовков 1110, устройство кодирования информации CT 1111, устройство кодирования CU 1112 (устройство кодирования режима прогнозирования), устройство кодирования параметров внешнего прогнозирования 112 и устройство кодирования параметров внутреннего прогнозирования 113, которые не показаны. Устройство кодирования CU 1112 дополнительно включает в себя Устройство кодирования TU 1114.

[0227]

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

[0228]

Устройство кодирования информации CT 1111 кодирует информацию о разделении QT, MT (BT, TT) и т.п. из закодированных данных.

[0229]

Устройство кодирования CU 1112 кодирует информацию CU, информацию о прогнозировании, флаг разделения TU split_transform_flag, остаточные флаги CU cbf_cb, cbf_cr, cbf_luma и т.п.

[0230]

В случае, когда TU включает в себя ошибку прогнозирования, устройство кодирования TU 1114 кодирует информацию об обновлении QP (значение коррекции квантования) и ошибку прогнозирования квантования (residual_coding).

[0231]

Устройство кодирования информации CT 1111 и устройство кодирования CU 1112 подают в энтропийное кодирующее устройство 104 элементы синтаксиса, такие как параметры внешнего прогнозирования (режим прогнозирования predMode, флаг объединения merge_flag, индекс объединения merge_idx, индикатор внешнего прогнозирования inter_pred_idc, индекс эталонного изображения refIdxLX, индекс вектора прогнозирования mvp_Lx_idx и разность векторов движения mvdLX), параметры внутреннего прогнозирования и коэффициенты преобразования квантования.

[0232]

Конфигурация устройства кодирования параметров внешнего прогнозирования

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

[0233]

Далее будет описана конфигурация устройства кодирования параметров прогнозирования 112. Как показано на ФИГ. 22, устройство кодирования параметров 112 включает в себя контроллер кодирования параметров 1121, устройство прогнозирования объединения 30374, устройство прогнозирования подблоков (устройство прогнозирования аффинности) 30372, блок DMVR 30375, устройство прогнозирования MMVD 30376, устройство прогнозирования треугольников 30377, блок выведения параметров прогнозирования AMVP 3032 и блок вычитания 1123. Устройство прогнозирования объединения 30374 включает в себя блок выведения параметров прогнозирования объединения 3036. Контроллер кодирования параметров 1121 включает в себя блок выведения индекса объединения 11211 и блок выведения индекса потенциального вектора 11212. Контроллер кодирования параметров 1121 выводит merge_idx, affine_flag, base_candidate_idx, distance_idx, direction_idx и т.п. в блок выведения индекса объединения 11211 и выводит mvpLX и т.п. из блока выведения индекса потенциального вектора 11212. Блок выведения параметров прогнозирования объединения 3036, блок выведения параметров прогнозирования AMVP 3032, устройство прогнозирования аффинности 30372, устройство прогнозирования MMVD 30376 и устройство прогнозирования треугольников 30377 могут в совокупности называться «блок выведения вектора движения» (устройство выведения вектора движения). Устройство кодирования параметров 112 выводит в блок генерирования прогнозируемых изображений 101 векторы движения (mvLX, subMvLX), индекс эталонного изображения refIdxLX, индикатор внешнего прогнозирования inter_ pred_idc или информацию, указывающую на них. Кроме того, устройство кодирования параметров 112 выводит merge_flag, skip_flag, merge_idx, inter_pred_idc, refIdxLX, mvp_lX_idx, mvdLX, amvr_mode и affine_flag в энтропийное кодирующее устройство 104.

[0234]

Блок выведения индекса объединения 11211 получает индекс объединения merge_idx и выводит его в блок выведения параметров прогнозирования объединения 3036 (устройство прогнозирования объединения). Блок выведения потенциального вектора 11212 выводит индекс вектора прогнозирования mvp_lX_idx.

[0235]

Блок выведения параметров прогнозирования объединения 3036 выводит параметр внешнего прогнозирования на основании индекса объединения merge_idx.

[0236]

Блок выведения параметров прогнозирования AMVP 3032 выводит вектор прогнозирования mvpLX на основании вектора движения mvLX. Блок выведения параметров прогнозирования AMVP 3032 выводит вектор прогнозирования mvpLX в блок вычитания 1123. Следует отметить, что индекс эталонного изображения refIdxLX и индекс вектора прогнозирования mvp_lX_idx выводятся в энтропийное кодирующее устройство 104.

[0237]

Устройство прогнозирования аффинности 30372 выводит параметр внешнего прогнозирования (параметр аффинного прогнозирования) подблока.

[0238]

Блок вычитания 1123 вычитает вектор прогнозирования mvpLX, который представляет собой выход блока выведения параметров прогнозирования AMVP 3032, из вектора движения mvLX, полученного от блока определения параметров кодирования 110, и генерирует разность векторов движения mvdLX. Разность векторов движения mvdLX выводится в энтропийное кодирующее устройство 104.

[0239]

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

[0240]

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

[0241]

В памяти параметров прогнозирования 108 хранятся параметры прогнозирования, сгенерированные блоком определения параметров кодирования 110 для каждого целевого изображения и CU в заданном положении.

[0242]

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

[0243]

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

[0244]

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

[0245]

Следует отметить, что некоторые из устройства кодирования видеосигналов 11 и устройства декодирования видеосигналов 31 в описанном выше варианте осуществления, например, энтропийное кодирующее устройство 301, устройство декодирования параметров 302, контурный фильтр 305, блок генерирования прогнозируемых изображений 308, блок обработки обратного квантования и обратного преобразования 311, блок добавления 312, блок генерирования прогнозируемых изображений 101, блок вычитания 102, блок преобразования и квантования 103, энтропийное кодирующее устройство 104, блок обработки обратного квантования и обратного преобразования 105, контурный фильтр 107, блок определения параметров кодирования 110 и устройство кодирования параметров 111 могут быть реализованы с помощью компьютера. В этом случае данная конфигурация может быть реализована путем записи программы для реализации таких функций управления на машиночитаемый носитель информации и осуществления считывания программы, записанной на носитель информации, для выполнения компьютерной системой. Следует отметить, что «компьютерная система», упомянутая здесь, относится к компьютерной системе, встроенной в устройство кодирования видеосигналов 11 или устройство декодирования видеосигналов 31 и предположительно включает в себя ОС и компоненты аппаратного обеспечения, такие как периферийное устройство. Кроме того, термин «машиночитаемый носитель информации» относится к переносному носителю (гибкий диск, магнитооптический диск, ПЗУ, CD-ROM и т.п.) и к запоминающему устройству, такому как жесткий диск, встроенный в компьютерную систему. Более того, «машиночитаемым носителем информации» можно называть носитель, который динамически сохраняет программу на короткий промежуток времени, например, линию связи, которую используют для передачи программы по сети, такой как Интернет, или по линии связи, такой как телефонная линия, а также носитель, который хранит программу в течение фиксированного периода времени, например, энергозависимое запоминающее устройство в компьютерной системе, которая функционирует в этом случае в качестве сервера или клиента. Кроме того, вышеупомянутая программа может представлять собой программу для реализации вышеупомянутых функций, а также может быть выполнена с возможностью реализации вышеупомянутых функций в сочетании с программой, которая уже была записана в компьютерной системе.

[0246]

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

[0247]

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

[0248]

Примеры применения

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

[0249]

Сначала, ссылаясь на ФИГ. 2, будет описано, что вышеупомянутое устройство кодирования видеосигналов 11 и устройство декодирования видеосигналов 31 могут быть использованы для передачи и приема видео.

[0250]

На ФИГ. 2(а) представлена блок-схема, иллюстрирующая конфигурацию передающего устройства PROD_A, установленного с устройством кодирования видеосигналов 11. Как показано на схеме, передающее устройство PROD_A включает в себя устройство кодирования PROD_A1, которое получает кодированные данные посредством кодирования видеозаписей, блок модуляции PROD_A2, который получает сигналы модуляции путем модуляции несущих волн с помощью кодированных данных, полученных устройством кодирования PROD_A1, и передатчик PROD_A3, который передает модулированные сигналы, полученные блоком модуляции PROD_A2. Вышеупомянутое устройство кодирования видеосигналов 11 используется в качестве устройства кодирования PROD_A1.

[0251]

Передающее устройство PROD_A может дополнительно включать в себя камеру PROD_A4, которая снимает видеозаписи, носитель информации PROD_A5, записывающий видеозаписи, терминал ввода данных PROD_A6 для ввода видеозаписей извне и блок обработки изображений А7, который генерирует или обрабатывает изображения в качестве источников подачи видеозаписей, которые вводятся в устройство кодирования PROD_A1. Хотя на схеме показан пример конфигурации, в которой передающее устройство PROD_A включает в себя все компоненты, некоторые из компонентов могут быть опущены.

[0252]

Следует отметить, что носитель информации PROD_A5 может записывать только не кодированные видеозаписи или может записывать видеозаписи, закодированные по схеме кодирования для записи, которая отличается от схемы кодирования для передачи. В последнем случае устройство декодирования (не показано) для декодирования кодированных данных, считанных с носителя информации PROD_A5, в соответствии со схемой кодирования для записи может присутствовать между носителем информации PROD_A5 и устройством кодирования PROD_A1.

[0253]

На ФИГ. 2(b) представлена блок-схема, иллюстрирующая конфигурацию принимающего устройства PROD_B, установленного с устройством кодирования видеосигналов 31. Как показано на схеме, приемное устройство PROD_B включает в себя приемник, PROD_B1, который принимает сигналы модуляции, блок демодуляции PROD_B2, который получает кодированные данные путем демодуляции сигналов модуляции, полученных приемником PROD_B1 и устройство декодирования PROD_B3, которое получает видеозаписи путем декодирования кодированных данных, полученных блоком демодуляции PROD_B2. Вышеупомянутое устройство декодирования видеосигналов 31 используется в качестве устройства декодирования PROD_B3.

[0254]

Приемное устройство PROD_B может дополнительно включать в себя дисплей PROD_B4, на котором отображаются видеозаписи, носитель информации PROD_B5 для записи видеозаписей и терминал вывода PROD_B6 для вывода видеозаписей из устройства, в качестве адресатов видеозаписей, которые выводятся устройством декодирования PROD_B3. Хотя на схеме показан пример конфигурации, в которой принимающее устройство PROD_B включает в себя все компоненты, некоторые из компонентов могут быть опущены.

[0255]

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

[0256]

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

[0257]

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

[0258]

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

[0259]

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

[0260]

Далее, ссылаясь на ФИГ. 3, будет описано, что вышеупомянутое устройство кодирования видеосигналов 11 и устройство декодирования видеосигналов 31 могут быть использованы для записи и восстановления видео.

[0261]

На ФИГ. 3(а) представлена блок-схема, иллюстрирующая конфигурацию устройства записи PROD_C, установленного с вышеупомянутым устройством кодирования видеосигналов 11. Как показано на схеме, записывающее устройство PROD_C включает в себя устройство кодирования PROD_C1, которое получает кодированные данные путем кодирования видеосигнала, и блок записи PROD_C2, который записывает кодированные данные, полученные устройством кодирования PROD_C1 на носитель информации PROD_M. Вышеупомянутое устройство кодирования видеосигналов 11 используется в качестве устройства кодирования PROD_C1.

[0262]

Следует отметить, что носитель информации PROD_M может представлять собой (1) тип носителя информации, встроенного в записывающее устройство PROD_C, такой как жесткий диск (HDD) или твердотельный накопитель (SSD), (2) тип носителя информации, подсоединяемого к записывающему устройству PROD_C, такой как карта памяти SD или универсальная последовательная шина (USB), и (3) тип носителя информации, вставляемого в устройство привода (не показано), встроенного в устройство записи PROD_C, например, универсальный цифровой диск (DVD: торговая марка) или диск Blu-ray (BD: торговая марка).

[0263]

Кроме того, устройство записи PROD_C может дополнительно включать в себя камеру PROD_C3, которая снимает видео, терминал ввода данных PROD_C4 для ввода видео извне, приемник PROD_C5 для приема видео и блок обработки изображений PROD_C6, который генерирует или обрабатывает изображения, в качестве источников подачи видео в устройство кодирования PROD_C1. Хотя на схеме показан пример конфигурации, в которой устройство записи PROD_C включает в себя все компоненты, некоторые из компонентов могут быть опущены.

[0264]

Следует отметить, что приемник PROD_C5 может принимать только не кодированные видеозаписи или может принимать кодированные данные, закодированные по схеме кодирования для передачи, которая отличается от схемы кодирования для записи. В последнем случае между приемником PROD_C5 и устройством кодирования PROD_C1 может присутствовать устройство декодирования для передачи (не показано), которое декодирует кодированные данные, закодированные по схеме кодирования для передачи.

[0265]

К примерам таких записывающих устройств PROD_C относятся, например, записывающее устройство DVD, записывающее устройство BD, устройство записи на жесткий диск (HDD) и т. п. (в данном случае терминал ввода данных PROD_C4 или приемник PROD_C5 является основным источником подачи видеозаписей). Кроме того, записывающая видеокамера (в данном случае камера PROD_C3 является основным источником подачи видеозаписей), персональный компьютер (в данном случае приемник PROD_C5 или блок обработки изображений C6 является основным источником видеозаписей), смартфон (в данном случае камера PROD_C3 или приемник PROD_C5 является основным источником видеозаписей) или т. п. также относятся к примерам записывающего устройства PROD_C.

[0266]

На ФИГ. 3(b) представлен блок, иллюстрирующий конфигурацию устройства восстановления PROD_D, установленного с вышеупомянутым устройством кодирования видеосигналов 31. Как показано на схеме, устройство восстановления PROD_D включает в себя блок считывания PROD_D1, который считывает кодированные данные, записанные на носитель информации PROD_M, и устройство декодирования PROD_D2, которое получает видео путем декодирования кодированных данных, считанных блоком считывания PROD_D1. Вышеупомянутое устройство декодирования видеосигналов 31 используется в качестве устройства декодирования PROD_D2.

[0267]

Следует отметить, что носитель информации PROD_M может представлять собой (1) тип носителя информации, встроенного в устройство восстановления PROD_D, такой как HDD или SSD, (2) тип носителя информации, подсоединяемого к устройству восстановления PROD_D, такой как карта памяти SD или флэш-память USB, и (3) тип носителя информации, вставляемого в устройство привода (не показано), встроенного в устройство восстановления PROD_D, например, DVD или BD.

[0268]

Кроме того, устройство восстановления PROD_D может дополнительно включать в себя дисплей PROD_D3, на котором отображается видео, выходной терминал PROD_D4 для вывода видео наружу, и передатчик PROD_D5, который передает видео в качестве адресатов видеозаписей, которые выводятся устройством декодирования PROD_D2. Хотя на схеме показан пример конфигурации, в которой устройство восстановления PROD_D включает в себя все компоненты, некоторые из компонентов могут быть опущены.

[0269]

Следует отметить, что передатчик PROD_D5 может принимать только не кодированные видеозаписи или может принимать кодированные данные, закодированные по схеме кодирования для передачи, которая отличается от схемы кодирования для записи. В последнем случае между устройством декодирования PROD_D2 и передатчиком PROD_D5 может присутствовать устройство кодирования (не показано), которое кодирует видео по схеме для передачи.

[0270]

У примерам устройства восстановления PROD_D относятся, например, проигрыватель DVD, проигрыватель BD, проигрыватель HDD и т.п. (в данном случае выходной терминал PRODUCT_D4, к которому подключены телевизионный приемник и т.п., является основным адресатом видеозаписей). Кроме того, телевизионный приемник (в данном случае дисплей PROD_D3 является основным адресатом видеозаписей), цифровые вещательные системы (их также называют «электронные указатели» или электронные информационные табло» и т.п., а также дисплей PROD_D3 или передатчик PROD_D5 является главным адресатом видеозаписей), настольный ПК (в данном случае, выходной терминал PROD_D4 или передатчик PROD_D5 является основным адресатом видеозаписей), ноутбук или планшетный ПК (в данном случае дисплей PROD_D3 или передатчик PROD_D5 является основным адресатом поставок видеозаписей), смартфон (в данном случае дисплей PROD_D3 или передатчик PROD_D5 является основным адресатом видеозаписей) и т.п. являются примером устройства восстановления PROD_D.

[0271]

Реализация аппаратными средствами и реализация программными средствами

Каждый блок вышеупомянутого устройства декодирования видеосигналов 31 и устройства кодирования видеосигналов 11 может быть реализован в виде аппаратного обеспечения посредством логической схемой, образованной на интегральной схеме (кристалле ИС), или может быть реализован в виде программного обеспечения с использованием центрального процессора (ЦП).

[0272]

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

[0273]

В качестве носителя информации могут применяться, например, ленты, в том числе магнитная лента, кассета и т. п., диски, в том числе магнитный диск, такой как гибкий диск (торговая марка)/жесткий диск, и оптический диск, такой как постоянная память на компакт-диске (CD-ROM)/магнитооптический диск (MO диск)/мини-диск (MD)/универсальный цифровой диск (DVD: торговая марка)/перезаписываемый компакт-диск (CD-R)/диск Blu-ray (торговая марка), карты, такие как карта с интегральной микросхемой (в том числе карта памяти)/оптическая карта, полупроводниковые запоминающие устройства, такие как ПЗУ с масочным программированием/стираемая программируемая постоянная память (СППЗУ)/электрически стираемое и программируемое постоянное запоминающее устройство (ЭСППЗУ: торговая марка)/флэш-ПЗУ, логические схемы, такие как программируемое логическое устройство (ПЛУ) и программируемая пользователем интегральная схема (FPGA), или т.п.

[0274]

Кроме того, каждое из устройств выполнено с возможностью соединения с сетью связи, а программные коды могут быть переданы через сеть связи. Сеть связи должна быть способна передавать программные коды, но не ограничивается конкретной сетью связи. Например, доступны сеть Интернет, интранет, экстранет, локальная сеть (LAN), цифровая сеть с интеграцией услуг (ISDN), сеть с дополнительными услугами (VAN), кабельное телевидение с коллективным приемом/абонентское кабельное телевидение (CATV), виртуальная частная сеть, телефонная сеть, сеть мобильной связи, сеть спутниковой связи и т. п. Кроме того, среда передачи, образующая такую сеть связи, также должна представлять собой среду, которая может передавать программный код, без ограничений конкретной конфигурацией или типом среды передачи. Например, доступны среда проводной передачи данных, например, в соответствии со стандартами Института инженеров по электротехнике и электронике (IEEE) 1394, USB, высоковольтная линия, линия кабельного телевидения, линия телефонной связи, асимметричная цифровая абонентская линия (ADSL) и среда беспроводной передачи, такая как инфракрасный луч согласно требованиям Ассоциации передачи данных в инфракрасном диапазоне (IrDA), или среда удаленного управления, BlueTooth (торговая марка), беспроводная связь IEEE 802.11, высокая скорость передачи данных (HDR), связь ближнего поля (NFC), альянс цифровых сетей для дома (DLNA: торговая марка), сеть сотовой связи, спутниковый канал, наземная цифровая широковещательная сеть. Следует отметить, что вариант осуществления настоящего изобретения также может быть реализован в виде сигналов компьютерных данных, встроенных в носитель таким образом, что передача программных кодов осуществляется в виде электронной передачи.

[0275]

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

Промышленное применение

[0276]

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

Перекрестные ссылки на родственные заявки

Настоящая заявка испрашивает преимущество приоритета по заявке на патент Японии № JP 2018-245249, поданной 27 декабря 2018 г., которая полностью включена в настоящее описание путем ссылки.

Перечень условных обозначений

[0277]

31 - устройство декодирования изображений

301 - энтропийное декодирующее устройство

302 - устройство декодирования параметров

3020 - устройство декодирования заголовков

303 - устройство декодирования параметров внешнего прогнозирования

304 - устройство декодирования параметров внутреннего прогнозирования

308 - блок генерирования прогнозируемых изображений

309 - блок генерирования изображений внешнего прогнозирования

310 - блок генерирования изображений внутреннего прогнозирования

311 - блок обработки обратного квантования и обратного преобразования

312 - блок добавления

11 - устройство кодирования изображений

101 - блок генерирования прогнозируемых изображений

102 - блок вычитания

103 - блок преобразования и квантования

104 - энтропийное кодирующее устройство

105 - блок обработки обратного квантования и обратного преобразования

107 - контурный фильтр

110 - блок определения параметров кодирования

111 - устройство кодирования параметров

112 - устройство кодирования параметров внешнего прогнозирования

113 - устройство кодирования параметров внутреннего прогнозирования

1110 - устройство кодирования заголовка

1111 - устройство кодирования информации CT

1112 - устройство кодирования CU (устройство кодирования режима прогнозирования)

1114 - устройство кодирования TU

3091 - блок компенсации движения

3095 - блок объединения

30951 - блок смешанного внутреннего/внешнего объединения

30952 - блок объединения треугольников

30953 - блок OBMC

30954 - устройство взвешенного прогнозирования

30955 - блок GBI

30956 - блок BIO

309561 - блок генерирования прогнозируемых изображений L0 и L1

309562 - блок генерирования градиентных изображений

309563 - блок расчета коэффициента корреляции

309564 - блок выведения уточненного значения компенсации движения

309565 - блок генерирования изображений прогнозирования BIO

3095611 - блок обработки заполнения интерполяционных изображений L0 и L1

3095612 - переключатель

3095613 - блок взвешенной обработки интерполяционных изображений L0 и L1.

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

название год авторы номер документа
УСТРОЙСТВО ДЕКОДИРОВАНИЯ ВИДЕОСИГНАЛОВ 2020
  • Тудзох, Такеси
  • Аоно, Томоко
  • Икаи, Томохиро
  • Сасаки, Эйити
  • Ясуги, Юкинобу
RU2812275C2
СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ ВИДЕО 2020
  • Ли Гуйчунь
  • Ли Сян
  • Сюй Сяочжун
  • Лю Шань
RU2777498C1
ИНТЕРПОЛЯЦИЯ ДЛЯ ВНЕШНЕГО ПРЕДСКАЗАНИЯ С УТОЧНЕНИЕМ 2019
  • Чжан, Кай
  • Чжан, Ли
  • Лю, Хунбинь
  • Ван, Юэ
RU2808586C2
СИСТЕМЫ, УСТРОЙСТВА И СПОСОБЫ ДЛЯ УТОЧНЕНИЯ ИНТЕРПРОГНОЗИРОВАНИЯ С ПОМОЩЬЮ ОПТИЧЕСКОГО ПОТОКА 2020
  • Ло, Цзяньцун
  • Хэ, Юйвэнь
RU2811563C2
СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ ИЗОБРАЖЕНИЙ 2019
  • Борд, Филипп
  • Пуарье, Танжи
  • Чэнь, Я
RU2824658C2
СПОСОБ КОДИРОВАНИЯ ИЗОБРАЖЕНИЙ, СПОСОБ ДЕКОДИРОВАНИЯ ИЗОБРАЖЕНИЙ, УСТРОЙСТВО КОДИРОВАНИЯ ИЗОБРАЖЕНИЙ И УСТРОЙСТВО ДЕКОДИРОВАНИЯ ИЗОБРАЖЕНИЙ 2011
  • Тудзо Такеси
  • Ямакаге Томоо
RU2595569C2
СИСТЕМЫ И СПОСОБЫ ДЛЯ ВЫПОЛНЕНИЯ ПЛАНАРНОГО КОДИРОВАНИЯ ВИДЕОСИГНАЛОВ С ВНУТРЕННИМ ПРОГНОЗИРОВАНИЕМ 2017
  • Мисра, Киран Мукеш
  • Чжао, Цзе
  • Сигалл, Кристофер Эндрю
RU2753643C2
СПОСОБ ИСПОЛЬЗОВАНИЯ ИНТЕРПОЛЯЦИОННЫХ ФИЛЬТРОВ ДЛЯ ПРОГНОЗИРОВАНИЯ ВЕКТОРА ДВИЖЕНИЯ НА ОСНОВЕ ПРЕДЫСТОРИИ 2020
  • Лю, Хунбинь
  • Чжан, Ли
  • Чжан, Кай
  • Сюй, Цзичжэн
  • Ван, Юэ
RU2812698C2
СИСТЕМЫ И СПОСОБЫ СИГНАЛИЗАЦИИ ПАРАМЕТРОВ ПРИ КОДИРОВАНИИ ВИДЕОСИГНАЛОВ 2019
  • Дешпанде, Сачин Г.
RU2771478C1
ПРОГНОЗИРОВАНИЕ ВЕКТОРА ДВИЖЕНИЯ НА ОСНОВАНИИ ПРЕДЫСТОРИИ 2019
  • Сю, Сяоюй
  • Хэ, Юйвэнь
  • Ло, Цзяньцун
RU2815925C2

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

Реферат патента 2023 года УСТРОЙСТВО ГЕНЕРИРОВАНИЯ ПРОГНОЗИРУЕМЫХ ИЗОБРАЖЕНИЙ, УСТРОЙСТВО ДЕКОДИРОВАНИЯ ВИДЕОСИГНАЛОВ, УСТРОЙСТВО КОДИРОВАНИЯ ВИДЕОСИГНАЛОВ И СПОСОБ ГЕНЕРИРОВАНИЯ ПРОГНОЗИРУЕМЫХ ИЗОБРАЖЕНИЙ

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

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

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

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

(i) флага внешнего прогнозирования, указывающего на использование любого одного из прогнозирования списка L0, прогнозирования списка L1, двунаправленного прогнозирования, и

(ii) индекса, указывающего информацию для общего двунаправленного прогнозирования; и

которое выполнено с возможностью выведения:

(i) флага взвешенного прогнозирования, указывающего состояние взвешенного прогнозирования, и

(ii) первого флага использования списка прогнозирования и второго флага использования списка прогнозирования с использованием флага внешнего прогнозирования; и

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

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

генерирования прогнозируемого изображения с использованием прогнозирования выборки двунаправленного оптического потока в случае, когда (i) и значение первого флага использования списка прогнозирования и значение второго флага использования списка прогнозирования равны первому значению, (ii) значение индекса равно второму значению, и (iii) значение флага взвешенного прогнозирования равно третьему значению, и

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

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

2. Устройство генерирования прогнозируемых изображений по п. 1, в котором

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

3. Устройство генерирования прогнозируемых изображений по п. 1, в котором

общее двунаправленное прогнозирование представляет собой способ прогнозирования для генерирования прогнозируемого изображения путем использования (i) первого интерполяционного изображения, (ii) второго интерполяционного изображения, (iii) первого весового коэффициента, установленного с использованием таблицы, определенной индексом, и (iv) второго весового коэффициента, установленного с использованием первого весового коэффициента.

4. Устройство генерирования прогнозируемых изображений по п. 3, в котором

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

5. Устройство декодирования видеосигналов, содержащее

устройство генерирования прогнозируемых изображений по п. 1, в котором

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

6. Устройство кодирования видеосигналов, содержащее

устройство генерирования прогнозируемых изображений по п. 1, в котором

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

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

декодирование (i) флага внешнего прогнозирования, указывающего на использование любого одного из прогнозирования списка L0, прогнозирования списка L1, и двунаправленного прогнозирования, а также (ii) индекса, указывающего информацию для общего двунаправленного прогнозирования;

выведение (i) флага взвешенного прогнозирования, указывающего состояние взвешенного прогнозирования, и (ii) первого флага использования списка прогнозирования и второго флага использования списка прогнозирования с использованием флага внешнего прогнозирования, и

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

генерируется прогнозируемое изображение с использованием прогнозирования выборки двунаправленного оптического потока в случае, когда (i) и значение первого флага использования списка прогнозирования и значение второго флага использования списка прогнозирования равны первому значению, (ii) значение индекса равно второму значению, и (iii) значение флага взвешенного прогнозирования равно третьему значению, и

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

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

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

EP 3413563 A1, 2018.12.12
EP 3021589 A1, 2016.05.18
WO 2018116925 A1, 2018.06.28
WO 2013155028 A1, 2013.10.17
US 2012320984 A1, 2012.12.20
US 2014105299 A1, 2014.04.17
US 2013243093 A1, 2013.09.19
WO 2015196030 A1, 2015.12.23
WO 2017043816 A1, 2017.03.16
RU 2014141677 A, 2016.05.10.

RU 2 799 802 C2

Авторы

Тудзох, Такеси

Хасимото, Томонори

Аоно, Томоко

Икаи, Томохиро

Сасаки, Эйити

Даты

2023-07-11Публикация

2019-12-20Подача