Способ и устройство для кодирования или декодирования изображения с предсказанием информации движения между уровнями в соответствии со схемой сжатия информации движения

Иллюстрации

Показать все

Изобретение относится области масштабируемого кодирования/декодирования изображений. Технический результат – повышение эффективности кодирования и декодирования изображений посредством улучшения выбора информации движения. Способ кодирования изображения в соответствии с форматом масштабируемого кодирования содержит по меньшей мере для области изображения улучшающего уровня этапы, на которых: определяют набор предикторов информации движения на основе информации движения другой части изображений, принадлежащих опорному уровню; определяют совмещенную позицию в опорном уровне области изображения для кодирования в улучшающем уровне, чтобы выбрать информацию движения, связанную с упомянутой позицией, как часть упомянутого набора предикторов информации движения; корректируют по меньшей мере одну координату упомянутой совмещенной позиции; и кодируют изображение в соответствии с форматом масштабируемого кодирования. 6 н.п. ф-лы, 13 ил.

Реферат

Изобретение в целом относится к области масштабируемого видеокодирования и декодирования, в частности к масштабируемому видеокодированию и декодированию, которое расширило бы стандарт высокоэффективного видеокодирования (HEVC). В частности, изобретение относится к способу, устройству и компьютерной программе для предсказания вектора движения в масштабируемом видеокодере и декодере.

Видеокодирование представляет собой способ преобразования последовательности видеоизображений в компактный оцифрованный битовый поток таким образом, чтобы видеоизображения могли быть переданы или сохранены. Устройство для кодирования используется для кодирования видеоизображений, и соответствующее устройство для декодирования доступно для воссоздания битового потока для отображения и просмотра. Общая цель состоит в том, чтобы сформировать битовый поток меньшего размера, чем первоначальная видеоинформация. Это выгодным образом уменьшает пропускную способность, требуемую для сети передачи или устройства хранения, чтобы передать или сохранить код битового потока.

Общие стандартизированные подходы были приняты для формата и способа процесса кодирования, особенно относительно части декодирования. Значительное большинство прошлых видеостандартов разбивают видеоизображения на меньшие секции (называемые макроблоками или блоками). В новом завершаемом стандарте сжатия видео высокоэффективного видеокодирования (HEVC) макроблоки заменены так называемыми наибольшими элементами кодирования (LCU) (также называемыми иерархическими блоками кодирования (СТВ)) и разделены и выровнены как блоки, называемые теперь элементами кодирования (CU) в соответствии с характеристиками сегмента рассматриваемого исходного изображения. Это дает возможность более детализированного кодирования областей видеоизображения, которые содержат относительно больше информации, и меньших усилий по кодированию для этих областей с меньшим количеством признаков. Следует отметить, что область изображения также известна под следующими различными терминами в литературе по сжатию видео: пиксельный блок, блок пикселей, блок, элемент кодирования (CU) и макроблок.

В настоящее время определяется масштабируемое расширение HEVC. В этом расширении изображения рассматриваются как состоящие из множества иерархических уровней. Иерархические уровни включают в себя базовый уровень, эквивалентный коллекции низкокачественных версий изображений (или кадров) первоначальной последовательности видеокадров, и один или более улучшающих уровней (также известных как уровни уточнения).

Видеоизображения первоначально обрабатывались посредством индивидуального кодирования каждого макроблока, что напоминает цифровое кодирование неподвижных изображений. Позже модели кодирования допускают предсказание признаков в одном кадре либо на основе соседних макроблоков (пространственное или интрапредсказание), либо посредством ассоциации с аналогичным макроблоком в соседнем кадре (временное предсказание). Это дает возможность использования уже доступной закодированной информации, тем самым сокращая величину битовой скорости кодирования, необходимой в целом. Различия между первоначальным блоком для кодирования и блоком, используемым для предсказания, захватываются в остаточном множестве значений. Затем первоначальный блок кодируется в форме идентификатора блока, используемого для предсказания, и разности. Возможны многие различные типы предсказаний. Эффективное кодирование выбирает наилучший режим предсказания, обеспечивающий наивысшее качество для кодирования блока при декодировании, при этом принимая во внимание размер битового потока, производимый каждым режимом предсказания для представления упомянутого блока в битовом потоке. Общей целью является компромисс между качеством декодированного изображения и сокращением необходимой битовой скорости, также известный как компромисс скорости/искажения.

