Область техники, к которой относится изобретение
[1] Настоящее раскрытие относится к способу и устройству для обработки видеосигнала, а более конкретно, к способу и устройству для кодирования или декодирования видеосигнала посредством использования взаимного прогнозирования.
Уровень техники
[2] Кодирование со сжатием означает последовательность технологий обработки сигналов для передачи оцифрованной информации через линию связи или технологий для сохранения информации в форме, которая является подходящей для носителя хранения данных. Мультимедиа, включающее в себя видео, изображение, аудио и т.п., может представлять собой цель для кодирования со сжатием, и, в частности, технология выполнения кодирования со сжатием, предназначенного для видео, называется "сжатием видеоизображений".
[3] Видеоконтент следующего поколения предположительно должен иметь характеристики высокого пространственного разрешения, высокой частоты кадров и большого числа размерностей представления сцены. Чтобы обрабатывать такой контент, в результате вызывается радикальное увеличение объема запоминающего устройства, частоты обращений к запоминающему устройству и мощности обработки.
[4] Соответственно, требуется проектировать инструментальное средство кодирования для эффективной обработки видеоконтента следующего поколения. В частности, стандарты видеокодеков после стандарта высокоэффективного кодирования видео (HEVC) требуют более эффективных технологий прогнозирования.
Сущность изобретения
Техническая задача
[5] Цель вариантов осуществления раскрытия заключается в том, чтобы предложить способ и оборудование обработки видеоданных для конструирования списка возможных вариантов объединения или возможного варианта прогнозирования векторов движения в режиме прогнозирования (предсказания) на основе ссылки на текущие кадры (CPR) или на основе внутриблочного копирования (IBC), который выполняет взаимное (интер-) прогнозирование с использованием текущего кадра в качестве опорного кадра.
[6] Цели раскрытия не ограничены вышеприведенным, и другие неупомянутые цели должны становиться очевидными для специалистов в данной области техники из нижеприведенного описания.
Техническое решение
[7] В аспекте варианта осуществления раскрытия, способ обработки видеоданных может содержать: конфигурирование списка потенциально подходящих вариантов (возможных вариантов) векторов блока текущего блока, к которому применяется режим прогнозирования на основе внутриблочного копирования (IBC), причем IBC-режим ссылается на другой блок в текущем кадре; и формирование прогнозной выборки текущего блока на основе вектора блока, включенного в список возможных вариантов векторов блока, при этом конфигурирование списка возможных вариантов векторов блока содержит: конфигурирование списка возможных вариантов векторов блока из пространственного соседнего блока, к которому применяется режим IBC-прогнозирования; и модификацию списка возможных вариантов векторов блока на основе возможного варианта прогнозирования векторов движения на основе предыстории (HVMP), к которому применяется режим IBC-прогнозирования, когда число текущих возможных вариантов из списка возможных вариантов векторов блока меньше максимального числа возможных вариантов.
[8] В варианте осуществления, конфигурирование списка возможных вариантов векторов блока дополнительно может содержать добавление нулевого вектора в модифицированный список возможных вариантов векторов блока, когда число текущих возможных вариантов из модифицированного списка возможных вариантов векторов блока меньше максимального числа возможных вариантов.
[9] В варианте осуществления, добавление нулевого вектора в модифицированный список возможных вариантов векторов блока может содержать добавление нулевого вектора в модифицированный список возможных вариантов векторов блока до тех пор, пока число текущих возможных вариантов из модифицированного списка возможных вариантов векторов блока не становится максимальным числом возможных вариантов.
[10] В варианте осуществления, пространственный соседний блок может включать в себя, по меньшей мере, одно из левого бокового соседнего блока, левого нижнего соседнего блока, верхнего бокового соседнего блока или правого верхнего соседнего блока.
[11] В варианте осуществления, конфигурирование списка возможных вариантов векторов блока дополнительно может содержать добавление в модифицированный список возможных вариантов векторов блока попарного возможного варианта, сформированного на основе комбинации векторов блока, включенных в модифицированный список возможных вариантов векторов блока.
[12] В варианте осуществления, способ дополнительно может содержать добавление нулевого вектора в список возможных вариантов векторов блока, когда число текущих возможных вариантов из списка возможных вариантов векторов блока, в который добавляется попарный возможный вариант, меньше максимального числа возможных вариантов.
[13] В другом аспекте варианта осуществления, способ кодирования видеоданных может содержать: конфигурирование списка возможных вариантов векторов блока текущего блока, к которому применяется режим прогнозирования на основе внутриблочного копирования (IBC), причем IBC-режим ссылается на другой блок в текущем кадре; формирование прогнозной выборки текущего блока на основе вектора блока, включенного в список возможных вариантов векторов блока; и кодирование информации, связанной с прогнозированием текущего блока, при этом конфигурирование списка возможных вариантов векторов блока содержит: конфигурирование списка возможных вариантов векторов блока из пространственного соседнего блока, к которому применяется режим IBC-прогнозирования; и модификацию списка возможных вариантов векторов блока на основе возможного варианта прогнозирования векторов движения на основе предыстории (HVMP), к которому применяется режим IBC-прогнозирования, когда число текущих возможных вариантов из списка возможных вариантов векторов блока меньше максимального числа возможных вариантов.
[14] В другом аспекте варианта осуществления, оборудование для декодирования видеоданных может содержать: запоминающее устройство для сохранения видеоданных; и процессор, соединенный с запоминающим устройством и выполненный с возможностью обрабатывать видеоданные, при этом процессор выполнен с возможностью: конфигурировать список возможных вариантов векторов блока текущего блока, к которому применяется режим прогнозирования на основе внутриблочного копирования (IBC), причем IBC-режим ссылается на другой блок в текущем кадре; и формировать прогнозную выборку текущего блока на основе вектора блока, включенного в список возможных вариантов векторов блока, при этом для того, чтобы конфигурировать список возможных вариантов векторов блока, процессор выполнен с возможностью: конфигурировать список возможных вариантов векторов блока из пространственного соседнего блока, к которому применяется режим IBC-прогнозирования; и модифицировать список возможных вариантов векторов блока на основе возможного варианта прогнозирования векторов движения на основе предыстории (HVMP), к которому применяется режим IBC-прогнозирования, когда число текущих возможных вариантов из списка возможных вариантов векторов блока меньше максимального числа возможных вариантов.
[15] В еще одном другом аспекте варианта осуществления, оборудование для кодирования видеоданных может содержать: запоминающее устройство для сохранения видеоданных; и процессор, соединенный с запоминающим устройством и выполненный с возможностью обрабатывать видеоданные, при этом процессор выполнен с возможностью: конфигурировать список возможных вариантов векторов блока текущего блока, к которому применяется режим прогнозирования на основе внутриблочного копирования (IBC), причем IBC-режим ссылается на другой блок в текущем кадре; формировать прогнозную выборку текущего блока на основе вектора блока, включенного в список возможных вариантов векторов блока; и кодировать информацию, связанную с прогнозированием текущего блока, при этом для того, чтобы конфигурировать список возможных вариантов векторов блока, процессор выполнен с возможностью: конфигурировать список возможных вариантов векторов блока из пространственного соседнего блока, к которому применяется режим IBC-прогнозирования; и модифицировать список возможных вариантов векторов блока на основе возможного варианта прогнозирования векторов движения на основе предыстории (HVMP), к которому применяется режим IBC-прогнозирования, когда число текущих возможных вариантов из списка возможных вариантов векторов блока меньше максимального числа возможных вариантов.
Преимущества изобретения
[16] Согласно варианту осуществления раскрытия, когда режим прогнозирования на основе CPR (ссылки на текущие кадры) или IBC (внутриблочного копирования) применяется к текущему блоку посредством конструирования списка возможных вариантов прогнозирования при одновременном исключении временных соседних блоков относительно текущего блока, список возможных вариантов объединения или прогнозирования векторов движения может эффективно конструироваться.
[17] Преимущества раскрытия не ограничены вышеприведенным, и другие неупомянутые преимущества должны становиться очевидными для специалистов в данной области техники из нижеприведенного описания.
Краткое описание чертежей
[18] Прилагаемые чертежи, которые включаются в качестве части подробного описания, чтобы помогать в понимании раскрытия, предоставляют варианты осуществления раскрытия и описывают технические характеристики раскрытия вместе с подробным описанием.
[19] Фиг. 1 иллюстрирует пример системы кодирования видео согласно варианту осуществления раскрытия.
[20] Фиг. 2 является вариантом осуществления, к которому применяется раскрытие, и является принципиальной блок-схемой оборудования кодирования для кодирования видеосигнала/сигнала изображения.
[21] Фиг. 3 является вариантом осуществления, к которому применяется раскрытие, и является принципиальной блок-схемой оборудования декодирования для декодирования видеосигнала/сигнала изображения.
[22] Фиг. 4 показывает пример структурной схемы системы потоковой передачи контента согласно варианту осуществления раскрытия.
[23] Фиг. 5 показывает пример блок-схемы оборудования для обработки видеосигнала согласно варианту осуществления раскрытия.
[24] Фиг. 6A-6D, соответственно, иллюстрируют примеры структур разбиения блоков согласно дереву квадрантов (QT), двоичному дереву (BT), троичному дереву (TT) и асимметричному дереву (AT).
[25] Фиг. 7 и 8, соответственно, являются процедурой кодирования видео/изображений на основе взаимного (интер-) прогнозирования и модулем взаимного прогнозирования в оборудовании кодирования согласно варианту осуществления раскрытия.
[26] Фиг. 9 и 10, соответственно, являются процедурой декодирования видео/изображений на основе взаимного прогнозирования и модулем взаимного прогнозирования в оборудовании декодирования согласно варианту осуществления раскрытия.
[27] Фиг. 11 иллюстрирует пример конструирования пространственных возможных вариантов объединения для текущего блока.
[28] Фиг. 12 является блок-схемой последовательности операций, иллюстрирующей способ конфигурирования списка возможных вариантов объединения согласно варианту осуществления, к которому применяется раскрытие.
[29] Фиг. 13 является блок-схемой последовательности операций, иллюстрирующей способ конфигурирования списка возможных вариантов прогнозирования (списка возможных MVP-вариантов) согласно варианту осуществления, к которому применяется раскрытие.
[30] Фиг. 14 и 15 показывают примеры единицы прогнозирования в способе кодирования и оборудовании кодирования видео/изображений на основе IBC-прогнозирования согласно варианту осуществления настоящего описания изобретения.
[31] Фиг. 16 и 17 показывают примеры единицы прогнозирования в способе декодирования и оборудовании декодирования видео/изображений на основе IBC-прогнозирования согласно варианту осуществления настоящего описания изобретения.
[32] Фиг. 18-21 показывают блок-схемы последовательности операций, иллюстрирующие способы конфигурирования списка возможных вариантов IBC-объединения согласно вариантам осуществления настоящего описания изобретения.
[33] Фиг. 24 и 25 показывают блок-схемы последовательности операций, иллюстрирующие способы конфигурирования списка возможных вариантов IBC-объединения согласно вариантам осуществления настоящего описания изобретения.
[34] Фиг. 26 является примером блок-схемы последовательности операций способа для кодирования видеоданных согласно варианту осуществления настоящего описания изобретения.
[35] Фиг. 27 является примером блок-схемы последовательности операций способа для декодирования видеоданных согласно варианту осуществления настоящего описания изобретения.
Оптимальный режим осуществления изобретения
[32] Далее описываются предпочтительные варианты осуществления раскрытия со ссылкой на прилагаемые чертежи. Описание, которое приводится ниже вместе с прилагаемыми чертежами, должно описывать примерные варианты осуществления раскрытия и не имеет намерение описывать единственный вариант осуществления, в котором может реализовываться раскрытие. Нижеприведенное описание включает в себя конкретные подробности для того, чтобы предоставлять идеальное понимание раскрытия. Тем не менее, следует понимать, что раскрытие может осуществляться без конкретных подробностей для специалистов в данной области техники. В некоторых случаях, чтобы исключать неясность технической идеи раскрытия, структуры или устройства, которые являются общеизвестными, могут опускаться либо могут быть проиллюстрированы как блок-схема, ориентированная на базовые функции структур или устройств.
[33] В некоторых случаях, чтобы исключать неясность технической идеи раскрытия, структуры или устройства, которые являются общеизвестными, могут опускаться либо могут быть проиллюстрированы как блок-схема, ориентированная на базовые функции структур или устройств.
[34] Дополнительно, хотя общие термины, широко используемые в данный момент, выбираются в качестве терминов в раскрытии в максимально возможной степени, термин, который произвольно выбирается заявителем, используется в конкретном случае. Поскольку смысловое значение термина четко описывается в соответствующей части описания в таком случае, следует понимать, что раскрытие не должно просто интерпретироваться посредством терминов, используемых только в описании раскрытия, а должно выясняться смысловое значение терминов.
[35] Конкретные терминологии, используемые в нижеприведенном описании, могут предоставляться для того, чтобы помогать пониманию раскрытия. Кроме того, конкретная терминология может модифицироваться в другие формы в пределах технической идеи раскрытия. Например, сигнал, данные, выборка, кадр, срез, плитка, кадр, блок и т.д. могут надлежащим образом заменяться и интерпретироваться в каждом процессе кодирования.
[36] В дальнейшем в этом документе, в этом подробном описании, "единица обработки" означает единицу, в которой выполняется процесс обработки кодирования/декодирования, такой как прогнозирование, преобразование и/или квантование. Единица обработки может истолковываться как имеющая смысловое значение, включающее в себя единицу для компонента сигнала яркости и единицу для компонента сигнала цветности. Например, единица обработки может соответствовать единице дерева кодирования (CTU), единице кодирования (CU), единице прогнозирования (PU) или единице преобразования (TU).
[37] Кроме того, единица обработки может истолковываться в качестве единицы для компонента сигнала яркости или единицы для компонента сигнала цветности. Например, единица обработки может соответствовать блоку дерева кодирования (CTB), блоку кодирования (CB), блоку прогнозирования (PU) или блоку преобразования (TB) для компонента сигнала яркости. Альтернативно, единица обработки может соответствовать блоку дерева кодирования (CTB), блоку кодирования (CB), блоку прогнозирования (PB) или блоку преобразования (TB) для компонента сигнала цветности. Кроме того, раскрытие не ограничено этим, и единица обработки может истолковываться в качестве смыслового значения, включающего в себя единицу для компонента сигнала яркости и единицу для компонента сигнала цветности.
[38] Кроме того, единица обработки по существу не ограничивается квадратным блоком и может конструироваться в форме многоугольника, имеющей три или более вершин.
[39] Кроме того, в дальнейшем в этом документе, в этом подробном описании, пиксел, элемент кадра, коэффициент (коэффициент преобразования или коэффициент преобразования после преобразования первого порядка) и т.д., в общем, называются "выборкой" ("дискретным отсчетом"). Кроме того, использование выборки может означать использование пиксельного значения, значения элемента кадра, коэффициента преобразования и т.п.
[40] Фиг. 1 иллюстрирует пример системы кодирования видео согласно варианту осуществления раскрытия.
[41] Система кодирования видео может включать в себя исходное устройство 10 и приемное устройство 20. Исходное устройство 10 может передавать кодированную информацию или данные видео/изображений в приемное устройство 20 в формате файла или потоковой передачи через носитель хранения данных или сеть.
[42] Исходное устройство 10 может включать в себя видеоисточник 11, оборудование 12 кодирования и передатчик 13. Приемное устройство 20 может включать в себя приемник 21, оборудование 22 декодирования и модуль 23 рендеринга. Исходное устройство может называться "оборудованием кодирования видео/изображений", и приемное устройство может называться "оборудованием декодирования видео/изображений". Передатчик 13 может включаться в оборудование 12 кодирования. Приемник 21 может включаться в оборудование 22 декодирования. Модуль рендеринга может включать в себя дисплей, и дисплей может быть сконфигурирован как отдельное устройство или внешний компонент.
[43] Видеоисточник 11 может получать видеоданные/данные изображений через процесс захвата, синтеза или формирования видео/изображения. Видеоисточник может включать в себя устройство захвата видео/изображений и/или устройство формирования видео/изображений. Устройство захвата видео/изображений может включать в себя, например, одну или более камер, архив видео/изображений, включающий в себя ранее захваченные видео/изображения, и т.п. Устройство формирования видео/изображений может включать в себя, например, компьютер, планшетный компьютер и смартфон и может электронно формировать видеоданные/данные изображений. Например, виртуальные видеоданные/данные изображений могут формироваться через компьютер и т.п., и в этом случае, процесс захвата видео/изображений может заменяться посредством процесса формирования связанных данных.
[44] Оборудование 12 кодирования может кодировать входное видео/изображение. Оборудование 12 кодирования может выполнять последовательность процедур, таких как прогнозирование, преобразование и квантование, для эффективности сжатия и кодирования. Кодированные данные (кодированная информация видео/видео) могут выводиться в форме потока битов.
[45] Передатчик 13 может передавать кодированную информацию или данные видео/видео, выводимую в форме потока битов, в приемник приемного устройства через цифровой носитель хранения данных или сеть в формате файла или потоковой передачи. Цифровые носители хранения данных могут включать в себя различные носители хранения данных, такие как носители по универсальной последовательной шины (USB), по стандарту Secure Digital (SD), компакт-диск (CD), цифровой видеодиск (DVD), BluRay-диск, накопитель на жестких дисках (HDD) и полупроводниковый накопитель (SSD). Передатчик 13 может включать в себя элемент для формирования мультимедийного файла через предварительно определенный формат файлов и может включать в себя элемент для передачи через широковещательную сеть/сеть связи. Приемник 21 может извлекать поток битов и передавать его в оборудование 22 декодирования.
[46] Оборудование 22 декодирования может декодировать видеоданные/данные изображений посредством выполнения последовательности процедур, таких как деквантование, обратное преобразование и прогнозирование, соответствующих операциям оборудования 12 кодирования.
[47] Модуль 23 рендеринга может формировать декодированное видео/изображение. Сформированное видео/изображение может отображаться через дисплей.
[48] Фиг. 2 является вариантом осуществления, к которому применяется раскрытие, и является принципиальной блок-схемой оборудования кодирования для кодирования видеосигнала/сигнала изображения.
[49] Ссылаясь на фиг 2, оборудование 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 может быть сконфигурировано с помощью аппаратного компонента (например, запоминающего устройства или цифрового носителя хранения данных) в варианте осуществления. Кроме того, запоминающее устройство 170 может включать в себя буфер декодированных кадров (DPB).
[50] Модуль 110 разделения изображений может разделять входное изображение (либо кадр или картинка), вводимое в оборудование 100 кодирования, на одну или более единиц обработки. Например, единица обработки может называться "единицей кодирования (CU)". В этом случае, единица кодирования может рекурсивно разбиваться из единицы дерева кодирования (CTU) или наибольшей единицы кодирования (LCU) на основе структуры в виде дерева квадрантов и двоичного дерева (QTBT). Например, одна единица кодирования может разбиваться на множество единиц кодирования большей глубины на основе структуры в виде дерева квадрантов и/или структуры в виде двоичного дерева. В этом случае, например, сначала может применяться структура в виде дерева квадрантов, а затем может применяться структура в виде двоичного дерева. Альтернативно, сначала может применяться структура в виде двоичного дерева. Процедура кодирования согласно раскрытию может выполняться на основе конечной единицы кодирования, которая более не разбивается. В этом случае, наибольшая единица кодирования может непосредственно использоваться в качестве конечной единицы кодирования на основе эффективности кодирования согласно характеристике изображения, либо единица кодирования может рекурсивно разбиваться на единицы кодирования большей глубины при необходимости. Соответственно, единица кодирования, имеющая оптимальный размер, может использоваться в качестве конечной единицы кодирования. В этом случае, процедура кодирования может включать в себя такую процедуру, как прогнозирование, преобразование или восстановление, которая описывается ниже. В другом примере, единица обработки дополнительно может включать в себя единицу прогнозирования (PU) или единицу преобразования (TU). В этом случае, каждая из единицы прогнозирования и единицы преобразования может разделяться или сегментироваться из каждой конечной единицы кодирования. Единица прогнозирования может представлять собой единицу для выборочного прогнозирования, и единица преобразования может представлять собой единицу, из которой извлекается коэффициент преобразования, и/или единицу, в которой остаточный сигнал извлекается из коэффициента преобразования.
[51] Единица может взаимозаменяемо использоваться с блоком или зоной согласно обстоятельствам. В общем случае, блок MxN может указывать набор выборок, сконфигурированных с M столбцов и N строк или набором коэффициентов преобразования. В общем, выборка может указывать пиксел или значение пиксела и может указывать только пиксел/пиксельное значение компонента сигнала яркости либо только пиксел/пиксельное значение компонента сигнала цветности. В выборке, один кадр (или изображение) может использоваться в качестве термина, соответствующего пикселу или пелу.
[52] Оборудование 100 кодирования может формировать остаточный сигнал (остаточный блок или массив остаточных выборок) посредством вычитания прогнозного сигнала (прогнозированного блока или массива прогнозных выборок), выводимого посредством модуля 180 взаимного прогнозирования или модуля 185 внутреннего прогнозирования, из сигнала входного изображения (исходного блока или массива исходных выборок). Сформированный остаточный сигнал передается в преобразователь 120. В этом случае, как проиллюстрировано, модуль, в котором прогнозный сигнал (блок прогнозирования или массив прогнозных выборок) вычитается из сигнала входного изображения (исходного блока или массива исходных выборок) в оборудовании 100 кодирования, может называться "вычитателем 115". Модуль прогнозирования может выполнять прогнозирование относительно целевого блока обработки (далее текущего блока) и может формировать прогнозированный блок, включающий в себя прогнозные выборки для текущего блока. Модуль прогнозирования может определять то, применяется внутреннее прогнозирование либо применяется взаимное прогнозирование в текущем блоке или единице CU. Модуль прогнозирования может формировать различные фрагменты информации относительно прогнозирования, такие как информация режима прогнозирования, как указано ниже в описании каждого режима прогнозирования, и может передавать информацию в энтропийный кодер 190. Информация относительно прогнозирования может кодироваться в энтропийном кодере 190 и может выводиться в форме потока битов.
[53] Модуль 185 внутреннего прогнозирования может прогнозировать текущий блок со ссылкой на выборки в пределах текущего кадра. Выборки для ссылки могут быть расположены таким образом, что они граничат с текущим блоком, или могут быть разнесены от текущего блока в зависимости от режима прогнозирования. При внутреннем прогнозировании, режимы прогнозирования могут включать в себя множество ненаправленных режимов и множество направленных режимов. Ненаправленный режим может включать в себя, например, DC-режим и планарный режим. Угловой режим может включать в себя 33 режима углового прогнозирования или 65 режимов углового прогнозирования, например, в зависимости от точной степени направления прогнозирования. В этом случае, режимы углового прогнозирования, которые больше или меньше 33 режимов углового прогнозирования или 65 режимов углового прогнозирования, например, могут использоваться в зависимости от конфигурации. Модуль 185 внутреннего прогнозирования может определять режим прогнозирования, применяемый к текущему блоку, с использованием режима прогнозирования, применяемого к соседнему блоку.
[54] Модуль 180 взаимного прогнозирования может извлекать прогнозированный блок для текущего блока на основе опорного блока (массива опорных выборок), указываемого посредством вектора движения для опорного кадра. В этом случае, чтобы уменьшать объем информации движения, передаваемой в режиме взаимного прогнозирования, информация движения может прогнозироваться в качестве блока, субблока или единицы выборок на основе корреляции информации движения между соседним блоком и текущим блоком. Информация движения может включать в себя вектор движения и индекс опорного кадра. Информация движения дополнительно может включать в себя информацию направления взаимного прогнозирования (L0-прогнозирование, L1-прогнозирование или бипрогнозирование). В случае взаимного прогнозирования, соседний блок может включать в себя пространственный соседний блок, присутствующий в текущем изображении, и временной соседний блок, присутствующий в опорном изображении. Опорный кадр, включающий в себя опорный блок, и опорный кадр, включающий в себя временной соседний блок, могут быть идентичными или отличающимися. Временной соседний блок может иметь название "совместно размещенный опорный блок" или "совместно размещенная CU (colCU)". Опорный кадр, включающий в себя временной соседний блок, может называться "совместно размещенным кадром (colPic)". Например, модуль 180 взаимного прогнозирования может конфигурировать список возможных вариантов информации движения на основе соседних блоков и формировать информацию, указывающую то, какой возможный вариант используется для того, чтобы извлекать вектор движения и/или индекс опорного кадра текущего блока. Взаимное прогнозирование может выполняться на основе различных режимов прогнозирования. Например, в случае режима пропуска и режима объединения, модуль 180 взаимного прогнозирования может использовать информацию движения соседнего блока в качестве информации движения текущего блока. В случае режима пропуска, в отличие от режима объединения, остаточный сигнал может не передаваться. В случае режима прогнозирования векторов движения (MVP), вектор движения соседнего блока может использоваться в качестве предиктора вектора движения. Вектор движения текущего блока может указываться посредством сигнализирования разности векторов движения.
[55] Прогнозный сигнал, сформированный через модуль 180 взаимного прогнозирования или модуль 185 внутреннего прогнозирования, может использоваться для того, чтобы формировать восстановленный сигнал или остаточный сигнал.
[56] Преобразователь 120 может формировать коэффициенты преобразования посредством применения схемы преобразования к остаточному сигналу. Например, схема преобразования может включать в себя, по меньшей мере, одно из дискретного косинусного преобразования (DCT), дискретного синусного преобразования (DST), преобразования Карунена-Лоэва (KLT), преобразования на основе графа (GBT) или условно нелинейного преобразования (CNT). В этом случае, GBT означает преобразование, полученное из графа, если информация взаимосвязи между пикселами представляется как граф. CNT означает преобразование, полученное на основе прогнозного сигнала, сформированного с использованием всех ранее восстановленных пикселов. Кроме того, процесс преобразования может применяться к пиксельным блокам, имеющим идентичный размер квадратной формы, либо может применяться к блокам, имеющим переменные размеры неквадратной формы.
[57] Квантователь 130 может квантовать коэффициенты преобразования и передавать их в энтропийный кодер 190. Энтропийный кодер 190 может кодировать квантованный сигнал (информацию относительно квантованных коэффициентов преобразования) и выводить его в форме потока битов. Информация относительно квантованных коэффициентов преобразования может называться "остаточной информацией". Квантователь 130 может перекомпоновывать квантованные коэффициенты преобразования блочной формы в одномерную векторную форму на основе последовательности сканирования коэффициентов и может формировать информацию относительно квантованных коэффициентов преобразования на основе квантованных коэффициентов преобразования одномерной векторной формы. Энтропийный кодер 190 может выполнять различные способы кодирования, такие как кодирование экспоненциальным кодом Голомба, контекстно-адаптивное кодирование переменной длины (CAVLC) и контекстно-адаптивное двоичное арифметическое кодирование (CABAC). Энтропийный кодер 190 может кодировать информацию (например, значения синтаксических элементов), необходимую для восстановления видео/изображений, в дополнение к квантованным коэффициентам преобразования вместе или отдельно. Кодированная информация (например, кодированная информация видео/изображений) может передаваться или сохраняться в единице слоя абстрагирования от сети (NAL) в форме потока битов. Поток битов может передаваться по сети или может сохраняться на цифровом носителе хранения данных. В этом случае, сеть может включать в себя широковещательную сеть и/или сеть связи. Цифровой носитель хранения данных может включать в себя различные носители хранения данных, такие как USB, SD, CD, DVD, Blu-Ray, HDD и SSD. Передатчик (не проиллюстрирован), который передает сигнал, выводимый посредством энтропийного кодера 190, и/или хранилище (не проиллюстрировано) для сохранения сигнала могут быть сконфигурированы как внутренний/внешний элемент оборудования 100 кодирования, либо передатчик может представлять собой элемент энтропийного кодера 190.
[58] Квантованные коэффициенты преобразования, выводимые посредством квантователя 130, могут использоваться для того, чтобы формировать прогнозный сигнал. Например, остаточный сигнал может восстанавливаться посредством применения деквантования и обратного преобразования к квантованным коэффициентам преобразования через деквантователь 140 и обратный преобразователь 150 в контуре. Сумматор 155 может суммировать восстановленный остаточный сигнал с прогнозным сигналом, выводимым посредством модуля 180 взаимного прогнозирования или модуля 185 внутреннего прогнозирования, так что может формироваться восстановленный сигнал (восстановленный кадр, восстановленный блок или массив восстановленных выборок). Прогнозированный блок может использоваться в качестве восстановленного блока, если отсутствует остаток для целевого блока обработки, как в случае, когда режим пропуска применяется. Сумматор 155 может называться "модулем восстановления" или "формирователем восстановительных блоков". Сформированный восстановленный сигнал может использоваться для внутреннего прогнозирования следующего целевого блока обработки в пределах текущего кадра и может использоваться для взаимного прогнозирования следующего кадра посредством фильтрации, как описано ниже.
[59] Фильтр 160 может повышать субъективное/объективное качество кадров посредством применения фильтрации к восстановленному сигналу. Например, фильтр 160 может формировать модифицированный восстановленный кадр посредством применения различных способов фильтрации к восстановленному кадру. Модифицированный восстановленный кадр может сохраняться в DPB 170. Различные способы фильтрации, например, могут включать в себя фильтрацию для удаления блочности, дискретизированное адаптивное смещение, адаптивный контурный фильтр и билатеральный фильтр. Фильтр 160 может формировать различные фрагменты информации для фильтрации, как указано ниже в описании каждого способа фильтрации, и может передавать их в энтропийный кодер 190. Информация фильтрации может кодироваться посредством энтропийного кодера 190 и выводиться в форме потока битов.
[60] Модифицированный восстановленный кадр, передаваемый в DPB 170, может использоваться в качестве опорного кадра в модуле 180 взаимного прогнозирования. Оборудование кодирования может исключать рассогласование прогнозирования в оборудовании 100 кодирования и оборудовании декодирования и повышать эффективность кодирования, если взаимное прогнозирование применяется.
[61] DPB 170 может сохранять модифицированный восстановленный кадр, чтобы использовать модифицированный восстановленный кадр в качестве опорного кадра в модуле 180 взаимного прогнозирования.
[62] Фиг. 3 является вариантом осуществления, к которому применяется раскрытие, и является принципиальной блок-схемой оборудования декодирования для декодирования видеосигнала/сигнала изображения.
[63] Ссылаясь на фиг 3, оборудование 200 декодирования может быть выполнено включающим в себя энтропийный декодер 210, деквантователь 220, обратный преобразователь 230, сумматор 235, фильтр 240, запоминающее устройство 250, модуль 260 взаимного прогнозирования и модуль 265 внутреннего прогнозирования. Модуль 260 взаимного прогнозирования и модуль 265 внутреннего прогнозирования могут совместно называться "модулем прогнозирования". Таким образом, модуль прогнозирования может включать в себя модуль 180 взаимного прогнозирования и модуль 185 внутреннего прогнозирования. Деквантователь 220 и обратный преобразователь 230 могут совместно называться "остаточным процессором". Таким образом, остаточный процессор может включать в себя деквантователь 220 и обратный преобразователь 230. Энтропийный декодер 210, деквантователь 220, обратный преобразователь 230, сумматор 235, фильтр 240, модуль 260 взаимного прогнозирования и модуль 265 внутреннего прогнозирования могут быть сконфигурированы как один аппаратный компонент (например, декодер или процессор) согласно варианту осуществления. Кроме того, буфер 250 декодированных кадров может быть сконфигурирован с помощью аппаратного компонента (например, запоминающего устройства или цифрового носителя хранения данных) в варианте осуществления. Запоминающее устройство 250 может включать в себя DPB 175 и может быть сконфигурировано посредством цифрового носителя хранения данных.
[64] Когда поток битов, включающий в себя информацию видео/изображений, вводится, оборудование 200 декодирования может восстанавливать изображение в соответствии с процессом обработки информации видео/изображений в оборудовании кодирования по фиг. 2. Например, оборудование 200 декодирования может выполнять декодирование с использованием единицы обработки, применяемой в оборудовании кодирования. Соответственно, единица обработки для декодирования, например, может представлять собой единицу кодирования. Единица кодирования может разбиваться из единицы дерева кодирования или наибольшей единицы кодирования в зависимости от структуры в виде дерева квадрантов и/или структуры в виде двоичного дерева. Кроме того, восстановленный сигнал изображения, декодированный и выводимый через оборудование 200 декодирования, может воспроизводиться через устройство воспроизведения.
[65] Оборудование 200 декодирования может принимать сигнал, выводимый посредством оборудования кодирования по фиг. 1, в форме потока битов. Принимаемый сигнал может декодироваться через энтропийный декодер 210. Например, энтропийный декодер 210 может извлекать информацию (например, информацию видео/изображений) для восстановления изображений (или восстановления кадров) посредством синтаксического анализа потока битов. Например, энтропийный декодер 210 может декодировать информацию в потоке битов на основе способа кодирования, такого как кодирование экспоненциальным кодом Голомба, CAVLC или CABAC, и может выводить значение синтаксического элемента для восстановления изображений или квантованных значений коэффициентов преобразования относительно остатка. Более конкретно, в способе энтропийного CABAC-декодирования, элемент разрешения, соответствующий каждому синтаксическому элементу, может приниматься из потока битов, контекстная модель может определяться с использованием информации целевых синтаксических элементов декодирования и информации декодирования соседнего и целевого блока декодирования либо информации символа/элемента разрешения, декодированного на предыдущем этапе, вероятность того, что элемент разрешения возникает, может прогнозироваться на основе определенной контекстной модели, и символ, соответствующий значению каждого синтаксического элемента, может формироваться посредством выполнения арифметического декодирования для элемента разрешения. В этом случае, в способе энтропийного CABAC-декодирования, после того, как контекстная модель определяется, контекстная модель может обновляться с использованием информации символа/элемента разрешения, декодированного для контекстной модели следующего символа/элемента разрешения. Информация относительно прогнозирования из информации, декодированной в энтропийном декодере 2110, может предоставляться в модуль прогнозирования (модуль 260 взаимного прогнозирования и модуль 265 внутреннего прогнозирования). Информация параметров, связанная с остаточным значением, для которого энтропийное декодирование выполнено в энтропийном декодере 210, т.е. с квантованными коэффициентами преобразования, может вводиться в деквантователь 220. Кроме того, информация относительно фильтрации из информации, декодированной в энтропийном декодере 210, может предоставляться в фильтр 240. Между тем, приемник (не проиллюстрирован), который принимает сигнал, выводимый посредством оборудования кодирования, может быть дополнительно сконфигурирован как внутренний/внешний элемент оборудования 200 декодирования, либо приемник может представлять собой элемент энтропийного декодера 210.
[66] Деквантователь 220 может деквантовать квантованные коэффициенты преобразования и выводить коэффициенты преобразования. Деквантователь 220 может перекомпоновывать квантованные коэффициенты преобразования в двумерную блочную форму. В этом случае, перекомпоновка может выполняться на основе последовательности сканирования коэффициентов, выполняемой в оборудовании кодирования. Деквантователь 220 может выполнять деквантование для квантованных коэффициентов преобразования с использованием параметра квантования (например, информации размера шага квантования) и может получать коэффициенты преобразования.
[67] Обратный преобразователь 230 может выводить остаточный сигнал (остаточный блок или массив остаточных выборок) посредством применения обратного преобразования к коэффициентам преобразования.
[68] Модуль прогнозирования может выполнять прогнозирование для текущего блока и может формировать прогнозированный блок, включающий в себя прогнозные выборки для текущего блока. Модуль прогнозирования может определять то, применяется внутреннее прогнозирование либо применяется взаимное прогнозирование к текущему блоку, на основе информации касаемо прогнозирования, которая выводится посредством энтропийного декодера 210, и может определять подробный режим внутреннего/взаимного прогнозирования.
[69] Модуль 265 внутреннего прогнозирования может прогнозировать текущий блок со ссылкой на выборки в пределах текущего кадра. Выборки для ссылки могут быть расположены таким образом, что они граничат с текущим блоком или могут быть разнесены от текущего блока в зависимости от режима прогнозирования. При внутреннем прогнозировании, режимы прогнозирования могут включать в себя множество ненаправленных режимов и множество направленных режимов. Модуль 265 внутреннего прогнозирования может определять режим прогнозирования, применяемый к текущему блоку, посредством использования режима прогнозирования, применяемого к соседнему блоку.
[70] Модуль 260 взаимного прогнозирования может извлекать прогнозированный блок для текущего блока на основе опорного блока (массива опорных выборок), указываемого посредством вектора движения для опорного кадра. В этом случае, чтобы уменьшать объем информации движения, передаваемой в режиме взаимного прогнозирования, информация движения может прогнозироваться в качестве блока, субблока или единицы выборок на основе корреляции информации движения между соседним блоком и текущим блоком. Информация движения может включать в себя вектор движения и индекс опорного кадра. Информация движения дополнительно может включать в себя информацию направления взаимного прогнозирования (L0-прогнозирование, L1-прогнозирование или бипрогнозирование). В случае взаимного прогнозирования, соседний блок может включать в себя пространственный соседний блок, присутствующий в текущем изображении, и временной соседний блок, присутствующий в опорном изображении. Например, модуль 260 взаимного прогнозирования может конфигурировать список возможных вариантов информации движения на основе соседних блоков и извлекать вектор движения текущего блока и/или индекс опорного кадра на основе принимаемой информации выбора возможных вариантов. Взаимное прогнозирование может выполняться на основе различных режимов прогнозирования. Информация касаемо прогнозирования может включать в себя информацию, указывающую режим взаимного прогнозирования для текущего блока.
[71] Сумматор 235 может формировать восстановленный сигнал (восстановленный кадр, восстановленный блок или массив восстановленных выборок) посредством суммирования полученного остаточного сигнала с прогнозным сигналом (прогнозированным блоком или массивом прогнозных выборок), выводимым посредством модуля 260 взаимного прогнозирования или модуля 265 внутреннего прогнозирования. Прогнозированный блок может использоваться в качестве восстановленного блока, если отсутствует остаток для целевого блока обработки, как в случае, когда режим пропуска применяется.
[72] Сумматор 235 может называться "модулем восстановления" или "формирователем восстановительных блоков". Сформированный восстановленный сигнал может использоваться для внутреннего прогнозирования следующего целевого блока обработки в пределах текущего кадра и может использоваться для взаимного прогнозирования следующего кадра посредством фильтрации, как описано ниже.
[73] Фильтр 240 может повышать субъективное/объективное качество кадров посредством применения фильтрации к восстановленному сигналу. Например, фильтр 240 может формировать модифицированный восстановленный кадр посредством применения различных способов фильтрации к восстановленному кадру и может передавать модифицированный восстановленный кадр в DPB 250. Различные способы фильтрации, например, могут включать в себя фильтрацию для удаления блочности, дискретизированное адаптивное смещение (SAO), адаптивный контурный фильтр (ALF) и билатеральный фильтр.
[74] Восстановленный кадр, передаваемый (модифицированный) в буфер 250 декодированных кадров, может использоваться в качестве опорного кадра в модуле 260 взаимного прогнозирования.
[75] В раскрытии, варианты осуществления, описанные в фильтре 160, модуле 180 взаимного прогнозирования и модуле 185 внутреннего прогнозирования оборудования 100 кодирования, могут применяться к фильтру 240, модулю 260 взаимного прогнозирования и модулю 265 внутреннего прогнозирования оборудования 200 декодирования, соответственно, идентично или на основе соответствия.
[76] [77] Фиг. 4 показывает структурную схему системы потоковой передачи контента согласно варианту осуществления раскрытия.
[78] Система потоковой передачи контента, к которой применяется раскрытие, может включать в себя сервер 410 кодирования, потоковый сервер 420, веб-сервер 430, хранилище 440 мультимедиа, пользовательское устройство 450 и устройство 460 ввода мультимедиа.
[79] Сервер 410 кодирования может сжимать контент, вводимый из устройств ввода мультимедиа, таких как смартфон, камера, записывающая видеокамера и т.д., в цифровые данные, с тем чтобы формировать поток битов и передавать его на потоковый сервер 420. В качестве другого примера, когда устройства 460 ввода мультимедиа, такие как смартфон, фотоаппарат и видеокамера, непосредственно формируют поток битов, сервер 410 кодирования может опускаться.
[80] Поток битов может формироваться посредством способа кодирования или способа формирования потока битов, к которому применяется раскрытие, и потоковый сервер 420 может временно сохранять поток битов в процессе передачи или приема потока битов.
[81] Потоковый сервер 420 передает мультимедийные данные в пользовательское устройство 450 на основе пользовательского запроса через веб-сервер 430, и веб-сервер 430 служит в качестве посредника для того, чтобы информировать пользователя в отношении того, какая услуга присутствует. Когда пользователь запрашивает требуемую услугу через веб-сервер 430, веб-сервер 430 доставляет ее на потоковый сервер 420, и потоковый сервер 420 передает мультимедийные данные пользователю. В это время, система потоковой передачи контента может включать в себя отдельный сервер управления, причем в этом случае сервер управления служит для того, чтобы управлять командами/ответами между устройствами в системе потоковой передачи контента.
[82] Потоковый сервер 420 может принимать контент из хранилища 440 мультимедиа и/или сервера 410 кодирования. Например, потоковый сервер 420 может принимать, в реальном времени, контент из сервера 410 кодирования. В этом случае, чтобы прозрачно предоставлять услугу, потоковый сервер 420 может сохранять поток битов в течение предварительно определенного времени.
[83] Например, пользовательское устройство 450 может включать в себя мобильный телефон, смартфон, переносной компьютер, терминал для цифровой широковещательной передачи, персональное цифровое устройство (PDA), портативный мультимедийный проигрыватель (PMP), навигационный терминал, грифельный планшетный PC, планшетный PC, ультрабук, носимое устройство (например, интеллектуальные часы, интеллектуальные очки, наголовный дисплей (HMD), цифровой телевизор, настольный компьютер и систему цифровых информационных табло.
[84] Каждый сервер в системе потоковой передачи контента может работать в качестве распределенного сервера, и в этом случае, данные, принимаемые из каждого сервера, могут обрабатываться распределенно.
[85] Фиг. 5 показывает пример блок-схемы оборудования для обработки видеосигнала согласно варианту осуществления раскрытия. Оборудование обработки видеосигналов может соответствовать оборудованию 100 кодирования по фиг. 2 или оборудованию 200 декодирования по фиг. 3.
[86] Оборудование 500 обработки видеосигналов согласно варианту осуществления раскрытия может включать в себя запоминающее устройство 520 для сохранения видеосигнала и процессор 510 для обработки видеосигнала при комбинировании с запоминающим устройством 520.
[87] Процессор 510 согласно варианту осуществления раскрытия может быть сконфигурирован, по меньшей мере, с помощью одной схемы обработки для обработки видеосигнала и может обрабатывать видеосигнал посредством выполнения инструкций для кодирования или декодирования видеосигнала. Таким образом, процессор 510 может кодировать исходный видеосигнал или декодировать кодированный видеосигнал посредством осуществления способов кодирования или декодирования, описанных ниже.
[88] Способ кодирования видео/изображений согласно этому документу может выполняться на основе различных подробных технологий, и каждая подробная технология приводится следующим образом. Специалистам в данной области техники должно быть очевидным, что технологии, описанные ниже, могут быть связаны с такими процедурами, как прогнозирование, остаточная обработка (преобразование, квантование и т.д.), кодирование синтаксических элементов, фильтрация, сегментация/разбиение на сегменты и т.д. в процедуре кодирования/декодирования видео/изображений, описанной выше и/или ниже.
[89] Фиг. 6 показывает варианты осуществления, к которым применяется раскрытие. Фиг. 6A-6D, соответственно, иллюстрируют примеры структур разбиения блоков согласно дереву квадрантов (QT), двоичному дереву (BT), троичному дереву (TT) и асимметричному дереву (AT).
[90] При кодировании видео, один блок может разбиваться на основе QT. Кроме того, один субблок, разбитый посредством QT, дополнительно может разбиваться рекурсивно с использованием QT. Блок-лист, который более не QT-разбивается, может разбиваться, по меньшей мере, посредством одного из BT, TT или AT. BT может иметь два типа разбиения: горизонтальное BT (2NxN, 2NxN) и вертикальное BT (Nx2N, Nx2N). TT может иметь два типа разбиения: горизонтальное TT (2Nx1/2N, 2NxN, 2Nx1/2N) и вертикальное TT (1/2Nx2N, Nx2N, 1/2Nx2N). AT может иметь четыре типа разбиения: AT вверх по горизонтали (2Nx1/2N, 2Nx3/2N), AT вниз по горизонтали (2Nx3/2N, 2Nx1/2N), AT влево по вертикали (1/2Nx2N, 3/2Nx2N), AT вправо по вертикали (3/2Nx2N, 1/2Nx2N). Каждое BT, TT, AT дополнительно может разбиваться рекурсивно с использованием BT, TT, AT.
[91] Фиг. 6A показывает пример QT-сегментации. Блок A может разбиваться на четыре субблока A0, A1, A2 и A3 посредством QT. Субблок A1 может разбиваться на четыре субблока B0, B1, B2 и B3 снова посредством QT.
[92] Фиг. 6B показывает пример BT-сегментации. Блок B3, который более не разбивается посредством QT, может разбиваться на вертикальное BT (C0, C1) или горизонтальное BT (D0, D1). В качестве блока C0, каждый субблок дополнительно может разбиваться рекурсивно в форме горизонтального BT (E0, E1) или вертикального BT (F0, F1).
[93] Фиг. 6C показывает пример TT-сегментации. Блок B3, который более не разбивается посредством QT, может разбиваться на вертикальное TT (C0, C1, C2) или горизонтальное TT (D0, D1, D2). В качестве блока C1 каждый субблок дополнительно может рекурсивно разбиваться в форме горизонтального TT (E0, E1, E2) или вертикального TT (F0, F1, F2).
[94] Фиг. 6D показывает пример AT-сегментации. Блок B3, который более не разбивается посредством QT, может разбиваться на вертикальное AT (C0, C1) или горизонтальное AT (D0, D1). В качестве блока C1, каждый субблок дополнительно может рекурсивно разбиваться в форме горизонтального AT (E0, E1) или вертикального TT (F0, F1).
[95] Между тем, BT-, TT- и AT-сегментации могут использоваться вместе для того, чтобы сегментировать блок. Например, субблок, разбитый посредством BT, может разбиваться посредством TT или AT. Помимо этого, субблок, разбитый посредством TT, может разбиваться посредством BT или AT. Субблок, разбитый посредством AT, может разбиваться посредством BT или TT. Например, после горизонтального BT-разбиения, каждый субблок может разбиваться на вертикальное BT, либо после вертикального BT-разбиения, каждый субблок сможет разбиваться на горизонтальное BT. Случаи имеют различный порядок разбиения, но конечные формы разбиения являются идентичными.
[96] Кроме того, когда блок разбивается, порядок, в котором выполняется поиск в блоке, может задаваться различными способами. В общем, операция поиска выполняется слева направо и сверху вниз. Выполнение поиска в блоке может означать порядок определения того, следует или нет разбивать дополнительно каждый субблок разбиения, либо порядок кодирования соответствующих субблоков, когда блок более не разбивается, либо порядок поиска, когда субблоки ссылаются на информацию других соседних блоков.
[97] Преобразование может выполняться для каждой единицы обработки (или блока преобразования), разделенной посредством структуры сегментации, как показано на фиг. 6A-6D, и в частности, матрица преобразования может применяться отдельно к каждому направлению строк и направлению столбцов. Согласно варианту осуществления раскрытия, различные типы преобразования могут использоваться в зависимости от длины в направлении строк или в направлении столбцов единицы обработки (либо блока преобразования).
[98] Фиг. 7 и 8, соответственно, являются процедурой кодирования видео/изображений на основе взаимного прогнозирования и модулем взаимного прогнозирования в оборудовании кодирования согласно варианту осуществления раскрытия.
[99] Оборудование 100 кодирования выполняет взаимное прогнозирование для текущего блока (S710). Оборудование 100 кодирования может извлекать режим взаимного прогнозирования и информацию движения текущего блока и может формировать прогнозные выборки текущего блока. В этом случае, процедура определения режима взаимного прогнозирования, извлечения информации движения и формирования прогнозных выборок может выполняться одновременно, и любая процедура может выполняться до другой процедуры. Например, модуль 180 взаимного прогнозирования оборудования 100 кодирования может включать в себя модуль 181 определения режима прогнозирования, модуль 182 извлечения информации движения и модуль 183 извлечения прогнозных выборок. Модуль 181 определения режима прогнозирования может определять режим прогнозирования для текущего блока. Модуль 182 извлечения информации движения может извлекать информацию движения текущего блока. Модуль 183 извлечения прогнозных выборок может извлекать прогнозные выборки текущего блока. Например, модуль 180 взаимного прогнозирования оборудования 100 кодирования может выполнять поиск в данной зоне (зоне поиска) опорных кадров на предмет блока, аналогичного текущему блоку, через оценку движения, и может извлекать опорный блок, имеющий минимальную разность либо разность в данное опорное значение или меньше относительно текущего блока. Модуль 180 взаимного прогнозирования может извлекать индекс опорного кадра, указывающий опорный кадр, в котором расположен опорный блок, на основе опорного блока и может извлекать вектор движения на основе разности местоположения между опорным блоком и текущим блоком. Оборудование 100 кодирования может определять режим, применяемый к текущему блоку, из различных режимов прогнозирования. Оборудование 100 кодирования может сравнивать RD-затраты для различных режимов прогнозирования и может определять оптимальный режим прогнозирования для текущего блока.
[100] Например, если режим пропуска или режим объединения применяется к текущему блоку, оборудование 100 кодирования может конфигурировать список возможных вариантов объединения, который описывается ниже, и может извлекать опорный блок, имеющий минимальную разность либо разность в данное опорное значение или меньше относительно текущего блока, из опорных блоков, указываемых посредством возможных вариантов объединения, включенных в список возможных вариантов объединения. В этом случае, возможный вариант объединения, ассоциированный с блоком извлеченного опорного варианта, может выбираться. Информация индекса объединения, указывающая выбранный возможный вариант объединения, может формироваться и сигнализироваться в оборудование 200 декодирования. Информация движения текущего блока может извлекаться с использованием информации движения выбранного возможного варианта объединения.
[101] В качестве другого примера, если (A)MVP-режим применяется к текущему блоку, оборудование кодирования может конфигурировать список возможных (A)MVP-вариантов, который описывается ниже, и может использовать вектор движения возможного варианта предиктора вектора движения (MVP), выбранного из возможных MVP-вариантов, включенных в список возможных (A)MVP-вариантов, в качестве MVP текущего блока. В этом случае, например, вектор движения, указывающий опорный блок, извлекаемый посредством оценки движения, может использоваться в качестве вектора движения текущего блока. Возможный MVP-вариант, включающий в себя вектор движения, имеющий наименьшую разность относительно вектора движения текущего блока, из возможных MVP-вариантов, может становиться выбранным возможным MVP-вариантом. Разность векторов движения (MVD), т.е. разность, полученная посредством вычитания MVP из вектора движения текущего блока, может извлекаться. В этом случае, информация относительно MVD может сигнализироваться в оборудование 200 декодирования. Кроме того, когда (A)MVP-режим применяется, значение индекса опорного кадра может быть сконфигурировано как информация индекса опорного кадра и может отдельно сигнализироваться в оборудование декодирования.
[102] Оборудование 100 кодирования может извлекать остаточные выборки на основе прогнозных выборок (S720). Оборудование 100 кодирования может извлекать остаточные выборки через сравнение между исходными выборками текущего блока и прогнозными выборками.
[103] Оборудование 100 кодирования кодирует информацию изображений, включающую в себя информацию прогнозирования и остаточную информацию (S730). Оборудование кодирования может выводить кодированную информацию изображений в форме потока битов. Информация прогнозирования может включать в себя информацию касаемо информации режима прогнозирования (например, флаг пропуска, флаг объединения или индекс режима) и информацию движения в качестве информации, связанной с процедурой прогнозирования. Информация, связанная с информацией движения, может включать в себя информацию выбора возможных вариантов (например, индекс объединения, MVP-флаг или MVP-индекс), т.е. информацию для извлечения вектора движения. Кроме того, информация, связанная с информацией движения, может включать в себя информацию относительно MVD и/или информацию индекса опорного кадра. Кроме того, информация, связанная с информацией движения, может включать в себя информацию, указывающую то, применяется либо нет L0-прогнозирование, L1-прогнозирование или бипрогнозирование. Остаточная информация представляет собой информацию относительно остаточных выборок. Остаточная информация может включать в себя информацию относительно квантованных коэффициентов преобразования для остаточных выборок.
[104] Выходной поток битов может сохраняться на (цифровом) носителе хранения данных и передаваться в оборудование декодирования либо может передаваться в оборудование декодирования через сеть.
[105] Между тем, как описано выше, оборудование кодирования может формировать восстановленный кадр (включающий в себя восстановленные выборки и восстановленный блок) на основе опорных выборок и остаточных выборок. Это служит для извлечения, в оборудовании 100 кодирования, результатов прогнозирования, идентичных результатам прогнозирования, выполняемого в оборудовании 200 декодирования. Соответственно, эффективность кодирования может повышаться. Соответственно, оборудование 100 кодирования может сохранять восстановленный кадр (или восстановленные выборки и восстановленный блок) в запоминающем устройстве и может использовать восстановленный кадр в качестве опорного кадра для взаимного прогнозирования. Как описано выше, процедура внутриконтурной фильтрации дополнительно может применяться к восстановленному кадру.
[106] Фиг. 9 и 10, соответственно, являются процедурой декодирования видео/изображений на основе взаимного прогнозирования и модулем взаимного прогнозирования в оборудовании декодирования согласно варианту осуществления раскрытия.
[107] Оборудование 200 декодирования может выполнять операцию, соответствующую операции, выполняемой посредством оборудования 100 кодирования. Оборудование 200 декодирования может выполнять прогнозирование относительно текущего блока на основе принимаемой информации прогнозирования и извлекать прогнозные выборки.
[108] В частности, оборудование 200 декодирования может определять режим прогнозирования для текущего блока на основе принимаемой информации прогнозирования (S910). Оборудование 200 декодирования может определять то, какой режим взаимного прогнозирования применяется к текущему блоку, на основе информации режима прогнозирования в информации прогнозирования.
[109] Например, оборудование 200 декодирования может определять то, режим объединения или (A)MVP-режим применяется к текущему блоку, на основе флага объединения. Альтернативно, оборудование 200 декодирования может выбирать один из различных возможных вариантов режима взаимного прогнозирования на основе индекса режима. Возможные варианты режима взаимного прогнозирования могут включать в себя режим пропуска, режим объединения и/или (A)MVP-режим либо могут включать в себя различные режимы взаимного прогнозирования, которые описываются ниже.
[110] Оборудование 200 декодирования извлекает информацию движения текущего блока на основе определенного режима взаимного прогнозирования (S920). Например, если режим пропуска или режим объединения применяется к текущему блоку, оборудование 200 декодирования может конфигурировать список возможных вариантов объединения, который описывается ниже, и выбирать один из возможных вариантов объединения, включенных в список возможных вариантов объединения. Выбор возможного варианта объединения может выполняться на основе индекса объединения. Информация движения текущего блока может извлекаться из информации движения выбранного возможного варианта объединения. Информация движения выбранного возможного варианта объединения может использоваться как информация движения текущего блока.
[111] В качестве другого примера, если (A)MVP-режим применяется к текущему блоку, оборудование 200 декодирования может конфигурировать список возможных (A)MVP-вариантов, который описывается ниже, и может использовать вектор движения возможного варианта предиктора вектора движения (MVP), выбранного из возможных MVP-вариантов, включенных в список возможных (A)MVP-вариантов, в качестве MVP текущего блока. Выбор может выполняться на основе информации выбора (MVP-флага или MVP-индекса). В этом случае, оборудование 200 декодирования может извлекать MVD текущего блока на основе информации относительно MVD. Оборудование декодирования может извлекать вектор движения текущего блока на основе MVP текущего блока и MVD. Кроме того, оборудование декодирования может извлекать индекс опорного кадра текущего блока на основе информации индекса опорного кадра. Кадр, указываемый посредством индекса опорного кадра в списке опорных кадров относительно текущего блока, может извлекаться в качестве опорного кадра, на который ссылаются для взаимного прогнозирования текущего блока.
[112] Между тем, как описано ниже, информация движения текущего блока может извлекаться без конфигурирования списка возможных вариантов. В этом случае, информация движения текущего блока может извлекаться согласно процедуре, раскрытой в режиме прогнозирования, который описывается ниже. В этом случае, конфигурирование списка возможных вариантов, такое как конфигурирование, описанное выше, может опускаться.
[113] Оборудование 200 декодирования может формировать прогнозные выборки для текущего блока на основе информации движения текущего блока (S930). В этом случае, оборудование 200 декодирования может извлекать опорный кадр на основе индекса опорного кадра текущего блока и может извлекать прогнозные выборки текущего блока, указываемого в опорном кадре, посредством вектора движения текущего блока. В этом случае, как описано ниже, процедура фильтрации прогнозных выборок дополнительно может выполняться для части или для всех прогнозных выборок текущего блока согласно обстоятельствам.
[114] Например, модуль 260 взаимного прогнозирования оборудования 200 декодирования может включать в себя модуль 261 определения режима прогнозирования, модуль 262 извлечения информации движения и модуль 263 извлечения прогнозных выборок. Оборудование 200 декодирования может определять режим прогнозирования текущего блока на основе информации режима прогнозирования, принимаемой из модуля 261 определения режима прогнозирования, может извлекать информацию движения (вектор движения и/или индекс опорного кадра) текущего блока на основе информации, связанной с информацией движения, принимаемой из модуля 262 извлечения информации движения. Модуль 263 извлечения прогнозных выборок может извлекать прогнозные выборки текущего блока.
[115] Оборудование 200 декодирования формирует остаточные выборки для текущего блока на основе принимаемой остаточной информации (S940). Оборудование 200 декодирования может формировать восстановленные выборки для текущего блока на основе прогнозных выборок и остаточных выборок и может формировать восстановленный кадр на основе восстановленных выборок (S950). После этого, как описано выше, процедура внутриконтурной фильтрации дополнительно может применяться к восстановленному кадру.
[116] Как описано выше, процедура взаимного прогнозирования может включать в себя этап определения режима взаимного прогнозирования, этап извлечения информации движения согласно определенному режиму прогнозирования и этап выполнения прогнозирования (формирования прогнозных выборок) на основе извлеченной информации движения.
[117] Различные режимы взаимного прогнозирования могут использоваться для прогнозирования текущего блока в кадре. Например, могут использоваться различные режимы, такие как режим объединения, режим пропуска, MVP-режим и аффинный режим. Режим детализации векторов движения на стороне декодера (DMVR) и режим адаптивного разрешения векторов движения (AMVR) дополнительно могут использоваться в качестве дополнительных режимов. Аффинный режим может называться "режимом аффинного прогнозирования движения". MVP-режим может называться "режимом усовершенствованного прогнозирования векторов движения (AMVP)".
[118] Информация режима прогнозирования, указывающая режим взаимного прогнозирования текущего блока, может сигнализироваться из оборудования кодирования в оборудование декодирования. Информация режима прогнозирования может включаться в поток битов и приниматься посредством оборудования декодирования. Информация режима прогнозирования может включать в себя информацию индекса, указывающую один из нескольких возможных вариантов режимов. Альтернативно, режим взаимного прогнозирования может указываться через иерархическое сигнализирование информации флага. В этом случае, информация режима прогнозирования может включать в себя один или более флагов. Например, флаг дополнительно может сигнализироваться, чтобы указывать то, применяется или нет режим пропуска, посредством сигнализирования флага пропуска, чтобы указывать то, применяется или нет режим объединения, посредством сигнализирования флага объединения, если режим пропуска не применяется, и указывать то, что MVP-режим применяется, если режим объединения не применяется, либо для дополнительной идентификации. Аффинный режим может сигнализироваться в качестве независимого режима или может сигнализироваться в качестве режима, зависимого от режима объединения или MVP-режима. Например, аффинный режим может быть сконфигурирован как один из списка возможных вариантов объединения или списка возможных MVP-вариантов, как описано ниже.
[119] Оборудование 100 кодирования или оборудование 200 декодирования может выполнять взаимное прогнозирование с использованием информации движения текущего блока. Оборудование 100 кодирования может извлекать оптимальную информацию движения для текущего блока согласно процедуре оценки движения. Например, оборудование 100 кодирования может выполнять поиск опорного блока, имеющего аналогичную корреляцию, с использованием исходного блока в исходном кадре для текущего блока в дробной единице пикселов в пределах определенного диапазона поиска в опорном кадре. Соответственно, оборудование кодирования может извлекать информацию движения. Подобие блока может извлекаться на основе разности между выборочными значениями на основе фазы. Например, подобие блока может вычисляться на основе суммы абсолютных разностей (SAD) между текущим блоком (или эталоном текущего блока) и опорным блоком (или эталоном опорного блока). В этом случае, информация движения может извлекаться на основе опорного блока, имеющего наименьшую SAD в зоне поиска. Извлеченная информация движения может сообщаться в оборудование декодирования с использованием нескольких способов на основе режима взаимного прогнозирования.
[120] Если режим объединения применяется, информация движения текущего блока прогнозирования непосредственно не передается, и информация движения текущего блока прогнозирования извлекается с использованием информации движения соседнего блока прогнозирования. Соответственно, оборудование 100 кодирования может указывать информацию движения текущего блока прогнозирования посредством передачи информации флага, чтобы уведомлять в отношении того, что режим объединения использован, и индекса объединения, чтобы уведомлять в отношении того, какой соседний блок прогнозирования использован.
[121] Оборудование 100 кодирования должно выполнять поиск возможного варианта блока объединения, используемого для того, чтобы извлекать информацию движения текущего блока прогнозирования, чтобы выполнять режим объединения. Например, могут использоваться максимум вплоть до 5 возможных вариантов блоков объединения, но раскрытие не ограничено этим. Кроме того, максимальное число возможных вариантов блоков объединения может передаваться в заголовке среза, и раскрытие не ограничено этим. После выполнения поиска возможных вариантов блоков объединения, оборудование 100 кодирования может формировать список возможных вариантов объединения и может выбирать возможный вариант блока объединения, имеющий наименьшие затраты, из возможных вариантов блоков объединения, в качестве конечного возможного варианта блока объединения.
[122] Вариант осуществления раскрытия предоставляет различные варианты осуществления возможных вариантов блоков объединения, конструирующих список возможных вариантов объединения.
[123] Список возможных вариантов объединения, например, может использовать 5 возможных вариантов блоков объединения. Например, могут использоваться 4 пространственных возможных варианта объединения и 1 временной возможный вариант объединения.
[124] Фиг. 11 иллюстрирует пример конструирования пространственных возможных вариантов объединения для текущего блока.
[125] Ссылаясь на фиг 11, для прогнозирования текущего блока может использоваться, по меньшей мере, один из левого соседнего блока A1, левого нижнего соседнего блока A2, правого верхнего соседнего блока B0, верхнего соседнего блока B1 и левого верхнего соседнего блока B2. Список возможных вариантов объединения для текущего блока может быть сконфигурирован на основе процедуры, показанной на фиг. 12.
[126] Фиг. 12 является блок-схемой последовательности операций, иллюстрирующей способ конфигурирования списка возможных вариантов объединения согласно варианту осуществления, к которому применяется раскрытие.
[127] Оборудование кодирования (оборудование 100 кодирования или оборудование 200 декодирования) выполняет поиск пространственных соседних блоков относительно текущего блока и вставляет извлекаемые пространственные возможные варианты объединения в список возможных вариантов объединения (S1210). Например, пространственные соседние блоки могут включать в себя левый нижний угловой соседний блок, левый соседний блок, правый верхний угловой соседний блок, верхний соседний блок и левый верхний угловой соседний блок текущего блока. В этом случае, это представляет собой пример, и дополнительные соседние блоки, такие как правый соседний блок, нижний соседний блок и правый нижний соседний блок, в дополнение к пространственным соседним блокам, дополнительно могут использоваться в качестве пространственных соседних блоков. Оборудование кодирования может обнаруживать доступные блоки посредством выполнения поиска пространственных соседних блоков на основе приоритета и может извлекать информацию движения обнаруженных блоков в качестве пространственных возможных вариантов объединения. Например, оборудование 100 кодирования или оборудование 200 декодирования может выполнять поиск 5 блоков, проиллюстрированных на фиг. 11, в последовательности A1, B1, B0, A0 и B2, и может конфигурировать список возможных вариантов объединения посредством последовательной индексации доступных возможных вариантов.
[128] Оборудование кодирования выполняет поиск временного соседнего блока относительно текущего блока и вставляет извлеченный временной возможный вариант объединения в список возможных вариантов объединения (S1220). Временной соседний блок может быть расположен в опорном кадре, т.е. в кадре, отличающемся от текущего кадра, в котором расположен текущий блок. Опорный кадр, в котором расположен временной соседний блок, может называться "совместно размещенным кадром" или "совместно размещ. кадром". Можно выполнять поиск временного соседнего блока в последовательности из правого нижнего углового соседнего блока и правого нижнего центрального блока относительно совместно размещенного блока для текущего блока в совместно размещ. кадре. Между тем, если сжатие данных движения применяется, конкретная информация движения может сохраняться в совместно размещ. кадре в качестве характерной информации движения для каждой данной единицы хранения. В этом случае, необязательно сохранять информацию движения для всех блоков в данной единице хранения, и в силу этого преимущество сжатия данных движения может получаться. В этом случае, данная единица хранения может быть предварительно определена в качестве единицы выборок 16×16 или единицы выборок 8×8, например, или информация размера для данной единицы хранения может сигнализироваться из оборудования 100 кодирования в оборудование 200 декодирования. Если сжатие данных движения применяется, информация движения временного соседнего блока может заменяться на характерную информацию движения данной единицы хранения, в которой расположен временной соседний блок. Таким образом, в этом случае, в аспекте реализации, после того, как арифметический сдвиг вправо выполняется посредством данного значения на основе координат (левой верхней выборочной позиции) временного соседнего блока, а не блока прогнозирования, в котором расположены координаты временного соседнего блока, временной возможный вариант объединения может извлекаться на основе информации движения блока прогнозирования, который покрывает местоположение с арифметическим сдвигом влево. Например, если данная единица хранения представляет собой единицу выборок 2nx2n, при условии, что координаты временного соседнего блока представляют собой (xTnb, yTnb), информация движения блока прогнозирования, расположенного в ((xTnb>>n)<<n), (yTnb>>n)<<n)), т.е. в модифицированном местоположении, может использоваться для временного возможного варианта объединения. В частности, например, если данная единица хранения представляет собой единицу выборок 16×16, при условии, что координаты временного соседнего блока представляют собой (xTnb, yTnb), информация движения блока прогнозирования, расположенного в ((xTnb>>4)<<4), (yTnb>>4)<<4)), т.е. в модифицированном местоположении, может использоваться для временного возможного варианта объединения. Альтернативно, например, если данная единица хранения представляет собой единицу выборок 8×8, при условии, что координаты временного соседнего блока представляют собой (xTnb, yTnb), информация движения блока прогнозирования, расположенного в ((xTnb>>3)<<3), (yTnb>>3)<<3)), т.е. в модифицированном местоположении, может использоваться для временного возможного варианта объединения.
[129] Оборудование кодирования может проверять то, меньше или нет текущее число возможных вариантов объединения максимального числа возможных вариантов объединения (S1230). Максимальное число возможных вариантов объединения может быть предварительно задано или может сигнализироваться из оборудования 100 кодирования в оборудование 200 декодирования. Например, оборудование 100 кодирования может формировать информацию относительно максимального числа возможных вариантов объединения, может кодировать информацию и может передавать информацию в оборудование 200 декодирования в форме потока битов. Если максимальное число возможных вариантов объединения заполняется, процесс добавления возможного варианта может не выполняться.
[130] Если, в результате проверки, текущее число возможных вариантов объединения меньше максимального числа возможных вариантов объединения, оборудование кодирования вставляет добавленный возможный вариант объединения в список возможных вариантов объединения (S1240). Добавленный возможный вариант объединения, например, может включать в себя ATMVP (адаптивное временное прогнозирование векторов движения), комбинированный бипрогнозирующий возможный вариант объединения (если тип среза для текущего среза представляет собой B-тип) и/или возможный вариант объединения на основе нулевых векторов.
[131] Фиг. 13 является блок-схемой последовательности операций, иллюстрирующей способ конфигурирования списка возможных вариантов прогнозирования (списка возможных MVP-вариантов) согласно варианту осуществления, к которому применяется раскрытие.
[132] Если режим прогнозирования векторов движения (MVP) применяется, список возможных вариантов предикторов векторов движения (MVP) может формироваться на основе вектора движения восстановленного пространственного соседнего блока (например, соседний блока, описанного на фиг. 11) и/или вектора движения, соответствующего временному соседнему блоку (или Col-блоку). Таким образом, вектор движения восстановленного пространственного соседнего блока и/или вектор движения временного соседнего блока могут использоваться в качестве возможного варианта предиктора вектора движения. Информация касаемо прогнозирования может включать в себя информацию выбора (например, MVP-флаг или MVP-индекс), указывающую оптимальный возможный вариант предиктора вектора движения, выбранного из возможных вариантов предикторов векторов движения, включенных в список. В этом случае, модуль прогнозирования может выбирать предиктор вектора движения текущего блока, из возможных вариантов предикторов векторов движения, включенных в список возможных вариантов векторов движения, с использованием информации выбора. Модуль прогнозирования оборудования 100 кодирования может вычислять разность векторов движения (MVD) между вектором движения текущего блока и предиктором вектора движения, может кодировать MVD и может выводить кодированную MVD в форме потока битов. Таким образом, MVD может получаться посредством вычитания предиктора вектора движения из вектора движения текущего блока. В этом случае, модуль прогнозирования оборудования декодирования может получать разность векторов движения, включенную в информацию относительно прогнозирования, и может извлекать вектор движения текущего блока через суммирование разности векторов движения и предиктора вектора движения. Модуль прогнозирования оборудования декодирования может получать или извлекать индекс опорного кадра, указывающий опорный кадр, из информации относительно прогнозирования. Например, список возможных вариантов предикторов векторов движения может быть сконфигурирован так, как проиллюстрировано на фиг. 13.
[133] Ссылаясь на фиг 13, оборудование кодирования выполняет поиск пространственного возможного варианта блока для прогнозирования векторов движения и вставляет его в список возможных вариантов прогнозирования (S1310). Например, оборудование кодирования может выполнять поиск соседних блоков согласно предварительно определенному порядку поиска и добавлять информацию соседнего блока, удовлетворяющего условию для пространственного возможного варианта блока, в список возможных вариантов прогнозирования (список возможных MVP-вариантов).
[134] После конструирования списка пространственных возможных вариантов блоков, оборудование кодирования сравнивает число пространственных возможных вариантов, включенных в список возможных вариантов прогнозирования, с предварительно установленным опорным числом (например, 2) (S1320). Если число пространственных возможных вариантов, включенных в список возможных вариантов прогнозирования, превышает или равно опорному числу (например, 2), оборудование кодирования может завершать конструирование списка возможных вариантов прогнозирования.
[135] Но если число списков пространственных возможных вариантов, включенных в список возможных вариантов прогнозирования, меньше опорного числа (например, 2), оборудование кодирования выполняет поиск временного возможного варианта блока и вставляет его в список возможных вариантов прогнозирования (S1330), и когда временной возможный вариант блока является недоступным, добавляет нулевой вектор движения в список возможных вариантов прогнозирования (S1340).
[136] Прогнозированный блок для текущего блока может извлекаться на основе информации движения, извлекаемой согласно режиму прогнозирования. Прогнозированный блок может включать в себя прогнозные выборки (массив прогнозных выборок) текущего блока. Когда вектор движения текущего блока указывает дробную единицу выборок, процедура интерполяции может выполняться, и через нее, прогнозные выборки текущего блока могут извлекаться на основе опорных выборок в дробной единице выборок в опорном кадре. Когда аффинное взаимное прогнозирование применяется к текущему блоку, прогнозные выборки могут формироваться на основе вектора движения в единице выборок/субблоков. Когда двунаправленное прогнозирование применяется, конечные прогнозные выборки могут извлекаться через взвешенные (согласно фазе) суммы прогнозных выборок, извлекаемых на основе первого направленного прогнозирования (например, L0-прогнозирования), и прогнозных выборок, извлекаемых на основе второго направленного прогнозирования. Восстановительные выборки и восстановительные кадры могут формироваться на основе извлеченных прогнозных выборок, и, как описано выше, впоследствии могут выполняться такие процедуры, как внутриконтурная фильтрация.
[137] В дальнейшем в этом документе, прогнозирование на основе IBC (внутриблочного копирования) описывается в качестве примера взаимного прогнозирования. IBC может использоваться, например, для кодирования видео контента для игр, такого как SCC (кодирование экранного контента). IBC по существу выполняет прогнозирование в пределах текущего кадра, но может выполняться аналогично взаимному прогнозированию, при котором опорный блок извлекается в пределах текущего кадра. Таким образом, IBC может использовать, по меньшей мере, одну из технологий взаимного прогнозирования, описанных в этом документе. Например, IBC может использовать, по меньшей мере, один из вышеописанных способов для извлечения информации движения (вектора движения). IBC может ссылаться на текущий кадр и в силу этого может называться "ссылкой на текущие кадры (CPR)". В связи с этим, технология прогнозирования с использованием другого блока в качестве опорного блока в текущем кадре, включающем в себя текущий блок (т.е. с использованием текущего кадра в качестве опорного кадра), может называться "IBC" или "CPR", но варианты осуществления настоящего документа не ограничены конкретными терминами и могут заменяться на другие соответствующие термины.
[138] Для IBC, оборудование 100 кодирования может выполнять поблочное сопоставление (BM), чтобы извлекать оптимальный вектор блока (или вектор движения) для текущего блока (например, CU). Извлеченный вектор блока (или вектор движения) может сигнализироваться в оборудование 200 декодирования через поток битов с использованием способа, аналогичного вышеописанному сигнализированию информации блоков (вектора движения) при взаимном прогнозировании. Оборудование 200 декодирования может извлекать опорный блок для текущего блока в текущем кадре через сигнализируемый вектор блока (вектор движения) и может извлекать прогнозный сигнал (прогнозированный блок или прогнозные выборки) для текущего блока через него. Здесь, вектор блока (или вектор движения) может указывать смещение от текущего блока до опорного блока, расположенного в уже восстановленной области в текущем кадре. Соответственно, вектор блока (или вектор движения) может называться "вектором смещения". В дальнейшем в этом документе, в IBC, вектор движения может соответствовать вектору блока или вектору смещения. Вектор движения текущего блока может включать в себя вектор движения для компонента сигнала яркости (вектор движения сигнала яркости) или вектор движения для компонента сигнала цветности (вектор движения сигнала цветности). Например, вектор движения сигнала яркости для IBC-кодированной CU может представлять собой целочисленную единицу выборок (т.е. целочисленную точность). Вектор движения сигнала цветности также может отсекаться в единицах целочисленных выборок. Как описано выше, IBC может использовать, по меньшей мере, одну из технологий взаимного прогнозирования. Например, когда IBC применяется вместе с AMVR, 1-пелная и 4-пелная точности векторов движения могут переключаться между собой.
[139] Чтобы уменьшать использование запоминающего устройства и сложность декодирования, может использоваться восстановленная часть предварительно установленной зоны, включающей в себя текущую CTU. Это ограничение может обеспечивать возможность реализации IBC-режима с использованием фактического внутримикросхемного запоминающего устройства для аппаратной реализации.
[140] На стороне кодера, прогнозирование движения на основе хеша выполняется для IBC. Кодер выполняет RD-проверку для блоков с шириной, не большей 16 выборок яркости. Для режима без объединения, поиск вектора блока предпочтительно выполняется с использованием поиска на основе хеша. Если хеш не возвращает допустимый возможный вариант, поблочное сопоставление на основе локального поиска выполняется.
[141] В поиске на основе хеша, согласование хеш-ключа (32-битовый CRC) между текущим блоком и опорным блоком расширяется на все разрешенные размеры блоков. Вычисление хеш-ключа для всех позиций в текущем кадре основано на субблоках 4×4. Если все хеш-ключи субблоков 4×4 совпадают с хеш-ключами в соответствующих опорных позициях для текущего блока больших размеров, определяется то, что хеш-ключ совпадает с хеш-ключом опорного блока. Если хеш-ключи множества опорных блоков совпадают с хеш-ключом текущего блока, вектор блока каждого из совпадающих опорных блоков вычисляется, и выбирается один из них с минимальными затратами.
[142] В поиске на основе поблочного сопоставления, диапазон поиска задается равным N выборок влево и вверх относительно текущего блока в текущей CTU. В начале CTU, если отсутствует временной опорный кадр, значение N инициализируется равным 128, и если имеется, по меньшей мере, один временной опорный кадр, значение N инициализируется равным 64. Процент совпадений в кэше задается как процентная доля от выборок в CTU, которая демонстрирует соответствие с использованием поиска на основе хеша. При кодировании текущей CTU, если процент совпадений в кэше меньше 5%, N делится на два.
[143] На уровне CU, IBC-режим сигнализируется с использованием флага и может сигнализироваться в качестве IBC AMVP-режима или режима IBC-пропуска/объединения следующим образом.
[144] Режим IBC-пропуска/объединения: индекс возможного варианта объединения используется для того, чтобы указывать векторы блока в списке из соседних возможных вариантов IBC-кодированных блоков, используемых для того, чтобы прогнозировать текущий блок.
[145] IBC AMVP-режим: разность векторов блока кодируется аналогично разности векторов движения. Способ прогнозирования векторов блока использует два возможных варианта в качестве предикторов, и один служит для левого соседнего блока, а другой служит для верхнего соседнего блока (в случае кодировании с помощью IBC). Если оба соседних блока не доступны, вектор блока по умолчанию используется в качестве предиктора. Флаг сигнализируется для указания индекса предиктора вектора блока.
[146] Фиг. 14 и 15 показывают примеры единицы прогнозирования в способе кодирования и оборудовании кодирования видео/изображений на основе IBC-прогнозирования согласно варианту осуществления настоящего описания изобретения.
[147] Оборудование 100 кодирования выполняет IBC-прогнозирование (прогнозирование на основе IBC) для текущего блока (S1410). Оборудование 100 кодирования может извлекать режим прогнозирования и вектор движения текущего блока и формировать прогнозные выборки текущего блока. Режим прогнозирования может включать в себя, по меньшей мере, один из вышеописанных режимов взаимного прогнозирования. Здесь, процедуры определения режима прогнозирования, извлечения векторов движения и формирования прогнозных выборок могут выполняться одновременно, или одна процедура может выполняться перед другой процедурой. Например, модуль прогнозирования оборудования 100 кодирования может включать в себя модуль определения режима прогнозирования, модуль извлечения векторов движения и модуль извлечения прогнозных выборок. Так же, модуль определения режима прогнозирования может определять режим прогнозирования для текущего блока, модуль извлечения векторов движения может извлекать вектор движения текущего блока, и модуль извлечения прогнозных выборок может извлекать прогнозные выборки текущего блока. Например, модуль прогнозирования оборудования 100 кодирования может выполнять поиск блока, аналогичного текущему блоку, в восстановленной зоне текущего кадра (либо в определенной зоне (зоне поиска) восстановленной зоны) посредством поблочного сопоставления (BM), и извлекать опорный блок, имеющий разность относительно текущего блока, равную или меньшую минимума либо определенного критерия. Вектор движения может извлекаться на основе разности смещения между опорным блоком и текущим блоком. Оборудование 100 кодирования может определять режим, применяемый к текущему блоку, из различных режимов прогнозирования. Оборудование 100 кодирования может сравнивать RD-затраты различных режимов прогнозирования друг с другом и определять оптимальный режим прогнозирования для текущего блока.
[148] Например, когда режим пропуска или режим объединения применяется к текущему блоку, оборудование 100 кодирования конфигурирует вышеописанный список возможных вариантов объединения и извлекает опорный блок, имеющий разность относительно текущего блока, равную или меньшую минимума либо предварительно определенного критерия, из опорных блоков, указываемых посредством возможных вариантов объединения, включенных в список возможных вариантов объединения. В этом случае, возможный вариант объединения, ассоциированный с извлеченным опорным блоком, может выбираться, и информация индекса объединения, указывающая выбранный возможный вариант объединения, может формироваться и сигнализироваться в оборудование 200 декодирования. Вектор движения текущего блока может извлекаться посредством использования вектора движения выбранного возможного варианта объединения.
[149] В качестве другого примера, когда (A)MVP-режим применяется к текущему блоку, оборудование 100 кодирования конструирует вышеописанный список возможных (A)MVP-вариантов и использует вектор движения возможного MVP-варианта, выбранного из числа возможных вариантов предикторов векторов движения (MVP), включенных в список возможных (A)MVP-вариантов, в качестве MVP текущего блока. В этом случае, например, вектор движения, указывающий опорный блок, извлекаемый посредством вышеописанной оценки движения, может использоваться в качестве вектора движения текущего блока, и возможный MVP-вариант, имеющий вектор движения с наименьшей разностью относительно вектора движения текущего блока из возможных MVP-вариантов, может представлять собой выбранный возможный MVP-вариант. Разность векторов движения (MVD), которая представляет собой разность, полученную посредством вычитания MVP из вектора движения текущего блока, может извлекаться 0. В этом случае информация относительно MVD может сигнализироваться в оборудование 200 декодирования.
[150] Оборудование 100 кодирования может извлекать остаточные выборки на основе прогнозных выборок (S1420). Оборудование 100 кодирования может извлекать остаточные выборки через сравнение исходных выборок и прогнозных выборок текущего блока.
[151] Оборудование 100 кодирования кодирует информацию изображений, включающую в себя информацию прогнозирования и остаточную информацию (S1430). Оборудование 100 кодирования может выводить кодированную информацию изображений в форме потока битов. Информация прогнозирования представляет собой информацию, связанную с процедурой прогнозирования, и может включать в себя информацию режима прогнозирования (например, флаг пропуска, флаг объединения или индекс режима) и информацию вектора движения. Информация относительно вектора движения может включать в себя информацию выбора возможных вариантов (например, индекс объединения, MVP-флаг или MVP-индекс), которая представляет собой информацию для извлечения вектора движения. Кроме того, информация вектора движения может включать в себя вышеописанную MVD-информацию. Кроме того, информация относительно вектора движения может включать в себя информацию, указывающую то, применяется либо нет L0-прогнозирование, L1-прогнозирование или попарное (би)- прогнозирование. Остаточная информация представляет собой информацию относительно остаточных выборок. Остаточная информация может включать в себя информацию относительно квантованных коэффициентов преобразования для остаточных выборок.
[152] Выходной поток битов может сохраняться на (цифровом) носителе хранения данных и доставляться в устройство декодирования либо может доставляться в устройство декодирования через сеть.
[153] Между тем, как описано выше, оборудование 100 кодирования может формировать восстановленный кадр (включающий в себя восстановленные выборки и восстановленные блоки) на основе опорных выборок и остаточных выборок. Это служит для извлечения результата прогнозирования, идентичного результату прогнозирования, выполняемого посредством оборудования 200 декодирования в оборудовании 100 кодирования, и через него, эффективность кодирования может увеличиваться. Соответственно, оборудование 100 кодирования может сохранять восстановленный кадр (либо восстановленные выборки или восстановленный блок) в запоминающем устройстве и использовать его в качестве опорного кадра для взаимного прогнозирования. Как описано выше, процедура внутриконтурной фильтрации дополнительно может применяться к восстановленному кадру.
[154] Процедура декодирования видео/изображений на основе IBC и единица прогнозирования в оборудовании 200 декодирования могут схематично включать в себя, например, следующее.
[155] Фиг. 16 и 17 показывают примеры единицы прогнозирования в способе декодирования и оборудовании декодирования видео/изображений на основе IBC-прогнозирования согласно варианту осуществления настоящего описания изобретения.
[156] Оборудование 200 декодирования может выполнять операцию, соответствующую операции, выполняемой посредством оборудования 100 кодирования. Оборудование 200 декодирования может выполнять IBC-прогнозирование для текущего блока на основе принимаемой информации прогнозирования и извлекать прогнозные выборки.
[157] В частности, оборудование 200 декодирования может определять режим прогнозирования для текущего блока на основе принимаемой информации прогнозирования (S1610). Оборудование 200 декодирования может определять то, какой режим взаимного прогнозирования применяется к текущему блоку, на основе информации режима прогнозирования в информации прогнозирования.
[158] Например, оборудование 200 декодирования может определять то, применяется или нет режим объединения к текущему блоку, либо то, определяется или нет (A)MVP-режим, на основе флага объединения. Либо, оборудование 200 декодирования может выбирать один из различных возможных вариантов режима взаимного прогнозирования на основе индекса режима. Возможные варианты режима взаимного прогнозирования могут включать в себя режим пропуска, режим объединения и/или (A)MVP-режим или могут включать в себя различные режимы взаимного прогнозирования, которые описываются ниже.
[159] Оборудование 200 декодирования извлекает вектор движения текущего блока на основе определенного режима прогнозирования (S1620). Например, когда режим пропуска или режим объединения применяется к текущему блоку, оборудование 200 декодирования может конструировать вышеописанный список возможных вариантов объединения и выбирать один возможный вариант объединения из числа возможных вариантов объединения, включенных в список возможных вариантов объединения. Выбор может выполняться на основе вышеописанной информации выбора (индекса объединения). Вектор движения текущего блока может извлекаться с использованием вектора движения выбранного возможного варианта объединения. Вектор движения выбранного возможного варианта объединения может использоваться в качестве вектора движения текущего блока.
[160] В качестве другого примера, когда (A)MVP-режим применяется к текущему блоку, оборудование 200 декодирования может конструировать вышеописанный список возможных (A)MVP-вариантов и использовать вектор движения возможного MVP-варианта, выбранного из возможных вариантов, включенных в список возможных (A)MVP-вариантов, в качестве MVP текущего блока. Выбор может выполняться на основе вышеописанной информации выбора (MVP-флага или MVP-индекса). В этом случае, MVD текущего блока может извлекаться на основе информации относительно MVD, и вектор движения текущего блока может извлекаться на основе MVP и MVD текущего блока. Кроме того, индекс опорного кадра текущего блока может извлекаться на основе информации индекса опорного кадра. Кадр, указываемый посредством индекса опорного кадра в списке опорных кадров для текущего блока, может извлекаться в качестве опорного кадра, на который ссылаются для взаимного прогнозирования текущего блока.
[161] Между тем, как описано выше, информация движения текущего блока может извлекаться без конфигурирования списка возможных вариантов, и в этом случае, вектор движения текущего блока может извлекаться согласно процедуре, раскрытой в соответствующем режиме прогнозирования. В этом случае, конфигурирование списка возможных вариантов, как описано выше, может опускаться.
[162] Оборудование 200 декодирования может формировать прогнозные выборки для текущего блока на основе вектора движения для текущего блока (S1630). Прогнозные выборки текущего блока могут извлекаться с использованием выборок опорного блока, указываемого посредством вектора движения текущего блока в текущем кадре. В этом случае, процедура фильтрации прогнозных выборок для всех или некоторых прогнозных выборок текущего блока дополнительно может выполняться.
[163] Например, модуль прогнозирования оборудования 200 декодирования может включать в себя модуль определения режима прогнозирования, модуль извлечения векторов движения и модуль извлечения прогнозных выборок. Модуль определения режима прогнозирования определяет режим прогнозирования для текущего блока на основе принимаемой информации режима прогнозирования, модуль извлечения векторов движения извлекает вектор движения текущего блока на основе принимаемой информации вектора движения, и модуль извлечения прогнозных выборок извлекает прогнозные выборки текущего блока.
[164] Оборудование 200 декодирования формирует остаточные выборки для текущего блока на основе принимаемой остаточной информации (S940). Оборудование 200 декодирования может формировать восстановленные выборки для текущего блока на основе прогнозных выборок и остаточных выборок и формировать восстановленный кадр на их основе (S1650). Как описано выше, процедура внутриконтурной фильтрации дополнительно может применяться к восстановленному кадру.
[165] В дальнейшем в этом документе, вариант осуществления настоящего описания изобретения предоставляет способ конструирования списка возможных вариантов объединения (списка возможных AMVP-вариантов) для прогнозирования блока, к которому применяется режим IBC-прогнозирования (или к которому не применяется режим IBC-прогнозирования). Более конкретно, когда режим IBC-прогнозирования активируется, способ для конфигурирования возможных вариантов прогнозирования для IBC-блока и не-IBC-блока предоставляется. В нижеприведенном варианте осуществления, когда IBC-прогнозирование доступно в процессе сжатия неподвижного изображения или движущегося кадра, способ конструирования возможного варианта прогнозирования для блока, кодированного/декодированного в режиме IBC-прогнозирования, и возможного варианта прогнозирования для блока, кодированного/декодированного в режиме, отличном от режима IBC-прогнозирования, предоставляется, и посредством способа производительность сжатия может повышаться.
[166] Фиг. 18-23 показывают примеры блок-схемы последовательности операций способа для конфигурирования возможных вариантов IBC-объединения и возможных IBC AMVP-вариантов согласно вариантам осуществления настоящего описания изобретения.
[167] Вариант осуществления настоящего описания изобретения предоставляет способ для конфигурирования возможных вариантов IBC-объединения и возможных IBC AVMP-вариантов для блока, к которому применяется IBC-режим. Согласно этому варианту осуществления, когда режим IBC-прогнозирования применяется к текущему блоку, список возможных вариантов прогнозирования конструируется с использованием возможных IBC-вариантов, к которым применяется IBC-прогнозирование. Помимо этого, если требуемое число возможных IBC-вариантов не сконфигурировано, возможный вариант по умолчанию (например, нулевой вектор) добавляется в список возможных вариантов объединения/возможных AVMP-вариантов.
[168] Согласно варианту осуществления настоящего описания изобретения, проверяется то, кодируется или нет возможный вариант, который должен добавляться в режиме IBC-прогнозирования при конструировании списка возможных вариантов прогнозирования для текущего блока, к которому применяется режим IBC-прогнозирования, и когда соответствующий возможный вариант кодируется в режиме IBC-прогнозирования, соответствующий возможный вариант добавляется в список возможных вариантов прогнозирования.
[169] Фиг. 18 является аналогичным конструированию традиционного списка возможных вариантов взаимного прогнозированного объединения, но временной возможный вариант объединения исключается, поскольку ссылаются на текущий кадр вследствие характеристик IBC. Таким образом, используется способ конструирования существующего списка возможных вариантов объединения, за исключением временного возможного варианта объединения, и добавляется процесс проверки того, применяется или нет режим IBC-прогнозирования к каждому возможному варианту.
[170] Ссылаясь на фиг 18, чтобы конструировать пространственный возможный вариант, оборудование кодирования (оборудование 100 кодирования или оборудование 200 декодирования) выполняет поиск пространственных соседних блоков и проверяет то, применяется или нет IBC-режим к возможному варианту (соответствующему возможному варианту), и добавляет соответствующий возможный вариант в список возможных вариантов объединения, если режим IBC-прогнозирования применяется.
[171] Если текущее число возможных вариантов в списке возможных вариантов объединения меньше максимального числа, оборудование кодирования может выполнять поиск возможных HMVP-вариантов. Оборудование кодирования выполняет поиск возможных вариантов в списке возможных вариантов прогнозирования векторов движения на основе предыстории (HMVP) (HMVP-буфере), чтобы добавлять возможный HMVP-вариант, и добавляет возможный вариант, к которому применяется IBC-прогнозирование, в список возможных вариантов объединения. В этом документе, HMVP представляет способ использования информации прогнозирования (вектора движения, индекса опорного кадра) другого блока, который уже декодирован (восстановлен) в текущем кадре, в качестве информации для прогнозирования текущего блока.
[172] Если текущее число возможных вариантов в списке возможных вариантов объединения меньше максимального числа, оборудование кодирования может выполнять поиск попарных возможных вариантов прогнозирования. Попарные возможные варианты прогнозирования представляют собой возможные варианты прогнозирования, сформированные посредством комбинирования возможных вариантов, заранее сконфигурированных в списке возможных вариантов прогнозирования. Например, посредством комбинирования вектора блока L0-направления (вектора движения) первого возможного варианта и вектора блока L1-направления второго возможного варианта, попарный возможный вариант прогнозирования может формироваться. Здесь, оборудование кодирования может проверять то, применяется или нет IBC-прогнозирование к попарному возможному варианту прогнозирования, и когда IBC-прогнозирование применяется, добавлять попарный возможный вариант прогнозирования в список возможных вариантов объединения. Когда IBC-прогнозирование применяется к обоим возможным вариантам, используемым для конструирования попарного возможного варианта прогнозирования, можно сказать, что IBC-прогнозирование применяется к попарному возможному варианту прогнозирования. Если текущее число возможных вариантов в списке возможных вариантов объединения меньше максимального числа, оборудование кодирования добавляет нулевой вектор в список возможных вариантов объединения.
[173] Фиг. 19 является аналогичным конфигурированию существующего списка возможных вариантов взаимного прогнозированного объединения, но исключает временной возможный вариант объединения и возможный HMVP-вариант. Причина, по которой возможные HMVP-варианты исключаются, состоит в том, что поскольку существующее HMVP сохраняет определенное число возможных вариантов, когда возможные HMVP-варианты используются для IBC-прогнозирования, необходимо сохранять все возможные IBC/не-IBC-варианты для ограниченного числа возможных вариантов, и вследствие этого производительность прогнозирования или эффективность использования запоминающего устройства может ухудшаться в процессе конструирования возможных не-IBC-вариантов.
[174] Ссылаясь на фиг 19, чтобы конструировать пространственные возможные варианты, оборудование кодирования (оборудование 100 кодирования или оборудование 200 декодирования) выполняет поиск пространственных соседних блоков, проверяет то, применяется или нет IBC-режим к возможным вариантам, и добавляет соответствующий возможный вариант, к которому применяется режим IBC-прогнозирования, в список возможных вариантов объединения.
[175] Если текущее число возможных вариантов в списке возможных вариантов объединения меньше максимального числа, оборудование кодирования может выполнять поиск попарного возможного варианта прогнозирования. Попарный возможный вариант прогнозирования представляет собой возможный вариант прогнозирования, сформированный посредством комбинирования возможных вариантов, заранее сконфигурированных в списке возможных вариантов прогнозирования. Например, попарный возможный вариант прогнозирования может формироваться посредством комбинирования вектора блока L0-направления (вектора движения) первого возможного варианта и вектора блока L1-направления второго возможного варианта. Здесь, оборудование кодирования может проверять то, применяется или нет IBC-прогнозирование к попарному возможному варианту прогнозирования, и когда IBC-прогнозирование применяется, добавлять соответствующий попарный возможный вариант прогнозирования в список возможных вариантов объединения. Когда IBC-прогнозирование применяется к обоим возможным вариантам, используемым для конструирования попарного возможного варианта прогнозирования, можно сказать, что IBC-прогнозирование применяется к попарному возможному варианту прогнозирования. Если текущее число возможных вариантов в списке возможных вариантов объединения меньше максимального числа, оборудование кодирования добавляет нулевой вектор в список возможных вариантов объединения.
[176] Фиг. 20 является аналогичным существующему способу для конструирования списка возможных вариантов взаимного прогнозированного объединения, но представляет собой случай, в котором временной возможный вариант объединения и попарный возможный вариант прогнозирования исключаются.
[177] Ссылаясь на фиг 20, чтобы конструировать пространственный возможный вариант, оборудование кодирования (оборудование 100 кодирования или оборудование 200 декодирования) выполняет поиск пространственно соседних блоков, проверяет то, применяется или нет IBC-режим к возможным вариантам, и добавляет соответствующий возможный вариант, к которому применяется IBC-режим, в список возможных вариантов объединения.
[178] Если число текущих возможных вариантов в списке возможных вариантов объединения меньше максимального числа, оборудование кодирования может выполнять поиск возможных HMVP-вариантов. Оборудование кодирования выполняет поиск возможных вариантов в списке возможных HMVP-вариантов (HMVP-буфере), чтобы конструировать возможный вариант прогнозирования векторов движения на основе предыстории (HMVP), и добавляет возможный вариант, к которому применяется IBC-прогнозирование, в список возможных вариантов объединения. Если текущее число возможных вариантов в списке возможных вариантов объединения меньше максимального числа, оборудование кодирования добавляет нулевой вектор в список возможных вариантов объединения.
[179] Фиг. 21 исключает попарные возможные варианты прогнозирования, возможные HMVP-варианты и временной возможный вариант объединения в существующем процессе конструирования списка возможных вариантов взаимного прогнозированного объединения.
[180] Ссылаясь на фиг 21, чтобы конструировать пространственные возможные варианты, оборудование кодирования (оборудование 100 кодирования или оборудование 200 декодирования) выполняет поиск пространственно соседних блоков, проверяет то, применяется или нет IBC-режим к возможному варианту, и добавляет соответствующий возможный вариант, к которому применяется IBC-режим, в список возможных вариантов объединения. Если текущее число возможных вариантов в списке возможных вариантов объединения меньше максимального числа, оборудование кодирования добавляет нулевой вектор в список возможных вариантов объединения.
[181] Фиг. 22 исключает временной возможный вариант объединения и возможные HMVP-варианты в существующем процессе конструирования списка возможных AMVP-вариантов взаимного прогнозирования.
[182] Ссылаясь на фиг 22, чтобы конструировать пространственные возможные варианты, оборудование кодирования (оборудование 100 кодирования или оборудование 200 декодирования) выполняет поиск пространственно соседних блоков, проверяет то, применяется или нет IBC-режим к возможному варианту, и добавляет соответствующий возможный вариант, к которому применяется IBC-режим, в список возможных AMVP-вариантов. Если текущее число возможных вариантов в списке возможных AMVP-вариантов меньше максимального числа, оборудование кодирования добавляет нулевой вектор в список возможных AMVP-вариантов.
[183] Фиг. 23 исключает временной возможный вариант объединения в существующем процессе конструирования списка возможных AMVP-вариантов взаимного прогнозирования.
[184] Ссылаясь на фиг 23, чтобы конструировать пространственные возможные варианты, оборудование кодирования (оборудование 100 кодирования или оборудование 200 декодирования) выполняет поиск пространственно соседних блоков, проверяет то, применяется или нет IBC-режим к возможному варианту, и добавляет соответствующий возможный вариант, к которому применяется IBC-режим, в список возможных AMVP-вариантов.
[185] Если число текущих возможных вариантов в списке возможных вариантов объединения меньше максимального числа, оборудование кодирования может выполнять поиск возможных HMVP-вариантов. Оборудование кодирования выполняет поиск возможных вариантов в списке возможных HMVP-вариантов (HMVP-буфере), чтобы конструировать возможный вариант прогнозирования векторов движения на основе предыстории (HMVP) и добавляет возможный вариант, к которому применяется IBC-прогнозирование, в список возможных AMVP-вариантов. Если текущее число возможных вариантов в списке возможных вариантов объединения меньше максимального числа, оборудование кодирования добавляет нулевой вектор в список возможных AMVP-вариантов.
[186] Помимо этого, вариант осуществления настоящего описания изобретения предоставляет способ конфигурирования возможных вариантов объединения/возможных AVMP-вариантов для режима взаимного прогнозирования, отличного IBC. Он представляет собой способ конструирования списка возможных вариантов только с использованием возможных не-IBC-вариантов в процессе конструирования возможного варианта прогнозирования, когда режим взаимного прогнозирования (MODE_INTER), отличный от IBC, применяется к текущему блоку. Если требуемое число возможных не-IBC-вариантов не сконфигурировано, оно сконфигурировано как возможный вариант по умолчанию (например, нулевой вектор).
[187] Фиг. 24 и 25 представляют собой примеры блок-схем последовательности операций способа для конструирования списка возможных вариантов прогнозирования для блока, к которому применяется взаимное прогнозирование, согласно варианту осуществления настоящего описания изобретения.
[188] Более конкретно, оборудование кодирования добавляет возможный вариант в список возможных вариантов прогнозирования только тогда, когда возможный вариант, который должен добавляться в процессе конструирования списка возможных вариантов прогнозирования, кодируется со взаимным прогнозированием (не-IBC). Таким образом, когда возможный вариант, который должен добавляться в список возможных вариантов прогнозирования, кодируется в IBC-режиме, он не добавляется в список возможных вариантов.
[189] Фиг. 24 показывает, что проверяется то, представляет ли собой режим прогнозирования возможного варианта, который должен добавляться, режим IBC-прогнозирования в процессе конструирования списка возможных вариантов объединения, и когда режим IBC-прогнозирования не применяется к соответствующему возможному варианту (когда взаимное прогнозирование применяется), соответствующий возможный вариант добавляется в список возможных вариантов объединения. Когда режим прогнозирования возможного варианта, который должен добавляться, представляет собой режим IBC-прогнозирования, соответствующий возможный вариант не добавляется в список возможных вариантов объединения.
[190] Ссылаясь на фиг 24, чтобы конструировать пространственный возможный вариант объединения, оборудование кодирования выполняет поиск пространственно соседних блоков, проверяет то, применяется ли режим взаимного прогнозирования к соответствующему возможному варианту (представляет или нет режим прогнозирования соответствующего пространственного возможного варианта собой режим взаимного прогнозирования), и добавляет соответствующий возможный вариант в список возможных вариантов объединения, когда режим взаимного прогнозирования применяется (когда режим IBC-прогнозирования не применяется). Возможный вариант, к которому применяется режим IBC-прогнозирования, не добавляется в список возможных вариантов объединения.
[191] Если текущее число возможных вариантов в списке возможных вариантов объединения меньше максимального числа, оборудование кодирования может выполнять поиск временного возможного варианта прогнозирования. Временной (TMVP) возможный вариант представляет информацию движения блока, совместно размещаемого в кадре, отличающемся от текущего блока. Оборудование кодирования выполняет поиск совместно размещенных блоков (временно соседних блоков) в другом кадре, чтобы конструировать временной возможный вариант, и добавляет временной возможный вариант, к которому применяется взаимное прогнозирование (к которому не применяется IBC-прогнозирование), в список возможных вариантов объединения.
[192] Если число текущих возможных вариантов в списке возможных вариантов объединения меньше максимального числа, оборудование кодирования может выполнять поиск возможных HMVP-вариантов. Оборудование кодирования выполняет поиск возможных вариантов в списке возможных HMVP-вариантов (HMVP-буфере), чтобы конструировать возможный HMVP-вариант, и добавляет возможный вариант, к которому применяется взаимное прогнозирование (к которому не применяется IBC-прогнозирование), в список возможных вариантов объединения.
[193] Если текущее число возможных вариантов в списке возможных вариантов объединения меньше максимального числа, оборудование кодирования может выполнять поиск попарных возможных вариантов прогнозирования. Попарные возможные варианты прогнозирования представляют собой возможные варианты прогнозирования, сформированные посредством комбинирования возможных вариантов, заранее сконфигурированных в списке возможных вариантов прогнозирования. Например, посредством комбинирования вектора блока L0-направления (вектора движения) первого возможного варианта и вектора блока L1-направления второго возможного варианта, попарный возможный вариант прогнозирования может формироваться. Здесь, оборудование кодирования может проверять то, применяется или нет взаимное прогнозирование (IBC-прогнозирование не применяется), и когда взаимное прогнозирование применяется (когда IBC-прогнозирование не применяется), добавлять попарный возможный вариант прогнозирования в список возможных вариантов объединения. Когда взаимное прогнозирование применяется к обоим возможным вариантам, используемым для конструирования попарного возможного варианта прогнозирования (когда IBC-прогнозирование не применяется к обоим возможным вариантам), можно сказать, что взаимное прогнозирование применяется к попарному возможному варианту прогнозирования. Если текущее число возможных вариантов в списке возможных вариантов объединения меньше максимального числа, оборудование кодирования добавляет нулевой вектор в список возможных вариантов объединения.
[194] Фиг. 25 показывает, что проверяется то, представляет ли собой режим прогнозирования возможного варианта, который должен добавляться, режим IBC-прогнозирования в процессе конструирования списка возможных вариантов AMVP, и когда режим IBC-прогнозирования не применяется к соответствующему возможному варианту (когда взаимное прогнозирование применяется), соответствующий возможный вариант добавляется в список возможных AMVP-вариантов объединения. Когда режим прогнозирования возможного варианта, который должен добавляться, представляет собой режим IBC-прогнозирования, соответствующий возможный вариант не добавляется в список возможных AMVP-вариантов.
[195] Ссылаясь на фиг 25, чтобы конструировать пространственный возможный AMVP-вариант, оборудование кодирования выполняет поиск пространственно соседних блоков, проверяет то, применяется или нет режим взаимного прогнозирования к соответствующему возможному варианту (представляет или нет режим прогнозирования соответствующего пространственного возможного варианта собой режим взаимного прогнозирования), и добавляет соответствующий возможный вариант в список возможных AMVP-вариантов, когда режим взаимного прогнозирования применяется (когда режим IBC-прогнозирования не применяется). Возможный вариант, к которому применяется режим IBC-прогнозирования, не добавляется в список возможных AMVP-вариантов.
[196] Если текущее число возможных вариантов в списке возможных AMVP-вариантов меньше максимального числа, оборудование кодирования может выполнять поиск временного возможного варианта прогнозирования. Временной (TMVP) возможный вариант представляет информацию движения блока, совместно размещаемого в кадре, отличающемся от текущего блока. Оборудование кодирования выполняет поиск совместно размещенных блоков (временно соседних блоков) в другом кадре, чтобы конструировать временной возможный вариант, и добавляет временной возможный вариант, к которому применяется взаимное прогнозирование (к которому не применяется IBC-прогнозирование), в список возможных AMVP-вариантов.
[197] Если число текущих возможных вариантов в списке возможных AMVP-вариантов меньше максимального числа, оборудование кодирования может выполнять поиск возможных HMVP-вариантов. Оборудование кодирования выполняет поиск возможных вариантов в списке возможных HMVP-вариантов (HMVP-буфере), чтобы конструировать возможный HMVP-вариант, и добавляет возможный вариант, к которому применяется взаимное прогнозирование (к которому не применяется IBC-прогнозирование), в список возможных AMVP-вариантов.
[198] Если текущее число возможных вариантов в списке возможных AMVP-вариантов меньше максимального числа, оборудование кодирования может выполнять поиск попарных возможных вариантов прогнозирования. Попарные возможные варианты прогнозирования представляют собой возможные варианты прогнозирования, сформированные посредством комбинирования возможных вариантов, заранее сконфигурированных в списке возможных вариантов прогнозирования. Например, посредством комбинирования вектора блока L0-направления (вектора движения) первого возможного варианта и вектора блока L1-направления второго возможного варианта, попарный возможный вариант прогнозирования может формироваться. Здесь, оборудование кодирования может проверять то, применяется или нет взаимное прогнозирование (IBC-прогнозирование не применяется), и когда взаимное прогнозирование применяется (когда IBC-прогнозирование не применяется), добавлять попарный возможный вариант прогнозирования в список возможных AMVP-вариантов. Когда взаимное прогнозирование применяется к обоим возможным вариантам, используемым для конструирования попарного возможного варианта прогнозирования (когда IBC-прогнозирование не применяется к обоим возможным вариантам), можно сказать, что взаимное прогнозирование применяется к попарному возможному варианту прогнозирования. Если текущее число возможных вариантов в списке возможных вариантов объединения меньше максимального числа, оборудование кодирования добавляет нулевой вектор в список возможных AMVP-вариантов.
[199] Аналогично предыдущим вариантам осуществления, в процессе конструирования списка возможных вариантов прогнозирования для не-IBC-блока, конечно, можно опускать поиск любого типа из различных типов возможных вариантов (пространственных возможных вариантов, временного возможного варианта, возможных HMVP-вариантов и попарных возможных вариантов прогнозирования).
[200] Фиг. 26 является примером блок-схемы последовательности операций способа для кодирования видеоданных согласно варианту осуществления настоящего описания изобретения. Операция по фиг. 26 может выполняться посредством модуля 180 взаимного прогнозирования оборудования 100 кодирования.
[201] Ссылаясь на фиг 26, оборудование 100 кодирования конструирует список возможных вариантов векторов блока для текущего блока, к которому применяется режим IBC-прогнозирования, ссылающийся на другой блок в текущем кадре (S2610). Здесь, оборудование 100 кодирования может добавлять соответствующий возможный вариант в список возможных вариантов векторов блока только тогда, когда режим прогнозирования соответствующего возможного варианта, который должен добавляться, представляет собой режим IBC-прогнозирования в процессе конструирования списка возможных вариантов векторов блока (списка возможных вариантов объединения/списка возможных AMVP-вариантов). Таким образом, оборудование 100 кодирования может добавлять возможный вариант (пространственный возможный вариант, временной возможный вариант, возможный HMVP-вариант или попарный возможный вариант прогнозирования), к которому применяется режим IBC-прогнозирования, в список возможных вариантов векторов блока.
[202] В варианте осуществления, чтобы конструировать список возможных вариантов векторов блока, оборудование 100 кодирования может конструировать список возможных вариантов векторов блока из пространственных соседних блоков, к которым применяется режим IBC-прогнозирования, и изменять список возможных вариантов векторов блока на основе возможных HMVP-вариантов, к которым применяется режим IBC-прогнозирования, когда текущее число возможных вариантов в списке возможных вариантов векторов блока меньше максимального числа возможных вариантов.
[203] В варианте осуществления, если текущее число возможных вариантов в измененном списке возможных вариантов векторов блока меньше максимального числа возможных вариантов, оборудование 100 кодирования может добавлять нулевой вектор в измененный список возможных вариантов векторов блока. В варианте осуществления, оборудование 100 кодирования может добавлять нулевой вектор в измененный список возможных вариантов векторов блока до тех пор, пока текущее число возможных вариантов не равно максимальному числу возможных вариантов.
[204] В варианте осуществления, пространственные соседние блоки могут включать в себя, по меньшей мере, одно из левого соседнего блока, нижнего левого соседнего блока, верхнего соседнего блока, правого соседнего блока или правого соседнего блока относительно текущего блока.
[205] В варианте осуществления, оборудование 100 кодирования может добавлять попарный возможный вариант, сформированный на основе комбинации векторов блока, включенных в измененный список возможных вариантов векторов блока, в список возможных вариантов векторов блока.
[206] В варианте осуществления, если текущее число возможных вариантов в списке возможных вариантов векторов блока, в который добавляются попарные возможные варианты, меньше максимального числа возможных вариантов, нулевой вектор может добавляться в список возможных вариантов векторов блока.
[207] Оборудование 100 кодирования формирует прогнозную выборку для текущего блока на основе списка возможных вариантов векторов блока, сконструированного аналогично вариантам осуществления настоящего описания изобретения (S2620). Например, оборудование 100 кодирования может формировать прогнозную выборку посредством использования вектора блока (вектора движения) возможного варианта, указываемого посредством индекса объединения в списке возможных вариантов векторов блока (списке возможных вариантов объединения). В частности, прогнозная выборка может формироваться с использованием выборочного значения, указываемого посредством вектора блока в текущем кадре, включающем в себя текущий блок.
[208] Помимо этого, относительно блока, к которому применяется режим взаимного прогнозирования, отличный от режима IBC-прогнозирования, оборудование 100 кодирования может определять то, представляет ли собой режим прогнозирования возможного варианта, который должен добавляться, чтобы конструировать список возможных вариантов векторов блока, режим, идентичный режиму прогнозирования для текущего блока (режиму взаимного прогнозирования), и добавлять соответствующий возможный вариант в список возможных вариантов векторов блока в случае, если режимы прогнозирования являются идентичными (представляют собой режим взаимного прогнозирования).
[209] Оборудование 100 кодирования кодирует информацию, связанную с прогнозированием текущего блока (S2630).
[210] Фиг. 27 является примером блок-схемы последовательности операций способа для декодирования видеоданных согласно варианту осуществления настоящего описания изобретения. Операции по фиг. 27 могут выполняться посредством модуля 260 взаимного прогнозирования оборудования 200 декодирования.
[211] Оборудование 200 декодирования конструирует список возможных вариантов векторов блока для текущего блока, к которому применяется режим IBC-прогнозирования, ссылающийся на другой блок в текущем кадре (S2710).
[212] Оборудование 200 декодирования формирует прогнозную выборку для текущего блока на основе списка возможных вариантов векторов блока (S2720). Здесь, оборудование 100 декодирования может добавлять возможный вариант в список возможных вариантов векторов блока только тогда, когда режим прогнозирования возможного варианта, который должен добавляться, представляет собой режим IBC-прогнозирования в процессе конструирования списка возможных вариантов векторов блока (списка возможных вариантов объединения/список возможных AMVP-вариантов). Таким образом, оборудование 200 декодирования может добавлять возможный вариант (пространственный возможный вариант, временной возможный вариант, возможный HMVP-вариант или попарный возможный вариант прогнозирования), к которому применяется режим IBC-прогнозирования, в список возможных вариантов векторов блока.
[213] В варианте осуществления, чтобы конструировать список возможных вариантов векторов блока, оборудование 200 декодирования может конструировать список возможных вариантов векторов блока из пространственных соседних блоков, к которым применяется режим IBC-прогнозирования, и изменять список возможных вариантов векторов блока на основе возможных HMVP-вариантов, к которым применяется режим IBC-прогнозирования, когда текущее число возможных вариантов в списке возможных вариантов векторов блока меньше максимального числа возможных вариантов.
[214] В варианте осуществления, если текущее число возможных вариантов в измененном списке возможных вариантов векторов блока меньше максимального числа возможных вариантов, оборудование 200 декодирования может добавлять нулевой вектор в измененный список возможных вариантов векторов блока. В варианте осуществления, оборудование 100 кодирования может добавлять нулевой вектор в измененный список возможных вариантов векторов блока до тех пор, пока текущее число возможных вариантов не равно максимальному числу возможных вариантов.
[215] В варианте осуществления, пространственные соседние блоки могут включать в себя, по меньшей мере, одно из левого соседнего блока, нижнего левого соседнего блока, верхнего соседнего блока, правого соседнего блока или правого соседнего блока относительно текущего блока.
[216] В варианте осуществления, оборудование 200 декодирования может добавлять попарный возможный вариант, сформированный на основе комбинации векторов блока, включенных в измененный список возможных вариантов векторов блока, в список возможных вариантов векторов блока.
[217] В варианте осуществления, если текущее число возможных вариантов в списке возможных вариантов векторов блока, в который добавляются попарные возможные варианты, меньше максимального числа возможных вариантов, нулевой вектор может добавляться в список возможных вариантов векторов блока.
[218] Оборудование 200 декодирования может формировать прогнозную выборку посредством использования вектора блока (вектора движения) возможного варианта, указываемого посредством индекса объединения в списке возможных вариантов векторов блока (списке возможных вариантов объединения). В частности, прогнозная выборка может формироваться с использованием выборочного значения, указываемого посредством вектора блока в текущем кадре, включающем в себя текущий блок.
[219] Помимо этого, относительно блока, к которому применяется режим взаимного прогнозирования, отличный от режима IBC-прогнозирования, оборудование 200 декодирования может определять то, представляет режим прогнозирования возможного варианта, который должен добавляться, чтобы конструировать список возможных вариантов векторов блока, собой или нет режим, идентичный режиму прогнозирования для текущего блока (режиму взаимного прогнозирования), и добавлять соответствующий возможный вариант в список возможных вариантов векторов блока в случае, если режимы прогнозирования являются идентичными (представляют собой режим взаимного прогнозирования).
[220] Поток битов
[221] Кодированная информация (например, кодированная информация видео/изображений), извлекаемая посредством устройства 100 кодирования на основе вышеописанных вариантов осуществления раскрытия, может выводиться в форме потока битов. Кодированная информация может передаваться или сохраняться в NAL-единицах, в форме потока битов. Поток битов может передаваться по сети или может сохраняться на энергонезависимом цифровом носителе хранения данных. Дополнительно, как описано выше, поток битов непосредственно не передается из устройства 100 кодирования в устройство 200 декодирования, но может передаваться в потоковом режиме/загружаться через внешний сервер (например, сервер потоковой передачи контента). Сеть может включать в себя, например, широковещательную сеть и/или сеть связи, и цифровой носитель хранения данных может включать в себя, например, USB, SD, CD, DVD, Blu-Ray, HDD, SSD или другие различные носители хранения данных.
[222] Способы обработки, к которым применяются варианты осуществления раскрытия, могут создаваться в форме программы, выполняемой на компьютерах, и могут сохраняться в машиночитаемых носителях записи. Мультимедийные данные со структурой данных согласно раскрытию также могут сохраняться на машиночитаемых носителях записи. Машиночитаемые носители записи включают в себя все виды устройств хранения данных и распределенных устройств хранения данных, которые могут сохранять машиночитаемые данные. Машиночитаемые носители записи могут включать в себя, например, Blu-Ray-диски (BD), накопители по стандарту универсальной последовательной шины (USB), ROM, PROM, EPROM, EEPROM, RAM, CD-ROM, магнитные ленты, гибкие диски и оптическое устройство хранения данных. Машиночитаемые носители записи могут включать в себя среды, реализованные в форме несущих волн (например, как передачи по Интернету). Потоки битов, сформированные посредством способа кодирования, могут сохраняться на машиночитаемых носителях записи либо передаваться через сеть проводной/беспроводной связи.
[223] Варианты осуществления раскрытия могут реализовываться как компьютерные программы посредством программных кодов, которые могут исполняться на компьютерах согласно варианту осуществления раскрытия. Машинные коды могут сохраняться на машиночитаемом носителе.
[224] Вышеописанные варианты осуществления раскрытия могут реализовываться посредством энергонезависимого машиночитаемого носителя, сохраняющего машиноисполняемый компонент, выполненный с возможностью исполняться посредством одного или более процессоров вычислительного устройства. Согласно варианту осуществления раскрытия, машиноисполняемый компонент может быть выполнен с возможностью определять то, применяется или нет PCM-режим, в котором выборочное значение текущего блока в видеоданных передается через поток битов, идентифицировать опорный индекс, связанный с опорной линией для внутреннего прогнозирования текущего блока на основе неприменения PCM-режима, и формировать прогнозную выборку текущего блока на основе опорной выборки, включенной в опорную линию, связанную с опорным индексом. Дополнительно, согласно варианту осуществления раскрытия, машиноисполняемый компонент может быть выполнен с возможностью выполнять операции, соответствующие способу обработки видеоданных, описанному со ссылкой на фиг. 13 и 14.
[225] Устройство 200 декодирования и устройство 100 кодирования, к которым применяется раскрытие, могут включаться в цифровое устройство. Цифровые устройства охватывают все виды или типы цифровых устройств, допускающих выполнение, по меньшей мере, одной из передачи, приема, обработки и вывода, например, данных, контента или услуг. Обработка данных, контента или услуг посредством цифрового устройства включает в себя кодирование и/или декодирование данных, контента или услуг. Такое цифровое устройство может спариваться или соединяться с другим цифровым устройством или внешним сервером через проводную/беспроводную сеть, передачу или прием данных либо, при необходимости, преобразование данных.
[226] Цифровые устройства могут включать в себя, например, сетевые телевизоры, гибридные широковещательные широкополосные телевизоры, интеллектуальные телевизоры, телевизоры по Интернет-протоколу (IPTV), персональные компьютеры или другие стоящие устройства либо мобильные или карманные устройства, такие как персональные цифровые устройства (PDA), смартфоны, планшетные PC или переносные компьютеры.
[227] При использовании в данном документе, "проводная/беспроводная сеть" совместно означает сети связи, поддерживающие различные стандарты или протоколы связи для обмена данными и/или взаимного соединения между цифровыми устройствами или между цифровым устройством и внешним сервером. Такие проводные/беспроводные сети могут включать в себя сети связи, в данный момент поддерживаемые или которые должны поддерживаться в будущем, и протоколы связи для таких сетей связи, и могут формироваться, например, посредством стандартов связи для проводного соединения, включающих в себя USB (универсальную последовательную шину), CVBS (композитный гасящий синхронизирующий видеосигнал), компонентное соединение, S-видео-соединение (аналоговое), DVI (цифровой видеоинтерфейс), HDMI (мультимедийный интерфейс высокой четкости), RGB или D-SUB, и стандартов связи для беспроводного соединения, включающих в себя Bluetooth, RFID (радиочастотную идентификацию), IrDA (стандарт Ассоциации по передаче данных в инфракрасном диапазоне), UWB (стандарт сверхширокополосной связи), ZigBee, DLNA (стандарт Альянса цифровых домашних сетей), WLAN (беспроводную LAN) (Wi-Fi), WiBro (стандарт беспроводной широкополосной связи), Wimax (стандарт общемировой совместимости широкополосного беспроводного доступа), HSDPA (высокоскоростной пакетный доступ по нисходящей линии связи), LTE (стандарт долгосрочного развития) или стандарт Wi-Fi Direct.
[228] В дальнейшем в этом документе, когда называется просто "цифровым устройством" в раскрытии, оно может означать одно или оба из стационарного устройства или/и мобильного устройства в зависимости от контекста.
[229] Между тем, цифровое устройство представляет собой интеллектуальное устройство, которое поддерживает, например, широковещательный прием, функции компьютера и, по меньшей мере, один внешний ввод и может поддерживать, например, обмен электронными почтовыми сообщениями, просмотр веб-страниц, банковские операции, игры или приложения через вышеописанную проводную/беспроводную сеть. Дополнительно, цифровое устройство может включать в себя интерфейс для поддержки, по меньшей мере, одного средства ввода или управления (в дальнейшем в этом документе, средства ввода), такого как устройство рукописного ввода, сенсорный экран и пространственный пульт дистанционного управления. Цифровое устройство может использовать стандартизированную операционную систему (ОС) общего назначения. Например, цифровое устройство может добавлять, удалять, изменять и обновлять различные приложения в ядре ОС общего назначения, за счет этого конфигурируя и предоставляя более удобное для пользователя окружение.
[230] Вышеописанные варианты осуществления рассматривают предварительно определенные комбинации компонентов и признаков раскрытия. Каждый компонент или признак должен считаться необязательным, если явно не указано иное. Каждый компонент или признак может осуществляться на практике таким образом, что он не комбинируется с другими компонентами или признаками. Дополнительно, некоторые компоненты и/или признаки могут комбинироваться между собой, чтобы конфигурировать вариант осуществления раскрытия. Порядок операций, описанных в связи с вариантами осуществления раскрытия, может варьироваться. Некоторые компоненты или признаки одного варианта осуществления могут быть включены в другой вариант осуществления либо могут заменяться соответствующими компонентами или признаками другого варианта осуществления. Очевидно, что пункты формулы изобретения могут комбинироваться, чтобы составлять вариант осуществления, если в явной форме не указано иное, либо такие комбинации могут добавляться в новой формуле изобретения посредством изменения после подачи заявки.
[231] При реализации в микропрограммном обеспечении или аппаратных средствах, вариант осуществления раскрытия может реализовываться как модуль, процедура или функция, выполняющая вышеописанные функции или операции. Программный код может сохраняться в запоминающем устройстве и направляться посредством процессора. Запоминающее устройство может позиционироваться внутри или снаружи процессора, чтобы обмениваться данными с процессором посредством различных известных средств.
[232] Специалистам в данной области техники должно быть очевидным, что раскрытие может осуществляться в других конкретных формах без отступления от существа раскрытия. Таким образом, вышеприведенное описание должно интерпретироваться не в качестве ограничивающего во всех аспектах, а в качестве примерного. Объем раскрытия должен определяться посредством обоснованных интерпретаций прилагаемой формулы изобретения, и все эквиваленты раскрытия охватываются объемом раскрытия.
Промышленная применимость
[233] Выше раскрываются предпочтительные варианты осуществления настоящего раскрытия для иллюстративной цели, и в дальнейшем в этом документе, модификации, изменения, замены или добавления различных других вариантов осуществления осуществляются в пределах технической сущности и объема настоящего раскрытия, определяемого прилагаемой формулой изобретения для специалистов в данной области техники.
Изобретение относится к области кодирования/декодирования видеосигнала посредством использования взаимного прогнозирования. Техническим результатом является обеспечение обработки видеоданных для создания списка возможных вариантов объединения или варианта прогнозирования векторов движения в режиме прогнозирования (предсказания) на основе ссылки на текущие кадры (CPR) или на основе внутриблочного копирования (IBC). Предложен способ декодирования видеоданных, который содержит: конфигурирование списка возможных вариантов векторов блока текущего блока, к которому применяется режим прогнозирования на основе IBC, причем IBC-режим ссылается на другой блок в текущем кадре, и формирование прогнозной выборки текущего блока на основе вектора блока, включенного в список возможных вариантов векторов блока. Конфигурирование списка возможных вариантов векторов блока содержит: конфигурирование списка возможных вариантов векторов блока из пространственного соседнего блока, к которому применяется режим IBC-прогнозирования, и модификацию списка возможных вариантов векторов блока на основе возможного варианта прогнозирования векторов движения на основе предыстории (HVMP), к которому применяется режим IBC-прогнозирования, когда число текущих возможных вариантов из списка возможных вариантов векторов блока меньше максимального числа возможных вариантов. 3 н. и 4 з.п. ф-лы, 30 ил.
1. Способ обработки видеоданных, содержащий этапы, на которых:
определяют, применяется ли первый режим прогнозирования к текущему блоку, причем первый режим прогнозирования ссылается на другой блок в текущем кадре;
конфигурируют список возможных вариантов векторов блока текущего блока на основе применения первого режима прогнозирования к текущему блоку; и
формируют прогнозную выборку текущего блока на основе вектора блока, включенного в список возможных вариантов векторов блока,
при этом при конфигурировании списка возможных вариантов векторов блока список возможных вариантов векторов блока конфигурируют только на основе пространственного соседнего блока, к которому применяется первый режим прогнозирования, возможного варианта прогнозирования векторов движения на основе предыстории (HMVP), к которому применяется первый режим прогнозирования, и нулевого вектора посредством добавления вектора блока пространственного соседнего блока, возможного варианта HMVP и нулевого вектора в список возможных вариантов векторов блока в порядке вектор блока пространственного соседнего блока, возможный вариант HMVP и нулевой вектор,
при этом нулевой вектор добавляется в список возможных вариантов векторов блока до тех пор, пока число текущих возможных вариантов из списка возможных вариантов векторов блока не станет максимальным числом возможных вариантов.
2. Способ по п.1, в котором пространственный соседний блок включает в себя по меньшей мере одно из левого бокового соседнего блока, левого нижнего соседнего блока, верхнего бокового соседнего блока и правого верхнего соседнего блока.
3. Способ по п.1, в котором временной соседний возможный вариант и попарный возможный вариант, сформированные на основе комбинации векторов блока, включенных в список возможных вариантов векторов блока, не включаются в список возможных вариантов векторов блока.
4. Способ кодирования видеоданных, содержащий этапы, на которых:
определяют, следует ли применять первый режим прогнозирования к текущему блоку, причем первый режим ссылается на другой блок в текущем кадре;
конфигурируют список возможных вариантов векторов блока текущего блока на основе применения первого режима прогнозирования к текущему блоку;
формируют прогнозную выборку текущего блока на основе вектора блока, включенного в список возможных вариантов векторов блока; и
кодируют информацию, относящуюся к прогнозированию текущего блока,
при этом при конфигурировании списка возможных вариантов векторов блока список возможных вариантов векторов блока конфигурируют только на основе пространственного соседнего блока, к которому применяется первый режим прогнозирования, возможного варианта прогнозирования векторов движения на основе предыстории (HMVP), к которому применяется первый режим прогнозирования, и нулевого вектора посредством добавления вектора блока пространственного соседнего блока, возможного варианта HMVP и нулевого вектора в список возможных вариантов векторов блока в порядке вектор блока пространственного соседнего блока, возможный вариант HMVP и нулевой вектор,
при этом нулевой вектор добавляется в список возможных вариантов векторов блока до тех пор, пока число текущих возможных вариантов из списка возможных вариантов векторов блока не станет максимальным числом возможных вариантов.
5. Способ по п.4, в котором пространственный соседний блок включает в себя по меньшей мере одно из левого бокового соседнего блока, левого нижнего соседнего блока, верхнего бокового соседнего блока и правого верхнего соседнего блока.
6. Способ по п.4, в котором временной соседний возможный вариант и попарный возможный вариант, сформированные на основе комбинации векторов блока, включенных в список возможных вариантов векторов блока, не включаются в список возможных вариантов векторов блока.
7. Способ передачи данных, содержащих поток битов для изображения, причем способ содержит:
получение потока битов для изображения; и
передачу данных, содержащих поток битов,
при этом поток битов сформирован посредством выполнения этапов, на которых:
определяют, следует ли применять первый режим прогнозирования к текущему блоку, причем первый режим ссылается на другой блок в текущем кадре;
конфигурируют список возможных вариантов векторов блока текущего блока на основе применения первого режима прогнозирования к текущему блоку;
формируют прогнозную выборку текущего блока на основе вектора блока, включенного в список возможных вариантов векторов блока; и
кодируют информацию, относящуюся к прогнозированию текущего блока,
при этом при конфигурировании списка возможных вариантов векторов блока список возможных вариантов векторов блока конфигурируют только на основе пространственного соседнего блока, к которому применяется первый режим прогнозирования, возможного варианта прогнозирования векторов движения на основе предыстории (HMVP), к которому применяется первый режим прогнозирования, и нулевого вектора посредством добавления вектора блока пространственного соседнего блока, возможного варианта HMVP и нулевого вектора в список возможных вариантов векторов блока в порядке вектор блока пространственного соседнего блока, возможный вариант HMVP и нулевой вектор,
при этом нулевой вектор добавляется в список возможных вариантов векторов блока до тех пор, пока число текущих возможных вариантов из списка возможных вариантов векторов блока не станет максимальным числом возможных вариантов.
BENJAMIN BROSS et al, Versatile Video Coding (Draft 3), Joint Video Experts Team (JVET) of ITU-T SG16 WP3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-L1001-v7, 12th Meeting: Macao, 3-12 Oct | |||
Способ получения цианистых соединений | 1924 |
|
SU2018A1 |
LI ZHANG et al, CE4-related: History-based Motion Vector Prediction, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, |
Авторы
Даты
2023-02-03—Публикация
2020-01-03—Подача