УВЕЛИЧЕНИЕ ГЛУБИНЫ ДЕРЕВА НЕСКОЛЬКИХ ТИПОВ ДЛЯ ОБРАБОТКИ ГРАНИЦ ИЗОБРАЖЕНИЯ
INCREASING THE DEPTH OF A MULTIPLE TYPE TREE FOR PROCESSING IMAGE BORDERS

Настоящее раскрытие относится к области обработки видео, в частности к теме, обычно называемой гибридным кодированием и сжатием видео.
Уровень техники
Стандарт следующего поколения универсального кодирования видео (VVC - Versatile Video Coding) - это последний совместный видеопроект, созданный организациями по стандартизации Экспертная группа по кодированию видео ITU-T (VCEG - Video Coding Experts Group) и Экспертная группа по движущимся изображениям ISO/IEC (MPEG - Moving Picture Experts Group), которые работают вместе в партнерстве, известном как Объединенная команда видео-экспертов (JVET - Joint Video Exploration Team).
Современные блочные гибридные видеокодеки используют кодирование с предсказанием. Изображение видеопоследовательности делится на блоки пикселей, и эти блоки затем кодируются. Вместо кодирования блока пиксель за пикселем весь блок предсказывают с использованием уже кодированных пикселей в пространственной или временной близости к блоку. Кодер далее обрабатывает только различия между блоком и его предсказанием. Дополнительная обработка обычно включает в себя преобразование блочных пикселей в коэффициенты в области преобразования. Затем коэффициенты могут быть дополнительно сжаты (например, посредством квантования) и дополнительно уплотнены (например, посредством энтропийного кодирования) для формирования битового потока. Битовый поток может дополнительно включать в себя любую информацию сигнализации, которая позволяет декодеру декодировать кодированное видео. Например, сигнализация может включать в себя настройки, касающиеся настроек кодера, таких как размер входного изображения, частота кадров, индикация этапа квантования, предсказание, применяемое к блокам изображений, и т.п.
Различия между блоком и его предсказанием известны как остаток блока. Более конкретно, каждый пиксель блока имеет остаток, который представляет собой разницу между уровнем интенсивности этого пикселя и его предсказанным уровнем интенсивности. Уровень интенсивности пикселя называется значением пикселя. Остатки всех пикселей блока вместе именуются остатком блока. Другими словами, блок имеет остаток, который представляет собой набор или матрицу, состоящую из остатков всех пикселей блока. Затем остатки преобразуются, квантуются и кодируются вместе с информацией сигнализации. Кодирование может включать в себя различные формы кодирования с фиксированной и переменной длиной, включая арифметическое кодирование или другие типы энтропийного кодирования.
При блочном гибридном кодировании видео каждое изображение разделяется на блоки сэмплов, и несколько блоков внутри изображения агрегируются для формирования слайсов как независимо декодируемых объектов. Блоки, к которым применяется предсказание и/или преобразование, называются единицей кодирования (CU - coding unit) или блоком кодирования (CB - coding block). Единицы кодирования могут иметь разные размеры.
Например, при высокоэффективном кодировании видео (HEVC - High-Efficiency Video Coding, также известном как H.265) видеокадр подразделяется на единицы дерева кодирования (CTU - coding tree unit, также называемые блоками дерева кодирования, CTB - coding tree block). CTB представляют собой непересекающиеся квадратные блоки одинакового размера, например сэмплы 64×64. Каждый CTB служит корнем структуры дерева квадрантов разделения на блоки, дерева кодирования. CTB могут быть дополнительно подразделены по структуре дерева кодирования на блоки кодирования. Для блоков кодирования определяется тип предсказания. Блоки кодирования могут быть дополнительно разделены на более мелкие блоки преобразования, к которым применяется преобразование и квантование.
V. Sze et al (Ed.), High Efficiency Video Coding (HEVC): Алгоритмы и архитектуры, Springer, 2014 г., глава 3.2
Подробные сведения о разделении в HEVC можно найти в .
Кроме того, в WO 2016/090568 показана структура двоичного дерева для разделения единицы на несколько меньших единиц с использованием дерева квадрантов плюс структуры двоичного дерева. Соответственно, корневая единица сначала разделяется посредством структуры дерева квадрантов, а затем узел вершины дерева квадрантов дополнительно разделяется посредством структуры двоичного дерева.
Сущность изобретения
Варианты осуществления изобретения определяются признаками независимых пунктов формулы изобретения, а дальнейшие преимущественные реализации вариантов осуществления - признаками зависимых пунктов формулы изобретения.
Согласно общему аспекту настоящее раскрытие обеспечивает устройство для разделения изображения на единицы кодирования, причем устройство включает в себя схему обработки. Устройство выполнено с возможностью разделения изображения на единицы дерева кодирования, CTU, включая неграничную CTU с предварительно определенным размером в горизонтальном и вертикальном направлении и граничную CTU, имеющую часть внутри изображения, ограниченную посредством горизонтальной или вертикальной границы изображения, часть, имеющую размер меньше предварительно определённого размера в направлении, перпендикулярном границе изображения, и разделения неграничной CTU и граничной CTU иерархически на соответствующие единицы кодирования, при этом иерархическое разделение неграничной CTU включает в себя разделение нескольких типов с максимальной глубиной неграничного разделения нескольких типов, разделение нескольких типов - это разделение с направлением разделения, являющимся вертикальным или горизонтальным направлением, а иерархическое разделение граничной CTU включает в себя разделение нескольких типов с максимальной глубиной граничного разделения нескольких типов.
Это обеспечивает то преимущество, что повышается гибкость граничного разделения.
В дополнительной реализации устройства максимальная глубина граничного разделения нескольких типов представляет собой сумму по меньшей мере глубины адаптивного граничного разделения нескольких типов и предварительно заданной глубины разделения нескольких типов, причем глубина адаптивного граничного разделения нескольких типов является глубиной разделения нескольких типов с направлением разделения, являющимся направлением границы изображения.
Это обеспечивает адаптивное определение глубины разделения при использовании разделения нескольких типов в граничной единице дерева кодирования или блоке разделения.
Например, предварительно заданная глубина разделения нескольких типов равна максимальной глубине неграничного разделения нескольких типов.
Это обеспечивает повторное использование максимальной глубины неграничного разделения нескольких типов.
В дополнительной реализации устройства сумма дополнительно включает в себя функцию от отношения размеров в направлении границы изображения и направлении, перпендикулярном границе изображения граничного блока разделения граничной CTU, причем граничный блок разделения является блоком глубины адаптивного граничного разделения нескольких типов.
Это обеспечивает дальнейшее увеличение максимальной глубины граничного разделения нескольких типов и, таким образом, увеличивает гибкость разделения.
Например, функция - это двоичный логарифм.
Это выгодно, поскольку обеспечивает практическую реализацию.
В некоторых дополнительных вариантах осуществления предварительно задана максимальная глубина граничного разделения нескольких типов.
Это способствует снижению издержек вычисления при определении иерархического разделения.
Например, иерархическое разделение граничной CTU дополнительно включает в себя разделение дерева квадрантов.
Это дает возможность гибкого выбора из разных режимов.
В дополнительной реализации устройства максимальная глубина граничного разделения нескольких типов равна или больше максимальной глубины неграничного разделения нескольких типов.
Это позволяет увеличить максимально возможную глубину граничного разделения.
Дополнительно обеспечено устройство для кодирования изображения видеопоследовательности, содержащее устройство для разделения изображения на единицы кодирования согласно любому из вышеупомянутых примеров и вариантов осуществления. Устройство дополнительно содержит блок кодирования изображения, выполненный с возможностью кодирования единиц кодирования, и блок формирования битового потока, выполненный с возможностью формирования битового потока, включающего в себя кодированные единицы кодирования и информацию разделения, указывающую, как разделены единицы дерева кодирования.
В дополнительной реализации устройство для кодирования изображения включает в себя устройство для разделения изображения, в котором предварительно задана максимальная глубина граничного разделения нескольких типов, а битовый поток дополнительно включает в себя набор параметров кодированной последовательности, включающий в себя максимальную глубину граничного разделения нескольких типов.
Кроме того, обеспечено устройство для декодирования изображения видеопоследовательности, содержащее синтаксический анализатор битового потока для синтаксического анализа битового потока, включающего в себя кодированные единицы кодирования, устройство для определения разделения изображения согласно любому из приведенных выше примеров и вариантов осуществления и блок декодирования изображения для декодирования кодированных единиц кодирования на основе определенного разделения изображения.
В дополнительной реализации устройство для декодирования изображения включает в себя устройство для определения разделения изображения, в котором предварительно задана максимальная глубина граничного разделения нескольких типов, битовый поток дополнительно включает в себя набор параметров кодированной последовательности, включающий в себя максимальную глубину граничного разделения нескольких типов и устройство для определения разделения изображения дополнительно выполнено с возможностью получения второй максимальной глубины разделения нескольких типов из набора параметров последовательности.
Согласно другому общему аспекту обеспечен способ разделения изображения на единицы кодирования. Способ включает в себя этапы, на которых разделяют изображение на единицы дерева кодирования, CTU, включая неграничную CTU с предварительно определенным размером в горизонтальном и вертикальном направлении и граничную CTU, имеющую часть внутри изображения, ограниченную посредством горизонтальной или вертикальной границы изображения, часть, имеющую размер меньше предварительно определённого размера в направлении, перпендикулярном границе изображения, и иерархически разделяют неграничную CTU и граничную CTU на соответствующие единицы кодирования, при этом иерархическое разделение неграничной CTU включает в себя разделение нескольких типов с максимальной глубиной неграничного разделения нескольких типов, разделение нескольких типов - это разделение с направлением разделения, являющимся вертикальным или горизонтальным направлением, а иерархическое разделение граничной CTU включает в себя разделение нескольких типов с максимальной глубиной граничного разделения нескольких типов.
В дополнительной реализации способа максимальная глубина граничного разделения нескольких типов представляет собой сумму по меньшей мере глубины адаптивного граничного разделения нескольких типов и предварительно заданной глубины разделения нескольких типов, причем глубина адаптивного граничного разделения нескольких типов является глубиной разделения нескольких типов с направлением разделения, являющимся направлением границы изображения.
Например, предварительно заданная глубина разделения нескольких типов равна максимальной глубине неграничного разделения нескольких типов.
В дополнительной реализации способа сумма дополнительно включает в себя функцию от отношения размеров в направлении границы изображения и направлении, перпендикулярном границе изображения граничного блока разделения граничной CTU, причем граничный блок разделения является блоком глубины адаптивного граничного разделения нескольких типов.
Например, функция - это двоичный логарифм.
В другом варианте осуществления предварительно задана максимальная глубина граничного разделения нескольких типов.
В дополнительной реализации иерархическое разделение граничной CTU дополнительно включает в себя разделение дерева квадрантов.
Например, максимальная глубина граничного разделения нескольких типов равна или больше максимальной глубины неграничного разделения нескольких типов.
Дополнительно обеспечен способ кодирования изображения видеопоследовательности, включающий в себя этапы разделения изображения на единицы кодирования согласно любому из вышеупомянутых вариантов осуществления, и этап формирования битового потока для формирования битового потока, включающего в себя кодированные единицы кодирования и информацию разделения, указывающую то, как разделены единицы дерева кодирования.
В дополнительной реализации способ кодирования изображения включает в себя способ разделения изображения, в котором предварительно задана максимальная глубина граничного разделения нескольких типов, а битовый поток дополнительно включает в себя набор параметров кодированной последовательности, включающий в себя максимальную глубину граничного разделения нескольких типов.
Кроме того, обеспечен способ декодирования изображения видеопоследовательности, включающий в себя этап синтаксического анализа битового потока, включающего в себя кодированные единицы кодирования; этапы определения разделения изображения согласно любому из вышеупомянутых вариантов осуществления и этап декодирования изображения для декодирования кодированных единиц кодирования на основе определенного разделения изображения.
В дополнительной реализации способ декодирования изображения включает в себя способ определения разделения изображения, в котором предварительно задана максимальная глубина граничного разделения нескольких типов, битовый поток дополнительно включает в себя набор параметров кодированной последовательности, включающий в себя максимальную глубину граничного разделения нескольких типов, и способ определения разделения изображения дополнительно включает в себя этап, на котором получают вторую максимальную глубину разделения нескольких типов из набора параметров последовательности.
В качестве дополнительного аспекта, настоящее раскрытие обеспечивает считываемый компьютером носитель данных, хранящий инструкции, которые при исполнении посредством схемы обработки вынуждают схему обработки выполнять способ разделения изображения на единицы кодирования, способ кодирования изображения видеопоследовательности или способ декодирования изображения видеопоследовательности согласно любому из вышеуказанных вариантов осуществления.
Подробности одного или нескольких вариантов осуществления изложены на сопровождающих чертежах и в описании ниже. Другие особенности, объекты и преимущества будут очевидны из описания, чертежей и формулы изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
В следующих вариантах осуществления изобретения описаны более подробно со ссылкой на сопровождающие фигуры и чертежи, на которых:
Фиг.1 - блок-схема, показывающая примерную структуру видеокодера, выполненного с возможностью реализации вариантов осуществления изобретения;
Фиг. 2 - блок-схема, показывающая примерную структуру видеодекодера, выполненного с возможностью реализации вариантов осуществления изобретения;
Фиг.3 - схематический чертеж, иллюстрирующий пример разделения дерева квадрантов, используемого HEVC;
Фиг.4 - схемы, показывающие несколько режимов разделения единицы кодирования;
Фиг.5 - схематический чертеж, иллюстрирующий пример разделения дерева квадрантов/двоичного дерева;
Фиг.6 - схематический чертеж, иллюстрирующий принудительное разделение дерева квадрантов граничной части;
Фиг.7 - схематический чертеж, иллюстрирующий разделение двоичного дерева граничной части;
Фиг.8 - блок-схема устройства для разделения изображения на единицы кодирования;
Фиг.9 - схематический чертеж, иллюстрирующий разделение граничной части;
Фиг.10 - схема, показывающая пример граничного разделения с использованием разделения двоичного дерева;
Фиг.11 - схема, показывающая дополнительный пример граничного разделения с использованием разделения двоичного дерева;
Фиг.12 - схема, показывающая сравнение граничного разделения с использованием разделения дерева квадрантов и разделения двоичного дерева;
Фиг. 13 - блок-схема, показывающая реализацию увеличения максимальной глубины дерева нескольких типов;
Фиг.14 - блок-схема, показывающая пример системы кодирования видео, выполненной с возможностью реализации вариантов осуществления изобретения;
Фиг.15 - схематическая диаграмма устройства кодирования видео.
ПОДРОБНОЕ ОПИСАНИЕ
Настоящее изобретение относится к разделению (т.е. разбиению) изображения на более мелкие блоки для дальнейшей обработки. Такое разделение может успешно использоваться при кодировании и декодировании неподвижного изображения или видеоизображения. Ниже описываются примерные видеокодер и декодер, которые могут реализовать разделение согласно настоящему раскрытию.
Фиг. 1 показывает кодер 100, который содержит вход для приема входных блоков кадров или изображений видеопотока и выход для обеспечения кодированного битового видеопотока. Термин «кадр» в этом раскрытии используется как синоним изображения. Однако следует отметить, что настоящее раскрытие также применимо к полям в случае, если применяется чересстрочная кадровая развертка. В общем, изображение включает m умноженное на n пикселей. Они соответствуют сэмплам изображения и могут содержать один или несколько цветовых компонентов. Для простоты следующее описание относится к пикселям, означающим сэмплы яркости. Однако следует отметить, что подход разделения настоящего раскрытия может применяться к любому цветовому компоненту, включая цветность или компоненты цветового пространства, такие как RGB или тому подобное. С другой стороны, может быть выгодно выполнить разделение только для одного компонента и применить определенное разделение к большему количеству (или всем) оставшимся компонентам.
Кодер 100 выполнен с возможностью применения разделения, предсказания, преобразования, квантования и энтропийного кодирования к видеопотоку.
n
В блоке 110 разделения входной видеокадр дополнительно разделяется перед кодированием. Кодируемые блоки не обязательно имеют одинаковый размер. Одно изображение может включать в себя блоки разных размеров, и растры блоков разных изображений видеопоследовательности также могут отличаться. В частности, каждое видеоизображение (изображение) сначала подразделяется на блоки CTU одинакового фиксированного размера. Размер CTU может быть фиксированным и предварительно заданным, например, в стандарте. В HEVC используется размер 64×64. Однако настоящее раскрытие не ограничивается стандартизованными и фиксированными размерами. Может быть выгодно обеспечить размер CTU, который может быть задан в кодере и обеспечен как параметр сигнализации в битовом потоке. Например, разные размеры CTU могут быть выгодными для соответствующих разных размеров изображения и/или типов контента. Размер CTU может сообщаться на любом уровне сигнализации, например, он может быть общим для всей видеопоследовательности или для ее частей (то есть множества изображений) или индивидуальным для каждого изображения. Соответственно, об этом можно сигнализировать, например, в наборе параметров изображения, PPS (Picture Parameter Set) или в наборе параметров последовательности, SPS (Sequence Parameter Set) или в наборе параметров видео, VPS (Video Parameter Set), которые известны из текущих кодеков (H.264/AVC, H.265/HEVC) или аналогичных наборах параметров. В качестве альтернативы, это может быть указано в заголовке слайса или на любом другом уровне. Размер CTU может принимать значения, отличные от 64×64. Например, он может быть размером в 128×128 сэмплов. В общем, для выполнения иерархического разделения посредством двоичного дерева или дерева квадрантов может быть выгодно обеспечить размер CTU, равный степени двойки, то есть в формате 2, гдеn является целым числом, большим 2.
V. Sze et al (Ed.), High Efficiency Video Coding (HEVC): Algorithms and Architectures, Springer, 2014.
Разделение изображений на CTU и разделение CTU на CU показано на фигуре 3 из Разделение следует структуре дерева квадрантов для адаптации к различным локальным характеристикам. В левой части рис. 3 показано иерархическое разделение CTU в соответствии со структурой дерева квадрантов в правой части. В частности, дерево кодирования определяет синтаксис, который определяет подразделение CTU на CU. Подобно CTU, CU состоит из квадратного блока сэмплов и синтаксиса, связанного с этими блоками сэмплов. Таким образом, разделение выполняется иерархически, начиная с CTU (глубина иерархии 0), который может быть, но не обязательно, разделен на четыре (в дереве квадрантов) CU с глубиной иерархии 1. На рис. 3 CTU разделен на CU 8 и 16 первой глубины (уровня) иерархии, которые в дальнейшем не разделяются и, таким образом, образуют вершины дерева квадрантов, а также два дополнительных CU, которые далее разделяются на CU уровня иерархии 2 (CU глубины-2). В частности, верхний левый CU глубины-1 дополнительно подразделяется на CU 1, 2, 7 глубины-2, образуя вершины дерева квадрантов, и еще один CU, который далее разделяется на CU 3, 4, 5 и 6 глубины-3, которые являются все вершинами дерева. Точно так же нижний левый CU глубины-1 дополнительно разделяется на CU 13, 14 и 15 глубины-2, которые также являются вершинами дерева квадрантов, и оставшийся CU, который далее разделяется на CU 9, 10, 11 и 12 уровня-3, которые являются вершинами дерева и, следовательно, далее не разделяются.
Примерный синтаксис для разделения дерева квадрантов в HEVC показан ниже в таблице 1.
coding_quadtree (x0, y0, log2CbSize, cqtDepth) {
Дескриптор
if(x0+(1 << log2CbSize) <= pic_width_in_luma_samples && y0+(1 << log2CbSize) <= pic_height_in_luma_samples && log2CbSize> MinCbLog2SizeY)
<b>split_cu_flag[</b>x0][y0]
ае (v)
if (cu_qp_delta_enabled_flag && log2CbSize> = Log2MinCuQpDeltaSize) {
IsCuQpDeltaCoded=0
CuQpDeltaVal=0
}
if(cu_chroma_qp_offset_enabled_flag && log2CbSize> = Log2MinCuChromaQpOffsetSize)
IsCuChromaQpOffsetCoded=0
if(split_cu_flag[x0][y0]) {
x1=x0+(1 << (log2CbSize - 1))
y1=y0+(1 << (log2CbSize - 1))
coding_quadtree(x0,y0,log2CbSize-1,cqtDepth+1)
if(x1<pic_width_in_luma_samples)
coding_quadtree(x1,y0,log2CbSize-1,cqtDepth+1)
if(y1<pic_height_in_luma_samples)
coding_quadtree(x0,y1,log2CbSize-1,cqtDepth+1)
if(x1<pic_width_in_luma_samples && y1<pic_height_in_luma_samples)
coding_quadtree(x1,y1,log2CbSize-1,cqtDepth+1)
} else
coding_unit(x0,y0,log2CbSize)
}
Таблица 1: Синтаксис для меток разделения CTU
В частности, на уровне CTU в битовый поток включается метка с именем split_cu_flag, которая указывает, формирует ли полный CTU CU или же он разделен на четыре блока одинакового размера, соответствующих квадратным блокам сэмплов. Если CTU разделен, для каждого из результирующих блоков передается другой split_cu_flag, определяющий, представляет ли блок CU или же он дополнительно разделен на четыре блока одинакового размера. Это иерархическое подразделение продолжается до тех пор, пока ни один из результирующих блоков не будет дополнительно разделен. Минимальный размер CU указывается в наборе параметров последовательности, он может варьироваться от 8×8 сэмплов яркости до размера CTU включительно. Когда минимальный размер CU достигается в процессе иерархического подразделения, метки разделения не передаются для соответствующих блоков; вместо этого предполагается, что эти блоки больше не разделяются. В типичных настройках кодера HEVC используется максимальный диапазон поддерживаемых размеров CU, поэтому можно использовать CU в диапазоне от 8×8 до 64×64 сэмплов. CU внутри CTU кодируются в порядке глубины. Этот порядок кодирования также называется z-сканированием. Это гарантирует, что для каждого CU, за исключением тех, которые расположены на верхней или левой границе слайса, все сэмплы выше CU и левее CU уже были кодированы, так что соответствующие сэмплы могут использоваться для внутреннего предсказания, и соответствующие параметры кодирования могут использоваться для предсказания параметров кодирования текущего CU.
Другими словами, split_cu_flag[x0][y0] указывает, разделена ли единица кодирования на единицы кодирования с половинным размером по горизонтали и по вертикали. Индексы x0, y0 массива определяют положение (x0,y0) верхнего левого сэмпла яркости рассматриваемого блока кодирования относительно верхнего левого сэмпла яркости изображения. Когда split_cu_flag[x0][y0] отсутствует, в декодере применяется следующее:
Если log2CbSize (параметр, определяющий размер блока кодирования) больше, чем MinCbLog2SizeY (параметр, определяющий минимальный настраиваемый размер единицы кодирования), значение split_cu_flag[x0][y0] предполагается равным 1.
В противном случае (log2CbSize равно MinCbLog2SizeY), значение split_cu_flag[x0][y0] предполагается равным 0.
Массив CtDepth[x][y] определяет глубину дерева кодирования для блока кодирования яркости, охватывающего расположение (x,y). Когда split_cu_flag[x0][y0] равен 0, предполагается, что CtDepth[x][y] будет равным cqtDepth для x=x0..x0+nCbS-1 и y=y0..y0+nCbS-1.
В VVC (универсальном кодировании видео) структура сегментации, включающая в себя сегментацию дерева квадрантов (QT - quad tree) и структуру сегментации дерева нескольких типов (двоичного/троичного/асимметричного двоичного типа) (BT/TT/ABT – binary type/ternary type/asymmetric binary type), заменяет концепции нескольких типов единиц разделения. Другими словами, новая структура сегментации устраняет разделение концепций CU (единицы кодирования), PU (prediction unit - единицы предсказания) и TU (transformation unit - единицы преобразования), за исключением случаев, необходимых для CU, размер которых слишком велик для максимальной длины преобразования, и поддерживает большую гибкость для форм разделения CU [JVET-J1002]. На фигуре 4 проиллюстрирован режим разделения, используемый в настоящее время в VTM (тестовая модель VVC). В части (a) фигуры 4 показан CTU или CU, где не применяется дополнительное разделение (без разделения). Часть (b) показывает режим разделения четвертичного дерева (обычно также называемого «деревом квадрантов»), в котором CTU или CTU разделяются как в вертикальном, так и в горизонтальном направлении. Части (c) и (d) показывают режимы разделения двоичного дерева в вертикальном и, соответственно, горизонтальном направлении. Кроме того, части (e) и (f) показывают разделение троичного дерева в вертикальном и горизонтальном направлениях. Можно видеть, что при разделении троичного дерева есть два блока размером 1/4 и один блок размером 1/2.
Следующие параметры, относящиеся к иерархическому разделению CTU, определены и указаны посредством элементов синтаксиса в наборе параметров последовательности (SPS - sequence parameter set) для схемы дерева кодирования BT/TT/QT:
- CTU size: размер корневого узла четвертичного дерева.
- MinQTSize: минимально допустимый размер узла вершины четвертичного дерева
- MaxBTTSize: максимально допустимый размер корневого узла двоичного и троичного дерева.
- MaxBTTDepth: максимально допустимая глубина двоичного и троичного дерева
- MinBTTSize: минимально допустимый размер узла вершины двоичного и троичного дерева.
- MinCUSize: минимально допустимый размер CU.
На рис. 5 показано смешанное разделение дерева квадрантов и двоичного дерева. Разделение дерева квадрантов показано сплошными линиями, тогда как разделение двоичного дерева показано пштриховыми линиями. Метки 1 или 0 на узлах, которые представляют единицы кодирования, которые будут дополнительно разделены посредством двоичного дерева, указывают, применяется ли двоичное разделение по вертикали или по горизонтали, соответственно.
Горизонтальный и вертикальный размер видеоизображения в сэмплах яркости должен быть целым числом, кратным минимальному размеру CU в сэмплах яркости, передаваемых в наборе параметров последовательности, но не обязательно быть целым кратным размеру CTU. Если горизонтальный или вертикальный размер видеоизображений не представляет собой целое число, кратное размеру CTU, предполагается, что CTU на границах будут разделены до тех пор, пока границы результирующих блоков не совпадут с границей изображения. Для этого принудительного разделения метки разделения не передаются, но результирующие блоки могут быть дополнительно разделены с использованием синтаксиса дерева квадрантов, описанного выше. CU, лежащие вне области изображения, не кодируются.
Это разделение показано на фигуре 6, который является иллюстрацией принудительного разделения QT нижней границы CTU (128×128) HD-последовательности (1920×1080). В частности, на фигуре 6 показана граница кадра, над которой 56 строк (длиной 128 сэмплов) являются граничной частью слайса или изображения. Часть CTU ниже границы кадра может принадлежать другому слайсу или может не присутствовать вовсе, например, если граница кадра является нижней границей изображения. Как видно, принудительное разделение дерева квадрантов применяется к сэмплам 128×56.
Подразделение CTB цветности в HEVC всегда совмещено с разделением соответствующих CTB яркости. Следует отметить, что настоящее раскрытие может обрабатывать компоненты цветности таким же образом, но не ограничивается этим. Также может быть независимое разделение разных цветовых компонентов.
Возвращаясь к фиг.1, после выполнения разделения изображения в блоке 110 разделения преобразование, квантование и энтропийное кодирование выполняются соответственно посредством блока 130 преобразования, блока 140 квантования и блока 150 энтропийного кодирования для формирования на выходе кодированного битового видеопотока.
Видеопоток может включать в себя множество кадров. Блоки, например, первого кадра видеопотока кодируются с внутренним кодированием посредством блока 190 внутреннего предсказания. Кадр внутреннего кодирования кодируется с использованием информации только из этого кадра, так что его можно декодировать независимо от других кадров. Таким образом, кадр внутреннего кодирования может обеспечивать точку входа в битовый поток, например, для произвольного доступа. Блоки других кадров видеопотока могут быть между кодированы с использованием блока 195 межкадрового предсказания: каждый блок кадра, кодированного с межкадровым предсказанием, предсказывается из блока в другом кадре (опорном кадре), например, ранее кодированном кадре. Блок 180 выбора режима выполнен с возможностью выбора того, должен ли блок кадра быть предсказан с использованием внутреннего или межкадрового предсказания, то есть будет ли он обрабатываться посредством блока 190 внутреннего предсказания или блока 195 межкадрового предсказания. Блок 180 выбора режима также управляет параметрами внутреннего или межкадрового предсказания. Для обеспечения возможности обновления информации об изображении кадр с межкадровым кодированием может содержать не только блоки с межкадровым кодированием, но также один или несколько блоков с внутренним кодированием. Кадры с внутренним кодированием, напротив, содержат только блоки с внутренним кодированием и не содержат блоков с межкадровым кодированием. Кадры внутреннего кодирования могут быть вставлены в видеопоследовательность (например, регулярно, то есть каждый раз после определенного количества промежуточных кадров) для обеспечения точек входа для декодирования, то есть точек, в которых декодер может начать декодирование без использования информации из предыдущих кадров.
Блок 190 внутреннего предсказания - это блок предсказания блоков. Для выполнения пространственного или временного предсказания кодированные блоки могут дополнительно обрабатываться посредством блока 145 обратного квантования и блока 135 обратного преобразования. После восстановления блока посредством реконструктора 125 может применяться блок 160 контурной фильтрации для дальнейшего улучшения качества декодированного изображения. Реконструктор 125 добавляет декодированные остатки к предиктору для получения восстановленного блока. Фильтрованные блоки затем формируют опорные кадры, которые затем хранятся в буфере 170 кадров. Такой цикл декодирования (декодер) на стороне кодера обеспечивает преимущество создания опорных кадров, которые идентичны опорным изображениям, восстановленным на стороне декодера. Соответственно, сторона кодера и декодера работают соответствующим образом. Термин «восстановление» здесь относится к получению восстановленного блока посредством добавления декодированного остаточного блока к блоку предсказания.
Блок 195 межкадрового предсказания принимает в качестве входных данных блок текущего кадра или изображения, подлежащего межкадровому кодированию, и один или несколько опорных кадров или изображений из буфера 170 кадров. Оценка движения и компенсация движения выполняются посредством блока 195 межкадрового предсказания. Оценка движения используется для получения вектора движения и опорного кадра, например, на основе функции затрат. Компенсация движения затем описывает текущий блок текущего кадра с точки зрения перевода опорного блока опорного кадра на текущий кадр, т.е. вектор движения. Блок 195 межкадрового предсказания выбирает блок предсказания (то есть предикторь) для текущего блока из набора возможных блоков (то есть возможных предикторов) в одном или нескольких опорных кадрах, так что блок предсказания минимизирует функцию затрат. Другими словами, возможный блок, для которого функция затрат минимальна, будет использоваться в качестве блока предсказания для текущего блока.
Например, функция затрат может быть мерой разницы между текущим блоком и возможным блоком, то есть мерой остатка текущего блока по отношению к возможному блоку. Например, функция затрат может быть суммой абсолютных разностей (SAD - sum of absolute differences) между всеми пикселями (сэмплами) из текущего блока и всеми пикселями возможного блока в возможном опорном изображении. Однако, как правило, может использоваться любая метрика подобия, такая как среднеквадратичная ошибка (MSE - mean square error) или метрика структурного подобия (SSIM - structural similarity metric).
Однако функция затрат также может быть количеством битов, необходимых для кодирования такого блока межкадрового кодирования и/или искажением, возникающем в результате такого кодирования. Таким образом, для принятия решения о выборе вектора движения и/или в целом по параметрам кодирования, например, следует ли использовать межкадровое или внутреннее предсказание для блока и с какими настройками, может использоваться процедура оптимизации искажения скорости.
Блок 190 внутреннего предсказания принимает в качестве входных данных блок текущего кадра или изображения, подлежащего внутреннему кодированию, и один или несколько опорных сэмплов из уже восстановленной области текущего кадра. Затем внутреннее предсказание описывает пиксели текущего блока текущего кадра с точки зрения функции от опорных сэмплов текущего кадра. Блок 190 внутреннего предсказания выводит блок предсказания для текущего блока, при этом упомянутый блок предсказания преимущественно минимизирует разницу между текущим блоком, который должен быть кодирован, и его блоком предсказания, то есть минимизирует остаточный блок. Минимизация остаточного блока может быть основана, например, на процедуре оптимизации искажения скорости. В частности, блок предсказания получается как направленная интерполяция опорных сэмплов. Направление может быть определено посредством оптимизации искажения скорости и/или вычисления меры подобия, как упомянуто выше в связи с межкадровым предсказанием.
Разница между текущим блоком и его предсказанием, то есть остаточный блок, затем преобразуется посредством блока 130 преобразования. Коэффициенты преобразования квантуются посредством блока 140 квантования и энтропийно кодируются посредством блока 150 энтропийного кодирования. Сформированный таким образом кодированный битовый видеопоток содержит блоки внутреннего кодирования и блоки межкадрового кодирования и соответствующую сигнализацию (такую как указание режима, указание вектора движения и/или направление внутреннего предсказания). Блок 130 преобразования может применять линейное преобразование, такое как дискретное преобразование Фурье (DFT - discrete Fourier transformation) или дискретное косинусное преобразование (DCT - discrete cosine transformation). Такое преобразование в пространственную частотную область обеспечивает преимущество, заключающееся в том, что результирующие коэффициенты обычно имеют более высокие значения на более низких частотах. Таким образом, после эффективного сканирования коэффициентов (например, зигзагообразного) и квантования результирующая последовательность значений обычно имеет несколько больших значений в начале и заканчивается серией нулей. Это обеспечивает дальнейшее эффективное кодирование. Блок 140 квантования выполняет сжатие с потерями посредством уменьшения степени дискретизации значений коэффициентов. Затем блок 150 энтропийного кодирования назначает двоичные кодовые слова значениям коэффициентов. Кодовые слова записываются в битовый поток, называемый кодированным битовым потоком. Энтропийный кодер также кодирует информацию сигнализации (не показана на фиг. 1), которая может включать в себя кодирование в соответствии с синтаксисом метки разделения, показанным выше.
Фиг. 2 показывает пример видеодекодера 200. Видеодекодер 200 содержит, в частности, буфер 270 опорных изображений и блок 290 внутреннего предсказания, который является блоком предсказания блоков. Буфер 270 опорных изображений выполнен с возможностью хранения по меньшей мере одного опорного кадра, восстановленного из кодированного битового потока видеоданных кодированного битового потока видеоданных. Блок 290 внутреннего предсказания выполнен с возможностью формирования блока предсказания, который является оценкой блока, который должен быть декодирован. Блок 290 внутреннего предсказания выполнен с возможностью формирования этого предсказания на основе опорных сэмплов, которые получены из буфера 270 опорных изображений.
Декодер 200 выполнен с возможностью декодирования кодированного битового видеопотока, сформированного посредством видеокодера 100, и предпочтительно как декодер 200, так и кодер 100 формируют идентичные предсказания для соответствующего блока, который должен быть кодирован/декодирован. Характеристики буфера 270 опорных изображений и блока 290 внутреннего предсказания аналогичны характеристикам буфера 170 опорных изображений и блока 190 внутреннего предсказания на фиг.1.
Видеодекодер 200 содержит дополнительные блоки, которые также присутствуют в видеокодере 100, такие как, например, блок 240 обратного квантования, блок 230 обратного преобразования и блок 260 контурной фильтрации, которые соответственно соответствуют блоку 140 обратного квантования, блоку 150 обратного преобразования и блоку 160 контурной фильтрации видеокодера 100.
Блок 250 синтаксического анализа, энтропийного декодирования и разделения битового потока выполнен с возможностью выполнения синтаксического анализа и декодирования принятого кодированного битового потока видеоданных для получения квантованных остаточных коэффициентов преобразования и информации сигнализации. Квантованные остаточные коэффициенты преобразования подаются в блок 240 обратного квантования и блок 230 обратного преобразования для формирования остаточного блока. Остаточный блок добавляется к блоку предсказания в реконструкторе 225, и результирующая сумма подается в блок 260 контурной фильтрации для получения декодированного видеоблока. Кадры декодированного видео могут храниться в буфере 270 опорных изображений и служить в качестве опорных кадров для межкадрового предсказания. Информация сигнализации, прошедшая синтаксический анализ и декодированная из битового потока, обычно может включать в себя информацию управления, относящуюся к разделению кадра. Для дальнейшего правильного синтаксического анализа и декодирования изображения информация управления используется для восстановления разделения изображения на единицы кодирования, чтобы правильно назначить следующие декодированные данные соответствующим единицам кодирования.
Как правило, блоки 190 и 290 внутреннего предсказания на фиг. 1 и 2 могут использовать опорные сэмплы из уже кодированной области для формирования сигналов предсказания для блоков, которые необходимо кодировать или декодировать.
Блок 250 синтаксического анализа, энтропийного декодирования и разделения битового потока принимает на вход кодированный битовый поток. Сначала битовый поток может быть синтаксически проанализирован, т.е. параметры сигнализации и остатки извлекаются из битового потока. Синтаксис и семантика битового потока могут быть определены посредством стандарта, так что кодеры и декодеры могут работать с возможностью взаимодействия.
В стандарте HEVC единицы дерева кодирования (CTU) или единицы кодирования (CU), которые расположены на границах слайса/изображения, будут разделены с использованием принудительного разделения дерева квадрантов (QT) до тех пор, пока правый нижний сэмпл узла вершины не окажется внутри границы слайса/изображения. О принудительном разделении QT не требуется сигнализировать в битовом потоке. Цель принудительного разделения - сделать возможным кодирование/декодирование граничных CTU/CU посредством кодера/декодера. Другими словами, сторона кодирования и сторона декодирования соглашаются, что используется разделение QT, без необходимости дальнейшей сигнализации режима разделения.
Как в патенте [WO2016090568] со структурой QTBT, так и в VTM-1.0. процесс принудительного разделения граничных CTU/CU унаследован от HEVC. Это означает, что CTU/CU расположены на границе кадра, и, в частности, CTU/CU, через который проходит граница, так что части CTU/CU находятся за пределами изображения/кадра (в этом раскрытии такие CTU/CU также называются, соответственно, «граничными CTU» и «граничными CU»), сначала принудительно разделяется посредством структуры дерева квадрантов (QT) без оптимизации искажения скорости (RD) до тех пор, пока вся текущая CU не будет лежать внутри границы слайса/изображения. Эти принудительные разделения не нужно сигнализировать в битовом потоке. Дальнейшие разделения могут быть достигнуты на основе оптимизации RD. На фигуре 6 показан один пример принудительного разделения нижней граничной CTU последовательности HD (1920×1080 пикселей) (128×128) посредством принудительного QT.
Так как в граничном разделении используется только структура разделения QT, ограничение использования дерева нескольких типов (BT/TT/ABT) в VTM указывается из MaxBTTDepth в SPS. Таким образом, для разделения граничной CTU (т.е. CTU, имеющей части по обе стороны от границы, как показано на фигуре 6), ограничение общей глубины иерархии (TotalDepthLim), то есть максимальной глубины иерархии, подчиняется следующему уравнению (1):
(1)
В уравнении (1) MaxBttDepth - это максимально допустимая глубина двоичного и троичного дерева, как указано в SPS. QTDepth - это глубина иерархии блока разделения, полученного в результате разделения дерева квадрантов. Т.е. для каждого этапа разделения в иерархическом разделении, где применяется разделение дерева квадрантов, значение QTDepth увеличивается на единицу. Например, QTDepth может соответствовать параметру cqtDepth в примере синтаксиса таблицы 1. Однако, хотя предел QTDepth увеличивается на каждом этапе разделения QT, глубина иерархии в конечном итоге ограничивается посредством предварительно определённого минимально допустимого размера CU (соответствующего, например, параметру minCUSize SPS).
Граница изображения может обрабатываться с использованием BT, TT или ABT (asymmetric binary tree - асимметричное двоичное дерево). Могут использоваться как принудительный способ, так и адаптивный способ. Если MTT (multi-type tree – дерево нескольких типов), такое как BT/TT, используется в граничном разделении, а не в разделении QT, ограничение BTT (binary and ternary tree - двоичного и тройного дерева) из MaxBTTDepth SPS легко превышается. На фигуре 7 показан пример BT, используемого в нижней граничной CTU последовательности HD. Если BT начинает использоваться от уровня CTU до узла вершины (единица кодирования) полностью внутри границы, для разделения BT используется глубина 4, которая превышает MaxBTTDepth из SPS (в VTM-1.0, VVC версии тестовой модели 1.0, MaxBTTDepth задано как 3).
Целью настоящего раскрытия является увеличение гибкости разделения граничной части и обеспечение перспективы для обработки границ изображения. Подход настоящего раскрытия состоит в том, чтобы определить ограничение глубины граничного разделения помимо MaxBTTdepth предшествующего уровня техники из SPS, используемого для разделения. С этой целью, вместо MaxBttDepth из уравнения (1), значение глубины, специально заданное для граничного разделения (которое может называться, например, ExtdMaxBTTDepth). ExtdMaxBTTDepth может быть предварительно задано и зафиксировано в SPS и передано в битовом потоке SPS или может быть вычислено. Соответственно, если в обработке границ изображения (принудительной или адаптивной) используется разделение дерева нескольких типов (MTT) (такое как BT, TT или ABT), ограничение максимальной глубины MTT может быть увеличено как в декодере, так и в кодере.
В следующих аспектах и вариантах осуществления настоящего раскрытия описаны возможные способы получения и вычисления ExtdMaxBTTDepth.
Согласно общему аспекту, как показано на фиг. 8, обеспечено устройство 800 (которое может быть реализовано в блоках 110, 250 кодера или декодера, описанных выше) для разделения изображения на единицы кодирования. Устройство включает в себя схему обработки, которая выполнена 810 с возможностью разделения изображения на единицы дерева кодирования, CTU. Единицы CTU включают в себя неграничную CTU с предварительно определённым размером в горизонтальном и вертикальном направлениях и граничную CTU, имеющую часть в пределах изображения, ограниченную посредством горизонтальной или вертикальной границы изображения, причем часть имеет размер меньше предварительно определённого размера в направлении, перпендикулярном границе изображения. Схема дополнительно выполнена с возможностью разделения неграничной CTU и граничной CTU на соответствующие единицы кодирования. При этом иерархическое разделение неграничной CTU включает в себя разделение нескольких типов с максимальной глубиной неграничного разделения нескольких типов, при этом разделение нескольких типов является разделением с направлением разделения, являющимся вертикальным или горизонтальным направлением. Более того, иерархическое разделение 820 граничной CTU включает в себя разделение нескольких типов с максимальной глубиной граничного разделения нескольких типов.
Соответственно, схема устройства 800 для разделения изображения на единицы кодирования выполнена с возможностью разделения неграничной CTU на единицы кодирования с использованием первого предела глубины разделения для этапов разделения MTT, включенных в разделение, а именно максимальной глубины неграничного разделения нескольких типов. Схема дополнительно выполнена с возможностью разделения 820 граничной CTU на единицы кодирования с использованием второго предела глубины разделения, а именно максимальной глубины граничного разделения нескольких типов, для разделения MTT, включенного в разделение. Другими словами, согласно настоящему раскрытию, схема устройства 800 при работе использует соответствующие максимальные глубины разделения MTT (пределы глубины MTT) для неграничных CTU и граничных CTU.
CTU, полученные посредством разделения 810 кадра, могут быть дополнительно иерархически разделены, что включает в себя иерархическое разделение 820 граничных CTU. Это разделение может быть выполнено любым способом, например, как показано на фиг. 3-5 и описано со ссылкой на них выше.
На Фиг.8 показана внутренняя структура схемы устройства 800. Эта схема может быть любым типом аппаратного и программного обеспечения с функциональными блоками 810 и 820 для соответствующего разделения (подразделения) изображения (или кадра) на CTU, разделения CTU, включая неграничные CTU и, в частности, граничные CTU. Эти блоки могут быть реализованы, например, на одном процессоре. Однако изобретение не ограничивается таким применением, и эти блоки также могут быть реализованы посредством отдельных аппаратных частей.
В этом раскрытии термин «граничная CTU» используется для обозначения единицы дерева кодирования, которая разделяется посредством границы изображения на часть изображения, которая должна быть разделена (в пределах границы изображения), и часть, которая не расположена внутри изображения (т.е. лежит за границей изображения). Граничные CTU присутствуют, если размер кодируемого изображения не является (целым) кратным размеру CTU по меньшей мере в одном направлении.
На фиг.9 показан пример нижней границы 900 изображения и соответствующей граничной части 910 (заштрихованной), включающей в себя граничные CTU. Часть 950 иллюстрирует оставшуюся часть изображения с размером, кратным целому числу CTU по вертикали и горизонтали. Кроме того, вертикальный размер CTU обозначается как 970V, тогда как горизонтальный размер CTU обозначается как 970H. Как видно на фиг.9, граничная часть в этом примере является целым числом, кратным размеру 970H CTU в горизонтальном направлении. Однако в вертикальном направлении граничная часть 910 имеет размер остатка от деления вертикального размера изображения на вертикальный размер 970V CTU. Часть 920 является виртуальной и показывает разницу между высотой граничной части и размером CTU. Следует отметить, что в настоящих реализациях CTU имеет квадратную форму, поэтому размеры 970H и 970V одинаковы. Однако настоящее раскрытие не ограничивается этим, и вертикальные и горизонтальные размеры CTU могут отличаться.
Чтобы кодировать (и, соответственно, декодировать) граничную часть, граничная часть 910 на фиг. 9 разделена на неполные CTU, то есть на части CTU, которые имеют горизонтальный размер CTU 970H и вертикальный размер меньше, чем размер CTU 970V. Эти неполные CTU соответствуют «граничным CTU» настоящей заявки, а «неполные CTU» соответствуют части CTU в изображении. Хотя горизонтальная граничная часть показана на фиг.9, может также существовать, помимо или вместо горизонтальной граничной части, вертикальная граничная часть. В частности, если ни в вертикальном, ни в горизонтальном направлении размер изображения (т.е. ширина и высота изображения) не кратен размеру CTU, имеется также неполная CTU, которая является горизонтальной граничной, а также вертикальной граничной CTU, причем вертикальный и горизонтальный размер части CTU в изображении меньше, чем размер полной CTU.
В отличие от «граничных CTU», термин «неграничные CTU» используется для обозначения любых CTU, которые полностью вписываются в кадр или изображение, то есть CTU внутри части 950 в примере, показанном на фиг.9. То есть неграничная CTU расположена внутри изображения, которое должно быть кодировано/декодировано, с ее полным размером в вертикальном и горизонтальном направлениях. Однако неграничные CTU могут быть смежными по меньшей мере одной границе изображения, или они могут быть дополнительными CTU между неграничными CTU и любой границей изображения.
Далее следует отметить, что неграничные CTU и граничные CTU не составляют разные виды CTU, которые отличаются друг от друга тем, как они кодируются или задаются. Разница между неграничными CTU и граничными CTU заключается в том, расположены ли они на границе (т.е. границе, проходящей через них) или внутри границ, ограничивающих изображение.
Более того, является ли CTU граничной CTU, определяется, например, посредством сравнения расположения CTU (в частности, подходящего расположения пикселя в CTU) с расположением границы (или размером изображения по вертикали/горизонтали в сэмплах). В коде CTU имеет фиксированный предварительно заданный размер, например 128×128 или 64×64, как в HEVC, как описано выше. Изображение будет разделено на CTU без наложения. В качестве подходящего расположения пикселя может быть выбран нижний правый угол, поскольку он позволяет определить, что CTU является граничной CTU по отношению к каждой из вертикальной и горизонтальной границы изображения, если изображение обрабатывается слева направо и сверху вниз (как правило, наиболее подходящее расположение пикселя зависит от направления обработки). Кодер/декодер проверит пиксель нижнего правого угла CTU и сравнит его с вертикальным и горизонтальным размером изображения. Если нижний правый пиксель расположен внутри границы изображения, CTU является неграничной CTU, в противном случае это граничная CTU. Этот способ определения того, расположен ли блок разделения на границе или нет, применяется не только к CTU, но также может использоваться для CU и любых блоков разделения, возникающих в результате разделения CTU или некоторого блока в иерархии разделения.
Более того, могут использоваться другие способы определения того, является ли CTU граничной CTU. Например, как упомянуто выше, деление размера изображения (ширины/высоты) на размер CTU может определять количество CTU и наличие граничных CTU в вертикальном и горизонтальном направлениях. CTU могут быть проиндексированы, и если есть граничные CTU, последние k CTU могут быть определены как нижние граничные CTU, или каждая k-ая CTU может соответствовать правой граничной CTU (k - количество CTU (включая граничные CTU) на ряд, т.е. потолок соотношения ширины изображения и размера CTU).
Глубина иерархии в иерархическом разделении была объяснена выше со ссылкой на фигуру 3. Соответственно, глубина разделения соответствует количеству этапов разделения, которые выполняются для получения определенного уровня разделения, начиная с CTU, которая имеет глубину разделения 0, соответствующую уровню 0, и доходя до глубин единиц кодирования.
Для неграничных CTU глубина иерархии единиц кодирования ограничена тем, что она не может превышать максимальную глубину иерархии, которая следует из настроек, таких как настройки в SPS. Например, в настройках могут быть заданы различные ограничения для соответствующих глубин разделения для разделения дерева квадрантов и разделения нескольких типов. Например, разделение CTU включает в себя, на разных уровнях или в разных частичных блоках одного уровня, как разделение QT, так и разделение MTT (например, разделение BT, TT и ABT), поскольку предел глубины может быть задан отдельно для этапов разделения QT и для разделения МТТ. Например, максимальная неграничная глубина MTT может соответствовать параметру MaxBTTDepth текущей VTM или может быть переопределена и названа, например, MaxMTTDepth, и применяться для всех типов разделения MTT, таких как BT, TT и т.д. Соответственно, предел глубины, то есть максимальная общая глубина для разделения CTU, может быть суммой соответствующих пределов глубины для разделения QT и MTT (например, BTT).
С другой стороны, для граничных CTU настоящее изобретение обеспечивает предел глубины, который задается следующим уравнением (2):
(2)
Как видно из уравнения (2), предел глубины для граничных CTU, который в настоящем раскрытии также называется глубиной граничного разделения, обычно состоит из глубины для разделения QT и глубины для разделения MTT (которая не ограничивается двоичным и троичным разделением; имя ExtdMaxBttDepth следует рассматривать просто как пример). Глубина QT может быть той же глубиной QT, которая используется в уравнении (1) для случая принудительного разделения QT. Однако уравнение (2) отличается от уравнения (1) максимальной глубиной граничного разделения нескольких типов,  (extended maximum binary/ternary tree depth - увеличенная максимальная глубина двоичного/троичного дерева), которую можно альтернативно называть, например, «».
В соответствии с устройством 800, в качестве дополнительного аспекта настоящего раскрытия, обеспечен способ разделения изображения на единицы кодирования. Способ включает в себя этап разделения изображения на единицы дерева кодирования, CTU. В нем CTU включают в себя неграничную CTU с предварительно определённым размером в горизонтальном и вертикальном направлениях и граничную CTU, имеющую часть внутри изображения, ограниченную посредством горизонтальной или вертикальной границы изображения, причем часть имеет размер меньше предварительно определённого размера в направлении, перпендикулярном границе изображения. Способ дополнительно включает в себя этап иерархического разделения неграничной CTU и граничной CTU на соответствующие единицы кодирования. При этом иерархическое разделение неграничной CTU включает в себя разделение нескольких типов с максимальной глубиной неграничного разделения нескольких типов, при этом разделение нескольких типов является разделением с направлением разделения, являющимся вертикальным или горизонтальным направлением. Иерархическое разделение граничной CTU включает в себя разделение нескольких типов с максимальной глубиной граничного разделения нескольких типов.
Далее будут описаны несколько примерных вариантов осуществления настоящего раскрытия, которые дополнительно определяют как устройство 800 для разделения изображения на единицы кодирования, так и соответствующий способ.
Вариант 1 осуществления:
Как объяснено выше, поскольку HEVC или VTM-1.0 используют принудительное QT при разделении граничных CTU, нет необходимости определять отдельное ограничение глубины BTT для граничного разделения. В HEVC или VTM-1.0 параметр MaxBttDepth из уравнения (1) применяется как для граничного, так и для неграничного случая.
Однако, поскольку CE 1 начинает задействовать BT или TT в качестве граничного разделения, ограничение для MaxBTTDepth для границы согласно уравнению (1) может не подходить, как по причинам, объясненным выше в связи с SubCE2. В варианте 1 осуществления новое MaxBTTDepth используется только для граничного разделения, когда структура разделения MTT участвует в граничном разделении.
Настоящее раскрытие обеспечивает определение нового ограничения глубины MTT граничного разделения в гибридном кодировании видео. Как уже упоминалось, эту максимальную глубину граничного разделения нескольких типов можно вычислить или предварительно задать. Настоящий вариант 1 осуществления обеспечивает некоторые примерные способы вычисления максимальной глубины граничного разделения нескольких типов.
В варианте 1 осуществления максимальная глубина граничного разделения нескольких типов является суммой по меньшей мере глубины адаптивного граничного разделения нескольких типов и предварительно заданной глубины разделения нескольких типов. Глубина адаптивного граничного разделения нескольких типов - это глубина разделения нескольких типов, при этом направление разделения является направлением границы изображения.
Соответственно, чтобы сохранить гибкость разделения граничных блоков, предлагается выполнять справедливую обработку ограничения общей глубины блока, расположенного в граничной CTU, при этом справедливость направлена на разделение MTT граничных CTU по сравнению с разделением QT в обработке границ изображения JEM, как определено посредством уравнения (1).
С этой целью максимальная глубина граничного разделения MTT, используемая в уравнении (2), переопределяется как
(3).
При этом максимальная глубина граничного разделения MTT, обозначенная как ExtdMaxBTTDepth, может быть получена из уравнения (1) или (2). Соответственно, общий предел глубины разделения для граничных CTU переопределяется как
(4)
В уравнениях (3) и (4) BTTBPDepth, которое является глубиной адаптивного граничного разделения нескольких типов настоящего варианта 1 осуществления, определяется на каждом уровне, так что  также будет изменяться в зависимости от уровня разделения, то есть уровня блока кодирования каждого этапа разделения, а также уровня результирующей CU, которая в конечном итоге должна быть кодирована и декодирована. Например, глубина адаптивного граничного разделения нескольких типов может быть выбрана одинаковой для разных режимов разделения MTT, таких как граничное разделение BT/TT/ABT. Глубина адаптивного граничного разделения нескольких типов переопределяется на каждом уровне разделения (т.е. увеличивается) независимо от того, выполняется ли на этом уровне BT, TT, ABT или какой-либо другой тип разделения MTT. Как и в случае разделения QT, абсолютный предел глубины может быть результатом предварительно определенного минимального размера CU, например, упомянутого выше параметра minCUSize SPS. Для этапа разделения BT глубина увеличивается на единицу для каждого блока разделения, полученного в результате этого этапа. Для разделения TT, в соответствии с VTM-1.0, глубина увеличивается на единицу для результирующего блока размером 1/2 и увеличивается на 2 для блока размером 1/4, чтобы установить взаимосвязь между глубиной и размером единиц кодирования и для обеспечения совместимости между разделением BT и TT.
Как упоминалось выше, глубина адаптивного разделения нескольких типов - это глубина, при которой направление разделения является направлением границы изображения. Это означает, что линия разделения, которая разделяет блок на соответствующем слое на два, три или более блоков последующего более глубокого слоя, имеет то же направление, то есть параллельна рассматриваемой границе изображения, которая проходит через граничную CTU, подлежащую разделению. Однако этапы разделения с направлением разделения, перпендикулярным рассматриваемой границе изображения, не влияют на значение глубины адаптивного разделения нескольких типов. В частности, если граница изображения является горизонтальной границей, только этапы с горизонтальным направлением разделения будут учитываться посредством глубины адаптивного разделения нескольких типов. В противном случае, если граница изображения является вертикальной границей, будут учитываться только этапы с вертикальным направлением разделения. Это будет видно на примерах разделения, показанных на фигурах 10 и 11.
Однако настоящее раскрытие также применимо к граничным CU и граничным блокам разделения в иерархии разделения граничной CTU, которые расположены как на горизонтальной/например, нижней), так и вертикальной (например, правой) границе, например, нижняя правая CTU. В этом случае этапы MTT обоих направлений разделения будут учитываться либо посредством члена BTTBPDepth в уравнении (3), либо посредством отдельных соответствующих переменных.
С другой стороны, как видно из уравнений (3) и (4), неадаптивный член (т.е. предварительно заданная глубина разделения нескольких типов) в максимальной глубине граничного разделения нескольких типов может, например, быть равным максимальной глубине неграничного разделения нескольких типов. Однако настоящее раскрытие этим не ограничивается. Например, в случаях, когда должен быть определен дополнительный предварительно заданный параметр глубины граничного разделения нескольких типов, может быть выгодно задать этот параметр меньшим значением (например, для сохранения одного или нескольких битов).
На фигуре 10 показан первый пример граничного разделения с использованием разделения двоичного дерева, в частности, пример нижнего граничного разделения с использованием BT. Начальная точка, показанная в левой части верхней половины фигуры, показывает граничную CTU и нижнюю границу изображения (жирная сплошная линия), проходящую через граничную CTU. Кроме того, в правом верхнем углу CTU есть отмеченный блочный объект, который должен быть получен посредством разделения изображения. В правой части верхней половины фигуры показано окончательное разделение (т.е. шаблон разделения), на которое должна быть разделена граничная CTU. Однако в этом первом примере, а также в примере, показанном на фигуре 10, рассматриваются только этапы разделения MTT (в частности, BTT). Разделение QT может выполняться на дополнительных этапах, предшествующих этапам разделения MTT, в соответствии с уравнением (4). Соответственно, начальная точка не обязательно должна быть CTU, но также может быть, например, блоком кодирования квадратной формы (вертикальный и горизонтальный размеры равны) некоторой глубины больше 0 в результате разделения QT.
Этапы с 1 по 3 разделения граничной CTU от начальной точки до окончательного разделения показаны в нижней половине фигуры 10. Здесь жирной сплошной линией обозначена граница изображения, граница BTT, а также разделения CTU показаны сплошными (внутри границы) или штриховыми (за пределами границы) линиями, пунктирная линия (на этапе 3) - это «нормальное» разделение BTT (т.е. перпендикулярное разделение не является граничным разделением, направление разделения которого является направлением границы изображения). Если MaxBTTDepth (предел равный 3 в VTM) использовалось в соответствии с уравнением (1), объектный блок в правом верхнем углу CTU не мог быть дополнительно разделен на части, потому что существует 3 этапа разделения MTT, и, следовательно, CurrentBTTDepht(3)>= MaxBTTDepth(3) (CurrentBTTDepth - это глубина разделения BTT на текущем этапе, соответствующая количеству этапов, на которых выполняется разделение BTT).
Согласно варианту 1 осуществления на этапе 1 имеется один слой (BTT) граничного разделения (то есть разделения, при котором направление разделения является направлением границы). Соответственно, BTTBPDepth=1. Таким образом, из уравнения (3) получаем ExtdMaxBTTdepth=BTTBPDepth+MaxBTTDepth=1+3=4 (для MaxBTTDepth задано значение 3 в SPS). Максимальная глубина слоя BTT (максимальная глубина граничного разделения нескольких типов) для этапа 1 равна 4, и поскольку блок уже был разделен один раз, разделенный блок может быть дополнительно MTT-разделен еще три раза в соответствии с ExtdMaxBTTdepth, заданным на этапе 1 в соответствии с максимальной глубиной граничного разделения нескольких типов.
На этапе 2 есть два уровня граничного разделения, полученные прежде выполненным BP (граничным разделением), BTTBPDepth=2. Таким образом, из уравнения (3) получаем ExtdMaxBTTdepth=BTTBPDepth+MaxBTTDepth=2+3=5 (для MaxBTTDepth задано значение 3 в SPS). Новый слой максимальной глубины BTT (максимальная глубина граничного разделения нескольких типов) для этапа 2 равен 5 (вычисляется из начальной точки (a)), и поскольку блок уже был разделен дважды, разделенный блок может быть дополнительно разделен 3 раза в соответствии с максимальной глубиной граничного разделения нескольких типов. Можно увидеть, что, ввиду граничного разделения (то есть направление разделения является горизонтальным, тем же самым, что и направление границы изображения), BTTBPDepth и, соответственно, ExtdMaxBttDepth были увеличены на единицу с этапа 1 до этапа 2.
На этапе 3 было выполнено дополнительное разделение BT. Однако это последнее разделение имеет направление разделения, не являющееся направлением границы изображения, в частности, направление разделения на этапе 3 перпендикулярно границе изображения. По этой причине этап 3 не влияет на значение BPPBPDepth. Здесь есть еще 2 слоя BP BTT, и BTTBPDepth=2. Как показано ниже, ExtdMaxBTTdepth=BTTBPDepth+MaxBTTDepth=2+3=5 (для MaxBTTDepth задано значение 3 в SPS). Как объяснено, в глубину адаптивного разделения нескольких типов вносит вклад только глубина (количество этапов/слоев), где разделение нескольких типов с направлением разделения является направлением границы изображения. Однако максимальная глубина граничного разделения нескольких типов является пределом для любого граничного разделения MTT. Следовательно, максимальный уровень глубины для этапа 3 остается равным 5 (вычисляется из начальной точки), и поскольку блок уже был разделен на разделения 3 раза (здесь учитываются все разделения, а не только BP), разделенный блок может быть дополнительно разделен BTT 2 раза.
Второй пример расчета максимальной глубины разделения MTT показан на фигуре 11. На фигуре жирные сплошные линии обозначают границу изображения, сплошная (внутри) или штриховая (снаружи) линия - границы CTU или граничное разделение BTT, так же, как на фигуре 10. Внутри граничной CTU находится отмеченная цель (т.е. целевой блок кодирования, который должен быть получен посредством разделения MTT). Для получения окончательного сэмпла разделения в верхней правой части фигуры необходимо выполнить четыре этапа разделения, как показано на этапах 1-4 фигуры.
Если MaxBTTDepth используется в соответствии с уравнением 1 и ограничивается как 3, как в VTM, отмеченный целевой блок (с глубиной MTT 4) не может быть получен и не может быть далее разделен, потому что CurrentBTTDepht(4)>=MaxBTTDepth(3).
На этапе 1 на фигуре 11 имеется 1 уровень BP BTT, BTTBPDepth=1. Соответственно, ExtdMaxBTTdepth=BTTBPDepth+MaxBTTDepth=1+3=4 (для MaxBTTDepth задано значение 3 в SPS). Максимальный уровень глубины BTT для этапа 1 равен 4, и поскольку блок уже был разделен один раз, разделенный блок может быть дополнительно разделен BTT 3 раза.
На этапе 2 на фигуре 11 есть 2 уровня BTT BP, BTTBPDepth=2. Соответственно, ExtdMaxBTTdepth=BTTBPDepth+MaxBTTDepth=2+3=5. Максимальный уровень глубины BTT для этапа 2 равен 5, и поскольку блок уже был разделен один раз, разделенный блок может быть дополнительно разделен BTT 3 раза.
На этапе 3 на фигуре 11 есть 3 уровня BP BTT, BTTBPDepth=3. Соответственно, ExtdMaxBTTdepth=BTTBPDepth+MaxBTTDepth=3+3=6. Максимальный уровень глубины BTT для этапа 2 равен 6, и поскольку блок уже был разделен один раз, разделенный блок может быть дополнительно разделен BTT 3 раза.
Более того, на этапе 4 есть 4 уровня разделения BTT. ExtdMaxBTTdepth=BTTBPDepth+MaxBTTDepth=4+3=7. Максимальный уровень глубины для этапа 4 равен 7 (вычисляется из начальной точки (a)), и поскольку блок уже был разделен 4 раза, разделенный блок может быть дополнительно разделен максимум 3 раза.
В максимальной глубине граничного разделения нескольких типов учитываются и ограничиваются все разделения, а не только BP, направление разделения которых является направлением границы. Однако на всех этапах примера, показанного на фигуре 11, выполняется разделение нескольких типов с направлением разделения, которое является направлением границы изображения. Соответственно, на каждом из этих этапов значение глубины адаптивного граничного разделения нескольких типов (BTTBPDepth в этом примере) увеличивается на 1.
Посредством адаптации ограничения глубины для граничного разделения нескольких типов к количеству этапов разделения, где направление разделения совпадает с направлением границы, настоящее раскрытие облегчает схему разделения единиц кодирования, которые аппроксимируют оставшуюся часть CTU в непосредственной близости от границ изображения более практично. В частности, в отличие от использования только разделения QT, количество единиц кодирования в граничной CTU/части может быть уменьшено.
Вариант 2 осуществления:
Согласно варианту 1 осуществления, объясненному выше, максимальная глубина граничного разделения нескольких типов (например, определенная как ExtdMaxBTTDepth) является суммой по меньшей мере глубины адаптивного граничного разделения нескольких типов и предварительно заданной глубины разделения нескольких типов. Теперь, согласно настоящему варианту 2 осуществления, эта сумма дополнительно включает в себя функцию от отношения размеров в направлении границы изображения и направлении, перпендикулярном границе изображения граничного блока разделения граничной CTU. При этом граничный блок разделения представляет собой блок глубины адаптивного граничного разделения нескольких типов.
В настоящем раскрытии термин «блок разделения» относится к CTU или блоку, который является результатом разделения блока/единицы более низкого уровня. Соответственно, блоки разделения не ограничиваются CTU на вершине иерархического разделения или единицами кодирования, которые являются конечным результатом иерархического разделения, подлежащего кодированию/декодированию, но также включают в себя блоки, полученные на промежуточных этапах разделения, таких как этапы 1 и 2 на фигуре 10 или этапы с 1 по 3 на фигуре 11. Более того, «граничный блок разделения» - это блок разделения, расположенный на границе изображения (граница изображения, проходящая через блок), точно так же, как граничная CTU расположена на границе.
Если рассматриваемая граница представляет собой горизонтальную границу изображения, вышеупомянутое соотношение размеров представляет собой соотношение горизонтального размера (ширины) разделенного граничного блока разделения и вертикального размера (высоты). С другой стороны, если граница изображения является вертикальной, соотношение представляет собой высоту, деленную на ширину граничного блока разделения.
2
Например, функция от отношения может быть двоичным логарифмом logRatio.В варианте 1 осуществления ограничение общей глубины рассматривается как критерий определения ограничения BTT для граничных блоков. Вариант 2 осуществления, по сравнению с вычислением предела глубины BP MTT с использованием уравнения 1, в частности, рассматривает достижимый размер единицы кодирования как критерий справедливости (то есть справедливость между QT и разделением MTT). Соответственно, максимальная глубина граничного разделения нескольких типов увеличивается согласно следующему уравнению (5).
(5)
где Ratio обозначает отношение ширины к высоте (ширина/высота, если граница горизонтальная или высота/ширина границы вертикальной).
Пример граничного разделения в соответствии с вариантом 2 осуществления показан на фиг.12. На фигуре (а) показано граничное разделение VTM-1.0 с использованием принудительного QT, а на фигуре 1, часть (b) - граничное разделение с использованием BT. Как на фигурах 10 и 11, сплошной линией (внутри границы). Штриховыми линиями показаны CTU и граничное разделение (направление разделения - это направление границы), пунктирными линиями показано разделение, при котором направление разделения не совпадает с направлением границы. На фигуре 12, часть (a), отмеченный блок в верхнем левом углу CTU может быть дополнительно разделен на 3 дополнительных уровня BT, поскольку MaxBTTDepth из SPS задано как 3 в конфигурации VTM-1.0, и пока разделение BT не производилось. В части (b) также возможно разделить отмеченный блок в верхнем левом углу CTU на еще 3 уровня BT (или других типов MTT), поэтому ExtdMaxBTTDepht отмеченного блока получается из уравнения (5) как:
ExtdMaxBTTDepth=log2 (коэффициент граничного блока разделения (4)) + BTTBPdepth (2) + MaxBTTDepth (3) = 7
В случае текущего варианта 2 осуществления, показанного в части (b) на фиг.12, в соответствии с ExtendedMaxBTTDepth, которое обозначает максимальную глубину граничного разделения нескольких типов, отмеченный блок, возможно, может быть разделен еще на 3 уровня BT (ExtdMaxBTTDepht (7) - CurrentBTDepht (4)) = 3.
Здесь предполагается, что отмеченный блок был получен посредством двух этапов разделения BT с направлением разделения, являющимся направлением границы, с последующими двумя этапами BT с направлением разделения, перпендикулярным граничному разделению, при этом результирующая текущая глубина BT равна 4. Однако настоящее раскрытие не ограничивается разделением MTT, являющимся разделением BTT. Например, дополнительно может использоваться режим разделения, в котором четыре блока разделения получаются за один этап, где блок разделения разделяется три или более раз в одном направлении разделения (такой режим разделения, в котором получаются четыре блока разделения, иногда называют SplitInto4, который отличается от разделения QT, хотя четыре блока разделения также получаются за один этап). Если в примере на фигуре 12 последние два этапа разделения BT заменены одним этапом разделения SplitInto4, результирующая текущая глубина MTT будет 3, а не 4.
Более того, в MTT подсчитанная глубина иерархии может быть определена относительно результирующего размера блока наименьшего результирующего разделения. Например, в текущей реализации TT в VTM-1.0 блок разделен на 1/4, 1/2 и 1/4 подблока/блока разделения. Для первого и третьего блока разделения глубина подсчитывается дважды в VTM-1.0, чтобы убедиться, что глубина одинаково действительна как для BT, так и для TT (также, этап ABT может быть учтен дважды для меньшего из результирующих блоков разделения). Соответственно, один этап SplitInto4 также может считаться двумя этапами для обеспечения совместимости с разделением BT. Таким образом, размер результирующего блока блока разделения/единицы кодирования можно увидеть с глубины. Однако в каком-либо другом возможном способе каждый этап может быть учтен один раз, если гарантировано, например, с использованием некоторой переменной, что известен соответствующий тип разделения.
Следует отметить, что в уравнении (5) двоичный логарифм отношения граничных блоков разделения может (первый член) с правой стороны может быть таким же, как глубина BP MTT (второй член), в частности, если применяется разделение BT (как показано на фигуре 12, часть (b)).
Кроме того, следует отметить, что настоящее раскрытие не ограничивается функцией от граничного блока разделения, являющейся двоичным логарифмом. Например, может использоваться само отношение (функция идентичности), или отношение может, например, быть умножено на постоянный или некоторый адаптивный параметр.
Вариант 3 осуществления:
В вышеописанных вариантах 1 и 2 осуществления было описано, как может быть вычислена максимальная глубина граничного разделения нескольких типов. С другой стороны, в настоящем варианте 3 осуществления максимальная глубина граничного разделения нескольких типов предварительно задана (то есть фиксирована). Предварительно определённое значение может быть обеспечено как член BTTBPDepth в уравнении (4) или может заменить MaxBttDepth в уравнении, подобном уравнению (1), для граничных CTU.
Например, такая фиксированная максимальная глубина граничного разделения нескольких типов может быть получена из сигнализации в битовом потоке. Например, она может быть передана в наборе параметров управления, общих для одного или нескольких видеокадров, таких как PPS, SPS, VPS в HEVC. Она также может сигнализироваться один раз за всю видеопоследовательность. Сигнализация может включать в себя дополнительное кодирование параметра, такое как дифференциальное кодирование, кодирование с предсказанием, энтропийное кодирование или любое другое встраивание в битовый поток.
Однако, как описано, настоящее раскрытие, включающее в себя вышеупомянутые варианты осуществления с 1 по 3, не ограничивается максимальной глубиной граничного разделения нескольких типов, которая фиксируется и сообщается в битовом потоке. Она также может быть получена, например, на основе одного или нескольких параметров, которые передаются в битовом потоке (например, MaxBTTDepth в SPS) и/или на внутренних переменных, таких как BTTBPDepth или QTDepth, упомянутых выше. Однако вывод также может быть основан на предварительно заданном соотношении в стандарте или сигнализирован.
Хотя описание некоторых примеров (включая уравнения с 1 по 5) относится к разделению BTT, и переменная названа соответственно (например, BTTBPDepth; MaxBTTDepth), настоящее раскрытие также применимо к другим типам разделения MTT, таким как разделение ABT (асимметричное двоичное разделение) (блок разделения разделяется на одном этапе разделения на два или более блоков разделения, имеющих разные размеры, такие как 1/4 и 3/4) или SplitInto4Mode, упомянутый в связи с фиг. 12, часть (b). Таким образом, переменные могут называться по-разному, например BTTBPDepth; MaxBTTDepth и др. Соответственно, настоящее изобретение способствует обеспечению гибкости для обработки границ изображения с использованием альтернативных режимов разделения нескольких типов в дополнение к разделению QT, независимо от конкретного используемого режима разделения MTT.
Однако в некоторых вариантах осуществления, в дополнение к разделению MTT, иерархическое разделение граничной CTU (а также иерархическое разделение неграничной CTU) может дополнительно включать в себя разделение QT. Это можно увидеть из уравнения (4), которое определяет общую максимальную глубину граничного разделения как сумму максимальной глубины граничного разделения нескольких типов (член в скобках) и глубины разделения QT (внутренняя переменная QTDepth). Например, как это уже имеет место в VTM-1.0., четвертичное разделение может выполняться до разделения MTT. То есть выполняются этапы разделения QT, за которыми следуют этапы разделения MTT. Однако настоящее раскрытие не ограничивается этим, но оно также применимо к конфигурации, в которой разделение QT выполняется после разделения MTT. Соответственно, как было упомянуто, начальная точка на фиг. 10 и 11 не обязательно должна быть CTU, но также может быть блоком разделения, полученным на одном или нескольких предыдущих этапах разделения.
Кроме того, согласно настоящему раскрытию максимальная глубина граничного разделения нескольких типов может быть равна или больше максимальной глубины неграничного разделения нескольких типов. Например, максимальная глубина граничного разделения нескольких типов может быть равна максимальной глубине неграничного разделения нескольких типов, если в граничной CTU не выполняется разделение нескольких типов с направлением разделения, являющимся направлением границы. В этом случае нет этапа разделения, на котором увеличивается внутренняя переменная BTTBPDepth (или MTTBPDepth). Тем не менее, устройство для разделения изображения на единицы кодирования выполняет определение глубины неграничного разделения нескольких типов и максимальной глубины граничного разделения нескольких типов соответственно разными способами, как описано.
Однако в варианте 3 осуществления, где максимальная глубина граничного разделения нескольких типов предварительно определена, ее предварительно определенное значение должно быть больше, чем максимальная глубина неграничного разделения нескольких типов, чтобы обеспечить большую гибкость для разделения MTT в граничных CTU.
Блок-схема максимального увеличения глубины BT/TT (или MTT в целом) настоящего раскрытия показана на фигуре 13. Условное «В граничной CTU» указывает условие, находится ли текущая CTU/CU внутри расположенной на границе CTU. Если условие ложно (N), нормальное MaxBTTDepth из SPS используется в качестве глубины неграничного разделения нескольких типов для ограничения максимально возможной глубины BT/TT (или другого MTT). В противном случае MaxBttdepth будет увеличиваться и определяться в соответствии с любым из вариантов осуществления настоящего раскрытия.
Как упоминалось, устройство 800 для разделения изображения может быть встроено в устройство 100 кодирования видео или устройство 200 декодирования, как показано на фиг.1 и 2. Соответственно, настоящее изобретение дополнительно обеспечивает устройство 100 для кодирования изображения видеопоследовательности, то есть устройство кодирования. Устройство 100 кодирования содержит устройство 800 для разделения изображения согласно любому из вариантов осуществления, описанных в настоящем раскрытии, блок кодирования изображения для кодирования единиц кодирования и блок формирования битового потока, выполненный с возможностью формирования битового потока, включающего в себя кодированные единицы кодирования и информацию о разделении, указывающую, как разделены единицы дерева кодирования.
В частности, информация о разделениях может содержать для каждой CTU или для блоков разделения на промежуточных этапах информацию, указывающую, какой режим типа разделения из QT и нескольких режимов разделения MTT применяется. Например, для каждого разделения блока разделения или CTU параметр, указывающий режим разделения, может быть включен в битовый поток. В качестве альтернативы можно принудительно использовать конкретный режим разделения.
Следует отметить, что режим разделения для граничных CTU и неграничных CTU может отличаться. Например, как проиллюстрировано выше, режим разделения может сигнализироваться на основе CTU как для граничных, так и для неграничных CTU (и/или на основе блока разделения). В качестве альтернативы, режим разделения для всех CTU на определенной границе (вертикальной или горизонтальной) может быть одинаковым и задан в сигнализации, относящейся к одному или нескольким видеоизображениям.
Однако режим разделения граничных CTU может определяться способом, отличным от режима разделения неграничных CTU. Например, для граничных CTU (и блоков разделения) может быть принудительно задан предварительно определенный режим разделения, т.е. стандарт может определять фиксированный режим разделения или алгоритм для определения режима разделения для граничных CTU, например, на основе их расположения в пределах границы и/или размера и/или режим разделения соседних CTU.
Соответственно, настоящее раскрытие дополнительно обеспечивает способ кодирования изображения видеопоследовательности. Способ содержит этапы способа разделения изображения согласно любому из вариантов осуществления, описанных в этом раскрытии, этап кодирования изображения для кодирования единиц кодирования и этап формирования битового потока для формирования битового потока, включающего в себя кодированные единицы кодирования и информацию разделения, указывающую, как разделены единицы дерева кодирования.
Также обеспечено устройство 200 и способ декодирования изображения видеопоследовательности. Если оно встроено в устройство 200 декодирования, устройство 800 используется для определения разделения (декодированного) изображения на единицы кодирования. Устройство 200 декодирования включает в себя синтаксический анализатор битового потока для синтаксического анализа битового потока, включающего в себя кодированные единицы кодирования, устройство 800 для определения разделения изображения согласно любому из вариантов осуществления и блок декодирования изображения для декодирования кодированных единиц кодирования на основе определенного разделения изображения.
Соответственно, способ декодирования изображения включает в себя этап синтаксического анализа битового потока, включающего в себя кодированные единицы кодирования; этапы определения разделения изображения согласно любому из вариантов осуществления настоящего раскрытия и этап декодирования изображения для декодирования кодированных единиц кодирования на основе определенного разделения изображения.
На стороне декодера максимальная глубина BT/TT будет увеличена на граничных CTU/CU, то есть максимальная глубина граничного разделения нескольких типов будет использоваться для граничных CTU, подлежащих декодированию. Увеличение можно просто получить посредством синтаксического анализа из SPS или в зависимости от определенного условия. На основе варианта 1 осуществления максимальная глубина BTT может быть увеличена с использованием глубины граничного разделения BTT. И на основе варианта 2 осуществления максимальная глубина BTT может быть увеличена с использованием отношения граничного блока разделения и глубины граничного разделения BTT.
Если при кодировании и декодировании видеоизображения посредством кодера/декодера и посредством соответствующего способа кодирования/декодирования, разделение (или определение разделения) выполняется согласно варианту 3 осуществления, максимальная глубина граничного разделения нескольких типов предварительно задана. В этом случае кодированный/декодированный битовый поток может дополнительно включать в себя набор параметров кодированной последовательности, включающий в себя максимальную глубину граничного разделения нескольких типов. На стороне декодера устройство 800 для определения разделения изображения затем может быть дополнительно выполнено с возможностью получения второй максимальной глубины разделения нескольких типов из набора параметров последовательности.
Фиг. 14 является концептуальной или схематической блок-схемой, иллюстрирующей вариант осуществления системы 300 кодирования, например системы 300 кодирования изображения, причем система 300 кодирования содержит устройство-источник 310, выполненное с возможностью обеспечения кодированных данных 330, например, кодированного изображения 330, например, для устройства-адресата 320 для декодирования кодированных данных 330.
Устройство-источник 310 содержит кодер 100 или блок 100 кодирования и может дополнительно, т.е. необязательно, содержать источник 312 изображения, блок 314 предварительной обработки, например блок 314 предварительной обработки изображения, и интерфейс связи или блок 318 связи.
Источник 312 изображения может содержать или быть устройством захвата изображения любого типа, например, для захвата изображения в реальном мире, и/или устройством формирования изображения любого типа, например процессором компьютерной графики для создания компьютерного анимированного изображения, или устройством любого типа для получения и/или обеспечения реального изображения, компьютерного анимированного изображения (например, содержимого экрана, изображения виртуальной реальности (VR - virtual reality)) и/или любой их комбинации (например, изображения дополненной реальности (AR - augmented reality)). В дальнейшем все эти виды изображений и любые другие изображения будут называться «изображение», если конкретно не указано иное, в то время как предыдущие пояснения в отношении термина «изображение», охватывающего «видеоизображения» и «неподвижные изображения», остаются в силе, если явно не указано иное.
(Цифровое) изображение представляет собой или может рассматриваться как двумерный массив или матрица сэмплов со значениями интенсивности. Сэмпл в массиве также может называться пикселем (сокращенная форма элемента изображения). Количество сэмплов в горизонтальном и вертикальном направлении (или по оси) массива или изображения определяет размер и/или разрешение изображения. Для представления цвета обычно используются три цветовых компонента, то есть изображение может быть представлено или включать в себя три массива сэмплов. В формате RBG или цветовом пространстве изображение содержит соответствующий массив сэмплов красного, зеленого и синего цветов. Однако при кодировании видео каждый пиксель обычно представлен в формате яркости/цветности или цветовом пространстве, например YCbCr, который содержит компонент яркости, обозначенный Y (иногда вместо него также используется L), и два компонента цветности, обозначенные Cb и Cr. Компонент Y яркости представляет яркость или интенсивность уровня серого (например, как в полутоновом изображении), в то время как два компонента цветности Cb и Cr представляют компоненты информации о цветности или цвете. Соответственно, изображение в формате YCbCr содержит массив сэмплов яркости из значений сэмплов яркости (Y) и два массива сэмплов цветности из значений цветности (Cb и Cr). Изображения в формате RGB могут быть преобразованы или ковертированы в формат YCbCr, и наоборот, этот процесс также известен как преобразование или конвертация цветов. Если изображение является монохромным, оно может содержать только массив сэмплов яркости.
Источником 312 изображения может быть, например, камера для захвата изображения, память, например память изображений, содержащая или хранящая ранее захваченное или сформированное изображение, и/или интерфейс любого типа (внутренний или внешний) для получения или приема изображения. Камера может быть, например, локальной или интегрированной камерой, интегрированной в устройство-источник, память может быть локальной или интегрированной памятью, например, интегрированной в устройство-источник. Интерфейс может быть, например, внешним интерфейсом для приема изображения от внешнего видеоисточника, например внешнего устройства захвата изображения, такого как камера, внешней памяти, или внешнего устройства создания изображения, например внешнего процессора компьютерной графики, компьютера или сервера. Интерфейс может быть интерфейсом любого типа, например проводным или беспроводным интерфейсом, оптическим интерфейсом в соответствии с любым частным или стандартизованным протоколом интерфейса. Интерфейс для получения данных 313 изображения может быть тем же интерфейсом, что и интерфейс 318 связи, или его частью. Интерфейсы связи могут быть любыми интерфейсами, такими как Ethernet, WLAN, Bluetooth, LTE, или любым проводным или проводным интерфейсом, таким как спутниковые или оптические интерфейсы. Передача может быть одноранговой, широковещательной или многоадресной.
В отличие от блока 314 предварительной обработки и обработки, выполняемой посредством блока 314 предварительной обработки, изображение или данные 313 изображения также могут называться необработанным изображением или необработанными данными 313 изображения.
Блок 314 предварительной обработки выполнен с возможностью приема (необработанных) данных 313 изображения и для выполнения предварительной обработки данных 313 изображения для получения предварительно обработанного изображения 315 или предварительно обработанных данных 315 изображения. Предварительная обработка, выполняемая посредством блока 314 предварительной обработки, может, например, включать в себя обрезку, преобразование цветового формата (например, из RGB в YCbCr), цветокоррекцию или уменьшение шума.
Кодер 100 выполнен с возможностью приема предварительно обработанных данных 315 изображения и обеспечения кодированных данных изображения (дополнительные подробности были описаны, например, на основе фиг. 1).
Интерфейс связи 318 устройства-источника 310 может быть выполнен с возможностью приема данных кодированного изображения и прямой передачи их в другое устройство, например, устройство-адресат 320 или любое другое устройство, для хранения или непосредственного восстановления, или для обработки данных кодированного изображения для соответственно, перед хранением кодированных данных 330 и/или передачей кодированных данных 330 в другое устройство, например целевое устройство 320 или любое другое устройство для декодирования или хранения.
Устройство-адресат 320 содержит декодер 200 или блок 200 декодирования и может дополнительно, т.е. необязательно, содержать интерфейс связи или блок 322 связи, блок 326 постобработки и устройство 328 отображения.
Интерфейс 322 связи устройства-адресата 320 выполнен с возможностью приема кодированных данных изображения или кодированных данных 330, например, непосредственно из устройства-источника 310 или из любого другого источника, например памяти, например, памяти данных кодированного изображения.
Интерфейс связи 318 и интерфейс связи 322 могут быть выполнены с возможностью передачи, соответственно, приема данных кодированного изображения или кодированных данных 330 через прямую линию связи между устройством-источником 310 и устройством-адресатом 320, например прямое проводное или беспроводное соединение, или через любой вид сети, например проводная (например, оптическая, линия электропередачи, медная, коаксиальная или основанная на любой другой среде) или беспроводная сеть или любая их комбинация, или любая частная и общедоступная сеть, или любая их комбинация.
Интерфейс 318 связи может быть, например, выполнен с возможностью упаковки данных кодированного изображения в соответствующий формат, например пакеты, для передачи по линии связи или сети связи, и может дополнительно содержать защиту от потери данных и восстановление после потери данных.
Интерфейс 322 связи, образующий аналог интерфейса 318 связи, может быть, например, выполнен с возможностью распаковки кодированных данных 330 для получения данных кодированного изображения, а также может быть выполнен с возможностью выполнения защиты от потери данных и восстановления после потери данных, например содержащего маскировку ошибок.
И интерфейс 318 связи, и интерфейс 322 связи могут быть сконфигурированы как однонаправленные интерфейсы связи, как показано стрелкой для данных 330 кодированного изображения на фиг. 14, указывающей от устройства-источника 310 к устройству-адресату 320, или двунаправленные интерфейсы связи, и могут быть выполнены, например, с возможностью отправки и получения сообщений, например, для установки соединения, для подтверждения и/или повторной отправки потерянных или задержанных данных, включая данные изображения, и обмена любой другой информацией, относящейся к линии связи и/или передаче данных, например, передаче данных кодированного изображения.
Декодер 200 выполнен с возможностью приема данных кодированного изображения и обеспечения данных декодированного изображения или декодированного изображения (дополнительные подробности были описаны, например, на основе фиг. 2).
Постпроцессор 326 устройства-адресата 320 выполнен с возможностью постобработки данных декодированного изображения, например декодированного изображения, для получения данных 327 постобработанного изображения, например постобработанного изображения 327. Постобработка, выполняемая посредством блока 326 постобработки, может содержать, например, преобразование цветового формата (например, из YCbCr в RGB), цветокоррекцию, обрезку или повторное сэмплирование или любую другую обработку, например, для подготовки данных декодированного изображения для отображения, например, посредством устройства отображения 328.
Устройство 328 отображения устройства-адресата 320 выполнено с возможностью приема постобработанных данных 327 изображения для отображения изображения, например, пользователю или зрителю. Устройство 328 отображения может быть или содержать любой вид дисплея для представления восстановленного изображения, например интегрированный или внешний дисплей или монитор. Дисплеи могут, например, содержать электронно-лучевые трубки (CRT - cathode ray tube), жидкокристаллические дисплеи (LCD - liquid crystal display), плазменные дисплеи, дисплеи на органических светоизлучающих диодах (OLED - organic light emitting diode) или любой другой дисплей, включая проектор, голограмму или очки 3D/VR.
Хотя фиг. 14 изображает устройство-источник 310 и устройство-адресат 320 как отдельные устройства, варианты осуществления устройств также могут содержать оба или обе функциональные возможности, устройство-источник 310 или соответствующую функциональную возможность и устройство-адресат 320 или соответствующую функциональную возможность. В таких вариантах осуществления устройство-источник 310 или соответствующая функциональная возможность и устройство-адресат 320 или соответствующая функциональная возможность могут быть реализованы с использованием одного и того же аппаратного и/или программного обеспечения или посредством отдельного аппаратного и/или программного обеспечения или любой их комбинации.
Как будет очевидно для специалиста в данной области техники на основании описания, наличие и (точное) разделение функциональных возможностей различных блоков или функциональных возможностей в устройстве-источнике 310 и/или устройстве-адресате 320, как показано на фиг.14, может варьироваться в зависимости от фактического устройства и применения.
Следовательно, устройство-источник 310 и устройство-адресат 320, как показано на фиг. 14, являются просто примерными вариантами осуществления изобретения, и варианты осуществления изобретения не ограничиваются теми, которые показаны на фиг. 14.
Устройство-источник 310 и устройство-адресат 320 могут содержать любое из широкого диапазона устройств, включая любые виды портативных или стационарных устройств, например ноутбук или портативные компьютеры, мобильные телефоны, смартфоны, планшеты или планшетные компьютеры, камеры, настольные компьютеры, телевизионные приставки, телевизоры, устройства отображения, цифровые медиаплееры, игровые приставки, устройства потокового видео, приемное устройство широковещания и т.п. и могут не использовать операционную систему любого типа или использовать ее.
Фиг.15 - схематическая диаграмма устройства 1000 кодирования видео согласно варианту осуществления раскрытия. Устройство 1000 кодирования видео подходит для реализации раскрытых вариантов осуществления, как описано здесь, например, как кодер или декодер. Устройство 1000 кодирования видео содержит входные порты 1010 и приемные блоки (Rx) 1020 для приема данных; процессор, логический блок или центральный процессор (CPU - central processing unit ) 1030 для обработки данных; передающие блоки (Tx) 1040 и выходные порты 1050 для передачи данных; и память 1060 для хранения данных. Устройство 1000 кодирования видео может также содержать оптико-электрические (OE) компоненты и электрические-оптические (OE - optical-to-electrical) компоненты, подключенные ко входным портам 1010, приемным блокам 1020, передающим блокам 1040 и выходным портам 1050 для выхода или входа оптических или электрических сигналов.
Настоящее раскрытие может быть реализовано в устройстве. Такое устройство может представлять собой комбинацию программного обеспечения и оборудования. Например, внутреннее предсказание и фильтрация удаления блочности может выполняться посредством микросхемы, такой как процессор общего назначения, или процессор цифровых сигналов (DSP - digital signal processor), или программируемая пользователем вентильная матрица (FPGA - field programmable gate array), или тому подобное. Однако настоящее изобретение не ограничивается реализацией на программируемом оборудовании. Оно может быть реализовано на специализированной интегральной схеме (ASIC - application-specific integrated circuit) или посредством комбинации вышеупомянутых аппаратных компонентов.
Настоящее раскрытие дополнительно обеспечивает считываемый компьютером носитель данных, хранящий инструкции, которые при исполнении посредством схемы обработки вынуждают схему обработки выполнять любой из раскрытых способов разделения, кодирования и декодирования изображения. Считываемый компьютером носитель данных может быть любым носителем, на котором хранится программа, например, DVD, CD, USB (флеш-накопитель), жестким диском, серверным хранилищем, доступным через сеть и т.д.
Кодер и/или декодер могут быть реализованы в различных устройствах, включая телевизор, телевизионную приставку, ПК, планшет, смартфон и т.п. Это может быть программное обеспечение, приложение, реализующее этапы способа.
Подводя итог, настоящее раскрытие обеспечивает устройства и способы для разделения изображения на единицы кодирования. Изображение делится на единицы дерева кодирования (CTU), которые иерархически разделены. Иерархическое разделение включает в себя разделение нескольких типов, такое как разделение двоичного дерева или дерева квадрантов. Для CTU, полностью находящихся в изображении, и CTU на границе выбираются соответствующие глубины разделения нескольких типов. Настоящее раскрытие обеспечивает гибкость разделения нескольких типов в граничной части изображения.