В случае временного предсказания возможны несколько типов предсказания, и они могут быть собраны в два основных типа: однонаправленное предсказание и двунаправленное предсказание. В случае однонаправленного предсказания блок для предсказания связывается с одним предиктором. Местоположение предиктора кодируется как информация движения. Эта информация движения состоит из индекса опорного кадра, содержащего предиктор, называемого ref_idx в стандарте, и вектора, определенного вертикальным и горизонтальным смещением, которое задает местоположение блока предиктора в указанном кадре. В случае двунаправленного предсказания блок для кодирования связывается с двумя предикторами, взятыми в двух разных опорных кадрах. Как следствие, информация движения содержит два индекса опорных кадров и два вектора.

Информация движения сама может быть закодирована с предсказанием. Информация движения, полученная из соседнего элемента кодирования в том же самом кадре, может использоваться в качестве пространственных предикторов информации движения. Информация движения, полученная из совмещенного элемента кодирования в других кадрах, может использоваться в качестве временного предиктора информации движения. Информация движения, которая будет закодирована для блока, для кодирования затем кодируется с помощью индекса в используемом предикторе информации движения и разностной информации, представляющей различие между выбранным предиктором информации движения и информацией движения, которая будет закодирована.

Предсказание информации движения на основе информации движения, соответствующей предыдущим изображениям, требует, чтобы кодер и декодер хранили поле движения ранее закодированных изображений. Это поле движения может представлять огромный объем данных для хранения, тем более для видеоматериалов, демонстрирующих большое разрешение, таких как видеоматериалы 4k2k или 8k4k. Чтобы ограничить требования хранения кодеков HEVC, стандарт HEVC принял стратегию, состоящую в использовании сжатых полей движения для предсказания информации движения вместо всего поля движения.

Хранение поля движения требуется только тогда, когда используется информация движения предыдущих изображений. В HEVC использование временных предикторов информации движения может быть деактивировано. В этом случае может быть получено дополнительное сокращение требований хранения кодека HEVC посредством предотвращения хранения какой-либо информации движения.

Одна из основных идей в масштабируемом кодеке состоит в том, чтобы повторно использовать информацию из опорного уровня (RL), закодированного с использованием заданного кодека (например, HEVC), чтобы закодировать информацию улучшающего уровня.

Было бы желательно использовать информацию движения, определенную в опорном уровне, для предсказывающего кодирования информации движения в улучшающем уровне. В частности, если использование временных предикторов информации движения в опорном уровне деактивировано, может случиться, что никакая информация движения не может быть доступна для использования для предсказания информации движения в улучшающем уровне.

Настоящее изобретение было создано, чтобы обратиться к одной или более из упомянутых проблем. Оно относится к процессу определения предиктора информации движения в улучшающем уровне схемы масштабируемого кодирования, также известного как процесс выявления движения. Он содержит коррекцию позиции в опорном уровне, используемом для подбора более соответствующей информации движения, доступной вследствие схемы сжатия.

В соответствии с первым аспектом изобретения обеспечен способ кодирования изображения в соответствии с форматом масштабируемого кодирования, упомянутый формат кодирования содержит по меньшей мере опорный уровень и улучшающий уровень, по меньшей мере часть изображения закодирована с предсказанием на основе информации движения, упомянутая информация движения сама закодирована с предсказанием на основе множества предикторов информации движения, причем способ содержит по меньшей мере для области изображения улучшающего уровня этапы, на которых определяют множество предикторов информации движения на основе информации движения другой части изображений, принадлежащих опорному уровню; определяют совмещенную позицию в опорном уровне области изображения для кодирования в улучшающем уровне, чтобы выбрать информацию движения, связанную с упомянутой позицией, как часть упомянутого множества предикторов информации движения и корректируют по меньшей мере одну координату упомянутой совмещенной позиции, причем упомянутая корректировка содержит сложение определенного значения по меньшей мере с одной из координат упомянутой совмещенной позиции, чтобы получить модифицированное значение координаты, и применение функции округления к модифицированному значению координаты.

