СПОСОБ И УСТРОЙСТВО ДЛЯ КОДИРОВАНИЯ/ДЕКОДИРОВАНИЯ СИГНАЛА ИЗОБРАЖЕНИЯ
METHOD AND DEVICE FOR ENCODING/DECODING AN IMAGE SIGNAL

ПРЕДПОСЫЛКИ ИЗОБРЕТЕНИЯ
Область, к которой относится изобретение
Настоящее изобретение относится к способу и устройству для кодирования и декодирования видеосигнала.
Уровень техники
С увеличением размеров дисплеев возрастает потребность в видеосервисах все более высокого качества. Наибольшей проблемой, присущей видеосервисам высокой четкости, является существенное повышение объема данных, при этом для решения данной проблемы активно проводятся исследования для повышения степени компрессии видео. В качестве соответствующего примера, Группа экспертов по кинематографии (Motion Picture Experts Group, MPEG) и Группа экспертов по кодированию видео (Video Coding Experts Group, VCEG) в рамках Сектора стандартизации электросвязи Международного союза электросвязи (International Telecommunication Union-Telecommunication, ITU-T) сформировали Совместную группу сотрудничества по кодированию видео (Joint Collaborative Team on Video Coding, JCT-VC) в 2009 году. JCT-VC предложила Высокоэффективное кодирование видео (HEVC), которое является стандартом сжатия видео с эффективностью сжатия примерно вдвое превышающей эффективность сжатия H.264/AVC и которое было принято в качестве стандарта 25 января 2013 года. С быстрым развитием видеосервисов высокой четкости постепенно проявились ограничения HEVC.
КРАТКОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
Целью настоящего изобретения является предоставить комбинированный способ предсказания, в рамках которого комбинируется несколько способов предсказания при кодировании/декодировании видеосигнала, и устройство для осуществления данного способа.
Целью настоящего изобретения является предоставить способ разбиения блока кодирования на несколько элементов предсказания при кодировании/декодировании видеосигнала и устройство для осуществления данного способа.
Технические проблемы, которые затрагивает настоящее изобретение, не ограничиваются вышеуказанными техническими проблемами, при этом явно не указанные иные проблемы могут являться очевидными специалистам в данной области на основании нижеследующего описания.
Способ декодирования/кодирования видеосигнала в соответствии с настоящим изобретением включает следующие этапы: определение необходимости применения комбинированного режима предсказания для текущего блока; получение первого блока предсказания и второго блока предсказания для текущего блока, когда для текущего блока применяется комбинированный режим предсказания; и получение третьего блока предсказания для текущего блока на основе операции взвешенной суммы для первого блока предсказания и второго блока предсказания. В этом случае первый блок предсказания может быть получен на основе информации о движении кандидата объединения текущего блока, а второй блок предсказания может быть получен на основе режима внутрикадрового предсказания текущего блока.
В рамках способа кодирования и декодирования видеосигнала в соответствии с настоящим изобретением может не допускаться использование треугольного разбиения для текущего блока, когда для текущего блока применяется комбинированный режим предсказания.
В рамках способа кодирования и декодирования видеосигнала в соответствии с настоящим изобретением режим внутрикадрового предсказания текущего блока может представлять собой планарный режим.
В рамках способа кодирования и декодирования видеосигнала в соответствии с настоящим изобретением второй блок предсказания может быть получен на основе строки в виде опорных образцов, включенной в смежную строку в виде опорных образцов.
В рамках способа кодирования и декодирования видеосигнала в соответствии с настоящим изобретением при осуществлении операции взвешенной суммы значения весов, используемые для первого блока предсказания и второго блока предсказания, могут быть определены на основе режимов кодирования предсказания соседних блоков, являющихся смежными для текущего блока.
В рамках способа кодирования и декодирования видеосигнала в соответствии с настоящим изобретением когда, по меньшей мере, одна из ширины и/или высоты текущего блока превышает пороговое значение, комбинированный режим предсказания может не использоваться для текущего блока.
В рамках способа кодирования и декодирования видеосигнала в соответствии с настоящим изобретением комбинированный режим предсказания может использоваться для текущего блока, когда флаг, указывающий на использование режима объединения для текущего блока, имеет значение true.
Признаки, которые кратко описаны выше в плане настоящего изобретения, представляют собой лишь примерные аспекты подробного описания настоящего изобретения, которое будет описано ниже, и не ограничивают объем настоящего изобретения.
В соответствии с настоящим изобретением эффективность межкадрового предсказания может быть повышена благодаря комбинированному способу предсказания, в рамках которого объединено несколько способов предсказания.
В соответствии с настоящим изобретением эффективность межкадрового предсказания может быть повышена благодаря способу разбиения блока кодирования на несколько блоков предсказания и получению информации о движении каждого из блоков предсказания.
Результаты, которые могут быть получены благодаря настоящему изобретению, не ограничиваются вышеуказанными результатами, при этом явно не указанные иные результаты могут являться очевидными специалистам в данной области на основании нижеследующего описания.
ОПИСАНИЕ ФИГУР
Фиг. 1 представляет собой блок-схему, на которой показан видеокодер в соответствии с вариантом осуществления настоящего изобретения.
Фиг. 2 представляет собой блок-схему, на которой показан видеодекодер в соответствии с вариантом осуществления настоящего изобретения.
На Фиг. 3 показан основной элемент дерева кодирования в соответствии с вариантом осуществления настоящего изобретения.
На Фиг. 4 показаны различные типы разбиения блока кодирования.
На Фиг. 5 показан паттерн разбиения элемента дерева кодирования.
На Фиг. 6 показана форма основного элемента данных.
На Фиг. 7 и 8 показаны примеры разбиения блока кодирования на несколько подблоков.
На Фиг. 9 представляет собой блок-схему, показывающую способ межкадрового предсказания в соответствии с вариантом осуществления настоящего изобретения.
Фиг. 10 представляет собой блок-схему, показывающую процесс получения информации о движении текущего блока с помощью режима объединения.
На Фиг. 11 показан пример блоков-кандидатов, используемых для получения кандидата объединения.
На Фиг. 12 показаны примеры разбиения блока кодирования на несколько элементов предсказания с помощью диагональной линии.
На Фиг. 13 показаны примеры разбиения блока кодирования на два элемента предсказания.
На Фиг. 14 показаны примеры разбиения блока кодирования на несколько блоков предсказания различного размера.
На Фиг. 15 показан пример использования диагонального разбиения для элемента преобразования.
На Фиг. 16 показаны соседние блоки, используемые для получения треугольного кандидата объединения.
На Фиг. 17 описаны примеры определения доступности соседнего блока для каждого треугольного элемента предсказания.
На Фиг. 18 и 19 показаны примеры получения образца предсказания на основе операции взвешенной суммы для первого образца предсказания и второго образца предсказания.
Фиг. 20 представляет собой блок-схему, показывающую способ внутрикадрового предсказания в соответствии с вариантом осуществления настоящего изобретения. На Фиг. 21 показаны режимы внутрикадрового предсказания.
На Фиг. 22 и 23 показан пример одномерного массива с группировкой опорных образцов в виде строки.
На Фиг. 24 показан пример углов, образованных между угловыми режимами внутрикадрового предсказания и прямой линией, параллельной оси X.
На Фиг. 25 показан вариант получения образцов предсказания когда текущий блок имеет неквадратную форму.
На Фиг. 26 показаны широкоугольные режимы внутрикадрового предсказания.
На Фиг. 27 показан вариант использования PDPC.
На Фиг. 28 показаны примеры использования значений весов.
На Фиг. 29 показаны примеры присваивания различного значения веса подблоку в соответствии с наличием у кандидата объединения двунаправленной информации о движении.
На Фиг. 30 показаны примеры присваивания различного значения веса подблоку в соответствии с режимом внутрикадрового предсказания текущего блока.
На Фиг. 31 показан пример, в рамках которого второй кандидат объединения указан с учетом порядка поиска блоков-кандидатов.
На Фиг. 32 показан пример, в рамках которого первый кандидат объединения и второй кандидат объединения выбраны среди кандидатов объединения, полученных из не являющихся соседними блоков.
Фиг. 33 описывает пример определения второго кандидата объединения.
На Фиг. 34 показан пример, в рамках которого значения веса, используемые для блоков предсказания, определены на основе формы блоков-кандидатов.
На Фиг. 35 показан пример, в рамках которого кандидат объединения является замененным.
На Фиг. 36 и 37 показан подблок, для которого будет произведено второе преобразование.
Фиг. 38 описывает примеры определения типа преобразования текущего блока.
Фиг. 39 представляет собой блок-схему, показывающую процесс определения силы блока.
На Фиг. 40 показаны предварительно определенные фильтры-кандидаты.
ПОДРОБНОЕ ОПИСАНИЕ ПРЕДПОЧТИТЕЛЬНОГО ВАРИАНТА ОСУЩЕСТВЛЕНИЯ
Далее будет подробно описан вариант осуществления настоящего изобретения со ссылкой на прилагаемые фигуры.
Кодирование и декодирование видео осуществляется на основе элементов в виде блоков. Например, процесс кодирования/декодирования, такой как преобразование, квантование, предсказание, петлевая фильтрация, восстановление и им подобный может осуществляться для блока кодирования, блока преобразования, или блока предсказания.
Подвергаемый кодированию/декодированию блок будет далее называться "текущим блоком". Например, текущий блок может соответствовать блоку кодирования, блоку преобразования, или блоку предсказания в соответствии с текущим этапом процесса кодирования/декодирования.
Кроме того, следует понимать, что термин "элемент", используемый в данном описании, обозначает основной элемент для осуществления определенного процесса кодирования/декодирования, а термин "блок" обозначает массив образцов предопределенного размера. Если не указано иное, термины "блок" и "элемент" могут использоваться в качестве имеющих одинаковое значение. Например, следует понимать, что в рамках описанного ниже варианта осуществления термины "блок кодирования" и "элемент кодирования" имеют одинаковое значение.
Фиг. 1 представляет собой блок-схему, на которой показан видеокодер в соответствии с вариантом осуществления настоящего изобретения.
В соответствии с Фиг. 1, устройство для кодирования видео 100 может включать часть для разбиения изображения 110, часть для предсказания 120 и 125, часть для преобразования 130, часть для квантования 135, часть для перегруппировки 160, часть для энтропийного кодирования 165, часть для обратного квантования 140, часть для обратного преобразования 145, часть для фильтрации 150, и память 155.
Каждый из компонентов, показанных на Фиг. 1, независимо отражает характерные отличные друг от друга функции в рамках устройства для кодирования видео, и при этом не означает, что каждый компонент образован элементом конфигурации в виде отдельного аппаратного обеспечения или единого программного обеспечения. То есть каждый компонент является включенным для указания в качестве компонента для удобства объяснения и при этом, по меньшей мере, два компонента могут быть объединены в форме единого компонента, или один компонент может быть разделен на несколько компонентов для реализации функции. Интегрированные варианты осуществления и отдельные варианты осуществления компонентов также включаются в объем настоящего изобретения, если они не выходят за рамки сущности настоящего изобретения.
Кроме того, некоторые компоненты не являются неотъемлемыми компонентами, реализующими неотъемлемые функции в рамках настоящего изобретения, но могут представлять собой необязательные компоненты, предназначенные лишь для повышения эффективности. Настоящее изобретение может быть реализовано путем включения лишь компонентов, являющихся необходимыми для реализации сущности настоящего изобретения, исключая компоненты, используемые для повышения эффективности, при этом структура, включающая лишь неотъемлемые компоненты, исключая необязательные компоненты, используемые для повышения эффективности, также включена в объем настоящего изобретения.
Часть для разбиения изображения 110 может разбивать входное изображение, по меньшей мере, на один элемент обработки. В этом случае элемент обработки может представлять собой элемент предсказания (PU), элемент преобразования (TU), или элемент кодирования (CU). Часть для разбиения изображения 110 может разбивать изображение на комбинацию из нескольких элементов кодирования, элементов предсказания, и элементов преобразования, и кодировать изображение путем выбора комбинации из элемента кодирования, элемента предсказания, и элемента преобразования на основе предварительно определенного критерия (например, функции стоимости).
Например, одно изображение может быть разбито на несколько элементов кодирования. Для разбиения элементов кодирования в рамках изображения может использоваться рекурсивная древовидная структура, такая как структура в виде дерева квадрантов. Видео или элемент кодирования, разбитый на различные элементы кодирования с использованием наиболее крупного элемента кодирования в качестве корня, может быть разбит с получением дочерних узлов в количестве, соответствующем количеству разбитых элементов кодирования. Элемент кодирования, который более не разбивается в соответствии с предварительно определенным ограничением, становится листовым узлом. То есть когда определяется, что для одного элемента кодирования возможно только квадратное разбиение, указанный один элемент кодирования может быть разбит на различные элементы кодирования в количестве до четырех.
Далее в рамках варианта осуществления настоящего изобретения указанный элемент кодирования может использоваться в качестве обозначения элемента, осуществляющего кодирование, или элемента, осуществляющего декодирование.
Элемент предсказания может представлять собой элемент, который разбит в форме, соответствующей, по меньшей мере, одной форме из квадрата, прямоугольника или им подобных одинакового размера в рамках одного элемента кодирования, или он может представлять собой любой элемент предсказания среди элементов предсказания, разбитых в рамках одного элемента кодирования, который разбит с образованием формы и/или размера, отличающегося от формы и/или размера элемента предсказания.
Если элемент кодирования не является самым малым элементом кодирования при получении элемента предсказания, который осуществляет внутрикадровое предсказание на основе элемента кодирования, то внутрикадровое предсказание может быть осуществлено без разбиения изображения на несколько элементов предсказания Ν × N.
Часть для предсказания 120 и 125 может включать часть для межкадрового предсказания 120, которая осуществляет межкадровое предсказание, и часть для внутрикадрового предсказания 125, которая осуществляет внутрикадровое предсказание. Может быть определена необходимость использования межкадрового предсказания или осуществления внутрикадрового предсказания для элемента предсказания и определения определенной информации (например, режима внутрикадрового предсказания, вектора движения, опорного изображения и так далее) в соответствии с каждым способом предсказания. В этом случае элемент обработки для осуществления предсказания может отличаться от элемента обработки для определения способа предсказания и определенного контента. Например, способ предсказания и режим предсказания могут быть определены в рамках элемента предсказания, при этом предсказание может быть осуществлено в рамках элемента преобразования. Остаточный коэффициент (остаточный блок) между полученным блоком предсказания и исходным блоком может быть подан на вход части для преобразования 130. Кроме того, информация о режиме предсказания, информация о векторе движения и им подобные виды информации, используемые для предсказания, могут кодироваться частью для энтропийного кодирования 165 наряду с остаточным коэффициентом и могут быть переданы декодеру. При использовании определенного режима кодирования исходный блок может быть закодирован в первоначальном виде и передан декодеру без получения блока предсказания с помощью части для предсказания 120 и 125.
Часть для межкадрового предсказания 120 может предсказывать элемент предсказания на основе информации, по меньшей мере, об одном изображении среди изображений до или после текущего изображения и в некоторых случаях она может предсказывать элемент предсказания на основе информации о частичной области, которая была закодирована в рамках текущего изображения. Часть для межкадрового предсказания 120 может включать часть для интерполяции опорного изображения, часть для предсказания движения, и часть для компенсации движения.
Часть для интерполяции опорного изображения может получать информацию об опорном изображении из памяти 155 и генерировать информацию о пикселях целого числа пикселей или менее из опорного изображения. В случае пиксела яркости может использоваться 8-ступенчатый интерполяционный фильтр на основе DCT с переменным коэффициентом фильтрации для генерирования информации о пикселях целого числа пикселей или менее для элемента в виде 1/4 пикселей. В случае сигнала цветности может использоваться 4-ступенчатый интерполяционный фильтр на основе DCT с переменным коэффициентом фильтрации для генерирования информации о пикселах целого числа пикселей или менее для элемента в виде 1/8 пикселей.
Часть для предсказания движения может осуществлять предсказание движения на основе опорного изображения, подвергнутого интерполяции с помощью части для интерполяции опорного изображения. В качестве способа расчета вектора движения могут применяться различные способы, такие как алгоритм полного поиска совпадений блоков (full search-based matching algorithm, FBMA), трехэтапный алгоритм поиска (three-step search, TSS) и новый трехэтапный алгоритм поиска (new three-step search, NTS). Вектор движения может иметь значение вектора движения, соответствующее элементу в виде 1/2 или 1/4 пикселей, на основе интерполированных пикселей. Часть для предсказания движения может предсказывать текущий элемент предсказания путем корректирования способа предсказания движения. В качестве режима предсказания движения могут применяться различные способы, такие как режим пропуска, режим объединения, продвинутый режим предсказания вектора движения (AMVP), режим внутриблочного копирования и им подобные.
Часть для внутрикадрового предсказания 125 может генерировать элемент предсказания на основе информации об опорных пикселях в области текущего блока, которая представляет собой информацию о пикселях в рамках текущего изображения. Когда блок в области текущего элемента предсказания представляет собой блок, для которого было осуществлено межкадровое предсказание, и, таким образом, опорный пиксел представляет собой пиксел, для которого было осуществлено межкадровое предсказание, то опорный пиксел, включенный в блок, для которого было осуществлено межкадровое предсказание, может использоваться вместо информации об опорном пикселе блока в области, для которой было осуществлено внутрикадровое предсказание. То есть когда опорный пиксел недоступен, то, по меньшей мере, один опорный пиксел из доступных опорных пикселей может использоваться вместо информации о недоступном опорном пикселе.
При внутрикадровом предсказании режим предсказания может иметь угловой режим предсказания, в рамках которого используется информация об опорном пикселе в соответствии с направлением предсказания, и неугловой режим предсказания, в рамках которого не используется информации о движении при осуществлении предсказания. Режим для предсказания информации о яркости может отличаться от режима для предсказания информации о цветности, при этом информация о режиме внутрикадрового предсказания, используемая для предсказания информации о яркости, или информация о предсказании сигнала яркости может использоваться для предсказания информации о цветности.
Если размер элемента предсказания такой же, что и размер элемента преобразования при осуществлении внутрикадрового предсказания, то внутрикадровое предсказание может быть осуществлено для элемента предсказания на основе пиксела на левой стороне, пиксела на верхней левой стороне, и пиксела на верхней стороне элемента предсказания. Однако если размер элемента предсказания отличается от размера элемента преобразования при осуществлении внутрикадрового предсказания, то внутрикадровое предсказание может быть осуществлено с помощью опорного пиксела на основе элемента преобразования. Кроме того, внутрикадровое предсказание с применением N×N разбиения может использоваться только для наименьшего элемента кодирования.
Способ внутрикадрового предсказания может генерировать блок предсказания после использования Фильтра адаптивного внутреннего сглаживания (AIS) для опорного пиксела в соответствии с режимом предсказания. Тип AIS фильтра, используемого для опорного пиксела, может варьироваться. В целях осуществления способа внутрикадрового предсказания режим внутрикадрового предсказания текущего элемента предсказания может быть предсказан на основе режима внутрикадрового предсказания элемента предсказания, расположенного поблизости от текущего элемента предсказания. Когда режим предсказания текущего элемента предсказания предсказывается с помощью информации о режиме, предсказанной на основе соседнего элемента предсказания, то если режимы внутрикадрового предсказания текущего элемента предсказания являются такими же, что и у расположенного поблизости элемента предсказания, то информация, указывающая на то, что режимы предсказания текущего элемента предсказания совпадают с расположенным поблизости элементом предсказания, может быть передана с помощью предварительно определенной информации в виде флага, при этом если режимы предсказания текущего элемента предсказания и расположенного поблизости элемента предсказания отличаются друг от друга, то информация о режиме предсказания текущего блока может быть закодирована путем осуществления энтропийного кодирования.
Кроме того, может быть получен остаточный блок, включая элемент предсказания, который осуществил предсказание на основе элемента предсказания, сгенерированного частью для предсказания 120 и 125, и информация в виде остаточного коэффициента, которая представляет собой значение разности элемента предсказания и исходного блока. Полученный остаточный блок может быть подан на вход части для преобразования 130.
Часть для преобразования 130 может преобразовывать остаточный блок, включая исходный блок и информацию в виде остаточного коэффициента элемента предсказания, полученного с помощью части для предсказания 120 и 125, с помощью способа преобразования, такого как Дискретное косинусное преобразование (DCT) или Дискретное синусное преобразование (DST). В этом случае ядро преобразования DCT включает, по меньшей мере, DCT2 и/или DCT8, при этом ядро DST преобразования включает DST7. Необходимость использования DCT или DST для преобразования остаточного блока может быть определена на основе информации о режиме внутрикадрового предсказания элемента предсказания, используемого для получения остаточного блока. Преобразование остаточного блока может быть пропущено. Может быть закодирован флаг, указывающий на необходимость пропуска преобразования остаточного блока. Пропуск преобразования может быть разрешен для остаточного блока с размером менее или равным пороговому значению, компонентом яркости, или компонентом цветности в формате 4:4:4.
Часть для квантования 135 может квантовать значения, преобразованные в частотную область частью для преобразования 130. Коэффициенты квантования могут варьироваться в зависимости от блока или важности видео. Значение, вычисленное частью для квантования 135, может быть передано в часть для обратного квантования 140 и часть для перегруппировки 160.
Часть для перегруппировки 160 может перегруппировывать значения коэффициентов для квантованных остаточных коэффициентов.
Часть для перегруппировки 160 может изменять коэффициенты с формой в виде двумерного блока в форму в виде одномерного вектора с помощью способа на основе сканирования коэффициентов. Например, часть для перегруппировки 160 может сканировать DC коэффициенты вплоть до коэффициентов высокочастотной области с помощью способа на основе зигзагообразного сканирования и изменять коэффициенты с получением формы в виде одномерного вектора. В соответствии с размером элемента преобразования и режимом внутрикадрового предсказания вместо зигзагообразного сканирования может использоваться вертикальное сканирование коэффициентов в форме двумерного блока по соответствующему столбцам направлению и горизонтальное сканирование коэффициентов в форме двумерного блока по соответствующему строкам направлению. То есть, в соответствии с размером элемента преобразования и режимом внутрикадрового предсказания, используемый способ сканирования будет выбран из зигзагообразного сканирования, сканирования в вертикальном направлении, и сканирования в горизонтальном направлении.
Часть для энтропийного кодирования 165 может осуществлять энтропийное кодирование на основе значений, вычисленных частью для перегруппировки 160. В рамках энтропийного кодирования могут использоваться различные способы кодирования, такие как экспоненциальное кодирование Голомба, контекстно-адаптивное кодирование на основе переменной длины (CAVLC), и контекстно-адаптивное двоичное арифметическое кодирование (САВАС).
Часть для энтропийного кодирования 165 может кодировать различную информацию, такую как информация в виде остаточного коэффициента и информация о типе блока элемента кодирования, информация о режиме предсказания, информация об элементе разбиения, информация об элементе предсказания и информация об элементе передачи, информация о векторе движения, информация об опорном кадре, информация об интерполяции блока и информация о фильтрации, поступающая от части для перегруппировки 160 и частей для предсказания 120 и 125.
Часть для энтропийного кодирования 165 может осуществлять энтропийное кодирование значения коэффициента элемента кодирования, поступающего от части для перегруппировки 160.
Часть для обратного квантования 140 и часть для обратного преобразования 145 обеспечивают обратное квантование значений, квантованных частью для квантования 135, и обратное преобразование значений, преобразованных частью для преобразования 130. Остаточный коэффициент, сгенерированный частью для обратного квантования 140 и частью для обратного преобразования 145, может быть объединен с элементом предсказания, предсказанным с помощью части для оценки движения, части для компенсации движения, и части для внутрикадрового предсказания, включенных в часть для предсказания 120 и 125, для получения восстановленного блока.
Часть для фильтрации 150 может включать, по меньшей мере, один из следующих элементов: фильтр удаления блочности, элемент коррекции сдвига, и адаптивный петлевой фильтр (ALF).
Фильтр удаления блочности может удалять искажение блоков, возникающее вследствие границы между блоками в восстановленном изображении. Для определения необходимости удаления блочности необходимость применения фильтра удаления блочности для текущего блока может быть определена на основе пикселей, включенных в несколько столбцов или строк, входящих в состав блока. Может быть использован сильный фильтр или слабый фильтр в соответствии с силой фильтрации для удаления блочности, необходимой при использовании фильтра удаления блочности для блока. Кроме того, при осуществлении фильтрации в вертикальном направлении и фильтрации в горизонтальном направлении во время использования фильтра удаления блочности фильтрация в горизонтальном направлении и фильтрация в вертикальном направлении могут производиться одновременно.
Элемент коррекции сдвига может корректировать сдвиг относительно исходного изображения в единицах в виде пикселей для изображения, в отношении которого проводится удаление блочности. Для осуществления коррекции сдвига для определенного изображения возможно использовать способ на основе разделения пикселей, включенных в изображение, на определенное количество областей, определения области для осуществления сдвига, и осуществления сдвига для данной области, или способ осуществления сдвига с учетом информации о крае каждого пиксела.
Адаптивный петлевой фильтр (ALF) может быть реализован на основе значения, полученного путем сравнения подвергнутого фильтрации восстановленного изображения и исходного изображения. После разделения включенных в изображение пикселей на предварительно определенные группы может быть определен один фильтр для применения для соответствующей группы, при этом фильтрация для каждой группы может быть осуществлена различным образом. Сигнал яркости, который представляет собой информацию, связанную с необходимостью применения ALF, может быть передан для каждого элемента кодирования (CU), при этом форма и коэффициент фильтрации применяемого ALF фильтра могут варьироваться в зависимости от каждого блока. Кроме того, ALF фильтр того же типа (фиксированного типа) может применяться вне зависимости от используемой характеристики блока.
Память 155 может хранить восстановленный блок или изображение, вычисленное с помощью части для фильтрации 150, при этом восстановленный и хранимый блок или изображение могут быть переданы части для предсказания 120 и 125 при осуществлении межкадрового предсказания.
Фиг. 2 представляет собой блок-схему, на которой показан видеодекодер в соответствии с вариантом осуществления настоящего изобретения.
В соответствии с Фиг. 2, видеодекодер 200 может включать часть для энтропийного декодирования 210, часть для перегруппировки 125, часть для обратного квантования 220, часть для обратного преобразования 225, часть для предсказания 230 и 235, часть для фильтрации 240, и память 245.
Когда поток битов видео поступает из видеокодера, поступающий поток битов может быть декодирован в рамках процедуры, являющейся обратной процедуре, используемой в рамках видеокодера.
Часть для энтропийного декодирования 210 может осуществлять энтропийное декодирование в рамках процедуры, обратной процедуре осуществления энтропийного кодирования в рамках части для энтропийного декодирования видеокодера. Например, могут применяться различные способы, соответствующие способу, применяющемуся в рамках видеокодера, такие как экспоненциальное кодирование Голомба, контекстно-адаптивное кодирование на основе переменной длины (CAVLC), и контекстно-адаптивное двоичное арифметическое кодирование (САВАС).
Часть для энтропийного декодирования 210 может декодировать информацию, связанную с внутрикадровым предсказанием и межкадровым предсказанием, осуществляемым кодировщиком.
Часть для перегруппировки 215 может осуществлять перегруппировку для потока битов, подвергнутого энтропийному декодированию с помощью части для энтропийного декодирования 210, на основе способа перегруппировки, осуществляемого кодировщиком. Коэффициенты, выраженные в форме одномерного вектора, могут быть восстановлены и перегруппированы в виде коэффициентов в форме двумерного блока. Часть для перегруппировки 215 может получать информацию, связанную со сканированием коэффициентов, осуществленным частью для кодирования, и осуществлять восстановление с помощью способа обратного сканирования на основе порядка сканирования, осуществленного соответствующей частью для кодирования.
Часть для обратного квантования 220 может осуществлять обратное квантование на основе параметра квантования, переданного кодировщиком, и значения коэффициента перегруппированного блока.
Часть для обратного преобразования 225 может осуществлять обратное преобразование преобразования, то есть DCT или DST, осуществленного частью для преобразования для результата квантования, осуществленного видеокодером, то есть обратное DCT или обратное DST. В этом случае ядро преобразования DCT может включать, по меньшей мере, одно из DCT2 и DCT8, а ядро преобразования DST может включать DST7. В качестве альтернативы, при пропуске преобразования в видеокодере даже часть для обратного преобразования 225 не может осуществить обратное преобразование. Обратное преобразование может быть осуществлено на основе элемента передачи, определенного видеокодером. Часть для обратного преобразования 225 видеодекодер может избирательно реализовывать способ преобразования (например DCT или DST) в соответствии с несколькими элементами информации, такими как способ предсказания, размер текущего блока, направление предсказания и им подобными.
Часть для предсказания 230 и 235 может генерировать блок предсказания на основе информации, связанной с генерированием блока предсказания, переданной частью для энтропийного декодирования 210, и информации о ранее декодированном блоке или изображении, переданной памятью 245.
Как описано выше, если размер элемента предсказания и размер элемента преобразования одинаковы в случае, когда внутрикадровое предсказание осуществляется таким же образом, что и работа видеокодера, то внутрикадровое предсказание осуществляется для элемента предсказания на основе пиксела, расположенного на левой стороне, пиксела на верхней-левой стороне, и пиксела на верхней стороне элемента предсказания. Однако, если размер элемента предсказания и размер элемента преобразования являются различными когда осуществляется внутрикадровое предсказание, то внутрикадровое предсказание может быть осуществлено с применением опорного пиксела на основе элемента преобразования. Кроме того, внутрикадровое предсказание с применением N × N разбиения может использоваться только для наименьшего элемента кодирования.
Часть для предсказания 230 и 235 может включать часть для определения элемента предсказания, часть для межкадрового предсказания, и часть для внутрикадрового предсказания. Часть для определения элемента предсказания может получать различную информацию, такую как информация об элементе предсказания, поступающая от части для энтропийного декодирования 210, информация о режиме предсказания в рамках способа внутрикадрового предсказания, информацию, связанную с предсказанием движения в рамках способа межкадрового предсказания, и им подобную, идентифицировать элемент предсказания на основе текущего элемента кодирования и определять осуществление элементом предсказания межкадрового предсказания или внутрикадрового предсказания. Часть для межкадрового предсказания 230 может осуществлять межкадровое предсказание для текущего элемента предсказания на основе информации, включенной, по меньшей мере, в одно изображения среди изображений до или после текущего изображения, включая текущий элемент предсказания, за счет использования информации, необходимой для межкадрового предсказания текущего элемента предсказания, переданного видеокодером. В качестве альтернативы, часть для межкадрового предсказания 230 может осуществлять межкадровое предсказание на основе информации о частичной области, которая была ранее восстановлена в рамках текущего изображения, включая текущий элемент предсказания.
Для осуществления межкадрового предсказания на основе элемента кодирования может быть определено то, является ли способ предсказания движения элемента предсказания, включенного в соответствующий элемент кодирования, режимом с пропуском, режимом объединения, продвинутым режимом предсказания вектора движения (AMVP режимом), или режимом внутриблочного копирования.
Часть для внутрикадрового предсказания 235 может генерировать блок предсказания на основе информации о пикселе в текущем изображении. Когда элемент предсказания представляет собой элемент предсказания, который осуществил внутрикадровое предсказание, то внутрикадровое предсказание может быть осуществлено на основе информации о режиме внутрикадрового предсказания элемента предсказания, переданного видеокодером. Часть для внутрикадрового предсказания 235 может включать Фильтр адаптивного внутреннего сглаживания (AIS), часть для интерполяции опорных пикселей, и DC фильтр. AIS фильтр представляет собой часть, которая осуществляет фильтрацию для опорного пиксела текущего блока и может определять необходимость применения фильтра в соответствии с режимом предсказания текущего элемента предсказания и применять фильтр. AIS фильтрация может быть осуществлена для опорного пиксела текущего блока путем применения режима предсказания и информации об AIS фильтрации элемента предсказания, переданной видеокодером. AIS фильтр не может применяться когда режим предсказания текущего блока представляет собой режим, в рамках которого не осуществляется AIS фильтрация.
Когда режим предсказания элемента предсказания представляет собой элемент предсказания, который осуществляет внутрикадровое предсказание на основе значения пиксела, полученного путем интерполяции опорного пиксела, то часть для интерполяции опорных пикселей может генерировать опорный пиксел пиксельного элемента с целым значением или значением менее чем целое значение путем интерполяции опорного пиксела. Опорный пиксел не может подвергаться интерполяции когда режим предсказания текущего элемента предсказания представляет собой режим предсказания, в рамках которого генерируется блок предсказания без интерполяции опорного пиксела. DC фильтр может генерировать блок предсказания путем фильтрации когда режим предсказания текущего блока представляет собой DC режим.
Восстановленный блок или изображение может быть передано части для фильтрации 240. Часть для фильтрации 240 может включать фильтр удаления блочности, элемент коррекции сдвига, и ALF.
Информация о применении фильтра удаления блочности для соответствующего блока или изображения и информация о применении сильного фильтра или слабого фильтра при применении фильтра удаления блочности может быть передана видеокодером. Фильтру удаления блочности видеодекодера может быть передана информация, связанная с фильтром удаления блочности, переданная видеокодером, при этом видеодекодер может осуществлять удаление блочности для соответствующего блока.
Элемент коррекции сдвига может осуществлять коррекцию сдвига для восстановленного изображения на основе типа коррекции сдвига и информации о значении сдвига, примененных для видео при осуществлении кодирования.
ALF может применяться для элемента кодирования на основе информации о необходимости применения ALF и информации о коэффициентах ALF, переданной кодировщиком. Информация об ALF может быть передана для включения в определенный набор параметров.
Память 245 может хранить восстановленное изображение или блок и применять его в качестве опорного изображения или опорного блока и может передавать восстановленное изображение выходному элементу.
На Фиг. 3 показан основной элемент дерева кодирования в соответствии с вариантом осуществления настоящего изобретения.
Блок кодирования максимального размера может быть определен как блок дерева кодирования. Изображение разбивается на несколько элементов дерева кодирования (CTU). Элемент дерева кодирования представляет собой элемент кодирования, имеющий максимальный размер, и может называться Наибольшим элементом кодирования (LCU). На Фиг. 3 показан пример, в рамках которого изображение разбито на несколько элементов дерева кодирования.
Размер элемента дерева кодирования может быть определен на уровне изображения или уровне последовательности. В этом случае с помощью набора параметров изображения или набора параметров последовательности может быть передана информация, указывающая на размер элемента дерева кодирования.
Например, размер элемента дерева кодирования для всего изображения в рамках последовательности может составлять 128 × 128. В качестве альтернативы, на уровне изображения любой размер из 128 × 128 и 256 × 256 может быть определен в качестве размера элемента дерева кодирования. Например, размер элемента дерева кодирования может составлять 128 × 128 в первом изображении, при этом размер элемента дерева кодирования может составлять 256 × 256 во втором изображении.
Блоки кодирования могут быть получены путем разбиения элемента дерева кодирования. Блок кодирования указывает на основной элемент для осуществления кодирования/декодирования. Например, предсказание или преобразование могут быть осуществлены для каждого блока кодирования или режим кодирования предсказания может быть определен для каждого блока кодирования. В этом случае режим кодирования предсказания указывает на способ получения изображения предсказания. Например, режим кодирования предсказания может включать предсказание в рамках изображения (внутрикадровое предсказание), предсказание между изображениями (межкадровое предсказание), привязку к текущему изображению (CPR), или внутриблочное копирование (IBC), или комбинированное предсказание. Для блока кодирования блок предсказания может быть получен путем использования, по меньшей мере, одного из следующих режимов кодирования предсказания: внутрикадрового предсказания, межкадрового предсказания, привязки к текущему изображению, и комбинированного предсказания.
Информация с указанием режима кодирования предсказания текущего блока может быть передана с помощью потока битов. Например, данная информация может представлять собой 1-битный флаг, указывающий на то, что режим кодирования предсказания представляет собой внутрикадровый режим или межкадровый режим. Привязка к текущему изображению или комбинированное предсказание могут использоваться только при определении режима кодирования предсказания текущего блока в качестве межкадрового режима.
Привязка к текущему изображению предназначена для использования текущего изображения в качестве опорного изображения и получения блока предсказания текущего блока на основе области в рамках текущего изображения, которая была ранее подвергнута кодированию/декодированию. В этом случае термин "текущее изображение" означает изображение, включающее текущий блок. Информация с указанием применения привязки к текущему изображению для текущего блока может быть передана с помощью потока битов. Например, данная информация может представлять собой 1-битный флаг. Когда значение флага соответствует true, режим кодирования предсказания текущего блока может быть определен как привязка к текущему изображению, а когда значение флага соответствует false, режим предсказания текущего блока может быть определен как межкадровое предсказание.
В качестве альтернативы, режим кодирования предсказания текущего блока может быть определен на основе указателя опорного изображения. Например, когда указатель опорного изображения указывает на текущее изображение, режим кодирования предсказания текущего блока может быть определен как привязка к текущему изображению. Когда указатель опорного изображения указывает на изображение отличное от текущего изображения, режим кодирования предсказания текущего блока может быть определен как межкадровое предсказание. То есть привязка к текущему изображению представляет собой способ предсказания на основе информации об области в рамках текущего изображения, подвергнутой кодированию/декодированию, а межкадровое предсказание представляет собой способ предсказания на основе информации о другом изображении, для которого было завершено кодирование/декодирование.
Комбинированное предсказание соответствует режиму кодирования, при котором комбинируются два или более из следующих видов предсказания: внутрикадровое предсказание, межкадровое предсказание, и привязка к текущему изображению. Например, при применении комбинированного предсказания первый блок предсказания может быть получен на основе одного из следующих видов предсказания: внутрикадрового предсказания, межкадрового предсказания, и привязки к текущему изображению, а второй блок предсказания может быть получен на основе другого из них. При получении первого блока предсказания и второго блока предсказания конечный блок предсказания может быть получен с помощью операции усреднения или операции взвешенной суммы для первого блока предсказания и второго блока предсказания. Информация, указывающая на применение комбинированного предсказания, может быть передана с помощью потока битов. Данная информация может представлять собой 1-битный флаг.
На Фиг. 4 показаны различные типы разбиения блока кодирования.
Блок кодирования может быть разбит на несколько блоков кодирования на основе разбиения на основе дерева квадрантов, разбиения на основе двоичного дерева, или разбиения на основе тернарного дерева. Разбитый блок кодирования может быть снова разбит на множество блоков кодирования в соответствии с разбиением на основе дерева квадрантов, разбиением на основе двоичного дерева, или разбиением на основе тернарного дерева.
Разбиение на основе дерева квадрантов означает способ разбиения, в рамках которого осуществляется разбиение текущего блока на четыре блока. В результате разбиения на основе дерева квадрантов текущий блок может быть разбит на четыре части квадратной формы (см. 'SPLIT_QT' на Фиг. 4 (а)).
Разбиение на основе бинарного дерева означает способ разбиения, в рамках которого осуществляется разбиение текущего блока на два блока. Разбиение текущего блока на два блока вдоль вертикального направления (то есть с применением вертикальной линии, пересекающей текущий блок) может быть обозначено как разбиение на основе двоичного дерева в вертикальном направлении, а разбиение текущего блока на два блока вдоль горизонтального направления (то есть с применением горизонтальной линии, пересекающей текущий блок) может быть обозначено как разбиение на основе двоичного дерева в горизонтальном направлении. В результате разбиения на основе двоичного дерева текущий блок может быть разбит на две части неквадратной формы. 'SPLIT_ВТ_VER' на Фиг. 4 (b) показывает результат разбиения на основе двоичного дерева в вертикальном направлении, a 'SPLIT_BT_HOR' of FIG. 4 (с) показывает результат разбиения на основе двоичного дерева в горизонтальном направлении.
Разбиение на основе тернарного дерева означает способ разбиения, в рамках которого осуществляется разбиение текущего блока на три блока. Разбиение текущего блока на три блока вдоль вертикального направления (то есть с применением двух вертикальных линий, пересекающих текущий блок) может быть обозначено как разбиение на основе тернарного дерева в вертикальном направлении, а разбиение текущего блока на три блока вдоль горизонтального направления (то есть с применением двух горизонтальных линий, пересекающих текущий блок) может быть обозначено как разбиение на основе тернарного дерева в горизонтальном направлении В результате разбиения на основе тернарного дерева текущий блок может быть разбит на три части неквадратной формы. В этом случае ширина/высота части, расположенной в центре текущего блока, может быть в два раза больше, чем ширина/высота других частей. 'SPLIT_ТТ_VER' на Фиг. 4 (d) показывает результат разбиения на основе тернарного дерева в вертикальном направлении, а 'SPLIT_TT_HOR' на Фиг. 4 (е) показывает результат разбиения на основе тернарного дерева в горизонтальном направлении.
Количество разбиений элемента дерева кодирования может быть определено как глубина разбиения. Максимальная глубина разбиения элемента дерева кодирования может быть определена как уровень последовательности или изображения. Соответственно, максимальная глубина разбиения элемента дерева кодирования может быть различной для каждой последовательности или изображения.
В качестве альтернативы, максимальная глубина разбиения для каждого способа разбиения может быть определена индивидуально. Например, максимальная глубина разбиения, допустимая для разбиения на основе дерева квадрантов, может являться отличной от максимальной глубины разбиения, допустимой для разбиения на основе двоичного дерева, и/или разбиения на основе тернарного дерева.
Кодировщик может передавать информацию с помощью потока битов с указанием, по меньшей мере, одного из следующих признаков: типа разбиения и глубины разбиения текущего блока. Декодер может определять тип разбиения и глубину разбиения элемента дерева кодирования на основе информации, распознанной из потока битов.
На Фиг. 5 показан паттерн разбиения элемента дерева кодирования.
Разбиение блока кодирования с применением такого способа разбиения, как разбиение на основе дерева квадрантов, разбиение на основе двоичного дерева, и/или разбиение на основе тернарного дерева может быть обозначено как разбиение на основе множественного дерева.
Блоки кодирования, полученные с помощью применения разбиения на основе множественного дерева для блока кодирования, могут быть обозначены как нижние блоки кодирования. Когда глубина разбиения блока кодирования составляет к, глубина разбиения нижних блоков кодирования соответствует k+1.
Напротив, для блоков кодирования с глубиной разбиения k+1 блок кодирования с глубиной разбиения к может быть обозначен как верхний блок кодирования.
Тип разбиения текущего блока кодирования может быть определен на основе, по меньшей мере, одного из следующих признаков: типа разбиения верхнего блока кодирования и типа разбиения соседнего блока кодирования. В этом случае соседний блок кодирования представляет собой блок кодирования, являющийся смежным по отношению к текущему блоку кодирования, и может включать, по меньшей мере, один из следующих блоков: верхний соседний блок и левый соседний блок текущего блока кодирования, и соседний блок, являющийся смежным по отношению к верхнему левому углу. В этом случае тип разбиения может включать, по меньшей мере, определение одного из следующих признаков: наличия или отсутствия разбиения на основе дерева квадрантов, наличия или отсутствия разбиения на основе двоичного дерева, направления разбиения на основе двоичного дерева, наличия или отсутствия разбиения на основе тернарного дерева, и направления разбиения на основе тернарного дерева.
Для определения типа разбиения блока кодирования информация, указывающая на возможность разбиения блока кодирования, может быть передана с помощью потока битов. Данная информация представляет собой 1-битный флаг 'split_cu_flag', при этом когда его значение соответствует true, он указывает на то, что блок кодирования разбит с помощью способа разбиения на основе дерева квадрантов.
Когда значение split_cu_flag соответствует true, информация с указанием того, что блок кодирования разбит на основе дерева квадрантов, может быть передана с помощью потока битов. Данная информация представляет собой 1-битный флаг 'split_qt_flag', при этом когда его значение соответствует true, блок кодирования может быть разбит на четыре блока.
Например, в рамках примера, показанного на Фиг. 5, элемент дерева кодирования является разбитым на основе дерева квадрантов, при этом получены четыре блока кодирования с глубиной разбиения 1. Кроме того, показано, что разбиение на основе дерева квадрантов применяется снова для первого и четвертого блоков кодирования из четырех блоков кодирования, полученных в результате разбиения на основе дерева квадрантов. В качестве результата, могут быть получены четыре блока кодирования с глубиной разбиения 2.
Кроме того, блоки кодирования с глубиной разбиения 3 могут быть получены путем еще одного применения разбиения на основе дерева квадрантов для блоков кодирования с глубиной разбиения 2.
Когда разбиение на основе дерева квадрантов не используется для блока кодирования, может быть определено использование разбиения на основе двоичного дерева или разбиения на основе тернарного дерева для блока кодирования с учетом, по меньшей мере, одного из следующих признаков: размера блока кодирования, расположения блока кодирования у края изображения, максимальной глубины разбиения, и типа разбиения соседнего блока. При определении необходимости осуществления разбиения на основе двоичного дерева или разбиения на основе тернарного дерева для блока кодирования информация, указывающая на направление разбиения, может быть передана с помощью потока битов. Данная информация может представлять собой 1-битный флаг mtt_split_cu_vertical_flag. На основе данного флага может быть определено то, является ли направление разбиения вертикальным направлением или горизонтальным направлением. Кроме того, информация, указывающая на применение разбиения на основе двоичного дерева или разбиения на основе тернарного дерева для блока кодирования, может быть передана с помощью потока битов. Данная информация может представлять собой 1-битный флаг mtt_split_cu_binary_flag. На основе данного флага может быть определено использование разбиения на основе двоичного дерева или разбиения на основе тернарного дерева для блока кодирования.
Например, в рамках примера на Фиг. 5 показано, что разбиение на основе двоичного дерева в вертикальном направлении используется для блока кодирования с глубиной разбиения 1, разбиение на основе тернарного дерева в вертикальном направлении используется для блока кодирования на левой стороне среди всех блоков кодирования, полученных в результате разбиения, и разбиение на основе двоичного дерева в вертикальном направлении используется для блока кодирования на правой стороне.
При реализации устройства для кодирования или декодирования видео существует проблема, связанная с тем, что область, размер которой превышает пороговое значение, является сложной для обработки в плане аппаратной производительности. Например, существует проблема, связанная с тем, что, когда является возможным одновременно обработать до 4096 образцов с учетом аппаратного быстродействия, элементы данных размером 64 × 64 должны подвергаться избыточному доступу и обработке, при этом данные не могут быть обработаны одновременно для областей, имеющих более 4096 образцов. Соответственно, основной элемент обработки данных может быть обозначен как основной элемент данных на основе конвейера (Виртуальный элемент обработки данных, Virtual Processing Data Unit, VPDU, далее обозначаемый как основной элемент данных).
Основной элемент данных может быть классифицирован в качестве имеющего квадратный, неквадратный или непрямоугольный тип.
На Фиг. 6 показана форма основного элемента данных.
Основные элементы данных могут включать образцы в количестве равном или меньшем, чем максимальное количество образцов, которое может быть обработано одновременно. Например, как показано в рамках примера на Фиг. 6 (а), квадратные блоки размера 64 × 64 могут представлять собой основные элементы данных. В качестве альтернативы, основные элементы данных могут представлять собой неквадратные блоки. Например, как показано в рамках примера на Фиг. 6 (b) или 6 (с), блок размером 32 × 128 или блок размером 64 × 32 может представлять собой основной элемент данных.
Несмотря на то, что они не показаны, могут быть определены треугольные, :L-образные и многоугольные основные элементы данных.
Информация для определения основного элемента данных может быть передана с помощью потока битов. Данная информация может быть предназначена для определения, по меньшей мере, одного из следующих признаков: размера и формы основного элемента данных. На основе данной информации может быть определена допустимость неквадратного основного элемента данных или допустимость непрямоугольного основного элемента данных.
В качестве альтернативы, в кодировщике и декодере может быть предварительно определен, по меньшей мере, один из следующих признаков: размер и форма основного элемента данных.
Допустимость типа разделения блока кодирования может быть определена с учетом размера основного элемента данных. Например, когда размер блока кодирования, полученного в качестве результата разбиения блока кодирования, превышает размер основного элемента данных, разбиение может не допускаться. В качестве альтернативы, когда размер неквадратного блока кодирования, полученного в качестве результата разбиения блока кодирования, превышает размер основного элемента данных, разбиение может не допускаться. Например, когда ширина или высота блока кодирования превышает пороговое значение или когда количество образцов, включенных в блок кодирования, превышает пороговое значение, разбиение на основе бинарного дерева или тернарного дерева может не допускаться. Соответственно, кодирование информации, связанной с разбиением на основе бинарного дерева или тернарного дерева, может быть пропущено.
В качестве альтернативы, разбиение блока кодирования, размер которого превышает размер основного элемента данных, может являться обязательным. В качестве альтернативы, разбиение на основе бинарного дерева или тернарного дерева блока кодирования, размер которого превышает размер основного элемента данных, может являться обязательным. Соответственно, для блока кодирования, размер которого превышает размер основного элемента данных, несмотря на отсутствие флага split_flag, указывающего на необходимость разбиения блока кодирования, значение данного флага может быть принято равным 1.
В качестве другого примера, блок кодирования, размер которого превышает размер основного элемента данных, может быть разбит на несколько подблоков. В этом случае подблок может представлять собой элемент предсказания, который является основным элементом для предсказания, или элемент преобразования, который является основным элементом для преобразования и/или квантования. В этом случае разбиение блока кодирования на несколько элементов предсказания может быть определено как разбиение элемента предсказания VPDU, а разбиение блока кодирования на несколько элементов преобразования может быть определено как разбиение элемента преобразования VPDU.
Для блока кодирования может применяться, по меньшей мере, один из следующих видов разбиения: разбиение элемента предсказания VPDU и разбиение элемента преобразования VPDU. Тип разбиения блока кодирования в соответствии с использованием разбиения элемента предсказания VPDU может быть таким же, что и тип разбиения блока кодирования в соответствии с использованием разбиения элемента преобразования VPDU.
Когда для блока кодирования используется только разбиение элемента предсказания VPDU, предсказание осуществляется для каждого подблока, однако для блока кодирования может осуществляться преобразование и/или квантование. В этом случае для блока кодирования может быть определен режим предсказания, такой как режим кодирования предсказания, режим внутрикадрового предсказания, или режим межкадрового предсказания.
Когда для блока кодирования используется только разбиение элемента преобразования VPDU, предсказание осуществляется для подблока, однако преобразование и/или квантование может осуществляться для каждого подблока.
На Фиг. 7 и 8 показаны примеры разбиения блока кодирования на несколько подблоков.
На Фиг. 7 показан паттерн разбиения, когда допускается только квадратный основной элемент данных, а на Фиг. 8 показан паттерн разбиения, когда допускается квадратный основной элемент данных и неквадратный основной элемент данных.
Согласно Фиг. 7 (а) и 7 (b), при определении допустимости только квадратных основных элементов данных CU0 и CU2 определяются как два различных VPDU, a CU1 определяется как четыре различных VPDU. Соответственно, CU0 и CU2 могут быть разбиты на два подблока, a CU1 может быть разбит на четыре подблока.
Согласно Фиг. 8 (а) и 8 (b), при определении допустимости квадратных основных элементов данных и неквадратных основных элементов данных CU0 и CU2 могут быть определены как один VPDU, в то время как CU1 может быть определен с использованием двух различных VPDU. Соответственно, CU0 и CU2 не разбиваются на подблоки, в то время как CU1 может быть разбит на два подблока.
В этом случае CU1 может быть разбит на квадратные подблоки или неквадратные подблоки. Например, CU1 может быть разбит на два квадратных подблока на основе горизонтальной линии, которая разбивает CU1 по направлению вверх и вниз. В качестве альтернативы, CU1 может быть разбит на два неквадратных подблока на основе вертикальной линии, которая разбивает CU1 по направлению влево и вправо.
При наличии нескольких типов-кандидатов разбиения, которые могут применяться для блока кодирования, информация, указывающая на любой из данных нескольких типов-кандидатов разбиения, может быть передана с помощью потока битов. Например, данная информация может указывать на то, является ли блок кодирования разбитым на квадратные подблоки, или на то, является ли блок кодирования разбитым на неквадратные подблоки.
В качестве альтернативы, разбиение блока кодирования на квадратные подблоки может иметь более высокий приоритет, чем разбиение блока кодирования на неквадратные подблоки. Например, разбиение блока кодирования на неквадратные подблоки может быть допустимо, когда разбиение блока кодирования на квадратные подблоки не является допустимым.
В качестве альтернативы, тип разбиения блока кодирования может быть определен на основе типа разбиения блока кодирования, представляющего собой родительский узел. Например, может осуществляться разбиение блока кодирования на квадратные подблоки, когда блок кодирования, представляющий собой родительский узел, разбит на основе тернарного дерева. С другой стороны, может осуществляться разбиение блока кодирования на неквадратные подблоки, когда блок кодирования, представляющий собой родительский узел, разбит на основе бинарного дерева или тернарного дерева.
Межкадровое предсказание представляет собой режим кодирования предсказания, который предсказывает текущий блок путем использования информации о предыдущем изображении. Например, блок на предыдущем изображении с теми же координатами, что и у текущего блока, (далее называемый совмещенным блоком) может представлять собой блок предсказания текущего блока. Блок предсказания, полученный на основе блока с теми же координатами, что и у текущего блока, будет далее обозначаться как совмещенный блок предсказания.
С другой стороны, когда объект, существующий на предыдущем изображении, сдвинулся в другие координаты на текущем изображении, текущий блок может быть эффективно предсказан путем использования движения объекта. Например, направление движения и размер объекта могут быть известны на основе сравнения предыдущего изображения и текущего изображения, блок предсказания (или изображение предсказания) текущего блока может быть получен с учетом информации о движении объекта. Блок предсказания, полученный с помощью информации о движении, может далее обозначаться как блок предсказания движения.
Остаточный блок может быть получен путем вычитания блока предсказания из текущего блока. В этом случае при наличии движения объекта энергия остаточного блока может быть снижена за счет использования блока предсказания движения вместо совмещенного блока предсказания и, таким образом, может быть повышена эффективность сжатия остаточного блока.
Как описано выше, получение блока предсказания путем использования информации о движении может быть определено как предсказание компенсации движения. В большинстве случаев межкадрового предсказания блок предсказания может быть получен на основе предсказания компенсации движения.
Информация о движении может включать, по меньшей мере, один из следующих признаков: вектор движения, указатель опорного изображения, направление движения, и двунаправленный указатель веса. Вектор движения обозначает направление движения и размер объекта. Указатель опорного изображения обозначает опорное изображение текущего блока среди опорных изображений, включенных в перечень опорных изображений. Направление предсказания указывает на любой один из следующих видов предсказания: однонаправленное предсказание L0, однонаправленное предсказание L1, и двунаправленное предсказание (предсказание L0 и предсказание L1). В соответствии с направлением предсказания текущего блока, может использоваться, по меньшей мере, один из следующих видов информации: информация о движении в направлении L0 и информация о движении в направлении L1. Двунаправленный указатель веса указывает на значение веса, используемое для блока предсказания L0, и значение веса, используемое для блока предсказания L1.
Фиг. 9 представляет собой блок-схему, иллюстрирующую способ межкадрового предсказания в соответствии с вариантом осуществления настоящего изобретения.
В соответствии с Фиг. 9, способ межкадрового предсказания включает этапы определения режима межкадрового предсказания текущего блока (S901), получения информации о движении текущего блока в соответствии с определенным режимом межкадрового предсказания (S902), и осуществления предсказания компенсации движения для текущего блока на основе полученной информации о движении (S903).
При этом режим межкадрового предсказания означает различные способы определения информации о движении текущего блока и может включать режим межкадрового предсказания, в рамках которого применяется информация о поступательном движении, и режим межкадрового предсказания, в рамках которого применяется аффинная информация о движении. Например, режим межкадрового предсказания, в рамках которого применяется информация о поступательном движении, может включать режим объединения и продвинутый режим предсказания вектора движения, при этом режим межкадрового предсказания, в рамках которого используется аффинная информация о движении, может включать режим аффинного объединения и режим аффинного предсказания вектора движения. Информация о движении текущего блока может быть определена на основе соседнего блока, являющегося смежным по отношению к текущему блоку, или информации, распознанной из потока битов в соответствии с режимом межкадрового предсказания.
Информация о движении текущего блока может быть получена на основе информации о движении другого блока. При этом другой блок может представлять собой блок, кодируемый/декодируемый на основе межкадрового предсказания перед текущим блоком. Если информация о движении текущего блока равна информации о движении другого блока, то это может быть определено как режим объединения. Кроме того, если вектор движения другого блока представляет собой значение предсказания вектора движения текущего блока, то это может быть определено как продвинутый режим предсказания вектора движения.
Фиг. 10 представляет собой блок-схему, показывающую процесс получения информации о движении текущего блока с помощью режима объединения.
Может быть получен кандидат объединения текущего блока (S1001). Кандидат объединения текущего блока может быть получен из блока, кодируемого/декодируемого на основе межкадрового предсказания перед текущим блоком.
На Фиг. 11 показан пример блоков-кандидатов, используемых для получения кандидата объединения.
Блоки-кандидаты могут включать, по меньшей мере, один из соседних блоков, включая образец, являющийся смежным по отношению к текущему блоку, или не являющиеся соседними блоки, включая образец, не являющийся смежным по отношению к текущему блоку. Образцы для определения блоков-кандидатов определены далее как опорные образцы. Кроме того, опорный образец, являющийся смежным по отношению к текущему блоку, определен как соседний опорный образец, а опорный образец, не являющийся смежным по отношению к текущему блоку, определен как не являющийся соседним опорный образец.
Соседний опорный образец может быть включен в соседний столбец самого левого столбца текущего блока или соседнюю строку самой верхней строки текущего блока. Например, когда координаты верхнего левого образца текущего блока соответствуют (О, 0), по меньшей мере, один из следующих блоков может использоваться в качестве блока-кандидата: блок, включающий опорный образец с координатами (-1, Н-1), блок, включающий опорный образец с координатами (W-l, -1), блок, включающий опорный образец с координатами (W, -1), блок, включающий опорный образец с координатами (-1, Н), и блок, включающий опорный образец с координатами (-1, -1). Согласно фигуре, соседние блоки с указателем 0-4 могут использоваться в качестве блоков-кандидатов.
Не являющийся соседним опорный образец представляет собой образец, у которого, по меньшей мере, один из параметров в виде расстояния по оси X и расстояния по оси Y от опорного образца, являющегося смежным по отношению к текущему блоку, имеет предварительно определенное значение. Например, в качестве блока-кандидата может использоваться, по меньшей мере, один из следующих видов блоков: блок, включающий опорный образец, у которого расстояние по оси X от левого опорного образца представляет собой предварительно определенное значение, блок, включающий не являющийся соседним образец, у которого расстояние по оси Y от верхнего опорного образца представляет собой предварительно определенное значение, и блок, включающий не являющийся соседним образец, у которого расстояние по оси X и расстояние по оси Y от верхнего левого опорного образца представляют собой предварительно определенные значения. Предварительно определенные значения могут представлять собой натуральное число, такое как 4, 8, 12, 16 и им подобные. Согласно фигуре, по меньшей мере, один из блоков с указателем 5-26 может использоваться в качестве блока-кандидата.
В качестве альтернативы, блок-кандидат, который не принадлежит тому же элементу дерева кодирования, что и текущий блок, может являться недоступным в качестве кандидата объединения. Например, когда опорный образец отклоняется от верхней границы элемента дерева кодирования, к которому принадлежит текущий блок, блок-кандидат, включая опорный образец, может являться недоступным в качестве кандидата объединения.
Кандидат объединения также может быть получен из временно являющегося соседним блока, включенного в изображение, отличного от текущего блока. Например, кандидат объединения может быть получен из совмещенного блока, включенного в совмещенное изображение. Любое одно из опорных изображений, включенных в перечень опорных изображений, может представлять собой совмещенное изображение. Указательная информация для идентификации совмещенного изображения среди опорных изображения может быть передана с помощью потока битов. В качестве альтернативы, опорное изображение с предварительно определенным указателем среди опорных изображений может быть определено в качестве совмещенного изображения.
Информация о движении кандидата объединения может быть равна информации о движении блока-кандидата. Например, информация о движении кандидата объединения может представлять собой, по меньшей мере, один из следующих признаков: вектор движения, указатель опорного изображения, вектор предсказания, и двунаправленный указатель веса блока-кандидата.
Может быть получен перечень кандидатов объединения, включающий кандидаты объединения (S1002).
Указатели кандидатов объединения в перечне кандидатов объединения могут быть присвоены в соответствии с предварительно определенным порядком. Например, указатели могут быть присвоены в следующем порядке: кандидат объединения, полученный из левого соседнего блока, кандидат объединения, полученный из верхнего соседнего блока, кандидат объединения, полученный из верхнего правого соседнего блока, кандидат объединения, полученный из нижнего левого соседнего блока, кандидат объединения, полученный из верхнего левого соседнего блока, и кандидат объединения, полученный из временно являющегося соседним блока.
Когда несколько кандидатов объединения включаются в перечень кандидатов объединения, то может быть выбран, по меньшей мере, один из нескольких кандидатов объединения (S1003). В частности, информация для указания любого одного из нескольких кандидатов объединения может быть передана с помощью потока битов. Например, информация merge_idx, указывающая на указатель любого одного из кандидатов объединения, включенных в перечень кандидатов объединения, может быть передана с помощью потока битов.
Когда количество кандидатов объединения, включенных в перечень кандидатов объединения, является меньшим, чем пороговое значение, то кандидат объединения, включенный в перечень информации о межобластном движении, может быть добавлен в перечень кандидатов объединения. При этом пороговое значение может представлять собой максимальное количество кандидатов объединения, которое может включать перечень кандидатов объединения, или значение, полученное путем вычитания сдвига из максимального количества кандидатов объединения. Сдвиг может представлять собой натуральное число, такое как 1, 2 или им подобные. Перечень информации о межобластном движении может включать кандидат объединения, полученный на основе блока, кодируемого/декодируемого перед текущим блоком.
Перечень информации о межобластном движении включает кандидат объединения, полученный из блока, кодируемого/декодируемого на основе межкадрового предсказания в рамках текущего изображения. Например, информация о движении кандидата объединения, включенного в перечень информации о движении между областями, может быть равна информации о движении блока, кодируемого/декодируемого на основе межкадрового предсказания. При этом информация о движении может включать, по меньшей мере, один из следующих признаков: вектор движения, указатель опорного изображения, предсказание движения, и двунаправленный указатель веса.
Блок кодирования может быть разбит на несколько элементов предсказания, при этом предсказание может осуществляться для каждого из разбитых элементов предсказания. При этом элемент предсказания соответствует основному элементу для осуществления предсказания.
Блок кодирования может быть разбит с применением, по меньшей мере, одного из следующих видов линий: вертикальной линии, горизонтальной линии, наклонной линии, и диагональной линии. Информация для определения, по меньшей мере, одного вида данных из числа, углов и координат линий, разбивающих блок кодирования, может быть передана с помощью потока битов. Например, информация, указывающая любой один из кандидатов-типов разбиения блока кодирования, может быть передана с помощью потока битов или информация, указывающая любую одну из нескольких линий-кандидатов для разбиения блока кодирования, может быть передана с помощью потока битов. В качестве альтернативы, информация для определения количества или типов линий-кандидатов, разбивающих блок кодирования, может быть передана с помощью потока битов. Например, возможность использования в качестве линии-кандидата наклонной линии, имеющей угол наклона, превышающий угол наклона диагональной линии, и/или наклонной линии, имеющей угол наклона меньший, чем угол наклона диагональной линии, может быть определена с помощью 1-битного флага.
В качестве альтернативы, по меньшей мере, один из признаков в виде количества, углов, и координат линий, разбивающих блок кодирования, может быть подходящим образом определен на основе, по меньшей мере, одного из следующих признаков: режима внутрикадрового предсказания блока кодирования, режима межкадрового предсказания блока кодирования, координат доступного кандидата объединения блока кодирования, и паттерна разбиения соседнего блока.
При разбиении блока кодирования на несколько элементов предсказания внутрикадровое предсказание или межкадровое предсказание может быть осуществлено для каждого из разбитых элементов предсказания.
На Фиг. 12 показаны примеры разбиения блока кодирования на несколько элементов предсказания с помощью диагональной линии.
Как показано в рамках примеров на Фиг. 12(а) и 12(b), блок кодирования может быть разбит на два треугольных элемента предсказания с помощью диагональной линии.
На Фиг. 12(а) и 12(b) показано, что блок кодирования разбит на два элемента предсказания с помощью диагональной линии, соединяющей две вершины блока кодирования. Однако блок кодирования может быть разбит на два элемента предсказания с помощью наклонной линии, при этом, по меньшей мере, один конец которой не проходит через вершину блока кодирования.
На Фиг. 13 показаны примеры разбиения блока кодирования на два элемента предсказания.
Как показано в рамках примеров на Фиг. 13(а) и 13(b), блок кодирования может быть разбит на два элемента предсказания с помощью наклонной линии, при этом оба ее конца касаются верхней границы и нижней границы блока кодирования, соответственно.
В качестве альтернативы, как показано в рамках примеров на Фиг. 13(с) и 13(d), блок кодирования может быть разбит на два элемента предсказания с помощью наклонной линии, при этом оба ее конца касаются левой границы и правой границы блока кодирования, соответственно.
В качестве альтернативы, блок кодирования может быть разбит на два блока предсказания разного размера. Например, блок кодирования может быть разбит на два элемента предсказания разного размера путем проведения наклонной линии, разбивающей блок кодирования для касания двух граничных поверхностей, которые образуют одну вершину.
На Фиг. 14 показаны примеры разбиения блока кодирования на несколько блоков предсказания различного размера.
Как показано в рамках примеров на Фиг. 14(а) и 14(b), поскольку диагональная линия, соединяющая верхний левый и нижний правый угол блока кодирования, проходит через левую границу, правую границу, верхнюю границу, или нижнюю границу вместо прохождения через верхний левый угол или нижний правый угол блока кодирования, то блок кодирования может быть разбит на два элемента предсказания разного размера.
В качестве альтернативы, как показано в рамках примеров на Фиг. 14(с) и 14(d), поскольку диагональная линия, соединяющая верхний правый и нижний левый угол блока кодирования, проходит через левую границу, правую границу, верхнюю границу, или нижнюю границу вместо прохождения через верхний левый угол или нижний правый угол блока кодирования, то блок кодирования может быть разбит на два элемента предсказания разного размера.
Каждый из элементов предсказания, образованный путем разбиения блока кодирования, будет обозначаться как "N-й элемент предсказания". Например, в рамках примеров, показанных на Фиг. 12-14, PU1 может быть определен как первый элемент предсказания, a PU2 может быть определен как второй элемент предсказания. Первый элемент предсказания означает элемент предсказания, включая образец, расположенный снизу слева, или образец, расположенный сверху слева в блоке кодирования, а второй элемент предсказания означает элемент предсказания, включая образец, расположенный сверху справа, или образец, расположенный снизу справа в блоке кодирования.
Наоборот, элемент предсказания, включающий образец, расположенный сверху справа, или образец, расположенный снизу справа в блоке кодирования, может быть определен как первый элемент предсказания, а элемент предсказания, включающий образец, расположенный снизу слева, или образец, расположенный сверху слева в блоке кодирования, может быть определен как второй элемент предсказания.
Ниже описаны варианты осуществления с упором на примеры разбиения блока кодирования с помощью диагональной линии. В частности, разбиение блока кодирования на два элемента предсказания с помощью диагональной линии обозначается как диагональное разбиение или треугольное разбиение, а элемент предсказания, полученный на основе диагонального разбиения, обозначается как треугольный элемент предсказания. Однако также возможно использовать описанные ниже варианты осуществления в рамках примеров разбиения блока кодирования с помощью наклонной линии с углом наклона, отличным от угла наклона вертикальной линии, горизонтальной линии, или диагональной линии.
Необходимость использования диагонального разбиения блока кодирования может быть определена на основе, по меньшей мере, одного следующих признаков: типа разбиения, максимального количества кандидатов объединения, которое может включать перечень кандидатов объединения, размера блока кодирования, формы блока кодирования, режима кодирования предсказания блока кодирования, и паттерна разбиения родительского узла.
Например, необходимость использования диагонального разбиения для блока кодирования может быть определена на основе того, относится ли текущий слайс к типу В. Диагональное разбиение может быть допустимо только когда текущий слайс относится к типу В.
В качестве альтернативы, необходимость использования диагонального разбиения для блока кодирования может быть определена на основе того, составляет ли максимальное количество кандидатов объединения, включенных в перечень кандидатов объединения, один или более. Диагональное разбиение может быть допустимо только когда максимальное количество кандидатов объединения, включенных в перечень кандидатов объединения, составляет два или более.
В качестве альтернативы, когда, по меньшей мере, ширина и/или высота превышает 64 в рамках аппаратной реализации, существует проблема, связанная с избыточным доступом к элементу для обработки данных размером 64×64. Соответственно, когда, по меньшей мере, ширина и/или высота блока кодирования превышает пороговое значение, разбиение блока кодирования на несколько блоков предсказания может не допускаться. Например, когда, по меньшей мере, ширина и/или высота блока кодирования превышает 64 (например, когда, по меньшей мере, ширина и/или высота составляет 128), диагональное разбиение может не использоваться.
В качестве альтернативы, диагональное разбиение может не допускаться для блока кодирования, у которого количество образцов превышает пороговое значение, с учетом максимального количества образцов, которое может быть одновременно обработано в рамках аппаратной реализации. Например, диагональное разбиение может не допускаться для блока дерева кодирования, у которого количество образцов превышает 4096.
В качестве альтернативы, диагональное разбиение может не допускаться для блока кодирования, у которого количество образцов, включенных в блок кодирования, меньше порогового значения. Например, для блока кодирования может не использоваться диагональное разбиение, когда количество образцов, включенных в блок кодирования, меньше 64.
В качестве альтернативы, необходимость использования диагонального разбиения для блока кодирования может быть определена на основе того, является ли отношение ширины к высоте блок кодирования меньшим, чем первое пороговое значение, или того, является ли отношение ширины к высоте блока кодирования  чем второе пороговое значение). В этом случае может быть определено отношение ширины к высоте whRatio блока кодирования в виде отношения ширины CbW к высоте CbH блока кодирования, как показано в Уравнении 1.
Второе пороговое значение может представлять собой обратное число относительно первого порогового значения. Например, если первое пороговое значение представляет собой k, то второе пороговое значение может представлять собой 1/k.
Диагональное разбиение может использоваться для блока кодирования только когда отношение ширины к высоте блока кодирования находится между первым пороговым значением и вторым пороговым значением.
В качестве альтернативы, треугольное разбиение может использоваться только когда отношение ширины к высоте блока кодирования является меньшим, чем первое пороговое значение, или  чем второе пороговое значение. Например, когда первое пороговое значение составляет 16, диагональное разбиение может не допускаться для блока кодирования размером 64×4 или 4×64.
В качестве альтернативы, допустимость диагонального разбиения может быть определена на основе паттерна разбиения родительского узла. Например, когда блок кодирования в виде родительского узла разбит с помощью способа на основе дерева квадрантов, то диагональное разбиение может применяться для блока кодирования в виде листового узла. С другой стороны, может не допускаться использование диагонального разбиения для блока кодирования в виде листового узла когда блок кодирования в виде родительского узла разбивается с помощью способа на основе бинарного дерева или тернарного дерева.
В качестве альтернативы, допустимость диагонального разбиения может быть определена на основе режима кодирования предсказания блока кодирования. Например, диагональное разбиение может допускаться только когда блок кодирования кодируется с помощью внутрикадрового предсказания, когда блок кодирования кодируется с помощью межкадрового предсказания, или когда блок кодирования кодируется с помощью предварительно определенного режима межкадрового предсказания. В этом случае предварительно определенный режим межкадрового предсказания может соответствовать, по меньшей мере, одному из следующих режимов: режиму объединения, продвинутому режиму предсказания вектора движения, режиму аффинного объединения, и режиму аффинного предсказания вектора движения.
В качестве альтернативы, допустимость диагонального разбиения может быть определена на основе размера параллельно обрабатываемой области. Например, когда размер блока кодирования превышает размер параллельно обрабатываемой области, диагональное разбиение может не использоваться.
Необходимость использования диагонального разбиения для блока кодирования может быть определена с учетом двух или более перечисленных выше условий.
В качестве другого примера, информация, указывающая на необходимость использования диагонального разбиения для блока кодирования, может быть передана с помощью потока битов. Данная информация может быть передана на уровне последовательности, изображения, слайса или блока. Например, флаг triangle_partition_flag, указывающий на использование треугольного разбиения для блока кодирования, может быть передан на уровне блока кодирования.
При определении необходимости использования диагонального разбиения для блока кодирования, информация, указывающая на количество линий, разбивающих блок кодирования, или координаты линий, может быть передана с помощью потока битов.
Например, когда блок кодирования разбит с помощью диагональной линии, информация, указывающая на направления диагональной линии, разбивающий блок кодирования, может быть передана с помощью потока битов. Например, флаг triangle_partition_type_flag, указывающий направление диагональной линии, может быть передан с помощью потока битов. Данный флаг указывает на разбиение блока кодирования диагональной линией, соединяющей верхний левый угол и нижний правый угол, или на разбиение блока кодирования диагональной линией, соединяющей верхний правый угол и нижний левый угол. Разбиение блока кодирования диагональной линией, соединяющей верхний левый угол и нижний правый угол, может быть обозначено как левый треугольный тип разбиения, а разбиение блока кодирования диагональной линией, соединяющей верхний правый угол и нижний левый угол, может быть обозначено как правый треугольный тип разбиения. Например, когда значение флага составляет 0, он может указывать на то, что тип разбиения блока кодирования соответствует левому треугольному типу разбиения, а когда значение флага составляет 1, он может указывать на то, что тип разбиения блока кодирования соответствует правому треугольному типу разбиения.
Кроме того, информация, указывающая на то, что элементы предсказания имеют одинаковый размер, или информация, указывающая координаты диагональной линии разбиения блока кодирования, может быть передана с помощью потока битов. Например, когда информация, указывающая размеры элементов предсказания, указывает на то, что размеры элементов предсказания являются одинаковыми, кодирование информации, указывающей координаты диагональной линии, пропускается, при этом блок кодирования может быть разбит на два элемента предсказания помощью диагональной линии, проходящей через две вершины блока кодирования. С другой стороны, когда информация, указывающая размеры элементов предсказания, указывает на то, что размеры элементов предсказания не являются одинаковыми, координаты диагональной линии, разбивающей блок кодирования, могут быть определены на основе информации, указывающей координаты диагональной линии. Например, когда для блока кодирования используется левый треугольный тип разбиения, информация о координатах может указывать на то, касается ли диагональная линия левой границы и нижней границы или верхней границы и правой границы блока кодирования. В качестве альтернативы, когда для блока кодирования используется правый треугольный тип разбиения, информация о координатах может указывать на то, касается ли диагональная линия правой границы и нижней границы или верхней границы и левой границы блока кодирования.
Информация, указывающая тип разбиения блока кодирования, может быть передана на уровне блока кодирования. Соответственно, тип разбиения может быть определен для каждого блока кодирования, для которого применяется диагональное разбиение.
В качестве другого примера, информация, указывающая тип разбиения, может быть передана для последовательности, изображения, слайса, таила, или элемента дерева кодирования. В этом случае типы разбиения блоков кодирования, для которых применяется диагональное разбиение в рамках последовательности, изображения, слайса, таила или элемента дерева кодирования, могут являться одинаковым.
В качестве альтернативы, информация для определения типа разбиения может быть закодирована и передана для первого элемента кодирования, для которого применяется диагональное разбиение, в элементе дерева кодирования, при этом второй и последующие элементы кодирования, для которых применяется диагональное разбиение, могут использовать такой же тип разбиения, что и первый элемент кодирования.
В качестве другого примера, тип разбиения блока кодирования может быть определен на основе типа разбиения соседнего блока. В этом случае соседний блок может включать, по меньшей мере, один из следующих видов блоков: соседний блок, являющийся смежным по отношению к верхнему левому углу блока кодирования, соседний блок, являющийся смежным по отношению к верхнему правому углу, соседний блок, являющийся смежным по отношению к нижнему левому углу, соседний блок, расположенный сверху, и соседний блок, расположенный на левой стороне. Например, тип разбиения текущего блока может являться таким же, что и тип разбиения соседнего блока. В качестве альтернативы, тип разбиения текущего блока может быть определен на основе использования левого треугольного типа разбиения для верхнего левого соседнего блока или использования правого треугольного типа разбиения для верхнего правого соседнего блока или нижнего левого соседнего блока.
Размер элемента предсказания может не превышать размер элемента преобразования. Кроме того, он может обязательно включать один элемент предсказания в одном элементе преобразования. Соответственно, при применении разбиения элемента преобразования VPDU для блока кодирования, диагональное кодирование может применяться для элемента преобразования вместо применения диагонального разбиения для блока кодирования.
На Фиг. 15 показан пример использования диагонального разбиения для элемента преобразования.
Как показано в рамках примера на Фиг. 15, когда блок кодирования разбит на несколько элементов преобразования, может быть определена необходимость применения диагонального разбиения для каждого элемента преобразования. В качестве альтернативы может быть определено применение диагонального разбиения для элемента в виде блока с размером менее размера элемента преобразования.
В качестве альтернативы при применении разбиения элемента преобразования VPDU для блока кодирования определяется необходимость применения диагонального разбиения для блока кодирования, при этом все элементы преобразования, включенные в блок кодирования, могут соответствовать данному определению. Например, при определении необходимости применения диагонального разбиения для блока кодирования, все элементы преобразования, включенные в блок кодирования, могут быть разбиты на два элемента предсказания.
В целях осуществления предсказания компенсации движения для первого треугольного элемента предсказания и второго треугольного элемента предсказания может быть получена информация о движении каждого из первого треугольного элемента предсказания и второго треугольного элемента предсказания. В этом случае информация о движении первого треугольного элемента предсказания и второго треугольного элемента предсказания может быть получена из кандидатов объединения, включенных в перечень кандидатов объединения. Для различения общего перечня кандидатов объединения и перечня кандидатов объединения, используемого для получения информации о движении треугольных элементов предсказания, перечень кандидатов объединения для получения информации о движении треугольных элементов предсказания обозначается как перечень треугольных кандидатов объединения, а кандидат объединения, включенный в перечень треугольных кандидатов объединения, будет обозначаться как треугольный кандидат объединения. Однако применение описанного выше способа получения кандидата объединения и способа составления перечня кандидатов объединения для треугольных кандидатов объединения и способ составления перечня треугольных кандидатов объединения также включены в объем настоящего изобретения.
Информация для определения максимального количества треугольных кандидатов объединения, которое может включать перечень треугольных кандидатов объединения, может быть передана с помощью потока битов. Данная информация может указывать разность между максимальным количеством кандидатов объединения, которое может включать перечень кандидатов объединения, и максимальным количеством треугольных кандидатов объединения, которое может включать перечень треугольных кандидатов объединения.
Треугольные кандидаты объединения могут быть получены из являющегося соседним в пространственном отношении блока и временно являющегося соседним блока блока кодирования.
На Фиг. 16 показаны соседние блоки, используемые для получения треугольного кандидата объединения.
Треугольный кандидат объединения может быть получен с помощью, по меньшей мере, одного из следующих видов блоков: соседнего блока, расположенного вверху блока кодирования, соседнего блока, расположенного на левой стороне блока кодирования, и совмещенного блока, включенного в изображение, являющееся отличным от блока кодирования. Верхний соседний блок может включать, по меньшей мере, один из следующих видов блоков: блок, включающий образец (xCb + CbW-1, yCb-1), расположенный вверху блока кодирования, блок, включающий образец (xCb + CbW, yCb-1), расположенный вверху блока кодирования, и блок, включающий образец (xCb-1, yCb-1), расположенный вверху блока кодирования. Левый соседний блок может включать, по меньшей мере, один из следующих видов блоков: блок, включающий образец (xCb1, yCb + CbH-1), расположенный на левой стороне блока кодирования, и блок, включающий образец (xCb-1, yCb + CbH), расположенный на левой стороне блока кодирования. Совмещенный блок может быть определен как любой один из следующих видов блоков: блок, включающий образец (xCb + CbW, yCb + CbH), являющийся смежным по отношению к верхнему правому углу блока кодирования, и блок, включающий образец (xCb/2, yCb/2), расположенный в центре блока кодирования, в рамках совмещенного изображения.
Соседние блоки могут быть подвергнуты поиску в предварительно определенном порядке, при этом треугольные кандидаты объединения могут быть определены в виде перечня треугольных кандидатов объединения в соответствии с предварительно определенным порядком. Например, перечень треугольных кандидатов объединения может быть составлен путем поиска треугольных кандидатов объединения в порядке В1, А1, В0, А0, С0, В2 и С1.
Информация о движении треугольных элементов предсказания может быть получена на основе перечня треугольных кандидатов объединения. То есть треугольные элементы предсказания могут разделять один перечень треугольных кандидатов объединения.
В целях получения информации о движении треугольного элемента объединения информация для указания, по меньшей мере, одного из треугольных кандидатов объединения, включенных в перечень треугольных кандидатов объединения, может быть передана с помощью потока битов. Например, указательная информация merge_triangle_idx для указания, по меньшей мере, одного из треугольных кандидатов объединения, может быть передана с помощью потока битов.
Данная указательная информация может указывать комбинацию из кандидата объединения первого треугольного элемента предсказания и кандидата объединения второго треугольного элемента предсказания. Например, в Таблице 1 показан пример комбинации кандидатов объединения в соответствии с указательной информацией merge_triangle_idx.
Когда значение указательной информации merge_triangle_idx составляет 1, она указывает на то, что информация о движении первого треугольного элемента предсказания получена из кандидата объединения, имеющего указатель 1, а информация о движении второго треугольного элемента предсказания получена из кандидата объединения, имеющего указатель 0. Треугольный кандидат объединения для получения информации о движении первого треугольного элемента предсказания и треугольный кандидат объединения для получения информации о движении второго треугольного элемента предсказания могут быть определены с помощью указательной информации merge_triangle_idx.
Тип разбиения блока кодирования, для которого используется диагональное разбиение, может быть определен на основе данной указательной информации. То есть данная указательная информация может указывать комбинацию из кандидата объединения первого треугольного элемента предсказания, кандидата объединения второго треугольного элемента предсказания, и направление разбиения блока кодирования. Когда тип разбиения блока кодирования определяется на основе данной указательной информации, информация triangle_partition_type_flag, указывающая направление разбиения блока кодирования на основе диагональной линии, может не подвергаться кодированию. В Таблице 2 показаны типы разбиения блока кодирования в плане указательной информации merge_triangle_idx.
Когда переменная TriangleDir равна 0, она указывает на то, что для блока кодирования используется левый треугольный тип разбиения, а когда переменная TriangleDir равна 1, она указывает на то, что для блока кодирования используется правый треугольный тип разбиения. Путем комбинирования Таблицы 1 и Таблицы 2 указательная информация merge_triangle_idx может указывать комбинацию из кандидата объединения первого треугольного элемента предсказания, кандидата объединения второго треугольного элемента предсказания, и направление разбиения блока кодирования.
В качестве другого примера, может быть передана указательная информация только для любого одного из первого треугольного элемента предсказания и второго треугольного элемента предсказания, при этом указатель треугольного кандидата объединения для другого одного из первого треугольного элемента предсказания и второго треугольного элемента предсказания может быть определен на основе данной указательной информации. Например, треугольный кандидат объединения первого треугольного элемента предсказания может быть определен на основе указательной информации merge_triangle_idx, указывающей указатель любого одного из треугольных кандидатов объединения. Кроме того, треугольный кандидат объединения второго треугольного элемента предсказания может быть указан на основе merge_triangle_idx. Например, треугольный кандидат объединения второго треугольного элемента предсказания может быть получен путем добавления или вычитания сдвига из указательной информации merge_triangle_idx. Данный сдвиг может представлять собой целое число, такое как 1 или 2. Например, треугольный кандидат объединения, имеющий в качестве указателя значение, полученное путем добавления 1 к merge_traingle_idx, может быть определен как треугольный кандидат объединения второго треугольного элемента предсказания. Когда merge_triangle_idx указывает на треугольный кандидат объединения, имеющий наибольшее значение указателя среди треугольных кандидатов объединения, информация о движении второго треугольного элемента предсказания может быть получена из треугольного кандидата объединения, имеющего значение указателя 0, или треугольного кандидата объединения, имеющего в качестве указателя значение, полученное путем вычитания 1 из merge_triangle_idx.
В качестве альтернативы, информация о движении второго треугольного элемента предсказания может быть получена из треугольного кандидата объединения, имеющего то же опорное изображение, что и треугольный кандидат объединения первого треугольного элемента предсказания, указанный с помощью данной указательной информации. В этом случае треугольный кандидат объединения, имеющий то же опорное изображение, что и треугольный кандидат объединения первого треугольного элемента предсказания, может указывать на треугольный кандидат объединения, имеющий то же, по меньшей мере, одно изображение из опорного изображения L0 и опорного изображения L1, что и треугольный кандидат объединения первого треугольного элемента предсказания. При наличии нескольких треугольных кандидатов объединения, имеющих то же опорное изображение, что и треугольный кандидат объединения первого треугольного элемента предсказания, по меньшей мере, один из треугольных кандидатов объединения может быть выбран на основе включения кандидатом объединения двунаправленной информации о движении или значения разности указателя кандидата объединения и данной указательной информации.
В качестве другого примера, указательная информация может быть передана для каждого из первого треугольного элемента предсказания и второго треугольного элемента предсказания. Например, первая указательная информация 1st_merge_idx для определения треугольного кандидата объединения первого треугольного элемента предсказания и вторая указательная информация 2nd_merge_idx для определения треугольного кандидата объединения второго треугольного элемента предсказания может быть передана с помощью потока битов. Информация о движении первого треугольного элемента предсказания может быть получена из треугольного кандидата объединения, определенного на основе первой указательной информации 1st_merge_idx, а информация о движении второго треугольного элемента предсказания может быть получена из треугольного кандидата объединения, определенного на основе второй указательной информации 2nd_merge_idx.
Первая указательная информация 1st_merge_idx может представлять собой указатель любого одного из треугольных кандидатов объединения, включенных в перечень треугольных кандидатов объединения. Треугольный кандидат объединения первого треугольного элемента предсказания может быть определен как треугольный кандидат объединения, указанный на основе первой указательной информации 1st_merge_idx.
Треугольный кандидат объединения, указанный на основе первой указательной информации 1st_merge_idx, может не использоваться в качестве треугольного кандидата объединения второго треугольного элемента предсказания. Соответственно, вторая указательная информация 2nd_merge_idx второго треугольного элемента предсказания может представлять собой указатель любого одного из оставшихся треугольных кандидатов объединения за исключением треугольного кандидата объединения, указанного на основе первой указательной информации. Когда значение второй указательной информации 2nd_merge_idx является меньшим, чем значение первой указательной информации 1st_merge_idx, треугольный кандидат объединения второго треугольного элемента предсказания может быть определен как треугольный кандидат объединения, имеющий указательную информацию, указанную на основе второй указательной информации 2nd_merge_idx. С другой стороны, когда значение второй указательной информации 2nd_merge_idx является равным или большим, чем значение первой указательной информации 1st_merge_idx, треугольный кандидат объединения второго треугольного элемента предсказания может быть определен как треугольный кандидат объединения, имеющий в качестве указателя значение, полученное путем добавления 1 к значению второй указательной информации 2nd_merge_idx.
В качестве альтернативы, необходимость передачи второй указательной информации может быть определена в соответствии с количеством треугольных кандидатов объединения, включенных в перечень треугольных кандидатов объединения. Например, когда максимальное количество треугольных кандидатов объединения, которое может включать перечень треугольных кандидатов объединения, не превышает 2, передача второй указательной информации может быть пропущена. При пропуске передачи второй указательной информации второй треугольный кандидат объединения может быть получен путем добавления или вычитания сдвига из первой указательной информации. Например, когда максимальное количество треугольных кандидатов объединения, которое может включать перечень треугольных кандидатов объединения, составляет 2 и первая указательная информация соответствует значению указателя 0, второй треугольный кандидат объединения может быть получен путем добавления 1 к первой указательной информации. В качестве альтернативы, когда максимальное количество треугольных кандидатов объединения, которое может включать перечень треугольных кандидатов объединения, составляет 2 и первая указательная информация соответствует значению указателя 1, второй треугольный кандидат объединения может быть получен путем вычитания 1 из первой указательной информации.
В качестве альтернативы, при пропуске передачи второй указательной информации вторая указательная информация может представлять собой значение по умолчанию. В этом случае значение по умолчанию может составлять 0. Второй треугольный кандидат объединения может быть получен путем сравнения первой указательной информации и второй указательной информации. Например, когда вторая указательная информация является меньшей, чем первая указательная информация, кандидат объединения, имеющий значение указателя 0, может представлять собой второй треугольный кандидат объединения, а когда вторая указательная информация является равной или превышающей первую указательную информацию, кандидат объединения, имеющий значение указателя 1, может представлять собой второй треугольный кандидат объединения.
Когда треугольный кандидат объединения имеет однонаправленную информацию о движении, однонаправленная информация о движении треугольного кандидата объединения может представлять собой информацию о движении треугольного элемента предсказания. С другой стороны, когда треугольный кандидат объединения имеет двунаправленную информацию о движении, только одна из информации о движении L0 и информации о движении L1 может представлять собой информацию о движении треугольного элемента предсказания. Использование информации о движении L0 или информации о движении L1 может быть определено на основе указателя треугольного кандидата объединения или информации о движении другого треугольного элемента предсказания.
Например, когда указатель треугольного кандидата объединения представляет собой четное число, информация о движении L0 треугольного элемента предсказания может представлять собой 0, а информация о движении L1 треугольного кандидата объединения может представлять собой информацию о движении L1 треугольного элемента предсказания. С другой стороны, когда указатель треугольного кандидата объединения представляет собой нечетное число, информация о движении L1 треугольного элемента предсказания может представлять собой 0, и информация о движении L0 треугольного кандидата объединения может представлять собой 0. Наоборот, когда указатель треугольного кандидата объединения представляет собой четное число, информация о движении L0 треугольного кандидата объединения может представлять собой информацию о движении L0 треугольного элемента предсказания, а когда указатель треугольного кандидата объединения представляет собой нечетное число, информация о движении L1 треугольного кандидата объединения может представлять собой информацию о движении L1 треугольного элемента предсказания. В качестве альтернативы, когда указатель треугольного кандидата объединения представляет собой четное число для первого треугольного элемента предсказания, информация о движении L0 треугольного кандидата объединения может представлять собой информацию о движении L0 первого треугольного элемента предсказания, в то время как когда указатель треугольного кандидата объединения представляет собой нечетное число для второго треугольного элемента предсказания, информация о движении L1 треугольного кандидата объединения может представлять собой информацию о движении L1 второго треугольного элемента предсказания.
В качестве альтернативы, когда первый треугольный элемент предсказания имеет информацию о движении L0, информация о движении L0 второго треугольного элемента предсказания может представлять собой 0, а информация о движении L1 треугольного кандидата объединения может представлять собой информацию о движении L1 второго треугольного элемента предсказания. С другой стороны, когда первый треугольный элемент предсказания имеет информацию о движении L1, информация о движении L1 второго треугольного элемента предсказания может представлять собой 0, а информация о движении L0 треугольного кандидата объединения может представлять собой информацию о движении L0 второго треугольного элемента предсказания.
Перечень треугольных кандидатов объединения для получения информации о движении первого треугольного элемента предсказания и перечень треугольных кандидатов объединения для получения информации о движении второго треугольного элемента предсказания могут быть определены по отдельности.
Например, когда треугольный кандидат объединения для получения информации о движении первого треугольного элемента предсказания в перечне треугольных кандидатов объединения указан на основе указательной информации для первого треугольного элемента предсказания, информация о движении второго треугольного элемента предсказания может быть получена с помощью перечня треугольных кандидатов объединения, включая оставшиеся треугольные кандидаты объединения за исключением треугольного кандидата объединения, указанного на основе указательной информации. В частности, информация о движении второго треугольного элемента предсказания может быть получена из любого одного из оставшихся треугольных кандидатов объединения.
Соответственно, максимальное количество треугольных кандидатов объединения, которое может включать перечень треугольных кандидатов объединения первого треугольного элемента предсказания, и максимальное количество треугольных кандидатов объединения, которое может включать перечень треугольных кандидатов объединения второго треугольного элемента предсказания, может быть различным. Например, когда перечень треугольных кандидатов объединения первого треугольного элемента предсказания включает М кандидатов объединения, перечень треугольных кандидатов объединения второго треугольного элемента предсказания может включать М-1 кандидатов объединения, за исключением треугольного кандидата объединения, указанного на основе указательной информации первого треугольного элемента предсказания.
В качестве другого примера, кандидат объединения каждого треугольного элемента предсказания получен на основе соседних блоков, являющихся смежными относительно блока кодирования, при этом доступность соседних блоков может быть определена с учетом формы или координат треугольного элемента предсказания.
На Фиг. 17 описаны примеры определения доступности соседнего блока для каждого треугольного элемента предсказания.
Соседний блок, не являющийся смежным относительно первого треугольного элемента предсказания, может являться недоступным для первого треугольного элемента предсказания, при этом соседний блок, не являющийся смежным относительно второго треугольного элемента предсказания, может являться недоступным для второго треугольного элемента предсказания.
Например, как показано в рамках примера на Фиг. 17 (а), когда для блока кодирования используется левый треугольный тип разбиения, может быть определено, что блоки А1, А0 и А2, являющиеся смежными относительно первого треугольного элемента предсказания среди соседних блоков, являющихся смежными относительно блока кодирования, являются доступными для первого треугольного элемента предсказания, в то время как блоки В0 и В1 являются недоступными для первого треугольного элемента предсказания. Соответственно, перечень треугольных кандидатов объединения для первого треугольного элемента предсказания может включать треугольные кандидаты объединения, полученные из блоков А1, А0 и А2, и может не включать треугольные кандидаты объединения, полученные из блоков В0 и В1.
Как показано в рамках примера на Фиг. 17(b), когда для блока кодирования используется левый треугольный тип разбиения, может быть определено, что блоки В0 и В1, являющиеся смежными относительно второго треугольного элемента предсказания, являются доступными для второго треугольного элемента предсказания, в то время как блоки А1, А0 и А2 являются недоступными для второго треугольного элемента предсказания. Соответственно, перечень треугольных кандидатов объединения для второго треугольного элемента предсказания может включать треугольные кандидаты объединения, полученные из блоков В0 и В1, и может не включать треугольные кандидаты объединения, полученные из блоков А1, А0 и А2.
Соответственно, количество треугольных кандидатов объединения или диапазон треугольных кандидатов объединения, который может использовать треугольный элемент предсказания, может быть определен на основе, по меньшей мере, одного из следующих признаков: координат треугольного элемента предсказания или типа разбиения блока кодирования.
В качестве другого примера, режим объединения может использоваться только для одного из следующих элементов: первого треугольного элемента предсказания и второго треугольного элемента предсказания. Кроме того, информация о движении другого одного из первого треугольного элемента предсказания и второго треугольного элемента предсказания может представлять собой ту же информацию, что и информация о движении треугольного элемента предсказания, для которого применяется режим объединения, или может быть получена путем уточнения информации о движении треугольного элемента предсказания, для которого применяется режим объединения.
Например, вектор движения и указатель опорного изображения первого треугольного элемента предсказания могут быть получены на основе треугольного кандидата объединения, а вектор движения второго треугольного элемента предсказания может быть получен путем уточнения вектора движения первого треугольного элемента предсказания. Например, вектор движения второго треугольного элемента предсказания может быть получен путем добавления или вычитания вектора движения уточнения {Rx, Ry} из вектора движения {mvD1LXx, mvD1LXy} первого треугольного элемента предсказания. Указатель опорного изображения второго треугольного элемента предсказания может представлять собой тот же указатель, что и указатель опорного изображения первого треугольного элемента предсказания.
Информация для определения вектора движения уточнения, указывающего на разность между вектором движения первого треугольного элемента предсказания и вектором движения второго треугольного элемента предсказания, может быть передана с помощью потока битов. Данная информация может включать, по меньшей мере, один из следующих признаков: информацию, указывающую размер вектора движения уточнения, и информацию, указывающую знак вектора движения уточнения.
В качестве альтернативы, знак вектора движения уточнения может быть получен на основе, по меньшей мере, одного из следующих признаков: координат треугольного элемента предсказания, указателя треугольного элемента предсказания, и типа разбиения, используемого для блока кодирования.
В качестве другого примера, могут быть переданы вектор движения и указатель опорного изображения любого одного из первого треугольного элемента предсказания и второго треугольного элемента предсказания. Вектор движения другого одного из первого треугольного элемента предсказания и второго треугольного элемента предсказания может быть получен путем уточнения переданного вектора движения.
Например, вектор движения и указатель опорного изображения первого треугольного элемента предсказания могут быть определены на основе информации, переданной с помощью потока битов. Кроме того, вектор движения второго треугольного элемента предсказания может быть получен путем уточнения вектора движения первого треугольного элемента предсказания. Например, вектор движения второго треугольного элемента предсказания может быть получен путем добавления или вычитания вектора движения уточнения {Rx, Ry} из вектора движения {mvD1LXx, mvD1LXy} первого треугольного элемента предсказания. Указатель опорного изображения второго треугольного элемента предсказания может представлять собой тот же указатель, что и указатель опорного изображения первого треугольного элемента предсказания.
Предсказание компенсации движения для каждого блока кодирования может быть осуществлено на основе информации о движении первого треугольного элемента предсказания и информации о движении второго треугольного элемента предсказания. В этом случае может произойти ухудшение качества видео на границе между первым треугольным элементом предсказания и вторым треугольным элементом предсказания. Например, целостность качества видео может быть ухудшена в области края, существующего на границе между первым треугольным элементом предсказания и вторым треугольным элементом предсказания. В целях снижения ухудшения качества видео на данной границе с помощью сглаживающего фильтра или взвешенного предсказания может быть получен образец предсказания.
Образцы предсказания в рамках блока кодирования, для которого применяется диагональное разбиение, могут быть получены на основе операции взвешенной суммы для первого образца предсказания, полученного на основе информации о движении первого треугольного элемента предсказания, и второго образца предсказания, полученного на основе информации о движении второго треугольного элемента предсказания. В качестве альтернативы, образец предсказания первого треугольного элемента предсказания получен из первого блока предсказания, определенного на основе информации о движении первого треугольного элемента предсказания, а образец предсказания второго треугольного элемента предсказания получен из второго блока предсказания, определенного на основе информации о движении второго треугольного элемента предсказания, при этом образец предсказания, расположенный в граничной области первого треугольного элемента предсказания и второго треугольного элемента предсказания, может быть получен на основе операции взвешенной суммы для первого образца предсказания, включенного в первый блок предсказания, и второго образца предсказания, включенного во второй блок предсказания. Например, Уравнение 2 показывает пример получения образцов предсказания первого треугольного элемента предсказания и второго треугольного элемента предсказания.
[Уравнение 2]
В Уравнении 2 Р1 обозначает первый образец предсказания, а Р2 обозначает второй образец предсказания, w1 обозначает значение веса, используемое для первого образцапредсказания, a (1-wl) обозначает значение веса, используемое для второго образца предсказания. Как показано в рамках примера в соответствии с Уравнением 2, значение веса, используемое для второго образца предсказания, может быть получено путем вычитания значения веса, используемого для первого образца предсказания, из константного значения.
При использовании левого треугольного типа разбиения для блока кодирования граничная область может включать образцы предсказания, у которых координата по оси X и координата по оси Y являются одинаковыми. С другой стороны, когда для блока кодирования используется правый треугольный тип разбиения, граничная область может включать образцы предсказания, у которых сумма координаты по оси X и координаты по оси Y превышает или является равной первому пороговому значению и является меньшей, чем второе пороговое значение.
Размер пограничной области может быть определен на основе, по меньшей мере, одного из следующих признаков: размера блока кодирования, формы блока кодирования, информации о движении треугольных элементов предсказания, значения разности между векторами движения треугольных элементов предсказания, выходного порядка опорных изображений, и значения разности между первым образцом предсказания и вторым образцом предсказания в районе диагональной границы.
На Фиг. 18 и 19 показаны примеры получения образца предсказания на основе операции взвешенной суммы для первого образца предсказания и второго образца предсказания. На Фиг. 18 показан пример применения левого треугольного типа разбиения для блока кодирования, а на Фиг. 19 показан пример применения правого треугольного типа разбиения для блока кодирования. Кроме того, на Фиг. 18 (а) и 19 (а) показаны паттерны предсказания для компонента яркости, а на Фиг. 18 (b) и 19 (b) показаны паттерны предсказания для компонента цветности.
В рамках фигур указанные числа на образцах предсказания, расположенные рядом с границей между первым элементом предсказания и вторым элементом предсказания, обозначают значения весов, используемых для первого образца предсказания. Например, когда число, указанное на образце предсказания, представляет собой N, образец предсказания может быть получен путем использования значения веса N/8 для первого образца предсказания и использования значение веса (1-(N/8)) для второго образца предсказания.
В не являющейся граничной области первый образец предсказания или второй образец предсказания могут быть определены как образца предсказания. Согласно примеру в рамках Фиг. 18, в области, принадлежащей первому треугольному элементу предсказания среди областей, в которых абсолютное значение разности между координатой по оси X и координатой по оси Y превышает пороговое значение, первый образец предсказания, полученный на основе информации о движении первого треугольного элемента предсказания, может быть определен как образец предсказания. С другой стороны, в области, принадлежащей второму треугольному элементу предсказания среди областей, в которых значение разности между координатой по оси X и координатой по оси Y превышает пороговое значение, второй образец предсказания, полученный на основе информации о движении второго треугольного элемента предсказания, может быть определен как образец предсказания.
Согласно примеру в рамках Фиг. 19, в области, в которой сумма координаты по оси X и координаты по оси Y является меньшей, чем первое пороговое значение, первый образец предсказания, полученный на основе информации о движении первого треугольного элемента предсказания, может быть определен как образец предсказания. С другой стороны, в области, в которой сумма координаты по оси X и координаты по оси Y является большей, чем второе пороговое значение, второй образец предсказания, полученный на основе информации о движении второго треугольного элемента предсказания, может быть определен как образец предсказания.
Пороговое значение для определения не являющейся граничной области может быть определено на основе, по меньшей мере, одного из следующих признаков: размера блока кодирования, формы блока кодирования, и компонента цвета. Например, когда пороговое значение для компонента яркости представляет собой N, пороговое значение компонента цветности может представлять собой N/2.
Образцы предсказания, включенные в граничную область, могут быть получены на основе операции взвешенной суммы для первого образца предсказания и второго образца предсказания. В этом случае значения веса, используемые для первого образца предсказания и второго образца предсказания, могут быть определены на основе, по меньшей мере, одного из следующих признаков: координат образца предсказания, размера блока кодирования, формы блока кодирования и компонента цвета.
Например, как показано в рамках примера на Фиг. 18 (а), образцы предсказания с одинаковыми координатами по оси X и по оси Y могут быть получены путем использования одного и того же значения веса для первого образца предсказания и второго образца предсказания. Образцы предсказания, у которых абсолютное значение разности между координатой по оси X и координатой по оси Y составляет 1, могут быть получены путем использования соотношения значений веса, применяемых для первого образца предсказания и второго образца предсказания, в виде (3:1) или (1:3). Кроме того, образцы предсказания, у которых абсолютное значение разности между координатой по оси X и координатой по оси Y составляет 2, могут быть получены путем использования соотношения значений веса, применяемых для первого образца предсказания и второго образца предсказания, в виде (7:1) или (1:7).
В качестве альтернативы, как показано в рамках примера на Фиг. 18 (b), образцы предсказания с теми же координатами по оси X и по оси Y могут быть получены путем использования одного и того же значения веса для первого образца предсказания и второго образца предсказания, при этом образцы предсказания, у которых абсолютное значение разности между координатой по оси X и координатой по оси Y составляет 1, могут быть получены путем использования соотношения значений веса, применяемых для первого образца предсказания и второго образца предсказания, в виде (7:1) или (1:7).
Например, как показано в рамках примера на Фиг. 19 (а), образцы предсказания, у которых сумма координаты по оси X и координаты по оси Y на 1 меньше, чем ширина или высота блока кодирования, могут быть получены путем использования одного и того же значения веса для первого образца предсказания и второго образца предсказания. Образцы предсказания, у которых сумма координаты по оси X и координаты по оси Y является равной или на 2 меньшей, чем ширина или высота блока кодирования, могут быть получены путем использования соотношения значений веса, применяемых для первого образца предсказания и второго образца предсказания, в виде (3:1) или (1:3). Образцы предсказания, у которых сумма координаты по оси X и координаты по оси Y превышает или является меньшей на 1 или 3, чем ширина или высота блока кодирования, могут быть получены путем использования соотношения значений веса, применяемых для первого образца предсказания и второго образца предсказания, в виде (7:1) или (1:7).
В качестве альтернативы, как показано в рамках примера на Фиг. 19 (b), образцы предсказания, у которых сумма координаты по оси X и координаты по оси Y на 1 меньше, чем ширина или высота блока кодирования, могут быть получены путем использования одного и того же значения веса для первого образца предсказания и второго образца предсказания. Образцы предсказания, у которых сумма координаты по оси X и координаты по оси Y является равной или меньшей на 2, чем ширина или высота блока кодирования, могут быть получены путем использования соотношения значений веса, применяемых для первого образца предсказания и второго образца предсказания, в виде (7:1) или (1:7).
В качестве другого примера значение веса может быть определено с учетом координат образца предсказания или формы блока кодирования. В рамках Уравнений 3-5 показан пример получения значения веса когда для блока кодирования применяется левый треугольный тип разбиения. В рамках Уравнения 3 показан пример получения значения веса, используемого для первого образца предсказания, когда блок кодирования имеет квадратную форму.
В Уравнении 3 х и у обозначают координаты образца предсказания. Когда блок кодирования имеет неквадратную форму, значение веса, используемое для первого образца предсказания, может быть получено как показано в рамках Уравнения 4 или 5. В рамках Уравнения 4 показан случай, когда ширина блока кодирования превышает высоту, а в рамках Уравнения 5 показан случай, когда ширина блока кодирования является меньшей, чем высота.
Когда для блока кодирования используется правый треугольный тип разбиения, значение веса, используемое для первого образца предсказания, может быть определено как показано в рамках Уравнений 6-8. В рамках Уравнения 6 показан пример получения значения веса, используемого для первого образца предсказания, когда блок кодирования имеет квадратную форму.
В рамках Уравнения 6 CbW обозначает ширину блока кодирования. Когда блок кодирования имеет неквадратную форму, значение веса, используемое для первого образца предсказания, может быть получено как показано в рамках Уравнения 7 или Уравнения 8. В рамках Уравнения 7 показан случай, когда ширина блока кодирования превышает высоту, а в рамках Уравнения 8 показан случай, когда ширина блока кодирования является меньшей, чем высота.
В рамках Уравнения 7 CbH обозначает высоту блока кодирования.
Как показано в рамках данного примера, среди образцов предсказания в граничной области, образцы предсказания, включенные в первый треугольный элемент предсказания, получены путем присваивания значения веса, превышающего значение веса второго образца предсказания, первому образцу предсказания, при этом образцы предсказания, включенные во второй треугольный элемент предсказания, получены путем присваивания значения веса, превышающего значение веса первого образца предсказания, второму образцу предсказания.
При использовании диагонального разбиения для блока кодирования комбинированный режим предсказания, в рамках которого комбинируется режим внутрикадрового предсказания и режим межкадрового предсказания, может не использоваться для блока кодирования.
Внутрикадровое предсказание предназначено для предсказывания текущего блока с помощью восстановленных образцов, которые были закодировали/декодированы в области текущего блока. В этом случае образцы, восстановленные до применения петлевого фильтра, могут использоваться для внутрикадрового предсказания текущего блока.
Способ внутрикадрового предсказания включает внутрикадровое предсказание на основе матрицы и общее внутрикадровое предсказание с учетом направленности относительно соседних восстановленных образцов. Информация с указанием способа внутрикадрового предсказания текущего блока может быть передана с помощью потока битов. Данная информация может представлять собой 1-битный флаг. В качестве альтернативы, способ внутрикадрового предсказания текущего блока может быть определен на основе, по меньшей мере, одного из следующих признаков: координат текущего блока, размера текущего блока, формы текущего блока, и способа внутрикадрового предсказания соседнего блока. Например, когда текущий блок располагается вдоль границы изображения, внутрикадровое предсказание на основе матрицы может не использоваться для текущего блока.
Внутрикадровое предсказание на основе матрицы представляет собой способ получения блока предсказания текущего блока кодировщиком и декодером на основе результата в виде произведения ранее полученной матрицы и восстановленных образцов в области текущего блока. Информация для указания любой одной из нескольких ранее полученных матриц может быть передана с помощью потока битов. Декодер может определять матрицу для внутрикадрового предсказания текущего блока на основе данной информации и размера текущего блока.
Общее внутрикадровое предсказание представляет собой способ получения блока предсказания для текущего блока на основе неуглового режима внутрикадрового предсказания или углового режима внутрикадрового предсказания. Процесс осуществления внутрикадрового предсказания на основе общего внутрикадрового предсказания со ссылкой на фигуры будет более подробно описан далее.
Фиг. 20 представляет собой блок-схему, показывающую способ внутрикадрового предсказания в соответствии с вариантом осуществления настоящего изобретения.
Может быть определена строка в виде опорных образцов текущего блока (S2001). Строка в виде опорных образцов представляет собой набор опорных образцов, включенных в k-ю строку от верха и/или левой стороны текущего блока. Опорные образцы могут быть получены из восстановленных образцов, которые были подвергнуты кодированию/декодированию в области текущего блока.
Указательная информация для идентификации строки в виде опорных образцов текущего блока среди нескольких строк в виде опорных образцов может быть передана с помощью потока битов. Например, указательная информация intra_luma_ref_idx для указания строки в виде опорных образцов текущего блока может быть передана с помощью потока битов. Данная указательная информация может быть передана элементом в виде блока кодирования.
Несколько строк в виде опорных образцов могут включать, по меньшей мере, один из следующих признаков: первую строку, вторую строку, третью строку, и четвертую строку от верха и/или левой стороны текущего блока. Строка в виде опорных образцов, состоящая из строки, являющейся смежной относительно верха текущего блока, и столбца, являющегося смежным относительно левой стороны текущего блока, среди нескольких строк в виде опорных образцов обозначается как смежная строка в виде опорных образцов, при этом другие строки в виде опорных образцов могут обозначаться как не являющиеся смежными строки в виде опорных образцов.
Только некоторые из нескольких строк в виде опорных образцов могут быть выбраны в качестве строки в виде опорных образцов текущего блока. Например, остальные строки в виде опорных образцов за исключением третьей не являющейся смежной строки в виде опорных образцов среди нескольких строк в виде опорных образцов могут представлять собой с троки-кандидаты в виде опорных образцов. В Таблице 3 показаны указатели, присвоенные строкам-кандидатам в виде опорных образцов.
Может присутствовать большее количество строк-кандидатов в виде опорных образцов или меньшее количество строк-кандидатов в виде опорных образцов, чем описанные выше строки-кандидаты в виде опорных образцов. Кроме того, количество или координаты не являющихся смежными строк в виде опорных образцов, представляющих собой строки-кандидаты в виде опорных образцов, не ограничивается описанным выше примером. Например, первая не являющаяся смежной строка в виде опорных образцов и третья не являющаяся смежной строка в виде опорных образцов могут представлять собой строки-кандидаты в виде опорных образцов, или вторая не являющаяся смежной строка в виде опорных образцов и третья не являющаяся смежной строка в виде опорных образцов могут представлять собой строки-кандидаты в виде опорных образцов. В качестве альтернативы, все из следующих строк могут представлять собой строки-кандидаты в виде опорных образцов: первая не являющаяся смежной строка в виде опорных образцов, вторая не являющаяся смежной строка в виде опорных образцов, и третья не являющаяся смежной строка в виде опорных образцов.
Количество или типы строк-кандидатов в виде опорных образцов могут быть определены на основании, по меньшей мере, одного из следующих признаков: размера текущего блока, формы текущего блока, координат текущего блока, разбиения текущего блока на подблоки, и режима внутрикадрового предсказания текущего блока.
Строка в виде опорных образцов текущего блока может быть определена на основе, по меньшей мере, одного из следующих признаков: координат текущего блока, размера текущего блока, формы текущего блока, и способа кодирования предсказания соседнего блока. Например, когда текущий блок касается границы изображения, таила, слайса или элемента дерева кодирования, смежная строка в виде опорных образцов может быть определена как строка в виде опорных образцов текущего блока.
В качестве альтернативы, когда текущий блок имеет неквадратную форму, смежная строка в виде опорных образцов может быть определена как строка в виде опорных образцов текущего блока. В качестве альтернативы, когда отношение ширины к высоте текущего блока превышает или является равным пороговому значению, смежная строка в виде опорных образцов может быть определена как строка в виде опорных образцов текущего блока.
Строка в виде опорных образцов может включать верхние опорные образцы, расположенные вверху текущего блока, и левые опорные образцы, расположенные на левой стороне текущего блока. Верхние опорные образцы и левые опорные образцы могут быть получены из восстановленных образцов в области текущего блока. Указанные восстановленные образцы могут быть в состоянии до применения петлевого фильтра.
Далее может быть определен режим внутрикадрового предсказания текущего блока (S2002). Что касается режима внутрикадрового предсказания текущего блока, по меньшей мере, один из неуглового режима внутрикадрового предсказания и углового режима внутрикадрового предсказания может быть определен как режим внутрикадрового предсказания текущего блока. Неугловой режим внутрикадрового предсказания включает пленарный режим и DC режим, а угловой режим внутрикадрового предсказания включает 33 или 65 режимов между нижним левым диагональным направлением и верхним правым диагональным направлением.
На Фиг. 21 показаны режимы внутрикадрового предсказания.
На Фиг. 21 (а) показаны 35 режимов внутрикадрового предсказания, а на Фиг. 21 (b) показаны 67 режимов внутрикадрового предсказания.
Может быть определено большее или меньшее количество режимов внутрикадрового предсказания, чем те, которые показаны на Фиг. 21.
Наиболее вероятный режим (МРМ) может быть установлен на основе режима внутрикадрового предсказания соседнего блока, являющегося смежным относительно текущего блока. В этом случае соседний блок может включать левый соседний блок, являющийся смежным относительно левой стороны текущего блока, и верхний соседний блок, являющийся смежным относительно верха текущего блока.
Количество МРМ, включенных в перечень МРМ, может быть ранее задано в кодировщике и декодере. Количество МРМ, включенных в перечень МРМ, может быть предварительно задано в кодировщике и декодере. Например, количество МРМ может составлять 3, 4, 5 или 6. В качестве альтернативы, информация с указанием количества МРМ может быть передана с помощью потока битов. В качестве альтернативы, количество МРМ может быть определено на основе, по меньшей мере, одного из следующих признаков: режима кодирования предсказания соседнего блока и размера, формы и указателя строки в виде опорных образцов текущего блока. Например, когда смежная строка в виде опорных образцов определяется как строка в виде опорных образцов текущего блока, могут использоваться N МРМ, в то время как когда не являющаяся смежной строка в виде опорных образцов определяется как строка в виде опорных образцов текущего блока, могут использоваться М МРМ. М представляет собой натуральное число меньше N, при этом, например, N может быть равным 6, а М может быть равным 5, 4, или 3. Соответственно, когда указатель строки в виде опорных образцов текущего блока имеет значение 0 и флаг МРМ имеет значение true, любой один из 6 режимов-кандидатов внутрикадрового предсказания может быть определен как режим внутрикадрового предсказания текущего блока, в то время как когда указатель строки в виде опорных образцов текущего блока имеет значение больше 0 и флаг МРМ имеет значение true, любой один из 5 режимов-кандидатов внутрикадрового предсказания может быть определен как режим внутрикадрового предсказания текущего блока.
В качестве альтернативы может использоваться фиксированное количество (например, 6 или 5) МРМ-кандидатов вне зависимости от указателя строки в виде опорных образцов текущего блока.
Генерируется перечень МРМ, включающий несколько МРМ, при этом информация, указывающая на то, что МРМ, являющийся тем же режимом, что и режим внутрикадрового предсказания текущего блока, включается в перечень МРМ, может быть передана с помощью потока битов. Данная информация представляет собой 1-битный флаг и может быть обозначена как флаг МРМ. Когда флаг МРМ указывает на то, что МРМ, являющийся тем же режимом, что и режим текущего блока, включен в перечень МРМ, указательная информация, идентифицирующая один из МРМ, может быть передана с помощью потока битов. Например, указательная информация mpmidx, указывающая любой один из нескольких МРМ, может быть передана с помощью потока битов. МРМ, указанный с помощью данной указательной информации, может представлять собой режим внутрикадрового предсказания текущего блока. Когда флаг МРМ указывает на то, что МРМ, являющийся тем же режимом, что и режим текущего блока, не включен в перечень МРМ, информация об остаточном режиме, указывающая любой один из остаточных режимов внутрикадрового предсказания, отличных от МРМ, может быть передана с помощью потока битов. Информация об остаточном режиме указывает значение указателя, соответствующее режиму внутрикадрового предсказания текущего блока, когда указатели переназначаются остаточным режимам внутрикадрового предсказания за исключением МРМ. Декодер может группировать МРМ в порядке по возрастанию и определять режим внутрикадрового предсказания текущего блока путем сравнения информации об остаточном режиме с МРМ. Например, когда информация об остаточном режиме является равной или меньшей, чем МРМ, режим внутрикадрового предсказания текущего блока может быть получен путем добавления 1 к информации об остаточном режиме.
Когда получен режим внутрикадрового предсказания текущего блока, сравнение некоторых МРМ и информации об остаточном режиме может быть пропущено. Например, среди всех МРМ из мишеней для сравнения могут быть исключены МРМ неуглового режима внутрикадрового предсказания. Когда неугловые режимы внутрикадрового предсказания представляют собой МРМ, является очевидным, что информация об остаточном режиме указывает угловой режим внутрикадрового предсказания, и, таким образом, режим внутрикадрового предсказания текущего блока может быть получен путем сравнения остаточных МРМ, за исключением неугловых режимов внутрикадрового предсказания, и информации об остаточном режиме. Вместо исключения неугловых режимов внутрикадрового предсказания из мишеней для сравнения, количество неугловых режимов внутрикадрового предсказания добавляется к информации об остаточном режиме и затем полученное сравниваемое значение может быть сравнено с остаточными МРМ.
Вместо использования режима по умолчанию для МРМ, информация, указывающая на то, является ли режим внутрикадрового предсказания текущего блока режимом по умолчанию, может быть передана с помощью потока битов. Данная информация представляет собой 1-битный флаг, при этом данный флаг может быть обозначен как флаг режима по умолчанию. Флаг режима по умолчанию может быть передан только когда флаг МРМ указывает на то, что МРМ, являющийся тем же режимом, что и режим текущего блока, включен в перечень МРМ. Как описано выше, режим по умолчанию может включать, по меньшей мере, один из следующих режимов: планарный режим, DC режим, режим вертикального направления, и режим горизонтального направления. Например, когда планарный режим используется в качестве режима по умолчанию, флаг режима по умолчанию может указывать на то, является ли режим внутрикадрового предсказания текущего блока планарным режимом. Когда флаг режима по умолчанию указывает на то, что режим внутрикадрового предсказания текущего блока не является режимом по умолчанию, один из МРМ, указанных с помощью указательной информации, может представлять собой режим внутрикадрового предсказания текущего блока.
Когда используется флаг режима по умолчанию, режим внутрикадрового предсказания, являющийся тем же режимом, что и режим по умолчанию, может не являться МРМ. Например, когда флаг режима по умолчанию указывает на то, является ли режим внутрикадрового предсказания текущего блока планарным режимом, режим внутрикадрового предсказания текущего блока может быть получен путем использования 5 МРМ за исключением МРМ, соответствующего планарному режиму.
Когда несколько режимов внутрикадрового предсказания представляют собой режимы по умолчанию, может быть передана указательная информация, указывающая любой один из режимов по умолчанию. Режим внутрикадрового предсказания текущего блока может представлять собой режим по умолчанию, указанный с помощью данной указательной информации.
Когда указатель строки в виде опорных образцов текущего блока не равен 0, он может не использовать режим по умолчанию. Например, неугловой режим внутрикадрового предсказания, такой как DC режим или планарный режим, может не использоваться когда не являющаяся смежной строка в виде опорных образцов определена как строка в виде опорных образцов текущего блока. Соответственно, когда указатель строки в виде опорных образцов не равен 0, флаг режима по умолчанию не предается, при этом значение флага режима по умолчанию может представлять собой предварительно определенное значение (то есть false).
Когда режим внутрикадрового предсказания текущего блока определен, образцы предсказания могут быть получены для текущего блока на основе определенного режима внутрикадрового предсказания (S2003).
Когда выбран DC режим, образцы предсказания получаются для текущего блока на основе среднего значения опорных образцов. В частности, значения всех образцов в блоке предсказания могут быть получены на основе среднего значения опорных образцов. Среднее значение может быть получено с помощью, по меньшей мере, одного из следующих видов образцов: верхних опорных образцов, расположенных вверху текущего блока, и левых опорных образцов, расположенных на левой стороне текущего блока.
В зависимости от формы текущего блока, количество или диапазон опорных образцов, применяемых для получения среднего значения, может варьироваться. Например, когда текущий блок представляет собой блок неквадратной формы, у которого ширина превышает высоту, среднее значение может быть вычислено с помощью лишь верхних опорных образцов. С другой стороны, когда текущий блок представляет собой блок неквадратной формы, у которого ширина является меньшей, чем высота, среднее значение может быть вычислено с помощью лишь левых опорных образцов. То есть когда ширина и высота текущего блока являются различающимися, среднее значение может быть вычислено с помощью лишь опорных образцов, являющихся смежными относительно более длинной из них. В качестве альтернативы, на основе отношения ширины к высоте текущего блока может быть определена необходимость вычисления среднего значения с помощью лишь верхних опорных образцов или необходимость вычисления среднего значения с помощью лишь левых опорных образцов.
При выборе планарного режима образец предсказания может быть получен с помощью образца предсказания горизонтального направления и образца предсказания вертикального направления. В этом случае образец предсказания горизонтального направления получен на основе левого опорного образца и правого опорного образца, расположенных на такой же горизонтальной линии, что и у образца предсказания, при этом образец предсказания вертикального направления получен на основе верхнего опорного образца и нижнего опорного образца, расположенных на такой же вертикальной линии, что и у образца предсказания. В этом случае правый опорный образец может быть получен путем копирования опорного образца, являющегося смежным относительно верхнего правого угла текущего блока, а нижний опорный образец может быть получен путем копирования опорного образца, являющегося смежным относительно нижнего левого угла текущего блока. Образец предсказания горизонтального направления может быть получен на основе операции взвешенной суммы для левого опорного образца и правого опорного образца, при этом образец предсказания вертикального направления может быть получен на основе операции взвешенной суммы для верхнего опорного образца и нижнего опорного образца. В этом случае значение веса, присвоенное каждому опорному образцу, может быть определено в соответствии с координатами образца предсказания. Образец предсказания может быть получен на основе операции усреднения или операции взвешенной суммы для образца предсказания горизонтального направления и образца предсказания вертикального направления. При осуществлении операции взвешенной суммы значения весов, используемые для образца предсказания горизонтального направления и образца предсказания вертикального направления, могут быть определены на основе координат образца предсказания.
При выборе углового режима предсказания может быть определен параметр, указывающий направление предсказания (или угол предсказания) выбранного углового режима предсказания. В Таблице 4 показан параметр внутрикадрового направления intraPredAng каждого режима внутрикадрового предсказания.
При определении 35 режимов внутрикадрового предсказания Таблица 4 показывает параметр внутрикадрового направления каждого режима внутрикадрового предсказания, имеющего указатель от 2 до 34. При определении более чем 33 угловых режимов внутрикадрового предсказания Таблица 4 далее подразделяется для указания параметра внутрикадрового направления каждого углового режима внутрикадрового предсказания.
После группирования верхних опорных образцов и левых опорных образцов текущего блока в виде строки может быть получен образец предсказания на основе значения параметра внутрикадрового направления. В этом случае, когда значение параметра внутрикадрового направления представляет собой отрицательное значение, левые опорные образцы и верхние опорные образцы могут быть сгруппированы в виде строки.
На Фиг. 22 и 23 показан пример одномерного массива с группировкой опорных образцов в виде строки.
На Фиг. 22 показан пример одномерного массива вертикального направления с группировкой опорных образцов в вертикальном направлении, а на Фиг. 23 показан пример одномерного массива горизонтального направления с группировкой опорных образцов в горизонтальном направлении. Варианты осуществления в соответствии с Фиг. 22 и 23 будут описаны с допущением того, что определены 35 режимов внутрикадрового предсказания.
Когда указатель режима внутрикадрового предсказания составляет от 11 до 18, может использоваться одномерный массив горизонтального направления, в котором верхние опорные образцы поворачиваются против часовой стрелки, а когда указатель режима внутрикадрового предсказания составляет от 19 до 25, может использоваться одномерный массив вертикального направления, в котором левые опорные образцы поворачиваются по часовой стрелке. При группировке опорных образцов в строку может учитываться угол режима внутрикадрового предсказания.
На основе параметра внутрикадрового направления может быть определен параметр определения опорного образца. Параметр определения опорного образца может включать указатель опорного образца для указания опорного образца и параметр значения веса для определения значения веса, используемого для опорного образца.
fact
Указатель опорного образца iIdx и параметр значения веса i могут быть получены с помощью Уравнений 9 и 10, соответственно, которые показаны ниже.
[Уравнение 9]
ang
iIdx=(у+1)*P/32
[Уравнение 10]
fact
ang
i=[(y+1)*P]&31
ang
В рамках Уравнений 9 и 10 P обозначает параметр внутрикадрового направления. Опорный образец, указанный на основе указателя опорного образца iIdx, соответствует целочисленному пикселу.
Для получения образца предсказания могут быть указаны, по меньшей мере, один или несколько опорных образцов. В частности, координаты опорного образца, используемого для получения образца предсказания, могут быть указаны с учетом наклона режима предсказания. Например, опорный образец, используемый для получения образца предсказания, может быть указан с помощью указателя опорного образца iIdx.
В этом случае, когда наклон режима внутрикадрового предсказания не выражается одним опорным образцом, образец предсказания может быть получен путем интерполяции нескольких опорных образцов. Например, когда наклон режима внутрикадрового предсказания представляет собой значение между наклоном между образцом предсказания и первым опорным образцом и наклоном между образцом предсказания и вторым опорным образцом, то образец предсказания может быть получен путем интерполяции первого опорного образца и второго опорного образца. То есть когда угловая линия, соответствующая углу внутрикадрового предсказания, не проходит через опорный образец, расположенный в целочисленном пикселе, образец предсказания может быть получен путем интерполирования опорных образцов, являющихся смежными относительно левой и правой или верхней и нижней сторон координат, через которые проходит наклонная линия.
В рамках Уравнения 11 показан пример получения образца предсказания на основе опорных образцов.
[Уравнение 11]
fact
fact
Р(х,у)=((32-i)/32)*Ref_1D(x+iIdx+1)+(i/32)*Ref_1D(x+iIdx+2)
В рамках Уравнения IIP обозначает образец предсказания, a Ref_1D обозначает один из сгруппированных в одномерном виде опорных образцов. В этом случае координаты опорного образца могут быть определены на основе координат (х, у) образца предсказания и указателя iIdx опорного образца.
fact
Когда наклон режима внутрикадрового предсказания может быть выражен как один опорный образец, параметр значения веса i равняется 0. Соответственно, Уравнение 11 может быть упрощено как показано в рамках Уравнения 12.
[Уравнение 12]
Р(х,у)=Ref_1D(x+iIdx+1)
Внутрикадровое предсказание для текущего блока может быть осуществлено на основе нескольких режимов внутрикадрового предсказания. Например, режим внутрикадрового предсказания может быть получен для каждого образца предсказания, при этом образец предсказания может быть получен на основе режима внутрикадрового предсказания, присвоенного каждому образцу предсказания.
В качестве альтернативы, режим внутрикадрового предсказания может быть получен для каждой области, при этом внутрикадровое предсказание для каждой области может быть осуществлено на основе режима внутрикадрового предсказания, присвоенного каждой области. В этом случае область может включать, по меньшей мере, один образец. По меньшей мере, один из признаков в виде размера и формы области может быть подходящим образом определен на основе, по меньшей мере, одного из признаков в виде размера текущего блока, формы текущего блока, и режима внутрикадрового предсказания текущего блока. В качестве альтернативы, по меньшей мере, один из признаков в виде размера и формы области может быть предварительно определен в кодировщике и декодере в качестве не зависящего от размера или формы текущего блока.
В качестве альтернативы, внутрикадровое предсказание может быть осуществлено на основе каждого из нескольких внутрикадровых предсказаний, при этом конечный образец предсказания может быть получен на основе операции усреднения или операции взвешенной суммы для нескольких образцов предсказания, полученных с помощью нескольких внутрикадровых предсказаний. Например, первый образец предсказания может быть получен путем осуществления внутрикадрового предсказания на основе первого режима внутрикадрового предсказания, а второй образец предсказания может быть получен путем осуществления внутрикадрового предсказания на основе второго режима внутрикадрового предсказания. После этого конечный образец предсказания может быть получен на основе операции усреднения или операции взвешенной суммы для первого образца предсказания и второго образца предсказания. В этом случае значение веса, присвоенное каждому из первого образца предсказания и второго образца предсказания, может быть определено с учетом, по меньшей мере, одного из признаков в виде того, является ли первый режим внутрикадрового предсказания неугловым/угловым режимом предсказания, того, является ли второй режим внутрикадрового предсказания неугловым/угловым режимом предсказания, и режима внутрикадрового предсказания соседнего блока.
Несколько режимов внутрикадрового предсказания могут представлять собой комбинацию неуглового режима внутрикадрового предсказания и углового режима предсказания, комбинацию угловых режимов предсказания, или комбинацию неугловых режимов предсказания.
На Фиг. 24 показан пример углов, образованных между угловыми режимами внутрикадрового предсказания и прямой линией, параллельной оси X.
Как показано в рамках примера на Фиг. 24, угловые режимы предсказания могут существовать между нижним левым диагональным направлением и верхним правым диагональным направлением. При описании с точки зрения угла, образованного осью X и угловым режимом предсказания, угловые режимы предсказания могут присутствовать между 45 градусами (нижнее левое диагональное направление) и -135 градусами (верхнее правое диагональное направление).
Когда текущий блок имеет неквадратную форму, в соответствии с режимом внутрикадрового предсказания текущего блока образец предсказания может быть получен путем применения опорного образца, расположенного дальше от образца предсказания, вместо опорного образца, расположенного ближе к образцу предсказания, среди опорных образцов, расположенных на угловой линии в соответствии с углом внутрикадрового предсказания.
На Фиг. 25 показан вариант получения образцов предсказания когда текущий блок имеет неквадратную форму.
Например, как показано в рамках примера на Фиг. 25 (а), предполагается, что текущий блок имеет неквадратную форму с шириной, превышающей высоту, при этом режим внутрикадрового предсказания текущего блока представляет собой угловой режим внутрикадрового предсказания, имеющий угол от 0 до 45 градусов. В описанном выше случае при получении образца предсказания А рядом с правым столбцом текущего блока может использоваться левый опорный образец L, расположенный дальше от образца предсказания, вместо верхнего опорного образца Т, расположенного рядом с образцом предсказания, среди опорных образцов, расположенных в рамках наклонного режима в соответствии с данным углом.
В качестве другого примера, как показано в рамках примера на Фиг. 25 (b), предполагается, что текущий блок имеет неквадратную форму с высотой, превышающей ширину, при этом режим внутрикадрового предсказания текущего блока представляет собой угловой режим внутрикадрового предсказания, имеющий угол от -90 до -135 градусов. В описанном выше случае при получении образца предсказания А рядом с нижней строкой текущего блока может использоваться верхний опорный образец Т, расположенный дальше от образца предсказания, вместо левого опорного образца L, расположенного рядом с образцом предсказания, среди опорных образцов, расположенных в рамках наклонного режима в соответствии с данным углом.
Для решения описанной выше проблемы когда текущий блок имеет неквадратную форму режим внутрикадрового предсказания текущего блока может быть заменен на режим внутрикадрового предсказания противоположного направления. Соответственно, угловые режимы предсказания, имеющие угол, превышающий или являющийся меньшим, чем угол угловых режимов предсказания, показанных на Фиг. 21, могут использоваться для блока неквадратной формы. Подобный угловой режим внутрикадрового предсказания может быть определен как широкоугольный режим внутрикадрового предсказания. Широкоугольный режим внутрикадрового предсказания обозначает угловой режим внутрикадрового предсказания, который не принадлежит к диапазону от 45 до -135 градусов.
На Фиг. 26 показаны широкоугольные режимы внутрикадрового предсказания.
В рамках примера, показанного на Фиг. 26, режимы внутрикадрового предсказания с указателем от -1 до -14 и режимы внутрикадрового предсказания с указателем от 67 до 80 представляют собой широкоугольные режимы внутрикадрового предсказания.
Несмотря на то, что на Фиг. 26 показаны 14 широкоугольных режимов внутрикадрового предсказания (от -1 до -14), имеющих угол более 45 градусов, и 14 широкоугольных режимов внутрикадрового предсказания (от 67 до 80), имеющих угол менее -135 градусов, может быть определено большее или меньшее количество широкоугольных режимов внутрикадрового предсказания.
Когда используется широкоугольный режим внутрикадрового предсказания, длина верхних опорных образцов может представлять собой 2W+1, а длина левых опорных образцов может представлять собой 2Н+1.
Поскольку используется широкоугольный режим внутрикадрового предсказания, образец А, показанный на Фиг. 25 (а) может быть предсказан с использованием опорного образца Т, а образец А, показанный на Фиг. 25 (b), может быть предсказан с использованием опорного образца L.
Путем добавления существующих режимов внутрикадрового предсказания и N широкоугольных режимов внутрикадрового предсказания, всего могут использоваться 67+N режимов внутрикадрового предсказания. Например, в Таблице 5 показаны параметры внутрикадрового направления режимов внутрикадрового предсказания когда определены 20 широкоугольных режимов внутрикадрового предсказания.
Когда текущий блок имеет неквадратную форму и режим внутрикадрового предсказания текущего блока, полученный на этапе S2002, принадлежит к диапазону преобразования, режим внутрикадрового предсказания текущего блока может быть преобразован в широкоугольный режим внутрикадрового предсказания. Диапазон преобразования может быть определен на основе, по меньшей мере, одного из признаков в виде размера, формы, и соотношения текущего блока. В этом случае соотношение может соответствовать соотношению ширины и высоты текущего блока.
Когда текущий блок имеет неквадратную форму, при которой ширина превышает высоту, диапазон преобразования может быть определен в зависимости от указателя режима внутрикадрового предсказания (например, 66) верхнего правого диагонального направления (указатель режима внутрикадрового предсказания в верхнем правом диагональном направлении - N). В этом случае N может быть определено на основе соотношения текущего блока. Когда режим внутрикадрового предсказания текущего блока принадлежит к диапазону преобразования, режим внутрикадрового предсказания может быть преобразован в широкоугольный режим внутрикадрового предсказания. Преобразование может представлять собой вычитание предопределенного значения из режима внутрикадрового предсказания, при этом предопределенное значение может представлять собой общее количество (например, 67) режимов внутрикадрового предсказания за исключением широкоугольных режимов внутрикадрового предсказания.
В соответствии с описанным выше вариантом осуществления, режимы внутрикадрового предсказания от 66 до 53 могут быть преобразованы в широкоугольные режимы внутрикадрового предсказания от-1 до -14, соответственно.
Когда текущий блок имеет неквадратную форму, при которой высота превышает ширину, диапазон преобразования может зависеть от указателя режима внутрикадрового предсказания (например, 2) нижнего левого диагонального направления (указатель режима внутрикадрового предсказания в нижнем левом диагональном направлении + М). В этом случае М может быть определено на основе соотношения текущего блока. Когда режим внутрикадрового предсказания текущего блока принадлежит к диапазону преобразования, режим внутрикадрового предсказания может быть преобразован в широкоугольный режим внутрикадрового предсказания. Данное преобразование может представлять собой прибавление предопределенного значения к режиму внутрикадрового предсказания, при этом предопределенное значение может представлять собой общее количество (например, 65) угловых режимов внутрикадрового предсказания за исключением широкоугольных режимов внутрикадрового предсказания.
В соответствии с описанным выше вариантом осуществления, режимы внутрикадрового предсказания от 2 до 15 могут быть преобразованы в широкоугольные режимы внутрикадрового предсказания от 67 до 80, соответственно.
Режимы внутрикадрового предсказания, принадлежащие к диапазону преобразования, будут далее обозначены как широкоугольные внутрикадровые замещающие режимы предсказания.
Диапазон преобразования может быть определен на основе соотношения текущего блока. Например, в Таблицах 6 и 7 показан диапазон преобразования когда определены 35 режимов внутрикадрового предсказания и 67 режимов внутрикадрового предсказания за исключением широкоугольных режимов внутрикадрового предсказания, соответственно.
Как показано в рамках примеров на основе Таблиц 6 и 7, количество широкоугольных внутрикадровых замещающих режимов предсказания, принадлежащих к диапазону преобразования, может варьироваться в зависимости от соотношения текущего блока.
Как показано в Таблице 8, диапазон преобразования может быть определен в зависимости от подразделения соотношения текущего блока.
Широкоугольный режим внутрикадрового предсказания может не применяться когда не являющаяся смежной строка в виде опорных образцов определена в качестве строки в виде опорных образцов текущего блока или когда используется способ кодирования на основе много строчного внутрикадрового предсказания для выбора любого одного из нескольких строк в виде опорных образцов. То есть несмотря на то, что текущий блок имеет неквадратную форму и режим внутрикадрового предсказания текущего блока принадлежит к диапазону преобразования, режим внутрикадрового предсказания текущего блока может не быть преобразован в широкоугольный режим внутрикадрового предсказания.
В качестве альтернативы, не являющиеся смежными строки в виде опорных образцов могут не являться доступными в качестве строки в виде опорных образцов текущего блока или может не использоваться способ кодирования на основе многострочного внутрикадрового предсказания для выбора любой одной из нескольких строк в виде опорных образцов, когда режим внутрикадрового предсказания текущего блока определен как широкоугольный режим внутрикадрового предсказания. Когда способ кодирования на основе многострочного внутрикадрового предсказания не используется, смежная строка в виде опорных образцов может быть определена как строка в виде опорных образцов текущего блока.
Когда широкоугольный режим внутрикадрового предсказания не используется, сумма nTbW и nTbH может представлять собой refW и refH. Соответственно, за исключением верхнего левого опорного образца, не являющийся смежным опорный образец, имеющий расстояние i от текущего блока, может включать до (nTbW + nTbH + offsetX[i]) верхних опорных образцов и до (nTbW + nTbH + offsetY[i]) левых опорных образцов. То есть не являющийся смежным опорный образец, имеющий расстояние i от текущего блока, может включать до (2nTbW + 2nTbH + offsetX[i] + offsetY[i] + 1) опорных образцов. Например, когда значение whRatio больше 1, значение offsetX может являться большим, чем значение offsetY. Например, значение offsetX может быть равно 1, а значение offsetY может быть равно 0. С другой стороны, когда значение whRatio меньше 1, значение offsetY может являться большим, чем значение offsetX. Например, значение offsetX может быть равно 0, а значение offsetY может быть равно 1.
Поскольку широкоугольные режимы внутрикадрового предсказания используются в дополнение к существующим режимам внутрикадрового предсказания, повышается количество ресурсов, требуемых для кодирования широкоугольных режимов внутрикадрового предсказания, и, таким образом, эффективность кодирования может быть снижена. Соответственно, эффективность кодирования может быть повышена путем кодирования внутрикадровых замещающих режимов предсказания для широкоугольных режимов внутрикадрового предсказания вместо кодирования широкоугольных режимов внутрикадрового предсказания в их первоначальном виде.
Например, когда текущий блок кодируется с использованием 67-го широкоугольного внутрикадрового режима предсказания, 2-й внутрикадровый режим предсказания, который представляет собой замещающий внутрикадровый режим предсказания 67-го широкоугольного внутрикадрового режима предсказания, может кодироваться с использованием внутрикадрового режима предсказания текущего блока. Кроме того, когда текущий блок кодируется с использованием 1-го широкоугольного внутрикадрового режима предсказания, 66-й режим внутрикадрового предсказания, который представляет собой замещающий внутрикадровый режим предсказания 1-го широкоугольного внутрикадрового режима предсказания, может кодироваться с использованием внутрикадрового режима предсказания текущего блока.
Декодер может декодировать режим внутрикадрового предсказания текущего блока и определять принадлежность декодированного режима внутрикадрового предсказания к диапазону преобразования. Когда декодированный режим внутрикадрового предсказания представляет собой широкоугольный замещающий режим внутрикадрового предсказания, режим внутрикадрового предсказания может быть преобразован в широкоугольный режим внутрикадрового предсказания.
В качестве альтернативы, когда текущий блок кодируется с использованием широкоугольного режима внутрикадрового предсказания, широкоугольный режим внутрикадрового предсказания может кодироваться в своем первоначальном виде.
Кодирование режима внутрикадрового предсказания может осуществляться на основе описанного выше перечня МРМ. В частности, когда соседний блок кодируется с использованием широкоугольного режима внутрикадрового предсказания, МРМ может быть основан на широкоугольном замещающем режиме внутрикадрового предсказания, соответствующем широкоугольному режиму внутрикадрового предсказания.
Когда блок предсказания получен в результате осуществления внутрикадрового предсказания, образцы предсказания могут быть обновлены на основе координат каждого из образцов предсказания, включенных в блок предсказания. Подобный способ обновления может обозначаться как способ внутрикадрового взвешенного предсказания на основе координат образца или Комбинации внутрикадрового предсказания на основе координат (Position Dependent intra Prediction Combination, PDPC).
Необходимость использования PDPC может быть определена с учетом режима внутрикадрового предсказания текущего блока, строки в виде опорных образцов текущего блока, размера текущего блока, или компонента цвета. Например, PDPC может использоваться когда режим внутрикадрового предсказания текущего блока представляет собой, по меньшей мере, один из следующих режимов: планарный режим, DC режим, режим вертикального направления, режим горизонтального направления, режим со значением указателя меньше чем значение указателя режима вертикального направления, и режим со значением указателя больше чем значение указателя режима вертикального направления. В качестве альтернативы, PDPC может использоваться только когда, по меньшей мере, один из признаков в виде ширины и высоты текущего блока превышает 4. В качестве альтернативы, PDPC может использоваться только когда указатель строки опорного изображения текущего блока равен 0. В качестве альтернативы, PDPC может использоваться только когда указатель строки опорного изображения текущего блока равен или превышает предварительно определенное значение. В качестве альтернативы, PDPC может использоваться только для компонента яркости. В качестве альтернативы, использование PDPC может быть определено в зависимости от выполнения двух или более перечисленных выше условий.
В качестве другого примера, информация, указывающая на использование PDPC, может быть передана с помощью потока битов.
При получении образца предсказания с помощью внутрикадрового образца предсказания, опорный образец, используемый для коррекции образца предсказания, может быть определен на основе координат полученного образца предсказания. Для удобства объяснения в рамках описанного ниже варианта осуществления опорный образец, используемый для коррекции образца предсказания, обозначается как опорный образец PDPC. Кроме того, образец предсказания, полученный с помощью внутрикадрового предсказания, обозначен как первый образец предсказания, а образец предсказания, полученный путем коррекции первого образца предсказания, обозначен как второй образец предсказания.
На Фиг. 27 показан вариант использования PDPC.
Первый образец предсказания может быть скорректирован с помощью, по меньшей мере, одного опорного образца PDPC. Опорный образец PDPC может включать, по меньшей мере, один из следующих видов образцов: опорный образец, являющийся смежным относительно верхнего левого угла текущего блока, верхний опорный образец, расположенный у верха текущего блока, и левый опорный образец, расположенный на левой стороне текущего блока.
По меньшей мере, один из опорных образцов, принадлежащих к строке в виде опорных образцов текущего блока, может представлять собой опорный образец PDPC. В качестве альтернативы, вне зависимости от строки в виде опорных образцов текущего блока, по меньшей мере, один из опорных образцов, принадлежащих к строке в виде опорных образцов текущего блока, имеющей значение указателя 0, может представлять собой опорный образец PDPC. Например, несмотря на получение первого образца предсказания с использованием опорного образца, включенного в строку в виде опорных образцов со значением указателя 1 или значением указателя 2, второй образец предсказания может быть получен с использованием опорного образца, включенного в строку в виде опорных образцов со значением указателя 0.
Количество или координаты опорных образцов PDPC, используемых для коррекции первого образца предсказания, могут быть определены с учетом, по меньшей мере, одного из следующих признаков: внутрикадрового режима предсказания текущего блока, размера текущего блока, формы текущего блока, и координат первого образца предсказания.
Например, когда режим внутрикадрового предсказания текущего блока представляет собой планарный режим или DC режим, второй образец предсказания может быть получен с использованием верхнего опорного образца и левого опорного образца. В этом случае верхний опорный образец может представлять собой опорный образец, расположенный вертикально относительно первого образца предсказания (например, опорный образец с той же координатой по оси X), а левый опорный образец может представлять собой опорный образец, расположенный горизонтально относительно первого образца предсказания (например, опорный образец с той же координатой по оси Y).
Когда режим внутрикадрового предсказания текущего блока представляет собой режим внутрикадрового предсказания горизонтального направления, второй образец предсказания может быть получен с помощью верхнего опорного образца. В этом случае верхний опорный образец может представлять собой опорный образец, расположенный вертикально относительно первого образца предсказания.
Когда режим внутрикадрового предсказания текущего блока представляет собой режим внутрикадрового предсказания вертикального направления, второй образец предсказания может быть получен с помощью левого опорного образца. В этом случае левый опорный образец может представлять собой опорный образец, расположенный горизонтально относительно первого образца предсказания.
Когда режим внутрикадрового предсказания текущего блока представляет собой режим внутрикадрового предсказания нижнего левого диагонального направления или режим внутрикадрового предсказания верхнего правого диагонального направления, второй образец предсказания может быть получен на основе верхнего левого опорного образца, верхнего опорного образца, и левого опорного образца. Верхний левый опорный образец может представлять собой опорный образец, являющийся смежным относительно верхнего левого угла текущего блока (например, опорный образец с координатами (-1, -1)). Верхний опорный образец может представлять собой опорный образец, расположенный в верхнем правом диагональном направления первого образца предсказания, а левый опорный образец может представлять собой опорный образец, расположенный в нижнем левом диагональном направлении первого образца предсказания.
В целом, когда координаты первого образца предсказания представляют собой (х, у), R(-1, -1) может представлять собой верхний левый опорный образец, a R(x+у+1, -1) или R(x, -1) может представлять собой верхний опорный образец. Кроме того, R(-1, х+у+1) или R(-1, у) может представлять собой левый опорный образец.
Режим предсказания может использоваться для текущего блока несколько раз или несколько режимов предсказания могут быть повторно использованы для текущего блока. Подобным образом, способ предсказания на основе использования однородных или разнородных способов предсказания может быть обозначен как комбинированный режим предсказания (или Режим предсказания на основе множественных гипотез).
Комбинированный режим предсказания включает, по меньшей мере, один из следующих режимов: режим с комбинированием режима объединения и режима объединения, режим с комбинированием межкадрового и внутри кадрового предсказания, режим с комбинированием режима объединения и продвинутого режима предсказания вектора движения, и режим с комбинированием режима объединения и внутрикадрового предсказания.
В рамках комбинированного режима предсказания первый блок предсказания может быть получен на основе первого режима предсказания, а второй блок предсказания может быть получен на основе второго режима предсказания. Затем может быть получен третий блок предсказания на основе операции взвешенной суммы для первого блока предсказания и второго блока предсказания. Третий блок предсказания может представлять собой конечный блок предсказания текущего блока.
Необходимость использования комбинированного режима предсказания может быть определена на основе размера или формы текущего блока. Например, необходимость использования комбинированного режима предсказания может быть определена на основе, по меньшей мере, одного из следующих признаков: размера блока кодирования, количества образцов, включенных в блок кодирования, ширины блока кодирования, и высоты блока кодирования. Например, когда, по меньшей мере, один из признаков в виде ширины и высоты блока кодирования превышает или является равным 128, или когда количество образцов, включенных в блок кодирования, меньше или равно 64, комбинированный режим предсказания может не использоваться для блока кодирования.
Кроме того, информация, указывающая на использование комбинированного режима предсказания для текущего блока, может быть передана с помощью потока битов. Например, данная информация может представлять собой 1-битный флаг. Например, флаг mh_intra_flag, указывающий на использование комбинированного режима предсказания с комбинированием режима объединения и внутрикадрового предсказания, может быть передан с помощью потока битов. Когда mh_intra_flag равен 1, он указывает на то, что используется комбинированный режим предсказания с комбинированием режима объединения и внутрикадрового предсказания, а когда mh_intra_flag равен 0, он указывает на то, что комбинированный режим предсказания с комбинированием режима объединения и внутрикадрового предсказания не используется.
Комбинированный режим предсказания с комбинированием режима объединения и внутрикадрового предсказания может использоваться для текущего блока только когда режим кодирования предсказания текущего блока представляет собой режим межкадрового предсказания и режим объединения используется для текущего блока. То есть mh_intra_flag может быть передан, когда значение флага merge_flag, указывающего на использование режима объединения для текущего блока, равно 1.
В рамках комбинированного режима предсказания с комбинированием режима объединения и внутрикадрового предсказания режим внутрикадрового предсказания текущего блока может представлять собой предварительно определенный режим внутрикадрового предсказания. Например, при использовании комбинированного режима предсказания режим внутрикадрового предсказания текущего блока может представлять собой планарный режим.
В качестве другого примера, при использовании комбинированного режима предсказания с комбинированием режима объединения и внутрикадрового предсказания один из режимов-кандидатов внутрикадрового предсказания может быть определен в виде режима внутрикадрового предсказания текущего блока. В этом случае режим-кандидат внутрикадрового предсказания может включать, по меньшей мере, один следующих режимов: неугловой режим внутрикадрового предсказания и угловой режим внутрикадрового предсказания определенного направления. В этом случае, неугловой режим внутрикадрового предсказания включает, по меньшей мере, один из следующих режимов: DC режим и планарный режим, а угловой режим внутрикадрового предсказания включает, по меньшей мере, один из следующих режимов: режим внутрикадрового предсказания горизонтального направления, режим внутрикадрового предсказания вертикального направления, и режим внутрикадрового предсказания диагонального направления. Например, при использовании комбинированного режима предсказания только DC режим, планарный режим, режим внутрикадрового предсказания горизонтального направления, или режим внутрикадрового предсказания вертикального направления могут представлять собой режим внутрикадрового предсказания текущего блока. В качестве альтернативы, при использовании комбинированного режима предсказания только планарный режим, режим внутрикадрового предсказания горизонтального направления, или режим внутрикадрового предсказания вертикального направления могут представлять собой режим внутрикадрового предсказания текущего блока. В качестве альтернативы, при использовании комбинированного режима предсказания только DC режим, планарный режим, или режим внутрикадрового предсказания вертикального направления могут представлять собой режим внутрикадрового предсказания текущего блока. В качестве альтернативы, при использовании комбинированного режима предсказания только DC режим, планарный режим, или режим внутрикадрового предсказания горизонтального направления могут представлять собой режим внутрикадрового предсказания текущего блока.
Указательная информация для указания любого одного из режимов-кандидатов внутрикадрового предсказания может быть передана с помощью потока битов. Например, указатель mh_intra_idx, указывающий любой один из режимов-кандидатов внутрикадрового предсказания, может быть передан с помощью потока битов. В Таблицах 9 и 10 показаны режимы внутрикадрового предсказания в соответствии со значением mh_intra_idx. Режим внутрикадрового предсказания, указанный с помощью mh_intra_idx, может быть определен в виде режима внутрикадрового предсказания текущего блока.
Количество режимов-кандидатов внутрикадрового предсказания может иметь фиксированное значение в кодировщике и декодере. В качестве альтернативы, количество типов режимов-кандидатов внутрикадрового предсказания может варьироваться в зависимости от, по меньшей мере, одного из следующих признаков: размера текущего блока, формы текущего блока, и использования внутрикадрового предсказания для кодирования соседнего блока.
В качестве другого примера, при использовании комбинированного режима предсказания с комбинированием режима объединения и внутрикадрового предсказания режим внутрикадрового предсказания текущего блока может быть определен на основе МРМ. В этом случае количество МРМ, которое включает перечень МРМ при использовании общего внутрикадрового предсказания, может отличаться от количества МРМ, которое включает перечень МРМ при использовании комбинированного режима предсказания. Например, когда комбинированный режим предсказания не используется, перечень МРМ может включать 6 или 5 МРМ, в то время как при использовании комбинированного режима предсказания перечень МРМ может включать 4 или 3 МРМ. То есть при осуществлении общего внутрикадрового предсказания используются N МРМ, в то время как при использовании комбинированного режима предсказания могут использоваться МРМ в количестве менее N.
Например, подразумевается, что при использовании режима общего внутрикадрового предсказания МРМ, полученные на основе режима внутрикадрового предсказания соседнего блока, являющегося смежным по отношению к текущему блоку, представляют собой планарный режим, DC режим, INTRA_MODE3 2, INTRA_MODE31, INTRA_MODE33, и INTRA_MODE30. При использовании комбинированного режима предсказания для текущего блока, режим внутрикадрового предсказания текущего блока может быть определен с помощью лишь некоторых из 6 МРМ. Например, режим внутрикадрового предсказания текущего блока может быть определен с помощью перечня МРМ, включающего 3 МРМ, имеющих наименьшие значения указателя среди МРМ, то есть планарного режима, DC режима и INTRA_MODE32. В качестве альтернативы, любой из МРМ, имеющий предварительно определенное значение указателя, может быть определен в виде режима внутрикадрового предсказания текущего блока.
В качестве другого примера, также возможно установить количество МРМ, используемых для определения режима внутрикадрового предсказания текущего блока при использовании общего внутрикадрового предсказания, и количество МРМ, используемых для определения режима внутрикадрового предсказания текущего блока при использовании комбинированного режима предсказания.
При использовании комбинированного режима предсказания кодирование флага МРМ может быть пропущено, при этом может подразумеваться, что флаг МРМ имеет значение true. То есть при использовании комбинированного режима предсказания любой один из МРМ может быть определен как режим внутрикадрового предсказания текущего блока.
Способ кодирования на основе многострочного внутрикадрового предсказания может не использоваться когда для текущего блока используется комбинированный режим предсказания с комбинированием режима объединения и внутрикадрового предсказания. Когда способ кодирования на основе многострочного внутрикадрового предсказания не используется, для внутрикадрового предсказания текущего блока может использоваться смежная строка в виде опорных образцов.
В качестве альтернативы, способ кодирования на основе многострочного внутрикадрового предсказания может использоваться когда для текущего блока используется комбинированный режим предсказания с комбинированием режима объединения и внутрикадрового предсказания. Указательная информация для определения строки в виде опорных образцов текущего блока среди нескольких строк в виде опорных образцов может быть передана с помощью потока битов. В качестве альтернативы, строка в виде опорных образцов текущего блока может быть определена с учетом, по меньшей мере, одного из следующих признаков: размера текущего блока, формы текущего блока, режима внутрикадрового предсказания текущего блока, и строки в виде опорных образцов соседнего блока.
Количество доступных режимов-кандидатов внутрикадрового предсказания может являться различным в зависимости от строки в виде опорных образцов текущего блока. Например, при использовании смежной строки в виде опорных образцов режим-кандидат внутрикадрового предсказания может включать, по меньшей мере, один из следующих режимов: планарный режим, DC режим, режим внутрикадрового предсказания горизонтального направления, режим внутрикадрового предсказания вертикального направления, режим внутрикадрового предсказания нижнего левого диагонального направления, и режим внутрикадрового предсказания верхнего правого диагонального направления. С другой стороны, при использовании не являющейся смежной строки в виде опорных образцов режим-кандидат внутрикадрового предсказания может включать, по меньшей мере, один из следующих режимов: режим внутрикадрового предсказания горизонтального направления, режим внутрикадрового предсказания вертикального направления, режим внутрикадрового предсказания нижнего левого диагонального направления, и режим внутрикадрового предсказания верхнего правого диагонального направления.
Первый блок предсказания может быть получен с помощью кандидатов объединения, выбранных в рамках режима объединения, при этом второй блок предсказания может быть получен с помощью режима внутрикадрового предсказания. В этом случае для текущего блока может не использоваться треугольное разбиение, когда получен первый блок предсказания. То есть треугольное разбиение может не допускаться при комбинированном режиме предсказания с комбинированием режима объединения и внутрикадрового предсказания. Кроме того, для текущего блока может не использоваться PDPC, когда получен второй блок предсказания. То есть PDPC может не допускаться при комбинированном режиме предсказания с комбинированием режима объединения и внутрикадрового предсказания.
Третий блок предсказания может быть получен на основе операции взвешенной суммы для первого блока предсказания и второго блока предсказания. Например, в рамках Уравнения 13 показан пример получения третьего блока предсказания на основе операции взвешенной суммы для первого блока предсказания и второго блока предсказания.
merge
intra
comb
В Уравнении 13 P обозначает первый блок предсказания, полученный на основе режима объединения, а P обозначает второй блок предсказания, полученный на основе внутрикадрового предсказания. P обозначает третий блок предсказания, полученный путем комбинирования первого блока предсказания и второго блока предсказания, w обозначает первое значение веса, используемое для первого блока предсказания. Второе значение веса, используемое для второго блока предсказания, может быть получено путем вычитания первого значения веса w из константы N. Здесь N может иметь предварительно определенное значение в кодировщике и декодере. Например, N может иметь значение 4 или 8. В качестве альтернативы, константа N может быть получена на основе, по меньшей мере, одного из следующих признаков: размера, формы, и режима внутрикадрового предсказания текущего блока.
В отличие от примера, показанного в рамках Уравнения 13, w может представлять собой второе значение веса, при этом значение, полученное путем вычитания второго значения веса из предварительно определенной константы N, может представлять собой первое значение веса.
Значения весов, используемые для первого блока предсказания и второго блока предсказания, могут быть определены на основе, по меньшей мере, одного из следующих признаков: режима внутрикадрового предсказания текущего блока и наличия у режима объединения двунаправленной информации о движении. Например, когда режим внутрикадрового предсказания текущего блока представляет собой угловой режим предсказания, первое значение веса w может превышать первое значение веса w, когда режим внутрикадрового предсказания текущего блока представляет собой неугловой режим предсказания. В качестве альтернативы, когда кандидатом объединения осуществляется двунаправленное предсказание, значение веса w может превышать первое значение веса w, когда кандидатом объединения осуществляется однонаправленное предсказание.
В качестве примера, значения весов могут быть определены с учетом режимов кодирования предсказания соседних блоков, являющихся смежными относительно текущего блока. В этом случае соседний блок может включать, по меньшей мере, один из следующих блоков: верхний соседний блок, являющийся смежным по отношению к верху текущего блока, левый соседний блок, являющийся смежным по отношению к левой стороне текущего блока, и верхний левый соседний блок, являющийся смежным по отношению к верхнему левому углу текущего блока. Значение веса может быть определено на основе количества соседних блоков, кодируемых с помощью внутрикадрового предсказания среди соседних блоков, являющихся смежными по отношению к текущему блоку. Например, при увеличении количества соседних блоков, кодируемых с помощью внутрикадрового предсказания, среди соседних блоков, являющихся смежными по отношению к текущему блоку, первое значение веса может иметь меньшее значение, а второе значение веса может иметь большее значение. С другой стороны, при снижении количества соседних блоков, кодируемых с помощью отличного от внутрикадрового предсказания, среди соседних блоков, являющихся смежными по отношению к текущему блоку, первое значение веса может иметь большее значение, а второе значение веса может иметь меньшее значение. Например, когда как левый соседний блок, так и верхний соседний блок кодируются с помощью внутрикадрового предсказания, второе значение веса может представлять собой n. Когда только один из левого соседнего блока и верхнего соседнего блока кодируется с помощью внутрикадрового предсказания, второе значение веса может представлять собой n/2. Когда ни левый соседний блок, ни верхний соседний блок не кодируется с помощью внутрикадрового предсказания, второе значение веса может представлять собой n/4. В этом случае n обозначает целое чисто, являющееся равным или меньшим чем N.
Данное значение веса может быть определено на основе элементов в виде образца или подблока в рамках текущего блока. Например, текущий блок может быть разбит на несколько подблоков, при этом значение веса, используемое для каждого подблока, может иметь различное значение. В этом случае количество подблоков может иметь фиксированное значение в кодировщике и декодере. В качестве альтернативы, количество подблоков может быть подходящим образом определено на основе, по меньшей мере, одного из следующих признаков: размера текущего блока, формы текущего блока, режима внутрикадрового предсказания текущего блока, и режима кодирования предсказания соседнего блока.
На Фиг. 28 показаны примеры использования значений весов.
Текущий блок может быть разбит на несколько подблоков, при этом значение веса, используемое для каждого подблока, может иметь различное значение. Например, как показано в рамках примеров в соответствии с Фиг. 28 (а) и (b), для подблока, включающего образец, расположенный в верхнем левом углу текущего блока, второе значение веса является большим, чем первое значение веса. С другой стороны, для подблока, включающего образец, расположенный в нижнем правом углу текущего блока, первое значение веса может являться большим, чем второе значение веса.
Третий подблок предсказания для подблока может быть получен путем осуществления взвешенного предсказания для первого подблока предсказания и второго подблока предсказания, соответствующих данному подблоку. В этом случае, как показано в рамках примера в соответствии с Фиг. 28, значения весов, используемые для взвешенного предсказания, могут являться различными для каждого подблока.
Значение веса, присвоенное подблоку, может быть определено иным образом в соответствии с наличием у кандидата объединения двунаправленной информации о движении.
На Фиг. 29 показаны примеры присваивания различного значения веса подблоку в соответствии с наличием у кандидата объединения двунаправленной информации о движении.
Когда кандидат объединения имеет двунаправленную информацию о движении, первое значение веса w, присвоенное, по меньшей мере, одному из подблоков, может иметь большее значение по сравнению со случаем, при котором кандидат объединения имеет однонаправленную информацию о движении. Например, на Фиг. 29 (а) и (b) показано, что для всех подблоков значение веса w, используемое при применении двунаправленного предсказания, имеет значение, превышающее значение веса w, используемое при применении однонаправленного предсказания.
В качестве альтернативы, значение веса, используемое для подблока, может быть определено на основе режима внутрикадрового предсказания текущего блока.
На Фиг. 30 показаны примеры присваивания различного значения веса подблоку в соответствии с режимом внутрикадрового предсказания текущего блока.
Когда режим внутрикадрового предсказания текущего блока имеет вертикальное направление, второе значение веса подблока, расположенного вверху текущего блока, может являться большим, чем второе значение веса подблока, расположенного внизу текущего блока.
Например, второе значение веса может являться большим, чем первое значение веса для подблока, расположенного вверху текущего блока, в то время как первое значение веса и второе значение веса могут являться равными или первое значение веса может быть больше, чем второе значение веса, для подблока, расположенного внизу текущего блока.
Когда режим внутрикадрового предсказания текущего блока имеет горизонтальное направление, второе значение веса подблока, расположенного на левой стороне текущего блока, может являться большим, чем второе значение веса подблока, расположенного на правой стороне текущего блока.
Например, второе значение веса может являться большим, чем первое значение веса для подблока, расположенного на левой стороне текущего блока, в то время как первое значение веса и второе значение веса могут являться равными или первое значение веса может быть больше, чем второе значение веса, для подблока, расположенного на правой стороне текущего блока.
В качестве другого примера, когда режим внутрикадрового предсказания текущего блока имеет вертикальное направление, первое значение веса подблока, расположенного вверху текущего блока, может являться большим, чем первое значение веса подблока, расположенного внизу текущего блока, или когда режим внутрикадрового предсказания блока имеет горизонтальное направление, первое значение веса подблока, расположенного на левой стороне текущего блока, может являться большим, чем первое значение веса подблока, расположенного на правой стороне текущего блока.
В качестве другого примера, значение веса, присвоенное каждому подблоку, может быть определено на основе режимов кодирования предсказания соседних блоков, являющихся смежными по отношению к текущему блоку. Например, когда верхний соседний блок текущего блока кодируется с помощью внутрикадрового предсказания и левый соседний блок текущего блока не кодируется с помощью внутрикадрового предсказания, второе значение веса подблока, расположенного вверху текущего блока, может являться большим, чем второе значение веса подблока, расположенного внизу текущего блока. С другой стороны, когда верхний соседний блок текущего блока не кодируется с помощью внутрикадрового предсказания и левый соседний блок текущего блока кодируется с помощью внутрикадрового предсказания, второе значение веса подблока, расположенного на левой стороне текущего блока, может являться большим, чем второе значение веса подблока, расположенного на правой стороне текущего блока.
По меньшей мере, для одного из нескольких подблоков первое значение веса или второе значение веса может представлять собой 0. То есть, по меньшей мере, для одного из нескольких подблоков первый подблок предсказания или второй подблок предсказания может представлять собой третий подблок предсказания. Соответственно, комбинированное предсказания может не осуществляться, по меньшей мере, для одного из нескольких подблоков. Например, по меньшей мере, для одного из нескольких подблоков первое значение веса w может представлять собой 0 или первое значение веса w может представлять собой константу N.
Блок, для которого применяется комбинированный режим предсказания с комбинированием режима объединения и внутрикадрового предсказания, может считаться кодируемым с помощью межкадрового предсказания. Соответственно, режим внутрикадрового предсказания блока, кодируемого в рамках комбинированного режима предсказания, может являться недоступным для получения режима внутрикадрового предсказания блока, который будет подвергнут кодированию/декодированию после этого. При получении МРМ режим внутрикадрового предсказания недоступного блока может быть определен как планарный режим.
С другой стороны, информация о движении блока, кодируемого в рамках комбинированного режима предсказания, может являться доступной для получения информации о движении блока, который будет подвергнут кодированию/декодированию после этого.
В рамках режима с комбинированием режима объединения и режима объединения предсказание компенсации движения может быть осуществлено с помощью нескольких кандидатов объединения. В частности, первый блок предсказания может быть получен с помощью первого кандидата объединения, а второй блок предсказания может быть получен с помощью второго кандидата объединения. Третий блок предсказания может быть получен на основе операции взвешенной суммы для первого блока предсказания и второго блока предсказания.
Информация для указания первого кандидата объединения и второго кандидата объединения может быть передана с помощью потока битов, соответственно. Например, указательная информация merge_idx для указания первого кандидата объединения и указательная информация merge_2nd_idx для указания второго кандидата объединения может быть передана с помощью потока битов. Второй кандидат объединения может быть определен на основе указательной информации merge_2nd_idx и указательной информации merge_idx.
Указательная информация merge_idx указывает любой один среди кандидатов объединения, включенных в перечень кандидатов объединения.
Указательная информация merge_2nd_idx может указывать любой один из остальных кандидатов объединения за исключением кандидата объединения, указанного с помощью merge_idx. Соответственно, когда значение merge_2nd_idx является меньшим, чем значение merge_idx, кандидат объединения, у которого указатель равен значению merge_2nd_idx, может представлять собой второй кандидат объединения. Когда значение merge_2nd_idx равно или превышает значение merge_idx, кандидат объединения, имеющий в качестве указателя значение, полученное путем добавления 1 к значению merge_2nd_idx, может представлять собой второй кандидат объединения.
В качестве альтернативы, второй кандидат объединения может быть указан с учетом порядка поиска блоков-кандидатов.
На Фиг. 31 показан пример, в рамках которого второй кандидат объединения указан с учетом порядка поиска блоков-кандидатов.
В рамках примера, показанного на Фиг. 31, указатели, указанные на соседних образцах и не являющихся соседними образцах, указывают на порядок поиска блоков-кандидатов. Например, блоки-кандидаты могут подвергаться последовательному поиску от положения А0 до положения А14.
Когда блок А4 выбран в качестве первого кандидата объединения, кандидат объединения, полученный из блока-кандидата, имеющего порядок поиска рядом с А4, может быть указан в качестве второго кандидата объединения. Например, кандидат объединения, полученный из А5, может быть выбран в качестве второго кандидата объединения. Когда блок-кандидат в положении А5 не может использоваться в качестве кандидата объединения, кандидат объединения, полученный из следующего блока-кандидата, может быть выбран в качестве второго кандидата объединения.
Первый кандидат объединения и второй кандидат объединения могут быть выбраны среди кандидатов объединения, полученных из не являющихся соседними блоков.
На Фиг. 32 показан пример, в рамках которого первый кандидат объединения и второй кандидат объединения выбраны среди кандидатов объединения, полученных из не являющихся соседними блоков.
Как показано в рамках примера на Фиг. 32, кандидаты объединения, полученные из первого блока-кандидата и второго блока-кандидата, которые не являются смежными по отношению к текущему блоку, могут быть выбраны в качестве первого кандидата объединения и второго кандидата объединения, соответственно. В этом случае строка блока, к которой принадлежит первый блок-кандидат, и строка блока, к которой принадлежит второй блок-кандидат, могут являться различающимися. Например, первый кандидат объединения может быть получен из любого одного из блоков-кандидатов А5-A10, а второй кандидат объединения может быть получен из любого одного из блоков-кандидатов А11-А15.
В качестве альтернативы, первый блок-кандидат и второй блок-кандидат могут быть не включены в одну строку (например, строку или столбец).
В качестве другого примера второй кандидат объединения может быть указан на основе первого кандидата объединения. В этом случае первый кандидат объединения может быть указан с помощью указательной информации merge_idx, переданной с помощью потока битов. Например, кандидат объединения, являющийся смежным по отношению к первому кандидату объединения, может быть указан в качестве второго кандидата объединения. В этом случае кандидат объединения, являющийся смежным по отношению к первому кандидату объединения, может соответствовать кандидату объединения, имеющему величину указателя, отличающуюся на 1 от величины указателя первого кандидата объединения. Например, кандидат объединения, имеющий значение указателя merge_idx+1, может представлять собой второй кандидат объединения. В этом случае когда значение merge_idx+1 превышает максимальное значение указателя (или когда значение указателя первого кандидата объединения представляет собой максимальный указатель), кандидат объединения, имеющий значение указателя merge_idx-1, или кандидат объединения, имеющий значение указателя, соответствующее предварительно определенному значению (например 0), может представлять собой второй кандидат объединения.
В качестве альтернативы, кандидат объединения, являющийся смежным относительно первого кандидата объединения, может соответствовать кандидату объединения, полученному из блока-кандидата, являющегося в пространственном отношении смежным относительно блока-кандидата, используемого для получения первого кандидата объединения. В этом случае соседний блок-кандидат данного блока-кандидата может соответствовать блоку, являющемуся смежным относительно блока-кандидата в левом, правом, верхнем, нижем, или диагональном направлении.
В качестве другого примера второй кандидат объединения может быть указан на основе информации о движении первого кандидата объединения. Например, кандидат объединения, делящий одно опорное изображение с первым кандидатом объединения, может быть выбран в качестве второго кандидата объединения. При наличии нескольких кандидатов объединения, делящих одно опорное изображение с первым кандидатом объединения, кандидат объединения, имеющий наименьшее значение указателя среди нескольких кандидатов объединения, кандидат объединения, имеющий наименьшую разность значения указателя относительно первого кандидата объединения, или кандидат объединения, имеющий наименьшую разность значения вектора движения относительно первого кандидата объединения, может быть выбран в качестве второго кандидата объединения. В качестве альтернативы, второй кандидат объединения может быть выбран на основе указательной информации, указывающей любой один из нескольких кандидатов объединения.
В качестве альтернативы, когда первый кандидат объединения представляет собой однонаправленное предсказание первого направления, кандидат объединения, включающий информацию о движении во втором направлении, может представлять собой второй кандидат объединения. Например, когда первый кандидат объединения имеет информацию о движении в направлении L0, кандидат объединения, имеющий информацию о движении в направлении L1, может быть выбран в качестве второго кандидата объединения. При наличии нескольких кандидатов объединения, имеющих информацию о движении в направлении L1, кандидат объединения, имеющий наименьшее значение указателя, или кандидат объединения, имеющий наименьшую разность значения указателя относительно первого кандидата объединения среди нескольких кандидатов объединения, может представлять собой второй кандидат объединения. В качестве альтернативы, второй кандидат объединения может быть выбран на основе указательной информации, указывающей любой один из нескольких кандидатов объединения.
В качестве другого примера, один из кандидатов объединения, полученных из соседних блоков, являющихся смежными по отношению к текущему блоку, может представлять собой первый кандидат объединения и один из кандидатов объединения, полученных из не являющихся соседними блоков, не являющихся смежными по отношению к текущему блоку, может представлять собой второй кандидат объединения.
В качестве другого примера, один из кандидатов объединения, полученных из блоков-кандидатов, расположенных вверху текущего блока, может представлять собой первый кандидат объединения и один из кандидатов объединения, полученных из блоков-кандидатов, расположенных на левой стороне текущего блока, может представлять собой второй кандидат объединения.
В рамках комбинированного режима предсказания с комбинированием режима объединения и режима объединения, как описано выше, режим объединения может подразумевать режим объединения на основе модели поступательного движения (далее называемый поступательным режимом объединения) или режим объединения на основе аффинной модели движения (далее называемый аффинным режимом объединения). То есть предсказание компенсации движения может осуществляться путем комбинирования поступательного режима объединения и поступательного режима объединения или путем комбинирования аффинного режима объединения и аффинного режима объединения.
В качестве другого примера, когда соседний блок, используемый для получения первого кандидата объединения, кодируется на основе аффинной информации о движении, кандидат объединения, полученный из соседнего блока, кодированного на основе аффинной информации о движении, может представлять собой второй кандидат объединения. Например, когда первый кандидат объединения представляет собой аффинный кандидат объединения или когда первый кандидат объединения получен на основе информации о движении подблока в блоке кодирования, кодированном на основе аффинной информации о движении, аффинный кандидат объединения или кандидат объединения, полученный на основе информации о движении подблока в блоке кодирования, кодированном на основе аффинной информации о движении, может быть выбран в качестве второго кандидата объединения. В этом случае второй кандидат объединения может включать, по меньшей мере, один из следующих кандидатов: кандидат объединения, расположенный наиболее близко к первому кандидату объединения в порядке поиска, кандидат объединения, имеющий наименьшую разность величины указателя относительно первого кандидата объединения, кандидат объединения, имеющий наименьшее значение указателя, и кандидат объединения, имеющий наименьшую разность значения вектора движения относительно первого кандидата объединения, среди кандидатов объединения, которые удовлетворяют вышеуказанным условиям.
В противоположность описанному выше примеру, когда соседний блок, используемый для получения первого кандидата объединения, кодируется на основе информации о поступательном движении (то есть неаффинной информации о движении), кандидат объединения, полученный из соседнего блока, кодированного на основе информации о поступательном движении, может представлять собой второй кандидат объединения. Например, когда первый кандидат объединения представляет собой неаффинный кандидат объединения, неаффинный кандидат объединения может быть выбран в качестве второго кандидата объединения. В этом случае второй кандидат объединения может включать, по меньшей мере, один из следующих кандидатов: кандидат объединения, расположенный наиболее близко к первому кандидату объединения в порядке поиска, кандидат объединения, имеющий наименьшую разность величины указателя относительно первого кандидата объединения, кандидат объединения, имеющий наименьшее значение указателя, и кандидат объединения, имеющий наименьшую разность значения вектора движения относительно первого кандидата объединения, среди неаффинных кандидатов объединения.
В качестве альтернативы, второй кандидат объединения получен путем добавления или вычитания сдвига из указателя первого кандидата объединения, при этом когда способы кодирования соседних блоков, используемых для получения первого кандидата объединения и второго кандидата объединения, являются различающимися, второй кандидат объединения может быть переназначен другому кандидату объединения.
Фиг. 33 описывает пример определения второго кандидата объединения.
Когда выбран первый кандидат объединения, кандидат объединения, имеющий значение указателя, полученное путем добавления или вычитания сдвига из указателя первого кандидата объединения, может быть выбран в качестве второго кандидата объединения. Например, кандидат объединения, имеющий значение, указанное merge_idx, переданном с помощью потока битов, в качестве указателя, может быть выбран в качестве первого кандидата объединения, а кандидат объединения, имеющий merge_idx+1 в качестве указателя, может быть выбран в качестве второго кандидата объединения.
В этом случае когда первый кандидат объединения представляет собой аффинный кандидат объединения или получен из подблока, принадлежащего к блоку кодирования, кодируемому с помощью аффинной модели движения, аффинный кандидат объединения или кандидат объединения, полученный из подблока, принадлежащего к блоку кодирования, кодируемому с помощью аффинной модели движения, должен являться вторым кандидатом объединения. Когда кандидат объединения, имеющий merge_idx+1 в качестве указателя, не является аффинным кандидатом объединения или не получен из подблока, принадлежащего к блоку кодирования, кодируемому с помощью аффинной модели движения, другой кандидат объединения может представлять собой второй кандидат объединения. В этом случае другой кандидат объединения может представлять собой первый кандидат объединения или кандидат объединения, имеющий наименьшую разность относительно merge_idx+1 среди аффинных кандидатов объединения или кандидатов объединения, полученных из подблока, принадлежащего к блоку кодирования, кодируемого с помощью аффинной модели движения.
Наоборот, когда первый кандидат объединения представляет собой неаффинный кандидат объединения, неаффинный кандидат объединения должен представлять собой второй кандидат объединения. Когда кандидат объединения, имеющий merge_idx+1 в качестве указателя, является аффинным кандидатом объединения или получен из подблока, принадлежащего к блоку кодирования, кодируемому с помощью аффинной модели движения, другой кандидат объединения может представлять собой второй кандидат объединения. В этом случае другой кандидат объединения может представлять собой первый кандидат объединения или кандидат объединения, имеющий наименьшую разность относительно merge_idx+1 среди неаффинных кандидатов объединения. Например, в рамках примера, показанного на Фиг. 33, показано, что кандидат объединения A3, имеющий merge_idx+2 в качестве указателя, представляет собой второй кандидат объединения.
В качестве другого примера, предсказание компенсации движения может быть осуществлено путем комбинирования поступательного режима объединения и аффинного режима объединения. То есть любой один из первого кандидата объединения и второго кандидата объединения может представлять собой аффинный кандидат объединения, при этом другой из них может представлять собой неаффинный кандидат объединения.
Комбинированный блок предсказания может быть получен с помощью операции взвешенной суммы для первого блока предсказания, полученного из первого кандидата объединения, и второго блока предсказания, полученного на основе второго кандидата объединения. В этом случае значение веса, используемое для первого блока предсказания, может превышать значение веса, используемое для второго блока предсказания.
В качестве альтернативы, значения весов могут быть определены на основе информации о движении первого кандидата объединения и информации о движении второго кандидата объединения. Например, значения весов, используемые для первого блока предсказания и второго блока предсказания, могут быть определены на основе разности в плане порядка вывода опорного изображения и текущего изображения. В частности, при увеличении разности в плане порядка вывода опорного изображения и текущего изображения, значение веса, используемое для блока предсказания, может представлять собой меньшее значение.
В качестве альтернативы, значения весов, используемые для первого блока предсказания и второго блока предсказания, могут быть определены с учетом размеров или форм блока-кандидата, используемого для получения первого кандидата объединения (далее называемого первым блоком-кандидатом), и блока-кандидата, используемого для получения второго кандидата объединения (далее называемого вторым блоком-кандидатом). Например, значение веса, используемое для блока предсказания, полученного из первого блока-кандидата или второго блока-кандидата, имеющего форму, аналогичную форме текущего блока, может представлять собой крупное значение. С другой стороны, значение веса, используемое для блока предсказания, полученного из первого блока-кандидата или второго блока-кандидата, имеющего форму, не являющуюся аналогичной форме текущего блока, может представлять собой малое значение.
На Фиг. 34 показан пример, в рамках которого значения веса, используемые для блоков предсказания, определены на основе формы блоков-кандидатов.
Подразумевается, что текущий блок имеет неквадратную форму, в рамках которой ширина превышает высоту.
Первый блок предсказания и второй блок предсказания могут быть получены на основе первого кандидата объединения и второго кандидата объединения, при этом комбинированный блок предсказания может быть получен на основе операции взвешенной суммы для первого блока предсказания и второго блока предсказания. В этом случае значения весов, используемые для первого блока предсказания и второго блока предсказания, могут быть определены на основе форм первого блока-кандидата и второго блока-кандидата.
Например, в рамках примера, показанного на Фиг. 34, первый блок-кандидат имеет квадратную форму, а второй блок-кандидат имеет неквадратную форму, в рамках которой ширина превышает высоту. Поскольку форма второго блока-кандидата соответствует форме текущего блока, значение веса, используемое для второго блока предсказания, может превышать значение веса, используемое для первого блока предсказания. Например, для второго блока предсказания может использоваться значение веса 5/8, а для первого блока предсказания может использоваться значение веса 3/8. В рамках Уравнения 14 показан пример получения комбинированного блока предсказания на основе операции взвешенной суммы для первого блока предсказания и второго блока предсказания.
[Уравнение 14]
1
2
Р(х, у)=(3*P(x, y)+5*Р(x, y))>>3
1
2
Р(х, у) обозначает комбинированный блок предсказания, P(x, у) обозначает первый блок предсказания, а Р(х, у) обозначает второй блок предсказания.
В качестве другого примера, значения весов, используемые для первого блока предсказания и второго блока предсказания, могут быть определены на основе формы текущего блока. Например, когда текущий блок имеет неквадратную форму, в рамках которой ширина превышает высоту, более крупное значение веса может использоваться для блока предсказания, полученного на основе кандидата объединения, полученного на основе блока-кандидата, расположенного вверху текущего блока, среди первого кандидата объединения и второго кандидата объединения. Когда как первый кандидат объединения, так и второй кандидат объединения получены из блоков-кандидатов, расположенных вверху текущего блока, значения весов, используемые для первого блока предсказания и второго блока предсказания, могут являться равными. С другой стороны, когда текущий блок имеет неквадратную форму, в рамках которой высота превышает ширину, более крупное значение веса может использоваться для блока предсказания, полученного на основе кандидата объединения, полученного на основе блока-кандидата, расположенного на левой стороне текущего блока, среди первого кандидата объединения и второго кандидата объединения. Когда как первый кандидат объединения, так и второй кандидат объединения получены из блоков-кандидатов, расположенных на левой стороне текущего блока, значения весов, используемые для первого блока предсказания и второго блока предсказания, могут являться равными. Когда текущий блок имеет квадратную форму, значения весов, используемые для первого блока предсказания и второго блока предсказания, могут являться равными.
В качестве другого примера, значение веса, используемое для каждого блока предсказания, может быть определено на основе расстояния между текущим блоком и блоком-кандидатом. В этом случае расстояние может быть получено на основе разности координат по оси X, разности координат по оси Y из текущего блока, или минимального значения среди них. Значение веса, используемое для блока предсказания, полученного из кандидата объединения, имеющего малое расстояние от текущего блока, может превышать значение веса, используемое для блока предсказания, полученного из кандидата объединения, имеющего большое расстояние от текущего блока. Например, в рамках примера, показанного на Фиг. 31, первый кандидат объединения получен из соседнего блока, являющегося смежным относительно текущего блока, а второй кандидат объединения получен из не являющегося соседним блока, который не является смежным относительно текущего блока. В этом случае, поскольку расстояние по оси X между первым блоком-кандидатом и текущим блоком является меньшим, чем расстояние по оси X между вторым блоком-кандидатом и текущим блоком, значение веса, используемое для первого блока предсказания, может превышать значение веса, используемое для второго блока предсказания.
В качестве альтернативы, когда как первый кандидат объединения, так и второй кандидат объединения получены из не являющихся соседними блоков, более крупное значение веса может быть присвоено блоку предсказания, полученному из не являющегося соседним блока, расположенного на более близком расстоянии относительно текущего блока, среди не являющихся соседними блоков. Например, в рамках примера, показанного на Фиг. 32, поскольку расстояние по оси Y между первым блоком-кандидатом и текущим блоком является меньшим, чем расстояние по оси Y между вторым блоком-кандидатом и текущим блоком, значение веса, используемое для первого блока предсказания, может превышать значение веса, используемое для второго блока предсказания.
Интегрированная информация о движении может быть получена на основе первого кандидата объединения и второго кандидата объединения, при этом предсказание компенсации движения для текущего блока может быть выполнено на основе данной интегрированной информации о движении. Например, вектор движения текущего блока может быть получен на основе операции усреднения или операции взвешенной суммы для вектора движения первого кандидата объединения и вектора движения второго кандидата объединения. В этом случае значение веса, используемое для вектора движения первого кандидата объединения, и значение веса, используемое для вектора движения второго кандидата объединения, могут быть определены согласно описанным выше вариантам осуществления.
Когда первый кандидат объединения представляет собой неаффинный кандидат объединения, а второй кандидат объединения представляет собой аффинный кандидат объединения, вектор движения текущего блока может быть получен путем масштабирования вектора движения второго кандидата объединения. В рамках Уравнения 15 показан пример получения вектора движения текущего блока.
[Уравнение 15]
(mvX, mvY)=(mc0x, mv0y)+((mv1x, mv1y)>>M)
В Уравнении 15 (mvX, mvY) обозначает вектор движения текущего блока, (mv0x, mv0y) обозначает вектор движения первого кандидата объединения, a (mv1x, mv1y) обозначает вектор движения второго кандидата объединения. М обозначает параметр масштабирования. М может являться предварительно определенным в кодировщике и декодере. В качестве альтернативы, значение параметра масштабирования М может быть определено в соответствии с размером текущего блока или блока-кандидата. Например, когда ширина или высота второго блока-кандидата превышает 32, М может быть равным 3, а в других случаях М может быть равным 2.
Информация о движении первого кандидата объединения или второго кандидата объединения может храниться как информация о движении блока, для которого используется комбинированный режим предсказания с комбинированием режима объединения и режима объединения. Указанная хранимая информация о движении может использоваться для получения информации о движении блока, который будет подвергнут кодированию/декодированию после этого.
В качестве альтернативы, блок может быть разбит на несколько подблоков, при этом любая одна из информации о движении первого кандидата объединения и информации о движении второго кандидата объединения может храниться в виде информации о движении каждого подблока. В этом случае информация о движении некоторых из нескольких подблоков может представлять собой информацию о движении первого кандидата объединения, а информация о движении других из них может представлять собой информацию о движении второго кандидата объединения.
В качестве альтернативы, интегрированная информация о движении, полученная на основе информации о движении первого кандидата объединения и второго кандидата объединения, может храниться в качестве информации о движении блока, для которого используется комбинированный режим предсказания с комбинированием режима объединения и режима объединения.
В рамках режима предсказания, в котором комбинируются режим объединения и продвинутый режим предсказания вектора движения, первый блок предсказания получен с помощью информации о движении, полученной из кандидата объединения, а второй блок предсказания получен с помощью вектора движения, полученного из кандидата предсказания вектора движения.
В рамках продвинутого режима предсказания вектора движения кандидат предсказания вектора движения может быть получен из соседнего блока, являющегося смежным по отношению к текущему блоку, или совмещенного блока в рамках совмещенного изображения. После этого может быть указан любой один из нескольких кандидатов предсказания вектора движения, при этом кандидат предсказания вектора движения может представлять собой предиктор вектора движения текущего блока. После этого может быть получен вектор движения текущего блока путем добавления предиктора вектора движения текущего блока и значения разности векторов движения.
В рамках режима предсказания, в котором комбинируются режим объединения и продвинутый режим предсказания вектора движения, кандидат объединения и кандидат предсказания вектора движения могут быть получены из одного блока-кандидата. Например, когда merge_idx указывает кандидата объединения, вектор движения блока-кандидата, использованного для получения указанного кандидата объединения, может представлять собой предиктор вектора движения. В качестве альтернативы, когда mvp_flag указывает кандидата предсказания вектора движения, может быть выбран кандидат объединения, полученный из блока-кандидата, использованного для получения указанного кандидата объединения.
В качестве альтернативы, блок-кандидат, использованный для получения кандидата объединения, и блок-кандидат, использованный для получения кандидата предсказания вектора движения, могут являться различными. Например, когда выбран кандидат объединения, полученный их блока-кандидата, расположенного вверху текущего блока, может быть выбран кандидат предсказания вектора движения, полученный из блока-кандидата, расположенного на левой стороне текущего блока.
В качестве альтернативы, когда кандидат объединения, выбранный на основе указательной информации, и кандидат предсказания вектора движения, выбранный на основе указательной информации, получены из одного блока-кандидата, кандидат предсказания вектора движения может быть замечен кандидатом предсказания вектора движения, полученным из соседнего блока-кандидата, являющегося смежным относительно блока-кандидата, или кандидат объединения может быть замещен кандидатом объединения, полученным из блока-кандидата, являющегося смежным относительно блока-кандидата.
На Фиг. 35 показан пример, в рамках которого кандидат объединения является замененным.
В рамках примера, показанного на Фиг. 35 (а), показано, что выбраны кандидат объединения и кандидат предсказания вектора движения, полученные из блока-кандидата в положении А2. Как показано на фигуре, когда кандидат объединения и кандидат предсказания вектора движения получены из одного блока-кандидата, может использоваться кандидат объединения или кандидат предсказания вектора движения, полученный из блока-кандидата, являющегося смежным относительно блока-кандидата, вместо кандидата объединения или кандидата предсказания вектора движения. Например, как показано в рамках примера в соответствии с Фиг. 35 (b), может быть использован кандидат объединения в положении А1 вместо кандидата объединения в положении А2.
Первый блок предсказания может быть получен на основе кандидата объединения текущего блока, а второй блок предсказания может быть получен на основе кандидата предсказания вектора движения. После этого может быть получен комбинированный блок предсказания с помощью операции взвешенной суммы для первого блока предсказания и второго блока предсказания. В этом случае значение веса, используемое для второго блока предсказания, полученного с помощью продвинутого режима предсказания вектора движения, может превышать значение веса, используемое для первого блока предсказания, полученного с помощью режима объединения.
Полученное остаточное изображение может быть получено путем вычитания видео предсказания из исходного видео. В этом случае, при переносе остаточного видео в частотную область субъективное качество видео ухудшается незначительно, хотя высокочастотные компоненты среди частотных компонентов удаляются. Соответственно, когда значения высокочастотных компонентов преобразуются в малые значения или значения высокочастотных компонентов устанавливаются равными 0, возникает эффект повышения эффективности сжатия без создания значительного визуального искажения. На основе этой характеристик текущий блок может быть преобразован для разложения остаточного видео на двумерные частотные компоненты. Данное преобразование может быть осуществлено с помощью способа преобразования, такого как Дискретное косинусное преобразование (DCT) или Дискретное синусное преобразование (DST).
В рамках DCT осуществляется разложение (или преобразование) остаточного видео на двумерные частотные компоненты с применением косинусного преобразования, а в рамках DST осуществляется разложение (или преобразование) остаточного видео на двумерные частотные компоненты с применением синусного преобразования. В результате преобразования остаточного видео частотные компоненты могут быть выражены как опорное видео. Например, когда DCT преобразование осуществляется для блока размером Ν×Ν, могут быть получены до Ν2 компонентов основного паттерна. Размер каждого компонента основного паттерна, включенного в блок размером Ν×Ν, могут быть получены путем преобразования. В соответствии с применяемым для этого способом преобразования, размер компонента основного паттерна может быть обозначен как DCT коэффициент или DST коэффициент.
Способ преобразования DCT в основном используется для преобразования видео, в котором распределено большое количество ненулевых низкочастотных компонентов. Способ преобразования DST в основном используется для видео, в которых распределено большое количество высокочастотных компонентов.
Остаточное видео может быть преобразовано с применением способа преобразования, отличного от DCT или DST.
Преобразование остаточного видео в двумерные частотные компоненты будет далее обозначаться как двумерное преобразование видео. Кроме того, размер компонентов основного паттерна, полученных в результате преобразования, обозначается как коэффициент преобразования. Например, коэффициент преобразования может означать DCT коэффициент или DST коэффициент. Когда используется как первое преобразование, так и второе преобразование, которые описаны ниже, коэффициент преобразования может означать размер компонента основного паттерна, полученного в результате второго преобразования.
Способ преобразования может быть определен для каждого блока. Способ преобразования может быть определен на основе, по меньшей мере, одного из следующих признаков: режима кодирования предсказания текущего блока, размера текущего блока, и формы текущего блока. Например, когда текущий блок кодируется в режиме внутрикадрового предсказания и размер текущего блока меньше чем Ν×Ν, преобразование может быть осуществлено с помощью способа преобразования DST. С другой стороны, когда вышеуказанные условия не соблюдены, преобразование может быть осуществлено с помощью способа преобразования DCT.
Двумерное преобразование видео может не осуществляться для некоторых блоков остаточного видео. Отсутствие осуществления двумерного преобразования видео может обозначаться как пропуск преобразования. При осуществлении пропуска преобразования для остаточных коэффициентов, которые не были преобразованы, может быть использовано квантование.
После преобразования текущего блока с помощью DCT или DST, преобразованный текущий блок может быть снова преобразован. В этом случае преобразование на основе DCT или DST может быть обозначено как первое преобразование, а повторное преобразование блока, для которого использовалось первое преобразование, может быть обозначено как второе преобразование.
Первое преобразование может быть осуществлено с помощью любого одного из нескольких кандидатов ядра преобразования. Например, первое преобразование может быть осуществлено с помощью любого одного из DCT2, DCT8, или DCT7.
Для горизонтального направления и вертикального направления могут использоваться различные ядра преобразования. Информация, указывающая комбинацию ядра преобразования горизонтального направления и ядра преобразования вертикального направления, может быть передана с помощью потока битов.
Элементы для осуществления первого преобразования и второго преобразования, могут различаться. Например, первое преобразование может быть осуществлено для 8×8 блока, а второе преобразование может быть осуществлено для подблока размером 4×4 среди преобразованного 8×8 блока. В этом случае коэффициенты преобразования остаточных областей, для которых не осуществлялось второе преобразование, могут быть равны 0.
В качестве альтернативы, первое преобразование может быть осуществлено для 4×4 блока, а второе преобразование может быть осуществлено для области размером 8×8. включая преобразованный 4×4 блок.
Информация, указывающая на осуществление второго преобразования, может быть передана с помощью потока битов.
В качестве альтернативы, необходимость осуществления второго преобразования может быть определена на основе того, являются ли ядро преобразования горизонтального направления и ядро преобразования вертикального направления одинаковыми. Например, второе преобразование может быть осуществлено только когда ядро преобразования горизонтального направления и ядро преобразования вертикального направления являются одинаковыми. В качестве альтернативы, второе преобразование может быть осуществлено только когда ядро преобразования горизонтального направления и ядро преобразования вертикального направления отличаются друг от друга.
В качестве альтернативы, второе преобразование может допускаться только когда в рамках преобразования горизонтального направления и преобразования вертикального направления используется предварительно определенное ядро преобразования. Например, второе преобразование может допускаться когда ядро преобразования DCT2 используется для преобразования горизонтального направления и преобразования вертикального направления.
В качестве альтернативы, необходимость осуществления второго преобразования может определяться на основе количества ненулевых коэффициентов преобразования текущего блока. Например, второе преобразование может не использоваться когда количество ненулевых коэффициентов преобразования текущего блока является меньшим или равным пороговому значению, при этом второе преобразование может использоваться когда количество ненулевых коэффициентов преобразования текущего блока превышает пороговое значение. Второе преобразование может использоваться только когда текущий блок кодируется с помощью внутрикадрового предсказания.
Размер или форма подблока, для которого будет осуществлено второе преобразование, могут быть определены на основе формы текущего блока.
На Фиг. 36 и 37 показан подблок, для которого будет произведено второе преобразование.
Когда текущий блок имеет квадратную форму, для подблока, имеющего размер Ν×Ν, может быть осуществлено второе преобразование в верхней левой области текущего блока после осуществления первого преобразования. Например, когда текущий блок представляет собой блок кодирования размером 8×8, второе преобразование может быть осуществлено для подблока, имеющего размер 4×4, в верхней левой области текущего блока после осуществления первого преобразования для текущего блока (см. Фиг. 36).
Когда текущий блок имеет неквадратную форму, при которой ширина превышает высоту, по меньшей мере, в 4 раза, второе преобразование может быть осуществлено для подблока размером (kN)×(4kN) в верхней левой области текущего блока после осуществления первого преобразования. Например, когда текущий блок имеет неквадратную форму размером 16×4, второе преобразование может быть осуществлено для подблока размером 2×8 в верхней левой области текущего блока после осуществления первого преобразования для текущего блока (см. Фиг. 37 (а)).
Когда текущий блок имеет неквадратную форму, при которой высота превышает ширину, по меньшей мере, в 4 раза, второе преобразование может быть осуществлено для подблока размером (4kN)×(kN) в верхней левой области текущего блока после осуществления первого преобразования. Например, когда текущий блок имеет неквадратную форму размером 16×4, второе преобразование может быть осуществлено для подблока размером 2×8 в верхней левой области текущего блока после осуществления первого преобразования для текущего блока (см. Фиг. 37 (b)).
Декодер может осуществлять обратное преобразование второго преобразования (второе обратное преобразование) и может осуществлять обратное преобразование первого преобразования (первое обратное преобразование) для результата второго обратного преобразования. В качестве результата осуществления второго обратного образования и первого обратного преобразования могут быть получены остаточные сигналы для текущего блока.
Информация, указывающая тип преобразования текущего блока, может быть передана с помощью потока битов. Данная информация может представлять собой указательную информацию tu_mts_idx, указывающую одну из комбинаций типа преобразования для горизонтального направления и типа преобразования для вертикального направления.
Ядро преобразования для вертикального направления и ядро преобразования для горизонтального направления может быть определено на основе типов-кандидатов преобразования, указанных указательной информацией tu_mts_idx. В Таблицах 11 и 12 показаны комбинации типов преобразования в соответствии с tu_mts_idx.
Тип преобразования может быть определен как один из следующих типов: DCT2, DST7, DCT8, и пропуск преобразования. В качестве альтернативы, комбинация-кандидат типов преобразования может быть определена с применением лишь ядер преобразования за исключением пропуска преобразования.
В случае использования Таблицы 11, пропуск преобразования может быть использован для горизонтального направления и вертикального направления, когда tu_mts_idx равен 0. DCT2 может быть использован для горизонтального направления и вертикального направления когда tu_mts_idx равен 1. DCT8 может быть использован для горизонтального направления и DCT7 может быть использован для вертикального направления когда tu_mts_idx равен 3.
В случае использования Таблицы 12, DCT2 может быть использован для горизонтального направления и вертикального направления когда tu_mts_idx равен 0. Пропуск преобразования может быть использован для горизонтального направления и вертикального направления когда tu_mts_idx равен 1. DCT8 может быть использован для горизонтального направления и DCT7 может быть использован для вертикального направления когда tu_mts_idx равен 3.
Необходимость кодирования данной указательной информации может быть определена на основе, по меньшей мере, одного из следующих признаков: размера, формы, и количества ненулевых коэффициентов текущего блока. Например, указательная информация не передается когда количество ненулевых коэффициентов равно или меньше, чем пороговое значение, при этом для текущего блока может использоваться тип преобразования по умолчанию. В этом случае тип преобразования по умолчанию может представлять собой DST7. В качестве альтернативы, режим по умолчанию может варьироваться в зависимости от размера, формы, или режима внутрикадрового предсказания текущего блока.
Пороговое значение может быть определено на основе размера или формы текущего блока. Например, когда размер текущего блока меньше или равен 32×32, пороговое значение может быть равно 2, а когда текущий блок крупнее чем 32×32 (например, когда текущий блок представляет собой блок кодирования размером 32×64 или 64×32), пороговое значение может быть равно 4.
В кодировщике/декодере могут предварительно храниться несколько таблица поиска. Среди нескольких таблиц поиска, по меньшей мере, один из следующих признаков может различаться: значение указателя, присвоенное комбинациям-кандидатам типов преобразования, тип комбинаций-кандидатов типов преобразования, и количество комбинаций-кандидатов типов преобразования.
Таблица поиска для текущего блока может быть выбрана на основе, по меньшей мере, одного из следующих признаков: размера текущего блока, формы текущего блока, режима кодирования предсказания текущего блока, режима внутрикадрового предсказания текущего блока, применения второго преобразования, и применения пропуска преобразования для соседнего блока.
Например, когда размер текущего блока составляет 4×4 или менее или когда текущий блок кодируется с помощью межкадрового предсказания, может использоваться таблица поиска в соответствии с Таблицей 11, при этом когда размер текущего блока является более крупным, чем 4×4, или когда текущий блок кодируется с помощью внутрикадрового предсказания, может использоваться таблица поиска в соответствии с Таблицей 12.
В качестве альтернативы, информация, указывающая любую одну из нескольких таблиц поиска, может быть передана с помощью потока битов. На основе данной информации декодер может выбирать таблицу поиска для текущего блока.
В качестве другого примера, указатель, присвоенный комбинации-кандидату типов преобразования, может быть подходящим образом определен на основе, по меньшей мере, одного из следующих признаков: размера текущего блока, формы текущего блока, режима кодирования предсказания текущего блока, режима внутрикадрового предсказания текущего блока, применения второго преобразования, и применения пропуска преобразования для соседнего блока. Например, когда размер текущего блока составляет 4×4, указатель, присвоенный пропуску преобразования, может иметь значение меньше значения указателя, присвоенного пропуску преобразования когда размер текущего блока превышает 4×4. В частности, когда размер текущего блока составляет 4×4, пропуску преобразования может быть присвоен указатель со значением 0, при этом когда текущий блок крупнее 4×4 и меньше или равен 16×16, пропуску преобразования может быть присвоен указатель со значением больше 0 (например, 1). Когда текущий блок крупнее 16×16, указателю пропуска преобразования может быть присвоено максимальное значение (например 5).
В качестве альтернативы, когда текущий блок кодируется с помощью межкадрового предсказания, пропуску преобразования может быть присвоен указатель со значением 0. Когда текущий блок кодируется с помощью внутрикадрового предсказания, пропуску преобразования может быть присвоен указатель со значением больше 0 (например, 1).
В качестве альтернативы, когда текущий блок представляет собой блок размером 4×4, кодируемый с помощью межкадрового предсказания, пропуску преобразования может быть присвоен указатель со значением 0. С другой стороны, когда текущий блок не кодируется с помощью межкадрового предсказания или текущий блок крупнее чем 4×4, пропуску преобразования может быть присвоен указатель со значением больше 0 (например, 1).
Могут быть определены и использованы комбинации-кандидаты типов преобразования, отличные от комбинаций-кандидатов типов преобразования, перечисленных в Таблице 11 и 12. Например, может использоваться комбинация-кандидат типов преобразования, в которой пропуск преобразования применяется для любого одного из преобразования горизонтального направления и преобразования вертикального направления, а ядро преобразования, такое как DCT7, DCT8, или DST2 используется для другого из них. В этом случае необходимость использования пропуска преобразования в качестве типа-кандидата преобразования для горизонтального направления или вертикального направления может быть определена на основе, по меньшей мере, одного из следующих признаков: размера (например, ширины и/или высоты), формы, режима кодирования предсказания, и внутрикадрового режима предсказания текущего блока.
В качестве альтернативы, информация, указывающая доступность определенного типа-кандидата преобразования, может быть передана с помощью потока битов. Например, может быть передан флаг, указывающий возможность использования пропуска преобразования в качестве типа-кандидата преобразования для горизонтального направления и вертикального направления. В соответствии с данным флагом, может быть определено включение определенной комбинации-кандидата типов преобразования во множество комбинаций-кандидатов типов преобразования.
В качестве альтернативы, использование определенного типа-кандидата преобразования для текущего блока может быть указано с помощью потока битов. Например, может быть передан флаг cu_mts_flag, указывающий на необходимость использования DCT2 для горизонтального направления и вертикального направления. Когда значение cu_mts_flag равно 1, DCT2 может представлять собой ядро преобразования для вертикального направления и горизонтального направления. Когда значение cu_mts_flag равно 0, DCT8 или DST7 может представлять собой ядро преобразования для вертикального направления и горизонтального направления. В качестве альтернативы, когда значение cu_mts_flag равно 0, может быть передана информация tu_mts_idx, указывающая любой один из нескольких комбинаций-кандидатов типов преобразования.
Когда текущий блок имеет неквадратную форму, в рамках которой ширина превышает высоту, или неквадратную форму, в рамках которой высота превышает ширину, кодирование cu_mts_flag может быть пропущено, при этом значение cu_mts_flag может быть принято в виде 0.
Количество доступных комбинаций-кандидатов типов преобразования может являться разным в соответствии с размером, формой или режимом внутрикадрового предсказания текущего блока. Например, когда текущий блок имеет квадратную форму, могут быть использованы три или более комбинации-кандидата типов преобразования, а когда текущий блок имеет неквадратную форму, могут быть использованы две комбинации-кандидата типов преобразования. В качестве альтернативы, когда текущий блок имеет квадратную форму, среди комбинаций-кандидатов типов преобразования могут использоваться только комбинации-кандидаты типов преобразования, в которых тип преобразования для горизонтального направления отличается от типа преобразования для вертикального направления.
Когда для текущего блока могут использоваться три или более комбинации-кандидата типов преобразования, может быть передана указательная информация tu_mts_idx, указывающая одну из комбинаций-кандидатов типов преобразования. С другой стороны, когда для текущего блока могут использоваться две комбинации-кандидата типов преобразования, может быть передан флаг mts_flag, указывающий любую одну из комбинаций-кандидатов типов преобразования. В Таблице 13 показан процесс кодирования информации для указания комбинаций-кандидатов типов преобразования в соответствии с формой текущего блока.
Указатели комбинации-кандидатов типов преобразования могут быть перегруппированы (или приведены в другом порядке) в соответствии с формой текущего блока. Например, указатели, присвоенные комбинациям-кандидатам типов преобразования когда текущий блок имеет квадратную форму, могут отличаться от указателей, присвоенных комбинациям-кандидатам типов преобразования когда текущий блок имеет неквадратную форму. Например, когда текущий блок имеет квадратную форму, комбинация типов преобразования может быть выбрана на основе показанной ниже Таблицы 14, при этом когда текущий блок имеет неквадратную форму, комбинация типов преобразования может быть выбрана на основе показанной ниже Таблицы 15.
Тип преобразования может быть определен на основе количества ненулевых коэффициентов горизонтального направления или количества ненулевых коэффициентов вертикального направления текущего блока. В этом случае количество ненулевых коэффициентов горизонтального направления указывает количество ненулевых коэффициентов, включенных в 1 × N блок (где N представляет собой ширину текущего блока), а количество ненулевых коэффициентов вертикального направления указывает на количество ненулевых коэффициентов, включенных в N × 1 блок (где N представляет собой высоту текущего блока). Когда максимальное значение ненулевого коэффициента горизонтального направления меньше или равно пороговому значению, для горизонтального направления может быть использован первый тип преобразования, при этом когда максимальное значение ненулевого коэффициента горизонтального направления превышает пороговое значение, для горизонтального направления может быть использован второй тип преобразования. Когда максимальное значение ненулевого коэффициента вертикального направления меньше или равно пороговому значению, для вертикального направления может быть использован первый тип преобразования, при этом когда максимальное значение ненулевого коэффициента вертикального направления превышает пороговое значение, для вертикального направления может быть использован второй тип преобразования.
Фиг. 38 описывает примеры определения типа преобразования текущего блока.
Например, когда текущий блок кодируется с помощью внутрикадрового предсказания и максимальное значение ненулевого коэффициента горизонтального направления текущего блока составляет 2 или менее (см. Фиг. 38 (а)), тип преобразования горизонтального направления может быть определен как DST7.
Когда текущий блок кодируется с помощью внутрикадрового предсказания и максимальное значение ненулевого коэффициента вертикального направления текущего блока превышает 2 (см. Фиг. 38 (b)), тип преобразования горизонтального направления может быть определен как DCT2 или DCT8.
Информация, указывающая необходимость явного определения типа преобразования текущего блока на основе информации, переданной с помощью потока битов, может быть передана с помощью потока битов. Например, информация sps_explicit_intra_mts_flag, указывающая допустимость явного определения типа преобразования для блока, кодируемого с помощью внутрикадрового предсказания, или информация sps_explicit_inter_mts_flag, указывающая допустимость явного определения типа преобразования для блока, кодируемого с помощью межкадрового предсказания, может быть передана на уровне последовательности.
При допустимости явного определения типа преобразования тип преобразования текущего блока может быть определен на основе указательной информации tu_mts_idx, переданной с помощью потока битов. С другой стороны, при недопустимости явного определения типа преобразования тип преобразования может быть определен на основе, по меньшей мере, одного из следующих признаков: размера текущего блока, формы текущего блока, допустимости преобразования элемента в виде подблока, и координат подблока, включая ненулевой коэффициент преобразования. Например, тип преобразования горизонтального направления текущего блока может быть определен на основе ширины текущего блока, а тип преобразования вертикального направления текущего блока может быть определен на основе высоты текущего блока. Например, когда ширина текущего блока меньше 4 или больше 16, тип преобразования горизонтального направления может быть определен как DCT2. В ином случае тип преобразования горизонтального направления может быть определен как DST7. Когда высота текущего блока меньше 4 или больше 16, тип преобразования вертикального направления может быть определен как DCT2. В ином случае тип преобразования вертикального направления может быть определен как DST7. В этом случае для определения типа преобразования горизонтального направления и типа преобразования вертикального направления могут быть определены пороговые значения, сравниваемые с шириной и высотой, на основе, по меньшей мере, одного из следующих признаков: размера, формы и режима внутрикадрового предсказания текущего блока.
В качестве альтернативы, когда текущий блок имеет квадратную форму, при которой высота и ширина являются одинаковыми, тип преобразования горизонтального направления и тип преобразования вертикального направления являются одинаковыми, в то время как когда текущий блок имеет неквадратную форму, при которой высота и ширина являются различными, тип преобразования горизонтального направления и тип преобразования вертикального направления могут отличаться друг от друга. Например, когда ширина текущего блока превышает высоту, тип преобразования горизонтального направления может быть определен как DST7, а тип преобразования вертикального направления может быть определен как DCT2. Когда высота текущего блока превышает ширину, тип преобразования вертикального направления может быть определен как DST7, а тип преобразования горизонтального направления может быть определен как DCT2.
Количество и/или тип типов-кандидатов преобразования или количество и/или тип комбинаций-кандидатов типов преобразования могут варьироваться в зависимости от допустимости явного определения типа преобразования. Например, когда явное определение типа преобразования допускается, DCT2, DST7 и DCT8 могут использоваться в качестве типов-кандидатов преобразования. Соответственно, каждый из типа преобразования горизонтального направления и типа преобразования вертикального направления может представлять собой DCT2, DST8, или DCT8. Когда явное определение типа преобразования не допускается, только DCT2 и DST7 могут использоваться в качестве типов-кандидатов преобразования. Соответственно, каждый из типа преобразования горизонтального направления и типа преобразования вертикального направления может быть определен как DCT2 или DST7.
Когда кодировщик осуществляет преобразование и квантование, декодер может получать остаточный блок через обратное квантование и обратное преобразование. Декодер может получать восстановленный блок для текущего блока путем добавления блока предсказания и остаточного блока.
При получении восстановленного блока текущего блока, потеря информации, происходящая в рамках процесса квантования и кодирования, может быть снижена благодаря петлевой фильтрации. Петлевой фильтр может включать, по меньшей мере, один из следующих фильтров: фильтр удаления блочности, выборочный адаптивный фильтр смещения (SAO), и адаптивный петлевой фильтр (ALF). Восстановленный блок до применения петлевого фильтра будет далее обозначен как первый восстановленный блок, а восстановленный блок после применения петлевого фильтра будет обозначен как второй восстановленный блок.
Второй восстановленный блок может быть получен путем использования для восстановленного блока, по меньшей мере, одного из следующих фильтров: фильтра удаления блочности, SAO, и ALF. В этом случае SAO или ALF могут использоваться после использования фильтра удаления блочности.
Фильтр удаления блочности предназначен для снижения ухудшения качества видео (артефакта блокировки) на границе блока, которое возникает при использовании квантования для отдельных блоков. Для использования фильтра удаления блочности может быть определена сила блоков (BS) между первым восстановленным блоком и соседним восстановленным блоком.
Фиг. 39 представляет собой блок-схему, показывающую процесс определения силы блока.
В рамках примера, показанного на Фиг. 39, Р обозначает первый восстановленный блок, a Q обозначает соседний восстановленный блок. В этом случае соседний восстановленный блок может представлять собой блок, являющийся смежным относительно левой стороны или верхней стороны текущего блока.
В рамках примера, показанного на Фиг. 39, показано, что сила блоков определяется с учетом режимов кодирования предсказания Р и Q, включения ненулевого коэффициента преобразования, осуществления межкадрового предсказания с использованием того же опорного изображения, и того, является ли значение разности векторов движения большим или равным пороговому значению.
Необходимость применения фильтра удаления блочности может быть определена на основе силы блоков. Например, фильтрация может не осуществляться, когда сила блоков составляет 0.
SAO предназначен для снижения эффекта ложного оконтуривания (артефакта ложного оконтуривания), который возникает при квантовании в частотной области. SAO может быть реализован путем добавления или вычитания сдвига, определенного с учетом паттерна первого восстановленного видео. Способ определения сдвига включает сдвиг на основе края (ЕО) или сдвиг на основе полосы (ВО). ЕО обозначает способ определения сдвига текущего образца в соответствии с паттерном окружающих пикселей. ВО обозначает способ использования общего сдвига для набора пикселей, имеющих одинаковые значения яркости в данной области. В частности, яркость пикселей может быть разделена на 32 равные группы, при этом пикселы, имеющие одинаковые значения яркости, могут представлять собой одну группу. Например, четыре смежные полосы среди 32 полос могут представлять собой одну группу, при этом одинаковое значение сдвига может использоваться для образцов, принадлежащих к данным четырем полосам.
ALF представляет собой способ получения второго восстановленного видео путем использования фильтра с предварительно определенным размером/формой для первого восстановленного видео или восстановленного видео, для которого был использован фильтр удаления блочности. В рамках Уравнения 16 показан пример использования ALF.
Любой один из предварительно определенных фильтров-кандидатов может быть выбран на основе элементов в виде изображения, элемента дерева кодирования, блока кодирования, блока предсказания, или блока преобразования. Каждый из фильтров-кандидатов может являться различным в плане размера или формы.
На Фиг. 40 показаны предопределенные фильтры-кандидаты.
Как показано в рамках примера на Фиг. 40, может быть выбрана, по меньшей мере, одна из форм в виде ромба размером 5 × 5, 7 × 7, и 9 × 9.
Только форма в виде ромба размером 5 × 5 может быть использована для компонента цветности.
Применение описанных выше вариантов осуществления с фокусом на процессе декодирования или процессе кодирования для процесса кодирования или процесса декодирования включено в объем настоящего изобретения. Изменение описанных в предварительно определенном порядке вариантов осуществления в порядке, отличном от описанного порядка, также включено в объем настоящего изобретения.
Несмотря на то, что описанные выше варианты осуществления были описаны на основе последовательностей этапов или блок-схем, это не ограничивает порядок временных последовательностей настоящего изобретения, при этом они могут быть реализованы одновременно или в ином порядке, если необходимо. Кроме того, каждый из компонентов (например, элементов, модулей, и так далее), составляющих блок-схему в рамках описанных выше вариантов осуществления, может быть реализован в виде аппаратного устройства или программного обеспечения, или несколько компонентов могут быть объединены для реализации единого аппаратного устройства или программного обеспечения. Описанные выше варианты осуществления могут быть реализованы в форме программных команд, которые могут быть выполнены с помощью различных компьютерных компонентов и записаны на машиночитаемом носителе. Машиночитаемый носитель может включать программные команды, файлы данных, структуры данных и им подобные независимым образом или в виде комбинации. Машиночитаемый носитель включает, например, магнитные носители, такие как жесткий диск, флоппи-диск и магнитная лента, оптические носители, такие как CD-ROM и DVD, магнитно-оптические носители, такие как флоптический диск, аппаратные устройства, специально выполненные с возможностью хранить и выполнять программные команды, такие как ROM, RAM, и флеш-память, и им подобные. Описанные выше аппаратные устройства могут быть выполнены с возможностью работать с использованием одного или нескольких программных модулей для осуществления процесса согласно настоящему изобретению, и наоборот.
Настоящее изобретение может применяться для электронного устройства, которое кодирует и декодирует видео.