СПОСОБ И УСТРОЙСТВО ДЛЯ ОБРАБОТКИ СИГНАЛОВ ВИДЕО С ИСПОЛЬЗОВАНИЕМ ИНТЕР-ПРЕДСКАЗАНИЯ
METHOD AND DEVICE FOR PROCESSING VIDEO SIGNALS USING INTER-PREDICTION

Область техники
[1] Вариант осуществления раскрытия относится к способу и устройству для обработки сигнала видео с использованием интер-предсказания и, более конкретно, к способу и устройству для выполнения интер-предсказания с использованием предсказания вектора движения на основе истории.
Предшествующий уровень техники
[2] Кодирование со сжатием означает последовательность методов обработки сигнала для передачи оцифрованной информации через линию связи или методов для сохранения информации в форме, подходящей для носителя хранения. Носитель, включающий в себя картинку, изображение, аудио и т.д., может быть целью для кодирования со сжатием, и конкретно, метод для выполнения кодирования со сжатием в отношении картинки упоминается как сжатие изображения видео.
[3] Предполагается, что видеоконтенты следующего поколения будут иметь характеристики высокого пространственного разрешения, высокой частоты кадров и высокой размерности представления сцены. Чтобы обрабатывать такие контенты, потребуется значительное повышение в емкости памяти, скорости доступа к памяти и мощности обработки.
[4] Соответственно, необходимо разработать инструмент кодирования для эффективной обработки видеоконтентов следующего поколения.
Раскрытие
Техническая проблема
[5] Вариант осуществления раскрытия предлагает ограничения на проверку избыточности для добавления потенциально подходящего варианта (кандидата) HMVP в список объединения (или список AMVP).
[6] Технические цели, которые должны достигаться в варианте осуществления раскрытия, не ограничены вышеупомянутыми техническими целями, и другие технические цели, не описанные выше, могут быть очевидно понятны специалисту в области техники, которой касается раскрытие, из следующего описания.
Техническое решение
[7] В одном аспекте варианта осуществления раскрытия, способ обработки сигнала видео на основе интер-предсказания включает в себя формирование первого списка кандидатов объединения (слияния) текущего блока с использованием пространственного кандидата объединения и временного кандидата объединения текущего блока, формирование второго списка кандидатов объединения путем добавления кандидата объединения на основе истории, указывающего информацию движения блока, закодированного перед текущим блоком, в первый список кандидатов объединения, получение индекса объединения, указывающего кандидата объединения, применяемого к текущему блоку, во втором списке кандидатов объединения, и генерацию блока предсказания текущего блока с использованием информации движения кандидата объединения, указанного индексом объединения. Кандидат объединения на основе истории может добавляться в первый список кандидатов объединения, если кандидат объединения на основе истории имеет информацию движения, не перекрывающую информацию движения предопределенного кандидата объединения среди кандидатов объединения, включенных в первый список кандидатов объединения.
[8] Предпочтительно, кандидат объединения на основе истории может добавляться в первый список кандидатов объединения, если кандидат объединения на основе истории имеет информацию движения, не перекрывающую информацию движения предопределенного конкретного количества кандидатов объединения среди кандидатов объединения, включенных в первый список кандидатов объединения.
[9] Предпочтительно, кандидат объединения на основе истории может добавляться в первый список кандидатов объединения, если кандидат объединения на основе истории имеет информацию движения, не перекрывающую информацию движения конкретного пространственного кандидата объединения, включенного в первый список кандидатов объединения.
[10] Предпочтительно, кандидат объединения на основе истории выводится из предопределенного количества кандидатов в буфере на основе истории, хранящем кандидатов объединения на основе истории.
[11] Предпочтительно, формирование второго списка кандидатов объединения может дополнительно включать в себя добавление пространственного временного кандидата объединения на основе истории. Пространственный временной кандидат на основе истории может выводиться с использованием двух кандидатов объединения на основе истории и временного кандидата объединения.
[12] Предпочтительно, вектор движения пространственного временного кандидата на основе истории может выводиться как среднее значение векторов движения двух кандидатов объединения на основе истории и среднее значение векторов движения временных кандидатов объединения.
[13] В одном аспекте варианта осуществления, устройство для обработки сигнала видео на основе интер-предсказания включает в себя память, хранящую сигнал видео, и процессор, связанный с памятью. Процессор может быть сконфигурирован, чтобы формировать первый список кандидатов объединения текущего блока с использованием пространственного кандидата объединения и временного кандидата объединения текущего блока, формировать второй список кандидатов объединения путем добавления кандидата объединения на основе истории, указывающего информацию движения блока, закодированного перед текущим блоком, в первый список кандидатов объединения, получать индекс объединения, указывающий кандидата объединения, применяемого к текущему блоку, во втором списке кандидатов объединения, и генерировать блок предсказания текущего блока с использованием информации движения кандидата объединения, указанного индексом объединения. Кандидат объединения на основе истории может добавляться в первый список кандидатов объединения, если кандидат объединения на основе истории имеет информацию движения, не перекрывающую информацию движения предопределенного кандидата объединения среди кандидатов объединения, включенных в первый список кандидатов объединения.
Полезные результаты
[14] В соответствии с вариантом осуществления раскрытия, показатель сложности в соответствии с проверкой избыточности может быть улучшен, и эффективность может быть повышена путем ограничения проверки избыточности для добавления в список объединения (или список AMVP).
[15] Эффекты, которые могут быть получены в раскрытии, не ограничены вышеупомянутыми эффектами, и другие технические эффекты, не описанные выше, могут быть с очевидностью понятны специалисту в области техники, к которой относится раскрытие, из следующего описания.
Описание чертежей
[16] Прилагаемые чертежи, которые включены как часть подробного описания, чтобы помочь в понимании раскрытия, обеспечивают варианты осуществления раскрытия и описывают технические характеристики раскрытия вместе с подробным описанием.
[17] Фиг. 1 иллюстрирует пример функциональных элементов кодера в качестве примера устройства для обработки сигнала видео в соответствии с вариантом осуществления раскрытия.
[18] Фиг. 2 является вариантом осуществления, в котором применяется раскрытие, и является блок-схемой устройства декодирования, в котором выполняется декодирование сигнала видео/изображения.
[19] Фиг. 3 является вариантом осуществления, в котором может применяться раскрытие, и является диаграммой, иллюстрирующей пример структуры дерева множественного типа.
[20] Фиг. 4 является вариантом осуществления, в котором может применяться раскрытие, и является диаграммой, иллюстрирующей механизм сигнализации информации разделения разбиения структуры квадродерева с вложенным деревом множественного типа.
[21] Фиг. 5 является вариантом осуществления, в котором может применяться раскрытие, и является диаграммой, иллюстрирующей способ разделения CTU на множество CU на основе квадродерева и вложенной структуры дерева множественного типа.
[22] Фиг. 6 является вариантом осуществления, в котором может применяться раскрытие, и является диаграммой, иллюстрирующей способ ограничения разделения двоичного дерева.
[23] Фиг. 7 является вариантом осуществления, в котором может применяться раскрытие, и является диаграммой, иллюстрирующей шаблоны избыточного разделения, которые могут возникать в разделении двоичного дерева и разделения троичного дерева.
[24] Фиг. 8 и 9 являются диаграммами, иллюстрирующими способ кодирования видео/изображения на основе интер-предсказания в соответствии с вариантом осуществления раскрытия и интер-предсказатель в устройстве кодирования в соответствии с вариантом осуществления раскрытия.
[25] Фиг. 10 и 11 являются диаграммами, иллюстрирующими способ декодирования видео/изображения на основе интер-предсказания в соответствии с вариантом осуществления раскрытия и интер-предсказатель в устройстве декодирования в соответствии с вариантом осуществления раскрытия.
[26] Фиг. 12 является вариантом осуществления, в котором применяется раскрытие, и является диаграммой для описания соседних блоков, используемых в режиме объединения или режиме пропуска.
[27] Фиг. 13 является блок-схемой последовательности операций, иллюстрирующей способ формирования списка кандидатов объединения в соответствии с вариантом осуществления, в котором применяется раскрытие.
[28] Фиг. 14 является блок-схемой последовательности операций, иллюстрирующей способ формирования списка кандидатов объединения в соответствии с вариантом осуществления, в котором применяется раскрытие.
[29] Фиг. 15 иллюстрирует пример моделей движения в соответствии с вариантом осуществления раскрытия.
[30] Фиг. 16 иллюстрирует пример вектора движения контрольной точки для предсказания аффинного движения в соответствии с вариантом осуществления раскрытия.
[31] Фиг. 17 иллюстрирует пример вектора движения для каждого подблока блока, к которому было применено предсказание аффинного движения в соответствии с вариантом осуществления раскрытия.
[32] Фиг. 18 иллюстрирует пример соседних блоков, используемых для предсказания аффинного движения в режиме аффинного объединения в соответствии с вариантом осуществления раскрытия.
[33] Фиг. 19 иллюстрирует пример блока, на котором выполняется предсказание аффинного движения с использованием соседних блоков, к которым было применено предсказание аффинного движения в соответствии с вариантом осуществления раскрытия.
[34] Фиг. 20 является диаграммой для описания способа генерации списка кандидатов объединения с использованием соседнего блока аффинного кодирования в соответствии с вариантом осуществления раскрытия.
[35] Фиг. 21 и 22 являются диаграммами для описания способа формирования списка аффинных кандидатов объединения с использованием соседнего блока, закодированного посредством аффинного предсказания в соответствии с вариантом осуществления раскрытия.
[36] Фиг. 23 иллюстрирует пример соседних блоков, используемых для предсказания аффинного движения в аффинном интер-режиме в соответствии с вариантом осуществления раскрытия.
[37] Фиг. 24 иллюстрирует пример соседних блоков, используемых для предсказания аффинного движения в аффинном интер-режиме в соответствии с вариантом осуществления раскрытия.
[38] Фиг. 25 и 26 являются диаграммами, иллюстрирующими способ вывода кандидата вектора движения с использованием информации движения соседнего блока в аффинном интер-режиме в соответствии с вариантом осуществления раскрытия.
[39] Фиг. 27 иллюстрирует пример поля аффинного вектора движения единицы подблока в соответствии с вариантом осуществления раскрытия.
[40] Фиг. 28 иллюстрирует способ генерации блока предсказания и вектора движения в интер-предсказании, к которому была применена модель аффинного движения в соответствии с вариантом осуществления раскрытия.
[41] Фиг. 29 является диаграммой, иллюстрирующей способ выполнения компенсации движения на основе вектора движения контрольной точки в соответствии с вариантом осуществления раскрытия.
[42] Фиг. 30 является диаграммой, иллюстрирующей способ выполнения компенсации движения на основе вектора движения контрольной точки в неквадратном блоке в соответствии с вариантом осуществления раскрытия.
[43] Фиг. 31 является диаграммой, иллюстрирующей способ выполнения компенсации движения на основе вектора движения контрольной точки в неквадратном блоке в соответствии с вариантом осуществления раскрытия.
[44] Фиг. 32-38 являются диаграммами, иллюстрирующими способ выполнения компенсации движения на основе вектора движения контрольной точки в неквадратном блоке в соответствии с вариантом осуществления раскрытия.
[45] Фиг. 39 является блок-схемой последовательности операций для описания способа хранения HMVP в соответствии с вариантом осуществления раскрытия.
[46] Фиг. 40 является диаграммой для описания таблицы HMVP, работающей способом неограниченного FIFO, в соответствии с вариантом осуществления раскрытия.
[47] Фиг. 41 является диаграммой для описания таблицы HMVP, работающей способом ограниченного FIFO, в соответствии с вариантом осуществления раскрытия.
[48] Фиг. 42 является диаграммой, иллюстрирующей HMVP LUT и долговременную HMVP LUT в соответствии с вариантом осуществления раскрытия.
[49] Фиг. 43 является диаграммой, иллюстрирующей пример способа обновления HMVP LUT в соответствии с вариантом осуществления раскрытия.
[50] Фиг. 44 является диаграммой, иллюстрирующей способ ограничения количества кандидатов HMVP, то есть, цель проверки с обрезкой, в соответствии с вариантом осуществления раскрытия.
[51] Фиг. 45 является диаграммой, иллюстрирующей пример способа выполнения проверки с обрезкой в соответствии с вариантом осуществления раскрытия.
[52] Фиг. 46 является диаграммой для описания способа выведения кандидата H-STMVP с использованием векторов движения, которые ссылаются на разные опорные картинки в соответствии с вариантом осуществления раскрытия.
[53] Фиг. 47 является блок-схемой последовательности операций, иллюстрирующей способ обработки сигнала видео на основе интер-предсказания в соответствии с вариантом осуществления, к которому применяется раскрытие.
[54] Фиг. 48 иллюстрирует пример блок-схемы устройства для обработки сигнала изображения в соответствии с вариантом осуществления раскрытия.
[55] Фиг. 49 иллюстрирует систему кодирования видео, в которой применяется раскрытие.
[56] Фиг. 50 является вариантом осуществления, в котором применяется раскрытие, и иллюстрирует структуру системы потоковой передачи (стриминга) контента.
Режим осуществления изобретения
[57] Далее, предпочтительные варианты осуществления раскрытия будут описаны посредством ссылки на прилагаемые чертежи. Описание, которое будет изложено ниже с прилагаемыми чертежами, предназначено для описания примерных вариантов осуществления раскрытия и не предназначено для описания единственного варианта осуществления, в котором может быть реализовано раскрытие. Описание ниже включает в себя конкретные подробности, чтобы обеспечить идеальное понимание раскрытия. Однако специалистам в данной области техники должно быть понятно, что раскрытие может быть воплощено без конкретных подробностей.
[58] В некоторых случаях, чтобы предотвратить неясность технической концепции раскрытия, структуры или устройства, которые являются общеизвестными, могут опускаться или могут изображаться как блок-схема, сконцентрированная на базовых функциях структур или устройств.
[59] Дополнительно, хотя общие термины, широко используемые в настоящее время, выбраны в качестве терминов в раскрытии, насколько это возможно, термин, который произвольно выбран заявителем, используется в конкретном случае. Поскольку значение термина будет ясно описано в соответствующей части описания в таком случае, понятно, что раскрытие не должно просто интерпретироваться терминами, только использованными в описании раскрытия, но значение терминов должно выясняться.
[60] Специальные термины, используемые в описании ниже, могут быть обеспечены, чтобы помочь пониманию раскрытия. Более того, специальные термины могут модифицироваться в другие формы в объеме технической концепции раскрытия. Например, сигнал, данные, выборка, картинка, кадр, блок и т.д. могут надлежащим образом заменяться и интерпретироваться в каждом процессе кодирования.
[61] Далее, в этой спецификации, “единица обработки” означает единицу, в которой выполняется процесс обработки кодирования/декодирования, такой как предсказание, преобразование и/или квантование. Далее, для удобства описания, единица обработки может также называться “блоком обработки” или “блоком”.
[62] Единица обработки может пониматься как имеющая значение, включающее в себя единицу для компонента яркости и единицу для компонента цветности. Например, единица обработки может соответствовать единице дерева кодирования (CTU), единице кодирования (CU), единице предсказания (PU) или единице преобразования (TU).
[63] Более того, единица обработки может пониматься как являющаяся единицей для компонента яркости или единицей для компонента цветности. Например, единица обработки может соответствовать блоку дерева кодирования (CTB), блоку кодирования (CB), блоку предсказания (PB) или блоку преобразования (TB) для компонента яркости. Альтернативно, единица обработки может соответствовать блоку дерева кодирования (CTB), блоку кодирования (CB), блоку предсказания (PB) или блоку преобразования (TB) для компонента цветности. Более того, раскрытие не ограничено этим, и единица обработки может пониматься как значение, включающее в себя единицу для компонента яркости и единицу для компонента цветности.
[64] Более того, единица обработки не обязательно ограничена квадратным блоком и может создаваться в форме полигона, имеющего три или больше вершины.
[65] Более того, далее, в этой спецификации, пиксел, элемент картинки и т.д. обычно называются выборкой. Более того, использование выборки может означать использование значения пиксела, значения элемента картинки или тому подобного.
[66] Фиг. 1 иллюстрирует пример функциональных элементов кодера в качестве примера устройства для обработки сигнала видео в соответствии с вариантом осуществления раскрытия.
[67] Со ссылкой на фиг. 1, устройство 100 кодирования может быть сконфигурировано, чтобы включать в себя разделитель 110 изображения, вычитатель 115, преобразователь 120, квантователь 130, деквантователь 140, обратный преобразователь 150, сумматор 155, фильтр 160, память 170, интер-предсказатель 180, интра-предсказатель 185 и энтропийный кодер 190. Интер-предсказатель 180 и интра-предсказатель 185 могут совместно называться предсказателем. Другими словами, предсказатель может включать в себя интер-предсказатель 180 и интра-предсказатель 185. Преобразователь 120, квантователь 130, деквантователь 140 и обратный преобразователь 150 могут быть включены в процессор остатка. Процессор остатка может дополнительно включать в себя вычитатель 115. В одном варианте осуществления, разделитель 110 изображения, вычитатель 115, преобразователь 120, квантователь 130, деквантователь 140, обратный преобразователь 150, сумматор 155, фильтр 160, интер-предсказатель 180, интра-предсказатель 185 и энтропийный кодер 190 могут быть сконфигурированы как один аппаратный компонент (например, кодер или процессор). Более того, память 170 может включать в себя буфер декодированных картинок (DPB) и может быть сконфигурирована с цифровым носителем хранения.
[68] Разделитель 110 изображения может разделять входное изображение (или картинку или кадр), введенное в устройство 100 кодирования, на одну или более единиц обработки. Например, единица обработки может называться единицей кодирования (CU). В этом случае, единица кодирования может быть рекурсивно разделена из единицы дерева кодирования (CTU) или наибольшей единицы кодирования (LCU) на основе структуры квадродерева/двоичного дерева (QTBT). Например, одна единица кодирования может быть разделена на множество единиц кодирования более глубокой глубины на основе структуры квадродерева и/или структуры двоичного дерева. В этом случае, например, структура квадродерева может применяться первой, а затем может применяться структура двоичного дерева. Альтернативно структура двоичного дерева может применяться первой. Процедура кодирования в соответствии с раскрытием может выполняться на основе конечной единицы кодирования, которая больше не делится. В этом случае, наибольшая единица кодирования может напрямую использоваться в качестве конечной единицы кодирования на основе эффективности кодирования в соответствии с характеристиками изображения, или единица кодирования может рекурсивно делиться на единицы кодирования более глубокой глубины, при необходимости. Соответственно, единица кодирования, имеющая оптимальный размер, может использоваться в качестве конечной единицы кодирования. В этом случае, процедура кодирования может включать в себя процедуру, такую как предсказание, преобразование или восстановление, описанные далее. В качестве другого примера, единица обработки может дополнительно включать в себя единицу предсказания (PU) или единицу преобразования (TU). В этом случае, каждая из единицы предсказания и единицы преобразования может разделяться или разбиваться из каждой конечной единицы кодирования. Единица предсказания может быть единицей для предсказания выборки, и единица преобразования может быть единицей, из которой выводится коэффициент преобразования, и/или единицей, в которой остаточный сигнал выводится из коэффициента преобразования.
[69] Единица может взаимозаменяемо использоваться с блоком или областью в соответствии с обстоятельствами. В общем случае, блок M×N может указывать набор выборок, сконфигурированных с M столбцами и N строками или набором коэффициентов преобразования. В общем, выборка может указывать пиксел или значение пиксела и может указывать только пиксел/значение пиксела компонента яркости или только пиксел/значение пиксела компонента цветности. В выборке, одна картинка (или изображение) может использоваться в качестве термина, соответствующего пикселу или пелу (элементу изображения).
[70] Устройство 100 кодирования может генерировать остаточный сигнал (остаточный блок или массив остаточных выборок) путем вычитания сигнала предсказания (предсказанного блока или массива выборок предсказания), выведенного интер-предсказателем 180 или интра-предсказателем 185, из входного сигнала изображения (исходного блока или массива исходных выборок). Сгенерированный остаточный сигнал передается на преобразователь 120. В этом случае, как проиллюстрировано, модуль, в котором сигнал предсказания (блок предсказания или массив выборок предсказания) вычитается из входного сигнала изображения (исходного блока или массива исходных выборок) в кодере 100, может называться вычитателем 115. Предсказатель может выполнять предсказание на целевом блоке обработки (далее упоминаемом как текущий блок) и может генерировать предсказанный блок, включающий в себя выборки предсказания для текущего блока. Предсказатель может определять, применяется ли интра-предсказание или применяется ли интер-предсказание в текущем блоке или единице CU. Предсказатель может генерировать различные части информации о предсказании, такие как информация режима предсказания, как будет описано далее в описании каждого режима предсказания, и может передавать информацию на энтропийный кодер 190. Информация о предсказании может кодироваться в энтропийном кодере 190 и может выводиться в форме битового потока.
[71] Интра-предсказатель 185 может предсказывать текущий блок с опорой на выборки в текущей картинке. Опорные выборки могут быть расположены по соседству с текущим блоком или могут быть разнесены от текущего блока в зависимости от режима предсказания. В интра-предсказании, режимы предсказания могут включать в себя множество не-угловых режимов и множество угловых режимов. Не-угловой режим может включать в себя, например, режим DC и планарный режим. Угловой режим может включать в себя, например, 33 угловых режима предсказания или 65 угловых режимов предсказания, в зависимости от степени точности направления предсказания. В этом случае, угловые режимы предсказания, которых больше или меньше, чем 33 угловых режима предсказания или 65 угловых режимов предсказания, могут использоваться, например, в зависимости от конфигурации. Интра-предсказатель 185 может определять режим предсказания, применяемый к текущему блоку, с использованием режима предсказания, примененного к соседнему блоку.
[72] Интер-предсказатель 180 может выводить предсказанный блок для текущего блока на основе опорного блока (массива опорных выборок), специфицированного вектором движения на опорной картинке. В этом случае, чтобы уменьшить количество информации движения, передаваемой в режиме интер-предсказания, информация движения может предсказываться как блок, подблок или единица выборки на основе корреляции информации движения между соседним блоком и текущим блоком. Информация движения может включать в себя вектор движения и индекс опорной картинки. Информация движения может дополнительно включать в себя информацию направления интер-предсказания (L0-предсказание, L1-предсказание, Bi-предсказание). В случае интер-предсказания, соседний блок может включать в себя пространственный соседний блок в текущей картинке и временной соседний блок в опорной картинке. Опорная картинка, включающая в себя опорный блок, и опорная картинка, включающая в себя временной соседний блок, могут быть одними и теми же или разными. Временной соседний блок может упоминаться как так называемый совмещенный опорный блок или совмещенная CU (colCU). Опорная картинка, включающая в себя временной соседний блок, может упоминаться как совмещенная картинка (colPic). Например, интер-предсказатель 180 может формировать список кандидатов (т.е. потенциально подходящей) информации движения на основе соседних блоков и может генерировать информацию, указывающую, какой кандидат используется для вывода вектора движения, и/или индекс опорной картинки текущего блока. Интер-предсказание может выполняться на основе различных режимов предсказания. Например, в случае режима пропуска и режима объединения, интер-предсказатель 180 может использовать информацию движения соседнего блока в качестве информации движения текущего блока. В случае режима пропуска, в отличие от режима объединения, остаточный сигнал может не передаваться. В случае режима предсказания информации движения (MVP), вектор движения соседнего блока может использоваться в качестве предсказателя вектора движения. Вектор движения текущего блока может указываться посредством сигнализации разности векторов движения.
[73] Сигнал предсказания, сгенерированный посредством интер-предсказателя 180 или интра-предсказателя 185, может использоваться, чтобы генерировать восстановленный сигнал или остаточный сигнал.
[74] Преобразователь 120 может генерировать коэффициенты преобразования путем применения схемы преобразования к остаточному сигналу. Например, схема преобразования может включать в себя по меньшей мере одно из дискретного косинусного преобразования (DCT), дискретного синусного преобразования (DST), преобразования Карунена-Лоэва (KLT), преобразования на основе графа (GBT) или условно нелинейного преобразования (CNT). В этом случае, GBT означает преобразование, получаемое из графа, если информация отношения между пикселами представлена как граф. CNT означает преобразование, получаемое на основе сигнала предсказания, сгенерированного с использованием всех ранее восстановленных пикселов. Более того, процесс преобразования может применяться к блокам пикселов, имеющим один и тот же размер квадратной формы, или может применяться к блокам, имеющим переменные размеры неквадратной формы.
[75] Квантователь 130 может квантовать коэффициенты преобразования и передавать их на энтропийный кодер 190. Энтропийный кодер 190 может кодировать квантованный сигнал (информацию о квантованных коэффициентах преобразования) и выводить его в форме битового потока. Информация о квантованных коэффициентах преобразования может называться остаточной информацией. Квантователь 130 может переупорядочивать квантованные коэффициенты преобразования формы блока в форме одномерного вектора на основе последовательности сканирования коэффициентов и может генерировать информацию о квантованных коэффициентах преобразования на основе квантованных коэффициентов преобразования формы одномерного вектора. Энтропийный кодер 190 может выполнять различные способы кодирования, такие как экспоненциальное кодирование Голомба, контекстно-адаптивное кодирование с переменной длиной (CAVLC) и контекстно-адаптивное двоичное арифметическое кодирование (CABAC). Энтропийный кодер 190 может кодировать информацию (например, значения синтаксических элементов), необходимую для восстановления видео/изображения, в дополнение к квантованным коэффициентам преобразования вместе или отдельно. Закодированная информация (например, закодированная информация видео/изображения) может передаваться или сохраняться в модуле слоя сетевой абстракции (NAL) в форме битового потока. Битовый поток может передаваться по сети или может сохраняться в цифровом носителе хранения. В этом случае, сеть может включать в себя сеть вещания и/или сеть связи. Цифровой носитель хранения может включать в себя различные носители хранения, такие как USB, SD, CD, DVD, Blueray, HDD и SSD. Передатчик (не проиллюстрирован), который передает сигнал, выведенный энтропийным кодером 190, и/или хранилище (не проиллюстрировано) для хранения сигнала могут быть сконфигурированы как внутренний/внешний элемент устройства 100 кодирования, или передатчик может быть элементом энтропийного кодера 190.
[76] Квантованные коэффициенты преобразования, выведенные квантователем 130, могут использоваться, чтобы генерировать сигнал предсказания. Например, остаточный сигнал может быть восстановлен путем применения деквантования и обратного преобразования к квантованным коэффициентам преобразования с помощью деквантователя 140 и обратного преобразователя 150 в контуре. Сумматор 155 может добавлять восстановленный остаточный сигнал к сигналу предсказания, выведенному интер-предсказателем 180 или интра-предсказателем 185, так что может генерироваться восстановленный сигнал (восстановленная картинка, восстановленный блок или массив восстановленных выборок). Предсказанный блок может использоваться как восстановленный блок, если отсутствует остаток для целевого блока обработки, как в случае, где применялся режим пропуска. Сумматор 155 может называться модулем восстановления или генератором блока восстановления. Сгенерированный восстановленный сигнал может использоваться для интра-предсказания следующего целевого блока обработки в текущей картинке и может использоваться для интер-предсказания следующей картинки посредством фильтрации, как будет описано далее.
[77] Фильтр 160 может улучшать субъективное/объективное качество картинки путем применения фильтрации к восстановленному сигналу. Например, фильтр 160 может генерировать модифицированную восстановленную картинку путем применения различных способов фильтрации к восстановленной картинке. Модифицированная восстановленная картинка может сохраняться в памяти 170, в частности в DPB памяти 170. Различные способы фильтрации могут включать в себя, например, фильтрацию с устранением блочности, адаптивное смещение выборки, адаптивный контурный фильтр и билатеральный фильтр. Фильтр 160 может генерировать различные части информации для фильтрации, как будет описано далее при описании каждого способа фильтрации, и может передавать их на энтропийный кодер 190. Информация фильтрации может кодироваться энтропийным кодером 190 и выводиться в форме битового потока.
[78] Модифицированная восстановленная картинка, передаваемая в память 170, может использоваться как опорная картинка в интер-предсказателе 180. Устройство кодирования может избегать несогласованности предсказания в устройстве 100 кодирования и устройстве декодирования и улучшать эффективность кодирования, если применяется интер-предсказание.
[79] DPB памяти 170 может хранить модифицированную восстановленную картинку, чтобы использовать модифицированную восстановленную картинку в качестве опорной картинки в интер-предсказателе 180. Память 170 может хранить информацию движения блока, из которой была выведена (или закодирована) информация движения в текущей картинке, и/или информацию движения блоков в уже восстановленной картинке. Сохраненная информация движения может передаваться на интер-предсказатель 180, чтобы использоваться в качестве информации движения пространственного соседнего блока или информации движения временного соседнего блока. Память 170 может хранить восстановленные выборки восстановленных блоков в текущей картинке и может передавать их на интра-предсказатель 185.
[80] Фиг. 2 является вариантом осуществления, в котором применяется раскрытие, и является блок-схемой устройства декодирования, в котором выполняется декодирование сигнала видео/изображения.
[81] Со ссылкой на фиг. 2, устройство 200 декодирования может быть сконфигурировано, чтобы включать в себя энтропийный декодер 210, деквантователь 220, обратный преобразователь 230, сумматор 235, фильтр 240, память 250, интер-предсказатель 260 и интра-предсказатель 265. Интер-предсказатель 260 и интра-предсказатель 265 могут совместно называться предсказателем. То есть, предсказатель может включать в себя интер-предсказатель 180 и интра-предсказатель 185. Деквантователь 220 и обратный преобразователь 230 могут совместно называться процессором остатка. То есть, процессор остатка может включать в себя деквантователь 220 и обратный преобразователь 230. Энтропийный декодер 210, деквантователь 220, обратный преобразователь 230, сумматор 235, фильтр 240, интер-предсказатель 260 и интра-предсказатель 265 могут быть сконфигурированы как один аппаратный компонент (например, декодер или процессор) в соответствии с вариантом осуществления. Более того, память 170 может включать в себя буфер декодированных картинок (DPB) и может быть сконфигурирована с цифровым носителем хранения.
[82] Когда вводится битовый поток, включающий в себя информацию видео/изображения, устройство 200 декодирования может восстанавливать изображение в соответствии с процессом обработки информации видео/изображения в устройстве кодирования согласно фиг. 1. Например, устройство 200 декодирования может выполнять декодирование с использованием единицы обработки, применяемой в устройстве кодирования. Соответственно, единица обработки для декодирования может быть, например, единицей кодирования. Единица кодирования может быть разделена из единицы дерева кодирования или наибольшей единицы кодирования в зависимости от структуры квадродерева и/или структуры двоичного дерева. Более того, восстановленный сигнал изображения, декодированный и выведенный посредством устройства 200 декодирования, может воспроизводиться с помощью устройства воспроизведения.
[83] Устройство 200 декодирования может принимать сигнал, выведенный устройством кодирования согласно фиг. 1, в форме битового потока. Принятый сигнал может декодироваться энтропийным декодером 210. Например, энтропийный декодер 210 может выводить информацию (например, информацию видео/изображения) для восстановления изображения (или восстановления картинки) посредством синтаксического анализа битового потока. Например, энтропийный декодер 210 может декодировать информацию в битовом потоке на основе способа кодирования, такого как экспоненциальное кодирование Голомба, CAVLC или CABAC, и может выводить значение синтаксического элемента для восстановления изображения или квантованные значения коэффициентов преобразования относительно остатка. Более конкретно, в способе энтропийного декодирования CABAC, бин, соответствующий каждому синтаксическому элементу, может приниматься из битового потока; контекстная модель может определяться с использованием декодирования информации целевого синтаксического элемента и декодирования информации о соседстве и декодирования целевого блока или информации символа/бина, декодированного на предыдущем этапе; вероятность, что бин появится, может предсказываться на основе определенной контекстной модели, и символ, соответствующий значению каждого синтаксического элемента, может генерироваться путем выполнения арифметического декодирования на бине. В этом случае, в способе энтропийного декодирования CABAC, после определения контекстной модели, контекстная модель может обновляться с использованием информации символа/бина, декодированного для контекстной модели следующего символа/бина. Информация о предсказании среди информации, декодированной в энтропийном декодере 2110, может предоставляться на предсказатель (интер-предсказатель 260 и интра-предсказатель 265). Информация параметра, относящаяся к значению остатка, на котором выполнялось энтропийное декодирование в энтропийном декодере 210, то есть, квантованные коэффициенты преобразования, может вводиться в деквантователь 220. Более того, информация о фильтрации среди информации, декодированной в энтропийном декодере 210, может предоставляться на фильтр 240. Между тем, приемник (не проиллюстрирован), который принимает сигнал, выведенный устройством кодирования, может быть дополнительно сконфигурирован как внутренний/внешний элемент устройства 200 декодирования, или приемник может быть элементом энтропийного декодера 210.
[84] Деквантователь 220 может деквантовать квантованные коэффициенты преобразования и выводить коэффициенты преобразования. Деквантователь 220 может переупорядочивать квантованные коэффициенты преобразования в форме двумерного блока. В этом случае, переупорядочение может выполняться на основе последовательности сканирования коэффициентов, выполняемой в устройстве кодирования. Деквантователь 220 может выполнять деквантование на квантованных коэффициентах преобразования с использованием параметра квантования (например, информации размера шага квантования) и может получать коэффициенты преобразования.
[85] Обратный преобразователь 230 получает остаточный сигнал (остаточный блок или массив остаточных выборок) путем обратного преобразования коэффициентов преобразования.
[86] Предсказатель может выполнять предсказание на текущем блоке и может генерировать предсказанный блок, включающий в себя выборки предсказания для текущего блока. Предсказатель может определять, применяется ли интра-предсказание или применяется ли интер-предсказание к текущему блоку, на основе информации о предсказании, которая выводится энтропийным декодером 210, и может определять детальный режим интра/интер-предсказания.
[87] Интра-предсказатель 265 может предсказывать текущий блок с опорой на выборки в текущей картинке. Опорные выборки могут быть расположены по соседству с текущим блоком или могут быть разнесены от текущего блока в зависимости от режима предсказания. В интра-предсказании, режимы предсказания могут включать в себя множество не-угловых режимов и множество угловых режимов. Интра-предсказатель 265 может определять режим предсказания, применяемый к текущему блоку, с использованием режима предсказания, примененного к соседнему блоку.
[88] Интер-предсказатель 260 может выводить предсказанный блок для текущего блока на основе опорного блока (массива опорных выборок), специфицированного вектором движения на опорной картинке. В этом случае, чтобы уменьшить количество информации движения, передаваемой в режиме интер-предсказания, информация движения может предсказываться как блок, подблок или единица выборки на основе корреляции информации движения между соседним блоком и текущим блоком. Информация движения может включать в себя вектор движения и индекс опорной картинки. Информация движения может дополнительно включать в себя информацию направления интер-предсказания (L0-предсказание, L1-предсказание, Bi-предсказание). В случае интер-предсказания, соседний блок может включать в себя пространственный соседний блок в текущей картинке и временной соседний блок в опорной картинке. Например, интер-предсказатель 260 может конфигурировать список кандидатов информации движения на основе соседних блоков и может выводить вектор движения и/или индекс опорной картинки текущего блока на основе принятой информации выбора кандидата. Интер-предсказание может выполняться на основе различных режимов предсказания. Информация о предсказании может включать в себя информацию, указывающую режим интер-предсказания для текущего блока.
[89] Сумматор 235 может генерировать восстановленный сигнал (восстановленную картинку, восстановленный блок или восстановленный массив выборок) путем суммирования полученного остаточного сигнала с сигналом предсказания (предсказанным блоком или массивом выборок предсказания), выведенным интер-предсказателем 260 или интра-предсказателем 265. Предсказанный блок может использоваться в качестве восстановленного блока, если отсутствует остаток для целевого блока обработки, как в случае, где применялся режим пропуска.
[90] Сумматор 235 может называться модулем восстановления или генератором блока восстановления. Сгенерированный восстановленный сигнал может использоваться для интра-предсказания следующего целевого блока обработки в текущей картинке и может использоваться для интер-предсказания следующей картинки посредством фильтрации, как будет описано далее.
[91]
[92] Фильтр 240 может улучшать субъективное/объективное качество картинки путем применения фильтрации к восстановленному сигналу. Например, фильтр 240 может генерировать модифицированную восстановленную картинку путем применения различных способов фильтрации к восстановленной картинке и может передавать модифицированную восстановленную картинку в память 250, конкретно, DPB памяти 250. Различные способы фильтрации могут включать в себя, например, фильтрацию устранения блочности, адаптивное смещение выборки, адаптивный контурный фильтр и двунаправленный фильтр.
[93] Восстановленная картинка, сохраненная (модифицированная) в DPB памяти, 250 может использоваться в качестве опорной картинки в интер-предсказателе 260. Память 250 может хранить информацию движения блока, из которого была выведена (или декодирована) информация движения в текущей картинке, и/или информацию движения блоков в уже восстановленной картинке. Сохраненная информация движения может передаваться на интер-предсказатель 260, чтобы использоваться в качестве информации движения пространственного соседнего блока или информации движения временного соседнего блока. Память 170 может хранить восстановленные выборки восстановленных блоков в текущей картинке и может передавать их на интра-предсказатель 265.
[94] В раскрытии, варианты осуществления, описанные для фильтра 160, интер-предсказателя 180 и интра-предсказателя 185 устройства 100 кодирования, могут применяться к фильтру 240, интер-предсказателю 260 и интра-предсказателю 265 устройства 200 декодирования, идентичным или соответствующим образом.
[95]
Разбиение блоков
[96]
[97] Способ кодирования видео/изображений в соответствии с настоящим документом может выполняться на основе различных детальных технологий. Каждая из детальных технологий схематично описана далее. Специалистам в данной области техники должно быть понятно, что следующие технологии могут быть ассоциированы со связанными процедурами, такими как предсказание, обработка остатка ((обратное) преобразование, (де-)квантование), кодирование синтаксического элемента, фильтрация и разбиение/ разделение в процедуре кодирования/декодирования видео/ изображения, которая была описана и/или будет описана далее.
[98] Процедура разбиения блока в соответствии с настоящим документом может выполняться в разделителе 110 изображения устройства кодирования. Связанная с разбиением информация может (кодироваться) обрабатываться в энтропийном кодере 190 и передаваться на устройство декодирования в форме битового потока. Энтропийный декодер 210 устройства декодирования может выводить структуру разбиения блока текущей картинки на основе связанной с разбиением информации, полученной из битового потока, и может выполнять последовательность процедур (например, предсказание, обработку остатка, восстановление блока и контурную фильтрацию) на основе структуры разбиения блока.
Разбиение картинки на CTU
[99]
[100] Картинки могут разбиваться на последовательность единиц дерева кодирования (CTU). CTU может соответствовать блоку дерева кодирования (CTB). Альтернативно, CTU может включать в себя блок дерева кодирования выборок яркости и два блока дерева кодирования соответствующих выборок цветности. Другими словами, в отношении картинки, включающей в себя три массива выборок, CTU может включать в себя блок N×N выборок яркости и два соответственных блока выборок цветности.
[101] Максимальный разрешенный размер CTU для кодирования и предсказания может отличаться от максимального разрешенного размера CTU для преобразования. Например, максимальный разрешенный размер блока яркости в CTU может составлять 128×128.
Разбиение CTU с использованием структуры дерева
[102]
[103] CTU может разбиваться на основе структуры квадродерева (QT). Структура квадродерева может называться структурой четверичного (кватернарного) дерева. Это предназначается для введения различных местных характеристик. Между тем, в настоящем документе, CTU может разбиваться на основе разделения структуры дерева множественного типа, включающего в себя двоичное дерево (BT) и троичное дерево (TT) в дополнение к квадродереву. Далее, структура QTBT может включать в себя структуру разделения на основе квадродерева и двоичного дерева. QTBTTT может включать в себя структуру разделения на основе квадродерева, двоичного дерева и троичного дерева. Альтернативно, структура QTBT может включать в себя структуру разделения на основе квадродерева, двоичного дерева и троичного дерева. В структуре дерева кодирования, CU может иметь квадратную форму или прямоугольную форму. CTU может разбиваться как структура квадродерева. После этого, листовые узлы структуры квадродерева могут дополнительно разбиваться структурой дерева множественного типа.
[104] Фиг. 3 является вариантом осуществления, в котором может применяться раскрытие, и является диаграммой, иллюстрирующей пример структуры дерева множественного типа.
[105] В варианте осуществления раскрытия, структура дерева множественного типа может включать в себя 4 типа разделения, такие как проиллюстрированные на фиг. 3. 4 типа разделения могут включать в себя вертикальное двоичное разделение SPLIT_BT_VER, горизонтальное двоичное разделение SPLIT_BT_HOR, вертикальное троичное разделение SPLIT_TT_VER и горизонтальное троичное разделение SPLIT_TT_HOR. Листовые узлы структуры дерева множественного типа могут называться CU. Такие CU могут использоваться для процедуры предсказания и преобразования. В настоящем документе, в общем, CU, PU или TU могут иметь один и тот же размер блока. В этом случае, если максимальная поддерживаемая длина преобразования меньше, чем ширина или высота цветового компонента CU, то CU и TU могут иметь разные размеры блока.
[106] Фиг. 4 является вариантом осуществления, в котором может применяться раскрытие, и является диаграммой, иллюстрирующей механизм сигнализации информации разделения разбиения структуры квадродерева с вложенным деревом множественного типа.
[107] В этом случае, CTU считается корнем квадродерева и сначала разбивается как структура квадродерева. Каждый листовой узел квадродерева может дополнительно разбиваться на структуру дерева множественного типа. В структуре дерева множественного типа, первый флаг (например, mtt_split_cu_flag) сигнализируется, чтобы указывать, разбивается ли дополнительно соответствующий узел. Если соответствующий узел дополнительно разбивается, второй флаг (например, mtt_split_cu_vertical_flag) может сигнализироваться, чтобы указывать направление разделения. После этого, третий флаг (например, mtt_split_cu_binary_flag) может сигнализироваться, чтобы указывать, является ли тип разделения двоичным разделением или троичным разделением. Например, режим разделения дерева множественного типа (MttSplitMode) CU может выводиться как Таблица 1 на основе mtt_split_cu_vertical_flag и mtt_split_cu_binary_flag.
[108] Таблица 1
MttSplitMode
mtt_split_cu_vertical_flag
mtt_split_cu_binary_flag
SPLIT_TT_HOR
0
0
SPLIT_BT_HOR
0
1
SPLIT_TT_VER
1
0
SPLIT_BT_VER
1
1
[109] Фиг. 5 является вариантом осуществления, в котором может применяться раскрытие, и является диаграммой, иллюстрирующей способ разделения CTU на множество CU на основе квадродерева и вложенной структуры дерева множественного типа.
[110] В этом случае, показанные жирными линиями края блоков указывают разбиение квадродерева, и остальные края указывают разбиение дерева множественного типа. Разбиение квадродерева с деревом множественного типа может обеспечивать контентно-адаптированную структуру дерева кодирования. CU может соответствовать блоку кодирования (CB). Альтернативно, CU может включать в себя блок кодирования выборок яркости и два блока кодирования соответствующих выборок цветности. Размер CU может быть больше, таким как CTU, или может быть малым, таким как 4×4, в единице выборки яркости. Например, в случае цветового формата (или формата цветности) 4:2:0, максимальный размер CB цветности может составлять 64×64, и минимальный размер CB цветности может составлять 2×2.
[111] В настоящем документе, например, максимальный разрешенный размер TB яркости может составлять 64×64, и максимальный разрешенный размер TB цветности может составлять 32×32. Если ширина или высота CB, разделенного на основе структуры дерева, больше, чем максимальная ширина или высота преобразования, соответствующий CB может разделяться до тех пор, пока ограничение на размер TB в горизонтальном и вертикальном направлении не будет удовлетворено автоматически (или явно).
[112] Между тем, для схемы дерева кодирования квадродерева с деревом множественного типа, следующие параметры могут определяться и идентифицироваться как синтаксические элементы SPS.
[113] - размер CTU: размер корневого узла четверичного дерева
[114] - MinQTSize: минимальный разрешенный размер листового узла четверичного дерева
[115] - MaxBtSize: максимальный разрешенный размер корневого узла двоичного дерева
[116] - MaxTtSize: максимальный разрешенный размер корневого узла троичного дерева
[117] - MaxMttDepth: максимальная разрешенная глубина иерархии разделения дерева множественного типа из листа квадродерева
[118] - MinBtSize: минимальный разрешенный размер листового узла двоичного дерева
[119] - MinTtSize: минимальный разрешенный размер листового узла троичного дерева
[120] Например, в случае структуры дерева кодирования квадродерева с деревом множественного типа, размер CTU может быть установлен как 128×128 выборки яркости и 64×64 блоки двух соответствующих выборок цветности (в формате цветности 4:2:0). В этом случае, MinQTSize может быть установлен как 16×16, MaxBtSize может быть установлен как 128×128, MaxTtSzie может быть установлен как 64×64, и MinBtSize и MinTtSize (для ширины и длины) могут быть установлены как 4×4, и MaxMttDepth может быть установлен как 4. Разбиение квадродерева может применяться к CTU, чтобы генерировать листовые узлы квадродерева. Листовой узел квадродерева может называться листовым узлом QT. Листовые узлы квадродерева могут иметь размер 16×16 (т.е., MinQTSize) до размера 128×128 (т.е., размера CTU). Если листовой узел QT составляет 128×128, он не может дополнительно разделяться на двоичное дерево/троичное дерево. Причина этого состоит в том, что хотя листовой узел QT делится, он превышает MaxBtSize и MaxTtSize (т.е., 64×64). В других случаях, листовой узел QT может дополнительно разделяться на дерево множественного типа. Соответственно, листовой узел QT является корневым узлом для дерева множественного типа, и листовой узел QT может иметь значение 0 глубины дерева множественного типа (mttDepth). Если глубина дерева множественного типа достигает MaxMttDepth (например, 4), дополнительное разделение не может больше рассматриваться. Если ширина узла дерева множественного типа равна MinBtSize и меньше или равна 2×MinTtSize, дополнительное горизонтальное разделение не может больше рассматриваться. Если высота узла дерева множественного типа равна MinBtSize и меньше или равна 2×MinTtSize, дополнительное вертикальное разделение не может больше рассматриваться.
[121] Фиг. 6 является вариантом осуществления, к которому может применяться раскрытие, и является диаграммой, иллюстрирующей способ ограничения разделения двоичного дерева.
[122] Со ссылкой на фиг. 6, чтобы обеспечить возможность схемы конвейера блока яркости 64×64 и цветности 32×32 в аппаратном декодере, разделение TT может быть ограничено в специальном случае. Например, если ширина или высота блока кодирования яркости больше, чем предварительно установленное конкретное значение (например, 32, 64), разделение TT может быть ограничено, как проиллюстрировано на фиг. 6.
[123] В настоящем документе, схема дерева кодирования может поддерживать то, что блок яркости и цветности имеет отдельную структуру дерева блоков. В отношении P- и B-вырезок, CTB яркости и цветности в одной CTU могут ограничиваться, чтобы иметь ту же самую структуру дерева кодирования. Однако, в отношении I-вырезок, блоки яркости и цветности могут иметь отдельные структуры дерева блоков. Если применяется режим отдельного дерева блоков, CTB яркости может разделяться на CU на основе конкретной структуры дерева кодирования. CTB цветности может разделяться на CU цветности на основе другой структуры дерева кодирования. Это может означать, что CU в I-вырезке может быть сконфигурирована с блоком кодирования компонента яркости или блоками кодирования двух компонентов цветности, а CU в P- или B-вырезке может быть сконфигурирована с блоками трех компонентов цветности.
[124] В “Разбиении CTU с использованием структуры дерева”, была описана структура дерева кодирования квадродерева с деревом множественного типа, но структура, в которой разделятся CU, не ограничена этим. Например, структура BT и структура TT могут интерпретироваться как концепция, включенная в структуру дерева множественного разбиения (MPT), и CU может интерпретироваться как разделяемая посредством структуры QT и структуры MPT. В одном примере, в котором CU разделяется посредством структуры QT и структуры MPT, структура разбиения может определяться путем сигнализации синтаксического элемента (например, MPT_split_type), включающего в себя информацию, указывающую, на сколько блоков делится листовой узел структуры QT, и синтаксического элемента (например, MPT_split_mode), включающего в себя информацию, указывающую, в каком из вертикального и горизонтального направлений делится листовой узел структуры QT.
[125] В другом примере, CU может разделяться с использованием способа, отличного от способа структуры QT, структуры BT или структуры TT. То есть, в отличие от случая, где CU более глубокой глубины разделяется как 1/4 размера CU более мелкой глубины на основе структуры QT, или CU более глубокой глубины разделяется как 1/2 размера CU более мелкой глубины на основе структуры BT, или CU более глубокой глубины разделяется как 1/4 или 1/2 размера CU более мелкой глубины на основе структуры TT, CU более глубокой глубины может разделяться как 1/5, 1/3, 3/8, 3/5, 2/3 или 5/8 размера CU более мелкой глубины. Способ разделения CU не ограничен этим.
[126] Если часть блока узла дерева превышает нижнюю или правую границу картинки, соответствующий блок узла дерева может быть ограничен так, что выборки всех закодированных CU расположены в пределах границ картинки. В этом случае, например, может применяться следующее правило разделения.
[127] - Если часть блока узла дерева превышает как нижнюю, так и правую границы картинки,
[128] - Если блок является узлом QT, и размер блока больше, чем минимальный размер QT, блок вынужденно разделяется в режиме деления QT.
[129] - В противном случае, блок вынужденно разделяется в режиме SPLIT_BT_HOR
[130] - В противном случае, если часть блока узла дерева превышает нижние границы картинки,
[131] - Если блок является узлом QT, и размер блока больше, чем минимальный размер QT, и размер блока больше, чем максимальный размер BT, блок вынужденно разделяется в режиме деления QT.
[132] - В противном случае, если блок является узлом QT, и размер блока больше, чем минимальный размер QT, и размер блока меньше или равен максимальному размеру BT, блок вынужденно разделяется в режиме деления QT или режиме SPLIT_BT_HOR.
[133] - В противном случае (блок является узлом BTT, или размер блока меньше или равен минимальному размеру QT), блок вынужденно разделяется в режиме SPLIT_BT_HOR.
[134] - В противном случае, если часть блока узла дерева превышает правые границы картинки,
[135] - Если блок является узлом QT, и размер блока больше, чем минимальный размер QT, и размер блока больше, чем максимальный размер BT, блок вынужденно разделяется в режиме разделения QT.
[136] - В противном случае, если блок является узлом QT, и размер блока больше, чем минимальный размер QT, и размер блока меньше или равен максимальному размеру BT, блок вынужденно разделяется в режиме разделения QT или режиме SPLIT_BT_VER.
[137] - В противном случае (блок является узлом BTT, или размер блока меньше или равен минимальному размеру QT), блок вынужденно разделяется в режиме SPLIT_BT_VER.
[138] Между тем, структура блока кодирования квадродерева с деревом множественного типа может обеспечивать очень гибкую структуру разбиения блока. Вследствие типов разделения, поддерживаемых деревом множественного типа, тот же самый результат структуры блока кодирования может быть потенциально получен в зависимости от разных шаблонов разделения. Количество данных информации разбиения может быть уменьшено путем ограничения появлений таких избыточных шаблонов разделения. Это описано со ссылкой на следующий чертеж.
[139] Фиг. 7 является вариантом осуществления, в котором может применяться раскрытие, и является диаграммой, иллюстрирующей избыточные шаблоны разделения, которые могут появляться в разделении двоичного дерева и разделении троичного дерева.
[140] Как проиллюстрировано на фиг. 7, два уровня последовательных двоичных разделений в одном направлении имеют ту же самую структуру блока кодирования, что и двоичное разделение для разбиения по центру после троичного разделения. В таком случае, разделение двоичного дерева (в данном направлении) для разбиения по центру разделения троичного дерева может ограничиваться. Такое ограничение может применяться к CU всех картинок. Если такое конкретное разделение ограничено, сигнализация соответствующих синтаксических элементов может модифицироваться путем включения случая такого ограничения. Соответственно, количество битов, сигнализируемых для разбиения, может быть уменьшено. Например, как в примере, проиллюстрированном на фиг. 7, если разделение двоичного дерева для разбиения по центру CU ограничено, синтаксический элемент mtt_split_cu_binary_flag, указывающий, является ли разделение двоичным разделением или троичным разделением, не сигнализируется, и соответствующее значение может рассматриваться декодером как 0.
[141]
Предсказание
[142]
[143] Чтобы восстановить текущую единицу обработки, в которой выполняется декодирование, может использоваться декодированная часть текущей картинки или других картинок, включающих в себя текущую единицу обработки.
[144] Картинка (вырезка), использующая только текущую картинку для восстановления, то есть, на которой выполняется только внутрикадровое предсказание, может называться интра-картинкой или I-картинкой (вырезкой). Картинка (вырезка), использующая максимально один вектор движения и опорный индекс для предсказания каждой единицы, может называться предиктивной картинкой или Р-картинкой (вырезкой). Картинка (вырезка), использующая максимально два вектора движения и опорных индекса может называться би-предиктивной картинкой или В-картинкой (вырезкой).
[145] Интра-предсказание означает способ предсказания путем выведения текущего блока обработки из элемента данных (например, значения выборки) той же самой декодируемой картинки (или вырезки). То есть, этот способ означает способ предсказания значения пиксела текущего блока обработки со ссылкой на восстановленные области в текущей картинки.
[146] Далее, интер-предсказание описано более конкретно.
[147]
Интер-предсказание (или межкадровое предсказание)
[148]
[149] Интер-предсказание означает способ предсказания путем выведения текущего блока обработки на основе элемента данных (например, значения выборки или вектора движения) картинки, отличной от текущей картинки. То есть, этот способ означает способ предсказания значения пиксела текущего блока обработки со ссылкой на восстановленные области в другой восстановленной картинке, отличной от текущей картинки.
[150] Интер-предсказание (или межкадровое предсказание) является технологией для удаления избыточности, присутствующей между картинками, и, главным образом, выполняется посредством оценки движения и компенсации движения.
[151] Вариант осуществления раскрытия описывает подробную технологию способа интер-предсказания, описанного на фиг. 1 и 2. В случае декодера, вариант осуществления может быть описан посредством способа декодирования видео/изображения на основе интер-предсказания согласно фиг. 10 и интер-предсказателя в устройстве декодирования согласно фиг. 11. Кроме того, в случае кодера, вариант осуществления может быть описан посредством способа кодирования видео/изображения на основе интер-предсказания согласно фиг. 8 и интер-предсказателя в устройстве кодирования согласно фиг. 9. К тому же, данные, закодированные в соответствии с фиг. 8 и 9, могут храниться в форме битового потока.
[152] Предсказатель устройства кодирования/устройства декодирования может выводить выборку предсказания путем выполнения интер-предсказания в единице блока. Интер-предсказание может указывать предсказание, выведенное с использованием способа, зависимого от элементов данных (например, значений выборок или информации движения) картинки(ок), отличной от текущей картинки. Если интер-предсказание применяется к текущему блоку, предсказанный блок (массив выборок предсказания) для текущего блока может выводиться на основе опорного блока (массива опорных выборок), специфицированного вектором движения на опорной картинке, указанной индексом опорной картинки.
[153] В этом случае, чтобы уменьшить количество информации движения, передаваемой в режиме интер-предсказания, информация движения текущего блока может предсказываться в блоке, подблоке или единице выборки на основе корреляции между информацией движения соседнего блока и информацией движения текущего блока. Информация движения может включать в себя вектор движения и индекс опорной картинки. Информация движения может дополнительно включать в себя информацию типа интер-предсказания (L0-предсказание, L1-предсказание, Bi-предсказание).
[154] Если применяется интер-предсказание, соседний блок может включать в себя пространственный соседний блок, представленный в текущей картинке, и временный соседний блок, представленный в опорной картинке. Опорная картинка, включающая в себя опорный блок, и опорная картинка, включающая в себя временной соседний блок, может быть одной и той же или разной. Временной соседний блок может называться совмещенным опорным блоком или совмещенной CU (colCU). Опорная картинка, включающая в себя временной соседний блок, может называться совмещенной картинкой (colPic). Например, список кандидатов информации движения может быть сконфигурирован на основе соседних блоков текущего блока. Может сигнализироваться информация флага или индекса, указывающая, какой кандидат выбран (использован) для вывода вектора движения и/или индекса опорной картинки текущего блока.
[155] Интер-предсказание может выполняться на основе различных режимов предсказания. Например, в случае режима пропуска и режима объединения, информация движения текущего блока может быть той же самой, что и информация движения выбранного соседнего блока. В случае режима пропуска, в отличие от режима объединения, остаточный сигнал может не передаваться. В случае режима предсказания информации движения (предсказания вектора движения, MVP), вектор движения выбранного соседнего блока может использоваться в качестве предсказателя вектора движения, и может сигнализироваться разность векторов движения. В этом случае, вектор движения текущего блока может выводиться с использованием сумма предсказателя вектора движения и разности векторов движения.
[156] Фиг. 8 и 9 являются диаграммами, иллюстрирующими способ кодирования видео/изображения на основе интер-предсказания в соответствии с вариантом осуществления раскрытия и интер-предсказатель в устройстве кодирования в соответствии с вариантом осуществления раскрытия.
[157] Со ссылкой на фиг. 8 и 9, S801 может выполняться интер-предсказателем 180 устройства кодирования. S802 может выполняться процессором остатка устройства кодирования. Конкретно, S802 может выполняться вычитателем 115 устройства кодирования. В S803, информация предсказания может выводиться интер-предсказателем 180 и может кодироваться энтропийным кодером 190. В S803, остаточная информация может выводиться процессором остатка и может кодироваться энтропийным кодером 190. Остаточная информация является информацией об остаточных выборках. Остаточная информация может включать в себя информацию о квантованных коэффициентах преобразования для остаточных выборок.
[158] Как описано выше, остаточные выборки могут выводиться как коэффициенты преобразования посредством преобразователя 120 устройства кодирования. Коэффициенты преобразования могут выводиться как квантованные коэффициенты преобразования посредством квантователя 130. Информация о квантованных коэффициентах преобразования может кодироваться в энтропийном кодере 190 посредством процедуры кодирования остатка.
[159] Устройство кодирования выполняет интер-предсказание на текущем блоке (S801). Устройство кодирования может выводить режим интер-предсказания и информацию движения текущего блока и может генерировать выборки предсказания текущего блока. В этом случае, может выполняться процедура определения режима интер-предсказания, вывода информации движения и генерации выборки предсказания в то же самое время, и любая одна процедура может выполняться перед другой процедурой. Например, интер-предсказатель 180 устройства кодирования может включать в себя модуль 181 определения режима предсказания, модуль 182 вывода информации движения и модуль 183 вывода выборок предсказаний. Модуль 181 определения режима предсказания может определять режим предсказания для текущего блока. Модуль 182 вывода информации движения может выводить информацию движения текущего блока. Модуль 183 вывода выборок предсказаний может выводить выборки движения текущего блока.
[160] Например, интер-предсказатель 180 устройства кодирования может выполнять поиск в данной области (области поиска) опорных картинок на предмет блока, аналогичного текущему блоку, через оценку движения, и может выводить опорный блок, имеющий минимальную разность или разность данной опоры или меньше относительно текущего блока. Интер-предсказатель 180 может выводить индекс опорной картинки, указывающий опорную картинку, в которой расположен опорный блок, на основе опорного блока и может выводить вектор движения на основе разности местоположения между опорным блоком и текущим блоком. Устройство кодирования может определять режим, применяемый к текущему блоку, среди различных режимов предсказания. Устройство кодирования может сравнивать затраты RD для различных режимов предсказания и может определять оптимальный режим предсказания для текущего блока.
[161] Например, если режим пропуска или режим объединения применяется к текущему блоку, устройство кодирования может конфигурировать список кандидатов объединения, который будет описан далее, и может выводить опорный блок, имеющий минимальную разность или разность данной опоры или меньше относительно текущего блока, среди опорных блоков, указанных кандидатами объединения, включенными в список кандидатов объединения. В этом случае, может выбираться кандидат объединения, ассоциированный с выведенным опорным блоком. Информация индекса объединения, указывающая выбранного кандидата объединения, может генерироваться и сигнализироваться на устройство декодирования. Информация движения текущего блока может выводиться с использованием информации движения выбранного кандидата объединения.
[162] В качестве другого примера, если режим (A)MVP применяется к текущему блоку, устройство кодирования может конфигурировать список кандидатов (A)MVP, который будет описан далее, и может использовать вектор движения кандидата предсказателя вектора движения (mvp), выбранного среди кандидатов mvp, включенных в список кандидатов (A)MVP, в качестве mvp текущего блока. В этом случае, например, вектор движения, указывающий опорный блок, выведенный посредством оценки движения, может использоваться как вектор движения текущего блока. Кандидат mvp, включающий в себя вектор движения, имеющий наименьшую разность относительно вектора движения текущего блока, среди кандидатов mvp, может становиться выбранным кандидатом mvp. Может выводиться разность векторов движения (MVD), то есть, разность, полученная путем вычитания mvp из вектора движения текущего блока. В этом случае, информация о MVD может сигнализироваться на устройство декодирования. Более того, если применяется режим (A)MVP, значение индекса опорной картинки может быть сконфигурировано как информация индекса опорной картинки и может отдельно сигнализироваться на устройство декодирования.
[163] Устройство кодирования может выводить остаточные выборки на основе выборок предсказания (S802). Устройство кодирования может выводить остаточные выборки путем сравнения между исходными выборками текущего блока и выборками предсказания.
[164] Устройство кодирования кодирует информацию изображения, включающую в себя информацию предсказания и остаточную информацию (S803). Устройство кодирования может выводить закодированную информацию изображения в форме битового потока. Информация предсказания может включать в себя информацию об информации режима предсказания (например, флаг пропуска, флаг объединения или индекс режима) и информацию движения как информацию, относящуюся к процедуре предсказания. Информация, связанная с информацией движения, может включать в себя информацию выбора кандидата (например, индекс объединения, флаг mvp или индекс mvp), то есть, информацию для выведения вектора движения. Более того, информация, связанная с информацией движения, может включать в себя информацию о MVD и/или информацию индекса опорной картинки.
[165] Более того, информация, связанная с информацией движения, может включать в себя информацию, указывающую, применяется ли L0-предсказание, L1-предсказание или двунаправленное (би-) предсказание. Остаточная информация является информацией об остаточных выборках. Остаточная информация может включать в себя информацию о квантованных коэффициентах преобразования для остаточных выборок.
[166] Выведенный битовый поток может сохраняться в (цифровом) носителе хранения и передаваться на устройство декодирования или может передаваться на устройство декодирования по сети.
[167] Между тем, как описано выше, устройство кодирования может генерировать восстановленную картинку (включая восстановленные выборки и восстановленный блок) на основе опорных выборок и остаточных выборок. Это делается для выведения, в устройстве кодирования, тех же самых результатов предсказания, что и результаты, выполненные в устройстве декодирования. Соответственно, эффективность кодирования может быть улучшена. Соответственно, устройство кодирования может хранить восстановленную картинку (или восстановленные выборки и восстановленный блок) в памяти и может использовать восстановленную картинку в качестве опорной картинки для интер-предсказания. Как описано выше, процедура контурной фильтрации может дополнительно применяться к восстановленной картинке.
[168] Фиг. 10 и 11 являются диаграммами, иллюстрирующими способ декодирования видео/изображения на основе интер-предсказания в соответствии с вариантом осуществления раскрытия, и интер-предсказатель в устройстве декодирования в соответствии с вариантом осуществления раскрытия.
[169] Со ссылкой на фиг. 10 и 11, устройство декодирования может выполнять операцию, соответствующую операции, выполняемой в устройстве кодирования. Устройство декодирования может выполнять предсказание на текущем блоке на основе принятой информации предсказания и может выводить выборки предсказания.
[170] S1001-S1003 могут выполняться интер-предсказателем 260 устройства декодирования. Остаточная информация в S1004 может быть получена из битового потока энтропийным декодером 210 устройства декодирования. Процессор остатка устройства декодирования может выводить остаточные выборки для текущего блока на основе остаточной информации. Конкретно, деквантователь 220 процессора остатка может вывести коэффициенты преобразования путем выполнения деквантования на основе квантованных коэффициентов преобразования, выведенных на основе остаточной информации. Обратный преобразователь 230 процессора остатка может вывести остаточные выборки для текущего блока путем выполнения обратного преобразования на коэффициентах преобразования. S1005 может выполняться сумматором 235 или модулем восстановления устройства декодирования.
[171] Конкретно, устройство декодирования может определять режим предсказания для текущего блока на основе принятой информации предсказания (S1001). Устройство декодирования может определять, какой режим интер-предсказания применяется к текущему блоку, на основе информации режима предсказания в информации предсказания.
[172] Например, устройство декодирования может определять, применяется ли режим объединения или режим (A)MVP к текущему блоку, на основе флага объединения. Альтернативно, устройство декодирования может выбрать один из различных кандидатов режима интер-предсказания на основе индекса режима. Кандидаты режима интер-предсказания могут включать в себя режим пропуска, режим объединения и/или режим (A)MVP или могут включать в себя различные режимы интер-предсказания, которые будут описаны далее.
[173] Устройство декодирования выводит информацию движения текущего блока на основе определенного режима интер-предсказания (S1002). Например, если режим пропуска или режим объединения применяется к текущему блоку, устройство декодирования может сконфигурировать список кандидатов объединения, который будет описан далее, и выбрать одного из кандидатов объединения, включенных в список кандидатов объединения. Выбор может выполняться на основе информации выбора (индекса объединения). Информация движения текущего блока может выводиться на основе информации движения выбранного кандидата объединения. Информация движения выбранного кандидата объединения может использоваться как информация движения текущего блока.
[174] В качестве другого примера, если режим (A)MVP применяется к текущему блоку, устройство декодирования может сконфигурировать список кандидатов (A)MVP, который будет описан далее, и может использовать вектор движения кандидата предсказателя вектора движения (mvp), выбранного среди кандидатов mvp, включенных в список кандидатов (A)MVP, как mvp текущего блока. Выбор может выполняться на основе информации выбора (флага mvp или индекса mvp). В этом случае, устройство декодирования может вывести MVD текущего блока на основе информации о MVD. Устройство декодирования может вывести вектор движения текущего блока на основе mvp текущего блока и MVD. Кроме того, устройство декодирования может вывести индекс опорной картинки текущего блока на основе информации индекса опорной картинки. Картинка, указанная индексом опорной картинки в списке опорных картинок относительно текущего блока, может выводиться как опорная картинка, в качестве опоры для интер-предсказания текущего блока.
[175] Между тем, как будет описано далее, информация движения текущего блока может выводиться без конфигурирования списка кандидатов. В этом случае, информация движения текущего блока может выводиться в соответствии с процедурой, раскрытой в режиме предсказания, который будет описан далее. В этом случае, конфигурирование списка кандидатов, как описано выше, может опускаться.
[176] Устройство декодирования может генерировать выборки предсказания для текущего блока на основе информации движения текущего блока (S1003). В этом случае, устройство декодирования может выводить опорную картинку на основе индекса опорной картинки текущего блока и может выводить выборки предсказания текущего блока, указанные на опорной картинке вектором движения текущего блока. В этом случае, как будет описано далее, процедура фильтрации выборки предсказания может дополнительно выполняться на некоторых или всех выборках предсказания текущего блока в соответствии с обстоятельствами.
[177] Например, интер-предсказатель 260 устройства декодирования может включать в себя модуль 261 определения режима предсказания, модуль 262 вывода информации движения и модуль 263 вывода выборки предсказания. Устройство декодирования может определять режим предсказания текущего блока на основе информации режима предсказания, принятой от модуля 261 определения режима предсказания, может выводить информацию движения (вектор движения и/или индекс опорной картинки) текущего блока на основе информации, связанной с информацией движения, принятой от модуля 262 вывода информации движения. Модуль 263 вывода выборки предсказания может выводить выборки предсказания текущего блока.
[178] Устройство декодирования генерирует остаточные выборки для текущего блока на основе принятой остаточной информации (S1004). Устройство декодирования может генерировать восстановленные выборки для текущего блока на основе выборок предсказания и остаточных выборок и может генерировать восстановленную картинку на основе восстановленных выборок (S1005). После этого, как описано выше, процедура контурной фильтрации может дополнительно применяться к восстановленной картинке.
[179] Как описано выше, процедура интер-предсказания может включать в себя этап определения режима интер-предсказания, этап вывода информации движения в соответствии с определенным режимом предсказания и этап исполнения предсказания (генерации выборки предсказания) на основе выведенной информации движения.
[180]
Определение режима интер-предсказания
[181]
[182] Различные режимы интер-предсказания могут использоваться для предсказания текущего блока в картинке. Например, могут использоваться различные режимы, такие как режим объединения, режим пропуска, режим MVP и аффинный режим. Режим уточнения вектора движения на стороне декодера (DMVR), режим адаптивного разрешения вектора движения (AMVR) и т.д. могут дополнительно использоваться в качестве дополнительных режимов. Аффинный режим может называться режимом предсказания аффинного движения. Режим MVP может называться режимом расширенного предсказания вектора движения (AMVP).
[183] Информация режима предсказания, указывающая режим интер-предсказания текущего блока, может сигнализироваться от устройства кодирования на устройство декодирования. Информация режима предсказания может включаться в битовый поток и приниматься устройством декодирования. Информация режима предсказания может включать в себя информацию индекса, указывающую один из множества режимов кандидата. Альтернативно, режим интер-предсказания может указываться через иерархическую сигнализацию информации флага. В этом случае, информация режима предсказания может включать в себя один или более флагов.
[184] Например, флаг может дополнительно сигнализироваться, чтобы указывать, применяется ли режим пропуска, посредством сигнализации флага пропуска, чтобы указывать, применяется ли режим объединения, посредством сигнализации флага объединения, если режим пропуска не применяется, и чтобы указывать, что применяется режим MVP, если режим объединения не применяется, или для дополнительной идентификации. Аффинный режим может сигнализироваться как независимый режим или может сигнализироваться как режим, зависимый от режима объединения или режима MVP. Например, аффинный режим может быть сконфигурирован как один из списка кандидатов объединения или списка кандидатов MVP, как будет описано далее.
[185]
Выведение информации движения в соответствии с режимом интер-предсказания
[186]
[187] Интер-предсказание может выполняться с использованием информации движения текущего блока. Устройство кодирования может выводить оптимальную информацию движения для текущего блока в соответствии с процедурой оценки движения. Например, устройство кодирования может выполнять поиск опорного блока, имеющего сходную корреляцию с использованием исходного блока в исходной картинке, для текущего блока в дробной пиксельной единице в определенном диапазоне поиска в опорной картинке. Соответственно, устройство кодирования может выводить информацию движения. Сходство блока может выводиться на основе разности между значениями выборок на основе фазы. Например, сходство блока может вычисляться на основе SAD между текущим блоком (или шаблоном текущего блока) и опорным блоком (или шаблоном опорного блока). В этом случае, информация движения может выводиться на основе опорного блока с наименьшим SAD в области поиска. Выведенная информация движения может сигнализироваться на устройство декодирования с использованием нескольких способов на основе режима интер-предсказания.
[188]
Режим объединения и режим пропуска
[189]
[190] Фиг. 12 является вариантом осуществления, к которому применяется раскрытие, и является диаграммой для описания соседних блоков, используемых в режиме объединения или режиме пропуска.
[191] Если применяется режим объединения, информация движения текущего блока предсказания не передается напрямую, и информация движения текущего блока предсказания выводится с использованием информации движения соседнего блока предсказания. Соответственно, информация движения текущего блока предсказания может указываться путем передачи информации флага, чтобы уведомить, что был использован режим объединения, и индекса объединения, чтобы уведомить, какой соседний блок предсказания был использован.
[192] В варианте осуществления раскрытия,
[193] В варианте осуществления раскрытия, кодер может выполнять поиск блока кандидата объединения, используемого для вывода информации движения текущего блока предсказания, чтобы выполнить режим объединения. Например, максимально до 5 блоков кандидата объединения могут использоваться, но раскрытие не ограничено этим. Более того, максимальное количество блоков кандидата объединения может передаваться в заголовке вырезки (или заголовке группы мозаичных элементов), и раскрытие не ограничено этим. После поиска блоков кандидата объединения, кодер может генерировать список кандидатов объединения и может выбирать блок кандидата объединения, имеющий наименьшие затраты, среди блоков кандидата объединения в качестве конечного блока кандидата объединения.
[194] Вариант осуществления раскрытия обеспечивает различные варианты осуществления блоков кандидата объединения, формирующих список кандидатов объединения.
[195] Список кандидатов объединения может использовать, например, 5 блоков кандидата объединения. Например, могут использоваться 4 пространственных кандидата объединения и 1 временной кандидат объединения. Для подробного примера, в случае пространственного кандидата объединения, блоки, проиллюстрированные на фиг. 12, могут использоваться в качестве пространственных кандидатов объединения.
[196] Фиг. 13 является блок-схемой последовательности операций, иллюстрирующей способ формирования списка кандидатов объединения в соответствии с вариантом осуществления, в котором применяется раскрытие.
[197] Со ссылкой на фиг. 13, устройство кодирования (кодер/декодер) проводит поиск пространственных соседних блоков текущего блока и вставляет выведенные пространственные кандидаты объединения в список кандидатов объединения (S1301). Например, пространственные соседние блоки могут включать в себя нижний левый угловой соседний блок, левый соседний блок, верхний правый угловой соседний блок, верхний соседний блок и верхний левый угловой соседний блок текущего блока. В этом случае, это является примером, и дополнительные соседние блоки, такие как правый соседний блок, нижний соседний блок и нижний правый соседний блок, в дополнение к пространственным соседним блокам могут дополнительно использоваться в качестве пространственных соседних блоков. Устройство кодирования может обнаруживать доступные блоки путем проведения поиска пространственных соседних блоков на основе приоритета и может выводить информацию движения обнаруженных блоков в качестве пространственных кандидатов объединения. Например, кодер и декодер могут проводить поиск 5 блоков, проиллюстрированных на фиг. 12, в последовательности A1, B1, B0, A0 и B2 и может конфигурировать список кандидатов объединения путем последовательного индексирования доступных кандидатов.
[198] Устройство кодирования выполняет поиск временного соседнего блока текущего блока и вставляет выведенного временного кандидата объединения в список кандидатов объединения (S1302). Временной соседний блок может быть расположен на опорной картинке, то есть, картинке, отличной от текущей картинки, в которой расположен текущий блок. Опорная картинка, в которой расположен временной соседний блок, может называться совмещенной картинкой или col-картинкой. Поиск временного соседнего блока может проводиться в последовательности: нижний правый угловой соседний блок и нижний правый центральный блок совмещенного блока для текущего блока на col-картинке.
[199] Между тем, если применяется сжатие данных движения, конкретная информация движения может сохраняться в col-картинке как репрезентативная информация движения для каждой данной единицы сохранения. В этом случае, нет необходимости сохранять информацию движения для всех блоков в данной единице сохранения, и таким образом может быть получен эффект сжатия данных движения. В этом случае, данная единица сохранения может быть предварительно определена как единица выборки 16×16 или единица выборки 8×8, например, или информация размера для данной единицы сохранения может сигнализироваться от кодера на декодер. Если применяется сжатие данных движения, информация движения временного соседнего блока может замещаться на репрезентативную информацию движения данной единицы сохранения, в которой находится временной соседний блок.
[200] То есть, в этом случае, в одном аспекте реализации, после того как выполнен арифметический сдвиг вправо на данное значение на основе координат (верхнее левое положение выборки) временного соседнего блока, а не блока предсказания, в котором расположены координаты временного соседнего блока, временной кандидат объединения может выводиться на основе информации движения блока предсказания, который охватывает арифметически сдвинутое влево местоположение. Например, если данная единица хранения является единицей выборки 2n×2n, в предположении, что координатами временного соседнего блока являются (xTnb, yTnb), информация движения блока предсказания, расположенного в ((xTnb>>n)<<n), (yTnb>>n)<<n)), то есть, модифицированном местоположении, может использоваться для временного кандидата объединения.
[201] Конкретно, например, если данная единица хранения является единицей выборки 16×16, в предположении, что координатами временного соседнего блока являются (xTnb, yTnb), информация движения блока предсказания, расположенного в ((xTnb>>4)<<4), (yTnb>>4)<<4)), то есть, модифицированном местоположении, может использоваться для временного кандидата объединения. Альтернативно, например, если данная единица хранения является единицей выборки 8×8, в предположении, что координатами временного соседнего блока являются (xTnb, yTnb), информация движения блока предсказания, расположенного в ((xTnb>>3)<<3), (yTnb>>3)<<3)), то есть, модифицированном местоположении, может использоваться для временного кандидата объединения.
[202] Устройство кодирования может проверять, является ли текущее количество кандидатов объединения меньшим, чем максимальное количество кандидатов объединения (S1303). Максимальное количество кандидатов объединения может быть предопределенным или может сигнализироваться из кодера на декодер. Например, кодер может генерировать информацию о максимальном количестве кандидатов объединения, может кодировать информацию и может передавать информацию на декодер в форме битового потока. Если максимальное количество кандидатов объединения заполнено, процесс добавления кандидатов не может выполняться.
[203] Если, в результате проверки, текущее количество кандидатов объединения меньше, чем максимальное количество кандидатов объединения, устройство кодирования вставляет добавляемого кандидата объединения в список кандидатов объединения (S1304). Добавленным кандидатом объединения может быть, например, ATMVP, комбинированный би-предиктивный кандидат объединения (если типом вырезки для текущей вырезки является B-тип) и/или кандидат объединения нулевого вектора.
[204] Если, в результате проверки, текущее количество кандидатов объединения не меньше, чем максимальное количество кандидатов объединения, устройство кодирования может завершать конфигурирование списка кандидатов объединения. В этом случае, кодер может выбирать оптимального кандидата объединения, среди кандидатов объединения, формирующих список кандидатов объединения, на основе затрат по критерию искажение-скорость (RD), и может сигнализировать на декодер информацию выбора (например, индекс объединения), указывающую выбранного кандидата объединения. Декодер может выбрать оптимального кандидата объединения на основе списка кандидатов объединения и информации выбора.
[205] Информация движения выбранного кандидата объединения может использоваться в качестве информации движения текущего блока. Как описано выше, выборки предсказаний текущего блока могут выводиться на основе информации движения текущего блока. Кодер может выводить остаточные выборки текущего блока на основе выборок предсказаний и может сигнализировать, на декодер, остаточную информацию, связанную с остаточными выборками. Декодер может генерировать восстановленные выборки на основе остаточных выборок, выведенных на основе остаточной информации и выборок предсказаний. Как описано выше, декодер может генерировать восстановленную картинку на основе восстановленных выборок.
[206] Если применяется режим пропуска, информация движения текущего блока может выводиться с использованием того же самого способа, что и в случае, когда применяется режим объединения. В этом случае, если применяется режим пропуска, остаточный сигнал для соответствующего блока опускается. Соответственно, выборки предсказания могут непосредственно использоваться как восстановленные выборки.
[207]
Режим MVP
[208]
[209] Фиг. 14 является блок-схемой последовательности операций, иллюстрирующей способ формирования списка кандидатов объединения в соответствии с вариантом осуществления, в котором применяется раскрытие.
[210] Если применяется режим предсказания вектора движения (MVP), список кандидатов предсказателя вектора движения (mvp) может генерироваться на основе вектора движения восстановленного пространственного соседнего блока (например, соседнего блока, описанного на фиг. 12) и/или вектора движения, соответствующего временному соседнему блоку (или Col-блоку). То есть, вектор движения восстановленного пространственного соседнего блока и/или вектор движения временного соседнего блока может использоваться как кандидат предсказателя вектора движения.
[211] Информация о предсказании может включать в себя информацию выбора (например, флаг MVP или индекс MVP), указывающую оптимального кандидата предсказателя вектора движения, выбранного среди кандидатов предсказателя вектора движения, включенных в список. В этом случае, предсказатель может выбрать предсказатель вектора движения текущего блока, среди кандидатов предсказателя вектора движения, включенных в список кандидатов вектора движения, с использованием информации выбора. Предсказатель устройства кодирования может вычислять разность векторов движения (MVD) между вектором движения текущего блока и предсказателем вектора движения, может кодировать MVD и может выводить закодированный MVD в форме битового потока. То есть, MVD может вычисляться как значение, полученное путем вычитания предсказателя вектора движения из вектора движения текущего блока. В этом случае, предсказатель устройства декодирования может получать разность векторов движения, включенную в информацию о предсказании, и может выводить вектор движения текущего блока путем суммирования разности векторов движения и предсказателя вектора движения. Предсказатель устройства декодирования может получать или выводить индекс опорной картинки, указывающий опорную картинку, из информации о предсказании. Например, список кандидатов предсказателя вектора движения может быть сконфигурирован, как проиллюстрировано на фиг. 14.
[212]
Предсказание аффинного движения
[213]
[214] Фиг. 15 иллюстрирует пример моделей движения в соответствии с вариантом осуществления раскрытия.
[215] В традиционной технологии сжатия изображений (например, высокоэффективное кодирование видео (HEVC)), один вектор движения используется, чтобы представлять движение блока кодирования. Хотя оптимальное движение единицы блока может быть представлено с использованием способа, использующего один вектор движения для каждого блока, это может не быть действительным оптимальным движением каждого элемента картинки. Соответственно, если оптимальный вектор движения определен в единице элемента картинки, эффективность кодирования может быть повышена. Соответственно, вариант осуществления раскрытия описывает способ предсказания движения кодирования или декодирования сигнала видео с использованием модели множественного движения. В частности, вектор движения может быть представлен в каждой единице элемента картинки блока или единице подблока с использованием вектора движения в 2-4 контрольных точках. Схема предсказания с использованием вектора движения множества контрольных точек может называться предсказанием аффинного движения или аффинным предсказанием.
[216] Модель аффинного движения в соответствии с вариантом осуществления раскрытия может представлять 4 модели движения, такие как проиллюстрированные на фиг. 15. Модель аффинного движения для представления трех движений (перенос, масштабирование и вращение) среди движений, которые могут быть представлены моделью аффинного движения, называется (упрощенной) моделью сходства аффинного движения. При описании вариантов осуществления раскрытия, (упрощенная) модель сходства аффинного движения в основном описана для удобства описания, но раскрытие не ограничено этим.
[217]
[218] Фиг. 16 иллюстрирует пример вектора движения контрольной точки для предсказания аффинного движения в соответствии с вариантом осуществления раскрытия.
[219] Как на фиг. 16, в предсказании аффинного движения, вектор движения местоположения (или подблока) элемента картинки, включенного в блок, может определяться с использованием пары v_0 и v_1 двух векторов движения контрольной точки (CPMV). В этом случае, набор векторов движения может упоминаться как аффинное поле векторов движения (MVF). В этом случае, аффинное поле векторов движения может определяться с использованием Уравнения 1.
[220] Уравнение 1
[221] В Уравнении 1, v_0(v_0={v_0x, v_0y}) указывает вектор движения CPMV0 в первой контрольной точке верхнего левого местоположения текущего блока 1300. v_1(v_1={v_1x, v_1y}) указывает вектор движения CPMV1 во второй контрольной точке верхнего правого местоположения текущего блока 1300. Кроме того, w указывает ширину текущего блока 1300. v(v={v_x, v_y}) указывает вектор движения в местоположении {x, y}. Вектор движения единицы подблока (или элемента картинки) может выводиться с использованием Уравнения 1. В одном варианте осуществления, точность вектора движения может округляться как точность 1/16.
[222]
[223] Фиг. 17 иллюстрирует пример вектора движения для каждого подблока блока, к которому было применено предсказание аффинного движения в соответствии с вариантом осуществления раскрытия.
[224] Со ссылкой на фиг. 17, в процессе кодирования или декодирования, аффинное поле векторов движения (MVF) может определяться в единице элемента картинки или единице блока. То есть, в предсказании аффинного движения, вектор движения текущего блока может выводиться в единице элемента картинки или единице подблока.
[225] Если аффинное поле векторов движения определяется в единице элемента картинки, вектор движения может быть получен на основе значения каждого элемента картинки. В случае единицы блока, вектор движения соответствующего блока может быть получен на основе значения центрального элемента картинки блока. В настоящем документе, предполагается, что аффинное поле векторов движения (MVF) определяется в единице 4*4 блока как на фиг. 17. В этом случае, это сделано для удобства описания, и вариант осуществления раскрытия не ограничен этим. Фиг. 17 иллюстрирует пример случая, где блок кодирования сконфигурирован с выборками 16*16, и аффинное поле векторов движения (MVF) определяется в единице блока размером 4*4.
[226] Предсказание аффинного движения может включать в себя режим аффинного объединения (или AF_MERGE) и аффинный интер-режим (или AF_INTER. AF_INTER-режим может включать в себя AF_4_INTER-режим с использованием модели движения на основе 4 параметров и AF_6_INTER-режим с использованием модели движения на основе 6 параметров.
[227]
[228] Режим аффинного объединения
[229] AF_MERGE определяет вектор движения контрольной точки (CPMV) на основе модели аффинного движения соседнего блока, закодированного как предсказание аффинного движения. Соседний блок, аффинно-закодированный в последовательности поиска, может использоваться для AF_MERGE. Когда один или более соседних блоков закодированы как предсказание аффинного движения, текущий блок может быть закодирован как AF_MERGE.
[230] То есть, если применяется режим аффинного объединения, CPMV текущего блока могут выводиться с использованием CPMV соседнего блока. В этом случае, CPMV соседнего блока могут использоваться как CPMV текущего блока без какого-либо изменения, и CPMV соседнего блока могут модифицироваться на основе размера соседнего блока и размера текущего блока и могут использоваться как CPMV текущего блока.
[231] Фиг. 18 иллюстрирует пример соседних блоков, используемых для предсказания аффинного движения в режиме аффинного объединения в соответствии с вариантом осуществления раскрытия.
[232] В режиме аффинного объединения (AF_MERGE), кодер может выполнять кодирование как в следующем процессе.
[233] Этап-1: Сканировать соседние блоки A-E 1810, 1820, 1830, 1840 и 1850 текущего блока 1800 кодирования по алфавиту и определить блок, закодированный первым в соответствии с аффинным режимом предсказания, на основе последовательности сканирования, как блок-кандидат аффинного объединения (AF_MERGE)
[234] Этап-2: Определить модель аффинного движения с использованием вектора движения контрольной точки (CPMV) определенного блока-кандидата
[235] Этап-3: Определить вектор движения контрольной точки (CPMV) текущего блока 1800 на основе модели аффинного движения блока-кандидата и определить MVF текущего блока 1800
[236]
[237] Фиг. 19 иллюстрирует пример блока, на котором выполняется предсказание аффинного движения с использованием соседних блоков, к которым было применено предсказание аффинного движения в соответствии с вариантом осуществления раскрытия.
[238] Например, как на фиг. 19, если блок А 1920 был закодирован в соответствии с аффинным режимом, после того как блок А 1920 определен как блок-кандидат, модель аффинного движения может выводиться с использованием векторов движения контрольных точек (CPMV) (например, v2 и v3) блока А 1920, и могут определяться векторы движения контрольных точек (CPMV) v0 и v1 текущего блока 1900. Аффинное поле векторов движения (MVF) текущего блока 1900 может определяться на основе векторов движения контрольных точек (CPMV) текущего блока 1900, и может выполняться кодирование.
[239]
[240] Фиг. 20 является диаграммой для описания способа генерации списка кандидатов объединения с использованием соседнего аффинного блока кодирования в соответствии с вариантом осуществления раскрытия.
[241] Со ссылкой на фиг. 20, если пара CPMV определена с использованием аффинного кандидата объединения, то могут использоваться кандидаты, такие как проиллюстрированные на фиг. 20. На фиг. 20, предполагается, что последовательность сканирования списка кандидатов была установлена как A, B, C, D и E. В этом случае, раскрытие не ограничено этим, и различные последовательности могут быть предварительно установлены.
[242] В варианте осуществления, если количество кандидатов (далее упоминаемых как аффинные кандидаты), закодированных в соответствии с аффинным режимом (или аффинным предсказанием), доступных в соседних блоках (т.е., A, B, C, D, E), равно 0, то режим аффинного объединения текущего блока может пропускаться. Если количество доступных аффинных кандидатов равно одному (например, A), то модель движения соответствующего кандидата может использоваться, чтобы выводить векторы движения контрольных точек (CPMV_0 и CPMV_1) текущего блока. В этом случае, индекс, указывающий соответствующего кандидата, может не требоваться (или кодироваться). Если количество доступных аффинных кандидатов равно двум или более, то два кандидата в последовательности сканирования могут быть сконфигурированы как список кандидатов для AF_MERGE. В этом случае, информация выбора кандидата, такая как индекс, указывающий кандидата, выбранного в списке кандидатов, может сигнализироваться. Информация выбора может быть информацией флага или индекса и может называться AF_MERGE_flag или AF_merge_idx.
[243] В варианте осуществления раскрытия, компенсация движения для текущего блока может выполняться на основе размера подблока. В этом случае, выводится размер подблока аффинного блока (т.е., текущего блока). Если каждое из ширины и высоты подблока больше, чем 4 выборки яркости, вектор движения для каждого подблока может выводиться, и компенсация движения на основе DCT-IF (1/16 пел для яркости и 1/32 для цветности) может выполняться на подблоке. Если нет, компенсация движения на основе расширенного билинейного фильтра интерполяции может выполняться на всех аффинных блоках.
[244] В варианте осуществления раскрытия, если флаг объединения/пропуска имеет значение “истинно”, и как ширина, так и высота CU больше или равны 8, на уровне CU, аффинный флаг сигнализируется через битовый поток, указывая, используется ли режим аффинного объединения. Когда CU закодирована как AF_MERGE, индекс кандидата объединения, имеющий максимальное значение ‘5’, сигнализируется, чтобы указывать, что кандидат информации движения используется для CU в списке аффинных кандидатов объединения.
[245]
[246] Фиг. 21 и 22 являются диаграммами для описания способа создания списка аффинных кандидатов объединения с использованием соседнего блока, закодированного посредством аффинного предсказания в соответствии с вариантом осуществления раскрытия.
[247] Со ссылкой на фиг. 21, список аффинных кандидатов объединения конфигурируется посредством следующих этапов.
[248] 1) Вставка основанного на модели аффинного кандидата
[249] Основанный на модели аффинный кандидат означает, что кандидат выводится из действительного соседнего восстановленного блока, закодированного в соответствии с аффинным режимом. Как проиллюстрировано на фиг. 21, последовательность сканирования для блока кандидата от левого A, верхнего B, верхнего правого C и нижнего левого D к верхнему левому E.
[250] Если соседний нижний левый блок A закодирован в аффинном режиме с 6 параметрами, то получают векторы движения (v_4, v_5, v_6) верхнего левого угла, верхнего правого угла и нижнего левого угла CU, включающей в себя блок А. Векторы движения (v_0, v_1, v_2) верхнего левого угла текущего блока вычисляются на основе векторов движения (v_4, v_5, и v_6) в соответствии с аффинной моделью с 6 параметрами.
[251] Если соседний нижний левый блок A закодирован в 4-параметрическом аффинном режиме, то получают векторы движения (v_4, v_5) верхнего левого угла и верхнего правого угла CU, включающей в себя блок А. Векторы движения (v_0, v_1) верхнего левого угла на текущем блоке вычисляются на основе векторов движения (v_4, v_5) в соответствии с 4-параметрической аффинной моделью.
[252] 2) Вставка основанных на контрольных точках аффинных кандидатов
[253] Со ссылкой на фиг. 21, основанный на контрольных точках кандидат означает, что кандидат сконфигурирован путем комбинации соседней информации движения контрольных точек.
[254] Информация движения контрольных точек сначала выводится из назначенных пространственных соседних блоков и временного соседнего блока, проиллюстрированных на фиг. 21. CP_k (k=1, 2, 3, 4) указывает k-ую контрольную точку. Более того, A, B, C, D, E, F и G являются пространственным местоположением для предсказания CP_k (k=1, 2, 3), и H является временным местоположением для предсказания CP4.
[255] Координатами CP_1, CP_2, CP_3 и CP_4 являются (0, 0), (W, 0), (H, 0) и (W, H), соответственно. В этом случае, W и H являются шириной и высотой текущего блока.
[256] Информацию движения каждой контрольной точки получают на основе следующего приоритета.
[257] В отношении CP_1, проверка приоритета представляет собой A→B→C, и A используется, если A доступно. Если нет и если B доступно, то используется B. Если как A, так и B недоступны, то используется С. Если все три кандидата недоступны, информация движения CP_1 не может быть получена.
[258] В отношении CP_2, проверка приоритета представляет собой E→D.
[259] В отношении CP_3, проверка приоритета представляет собой G→F.
[260] В отношении CP_4, используется H.
[261] Во-вторых, комбинации контрольных точек используются, чтобы конфигурировать модель движения.
[262] Векторы движения двух контрольных точек необходимы для вычисления параметров преобразования в 4-параметрической аффинной модели. Две контрольные точки могут выбираться из одной из следующих 6 комбинаций {CP_1, CP_4}, {CP_2, CP_3}, {CP_1, CP_2}, {CP_2, CP_4}, {CP_1, CP_3} и {CP_3, CP_4}. Например, использование контрольных точек CP_1 и CP_2 в формировании 4-параметрической модели аффинного движения, обозначается как “аффинное (CP_1, CP_2)”.
[263] Векторы движения трех контрольных точек необходимы для вычисления параметров преобразования в 6-параметрической аффинной модели. Три контрольные точки могут выбираться из одной из следующих 4 комбинаций {CP_1, CP_2, CP_4}, {CP_1, CP_2, CP_3}, {CP_2, CP_3, CP_4} и {CP_1, CP_3, CP_4}. Например, использование контрольных точек CP_1, CP_2 и CPv3 в формировании 6-параметрической модели аффинного движения обозначается как “аффинное (CP_1, CP_2, CP_3)”.
[264] Кроме того, в варианте осуществления раскрытия, если аффинный кандидат объединения представлен в режиме аффинного объединения, это может всегда рассматриваться как 6-параметрический аффинный режим.
[265]
Аффинный интер-режим
[266]
[267] Фиг. 23 иллюстрирует пример соседних блоков, используемых для предсказания аффинного движения в аффинном интер-режиме в соответствии с вариантом осуществления раскрытия.
[268] Со ссылкой на фиг. 23, предсказание аффинного движения может включать в себя режим аффинного объединения (или AF_MERGE) и аффинный интер-режим (или AF_INTER). В аффинном интер-режиме (AF_INTER), после того как определены предсказание вектора движения 2 контрольных точек (CPMVP) и CPMV, разность векторов движения контрольных точек (CPMVD), соответствующая разности, может передаваться из кодера на декодер. Подробный процесс кодирования аффинного интер-режима (AF_INTER) может быть таким, как описано ниже.
[269] Этап-1: Определить кандидат пары двух CPMVP
[270] Этап-1.1: Определить максимум из 12 комбинаций кандидатов CPMVP (см. Уравнение 2)
[271] Уравнение 2
[272] В Уравнении 2, v_0 указывает вектор движения CPMV0 в верхней левой контрольной точке 2310 текущего блока 2300. v_1 указывает вектор движения CPMV1 в верхней правой контрольной точке 2311 текущего блока 2300. v_2 указывает вектор движения CPMV2 в контрольной точке 2312 внизу слева текущего блока 2300. v_A указывает вектор движения соседнего блока A 2320, соседнего сверху слева от верхней левой контрольной точки 2310 текущего блока 2300. v_B указывает вектор движения соседнего блока B 2322, соседнего сверху от верхней левой контрольной точки 2310 текущего блока 2300. v_C указывает вектор движения соседнего блока C 2324, соседнего слева от верхней левой контрольной точки 2310 текущего блока 2300. v_D является вектором движения соседнего блока D 2326, соседнего сверху от верхней правой контрольной точки 2311 текущего блока 2300. v_E указывает вектор движения соседнего блока E 2328, соседнего сверху справа от верхней правой контрольной точки 2311 текущего блока 2300. v_F указывает вектор движения соседнего блока F 2330, соседнего слева от нижней левой контрольной точки 2312 текущего блока 2300. v_G указывает вектор движения соседнего блока G 2332, соседнего слева от нижней левой контрольной точки 2312 текущего блока 2300.
[273] Этап-1.2: Отсортировать комбинации кандидатов CPMVP на основе значения, имеющего малое значение разности (DV), и использовать верхние два кандидата (см. Уравнение 3 ниже)
[274] Уравнение 3
[275] v_0x указывает элемент оси x вектора движения (V0 или CPMV0) в верхней левой контрольной точке 2310 текущего блока 2300. v_1x указывает элемент оси x вектора движения (V1 или CPMV1) в верхней правой контрольной точке 2311 текущего блока 2300. v_2x указывает элемент оси x вектора движения (V_2 или CPMV_2) в нижней левой контрольной точке 2312 текущего блока 2300. v_0y указывает элемент оси y вектора движения (V_0 или CPMV_0) в верхней левой контрольной точке 2310 текущего блока 2300. v_1y указывает элемент оси y вектора движения (V_1 или CPMV_1) в верхней правой контрольной точке 2311 текущего блока 2300. v_2y указывает элемент оси y вектора движения (V_2 или CPMV_2) в нижней левой контрольной точке 2312 текущего блока 2300. w указывает ширину текущего блока 2300. h указывает высоту текущего блока 2300.
[276] Этап-2: Использовать список кандидатов AMVP, когда кандидат пары предсказателей вектора движения контрольной точки (CPMVP) меньше 2
[277] Этап-3: Определить предсказатель вектора движения контрольной точки (CPMVP) каждого из двух кандидатов и оптимально выбрать кандидата, имеющего меньшее значение, путем сравнения стоимости RD и CPMV
[278] Этап-4: Передать индекс, соответствующий оптимальному кандидату, и разность векторов движения контрольных точек (CPMVD)
[279] В варианте осуществления раскрытия, обеспечен процесс формирования кандидата CPMVP в AF_INTER. Идентично с AMVP, количество кандидатов составляет 2, и сигнализируется индекс, указывающий местоположение списка кандидатов.
[280] Процесс формирования списка кандидатов CPMVP является следующим.
[281] 1) Проверяется, закодированы ли соседние блоки как предсказание аффинного движения, путем сканирования соседних блоков. Если сканируемые блоки закодированы как аффинное предсказание, пара векторов движения текущего блока выводится из модели аффинного движения сканированного соседнего блока, пока количество кандидатов не станет 2.
[282] 2) Если количество кандидатов меньше 2, выполняется процесс конфигурирования кандидата. Более того, в варианте осуществления раскрытия, используется 4-параметрический аффинный интер-режим (2 контрольными точками), чтобы предсказывать модель движения приближения/отдаления и вращения и контент. Как проиллюстрировано на фиг. 1, поле аффинного движения блока описано двумя векторами движения контрольных точек.
[283] Поле векторов движения (MVF) блока описывается Уравнением 1, описанным выше.
[284] В традиционной технологии, режим расширенного предсказания вектора движения (AMVP) необходим, чтобы сканировать индекс предсказания вектора движения (MVP) и разности векторов движения (MVD). Когда режим AMVP применяется в раскрытии, аффинный флаг (affine_flag) сигнализируется, чтобы указывать, используется ли аффинное предсказание. Если аффинное предсказание применяется, то сигнализируются синтаксисы inter_dir, ref_idx, mvp_index и две MVD (mvd_x и mvd_y). Генерируется список кандидатов пары аффинных MVP, включающий в себя две пары аффинных MVP. Сигнализированный mvp_index используется для выбора одной из двух пар аффинных MVP. Пара аффинных MVP генерируется двумя типами кандидатов аффинных MVP. Один является пространственным унаследованным аффинным кандидатом, и другой является выведенным из угла аффинным кандидатом. Если соседние CU закодированы в аффинном режиме, то могут генерироваться пространственные унаследованные аффинные кандидаты. Модель аффинного движения соседнего аффинно-кодируемого блока используется, чтобы генерировать векторы движения пары MVP 2 контрольных точек. MV пары MVP 2 контрольных точек пространственного унаследованного аффинного кандидата выводятся с использованием следующих уравнений.
[285] Уравнение 4
V
=V
+(VB
-V
)*(posCurCU_Y-posRefCU_Y)/RefCU_height+ (V
-V
)*(posCurCU_X-posRefCU_X)/RefCU_width
0x
B0x
2_x
B0x
B1x
B0x
[286] Уравнение 5
V
=V
+(V
-V
)*(posCurCU_Y-posRefCU_Y)/RefCU_height+ (V
-V
)*(posCurCU_X-posRefCU_X)/RefCU_width
0y
B0y
B2_y
B0y
B1y
B0y
[287] Если V_B0, V_B1 и V_B2 могут замещаться на верхний левый MV, верхний правый MV и нижний левый MV данной опорной/соседней CU, (posCurCU_X, posCurCU_Y) являются местоположением верхней левой выборки текущей CU для верхней левой выборки кадра. (posRefCU_X, posRefCU_Y) является местоположением верхней левой выборки опорной/соседней CU для верхней левой выборки кадра.
[288] Уравнение 6
V
=V
+(V
-V
)*CU_width/RefCU_width
1
x
B
0
x
B
1
x
B
0
x
[289] Уравнение 7
V
=VB
+(V
-V
)*CU_width/RefCU_width
1
y
0
y
B
1
y
B
0
y
[290] Фиг. 24 иллюстрирует пример соседних блоков, используемых для предсказания аффинного движения в аффинном интер-режиме в соответствии с вариантом осуществления раскрытия.
[291] Со ссылкой на фиг. 24, когда количество пар MVP меньше 2, используется выведенный из угла аффинный кандидат. Как проиллюстрировано на фиг. 24, соседние векторы движения используются для выведения пары аффинных MVP. В отношении первого выведенного из угла аффинного кандидата, первый доступный MV в наборе A (A0, A1 и A2) и первый доступный MV в наборе B (B0 и B1) используются, чтобы конфигурировать первую пару MVP. В отношении второго выведенного из угла аффинного кандидата, первый доступный MV в наборе A и первый доступный MV в наборе C (C0 и C1) используются, чтобы вычислять MV верхней правой контрольной точки. Первый доступный MV в наборе А и вычисленный MV верхней правой контрольной точки являются второй парой MVP.
[292] В варианте осуществления раскрытия, два набора кандидатов, включающих в себя два (три) кандидата {mv_0, mv_1} ({mv_0, mv_1, mv_2) используются, чтобы предсказывать две (три) контрольные точки модели аффинного движения. Данные разности (mvd_0, mvd_1, mvd_2) векторов движения и контрольные точки вычисляются с использованием следующих уравнений.
[293] Уравнение 8
[294] Фиг. 25 и 26 являются диаграммами, иллюстрирующими способ выведения кандидата вектора движения с использованием информации движения соседнего блока в аффинном интер-режиме в соответствии с вариантом осуществления раскрытия.
[295] В списке аффинных кандидатов, аффинное движение продолжается от пространственных соседних блоков (экстраполированных аффинных кандидатов), и список аффинных кандидатов дополняется комбинацией векторов движения из пространственных соседних блоков (виртуальных аффинных кандидатов). Наборы кандидатов устанавливаются следующим образом:
[296] 1. Максимум двух разных наборов предсказателя аффинного MV выводятся из аффинного движения соседних блоков. Соседние блоки A0, A1, B0, B1 и B2 проверяются, как проиллюстрировано на фиг. 25. Если соседний блок закодирован посредством модели аффинного движения и соответствующий опорный кадр является тем же самым, что и опорный кадр текущего блока, две контрольные точки (для 4-параметрической аффинной модели) текущего блока или три контрольные точки (для 6-параметрической аффинной модели) текущего блока выводятся из аффинной модели соседних блоков.
[297] 2. Фиг. 29 иллюстрирует соседние блоки, используемые для генерации набора виртуальных аффинных кандидатов. Соседние MV разделяются на три группы: S_0={mv_А, mv_B, mv_C}, S_1={mv_D, mv_E} и S_2={mv_F, mv_G}. mv_0 является первым MV, который ссылается на ту же самую опорную картинку, что и у текущего блока в S0. mv_2 является первым MV, который ссылается на ту же самую опорную картинку, что и у текущего блока в S1.
[298] Если mv_0 и mv_1 даны, то mv_2 может выводиться посредством Уравнения 9 ниже.
[299] Уравнение 9
[300] В Уравнении 9, размер текущего блока составляет W×H.
[301] Если только mv_0 и mv_2 даны, то mv_1 может выводиться посредством Уравнения 10 ниже.
[302] Уравнение 10
[303] В варианте осуществления раскрытия, аффинное интер-предсказание может выполняться в соответствии со следующей последовательностью.
[304] Ввод: параметры аффинного движения, выборки опорной картинки
[305] Вывод: блок предсказания CU
[306] Процесс
[307] - Вывести размер подблока аффинного блока
[308] - Если как ширина, так и высота подблока больше, чем 4 выборки яркости,
[309] - В отношении каждого подблока,
[310] - Вывести вектор движения подблока
[311] - Выполнить компенсацию движения (1/16 пел для яркости и 1/32 пел для цветности) на основе DCT-IF на подблоках (активируется)
[312] - Если нет, выполняется (активируется) компенсация на основе расширенного билинейного фильтра интерполяции на всех аффинных блоках
[313] Более того, в варианте осуществления раскрытия, если флаг объединения/пропуска соответствует “ложно”, и ширина и высота CU больше или равны 8, то сигнализируется аффинный флаг для указания, будет ли использован аффинный интер-режим на уровне CU. Если CU закодирована в аффинном интер-режиме, то сигнализируется флаг модели для указания, применяется ли 4-параметрическая или 6-параметрическая аффинная модель CU. Если флаг модели соответствует “истинно”, то применяется AF_6_INTER-режим (6-параметрическая аффинная модель) и выполняется синтаксический анализ MVD. Если нет, то применяется AF_4_INTER-режим (4-параметрическая аффинная модель) и выполняется синтаксический анализ двух MVD.
[314] В AF_4_INTER-режиме, аналогично режиму аффинного объединения, пары векторов движения, экстраполированные из соседних блоков, кодированных посредством аффинного режима, генерируются и предпочтительно вставляются в список кандидатов.
[315] После этого, если размер списка кандидатов меньше 4, кандидаты, имеющие пару {(v_0,v_1)|v0={v_А,v_B, v_С}, v_1={v_D, v_E}} векторов движения, генерируются с использованием соседних блоков. Как проиллюстрировано на фиг. 22, v_0 выбирается из векторов движения A, B и C блоков. Вектор движения из соседнего блока масштабируется на основе отношения между опорным списком, POC для ссылки на соседний блок, POC для ссылки на текущую CU и текущей CU. Более того, способ подхода к выбору v_1 из соседних блоков D и E является аналогичным. Когда список кандидатов больше 4, кандидаты сначала сортируются на основе согласованности соседних векторов движения (аналогично двум векторам движения в паре кандидатов), и первые 4 кандидата сохраняются.
[316] Если количество списков кандидата меньше 4, список заполняется парой векторов движения путем дублирования кандидатов AMVP.
[317] В AF_6_INTER-режиме, аналогично режиму аффинного объединения, тройки векторов движения (тройки аффинных векторов движения), экстраполированных из соседних блоков, закодированных в режиме аффинного объединения, генерируются и предпочтительно вставляются в список кандидатов.
[318] После этого, когда размер списка кандидата меньше 4, кандидаты, включающие в себя тройки {(v_0, v_1, v_2)|v0={v_А, v_B, v_С}, v1={v_D, v_E}, v2={v_G, v_H}} векторов движения, генерируются с использованием соседних блоков. Как проиллюстрировано на фиг. 22, v_0 выбирается из векторов движения блока A, B или C. Вектор движения из соседнего блока масштабируется на основе отношения между опорным списком, POC для ссылки на соседний блок, POC для ссылки на текущую CU и текущей CU. Более того, подход для выбора v_1 из соседних блоков D и E аналогичен выбору v_2 из F и G. Когда список кандидатов больше 4, кандидаты сортируются на основе согласованности соседних векторов движения (аналогично двум векторам движения в трех кандидатах), и первые 4 кандидата сохраняются.
[319] Когда количество списков кандидатов меньше 4, список может заполняться тройками векторов движения, сконфигурированными посредством дублирования соответственных кандидатов AMVP.
[320] После того как выведен CPMV текущей CU, MVF текущей CU генерируется в соответствии с Уравнением 11 для 4-параметрической аффинной модели и генерируется в соответствии с Уравнением 12 для 6-параметрической аффинной модели, на основе количества аффинных параметров.
[321] Уравнение 11
[322] Уравнение 12
[323] В этом случае, размер M×N подблока выводится в Уравнении 13, и MvPre является фракционной точностью вектора движения (1/16).
[324] Уравнение 13
[325] После выведения посредством Уравнения 12, M и N должны быть снижены, если необходимо, чтобы сделать их делителями w и h. Когда M или N меньше 8, применяется WIF. Если нет, то применяется аффинная компенсация движения на основе подблока.
[326] Фиг. 27 иллюстрирует пример аффинного поля вектора движения единицы подблока в соответствии с вариантом осуществления раскрытия.
[327] Со ссылкой на фиг. 27, чтобы вывести вектор движения каждого подблока M×N, вектор движения центральной выборки каждого подблока, такой как проиллюстрированный на фиг. 27, вычисляется в соответствии с Уравнением 11 или Уравнением 12 и округляется с точностью части 1/16. Фильтры интерполяции SHVC повышающей дискретизации используются, чтобы генерировать предсказание каждого подблока с использованием выведенного вектора движения.
[328] Фильтры интерполяции SHVC повышающей дискретизации, имеющие ту же самую длину фильтра и коэффициент нормализации, что и фильтры интерполяции компенсации движения HEVC, могут использоваться как фильтры интерполяции компенсации движения для дополнительных фракционных положений пела (с точностью доли пела). Точность вектора движения компонента цветности составляет 1/32 выборки. Дополнительные фильтры интерполяции для фракционных положений с точностью 1/32 пела выводятся с использованием средних значений фильтров двух соседних фракционных местоположений с точностью 1/16 пела.
[329] AF_MERGE-режим может выбираться на стороне кодера с использованием того же самого способа выбора общего режима объединения. Список кандидатов предпочтительно генерируется, и минимальная RD-стоимость выбирается в кандидатах для сравнения с RD-стоимостью других интер-режимов. Результатом сравнения является определение, применяется или нет AF_MERGE.
[330] Для AF_4_INTER-режима, проверка RD-стоимости используется для определения, выбран ли кандидат пары векторов движения как предсказание вектора движения контрольной точки (CPMVP) текущей CU. После того как определен CPMVP текущей аффинной CU, применяется оценка аффинного движения, и получают вектор движения контрольной точки (CPMV). Соответственно, определяется разность между CPMV и CPMVP.
[331] На стороне кодера, AF_6_INTER-режим идентифицируется, только когда AF_MERGE или AF_4_INTER-режим определен как оптимальный режим на предыдущей стадии выбора режима.
[332] В варианте осуществления раскрытия, аффинный интер-режим (аффинный AMVP) может выполняться следующим образом:
[333] 1) AFFINE_MERGE_IMPROVE: вместо поиска первого соседнего блока в аффинном режиме, усовершенствование состоит в поиске соседнего блока, имеющего максимальный размер единицы кодирования, как аффинного кандидата объединения.
[334] 2) AFFINE_AMVL_IMPROVE: соседние блоки в аффинном режиме добавляются в список кандидатов аффинного AMVP аналогично процедуре общего AMVP.
[335] Подробный процесс генерации списка кандидатов аффинного AMVP состоит в следующем.
[336] Сначала идентифицируется, использует ли соседний блок снизу слева модель аффинного движения и имеет ли тот же самый опорный индекс, что и текущий опорный индекс. Если соседний блок отсутствует, то левый соседний блок идентифицируется с использованием того же самого способа. Если соседний блок отсутствует, то идентифицируется, использует ли соседний блок снизу слева модель аффинного движения и имеет ли другой опорный индекс. Если соседний блок присутствует, масштабированный аффинный вектор движения добавляется в список опорных картинок. Если соседний блок отсутствует, то левый соседний блок идентифицируется с использованием того же самого способа.
[337] Затем, верхний правый соседний блок, верхний соседний блок и верхний левый соседний блок идентифицируются с использованием того же самого способа.
[338] После этих процессов, если два кандидата найдены, процесс генерации списка кандидатов аффинного AMVP завершается. Если два кандидата не найдены, то выполняется первоначальная операция в программном обеспечении JEM для генерации списков кандидатов аффинного AMVP.
[339] 3) AFFINE_SIX_PARAM: в дополнение к 4-параметрической модели аффинного движения, 6-параметрическая модель аффинного движения добавляется как дополнительная модель.
[340] 6-параметрическая модель аффинного движения выводится посредством Уравнения 14.
[341] Уравнение 14
[342] Три вектора движения в верхнем левом местоположении MV_0, верхнем правом местоположении MV_1 и нижнем левом местоположении MV_2 необходимы для определения модели, поскольку 6 параметров присутствуют в модели движения. Три вектора движения могут определяться с использованием способа, аналогичного способу двух векторов движения в 4-параметрической модели аффинного движения. Модель аффинного объединения всегда установлена как 6-параметрическая модель аффинного движения.
[343] 4) AFFINE_CLIP_REMOVE: ограничения вектора движения для всех векторов аффинного движения удаляются. Процессы компенсации движения выполняются для управления самими ограничениями векторов движения.
[344]
Модель аффинного движения
[345]
[346] Как описано выше, различные модели аффинного движения могут использоваться или рассматриваться в аффинном интер-предсказании. Например, модель аффинного движения может представлять четыре движения как показано на фиг. 15. Модель аффинного движения, способная представлять три движения (перенос, масштабирование и вращение), среди движений, которые могут быть представлены моделью аффинного движения, может называться (упрощенной) моделью сходства аффинного движения. Количество CPMV и/или способ выведения единицы выборки/подблока MV текущего блока могут быть разными в зависимости от того, какая из моделей аффинного движения используется.
[347] В варианте осуществления раскрытия, используются адаптивные четырех- и шести-параметрические модели движения. В AF_INTER, 6-параметрическая модель движения предлагается в дополнение к 4-параметрической модели движения, представленной в JEM. 6-параметрическая модель аффинного движения описана как Уравнение 15.
[348] Уравнение 15
[349] В этом случае, коэффициенты a, b, c, d, e и f являются параметрами аффинного движения. (x, y) и (x',y') являются координатами в пиксельных местоположениях до и после преобразования модели аффинного движения. В кодировании видео, чтобы использовать модель аффинного движения, если CPMV0, CPMV1 и CPMV2 являются MV для CP0 (вверху слева), CP1 (вверху справа) и CP2 (внизу слева), Уравнение 16 может быть описано следующим образом.
[350] Уравнение 16
[351] В этом случае, CPMV_0={v_0x, v_0y}, CPMV_1={v_1x, v_1y}, CPMV_2={v_2x, v_2y}, и w и h являются шириной и высотой каждого блока кодирования. Уравнение 16 является полем векторов движения (MVF) блока.
[352] Флаг синтаксически анализируется на уровне CU, чтобы указать, используется ли 4-параметрическая или 6-параметрическая модель аффинного движения, когда соседние блоки кодируются как аффинное предсказание. Если соседний блок, кодируемый как аффинное предсказание, отсутствует, флаг опускается, и 4-параметрическая модель используется для аффинного предсказания. Другими словами, 6-параметрическая модель рассматривается при условии, когда один или более соседних блоков кодируются в модели аффинного движения. В отношении количества CPMVD, каждый из двух или трех CPMVD сигнализируется в отношении 4-параметрической и 6-параметрической моделей аффинного движения.
[353] Кроме того, в варианте осуществления раскрытия, может использоваться уточнение вектора движения сопоставлением с образцом. При выводе вектора движения сопоставлением с образцом (PMMVD, далее сокращено как PMVD в описании кодера JEM) JEM, декодеру требуется оценить некоторые векторы движения (MV), чтобы определить начального кандидата MV для поиска на уровне CU. При поиске на уровне под-CU, некоторые кандидаты MV добавляются в дополнение к оптимальному MV на уровне CU. Декодеру необходимо оценить таких кандидатов MV для выполнения поиска оптимального MV. Это требует большой полосы памяти. В предложенном уточнении вектора движения сопоставлением с образцом (PMVR), концепции сопоставления с шаблоном и двустороннее согласование в PMVD приняты в JEM. Когда режим пропуска или режим объединения выбран для указания, доступен ли PMVR, один PMVR_flag сигнализируется. Чтобы значительно снизить требование ширины полосы памяти по сравнению с PMVD, генерируется список кандидатов MV. Если применяется PMVR, индекс начального кандидата MV явно сигнализируется.
[354] Список кандидатов генерируется с использованием процесса генерации списка кандидатов объединения, но кандидаты под-CU-объединения, например, аффинные кандидаты и кандидаты ATMVP исключаются. Для двустороннего согласования, включен только кандидат MV однонаправленного (уни-) предсказания включен. Кандидат MV двунаправленного (би-) предсказания разделен на два кандидата MV уни-предсказания. Кроме того, аналогичные кандидаты MV (имеющие разности MV меньше предопределенного порога) также удаляются. Для поиска на уровне CU, выполняется уточнение MV по алгоритму ромбовидного поиска (diamond search), начиная с сигнализированного кандидата MV.
[355] Поиск на уровне под-CU доступен только в режиме объединения двустороннего согласования. Окно поиска для поиска на уровне под-CU для всех под-CU является тем же самым, что и окно поиска для поиска на уровне CU. Соответственно, дополнительная ширина полосы не требуется в поиске на уровне под-CU.
[356] Чтобы уточнить MVP в некотором режиме, также используется сопоставление с шаблоном. В режиме AMVP, два MVP генерируются с использованием процесса генерации HEVC MVP, и один индекс MVP сигнализируется для выбора одного из двух MVP. Выбранный MVP дополнительно уточняется с использованием сопоставления с шаблоном в PMVR. Если применяется адаптивное разрешение вектора движения (AMVR), MVP округляется с соответствующей точностью перед уточнением сопоставлением с шаблоном. Такой процесс уточнения называется уточнением предсказателя вектора движения сопоставлением с образцом (PMVPR). В остальной части настоящего документа, PMVR включает в себя PMVR сопоставлением с шаблоном, PMVR двунаправленным сопоставлением и PMVPR, если только специально не определено иначе.
[357] Чтобы уменьшить требование к ширине полосы памяти, PMVR является недоступным для 4×4, 4×8 и 8×4 CU. Чтобы уменьшить величину требуемой дополнительной ширины полосы памяти, диапазон поиска {сопоставления с шаблоном, двунаправленного сопоставления} для области CU, равной 64, может быть уменьшен до {±2, ±4}. Диапазон поиска {сопоставления с шаблоном, двунаправленного сопоставления} для области CU, большей 64, может быть уменьшен до {±6, ±8}. По сравнению с худшим случаем в HEVC, требуемая ширина полосы памяти была уменьшена с 45,9x в PMVD JEM-7.0 до 3,1x в PMVR с использованием всех способов, описанных в разделе PMVR настоящего документа.
[358]
Применяемая технология, когда аффинный режим используется в не-QT-блоке
[359]
[360] Фиг. 28 иллюстрирует способ генерации блока предсказания и вектора движения в интер-предсказании, к которому была применена модель аффинного движения в соответствии с вариантом осуществления раскрытия.
[361] На фиг. 28 можно видеть уравнение для вывода вектора движения, если применяется модель аффинного движения. Вектор движения может выводиться на основе Уравнения 17 ниже.
[362] Уравнение 17
[363] В этом случае, v_x указывает х-компонент вектора движения единицы для выборки с координатами (x, y) в текущем блоке. v_y указывает y-компонент вектора движения единицы выборки для выборки с координатами (x, y) в текущем блоке. То есть, (v_x, v_y) является вектором движения единицы выборки для выборки с координатами (x, y). В этом случае, a, b, c, d, e, f указывают параметры уравнения для вывода вектора движения единицы выборки (информации движения) с координатами (x, y) из контрольных точек (CP) текущего блока. CP может быть представлена как контрольный элемент картинки. Параметры могут выводиться из информации движения CP каждой PU, переданной в единице PU. Уравнение для вывода вектора движения единицы выборки, выведенного из информации движения CP, может применяться к каждой выборке блока и может выводиться как местоположение выборки в опорном изображении в зависимости от относительного местоположения между осью x и осью y каждой выборки. Вектор движения единицы выборки может выводиться по-разному в зависимости от размера блока в соответствии со структурой разделения блока QTBT(TT), ассиметричным типом или симметричным типом или местоположением блока. Подробные варианты осуществления этого проиллюстрированы на фиг. 29 - фиг. 38, описанные далее.
[364] Фиг. 29 является диаграммой, иллюстрирующей способ выполнения компенсации движения на основе вектора движения контрольной точки в соответствии с вариантом осуществления раскрытия.
[365] Со ссылкой на фиг. 29, предполагается, что текущий блок является блоком 2N×2N. Например, вектор движения верхней левой выборки в текущем блоке может быть v_0. Кроме того, векторы движения CP могут быть v_1 и v_2 с использованием выборок соседних блоков, соседних с текущим блоком, в качестве CP. То есть, если ширина и высота текущего блока равны S, и координатами в верхнем левом положении выборки текущего блока являются (xp, yp), координатами CP0 CP могут быть (xp, yp), координатами CP1 CP могут быть (xp+S, yp), координатами CP2 CP могут быть (xp, yp+S). Вектор движения CP0 может быть v_0, вектор движения CP1 может быть v_1, и вектор движения CP2 может быть v_2. Вектор движения единицы выборки может выводиться с использованием вектора движения CP. Вектор движения единицы выборки может выводиться на основе Уравнения 18 ниже.
[366] Уравнение 18
[367] В этом случае, v_x, v_y указывают x-компонент, y-компонент вектора движения для выборки, имеющей координаты (x, y) в каждом текущем блоке. v_x0, v_y0 указывают x-компонент, y-компонент вектора движения v_0 для CP0, соответственно. v_x1, v_y1 указывают x-компонент, y-компонент вектора движения v_1 движения для CP1, соответственно. v_x2, v_y2 указывают х-компонент, y-компонент вектора движения v_2 для CP2, соответственно. Вектор движения каждой выборки в текущем блоке может выводиться на основе относительного местоположения в текущем блоке с использованием уравнения для вывода вектора движения единицы выборки, такого как Уравнение 18.
[368] Фиг. 30 является диаграммой, иллюстрирующей способ выполнения компенсации движения на основе вектора движения контрольной точки в неквадратном блоке в соответствии с вариантом осуществления раскрытия.
[369] Фиг. 30 иллюстрирует CP блока, разбитого на N×2N. Уравнение для вывода вектора движения единицы выборки в текущем блоке может выводиться с использованием того же самого способа, что и в случае типа разбиения 2N×2N. В процессе вывода уравнения может использоваться значение ширины, подходящее для формы текущего блока. Чтобы вывести вектор движения единицы выборки, может быть выведено три CP, и местоположения CP могут регулироваться как на фиг. 30. То есть, если ширина и высота текущего блока составляют S/2 и S, соответственно, и координаты в верхнем левом положении выборки текущего блока составляют (xp, yp), координатами CP0 CP могут быть (xp, yp), координатами CP1 CP могут быть (xp+S/2, yp), и координатами CP2 CP могут быть (xp, yp+S). Вектор движения единицы выборки может выводиться на основе Уравнения 19 ниже.
[370] Уравнение 19
[371] В этом случае, vx, vy указывают x-компонент, y-компонент вектора движения для выборки в координатах (x, y) в текущем блоке, соответственно. v_x0, v_y0 указывают x-компонент, y-компонент вектора движения v_0 для CP0, соответственно. v_x1, v_y1 указывают х-компонент, y-компонент вектора движения v_1 для CP1, соответственно. v_x2, v_y2 указывают х-компонент, y-компонент вектора движения v_2 для CP2, соответственно. Уравнение 3 иллюстрирует уравнение для вывода вектора движения единицы выборки с учетом того, что ширина текущего блока составляет S/2. Каждая выборка в текущем блоке, разбитом из CU на основе типа разбиения N×2N с использованием Уравнения для вывода вектора движения единицы выборки, такого как Уравнение 19, может выводиться на основе относительного местоположения в текущем блоке.
[372] Фиг. 31 является диаграммой, иллюстрирующей способ выполнения компенсации движения на основе вектора движения контрольной точки в неквадратном блоке в соответствии с вариантом осуществления раскрытия.
[373] Фиг. 31 иллюстрирует блоки, разбитые на основе типа разбиения 2N×N. Чтобы вывести вектор движения единицы выборки, может быть выведено три CP. Местоположение CP может регулироваться как на фиг. 31, и высота может регулироваться до S/2 на основе формы текущего блока, проиллюстрированного на фиг. 31. То есть, если ширина и высота текущего блока составляют S и S/2, соответственно, и координатами в верхнем левом положении выборки текущего блока являются (xp, yp), координатами CP0 CP могут быть (xp, yp), координатами CP1 CP могут быть (xp+S, yp), и координатами CP2 CP могут быть (xp, yp+S/2). Вектор движения единицы выборки может выводиться как в Уравнении 20 ниже.
[374] Уравнение 20
[375] В этом случае, v_x, v_y указывают х-компонент, y-компонент вектора движения для выборки в координатах (x, y) в текущем блоке, соответственно. v_x0, v_y0 указывают х-компонент, y-компонент вектора движения v_0 для CP0, соответственно. v_x1, v_y1 указывают х-компонент, y-компонент вектора движения v_1 для CP1, соответственно. v_x2, v_y2 указывают х-компонент, y-компонент вектора движения v_2 для CP2, соответственно. Уравнение 4 иллюстрирует уравнение для вывода вектора движения единицы выборки путем учета, что высота текущего блока составляет S/2. Каждая выборка в текущем блоке, разбитом из CU на основе типа разбиения N×2N с использованием уравнения для вывода вектора движения единицы выборки, такого как Уравнение 4.18, может выводиться на основе относительного местоположения в текущем блоке.
[376] Фиг. 32-38 являются диаграммами, иллюстрирующими способ выполнения компенсации движения на основе вектора движения контрольной точки в неквадратном блоке в соответствии с вариантом осуществления раскрытия.
[377] Фиг. 32 иллюстрирует CP текущих блоков ассиметричного типа. Как проиллюстрировано на фиг. 32, ширина и высота текущих блоков ассиметричного типа могут обозначаться как W и H, соответственно. Чтобы вывести вектор движения единицы выборки, может быть выведено три CP для каждого текущего блока, и координаты CP могут регулироваться на основе ширины и высота в соответствии с формой текущего блока как на фиг. 32. То есть, если ширина и высота текущего блока равны W и H, и координатами в верхнем-левом положении выборки каждого текущего блока являются (xp, yp), координаты CP0 CP могут быть установлены как (xp, yp), координаты CP1 CP могут быть установлены как (xp+W, yp), и координаты CP2 CP могут быть установлены как (xp, yp+H). В этом случае, вектор движения единицы выборки в текущем блоке может выводиться на основе Уравнения 21 ниже.
[378] Уравнение 21
[379] В этом случае, v_x, v_y указывают х-компонент, y-компонент вектора движения для выборки в координатах (x, y) в текущем блоке, соответственно. v_x0, v_y0 указывают x-компонент, y-компонент вектора движения v_0 для CP0, соответственно. v_x1, v_y1 указывают х-компонент, y-компонент вектора движения v_1 для CP1, соответственно. v_x2, v_y2 указывают х-компонент, y-компонент вектора движения v_2 для CP2, соответственно. Уравнение 21 иллюстрирует уравнение для вывода вектора движения единицы выборки путем учета ширины и высоты текущих блоков ассиметричного типа.
[380] Между тем, в соответствии с раскрытием, чтобы уменьшить количество данных информации движения CP, указанных в единице блока, кандидат предсказания информации движения для по меньшей мере одной CP может выбираться на основе информации движения соседнего блока или соседней выборки текущего блока. Кандидат предсказания информации движения может называться аффинным кандидатом информации движения или аффинным кандидатом вектора движения. Аффинные кандидаты информации движения могут включать в себя содержимое, раскрытое, например, на фиг. 33-38.
[381]
Упрощение ATMVP
[382]
[383] Расширенное временное предсказание вектора движения (ATMVP) является интер-предсказанием с использованием временного кандидата информации движения, но может указывать интер-предсказание с использованием кандидата информации движения, предложенное для улучшения существующего TMVP. В варианте осуществления раскрытия, ATMVP не ограничено своим названием, и ATMVP может называться подблоком временного кандидата объединения, временным кандидатом объединения на основе подблока, временным предсказателем вектора движения подблока или временным предсказателем вектора движения на основе подблока.
[384] Конкретно, внутрикадровое движение может не включаться в TMVP с использованием вектора движения colPB в правом нижнем блоке текущего блока или в центральном местоположении текущего блока как временной кандидат информации движения. Напротив, если применяется ATMVP, вектор движения colPB в местоположении, указанном вектором движения соседнего блока, может использоваться как кандидат ATMVP.
[385] В примере, в котором применяется ATMVP, после начального поиска вектора движения доступного пространственного соседнего блока при последовательной проверке конфигураций кандидата объединения, местоположение, указанное временным вектором в опорной картинке, может выводиться как col-PB (кандидат ATMVP). Более того, вектор движения соответствующего блока может использоваться в каждой единице подблока с использованием временного вектора. В этом случае, если MV не представлен в конкретном подблоке, MV блока, расположенного в центре соответствующего блока, используется в качестве MV для недоступного подблока и сохраняется как репрезентативный MV.
[386] Кроме того, могут быть предложены различные схемы упрощения ATMVP для использования ATMVP, но способные уменьшать объем используемой памяти.
[387] В одном варианте осуществления, использование памяти может быть уменьшено, поскольку опорная картинка (указанная как заголовок сегмента вырезки) для поиска опорного блока ограничена совмещенной картинкой. Например, может использоваться максимум 4 опорные картинки. Для поиска опорного блока, временной вектор может выводиться в последовательности сканирования от одного из пространственных кандидатов. Если текущий кандидат имеет ту же самую опорную картинку, что и совмещенная картинка, процесс поиска может завершаться.
[388] В одном варианте осуществления, может применяться модификация для режимов объединения подблока ATMVP и/или STMVP.
[389] 1. Сигнализация добавляется на уровне картинки/вырезки, и, таким образом, различные размеры подблока могут использоваться для вывода информации движения на основе ATMVP/STMVP.
[390] 2. Вывод упрощенной информации движения на основе ATMVP может использоваться, поскольку используется одна совмещенная картинка.
[391] В одном варианте осуществления, предложена поддержка адаптации на уровне картинки/вырезки гранулярности поля движения, выводимого в режимах ATMVP и STMVP. Конкретно, в вырезке, которая указывает набор параметров последовательности (SPS), значение по умолчанию размера подблока, используемого для вывода параметра движения для ATMVP и STMVP, может сигнализироваться в SPS. Дополнительно, один флаг сигнализируется в заголовке сегмента вырезки. Если флаг равен 0, это указывает, что размер подблока по умолчанию, такой как специфицированный в SPS, используется для вывода движения на основе ATMVP/STMVP в текущей вырезке. Если нет (т.е., если флаг установлен в 1), другой синтаксический элемент сигнализируется в заголовке сегмента вырезки и может специфицировать размер подблока ATMVP/STMVP, используемый для вырезки.
[392] В одном варианте осуществления, способ простого кодера используется, чтобы определять размер подблока ATMVP/STMVP для текущей картинки. Один из двух размеров 4 и 8 подблока ATMVP/STMVP выбирается из картинки, окончательно закодированной на том же самом временном уровне на основе среднего размера блоков ATMVP/STMVP. Предполагается, что текущая кодируемая картинка является i-ой картинкой в k-ом временном уровне и включает в себя N CU, кодируемых в режимах ATMVP и STMVP. Далее, предполагается, что размер CU составляет S_0, S_1, …, S_(N-1). Средний размер ATMVP/STMVP CU вычисляется как  . Соответственно, когда (i+1)-ая картинка кодируется в том же самом k-ом временном уровне, соответствующий размер  подблока ATMVP/STMVP может определяться в соответствии с Уравнением 22 ниже.
[393] Уравнение 22
[394] В одном варианте осуществления, размер подблока ATMVP/STMVP может быть всегда установлен в 4 в отношении первой картинки на каждом временном уровне.
[395] В одном варианте осуществления, ATMVP может выводиться с использованием следующих двух этапов.
[396] (1) Если соседняя CU доступна и MV CU отличается от MV в существующем списке кандидатов, кодер/декодер может добавлять вектор движения в последовательность A1, B1, B0 и A0 из пространственных соседних CU, как иллюстрируется на фиг. 12. Количество доступных пространственных кандидатов может быть представлено как N0.
[397] (2) Первый кандидат MV из N0 пространственных кандидатов может использоваться для определения местоположения, из которого будут извлекаться движения для совмещенной картинки и каждого подблока (путем добавления смещения в соответствии с MV). Если N0 соответствует 0, coвмещенное местоположение, имеющее совмещенную картинку, и нулевое движение, сигнализируемое в заголовке вырезки, могут использоваться для извлечения движения для каждого подблока.
[398] Совмещенная картинка разных CU для ATMVP может не всегда быть той же самой, если используется множество опорных картинок. Если совмещенные картинки для вывода ATMVP являются разными для разных CU в текущей картинке, это значит, что не нужно извлекать поля движения множества опорных картинок. Это не является предпочтительным вследствие увеличения ширины полосы памяти. Соответственно, один вариант осуществления предлагает упрощенный проект с использованием той же самой совмещенной картинки, что и совмещенная картинка для вывода ATMVP, как в HEVC, сигнализируемом в заголовке вырезки. На уровне блока, если опорная картинка соседнего блока А отличается от совмещенной картинки, MV блока А масштабируется с использованием способа масштабирования временного MV HEVC, и масштабированный MV блока А может использоваться для ATMVP.
[399] Вектор движения, используемый для извлечения поля движения в совмещенной картинке Rcol, маркируется как MVcol. Чтобы минимизировать влияние, вызванное масштабированием MV, MV в списке пространственных кандидатов, используемом для вывода MVcol, выбирается с использованием следующего способа. Если опорная картинка MV кандидата является совмещенной картинкой, MV выбирается и используется как MVcol без какого-либо масштабирования. Если нет, MV, имеющий опорную картинку, наиболее близкую к совмещенной картинке, используется для вывода MVcol, имеющего масштабирование.
[400]
Общее предсказание вектора движения на основе истории (HMVP)
[401]
[402] В общем, технология сжатия изображений использует применение пространственной и временной избыточности в качестве двух основных схем. Например, как высокоэффективное кодирование видео (HEVC), так и VVC используют две схемы сжатия движения на основе интер-кодирования. Одна является движением объединения, а другая является расширенным предсказанием вектора движения (AMVP). Чтобы улучшить два режима предсказания, рассматриваются различные модификации. Различные модификации включают в себя увеличение количества кандидатов для поиска более расширенных пространственных кандидатов и проверку временных кандидатов в нетрадиционных местоположениях. Две схемы включают в себя главным образом формирование списка с использованием доступных кандидатов, минимизацию затрат по критерию искажения-скорости (RD) и сигнализацию выбранного кандидата в битовом потоке.
[403] В частности, в недавней технологии сжатия изображений, рассматривается HMVP, в котором хранится информация движения ранее закодированного блока, и сохраненная информация движения используется для предсказания движения последовательно закодированного блока. Такое HMVP может добавляться в список объединения (или список кандидатов объединения) или список AMVP (или список кандидатов AMVP).
[404] Декодер поддерживает поисковую таблицу (LUT), работающую в системе (или способе) по принципу “первым введен - первым выведен” (FIFO)) для HMVP. В раскрытии, LUT не ограничена своим названием и может упоминаться как таблица, таблица HMVP, таблица кандидатов HMVP, буфер, буфер HMVP, буфер кандидатов HMVP, список HMVP или список кандидатов HMVP. Конкретно, когда не-аффинная единица предсказания (PU) (или единица кодирования (CU)) декодируется, соответствующая информация движения сохраняется в LUT. Декодер выполняет декодирование на следующей PU. В этом случае, сохраненная информация движения может включать в себя векторы движения, информацию опорного индекса и информацию режима в x- (горизонтальном) и y- (вертикальном) направлениях.
[405] Декодер поддерживает LUT, в которой хранится информация движения прогрессивно декодированного не-аффинного кандидата. Размер LUT может быть ограничен предопределенными S кандидатами. В одном варианте осуществления, LUT может сбрасываться в начале вырезки, начале строки CTU или начале CTU.
[406] HMVP может применяться как в режиме объединения, так и в режиме AMVP. Список объединения может иметь B кандидатов, и список AMVP может иметь два кандидата. В традиционной технологии сжатия изображений, список объединения конфигурируется со следующими кандидатами: i) пространственный кандидат, ii) временной кандидат, iii) кандидат двунаправленного предсказания (Bi-Pred), iv) кандидат нулевого движения. В последнее время рассматривается способ дополнительного учета расширенного предсказания вектора движения (ATMVP) как кандидата. Например, кандидат ATMVP может вставляться в список объединения перед временным кандидатом. Кандидаты списка объединения добавляются в список объединения до тех пор, пока они не достигнут максимального размера списка объединения. Дублированный кандидат может не добавляться в список объединения. Два кандидата могут вставляться в список AMVP. Например, первый кандидат из двух кандидатов может выбираться из доступных пространственных кандидатов, и второй кандидат может выбираться из временных кандидатов. Если список не заполнен, может добавляться нулевой кандидат вектора движения.
[407] HMVP применяется на основе порядка FIFO, в котором кандидаты выходят из LUT идентично их порядку ввода.
[408] В одном варианте осуществления, когда HMVP применяется к конфигурации списка объединения, кандидат HMVP может вставляться (или добавляться) в третье местоположение списка следующим образом:
[409] 1. Пространственный кандидат
[410] 2. Временной кандидат
[411] 3. До S кандидатов HMVP для LUT
[412] 4. Комбинированный Bi-Pred кандидат
[413] 5. Кандидат нулевого вектора движения
[414] В одном варианте осуществления, когда HMVP применяется к конфигурации списка AMVP, HMVP может вставляться в третье местоположение после временного кандидата следующим образом:
[415] 1. Пространственный кандидат
[416] 2. Временной кандидат
[417] 3. До K кандидатов HMVP
[418] 4. Кандидат нулевого вектора движения
[419] Фиг. 39 является блок-схемой последовательности операций для описания способа сохранения HMVP в соответствии с вариантом осуществления раскрытия.
[420] Со ссылкой на фиг. 39, декодер декодирует текущую PU (или CU) (S3901).
[421] Декодер проверяет, является ли текущая PU блоком, закодированным в не-аффинном режиме (S3902). Чтобы облегчить использование кандидатов HMVP, если текущая PU является блоком, закодированным в аффинном режиме, декодер не сохраняет информацию движения текущей PU в таблице.
[422] Если текущая PU является блоком, закодированным в не-аффинном режиме, декодер сохраняет (или обновляет) информацию движения текущей PU в таблице (S3903).
[423] В варианте осуществления раскрытия, таблица HMVP может обновляться с использованием двух способов, то есть, способов i) неограниченного FIFO ii) ограниченного FIFO. В первом, избыточная информация может быть представлена, но процесс обрезки не применяется. Это способствует уменьшению сложности всего процесса. Это описано со ссылкой на следующий чертеж.
[424] Фиг. 40 является диаграммой для описания таблицы HMVP, применяемой в неограниченном FIFO в соответствии с вариантом осуществления раскрытия.
[425] Со ссылкой на фиг. 40, кандидат, добавленный в таблицу, добавляется в конце (справа) таблицы. Напротив, кандидат, удаляемый из таблицы в соответствии со способом FIFO, расположен в переднем конце (левая сторона, самый старый кандидат) таблицы.
[426] Если таблица не полностью заполнена максимальным количеством предопределенных кандидатов с индексом L-1 (т.е., в конце), новые кандидаты добавляются без удаления кандидата. Напротив, если таблица уже была полностью заполнена, то есть, если максимальное количество таблицы удовлетворено, кандидат, расположенный на переднем конце, то есть, самый старый в таблице, удаляется, и новый кандидат добавляется.
[427] Фиг. 41 является диаграммой для описания таблицы HMVP, работающей в ограниченном FIFO в соответствии с вариантом осуществления раскрытия.
[428] Со ссылкой на фиг. 41, если используется ограниченный FIFO, то выполняется обрезка, если добавление нового кандидата вызывает какую-либо избыточность. В варианте осуществления, если кандидат, имеющий избыточную информацию движения, присутствует в таблице, избыточный кандидат в таблице удаляется, и информация движения текущего кандидата может добавляться.
[429]
Вариант осуществления 1
[430]
[431] В отношении кандидатов HMVP, во многих случаях, MV самой последней истории могут перекрывать информацию движения пространственного кандидата (или пространственного соседнего кандидата). Соответственно, настоящий вариант осуществления предлагает способ установки дополнительного порядка кандидатов иначе по сравнению с порядком индекса HMVP LUT, когда кандидат HMVP добавляется в список AMVP или список объединения.
[432] В соответствии с вариантом осуществления раскрытия, список кандидатов может эффективно конфигурироваться путем адаптивного регулирования кандидата HMVP. Соответственно, количество бинов сигнализации, используемых для бинаризации, может быть уменьшено, и эффективность кодирования может быть улучшена.
[433] То есть, кандидат HMVP, добавленный в список объединения или список AMVP, может не ограничиваться индексом в списке HMVP. В одном варианте осуществления, Таблица 2 ниже иллюстрирует способ изменения порядка, в котором кандидат HMVP добавляется в список AMVP или список объединения.
[434] Таблица 2
Индекс HMVP LUT (0 обозначает MV самой последней истории)
Порядок для добавления в список AMVP или список объединения
0
2
1
0
2
1
3
3
..
..
[435] Со ссылкой на Таблицу 2, как описано выше, существует высокая вероятность того, что самый последний введенный кандидат HMVP может иметь ту же самую информацию движения, что и пространственный кандидат. Соответственно, порядок добавления кандидата HMVP может быть предварительно определен независимо от индекса HMVP с учетом вероятности.
[436] Кроме того, в одном варианте осуществления, кандидат HMVP может добавляться в список объединения или список AMVP от кандидата HMVP, начинающегося с n-го кандидата в списке. Таблица 3 ниже иллюстрирует измененный порядок для добавления кандидата в список AMVP или список объединения.
[437] Таблица 3
Индекс HMVP LUT(0 обозначает MV самой последней истории)
Порядок для добавления в список AMVP или список объединения
0
1
0
2
1
3
2
..
..
[438] Со ссылкой на Таблицу 3, кандидат HMVP может добавляться в список объединения или список AMVP с второго индекса.
[439] В одном варианте осуществления, информация о порядке добавления кандидата HMVP в таблице (LUT) может сигнализироваться от кодера на декодер. Например, такая информация порядка может передаваться через синтаксис высокого уровня (HLS). Синтаксис высокого уровня может быть, например, набором параметров последовательности, набором параметров картинки, заголовком вырезки, единицей дерева кодирования, единицей кодирования и/или другим подходящим заголовком данных синтаксиса.
[440] Таблица 4 иллюстрирует структуру синтаксиса высокого уровня, к которому может применяться способ, предложенный в раскрытии.
[441] Таблица 4
[442] Со ссылкой на Таблицу 4, set_HMVP_order_flag, равный 1, указывает, что set_HMVP_order_flag присутствует в заголовке вырезки в не-IDR-картинках в CVS. set_HMVP_order_flag, равный 0, указывает, что set_HMVP_order_flag не присутствует в заголовках вырезок, и адаптивное HMVP не используется в VCS.
[443] Таблица 5 иллюстрирует структуру синтаксиса заголовка сегмента вырезки, к которой может применяться способ, предложенный в раскрытии.
[444] Таблица 5
[445] Со ссылкой на Таблицу 5, slice_HMVP_idx означает индекс для последовательности используемых кандидатов. Например, slice_HMVP_idx, равный 0, может представлять базовую последовательность HMVP, такую как 0, 1, 2, 3. Подобным же образом, значение индекса 1 может использоваться, чтобы представлять последовательность HMVP 3, 2, 1, 0.
[446]
Вариант осуществления 2
[447]
[448] В варианте осуществления раскрытия, в дополнение к HMVP LUT, предлагается способ использования долговременного списка для предсказания движения. Соответственно, количество поддерживаемых кандидатов HMVP может повышаться. В варианте осуществления, могут рассматриваться 2 таблицы HMVP. В этом случае, одна может использоваться, чтобы хранить общие кандидаты HMVP, и другая может использоваться в качестве долгосрочного списка, в котором хранятся кандидаты, которые необходимо дополнительно поддерживать.
[449] Далее иллюстрируются способы сброса и формирования долгосрочного списка (или долгосрочного списка HMVP).
[450] - После того как первая CTU из строки CTU декодирована, один или более MV истории последовательных CTU могут добавляться в долгосрочную HMVP LUT. Такая долгосрочная HMVP LUT может не использоваться или обновляться до следующей строки CTU.
[451] - В начале следующей строки CTU, долгосрочная HMVP LUT может использоваться, чтобы сбросить общую HMVP LUT. Причина для этого состоит в том, что кандидаты HMVP CTU в начале строки CTU могут быть более связанными по сравнению с MV истории в конце предыдущей строки CTU.
[452] - Вышеизложенный процесс может повторяться.
[453] Фиг. 42 является диаграммой, иллюстрирующей HMVP LUT и долгосрочную HMVP LUT в соответствии с вариантом осуществления раскрытия.
[454] Со ссылкой на фиг. 42, представлены две LUT. Одна является HMVP LUT (или общей HMVP LUT или краткосрочной HMVP LUT), и другая является долгосрочной HMVP LUT. Когда кандидат HMVP добавляется в списки объединения и AMVP, он может добавляться из HMVP LUT или долгосрочной LUT, как проиллюстрировано на фиг. 42.
[455] Использование долгосрочной LUT может быть указано посредством синтаксиса высокого уровня путем введения нового синтаксического элемента. Например, синтаксический элемент может быть представлен в наборе параметров последовательности, наборе параметров картинки, заголовке вырезки, единице дерева кодирования, единице кодирования и/или другом подходящем заголовке данных синтаксиса.
[456]
Вариант осуществления 3
[457]
[458] В варианте осуществления раскрытия, предложен способ, в котором гибкость для декодирования учитывается в добавлении кандидата HMVP в HMVP LUT. Кодер/декодер может учитывать решение для одной или более характеристик PU (или CU).
[459] В варианте осуществления, кодер/декодер может учитывать следующее содержимое при добавлении кандидата HMVP в таблицу. Кодер/декодер может добавлять кандидата в таблицу с учетом характеристик, таких как режим (например, режим объединения, аффинный режим или режим AMVP) PU и/или размер блока, по отдельности или в комбинации. В одном варианте осуществления, в дополнение к этим характеристикам, могут учитываться другие характеристики. Например, тип объединения (например, пространственный кандидат или временной кандидат), в котором рассматривается обновление HMVP LUT, является ли она под-PU и т.д., может рассматриваться в качестве критерия для выбора кандидата. Критерий выбора может определяться так, чтобы уменьшать избыточность с предыдущей историей (или предыдущим HMVP). Например, если PU закодирована в режиме объединения и тип объединения является пространственным объединением, декодер может не обновлять HMVP LUT информацией движения соответствующей PU.
[460] Фиг. 43 является диаграммой, иллюстрирующей пример способа обновления HMVP LUT в соответствии с вариантом осуществления раскрытия.
[461] Со ссылкой на фиг. 43, кодер/декодер получает информацию движения закодированного кандидата (S4301).
[462] Кодер/декодер оценивает, следует ли обновлять LUT информацией движения кандидата на основе предопределенного критерия решения (S4302). Критерий решения может включать в себя характеристики, связанные с одним или нескольким из режима (например, режима объединения, аффинного режима или режима AMVP) кандидата, размера блока кандидата и/или типа объединения кандидата.
[463] Кодер/декодер обновляет LUT на основе критерия решения (S4303). То есть, если кандидат удовлетворяет предопределенному критерию решения, кодер/декодер может добавлять информацию движения кандидата в LUT.
[464]
Вариант осуществления 4
[465]
[466] В варианте осуществления раскрытия, предложены ограничения на проверку избыточности для добавления кандидата HMVP в список объединения (или список AMVP). Ограничения на проверку избыточности могут быть реализованы различными способами.
[467] В одном варианте осуществления, кодер/декодер может ограничивать количество проверок с обрезкой для первого конкретного количества кандидатов в списке объединения. Кодер/декодер может ограничивать количество проверок с обрезкой для кандидатов от первого кандидата списка объединения до конкретного кандидата. Например, кодер/декодер может выполнять процесс обрезки на кандидатах от первого кандидата списка объединения до конкретного кандидата. В этом случае, кандидат HMVP, то есть, цель проверки с обрезкой может быть ограничен предопределенным количеством.
[468] Более того, в одном варианте осуществления, кодер/декодер может ограничивать проверку с обрезкой путем выполнения проверки с обрезкой на конкретном типе кандидата объединения в списке объединения. Например, кодер/декодер может выполнять проверку с обрезкой только на пространственном кандидате списка объединения при добавлении кандидата HMVP. Альтернативно, например, кодер/декодер может выполнять проверку с обрезкой только на некоторых из пространственных кандидатов списка объединения при добавлении кандидата HMVP. Некоторые из пространственных кандидатов могут быть предопределенными. Например, предопределенные пространственные кандидаты могут быть по меньшей мере одним из левого соседнего пространственного кандидата и/или верхнего соседнего пространственного кандидата. Вариант осуществления раскрытия не ограничен этим, и другие типы могут комбинироваться и ограничиваться в качестве цели проверки с обрезкой.
[469] Фиг. 44 является диаграммой, иллюстрирующей способ ограничения количества кандидатов HMVP, то есть, цели проверки с обрезкой, в соответствии с вариантом осуществления раскрытия.
[470] Со ссылкой на фиг. 44, в варианте осуществления раскрытия, количество кандидатов HMVP, то есть, цели проверки с обрезкой, может быть ограничено до четырех раз.
[471] Кодер/декодер может проверять избыточность информации движения между первыми M кандидатами в HMVP LUT и кандидатами объединения списка объединения при формировании списка объединения с использованием кандидатов HMVP.
[472] Альтернативно, кодер/декодер может проверять избыточность информации движения между первыми M кандидатами в HMVP LUT и текущей декодированной PU при добавлении информации движения декодированной PU в HMVP LUT.
[473] Фиг. 45 является диаграммой, иллюстрирующей пример способа выполнения проверки с обрезкой в соответствии с вариантом осуществления раскрытия.
[474] Со ссылкой на фиг. 45, кодер/декодер получает информацию движения декодированного кандидата и определяет (или декодирует) количество проверок с обрезкой (S4501, S4502).
[475] Кодер/декодер выполняет проверку с обрезкой на основе определенного количества проверок с обрезкой (S4503).
[476] В одном варианте осуществления, как в Таблице 4 и Таблице 5, информация, относящаяся к проверке с обрезкой, может сигнализироваться посредством синтаксиса высокого уровня. В этом случае, синтаксический элемент, передаваемый от кодера на декодер, может быть включен в любой заголовок для указания количества проверок с обрезкой, которые необходимо выполнить. Синтаксис высокого уровня может представлять собой, например, набор параметров последовательности, набор параметров картинки, заголовок вырезки, единицу дерева кодирования, единицу кодирования и/или другой подходящий заголовок данных синтаксиса.
[477]
Вариант осуществления 5
[478]
[479] В варианте осуществления раскрытия, предложен эффективный способ выбора кандидата HMVP. Когда кандидат вектора движения истории (т.е., кандидат HMVP) вставляется в список объединения (или список AMVP), может выполняться проверка с обрезкой, так что кандидат HMVP не перекрывает существующий список объединения.
[480] Если должны выполняться полные проверки избыточности между списком объединения размером M и LUT истории размером N, необходимы проверки (M-1)×N раз. Соответственно, в варианте осуществления раскрытия, количество кандидатов HMVP может зависеть от существующего кандидата объединения. Например, количество кандидатов HMVP может зависеть от количества пространственных кандидатов, присутствующих в списке объединения. Альтернативно, например, количество кандидатов HMVP может зависеть от количества пространственных кандидатов и временных кандидатов, присутствующих в списке объединения.
[481] Если существует другой кандидат объединения, присутствующий в списке объединения, количество кандидатов HMVP, на которых будет выполняться проверка с обрезкой на основе конкретного критерия (или правила), основанного на количестве кандидатов объединения и/или количестве HVMP списка объединения, может быть уменьшено. Соответственно, количество проверок избыточности в худшем случае может быть уменьшено.
[482] Например, в случае списка объединения, имеющего размер (или длину) 6, если список объединения полностью заполнен, список объединения может включать в себя максимум 5 пространственных или других кандидатов объединения. Чтобы вставить кандидата HMVP в 6 списков HMVP, 30 проверок избыточности могут потребоваться в худшем случае.
[483] В одном варианте осуществления, пример, связанный с ограничениями на количество HMVP, подлежащих проверке, проиллюстрирован в Уравнении 23 и Таблице 6.
[484] Уравнение 23
если (existing_candidates >= 3)
number_hist_to_check=7 - existing_candidates;
[485] Таблица 6
# существующего кандидата
# существующего кандидата для проверки
# MV историидля проверки
# проверок
1
1
6
6
2
2
6
12
3
3
4
12
4
4
3
12
5
5
2
10
[486] Со ссылкой на Таблицу 6, количество проверок избыточности для добавления HMVP в худшем случае может быть уменьшено до 12 раз, а не 30 раз путем ограничения количества HMVP, то есть, цели проверки с обрезкой, до 2.
[487]
Вариант осуществления 6
[488]
[489] В варианте осуществления раскрытия, предложен способ создания списка объединения с использованием пространственного временного предсказания вектора движения на основе истории (H-STMVP). H-STMVP указывает кандидат, выведенный как среднее из двух пространственных MVP и TMVP на основе истории. Два пространственных HMVP могут быть получены из буфера HMVP. TMVP может быть получен из текущего списка объединения. В этом случае, пространственный кандидат может быть кандидатом, полученным из последних 2 закодированных MV в последовательности декодирования перед текущим блоком.
[490] Например, последний закодированный MV (упоминаемый как MV_L в раскрытии), MV, который является предпоследним (упоминаемый как MV_(L-1) в раскрытии), и MV_TMVP могут использоваться, чтобы генерировать кандидата H-STMVP для вставки в список объединения.
[491] Если все три кандидата могут использоваться, MV, добавленные в список объединения, могут вычисляться посредством Уравнения 24 ниже.
[492] Уравнение 24
[493] В одном варианте осуществления, если только два из трех кандидатов доступны, только два кандидата могут усредняться, чтобы генерировать H-STMVP. Подобным же образом, если только один кандидат доступен, этот один кандидат может использоваться. Если доступный кандидат отсутствует, то H-STMVP не используется для конфигурации списка объединения.
[494] В варианте осуществления раскрытия, предложен способ получения вектора движения кандидата H-STMVP с использованием способа, отличного от Уравнения 24.
[495] Например, вместо усреднения трех или более кандидатов сразу, может быть вычислительно проще сначала усреднить пространственных кандидатов, а затем снова усреднить двух кандидатов, используя результат усреднения. Пример этого проиллюстрирован в следующих уравнениях.
[496] Уравнение 25
[497] Альтернативно, среднее значение может быть получено следующим образом.
[498] Уравнение 26
[499] Уравнение 27
[500] Уравнение 28
[501] Кодер/декодер может сначала усреднить два кандидата, как в Уравнениях 25-27, а затем может усреднить значения результата с использованием третьего кандидата. Альтернативно, кодер/декодер может назначить более высокую важность/вес кандидату, то есть, MV_L, путем применения дважды операции сдвига, как в Уравнении 28. Среднее значение может выводиться без операции разделения путем только операции сдвига с использованием Уравнений 25-28.
[502]
Вариант осуществления 7
[503]
[504] В варианте осуществления раскрытия, предложен способ с использованием данного количества (n) пространственных кандидатов вместо двух пространственных кандидатов на основе истории при выводе H-STMVP. n кандидатов не обязательно должны быть по существу последовательной последовательностью декодирования. n кандидатов могут выбираться произвольно или в соответствии с некоторым правилом.
[505] Соответственно, Уравнение 24 может быть представлено с использованием более общего способа, как в Уравнении 29 ниже.
[506] Уравнение 29
[507] В другом варианте осуществления, в предположении, что используются 5 пространственных кандидатов, повышение влияния пространственных кандидатов для генерации кандидата H-STMVP может быть минимизировано, и пространственный кандидат и временной кандидат могут надлежащим образом вводиться путем улучшения веса, применяемого к временному кандидату.
[508] Соответственно, с этой целью, после того как пространственные кандидаты усреднены вместе с использованием Уравнения 30, вышеуказанная цель может быть достигнута путем усреднения MV_TMVP с использованием результата усреднения.
[509] Уравнение 30
[510]
Вариант осуществления 8
[511]
[512] В варианте осуществления раскрытия, предложен способ добавления веса (или весового коэффициента) к кандидату вектора движения, используемому для вывода H-STMVP. В этом случае, вес может определяться эмпирически или может определяться с учетом временного расстояния до фиксированного опорного кадра или может определяться с учетом местоположения в таблице истории. Например, новый кандидат может иметь больший вес, чем предыдущий кандидат.
[513] То есть, в настоящем варианте осуществления, Уравнение 24 может быть представлено как Уравнение 31 ниже.
[514] Уравнение 31
[515] В этом случае, вес может иметь одно и то же значение или неравномерно распределенное значение.
[516]
Вариант осуществления 9
[517]
[518] В варианте осуществления раскрытия, предложен способ масштабирования вектора движения, используемого для вывода кандидата H-STMVP как одной опорной картинки.
[519] Фиг. 46 является диаграммой для описания способа вывода кандидата H-STMVP с использованием векторов движения, которые ссылаются на разные опорные картинки в соответствии с вариантом осуществления раскрытия.
[520] Со ссылкой на фиг. 46, предполагается, что кандидаты MV_L, MV_L-1 и MV_TMVP ссылаются на (или указывают) соответственные разные опорные картинки. То есть, фиг. 46 иллюстрирует, что кандидаты, используемые для генерации кандидатов H-STMVP, могут иметь разные опорные индексы и в результате иметь разные опорные кадры.
[521] Усреднение по уравнениям 24-31 может давать неравное результирующее значение, поскольку кадр, имеющий близкий опорный кадр, может по существу иметь большее влияние на вектор движения H-STMVP. Соответственно, предложен способ масштабирования всех векторов движения в один опорный кадр для одинакового сравнения и включения.
[522] В этом случае, кодер может определять, какой один кадр, выполняемый как часть оптимизации RD, является наиболее подходящим для использования в качестве опорного кадра. В варианте осуществления, выбранный опорный кадр может сигнализироваться в заголовке вырезки аналогично индексу массива TMVP, присутствующему в заголовке вырезки. Например, опорный кадр, подлежащий использованию, может генерироваться с использованием фиксированного правила. Альтернативно, например, список может масштабироваться как первый доступный опорный кадр из L0, или список может масштабироваться на основе текущего отсчета последовательности картинок.
[523] В одном варианте осуществления, чтобы достичь вышеуказанной цели, кодер может передавать, на декодер, информацию для одной фиксированной картинки с использованием синтаксиса высокого уровня (HLS), который может быть частью набора параметров последовательности, набора параметров картинки, заголовка вырезки, единицы дерева кодирования и/или другого заголовка данных. Например, может быть определена структура синтаксиса высокого уровня, такая как Таблица 7 и/или Таблица 8 ниже.
[524] Таблица 7
high_level_parameter_set() {
Описание
…
<b></b>set_ HSTMVP_ref_pic_flag
u(1)
…
[525] Со ссылкой на Таблицу 7, set_HSTMVP_ref_pic_flag, равный 1, указывает, что set_HSTMVP_idx присутствует в заголовке вырезки не-IDR-картинки в CVS. set_HSTMVP_ref_pic_flag, равный 0, указывает, что set_HSTMVP_idx отсутствует в заголовке вырезки.
[526] Таблица 8
slice_segment_header() {
Описание
…
if(set_HSTMVP_ref_pic_flag)
<b></b>slice_HSTMVP_idx
u(1)
…
}
…
[527] Со ссылкой на Таблицу 8, slice_HMVP_idx указывает опорный индекс. В одном варианте осуществления, опорный индекс может выбираться в отношении списка L0.
[528]
[529] Вышеупомянутые варианты осуществления раскрытия могут разделяться и описываться, для удобства описания, но раскрытие не ограничено этим. То есть, варианты осуществления, описанные в вариантах осуществления 1-9, могут выполняться независимо, или один или более разных вариантов осуществления могут комбинироваться и выполняться.
[530] Фиг. 47 является блок-схемой последовательности операций, иллюстрирующей способ обработки сигнала видео на основе интер-предсказания в соответствии с вариантом осуществления, к которому применяется раскрытие.
[531] Со ссылкой на фиг. 47, декодер описан в своей основе для удобства описания, но раскрытие не ограничено этим. Способ обработки сигнала видео на основе интер-предсказания в соответствии с вариантом осуществления раскрытия может идентично выполняться в кодере и декодере.
[532] Декодер конфигурирует первый список кандидатов объединения текущего блока с использованием пространственного кандидата объединения и временного кандидата объединения текущего блока (S4701).
[533] Декодер конфигурирует второй список кандидатов объединения путем добавления, в первый список кандидатов объединения, кандидата объединения на основе истории, указывающего информацию движения блока, закодированного перед текущим блоком (S4702).
[534] Декодер получает индекс объединения, указывающий кандидата объединения, применяемого к текущему блоку, во втором списке кандидатов объединения (S4703).
[535] Декодер генерирует блок предсказания текущего блока с использованием информации движения кандидата объединения, указанной индексом объединения (S4704).
[536] Как описано выше, кандидат объединения на основе истории может добавляться в первый список кандидатов объединения, если кандидат объединения на основе истории имеет информацию движения, не перекрывающую информацию движения предопределенного кандидата объединения, среди кандидатов объединения, включенных в первый список кандидатов объединения.
[537] Как описано выше, кандидат объединения на основе истории может добавляться в первый список кандидатов объединения, если кандидат объединения на основе истории имеет информацию движения, не перекрывающую информацию движения предопределенного конкретного количества кандидатов объединения, среди кандидатов объединения, включенных в первый список кандидатов объединения.
[538] Как описано выше, кандидат объединения на основе истории может добавляться в первый список кандидатов объединения, если кандидат объединения на основе истории имеет информацию движения, не перекрывающую информацию движения конкретного пространственного кандидата объединения, включенного в первый список кандидатов объединения.
[539] Как описано выше, кандидат объединения на основе истории может выводиться из предопределенного количества кандидатов в буфере на основе истории, в котором хранятся кандидаты объединения на основе истории. Например, предопределенное количество может составлять 2.
[540] Как описано выше, этап формирования второго списка кандидатов объединения дополнительно включает в себя этап добавления пространственного временного кандидата объединения на основе истории. Пространственный временной кандидат на основе истории может выводиться с использованием двух кандидатов объединения на основе истории и временного кандидата объединения.
[541] Как описано выше, вектор движения пространственного временного кандидата на основе истории может выводиться как среднее значение векторов движения двух кандидатов объединения на основе истории и среднее значение векторов движения временных кандидатов объединения.
[542] Фиг. 48 иллюстрирует примерную блок-схему устройства для обработки сигнала изображения в соответствии с вариантом осуществления раскрытия. Процессор сигнала изображения на фиг. 48 может соответствовать устройству 100 кодирования на фиг. 1 или устройству 200 декодирования на фиг. 2.
[543] Процессор 4800 изображения для обработки сигнала изображения включает в себя память 4820 для хранения сигнала изображения и процессор 4810, соединенный с памятью, для обработки сигнала изображения.
[544] Процессор 4810 в соответствии с вариантом осуществления раскрытия может быть сконфигурирован с по меньшей мере одной схемой обработки для обработки сигнала изображения и может обрабатывать сигнал изображения путем исполнения инструкций для кодирования или декодирования сигнала изображения. То есть, процессор 4810 может кодировать исходные данные изображения или декодировать закодированный сигнал изображения путем исполнения вышеупомянутых способов кодирования или декодирования.
[545] Фиг. 49 иллюстрирует систему кодирования видео, в которой применяется раскрытие.
[546] Система кодирования видео может включать в себя устройство источника и устройство приема. Устройство источника может передавать, на устройство приема, закодированную информацию или данные видео/изображения через цифровой носитель хранения или по сети в файле или форме потока.
[547] Устройство источника может включать в себя источник видео, устройство кодирования и передатчик. Устройство приема может включать в себя приемник, устройство декодирования и модуль воспроизведения (рендерер). Устройство кодирования может называться устройством кодирования видео/изображения. Устройство декодирования может называться устройством декодирования видео/изображения. Передатчик может быть включен в устройство кодирования. Приемник может быть включен в устройство декодирования. Устройство рендеринга может включать в себя дисплей. Дисплей может быть сконфигурирован для каждого устройства или внешнего компонента.
[548] Источник видео может получать видео/изображение через процесс захвата, синтеза или генерации видео/изображения. Источник видео может включать в себя устройство захвата видео/изображения и/или устройство генерации видео/изображения. Устройство захвата видео/изображения может включать в себя одну или более камер, архив видео/изображений, включающий в себя, например, ранее захваченные видео/изображения и т.д. Устройство генерации видео/изображений может включать в себя, например, компьютер, планшет и смартфон и может (электронным способом) генерировать видео/изображение. Например, виртуальное видео/изображение может генерироваться компьютером. В этом случае, процесс генерации связанных данных может заменяться на процесс захвата видео/изображения.
[549] Устройство кодирования может кодировать введенное видео/изображение. Устройство кодирования может выполнять последовательность процедур, таких как предсказание, преобразование и квантование, для эффективности сжатия и кодирования. Закодированные данные (закодированная информация видео/изображения) может выводиться в форме битового потока.
[550] Передатчик может передавать, на приемник устройства приема, закодированную информацию видео/изображения или данные, выведенные в форме битового потока через цифровой носитель хранения или по сети в файле или форме потока. Цифровой носитель хранения может включать в себя различные носители хранения, такие как USB, SD, CD, DVD, Blueray, HDD и SSD. Передатчик может включать в себя элемент для генерации мультимедийного файла с предопределенным форматом файла и может включать в себя элемент для передачи по сети вещания/связи. Приемник может извлекать битовый поток и передавать его на устройство декодирования.
[551] Устройство декодирования может декодировать видео/изображение путем выполнения последовательности процедур, таких как деквантование, обратное преобразование и предсказание, соответствующие операциям устройства кодирования.
[552] Устройство воспроизведения может воспроизводить декодированное видео/изображение. Воспроизведенное видео/ изображение может отображаться посредством дисплея.
[553] Фиг. 50 является вариантом осуществления, в котором применяется раскрытие, и иллюстрирует структуру системы стриминга контента.
[554] Со ссылкой на фиг. 50, система стриминга контента, в которой применяется раскрытие, может в основном включать в себя сервер кодирования, сервер потоковой передачи (стриминга), веб-сервер, хранилище мультимедиа, пользовательское оборудование и устройство мультимедийного ввода.
[555] Сервер кодирования в основном функционирует, чтобы генерировать битовый поток путем сжатия контента, введенного из устройства мультимедийного ввода, таких как смартфон, камера или камкордер, в цифровые данные и передавать битовый поток на сервер стриминга. В качестве другого примера, если устройства мультимедийного ввода, такие как смартфон, камера или камкордер, напрямую генерируют битовый поток, сервер кодирования может быть опущен.
[556] Битовый поток может генерироваться посредством способа кодирования или способа генерации битового потока, в котором применяется раскрытие. Сервер стриминга может временно хранить битовый поток в процессе передачи или приема битового потока.
[557] Сервер стриминга передает мультимедийные данные на пользовательское оборудование на основе запроса пользователя через веб-сервер. Веб-сервер играет роль носителя для уведомления пользователя, какая услуга предоставляется. Когда пользователь запрашивает желательную услугу от веб-сервера, веб-сервер передает запрос на сервер стриминга. Сервер стриминга передает мультимедийные данные пользователю. В этом случае, система стриминга контента может включать в себя отдельный сервер управления. В этом случае, сервер управления функционирует, чтобы управлять инструкцией/откликом между устройствами в системе стриминга контента.
[558] Сервер стриминга может принимать контент от носителей хранения и/или сервера кодирования. Например, если контент принимается от сервера кодирования, сервер стриминга может принимать контент в реальном времени. В этом случае, чтобы обеспечить плавную услугу стриминга, сервер стриминга может хранить битовый поток в течение заданного времени.
[559] Примеры пользовательского оборудования могут включать в себя мобильный телефон, смартфон, ноутбук, терминал для цифрового вещания, персональные цифровые ассистенты (PDA), портативный мультимедийный плеер (PMP), навигатор, компактный планшетный PC, планшетный PC, ультрабук, носимое устройство (например, терминал типа часов (смарт-часы), терминал типа очков (смарт-очки) и наголовный дисплей (HMD)), цифровое TV, настольный компьютер и цифровые вывески.
[560] Серверы в системе стриминга контента могут работать как распределенные серверы. В этом случае, данные, принятые от серверов, могут распределяться и обрабатываться.
[561] Как описано выше, варианты осуществления, описанные в раскрытии, могут реализовываться и выполняться на процессоре, микропроцессоре, контроллере или чипе. Например, функциональные модули, проиллюстрированные на чертежах, могут реализовываться или выполняться на компьютере, процессоре, микропроцессоре, контроллере или чипе.
[562] Более того, декодер и кодер, в которых применяется раскрытие, могут быть включены в устройство передачи и приема мультимедийного вещания, мобильный терминал связи, устройство домашнего кинотеатра, устройство цифрового кинотеатра, камеру для мониторинга, видео-диалоговое устройство, устройство связи в реальном времени, такой как видеосвязь, мобильное стриминговое устройство, носитель хранения, камкордер, устройство предоставления видеоуслуг по требованию (VoD), устройство доставки видео от провайдера контента пользователю, минуя оператора связи (OTT), устройство обеспечения услуги Интернет-стриминга, устройство трехмерного (3D) видео, устройство видео-телефонии и видеоустройство медицинского назначения и могут использоваться для обработки сигнала видео или сигнала данных. Например, устройство OTT-видео может включать в себя игровую консоль, Blueray-плеер, TV с доступом к интернету, домашний кинотеатр, смартфон, планшетный PC и цифровой видео-рекордер (DVR).
[563] Более того, способ обработки, в котором применяется раскрытие, может быть реализован в форме программы, исполняемой компьютером, и может храниться в считываемом компьютером носителе записи. Мультимедийные данные, имеющие структуру данных в соответствии с раскрытием, могут также храниться в считываемом компьютером носителе записи. Считываемый компьютером носитель записи включает в себя все типы устройств хранения, в которых хранятся считываемые компьютером данные. Считываемый компьютером носитель хранения может включать в себя Blueray (BD) диск, универсальную последовательную шину (USB), ROM, PROM, EPROM, EEPROM, RAM, CD-ROM, магнитную ленту, флоппи-диск и оптическое устройство хранения данных, например. Более того, считываемый компьютером носитель записи включает в себя носители, реализуемые в форме несущих (например, передачи через Интернет). Более того, битовый поток, сгенерированный с использованием способа кодирования, может сохраняться в считываемом компьютером носителе записи или может передаваться по проводным и беспроводным сетям связи.
[564] Кроме того, вариант осуществления раскрытия может быть реализован как компьютерный программный продукт с использованием программного кода. Программный код может выполняться компьютером в соответствии с вариантом осуществления раскрытия. Программный код может храниться на носителе, считываемом компьютером.
[565] В вышеизложенных вариантах осуществления, элементы и характеристики раскрытия были скомбинированы в конкретной форме. Каждый из элементов или характеристик может рассматриваться как опциональный, если иное не описано явно. Каждый из элементов или характеристик может быть реализован в такой форме, чтобы не комбинироваться с другими элементами или характеристиками. Кроме того, некоторые из элементов и/или характеристик могут комбинироваться, чтобы образовывать вариант осуществления раскрытия. Последовательность операций, описанная в вариантах осуществления раскрытия, может изменяться. Некоторые из элементов или характеристик варианта осуществления могут быть включены в другой вариант осуществления или могут быть замещены на соответствующие элементы или характеристики другого варианта осуществления. Очевидно, что вариант осуществления может создаваться путем комбинирования пунктов формулы изобретения, не имеющих явного отношения ссылки в формуле изобретения, или может быть включен в новый пункт формулы путем изменений после подачи заявки.
[566] Вариант осуществления в соответствии с раскрытием может быть реализован различными средствами, например, в аппаратных средствах, прошивке, программном обеспечении или их комбинации. В случае аппаратной реализации, вариант осуществления раскрытия может быть реализован с использованием одной или более специализированных интегральных схем (ASIC), цифровых сигнальных процессоров (DSP), устройств цифровой обработки сигналов (DSPD), программируемых логических устройств (PLD), программируемых вентильных матриц (FPGA), процессоров, контроллеров, микроконтроллеров, микропроцессоров и т.д.
[567] В случае реализации посредством прошивки или программного обеспечения, вариант осуществления раскрытия может быть реализован в форме модуля, процедуры или функции для выполнения вышеупомянутых функций или операций. Код программного обеспечения может храниться в памяти и запускаться процессором. Память может располагаться внутри или вне процессора и может обмениваться данными с процессором посредством различных известных средств.
[568] Специалистам в данной области техники должно быть понятно, что раскрытие может быть воплощено в других конкретных формах без отклонения от существенных характеристик раскрытия. Соответственно, подробное описание не должно пониматься как ограничивающее, а должно пониматься как иллюстративное во всех аспектах. Объем раскрытия должен определяться рациональным анализом прилагаемой формулы изобретения, и все изменения в эквивалентном диапазоне раскрытия включены в объем раскрытия.
Промышленная применимость
[569] Вышеизложенные предпочтительные варианты осуществления раскрытия были раскрыты для иллюстративных целей, и специалисты в данной области техники могут совершенствовать, изменять, заменять или добавлять различные другие варианты осуществления без отклонения от технической сущности и объема раскрытия, изложенного в прилагаемой формуле изобретения.
Положение 1. Способ обработки сигнала видео на основе интер-предсказания, причем способ содержит:
формирование первого списка кандидатов объединения текущего блока с использованием пространственного кандидата объединения и временного кандидата объединения текущего блока;
формирование второго списка кандидатов объединения путем добавления кандидата объединения на основе истории, указывающего информацию движения блока, закодированного перед текущим блоком, в первый список кандидатов объединения;
получение индекса объединения, указывающего кандидата объединения, применяемого к текущему блоку, во втором списке кандидатов объединения; и
генерацию блока предсказания текущего блока с использованием информации движения кандидата объединения, указанного индексом объединения,
причем кандидат объединения на основе истории добавляется в первый список кандидатов объединения, если кандидат объединения на основе истории имеет информацию движения, не перекрывающую информацию движения предопределенного кандидата объединения среди кандидатов объединения, включенных в первый список кандидатов объединения.
Положение 2. Способ согласно Положению 1, причем кандидат объединения на основе истории добавляется в первый список кандидатов объединения, когда кандидат объединения на основе истории имеет информацию движения, не перекрывающую информацию движения предопределенного конкретного количества кандидатов объединения среди кандидатов объединения, включенных в первый список кандидатов объединения.
Положение 3. Способ согласно Положению 1, причем кандидат объединения на основе истории добавляется в первый список кандидатов объединения, когда кандидат объединения на основе истории имеет информацию движения, не перекрывающую информацию движения конкретного пространственного кандидата объединения, включенного в первый список кандидатов объединения.
Положение 4. Способ согласно Положению 1, причем кандидат объединения на основе истории выводится из предопределенного количества кандидатов в буфере на основе истории, хранящем кандидатов объединения на основе истории.
Положение 5. Способ согласно Положению 1,
причем формирование второго списка кандидатов объединения дополнительно содержит добавление пространственного временного кандидата объединения на основе истории, и
причем пространственный временной кандидат на основе истории выводится с использованием двух кандидатов объединения на основе истории и временного кандидата объединения.
Положение 6. Способ согласно Положению 5, причем вектор движения пространственного временного кандидата на основе истории выводится как среднее значение векторов движения двух кандидатов объединения на основе истории и среднего значения векторов движения временных кандидатов объединения.
Положение 7. Устройство для обработки сигнала видео на основе интер-предсказания, причем устройство содержит:
память, хранящую сигнал видео; и
процессор, связанный с памятью,
причем процессор сконфигурирован, чтобы:
формировать первый список кандидатов объединения текущего блока с использованием пространственного кандидата объединения и временного кандидата объединения текущего блока;
формировать второй список кандидатов объединения путем добавления кандидата объединения на основе истории, указывающего информацию движения блока, закодированного перед текущим блоком, в первый список кандидатов объединения;
получать индекс объединения, указывающий кандидата объединения, применяемого к текущему блоку, во втором списке кандидатов объединения; и
генерировать блок предсказания текущего блока с использованием информации движения кандидата объединения, указанного индексом объединения,
причем кандидат объединения на основе истории добавляется в первый список кандидатов объединения, если кандидат объединения на основе истории имеет информацию движения, не перекрывающую информацию движения предопределенного кандидата объединения среди кандидатов объединения, включенных в первый список кандидатов объединения.
Положение 8. Устройство согласно Положению 7, причем кандидат объединения на основе истории добавляется в первый список кандидатов объединения, когда кандидат объединения на основе истории имеет информацию движения, не перекрывающую информацию движения предопределенного конкретного количества кандидатов объединения среди кандидатов объединения, включенных в первый список кандидатов объединения.
Положение 9. Устройство согласно Положению 7, причем кандидат объединения на основе истории добавляется в первый список кандидатов объединения, когда кандидат объединения на основе истории имеет информацию движения, не перекрывающую информацию движения конкретного пространственного кандидата объединения, включенного в первый список кандидатов объединения.
Положение 10. Устройство согласно Положению 7, причем кандидат объединения на основе истории выводится из предопределенного количества кандидатов в буфере на основе истории, хранящем кандидатов объединения на основе истории.
Положение 11. Устройство согласно Положению 7, причем процессор сконфигурирован, чтобы формировать второй список кандидатов объединения, дополнительно содержит добавление пространственного временного кандидата объединения на основе истории, и причем пространственный временной кандидат на основе истории выводится с использованием двух кандидатов объединения на основе истории и временного кандидата объединения.
Положение 12. Устройство согласно Положению 11, причем вектор движения пространственного временного кандидата на основе истории выводится как среднее значение векторов движения двух кандидатов объединения на основе истории и среднее значение векторов движения временных кандидатов объединения.