В соответствии с дополнительным аспектом изобретения обеспечен способ декодирования изображения в соответствии с форматом масштабируемого кодирования, упомянутый формат кодирования содержит по меньшей мере опорный уровень и улучшающий уровень, по меньшей мере часть изображения закодирована с предсказанием на основе информации движения, упомянутая информация движения сама закодирована с предсказанием на основе множества предикторов информации движения, причем способ содержит по меньшей мере для области изображения улучшающего уровня этапы, на которых определяют множество предикторов информации движения на основе информации движения другой части изображений, принадлежащих опорному уровню; определяют совмещенную позицию в опорном уровне области изображения для декодирования в улучшающем уровне, чтобы выбрать информацию движения, связанную с упомянутой позицией, как часть упомянутого множества предикторов информации движения, и корректируют по меньшей мере одну координату упомянутой совмещенной позиции, причем упомянутая корректировка содержит сложение определенного значения по меньшей мере с одной из координат упомянутой совмещенной позиции, чтобы получить модифицированное значение координаты, и применение функции округления к модифицированному значению координаты.

В соответствии с другим аспектом изобретения обеспечено устройство для кодирования изображения в соответствии с форматом масштабируемого кодирования, упомянутый формат кодирования содержит по меньшей мере опорный уровень и улучшающий уровень, по меньшей мере часть изображения закодирована с предсказанием на основе информации движения, упомянутая информация движения сама закодирована с предсказанием на основе множества предикторов информации движения, причем устройство содержит по меньшей мере для области изображения улучшающего уровня модуль определения предикторов для определения множества предикторов информации движения на основе информации движения другой части изображений, принадлежащих опорному уровню; модуль определения позиции для определения совмещенной позиции в опорном уровне области изображения для кодирования в улучшающем уровне, чтобы выбрать информацию движения, связанную с упомянутой позицией, как часть упомянутого множества предикторов информации движения и модуль коррекции позиции для коррекции по меньшей мере одной координаты упомянутой совмещенной позиции, причем упомянутая корректировка содержит сложение определенного значения по меньшей мере с одной из координат упомянутой совмещенной позиции, чтобы получить модифицированное значение координаты, и применение функции округления к модифицированному значению координаты.

В соответствии с другим аспектом изобретения обеспечено устройство для декодирования изображения в соответствии с форматом масштабируемого кодирования, упомянутый формат кодирования содержит по меньшей мере опорный уровень и улучшающий уровень, по меньшей мере часть изображения закодирована с предсказанием на основе информации движения, упомянутая информация движения сама закодирована с предсказанием на основе множества предикторов информации движения, причем устройство содержит по меньшей мере для области изображения улучшающего уровня модуль определения предикторов для определения множества предикторов информации движения на основе информации движения другой части изображений, принадлежащих опорному уровню; модуль определения позиции для определения совмещенной позиции в опорном уровне области изображения для декодирования в улучшающем уровне, чтобы выбрать информацию движения, связанную с упомянутой позицией, как часть упомянутого множества предикторов информации движения и модуль коррекции позиции для коррекции по меньшей мере одной координаты упомянутой совмещенной позиции, причем упомянутая корректировка содержит сложение определенного значения по меньшей мере с одной из координат упомянутой совмещенной позиции, чтобы получить модифицированное значение координаты, и применение функции округления к модифицированному значению координаты.

По меньшей мере части способов в соответствии с изобретением могут быть реализованы с помощью компьютера. В соответствии с этим настоящее изобретение может принять форму полностью аппаратного варианта осуществления, полностью программного варианта осуществления (в том числе программно-аппаратного обеспечения, резидентного программного обеспечения, микрокода и т.д.) или варианта осуществления, комбинирующего аспекты программного и аппаратного обеспечения, которые в целом могут упоминаться здесь как "схема", "модуль" или "система". Кроме того, настоящее изобретение может принять форму компьютерного программного продукта, воплощенного в любом материальном носителе, в выражении, имеющем используемый с помощью компьютера программный код, воплощенный на носителе.

