СПОСОБ И УСТРОЙСТВО ДЕКОДИРОВАНИЯ ВИДЕОСИГНАЛА
METHOD AND DEVICE FOR VIDEO SIGNAL DECODING

СПОСОБ И УСТРОЙСТВО ДЕКОДИРОВАНИЯ ВИДЕОСИГНАЛА
Настоящая заявка выделена из заявки № 2013140661 на выдачу патента РФ на изобретение, поданной 06.09.2012, с испрашиванием приоритета по дате подачи первых заявок KR 10-2011-0091782 и KR 10-2012-0039501, поданных в патентное ведомство Кореи 09.09.2011 и 17.04.2012, соответственно.
Область техники, к которой относится изобретение
Настоящее изобретение относится к способу кодирования и декодирования видео, более конкретно, настоящее изобретение относится к способу декодирования видеосигнала и устройству декодирования видеосигнала.
Уровень техники
В последнее время в различных областях возрастает спрос на видео высокого качества с высоким разрешением, такое как HD-видео (видео высокой четкости) и UHD-видео (видео сверхвысокой четкости). Поскольку приходят к видеоданным с высоким разрешением и/или с высоким качеством, то объем видеоданных относительно возрастает по сравнению с существующими видеоданными, при этом, если видеоданные передаются через обычную проводную/беспроводную широкополосную сеть или сохраняются на существующей запоминающей среде, то затраты на передачу и хранение возрастают. Для решения этой задачи, которая возникает при переходе видеоданных к высокому разрешению и высокому качеству, могут быть использованы высокоэффективные технологии сжатия видео.
Разработан ряд схем, которые могут использоваться для сжатия видео, такие как схема межкадрового предсказания, которая предсказывает значения пикселей в текущем изображении, исходя из изображения до или после текущего изображения, схема внутрикадрового предсказания, которая предсказывает значения пикселей, содержащихся в текущем изображении, используя пиксельную информацию в текущем изображении, и схема энтропийного кодирования, которая назначает более короткие кодовые слова для значений, которые встречаются более часто, и назначает более длинные кодовые слова для значений, которые встречаются менее часто. Такие схемы сжатия видео могут использоваться для эффективного сжатия, передачи или сохранения видеоданных.
Сущность изобретения
Техническая задача
Целью настоящего изобретения является обеспечение способа декодирования видеосигнала.
Другой целью настоящего изобретения является обеспечение устройства декодирования видеосигнала.
Техническое решение
Для достижения первой цели настоящего изобретения в соответствии с аспектом настоящего изобретения предлагается способ декодирования видеосигнала, содержащий получение вектора движения пространственного предсказания текущего блока с использованием вектора движения пространственно соседнего блока, смежного с текущим блоком; определение соотнесенного блока в соотнесенном изображении на основании того, прилегает ли граница текущего блока к границе наибольшего кодового блока; получение вектора движения временного предсказания текущего блока путем масштабирования вектора движения соотнесенного блока, при этом вектор движения соотнесенного блока масштабируют на основании временного расстояния между текущим изображением, содержащим текущий блок, и опорным изображением текущего блока; формирование списка кандидатов в векторы движения текущего блока, при этом список кандидатов в векторы движения включает вектор движения пространственного предсказания и вектор движения временного предсказания; и выполнение межкадрового предсказания для текущего блока на основании сформированного таким образом списка кандидатов в векторы движения.
Для достижения второй цели настоящего изобретения в соответствии с аспектом настоящего изобретения предлагается устройство декодирования видеосигнала, содержащее модуль межкадрового предсказания, выполненный с возможностью получения вектора движения пространственного предсказания текущего блока с использованием вектора движения пространственно соседнего блока, смежного с текущим блоком; с возможностью определения соотнесенного блока в соотнесенном изображении на основании того, прилегает ли граница текущего блока к границе наибольшего кодового блока; с возможностью получения вектора движения временного предсказания текущего блока путем масштабирования вектора движения соотнесенного блока, при этом вектор движения соотнесенного блока масштабирован на основании временного расстояния между текущим изображением, содержащим текущий блок, и опорным изображением текущего блока; с возможностью формирования списка кандидатов в векторы движения текущего блока, причем список кандидатов в векторы движения включает вектор движения пространственного предсказания и вектор движения временного предсказания; и с возможностью выполнения межкадрового предсказания для текущего блока на основании сформированного таким образом списка кандидатов в векторы движения.
В указанных аспектах изобретения прилегающая граница текущего блока и наибольшего кодового блока может представлять собой нижнюю границу.
В указанных аспектах изобретения пространственно соседний блок может представлять собой один из числа левого соседнего блока, левого нижнего соседнего блока, верхнего соседнего блока, верхнего правого соседнего блока и верхнего левого соседнего блока.
Предпочтительные результаты
Применение предлагаемых способа декодирования видеосигнала и устройства декодирования видеосигнала, как было раскрыто выше, позволяет уменьшить объем памяти, требующийся в ходе декодирования, и минимизировать сложность реализации.
Краткое описание чертежей
На фиг. 1 показана блок-схема, иллюстрирующая устройство кодирования видео в соответствии с вариантом реализации настоящего изобретения.
На фиг. 2 показана блок-схема, иллюстрирующая видеодекодер в соответствии с другим вариантом реализации настоящего изобретения.
На фиг. 3 представлен концептуальный вид, иллюстрирующий способ получения вектора движения временного предсказания в соответствии с вариантом реализации настоящего изобретения.
На фиг. 4 показана блок-схема алгоритма, иллюстрирующая способ получения вектора движения временного предсказания в соответствии с вариантом реализации настоящего изобретения.
На фиг. 5 представлен концептуальный вид, иллюстрирующий положение соотнесенного блока для получения вектора движения временного предсказания в соответствии с вариантом реализации настоящего изобретения.
На фиг. 6 представлен концептуальный вид, иллюстрирующий способ определения соотнесенного блока для получения вектора движения временного предсказания в соответствии с вариантом реализации настоящего изобретения.
На фиг. 7 представлен концептуальный вид, иллюстрирующий случай, когда целевой блок предсказания прилегает к нижней границе LCU в соответствии с вариантом реализации настоящего изобретения.
На фиг. 8 показана блок-схема алгоритма, иллюстрирующая способ межкадрового предсказания, использующий режим слияния в соответствии с вариантом реализации настоящего изобретения.
На фиг. 9 представлен концептуальный вид, иллюстрирующий положения пространственных кандидатов на слияние в соответствии с вариантом реализации настоящего изобретения.
На фиг. 10 показана блок-схема алгоритма, иллюстрирующая способ межкадрового предсказания, использующий AMVP в соответствии с вариантом реализации настоящего изобретения.
Реализация изобретения
Для настоящего изобретения могут быть выполнены различные модификации, и настоящее изобретение может иметь несколько вариантов реализации. Частные примеры вариантов реализации раскрываются подробно со ссылкой на чертежи. Однако настоящее изобретение не ограничено частными вариантами реализации, и следует понимать, что настоящее изобретение включает в себя все модификации, эквиваленты или замены, входящие в объем и сущность настоящего изобретения. При пояснении чертежей для одинаковых элементов могут использоваться одинаковые номера.
Для описания различных элементов (или признаков) могут быть использованы термины «первый» и «второй». Однако эти элементы не ограничиваются этим. Эти термины используются только для отличия одного элемента от другого. Например, первый элемент может быть обозначен вторым элементом, а второй элемент может быть аналогично назван первым. Термин «и/или» включает в себя комбинацию множества соответствующих элементов, как здесь описано, или любой элемент из множества соответствующих элементов.
Если указано, что элемент (или признак) «подключен» или «присоединен» к другому элементу, то данный элемент может быть непосредственно присоединен или подключен к другому элементу. Напротив, если признак или элемент «непосредственно подключен или присоединен» к другому элементу, то промежуточные элементы отсутствуют.
Используемые здесь термины приведены для раскрытия вариантов реализации и не предназначены для ограничения настоящего изобретения. Единственная форма термина также включает в себя и множественную форму, если явно не указывается противоположное. Применяемые здесь термины «содержит» или «включает в себя», и т.п. служат для указания того, что имеются описываемые признаки, целые числа, шаги, операции, элементы, компоненты, части или их комбинации, но они не исключают наличие или возможность добавления одного или более признаков, целых чисел, шагов, операций, элементов, компонентов, частей или их комбинаций.
Далее подробно раскрываются предпочтительные варианты реализации настоящего изобретения со ссылкой на сопровождающие чертежи. Одинаковые числовые обозначения на чертежах относятся к одинаковым элементам, а описание одинаковых элементов не повторяется.
На фиг. 1 показана блок-схема, иллюстрирующая устройство кодирования видео в соответствии с вариантом реализации настоящего изобретения.
Согласно фиг. 1, устройство 100 кодирования видео может включать в себя модуль 110 разделения изображения, модуль 120 межкадрового предсказания, модуль 125 внутрикадрового предсказания, модуль 130 преобразования, модуль 135 квантования, модуль 160 переупорядочивания, модуль 165 энтропийного кодирования, модуль 140 расквантования, модуль 145 обратного преобразования, модуль 150 фильтрации и память 155.
Каждый модуль на фиг. 1 показан независимо для отображения отличающихся друг от друга функций устройства кодирования видео, но это не означает, что каждый модуль выполнен в виде отдельного аппаратного или программного модульного (компонентного) блока. То есть, для удобства описания, модули показаны как выполненные независимо, и по меньшей мере два из этих модулей могут быть объединены в один модуль, или один из модулей может быть разделен на множество модулей для реализации функций. Варианты реализации с комбинированием модулей или варианты реализации с разделением модулей также входят в объем настоящего изобретения без отступления от сущности настоящего изобретения.
Кроме того, некоторые из модулей могут не быть обязательными модулями для реализации существенной функции в настоящем изобретении, а быть лишь опциональными модулями для улучшения рабочих характеристик. Настоящее изобретение может включать в себя только обязательные модули, необходимые для реализации сущности настоящего изобретения, исключая модули, используемые лишь для улучшения рабочих характеристик, и эта конфигурация также входит в объем настоящего изобретения.
Модуль 110 разделения изображения может разделять входное изображение на по меньшей мере один блок обработки. При этом блок обработки может быть блоком предсказания (PU), блоком преобразования (TU) или кодовым блоком (CU). Модуль 110 разделения изображения может кодировать изображение путем разделения одного изображения на комбинацию из множества кодовых блоков, блоков предсказания и блоков преобразования, при этом комбинация одного кодового блока, блока предсказания и блока преобразования может быть выбрана в соответствии с заданным стандартом (или критерием), например, стоимостной функцией, и может быть закодирована.
Например, одно изображение может быть разделено на множество кодовых блоков. Для разделения изображения на кодовые блоки может использоваться рекурсивная древовидная структура, такая как счетверенная древовидная структура. С изображением или наибольшим кодовым блоком в качестве корневого, кодовый блок может быть разделен на другие кодовые блоки, при этом число младших узлов равно количеству разделенных кодовых блоков. Кодовый блок, который далее не разделяется в соответствии с заданным ограничением, считается листовым узлом. Другими словами, если подразумевается, что для кодового блока доступно только квадратное разделение, то данный кодовый блок может быть разделен максимум на четыре других кодовых блока.
Далее в вариантах реализации настоящего изобретения кодовый блок может означать блок, в котором выполняют как кодирование, так и декодирование.
Блок предсказания может быть разделен с формой по меньшей мере одного квадрата или прямоугольника, имеющего одинаковый размер с кодовым блоком.
При формировании блока предсказания, в котором выполняется внутрикадровое предсказание на основании кодового блока, если данный кодовый блок не является наименьшим кодовым блоком, то внутрикадровое предсказание может выполняться без разделения блока предсказания на множество блоков предсказания NxN.
Модуль предсказания может включать в себя модуль 120 межкадрового предсказания для выполнения межкадрового предсказания и модуль 125 внутрикадрового предсказания для выполнения внутрикадрового предсказания. В отношении блока предсказания можно определить, следует ли выполнять межкадровое предсказание или внутрикадровое предсказание, и в соответствии с каждым способом предсказания можно определить конкретную информацию (например, режим внутрикадрового предсказания, вектор движения, опорное изображение и т.д.). В то же время блок обработки для выполнения предсказания может отличаться от блока обработки для определения способа предсказания и его конкретных деталей. Например, способ предсказания и режим предсказания могут быть определены блоком предсказания, а осуществление предсказания может быть выполнено в блоке преобразования. Остаточное значение (остаточный блок) между сформированным блоком предсказания и исходным блоком может подаваться в модуль 130 преобразования. Далее информация режима предсказания и информация вектора движения и т.д., используемые для предсказания, также могут кодироваться в модуле 165 энтропийного кодирования вместе с остаточным значением и затем могут быть переданы в устройство декодирования. Если используется конкретный режим кодирования, а не формируется блок предсказания с помощью модулей 120, 125 предсказания, то исходный блок, как он есть, может быть закодирован и передан в устройство декодирования.
Модуль межкадрового предсказания может предсказывать блок предсказания на основании информации по меньшей мере одного изображения из изображений до текущего изображения или изображений после текущего изображения. Модуль межкадрового предсказания может включать в себя модуль интерполяции опорного изображения, модуль предсказания движения и модуль компенсации движения.
Модуль интерполяции опорного изображения может принимать информацию опорного изображения из памяти 155 и может формировать пиксельную информацию в блоке, меньшем, чем блок целочисленных пикселей в опорном изображении. В случае пикселей яркости может использоваться 8-выводной интерполяционный фильтр на основе DCT с различными коэффициентами фильтрации для каждого вывода для формирования пиксельной информации в блоке, меньшем, чем блок целочисленных пикселей, блоком в 1/4 пикселя. В случае цветного сигнала может использоваться 4-выводной интерполяционный фильтр на основе DCT с различными коэффициентами фильтрации для каждого вывода для формирования пиксельной информации в блоке, меньшем, чем блок целочисленных пикселей, блоком в 1/8 пикселя.
Модуль предсказания движения может осуществлять предсказание движения на основании опорного изображения, интерполированного модулем интерполяции опорного изображения. Для получения вектора движения могут использоваться различные способы, такие как FBMA (от англ. «Full search-based Block Matching Algorithm» - алгоритм поиска совпадающих блоков на основании полного поиска), TSS (от англ. «Three Step Search» - трехшаговый поиск) или NTS (от англ. «New Three-Step Search Algorithm» - новый алгоритм трехшагового поиска) и т.п. Вектор движения может иметь значение вектора движения в блоке 1/2 пикселя или в блоке 1/4 пикселя на основании интерполированного пикселя. Модуль предсказания движения может предсказывать текущий блок предсказания путем применения различных способов предсказания движения. В качестве способа предсказания могут использоваться различные способы, такие как способ пропуска, способ слияния или способ AMVP (от англ. «Аdvanced Motion Vector Prediction» - усовершенствованное предсказание вектора движения).
В соответствии с примерным вариантом реализации настоящего изобретения, модуль межкадрового предсказания может определять, прилегает ли граница целевого блока предсказания к границе LCU (наибольшего кодового блока), а также может определять, доступен ли первый соотнесенный (или сорасположенный или совмещенный) блок в соответствии с определением того, прилегает ли граница целевого блока предсказания к границе LCU. Например, если первый соотнесенный блок недоступен, то второй соотнесенный блок может быть определен как соотнесенный блок для получения вектора движения временного предсказания. Или, если первый соотнесенный блок недоступен, то положение первого соотнесенного блока может быть изменено, и первый соотнесенный блок с измененным положением может быть определен как соотнесенный блок для получения вектора движения временного предсказания.
Далее, модуль межкадрового предсказания может включать в себя модуль предсказания, который определяет индекс опорного изображения соотнесенного блока целевого блока предсказания и определяет вектор движения временного предсказания соотнесенного блока. Соотнесенный блок может адаптивно определяться в соответствии с положением целевого блока предсказания в LCU (наибольшем кодовом блоке).  Далее  подробно
раскрывается работа модуля предсказания в соответствии с настоящим изобретением.
Модуль межкадрового предсказания может формировать блок предсказания на основании информации об опорных пикселях, соседних с текущим блоком, которая является пиксельной информацией о пикселях в текущем изображении. Если блок, соседний для текущего блока предсказания, является блоком, к которому применяется межкадровое предсказание и, таким образом, опорный пиксель является пикселем из межкадрового предсказания, то опорный пиксель, входящий в блок, к которому применяется межкадровое предсказание, может быть заменен c использованием информации опорного пикселя блока, к которому применяется внутрикадровое предсказание. То есть, если опорный пиксель недоступен, то информация недоступного опорного пикселя может быть заменена, по меньшей мере, одним из доступных опорных пикселей.
Что касается внутрикадрового предсказания, то режимы предсказания могут включать в себя режим направленного предсказания, в котором используют информацию об опорных пикселях в соответствии с направлением предсказания, и режим ненаправленного предсказания, в котором не используется информация о направлении при осуществлении предсказания. Режим для предсказания информации о яркости может отличаться от режима предсказания информации о цвете. Кроме того, информация о режиме внутрикадрового предсказания, в котором предсказана информация о яркости, или информация о предсказанном сигнале яркости может использоваться для предсказания информации цветности.
При выполнении внутрикадрового предсказания, если размер блока предсказания такой же, как размер блока преобразования, то внутрикадровое предсказание выполняется на основании пикселей, находящихся с левой стороны блока предсказания, пикселей, находящихся вверху слева блока предсказания, и пикселей, находящихся вверху блока предсказания. Однако, при выполнении внутрикадрового предсказания, если размер блока предсказания отличается от размера блока преобразования, то внутрикадровое предсказание может выполняться с использованием опорных пикселей, основанных на блоке преобразования. Кроме того, только для наименьшего кодового блока может выполняться внутрикадровое предсказание с использованием разделения NxN.
В способе внутрикадрового предсказания блок предсказания может формироваться после применения фильтра внутрикадрового сглаживания, зависящего от режима, (MDIS-фильтра) к опорным пикселям в соответствии с режимом предсказания. К опорным пикселям могут применяться различные типы MDIS-фильтров. Для реализации способа внутрикадрового предсказания режим внутрикадрового предсказания текущего блока предсказания может предсказываться из режима внутрикадрового предсказания блока предсказания, соседнего для текущего блока предсказания. В случае, когда режим предсказания текущего блока предсказания предсказан с использованием информации о режиме, предсказанной из соседнего блока предсказания, если режим внутрикадрового предсказания текущего блока предсказания совпадает с режимом внутрикадрового предсказания соседнего блока предсказания, то для передачи информации, указывающей на то, что текущий блок предсказания идентичен в режиме предсказания с соседним блоком предсказания, может использоваться заданная флаговая информация. И если режим предсказания текущего блока предсказания отличается от режима предсказания соседнего блока предсказания, то для кодирования информации о режиме предсказания текущего блока может применяться энтропийное кодирование.
Кроме того, можно получить остаточный блок, включающий в себя информацию об остаточном значении, которое представляет собой разность между исходным блоком блока предсказания и  блоком  предсказания,  по
которому осуществляется предсказание на основании блока предсказания, сформированного в модуле 120, 125 предсказания. Полученный остаточный блок может быть подан в модуль 130 преобразования. Модуль 130 преобразования может преобразовать остаточный блок с использованием способа преобразования, такого как DCT (дискретное косинусное преобразование) или DST (дискретное синусное преобразование). Остаточный блок включает в себя информацию остатка между блоком предсказания, сформированным с помощью модулей 120, 125 предсказания, и исходным блоком. Что следует применять, DCT или DST, для преобразования остаточного блока, можно определить на основании информации режима внутрикадрового предсказания блока предсказания, используемого для формирования остаточного блока.
Модуль 135 квантования может квантовать значения, преобразованные в частотную область модулем 130 преобразования. В зависимости от блока или важности изображения параметр квантования может меняться. Значение, полученное в модуле 135 квантования, может подаваться в модуль 140 расквантования и модуль 160 переупорядочивания.
Модуль 160 переупорядочивания может осуществлять переупорядочивание коэффициентов для квантованных остаточных значений.
Модуль 160 переупорядочивания может изменять коэффициенты формы двумерного (2D) блока в форму одномерного вектора с помощью способа сканирования коэффициента. Например, модуль 160 переупорядочивания может использовать способ диагонального сканирования от DC-коэффициентов до высокочастотных коэффициентов, тем самым упорядочивая коэффициенты в форме 2D-блока в форму одномерного вектора. В зависимости от размера модуля преобразования и режима внутрикадрового предсказания, вместо способа диагонального сканирования может использоваться способ вертикального сканирования, в котором коэффициенты в форме 2D-блока сканируются вдоль столбца или метод горизонтального сканирования, коэффициенты в форме 2D-блока сканируются вдоль ряда. Другими словами, в зависимости от размера блока преобразования и режима внутрикадрового предсказания может использоваться одно из диагонального сканирования, вертикального сканирования и горизонтального сканирования.
Модуль 165 энтропийного кодирования может осуществлять энтропийное кодирование на основании значений, полученных из модуля 160 переупорядочивания. Для энтропийного кодирования могут использоваться различные способы кодирования, такие как, например, экспоненциальный код Голомба, CABAC (бинарное арифметическое кодирование, адаптивное к контексту).
Модуль 165 энтропийного кодирования может кодировать различную информацию, предоставляемую модулем 160 переупорядочивания и модулями 120, 125 предсказания, такую как информация об остаточных коэффициентах и информация о типе блока кодового блока, информация режима предсказания, информация блока разделения, информация блока предсказания и информация блока передачи, информация вектора движения, информация опорного кадра, информация интерполяции для блока, информация фильтрации и информация о размере LCU.
Модуль 165 энтропийного кодирования может осуществлять энтропийное кодирование значений коэффициентов кодового блока, как входящего из модуля 160 переупорядочивания, с использованием способа энтропийного кодирования, такого как САВАС.
Модуль 140 расквантования может осуществлять расквантование значений, квантованных модулем 135 квантования, а модуль 145 обратного преобразования может осуществлять обратное преобразование значений, преобразованных модулем 130 преобразования. Остаточное значение, формируемое модулем 140 расквантования и модулем 145 обратного преобразования, может добавляться к блоку предсказания, предсказанному с помощью модуля оценки движения, модуля компенсации движения и модуля внутрикадрового предсказания, входящих в модуль 120, 125 предсказания, тем самым формируя восстановленный блок.
Модуль 150 фильтрации может включать в себя по меньшей мере одно из фильтра деблокирования, модуля коррекции смещения и ALF (адаптивный фильтр с обратной связью).
Фильтр деблокирования может устранять блочное искажение, возникающее из-за границы блока в восстановленном (или реконструированном) изображении. Следует ли применять фильтр деблокирования к текущему блоку, можно определить с помощью пикселя, входящего в несколько столбцов или рядов, входящих в блоки. При применении деблокирующего фильтра к блоку, может применяться сильный фильтр или слабый фильтр в зависимости от требуемой силы фильтрации деблокирования. Кроме того, при применении деблокирующего фильтра к блоку, фильтрация горизонтального направления и фильтрация вертикального направления могут осуществляться параллельно.
Модуль коррекции смещения может корректировать смещение между исходным изображением и изображением с деблокированием в пиксельном блоке (или попиксельно). Чтобы выполнить коррекцию смещения для конкретного изображения, пиксели, имеющиеся в изображении, делят на заданное число областей, одну из которых затем выбирают для выполнения смещения, при этом может использоваться способ применения смещения к соответствующей области, или способ применения смещения с учетом краевой информации каждого пикселя.
ALF (адаптивный фильтр с обратной связью) может выполнять фильтрацию на основании значения, полученного сравнением фильтрованного восстановленного (или реконструированного) изображения, и исходного изображения. Пиксели, содержащиеся в изображении, делят на заданные группы, и затем определяют один фильтр, применяемый к соответствующей группе, выполняя, тем самым, фильтрацию для каждой группы дискриминационным образом. В отношении информации о том, следует ли применять ALF, сигнал яркости может передаваться для каждого кодового блока, а применяемый размер и коэффициент ALF могут различаться для каждого блока. ALF может иметь различные формы, а количество коэффициентов в данном фильтре может меняться соответственно. Информация, относящаяся к фильтрации такого ALF (информация о коэффициентах фильтра, информация о включении/выключении ALF или информация о форме фильтра) может передаваться, будучи включенной в заданный набор параметров битового потока.
Память 155 может сохранять восстановленный блок или изображение, формируемое с помощью модуля 150 фильтрации, а сохраненный восстановленный блок или изображение могут передаваться в модуль 120, 125 предсказания при выполнении межкадрового предсказания.
На фиг. 2 показана блок-схема, иллюстрирующая видеодекодер в соответствии с другим вариантом реализации настоящего изобретения.
Согласно фиг. 2, видеодекодер может включать в себя модуль 210 энтропийного декодирования, модуль 215 переупорядочивания, модуль 220 расквантования, модуль 225 обратного преобразования, модуль 230 и 235 предсказания, модуль 240 фильтрации и память 245.
Если битовый поток видео поступает из видеокодера, то данный входящий битовый поток может быть декодирован в процессе, обратном происходящему в видеокодере.
Модуль 210 энтропийного декодирования может осуществлять энтропийное декодирование в процессе, обратном энтропийному кодированию, выполняемому в модуле энтропийного кодирования видеокодера. Из фрагментов информации, декодируемой модулем 210 энтропийного декодирования, информация, используемая для получения блока предсказания, такая как информация о размере LCU или информация о размере блока, подается в модуль 230 и 235 предсказания, а остаточные значения, полученные с помощью энтропийного декодирования в модуле энтропийного декодирования, могут подаваться в модуль 215 переупорядочивания.
Модуль 210 энтропийного декодирования может декодировать информацию, относящуюся к внутрикадровому предсказанию и межкадровому предсказанию, выполняемым в кодере. Как было раскрыто выше, при наличии заданного ограничения, если видеокодер осуществляет внутрикадровое предсказание и межкадровое предсказание, то энтропийное декодирование осуществляется на основании такого ограничения, с получением при этом информации, относящейся к внутрикадровому предсказанию и межкадровому предсказанию для текущего блока.
Модуль 215 переупорядочивания может осуществлять переупорядочивание на основании способа, которым кодер переупорядочивает битовый поток, который энтропийно декодирован в модуле 210 энтропийного декодирования. Такое переупорядочивание может быть выполнено путем восстановления коэффициентов, представленных в форме одномерных векторов, в форму 2D-блока коэффициентов.
Модуль 220 расквантования может осуществлять расквантование на основании блока переупорядоченных коэффициентов и параметров квантования, полученных из кодера.
Модуль 225 обратного преобразования может осуществлять обратное DCT-преобразование и обратное DST-преобразование, по отношению к DCT- и DST-преобразованиям, выполненным модулем преобразования, над результатом квантования, выполненного видеокодером. Обратное преобразование может выполняться на основании блока преобразования, определенного видеокодером. Модуль преобразования видеокодера может выборочно осуществлять DCT- и DST-преобразования в зависимости от совокупности информации, такой как способ предсказания, размер текущего блока и направление предсказания, а модуль 225 обратного преобразования видеодекодера может осуществлять обратное преобразование на основании информации преобразования, выполненного в модуле преобразования видеокодера.
Модуль 230 и 235 предсказания может формировать блок предсказания на основании предварительно декодированного блока или предварительно декодированной информации изображения, полученных из памяти 245, и информации, относящейся к формированию блока предсказания, полученной из модуля 210 энтропийного декодирования.
Модуль 230 и 235 предсказания может включать в себя модуль определения блока предсказания, модуль межкадрового предсказания и модуль внутрикадрового предсказания. Модуль определения блока предсказания может принимать различную информацию, включая информацию о режиме предсказания в способе внутрикадрового предсказания, информацию, относящуюся к предсказанию движения в способе межкадрового предсказания и информацию блока предсказания, а также различную информацию, поступающую из модуля энтропийного декодирования. Модуль определения блока предсказания может выделять блок предсказания из текущего кодового блока, а также может определять, осуществляется межкадровое предсказание или осуществляется внутрикадровое предсказание для блока предсказания. Модуль межкадрового предсказания может осуществлять межкадровое предсказание для текущего блока предсказания в соответствии с информацией, содержащейся, по меньшей мере, в одном изображении из изображений до текущего изображения или изображений после текущего изображения. Модуль межкадрового предсказания может осуществлять межкадровое предсказание для текущего блока предсказания с использованием информации, необходимой для межкадрового предсказания текущего блока предсказания, полученного из видеокодера.
Для реализации межкадрового предсказания можно определить, какой режим из режима пропуска, режима слияния и режима AMVP является способом предсказания движения для блока предсказания, имеющегося в соответствующем кодовом блоке, на основании данного кодового блока.
В соответствии с вариантом реализации настоящего изобретения модуль межкадрового предсказания может определять, прилегает ли целевой блок предсказания к границе LCU (наибольшего кодового блока), а также может определять, доступен ли первый соотнесенный блок в соответствии с определением того, прилегает ли целевой блок предсказания к границе LCU. Например, если определено, что первый соотнесенный блок недоступен, то в качестве соотнесенного блока для получения вектора временного предсказания движения может быть определен второй соотнесенный блок, или, если первый соотнесенный блок недоступен, то положение первого соотнесенного блока может быть изменено так, что первый соотнесенный блок с измененным положением может быть определен как соотнесенный блок для получения вектора временного предсказания движения. Кроме того, модуль межкадрового предсказания может включать в себя модуль предсказания, который определяет индекс опорного изображения соотнесенного блока целевого блока предсказания, а также определяет вектор предсказания движения соотнесенного блока. Соотнесенный блок может адаптивно определяться в соответствии с местоположением целевого блока предсказания в LCU (наибольшем кодовом блоке). Далее подробно описывается работа модуля предсказания в соответствии с настоящим изобретением.
Модуль внутрикадрового предсказания может формировать блок предсказания на основании пиксельной информации в текущем изображении. Если блок предсказания является блоком, к которому применяется внутрикадровое предсказание, то внутрикадровое предсказание может осуществляться на основании информации режима внутрикадрового предсказания блока предсказания, полученного из видеокодера. Модуль внутрикадрового предсказания может включать в себя MDIS-фильтр, модуль интерполяции опорного пикселя и DC-фильтр. MDIS-фильтр осуществляет фильтрацию по опорному пикселю текущего блока. Для MDIS-фильтра можно определить, применять ли фильтр, в соответствии с режимом предсказания текущего блока предсказания. Фильтрация по опорному пикселю текущего блока может осуществляться с использованием информации МDIS-фильтра и режима предсказания блока предсказания, полученных из видеокодера. Если режим предсказания текущего блока является режимом, который не осуществляет фильтрацию, то MDIS-фильтр может не применяться.
Если режим предсказания блока предсказания является режимом предсказания, в котором межкадровое предсказание осуществляется на основании пиксельных значений, полученных интерполяцией опорного пикселя, то путем интерполяции опорных пикселей можно определить опорный пиксель в блоке, меньшем, чем целое значение пикселя. Если режим предсказания текущего блока предсказания является режимом предсказания, в котором блок предсказания формируют без интерполяции опорного пикселя, то опорный пиксель можно не подвергать интерполяции. DC-фильтр может формировать блок предсказания посредством фильтрации, если режим предсказания текущего блока является DC-режимом.
Восстановленный блок или изображение могут быть поданы в модуль 240 фильтрации. Модуль 240 фильтрации может включать в себя фильтр деблокирования, модуль коррекции смещения и ALF.
Информация о том, применялся ли соответствующий блок или изображение с фильтром деблокирования, может подаваться из кодера видео (или изображения). Если был применен фильтр деблокирования, то из видеокодера может поступить информация о том, применяемый фильтр деблокирования является сильным фильтром или слабым фильтром. Фильтр деблокирования видеодекодера может получать относящуюся к фильтру деблокирования информацию из видеокодера, при этом может осуществляться деблокирующая фильтрация для соответствующего блока в видеодекодере. Аналогично видеокодеру, видеодекодер может сначала осуществлять вертикальную деблокирующую фильтрацию и горизонтальную деблокирующую фильтрацию. Перекрывающаяся область (области) могут подвергаться, по меньшей мере, одному из вертикального деблокирования и горизонтального деблокирования. В области, где вертикальная деблокирующая фильтрация и горизонтальная деблокирующая фильтрация перекрывают друг друга, может осуществляться либо вертикальная деблокирующая фильтрация, либо горизонтальная деблокирующая фильтрация, которая до этого могла не осуществляться для этой области. Такой процесс деблокирующей фильтрации обеспечивает возможность параллельной обработки деблокирующей фильтрации.
Модуль коррекции смещения может осуществлять коррекцию смещения для восстановленного изображения на основании типа коррекции смещения, применяемого к изображению в процессе кодирования, и информации о значении смещения в процессе кодирования.
ALF может осуществлять фильтрацию согласно сравнению между восстановленным изображением после фильтрации, и исходным изображением. ALF может осуществляться для кодового блока на основании информации о том, применяется ли ALF, и информации о коэффициентах ALF, полученных из кодера. Такая информация об ALF может быть обеспечена путем включения в набор конкретных параметров.
Память 245 может сохранять восстановленное изображение или восстановленный блок, чтобы использовать это в качестве опорного изображения или опорного блока, а также может подавать восстановленное изображение в отображающий модуль.
Как было раскрыто выше, хотя в варианте реализации настоящего изобретения для удобства описания используется термин «кодовый блок», кодовый блок также может использоваться как блок декодирования. Способ предсказания в соответствии с вариантом реализации настоящего изобретения, описываемый далее со ссылкой на фиг. 3-11, может осуществляться таким элементом, как модуль предсказания, показанный на фиг. 1 и 2.
На фиг. 3 представлен концептуальный вид, иллюстрирующий способ получения вектора движения временного предсказания в соответствии с вариантом реализации настоящего изобретения.
Согласно фиг. 3, вектор движения временного предсказания может быть получен на основании значения вектора движения соотнесенного блока (colPu) в соотнесенном изображении (colPic).
Соотнесенное изображение является изображением, содержащим соотнесенный блок для получения информации, относящейся к вектору движения временного предсказания, при выполнении способа межкадрового предсказания, такого как слияние или AMVP. Соотнесенный блок может быть определен как блок, содержащийся в соотнесенном изображении, при этом соотнесенный блок определяется на основании информации о местоположении целевого блока предсказания и имеет временную фазу, отличающуюся от целевого блока предсказания.
Для одного целевого блока предсказания может быть множество соотнесенных блоков. Информация, относящаяся к движению соотнесенного блока, имеющегося в соотнесенном изображении, может сохраняться как одно репрезентативное значение по отношению к предварительно заданному блоку. Например, по отношению к блоку с размером 16х16, информация, относящаяся к предсказанию движения (вектор движения, опорное изображение и т.п.) может быть определена и сохранена в качестве одного репрезентативного значения в блоке 16х16.
На фиг. 4 показана схема алгоритма, иллюстрирующая способ определения вектора движения временного предсказания в соответствии с вариантом реализации настоящего изобретения.
Далее в настоящем документе, способ получения вектора движения временного предсказания, который раскрывается ниже, может использоваться в способе межкадрового предсказания, таком как режим слияния или режим AMVP. Способ получения  вектора движения временного предсказания может быть способом получения временного блока-кандидата (соотнесенного блока) для реализации режима слияния, способом получения временного блока-кандидата (соотнесенного блока) для реализации режима AMVP и способом получения вектора движения временного предсказания.
Далее в настоящем документе, в варианте реализации настоящего изобретения «соотнесенный блок» может определяться и использоваться в качестве термина, обозначающего временной блок-кандидат, используемый в режиме слияния и режиме AMVP.
Согласно фиг. 4, получают информацию соотнесенного изображения (шаг S400).
Информация о местоположения целевого блока предсказания, информация о размере целевого блока предсказания и информация индекса опорного изображения целевого блока предсказания может использоваться для получения информации соотнесенного изображения, информации соотнесенного блока и вектора движения временного предсказания.
В соответствии с вариантом реализации настоящего изобретения, информация соотнесенного изображения может быть получена на основании информации типа слайса (slice_type), информации списка опорных изображений (collocated_from_l0_flag) и информации индекса опорного изображения (collocated_ref_idx). При использовании информации списка опорных изображений (collocated_from_l0_flag), если информация списка опорных изображений (collocated_from_l0_flag) указывает 1, это означает, что соотнесенное изображение находится в первом списке опорных изображений (List 0), а если информация списка опорных изображений (collocated_from_l0_flag) указывает 0, это означает, что соотнесенное изображение находится во втором списке опорных изображений (List 1).
Например, если тип слайса - это В-слайс, и значение информации списка опорных изображений (collocated_from_l0_flag) равно 0, то соотнесенное изображение может быть определено как изображение, содержащееся во втором списке опорных изображений, а если типа слайса - это В-слайс, и значение информации списка опорных изображений (collocated_from_l0_flag) равно 1, или если тип слайса - это Р-слайс, то соотнесенное изображение может быть определено как изображение, входящее в первый список опорных изображений.
В случае способа межкадрового предсказания, использующего режим слияния, если удовлетворено заданное условие, то информация индекса опорного изображения соседнего блока в конкретном положении может быть определена в качестве информации для соотнесенного изображения, а если заданное условие не удовлетворено, то предыдущее изображение для текущего изображения может быть определено в качестве соотнесенного изображения.
Получают информацию соотнесенного блока (шаг S410).
Информацию для соотнесенного блока можно получить различным образом в зависимости от того, прилегает ли часть (или участок) целевого блока предсказания к границе LCU (наибольшего кодового блока). Далее в настоящем документе со ссылкой на фиг. 5-9 раскрывается способ определения соотнесенного блока в зависимости от положения целевого блока предсказания и границы LCU.
На фиг. 5 показан концептуальный вид, иллюстрирующий местоположение соотнесенного блока для получения временного вектора движения в соответствии с вариантом реализации настоящего изобретения.
Согласно фиг. 5, в качестве соотнесенных блоков для получения временного вектора движения могут использоваться блоки в различных положениях по отношению к целевому блоку предсказания. Соотнесенные блоки, которые могут использоваться для получения временного вектора движения, могут классифицироваться в зависимости от местоположений следующим образом.
Если точка, находящаяся слева-сверху целевого блока предсказания, равна (xP, yP), ширина целевого блока предсказания равна nPSW, а высота целевого блока предсказания равна nPSH, то первый соотнесенный блок 500 может быть блоком, содержащим точку (xP+nPSW, yP+nPSH) в соотнесенном
изображении, второй соотнесенный блок 510 может быть блоком, содержащим точку (xP+nPSW-MinPuSize, yP+nPSH) в соотнесенном изображении, третий соотнесенный блок 520 может быть блоком, содержащим точку (xP+nPSW, yP+nPSH-MinPuSize) в соотнесенном изображении, четвертый соотнесенный блок 530 может быть блоком, содержащим точку (xP+nPSW-1, yP+nPSH-1) в соотнесенном изображении, пятый соотнесенный блок 540 может быть блоком, содержащим точку (xP+(nPSW>>1), yP+(nPSH>>1)) в соотнесенном изображении и шестой соотнесенный блок 550 может быть блоком, содержащим точку (xP+(nPSW>>1)-1, yP+(nPSH>>1)-1) в соотнесенном изображении.
Соотнесенный блок может адаптивно определяться в соответствии с положением текущего блока предсказания, расположенного в LCU. Позиционное соотношение между целевым блоком предсказания и границей LCU можно классифицировать на следующие случаи: 1) когда нижний край и правая сторона целевого блока предсказания не прилегают к границе LCU, 2) когда только нижний край целевого блока предсказания прилегает к границе LCU, 3) когда и правая сторона, и нижний край целевого блока предсказания прилегают к границе LCU, и 4) когда только правая сторона целевого блока предсказания прилегает к границе LCU.
В соответствии с вариантом реализации настоящего изобретения, соотнесенный блок может адаптивно определяться различным образом в зависимости от положения целевого блока предсказания в LCU.
1) Если нижний край и правая сторона целевого блока предсказания не прилегают к границе LCU, то первый соотнесенный блок и пятый соотнесенный блок могут последовательно использоваться в качестве соотнесенного блока с проверкой доступности, для того чтобы получить временной вектор движения.
2) Если только нижний край целевого блока предсказания прилегает к границе LCU, то третий соотнесенный блок и пятый соотнесенный блок могут последовательно использоваться в качестве соотнесенного блока с проверкой доступности, для того чтобы получить временной вектор движения.
3) Если и правая сторона, и нижний край целевого блока предсказания прилегают к границе LCU, то четвертый соотнесенный блок и пятый соотнесенный блок могут последовательно использоваться в качестве соотнесенного блока с проверкой доступности, для того чтобы получить временной вектор движения.
4) Если только правая сторона целевого блока предсказания прилегает к границе LCU, то второй соотнесенный блок и пятый соотнесенный блок могут последовательно использоваться в качестве соотнесенного блока с проверкой доступности, для того чтобы получить временной вектор движения.
То есть, в соответствии с вариантом реализации настоящего изобретения, временной блок-кандидат можно адаптивно определить в зависимости от местоположения текущего блока в LCU. Положения пикселей для указания временного блока-кандидата в случае, если нижняя граница текущего блока прилегает к границе LCU, могут отличаться от положений пикселей для указания временного блока-кандидата в случае, если нижняя граница текущего блока не прилегает к границе LCU. При этом положения пикселей для указания временного блока-кандидата для случая, когда нижняя граница текущего блока прилегает к границе LCU, могут отличаться от положений пикселей для указания временного блока-кандидата для случая, когда только правая граница текущего блока прилегает к границе LCU.
В соответствии с другим вариантом реализации настоящего изобретения может использоваться способ, в котором соотнесенный блок может определяться (или выбираться) адаптивно и иначе в зависимости от положения целевого блока предсказания в LCU так, чтобы соотнесенный блок и целевой блок предсказания находились в том же самом LCU, или соотнесенный блок может не использоваться, если соотнесенный блок и целевой блок предсказания не находятся в одном и том же LCU.
На фиг. 6 представлен концептуальный вид, иллюстрирующий способ определения соотнесенного блока для получения вектора предсказания движения в соответствии с вариантом реализации настоящего изобретения.
Согласно фиг. 6, могут быть известны положения соотнесенных блоков совокупности блоков предсказания, находящихся в LCU.
В случае PU0, PU1, PU2 и PU5, блоки предсказания являются блоками предсказания внутри LCU, и первый соотнесенный блок может первым использоваться в качестве соотнесенного блока для получения временнóго вектора движения.
В случае PU4 и PU7, границы блоков предсказания прилегают только к нижней границе LCU, и в качестве соотнесенного блока для получения временного вектора движения сначала может использоваться третий соотнесенный блок.
В случае PU8, граница блока предсказания прилегает как к нижней границе, так и к правой границе LCU, и в качестве соотнесенного блока для получения временного вектора движения сначала может использоваться четвертый соотнесенный блок.
В случае PU3 и PU6, границы блоков предсказания прилегают только к правой границе LCU, и в качестве соотнесенного блока для получения временного вектора движения сначала может использоваться второй соотнесенный блок.
То есть, как было раскрыто выше, временной блок-кандидат адаптивно определяется в зависимости от местоположения текущего блока в LCU, а положения пикселей для указания временного блока-кандидата в случаях, когда нижняя граница текущего блока прилегает к границе LCU (случаи PU4, PU7 и PU8), и в случаях, когда нижняя граница текущего блока не прилегает к границе LCU (случаи PU0, PU1, PU2, PU3, PU5 и PU6), отличаются друг от друга. Кроме того, положения пикселей для указания временного блока-кандидата могут отличаться в случаях, когда нижняя граница текущего блока прилегает к границе LCU (случаи PU4, PU7 и PU8), и в случаях, когда только правая граница текущего блока прилегает к границе LCU (случаи PU3 и PU6).
В соответствии с другим вариантом реализации настоящего изобретения, до тех пор, пока соотнесенный блок находится в том же LCU, что и целевой блок предсказания, соотнесенный блок адаптивно и иначе определяется в зависимости от положения целевого блока предсказания в LCU. Если конкретный соотнесенный блок не находится в том же LCU, что и целевой блок предсказания, то такой конкретный соотнесенный блок может быть недоступным. Например, если нижняя граница блока предсказания прилегает к нижней границе LCU подобно PU4, PU7 и PU8, то первый соотнесенный блок может быть отмечен (или указан) как недоступный, и вместо него может использоваться пятый соотнесенный блок в качестве соотнесенного блока для определения временного вектора движения.
Как таковой, в качестве способа определения соотнесенного блока может быть использован способ, в котором, классифицируя характеристики целевого блока предсказания, как было раскрыто выше, в зависимости от положения целевого блока предсказания и границы LCU, выбирают блок для использования в качестве соотнесенного блока в зависимости от классифицированного положения целевого блока предсказания. Предпочтительно, подразумевается, что первый соотнесенный блок и пятый соотнесенный блок могут последовательно использоваться в качестве соотнесенного блока для получения временного вектора движения. После проверки доступности первого соотнесенного блока (например, прилегает ли нижняя граница целевого блока предсказания к LCU) соотнесенный блок, отличающийся от первого соотнесенного блока, может быть определен как соотнесенный блок для получения временного вектора движения. Например, если первый соотнесенный блок определен как недоступный посредством шагов определения того, прилегает ли целевой блок предсказания к границе LCU (наибольшего кодового блока), то соотнесенный блок для получения временного вектора движения может быть изменен на другой соотнесенный блок (например, третий соотнесенный блок), или же может использоваться непосредственно пятый соотнесенный блок без использования первого соотнесенного блока.
В частности, вышеуказанный способ может осуществляться посредством следующих шагов:
1) Шаг определения, прилегает ли граница целевого блока предсказания к границе LCU (наибольший кодовый блок),
2) Шаг определения, доступен ли первый соотнесенный блок, в зависимости о того, прилегает ли граница целевого блока предсказания к границе LCU. В частности, на шаге 2), если нижняя граница целевого блока предсказания прилегает к границе LCU, то можно определить, что первый соотнесенный блок недоступен,
3) Шаг определения соотнесенного блока, отличающегося от первого соотнесенного блока, в качестве соотнесенного блока для получения вектора движения временного предсказания, если первый соотнесенный блок недоступен. В частности, на шаге 3) в случае, если нижняя граница целевого блока предсказания прилегает к границе LCU, и в случае, если правая граница целевого блока предсказания прилегает к границе LCU, в качестве соотнесенных блоков для получения временного вектора движения могут быть определены отличающиеся соотнесенные блоки для каждого отличающегося случая,
4) Шаг определения первого соотнесенного блока в качестве соотнесенного блока для получения вектора движения временного предсказания, если первый соотнесенный блок доступен, и определения доступности пятого соотнесенного блока, если первый соотнесенный блок недоступен.
Вышеуказанные шаги могут быть опциональными шагами, и соотношение последовательности шагов или способа определения может меняться без отступления от сущности настоящего изобретения.
На фиг. 7 показан концептуальный вид, иллюстрирующий случай, когда целевой блок предсказания прилегает к нижней границе LCU в соответствии с вариантом реализации настоящего изобретения.
Согласно фиг. 7, показан случай, когда местоположение соотнесенного блока изменяется, если целевой блок предсказания (PU, PU7 или PU8) расположен у нижней границы LCU. Если целевой блок предсказания (PU4, PU7 или PU8) расположен у нижней границы LCU, то местоположение соотнесенного блока может быть установлено так, что информация, относящаяся к предсказанию движения, может быть получена даже без поиска LCU, расположенного под текущим LCU, среди LCU-блоков. Например, вектор движения временного предсказания можно получить с использованием третьего соотнесенного блока, а не первого соотнесенного блока целевого блока предсказания. 1) если прилегает только правая граница LCU, то, в зависимости от доступности, первый соотнесенный блок и пятый соотнесенный блок последовательно определяются в качестве соотнесенного блока для получения вектора движения временного предсказания, 2) если прилегает нижняя граница LCU, то, в зависимости от доступности, в качестве соотнесенного блока для получения вектора движения временного предсказания могут быть последовательно определены третий соотнесенный блок и пятый соотнесенный блок. То есть, в соответствии с вариантом реализации настоящего изобретения, положения пикселей для указания временного блока-кандидата могут отличаться для случая, когда нижняя граница текущего блока прилегает к границе LCU, и для случая, когда нижняя граница текущего блока не прилегает к границе LCU.
Возвращаясь к фиг. 4, на основании соотнесенного блока, определенного с помощью способа, раскрытого выше применительно к фиг. 5-7, определяют вектор предсказания движения (mvLXCol) соотнесенного блока и информацию (availableFlagLXCol) о доступности соотнесенного блока (шаг S420).
Информация (availableFlagLXCol) доступности соотнесенного блока и вектор (mvLXCol) движения соотнесенного блока, которые следует использовать для межкадрового предсказания целевого блока предсказания на основании информации соотнесенного блока, определенной с помощью процедур, показанных на фиг. 5-7, могут быть получены следующим способом:
1) Если соотнесенный блок (colPu) закодирован на основании режима внутрикадрового предсказания, если соотнесенный блок (colPu) недоступен, если соотнесенное изображение (colPic) недоступно для предсказания вектора движения временного предсказания, или если межкадровое предсказание осуществляется без использования вектора движения временного предсказания, то вектор (mvLXCol) движения соотнесенного блока и информация (availableFlagLXCol) доступности соотнесенного блока могут быть заданы как 0.
2) В отличие от случая 1), информация (mvLXCol) вектора движения соотнесенного блока и информация (availableFlagLXCol) доступности соотнесенного блока могут быть получены с помощью флага (PredFlagL0) и флага (PredFlagL1), где флаг (PredFlagL0) указывает, используется или нет список L0, а флаг (PredFlagL1) указывает, используется или нет список L1.
Во-первых, если определено, что межкадровое предсказание выполнено по соотнесенному блоку без использования списка L0 (флаг (PredFlagL0) равен 0), то информация соотнесенного блока, относящаяся к предсказанию движения, такая как информация mvCol, информация refldxCol и информация listCol могут быть заданы как L1 и MvL1[xPCol][yPCol], RefIdxL1[xPCol][yPCol], которые являются информацией соотнесенного блока, относящейся к предсказанию движения, полученной с использованием списка L1, при этом информация (availableFlagLXCol) доступности соотнесенного блока может быть задана как 1.
В других случаях, если определено, что межкадровое предсказание выполнено по соотнесенному блоку с использованием списка L0 (флаг (PredFlagL0) равен 1), то информация соотнесенного блока, относящаяся к предсказанию движения, такая как информация mvCol, информация refldxCol и информация listCol может задаваться отдельно для случая, когда PredFlagL1 равен 0 и для случая, когда PredFlagL1 равен 1, и информация (availableFlagLXCol) доступности соотнесенного блока может быть установлена как 1.
Полученный mvLXCol масштабируют (шаг S430).
Для использования mvLXCol, полученного на шаге S420 в качестве вектора движения временного предсказания для целевого блока предсказания, полученное значение mvLXCol может масштабироваться на основании информации расстояния, относящейся к расстоянию между соотнесенным изображением, содержащим соотнесенный блок и опорным изображением соотнесенного блока, на которое ссылается соотнесенный блок, и к расстоянию между изображением, содержащим целевой блок предсказания, и опорным изображением, на которое ссылается целевой блок предсказания. После масштабирования полученного значения mvLXCol может быть получен вектор движения временного предсказания.
Далее в настоящем документе, в соответствии с вариантом реализации настоящего изобретения, раскрывается способ реализации межкадрового предсказания, такой как слияние и AMVP.
На фиг. 8 показана схема алгоритма, иллюстрирующая способ межкадрового предсказания, использующего режим слияния в соответствии с вариантом реализации настоящего изобретения.
Согласно фиг. 8, из пространственного кандидата на слияние может быть получена информация, относящаяся к предсказанию движения (шаг S1000).
Пространственный кандидат на слияние может быть получен из соседних блоков предсказания целевого блока предсказания. Для получения пространственного кандидата на слияние может быть получена информация о ширине и высоте блока предсказания, информация MER (области оценки движения), информация singleMCLFlag и информация о положении частей. На основании такой входной информации можно получить информацию (availableFlagN) доступности в соответствии с положением пространственного кандидата на слияние, информацию (refldxL0, refldxL1) опорного изображения, информацию (predFlagL0N, redFlagL1N) использования списка и информацию (mvL0N, mvL1N) вектора движения. Множество блоков, соседних для целевого блока предсказания, могут быть пространственными кандидатами на слияние.
На фиг. 9 показан концептуальный вид, иллюстрирующий положения пространственных кандидатов на слияния в соответствии с вариантом реализации настоящего изобретения.
Согласно фиг. 9, если положение точки вверху слева целевого блока предсказания равно (xP, yP), ширина целевого блока предсказания равна nPSW, а высота целевого блока предсказания равна nPSH, то пространственный кандидат на слияние может быть блоком A0, содержащим точку (xP-1, yP+nPSH), блоком A1, содержащим точку (xP-1, yP+nPSH-MinPuSize), блоком B0, содержащим точку (xP+nPSW, yP-1), блоком B1, содержащим точку (xP+nPSW-MinPuSize, yP-1) и блоком B2, содержащим точку (xP-MinPuSize, yP-1).
Вернемся к фиг. 8, где определяют значение индекса опорного изображения временного кандидата на слияние (шаг S1010).
Значение индекса опорного изображения временного кандидата на слияние как значение индекса соотнесенного изображения, содержащего временной кандидат на слияние (соотнесенный блок), может быть получено при следующих конкретных условиях. Данные условия являются произвольными и могут варьироваться. Например, в случае, когда положение точки сверху-слева целевого блока предсказания равно (xP, yP), ширина целевого блока предсказания равна nPSW и высота целевого блока предсказания равна nPSH, если 1) существует соседний блок предсказания целевого блока предсказания, соответствующий положению (xP-1, yP+nPSH-1) (далее обозначаемый как соседний блок предсказания для получения индекса опорного изображения), 2) значение индекса деления соседнего блока предсказания для определения индекса опорного изображения равно 0, 3) соседний блок предсказания для вывода индекса опорного изображения не является блоком, по которому осуществляется предсказание с использованием режима внутрикадрового предсказания, и 4) целевой блок предсказания и соседний блок предсказания для вывода индекса опорного изображения не принадлежат одной и той же MER (области оценки движения), то значение индекса опорного изображения временного кандидата на слияние может быть определено как то же самое значение, что
и значение индекса опорного изображения соседнего блока предсказания для получения индекса опорного изображения. Если эти условия не удовлетворяются, то значение индекса опорного изображения временного кандидата на слияние может быть задано равным 0.
Определяют временной блок-кандидат на слияние (соотнесенный блок), и из соотнесенного блока получают информацию, относящуюся к предсказанию движения (шаг S1020).
В соответствии с вариантом реализации настоящего изобретения, временной блок-кандидат на слияние (соотнесенный блок) может адаптивно определяться в зависимости от местоположения целевого блока предсказания в LCU так, чтобы соотнесенный блок находился в том же самом LCU, что и целевой блок предсказания.
1) Если нижний край и правая сторона целевого блока предсказания не прилегают к границе LCU, то при определении доступности в качестве соотнесенного блока для получения временного вектора движения могут последовательно использоваться первый соотнесенный блок и пятый соотнесенный блок.
2) Если только нижний край целевого блока предсказания прилегает к границе LCU, то при определении доступности в качестве соотнесенного блока для получения временного вектора движения могут последовательно использоваться третий соотнесенный блок и пятый соотнесенный блок.
3) Если и правая сторона, и нижний край целевого блока предсказания прилегают к границе LCU, то при определении доступности в качестве соотнесенного блока для получения временного вектора движения могут последовательно использоваться четвертый соотнесенный блок и пятый соотнесенный блок.
4) Если только правая сторона целевого блока предсказания прилегает к границе LCU, то при определении доступности в качестве соотнесенного блока для получения временного вектора движения могут последовательно использоваться второй соотнесенный блок и пятый соотнесенный блок.
В соответствии с вариантом реализации настоящего изобретения может использоваться способ, обеспечивающий возможность определять соотнесенный блок адаптивно и иначе, в зависимости от положения целевого блока предсказания в LCU, чтобы находиться в положении, находящемся в одном LCU вместе с целевым блоком предсказания, или соотнесенный блок, не находящийся в одном LCU вместе с целевым блоком предсказания, может не использоваться.
Как было раскрыто выше, в качестве способа получения соотнесенного блока может использоваться способ разделения характеристик целевого блока предсказания, как было раскрыто выше, в зависимости от положения целевого блока предсказания и границы LCU, и определения блока для немедленного использования в качестве соотнесенного блока в зависимости от положения выделенного целевого блока предсказания. Однако, первый соотнесенный блок и пятый соотнесенный блок могут сначала считаться последовательно используемыми в качестве соотнесенных блоков для получения временного вектора движения, при этом определяют, доступен ли первый соотнесенный блок (например, прилегает ли нижняя граница целевого блока предсказания к LCU), и затем в качестве соотнесенного блока для определения временного вектора движения может определяться соотнесенный блок, отличающийся от первого соотнесенного блока.
Конфигурируют список кандидатов на слияние (шаг S1030).
Список кандидатов на слияние может формироваться с включением в него, по меньшей мере, одного из пространственных кандидатов на слияние и временного кандидата на слияние. Пространственные кандидаты на слияние и временной кандидат на слияние, входящие в список кандидатов на слияние, можно упорядочить с заданным приоритетом.
Список кандидатов на слияние может быть созданным с входящим в него фиксированным числом кандидатов на слияние, и если число кандидатов на слияние меньше, чем данное фиксированное число, то информация, относящаяся к предсказанию движения и принадлежащая кандидатам на слияние, комбинируется для формирования кандидатов на слияние, или в качестве кандидатов на слияния формируются нулевые векторы, формируя, таким образом, список кандидатов на слияние.
На фиг. 10 показана схема алгоритма, иллюстрирующая способ межкадрового предсказания с использованием AMVP в соответствии с вариантом реализации настоящего изобретения.
Согласно фиг. 10, из пространственных блоков-кандидатов AMVP получают информацию, относящуюся к предсказанию движения (шаг S1200).
Для получения информации индекса опорного изображения и вектора предсказания движения целевого блока предсказания, пространственный блок(и)-кандидат(ы) AMVP можно определить из блоков предсказания, соседних для целевого блока предсказания.
Вернемся к фиг. 9, согласно которой в качестве первого пространственного блока-кандидата AMVP можно использовать один из блока А0 и блока А1, а в качестве второго пространственного блока-кандидата AMVP можно использовать один из блока В0, блока В1 и блока В2, определяя таким образом пространственные блоки-кандидаты AMVP.
Из временного блока-кандидата AMVP получают информацию, относящуюся к предсказанию движения (шаг S1210).
В соответствии с вариантом реализации настоящего изобретения, соотнесенный блок может адаптивно определяться в зависимости от местоположения целевого блока предсказания в LCU так, чтобы соотнесенный блок находился в том же самом LCU, что и целевой блок предсказания.
1) Если нижний край и правая сторона целевого блока предсказания не прилегают к границе LCU, то в качестве соотнесенного блока для получения временного вектора движения с проверкой доступности могут последовательно использоваться первый соотнесенный блок и пятый соотнесенный блок.
2) Если только нижний край целевого блока предсказания прилегает к границе LCU, то в качестве соотнесенного блока для получения временного вектора движения с проверкой доступности могут последовательно использоваться третий соотнесенный блок и пятый соотнесенный блок.
3) Если и правая сторона, и нижний край целевого блока предсказания прилегают к границе LCU, то в качестве соотнесенного блока для получения временного вектора движения с проверкой доступности могут последовательно использоваться четвертый соотнесенный блок и пятый соотнесенный блок.
4) Если только правая сторона целевого блока предсказания прилегает к границе LCU, то в качестве соотнесенного блока для получения временного вектора движения с проверкой доступности могут последовательно использоваться второй соотнесенный блок и пятый соотнесенный блок.
В соответствии с вариантом реализации настоящего изобретения, может применяться способ, в котором соотнесенный блок, не находящийся в том же самом LCU, что и целевой блок предсказания, может не использоваться, а также способ, в котором соотнесенный блок адаптивно определяется в зависимости от местоположения целевого блока предсказания в LCU, чтобы иметь местоположение, входящее в тот же самый LCU, что и целевой блок предсказания.
На шаге S1200 получения пространственных блоков-кандидатов AMVP, если первый пространственный блок-кандидат AMVP и второй пространственный блок-кандидат AMVP определены как доступные, и значения полученных векторов предсказания движения не одинаковы, то шаг S1210 получения  вектора движения временного предсказания можно не выполнять.
Создают список кандидатов AMVP (шаг S1220).
Список кандидатов AMVP создается с использованием информации, относящейся к предсказанию движения, полученной при выполнении по меньшей мере одного из шагов S1200 и S1210. Если в созданном списке кандидатов AMVP имеется такая же информация, относящаяся к предсказанию движения, то в качестве значения кандидата AMVP может использоваться одно значение среди одинаковых информаций, относящихся к предсказанию движения. Информация, относящаяся к предсказанию движения, входящая в список кандидатов AMVP, может содержать только фиксированное число значений кандидатов.
Хотя в настоящем документе раскрыты данные варианты реализации настоящего изобретения, для специалиста в области техники, к которой относится изобретение, очевидно, что могут быть сделаны различные изменения и модификации настоящего изобретения без отступления от сущности и объема настоящего изобретения.