СПОСОБ И УСТРОЙСТВО ПРИВЯЗКИ К ТЕКУЩЕМУ ИЗОБРАЖЕНИЮ ДЛЯ КОДИРОВАНИЯ ВИДЕО
METHOD AND DEVICE FOR BINDING TO CURRENT IMAGE FOR ENCODING VIDEO

ПЕРЕКРЕСТНАЯ ССЫЛКА НА РОДСТВЕННЫЕ ЗАЯВКИ
Настоящее изобретение заявляет приоритет на основании предварительной патентной заявки США, серийный номер 62/342,883, поданной 28 мая 2016 г. Предварительная патентная заявка США полностью включена в настоящую заявку посредством ссылки.
ОБЛАСТЬ ТЕХНИКИ
Настоящее изобретение относится к разделению на блоки для процесса кодирования и / или прогнозирования в кодировании видео. В частности, настоящее изобретение раскрывает различные схемы кодирования для системы кодирования, использующей привязку к текущему изображению (CPR).
УРОВЕНЬ ТЕХНИКИ
Стандарт высокоэффективного видеокодирования (HEVC) разработан в рамках совместного видеопроекта МСЭ-Т Группой экспертов по видеокодированию (VCEG) и Группой экспертов по движущимся изображениям (MPEG) ISO / IEC, в рамках партнерства, известного как Объединенная команда по видеокодированию (JCT-VC). В HEVC один срез разделяется на множество ячеек кодового дерева (CTU). В основном профиле минимальный и максимальный размеры CTU определяются элементами синтаксиса в наборе последовательностных параметров (SPS). Допустимый размер CTU может составлять 8x8, 16x16, 32x32 или 64x64. Для каждого среза CTU в срезе обрабатываются в соответствии с порядком растровой развертки.
CTU дополнительно разделяется на множество ячеек кодирования (CU) для адаптации к различным локальным характеристикам. Дерево квадрантов, обозначаемое как кодовое дерево, используется для разделения CTU на множество CU. Допустим, размер CTU будет составлять MxM, где M — одно из значений: 64, 32 или 16. CTU может быть одной CU (т. е. без разделения) или может быть разделена на четыре меньших ячейки равных размеров (т. е. M/2xM/2 каждая), которые соответствуют узлам кодового дерева. Если ячейки являются конечными узлами кодового дерева, то ячейки становятся CU. В противном случае процесс разделения дерева квадрантов может повторяться до тех пор, пока размер узла не достигнет минимально допустимого размера CU, как указано в SPS (набор последовательностных параметров). Это представление приводит к рекурсивной структуре, как указано кодовым деревом (также называемым разделенной структурой дерева) 120 на фиг. 1. Разделение 110 CTU показано на фиг. 1, где сплошными линиями обозначены границы CU. Решение о том, кодировать ли область изображения с использованием межкадрового (временного) или внутрикадрового (пространственного) прогнозирования, принимается на уровне CU. Поскольку минимальный размер CU может составлять 8x8, минимальная степень детализации для переключения между различными основными типами прогнозирования составляет 8x8.
Кроме того, в соответствии с HEVC каждая CU может быть разделена на одну или более ячеек прогнозирования (PU). В сочетании с CU, PU работает в качестве базового представительного блока для обмена информацией о прогнозировании. Внутри каждой PU применяется один и тот же процесс прогнозирования, и соответствующая информация передается в декодер на основе PU. CU может быть разделена на один, два или четыре PU в соответствии с типом разделения PU. HEVC определяет восемь форм для разделения CU на PU, как показано на фиг. 2, включая 2Nx2N, 2NxN, Nx2N, NxN, 2NxnU, 2NxnD, nLx2N и nRx2N. В отличие от CU, PU может быть разделена только один раз в соответствии с HEVC. Разделы, показанные во второй строке, соответствуют асимметричным разделам, где две разделенные части имеют разные размеры.
После получения остаточного блока процессом прогнозирования на основе типа разделения PU остатки прогнозирования CU могут быть разделены на ячейки преобразования (TU) в соответствии с другой структурой дерева квадрантов, которая аналогична кодовому дереву для CU, как показано на фиг. 1. Сплошными линиями обозначены границы CU, а пунктирными линиями обозначены границы TU. TU является базовым представительным блоком с остаточными коэффициентами или коэффициентами преобразования для применения целочисленного преобразования и квантования. Для каждой TU применяется одно целочисленное преобразование с таким же размером, как и у TU, для получения остаточных коэффициентов. Эти коэффициенты передаются в декодер после квантования на основе TU.
Термины «блок кодового дерева» (CTB), «блок кодирования» (CB), блок прогнозирования (PB) и блок преобразования (TB) определены для указания двухмерного массива образцов одного компонента цветности, связанного с CTU, CU, PU и TU, соответственно. Таким образом, CTU состоит из одного CTB яркости, двух CTB цветности и связанных элементов синтаксиса. Аналогичное соотношение действительно и для CU, PU и TU. Разделение дерева обычно применяется одновременно как к яркости, так и к цветности, хотя исключения применяются, когда достигаются определенные минимальные размеры для цветности.
В других случаях в JCTVC-P1005 предложена структура двоичного разделения блоков дерева (D. Flynn, et al, «HEVC Range Extensions Draft 6», Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 16-я конференция: Сан-Хосе, США, 9-17 января 2014, документ: JCTVC-P1005). В предложенной структуре двоичного разделения дерева блок может быть рекурсивно разделен на два меньших блока с использованием различных типов двоичного разделения, как показано на фиг. 3. Наиболее эффективными и простыми являются симметричное горизонтальное и вертикальное разделение, как показано в двух верхних типах разделения на фиг. 3. Для данного блока размером MxN сигнализируется флаг, указывающий, разделен ли данный блок на два меньших блока. Если да, другой синтаксический элемент сигнализируется, чтобы указать, какой тип разделения используется. Если используется горизонтальное разделение, данный блок разделяется на два блока размером MxN/2. Если используется вертикальное разделение, данный блок разделяется на два блока размером M/2xN. Процесс двоичного разделения дерева может повторяться до тех пор, пока размер (ширина или высота) блока разделения не достигнет минимально допустимого размера блока (ширина или высота). Минимально допустимый размер блока может быть определен в синтаксисе высокого уровня, таком как SPS. Поскольку двоичное дерево имеет два типа разделения (т. е. горизонтальное и вертикальное), должны быть указаны минимально допустимые значения как ширины, так и высоты блока. Негоризонтальное разделение подразумевается, когда разделение приведет к тому, что высота блока будет меньше указанного минимума. Невертикальное разделение подразумевается, когда разделение приведет к тому, что ширина блока будет меньше указанного минимума. На фиг. 4 показан пример разделения 410 на блоки и соответствующее ему двоичное дерево 420. В каждом разделяемом узле (т. е. не конечном узле) двоичного дерева один флаг используется, чтобы указать, какой тип разделения (горизонтальный или вертикальный) используется, где 0 может обозначать горизонтальное разделение, а 1 может обозначать вертикальное разделение.
Структура двоичного дерева может использоваться для разделения области изображения на множество меньших блоков, такое как разделение среза на CTU, CTU на CU, CU на PU или CU на TU и т. д. Двоичное дерево может быть использовано для разделения CTU на CU, где корневым узлом двоичного дерева является CTU, а конечным узлом двоичного дерева является CU. Конечные узлы могут быть дополнительно обработаны путем кодирования прогнозирования и преобразования. Для упрощения, отсутствует дальнейшее разделение CU на PU или CU на TU, что означает, что CU равна PU, и PU равна TU. Таким образом, другими словами, конечный узел двоичного дерева является базовой единицей для кодирования прогнозирования и преобразования.
Структура двоичного дерева является более гибкой, чем структура дерева квадрантов, поскольку может поддерживаться большее количество форм разделения, что также является источником повышения эффективности кодирования. Однако сложность кодирования также возрастет, чтобы выбрать лучшую форму раздела. Чтобы сбалансировать сложность и эффективность кодирования, раскрыт способ объединения структуры дерева квадрантов и двоичного дерева, который также называется структурой «дерево квадрантов плюс двоичное дерево» (QTBT). В соответствии со структурой QTBT, блок сначала разделяется структурой дерева квадрантов, и разделение дерева квадрантов может повторяться до тех пор, пока размер разделяемого блока не достигнет минимально допустимого размера конечного узла дерева квадрантов. Если конечный блок дерева квадрантов не превышает максимально допустимый размер корневого узла двоичного дерева, он может быть дополнительно разделен структурой двоичного дерева, и разделение двоичного дерева может повторяться до тех пор, пока размер (ширина или высота) разделяемого блока не достигнет минимально допустимого размера конечного узла двоичного дерева (ширина или высота) или глубина двоичного дерева не достигнет максимально допустимой глубины двоичного дерева. В структуре QTBT минимальный допустимый размер конечного узла двоичного дерева, максимально допустимый размер корневого узла двоичного дерева, минимально допустимая ширина и высота конечного узла двоичного дерева могут указываться в синтаксисе высокого уровня, например, в SPS. На фиг. 5 показан пример разделения 510 на блоки и соответствующее ему QTBT 520. Сплошными линиями обозначено разделение дерева квадрантов, а пунктирными линиями обозначено разделение двоичного дерева. В каждом разделяемом узле (т. е. не конечном узле) двоичного дерева один флаг указывает, какой тип разделения (горизонтальный или вертикальный) используется, 0 может обозначать горизонтальное разделение, а 1 может обозначать вертикальное разделение.
Указанная выше структура QTBT может использоваться для разделения области изображения (например, срез, CTU или CU) на множество меньших блоков, такое как разделение среза на CTU, CTU на CU, CU на PU или CU на TU и т. д. Например, QTBT может использоваться для разделения CTU на CU, где корневым узлом QTBT является CTU, которая разделяется на множество CU структурой QTBT, и CU дополнительно обрабатываются посредством кодирования с прогнозированием и преобразованием. Для упрощения, отсутствует дальнейшее разделения CU на PU или CU. Это означает, что CU равна PU, а PU равна TU. Таким образом, другими словами, конечный узел структуры QTBT является базовой ячейкой для прогнозирования и преобразования.
Пример структуры QTBT показан следующим образом. Для CTU размером 128x128 минимально допустимый размер конечного узла дерева квадрантов задан равным 16x16, максимально допустимый размер корневого узла двоичного дерева задан равным 64x64, минимально допустимые ширина и высота конечного узла двоичного дерева заданы равными 4, и максимально допустимая глубина двоичного дерева задана равной 4.  Во-первых, CTU разделяется структурой дерева квадрантов, и конечная ячейка дерева квадрантов может иметь размер от 16x16 (т. е. минимально допустимый размер конечного узла дерева квадрантов) до 128x128 (равный размеру CTU, т. е. без разделения). Если конечная ячейка дерева квадрантов — 128x128, она не может быть далее разделена двоичным деревом, поскольку размер превышает максимально допустимый размер корневого узла двоичного дерева 64x64. В противном случае, конечная ячейка дерева квадрантов может быть далее разделена двоичным деревом. Конечная ячейка дерева квадрантов, которая также является корневой ячейкой двоичного дерева, имеет глубину двоичного дерева, равную 0. Когда глубина двоичного дерева достигает 4 (т. е. максимально допустимая заданная глубина для двоичного дерева), не подразумевается никакого разделения. Когда блок соответствующего узла двоичного дерева имеет ширину, равную 4, подразумевается негоризонтальное разделение. Когда блок соответствующего узла двоичного дерева имеет высоту, равную 4, подразумевается невертикальное разделение. Конечные узлы QTBT дополнительно обрабатываются посредством кодирования прогнозирования (межкадровое или внутрикадровое) или преобразования.
Для I-среза структура дерева QTBT обычно применяется с раздельным кодированием яркости / цветности. Например, структура дерева QTBT применяется отдельно к компонентам яркости и цветности для I-среза и применяется одновременно как к яркости, так и к цветности (за исключением случаев, когда достигаются определенные минимальные размеры для цветности) для P- и B-срезов. Другими словами, в I-срезе CTB яркости имеет свое разделение QTBT-структурированных блоков, а два CTB цветности имеют другое разделение QTBT-структурных блоков. В другом примере два CTB цветности также могут иметь свои собственные разделы QTBT-структурированных блоков.
Для кодирования на основе блоков всегда существует необходимость разделять изображение на блоки (например, CU, PU и TU) для целей кодирования. Как известно в данной области техники, изображение может быть разделено на меньшие области изображений, такие как срезы, плитки, строки CTU или CTU перед применением разделения блока. Процесс разделения изображения на блоки для целей кодирования называется разделением изображения с использованием структуры ячеек кодирования (CU). Конкретный способ разделения для получения CU, PU и TU, принятый HEVC, является примером структуры ячеек кодирования (CU). Структура дерева QTBT является другим примером структуры ячеек кодирования (CU).
Привязка к текущему изображению
Оценка / компенсация движения является хорошо известной ключевой технологией в гибридном кодировании видео, которая использует пиксельную корреляцию между соседними изображениями. В видеопоследовательности движение объекта между соседними кадрами невелико, и движение объекта может быть смоделировано с помощью двумерного поступательного движения. Соответственно, схемы, соответствующие объектам или фону в кадре, смещаются для формирования соответствующих объектов в последующем кадре или коррелируют с другими схемами в текущем кадре. При оценке смещения (например, с использованием методов сопоставления блоков) схема может быть в основном воспроизведена без необходимости перекодирования схемы. Аналогичным образом, так же пытались сопоставлять и копировать блоки, чтобы позволить выбрать эталонный блок из одного и того же изображения. Было замечено, что подход оказался неэффективным при применении этой концепции к видео, снятым камерой. Частично причина состоит в том, что текстовая схема в пространственной соседней области может быть схожа с текущим блоком кодирования, но обычно с некоторыми постепенными изменениями в пространстве. Таким образом, блоку трудно найти точное совпадение на одном и том же изображении видео, снятого камерой. Следовательно, улучшение производительности кодирования ограничено.
Однако пространственная корреляция между пикселями в одном и том же изображении отличается для содержания экрана. Для типового видео с текстом и графикой на одном и том же изображении обычно присутствуют повторяющиеся схемы. Следовательно, внутриблочная (внутрикадровая) компенсация, видимо, может оказаться очень эффективной. Новый режим прогнозирования, т. е. режим внутриблочного копирования (IBC) или привязка к текущему изображению (CPR) был введен для кодирования содержания экрана, чтобы использовать эту характеристику. В режиме CPR ячейка прогнозирования (PU) прогнозируется из ранее реконструированного блока в том же изображении. Далее, вектор смещения (блок-вектор) (BV), используется для сигнализации относительного смещения от положения текущего блока в положение эталонного блока. Ошибки прогнозирования затем кодируются с использованием преобразования, квантования и энтропийного кодирования. Пример компенсации CPR показан на фиг. 6, где область 610 соответствует изображению, срезу или области изображения для кодирования. Блоки 620 и 630 соответствуют двум блокам для кодирования. В этом примере каждый блок может найти соответствующий блок в ранее закодированной области в текущем изображении (т. е. 622 и 632 соответственно).  В соответствии с этой методикой эталонные образцы соответствуют реконструированным образцам текущего декодированного изображения перед операциями контурного фильтра, включающими в себя деблочный фильтр и фильтр адаптивного смещения образца (SAO) в HEVC.
Ранняя версия CPR была раскрыта в JCTVC-M0350 (Madhukar Budagavi и соавт., «AHG8: Video coding using Intra motion compensation», Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 13th Meeting: Incheon, KR, 18-26 Apr. 2013, Документ: JCTVC-M0350), который представлен как возможная технология для разработки HEVC Range Extensions (RExt). В JCTVC-M0350 компенсация CPR была ограничена в пределах небольшой локальной области, а поиск ограничен блок-вектором 1-D только для блока размером 2Nx2N. Позднее во время стандартизации HEVC SCC (кодирование содержания экрана) был разработан более усовершенствованный метод CPR.
Чтобы эффективно сигнализировать блок-вектор (BV), BV сигнализируется предиктивно с использованием предиктора BV (BVP) аналогично кодированию MV. Соответственно, разность BV (BVD) сигнализируется, и BV может быть реконструирован в соответствии с BV = BVP + BVD, как показано на фиг. 7, где эталонный блок 720 выбран в качестве прогнозирования IntraBC для текущего блока 710 (т. е. CU). BVP определяется для текущей CU. Способы получения предиктора вектора движения (MVP) известны в данной области техники. Подобная деривация может быть применена к деривации BVP.
Когда используется CPR, только часть текущего изображения может быть использована в качестве эталонного изображения. Некоторые ограничения соответствия битового потока налагаются для регулировки действительного значения MV, относящегося к текущему изображению.
Во-первых, должно выполняться одно из следующих условий:
BV_x + offsetX + nPbSw + xPbs - xCbs <= 0, и   (1)
BV_y + offsetY + nPbSh + yPbs - yCbs <= 0.    (2)
Во-вторых, должно выполняться следующее условие WPP (параллельная обработка фронта волны):
(xPbs + BV_x + offsetX + nPbSw - 1) / CtbSizeY - xCbs / CtbSizeY <=
yCbs / CtbSizeY - (yPbs + BV_y + offsetY + nPbSh - 1) / CtbSizeY (3)
В уравнениях (1) ... (3) (BV_x, BV_y) — блок-вектор яркости (т. е. вектор движения для CPR) для текущей PU; nPbSw и nPbSh — ширина и высота текущей PU; (xPbS, yPbs) — местоположение верхнего левого пикселя текущей PU относительно текущего изображения; (xCbs, yCbs) — местоположение верхнего левого пикселя текущей CU относительно текущего изображения; и CtbSizeY— размер CTU. OffsetX и offsetY — это два скорректированных смещения в двух измерениях с учетом интерполяции образца цветности для режима CPR:
offsetX = BVC_x & 0x7? 2 : 0,        (4)
offsetY = BVC_y & 0x7? 2 : 0.        (5)
(BVC_x, BVC_y) — блок-вектор цветности с разрешением 1/8-pel в HEVC.
В-третьих, эталонный блок для CPR должен находиться в пределах границ одной и той же плитки / среза.
Компенсация аффинного движения
Аффинная модель может использоваться для описания поворота 2D-блоков, а также 2D-деформаций квадратов (прямоугольников) в параллелограмм. Эта модель может быть описана следующим образом:
x’ = a0 + a1*x + a2*y, и
y’ = b0 + b1*x + b2*y.          (6)
В этой модели необходимо определить 6 параметров. Для каждого пикселя (х, у) в области, представляющей интерес, вектор движения определяется как разность между местоположением данного пикселя (A), и местоположением его соответствующего пикселя в эталонном блоке (А’), т. е. MV = A’ - A = (a0 + (a1 - 1) * x + a2 * y, b0 + b1 * x + (b2 - 1) * y). Следовательно, вектор движения для каждого пикселя зависит от местоположения.
В соответствии с этой моделью, если векторы движения трех разных местоположений известны, то вышеуказанные параметры могут быть решены. Это эквивалентно условию, что 6 параметров известны. Каждое местоположение с известным вектором движения называется контрольной точкой. Аффинная модель с 6 параметрами соответствует модели с 3 контрольными точками.
В технической литературе Li и соавт. («An affine motion compensation framework for high efficiency video coding», in 2015 IEEE International Symposium on Circuits and Systems (ISCAS), 24-27 May 2015, Pages: 525-528) и Huang и соавт. («Control-Point Representation and Differential Coding Affine-Motion Compensation», IEEE Transactions on Circuits, System and Video Technology (CSVT), Vol. 23, No. 10, pages 1651-1660, Oct. 2013) представили некоторые примеры осуществления компенсации аффинного движения.  В технической литературе Li и соавт. аффинный флаг сигнализируется для раздела блока 2Nx2N, когда текущий блок кодируется либо в режиме объединения (Merge), либо в режиме AMVP. Если этот флаг активен, деривация векторов движения для текущего блока следует аффинной модели. Если этот флаг неактивен, деривация векторов движения для текущего блока следует традиционному поступательному движению. Три контрольных точки (3 MV) сигнализируются при использовании аффинного режима AMVP. В каждом местоположении контрольной точки MV кодируется предиктивно. Затем MVD этих контрольных точек кодируются и передаются. В технической литературе Huang и соавт. исследованы различные местоположения контрольной точки и предиктивное кодирование MV в контрольных точках.
Синтаксическая таблица для компенсации аффинного движения показана в таблице 1. Как показано в таблице 1, синтаксический элемент use_affine_flag сигнализируется, если по меньшей мере один кандидат Merge — с аффинной кодировкой, и режим разделения — 2Nx2N (т. е. PartMode == PART_2Nx2N), как указано в примечаниях (1-1) ... (1-3) для режима Merge. Синтаксический элемент use_affine_flag сигнализируется, если размер текущего блока больше 8x8 (т. е. (Log2CbSize > 3) и режим разделения — 2Nx2N (т. е. PartMode == PART_2Nx2N), как указано в примечаниях (1-4) ... (1-6) для B-среза. Если use_affine_flag указывает на использование аффинной модели (т. е. use_affine_flag со значением 1), информация о двух других контрольных точках сигнализируется для эталонного списка L0, как указано в примечаниях (1-7) ... (1-9), и информация о двух других контрольных точках передается для эталонного списка L1, как указано в примечаниях (1-10) ... (1-12).
Таблица 1
prediction_unit(x0,y0,nPbW,nPbH) {
Примечание
if(cu_skip_flag[x0][y0]) {
if(MaxNumMergeCand > 1)
merge_idx[x0][y0]
} else { /* MODE_INTER */
merge_flag[x0][y0]
if(merge_flag[x0][y0]) {
if(по меньшей мере один кандидат объединения с аффинным кодированием &&PartMode == PART_2Nx2N)
1-1
use_affine_flag
1-2
else
1-3
if(MaxNumMergeCand > 1)
merge_idx[x0][y0]
} else {
if(slice_type == B)
inter_pred_idc[x0][y0]
if(log2CbSize > 3 &&PartMode == PART_2Nx2N)
1-4
use_affine_flag
1-5
if(inter_pred_idc[x0][y0] != PRED_L1) {
1-6
if(num_ref_idx_l0_active_minus1 > 0)
ref_idx_l0[x0][y0]
mvd_coding(x0,y0,0)
if(use_affine_flag){
1-7
mvd_coding(x0,y0,0) /* вторая контрольная точка, когда используется аффинный режим */
1-8
mvd_coding(x0,y0,0) /* третья контрольная точка, когда используется аффинный режим */
1-9
}
mvp_l0_flag[x0][y0]
}
if(inter_pred_idc[x0][y0] != PRED_L0) {
if(num_ref_idx_l1_active_minus1 > 0)
ref_idx_l1[x0][y0]
if(mvd_l1_zero_flag &&inter_pred_idc[x0][y0] == PRED_BI) {
MvdL1[x0][y0][0] = 0
MvdL1[x0][y0][1] = 0
} else
mvd_coding(x0,y0,1)
if(use_affine_flag){
1-10
mvd_coding(x0,y0,1) /* вторая контрольная точка, когда используется аффинный режим */
1-11
mvd_coding(x0,y0,1) /* третья контрольная точка, когда используется аффинный режим */
1-12
}
mvp_l1_flag[x0][y0]
}
}
}
}
В настоящем изобретении рассматриваются различные аспекты кодирования CPR со структурой QTBT или раздельного кодирования яркости / цветности.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Способ и устройство для кодирования видео с использованием структуры дерева квадрантов плюс двоичное дерево, или раздельного кодирования яркости / цветности. В соответствии с одним из способов по настоящему изобретению, когда включен режим привязки к текущему изображению (CPR), компонент яркости и этот один или более компонентов цветности текущего изображения совместно разделяются на блоки яркости и блоки цветности с использованием одной и той же структуры ячейки кодирования (CU), и кодирование CPR применяется к блокам яркости и блокам цветности совместно, если режим CPR выбран для блоков яркости и блоков цветности, или когда компонент яркости и этот один или более компонентов цветности текущего изображения разделены на блоки яркости и блоки цветности по отдельности с использованием отдельных структур CU, блоки яркости и блоки цветности кодируются или декодируются с использованием режима кодирования, выбранного из группы режимов кодирования, исключая режим CPR.
В соответствии с другим способ компоненты яркости и цветности текущего изображения разделяются по отдельности на блоки яркости и блоки цветности с использованием отдельных структур CU. Кодирование CPR применяется к блокам яркости или блокам цветности по отдельности, если режим CPR выбран для блоков яркости или блоков цветности соответственно. Для блоков яркости, CPR относится к эталонным данным яркости в реконструированном изображении яркости текущего изображения с использованием первых векторов движения (MV). Для блоков цветности, CPR относится к эталонным данным цветности в реконструированном изображении цветности текущего изображения с использованием вторых MV. В одном из вариантов осуществления первые MV и вторые MV отличаются. В другом варианте осуществления первый MV для соотнесенного блока яркости используется для получения второго MV для соответствующего блока цветности, причем первый MV является масштабированным MV из соотнесенного блока яркости, если компонент яркости и этот один или более компонентов цветности обладают разными разрешениями. Если режим CPR применяется к соответствующему блоку цветности, и соотнесенный блок яркости кодируется в режиме CPR, то первый MV или масштабированный MV первого MV для соотнесенного блока яркости могут непосредственно использоваться в качестве второго MV соответствующего блока цветности. В этом случае флаг может быть использован для указания того, используется ли первый MV или масштабированный MV первого MV для соотнесенного блока яркости непосредственно как второй MV соответствующего блока цветности. Флаг сигнализируется или синтаксически выделяется, когда соответствующий блок цветности кодируется в режиме объединения или когда соотнесенный блок яркости кодируется в режиме CPR. Если режим CPR применяется к соответствующему блоку цветности, и соотнесенный блок яркости не кодируется в режиме CPR, то MV по умолчанию может быть использован в качестве второго MV соответствующего блока цветности. В другом варианте осуществления, если режим CPR применяется к соответствующему блоку цветности, и соотнесенный блок яркости кодируется в режиме CPR, то первый MV или масштабированный MV первого MV для соотнесенного блока яркости может быть использован в качестве предиктора (MVP), добавленного в список кандидатов Объединения, или список кандидатов расширенного прогнозирования вектора движения (AMVP) для соответствующего блока цветности. Первый MV или масштабированный MV первого MV для соотнесенного блока яркости может быть добавлен к местоположению ведущего кандидата в списке кандидатов объединения или списке кандидатов AMVP для соответствующего блока цветности. Если режим CPR применяется к соответствующему блоку цветности, и соотнесенный блок яркости не кодируется в режиме CPR, то MV по умолчанию может быть использован в качестве MVP, добавленного к списку кандидатов объединения или AMVP соответствующего блока цветности. Например, MV по умолчанию может быть выбран из группы MV, содержащей (-w, 0), (0, -h), (-w, -h), (-2w, 0) и (0, -2h), где w — ширина блока, а h — высота блока. В еще одном варианте осуществления первый MV или масштабированный MV первого MV для соотнесенного блока яркости, связанного с соседним блоком цветности соответствующего блока цветности, может быть непосредственно использован в качестве второго MV соответствующего блока цветности.
В другом аспекте вышеуказанного изобретения рассмотрены ограниченные реконструированные данные для режима CPR. Когда режим CPR применяется к текущему изображению, эталонные данные для текущего блока текущего изображения ограничиваются реконструированными данными, доступными перед прогнозированием текущей CU, содержащей текущий блок. Соответственно, блок-вектор (BV) текущего блока ограничен, чтобы выполнялось одно из двух условий: BV_x + offsetX + nPbSw <= 0 и BV_y + offsetY + nPbSh <= 0, где (BV_x, BV_y) — BV компонента яркости текущего блока, (offsetX, offsetY) — два скорректированных смещения с учетом интерполяции образца цветности для режима CPR, а nPbSw и nPbSh соответствуют ширине и высоте текущего блока. Текущий блок может соответствовать текущему блоку яркости или текущему блоку цветности. Эталонные данные для текущего блока области изображения дополнительно ограничены областью прогнозирования в форме лестницы, связанной с параллельной обработкой фронта волны (WPP), которая дополнительно ограничивает блок-вектор (BV) текущего блока до: (xPbs + BV_x + offsetX + nPbSw - 1) / CtbSizeY - xPbs / CtbSizeY <= yPbs / CtbSizeY - (yPbs + BV_y + offsetY + nPbSh - 1) / CtbSizeY, где (xPbs, yPbs) — это местоположение верхнего левого пикселя текущего блока относительно текущего изображения, и CtbSizeY — высота области изображения. offsetX и offsetY равны 0, если компонент яркости и компоненты цветности области изображения по отдельности разделены на блоки яркости и блоки цветности с использованием отдельных структур ячейки кодирования.
КРАТКОЕ РАСКРЫТИЕ ГРАФИЧЕСКИХ МАТЕРИАЛОВ
На фиг. 1 показан пример разделения блока с использованием структуры дерева квадрантов для разделения ячейки кодового дерева (CTU) на ячейки кодирования (CU).
На фиг. 2 показано разделение асимметричного движения (AMP) в соответствии с высокоэффективным видеокодированием (HEVC), где AMP определяет восемь форм для разделения CU на PU.
На фиг. 3 показан пример различных типов двоичного разделения, используемых структурой разделения двоичного дерева, где блок может быть рекурсивно разделен на два меньших блока, используя типы разделения.
На фиг. 4 показан пример разделения блока и его соответствующее двоичное дерево в каждом разделяемом узле (т. е. не конечном узле) двоичного дерева, один флаг используется, чтобы указать, какой тип разделения (горизонтальный или вертикальный) используется, где 0 может обозначать горизонтальное разделение, а 1 может обозначать вертикальное разделение.
На фиг. 5 показан пример разделения блока и соответствующая ему структура дерева квадрантов плюс двоичное дерево (QTBT), где сплошными линиями обозначено разделение дерева квадрантов, а пунктирными линиями обозначено разделение двоичного дерева.
На фиг. 6 показан пример компенсации CPR, где область 610 соответствует изображению, срезу или области изображения для кодирования. Блоки 620 и 630 соответствуют двум блокам для кодирования.
На фиг. 7 показан пример предиктивного кодирования блок-вектора (BV), где сигнализируется разность BV (BVD), соответствующая разности между текущим BV и предиктором BV.
На фиг. 8 показаны примеры ограниченной области эталонного пикселя для режима IntraBC (т. е. привязка к текущему изображению, режим CPD).
На фиг. 9 показан пример области эталонных данных в форме лестницы для WPP (параллельная обработка фронта волны), связанной с режимом CPR.
На фиг. 10 показан пример деривации кандидата соотнесенной цветовой плоскости из других цветовых плоскостей в том же кадре, где (Y1, U1, V1) и (Y2, U2, V2) — это цветовые плоскости двух последовательных кадров.
На фиг. 11 показана блок-схема примерной системы с режимом кодирования с привязкой к текущему изображению (CPR) в соответствии с вариантом осуществления настоящего изобретения, где блоки яркости и цветности текущего изображения совместно кодируются с использованием одной и той же структуры ячейки кодирования (CU), если режим CPR выбран для блоков яркости и цветности, или если компоненты яркости и цветности разделены на блоки яркости и цветности по отдельности с использованием отдельных структур CU, блоки яркости и цветности кодируются или декодируются с использованием режима кодирования, выбранного из группы режимов кодирования, исключая режим CPR.
На фиг. 12 показана блок-схема примерной системы кодирования с привязкой к текущему изображению (CPR) в соответствии с вариантом осуществления настоящего изобретения, где блоки яркости и цветности текущего изображения кодируются по отдельности с использованием другой структуры CU, если CPR режим выбран для блоков яркости и цветности.
На фиг. 13 показана блок-схема примерной системы кодирования с привязкой к текущему изображению (CPR) в соответствии с вариантом осуществления настоящего изобретения, где эталонные данные для текущего блока ограничены реконструированными данными, доступными перед прогнозированием текущей ячейки кодового дерева (CTU), содержащей текущий блок, если выбран режим CPR для блоков яркости и цветности.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
Следующее раскрытие относится к наилучшему варианту осуществления изобретения. Это раскрытие подготовлено с целью иллюстрации общих принципов изобретения и не является ограничивающим. Объем изобретения наилучшим образом определяется формулой изобретения.
В кодировании видео на основе первоначальной структуры дерева квадрантов плюс двоичное дерево (QTBT) и раздельного кодирования яркости / цветности, яркость и цветность кодируются по отдельности для всех кадров с внутренним кодированием (например, I-срез). Однако в HEVC-SCC CPR разработан для соединения трех цветовых компонентов. MV CPR используется для всех трех компонентов. В соответствии с одним из аспектов настоящего изобретения структура CPR модифицируется, когда яркость и цветность кодируются по отдельности. В этом раскрытии предложены различные способы кодирования CPR с отдельной структурой CU яркости / цветности. Далее раскрыты различные аспекты использования режима CPR для видеоданных, разделенных со структурой QTBT, или раздельного кодирования яркости / цветности.
Совместное кодирование цветового компонента для режима CPR
Когда режим CPR включен для текущего изображения, кодирование яркости и цветности (или R/G/B) по отдельности отключается. Другими словами, совместное кодирование яркости и цветности (или R/G/B) используется, когда включен режим CPR. Использование режима CPR может указываться синтаксисом высокого уровня, таким как pps_curr_pic_ref_enabled_flag в PPS (множество параметров изображения), который равен true. В этом случае компоненты яркости и цветности будут кодироваться совместно, как в случае P- или B-срезом. Другими словами, одна и та же структура ячейки кодирования (CU) используется для разделения компонентов яркости и цветности области изображения. Кроме того, один и тот же вектор движения (MV) или блок-вектор (BV) для компонентов яркости и цветности области изображения используется для определения местоположения эталонных данных.
В другом варианте осуществления изобретения используется кодирование яркости и цветности (или R/G/B) по отдельности, режим CPR выключен. Другими словами, компоненты яркости и цветности кодируются с использованием режима кодирования, выбранного из группы кодирования, исключая режим CPR.
Другими словами, использование режима CPR и кодирования яркости и цветности (или R/G/B) по отдельности не будет происходить одновременно в соответствии с вышеуказанными вариантами осуществления.
Раздельное кодирование CPR для яркости и цветности
Когда яркость и цветность кодируются по отдельности, используется отдельное кодирование CPR для компонентов яркости и цветности в соответствии с другим вариантом осуществления. Например, для кодирования компонента яркости, MV блоков яркости, кодированных в режиме CPR, относятся только к реконструированному изображению. Для кодирования компонента цветности MV блоков цветности, кодированных в режиме CPR, относятся к реконструированному изображению U/V (или Cb/Cr). Например, область изображения яркости (например, срез яркости или ячейка кодового дерева, CTU) может быть разделена на блоки яркости, используя первую структуру CU, и область изображения цветности (например, срез цветности или ячейка кодового дерева, CTU) может быть разделена на блоки цветности, используя вторую структуру CU. Если блоки яркости области изображения яркости имеют первые MV, а блоки цветности области изображения цветности имеют вторые MV, у CU/PU яркости и цветности могут быть разные MV. Другими словами, первые MV и вторые MV могут отличаться.
Прогнозирование MV для CU цветности, кодированной в режиме CPR
Когда компоненты яркости и цветности кодируются по отдельности, и для компонентов яркости и цветности используется отдельное кодирование CPR, MV от MV яркости или масштабированного MV яркости (если компонент яркости с отличным от компонента цветности разрешением) используется для кодирования MV блока цветности (например, CU/PU) в соответствии с вариантом осуществления настоящего изобретения. Например, когда CU/PU цветности кодируется с использованием режима CPR, если соотнесенные CU/PU яркости кодируется в режиме CPR, MV яркости или масштабированный MV яркости могут быть непосредственно использованы для CU/PU цветности или могут быть использованы в качестве предиктора MV (MVP) для CU/PU цветности. Кроме того, luma_merge_flag может сигнализироваться для указания того, используется ли MV яркости или масштабированный MV яркости непосредственно для текущей CU/PU цветности. Luma_merge_flag также может условно сигнализироваться. Например, он сигнализируется только тогда, когда соотнесенные CU/PU яркости кодируются в режиме CPR. В другом примере luma_merge_flag всегда сигнализируется для указания того, кодируется ли текущая CU/PU цветности в режиме CPR, и MV копируется из масштабированного MV яркости. В этом примере, если соотнесенная CU/PU яркости не кодируется в режиме CPR, может быть использован MV. MV по умолчанию может быть (-w, 0), (0, -h), (-w, -h), (-2w, 0), (0, -2h) или любым другим заранее заданным MV, где w — ширина CU или ширина PU, а h — высота CU или высота PU.
В другом примере luma_merge_flag всегда сигнализируется, когда режим объединения применяется для CU/PU цветности. Например, luma_merge_flag всегда сигнализируется, когда merge_flag или skip_flag равно true для компонента цветности.  В этом примере, если соотнесенная CU/PU яркости не кодируется в режиме CPR, может быть использован MV. MV по умолчанию может быть (-w, 0), (0, -h), (-w, -h), (-2w, 0), (0, -2h) или любым другим заранее заданным MV, где w — ширина CU или ширина PU, а h — высота CU или высота PU.
В другом варианте осуществления MV яркости или масштабированный MV яркости соотнесенного блока яркости может быть использован в качестве MVP. Он может быть вставлен в список кандидатов объединения и / или список кандидатов AMVP. Он может быть вставлен в место первого кандидата (то есть в ведущее местоположение) в списке. Отсечение MV может быть применено для последующих кандидатов. Если соотнесенная CU/PU яркости не кодируется в режиме CPR, кандидат может быть удален или в качестве кандидата используется MV по умолчанию. MV по умолчанию может быть (-w, 0), (0, -h), (-w, -h), (-2w, 0), (0, -2h) или любым другим заранее заданным MV, где w — ширина CU или ширина PU, а h — высота CU или высота PU.
В другом варианте осуществления MV яркости или масштабированный MV яркости соотнесенного блока яркости текущего соседнего блока цветности может быть использован в качестве MVP. Он может быть вставлен в список кандидатов Объединения (Merge) и / или список кандидатов AMVP. Если соотнесенная CU/PU яркости не кодируется в режиме CPR, кандидат может быть удален или в качестве кандидата используется MV по умолчанию.
В другом варианте осуществления MV яркости или масштабированный MV яркости соотнесенного блока яркости может быть использован в качестве временного соотнесенного MVP.
Соотнесенный кандидат цветовой плоскости
Когда блок в цветовой плоскости кодируется, декодер может извлекать соотнесенных кандидатов цветовой плоскости, чтобы спрогнозировать вектор движения текущего блока. Соотнесенные кандидаты цветовой плоскости получаются из других цветовых плоскостей в том же кадре. На фиг. 10 показан пример деривации кандидата соотнесенной цветовой плоскости из других цветовых плоскостей в том же кадре, где (Y1, U1, V1) и (Y2, U2, V2) — это цветовые плоскости двух последовательных кадров. При кодировании блока в U2 соотнесенный кандидат цветовой плоскости может быть получен из Y2. Следует отметить, что декодер также может получать соотнесенных временных кандидатов из предыдущих кадров, кодированных в HEVC. Новые полученные соотнесенные кандидаты цветовой плоскости могут быть вставлены в список кандидатов вместе с другими кандидатами в HEVC. Цветовая плоскость U/V (или Cb/Cr) на фиг. 10 может быть скомбинирована. Например, она может быть изменена на четыре изображения, соответствующие (Y1, U1 + V1) и (Y2, U2 + V2).
В другом варианте осуществления, когда кодируется изображение цветности, кодированное поле MV яркости может быть использовано в качестве поля MV временного соотнесенного изображения. Первоначальный способ кодирования MV в совместном кодировании цветового компонента может быть применен для кодирования цветности изображения.
В другом варианте осуществления при кодировании цветности кодированное поле MV яркости копируется в текущее реконструированное изображение. Когда CU/PU декодируется, реконструированные образцы и MV обновляются. Первоначальный способ кодирования MV в совместном кодировании цветового компонента может быть применен для кодирования цветности изображения.
Режим LM для CPR
Поскольку изображения яркости и цветности кодируются по отдельности, может быть применено межцветовое прогнозирование для генерации нового прогнозируемого изображения для кодирования. Например, при декодировании изображения цветности декодированное изображение яркости может быть использовано для генерации нового прогнозирования виртуального изображения цветности. Может быть использована генерация прогнозирования в режиме LM-подобного режима яркости, как описано в программном обеспечении на основе HM (HEVC Test Model) / JEM (Joint Exploration Model), где prediction_sample = a*source_sample + b. Параметры a и b могут сигнализироваться в SPS / PPS / SliceHeader. Декодированное поле MV яркости может быть масштабировано как поле MV сгенерированного нового виртуального изображения цветности. Может быть применено двойное прогнозирование. Например, одно изображение может быть текущим реконструированным изображением цветности, а другое изображение может быть виртуальным изображением цветности. При использовании виртуального изображения цветности может быть снято ограничение области прогнозирования в форме лестницы в HEVC-SCC.
Ограничения эталонной области CPR для QTBT
Когда QTBT используется с CU, равной PU, существует только один блок прогнозирования на CU. Ограничения, указанные в уравнениях (1) ... (3), изменяются следующим образом:
BV_x + offsetX + nPbSw <= 0, (1’)
BV_y + offsetY + nPbSh <= 0, (2’)
(xPbs + BV_x + offsetX + nPbSw - 1) / CtbSizeY - xPbs / CtbSizeY <=
yPbs / CtbSizeY - (yPbs + BV_y + offsetY + nPbSh - 1) / CtbSizeY. (3’)
Вышеуказанные модифицированные уравнения также применяются к случаю использования структуры ячейки кодирования (CU) для генерации CU, где каждая CU соответствует одной PU. Когда три цветовых компонента изображения кодируются по отдельности, где у U/V цветности есть независимый блок-вектор, переменные offsetX и offsetY могут быть заданы равными 0.
Раскрытые выше изобретения могут быть встроены в различные системы кодирования или декодирования видео в различных формах. Например, изобретения могут быть реализованы с использованием аппаратных подходов, таких как специализированные интегральные схемы (IC), программируемая пользователем логическая матрица (FPGA), цифровой сигнальный процессор (DSP), центральный процессор (CPU) и т. д. Изобретения также могут быть реализованы с использованием программных кодов или кодов микропрограммного обеспечения, исполняемых на компьютере, ноутбуке или мобильном устройстве, таком как смартфоны. Кроме того, программные коды или коды микропрограммного обеспечения могут выполняться на платформе смешанного типа, такой как ЦП с выделенными процессорами (например, модуль видеокодирования видео или сопроцессор).
На фиг. 11 показана блок-схема примерной системы с режимом кодирования с привязкой к текущему изображению (CPR) в соответствии с вариантом осуществления настоящего изобретения, где блоки яркости и цветности текущего изображения совместно кодируются с использованием одной и той же структуры ячейки кодирования (CU), если режим CPR выбран для блоков яркости и цветности, или если компоненты яркости и цветности разделены на блоки яркости и цветности по отдельности с использованием отдельных структур CU, блоки яркости и цветности кодируются или декодируются с использованием режима кодирования, выбранного из группы режимов кодирования, исключая режим CPR. Шаги, показанные на блок-схеме, а также другие блок-схемы в этом раскрытии могут быть реализованы в виде программных кодов, исполняемых на одном или нескольких процессорах (например, одном или нескольких ЦП) на стороне кодировщика и / или декодировщика. Шаги, показанные на блок-схеме, также могут быть реализованы на базе аппаратных средств, таких как одно или более электронных устройств или процессоров, реализованных с возможностью выполнения шагов, показанных на блок-схеме. В соответствии с этим способом входные данные, связанные с текущим изображением, получены на шаге 1110, где текущая область изображения содержит компонент яркости и один или более компонентов цветности. На стороне кодировщика входные данные могут соответствовать видеоданным для кодирования. На стороне декодера входные данные могут соответствовать сжатым видеоданным для декодирования. На шаге 1120, когда включен режим привязки к текущему изображению (CPR), компонент яркости и этот один или более компонентов цветности области изображения совместно разделяются на блоки яркости и блоки цветности с использованием одной и той же структуры ячейки кодирования (CU), и кодирование CPR применяется к блокам яркости и блокам цветности совместно, если режим CPR выбран для блоков яркости и блоков цветности, или когда компонент яркости и этот один или более компонентов цветности области изображения разделены на блоки яркости и блоки цветности по отдельности с использованием отдельных структур CU, блоки яркости и блоки цветности кодируются или декодируются с использованием режима кодирования, выбранного из группы режимов кодирования, исключая режим CPR. Блоки яркости и блоки цветности кодируются с использованием эталонных данных в текущем изображении, если режим CPR выбран для блоков яркости и блоков цветности. Когда структура ячейки кодирования (CU) используется для разделения изображения, изображение обычно разделяется на срезы, плитки, строки CTU или CTU, и структура ячейки кодирования (CU) применяется к CTU для генерации CU, PU и TU для процесса кодирования. Структура дерева квадрантов плюс двоичное дерево (QTBT) может быть использована в качестве структуры ячейки кодирования (CU).
На фиг. 12 показана блок-схема примерной системы кодирования с привязкой к текущему изображению (CPR) в соответствии с вариантом осуществления настоящего изобретения, где блоки яркости и цветности текущего изображения кодируются по отдельности с использованием другой структуры CU, если CPR режим выбран для блоков яркости и цветности. В соответствии с этим способом входные данные, связанные с текущим изображением, получены на шаге 1210, где область изображения содержит компонент яркости и один или более компонентов цветности. Компонент яркости и этот один или более компонентов цветности области изображения разделяются по отдельности на блоки яркости и блоки цветности с использованием отдельных структур CU на шаге 1220. Кодирование CPR применяется к блокам яркости или блокам цветности по отдельности, если режим CPR выбран для блоков яркости или блоков цветности на шаге 1230. Например, кодирование CPR может относиться только к эталонным данным с реконструкцией по яркости с использованием векторов движения (MV) блоков яркости для кодирования компонента яркости, и кодирование CPR может относиться только к эталонным данным с реконструкцией по цветности с использованием векторов движения (MV) блоков цветности для кодирования компонента цветности.
На фиг. 13 показана блок-схема примерной системы кодирования с привязкой к текущему изображению (CPR) в соответствии с вариантом осуществления настоящего изобретения, где эталонные данные для текущего блока ограничены реконструированными данными, доступными перед прогнозированием текущей ячейки кодового дерева (CTU), содержащей текущий блок, если выбран режим CPR для блоков яркости и цветности. В соответствии с этим вариантом осуществления входные данные, связанные с текущим изображением, получены на шаге 1310, где текущее изображение содержит компонент яркости и один или более компонентов цветности. Компонент яркости и этот один или более компонентов цветности текущего изображения разделяются на блоки яркости и блоки цветности с использованием структур ячейки кодирования (CU) на шаге 1320, где ячейка кодирования (CU) равна ячейке прогнозирования (PU). На шаге 1330, когда режим привязки к текущему изображению (CPR) применяется к блокам яркости и блокам цветности, эталонные данные для текущего блока ограничены реконструированными данными, доступными перед прогнозированием текущей ячейки кодирования (CU), содержащей текущий блок, в соответствии с в BV_x + offsetX + nPbSw <= 0 или BV_y + offsetY + nPbSh <= 0. Текущий блок соответствует текущему блоку яркости или текущему блоку цветности, (BV_x, BV_y) соответствует текущему блок-вектору (BV) компонента яркости текущего блока, (offsetX, offsetY) — два скорректированных смещения с учетом интерполяции образца цветности для режима CPR, а nPbSw и nPbSh — ширина и высота текущего блока, и где offsetX и offsetY равны 0, если компонент яркости и этот один или более компонентов цветности текущего изображения по отдельности разделены на блоки яркости и блоки цветности с использованием отдельных структур ячейки кодирования (CU).
Показанные блок-схемы предназначены только для иллюстрации примера видеокодирования в соответствии с настоящим изобретением. Специалист в данной области техники может модифицировать любой шаг, поменять порядок шагов, разделить шаг или скомбинировать шаги при практическом применении настоящего изобретения, без отдаления от сущности настоящего изобретения. В раскрытии конкретный синтаксис и семантика были использованы для иллюстрации примеров осуществления реализации настоящего изобретения. Специалист в данной области техники может практиковать настоящее изобретение, заменяя синтаксис и семантику эквивалентным синтаксисом и семантикой, без отдаления от сущности настоящего изобретения.
Вышеуказанное раскрытие представлено, чтобы дать возможность специалисту в данной области техники практиковать настоящее изобретение, как это предусмотрено в контексте конкретной области применения и ее требований. Различные модификации раскрытого варианта осуществления будут понятны специалистам в данной области техники, и общие принципы, указанные здесь, могут быть применены к другим вариантам осуществления. Таким образом, данное изобретение не ограничено определенными показанными и раскрытыми вариантами осуществления, но может применяться в самой широкой области в соответствии с принципами и новыми функциями, раскрытыми здесь. В подробном раскрытии выше различные определенные детали показаны, чтобы обеспечить глубокое понимание настоящего изобретения. Несмотря на это, специалистам в данной области техники должно быть понятно, что данное изобретение может быть осуществлено.
Вариант осуществления настоящего изобретения, как описано выше, может быть реализован в различных аппаратных средствах, программных кодах или их сочетаниях. Например, вариантом осуществления настоящего изобретения может быть одна или более электронных схем, встроенных в микросхему сжатия видео, или программный код, интегрированный в программное обеспечение для сжатия видео, для выполнения раскрытой в настоящем документе обработки. Вариантом осуществления настоящего изобретения может быть также программный код для исполнения на цифровом сигнальном процессоре (DSP) для выполнения раскрытой в настоящем документе обработки. Изобретение также может включать в себя ряд функций, выполняемых компьютерным процессором, цифровым сигнальным процессором или микропроцессором, или программируемой логической интегральной схемой (FPGA). Эти процессоры могут быть реализованы с возможностью выполнения конкретных задач в соответствии с изобретением путем выполнения машиночитаемого программного кода или микропрограммного кода, который определяет конкретные способы, воплощенные в изобретении. Программный код или микропрограммный код может быть разработан на разных языках программирования и в разных форматах или стилях. Программный код также может быть скомпилирован для разных целевых платформ. Однако различные форматы кода, стили и языки программных кодов и другие средства конфигурирования кода для выполнения задач в соответствии с изобретением не будут отходить от сущности и объема изобретения.
Изобретение может быть осуществлено в других специальных формах без отступления от сущности или существенных характеристик. Раскрытые примеры следует рассматривать во всех отношениях только как иллюстративные и не имеющие ограничительного характера. Объем изобретения, таким образом, лучше всего отражается прилагаемой формулой изобретения, а не следующим раскрытием. Все изменения, относящиеся к значению и диапазону эквивалентности формулы изобретения, должны входить в их объем.