Поскольку настоящее изобретение может быть реализовано в программном обеспечении, настоящее изобретение может быть воплощено как машиночитаемый код для предоставления программируемому устройству на любом подходящем носителе. Материальный носитель может содержать запоминающий носитель, такой как гибкий диск, компакт-диск (CD-ROM), накопитель на жестком диске, магнитную ленту или твердотельную память и т.п. Переходный носитель может включить в себя сигнал, такой как электрический сигнал, электронный сигнал, оптический сигнал, акустический сигнал, магнитный сигнал или электромагнитный сигнал, например микроволновый или радиочастотный сигнал.

Теперь будут описаны варианты осуществления изобретения только в качестве примера и со ссылкой на следующие чертежи, на которых:

Фиг. 1 иллюстрирует блок-схему классического масштабируемого видеокодера;

Фиг. 2 иллюстрирует пространственные и временные позиции для предикторов информации движения в варианте осуществления изобретения;

Фиг. 3 иллюстрирует предсказание информации движения в улучшающем уровне с использованием информации движения опорного уровня в варианте осуществления изобретения;

Фиг. 4 иллюстрирует блок-схему последовательности операций для процесса декодирования в варианте осуществления изобретения;

Фиг. 5 иллюстрирует гранулярность информации движения в варианте осуществления изобретения;

Фиг. 6 схематично иллюстрирует принципы подхода TextureRL в варианте осуществления изобретения;

Фиг. 7 иллюстрирует адаптированный процесс выявления предиктора информации движения в контексте AMVP и режиме со слиянием подхода TextureRL в улучшающем уровне в варианте осуществления изобретения;

Фиг. 8 иллюстрирует адаптированный процесс в контексте подхода индекса опорного кадра в варианте осуществления изобретения;

Фиг. 9 является блок-схемой последовательности операций процесса выявления информации движения режимов со слиянием в варианте осуществления изобретения;

Фиг. 10 представляет блок-схему масштабируемого декодера в варианте осуществления изобретения;

Фиг. 11 является блок-схемой вычислительного устройства для реализации одного или более вариантов осуществления изобретения;

Фиг. 12 показывает выявление множества предикторов информации движения AMVP в варианте осуществления изобретения;

Фиг. 13 иллюстрирует подробные сведения области памяти в варианте осуществления изобретения.

Фиг. 1 иллюстрирует блок-схему классического масштабируемого видеокодера, который может содержать несколько подразделов или каскадов и который является репрезентативным для масштабируемого расширения HEVC. Здесь проиллюстрированы два подраздела или каскада А10 и В10, производящие данные, соответствующие базовому уровню 1.13, и данные, соответствующие одному улучшающему уровню 1.14. Каждый из подразделов А10 и В10 следует принципам стандартного видеокодера, в которых этапы преобразования, квантования и энтропийного кодирования применяются в двух отдельных проходах, и каждому уровню соответствует один из них.

Первый каскад В10 стремится кодировать базовый уровень, совместимый со стандартами H.2 64/AVC или HEVC, масштабируемого выходного потока. Входная информация в этот не масштабируемый кодер состоит в первоначальной последовательности изображений кадра, полученной посредством применения понижающей дискретизации 1.17 к изображениям 1.1. Этот кодер последовательно выполняет следующие шаги, чтобы закодировать стандартный битовый поток видео. Изображение или кадр, который будет закодирован (сжат), делится на пиксельные блоки на этапе 1.2, называемые элементами кодирования (CU) в стандарте HEVC. Каждый блок сначала подвергается операции 1.3 оценки движения, которая содержит поиск среди опорных изображений, сохраненных в выделенном буфере 1.4 памяти, опорных блоков, которые обеспечили бы хорошее предсказание блока. Этот этап оценки движения обеспечивает один или более индексов опорных изображений, которые содержат найденные опорные блоки, а также соответствующие векторы движения. Затем этап 1.5 компенсации движения применяет предполагаемые векторы движения к найденным опорным блокам, чтобы получить временной разностный блок, который является разностью между блоком предсказания с компенсацией движения и первоначальным блоком для предсказания. Кроме того, этап 1.6 интрапредсказания определяет режим пространственного предсказания, который обеспечил бы наилучшую производительность для предсказания текущего блока. Вновь вычисляется пространственный разностный блок, но в этом случае как разность между пространственным предиктором и первоначальным блоком для предсказания.

