Перекрестная ссылка на родственную заявку
[1] Эта заявка испрашивает приоритет согласно § 119 Закона 35 Свода законов США по предварительной заявке США №62/817,517, поданной 12 марта 2019 г. в Бюро по патентам и товарным знакам США, раскрытие которой полностью включено в настоящий документ посредством ссылки.
Область техники, к которой относится изобретение
[2] Способы и устройства, соответствующие вариантам осуществления, относятся к обработке видео и, в частности, к кодированию или декодированию видеопоследовательности, которая может поддерживать различные форматы цветности (например, 4:4:4, 4:2:2) в универсальном кодировании видео (VVC).
Уровень техники
[3] Недавно Группа экспертов по кодированию видео (VCEG) Сектора стандартизации электросвязи МСЭ (ITU-T, МСЭ-Т), сектора Международного союза электросвязи (ITU, МСЭ), и МОС/МЭК MPEG (ISO/IEC MPEG) (JTC 1/SC 29/WG 11), Подкомитет по стандартизации Объединенного технического комитета ISO/IEC JTC 1 Международной организации по стандартизации (ISO) и Международной электротехнической комиссии (IEC) опубликовали стандарт H.265/High Efficiency Video Coding (Высокоэффективное кодирование видео, HEVC) в 2013 году (версия 1). Этот стандарт был обновлен в 2014 году до версии 2, в 2015 году до версии 3 ив 2016 году до версии 4.
[4] С тех пор они изучают потенциальную потребность в стандартизации будущих технологий кодирования видео с возможностью сжатия, которая значительно превосходит стандарт HEVC (включая его расширения). В октябре 2017 года они объявили совместный конкурс предложений по сжатию видео с возможностями, выходящими за рамки HEVC (CfP). К 15 февраля 2018 г. было подано в общей сложности 22 ответа CfP по стандартному динамическому диапазону (SDR), 12 ответов CfP по расширенному динамическому диапазону (HDR) и 12 ответов CfP по категориям видео 360 градусов, соответственно. В апреле 2018 года все полученные ответы CfP были оценены на 122-м заседании MPEG/10 JVET (Joint Video Exploration Team Joint Video Expert Team, Объединенная группа по исследованию видео - Объединенная команда видеоэкспертов). После тщательной оценки JVET официально запустил стандартизацию кодирования видео следующего поколения за пределами HEVC, то есть так называемое универсальное кодирование видео (VVC).
[5] Теперь будет описана структура разделения блоков HEVC. В HEVC единица дерева кодирования (CTU) может быть разделена на единицы кодирования (CU) с использованием структуры квадродерева, обозначенной как дерево кодирования, для адаптации к различным локальным характеристикам. Решение о том, кодировать ли область изображения с использованием межкадрового (временного) или внутрикадрового (пространственного) предсказания, может быть принято на уровне CU. Каждая CU может быть дополнительно разделена на одну, две или четыре единицы предсказания (PU) в соответствии с типом разделения PU. Внутри одной PU может применяться один и тот же процесс предсказания, и соответствующая информация может передаваться в декодер на основе PU. После получения остаточного блока путем применения процесса предсказания на основе типа разделения PU, CU может быть разделена на единицы преобразования (TU) в соответствии с другой структурой квадродерева, такой как дерево кодирования для CU. Особенностью структуры HEVC является то, что она может содержать множество концепций разделения, включая CU, PU и TU. В HEVC CU или TU обычно могут иметь только квадратную форму, в то время как PU может иметь квадратную или прямоугольную форму для блока с интерпредсказанием. В HEVC один блок кодирования может быть дополнительно разделен на четыре квадратных субблока, и преобразование может выполняться на каждом субблоке, то есть TU. Каждая TU может быть дополнительно рекурсивно разделена (с использованием разделения квадродерева) на меньшие TU. Это называется остаточным квадродеревом (RQT).
[6] На границе изображения HEVC использует неявное разделение квадродерева, так что блок будет разделять квадродерево до тех пор, пока размер не будет соответствовать границе изображения.
[7] Теперь будет описана структура разделения блоков с использованием квадродерева (QT) плюс двоичного дерева (ВТ). В HEVC CTU может быть разделена на CU с использованием структуры квадродерева, обозначенной как дерево кодирования, для адаптации к различным локальным характеристикам. Решение о том, кодировать ли область изображения с использованием межкадрового (временного) или внутрикадрового (пространственного) предсказания, может быть принято на уровне CU. Каждая CU может быть дополнительно разделена на одну, две или четыре PU в соответствии с типом разделения PU. Внутри одной PU может применяться один и тот же процесс предсказания, и соответствующая информация может передаваться в декодер на основе PU. После получения остаточного блока путем применения процесса предсказания на основе типа разделения PU, CU может быть разделена на единицы преобразования (TU) в соответствии с другой структурой квадродерева, такой как дерево кодирования для CU. Одной особенностью структуры HEVC является то, что она включает в себя множество концепций разделения, включая CU, PU и TU.
[8] Структура QTBT удаляет концепции множества типов разделения, т.е. устраняет разделение концепций CU, PU и TU и поддерживает большую гибкость форм разделения CU. В блочной структуре QTBT CU может иметь квадратную или прямоугольную форму. Как показано на фиг. 1А, единица дерева кодирования (CTU) сначала разделяется структурой квадродерева. Листовые узлы квадродерева затем могут быть дополнительно разделены структурой двоичного дерева. В разделении двоичным деревом может быть два типа разделения: симметричное горизонтальное разделение и симметричное вертикальное разделение. Листовые узлы двоичного дерева называются единицами кодирования (CU), и эта сегментация может использоваться для обработки предсказания и преобразования без какого-либо дальнейшего разделения. Это означает, что CU, PU и TU имеют одинаковый размер блока в структуре блока кодирования QTBT. В JEM CU может иногда состоять из блоков кодирования (СВ) разных цветовых компонент, например, одна CU может содержать один СВ яркости и два СВ цветности в случае Р- и В-слайсов формата цветности 4:2:0; и может содержать СВ одной компоненты, например, одна CU может содержать только один СВ яркости или только два СВ цветности в случае I-слайсов.
[9] Для схемы разделения QTBT определены следующие параметры:
размер CTU: размер корневого узла квадродерева, та же концепция, что и в HEVC;
MinQTSize: минимально допустимый размер листового узла квадродерева;
MaxBTSize: максимально допустимый размер корневого узла двоичного дерева;
MaxBTDepth: максимально допустимая глубина двоичного дерева;
MinBTSize: минимально допустимый размер листового узла двоичного дерева.
[10] В одном примере структуры разделения QTBT размер CTU может быть установлен как 128×128 отсчетов яркости с двумя соответствующими блоками 64×64 отсчетов цветности, MinQTSize может быть установлен как 16x16, MaxBTSize может быть установлен как 64×64, MinBTSize (как для ширины, так и для высоты) может быть установлен как 4×4, a MaxBTDepth может быть установлен как 4. Разделение квадродерева может быть применено сначала к CTU, чтобы сгенерировать листовые узлы квадродерева. Листовые узлы квадродерева могут иметь размер от 16×16 (то есть MinQTSize) до 128×128 (то есть размер CTU). Если листовой узел квадродерева имеет размер 128×128, он не будет далее разделяться двоичным деревом, поскольку размер превышает MaxBTSize (т.е. 64×64). В противном случае листовой узел квадродерева может быть дополнительно разделен двоичным деревом. Следовательно, листовой узел квадродерева может быть также корневым узлом для двоичного дерева и может иметь глубину двоичного дерева, равную 0. Когда глубина двоичного дерева достигает MaxBTDepth (т.е. 4), дальнейшее разделение не рассматривается. Если ширина узла двоичного дерева равна MinBTSize (т.е. 4), дальнейшее горизонтальное разделение не рассматривается. Точно так же, когда узел двоичного дерева имеет высоту, равную MinBTSize, дальнейшее вертикальное разделение не рассматривается. Листовые узлы двоичного дерева могут быть дополнительно обработаны с помощью обработки предсказания и преобразования без какого-либо дальнейшего разделения. В JEM максимальный размер CTU может составлять 256×256 отсчетов яркости.
[11] На фиг. 1А показан пример разделения блоков с использованием QTBT, а на фиг. 1В показано соответствующее представление дерева. Сплошные линии обозначают разделение квадродерева, а пунктирные линии обозначают разделение двоичного дерева. В каждом узле разделения (т.е. не листовом) двоичного дерева может быть передан один флаг, указывающий, какой тип разделения (т.е. горизонтальный или вертикальный) может использоваться, где 0 указывает горизонтальное разделение, а 1 указывает вертикальное разделение. Для разделения квадродерева нет необходимости указывать тип разделения, поскольку разделение квадродерева разделяет блок как по горизонтали, так и по вертикали, чтобы получить 4 субблока одинакового размера.
[12] Кроме того, схема QTBT поддерживает гибкость, позволяющую яркости и цветности иметь отдельную структуру QTBT. В настоящее время для Р- и В-слайсов СТВ яркости и цветности в одной CTU имеют одну и ту же структуру QTBT. Однако для I-слайсов СТВ яркости может быть разделен на CU структурой QTBT, а СТВ цветности может быть разделен на CU цветности другой структурой QTBT, а именно структурой DualTree (DT). Это означает, что CU в I-слайсе состоит из блока кодирования компоненты яркости или блоков кодирования двух компонент цветности, a CU в Р- или В-слайсе состоит из блоков кодирования всех трех цветовых компонент.
[13] В HEVC интерпредсказание для небольших блоков может быть ограничено, чтобы уменьшить доступ к памяти для компенсации движения, так что двойное предсказание не поддерживается для блоков 4×8 и 8×4, а интерпредсказание не поддерживается для блоков 4×4. В схеме QTBT, реализованной в JEM-7.0, эти ограничения могут быть сняты.
[14] Теперь будет описано разделение блоков с использованием троичных деревьев (ТТ). Была предложена структура с разнотипным деревом (МТТ). МТТ - более гибкая структура дерева, чем QTBT. В МТТ, кроме квадродеревьев и бинарных деревьев, вводятся горизонтальные и вертикальные тройные деревья по центру, как показано на фиг. 2А и 2В.
[15] Некоторые преимущества разделения троичного дерева включают в себя:
обеспечение дополнения к разделению квадродерева и двоичного дерева;
разделение тройного дерева может захватывать объекты, расположенные в центре блока, в то время как квадродерево и двоичное дерево могут быть разделены по центру блока;
ширина и высота разделений тройных деревьев может быть степенью 2, так что дополнительные преобразования не требуются;
структура двухуровневых деревьев в основном обусловлена снижением сложности;
теоретически, сложность обхода дерева равна TD, где Т обозначает количество типов разделения, a D - глубину дерева.
[16] Теперь будут описаны форматы YUV. Разные форматы YUV, то есть форматы цветности, показаны на фиг. 3. Разные форматы цветности определяют разные сетки понижающей дискретизации разных цветовых компонент.
[17] Теперь будет описано кросс-компонентное линейное моделирование (CCLM). В VTM для компоненты цветности внутренней PU кодер выбирает лучшие режимы предсказания цветности среди 8 режимов, включая Плоскостной, DC, Горизонтальный, Вертикальный, прямую копию режима интрапредсказания (DM) из компоненты яркости, Линейный Режим с Левым и Верхним Перекрестными Компонентами (LT_CCLM), Линейный Режим с Левой Перекрестной Компонентой (L_CCLM) и Линейный Режим с Верхней Перекрестной Компонентой (T_CCLM). Из этих режимов LT_CCLM, L_CCLM и T_CCLM можно отнести к категории кросс-компонентных линейных режимов (CCLM). Разница между этими тремя режимами состоит в том, что для получения параметров α и β могут быть использованы разные области соседних отсчетов. Для LT_CCLM как левые, так и верхние соседние отсчеты могут использоваться для получения параметров α и β. Для L_CCLM только левые соседние отсчеты используются для получения параметров α и β. Для Т_CCLM только верхние соседние отсчеты используются для получения параметров α и β.
[18] Режимы предсказания кросс-компонентной линейной модели (CCLM) могут использоваться для уменьшения кросс-компонентной избыточности, в которых отсчеты цветности могут быть предсказаны на основе восстановленных отсчетов яркости одной и той же CU с использованием линейной модели следующим образом:
[19] Здесь predc(i, j) представляет предсказанные отсчеты цветности в CU, а recL'(i, j) представляет имеющие пониженную дискретизацию восстановленные отсчеты яркости той же CU. Параметры аир могут быть получены с помощью уравнения прямой, например, методом максимум-минимум. Этот процесс вычисления может выполняться как часть процесса декодирования, а не только как операция поиска кодера, поэтому для передачи значений α и β не используется синтаксис.
[20] Для формата цветности 4:2:0 предсказание CCLM применяет шестиступенчатый интерполяционный фильтр, чтобы получить отсчет яркости с пониженной дискретизацией, соответствующий отсчету цветности, как показано на фиг. 3. Здесь отсчет яркости Rec'L[x, у] с пониженной дискретизацией может быть вычислен из восстановленных отсчетов яркости.
[21] Отсчеты яркости с пониженной дискретизацией могут использоваться для нахождения максимальной и минимальной точек отсчета. Две точки (пара яркости и цветности) (А, В) могут быть минимальным и максимальным значениями внутри набора соседних отсчетов яркости, как показано на фиг. 4. Где параметры линейной модели α и β могут быть получены в соответствии со следующим уравнением:
[22] Здесь деления можно избежать и заменить умножением и сдвигом. Для хранения предварительно вычисленных значений может использоваться справочная таблица (LUT), а значения абсолютной разницы между максимальным и минимальным отсчетом яркости могут использоваться для указания индекса входа LUT, а размер LUT может быть 512.
[23] В режиме T_CCLM только соседние отсчеты (включая 2*W отсчетов), показанные на фиг. 5А и 5В, могут использоваться для вычисления коэффициентов линейной модели.
[24] В режиме L_CCLM только левые соседние отсчеты (включая 2*Н отсчетов) могут использоваться для вычисления коэффициентов линейной модели, как показано на фиг. 6А и 6В.
[25] Режим предсказания CCLM также включает в себя предсказание между двумя компонентами цветности, т.е. компонента Cr может быть предсказана из компоненты Cb. Вместо использования сигнала восстановленного отсчета, предсказание CCLM Cb-в-Cr может применяться в остаточной области. Это может быть реализовано путем добавления взвешенного восстановленного остатка Cb к исходному интрапредсказанию Cr для формирования окончательного предсказания Cr:
[26] Режим предсказания CCLM яркость-в-цветность может быть добавлен как один дополнительный режим интрапредсказания цветности. На стороне кодера может быть добавлена еще одна проверка стоимости RD для компонент цветности для выбора режима интрапредсказания цветности. Когда режимы интрапредсказания Cb, отличные от режима предсказания CCLM яркость-в-цветность, могут использоваться для компонент цветности CU, предсказание CCLM Cb-в-Cr может использоваться для предсказания компоненты Cr.
[27] Множественная модель CCLM (MMLM) - еще одно расширение CCLM. Как указано в названии, в MMLM может быть более одной модели, например, могут использоваться две модели. В MMLM соседние отсчеты яркости и соседние отсчеты цветности текущего блока могут быть отнесены к двум группам, причем каждая группа может использоваться в качестве обучающего набора для получения линейной модели (т.е. конкретные α и β могут быть получены для конкретной группы). Кроме того, отсчеты текущего блока яркости также могут быть классифицированы на основе того же правила классификации соседних отсчетов яркости.
[28] На фиг. 8 показан пример отнесения соседних отсчетов к двум группам. Порог (Threshold) может быть вычислен как среднее значение соседних восстановленных отсчетов яркости. Соседний отсчет с Rec'L[x, y] <= Threshold может быть отнесен к группе 1; в то время как соседний отсчет с Rec'L[x, у] > Threshold может быть отнесен к группе 2:
[29] Теперь будет описано аффинное предсказание с компенсацией движения. В HEVC для предсказания с компенсацией движения (МСР) может применяться модель поступательного движения. Однако может быть много видов движения, например увеличение/уменьшение, вращение, перспективные движения и другие неравномерные движения. В VTM4 может применяться аффинное предсказание с компенсацией движения с преобразованием на основе блоков. Как показано на фиг. 9, поле аффинного движения блока может быть описано с помощью информации о движении двух векторов движения контрольной точки (4 параметра) или трех векторов движения контрольной точки (6 параметров).
[30] Для 4-параметрической модели аффинного движения вектор движения в местоположении отсчета (х, у) в блоке может быть получен как:
[31] Для 6-параметрической модели аффинного движения вектор движения в местоположении отсчета (х, у) в блоке может быть получен как:
[32] Здесь mv0x, mv0y представляют собой вектор движения контрольной точки верхнего левого угла, mv1x, mv1y представляют собой вектор движения контрольной точки верхнего правого угла, a2x, mv2y представляют собой вектор движения контрольной точки нижнего левого угла.
[33] Чтобы упростить предсказание с компенсацией движения, может применяться аффинное предсказание с преобразованием на основе блоков. Чтобы получить векторы движения каждого субблока яркости 4×4, вектор движения центрального отсчета каждого субблока, как показано на фиг. 10, может быть вычислен в соответствии с приведенными выше уравнениями и округлен с точностью до 1/16 доли. Затем могут применяться интерполяционные фильтры компенсации движения для генерации предсказания каждого субблока с полученным вектором движения. Размер субблока компонент цветности также может быть установлен равным 4×4. MV субблока цветности 4×4 может быть вычислен как среднее значение MV четырех соответствующих субблоков яркости 4×4. Как и для интерпредсказания поступательного движения, может быть также два аффинного режима интерпредсказания движения: режим аффинного слияния и режим аффинного AMVP.
[34] Теперь будет описано предсказание аффинного слияния. Режим AF_MERGE может применяться для CU с шириной и высотой больше или равной 8. В этом режиме CPMV текущей CU может быть сгенерирован на основе информации о движении пространственно соседних CU. Может быть до пяти кандидатов CPMVP, и может быть передан индекс, чтобы указать тот, который будет использоваться для текущей CU. Следующие три типа кандидатов CPMV могут использоваться для формирования списка кандидатов на аффинное слияние:
(1) унаследованные кандидаты на аффинное слияние, экстраполированные из CPMV соседних CU;
(2) построенные кандидаты CPMVP на аффинное слияние, которые могут быть получены с использованием поступательных MV соседних CU; и
(3) нулевые MV.
[35] В VTM4 может быть максимум два унаследованных аффинных кандидата, которые могут быть получены из модели аффинного движения соседних блоков, один из левых соседних CU и один из расположенных выше соседних CU. Блоки-кандидаты показаны на фиг. 11. Для левого предиктора порядок сканирования может быть А0->А1, а для расположенного выше предиктора порядок сканирования может быть В0->В1->В2. Может быть выбран первый унаследованный кандидат с каждой стороны. Между двумя унаследованными кандидатами не требуется выполнять проверку отсечения. Когда определяется соседняя аффинная CU, ее векторы движения контрольной точки могут использоваться для получения кандидата CPMVP в списке аффинного слияния текущей CU. Как показано на фиг. 12, если соседний левый нижний блок А кодируется в аффинном режиме, могут быть получены векторы движения v2, v3 и v4 верхнего левого угла, расположенного выше правого угла и левого нижнего угла CU, которая содержит блок А. Когда блок А кодируется с помощью 4-параметрической аффинной модели, два CPMV текущей CU могут быть вычислены в соответствии с v2 и v3. В случае если этот блок А может быть кодирован с помощью 6-параметрической аффинной модели, три CPMV текущей CU могут быть вычислены согласно v2, v3 и v4.
[36] Построенный аффинный кандидат означает, что кандидат может быть построен путем объединения информации о поступательном движении соседа каждой контрольной точки. Информация о движении для контрольных точек может быть получена из указанных пространственных соседей и временных соседей, показанных на фиг. 13. CPMVk (k=1, 2, 3, 4) представляет k-ю контрольную точку. Для CPMV1 могут быть проверены блоки В2->В3->А2, и может использоваться MV первого доступного блока. Для CPMV2 могут быть проверены блоки В1->В0, а для CPMV3 могут быть проверены блоки А1->А0. Для TMVP используется как CPMV4, если доступен.
[37] После получения MV четырех контрольных точек на основе этой информации о движении могут быть построены кандидаты на аффинное слияние. Следующие комбинации MV контрольной точки могут быть использованы для построения по порядку: {CPMV1, CPMV2, CPMV3}, {CPMV1, CPMV2, CPMV4}, {CPMV1, CPMV3, CPMV4}, {CPMV2, CPMV3, CPMV4}, {CPMV1, CPMV2} и {CPMV1, CPMV3}.
[38] Комбинация 3 CPMV обеспечивает построение 6-параметрического кандидата на аффинное слияние, а комбинация 2 CPMV обеспечивает построение 4-параметрического кандидата на аффинное слияние. Чтобы избежать процесса масштабирования движения, если опорные индексы контрольных точек отличаются, связанная комбинация MV контрольных точек может быть отброшена.
[39] После того, как унаследованные кандидаты на аффинное слияние и построенные кандидаты на аффинное слияние могут быть проверены, если список все еще не полон, в конец списка могут быть вставлены нулевые MV.
[40] Теперь будет описано предсказание аффинного AMVP. Режим аффинного AMVP может применяться для CU с шириной и высотой больше или равной 16. Аффинный флаг на уровне CU может передаваться в битовом потоке, чтобы указать, может ли использоваться режим аффинного AMVP, а другой флаг может передаваться, чтобы указать, должно ли использоваться 4-параметрическое аффинирование или 6-параметрическое аффинирование. В этом режиме разность CPMV текущей CU и CPMVP их предикторов может передаваться в битовом потоке. Размер списка кандидатов аффинного AMVP может быть 2, и он может быть сгенерирован с использованием следующих четырех типов кандидатов CPMV по порядку:
(1) унаследованные кандидаты аффинного AMVP, которые могут быть экстраполированы из CPMV соседних CU;
(2) CPMVP построенных кандидатов аффинного AMVP, которые могут быть получены с использованием поступательных MV соседних CU;
(3) поступательные MV из соседних CU; и
(4) нулевые MV.
[41] Порядок проверки унаследованных кандидатов аффинного AMVP может быть таким же, как порядок проверки унаследованных кандидатов аффинного слияния. Разница в том, что для кандидата AMVP может рассматриваться аффинная CU, которая имеет то же опорное изображение, что и в текущем блоке. При вставке унаследованного предиктора аффинного движения в список кандидатов не требуется никакого процесса отсечения.
[42] Построенный кандидат AMVP может быть получен из указанных пространственных соседей, показанных на фиг. 13. Может быть использован тот же порядок проверки, что и при построении кандидата на аффинное слияние. Кроме того, также может проверяться индекс опорного изображения соседнего блока. Может использоваться первый блок в порядке проверки, который может быть подвергнут интеркодированию и имеет то же опорное изображение, что и в текущих CU. Когда текущая CU кодируется в 4-параметрическом аффинном режиме, и mv0 и mv1 могут быть оба доступны, они могут быть добавлены как один кандидат в список аффинных AMVP. Когда текущая CU кодирована в 6-параметрическом аффинном режиме и доступны все три CPMV, они могут быть добавлены как один кандидат в список аффинных AMVP. В противном случае построенный кандидат AMVP устанавливается как недоступный.
[43] Если после проверки унаследованных кандидатов аффинных AMVP и построенного кандидата AMVP число кандидатов списка аффинных AMVP по-прежнему меньше 2, будут добавлены mv0, mv1 и mv2, в порядке, в качестве поступательных MV для предсказания всех MV контрольных точек текущей CU, при доступности. Наконец, могут быть использованы нулевые MV для заполнения списка аффинных AMVP, если он еще не заполнен.
[44] Теперь будет описано хранение информации об аффинном движении. В VTM4 CPMV аффинных CU могут храниться в отдельном буфере. Сохраненные CPMV могут использоваться для генерации унаследованных CPMVP в режиме аффинного слияния и в режиме аффинного AMVP для недавно кодированных CU. MV субблока, полученные из CPMV, могут использоваться для компенсации движения, получения MV из списка слияния/AMVP поступательных MV и деблокирования.
[45] Чтобы избежать буфера строки изображения для дополнительных CPMV, наследование данных аффинного движения от CU из расположенной выше CTU может обрабатываться иначе, чем наследование от обычных соседних CU. Если CU-кандидат для наследования данных аффинного движения находится в расположенной выше строке CTU, для получения аффинного MVP вместо CPMV могут использоваться нижний левый и нижний правый MV субблока в буфере строки. Таким образом, CPMV могут храниться в локальном буфере. Если CU-кандидат был подвергнут 6-параметрическому аффинному кодированию, аффинная модель может быть понижена до 4-параметрической модели. Как показано на фиг. 14, вдоль верхней границы CTU, для аффинного наследования CU в нижних CTU могут использоваться нижний левый и нижний правый векторы движения субблока CU.
[46] Несмотря на вышеописанные достижения, в VTM-4.0 MV субблока цветности 4×4 в подверженном аффинному кодированию блоке кодирования вычисляется как среднее значение MV четырех соответствующих субблоков яркости 4×4. Однако для форматов цветности 4:4:4 и 4:2:2, где каждый субблок цветности 4×4 связан только с одним или двумя субблоками яркости 4×4, текущая схема получения MV для компоненты цветности 4×4 оставляет место для улучшения, чтобы приспособиться к форматам цветности 4:4:4 и 4:2:2.
Раскрытие сущности изобретения
[47] Согласно аспекту раскрытия, способ кодирования или декодирования видеопоследовательности может включать: кодирование или декодирование видеопоследовательности с использованием формата цветности 4:4:4 или кодирование или декодирование видеопоследовательности с использованием формата цветности 4:2:2, причем при кодировании или декодировании видеопоследовательности с использованием формата цветности 4:4:4 способ может дополнительно содержать копирование аффинного вектора движения одного блока цветности 4×4 с использованием операции, отличной от операции усреднения, и связывание аффинного вектора движения с совместно расположенным блоком цветности 4×4, причем при кодировании или декодировании видеопоследовательности с использованием формата цветности 4:2:2, способ может дополнительно содержать связывание каждого блока цветности 4×4 с двумя совместно расположенными блоками яркости 4×4 так, чтобы аффинный вектор движения одного блока цветности 4×4 представлял собой среднее значение векторов движения двух совместно расположенных блоков яркости.
[48] Согласно аспекту раскрытия, способ может дополнительно содержать, независимо от формата цветности, разделение текущего блока цветности 4x4 на четыре субблока 2×2, получение первого аффинного вектора движения совместно расположенного блока яркости для верхнего левого субблока цветности 2×2, получение второго аффинного вектора движения совместно расположенного блока яркости для нижнего правого субблока цветности 2×2 и получение аффинного вектора движения текущего блока цветности 4×4 с использованием среднего значения первого аффинного вектора движения и второго аффинного вектора движения.
[49] Согласно аспекту раскрытия, способ может содержать выравнивание интерполяционного фильтра, используемого для компенсации движения между компонентами яркости и цветности.
[50] Согласно этому аспекту раскрытия, когда видеопоследовательность вводится с использованием формата цветности 4:2:0, способ может дополнительно содержать применение 8-ступенчатого интерполяционного фильтра для компонент яркости и компонент цветности.
[51] Согласно аспекту раскрытия, способ может дополнительно содержать: кодирование, в виде трех отдельных деревьев, компонент Y, Cb и Cr, причем каждое дерево из трех отдельных деревьев кодирует одну компоненту из компонент Y, Cb и Cr..
[52] Согласно этому аспекту раскрытия кодирование в виде трех отдельных деревьев может выполняться для I-слайса или группы I-тайлов.
[53] Согласно аспекту раскрытия максимально допустимый размер преобразования может быть одинаковым для разных цветовых компонент.
[54] Согласно этому аспекту раскрытия, при кодировании или декодировании видеопоследовательности с использованием формата цветности 4:2:2 максимальный размер по вертикали может быть одинаковым среди различных цветовых компонент, а максимальный размер горизонтального преобразования для компонент цветности может составлять половину от максимального размера горизонтального преобразования для компонент яркости.
[55] Согласно аспекту раскрытия, по меньшей мере одно из комбинации позиционно-зависимых предикторов (PDPC), выбора множественного преобразования (MTS), неразделимого вторичного преобразования (NSST), внутреннего суб-разделения (ISP) и интрапредсказания с множественными опорными линиями (MRL) как к компоненте яркости, так и к компоненте цветности.
[56] Согласно этому аспекту раскрытия, когда интрапредсказание с множественными опорными линиями (MRL) применяется как к компоненте яркости, так и к компоненте цветности, и когда кодирование или декодирование видеопоследовательности выполняют с использованием формата цветности 4:4:4, способ может дополнительно содержать выбор N-й ссылки для интрапредсказания и использование той же опорной линии без явной передачи для компонент цветности; когда внутреннее суб-разделение (ISP) применяется как к компоненте яркости, так и к компоненте цветности, способ может дополнительно содержать применение внутреннего суб-разделения (ISP) на уровне блока для текущего блока для компонент Y, Cb и Cr; и когда для разных цветовых компонент используют разные деревья, способ может дополнительно содержать неявное получение параметров кодирования для компонент U и V из совместно расположенных компонент Y без передачи.
[57] Согласно аспекту раскрытия, устройство для кодирования или декодирования видеопоследовательности может содержать: по меньшей мере одну память, конфигурированную для хранения программного кода; по меньшей мере один процессор, конфигурированный для считывания программного кода и работы в соответствии с инструкциями программного кода, причем программный код включает в себя: первый код кодирования или декодирования, конфигурированный для побуждения по меньшей мере одного процессора кодировать или декодировать видеопоследовательность с использованием формата цветности 4:4:4, или кодировать или декодировать видеопоследовательность с использованием формата цветности 4:2:2, причем, когда первый код кодирования или декодирования конфигурирован для побуждения по меньшей мере одного процессора кодировать или декодировать видеопоследовательность с использованием формата цветности 4:4:4, первый код кодирования или декодирования может дополнительно содержать код, конфигурированный для побуждения по меньшей мере одного процессора копировать аффинный вектор движения одного блока цветности 4×4 с использованием операции, отличной от операции усреднения, и связывать аффинный вектор движения с совместно расположенным блоком цветности 4×4, причем, когда первый код кодирования или декодирования конфигурирован для побуждения по меньшей мере одного процессора кодировать или декодировать видеопоследовательность с использованием формата цветности 4:2:2, первый код кодирования или декодирования может дополнительно содержать код, конфигурированный для побуждения по меньшей мере одного процессора связывать каждый блок цветности 4×4 с двумя совместно расположенными блоками яркости 4×4 так, чтобы аффинный вектор движения одного блока цветности 4×4 представлял собой среднее значение векторов движения двух совместно расположенных блоков яркости.
[58] Согласно аспекту раскрытия, первый код кодирования или декодирования может дополнительно содержать код, конфигурированный для побуждения по меньшей мере одного процессора: разделять текущий блок цветности 4×4 на четыре субблока 2×2, получать первый аффинный вектор движения совместно расположенного блока яркости для верхнего левого субблока цветности 2×2, получать второй аффинный вектор движения совместно расположенного блока яркости для нижнего правого субблока цветности 2×2, и получать аффинный вектор движения текущего блока цветности 4×4 с использованием среднего значения первого аффинного вектора движения и второго аффинного вектора движения.
[59] Согласно аспекту раскрытия, первый код кодирования или декодирования может дополнительно содержать код, конфигурированный для побуждения по меньшей мере одного процессора выравнивать интерполяционный фильтр, используемый для компенсации движения, между компонентами яркости и цветности.
[60] Согласно этому аспекту раскрытия, когда первый код кодирования или декодирования конфигурирован для побуждения по меньшей мере одного процессора кодировать или декодировать видеопоследовательность с использованием формата цветности 4:2:0, первый код кодирования или декодирования может дополнительно содержать код, конфигурированный для побуждения по меньшей мере одного процессора применять 8-ступенчатый интерполяционный фильтр для компонент яркости и компонент цветности.
[61] Согласно аспекту раскрытия, первый код кодирования или декодирования может дополнительно содержать код, конфигурированный для побуждения по меньшей мере одного процессора кодировать, в виде трех отдельных дерева, компоненты Y, Cb и Cr, причем каждое дерево из трех отдельных деревьев кодирует одну компоненту из компонент Y, Cb и Cr.
[62] Согласно этому аспекту раскрытия, конфигурация для кодирования в виде трех отдельных деревьев может быть конфигурирована так, чтобы выполняться для I-слайса или группы I-тайлов.
[63] Согласно аспекту раскрытия, первый код кодирования или декодирования может дополнительно содержать код, конфигурированный для побуждения по меньшей мере одного процессора позволять максимальному размеру преобразования быть одинаковым для разных компонент цветности.
[64] Согласно этому аспекту раскрытия, когда первый код кодирования или декодирования конфигурирован для побуждения по меньшей мере одного процессора кодировать или декодировать видеопоследовательность с использованием формата цветности 4:2:2, первый код кодирования или декодирования может дополнительно содержать код, конфигурированный для побуждения по меньшей мере одного процессора устанавливать одинаковый максимальный размер по вертикали для разных цветовых компонент и устанавливать максимальный размер горизонтального преобразования для компонент цветности равным половине максимального размера горизонтального преобразования для компонент яркости.
[65] Согласно аспекту раскрытия, первый код кодирования или декодирования может дополнительно содержать код, конфигурированный для побуждения по меньшей мере одного процессора применять по меньшей мере одно из комбинации позиционно-зависимых предикторов (PDPC), выбора множественного преобразования (MTS), неразделимого вторичного преобразования (NSST), внутреннего суб-разделения (ISP) и интрапредсказания с множественными опорными линиями (MRL) как к компоненте яркости, так и к компоненте цветности.
[66] Согласно аспекту раскрытия, может быть предоставлен невременный машиночитаемый носитель, хранящий инструкции, причем инструкции содержат: одну или более инструкций, которые при выполнении одним или более процессоров устройства побуждают один или несколько процессоров кодировать или декодировать видеопоследовательность с использованием формата цветности 4:4:4 или кодировать или декодировать видеопоследовательность с использованием формата цветности 4:2:2, причем, когда инструкции, при выполнении одним или более процессоров устройства, побуждают один или более процессоров кодировать или декодировать видеопоследовательность с использованием формата цветности 4:4:4, инструкции, при выполнении одним или более процессоров устройства, дополнительно побуждают один или более процессоров копировать аффинный вектор движения одного блока цветности 4×4 с использованием операции, отличной от операции усреднения, причем, когда инструкции, при выполнении одним или более процессоров устройства, побуждают один или более процессоров кодировать или декодировать видеопоследовательность с использованием формата цветности 4:2:2, инструкции, при выполнении одним или более процессоров устройства, дополнительно побуждают один или более процессоров связывать каждый блок цветности 4×4 с двумя совместно расположенными блоками цветности 4×4 так, чтобы аффинный вектор движения одного блока цветности 4×4 представлял собой среднее значение векторов движения двух совместно расположенных блоков цветности.
[67] Хотя вышеописанные способы, устройства и невременные машиночитаемые носители были описаны отдельно, эти описания не предназначены для предложения каких-либо ограничений в отношении объема использования или их функциональных возможностей. Действительно, эти способы, устройства и невременные машиночитаемые носители могут быть объединены в других аспектах раскрытия.
Краткое описание чертежей
[68] Дополнительные признаки, сущность и различные преимущества раскрытого объекта изобретения будут более очевидны из следующего подробного описания и прилагаемых чертежей, на которых:
[69] фиг. 1А - схема разделенной единицы дерева кодирования в соответствии с вариантом осуществления;
[70] фиг. 1В - схема единицы дерева кодирования в соответствии с вариантом осуществления;
[71] фиг. 2А - схема единицы дерева кодирования в соответствии с вариантом осуществления;
[72] фиг. 2В - схема единицы дерева кодирования в соответствии с вариантом осуществления;
[73] фиг. 3 - схема различных форматов YUV в соответствии с вариантом осуществления;
[74] фиг. 4 - схема различных значений яркости в соответствии с вариантом осуществления;
[75] фиг. 5А - схема отсчетов, используемых в кросс-компонентном линейном моделировании в соответствии с вариантом осуществления;
[76] фиг. 5В - схема отсчетов, используемых в кросс-компонентном линейном моделировании в соответствии с вариантом осуществления;
[77] фиг. 6А - схема отсчетов, используемых в кросс-компонентном линейном моделировании в соответствии с вариантом осуществления;
[78] фиг. 6В - схема отсчетов, используемых в кросс-компонентном линейном моделировании в соответствии с вариантом осуществления;
[79] фиг. 7А - схема отсчетов, используемых в кросс-компонентном линейном моделировании в соответствии с вариантом осуществления;
[80] фиг. 7В - схема отсчетов, используемых в кросс-компонентном линейном моделировании в соответствии с вариантом осуществления;
[81] фиг. 8 - пример классификации с использованием множественной модели CCLM в соответствии с вариантом осуществления;
[82] фиг. 9А - пример поля аффинного движения блока в соответствии с вариантом осуществления;
[83] фиг. 9В - пример поля аффинного движения блока в соответствии с вариантом осуществления;
[84] фиг. 10 - пример поля аффинного вектора движения в соответствии с вариантом осуществления;
[85] фиг. 11 - пример блоков-кандидатов для предсказания в соответствии с вариантом осуществления;
[86] фиг. 12 - пример блоков-кандидатов для предсказания в соответствии с вариантом осуществления;
[87] фиг. 13 - пример блоков-кандидатов для предсказания в соответствии с вариантом осуществления;
[88] фиг. 14 - пример использования вектора движения в соответствии с вариантом осуществления;
[89] фиг. 15 - упрощенная блок-схема системы связи в соответствии с вариантом осуществления;
[90] фиг. 16 - схема потоковой среды в соответствии с вариантом осуществления;
[91] фиг. 17 - блок-схема видеодекодера в соответствии с вариантом осуществления;
[92] фиг. 18 - блок-схема видеокодера в соответствии с вариантом осуществления;
[93] фиг. 19 - блок-схема примерного процесса кодирования или декодирования видеопоследовательности в соответствии с вариантом осуществления; и
[94] фиг. 20 - схема компьютерной системы в соответствии с вариантом осуществления.
Осуществление изобретения
[95] На фиг. 15 проиллюстрирована упрощенная блок-схема системы (400) связи согласно варианту осуществления настоящего раскрытия. Система (400) связи может включать в себя по меньшей мере два терминала (410-420), соединенных между собой через сеть (450). Для однонаправленной передачи данных первый терминал (410) может кодировать видеоданные в локальном местоположении для передачи другому терминалу (420) через сеть (450). Второй терминал (420) может принимать кодированные видеоданные другого терминала из сети (450), декодировать кодированные данные и отображать восстановленные видеоданные. Однонаправленная передача данных может быть обычным явлением в приложениях обслуживания мультимедиа и т.п.
[96] На фиг. 15 показана вторая пара терминалов (430, 440), обеспечивающая поддержку двунаправленной передачи кодированного видео, которая может происходить, например, во время видеоконференц-связи. Для двунаправленной передачи данных каждый терминал (430, 440) может кодировать видеоданные, захваченные в локальном местоположении, для передачи другому терминалу через сеть (450). Каждый терминал (430, 440) также может принимать кодированные видеоданные, переданные другим терминалом, может декодировать кодированные данные и может отображать восстановленные видеоданные на локальном устройстве отображения.
[97] На фиг. 15 терминалы (410-440) могут быть изображены как серверы, персональные компьютеры и смартфоны, но принципы настоящего раскрытия не ограничены этим. Варианты осуществления настоящего раскрытия находят применение в портативных компьютерах, планшетных компьютерах, медиаплеерах и/или специализированном оборудовании для видеоконференц-связи. Сеть (450) представляет собой любое количество сетей, которые передают кодированные видеоданные между терминалами (410-440), включая, например, сети проводной и/или беспроводной связи. Сеть (450) связи может обмениваться данными в каналах с коммутацией каналов и/или с коммутацией пакетов. Репрезентативные сети включают в себя телекоммуникационные сети, локальные сети, глобальные сети и/или Интернет. Для целей настоящего обсуждения архитектура и топология сети (450) могут быть несущественными для работы настоящего раскрытия, если это не объясняется в данном документе ниже.
[98] На фиг. 16 проиллюстрировано, в качестве примера применения для раскрытого объекта изобретения, размещение видеокодера и декодера в потоковой среде. Раскрытый объект изобретения может быть в равной степени применим к другим приложениям с поддержкой видео, включая, например, видеоконференц-связь, цифровое телевидение, хранение сжатого видео на цифровых носителях, включая CD, DVD, карту памяти и т.п., и так далее.
[99] Система потоковой передачи может включать в себя подсистему (513) захвата, которая может включать в себя источник (501) видео, например цифровую камеру, создающую, например, поток (502) отсчетов несжатого видео. Данный поток (502) отсчетов, изображенный жирной линией, чтобы подчеркнуть большой объем данных по сравнению с кодированными битовыми видеопотоками, может быть обработан кодером (503), подключенным к камере (501). Кодер (503) может включать в себя аппаратное обеспечение, программное обеспечение или их комбинацию для включения или реализации аспектов раскрытого объекта изобретения, как более подробно описано ниже. Кодированный битовый поток (504) видео, изображенный тонкой линией, чтобы подчеркнуть меньший объем данных по сравнению с потоком отсчетов, может храниться на сервере (505) потоковой передачи для будущего использования. Один или более клиентов (506, 508) потоковой передачи могут получить доступ к потоковому серверу (505) для извлечения копий (507, 509) кодированного битового потока (504) видео. Клиент (506) может включать в себя видеодекодер (510), который декодирует входящую копию кодированного битового потока (507) видео и создает исходящий поток (511) отсчетов видео, который может отображаться на дисплее (512) или другом устройстве визуализации (не изображено). В некоторых системах потоковой передачи битовые потоки (504, 507, 509) видео могут кодироваться в соответствии с определенными стандартами кодирования/сжатия видео. Примеры этих стандартов включают Н.265 HEVC. В стадии разработки находится стандарт кодирования видео, неофициально известный как универсальное кодирование видео (VVC). Раскрытый объект изобретения может использоваться в контексте VVC.
[100] Фиг. 17 может быть функциональной блок-схемой видеодекодера (510) согласно варианту осуществления настоящего изобретения.
[101] Приемник (610) может принимать одну или более кодированных видеопоследовательностей, которые должны быть декодированы декодером (510); в том же или другом варианте осуществления - по одной кодированной видеопоследовательности за раз, где декодирование каждой кодированной видеопоследовательности не зависит от других кодированных видеопоследовательностей. Кодированная видеопоследовательность может быть принята из канала (612), который может быть аппаратным/программным соединением с устройством хранения, в котором хранятся кодированные видеоданные. Приемник (610) может принимать кодированные видеоданные с другими данными, например, кодированными аудиоданными и/или потоками вспомогательных данных, которые могут быть отправлены их соответствующим использующим объектам (не изображены). Приемник (610) может отделять кодированную видеопоследовательность от других данных. Для борьбы с дрожанием в сети между приемником (610) и энтропийным декодером/парсером (620) (далее «парсер») может быть подключена буферная память (615). Когда приемник (610) принимает данные от устройства хранения/пересылки с достаточной полосой пропускания и управляемостью или из изосинхронной сети, буфер (615) может не понадобиться или может быть небольшим. Для использования в пакетных сетях наилучшего качества, таких как Интернет, может потребоваться буфер (615), который может быть сравнительно большим и может быть предпочтительно адаптивного размера.
[102] Видеодекодер (510) может включать в себя парсер (620) для восстановления символов (621) из энтропийно кодированной видеопоследовательности. Категории этих символов включают в себя информацию, используемую для управления работой декодера (510), и потенциально информацию для управления устройством визуализации, таким как дисплей (512), который не является неотъемлемой частью декодера, но может быть подключен к нему, как это было показано на фиг. 17. Управляющая информация для устройства (устройств) визуализации может быть в форме информации дополнительного улучшения (сообщения SEI) или фрагментов набора параметров информации о пригодности видео (VUI) (не изображены). Парсер (620) может выполнять парсинг/энтропийно декодировать принятую кодированную видеопоследовательность. Кодирование кодированной видеопоследовательности может осуществляться в соответствии с технологией или стандартом кодирования видео и может следовать принципам, хорошо известным специалистам в уровне техники, включая кодирование переменной длины, кодирование Хаффмана, арифметическое кодирование с контекстной чувствительностью или без нее и так далее. Парсер (620) может извлекать из кодированной видеопоследовательности набор параметров субгруппы по меньшей мере для одной из субгрупп пикселей в видеодекодере на основе по меньшей мере одного параметра, соответствующего группе. Субгруппы могут включать в себя группы изображений (GOP), изображения, тайлы, слайсы, макроблоки, единицы кодирования (CU), блоки, единицы преобразования (TU), единицы предсказания (PU) и так далее. Энтропийный декодер/парсер также может извлекать из кодированной видеопоследовательности информацию, такую как коэффициенты преобразования, значения параметров квантователя (QP), векторы движения и так далее.
[103] Парсер (620) может выполнять операцию энтропийного декодирования/парсинга видеопоследовательности, принятой из буфера (615), чтобы создавать символы (621). Парсер (620) может принимать кодированные данные и выборочно декодировать определенные символы (621). Кроме того, парсер (620) может определять, должны ли конкретные символы (621) быть предоставлены в модуль (653) предсказания с компенсацией движения, модуль (651) масштабирования/обратного преобразования, модуль (652) интрапредсказания или петлевой фильтр (656).
[104] Восстановление символов (621) может задействовать множество различных модулей в зависимости от типа кодированного видеоизображения или его частей (таких как: внешнее и внутреннее изображение, внешний и внутренний блок) и других факторов. Какие модули задействованы и как, можно контролировать с помощью управляющей информации субгруппы, парсинг которой был выполнен из кодированной видеопоследовательности с помощью парсера (620). Поток такой управляющей информации субгруппы между парсером (620) и множеством модулей ниже не показан для ясности.
[105] Помимо уже упомянутых функциональных блоков, декодер (510) может быть концептуально подразделен на ряд функциональных модулей, как описано ниже. В практическом осуществлении, работающем в условиях коммерческих ограничений, многие из этих модулей тесно взаимодействуют друг с другом и могут быть, по меньшей мере частично, интегрированы друг в друга. Однако для целей описания раскрытого объекта изобретения уместно концептуальное подразделение на функциональные модули, приведенные ниже.
[106] Первым модулем является модуль (651) масштабирования/обратного преобразования. Модуль (651) масштабирования/обратного преобразования принимает квантованный коэффициент преобразования, а также управляющую информацию, включая то, какое преобразование использовать, размер блока, коэффициент квантования, матрицы масштабирования квантования и так далее, в виде символа(ов) (621) от парсера (620). Он может выводить блоки, содержащие значения отсчетов, которые могут быть введены в агрегатор (655).
[107] В некоторых случаях выходные отсчеты модуля (651) масштабирования/обратного преобразования могут относиться к блоку с интракодированием; то есть к блоку, который не использует информацию предсказания из ранее восстановленных изображений, но может использовать информацию предсказания из ранее восстановленных частей текущего изображения. Такая информация предсказания может быть предоставлена модулем (652) внутрикадрового предсказания. В некоторых случаях модуль (652) внутрикадрового предсказания генерирует блок того же размера и формы, что и восстанавливаемый блок, используя окружающую уже восстановленную информацию, извлеченную из текущего (частично восстановленного) изображения (658). Агрегатор (655), в некоторых случаях, добавляет для каждого отсчета информацию предсказания, сгенерированную модулем (652) интрапредсказания, к информации выходных отсчетов, предоставляемой модулем (651) масштабирования/обратного преобразования.
[108] В других случаях выходные отсчеты модуля (651) масштабирования/обратного преобразования могут относиться к блоку с интеркодированием и потенциально с компенсацией движения. В таком случае модуль (653) предсказания с компенсацией движения может обращаться к памяти (657) опорных изображений, чтобы извлекать отсчеты, используемые для предсказания. После компенсации движения выбранных отсчетов в соответствии с символами (621), относящимися к блоку, эти отсчеты могут быть добавлены агрегатором (655) к выходу модуля масштабирования/обратного преобразования (в данном случае называемые остаточными отсчетами или остаточным сигналом), чтобы генерировать информацию о выходных отсчетах. Адреса в памяти опорных изображений, откуда модуль предсказания с компенсацией движения выбирает отсчеты предсказания, могут управляться векторами движения, доступными модулю предсказания с компенсацией движения в форме символов (621), которые могут иметь, например, компоненты X, Y и опорного изображения. Компенсация движения также может включать в себя интерполяцию значений отсчетов, извлеченных из памяти опорных изображений, когда используются точные векторы движения суботсчетов, механизмы предсказания вектора движения и так далее.
[109] Выходные отсчеты агрегатора (655) могут подвергаться различным методам петлевой фильтрации в модуле (656) петлевого фильтра. Технологии сжатия видео могут включать в себя технологии внутрипетлевой фильтрации, которые управляются параметрами, включенными в битовый поток кодированного видео и предоставляются модулю (656) петлевой фильтрации как символы (621) из парсера (620), но также могут реагировать на метаинформацию, полученную во время декодирования предыдущих (в порядке декодирования) частей кодированного изображения или кодированной видеопоследовательности, а также реагировать на ранее восстановленные и отфильтрованные посредством петлевой фильтрации значения отсчетов.
[110] Выходной сигнал модуля (656) петлевого фильтра может быть потоком отсчетов, который может быть выведен на устройство (512) визуализации, а также сохранен в памяти (657) опорных изображений для использования в будущем межкадровом предсказании.
[111] Определенные кодированные изображения после полного восстановления могут использоваться в качестве опорных изображений для будущего предсказания. После того, как кодированное изображение полностью восстановлено, и кодированное изображение было идентифицировано как опорное изображение (например, парсером (620)), текущее опорное изображение (658) может стать частью буфера (657) опорных изображений, и свежая память текущих изображений может быть перераспределена перед началом восстановления следующего кодированного изображения.
[112] Видеодекодер (510) может выполнять операции декодирования согласно заранее определенной технологии сжатия видео, которая может быть задокументирована в стандарте, таком как Н.265 HEVC. Кодированная видеопоследовательность может соответствовать синтаксису, заданному используемой технологией или стандартом сжатия видео, в том смысле, что она соответствует синтаксису технологии или стандарта сжатия видео, как указано в документе или стандарте технологии сжатия видео и, в частности, в их документе профилей. Также для соответствия может быть необходимым, чтобы сложность кодированной видеопоследовательности находилась в пределах, определенных уровнем технологии или стандарта сжатия видео. В некоторых случаях уровни ограничивают максимальный размер изображения, максимальную частоту кадров, максимальную частоту дискретизации восстановления (измеряемую, например, в мегаотсчетах в секунду), максимальный размер опорного изображения и так далее. Пределы, установленные уровнями, в некоторых случаях могут быть дополнительно ограничены с помощью спецификаций гипотетического эталонного декодера (HRD) и метаданных для управления буфером HRD, передаваемых в кодированной видеопоследовательности.
[113] В варианте осуществления приемник (610) может принимать дополнительные (избыточные) данные с кодированным видео. Дополнительные данные могут быть включены как часть кодированной видеопоследовательности(ей). Дополнительные данные могут использоваться видеодекодером (510) для правильного декодирования данных и/или для более точного восстановления исходных видеоданных. Дополнительные данные могут быть в форме, например, временных, пространственных слоев или слоев улучшения отношения сигнал/шум (SNR), избыточных слайсов, избыточных изображений, кодов прямого исправления ошибок и так далее.
[114] Фиг. 18 может быть функциональной блок-схемой видеокодера (503) согласно варианту осуществления настоящего раскрытия.
[115] Кодер (503) может принимать отсчеты видео от источника (501) видео (который не является частью кодера), который может захватывать видеоизображение(я) для кодирования кодером (503).
[116] Источник (501) видео может предоставить исходную видеопоследовательность для кодирования кодером (503) в форме цифрового потока отсчетов видео, который может иметь любую подходящую битовую глубину (например: 8 бит, 10 бит, 12 бит, …), любое цветовое пространство (например, ВТ.601 Y CrCB, RGB, …) и любую подходящую структуру отсчетов (например, Y CrCb 4:2:0, Y CrCb 4:4:4). В системе обслуживания мультимедиа источник (501) видео может быть запоминающим устройством, хранящим предварительно подготовленное видео. В системе видеоконференц-связи источник (501) видео может быть камерой, которая захватывает информацию о локальном изображении в виде видеопоследовательности. Видеоданные могут быть предоставлены как множество отдельных изображений, которые при последовательном просмотре передают движение. Сами изображения могут быть организованы как пространственный массив пикселей, в котором каждый пиксель может содержать один или более отсчетов в зависимости от используемой структуры отсчетов, цветового пространства и т.д. Специалист в данной области техники может легко понять взаимосвязь между пикселями и отсчетами. Описание ниже ориентировано на отсчеты.
[117] Согласно варианту осуществления кодер (503) может кодировать и сжимать изображения исходной видеопоследовательности в кодированную видеопоследовательность (743) в реальном времени или с любыми другими временными ограничениями, как того требует приложение. Обеспечение соответствующей скорости кодирования - одна из функций контроллера (750). Контроллер (750) управляет другими функциональными модулями, как описано ниже, и функционально связан с этими модулями. Связь не изображена для ясности. Параметры, устанавливаемые контроллером, могут включать в себя параметры, относящиеся к управлению скоростью (пропуск изображения, квантователь, значение лямбда методов оптимизации скорость-искажение, …), размеру изображения, макету группы изображений (GOP), максимальному диапазону поиска вектора движения и так далее. Специалист в данной области техники может легко определить другие функции контроллера (750), поскольку они могут относиться к видеокодеру (503), оптимизированному для определенной конструкции системы.
[118] Некоторые видеокодеры работают в том, что специалист в данной области легко распознает как «петля кодирования». В качестве упрощенного описания петля кодирования может состоять из кодирующей части кодера (730) (далее «кодер источника») (ответственной за создание символов на основе входного изображения, которое должно быть кодировано, и опорного изображения(й)), и (локального) декодера (733), встроенного в кодер (503), который восстанавливает символы для создания данных отсчетов, которые (удаленный) декодер также может создать (поскольку любое сжатие между символами и кодированным битовым видеопотоком не имеет потерь в технологиях сжатия видео, рассматриваемых в раскрытом объекте). Этот восстановленный поток отсчетов вводится в память (734) опорных изображений. Поскольку декодирование потока символов приводит к результатам с точностью до бита, независимо от местоположения декодера (локально или удаленно), содержимое буфера опорных изображений также является точным до бита между локальным кодером и удаленным кодером. Другими словами, часть предсказания кодера «видит» в качестве отсчетов опорного изображения точно такие же значения отсчетов, которые декодер «видел» бы при использовании предсказания во время декодирования. Этот фундаментальный принцип синхронности опорного изображения (и результирующего дрейфа, если синхронность не может поддерживаться, например, из-за ошибок канала) хорошо известен специалисту в данной области техники.
[119] Работа «локального» декодера (733) может быть такой же, как у «удаленного» декодера (510), который уже был подробно описан выше со ссылкой на фиг. 17. Кратко ссылаясь также на фиг.17, однако, поскольку символы доступны, и кодирование/декодирование символов в кодированную видеопоследовательность энтропийным кодером (745) и парсером (620) может осуществляться без потерь, части энтропийного декодирования декодера (510), включая канал (612), приемник (610), буфер (615) и парсер (620), не могут быть полностью реализованы в локальном декодере (733).
[120] На этом этапе можно сделать наблюдение, что любая технология декодирования, кроме парсинга/энтропийного декодирования, которая присутствует в декодере, также обязательно должна присутствовать в, по существу, идентичной функциональной форме в соответствующем кодере. Описание технологий кодирования может быть сокращено, поскольку они являются инверсией полностью описанных технологий декодирования. Только в некоторых областях требуется более подробное описание, которое приводится ниже.
[121] В качестве части своей работы кодер (730) источника может выполнять кодирование с предсказанием с компенсацией движения, которое кодирует входной кадр с предсказанием со ссылкой на один или более ранее кодированных кадров из видеопоследовательности, которые были обозначены как «опорные кадры». Таким образом, механизм (732) кодирования кодирует различия между блоками пикселей входного кадра и блоками пикселей опорного кадра(ов), которые могут быть выбраны в качестве эталона(ов) предсказания для входного кадра.
[122] Локальный видеодекодер (733) может декодировать кодированные видеоданные кадров, которые могут быть обозначены как опорные кадры, на основе символов, созданных кодером (730) источника. Операции механизма (732) кодирования могут быть предпочтительно процессами с потерями. Когда кодированные видеоданные могут быть декодированы в видеодекодере (не показан на фиг. 17), восстановленная видеопоследовательность обычно может быть копией исходной видеопоследовательности с некоторыми ошибками. Локальный видеодекодер (733) копирует процессы декодирования, которые могут выполняться видеодекодером на опорных кадрах, и может вызывать сохранение восстановленных опорных кадров в кэше (734) опорных изображений. Таким образом, кодер (503) может локально хранить копии восстановленных опорных кадров, которые имеют общий контент, в качестве восстановленных опорных кадров, которые будут получены видеодекодером на дальнем конце (при отсутствии ошибок передачи).
[123] Предиктор (735) может выполнять поиски с предсказанием для механизма (732) кодирования. То есть, для нового изображения, которое должно быть кодировано, предиктор (735) может искать в памяти (734) опорных изображений данные отсчетов (в качестве кандидатов блоков опорных пикселей) или определенные метаданные, такие как векторы движения опорных изображений, формы блоков и так далее, которые могут служить подходящим эталоном предсказания для новых изображений. Предиктор (735) может работать на основе блока отсчетов "блок-за-пикселем", чтобы найти соответствующие эталоны предсказания. В некоторых случаях, как определено результатами поиска, полученными предиктором (735), входное изображение может иметь эталоны предсказания, взятые из множества опорных изображений, сохраненных в памяти (734) опорных изображений.
[124] Контроллер (750) может управлять операциями кодирования кодера (730) источника, включая, например, установку параметров и параметров субгруппы, используемых для кодирования видеоданных.
[125] Выходные сигналы всех вышеупомянутых функциональных модулей могут подвергаться энтропийному кодированию в энтропийном кодере (745). Энтропийный кодер переводит символы, сгенерированные различными функциональными модулями, в кодированную видеопоследовательность путем сжатия без потерь символов согласно технологиям, известным специалистам в данной области техники, как, например, кодирование Хаффмана, кодирование переменной длины, арифметическое кодирование и так далее.
[126] Передатчик (740) может буферизовать кодированную видеопоследовательность(и), созданную энтропийным кодером (745), чтобы подготовить ее к передаче через канал (760) связи, который может быть аппаратным/программным соединением с запоминающим устройством, которое будет хранить кодированные видеоданные. Передатчик (740) может обеспечивать слияние кодированных видеоданных из кодера (730) источника с другими данными, подлежащими передаче, например, кодированными аудиоданными и/или потоками вспомогательных данных (источники не показаны).
[127] Контроллер (750) может управлять работой видео кодера (503). Во время кодирования контроллер (750) может назначить каждому кодированному изображению определенный тип кодированного изображения, что может повлиять на методы кодирования, которые могут быть применены к соответствующему изображению. Например, изображения часто могут быть отнесены к одному из следующих типов кадров.
[128] Внутреннее изображение (I-изображение) может быть таким, которое можно кодировать и декодировать без использования какого-либо другого кадра в последовательности в качестве источника предсказания. Некоторые видеокодеки допускают различные типы внутренних изображений, включая, например, изображения с независимым обновлением декодера. Специалисту в области техники известны эти варианты I-изображений и их соответствующие применения и особенности.
[129] Изображение с предсказанием (Р-изображение) может быть таким, которое может быть кодировано и декодировано с использованием интрапредсказания или интерпредсказания с использованием не более одного вектора движения и опорного индекса для предсказания значений отсчетов каждого блока.
[130] Изображение с двунаправленным предсказанием (В-изображение) может быть таким, которое может быть кодировано и декодировано с использованием интрапредсказания или интерпредсказания с использованием не более двух векторов движения и опорных индексов для предсказания значений отсчетов каждого блока. Точно так же изображения с множественным предсказанием могут использовать более двух опорных изображений и связанных метаданных для восстановления одного блока.
[131] Исходные изображения обычно могут быть пространственно подразделены на множество блоков отсчетов (например, блоки по 4×4, 8×8, 4×8 или 16×16 отсчетов каждый) и кодированы на поблочной основе. Блоки могут кодироваться с предсказанием со ссылкой на другие (уже кодированные) блоки, как определено назначением кодирования, применяемым к соответствующим изображениям блоков. Например, блоки I-изображений могут кодироваться без предсказания или они могут кодироваться с предсказанием со ссылкой на уже кодированные блоки одного и того же изображения (пространственное предсказание или интрапредсказание). Пиксельные блоки Р-изображений могут кодироваться с предсказанием, посредством пространственного предсказания или посредством временного предсказания со ссылкой на одно ранее кодированное опорное изображение. Блоки В-изображений могут кодироваться с предсказанием, посредством пространственного предсказания или посредством временного предсказания со ссылкой на одно или два ранее кодированных опорных изображения.
[132] Видеокодер (503) может выполнять операции кодирования в соответствии с заранее определенной технологией или стандартом кодирования видео, например Н.265 HEVC. В своей работе видеокодер (503) может выполнять различные операции сжатия, включая операции кодирования с предсказанием, которые используют временную и пространственную избыточность во входной видеопоследовательности. Кодированные видеоданные, следовательно, могут соответствовать синтаксису, заданному используемой технологией или стандартом кодирования видео.
[133] В варианте осуществления передатчик (740) может передавать дополнительные данные с кодированным видео. Кодер (730) источника может включать в себя такие данные, как часть кодированной видеопоследовательности. Дополнительные данные могут содержать временные/пространственные слои/слои улучшения SNR, другие формы избыточных данных, такие как избыточные изображения и слайсы, сообщения информации дополнительного улучшения (SEI), фрагменты набора параметров информации о пригодности видео (VUI) и так далее.
[134] Настоящее раскрытие направлено на несколько способов разделения блоков, в которых информация о движении учитывается во время разделения дерева для кодирования видео. Более конкретно, методы в этом раскрытии относятся к способам разделения дерева для гибких структур дерева на основе информации поля движения. Методы, предлагаемые в этом раскрытии, могут применяться как к однородным, так и к неоднородным полученным полям движения.
[135] Полученное поле движения блока определяется как однородное, если полученное поле движения доступно для всех субблоков в блоке и все векторы движения в полученном поле движения являются аналогичными, например, векторы движения используют один и тот же опорный кадр, а абсолютные разницы между векторами движения ниже определенного порога. Порог может быть передан в битовых потоках или определен заранее.
[136] Полученное поле движения блока определяется как неоднородное, если полученное поле движения доступно для всех субблоков в блоке, а векторы движения в полученном поле движения не похожи, например, по меньшей мере один вектор движения ссылается на опорный кадр, на который не ссылаются другие векторы движения, или по меньшей мере одна абсолютная разница между двумя векторами движения в поле больше, чем передаваемый или заранее определенный порог.
[137] Фиг. 19 представляет собой блок-схему примерного процесса (800) кодирования или декодирования видеопоследовательности. В некоторых реализациях один или более блоков процессов с фиг. 19 могут выполняться декодером (510). В некоторых реализациях один или более блоков процессов с фиг. 19 могут выполняться другим устройством или группой устройств, отдельной от декодера (510) или включающего в себя его, например кодером (503).
[138] Как показано на фиг. 19, процесс (800) может содержать кодирование или декодирование видеопоследовательности с использованием формата цветности 4:4:4 или формата цветности 4:2:2 (810).
[139] Когда процесс (800) включает в себя кодирование или декодирование видеопоследовательности с использованием формата цветности 4:4:4, как дополнительно показано на фиг. 19, процесс (800) может дополнительно содержать копирование аффинного вектора движения одного блока цветности 4×4 с использованием операции, отличной от операции усреднения (820).
[140] Когда процесс (800) включает в себя кодирование или декодирование видеопоследовательности с использованием формата цветности 4:2:2, как дополнительно показано на фиг. 19, процесс (800) может дополнительно содержать связывание каждого блока цветности 4×4 с двумя совместно расположенными блоками яркости 4×4, так что аффинный вектор движения одного блока цветности 4x4 представляет собой среднее значение векторов движения двух совместно расположенных блоков яркости (830).
[141] Хотя на фиг. 19 показаны примерные блоки процесса (800), в некоторых реализациях процесс (800) может включать в себя дополнительные блоки, меньшее количество блоков, разные блоки или блоки, расположенные иначе, чем те, которые изображены на фиг. 19. Дополнительно или альтернативно, два или более блока процесса (800) могут выполняться параллельно.
[142] Кроме того, предложенные способы могут быть реализованы схемами обработки (например, одним или более процессорами или одной или более интегральными схемами). В одном примере один или более процессоров выполняют программу, которая хранится на невременном машиночитаемом носителе, для осуществления одного или более из предложенных способов.
[143] Методы, описанные выше, могут быть реализованы в виде компьютерного программного обеспечения с использованием машиночитаемых инструкций и физически сохранены на одном или более машиночитаемых носителях. Например, на фиг. 20 показана компьютерная система (900), подходящая для реализации определенных вариантов осуществления раскрытого объекта изобретения.
[144] Компьютерное программное обеспечение может быть кодировано с использованием любого подходящего машинного кода или компьютерного языка, который может быть объектом сборки, компиляции, связывания или подобных механизмов для создания кода, содержащего инструкции, которые могут выполняться напрямую или посредством интерпретации, выполнения микрокода и т.п., центральными процессорами компьютера (ЦП), графическими процессорами (ГП) и т.п.
[145] Инструкции могут выполняться на компьютерах различных типов или их компонентах, включая, например, персональные компьютеры, планшетные компьютеры, серверы, смартфоны, игровые устройства, устройства Интернета вещей и т.п.
[146] Компоненты, показанные на фиг. 20 для компьютерной системы (900), являются примерными по своей сущности и не предназначены для предложения каких-либо ограничений в отношении объема использования или функциональных возможностей компьютерного программного обеспечения, реализующего варианты осуществления настоящего раскрытия. Конфигурация компонентов также не должна интерпретироваться как имеющая какую-либо зависимость или требование, относящееся к любому одному или комбинации компонентов, проиллюстрированных в примерном варианте осуществления компьютерной системы (900).
[147] Компьютерная система (900) может включать в себя определенные устройства ввода с человеко-машинным интерфейсом. Такое устройство ввода с человеко-машинным интерфейсом может реагировать на ввод одним или более пользователями-людьми посредством, например, тактильного ввода (например, нажатия клавиш, смахивания, движения управляющей перчатки), звукового ввода (например, голоса, хлопков в ладоши), визуального ввода (например: жестов), обонятельного ввода (не изображен). Устройства с человеко-машинным интерфейсом также могут использоваться для захвата определенных носителей, не обязательно напрямую связанных с сознательным вводом человеком, таких как звук (например, речь, музыка, окружающий звук), изображения (например, сканированные изображения, фотографические изображения, полученные из камеры для неподвижных изображений), видео (например, двухмерное видео, трехмерное видео, включая стереоскопическое видео).
[148] Устройства ввода с человеко-машинным интерфейсом могут включать в себя одно или более из (только по одному из каждого изображенного): клавиатура (901), мышь (902), трекпад (903), сенсорный экран (910), управляющая перчатка, джойстик (905), микрофон (906), сканер (907), камера (908).
[149] Компьютерная система (900) также может включать в себя определенные устройства вывода с человеко-машинным интерфейсом. Такие устройства вывода с человеко-машинным интерфейсом могут стимулировать чувства одного или более пользователей-людей посредством, например, тактильного вывода, звука, света и запаха/вкуса. Такие устройства вывода с человеко-машинным интерфейсом могут включать в себя тактильные устройства вывода (например, тактильную обратную связь от сенсорного экрана (910), управляющей перчатки или джойстика (905), но также могут иметься устройства тактильной обратной связи, которые не служат в качестве устройств ввода), устройства вывода звука (например: динамики 909, наушники (не изображены)), устройства вывода изображения (например, экраны 910, включая ЭЛТ-экраны, ЖК-экраны, плазменные экраны, OLED-экраны, каждое из которых имеет или не имеет возможности ввода с сенсорного экрана, каждое с возможностью тактильной обратной связи или без нее - некоторые из которых могут быть способны выводить двухмерный визуальный вывод или более, чем трехмерный вывод с помощью таких средств, как стереографический вывод; очки виртуальной реальности (не изображены), голографические дисплеи и дымовые баки (не изображены)) и принтеры (не изображены).
[150] Компьютерная система (900) также может включать в себя доступные для человека устройства хранения и связанные с ними носители, такие как оптические носители, включая CD/DVD ROM/RW (920) с CD/DVD или подобными носителями (921), флэш-накопитель (922), съемный жесткий диск или твердотельный накопитель (923), ранее разработанные магнитные носители, такие как лента и дискета (не изображены), специализированные устройства на основе ROM/ASIC/PLD, такие как защитные ключи (не изображены) и т.п.
[151] Специалисты в данной области также должны понимать, что термин «машиночитаемый носитель», используемый в связи с раскрытым в настоящем документе объектом изобретения, не охватывает среды передачи, несущие волны или другие временные сигналы.
[152] Компьютерная система (900) также может включать в себя интерфейс к одной или более коммуникационным сетям. Сети могут быть, например, беспроводными, проводными, оптическими. Кроме того, сети могут быть локальными, глобальными, городскими, автомобильными и промышленными, работающими в реальном времени, устойчивыми к задержкам и т.д. Примеры сетей включают в себя локальные сети, такие как Ethernet, беспроводные локальные вычислительные сети (LAN), сотовые сети, включая глобальные системы мобильной связи (GSM), третьего поколения (3G), четвертого поколения (4G), пятого поколения (5G), сети стандарта "Долгосрочное развитие" (LTE) и т.п., проводные телевизионные или беспроводные глобальные цифровые сети, включая кабельное телевидение, спутниковое телевидение и наземное широковещательное телевидение, автомобильные и промышленные, включая CAN-шину, и так далее. Некоторым сетям обычно требуются внешние сетевые интерфейсные адаптеры, которые подключены к определенным портам данных общего назначения или периферийным шинам (949) (например, к портам USB компьютерной системы (900)); другие обычно интегрированы в ядро компьютерной системы (900) путем присоединения к системной шине, как описано ниже (например, интерфейс Ethernet в компьютерную систему ПК или интерфейс сотовой сети в компьютерную систему смартфона). Используя любую из этих сетей, компьютерная система (900) может связываться с другими объектами. Такая связь может быть однонаправленной, только для приема (например, широковещательное телевидение), однонаправленной только для отправки (например, CAN-шина на определенные устройства с CAN-шиной) или двунаправленной, например, для других компьютерных систем, использующих локальную или глобальную цифровую сеть. В каждой из этих сетей и сетевых интерфейсов могут использоваться определенные протоколы и стеки протоколов, как описано выше.
[153] Вышеупомянутые устройства человеко-машинного интерфейса, доступные человеку устройства хранения и сетевые интерфейсы могут быть присоединены к ядру (940) компьютерной системы (900).
[154] Ядро (940) может включать в себя один или более центральных процессоров (ЦП) (941), графических процессоров (ГП) 942, специализированных программируемых процессоров в виде программируемых пользователем вентильных матриц (ППВМ) (943), аппаратных ускорителей для определенных задач (944) и так далее. Эти устройства, наряду с постоянным запоминающим устройством (ПЗУ) (945), оперативным запоминающим устройством (946), внутренним ЗУ большой емкости, таким как внутренние жесткие диски, недоступные пользователю, твердотельные накопители (SSD) и т.п.(947), могут быть подключены через системную шину (948). В некоторых компьютерных системах системная шина (948) может быть доступна в виде одного или более физических разъемов для обеспечения возможности расширения за счет дополнительных ЦП, ГП и т.п. Периферийные устройства могут быть подключены либо непосредственно к системной шине (948) ядра, либо через периферийную шину (949). Архитектура периферийной шины включает соединение периферийных компонентов (PCI), USB и т.п.
[155] ЦП (941), ГП (942), ППВМ (943) и ускорители (944) могут выполнять определенные инструкции, которые в сочетании могут составлять вышеупомянутый компьютерный код. Этот компьютерный код может храниться в ПЗУ (945) или ОЗУ (946). Переходные данные также могут храниться в ОЗУ (946), тогда как постоянные данные могут храниться, например, во внутреннем ЗУ большой емкости (947). Быстрое хранение и извлечение на любое из запоминающих устройств могут быть обеспечены за счет использования кэш-памяти, которая может быть тесно связана с одним или более ЦП (941), ГП (942), ЗУ большой емкости (947), ПЗУ (945), ОЗУ (946) и т.п.
[156] Машиночитаемый носитель может содержать компьютерный код для выполнения различных операций, реализуемых компьютером. Носители и компьютерный код могут быть специально спроектированными и сконструированными для целей настоящего раскрытия, или они могут быть хорошо известными и доступными для специалистов в области компьютерного программного обеспечения.
[157] В качестве примера, а не ограничения, компьютерная система, имеющая архитектуру (900) и, в частности, ядро (940), может обеспечивать функциональность в результате наличия процессора(ов) (включая ЦП, ГП, ППВМ, ускорители и т.п.), выполняющего программное обеспечение, воплощенное на одном или более материальных, машиночитаемых носителях. Такие машиночитаемые носители могут быть носителями, связанными с доступным для пользователя ЗУ большой емкости, как описано выше, а также определенным хранилищем ядра (940), которые имеют невременной характер, например, внутренним ЗУ (947) большой емкости ядра или ПЗУ (945). Программное обеспечение, реализующее различные варианты осуществления настоящего раскрытия, может храниться в таких устройствах и выполняться ядром (940). Машиночитаемый носитель может включать в себя одно или более запоминающих устройств или микросхем в соответствии с конкретными потребностями. Программное обеспечение может побуждать ядро (940) и, в частности, процессоры в нем (включая ЦП, ГП, ППВМ и т.п.) выполнять определенные процессы или определенные части конкретных процессов, описанных в данном документе, включая определение структур данных, хранящихся в ОЗУ (946) и изменение таких структур данных в соответствии с процессами, определенными программным обеспечением. В дополнение или в качестве альтернативы, компьютерная система может обеспечивать функциональность в результате логики, встроенной в аппаратную схему или иным образом воплощенной в схеме (например, ускоритель 944), которая может работать вместо или вместе с программным обеспечением для выполнения определенных процессов или отдельных частей конкретных процессов, описанных в данном документе. Ссылка на программное обеспечение может включать в себя логику и наоборот, где это применимо. Ссылка на машиночитаемый носитель может включать в себя схему (например, интегральную схему (ИС)), хранящую программное обеспечение для выполнения, схему, воплощающую логику для выполнения, или и то, и другое, где это применимо. Настоящее раскрытие включает в себя любую подходящую комбинацию аппаратного и программного обеспечения.
[158] Хотя это раскрытие описывает несколько примерных вариантов осуществления, существуют изменения, перестановки и различные заменяющие эквиваленты, которые попадают в объем раскрытия. Таким образом, будет принято во внимание, что специалисты в данной области техники смогут разработать многочисленные системы и способы, которые, хотя явно не показаны или не описаны здесь, воплощают принципы раскрытия и, таким образом, находятся в пределах его сущности и объема правовой охраны.
Группа изобретений относится к обработке видео и, в частности, к кодированию или декодированию видеопоследовательности, которая может поддерживать различные форматы цветности (4:4:4, 4:2:2) в универсальном кодировании видео (VVC). Техническим результатом является повышение эффективности кодирования/декодирования видео. Предложен способ кодирования видеопоследовательности. Способ содержит этап, на котором осуществляют кодирование видеопоследовательности с использованием одного из формата цветности 4:4:4 и формата цветности 4:2:2. При кодировании видеопоследовательности с использованием формата цветности 4:4:4, копирование аффинного вектора движения одного блока яркости 4×4 с использованием операции, отличной от операции усреднения, и связывание аффинного вектора движения с совместно расположенным блоком цветности 4×4. При кодировании видеопоследовательности с использованием формата цветности 4:2:2, связывание каждого блока цветности 4×4 с двумя совместно расположенными блоками яркости 4×4 так, чтобы аффинный вектор движения одного блока цветности 4×4 представлял собой среднее значение векторов движения двух совместно расположенных блоков яркости. 5 н. и 17 з.п. ф-лы, 26 ил.
1. Способ кодирования видеопоследовательности, содержащий:
кодирование видеопоследовательности с использованием одного из формата цветности 4:4:4 и формата цветности 4:2:2,
при кодировании видеопоследовательности с использованием формата цветности 4:4:4, копирование аффинного вектора движения одного блока яркости 4×4 с использованием операции, отличной от операции усреднения, и связывание аффинного вектора движения с совместно расположенным блоком цветности 4×4, и
при кодировании видеопоследовательности с использованием формата цветности 4:2:2, связывание каждого блока цветности 4×4 с двумя совместно расположенными блоками яркости 4×4 так, чтобы аффинный вектор движения одного блока цветности 4×4 представлял собой среднее значение векторов движения двух совместно расположенных блоков яркости.
2. Способ по п. 1, дополнительно содержащий:
независимо от формата цветности, разделение текущего блока цветности 4×4 на четыре субблока 2×2,
получение первого аффинного вектора движения совместно расположенного блока яркости для верхнего левого субблока цветности 2×2,
получение второго аффинного вектора движения совместно расположенного блока яркости для нижнего правого субблока цветности 2×2, и
получение аффинного вектора движения текущего блока цветности 4×4 с использованием среднего значения первого аффинного вектора движения и второго аффинного вектора движения.
3. Способ по п. 1, дополнительно содержащий выравнивание интерполяционного фильтра, используемого для компенсации движения между компонентами яркости и цветности.
4. Способ по п. 3, в котором, когда видеопоследовательность вводится с использованием формата цветности 4:2:0, применяют 8-ступенчатый интерполяционный фильтр для компонент яркости и компонент цветности.
5. Способ по п. 1, дополнительно содержащий кодирование, в виде трех отдельных деревьев, компоненты Y яркости, двух компонент Cb и Cr цветности, причем каждое дерево из трех отдельных деревьев кодирует одну компоненту из компоненты Y яркости, двух компонент Cb и Cr цветности.
6. Способ по п. 5, в котором кодирование в виде трех отдельных деревьев выполняют для I-слайса или группы I-тайла, причем I-слайс представляет собой внутренний слайс изображения, I-тайл представляет собой внутренний тайл изображения.
7. Способ по п. 1, в котором максимально допустимый размер преобразования является одинаковым для разных цветовых компонент.
8. Способ по п. 7, в котором при кодировании видеопоследовательности с использованием формата цветности 4:2:2 максимальный размер вертикального преобразования является одинаковым среди разных цветовых компонент, а максимальный размер горизонтального преобразования для цветовых компонент составляет половину от максимального размера горизонтального преобразования для компонент яркости.
9. Способ по п. 1, в котором по меньшей мере одно из комбинации позиционно-зависимых предикторов (PDPC), выбора множественного преобразования (MTS), неразделимого вторичного преобразования (NSST), внутреннего субразделения (ISP) и интрапредсказания с множественными опорными линиями (MRL) применяют как к компоненте яркости, так и к компоненте цветности.
10. Способ по п. 9, в котором,
когда интрапредсказание с множественными опорными линиями (MRL) применяют как к компоненте яркости, так и к компоненте цветности, и когда кодирование видеопоследовательности выполняют с использованием формата цветности 4:4:4, способ дополнительно содержит выбор N-й ссылки для интрапредсказания и использование той же опорной линии без явной передачи для компонент цветности,
когда внутреннее субразделение (ISP) применяют как к компоненте яркости, так и к компоненте цветности, способ дополнительно содержит применение внутреннего субразделения (ISP) на уровне блока для текущего блока для компоненты Y яркости, компонент Cb и Cr цветности, и
когда для разных цветовых компонент используют разные деревья, способ дополнительно содержит неявное получение параметров кодирования для компонент U и V цветности из совместно расположенных компонент Y яркости без передачи.
11. Способ декодирования видеопоследовательности, содержащий:
декодирование видеопоследовательности с использованием одного из формата цветности 4:4:4 и формата цветности 4:2:2,
при декодировании видеопоследовательности с использованием формата цветности 4:4:4, копирование аффинного вектора движения одного блока яркости 4×4 с использованием операции, отличной от операции усреднения, и связывание аффинного вектора движения с совместно расположенным блоком цветности 4×4, и
при декодировании видеопоследовательности с использованием формата цветности 4:2:2, связывание каждого блока цветности 4×4 с двумя совместно расположенными блоками яркости 4×4 так, чтобы аффинный вектор движения одного блока цветности 4×4 представлял собой среднее значение векторов движения двух совместно расположенных блоков яркости.
12. Устройство для кодирования видеопоследовательности, содержащее:
по меньшей мере одну память, конфигурированную для хранения программного кода;
по меньшей мере один процессор, конфигурированный для считывания программного кода и работы в соответствии с инструкциями программного кода, причем программный код включает в себя
первый код кодирования, конфигурированный для побуждения по меньшей мере одного процессора кодировать видеопоследовательность с использованием по меньшей мере одного из формата цветности 4:4:4 и формата цветности 4:2:2,
причем, когда первый код кодирования конфигурирован для побуждения по меньшей мере одного процессора кодировать видеопоследовательность с использованием формата цветности 4:4:4, первый код кодирования дополнительно содержит код, конфигурированный для побуждения по меньшей мере одного процессора копировать аффинный вектор движения одного блока яркости 4×4 с использованием операции, отличной от операции усреднения, и связывать аффинный вектор движения с совместно расположенным блоком цветности 4×4,
причем, когда первый код кодирования конфигурирован для побуждения по меньшей мере одного процессора кодировать видеопоследовательность с использованием формата цветности 4:2:2, первый код кодирования дополнительно содержит код, конфигурированный для побуждения по меньшей мере одного процессора связывать каждый блок цветности 4×4 с двумя совместно расположенными блоками яркости 4×4 так, чтобы аффинный вектор движения одного блока цветности 4×4 представлял собой среднее значение векторов движения двух совместно расположенных блоков яркости.
13. Устройство по п. 12, в котором первый код кодирования дополнительно содержит код, конфигурированный для побуждения по меньшей мере одного процессора:
разделять текущий блок цветности 4×4 на четыре субблока 2×2,
получать первый аффинный вектор движения совместно расположенного блока яркости для верхнего левого субблока цветности 2×2,
получать второй аффинный вектор движения совместно расположенного блока яркости для нижнего правого субблока цветности 2×2, и
получать аффинный вектор движения текущего блока цветности 4×4 с использованием среднего значения первого аффинного вектора движения и второго аффинного вектора движения.
14. Устройство по п. 12, в котором первый код кодирования дополнительно содержит код, конфигурированный для побуждения по меньшей мере одного процессора выравнивать интерполяционный фильтр, используемый для компенсации движения, между компонентами яркости и цветности.
15. Устройство по п. 14, в котором, когда первый код кодирования конфигурирован для побуждения по меньшей мере одного процессора кодировать видеопоследовательность с использованием формата цветности 4:2:0, первый код кодирования дополнительно содержит код, конфигурированный для побуждения по меньшей мере одного процессора применять 8-ступенчатый интерполяционный фильтр для компонент яркости и компонент цветности.
16. Устройство по п. 12, в котором первый код кодирования дополнительно содержит код, конфигурированный для побуждения по меньшей мере одного процессора кодировать, в виде трех отдельных деревьев, компоненту Y яркости, две компоненты Cb и Cr цветности, причем каждое дерево из трех отдельных деревьев кодирует одну компоненту из компоненты Y яркости, двух компонент Cb и Cr цветности.
17. Устройство по п. 16, в котором конфигурация для кодирования в виде трех отдельных деревьев конфигурирована так, чтобы выполняться для I-слайса или группы I-тайлов, причем I-слайс представляет собой внутренний слайс изображения, I-тайл представляет собой внутренний тайл изображения.
18. Устройство по п. 12, в котором первый код кодирования дополнительно содержит код, конфигурированный для побуждения по меньшей мере одного процессора позволять максимальному размеру преобразования быть одинаковым для разных цветовых компонент.
19. Устройство по п. 18, в котором, когда первый код кодирования конфигурирован для побуждения по меньшей мере одного процессора кодировать видеопоследовательность с использованием формата цветности 4:2:2, первый код кодирования дополнительно содержит код, конфигурированный для побуждения по меньшей мере одного процессора устанавливать одинаковый максимальный размер по вертикали для разных цветовых компонентов и устанавливать максимальный размер горизонтального преобразования для цветовых компонентов равным половине максимального размера горизонтального преобразования для компонент яркости.
20. Устройство по п. 12, в котором первый код кодирования дополнительно содержит код, конфигурированный для побуждения по меньшей мере одного процессора применять по меньшей мере одно из комбинации позиционно-зависимых предикторов (PDPC), выбора множественного преобразования (MTS), неразделимого вторичного преобразования (NSST), внутреннего субразделения (ISP) и интрапредсказания с множественными опорными линиями (MRL) как к компоненте яркости, так и к компоненте цветности.
21. Устройство для декодирования видеопоследовательности, содержащее:
по меньшей мере одну память, конфигурированную для хранения программного кода;
по меньшей мере один процессор, конфигурированный для считывания программного кода и работы в соответствии с инструкциями программного кода, причем программный код включает в себя первый код декодирования, конфигурированный для побуждения по меньшей мере одного процессора декодировать видеопоследовательность с использованием по меньшей мере одного из формата цветности 4:4:4 и формата цветности 4:2:2,
причем, когда первый код декодирования конфигурирован для побуждения по меньшей мере одного процессора декодировать видеопоследовательность с использованием формата цветности 4:4:4, первый код декодирования дополнительно содержит код, конфигурированный для побуждения по меньшей мере одного процессора копировать аффинный вектор движения одного блока яркости 4×4 с использованием операции, отличной от операции усреднения, и связывать аффинный вектор движения с совместно расположенным блоком цветности 4×4,
причем, когда первый код декодирования конфигурирован для побуждения по меньшей мере одного процессора декодировать видеопоследовательность с использованием формата цветности 4:2:2, первый код декодирования дополнительно содержит код, конфигурированный для побуждения по меньшей мере одного процессора связывать каждый блок цветности 4×4 с двумя совместно расположенными блоками яркости 4×4 так, чтобы аффинный вектор движения одного блока цветности 4×4 представлял собой среднее значение векторов движения двух совместно расположенных блоков яркости.
22. Невременный машиночитаемый носитель, хранящий программный код, содержащий одну или более инструкций, которые при выполнении одним или более процессорами устройства побуждают один или более процессоров осуществлять способ по любому из пп. 1-11.
US 20190068969 A1, 28.02.2019 | |||
WO 2017205648 A1, 30.11.2017 | |||
US 20180270500 A1, 20.09.2018 | |||
US 20150030067 A1, 29.01.2015 | |||
US 20180332284 A1, 15.11.2018 | |||
СПОСОБ ВИДЕОКОДИРОВАНИЯ С ИСПОЛЬЗОВАНИЕМ БЛОЧНОГО РАЗБИЕНИЯ ПО БИНАРНОМУ ДЕРЕВУ | 2015 |
|
RU2665311C1 |
Авторы
Даты
2022-10-27—Публикация
2020-03-11—Подача