СПОСОБ ДЕКОДИРОВАНИЯ ВИДЕОДАННЫХ
VIDEO DATA DECODING METHOD

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Настоящее изобретение относится к способу декодирования видеоданных, и более подробно, к способу получения информации о движении в режиме слияния посредством создания списка вариантов слияния с использованием пространственных и временных вариантов слияния и генерирования блока предсказания с использованием информации о движении.
УРОВЕНЬ ТЕХНИКИ
Способы сжатия видеоданные включают в себя AVC MPEG-2, MPEG-4 и H.264/MPEG-4. Согласно этим способам, для кодирования изображения одно изображение разделяется на макроблоки, соответствующие макроблоки кодируются посредством генерирования блока предсказания с использованием интер-предсказания (т.е. взаимного, межкадрового предсказания) или интра-предсказания (т.е. внутреннего, внутрикадрового предсказания). Разность между исходным блоком и блоком предсказания преобразовывается для генерирования преобразованного блока, и преобразованный блок квантуется с использованием параметра квантования и одной из множества предварительно определенных матриц квантования. Квантованный коэффициент квантованного блока сканируется по предварительно определенному типу сканирования и затем энтропийно кодируется. Параметр квантования регулируется на каждый макроблок и кодируется с использованием параметра квантования предыдущего элемента.
В AVC H.264/MPEG-4 оценка движения используется для устранения временной избыточности между последовательными изображениями. Чтобы обнаружить временную избыточность, один или более опорных изображений используются для оценки движения текущего блока, и компенсация движения выполняется для генерирования блока предсказания с использованием информации о движении. Информация о движении включает в себя один или более индексов опорного изображения и один или более векторов движения.
Согласно AVC H.264/MPEG-4 предсказываются и кодируются с использованием соседних векторов движения только векторы движения, а индексы опорного изображения кодируются без соседних индексов опорного изображения. Кроме того, вычислительная сложность для генерирования блока предсказания остается высокой, потому что блок предсказания интерполируется с использованием фильтра с большим количеством отводов.
Однако если для интер-предсказания используются различные размеры, то корреляция между информацией о движении текущего блока и информацией о движении одного или более соседних блоков увеличивается. Корреляция между вектором движения текущего блока и вектором движения соседнего блока внутри опорного изображения повышается, так как размер изображения становится больше, если движение изображения является почти постоянным или медленным. Соответственно, традиционный способ сжатия, описанный выше, снижает эффективность сжатия информации о движении, если размер изображения больше размера изображения высокой четкости, и для оценки движения и компенсации движения допустимы различные размеры.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
ТЕХНИЧЕСКАЯ ЗАДАЧА
Настоящее изобретение направлено на способ декодирования видеоданных посредством получения информации о движении посредством создания списка вариантов слияния с использованием пространственных вариантов слияния и временного варианта и генерирования блока предсказания с использованием фильтра, определенного вектором движения.
ТЕХНИЧЕСКОЕ РЕШЕНИЕ
В одном аспекте настоящего изобретения предложен способ декодирования видеоданных, содержащий этапы, на которых: получают индекс опорного изображения и вектор движения текущего элемента предсказания; генерируют блок предсказания текущего элемента предсказания с использованием индекса опорного изображения и вектора движения; генерируют квантованный блок посредством обратного сканирования составляющих квантованных коэффициентов; генерируют преобразованный блок посредством обратного квантования квантованного блока с использованием параметра квантования; генерируют остаточный блок посредством обратного преобразования преобразованного блока; и генерируют восстановленные пиксели с использованием блока предсказания и остаточного блока. Пиксели предсказания блока предсказания генерируют с использованием интерполирующего фильтра, выбранного на основе вектора движения.
ПОЛОЖИТЕЛЬНЫЕ ЭФФЕКТЫ
В способе согласно настоящему изобретению получают индекс опорного изображения и вектор движения текущего элемента предсказания, генерируют блок предсказания текущего элемента предсказания с использованием индекса опорного изображения и вектора движения, генерируют остаточный блок посредством обратного сканирования, обратного квантования и обратного преобразования, и генерируют восстановленные пиксели с использованием блока предсказания и остаточного блока. Пиксели предсказания блока предсказания генерируют с использованием интерполирующего фильтра, выбранного на основе вектора движения. Соответственно, эффективность кодирования информации о движении повышается за счет включения различных вариантов слияния. Кроме того, вычислительная сложность кодера и декодера уменьшается за счет выбора различного фильтра согласно местоположению пикселей предсказания, определенных вектором движения.
ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг. 1 является блок-схемой устройства кодирования изображений согласно настоящему изобретению.
Фиг. 2 является блок-схемой последовательности операций, изображающей способ кодирования видеоданных в режиме интер-предсказания согласно настоящему изобретению.
Фиг. 3 является концептуальной схемой, изображающей положения пикселей, указываемые вектором движения, согласно настоящему изобретению.
Фиг. 4 является блок-схемой последовательности операций, изображающей способ кодирования информации о движении в режиме слияния согласно настоящему изобретению.
Фиг. 5 является концептуальной схемой, изображающей положения пространственных блоков-вариантов слияния согласно настоящему изобретению.
Фиг. 6 является концептуальной схемой, изображающей положения пространственных блоков-вариантов слияния в режиме асимметричного разбиения согласно настоящему изобретению.
Фиг. 7 является еще одной концептуальной схемой, изображающей положения пространственных блоков-вариантов слияния в другом режиме асимметричного разбиения согласно настоящему изобретению.
Фиг. 8 является еще одной концептуальной схемой, изображающей положения пространственных блоков-вариантов слияния в другом режиме асимметричного разбиения согласно настоящему изобретению.
Фиг. 9 является еще одной концептуальной схемой, изображающей положения пространственных блоков-вариантов слияния в другом режиме асимметричного разбиения согласно настоящему изобретению.
Фиг. 10 является концептуальной схемой, изображающей положение временного блока-варианта слияния согласно настоящему изобретению.
Фиг. 11 является концептуальной схемой, изображающей способ хранения информации о движении согласно настоящему изобретению.
Фиг. 12 является блок-схемой устройства 200 декодирования изображений согласно настоящему изобретению.
Фиг. 13 является блок-схемой последовательности операций, изображающей способ декодирования изображения в режиме интер-предсказания согласно настоящему изобретению.
Фиг. 14 является блок-схемой последовательности операций, изображающей способ получения информации о движении в режиме слияния.
Фиг. 15 является блок-схемой последовательности операций способа, изображающей процедуру генерирования остаточного блока в режиме интер-предсказания согласно настоящему изобретению.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
В дальнейшем различные варианты осуществления настоящего изобретения будут описаны подробно со ссылкой на сопроводительные чертежи. Однако настоящее изобретение не ограничивается примерными вариантами осуществления, раскрытыми ниже, а может быть реализовано в различных видах. Поэтому, возможны многие различные модификации и изменения настоящего изобретения, и следует понимать, что в объеме раскрытой сущности, настоящее изобретение может быть осуществлено иначе чем, как это в частности описано.
Устройство кодирования изображений и устройство декодирования изображений согласно настоящему изобретению могут быть пользовательским терминалом, таким как персональный компьютер, личный мобильный терминал, мобильный мультимедийный проигрыватель, смартфон или терминал беспроводной связи. Устройство кодирования изображений и устройство декодирования изображений могут включать в себя модуль связи для осуществления связи с различными устройствами, запоминающее устройство для хранения различных программ и данных, используемых для кодирования или декодирования изображений.
Фиг. 1 является блок-схемой устройства 100 кодирования изображений согласно настоящему изобретению.
На Фиг. 1 устройство 100 кодирования изображений согласно настоящему изобретению включает в себя модуль 110 разделения изображения, модуль 120 интра-предсказания, модуль 130 интер-предсказания, модуль 140 преобразования, модуль 150 квантования, модуль 160 сканирования, модуль 170 энтропийного кодирования, модуль 180 обратного квантования/преобразования, модуль 190 постобработки и модуль 195 хранения изображений.
Модуль 110 разделения изображения разделяет изображение или фрагмент на множество самых больших элементов (LCU) кодирования и разделяет каждый LCU на один или более элементов кодирования. Размер LCU может составлять 32x32, 64x64 или 128x128. Модуль 110 разделения изображения определяет режим предсказания и режим разбиения каждого элемента кодирования.
LCU включает в себя один или более элементов кодирования. LCU имеет структуру рекурсивного квадродерева для задания структуры деления LCU. Параметры для задания максимального размера и минимального размера элемента кодирования включены в состав набора параметров последовательности. Структура деления задается посредством одного или более флагов (split_cu_flags) разъединения элемента кодирования. Размер элемента кодирования составляет 2N×2N. Если размер LCU составляет 64×64, и размер самого малого элемента (SCU) кодирования составляет 8×8, то размер элемента кодирования может быть 64×64, 32×32, 16×16 или 8x8.
Элемент кодирования включает в себя один или более элементов предсказания. При интра-предсказании размер элемента предсказания составляет 2N×2N или N×N. При интер-предсказании размер элемента предсказания задается режимом разбиения. Режим разбиения является одним из 2N×2N, 2N×N, N×2N и N×N, если элемент кодирования разбит симметрично. Режим разбиения является одним из 2N×nU, 2N×nD, nL×2N и nR×2N, если элемент кодирования разбивается асимметрично. Режимы разбиения допускаются на основе размера элемента кодирования для уменьшения сложности аппаратного обеспечения. Если элемент кодирования имеет минимальный размер, то асимметричное разбиение недопустимо. Кроме того, если элемент кодирования имеет минимальный размер, то режим разбиения N×N не может быть допустимым.
Элемент кодирования включает в себя один или более элементов преобразования. Элемент преобразования имеет структуру рекурсивного квадродерева для задания структуры деления элемента кодирования. Структура деления задается посредством одного или более флагов (split_tu_flags) разъединения элемента преобразования. Параметры для задания максимального размера и минимального размера элемента преобразования яркости включены в состав набора параметров последовательности.
Модуль 120 интра-предсказания определяет режим интра-предсказания текущего элемента предсказания и генерирует блок предсказания с использованием режима интра-предсказания.
Модуль 130 интер-предсказания определяет информацию о движении текущего элемента предсказания с использованием одного или более опорных изображений, сохраненных в модуле 195 хранения изображений, и генерирует блок предсказания элемента предсказания. Информация о движении включает в себя один или более индексов опорных изображений и один или более векторов движения.
Модуль 140 преобразования преобразует остаточный блок для генерирования преобразованного блока. Остаточный блок имеет один и тот же размер элемента преобразования. Если элемент предсказания больше элемента преобразования, то остаточные сигналы между текущим блоком и блоком предсказания разбиваются на множество остаточных блоков.
Модуль 150 квантования определяет параметр квантования для квантования преобразованного блока. Параметр квантования является размером шага квантования. Параметр квантования определяется на каждый элемент квантования. Размер элемента квантования может изменяться и быть одним из допустимых размеров элемента кодирования. Если размер элемента кодирования равен или больше минимального размера элемента квантования, то элемент кодирования становится элементом квантования. Множество элементов кодирования могут быть включены в состав элемента квантования минимального размера. Минимальный размер элемента квантования определяется на каждое изображение, и параметр для задания минимального размера элемента квантования включается в состав набора параметров изображения.
Модуль 150 квантования генерирует предиктор параметра квантования и генерирует разностный параметр квантования посредством вычитания предиктора параметра квантования из параметра квантования. Разностный параметр квантования энтропийно кодируется.
Предиктор параметра квантования генерируется посредством использования параметров квантования соседних элементов кодирования и параметра квантования предыдущего элемента кодирования следующим образом.
Параметр квантования левого элемента, параметр квантования верхнего элемента и параметр квантования предыдущего элемента последовательно получаются в таком порядке. Среднее значение первых двух доступных параметров квантования, полученных в том порядке, устанавливается в качестве предиктора параметра квантования, когда доступны два или более параметров квантования, а когда доступен только один параметр квантования, доступный параметр квантования устанавливается в качестве предиктора параметра квантования. То есть, если доступны параметры квантования левого элемента и верхнего элемента, то среднее значение параметров квантования левого элемента и верхнего элемента устанавливается в качестве предиктора параметра квантования. Если доступен только один из параметров квантования левого элемента и верхнего элемента, то среднее значение доступного параметра квантования и параметров квантования предыдущих элементов устанавливается в качестве предиктора параметра квантования. Если недоступны оба из параметров квантования левого элемента и верхнего элемента, то параметр квантования предыдущего элемента устанавливается в качестве предиктора параметра квантования. Среднее значение округляется.
Разностный параметр квантования преобразовывается в двоичные элементы для абсолютного значения разностного параметра квантования и двоичный элемент для указания знака разностного параметра квантования посредством процесса преобразования в двоичную форму, и двоичные элементы арифметически кодируются. Если абсолютное значение разностного параметра квантования составляет 0, то двоичный элемент для указания знака может быть опущен. Усеченное унарное значение используется для преобразования в двоичную форму абсолютного значения.
Модуль 150 квантования квантует преобразованный блок с использованием матрицы квантования и параметра квантования для генерирования квантованного блока. Квантованный блок предоставляется в модуль 180 обратного квантования/преобразования и модуль 160 сканирования.
Модуль 160 сканирования определяет и применяет шаблон сканирования к квантованному блоку.
При интер-предсказании диагональное сканирование используется в качестве шаблона сканирования, если CABAC используется для энтропийного кодирования. Квантованные коэффициенты квантованного блока разъединяются на составляющие коэффициентов. Составляющие коэффициентов являются флагами значимости, знаками коэффициентов и уровнями коэффициентов. Диагональное сканирование применяется к каждой из составляющих коэффициентов. Коэффициент значимости указывает, является ли соответствующий квантованный коэффициент нулевым или нет. Знак коэффициента указывает знак ненулевого квантованного коэффициента, а уровень коэффициента указывает абсолютное значение ненулевого квантованного коэффициента.
Когда размер элемента преобразования больше предварительно определенного размера, то квантованный блок разделяется на множество поднаборов, и к каждому поднабору применяется диагональное сканирование. Флаги значимости, знаки коэффициентов и уровни коэффициентов каждого поднабора сканируются соответственно согласно диагональному сканированию. Предварительно определенный размер составляет 4×4. Поднабор представляет собой блок 4×4, содержащий 16 коэффициентов преобразования.
Шаблон сканирования для сканирования поднаборов является тем же самым, что и шаблон сканирования для сканирования составляющих коэффициентов. Флаги значимости, знаки коэффициентов и уровни коэффициентов каждого поднабора сканируются в обратном направлении. Поднаборы также сканируются в обратном направлении.
Параметр, указывающий положение последнего ненулевого коэффициента, кодируется и передается на сторону декодирования. Параметр, указывающий положение последнего ненулевого коэффициента, задает положение последнего ненулевого квантованного коэффициента внутри квантованного блока. Ненулевой флаг поднабора задается для каждого поднабора кроме первого поднабора и последнего поднабора и передается на сторону декодирования. Первый поднабор охватывает коэффициент DC. Последний поднабор охватывает последний ненулевой коэффициент. Ненулевой флаг поднабора указывает, содержит или нет поднабор ненулевые коэффициенты.
Модуль 170 энтропийного кодирования энтропийно кодирует сканированную составляющую посредством модуля 160 сканирования, информацию об интра-предсказании, принятую от модуля 120 интра-предсказания, информацию о движении, принятую от модуля 130 интер-предсказания, и так далее.
Модуль 180 обратного квантования/преобразования обратно квантует квантованные коэффициенты квантованного блока, и обратно преобразует обратно квантованный блок, чтобы сгенерировать остаточные сигналы.
Модуль 190 постобработки выполняет процесс деблокирующей фильтрации для удаления артефакта блочности, сгенерированного в восстановленном изображении.
Модуль 195 хранения изображений принимает подвергнутое постобработке изображение от модуля 190 постобработки, и сохраняет изображение в элементах изображения. Изображение может быть кадром или полем.
Фиг. 2 является блок-схемой последовательности операций, изображающей способ кодирования видеоданных в режиме интер-предсказания согласно настоящему изобретению.
Определяется информация о движении текущего блока (S110). Текущий блок является элементом предсказания. Размер текущего блока определяется размером и режимом разбиения элемента кодирования.
Информация о движении изменяется согласно типу предсказания. Если тип предсказания является однонаправленным предсказанием, то информация о движении включает в себя опорный индекс, указывающий изображение опорного списка 0, и вектор движения. Если тип предсказания является двунаправленным предсказанием, то информация о движении включает в себя два опорных индекса, задающих изображение опорного списка 0 и изображение опорного списка 1, и вектор движения списка 0 и вектор движения списка 1.
Блок предсказания текущего блока генерируется с использованием информации о движении (S120).
Если вектор движения указывает местоположение целочисленного пикселя, то блок предсказания генерируется посредством копирования блока опорного изображения, заданного вектором движения. Если вектор движения указывает местоположение субпикселя, то блок предсказания генерируется посредством интерполяции пикселей опорного изображения. Вектор движения задается в элементах четверти пикселя.
Фиг. 3 является концептуальной схемой, изображающей положения пикселей, указываемые вектором движения, согласно настоящему изобретению.
L0
L0
На Фиг. 3 пиксели с метками L0, R0, R1, L1, A0 и B0 являются пикселями с целочисленными положениями опорного изображения, а пиксели с метками a-r в местоположениях субпикселей являются дробными пикселями, которые следует интерполировать с использованием интерполирующего фильтра, который выбирается на основе вектора движения.
L0
L0
L0
L0
L0
L0
L0
L0
L0
L0
L0
L0
L0
L0
L0
L0
L0
L0
L0
L0
L0
L0
L0
L0
L0
L0
L0
L0
L0
L0
Если пиксель, который следует интерполировать, расположен в местоположении a, b или c субпикселя, то пиксель с меткой a, b или c генерируется посредством применения интерполирующего фильтра к пикселям с горизонтально самым близким целочисленным положением. Если пиксель, который следует интерполировать, расположен в местоположении d, h или n субпикселя, то пиксель с меткой d, h или n генерируется посредством применения интерполирующего фильтра к пикселям с вертикально самым близким целочисленным положением. Если пиксель, который следует интерполировать, расположен в местоположении e, i или p субпикселя, то пиксель с меткой e, i или p генерируется посредством применения интерполирующего фильтра к вертикально самым близким интерполированным пикселям, каждый из которых включает в себя символ «a» внутри своей метки. Если пиксель, который следует интерполировать, расположен в местоположении g, k или r субпикселя, то пиксель с меткой g, k или r генерируется посредством применения интерполирующего фильтра к вертикально самым близким интерполированным пикселям, каждый из которых включает в себя символ «c» внутри своей метки. Если пиксель, который следует интерполировать, расположен в местоположении f, j или q субпикселя, то пиксель с меткой f, j или q генерируется посредством применения интерполирующего фильтра к вертикально соседним интерполированным пикселям, каждый из которых включает в себя символ «c» внутри своей метки.
Интерполирующий фильтр определяется на основе местоположения субпикселя пикселя, который следует интерполировать, или на основе режима предсказания и местоположения субпикселя пикселя, который следует интерполировать.
L0
L0
L0
L0
L0
L0
L0
L0
L0
L0
В Таблице 1 показаны примерные фильтры. Местоположение H субпикселя указывает местоположение полпикселя в направлении интерполяции. Например, местоположения b, h, i, j и k соответствуют местоположению H субпикселя. Местоположения FL и FR субпикселей указывают местоположение четвертьпикселя в направлении интерполяции. Например, местоположения a, d, e, f и g соответствуют местоположению FL субпикселя, а местоположения cL0, nL0, pL0, qL0 и rL0 соответствуют местоположению FR субпикселя.
<b>Таблица 1</b>
Режим предсказания
Местоположение Субпикселя
Коэффициенты фильтра
Однонаправленное предсказание
H
{2, -8, 36, 36, -8, 2}
FL
{-3, 51, 20, -7, 2}
FR
{2, -7, 20, 51, -3}
Двунаправленное предсказание
H
{-1, 4, -11, 40, 40, -11, 4, -1}
FL
{-1, 4, -10, 57, 19, -7, 3, -1}
FR
{-1, 3, -7, 19, 57, -10, 4, -1}
Как показано в Таблице 1, при однонаправленном предсказании, симметричный фильтр с 6 отводами может использоваться для интерполяции пикселей местоположения H полпикселя, и асимметричный фильтр с 5 отводами может использоваться для интерполяции пикселей местоположения FL или FR четверти пикселя. При двунаправленном предсказании симметричный фильтр с 8 отводами может использоваться для местоположения H полупикселя, и асимметричный фильтр с 8 отводами может использоваться для местоположения FL и FR четверти пикселя.
Альтернативно, фильтр может быть определен посредством только местоположения субпикселя пикселя, который следует интерполировать. При однонаправленном предсказании симметричный фильтр с 8 отводами может использоваться для интерполяции пикселей местоположений полупикселей, и асимметричный фильтр с 7 отводами или асимметричный фильтр с 6 отводами могут использоваться для интерполяции пикселей местоположений четверти пикселей. При двунаправленном предсказании один и тот же фильтр или другой фильтр, имеющий меньшее количество отводов, могут использоваться для интерполяции пикселей местоположений субпикселей.
Остаточный блок генерируется с использованием текущего блока и блока предсказания (S130). Остаточный блок имеет тот же самый размер элемента преобразования. Если элемент предсказания больше элемента преобразования, то остаточные сигналы между текущим блоком и блоком предсказания находятся во множестве остаточных блоков.
Кодируется остаточный блок (S140). Остаточный блок кодируется посредством модуля 140 преобразования, модуля 150 квантования, модуля 160 сканирования и модуля 170 энтропийного кодирования с Фиг. 1.
Кодируется информация о движении (S150). Информация о движении может кодироваться с прогнозированием с использованием пространственных вариантов и временного варианта текущего блока. Информация о движении кодируется в режиме пропуска, режиме слияния или режиме AMVP. В режиме пропуска элемент предсказания имеет размер элемента кодирования, и информация о движении кодируется с использованием того же самого способа, что и способ режима слияния. В режиме слияния информация о движении текущего элемента предсказания равна информации о движении одного варианта. В режиме AMVP вектор движения информации о движении кодируется с прогнозированием с использованием одного или более вариантов вектора движения.
Фиг. 4 является блок-схемой последовательности операций, изображающей способ кодирования информации о движении в режиме слияния согласно настоящему изобретению.
Получаются пространственные варианты слияния (S210). Фиг. 5 является концептуальной схемой, изображающей положения пространственных блоков-вариантов слияния согласно настоящему изобретению.
Как показано на Фиг. 5, блок-вариант слияния является блоком слева (блок A), блоком сверху (блок B), блоком справа сверху (блок C), блоком слева снизу (блок D) или блоком слева сверху (блок E) текущего блока. Данные блоки являются блоками предсказания. Блок слева сверху (блок E) устанавливается в качестве блока-варианта слияния, когда один или более из блоков A, B, C и D недоступны. Информация о движении доступного блока-варианта N слияния устанавливается в качестве пространственного варианта N слияния. N представляет собой A, B, C, D или E.
Пространственный вариант слияния может быть установлен в качестве недоступного согласно форме текущего блока и положению текущего блока. Например, если элемент кодирования разъединен на два элемента предсказания (блок P0 и блок P1) с использованием асимметричного разбиения, то вероятно, что информация о движении блока P0 не равна информации о движении блока P1. Поэтому, если текущий блок является асимметричным блоком P1, то блок P0 устанавливается в качестве недоступного блока-варианта, как показано на Фиг. 6-9.
Фиг. 6 является концептуальной схемой, изображающей положения пространственных блоков-вариантов слияния в режиме асимметричного разбиения согласно настоящему изобретению.
Как показано на Фиг. 6, элемент кодирования разбивается на два асимметричных блока P0 и P1 предсказания, и режим разбиения является режимом nL×2N. Размер блока P0 составляет hN×2N, а размер блока P1 составляет (2-h)N×2N. Значение h составляет 1/2. Текущий блок является блоком P1. Блоки A, B, C, D и E являются пространственными блоками-вариантами слияния. Блок P0 является пространственным блоком-вариантом A слияния.
В настоящем изобретении пространственный вариант А слияния устанавливается в качестве недоступного, чтобы не находиться в списке вариантов слияния. Кроме того, пространственный блок-вариант B, C, D или E слияния, имеющий ту же самую информацию о движении пространственного блока-варианта A слияния, устанавливается в качестве недоступного.
Фиг. 7 является еще одной концептуальной схемой, изображающей положения пространственных блоков-вариантов слияния в режиме асимметричного разбиения согласно настоящему изобретению.
Как показано на Фиг. 7, элемент кодирования разбивается на два асимметричных блока P0 и P1 предсказания, и режим разбиения является режимом nR×2N. Размер блока P0 составляет (2-h)N×2N, а размер блока P1 составляет hN×2N. Значение h составляет 1/2. Текущий блок является блоком P1. Блоки A, B, С, D и E являются пространственными блоками-вариантами слияния. Блок P0 является пространственным блоком-вариантом A слияния.
В настоящем изобретении пространственный вариант А слияния устанавливается в качестве недоступного, чтобы не находиться в списке вариантов слияния. Кроме того, пространственный блок-вариант B, С, D или E слияния, имеющий ту же самую информацию о движении пространственного блока-варианта A слияния, устанавливается в качестве недоступного.
Фиг. 8 является еще одной концептуальной схемой, изображающей положения пространственных блоков-вариантов слияния в другом режиме асимметричного разбиения согласно настоящему изобретению.
Как показано на Фиг. 8, элемент кодирования разбивается на два асимметричных блока P0 и P1 предсказания, и режим разбиения является режимом 2N×nU. Размер блока P0 составляет 2N×hN, а размер блока P1 составляет 2N×(2-h)N. Значение h составляет 1/2. Текущий блок является блоком P1. Блоки A, B, С, D и E являются пространственными блоками-вариантами слияния. Блок P0 является пространственным блоком-вариантом B слияния.
В настоящем изобретении пространственный вариант B слияния устанавливается в качестве недоступного, чтобы не находиться в списке вариантов слияния. Кроме того, пространственный блок-вариант C, D или E слияния, имеющий ту же самую информацию о движении пространственного блока-варианта B слияния, устанавливается в качестве недоступного.
Фиг. 9 является еще одной концептуальной схемой, изображающей положения пространственных блоков-вариантов слияния в другом режиме асимметричного разбиения согласно настоящему изобретению.
Как показано на Фиг. 9, элемент кодирования разбивается на два асимметричных блока P0 и P1 предсказания, и режим разбиения является режимом 2N×nD. Размер блока P0 составляет 2N×(2-h)N, а размер блока P1 составляет 2N×hN. Значение h составляет 1/2. Текущий блок является блоком P1. Блоки A, B, C, D и E являются пространственными блоками-вариантами слияния. Блок P0 является пространственным блоком-вариантом B слияния.
В настоящем изобретении пространственный вариант B слияния устанавливается в качестве недоступного, чтобы не находиться в списке вариантов слияния. Кроме того, пространственный блок-вариант C, D или E слияния, имеющий одну и ту же информацию о движении пространственного блока-варианта B слияния, устанавливается в качестве недоступного.
Пространственный вариант слияния может также быть установлен в качестве недоступного на основе области слияния. Если текущий блок и пространственный блок-вариант слияния принадлежат одной и тот же области слияния, то пространственный блок-вариант слияния устанавливается в качестве недоступного. Область слияния является областью элемента, в которой выполняется оценка движения, и информация, задающая область слияния, включается в состав битового потока.
Получается временный вариант слияния (S220). Временный вариант слияния включает в себя индекс опорного изображения и вектор движения временного варианта слияния.
Индекс опорного изображения временного варианта слияния может быть получен с использованием одного или более индексов опорного изображения соседнего блока. Например, один из индексов опорных изображений соседнего слева блока, соседнего сверху блока и соседнего углового блока устанавливается в качестве индекса опорного изображения временного варианта слияния. Соседний угловой блок является одним из соседнего сверху блока, соседнего слева снизу блока и соседнего слева сверху блока. Альтернативно, индекс опорного изображения временного варианта слияния может быть установлен нулевым для уменьшения сложности.
Вектор движения временного варианта слияния может быть получен следующим образом.
Сначала определяется изображение временного варианта слияния. Изображение временного варианта слияния включает в себя временный блок-вариант слияния. Внутри фрагмента используется одно изображение временного варианта слияния. Индекс опорного изображения у изображения временного варианта слияния может быть установлен нулевым.
Если текущий фрагмент является фрагментом P, то один из опорных изображений из списка 0 опорных изображений устанавливается в качестве изображения временного варианта слияния. Если текущий фрагмент является фрагментом B, то один из опорных изображений из списков 0 и 1 опорных изображений устанавливается в качестве изображения временного варианта слияния. Указатель списка, задающий, принадлежит ли изображение временного варианта слияния спискам 0 или 1 опорных изображений, включается в состав заголовка фрагмента, если текущий фрагмент является фрагментом B. Индекс опорного изображения, задающий изображение временного варианта слияния, может быть включен в состав заголовка фрагмента.
Далее, определяется временный блок-вариант слияния. Фиг. 10 является концептуальной схемой, изображающей положение временного блока-варианта слияния согласно настоящему изобретению. Как показано на Фиг. 10, первый блок-вариант может быть угловым справа снизу блоком (блок H) блока C. Блок C имеет тот же самый размер и то же самое местоположение текущего блока и располагается внутри изображения временного варианта слияния. Второй блок-вариант является блоком, охватывающим верхний левый пиксель центра блока C.
Временный блок-вариант слияния может быть первым блоком-вариантом или вторым блоком-вариантом. Если первый блок-вариант доступен, то первый блок-вариант устанавливается в качестве временного блока-варианта слияния. Если первый блок-вариант недоступен, второй блок-вариант устанавливается в качестве временного блока-варианта слияния. Если второй блок-вариант недоступен, то временный блок-вариант слияния устанавливается в качестве недоступного.
Временный блок-вариант слияния определяется на основе положения текущего блока. Например, если текущий блок является смежным с более низким LCU (то есть, если первый блок-вариант принадлежит более низкому LCU), то первый блок-вариант может быть изменен в блок внутри текущего LCU или устанавливается в качестве недоступного.
Кроме того, первый и второй блоки-варианты могут быть изменены в другой блок на основе каждого положения блока-варианта внутри элемента хранения вектора движения. Элемент хранения вектора движения является основным элементом, хранящим информацию о движении опорных изображений.
Фиг. 11 является концептуальной схемой, изображающей способ сохранения информации о движении согласно настоящему изобретению. Как показано на Фиг. 11, элемент хранения движения может быть блоком 16×16. Элемент хранения вектора движения может быть разделен на шестнадцать блоков 4×4. Если элемент хранения вектора движения является блоком 16×16, то информация о движении хранится на элемент хранения вектора движения. Если элемент хранения вектора движения включает в себя множество элементов предсказания опорного изображения, то информация о движении предварительно определенного элемента предсказания из множества элементов предсказания сохраняется в запоминающем устройстве для уменьшения объема информации о движении, которую следует хранить в запоминающем устройстве. Предварительно определенный элемент предсказания может быть блоком, охватывающим один из шестнадцати блоков 4×4. Предварительно определенный элемент предсказания может быть блоком, охватывающим блок C3, блок BR. Либо предварительно определенный элемент предсказания может быть блоком, охватывающим блок UL.
Поэтому, если блок-вариант не включает в себя предварительно определенный блок, то блок-вариант изменяется в блок, включающий в себя предварительно определенный блок.
Если временный блок-вариант слияния определен, то вектор движения временного блока-варианта слияния устанавливается в качестве вектора движения временного варианта слияния.
Создается список вариантов слияния (S230). Доступные пространственные варианты и доступный временный вариант находятся в списке в предварительно определенном порядке. Пространственные варианты слияния находятся в списке вплоть до четырех в порядке A, B, C, D и E. Временный вариант слияния может находиться в списке между B и C или после пространственных вариантов.
Определяется, генерируются или нет один или более вариантов слияния (S240). Определение выполняется посредством сравнения количества вариантов слияния, находящихся в списке вариантов слияния, с предварительно определенным количеством вариантов слияния. Предварительно определенное количество может быть определено на каждое изображение или фрагмент.
Если количество вариантов слияния, находящихся в списке вариантов слияния, меньше предварительно определенного количества вариантов слияния, то генерируется один или более вариантов слияния (S250). Сгенерированный вариант слияния находится в списке после последнего доступного варианта слияния.
Если количество доступных вариантов слияния равно или больше 2, то один из двух доступных вариантов слияния имеет информацию о движении списка 0, а другой имеет информацию о движении списка 1, вариант слияния может быть сгенерирован посредством объединения информации о движении списка 0 и информации о движении списка 1. Могут быть сгенерированы множество вариантов слияния, если существует множество объединений.
В список могут быть добавлены один или более нулевых вариантов слияния. Если тип фрагмента представляет собой P, то нулевой вариант слияния имеет только информацию о движении списка 0. Если тип фрагмента представляет собой B, то нулевой вариант слияния имеет информацию о движении списка 0 и информацию о движении списка 1.
Предиктор слияния выбирается среди вариантов слияния из списка слияния; индекс слияния, задающий предиктора слияния, кодируется (S260).
Фиг. 12 является блок-схемой устройства 200 декодирования изображений согласно настоящему изобретению.
Устройство 200 декодирования изображений согласно настоящему изобретению включает в себя модуль 210 энтропийного декодирования, модуль 220 обратного сканирования, модуль 230 обратного квантования, модуль 240 обратного преобразования, модуль 250 интра-предсказания, модуль 260 интер-предсказания, модуль 270 постобработки, модуль 280 хранения изображений и сумматор 290.
Модуль 210 энтропийного декодирования получает информацию об интра-предсказании, информацию об интер-предсказании и составляющие квантованных коэффициентов из принятого битового потока с использованием способа контекстно-адаптивного двоичного арифметического декодирования.
Модуль 220 обратного сканирования применяет шаблон обратного сканирования к составляющим квантованных коэффициентов для генерирования квантованного блока. При интер-предсказании шаблон обратного сканирования является диагональным сканированием. Составляющие квантованных коэффициентов включают в себя флаги значимости, знаки коэффициентов и уровни коэффициентов.
Когда размер элемента преобразования больше предварительно определенного размера, то флаги значимости, знаки коэффициентов и уровни коэффициентов обратно сканируются в элементе поднабора с использованием диагонального сканирования для генерирования поднаборов, и поднаборы обратно сканируются с использованием диагонального сканирования для генерирования квантованного блока. Предварительно определенный размер равен размеру поднабора. Поднабор является блоком 4×4, включающим в себя 16 коэффициентов преобразования. Флаги значимости, знаки коэффициентов и уровни коэффициентов обратно сканируются в обратном направлении. Поднаборы также обратно сканируются в обратном направлении.
Параметр, указывающий положение последнего ненулевого коэффициента, и ненулевые флаги поднабора извлекаются из битового потока. Количество кодированных поднаборов определяется на основе параметра, указывающего положение последнего ненулевого коэффициента. Ненулевой флаг поднабора используется для определения, имеет ли соответствующий поднабор по меньшей мере один ненулевой коэффициент. Если ненулевой флаг поднабора равен 1, то поднабор генерируется с использованием диагонального сканирования. Первый поднабор и последний поднабор генерируются с использованием шаблона обратного сканирования.
Модуль 230 обратного квантования принимает разностный параметр квантования от модуля 210 энтропийного декодирования и генерирует предиктор параметра квантования для генерирования параметра квантования элемента кодирования. Действие генерирования предиктора параметра квантования является тем же самым, что и действие модуля 150 квантования с Фиг. 1. Затем параметр квантования текущего элемента кодирования генерируется посредством суммирования разностного параметра квантования с предиктором параметра квантования. Если разностный параметр квантования для текущего элемента кодирования не передается со стороны кодирования, то разностный параметр квантования устанавливается нулевым.
Модуль 230 обратного квантования обратно квантует квантованный блок.
Модуль 240 обратного преобразования обратно преобразует обратно квантованный блок для генерирования остаточного блока. Матрица обратного преобразования адаптивно определяется согласно режиму предсказания и размеру элемента преобразования. Матрица обратного преобразования является матрицей основанного на DCT целочисленного преобразования или матрицей основанного на DST целочисленного преобразования. При интер-предсказании используются основанные на DCT целочисленные преобразования.
Модуль 250 интра-предсказания получает режим интра-предсказания текущего элемента предсказания с использованием принятой информации об интра-предсказании и генерирует блок предсказания согласно полученному режиму интра-предсказания.
Модуль 260 интер-предсказания получает информацию о движении текущего элемента предсказания с использованием принятой информации об интер-предсказании и генерирует блок предсказания с использованием информации о движении.
Модуль 270 постобработки функционирует точно также, что и модуль 180 постобработки с Фиг. 1.
Модуль 280 хранения изображений принимает подвергнутое постобработке изображение от модуля 270 постобработки и сохраняет изображение в элементах изображения. Изображение может быть кадром или полем.
Сумматор 290 суммирует восстановленный остаточный блок с блоком предсказания для генерирования восстановленного блока.
Фиг. 13 является блок-схемой последовательности операций, изображающей способ декодирования изображения в режиме интер-предсказания согласно настоящему изобретению.
Получается информация о движении текущего блока (S310). Текущий блок является элементом предсказания. Размер текущего блока определяется размером элемента кодирования и режимом разбиения.
Информация о движении изменяется согласно типу предсказания. Если тип предсказания является однонаправленным предсказанием, то информация о движении включает в себя опорный индекс, задающий изображение опорного списка 0, и вектор движения. Если тип предсказания является двунаправленным предсказанием, то информация о движении включает в себя опорный индекс, задающий изображение опорного списка 0, опорный индекс, задающий изображение опорного списка 1, и вектор движения списка 0 и вектор движения списка 1.
Информация о движении адаптивно декодируется согласно режиму кодирования информации о движении. Режим кодирования информации о движении определяется флагом пропуска и флагом слияния. Если флаг пропуска равен 1, то флаг слияния не существует, и режим кодирования является режимом пропуска. Если флаг пропуска равен 0, и флаг слияния равен 1, то режим кодирования является режимом слияния. Если флаг пропуска и флаг слияния равны 0, то режим кодирования является режимом AMVP.
Блок предсказания текущего блока генерируется с использованием информации о движении (S320).
Если вектор движения указывает местоположение целочисленного пикселя, то блок предсказания генерируется посредством копирования блока опорного изображения, заданного вектором движения. Если вектор движения указывает местоположение субпикселя, то блок предсказания генерируется посредством интерполяции пикселей опорного изображения. Вектор движения задается в элементах четверти пикселя.
L0
L0
Как показано на Фиг. 3, пиксели с метками L0, R0, R1, L1, A0 и B0 являются пикселями с целочисленными положениями опорного изображения, а пиксели с метками a-r в местоположениях субпикселей являются дробными пикселями, которые следует интерполировать с использованием интерполирующего фильтра, который выбирается на основе вектора движения.
L0
L0
L0
L0
L0
L0
L0
L0
L0
L0
L0
L0
L0
L0
L0
L0
L0
L0
L0
L0
L0
L0
L0
L0
L0
L0
L0
L0
L0
L0
Если пиксель, который следует интерполировать, расположен в местоположении a, b или c субпикселя, то пиксель с меткой a, b или c генерируется посредством применения интерполирующего фильтра к пикселям с горизонтально самым близким целочисленным положением. Если пиксель, который следует интерполировать, расположен в местоположении d, h или n субпикселя, то пиксель с меткой d, h или n генерируется посредством применения интерполирующего фильтра к пикселям с вертикально самым близким целочисленным положением. Если пиксель, который следует интерполировать, расположен в местоположении e, i или p субпикселя, то пиксель с меткой e, i или p генерируется посредством применения интерполирующего фильтра к вертикально самым близким интерполированным пикселям, каждый из которых включает в себя символ «a» внутри своей метки. Если пиксель, который следует интерполировать, расположен в местоположении g, k или r субпикселя, то пиксель с меткой g, k или r генерируется посредством применения интерполирующего фильтра к вертикально самым близким интерполированным пикселям, каждый из которых включает в себя символ «c» внутри своей метки. Если пиксель, который следует интерполировать, расположен в местоположении f, j или q субпикселя, то пиксель с меткой f, j или q генерируется посредством применения интерполирующего фильтра к вертикально соседним интерполированным пикселям, каждый из которых включает в себя символ «c» внутри своей метки.
Интерполирующий фильтр определяется на основе местоположения субпикселя пикселя, который следует интерполировать, или на основе режима предсказания и местоположения субпикселя пикселя, который следует интерполировать.
Как показано в Таблице 1, при однонаправленном предсказании, симметричный фильтр с 6 отводами может использоваться для интерполяции пикселей местоположения H полупикселя, и асимметричный фильтр с 5 отводами может использоваться для интерполяции пикселей местоположения FL или FR четверти пикселя. При двунаправленном предсказании симметричный фильтр с 8 отводами может использоваться для местоположения H полупикселя, и асимметричный фильтр с 8 отводами может использоваться для местоположения FL и FR четверти пикселя.
Альтернативно, фильтр может быть определен посредством только местоположения субпикселя пикселя, который следует интерполировать. При однонаправленном предсказании симметричный фильтр с 8 отводами может использоваться для интерполяции пикселей местоположений полупикселей, и асимметричный фильтр с 7 отводами или асимметричный фильтр с 6 отводами могут использоваться для интерполяции пикселей местоположений четверти пикселей. При двунаправленном предсказании один и тот же фильтр или другой фильтр, имеющий меньшее количество отводов, могут использоваться для интерполяции пикселей местоположений субпикселей.
Генерируется остаточный блок (S330). Остаточный блок генерируется модулем 210 энтропийного декодирования, модулем 220 обратного сканирования, модулем 230 обратного квантования и модулем 240 обратного преобразования с Фиг. 12.
Восстановленный блок генерируется с использованием блока предсказания и остаточного блока (S340).
Блок предсказания имеет тот же самый размер элемента предсказания, а остаточный блока имеет тот же самый размер элемента преобразования. Поэтому, остаточные сигналы и сигналы предсказания одного и тот же размера суммируются для генерирования восстановленных сигналов.
Фиг. 14 является блок-схемой последовательности операций, изображающей способ получения информации о движении в режиме слияния.
Индекс слияния извлекается из битового потока (S410). Если индекс слияния не существует, то количество вариантов слияния устанавливается равным одному.
Получаются пространственные варианты слияния (S420). Доступные пространственные варианты слияния являются теми же самыми, что описаны в S210 Фиг. 4.
Получается временный вариант слияния (S430). Временный вариант слияния включает в себя индекс опорного изображения и вектор движения временного варианта слияния. Опорный индекс и вектор движения временного варианта слияния являются теми же самыми, что описаны в S220 Фиг. 4.
Создается список вариантов слияния (S440). Список слияния является тем же самым, что описан в S230 Фиг. 4.
Определяется, генерируется или нет один или более вариантов слияния (S450). Определение выполняется посредством сравнения количества вариантов слияния, находящихся в списке вариантов слияния, с предварительно определенным количеством вариантов слияния. Предварительно определенное количество определяется на каждое изображение или фрагмент.
Если количество вариантов слияния, находящихся в списке вариантов слияния, меньше предварительно определенного количества вариантов слияния, то генерируется один или более вариантов слияния (S460). Сгенерированный вариант слияния помещается в список после последнего доступного варианта слияния. Вариант слияния генерируется по тому же самому способу, описанному в S250 Фиг. 4.
Вариант слияния, заданный индексом слияния, устанавливается в качестве информации о движении текущего блока (S470).
Фиг. 15 является блок-схемой последовательности операций, изображающей процедуру генерирования остаточного блока в режиме интер-предсказания согласно настоящему изобретению.
Составляющие квантованных коэффициентов генерируются модулем энтропийного декодирования (S510).
Квантованный блок генерируется посредством обратного сканирования составляющих квантованных коэффициентов согласно диагональному сканированию (S520). Составляющие квантованных коэффициентов включают в себя флаги значимости, знаки коэффициентов и уровни коэффициентов.
Когда размер элемента преобразования больше предварительно определенного размера, то флаги значимости, знаки коэффициентов и уровни коэффициентов обратно сканируются в элементе поднабора с использованием диагонального сканирования для генерирования поднаборов, и данные поднаборы обратно сканируются с использованием диагонального сканирования для генерирования квантованного блока. Предварительно определенный размер равен размеру поднабора. Поднабор является блоком 4×4, включающим в себя 16 коэффициентов преобразования. Флаги значимости, знаки коэффициентов и уровни коэффициентов обратно сканируются в обратном направлении. Поднаборы также обратно сканируются в обратном направлении.
Параметр, указывающий положение последнего ненулевого коэффициента, и ненулевые флаги поднабора извлекаются из битового потока. Количество кодированных поднаборов определяется на основе параметра, указывающего положение последнего ненулевого коэффициента. Ненулевые флаги поднабора используются для определения, имеет ли поднабор по меньшей мере один ненулевой коэффициент. Если ненулевой флаг поднабора равен 1, то поднабор генерируется с использованием диагонального сканирования. Первый поднабор и последний поднабор генерируются с использованием шаблона обратного сканирования.
Квантованный блок обратно квантуется с использованием матрицы обратного квантования и параметра квантования (S530).
Определяется минимальный размер элемента квантования. Параметр cu_qp_delta_enabled_info, задающий минимальный размер, извлекается из битового потока, и минимальный размер элемента квантования определяется следующим уравнением.
Log2(MinQUSize)=Log2(MaxCUSize)-cu_qp_delta_enabled_info
MinQUSize указывает минимальный размер элемента квантования, MaxCUSize указывает размер LCU. Параметр cu_qp_delta_enabled_info извлекается из набора параметров изображения.
Получается разностный параметр квантования текущего элемента кодирования. Разностный параметр квантования содержится на каждый элемент квантования. Поэтому, если размер текущего элемента кодирования равен или больше минимального размера элемента квантования, то восстанавливается разностный параметр квантования для текущего элемента кодирования. Если разностный параметр квантования не существует, то разностный параметр квантования устанавливается нулевым. Если множество элементов кодирования принадлежат элементу квантования, то первый элемент кодирования, содержащий по меньшей мере один ненулевой коэффициент в порядке декодирования, содержит разностный элемент квантования.
Кодированный разностный параметр квантования арифметически декодируется для генерирования строки двоичных элементов, указывающей абсолютное значение разностного параметра квантования, и двоичного элемента, указывающего знак разностного параметра квантования. Строка двоичных элементов может быть усеченным унарным кодом. Если абсолютное значение разностного параметра квантования является нулевым, то двоичный элемент, указывающий знак, не существует. Разностный параметр квантования получается с использованием строки двоичных элементов, указывающей абсолютное значение, и двоичного элемента, указывающего знак.
Получается предиктор параметра квантования текущего элемента кодирования. Предиктор параметра квантования генерируется посредством использования параметров квантования соседних элементов кодирования и параметра квантования предыдущего элемента кодирования следующим образом.
Параметр квантования левого элемента, параметр квантования верхнего элемента и параметр квантования предыдущего элемента последовательно получаются в данном порядке. Среднее значение первых двух доступных параметров квантования, полученных в том порядке, устанавливается в качестве предиктора параметра квантования, когда доступны два или более параметров квантования, а когда доступен только один параметр квантования, то доступный параметр квантования устанавливается в качестве предиктора параметра квантования. То есть, если параметры квантования левого элемента и верхнего элемента доступны, то среднее значение параметров квантования левого элемента и верхнего элемента устанавливается в качестве предиктора параметра квантования. Если доступен только один из параметров квантования левого элемента и верхнего элемента, то среднее значение доступного параметра квантования и параметра квантования предыдущего элемента устанавливается в качестве предиктора параметра квантования. Если оба из параметров квантования левого элемента и верхнего элемента недоступны, то параметр квантования предыдущего элемента устанавливается в качестве предиктора параметра квантования.
Если множество элементов кодирования принадлежат элементу квантования минимального размера, то предиктор параметра квантования для первого элемента кодирования в порядке декодировании получается и используется для других элементов кодирования.
Параметр квантования текущего элемента кодирования генерируется с использованием разностного параметра квантования и предиктора параметра квантования.
Остаточный блок генерируется посредством обратного преобразования обратно квантованного блока (S540). Используются одномерные горизонтальные и вертикальные обратные основанные на DCT преобразования.
Хотя изобретение было показано и описано со ссылкой на некоторые примерные варианты его осуществления, специалистам в данной области техники должно быть понятно, что различные изменения в форме и содержании могут быть произведены в них без отступления от сущности и объема изобретения, заданного прилагаемой формулой изобретения.