Затем механизм 1.7 выбора режима кодирования выбирает среди пространственных и временных предсказаний режим кодирования, который обеспечивает наилучший компромисс между скоростью и искажением при кодировании текущего блока. В зависимости от выбранного режима предсказания разностный блок предсказания затем подвергается преобразованию (DCT) и квантованию 1.8. Выполняется энтропийное кодирование 1.10 квантованных коэффициентов QTC (и связанных данных движения MD). Сжатые данные 1.13 текстуры, связанные с закодированным текущим блоком 1.2, отправляют на выход.

Чтобы дополнительно улучшить эффективность кодирования, информация движения, связанная с интерблоками, которые выполняют этап компенсации движения, кодируется с предсказанием с использованием информации движения соседних блоков. Соседние блоки в этом случае содержат соседние в пространстве и, факультативно, соседние во времени блоки. Как следствие, если используются соседние во времени блоки, информация движения ранее закодированных изображений должна быть сохранена, чтобы позволить предсказание. В текущей версии стандарта эта информация сохраняется в сжатой форме кодером и декодером, чтобы ограничить использование памяти процесса кодирования и декодирования. Однако, как упомянуто ранее, когда временной предиктор не используется при предсказании информации движения, хранение поля движения предыдущих изображений не является необходимым.

Затем текущий блок воссоздается посредством обратного квантования (также называемого масштабированием) и обратного преобразования 1.11. Этот этап выполняется при необходимости посредством суммирования между подвергнутой обратному преобразованию разностью и блоком предсказания текущего блока, чтобы сформировать воссозданный блок. Воссозданные блоки добавляются в буфер, чтобы сформировать воссозданный кадр. Затем этот воссозданный кадр подвергается последующей фильтрации 1.12. Воссозданный кадр после этого последующего фильтра сохраняется в буфере памяти 1.4, называемом буфером декодированного изображения (DPB), с тем, чтобы он был доступен для использования в качестве опорного изображения для предсказания любых последующих изображений, которые будут кодироваться.

Наконец, последнему этапу энтропийного кодирования задается режим кодирования и, в случае интерблока, данные движения, а также ранее вычисленные квантованные коэффициенты DCT. Этот кодер энтропии кодирует каждую из этих частей данных в их двоичную форму и инкапсулирует закодированный блок в контейнер, называемый элементом NAL (элементом сетевого уровня абстракции). Элемент NAL содержит все закодированные элементы кодирования из заданного слоя. Закодированный битовый поток HEVC состоит из последовательности элементов NAL.

Далее второй каскад А10 иллюстрирует кодирование улучшающего уровня с использованием базового уровня в качестве опорного уровня. При этом этот улучшающий уровень придает детализацию пространственного разрешения дискретизированному с повышением базовому уровню. Как проиллюстрировано на фиг. 1, схема кодирования этого улучшающего уровня аналогичная схеме кодирования базового уровня за исключением того, что для каждого элемента кодирования текущего изображения из сжимаемого потока 1.10 рассматриваются дополнительные режимы на основе предсказания между уровнями. Обычно включены следующие модификации.

Дополнительный режим, называемый IntraBL 1.90, состоящий в предсказании блока улучшающего уровня с использованием дискретизированного с повышением совмещенного блока опорного уровня, добавляется к списку режимов, рассматриваемых для блока улучшающего уровня.

Предсказание информации движения, используемое в режимах интеркодирования, может быть модифицировано, чтобы принять во внимание информацию движения, приходящую из опорного уровня. Кроме того, заданное энтропийное кодирование информации движения может быть применено во время этапа 1.2 0 энтропийного кодирования.

