СПОСОБ ВИДЕОКОДИРОВАНИЯ С ИСПОЛЬЗОВАНИЕМ ПРЕДСКАЗАНИЯ НА ОСНОВАНИИ КОПИИ ВНУТРИКАДРОВОГО БЛОКА
METHOD OF VIDEO CODING USING THE PREDICTION ON THE BASIS OF THE COPY OF THE INTRA-CYCLE BLOCK

ПЕРЕКРЕСТНАЯ ССЫЛКА НА РОДСТВЕННЫЕ ЗАЯВКИ
Настоящее изобретение заявляет приоритет в отношении заявки на патент США, серийный номер 61/904,068, зарегистрированной 14 ноября 2013 года, «Способы и аппаратура для создания копии внутрикадрового блока в сжатии видеоизображений». Заявка на патент США настоящим включается по ссылке в полном объеме.
ОБЛАСТЬ ТЕХНИКИ
Настоящее изобретение относится к видеокодированию с использованием режима копирования внутрикадрового блока (IntraBC). В частности, настоящее изобретение относится к технологиям повышения производительности или упрощения обработки копии внутрикадрового блока (IntraBC) для кодирования содержимого экрана или видеокодирования.
ПРЕДПОСЫЛКИ СОЗДАНИЯ ИЗОБРЕТЕНИЯ
На современном этапе развития технологий расширения полосы захвата (RExt) или кодирования содержимого экрана для стандарта высокоэффективного видеокодирования (HEVC) принят ряд инструментов, обеспечивающих известные преимущества в отношении эффективности кодирования содержимого экрана. Для внутрикадровых блоков предсказание на основании традиционного подхода осуществляется с использованием предсказания на основании реконструированных элементов изображения соседних блоков. Для внутрикадрового предсказания может избираться внутрикадровый режим из набора внутрикадровых режимов, включая вертикальный режим, горизонтальный режим и различные угловые режимы предсказания. Для расширения полосы захвата HEVC и кодирования содержимого экрана используется новый внутрикадровый режим кодирования, именуемый копией внутрикадрового блока (IntraBC). Технология IntraBC изначально предложена Будагави в AHG8: «Видеокодирование с использованием внутрикадровой компенсации движения», Объединенная совместная группа по видеокодированию (JCT-VC) в ITU-T SG 16 WP 3 и ISO/IEC JTC 1/SC 29/WG 11, 13-е собрание: Инчхон, Корея, 18-26 апреля 2013 года, документ: JCTVC-M0350 (здесь и далее - JCTVC-M0350). Пример JCTVC-M0350 показан на Фиг. 1, где текущий блок кодирования (БК, 110) кодируется с помощью внутрикадровой компенсации движения (ВКД). Блок предсказания (120) определяется по текущему БК и вектору смещения (112). В данном примере область поиска ограничена текущим ДБК (дерево блоков кодирования), ДБК слева и ДБК слева от ДБК слева. Получение блока предсказания осуществляется из уже реконструированной области. Затем осуществляется кодирование вектора смещения, также именуемого вектором движения (ВД), и оставшейся части текущего БК. Хорошо известно, что в HEVC используется блочная структура ДБК и БК в качестве основных единиц кодирования видеоданных. Каждое изображение разбивается на ДБК, и каждое ДБК отдельно разбивается на БК. На этапе предсказания каждый БК может быть разбит на несколько блоков, именуемых блоки предсказания (БП) для осуществления процесса предсказания. После образования остатка предсказания для каждого БК, остаток, относящийся к каждому БК, разбивается на несколько блоков, именуемых блоки трансформации (БТ) для применения преобразования (к примеру, дискретное косинусное преобразование (ДКП)).
В JCTVC-M0350 внутрикадровая компенсация движения (ВКД) отличается от компенсации движения, используемой для внутрикадрового предсказания, как минимум, в нижеследующем:
- ВД ограничены 1-D для ВКД (т.е., по горизонтали или по вертикали), тогда как внутрикадровое предсказание использует вычисление двухмерного движения;
- бинаризация имеет фиксированную длину для ВКД, тогда как для внутрикадрового предсказания используется экспоненциальное кодирование Голомба;
- ВКД вводит новый элемент синтаксиса для определения горизонтального или вертикального характера ВД.
На основании JCTVC-M0350 некоторые модификации описываются Пангом и др. в работе «Не RCE3: внутрикадровая компенсация движения с двухмерными ВД», Объединенная совместная группа по видеокодированию (JCT-VC) в ITU-T SG 16 WP 3 и ISO/IEC JTC 1/SC 29/WG 11, 14-е собрание: Вена, Австрия, 25 июля - 2 августа 2013 года, документ: JCTVC-N025 6 (здесь и далее - JCTVC-N0256). Во-первых, в ВКД включается поддержка двухмерных ВД, благодаря чему оба компонента ВД могут одновременно иметь ненулевые значения. Это обеспечивает большую гибкость ВКД, чем при первоначальном подходе, где ВД ограничивается строго горизонтальным или вертикальным характером.
[0001] В JCTVC-N0256 описываются два способа кодирования ВД:
- Способ 1: предсказание вектора движения. Левый или верхний ВД выбирается в качестве предиктора ВД, на основании чего осуществляется кодирование результирующей разности векторов движения (РВД). Для обозначения нулевой РВД используется флаг. Если РВД является ненулевой, экспоненциальные коды Голомба третьего порядка используются для кодирования остаточного абсолютного уровня РВД. Другой флаг используется для кодирования знака.
- Способ 2: без предсказания вектора движения. Кодирование ВД осуществляется с использованием экспоненциальных кодов Голомба, используемых для РВД в HEVC.
Другим отличием JCTVC-N0256 является дальнейшее комбинирование двухмерной ВКД с магистральным подходом:
1. отказ от использования интерполяционных фильтров,
2. область поиска ВД ограничена. Описываются два сценария:
a. область поиска представляет собой текущее ДБК и ДБК слева, либо
b. область поиска представляет собой текущее ДБК 4 крайних справа столбца ДБК слева.
[0002] Среди предложенных в JCTVC-N0256 способов в новую версию проекта стандарта включены двухмерная ВКД, отказ от интерполяционных фильтров и ограничение области поиска текущим ДБК и ДБК слева. Синтаксис уровня БК, отвечающий JCTVC-N0256, включен в документ «Спецификация расширения полосы захвата высокоэффективного видеокодирования (HEVC): проект 4» (RExt Draft 4), Флинн и др., Объединенная совместная группа по видеокодированию (JCT-VC) в ITU-T SG 16 WP 3 и ISO/IEC JTC 1/SC 29/WG 11, 14-е собрание: Вена, Австрия, 25 июля - 2 августа 2013 года, документ: JCTVC-N1005. Синтаксис уровня БК, утвержденный в RExt Draft 4, представлен в Таблице 1.
Как показано в Таблице 1, тест «if(intra_block_copy_enabled_flag)» выполняется согласно замечанию (1-1). Флаг IntraBC (т.е., intra_bc_flag[x0][y0]) включается, если копия внутрикадрового блока разрешена, как указано intra_block_copy_enabled_flag. Синтаксический элемент intra_bc_flag указывает на то, осуществляется ли кодирование связанного блока в режиме IntraBC. Кодирование текущего блока в другом режиме (т.е., if(!intra_bc_flag[x0][y0]) указывается согласно замечанию (1-2), и pred_mode_flag и part_mode могут быть включены согласно тестам в замечаниях (1-3) и (1-4), если блок не кодируется в режиме копии внутрикадрового блока. Синтаксический элемент pred_mode_flag со значением 0 указывает на то, что текущий блок кодирования кодируется в режиме межкадрового предсказания. pred_mode_flag во значением 1 указывает на то, что текущий блок кодирования кодируется в режиме внутрикадрового предсказания. Синтаксический элемент part_mode указывает режим разбивки текущего блока кодирования.
[0003] Другой вариант способа IntraBC, именуемый «Линейная копия внутрикадрового блока» описывается Ченом и др. в «AHG8: линейная копия внутрикадрового блока», Объединенная совместная группа по видеокодированию (JCT-VC) в ITU-T SG 16 WP 3 и ISO/IEC JTC 1/SC 29/WG 11, JCTVC-O0205, 15-е собрание, Женева, Швейцария, 23 октября - 1 ноября 2013 года, документ: JCTVC-O0205 (здесь и далее - JCTVC-O0205). На Фиг. 2А и Фиг. 2В представлены примеры способа линейной IntraBC, как описано в JCTVC-O0205, где БК 2N×2N разбит поровну на ряд блоков размером M×2N (Фиг. 2А) или 2N×M (Фиг. 2В). Разделенные блоки определяются как линии, а М представляет собой целую степень числа 2 и меньше 2N. Для каждой линии элементы изображения предсказываются тем же способом, что и в оригинальном способе IntraBC, за тем исключением, что: (1) размер блока составляет M×2N или 2N×M, и (2) блоки размера M×2N и 2N×M ограничены для выполнения только горизонтального или вертикального поиска, соответственно. Таким образом, существуют векторы внутрикадрового смещения 2N/M на БК, необходимые для поиска и указания. На Фиг. 2А показан пример горизонтальной разбивки БК на линейные блоки или линии M×2N. Каждый линейный блок может быть предсказан линейным блоком предсказания в уже реконструированном ДБК слева. Стрелки на Фиг. 2А обозначают векторы смещения или векторы движения, соответствующие линейным блокам. На Фиг. 2В показан пример вертикальной разбивки БК на линейные блоки или линии 2N×M. Каждый линейный блок может быть предсказан линейным блоком предсказания в уже реконструированном ДБК над текущим БК. Стрелки на Фиг. 2В обозначают векторы смещения или векторы движения для соответствующих линейных блоков. Усовершенствование согласно JCTVC-O0205 демонстрирует значительное сокращение значения BD-rate в сравнении с традиционным подходом IntraBC. BD-rate широко используется для измерения производительности в области видеокодирования.
В Таблице 2 показан пример модификации синтаксиса уровня БК для поддержки линейной IntraBC, как описано в JCTVC-O0205.
Как показано в Таблице 2, флаг ivm_flag включается в таблицу синтаксиса согласно замечанию (2-2), если используется режим предсказания MODE_INTRA, а режим разбивки не является PART_N×N, как указано в замечании (2-1). ivm_flag со значением 1 указывает на то, что линейная IntraBC используется для текущего БК. ivm_flag со значением 0 указывает на то, что линейная IntraBC не используется для текущего БК. Если флаг ivm_flag имеет значение 1, как указано в замечании (2-3), используется дополнительный флаг ivm_dir, как указано в замечании (2-4). ivm_dir со значением 1 указывает на то, что линейная IntraBC располагается вертикально вдоль текущего БК. ivm_flag со значением 0 указывает на то, что линейная IntraBC располагается горизонтально вдоль текущего БК. Согласно JCTVC-O0205, значение М (т.е., 1, 4 или N) является предварительно заданным значением, т.е. аппаратно установлена без использования сигнальной системы.
Порядок сигнализации IntraBC, межкадрового и внутрикадрового режимов предсказания, согласно существующему RExt, для межкадрового и внутрикадрового срезов показан на Фиг. 3А и Фиг. 3В, соответственно.
КРАТКОЕ ОПИСАНИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ
Согласно настоящему изобретению описывается способ сигнализации режимов кодирования, включая режим IntraBC (режим копии внутрикадрового блока). Это осуществление учитывает те факты, что межкадровое предсказание является более распространенным в отношении межкадровых срезов, чем предсказание IntraBC, и что предсказание IntraBC в настоящее время рассматривается в качестве особого режима внутрикадрового предсказания. Соответственно, бинарное дерево для сигнализации режимов предсказания блока кодирования (БК) описывается в целях повышения производительности.
В другом осуществлении для кодирования IntraBC допускаются различные режимы разбивки. Бинарное поддерево, согласно этому осуществлению, включает в себя все режимы разбивки, связанные с режимом IntraBC, и состоит только из всех указанных членов группы режимов разбивки. Группа режима разбивки может включать в себя режимы 2N×2N, 2N×M и M×2N, а N и М представляют собой натуральные числа, причем М не может быть больше N. В одном примере бинарное поддерево для режимов 2N×2N, 2N×M и режимов M×2N представляет собой {1, 01, 00}, соответственно. В другом примере, группа режимов разбивки включает в себя режим 2N×2N, режим 2N×N, режим N×2N и режимы N×N, а также бинарное поддерево для режимов 2N×2N, 2N×N, N×2N и N×N {1, 01, 001, 000}, соответственно, либо {1, 001, 01, 000}, соответственно. Группа режимов разбивки может включать в себя режимы 2N×2N, 2N×N и N×2N, если БК больше 8×8, и бинарное поддерево для режимов 2N×2N, 2N×N и N×2N представляет собой {1, 01, 00}, соответственно, или {1, 00, 01}, соответственно. Группа режимов разбивки также может включать в себя режимы 2N×2N, 2N×N, N×2N, nL×2N, nR×2N, 2N×nU и 2N×nD, если текущий блок кодирования больше 8×8, и бинарное поддерево для режимов 2N×2N, 2N×N, N×2N, nL×2N, nR×2N, 2N×nU и 2N×nD представляет собой {1, 011, 001, 0100, 0101, 0000, 0001}, соответственно, или {1, 001, 011, 0000, 0001, 0100, 0101}, соответственно.
Различные синтаксические элементы управления могут быть внедрены на уровне последовательности, изображения или среза потока битов. К примеру, флаг разрешения может использоваться для указания на то, что группа режимов разбивки может включать в себя один или несколько асимметричных режимов разбивки для соответствующей последовательности, изображения или среза. В другом примере флаг разрешения может использоваться для указания на то, что группа режимов разбивки может включать в себя один или несколько непрямоугольных режимов разбивки. В другом примере флаг разрешения может использоваться для указания на то, что группа режимов разбивки может включать в себя один или несколько множественных режимов разбивки, допускающих разбивку блока кодирования на подблоки в количестве более двух. В другом примере флаг разрешения может использоваться для указания на общее число подблоков, на которые разбит блок кодирования.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
На Фиг. 1 показан пример внутрикадровой компенсации движения согласно режиму копии внутрикадрового блока (IntraBC), где используется горизонтальный вектор смещения.
На Фиг. 2А-В показаны примеры линейной копии внутрикадрового блока (IntraBC), где блок кодирования (БК) разбивается на вертикальные или горизонтальные блоки, именуемые линиями.
На Фиг. 3А-В показаны бинарные деревья режимов предсказания БК (блоков кодирования) согласно текущему расширению полосы захвата высокоэффективного видеокодирования (RExt) для внутрикадровых и межкадровых срезов.
На Фиг. 4А-В показаны бинарные деревья режимов предсказания БК (блоков кодирования) согласно осуществлению настоящего изобретения для внутрикадровых и межкадровых срезов.
На Фиг. 5А-В показаны бинарные деревья режимов предсказания БК (блоков кодирования) согласно способу, описанному в JCTVC-O0205, для внутрикадровых и межкадровых срезов.
На Фиг. 6А-В показаны бинарные деревья режимов предсказания БК (блоков кодирования) в одном поддереве согласно осуществлению настоящего изобретения для внутрикадровых и межкадровых срезов.
ПОДРОБНОЕ ОПИСАНИЕ СУЩНОСТИ ИЗОБРЕТЕНИЯ
Для повышения производительности или снижения уровня сложности предсказания на основании копии внутрикадрового блока (IntraBC) настоящее изобретение описывает различные осуществления и упрощенный способ предсказания IntraBC.
Первое осуществление. В бинарном дереве, связанном с сигнализацией режима предсказания IntraBC, как показано на Фиг. 3А и Фиг. 3В, бинарное дерево кодирования может быть неэффективным по следующим причинам. Межкадровое предсказание иногда более распространено в предсказании межкадровых срезов, чем предсказание IntraBC. Однако, бинарный код межкадрового режима в межкадровом срезе, как показано на Фиг. 3В, имеет длину бита 3, каковое значение является наибольшим. Также, предсказание IntraBC в настоящее время рассматривается в качестве особого режима внутрикадрового предсказания (т.е. MODE_INTRA). Соответственно, приоритет режимов межкадрового предсказания и предсказания IntraBC изменяется согласно первому осуществлению настоящего изобретения, как показано на Фиг. 4А и Фиг. 4В.
Бинарное дерево кодирования для внутрикадрового среза, как показано на Фиг. 4А, остается неизменным. Однако, бинарное дерево кодирования для межкадрового среза, как показано на Фиг. 4 В, изменено путем присвоения кодового слова длиной 2 межкадровому режиму. Кроме того, значение длины кода для режимов IntraBC и внутрикадрового предсказания равно 3. В Таблице 3 показан пример синтаксиса уровня БК для поддержки первого осуществления.
В Таблице 3 синтаксические элементы, показанные на заштрихованном фоне согласно замечаниям (3-1) и (3-2), удалены в данном осуществлении. Флаг IntraBC (т.е., intra_bc_flag[x0][y0]) внедряется согласно замечанию (3-4), если включается режим IntraBC, и pred_mode_flag имеет значение 1, согласно замечанию (3-3). Кроме того, тест, согласно замечанию (3-5), также изменен путем включения элемента «!intra_bc_flag[x0][y0]».
Второе осуществление. В RExt Draft 4, если используется режим IntraBC, и размер блока предсказания не равен 2N×2N, направление предсказания (т.е., вертикальное или горизонтальное) фактически сигнализируется веткой режима внутрикадрового предсказания, как показано на Фиг. 5А и Фиг. 5В, для внутрикадрового и межкадрового срезов, соответственно. Недостатком такой организации является то, что направление IntraBC нуждается в анализе информации о разбивке для внутрикадрового предсказания, если размер блока предсказания IntraBC не равен 2N×2N. Другими словами, анализ режимов разбивки для предсказания IntraBC относительно размера и направления зависит от режима разбивки внутрикадрового предсказания. Эта зависимость нежелательно с точки зрения аппаратного обеспечения, а также конфигурации ПО, и не является обязательной. Для преодоления данной проблемы во втором осуществлении настоящего изобретения сигналы режима предсказания IntraBC (т.е. 2N×2N, 2N×M или M×2N) консолидированы в одной ветке, как показано на Фиг. 6А и Фиг. 6В, для внутрикадрового и межкадрового срезов, соответственно. Как показано на Фиг. 6А и Фиг. 6В, ветки, связанные с сигнализацией режимов предсказания IntraBC (т.е. 2N×2N, 2N×M или M×2N), для внутрикадрового и межкадрового срезов, идентичны.
В Таблице 4 условием теста для режима, отличного от IntraBC, является внедрение невнутрикадрового среза, как указано в замечании (4-1). С другой стороны, тест для невнутрикадрового среза в традиционной синтаксической конструкции удален согласно замечанию (4-2). Флаг pred_mode_flag внедряется согласно замечанию (4-3). Дополнительный элемент «intra_bc_flag[x0][y0]» добавляется в тест согласно замечанию (4-4).
Если intra_bc_flag имеет значение 1, бинаризация part_mode согласно второму осуществлению показана в Таблице 5, М может представлять собой любое натуральное число, являющееся степенью числа 2, меньшее или равное N. Следует отметить, что второе осуществление также может комбинироваться с третьим осуществлением.
Третье осуществление. В этом осуществлении предсказание IntraBC также может применяться при использовании разбивки N×N, к примеру, в режиме внутрикадрового предсказания N×N. Каждая разбивка N×N независимо предсказывается из соответствующего блока в составе изображения или среза, части изображения или среза, области изображения или среза, либо того же ДБК, содержащего текущий блок. Соответственно, существуют четыре вектора межкадрового движения на БК, требующие поиска и указания. Два примера бинаризации part_mode согласно этому осуществлению, включая режимы разбивки 2N×M и M×2N, показаны в Таблицах 6 и 7, где М равно N, a intra_bc_flag имеет значение 1.
В другом примере разбивка N×N для IntraBC допускается только в том случае, если блок представляет собой НБК (наименьший БК). Два примера бинаризации part_mode показаны в Таблицах 8 и 9, где значение intra_bc_flag равно 1. В Таблицах 8 и 9 условие «log2CbSize>MinCbLog2SizeY» подразумевает, что размер текущего блока больше наименьшего БК, а условие «log2CbSize=MinCbLog2SizeY» подразумевает, что текущий блок равен НБК.
В следующем примере разбивка N×N допускается только в том случае, когда размер БК IntraBC больше 8×8 (т.е. N>4). Бинаризация part_mode показана в Таблицах 10 и 11 для intra_bc_flag со значением 1. Условие «log2CbSize>MinCbLog2SizeY | | log2CbSize = MinCbLog2SizeY && log2CbSize = 3» подразумевает, что размер текущего блока составляет «8×8», либо текущий блок не является НБК. Условие «log2CbSize = MinCbLog2SizeY && log2CbSize > 3» подразумевает, что текущий блок представляет собой НБК, но его размер больше 8×8.
Тот же синтаксис уровня БК, что показан в Таблице 4, может применяться для поддержки типовых таблиц бинаризации part_mode, как показано в Таблицах 6-12.
В другом примере только режимы разбивки N×N и 2N×2N допускаются для предсказания IntraBC. Бинаризация part_mode для intra_bc_flag со значением 1 показана в Таблице 12.
Синтаксис уровня БК для поддержки бинаризации в Таблице 12 показан в Таблице 13.
[0004] В Таблице 13 условием теста для режима, отличного от IntraBC, является внедрение невнутрикадрового среза, как указано в замечании (13-1). С другой стороны тест для невнутрикадрового среза в традиционной синтаксической конструкции удален согласно (13-2). Флаг pred_mode_flag внедряется согласно замечанию (13-3). Третье осуществление может комбинироваться с первым осуществлением, вторым осуществлением или обоими этими осуществлениями.
[0005] Четвертое осуществление. В этом осуществлении предсказание IntraBC может применяться к режимам разбивки 2N×2N, 2N×N, N×2N, 2N×M и M×2N. В одном примере М может представлять собой натуральную степень числа 2, меньше N (к примеру, M=N/2). Примеры бинаризации part_mode при intra_bc_flag со значением 1 показаны в Таблицах 14 и 15. Согласно данному осуществлению предсказанный по IntraBC блок 2N×2N равномерно разделяется на линейные разбивки (2N/M) в вертикальном (т.е. режим 2N×M) или в горизонтальном (т.е. режим M×2N) направлении. Каждый элемент разбивки 2N×M или M×2N независимо предсказывается по соответствующему блоку в составе изображения или среза, части изображения или среза, области изображения или среза, либо того же ДБК, содержащего текущий блок. Таким образом, существуют векторы внутрикадрового движения 2N/M на БК, требующие поиска и указания. В примере, где М равно N/2, если выбран режим разбивки 2N×(N/2) или (N/2)×2N, БК IntraBC 2N×2N равномерно разделяется на четыре линии 2N×(N/2) или (N/2)×2N, соответственно. Каждый элемент разбивки 2N×(N/2) или (N/2)×2N может быть предсказан из отдельной области в области поиска по текущему изображению с отдельным вектором движения. Четвертое осуществление может комбинироваться с любой комбинацией первого осуществления, второго осуществления и третьего осуществления.
Пятое осуществление. В этом осуществлении предсказание IntraBC применяется к асимметричным режимам разбивки. В одном примере, аналогичном AMP (асимметричная разбивка движения) в межкадровом предсказании HEVC, режимы разбивки PART_2N×nU, PART_2N×nD, PART_nL×2N и PART_nR×2N могут применяться к предсказанному по IntraBC БК 2N×2N. Кроме того, в другом примере, определения PART_2N×nU, PART_2N×nD, PART_nL×2N и PART_nR×2N идентичны определениям этих режимов разбивки для межкадрового предсказания HEVC при разрешенной AMP. В другом примере nU, nD, nL и nR могут представлять собой любую натуральную степень числа 2, значение которой меньше N. Примеры бинаризации part_mode для intra_bc_flag со значением 1 показаны в Таблицах 16 и 17. В этом случае каждый элемент разбивки 2N×nU, 2N×nD, nL×2N или nR×2N независимо предсказывается по соответствующему блоку в составе изображения или среза, части изображения или среза, области изображения или среза, либо того же ДБК, содержащего текущий блок. Два вектора внутрикадрового движения на БК подлежат поиску и указанию. Пятое осуществление может комбинироваться с любой комбинацией первого осуществления, второго осуществления и третьего осуществления.
Шестое осуществление. В этом осуществлении описываются комбинации указанных выше осуществлений. Также описываются флаги высокоуровнего синтаксиса для включения или выключения этих способов на уровне последовательности, изображения или среза. В одном примере флаг SPS (набор параметров последовательности) (к примеру, non_square_ibc_enabled_flag) используется для указания на то, разрешается ли использование непрямоугольных режимов разбивки для предсказания IntraBC для данной последовательности. Синтаксис и семантика показаны в Таблице 18.
Как показано в Таблице 18, новый флаг non_square_ibc_enabled_flag, указывающий на разрешение непрямоугольной разбивки для IntraBC, внедряется согласно замечанию (18-2), если intra_block_copy_enabled_flag имеет значение 1 согласно замечанию (18-1). non_square_ibc_enabled_flag со значением 1 указывает на то, что непрямоугольные режимы разбивки могут использоваться для дерева блоков кодирования IntraBC. non_square_ibc_enabled_flag со значением 0 указывает на то, что непрямоугольные режимы разбивки не могут использоваться для дерева блоков кодирования IntraBC.
[0006] В другом примере флаг SPS asymmetric_ibc_enabled_flag используется для указания того, могут ли асимметричные режимы разбивки для предсказания IntraBC использоваться для данной последовательности. Пример синтаксиса и семантики показан в Таблице 19.
Как показано в Таблице 19, новый флаг non_square_ibc_enabled_flag, указывающий на то, разрешено ли использование непрямоугольной IntraBC, внедряется согласно замечанию (19-2), если intra_block_copy_enabled_flag имеет значение 1 согласно замечанию (19-1). Кроме того, флаг asymmetric_ibc_enabled_flag внедряется согласно замечанию (19-4), если non_square_ibc_enabled_flag имеет значение, как указано в замечании (19-3). asymmetric_ibc_enabled_flag со значением 1 указывает на то, что асимметричные режимы разбивки (к примеру, PART_2N×nU, PART_2N×nD, PART_nL×2N или PART_nR×2N) могут использоваться в дереве блоков кодирования IntraBC. asymmetric_ibc_enabled_flag со значением 0 указывает на то, что асимметричные режимы разбивки не могут использоваться в дереве блоков кодирования IntraBC.
В следующем примере новый флаг SPS multi_part_ibc_enabled_flag используется для указания того, возможно ли применение двух режимов разбивки к одному БК IntraBC в данной последовательности. Два типовых примера синтаксиса и семантики представлены в Таблицах 20A и 20В.
Изменения в Таблице 20A в сравнении с традиционной таблицей синтаксиса обозначены замечаниями (20-1) и (20-4). Как указано замечанием (20-2), non_square_ibc_enabled_flag внедряется, если intra_block_copy_enabled_flag имеет значение 1 согласно замечанию (20-1). Как указано замечанием (20-4), multi_part_ibc_enabled_flag внедряется, если non_square_ibc_enabled_flag имеет значение 1 согласно замечанию (20-3). multi_part_ibc_enabled_flag со значением 1 указывает на то, что более одного режимов разбивки (т.е. 2N×M и M×2N, либо 2N×(N/2) и (N/2)×2N) могут использоваться в отношении одного дерева блоков кодирования IntraBC. multi_part_ibc_enabled_flag со значением 0 указывает на то, что разрешается использование более одного режима разбивки в отношении одного дерева блоков кодирования IntraBC.
Изменения в Таблице 20В относительно традиционной таблицы синтаксиса обозначены замечаниями (20-5) и (20-6). Как указано замечанием (20-6), multi_part_ibc_enabled_flag внедряется, если intra_block_copy_enabled_flag имеет значение 1 согласно замечанию (20-5).
В другом примере новый флаг SPS log2_num_part_ibc_minus2 используется для указания числа элементов, на которые разбивается текущий блок кодирования в предсказании IntraBC. Пример синтаксиса и семантики представлен в Таблице 21.
Изменения в Таблице 21 по сравнению с традиционной таблицей синтаксиса обозначены замечаниями (21-1) и (21-6). Как указано замечанием (21-2), non_square_ibc_enabled_flag внедряется, если intra_block_copy_enabled_flag имеет значение 1 согласно замечанию (21-1). Кроме того, в этом случае также могут использоваться дополнительные флаги в зависимости от результатов теста. Как указано замечанием (21-4), multi_part_ibc_enabled_flag внедряется, если non_square_ibc_enabled_flag имеет значение 1 согласно замечанию (21-3). Как указано замечанием (21-6), log2_num_part_ibc_minus2 внедряется, если multi_part_ibc_enabled_flag имеет значение 1 согласно замечанию (21-5). log2_num_part_ibc_minus2 плюс 2 означает число элементов разбивки блока кодирования IntraBC в соответствии с нижеследующим:
(log2_num_part_ibc_minus2+2)
NumPartitionIntraBC=2.
К примеру, БК предсказания IntraBC может быть равномерно разделен на элементы разбивки в количестве NumPartitionIntraBC в вертикальном или горизонтальном направлении.
[0007] Описание выше приведено для того, чтобы позволить лицам, не имеющим специальных познаний в соответствующей технической области, практически применять настоящее изобретение в контексте конкретных задач и применимых к ним требований. Различные изменения в отношении описанных осуществлений будут очевидны лицам, имеющим необходимый опыт в соответствующей области, а определенные здесь общие принципы могут применяться к другим осуществлениям. Таким образом, настоящее изобретение не подлежит ограничению конкретными указанными и описанными осуществлениями, но может применяться в наиболее широком диапазоне задач в соответствии с описанными здесь принципами и элементами новизны. В подробном описании выше различные конкретные элементы проиллюстрированы в целях обеспечения наиболее полного понимания настоящего изобретения. Тем не менее, возможности практического применения настоящего изобретения будут понятны компетентным в соответствующей технической области лицам.
Осуществление настоящего изобретения, описанное выше, может быть реализовано в составе различного аппаратного обеспечения, программных кодов или сочетания аппаратного и программного обеспечения. К примеру, осуществление настоящего изобретения может представлять собой схему, интегрированную в микропроцессор сжатия видеоданных, или программный код, интегрированный в ПО для сжатия видеоданных, в целях осуществления описываемой здесь обработки. Осуществление настоящего изобретения также может представлять собой программный код, исполняемый на цифровом сигнальном процессоре (ЦСП) для осуществления описываемой здесь обработки. Изобретение может также включать в себя ряд функций, исполняемых компьютерным процессором, цифровым сигнальным процессором, микропроцессором или программируемой пользователем логической матрицей (FPGA). Эти процессоры могут быть сконфигурированы для выполнения конкретных задач в соответствии с изобретением, путем исполнения машиночитаемого программного или программно-аппаратного кода, определяющего конкретные способы, предусмотренные изобретением. Программный или программно-аппаратный код может быть разработан на различных языках программирования, в различных форматах или стилях. Программный код также может компилироваться для различных целевых платформ. Однако, различные форматы кода, стили и языки программирования и других средств конфигурирования кода для выполнения задач в соответствии с изобретением не должны отклоняться от духа и содержания изобретения.
Изобретение может быть осуществлено в других конкретных формах без отклонения от духа или основных характеристик изобретения. Описанные примеры во всех отношениях подлежат рассмотрению исключительно в качестве иллюстраций, но не ограничений. Объем изобретения, таким образом, определяется прилагающимися пунктами формулы изобретения, а не предшествующим описанием. Все изменения в рамках значения и диапазона эквивалентности пунктов формулы включаются в область их действия.