Для этих новых инструментов промежуточный модуль 1.18 между уровнями может обеспечить информацию (информацию движения, отсчеты), возможно дискретизированную с повышением в соответствии с изменением пространственного разрешения, из опорного уровня разным модулям кодирования улучшающего уровня, таким как модуль 1.23 оценки движения, режим 1.90 IntraBL или модуль 1.26 интрапредсказания. В частности, в подходе с опорным кадром модуль 1.18 дискретизирует с повышением и данные отсчетов, и данные движения полученного в результате кадра в буфере 1.4 DPB для соответствия размерностям улучшающего уровня и вставит полученные в результате данные (изображение и его движение) в буфер 1.24 DPB, который в свою очередь воздействует на операции 1.2 5 и 1.23.

Фиг. 10 представляет блок-схему масштабируемого декодера, который применяется к масштабируемому битовому потоку, сделанному из двух уровней масштабируемости, например состоящему из базового уровня и улучшающего уровня. Этот процесс декодирования, таким образом, является противоположной обработкой по отношению к процессу масштабируемого кодирования на фиг. 1. Декодируемый масштабируемый поток 10.10 сделан из одного базового уровня и одного пространственного улучшающего уровня поверх базового уровня, которые демультиплексируются на этапе 10.20 в свои соответствующие уровни.

Первый каскад на фиг. 10 относится к процессу В12 декодирования базового уровня. Этот процесс декодирования начинается с энтропийного декодирования 10.30 каждого элемента кодирования или блока каждого закодированного изображения на базовом уровне. Это энтропийное декодирование 10.30 обеспечивает режим кодирования, информацию движения (индексы опорных изображений и векторы движения интеркодированных блоков), направление предсказания для интрапредсказания и разностные данные. Эти разностные данные состоят из квантованных и преобразованных коэффициентов DCT. Затем эти квантованные коэффициенты DCT подвергаются операциям 10.31 обратного квантования и обратного преобразования. Компенсация движения 10.32 или интрапредсказание 10.33 данных может быть добавлена к этой разности посредством операции 10.34.

Затем применяется этап 10.35 фильтра удаления блочности. Воссозданное изображение затем сохраняется в буфере 10.40 кадра.

Затем декодированная информация движения для интерблоков и воссозданные блоки сохраняются в буфере кадра в первом из масштабируемых декодеров на фиг. 10 (В12). Такие кадры содержат данные, которые могут использоваться в качестве опорных данных для предсказания более высокого уровня масштабируемости.

Далее второй каскад на фиг. 10 выполняет декодирование пространственного улучшающего уровня А12 поверх базового уровня, декодированного посредством первого каскада. Это пространственное декодирование улучшающего уровня включает в себя энтропийное декодирование второго уровня, которое обеспечивает режимы кодирования, информацию движения и информацию интрапредсказания, а также преобразованную и квантованную разностную информацию блоков второго уровня.

Следующий этап состоит в предсказании блоков в изображении улучшения. Выбор 10.51 между различными типами предсказания блока (интрапредсказание, интерпредсказание или в случае подхода TextureRL предсказание между уровнями) зависит от режима предсказания, полученного из этапа 10.50 энтропийного декодирования.

Что касается интраблоков, их обработка зависит от типа элемента интракодирования. В случае предсказанного между уровнями интраблока (режим кодирования IntraBL) 10.57, если разностные данные были закодированы для блока, результат энтропийного декодирования 10.50 подвергается обратному квантованию и обратному преобразованию 10.52 и затем добавляется посредством операции 10.53 к блоку со совмещенным расположением текущего блока в базовом изображении в своей декодированной, подвергнутой последующей фильтрации и дискретизированной с повышением (в случае пространственной масштабируемости) версии. В случае интраблока такой блок полностью воссоздается через обратное квантование, обратное преобразование для получения разностных данных в пространственной области и затем интрапредсказание 10.54 для получения полностью воссозданного блока.

Что касается интерблоков, их воссоздание подразумевает их компенсацию 10,55 движения, вычисленную на основе памяти 10.60 кадра, декодирование разностных данных и затем добавление их декодированной разностной информации к их блоку временного предиктора. В этом процессе декодирования интерблока информация движения, связанная с рассматриваемым блоком, может декодироваться предсказывающим образом как уточнение информации движения совмещенного блока в базовом изображении. Этот аспект будет подробно описан ниже.

Как на базовом уровне, этап 10.56 фильтра удаления блочности может быть применен к изображениям, выданным из этапа 10,53, и они сохраняются в памяти 10.60 кадр, прежде чем они возвращаются посредством декодирования как полностью декодированные кадры 10.70. Следует отметить, что в варианте осуществления изобретения компенсация 10.55 движения фактически использует данные из буфера 10.60 изображения улучшающего уровня и буфера 10.40 изображения базового уровня. Вместе с данными отсчетов модуль 10.80 может отвечать за обеспечение таких данных из опорного уровня посредством их дискретизации с повышением.

Могут быть рассмотрены два подхода для предсказания изображения. В частности, предсказание изображения содержит предсказание информации движения. В обоих подходах затрагивается предсказание информации движения, но по-разному. Два подхода предсказания изображения описаны ниже. Признак этих подходов должен позволить использовать информацию движения опорного уровня слоя для предсказания информации движения на улучшающем уровне. Этот признак будет описан более подробно со ссылкой на фиг. 3 и оказывает влияние на то, каким образом осуществляется доступ к памяти 1.4 кадра на фиг. 1 опорного уровня.

Затем для обоих подходов подробно объяснен случай предсказания информации движения, который является ключевым пунктом этого изобретения.

Первый подход обычно называется TextureRL, поскольку разрешено использование режима IntraBL. Этот подход использует синтаксис низкого уровня на уровне блоков, чтобы сигнализировать использование режима IntraBL. Этот подход иногда упоминается некоторыми экспертами как "подход IntraBL".

Второй подход, называемый вставкой опорного кадра, состоит в том, чтобы главным образом использовать изменения высокого уровня. В частности, изменение синтаксиса не выполняется на уровне блоков. Основной признак подхода индекса опорного кадра заключается во внедрении изображений (возможно, подвергнутых дискретизации с повышением, когда разрешение является другим) опорного уровня, называемых изображениями ILR (что означает опорные изображения между уровнями), в буфер декодированных изображений улучшающего уровня. Эти изображения затем вставляются в конец заданных списков опорных изображений (список L0 и L1), используемых в качестве опорных изображений в буфере DPB (буфере декодированных изображений). Вставка зависит от типа текущего слоя улучшающего уровня. В Р-слое изображение ILR вставляется в конец списка L0. В В-слое изображение ILR вставляется и в конец списка L0, и в конец списка L1. Этот подход иногда упоминается некоторыми экспертами как "подход ref_idx". Посредством этого подхода информация движения заданного блока может быть закодирована с предсказанием с использованием временного предиктора информации движения опорного уровня, совмещенно расположенного в опорном уровне.

Стоит отметить, что IntraBL в подходе TextureRL и использование вставленного опорного кадра в подходе индекса опорного кадра являются двумя способами использования информации базового уровня для предсказания улучшающего уровня. В описании этого изобретения и ради простоты мы поочередно рассматриваем один из этих подходов, но не оба вместе.

Теперь мы опишем общую информацию относительно информации движения, которая пригодна для обоих подходов.

Типичный видеокодек использует как пространственные, так и временные корреляции между пикселями в соответствующих интра и интеррежимах. Здесь мы сосредоточены здесь на режимах интеркодирования, которые используют временную корреляцию между пикселями текущего кадра и ранее закодированными/декодированными кадрами.

В стандарте HEVC (и SHVC посредством расширения) интеррежим является режимом предсказания, который определяет временное направление предсказания. Множества информации движения с 0 по 2 определены в зависимости от этого временного направления. Если направление интерпредсказания равно 0, блок кодируется с помощью режима интракодирования, и он не содержит информации движения. Если направление интерпредсказания равно 1, блок содержит информацию движения из списка опорных кадров, называемого L0. Если направление интерпредсказания равно 2, блок содержит информацию движения из другого списка опорных кадров, называемого L1. Если направление интерпредсказания равно 3, блок содержит информацию движения из обоих списков L0 и L1.

Информация движения состоит в следующей информации, индекса (ref_idx) в списке опорных кадров и вектора движения, который имеет два компонента: горизонтальную и вертикальную величины движения. Эти величины соответствуют пространственному смещению в терминах пикселей между позицией текущего блока и блока временного предиктора в опорном кадре. Это смещение может иметь субпиксельную точность (0, 1, 2 или 3 четверти пикселя).

Упомянутые выше направления интерпредсказания 1 и 2 соответствуют однонаправленным предсказаниям и могут использоваться не в I-слоях (интракодированных слоях), а в Р-слоях (предсказанных слоях) и В-слоях (с двунаправленным предсказанием). Изображение конкретного типа (I, Р или В) сделано по меньшей мере из одного слоя такого же типа. Направление интерпредсказания 3 называется двунаправленным предсказанием и может использоваться только в В-слоях. В этом случае рассматриваются два предиктора блока, по одному для каждого из списков L0 и L1. Следовательно, рассматриваются два индекса опорных кадров, а также два вектора движения. Предиктор блока интеррежима для двунаправленного предсказания является средним по пикселям этих двух блоков, на которые указывают эти два вектора движения. Предиктор блока здесь соответствует понятию элемента предсказания или блока предсказания в HEVC или SHVC.

Как описано выше, информация движения в HEVC кодируется посредством кодирования с предсказанием с использованием множества предикторов информации движения, среди которых информация движения со совмещенным во времени местоположением. Таким образом, необходимо, чтобы каждый кадр, который используется в качестве опорного кадра, хранил на сторонах кодера и декодера свою соответствующую информацию движения. Эта информация движения сжата, чтобы уменьшить ее размер в выделенной памяти информации движения.

Таким образом, HEVC использует конкретную гранулярность для представления движения. Это изображено на фиг. 5. Для каждого блока 5.0 из 16×16 пикселей минимальная гранулярность, используемая HEVC, составляет 4×4 пикселей, что дает в результате 16 потенциальных частей информации движения, по одному для каждого блока с размером 4×4. Сжатие информации движения состоит в хранении только информации движения, соответствующей верхнему левому блоку 5.1 с размером 4×4 для заданного блока 5.0.

Процесс сжатия информации движения может произойти, как только был сделан заключительный выбор для блока с размером 16×16, и он был закодирован, но проще визуализировать его как выполняемый, когда было закодировано целое изображение. Ради простоты мы можем полагать, что он выполняется после процесса адаптивного петлевого фильтра и перед тем как декодированное изображение будет помещено в буфер декодированного изображения (DPB). Этот процесс сжатия может быть описан как конкретный поиск: для заданных координат X и Y пикселя информация движения получается из позиции Х'=(Х>>)<<4 и Y'=(Y>>4)<<4, где операторы '>>' и '<<' описываются следующим образом.

х>>у представляет арифметический сдвиг вправо целочисленного представления дополнения до двух для х на у двоичных цифр. Эта функция определена только для неотрицательных целочисленных значений у. Биты, смещенные в старшие значащие биты (MSB) в результате сдвига вправо, имеют значение, равное MSB для х до операции сдвига.

х<<у представляет арифметический сдвиг влево целочисленного представления дополнения до двух для х на у двоичных цифр. Эта функция определена только для неотрицательных целочисленных значений у. Биты, смещенные в младшие значащие биты (LSB) в результате сдвига влево, имеют значение, равное 0.

Можно отметить, что некоторые реализации могут использовать буфер для хранения соответствующего сжатого движения.

В конфигурации HEVC векторы движения кодируются посредством кодирования с предсказанием с использованием множества предикторов информации движения. Для интеркодированного блока имеется 3 подрежима, называемых подрежимами с пропуском (Skip), внешним (Inter) и со слиянием (Merge) кодирования блока. Внешний подрежим использует конкретный способ предсказания движения, называемый AMVP, и использует разностные текстурные данные. Подрежимы с пропуском и со слиянием используют один и тот же способ предсказания движения (но первый не использует разностные данные). Этот способ предсказания дает возможность выбора наилучшего предиктора информации движения из заданного множества, причем множество составлено из пространственной и временной информации движения.

Мы опишем режим предсказания информации дв