RU2797723C2 - Способ прогнозирования изображения, оборудование, система, устройство для прогнозирования изображения и носитель для хранения информации - Google Patents

Способ прогнозирования изображения, оборудование, система, устройство для прогнозирования изображения и носитель для хранения информации Download PDF

Info

Publication number
RU2797723C2
RU2797723C2 RU2021123351A RU2021123351A RU2797723C2 RU 2797723 C2 RU2797723 C2 RU 2797723C2 RU 2021123351 A RU2021123351 A RU 2021123351A RU 2021123351 A RU2021123351 A RU 2021123351A RU 2797723 C2 RU2797723 C2 RU 2797723C2
Authority
RU
Russia
Prior art keywords
current node
block
mode
prediction
splitting
Prior art date
Application number
RU2021123351A
Other languages
English (en)
Other versions
RU2021123351A (ru
Inventor
Инь ЧЖАО
Хайтао ЯН
Цзяньлэ Чэнь
Лян ЧЖАН
Original Assignee
Хуавей Текнолоджиз Ко., Лтд.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Хуавей Текнолоджиз Ко., Лтд. filed Critical Хуавей Текнолоджиз Ко., Лтд.
Publication of RU2021123351A publication Critical patent/RU2021123351A/ru
Application granted granted Critical
Publication of RU2797723C2 publication Critical patent/RU2797723C2/ru

Links

Images

Abstract

Изобретение относится к области кодирования и декодирования видео, в частности к способу прогнозирования изображений. Технический результат заключается в повышении производительности процедуры прогнозирования изображений и увеличение скорости процедуры кодирования. Предложены способ/устройство прогнозирования изображения, который содержит: (401) получение режима разбиения для текущего узла, где текущий узел представляет собой блок изображения в единице дерева кодирования (CTU) в текущем изображении; (402) определение, на основе режима разбиения для текущего узла и размеров этого текущего узла, удовлетворяет ли текущий узел первому условию; и (403) когда определено, что текущий узел удовлетворяет первому условию, осуществление внутрикадрового прогнозирования на всех блоках кодирования, принадлежащих текущему узлу, с целью получения предикторов для всех блоков кодирования, принадлежащих текущему узлу. Внутрикадровое прогнозирование осуществляется на всех блоках кодирования, расположенных в текущем узле, так что может быть реализована параллельная обработка для всех блоков кодирования, расположенных в текущем узле. 6 н. и 3 з.п. ф-лы, 3 табл., 25 ил.

Description

Область техники, к которой относится изобретение
Варианты настоящей заявки относятся к области технологий кодирования видео и, в частности, к способу прогнозирования изображения, оборудованию, системе, устройству для прогнозирования изображения и носителю для хранения информации.
уровень техники
Возможности цифрового видео могут быть встроены в самое широкое множество разнообразной оборудования, включая цифровые телевизоры, цифровые системы вещания в прямом эфире, системы радиовещания, персональные цифровые помощники (PDA), портативные или настольные компьютеры, планшетные компьютеры, устройства для чтения электронных книг, цифровые видеокамеры, цифровую записывающую оборудование, цифровые медиа плееры, оборудование для видеоигр, видео игровые консоли, сотовые или спутниковые радиотелефоны (также называемые «смартфонами»), оборудование для видеоконференций, оборудование для потокового видео и т.д. Цифровая видео оборудование реализует технологии сжатия видео, например, технологии сжатия видео, описываемые в стандартах, определяемых посредством MPEG-2, MPEG-4, ITU-T H.263 и стандарт усовершенствованного видео кодирования (AVC) ITU-T H.264/MPEG-4 часть 10, стандарт видео кодирования H.265/высокоэффективного видео кодирования (high efficiency video coding (HEVC)) и расширениях этих стандартов. Такое видео оборудование может передавать, принимать, кодировать, декодировать и/или хранить цифровую информацию видео более эффективно путем реализации технологий сжатия видео.
Вместе с развитием информационных технологий быстро развиваются сервисы видео, такие как телевидение высокой четкости, проведение веб-конференций, интернет-телевидение (IPTV) и объемное (3D) телевидение. Сигналы видео, благодаря таким преимуществам, как интуитивность и высокая эффективность, становятся наиболее важным способом получения информации в повседневной жизни людей. Сигналы видео содержат большой объем данных и поэтому занимают широкую полосу частот для передачи и большое пространство в памяти для хранения информации. Для эффективной передачи и хранения сигналов видео эти сигналы видео необходимо сжимать и кодировать. Технология сжатия видео все в большей степени становится незаменимой ключевой технологией в области приложений видео.
Процедура кодирования содержит главным образом следующие стадии: внутрикадровое прогнозирование (Intra prediction), межкадровое прогнозирование (Inter prediction), преобразование (Transform), квантование (Quantization), энтропийное кодирование (Entropy encode), внутриконтурную фильтрацию (in-loop filtering) (которая представляет собой главным образом деблокирующую фильтрацию (de-blocking filtering)), и т.д. Внутрикадровое прогнозирование или межкадровое прогнозирование осуществляется после разбиения изображения на блоки кодирования. Затем, после получения остатка осуществляют преобразование и квантование. Наконец, выполняют энтропийное кодирование для передачи на выход потока битов данных. Здесь блок кодирования представляет собой матрицу размером M×N пикселей (где M может быть равно или неравно N). В дополнение к этому, величина пикселя в каждой пиксельной позиции известна. Декодирование видео является процессом, обратным относительно кодирования видео. Например, сначала выполняют энтропийное декодирование, деквантование и обратное преобразование для получения информации остатка; и затем определяют, осуществляется ли внутрикадровое прогнозирование или межкадровое прогнозирование для текущего блока, посредством декодирования потока битов данных. Если осуществляется кодирование с внутрикадровым прогнозированием, блок прогнозирования конструируют на основе величины пикселя в реконструированной области вокруг текущего изображения с использованием способа внутрикадрового прогнозирования. Если осуществляется кодирование с межкадровым прогнозированием, необходимо получить информацию о движении посредством синтаксического анализа, далее определяют реконструируемый блок на основе такой информации о движении, полученной посредством синтаксического анализа, и величину пикселя из опорного блока используют в блоке прогнозирования (такая процедура называется компенсацией движения (Motion compensation, MC)). Блок прогнозирования и информацию остатка суммируют и осуществляют операцию фильтрации для получения реконструированной информации.
На сегодняшний день генерируют два «дочерних» узла, каждый из которых имеет размер 4×M (или M×4), путем разбиения узла, имеющего размер 8×M (или M×8) с применением вертикального разбиения в структуре двоичного дерева (или горизонтального разбиения в структуре двоичного дерева). Аналогично, два дочерних узла, каждый из которых имеет размер 4×M (или M×4), и один узел потомок размером 8×M (или N×8) генерируют путем разбиения узла, имеющего размер 16×M (или M×16), с применением вертикального разбиения в структуре троичного дерева (или горизонтального разбиения в структуре троичного дерева). Для формата YUV 4:2:0 данных, разрешение цветностной составляющей равно 1/2 от разрешения яркостной составляющей. Другими словами, один узел размером 4×M содержит один блок яркостной составляющей (далее - яркостной блок) размером 4×M и два блока цветностной составляющей (далее - цветностные блоки) - 2×(M/2). Поэтому, небольшой цветностной блок такого размера, как 2×2, 2×4 или 4×2, может быть получен путем разбиения текущего узла в предварительно заданном режиме разбиения. Аппаратному декодирующему устройству относительно сложно обрабатывать небольшой цветностной блок. Эта сложность отражена, в частности, в следующих трех аспектах.
(1) Внутрикадровое прогнозирование: Для повышения скорости обработки оборудование проектируют так, чтобы в общем случае обрабатывать 16 пикселей за раз входе внутрикадрового прогнозирования. Однако небольшой цветностной блок такого размера, как 2×2, 2×4 или 4×2, содержит меньше 16 пикселей. В результате производительность обработки при внутрикадровом прогнозировании деградирует.
(2) Кодирование коэффициентов: В стандарте кодирования HEVC, кодирование коэффициентов преобразования осуществляется на основе группы коэффициентов (coefficient group, CG), содержащей 16 коэффициентов. Однако небольшой цветностной блок такого размера, как 2×2, 2×4 или 4×2, содержит 4 или 8 коэффициентов преобразования. В результате группу коэффициентов, содержащую четыре или восемь коэффициентов, необходимо дополнить, чтобы поддержать кодирование коэффициентов для таких небольших блоков. В результате этого сложность реализации возрастает.
(3) Межкадровое прогнозирование: процесс межкадрового прогнозирования для небольших цветностных блоков предъявляет относительно высокие требования к пропускной способности (ширине полосы) для передачи данных. В результате это требование влияет на скорость процедуры декодирования.
Раскрытие сущности изобретения
Настоящая заявка предлагает способ обработки изображения, оборудование, систему, устройство для прогнозирования изображения и носитель для хранения информации, с целью повысить производительность процедуры прогнозирования изображения и увеличить скорость процедуры кодирования.
Первый аспект настоящей заявки предлагает способ прогнозирования изображения. Этот способ содержит:
получение режима разбиения для текущего узла; и определение, получается ли блок изображения заданного размера при разбиении текущего узла в режиме разбиения для этого текущего узла, где этот блок изображения представляет собой яркостной блок или цветностной блок; и если определено, что блок изображения указанного заданного размера получается в результате разбиения текущего узла в режиме разбиения для этого текущего узла, осуществление внутрикадрового прогнозирования или межкадрового прогнозирования для всех блоков кодирования, покрываемых текущим узлом.
В качестве опции, блок изображения указанного заданного размера может представлять собой яркостной блок с размером меньше пороговой величины. Эта пороговая величина может быть равна некоторому количеству отсчетов яркостной составляющей, такому как 128, 64 или 32, либо некоторому количеству отсчетов цветностной составляющей, такому как 32, 16 или 8. Размер текущего узла может быть большим или равным соответствующей пороговой величине.
В качестве опции, осуществление внутрикадрового прогнозирования может представлять собой выполнение прогнозирования с использованием обычного режима внутрикадрового прогнозирования (intra mode) или режима копирования IBC (intra block copy).
В качестве опции, все блоки кодирования, покрываемые текущим узлом, представляют собой все блоки кодирования, расположенные в области, соответствующей текущему узлу. Блок кодирования может в качестве альтернативы представлять собой единицу кодирования (coding unit).
В качестве опции, когда тип (slice type) среза, в котором располагается текущий узел, является внутрикадровым (Intra) типом, осуществляют внутрикадровое прогнозирование, вместо межкадрового прогнозирования, на всех блоках кодирования, покрываемых текущим узлом.
Варианты настоящей заявки обеспечивают следующие полезные эффекты: В настоящей заявке считается, что яркостной блок или цветностной блок указанного заданного размера получают посредством разбиения блока изображения, соответствующего текущему узлу. Если указанный выше случай имеет место, на стороне кодирующего устройства или на стороне декодирующего устройства осуществляют внутрикадровое прогнозирование или межкадровое прогнозирование на всех блоках кодирования, получаемых посредством разбиения или не-разбиения текущего узла, служащего «корневым» узлом, для осуществления параллельной обработки яркостных блоков или цветностных блоков указанного заданного размера. Это совершенствует производительность обработки при прогнозировании изображения и дополнительно улучшает характеристики кодирования.
В качестве опции, следующие два случая относятся к блоку изображения указанного заданного размера: яркостной блок первого заданного размера и цветностной блок второго заданного размера. Процедура внутрикадрового прогнозирования или межкадрового прогнозирования на всех блоках кодирования, покрываемых текущим узлом, содержит: определение, получается ли яркостной блок первого заданного размера в результате разбиения текущего узла в рассматриваемом режиме разбиения; и если определено, что яркостной блок первого заданного размера получается в результате разбиения текущего узла в рассматриваемом режиме разбиения, осуществление внутрикадрового прогнозирования на всех блоках кодирования, покрываемых текущим узлом; или если определено, что яркостной блок первого заданного размера не получается в результате разбиения текущего узла в рассматриваемом режиме разбиения, осуществление внутрикадрового прогнозирования или межкадрового прогнозирования на всех блоках кодирования, покрываемых текущим узлом.
В качестве опции, если определено, что яркостной блок первого заданного размера не получается в результате разбиения текущего узла в рассматриваемом режиме разбиения, процедура внутрикадрового прогнозирования или межкадрового прогнозирования на всех блоках кодирования, покрываемых текущим узлом, может содержать: если определено, что яркостной блок первого заданного размера не получается в результате разбиения текущего узла в рассматриваемом режиме разбиения, выполнение синтаксического анализа флага статуса режима прогнозирования для текущего узла; и если этот флаг статуса режима прогнозирования имеет первую величину, осуществление межкадрового прогнозирования на всех блоках кодирования, покрываемых текущим узлом; или если флаг статуса режима прогнозирования имеет вторую величину, осуществление внутрикадрового прогнозирования на всех блоках кодирования, покрываемых текущим узлом.
В соответствии с первым аспектом, в первом возможном варианте реализации этого первого аспекта, блок изображения указанного заданного размера содержит яркостной блок первого заданного размера, и процедура определения, получается ли блок изображения заданного размера в результате разбиения текущего узла в рассматриваемом режиме разбиения, содержит: определение, на основе размера текущего узла и режима разбиения этого текущего узла, получается ли яркостной блок первого заданного размера в результате разбиения текущего узла в рассматриваемом режиме разбиения.
В качестве опции, яркостной блок первого заданного размера может представлять собой яркостной блок размером 4×4 или 8×8 пикселей, либо яркостной блок площадью 16 пикселей или 32 пикселей.
В качестве опции, когда яркостной блок первого заданного размера представляет собой яркостной блок размером 4×4 пикселей или площадью 16 пикселей, определение, на основе размера текущего узла и режима разбиения этого текущего узла, получается ли яркостной блок первого заданного размера в результате разбиения текущего узла в рассматриваемом режиме разбиения, может быть произведено на основе одного из следующих условий:
количество отсчетов яркостного блока из текущего узла равно 64, и режим разбиения представляет собой разбиение по схеме дерева квадратов;
количество отсчетов яркостного блока из текущего узла равно 64, и режим разбиения представляет собой разбиение по схеме троичного дерева; или
количество отсчетов яркостного блока из текущего узла равно 32, и режим разбиения представляет собой разбиение по схеме двоичного дерева.
Согласно первому возможному варианту реализации первого аспекта, в качестве опции, когда определено, что блок изображения указанного заданного размера получается в результате разбиения текущего узла в рассматриваемом режиме разбиения для этого текущего узла, процедура внутрикадрового прогнозирования или межкадрового прогнозирования на всех блоках кодирования, покрываемых текущим узлом, содержит: когда определено, что яркостной блок первого заданного размера получается в результате разбиения текущего узла в рассматриваемом режиме разбиения, осуществление внутрикадрового прогнозирования на всех блоках кодирования, покрываемых текущим узлом.
Согласно первому возможному варианту реализации первого аспекта, в качестве опции, когда определено, что яркостной блок первого заданного размера не получается в результате разбиения текущего узла в рассматриваемом режиме разбиения, способ далее содержит: определение, получается ли цветностной блок второго заданного размера в результате разбиения текущего узла в рассматриваемом режиме разбиения; и когда определено, что этот цветностной блок второго заданного размера получается в результате разбиения текущего узла в рассматриваемом режиме разбиения, осуществление внутрикадрового прогнозирования или межкадрового прогнозирования на всех блоках кодирования, покрываемых текущим узлом.
В заключение, в приведенном выше первом варианте реализации, определяют, что внутрикадровое прогнозирование или межкадровое прогнозирование осуществляют на всех блоках кодирования, получаемых в результате разбиения или не-разбиения текущего узла, служащего корневым узлом, так что может быть реализована параллельная обработка для яркостных блоков или цветностных блоков указанного заданного размера. Это повышает производительность процедуры прогнозирования изображения, и далее улучшает характеристики кодирования.
В качестве опции, яркостной блок первого заданного размера может представлять собой яркостной блок размером 4×4 или яркостной блок с площадью 16 пикселей. Когда яркостной блок первого заданного размера представляет собой яркостной блок размером 4×4, цветностной блок второго заданного размера может представлять собой цветностной блок размером 2×4 или 4×2 пикселей, либо цветностной блок с площадью 8 пикселей, исключая цветностной блок размером 2×2 пикселей или с площадью в 4 пикселя.
В качестве опции, яркостной блок первого заданного размера может представлять собой яркостной блок размером 4×4 или яркостной блок с площадью 16 пикселей. Когда яркостной блок первого заданного размера представляет собой яркостной блок размером 4×4, цветностной блок второго заданного размера может представлять собой яркостной блок размером 4×8 или 8×4 пикселей, либо яркостной блок с площадью 32 пикселя, исключая яркостной блок размером 4×4 пикселей или с площадью 16 пикселей.
В качестве опции, когда цветностной блок второго заданного размера представляет собой цветностной блок размером 2×4 или 4×2 пикселей, либо цветностной блок с площадью 8 пикселей, либо цветностной блок размером 4×8 или 8×4 или яркостной блок с площадью 32 пикселя, определение, получается ли цветностной блок второго заданного размера в результате разбиения текущего узла в рассматриваемом режиме разбиения, может быть произведено на основе одного из следующих условий:
(1) количество отсчетов яркостного блока из текущего узла равно 64, и режим разбиения представляет собой разбиение по схеме двоичного дерева; или
(2) количество отсчетов яркостного блока из текущего узла равно 128, и режим разбиения представляет собой разбиение по схеме троичного дерева.
В соответствии с первым аспектом, во втором возможном варианте реализации первого аспекта, блок изображения указанного заданного размера содержит цветностной блок второго заданного размера, и процедура определения, получается ли блок изображения заданного размера в результате разбиения текущего узла в рассматриваемом режиме разбиения, содержит: определение, на основе размера текущего узла и режима разбиения этого текущего узла, получается ли цветностной блок второго заданного размера в результате разбиения текущего узла в рассматриваемом режиме разбиения.
В качестве опции, цветностной блок второго заданного размера может представлять собой цветностной блок размером 2×2, 2×4 или 4×2 пикселей, либо цветностной блок с площадью 4 пикселя или 8 пикселей.
В качестве опции, процедура определения, на основе размера текущего узла и режима разбиения этого текущего узла, получается ли цветностной блок второго заданного размера в результате разбиения текущего узла в рассматриваемом режиме разбиения, может содержать: определение, на основе размера текущего узла и режима разбиения этого текущего узла, получается ли яркостной блок третьего заданного размера в результате разбиения текущего узла в рассматриваемом режиме разбиения.
В качестве опции, яркостной блок третьего заданного размера может представлять собой яркостной блок размером 4×4, 4×8 или 8×4 пикселей, либо яркостной блок с площадью 16 пикселей или 32 пикселя.
В качестве опции, процедура определения, получается ли цветностной блок второго заданного размера в результате разбиения текущего узла в рассматриваемом режиме разбиения, может быть произведена на основе одного из следующий условий:
(1) количество отсчетов яркостного блока из текущего узла равно 64, и режим разбиения представляет собой разбиение по схеме дерева квадратов;
(2) количество отсчетов яркостного блока из текущего узла равно 64, и режим разбиения представляет собой разбиение по схеме троичного дерева;
(3) количество отсчетов яркостного блока из текущего узла равно 32, и режим разбиения представляет собой разбиение по схеме двоичного дерева;
(4) количество отсчетов яркостного блока из текущего узла равно 64, и режим разбиения представляет собой разбиение по схеме двоичного дерева; или
(5) количество отсчетов яркостного блока из текущего узла равно 128, и режим разбиения представляет собой разбиение по схеме троичного дерева.
В качестве опции, цветностной блок второго заданного размера может представлять собой цветностной блок размером 2×4 или 4×2 пикселей, либо цветностной блок с площадью 8 пикселей, исключая цветностной блок размером 2×2 пикселей или цветностной блок с площадью 4 пикселей. Аналогично, яркостной блок третьего заданного размера может представлять собой яркостной блок размером 4×8 или 8×4 пикселей, либо яркостной блок с площадью 32 пикселя, исключая яркостной блок размером 4×4 пикселей, либо яркостной блок с площадью 16 пикселей. Соответственно, определение, получается ли цветностной блок второго заданного размера в результате разбиения текущего узла в рассматриваемом режиме разбиения, может быть произведено на основе одного из следующий условий:
(1) количество отсчетов яркостного блока из текущего узла равно 64, и режим разбиения представляет собой разбиение по схеме двоичного дерева; or
(2) количество отсчетов яркостного блока из текущего узла равно 128, и режим разбиения представляет собой разбиение по схеме троичного дерева.
В соответствии с первым вариантом реализации или со вторым вариантом реализации, когда определено, что цветностной блок второго заданного размера получается в результате разбиения текущего узла в рассматриваемом режиме разбиения, процедура внутрикадрового прогнозирования или межкадрового прогнозирования на всех блоках кодирования, покрываемых текущим узлом, содержит: синтаксический анализ флага статуса режима прогнозирования для текущего узла; и когда флаг статуса режима прогнозирования имеет первую величину, осуществление межкадрового прогнозирования на всех блоках кодирования, покрываемых текущим узлом; или когда указанный флаг статуса режима прогнозирования имеет вторую величину, осуществление внутрикадрового прогнозирования на всех блоках кодирования, покрываемых текущим узлом. Этот вариант реализации используется в декодирующем устройстве для видео. Режим прогнозирования, используемый для всех блоков кодирования, полученных посредством разбиения или не-разбиения текущего узла, служащего корневым узлом, определяют путем синтаксического анализа флага статуса режима прогнозирования из потока битов данных. По сравнению с обычной технологией синтаксический анализ необходимо производить только однажды, так что скорость выполнения обработки данных для декодирования видео увеличивается.
В качестве опции, тип (slice type) среза, в котором располагается текущий узел, не является внутрикадровым (Intra) типом.
В соответствии с первым вариантом реализации или со вторым вариантом реализации, когда определено, что цветностной блок второго заданного размера получается в результате разбиения текущего узла в рассматриваемом режиме разбиения, процедура внутрикадрового прогнозирования или межкадрового прогнозирования на всех блоках кодирования, покрываемых текущим узлом, содержит: когда режим прогнозирования, используемый для любого блока кодирования, покрываемого текущим узлом, является режимом межкадрового прогнозирования, осуществление межкадрового прогнозирования на всех блоках кодирования, покрываемых текущим узлом; или когда режим прогнозирования, используемый для любого блока кодирования, покрываемого текущим узлом, является режимом внутрикадрового прогнозирования, осуществление внутрикадрового прогнозирования на всех блоках кодирования, покрываемых текущим узлом. В качестве опции, указанный любой блок кодирования является 1-м блоком кодирования из совокупности всех блоков кодирования, покрываемых текущим узлом, в порядке декодирования. Этот вариант реализации используется в устройстве для декодирования видео. Режим прогнозирования, используемый для любого блока кодирования из текущего узла, определяют посредством синтаксического анализа из потока битов данных, и используют этот найденный в результате синтаксического анализа режим прогнозирования для прогнозирования всех блоков кодирования, полученных посредством разбиения или не-разбиения текущего узла, служащего корневым узлом. По сравнению с обычной технологией, синтаксический анализ необходимо производить только однажды, так что скорость выполнения обработки данных для декодирования видео увеличивается.
В соответствии со вторым вариантом реализации, в качестве опции, когда определено, что цветностной блок второго заданного размера получается в результате разбиения текущего узла в рассматриваемом режиме разбиения, процедура внутрикадрового прогнозирования или межкадрового прогнозирования на всех блоках кодирования, покрываемых текущим узлом, содержит: определение, получается ли яркостной блок первого заданного размера в результате разбиения текущего узла в рассматриваемом режиме разбиения; и когда определено, что этот яркостной блок первого заданного размера получается в результате разбиения текущего узла в рассматриваемом режиме разбиения, осуществление внутрикадрового прогнозирования на всех блоках кодирования, покрываемых текущим узлом. В этом варианте реализации, определяют, что внутрикадровое прогнозирование осуществляется на всех блоках кодирования, полученных посредством разбиения или не-разбиения текущего узла, служащего корневым узлом, так что может быть реализована параллельная обработка для яркостного блока первого заданного размера и для цветностного блока второго заданного размера. Это повышает производительность процедуры прогнозирования изображения, и далее улучшает характеристики кодирования.
В качестве опции, когда определено, что яркостной блок первого заданного размера не получается в результате разбиения текущего узла в рассматриваемом режиме разбиения, процедура внутрикадрового прогнозирования или межкадрового прогнозирования на всех блоках кодирования, покрываемых текущим узлом, содержит: проведение синтаксического анализа флага статуса режима прогнозирования для текущего узла; и когда флаг статуса режима прогнозирования имеет первую величину, осуществление межкадрового прогнозирования на всех блоках кодирования, покрываемых текущим узлом; или когда флаг статуса режима прогнозирования имеет вторую величину, осуществление внутрикадрового прогнозирования на всех блоках кодирования, покрываемых текущим узлом. Этот вариант реализации используется в устройстве для декодирования видео. Режим прогнозирования, используемый для всех блоков кодирования, полученных посредством разбиения или не-разбиения текущего узла, служащего корневым узлом, определяют посредством синтаксического анализа флага статуса режима прогнозирования из потока битов данных. По сравнению с обычной технологией, синтаксический анализ необходимо производить только однажды, так что скорость выполнения обработки данных для декодирования видео увеличивается.
В качестве опции, когда определено, что яркостной блок первого заданного размера не получается в результате разбиения текущего узла в рассматриваемом режиме разбиения, процедура внутрикадрового прогнозирования или межкадрового прогнозирования на всех блоках кодирования, покрываемых текущим узлом, содержит: когда режим прогнозирования, используемый для любого из блоков кодирования, покрываемых текущим узлом, представляет собой режим межкадрового прогнозирования, осуществление межкадрового прогнозирования на всех блоках кодирования, покрываемых текущим узлом; или когда режим прогнозирования, используемый для любого из блоков кодирования, покрываемых текущим узлом, представляет собой режим внутрикадрового прогнозирования, выполнение внутрикадрового прогнозирования на всех блоках кодирования, покрываемых текущим узлом. Этот вариант реализации используется в устройстве для декодирования видео. Режим прогнозирования, используемый для любого из блоков кодирования в текущем узле, определяют посредством синтаксического анализа из потока битов данных, и используют этот режим прогнозирования, найденный посредством синтаксического анализа для прогнозирования всех блоков кодирования, полученных посредством разбиения или не-разбиения текущего узла, служащего корневым узлом. По сравнению с обычной технологией, синтаксический анализ необходимо производить только однажды, так что скорость выполнения обработки данных для декодирования видео увеличивается.
В качестве опции, указанный любой блок кодирования представляет собой 1-й блок кодирования из совокупности всех блоков кодирования, покрываемых текущим узлом, в порядке декодирования.
В соответствии с каким-либо одним из тезисов - первым аспектом или возможными вариантами реализации первого аспекта, в третьем возможном варианте реализации этого первого аспекта, процедура внутрикадрового прогнозирования или межкадрового прогнозирования на всех блоках кодирования, покрываемых текущим узлом, содержит: разбиение, в рассматриваемом режиме разбиения, яркостного блока, находящегося в текущем узле, для получения яркостных блоков в результате такого разбиения, осуществление внутрикадрового прогнозирования на яркостных блоках, полученных в результате разбиения, использование цветностного блока, расположенного в текущем узле, в качестве блока кодирования цветностной составляющей (далее - цветностной блок кодирования), и осуществление внутрикадрового прогнозирования на этом цветностном блоке кодирования; или разбиение, в рассматриваемом режиме разбиения, яркостного блока, расположенного в текущем узле, для получения яркостных блоков в результате этого разбиения, осуществление межкадрового прогнозирования на яркостных блоках, полученных в результате такого разбиения, разбиение, в рассматриваемом режиме разбиения, цветностного блока, расположенного в текущем узле, для получения цветностных блоков в результате этого разбиения, и осуществление межкадрового прогнозирования на цветностных блоках, полученных в результате разбиения. В этом варианте реализации, независимо от того, осуществляется ли внутрикадровое прогнозирование или межкадровое прогнозирование на всех блоках кодирования, покрываемых текущим узлом, яркостной блок из текущего узла разбивают всегда; а цветностной блок, расположенный в этом текущем узле, может быть разбит в случае режима межкадрового прогнозирования, и этот цветностной блок из текущего узла не разбивают в режиме внутрикадрового прогнозирования. В этом варианте реализации, цветностной блок, второго заданного размера, на котором осуществляется внутрикадровое прогнозирование, не генерируют, и это позволяет избежать случая, в котором внутрикадровое прогнозирование осуществляется для небольшого цветностного блока. Это увеличивает увеличить скорость обработки данных при кодировании видео.
В соответствии с каким-либо одним из тезисов - первым аспектом или возможными вариантами реализации первого аспекта, в четвертом возможном варианте реализации этого первого аспекта, процедура внутрикадрового прогнозирования или межкадрового прогнозирования на всех блоках кодирования, покрываемых текущим узлом, содержит: разбиение, в рассматриваемом режиме разбиения, яркостного блока, расположенного в текущем узле, для получения яркостных блоков в результате этого разбиения, осуществление внутрикадрового прогнозирования для яркостных блоков, полученных в результате разбиения, использование цветностного блока, расположенного в текущем узле, в качестве цветностного блока кодирования, и осуществление внутрикадрового прогнозирования на этом цветностном блоке кодирования; или разбиение, в рассматриваемом режиме разбиения, яркостного блока, находящегося в текущем узле, для получения яркостных блоков в результате такого разбиения, осуществление межкадрового прогнозирования на яркостных блоках, полученных в результате разбиения, использование цветностного блока, расположенного в текущем узле, в качестве цветностного блока кодирования, и осуществление межкадрового прогнозирования на этом цветностном блоке кодирования. В этом варианте реализации, независимо от того, осуществляется ли внутрикадровое прогнозирование или межкадровое прогнозирование на всех блоках кодирования, покрываемых текущим узлом, цветностной блок, расположенный в текущем узле, не разбивают, а яркостной блок разбивают в режиме разбиения для этого яркостного блока. В этом варианте реализации, цветностной блок, второго заданного размера, на котором осуществляется внутрикадровое прогнозирование, не генерируют, и это позволяет избежать случая, в котором внутрикадровое прогнозирование осуществляется для небольшого цветностного блока. Это увеличивает увеличить скорость обработки данных при кодировании видео.
В соответствии с каким-либо одним из тезисов - первым аспектом или возможными вариантами реализации первого аспекта, в пятом возможном варианте реализации этого первого аспекта, когда межкадровое прогнозирование осуществляется на всех блоках кодирования, покрываемых текущим узлом, процедура межкадрового прогнозирования на всех блоках кодирования, покрываемых текущим узлом, содержит:
разбиение текущего узла в режиме разбиения этого текущего узла для получения узла потомка относительно этого текущего узла; определение, на основе размера полученного узла потомка относительно рассматриваемого текущего узла, режима разбиения, не допустимого для этого узла потомка относительно рассматриваемого текущего узла; определение политики разбиения блоков в этом узле потомке относительно рассматриваемого текущего узла на основе указанного режима разбиения, не допустимого для этого узла потомка относительно рассматриваемого текущего узла; и получение, в соответствии с политикой разбиения блоков в узле потомке относительно текущего узла, блока кодирования, соответствующего этому узлу потомку относительно текущего узла, и осуществление межкадрового прогнозирования на соответствующем блоке кодирования. В этом варианте реализации, яркостной блок первого заданного размера не генерируют в случае межкадрового прогнозирования.
Узел потомок может быть получен путем однократного разбиения текущего узла, либо он может быть получен путем разбиения текущего узла N раз, где N целое число больше 1.
Политика разбиения может содержать: не выполнение никакого разбиение, либо однократное разбиение, либо выполнение разбиения N раз, где N целое число больше 1.
Второй аспект настоящей заявки предлагает оборудование для прогнозирования изображения. Эта оборудование содержит:
получающий модуль, конфигурированный для получения режима разбиения текущего узла;
решающий модуль, конфигурированный для определения, получается ли блок изображения заданного размера в результате разбиения текущего узла в рассматриваемом режиме разбиения, где этот блок изображения представляет яркостной блок или цветностной блок; и
исполнительный модуль, конфигурированный для того, чтобы: когда определено, что в результате разбиения текущего узла в рассматриваемом режиме разбиения получается блок изображения заданного размера, осуществить внутрикадровое прогнозирование или межкадровое прогнозирование на всех блоках кодирования, покрываемых текущим узлом.
Третий аспект настоящей заявки предлагает устройство для кодирования видео, содержащее процессор и запоминающее устройство, конфигурированное для хранения выполняемых процессором команд. Этот процессор осуществляет способ, соответствующий первому аспекту настоящей заявки.
Четвертый аспект настоящей заявки предлагает устройство для декодирования видео, содержащее процессор и запоминающее устройство, конфигурированное для хранения выполняемых процессоров команд. Этот процессор осуществляет способ, соответствующий первому аспекту настоящей заявки.
Пятый аспект настоящей заявки предлагает систему прогнозирования изображения, содержащую устройство для сбора видео, устройство для кодирования видео в соответствии с третьим аспектом настоящей заявки, устройство для декодирования видео в соответствии с четвертым аспектом настоящей заявки и дисплейное устройство. Устройство для кодирования видео соединено и с устройством для сбора видео, и с устройством для декодирования видео. Устройство для декодирования видео соединено с дисплейным устройством.
Шестой аспект настоящей заявки предлагает читаемый компьютером носитель для хранения информации. Этот читаемый компьютером носитель для хранения информации сохраняет компьютерную программу, которую процессор выполняет для осуществления способа согласно первому аспекту настоящей заявки.
Седьмой аспект настоящей заявки предлагает способ прогнозирования изображения. Этот способ содержит:
получение режима разбиения для текущего узла, где текущий узел представляет собой единицу дерева кодирования (coding tree unit) в текущем изображении; определении, на основе режима разбиения для текущего узла и размеров этого текущего узла, удовлетворяет ли текущий узел первому условию; и когда определено, что текущий узел удовлетворяет первому условию, осуществление внутрикадрового прогнозирования на всех блоках кодирования, принадлежащих текущему узлу, с целью получения предикторов для всех блоков кодирования, принадлежащих текущему узлу.
Размер текущего узла определяют на основе размера узла дерева кодирования, соответствующего текущему узлу, и режима разбиения, использованного для получения текущего узла.
Типом среза (slice), в котором находится текущий узел, является срезом B-типа или P-типа. Должно быть понятно, что когда срез (slice), в котором находится текущий узел, является срезом I-типа, следует выполнять внутрикадровое прогнозировании, по умолчанию, на всех блоках кодирования, покрываемых текущим узлом.
В качестве опции, определение, на основе режима разбиения для текущего узла и размеров этого текущего узла, удовлетворяет ли текущий узел первому условию, может быть осуществлено, когда размер текущего узла не больше верхней предельной величины для заданного размера. Эта верхняя предельная величина для заданного размера может быть равна 256, 128 или 64.
Указанное первое условие может иметь вид:
(1) количество отсчетов яркостного блока из текущего узла равно 64, и режим разбиения представляет собой разбиение по схеме дерева квадратов;
(2) количество отсчетов яркостного блока из текущего узла равно 64, и режим разбиения разбиение по схеме троичного дерева; или
(3) количество отсчетов яркостного блока из текущего узла равно 32, и режим разбиения представляет собой разбиение по схеме двоичного дерева.
В соответствии с седьмым аспектом в первом возможном варианте реализации седьмого аспекта, когда определено, что текущий узел не удовлетворяет первому условию, способ дополнительно содержит: определение, на основе режима разбиения текущего узла и размера этого текущего узла, удовлетворяет ли текущий узел второму условию; и когда определено, что текущий узел удовлетворяет второму условию, осуществление прогнозирования, с использованием одного и того же режима прогнозирования, на всех блоках кодирования, принадлежащих текущему узлу, с целью получения предикторов для всех блоков кодирования, принадлежащих текущему узлу, где режим прогнозирования представляет собой внутрикадровое прогнозирование или межкадровое прогнозирование.
Процедура определения, на основе режима разбиения текущего узла и размера этого текущего узла, удовлетворяет ли текущий узел второму условию, может содержать: определение, на основе режима разбиения для текущего узла, размера этого текущего узла, и текущего формата цветностной составляющей (Chroma format), удовлетворяет ли текущий узел второму условию.
Второе условие может представлять собой:
(1) количество отсчетов яркостного блока из текущего узла равно 64, и режим разбиения представляет собой разбиение по схеме двоичного дерева;
(2) количество отсчетов яркостного блока из текущего узла равно 128, и режим разбиения представляет собой разбиение по схеме троичного дерева;
(3) количество отсчетов яркостного блока из текущего узла равно 64, режим разбиения представляет собой разбиение по схеме двоичного дерева, и формат цветностной составляющей имеет вид 4:2:0;
(4) количество отсчетов яркостного блока из текущего узла равно 128, режим разбиения представляет собой разбиение по схеме троичного дерева, и формат цветностной составляющей имеет вид 4:2:0; или
(5) ширина цветностного блока в узле потомке относительно текущего узла равна 2.
В соответствии с первым возможным вариантом реализации седьмого аспекта, во втором возможном варианте реализации этого седьмого аспекта, процедура осуществления, с использованием одного и того же режима прогнозирования, прогнозирования на всех блоках кодирования, принадлежащих текущему узлу, содержит: проведение синтаксического анализа флага статуса режима прогнозирования для текущего узла; и когда этот флаг статуса режима прогнозирования имеет первую величину, выполнение межкадрового прогнозирования на всех блоках кодирования, принадлежащих текущему узлу; или когда этот флаг статуса режима прогнозирования имеет вторую величину, выполнение внутрикадрового прогнозирования на всех блоках кодирования, принадлежащих текущему узлу.
Указанный флаг статуса режима прогнозирования может представлять собой синтаксический элемент, подвергаемый синтаксическому анализу в ходе разбиения блока, иными словами, синтаксический элемент, подвергаемый синтаксическому анализу в процессе разбиения по схеме дерева кодирования (coding tree). Когда синтаксический элемент подвергают синтаксическому анализу, флаг статуса режима прогнозирования для единицы кодирования (cu_pred_mode), относящийся к единице кодирования, расположенной в области покрытия текущего узла, может не быть подвергнут синтаксическому анализу, и при этом флаг статуса режима прогнозирования для единицы кодирования имеет значение по умолчанию, соответствующее значению флага статуса режима прогнозирования.
В соответствии с первым или вторым возможным вариантом реализации седьмого аспекта, в третьем возможном варианте реализации этого седьмого аспекта, процедура межкадрового прогнозирования на всех блоках кодирования, принадлежащих текущему узлу, содержит: разбиение текущего узла в режиме разбиения для этого текущего узла с целью получения узла потомка относительно этого текущего узла; определение, на основе размера полученного узла потомка относительно рассматриваемого текущего узла, режима разбиения, не допустимого для этого узла потомка относительно рассматриваемого текущего узла; определение политики разбиения блоков в этом узле потомке относительно рассматриваемого текущего узла на основе указанного режима разбиения, не допустимого для этого узла потомка относительно рассматриваемого текущего узла; и получение, в соответствии с политикой разбиения блоков в узле потомке относительно текущего узла, блока кодирования, соответствующего этому узлу потомку относительно текущего узла, и осуществление межкадрового прогнозирования на соответствующем блоке кодирования.
Если ограничиться тем, что для узла потомка осуществляется только межкадровое прогнозирование, и число отсчетов яркостной составляющей в узле потомке равно 32 (или произведение ширины на высоту узла равно 32), разбиение по схеме двоичного дерева (включая горизонтальное разбиение по схеме двоичного дерева или вертикальное разбиение по схеме двоичного дерева) не допускается для этого узла потомка. Если ограничиться тем, что для узла потомка осуществляется только межкадровое прогнозирование, и число отсчетов яркостной составляющей в узле потомке равно 64 (или произведение ширины на высоту узла равно 64), разбиение по схеме троичного дерева (включая горизонтальное разбиение по схеме троичного дерева или вертикальное разбиение по схеме троичного дерева) не допускается для этого узла потомка. Такой способ определения применим к обоим форматам данных видео - YUV 4:2:0 и YUV 4:2:2.
Например, если размер текущего узла равен 8×8 пикселей, и посредством горизонтального разбиения по схеме двоичного дерева (или вертикального разбиения по схеме двоичного дерева) генерируют два блока размером 8×4 (или 4×8), при дальнейшем разбиении такого узла размером 8×4 пикселей (или 4×8) генерируют блоки размером 4×4. В этом случае, вертикальное разбиение по схеме двоичного дерева (или горизонтальное разбиение по схеме двоичного дерева) не допускается для узла размером 8×4 (или 4×8), или не допускается дальнейшее разбиение узла размером 8×4 (или 4×8). В качестве другого примера, если количество отсчетов яркостного блока, расположенного в текущем узле, равно 128, и режим разбиения представляет собой горизонтальное разбиение по схеме троичного дерева или вертикальное разбиение по схеме троичного дерева, можно получить равное 64 количество отсчетов в яркостном блоке. Однако если горизонтальное разбиение по схеме троичного дерева или вертикальное разбиение по схеме троичного дерева для узла потомка используется для узла яркостной составляющей, содержащего 64 отсчета, получают яркостные блоки размером 4×4 пикселей. Поэтому, если ограничиться тем, что осуществляется только межкадровое прогнозирование, горизонтальное разбиение по схеме троичного дерева или вертикальное разбиение по схеме троичного дерева не допускается для узла с количеством отсчетов 64, либо не допускается дальнейшее разбиение для узла, содержащего 64 отсчета.
В соответствии с каким-либо одним из тезисов - седьмым аспектом или возможными вариантами реализации седьмого аспекта, в четвертом возможном варианте реализации этого седьмого аспекта, процедура внутрикадрового прогнозирования на всех блоках кодирования, принадлежащих текущему узлу, содержит: разбиение яркостного блока, расположенного в текущем узле, в рассматриваемом режиме разбиения, с целью получения яркостных блоков в результате разбиения, и осуществление внутрикадрового прогнозирования на яркостных блоках, полученных в результате разбиения; и использование цветностного блока, находящегося в текущем узле, в качестве цветностного блока кодирования, и осуществление внутрикадрового прогнозировании на этом цветностном блоке кодирования.
Восьмой аспект настоящей заявки предлагает способ прогнозирования изображения. Этот способ содержит: получение индикации режима разбиения для текущего узла, где этот текущий узел представляет собой блок изображения в единице дерева кодирования (coding tree unit) в текущем изображении; определение, на основе режима разбиения для текущего узла и размеров этого текущего узла, удовлетворяет ли текущий узел заданному условию; и когда определено, что текущий узел удовлетворяет этому заданному условию, осуществление, с использованием одного и того же режима прогнозирования, прогнозирования на всех блоках кодирования, принадлежащих текущему узлу, с целью получения предикторов всех блоков кодирования, принадлежащих текущему узлу, где режим прогнозирования представляет собой режим внутрикадрового прогнозирования или режим межкадрового прогнозирования.
Размер текущего узла может быть определен на основе размера узла дерева кодирования, соответствующего текущему узлу, и режима разбиения, используемого для получения текущего узла.
Процедура определения, на основе режима разбиения для текущего узла и размеров этого текущего узла, удовлетворяет ли текущий узел заданному условию, может содержать: определение, на основе режима разбиения для текущего узла, размера этого текущего узла, и текущего формата цветностной составляющей (Chroma format), удовлетворяет ли текущий узел указанному заданному условию.
Это заданное условие может содержать:
(1) количество отсчетов яркостного блока из текущего узла равно 64, и режим разбиения представляет собой разбиение по схеме двоичного дерева; или
(2) количество отсчетов яркостного блока из текущего узла равно 128, и режим разбиения представляет собой разбиение по схеме троичного дерева.
В соответствии с восьмым аспектом в первом возможном варианте реализации этого восьмого аспекта, процедура прогнозирования, с использованием одного и того же режима прогнозирования, для всех блоков кодирования, принадлежащих текущему узлу, содержит: проведение синтаксического анализа флага статуса режима прогнозирования для текущего узла; и когда флаг статуса режима прогнозирования имеет первое значение, осуществление межкадрового прогнозирования на всех блоках кодирования, принадлежащих текущему узлу; или когда этот флаг статуса режима прогнозирования имеет второе значение, осуществление внутрикадрового прогнозирования на всех блоках кодирования, принадлежащих текущему узлу.
В соответствии с восьмым аспектом или с первым возможным вариантом реализации восьмого аспекта, во втором возможном варианте реализации этого восьмого аспекта, процедура межкадрового прогнозирования на всех блоках кодирования, принадлежащих текущему узлу, содержит: разбиение текущего узла в режиме разбиения для этого текущего узла с целью получения узла потомка относительно этого текущего узла; определение, на основе размера полученного узла потомка относительно рассматриваемого текущего узла, режима разбиения, не допустимого для этого узла потомка относительно рассматриваемого текущего узла; определение политики разбиения блоков в этом узле потомке относительно рассматриваемого текущего узла на основе указанного режима разбиения, не допустимого для этого узла потомка относительно рассматриваемого текущего узла; и получение, в соответствии с политикой разбиения блоков в узле потомке относительно текущего узла, блока кодирования, соответствующего этому узлу потомку относительно текущего узла, и осуществление межкадрового прогнозирования на соответствующем блоке кодирования.
Если ограничиться тем, что для узла потомка осуществляется только межкадровое прогнозирование, и тем, что количество отсчетов яркостной составляющей в узле потомке равно 32 (или произведение ширины на высоту узла равно 32), разбиение по схеме двоичного дерева (включая горизонтальное разбиение по схеме двоичного дерева или вертикальное разбиение по схеме двоичного дерева) не допускается для этого узла потомка. Если ограничиться тем, что для узла потомка осуществляется только межкадровое прогнозирование, и тем, что количество отсчетов яркостной составляющей в узле потомке равно 64 (или произведение ширины на высоту узла равно 64), разбиение по схеме троичного дерева (включая горизонтальное разбиение по схеме троичного дерева или вертикальное разбиение по схеме троичного дерева) не допускается для этого узла потомка. Такой способ определения применим к обоим форматам данных видео - YUV 4:2:0 и YUV 4:2:2.
Например, если размер текущего узла равен 8×8 пикселей, и посредством горизонтального разбиения по схеме двоичного дерева (или вертикального разбиения по схеме двоичного дерева) генерируют два блока размером 8×4 (или 4×8), при дальнейшем разбиении такого узла размером 8×4 пикселей (или 4×8) генерируют блоки размером 4×4. В этом случае, вертикальное разбиение по схеме двоичного дерева (или горизонтальное разбиение по схеме двоичного дерева) не допускается для узла размером 8×4 (или 4×8), или не допускается дальнейшее разбиение узла размером 8×4 (или 4×8). В качестве другого примера, если количество отсчетов яркостного блока из текущего узла равно 128, и режим разбиения представляет собой горизонтальное разбиение по схеме троичного дерева или вертикальное разбиение по схеме троичного дерева, можно получить равное 64 количество отсчетов в яркостном блоке. Однако если горизонтальное разбиение по схеме троичного дерева или вертикальное разбиение по схеме троичного дерева для узла потомка используется для узла яркостной составляющей, содержащего 64 отсчета, получают яркостные блоки размером 4×4 пикселей. Поэтому, если ограничиться тем, что осуществляется только межкадровое прогнозирование, горизонтальное разбиение по схеме троичного дерева или вертикальное разбиение по схеме троичного дерева не допускается для узла с количеством отсчетов 64, либо не допускается дальнейшее разбиение для узла, содержащего 64 отсчета.
Девятый аспект настоящей заявки предлагает способ прогнозирования изображения. Способ содержит: определение, на основе размера текущего узла и режима прогнозирования для этого текущего узла, режима разбиения, который не допускается для такого текущего узла, где текущий узел представляет собой блок изображения в единице дерева кодирования (coding tree unit) в текущем изображении; определение политики разбиения блоков в текущем узле на основе режима разбиения, который не допускается для текущего узла; и получение, в соответствии с этой политикой разбиения блоков для текущего узла, блока кодирования, соответствующего текущему узлу, и осуществление межкадрового прогнозирования на соответствующем блоке кодирования.
Размер текущего узла может быть определен на основе размера узла дерева кодирования, соответствующего текущему узлу, и режима разбиения, используемого для получения этого текущего узла.
В соответствии с девятым аспектом в первом возможном варианте реализации этого девятого аспекта, процедура определения, на основе размера текущего узла и режима прогнозирования для этого текущего узла, режима разбиения, который не допускается для этого текущего узла, содержит: определение, используется ли только режим межкадрового прогнозирования с целью прогнозирования всех блоков кодирования, принадлежащих текущему узлу, и определение, равно ли количество отсчетов яркостного блока из текущего узла 32; и когда определено, что только режим межкадрового прогнозирования используется для прогнозирования всех блоков кодирования, принадлежащих текущему узлу, и определено, что количество отсчетов яркостного блока из текущего узла равно 32, определение, что разбиение по схеме двоичного дерева представляет собой режим разбиения, не допустимый для этого текущего узла.
В соответствии с девятым аспектом или первым возможным вариантом реализации девятого аспекта, во втором возможном варианте реализации этого девятого аспекта, процедура определения, на основе размера текущего узла и режима прогнозирования для этого текущего узла, режима разбиения, который не допускается для этого текущего узла, содержит: определение, используется ли только режим межкадрового прогнозирования для прогнозирования всех блоков кодирования, принадлежащих текущему узлу, и определение, равно ли количество отсчетов яркостного блока из текущего узла 64; и когда определено, что только режим межкадрового прогнозирования используется для прогнозирования всех блоков кодирования, принадлежащих текущему узлу, и определено, что количество отсчетов яркостного блока из этого текущего узла равно 64, определение, что разбиение по схеме троичного дерева является режимом разбиения, который не допустим для этого текущего узла.
Десятый аспект настоящей заявки предлагает оборудование для прогнозирования изображения. Это оборудование содержит:
получающий модуль, конфигурированный для получения индикации режима разбиения для текущего узла, где текущий узел представляет собой блок изображения в единице дерева кодирования (coding tree unit) в текущем изображении;
решающий модуль, конфигурированный для определения, на основе режима разбиения для текущего узла и размеров этого текущего узла, удовлетворяет ли текущий узел первому условию; и
исполнительный модуль, конфигурированный для того, чтобы: когда определено, что текущий узел удовлетворяет первому условию, осуществить внутрикадровое прогнозирование на всех блоках кодирования, принадлежащих текущему узлу, с целью получения предикторов для всех блоков кодирования, принадлежащих текущему узлу.
В соответствии с десятым аспектом в первом возможном варианте реализации этого десятого аспекта, решающий модуль дополнительно конфигурирован для того, чтобы: когда определено, что текущий блок не удовлетворяет первому условию, определить, на основе режима разбиения текущего узла и размера этого текущего узла, удовлетворяет ли этот текущий узел второму условию; и
исполнительный модуль дополнительно конфигурирован для того, чтобы: когда определено, что текущий узел удовлетворяет второму условию, осуществить, с использованием одного и того же режима прогнозирования, прогнозирование на всех блоках кодирования, принадлежащих текущему узлу, с целью получения предикторов для всех блоков кодирования, принадлежащих текущему узлу, где режим прогнозирования представляет собой внутрикадровое прогнозирование или межкадровое прогнозирование.
Решающий модуль может быть конфигурирован для: определения, на основе режима разбиения для текущего узла, размера этого текущего узла и текущего формата цветностной составляющей (Chroma format), удовлетворяет ли этот текущий узел второму условию.
В соответствии с первым возможным вариантом реализации десятого аспекта, во втором возможном варианте реализации этого десятого аспекта, исполнительный модуль конфигурирован для:
выполнения синтаксического анализа флага статуса режима прогнозирования для текущего узла; и
когда флаг статуса режима прогнозирования имеет первое значение, осуществления межкадрового прогнозирования на всех блоках кодирования, принадлежащих текущему узлу; или когда флаг статуса режима прогнозирования имеет второе значение, осуществления внутрикадрового прогнозирования на всех блоках кодирования, принадлежащих текущему узлу.
В соответствии с первым или вторым возможным вариантом реализации десятого аспекта, в третьем возможном варианте реализации этого десятого аспекта, исполнительный модуль конфигурирован для:
разбиения текущего узла в режиме разбиения для этого текущего узла с целью получения узла потомка относительно этого текущего узла;
определения, на основе размера полученного узла потомка относительно рассматриваемого текущего узла, режима разбиения, не допустимого для этого узла потомка относительно рассматриваемого текущего узла;
определения политики разбиения блоков в этом узле потомке относительно рассматриваемого текущего узла на основе указанного режима разбиения, не допустимого для этого узла потомка относительно рассматриваемого текущего узла; и
получения, в соответствии с политикой разбиения блоков в узле потомке относительно текущего узла, блока кодирования, соответствующего этому узлу потомку относительно текущего узла, и осуществления межкадрового прогнозирования для соответствующего блока кодирования.
В соответствии с каким-либо одним из тезисов - десятым аспектом или возможными вариантами реализации десятого аспекта, в четвертом возможном варианте реализации этого десятого аспекта, исполнительный модуль конфигурирован для:
разбиения, в рассматриваемом режиме разбиения, яркостного блока, расположенного в текущем узле, для получения яркостных блоков в результате разбиения, и осуществления внутрикадрового прогнозирования на яркостных блоках, полученных в результате разбиения; и использования цветностного блока, находящегося в текущем узле, в качестве цветностного блока кодирования, и осуществления внутрикадрового прогнозирования на этом цветностном блоке кодирования.
Одиннадцатый аспект настоящей заявки предлагает оборудование для прогнозирования изображения. Эта оборудование содержит: получающий модуль, конфигурированный для получения индикации режима разбиения для текущего узла, где текущий узел представляет собой блок изображения в единице дерева кодирования (coding tree unit) в текущем изображении; решающий модуль, конфигурированный для определения, на основе режима разбиения для текущего узла и размеров этого текущего узла, удовлетворяет ли текущий узел заданному условию; и исполнительный модуль, конфигурированный для того, чтобы: когда определено, что текущий узел удовлетворяет заданному условию, осуществить, с использованием одного и того же режима прогнозирования, прогнозирование на блоках кодирования, принадлежащих текущему узлу, с целью получения предикторов для всех блоков кодирования, принадлежащих текущему узлу, где этот режим прогнозирования представляет собой внутрикадровое прогнозирование или межкадровое прогнозирование.
Решающий модуль может быть конфигурирован для определения, на основе режима разбиения для текущего узла, размера этого текущего узла, и текущего формата цветностной составляющей (Chroma format), удовлетворяет ли текущий узел заданному условию.
В соответствии с одиннадцатым аспектом в первом возможном варианте реализации этого одиннадцатого аспекта, исполнительный модуль конфигурирован для:
проведения синтаксического анализа флаг статуса режима прогнозирования для текущего узла; и
когда флаг статуса режима прогнозирования имеет первое значение, осуществления межкадрового прогнозирования на всех блоках кодирования, принадлежащих текущему узлу; или когда флаг статуса режима прогнозирования имеет второе значение, осуществления внутрикадрового прогнозирования на всех блоках кодирования, принадлежащих текущему узлу.
В соответствии с одиннадцатым аспектом или первым возможным вариантом реализации одиннадцатого аспекта, во втором возможном варианте реализации этого одиннадцатого аспекта, исполнительный модуль конфигурирован для: разбиения текущего узла в режиме разбиения для этого текущего узла с целью получения узла потомка относительно этого текущего узла; определения, на основе размера полученного узла потомка относительно рассматриваемого текущего узла, режима разбиения, не допустимого для этого узла потомка относительно рассматриваемого текущего узла; определения политики разбиения блоков в этом узле потомке относительно рассматриваемого текущего узла на основе указанного режима разбиения, не допустимого для этого узла потомка относительно рассматриваемого текущего узла; и получения, в соответствии с политикой разбиения блоков в узле потомке относительно текущего узла, блока кодирования, соответствующего этому узлу потомку относительно текущего узла, и осуществления межкадрового прогнозирования на соответствующем блоке кодирования.
Двенадцатый аспект настоящей заявки предлагает оборудование для прогнозирования изображения. Эта оборудование содержит: a решающий модуль, конфигурированный для определения, на основе размера текущего узла и режима прогнозирования для этого текущего узла, режима разбиения, который не допустим для этого текущего узла, где текущий узел представляет собой блок изображения в единице дерева кодирования (coding tree unit) в текущем изображении, где этот решающий модуль дополнительно конфигурирован для: определения политики разбиения блоков для текущего узла на основе режима разбиения, который не допустим для этого текущего узла; и модуль прогнозирования, конфигурированный для получения, в соответствии с политикой разбиения блоков для текущего узла, блока кодирования, соответствующего этому текущему узлу, и осуществления межкадрового прогнозирования на соответствующем блоке кодирования.
В соответствии с двенадцатым аспектом в первом возможном варианте реализации этого двенадцатого аспекта, решающий модуль конфигурирован для:
определения, используется ли только режим межкадрового прогнозирования для прогнозирования всех блоков кодирования, принадлежащих текущему узлу, и определения, равно ли количество отсчетов яркостного блока из этого текущего узла 32; и
когда определено, что только режим межкадрового прогнозирования используется для прогнозирования всех блоков кодирования, принадлежащих текущему узлу, и определено, что количество отсчетов яркостного блока из этого текущего узла равно 32, определения, что разбиение по схеме двоичного дерева представляет собой режим разбиения, который не допустим для этого текущего узла.
В соответствии с двенадцатым аспектом или с первым возможным вариантом реализации двенадцатого аспекта, во втором возможном варианте реализации этого двенадцатого аспекта, решающий модуль конфигурирован для:
определения, используется ли только режим межкадрового прогнозирования для прогнозирования всех блоков кодирования, принадлежащих текущему узлу, и определения, равно ли количество отсчетов яркостного блока из этого текущего узла 64; и
когда определено, что только режим межкадрового прогнозирования используется для прогнозирования всех блоков кодирования, принадлежащих текущему узлу, и определено, что количество отсчетов яркостного блока из этого текущего узла равно 64, определения, что разбиение по схеме троичного дерева представляет собой режим разбиения, который не допустим для этого текущего узла.
Для получения информации о признаках и вариантах реализации седьмого аспекта, восьмого аспекта и девятого аспекта настоящей заявки следует обратиться к признакам и вариантам реализации способа согласно первому аспекту.
Способ согласно седьмому аспекту настоящей заявки может быть осуществлен оборудованием согласно десятому аспекту этой заявки. Для получения информации о функциональных возможностях и различных вариантах реализации оборудования согласно десятому аспекту настоящей заявки следует обратиться к признакам и вариантам реализации способа согласно седьмому аспекту настоящей заявки.
Способ согласно восьмому аспекту настоящей заявки может быть осуществлен оборудованием согласно одиннадцатому аспекту этой заявки. Для получения информации о функциональных возможностях и различных вариантах реализации оборудования согласно одиннадцатому аспекту настоящей заявки следует обратиться к признакам и вариантам реализации способа согласно восьмому аспекту настоящей заявки.
Способ согласно девятому аспекту настоящей заявки может быть осуществлен оборудованием согласно двенадцатому аспекту этой заявки. Для получения информации о функциональных возможностях и различных вариантах реализации оборудования согласно двенадцатому аспекту настоящей заявки следует обратиться к признакам и вариантам реализации способа согласно девятому аспекту настоящей заявки.
Тринадцатый аспект настоящей заявки предлагает оборудование для декодирования потокового видео, содержащее процессор и запоминающее устройство. Это запоминающее устройство сохраняет команды, позволяющие процессору осуществить способ согласно седьмому аспекту, восьмому аспекту или девятому аспекту.
Четырнадцатый аспект настоящей заявки предлагает оборудование для кодирования потокового видео, содержащее процессор и запоминающее устройство. Это запоминающее устройство сохраняет команды, позволяющие процессору осуществить способ согласно седьмому аспекту, восьмому аспекту или девятому аспекту.
Пятнадцатый аспект настоящей заявки предлагает читаемый компьютером носитель для хранения информации. Этот читаемый компьютером носитель для хранения информации сохраняет команды, при выполнении которых один или более процессоров могут кодировать данные видео. Эти команды позволяют указанным одному или нескольким процессорам осуществить способ согласно любому из аспектов - седьмому аспекту, восьмому аспекту, девятому аспекту или возможным вариантам реализации этих седьмого, восьмого или девятого аспектов.
Шестнадцатый аспект настоящей заявки предлагает компьютерную программу, содержащую программный код. Когда этот программный код выполняется компьютером, осуществляется способ согласно какому-либо одному из аспектов - седьмому аспекту, восьмому аспекту, девятому аспекту или возможным вариантам этих седьмого аспекта, восьмого аспекта или девятого аспекта.
Семнадцатый аспект настоящей заявки предлагает читаемый компьютером носитель для хранения информации. Этот читаемый компьютером носитель для хранения информации сохраняет поток битов данных, и этот поток битов данных несет флаг статуса режима прогнозирования для текущего узла текущего дерева кодирования. Когда этот флаг статуса режима прогнозирования имеет первое значение, он означает, что режим межкадрового прогнозирования используется для всех блоков кодирования, принадлежащих текущему узлу; или когда этот флаг статуса режима прогнозирования имеет второе значение, он означает, что режим внутрикадрового прогнозирования используется для всех блоков кодирования, принадлежащих текущему узлу.
Следует понимать, что технические решения со второго аспекта по семнадцатый аспект настоящей заявки согласованы с техническим решением первого аспекта этой заявки, так что преимущества, обеспечиваемые этими аспектами и соответствующими вариантами реализации, являются аналогичными. Подробности здесь снова описаны не будут.
Подробности одного или нескольких вариантов рассмотрены на прилагаемых чертежах и в последующем описании.
Настоящая заявка предлагает способ прогнозирования изображения, оборудование, систему, устройство для прогнозирования изображений и носитель для хранения информации. Этот способ содержит: получение индикации режима разбиения для текущего узла и определение, получается ли рассматриваемый блок изображения указанного заданного размера в результате разбиения текущего узла в рассматриваемом режиме разбиения для этого текущего узла, где этот блок изображения представляет собой яркостной блок или цветностной блок. Когда блок изображения указанного заданного размера получается в результате разбиения текущего узла в рассматриваемом режиме разбиения для этого текущего узла, внутрикадровое прогнозирование или межкадровое прогнозирование осуществляют на всех блоках кодирования, покрываемых эти текущим узлом. В соответствии с приведенным выше способом, внутрикадровое прогнозирование или межкадровое прогнозирование осуществляют на всех блоках кодирования, расположенных в текущем узле, так что может быть реализована параллельная обработка для всех блоков кодирования, расположенных в этом текущем узле. Это повышает производительность процедуры прогнозирования изображения и увеличивает скорость процедуры кодирования.
Краткое описание чертежей
Фиг. 1A представляет блок-схему примера системы 10 кодирования видео для реализации одного из вариантов настоящей заявки;
Фиг. 1B представляет блок-схему примера системы 40 кодирования видео для реализации одного из вариантов настоящей заявки;
Фиг. 2 представляет блок-схему примера структуры кодирующего устройства 20 для реализации одного из вариантов настоящей заявки;
Фиг. 3 представляет блок-схему примера структуры декодирующего устройства 30 для реализации одного из вариантов настоящей заявки;
Фиг. 4 представляет блок-схему примера устройства 400 для кодирования видео для реализации одного из вариантов настоящей заявки;
Фиг. 5 представляет блок-схему другого примера оборудования кодирования или оборудования декодирования для реализации одного из вариантов настоящей заявки;
Фиг. 6(a) - Фиг. 6(g) представляют упрощенные блок-схемы режимов разбиения блоков для реализации одного из вариантов настоящей заявки;
Фиг. 7 представляет упрощенную блок-схему способа внутрикадрового прогнозирования для реализации одного из вариантов настоящей заявки;
Фиг. 8 представляет упрощенную блок-схему системы видеосвязи для реализации одного из вариантов настоящей заявки;
Фиг. 9 представляет логическую схему первого способа прогнозирования изображения согласно одному из вариантов настоящей заявки;
Фиг. 10 представляет упрощенную логическую схему второго способа прогнозирования изображения согласно одному из вариантов настоящей заявки;
Фиг. 11 представляет упрощенную логическую схему третьего способа прогнозирования изображения согласно одному из вариантов настоящей заявки;
Фиг. 12 представляет упрощенную логическую схему четвертого способа прогнозирования изображения согласно одному из вариантов настоящей заявки;
Фиг. 13 представляет упрощенную логическую схему пятого способа прогнозирования изображения согласно одному из вариантов настоящей заявки;
Фиг. 14 представляет упрощенную логическую схему шестого способа прогнозирования изображения согласно одному из вариантов настоящей заявки;
Фиг. 15 представляет упрощенную структурную схему функций оборудования прогнозирования изображения согласно одному из вариантов настоящей заявки;
Фиг. 16 представляет упрощенную структурную схему оборудования устройства для кодирования видео согласно одному из вариантов настоящей заявки;
Фиг. 17 представляет упрощенную структурную схему оборудования устройства для декодирования видео согласно одному из вариантов настоящей заявки; и
Фиг. 18 представляет упрощенную структурную схему системы прогнозирования изображения согласно одному из вариантов настоящей заявки.
Осуществление изобретения
Последующее описывает варианты настоящей заявки со ссылками на прилагаемые чертежи этих вариантов заявки. В последующем описании ссылки сделаны на прилагаемые чертежи, составляющие часть настоящего описания и показывающие, посредством иллюстраций, конкретные варианты настоящей заявки или конкретные аспекты, в которых могут быть использованы варианты этой заявки. Следует понимать, что варианты настоящей заявки могут быть использованы в других аспектах и могут содержать структурные или логические изменения, не показанные на прилагаемых чертежах. Поэтому последующее подробное описание не следует толковать в качестве ограничений, а объем настоящей заявки определяется прилагаемой Формулой изобретения. Например, должно быть понятно, что описываемый контент со ссылками на рассматриваемый способ может также оставаться справедливым для соответствующего устройства или системы, конфигурированной для осуществления этого способа и наоборот. Например, если описаны один или более этапов конкретного способа, соответствующее устройство может содержать один или более модулей, таких как функциональные модули для осуществления описываемых одного или нескольких этапов способа (например, один модуль осуществляет один или более этапов; или каждый из нескольких модулей осуществляет один или более этапов), даже если такие один или более модулей не описаны в явном виде или не показаны в явном виде на прилагаемых чертежах. В дополнение к этому, например, если какое-то конкретное оборудование описана на основе одного или нескольких модулей, таких как функциональный модуль, соответствующий способ может содержать один этап, используемый для осуществления функций одного или нескольких модулей (например, один этап используется для осуществления функций одного или нескольких модулей; или каждый из нескольких этапов используется для осуществления функций одного или нескольких модулей из совокупности модулей), даже если такие один или более этапов не описаны или не изображены в явном виде на прилагаемых чертежах. Далее, должно быть понятно, что признаки различных примеров вариантов и/или аспектов, рассматриваемых в настоящем описании, могут быть объединены одни с другими, если не специфицировано другое.
Кодированием видео обычно называется процедура обработки последовательности изображений, где эта последовательность изображений образует видеоролик или последовательность видео. В области кодирования видео термины «картинка (picture)», «кадр (frame)», и «изображение (image)» могут быть использованы в качестве синонимов. Термин «кодирование видео» (video coding), используемый в настоящем описании, относится к кодированию или декодированию видео. Кодирование видео осуществляется на стороне источника и обычно содержит обработку (например, посредством сжатия) изображения исходного видео для уменьшения объема данных для представления этого изображения видео, с целью более эффективного хранения и/или передачи. Декодирование видео осуществляется на стороне адресата-получателя и обычно содержит обработку, обратную по сравнению с обработкой в кодирующем устройстве, для реконструкции изображения видео. «Кодирование» ("Coding") изображения видео в рассматриваемых здесь вариантах следует понимать как «кодирование» ("encoding") или «декодирование» ("decoding") последовательности видео. Комбинация кодирующей части и декодирующей части также называется кодеком (CODEC) (кодирование и декодирование).
Последовательность видео содержит ряд изображений (картинок), изображение далее разбивают на срезы (slice), и срезы далее разбивают на блоки (block). Процедура кодирования видео осуществляется по блокам. В некоторых новых стандартах кодирования видео концепция «блока» дополнительно расширена. Например, макроблок может быть дополнительно разбит на несколько блоков прогнозирования (сегментирование) для прогнозирующего кодирования. В качестве альтернативы, используются базовые концепции, такие как единица кодирования (coding unit, CU), единица прогнозирования (prediction unit, PU) и единица преобразования (transform unit, TU), несколько блочных единиц получают посредством функционального деления, и для описания применяется совершенно новая структура на основе дерева. Например, единица CU может быть разбита на единицы CU меньшего размера посредством разбиения по схеме дерева квадратов, и такая единица CU может быть дополнительно разбита для образования структуры дерева квадратов. Единица CU представляет собой базовую единицу для разбиения и кодирования кодируемого изображения. Для единиц PU и единиц TU, также могут быть аналогичные структуры деревьев. Единица PU может соответствовать блоку прогнозирования, и представлять собой базовую единицу для прогнозирующего кодирования. Единицу CU далее разбивают на несколько единиц PU в режиме разбиения. Единица TU может соответствовать блоку преобразования и представлять собой базовую единицу для преобразования остатка прогнозирования. Однако все единицы CU, единицы PU и единицы TU являются по существу концепциями блоков (или блоков изображения).
Единицу CTU разбивают на несколько единиц CU с использованием структуры дерева квадратов, представленной в качестве дерева кодирования. Решение о кодировании области изображения посредством межкадрового (временного) или внутрикадрового (пространственного) прогнозирования принимают по глубине единицы CU. Каждая единица CU может быть далее разбита на одну, две или четыре единицы PU по структуре разбиения на единицы PU. В пределах одной единицы PU, применяется та же самая процедура прогнозирования и относящуюся к этому информацию передают декодирующему устройству на базе единиц PU. После получения блока остатка путем применения процедуры прогнозирования на основе схемы разбиения единиц PU, единица CU может быть разбита на единицы преобразования (transform unit, TU) на основе другой структуры дерева квадратов аналогично дереву кодирования, используемому для единицы CU. В последних разработках технологии сжатия видео для разбиения блока кодирования используют кадр разбиения со структурой дерева квадратов плюс двоичное дерево (Quad-tree and binary tree, QTBT). В структуре блоков согласно дереву QTBT единица CU может быть квадратной или прямоугольной.
В настоящем описании, для облегчения пояснения и понимания, подлежащий кодированию блок изображения в текущем кодируемом изображении может называться текущим блоком. Например, при кодировании, текущий блок представляет собой блок, кодируемый в текущий момент, а при декодировании, текущий блок является блоком, декодируемым в текущий момент. Декодированный блок изображения, в опорном изображении, используемый для прогнозирования текущего блока, называется опорным блоком. Другими словами, опорный блок является блоком, создающим опорный сигнал для текущего блока, и этот опорный сигнал представляет величину пикселя в блоке изображения. Блок, создающий прогнозирующий сигнал для текущего блока в опорном изображении, может называться блоком прогнозирования, и этот прогнозирующий сигнал представляет величину пикселя, величину отсчета или сигнал отсчета в блоке прогнозирования. Например, оптимальный опорный блок находят после просмотра нескольких опорных блоков, сигнал оптимального опорного блока создает прогнозирование для текущего блока, так что этот блок называется блоком прогнозирования.
В случае кодирования видео без потерь может быть реконструировано исходное изображение видео. Другими словами, реконструированное изображение видео имеет такое же качество, как исходное изображение видео (в предположении, что в процессе хранения или передачи данных не происходит никаких потерь передачи или других потерь данных). В случае кодирования видео с потерями, выполняют дальнейшее сжатие посредством, например, квантования, для уменьшения объема данных, необходимого для представления изображения видео, так что изображение видео не может быть полностью реконструировано на стороне декодирующего устройства. Другими словами, качество реконструированного изображения видео ниже или хуже качества исходного изображения видео.
Несколько стандартов кодирования группы H.261 используют «гибридное кодирование видео с потерями» ("lossy hybrid video coding") (иными словами, пространственное и временное прогнозирование в области отсчетов комбинируют с двумерным (2D) кодированием с преобразованием для применения квантования в преобразованной области). Каждое изображение в последовательности видео обычно разбивают на группу не накладывающихся один на другой блоков, и осуществляют кодирование на уровне блоков. Другими словами, на стороне кодирующего устройства, видео обычно обрабатывают, т.е. кодируют, на уровне блоков (video block), например, с использованием пространственного (внутрикадрового) прогнозирования и/или временного (межкадрового) прогнозирования для генерации блока прогнозирования, вычитают блок прогнозирования из текущего блока (т.е. блока, который обрабатывают в текущий момент или который подлежит обработке) для получения блока остатка, преобразуют этот блок остатка и квантуют блок остатка в преобразованной области для уменьшения объема (сжатия) данных, которые нужно передать, тогда как на стороне декодирующего устройства применяют обработку, обратную обработке, осуществляемой в кодирующем устройстве, к кодированному или сжатому блоку с целью реконструкции текущего блока для представления. Кроме того, кодирующее устройство дублирует контур обработки данных декодирующего устройства, так что кодирующее устройство и декодирующее устройство генерируют идентичные результаты прогнозирования (например, внутрикадрового прогнозирования и межкадрового прогнозирования) и/или реконструируют для обработки, т.е. кодирования, последующих блоков.
Последующее описывает архитектуру системы, к которой применим вариант настоящей заявки. На Фиг. 1A представлена упрощенная блок-схема примера системы 10 кодирования видео, к которой применяется один из вариантов настоящего изобретения. Как показано на Фиг. 1A, система 10 кодирования видео может содержать устройство-источник 12 и устройство-адресат 14. Устройство-источник 12 генерирует кодированные данные видео, вследствие чего это устройство-источник 12 может называться оборудованием кодирования видео. Устройство-адресат 14 может декодировать кодированные данные видео, генерируемые устройством-источником 12, вследствие чего это устройство-адресат 14 может называться оборудованием декодирования видео. Устройство-источник 12, устройство-адресат 14 или разнообразные технические решения для реализации таких устройства-источника 12 или устройства-адресата 14 могут содержать один или более процессоров и запоминающее устройство, соединенное с этими одним или несколькими процессорами. Запоминающее устройство может содержать, не ограничиваясь этим запоминающее устройство с произвольной выборкой (ЗУПВ (RAM)), постоянное запоминающее устройство (ПЗУ (ROM)), электрически стираемое программируемое постоянное запоминающее устройство (ЭСППЗУ (EEPROM)), устройство флэш-памяти или какой-либо другой носитель, который может быть использован для сохранения нужного программного кода в форме команд или структуры данных, доступных для компьютера, как это раскрыто в настоящем описании. Такие устройство-источник 12 и устройство-адресат 14 могут содержать разнообразную оборудование, включая настольный компьютер, мобильную компьютерную оборудование, компьютер-ноутбук (например, портативный компьютер), планшетный компьютер, приставку, ручной телефон, такой как «смартфон», телевизор, видеокамеру, дисплейную оборудование, цифровой медиа плеер, видео игровую консоль, встроенный в автомобиль компьютер, устройство радиосвязи или другую аналогичную оборудование.
Хотя на Фиг. 1A устройство-источник 12 и устройство-адресат 14 показаны как раздельные устройства, различные варианты могут содержать оба устройства или функциональные возможности обоих устройств, а именно: устройство-источник 12 или соответствующие функциональные возможности и устройство-адресат 14 или соответствующие функциональные возможности. В таких вариантах устройство-источник 12 или соответствующие функциональные возможности и устройство-адресат 14 или соответствующие функциональные возможности могут быть реализованы с использованием одного и того же оборудования и/или программного обеспечения, либо с использованием раздельного оборудования и/или программного обеспечения, либо какой-либо комбинации такого оборудования и/или программного обеспечения.
Соединение связи между устройством-источником 12 и устройством-адресатом 14 может быть реализовано по линии 13 связи, так что устройство-адресат 14 может принимать кодированные данные видео от устройства-источника 12 по этой линии 13. Линия 13 может содержать один или более носителей или устройств, способных перемещать кодированные данные видео от устройства-источника 12 к устройству-адресату 14. В одном из примеров, линия 13 может содержать один или более носителей связи, позволяющих устройству-источнику 12 напрямую передавать кодированные данные видео устройству-адресату 14 в реальном времени. В этом примере, устройство-источник 12 может модулировать кодированные данные видео в соответствии со стандартом связи (например, протоколом радиосвязи), и может передавать модулированные данные видео устройству-адресату 14. Совокупность носителей связи может содержать один или более беспроводных носителей связи и/или проводных носителей связи, например, высокочастотный (RF) спектр или одну или более физических линий передачи. Указанные один или более носителей связи могут составлять часть сети с передачей пакетов данных, где эта сеть с передачей пакетов данных представляет собой, например, локальную сеть связи, широкомасштабную сеть связи или глобальную сеть связи (например, Интернет). Совокупность одного или нескольких носителей связи может содержать маршрутизатор, коммутатор, базовую станцию или другое устройство, способствующее связи от устройства-источника 12 к устройству-адресату 14.
Устройство-источник 12 содержит кодирующее устройство 20, и в качестве опции, это устройство-источник 12 может далее содержать источник 16 изображения, предпроцессор 18 изображения и интерфейс 22 связи. В одной из конкретных форм реализации кодирующее устройство 20, источник 16 изображения, предпроцессор 18 изображения и интерфейс 22 связи могут быть аппаратными компонентами в устройстве-источнике 12, либо могут представлять собой программы, составляющие программное обеспечение устройства-источника 12. Раздельные описания приведены далее.
Источник 16 изображения может содержать или представлять собой устройство какого-либо типа для захвата изображений, конфигурированное, например, для захвата изображений реального мира; и/или устройство какого-либо типа для генерации изображений или комментариев (при кодировании контента экрана некоторый текст, присутствующий на этом экране, также считается частью картинки или изображения, подлежащего кодированию), например, процессор компьютерной графики, конфигурированный для генерации изображения компьютерной анимации; или устройство какого-либо типа, конфигурированное для получения и/или предоставления изображения реального мира или изображения компьютерной анимации (например, контента экрана или изображения виртуальной реальности (virtual reality, VR)); и/или какую-либо комбинацию перечисленного (например, изображение дополненной реальности (augmented reality, AR)). Источник 16 изображения может представлять собой видеокамеру, конфигурированную для захвата (съемки) изображений, или запоминающее устройство, конфигурированное для хранения изображений. Источник 16 изображения может далее содержать интерфейс какого-либо типа (внутренний или внешний) для хранения ранее захваченного или сформированного изображения и/или для получения или приема изображения. Когда источник 16 изображения является видеокамерой, этот источник 16 изображения может представлять собой, например, локальную видеокамеру или интегральную видеокамеру, встроенную в устройство-источник. Когда источник 16 изображения является запоминающим устройством, этот источник 16 изображения может представлять собой, например, локальное запоминающее устройство или интегральное запоминающее устройство, встроенное в устройство-источник. Когда источник 16 изображения содержит интерфейс, этот интерфейс может представлять собой, например, внешний интерфейс для приема изображения от внешнего источника видео. Такой внешний источник видео представляет собой, например, внешнее устройство для захвата изображения, такое как видеокамера, внешнее запоминающее устройство или внешнее устройство для генерации изображений. Такое внешнее устройство для генерации изображений представляет собой, например, внешний процессор компьютерной графики, компьютер или сервер. Интерфейс может быть интерфейсом любого типа, например, проводным или беспроводным (радио) интерфейсом или оптическим интерфейсом, в соответствии с каким-либо собственным (специализированным) или стандартизованным протоколом интерфейса.
Изображение можно рассматривать как двумерный массив или матрицу элементов изображения (picture element). Элемент изображения в таком массиве может также называться отсчетом. Количество отсчетов в горизонтальном и вертикальном направлениях (или по осям) массива или изображения определяет размер и/или разрешение этого изображения. Для представления цвета обычно используются три цветовых составляющих. Например, изображение может быть представлено в виде или может содержать три массива отсчетов. Например, в формате или в цветовом пространстве RGB изображение содержит соответствующие массивы красных (red), зеленых (green) и синих (blue) отсчетов. Однако при кодировании видео каждый пиксель обычно представляют в формате или в цветовом пространстве яркость/цветность. Например, изображение в формате YUV содержит яркостную составляющую, обозначенную Y (иногда вместо этого используется буква L) и две цветностные составляющие, обозначенные U и V. Яркостная (luma) составляющая Y представляет яркость или уровень интенсивности серого (например, эти две характеристики идентичны в полутоновом изображении), тогда как две цветностные (chroma) составляющие U и V представляют составляющие хроматичности (цветности) или цветовой информации. Соответственно, изображение в формате YUV содержит массив отсчетов яркостной составляющей, содержащий величины отсчетов яркостной составляющей (Y), и два массива отсчетов цветностной составляющей, содержащих величины отсчетов цветностных составляющих (U и V). Изображение в формате RGB может быть преобразовано или трансформировано в изображение в формате YUV и наоборот, и эта процедура также известна под названием преобразование цветов или цветовых координат. Если изображение является монохромным (черно-белым), такое изображение может содержать только массив отсчетов яркостной составляющей. В этом варианте настоящей заявки изображение, передаваемое источником 16 изображения процессору изображений, может также называться необработанными данными 17 изображения.
Предпроцессор 18 изображения конфигурирован для приема необработанных данных 17 изображения и предварительной обработки этих необработанных данных 17 изображения для получения предварительно обработанного изображения 19 или данных предварительно обработанного изображения 19. Например, предварительная обработка осуществляемая предпроцессором 18 изображения, может содержать подгонку изображения, преобразование цветового формата (например, из формата RGB в формат YUV), цветовую коррекцию или подавление шумов.
Кодирующее устройство 20 (также называемое кодирующим устройством 20 видео) конфигурировано для приема данных предварительно обработанного изображения 19 и обработки данных предварительно обработанного изображения 19 с использованием соответствующего режима прогнозирования (такого как режим прогнозирования в каждом из вариантов настоящего описания), с целью генерации кодированных данных 21 изображения (подробности структуры кодирующего устройства 20 дополнительно описаны ниже на основе Фиг. 2, Фиг. 4 или Фиг. 5). В некоторых вариантах, кодирующее устройство 20 может быть конфигурировано для осуществления описываемых ниже вариантов с целью реализации применения способа на стороне кодирующего устройства, описываемого в настоящей заявке.
Интерфейс 22 связи может быть конфигурирован для приема кодированных данных 21 изображения и передачи таких кодированных данных 21 изображения устройству-адресату 14 или какому-либо другому устройству (например, запоминающему устройству) по линии 13 связи для сохранения или прямой реконструкции. Такое какое-либо другое устройство может представлять собой любое устройство, используемое для декодирования или хранения информации. Интерфейс 22 связи может быть, например, конфигурирован для упаковки кодированных данных 21 изображения в подходящем формате, например, в пакеты данных, для передачи по линии 13.
Устройство-адресат 14 содержит декодирующее устройства 30, и в качестве опции, это устройство-адресат 14 может далее содержать интерфейс 28 связи, постпроцессор 32 изображений и дисплейное устройство 34. Раздельные описания имеют следующий вид.
Интерфейс 28 связи может быть конфигурирован для приема кодированных данных 21 изображения от устройства-источника 12 или от какого-либо другого источника. Таким каким-либо другим устройством может быть, например, устройство для хранения информации, где это устройство для хранения информации представляет собой, например, устройство для хранения кодированных данных изображения. Интерфейс 28 связи может быть конфигурирован для передачи или приема кодированных данных 21 изображения по линии 13 связи между устройством-источником 12 и устройством-адресатом 14 или через сеть связи какого-либо типа. Линия 13 представляет собой, например, прямое проводное или беспроводное соединение, а сеть связи какого-либо типа представляет собой, например, проводную или беспроводную сеть связи, или какую-либо комбинацию таких сетей, либо частную или общественную сеть связи какого-либо типа или какую-либо комбинацию таких сетей. Интерфейс 28 связи может быть, например, конфигурирован для распаковки пакета данных, переданного через интерфейс 22 связи, с целью получения кодированных данных 21 изображения.
Оба интерфейса - интерфейс 28 связи и интерфейс 22 связи, могут быть конфигурированы в виде однонаправленных интерфейсов связи или двунаправленных интерфейсов связи, и могут быть конфигурированы, например, для передачи и приема сообщений с целью установления соединений, а также квитирования и обмена какой-либо другой информацией, относящейся к линии связи и/или передачи данных, такой как передача кодированных данных изображения.
Декодирующее устройство 30 (также называемое декодирующим устройством 30 видео) конфигурировано для приема кодированных данных 21 изображения и генерации декодированных данных изображения 31 или декодированного изображения 31 (подробности структуры декодирующего устройства 30 далее описаны ниже на основе Фиг. 3, Фиг. 4 или Фиг. 5). В некоторых вариантах, декодирующее устройство 30 может быть конфигурировано для осуществления вариантов, описываемых ниже, с целью применения способа на стороне декодирующего устройства, рассматриваемого в настоящей заявке.
Постпроцессор 32 изображений конфигурирован для пост-обработки декодированных данных изображения 31 (также называемых реконструированными данными изображения), с целью получения пост-обработанных данных 33 изображения. Процедура пост-обработки, осуществляемая постпроцессором 32 изображений, может содержать преобразование цветового формата (например, из формата YUV в формат RGB), цветовую коррекцию, подгонку, редискретизацию или какую-либо другую обработку. Постпроцессор 32 изображений может быть далее конфигурирован для передачи пост-обработанных данных 33 изображения дисплейному устройству 34.
Дисплейное устройство 34 конфигурировано для приема пост-обработанных данных 33 изображения с целью представления этого изображения на дисплее, например, пользователю или зрителю. Это дисплейное устройство 34 может представлять собой или содержать дисплей какого-либо типа, конфигурированный для представления реконструированного изображения, например, это может быть встроенный или внешний дисплей или монитор. Например, дисплей может представлять собой жидкокристаллический дисплей (liquid crystal display, LCD), дисплей на органических светодиодах (organic light emitting diode, OLED), плазменный дисплей, проектор, микро дисплей на светодиодах (LED), жидкокристаллический дисплей на кремнии (liquid crystal on silicon, LCoS), цифровой процессор света (digital light processor, DLP) или дисплей какого-либо другого типа.
Хотя на Фиг. 1A устройство-источник 12 и устройство-адресат 14 показаны в виде раздельных устройств, варианты этих устройств могут содержать: устройство-источник 12 или соответствующие функциональные возможности и устройство-адресат 14 или соответствующие функциональные возможности. В таких вариантах, устройство-источник 12 или соответствующие функциональные возможности и устройство-адресат 14 или соответствующие функциональные возможности могут быть реализованы с использованием одного и того же оборудования и/или программного обеспечения или с использованием раздельного оборудования и/или программного обеспечения или какой-либо комбинации этого.
Специалист в рассматриваемой области может понять, на основе приведенного описания, что существование и (точное) разбиение на функциональные возможности различных модулей или функциональных узлов устройства-источника 12 и/или устройства-адресата 14, показанных на Фиг. 1A, может варьироваться в зависимости от фактического устройства и приложения. Каждое из устройств - устройство-источник 12 и устройство-адресат 14, может представлять собой какое-либо одно из широкого спектра устройств, включая ручное или стационарное устройство, например, компьютер ноутбук или портативный компьютер, мобильный телефон, смартфон, планшетный компьютер, видеокамеру, настольный компьютер, приставку, телевизор, камеру, устройство, устанавливаемое на автомобиле, дисплейное устройство, цифровой медиа плеер, видео игровая консоль, видео потоковое устройство (такое как сервер контента или сервер распределения контента), приемник программ вещания или передатчик программ вещания и может не использовать или использовать операционную систему какого-либо типа.
Каждое из устройств - кодирующее устройство 20 и декодирующее устройство 30, может быть реализовано в виде какой-либо из различных подходящих схем, например, одного или нескольких микропроцессоров, цифровых процессоров сигнала (digital signal processor, DSP), специализированных интегральных схем (application-specific integrated circuit, ASIC), программируемых пользователем вентильных матриц (field-programmable gate array, FPGA), дискретных логических устройств, оборудования или каких-либо сочетаний перечисленных устройств. Если такие технологии реализуются частично с использованием программного обеспечения, устройство может сохранять команды программного обеспечения на подходящем и энергонезависимом читаемом компьютером носителе для хранения информации и может выполнять команды с использованием оборудования, такого как один или более процессоров, для реализации технологий согласно настоящему изобретению. Любой из приведенных выше вариантов (включая, оборудование, программное обеспечение, комбинация оборудования и программного обеспечения и т.п.) может считаться одним или несколькими процессорами.
В некоторых случаях, система 10 кодирования видео, показанная на Фиг. 1A, является просто примером, а технологии, рассматриваемые в настоящей заявке, применимы в оборудовании и системах кодирования видео (например, собственно кодирование видео или декодирование видео), которые не обязательно содержат какую-либо передачу данных между устройством для кодирования и устройством для декодирования. В других примерах, данные могут быть вызваны из локального запоминающего устройства, приняты в виде потоков по сети связи и т.п. Устройство для кодирования видео может кодировать данные и сохранять кодированные данные в локальном запоминающем устройстве, и/или устройство для декодирования видео может вызывать данные из запоминающего устройства и декодировать эти данные. В некоторых примерах, кодирование и декодирование осуществляется устройствами, не имеющими связи одно с другим, а просто кодирующими данные и записывающими их в запоминающем устройстве и/или вызывающими данные из запоминающего устройства и декодирующими данные.
Фиг. 1B представляет иллюстративную схему примера системы 40 кодирования видео, включая кодирующее устройство 20, показанное на Фиг. 2, и/или декодирующее устройство 30, показанное на Фиг. 3, согласно одному из примеров вариантов. Система 40 кодирования видео может реализовывать комбинацию разнообразных технологий в вариантах настоящей заявки. В иллюстрируемом варианте реализации система 40 кодирования видео может содержать формирователь 41 сигналов изображения, кодирующее устройство 20, декодирующее устройство 30 (и/или кодирующее устройство/декодирующее устройство для видео, реализованное логической схемой 47 процессорного модуля 46), антенну 42, один или более процессоров 43, одно или более запоминающих устройств 44 и/или дисплейное устройство 45.
Как показано на Фиг. 1B, формирователь 41 сигналов изображения, антенна 42, процессорный модуль 46, логическая схема 47, кодирующее устройство 20, декодирующее устройство 30, процессор 43, запоминающее устройство 44 и/или дисплейное устройство 45 могут осуществлять связь одни с другими. Как описано здесь, хотя система 40 кодирования видео иллюстрирована с использованием кодирующего устройства 20 и декодирующего устройства 30, такая система 40 кодирования видео в других примерах может содержать только кодирующее устройство 20 или только декодирующее устройство 30.
В некоторых примерах, антенна 42 может быть конфигурирована для передачи или приема кодированного потока битов данных видео. В дополнение к этому, в некоторых примерах, дисплейное устройство 45 может быть конфигурировано для представления данных видео. В некоторых примерах, логическая схема 47 может быть реализована процессорным модулем 46. Этот процессорный модуль 46 может содержать логическое устройство на основе специализированных интегральных схем (application-specific integrated circuit, ASIC), графический процессор, процессор общего назначения или другое подобное устройство. Система 40 кодирования видео может в качестве альтернативы содержать процессор 43, являющийся опцией. Этот процессор 43, являющийся опцией, может аналогичным образом содержать логическое устройство на основе специализированных интегральных схем (application-specific integrated circuit, ASIC), графический процессор, процессор общего назначения или другое подобное устройство. В некоторых примерах, логическая схема 47 может быть реализована посредством оборудования, например, специализированное оборудование для кодирования видео, и процессор 43 может быть реализован посредством программного обеспечения общего назначения, операционной системы или других подобных программ. В дополнение к этому, запоминающее устройство 44 может представлять собой запоминающее устройство какого-либо типа, например, энергозависимое запоминающее устройство (например, статическое запоминающее устройство с произвольной выборкой (Static Random Access Memory, SRAM), динамическое запоминающее устройство с произвольной выборкой (Dynamic Random Access Memory, DRAM)), или энергонезависимое запоминающее устройство (например, устройство флэш-памяти). В одном из неисчерпывающих примеров, запоминающее устройство 44 может быть реализовано посредством кэш-памяти. В некоторых примерах, логическая схема 47 может обращаться и получать доступ к запоминающему устройству 44 (например, для реализации буфера изображения). В других примерах, логическая схема 47 и/или процессорный модуль 46 может содержать запоминающее устройство (например, кэш-память) для реализации буфера изображения или другого подобного объекта.
В некоторых примерах, кодирующее устройство 20, реализованное посредством логической схемы, может содержать буфер изображения (например, реализованный посредством процессорного модуля 46 или запоминающего устройства 44) и графический процессорный модуль (например, реализованный процессорным модулем 46). Графический процессорный модуль может быть соединен для осуществления связи с буфером изображения. Этот графический процессорный модуль может содержать кодирующее устройство 20, реализованное посредством логической схемы 47, для образования разнообразных модулей, описываемых со ссылками на Фиг. 2, и/или какая-либо другая система или подсистема кодирующего устройства, рассматриваемая в настоящем описании. Логическая схема может быть конфигурирована для осуществления разнообразных операций, рассматриваемых в настоящем описании.
В некоторых примерах, декодирующее устройство 30 может быть реализовано посредством логической схемы 47 аналогичным образом для создания разнообразных модулей, описываемых со ссылками на декодирующее устройство 30, показанное на Фиг. 3, и/или какую-либо другую систему или подсистему декодирующего устройства, рассматриваемую в настоящем описании. В некоторых примерах, декодирующее устройство 30, реализованное посредством логической схемы, может содержать буфер изображения (например, реализованный процессорным модулем 2820 или запоминающим устройством 44) и графический процессорный модуль (например, реализованный процессорным модулем 46). Этот графический процессорный модуль может быть соединен для осуществления связи с буфером изображения. Графический процессорный модуль может содержать декодирующее устройство 30, реализованное логической схемой 47, для создания разнообразных модулей, описываемых со ссылками на Фиг. 3, и/или какой-либо другой системы или подсистемы кодирующего устройства, рассматриваемой в настоящем описании.
В некоторых примерах, антенна 42 может быть конфигурирована для приема кодированного потока битов данных видео. Как описано здесь, кодированный поток битов данных может содержать данные, индикатор, значение индекса, данные выбора режима или другие подобные данные, относительно кодирования кадра видео, рассматриваемого в настоящем описании, например, данные, относящиеся к разбиению для кодирования (например, коэффициент преобразования или квантованный коэффициент преобразования, являющийся опцией индикатор (как описано) и/или данные, определяющие разбиение для кодирования). Система 40 кодирования видео может далее содержать декодирующее устройство 30, которое соединено с антенной 42 и которое конфигурировано для декодирования кодированного потока битов данных. Дисплейное устройство 45 конфигурировано для представления кадра видео.
Следует понимать, что в этом варианте настоящей заявки, для примера, описываемого со ссылками на кодирующее устройство 20, декодирующее устройство 30 может быть конфигурировано для осуществления обратной процедуры. В отношении сигнализирующего синтаксического элемента, декодирующее устройство 30 может быть конфигурировано для приема и синтаксического анализа такого синтаксического элемента и соответственно декодирования относящихся к этому данных видео. В некоторых примерах, кодирующее устройство 20 может осуществлять энтропийное кодирование синтаксического элемента и преобразование его в часть кодированного потока битов данных видео. В таких примерах декодирующее устройство 30 может осуществлять синтаксический анализ такого синтаксического элемента и соответственно декодировать относящиеся к этому данные видео.
Следует отметить, что способ декодирования, описываемый в этом варианте настоящей заявки, используется главным образом в процедуре декодирования. Эта процедура осуществляется и в кодирующем устройстве 20, и в декодирующем устройстве 30.
На Фиг. 2 представлена упрощенная/концептуальная блок-схема примера кодирующего устройства 20, конфигурированного для осуществления одного из вариантов настоящей заявки. В примере, показанном на Фиг. 2, кодирующее устройство 20 содержит модуль 204 вычисления остатка, преобразовательный процессорный модуль 206, модуль 208 квантования, модуль 210 обратного квантования, процессорный модуль 212 для обратного преобразования, реконструирующий модуль 214, буфер 216, модуль 220 контурного фильтра, буфер 230 декодированного изображения (decoded picture buffer, DPB), прогнозирующий процессорный модуль 260 и модуль 270 энтропийного кодирования. Прогнозирующий процессорный модуль 260 может содержать модуль 244 межкадрового прогнозирования, модуль 254 внутрикадрового прогнозирования и модуль 262 выбора режима. Модуль 244 межкадрового прогнозирования может содержать модуль оценки движения и модуль компенсации движения (не показаны на чертеже). Кодирующее устройство 20, показанное на Фиг. 2 может также называться гибридным кодирующим устройством видео или кодирующим устройством видео на основе гибридного видео кодека.
Например, модуль 204 вычисления остатка, преобразовательный процессорный модуль 206, модуль 208 квантования, прогнозирующий процессорный модуль 260 и модуль 270 энтропийного кодирования образуют тракт прямой передачи сигнала в кодирующем устройстве 20, тогда как, например, модуль 210 обратного квантования, процессорный модуль 212 для обратного преобразования, реконструирующий модуль 214, буфер 216, контурный фильтр 220, буфер 230 декодированного изображения (decoded picture buffer, DPB) и прогнозирующий процессорный модуль 260 образуют тракт обратной передачи сигнала в этом кодирующем устройстве. Тракт обратной передачи сигнала в кодирующем устройстве соответствует тракту передачи сигнала в декодирующем устройстве (см. декодирующее устройство 30, показанное на Фиг. 3).
Кодирующее устройство 20 принимает, например, через вход 202, изображение 201 или блок 203 изображения 201, например, изображение из последовательности изображений, образующих видео или последовательность видео. Блок 203 изображения может также называться текущим блоком изображения или подлежащим кодированию блоком изображения. Изображение 201 может называться текущим изображением или подлежащим кодированию изображением (в частности, при кодировании видео, чтобы отличать текущее изображение от других изображений, этими другими изображениями являются, например, ранее кодированные и/или декодированные изображения из той же самой последовательности видео, т.е. последовательности видео, которая содержит также текущее изображение).
Один из вариантов кодирующего устройства 20 может содержать секционирующий модуль (не показан на Фиг. 2), конфигурированный для разбиения изображения 201 на несколько блоков, таких как блок 203 изображения. Изображение 201 обычно разбивают на несколько не накладывающихся один на другой блоков. Секционирующий модуль может быть конфигурирован для применения одинакового размера блоков для изображений в одной последовательности видео и соответствующей сетки, определяющей размер блоков, или для изменения размера блоков между изображениями, либо подмножествами или группами изображений и разбиения каждого изображения на соответствующие блоки.
В одном из примеров, прогнозирующий процессорный модуль 260 кодирующего устройства 20 может быть конфигурирован для осуществления какой-либо комбинации технологий разбиения, описанных выше.
Подобно изображению 201, блок 203 изображения также является или может рассматриваться в качестве двумерного массива или матрицы отсчетов, хотя размер такого блока 203 изображения меньше размера изображения 201. Другими словами, блок 203 изображения может содержать, например, один массив отсчетов (например, массив отсчетов яркостной составляющей в случае черно-белого изображения 201), три массива отсчетов (например, один массив отсчетов яркостной составляющей и два массива отсчетов цветностных составляющих в случае цветного изображения) или какое-либо другое число или типы массивов в зависимости от применяемого цветового формата. Количество отсчетов в горизонтальном и вертикальном направлениях (или по осям) блока 203 изображения определяет размер этого блока 203 изображения.
Кодирующее устройство 20, показанное на Фиг. 2, конфигурировано для кодирования изображения 201 блок за блоком, например, кодирования и прогнозирования каждого блока 203 изображения.
Модуль 204 вычисления остатка конфигурирован для вычисления блока 205 остатка на основе блока 203 изображения и блока 265 прогнозирования (дополнительные подробности относительно блока 265 прогнозирования приведены ниже), например, для получения блока 205 остатка в области отсчетов путем вычитания величины отсчета в составе блока 265 прогнозирования из величины отсчета в составе блока 203 изображения по принципу отсчет за отсчетом (пиксель за пикселем).
Преобразовательный процессорный модуль 206 конфигурирован для применения преобразования, например, дискретного косинусного преобразования (discrete cosine transform, DCT) или дискретного синусного преобразования (discrete sine transform, DST), к величинам отсчетов из состава блока 205 остатка с целью получения коэффициентов 207 преобразования в преобразованной области. Эти коэффициенты 207 преобразования могут также называться коэффициентами преобразования остатка и представлять блок 205 остатка в преобразованной области.
Преобразовательный процессорный модуль 206 может быть конфигурирован для применения целочисленной аппроксимации преобразования DCT/DST, такого как преобразование, специфицированное в документе AVS, AVS2 или AVS3. По сравнению с ортогональным преобразованием DCT такая целочисленная аппроксимация обычно масштабирована с неким конкретным коэффициентом. Для сохранения нормы блока остатка, обрабатываемого посредством прямого и обратного преобразования, применение дополнительного масштабного коэффициента является частью процедуры преобразования. Этот масштабный коэффициент обычно выбирают на основе некоторых ограничений. Например, масштабный коэффициент равен степени двух для операции сдвига, он может зависеть от битовой глубины коэффициента преобразования, компромисса между точностью и стоимостью реализации и других подобных факторов. Конкретный масштабный коэффициент, например, специфицируют для обратного преобразования, например, посредством процессорного модуля 212 для обратного преобразования на стороне декодирующего устройства 30 (и соответствующего обратного преобразования, например, посредством процессорного модуля 212 для обратного преобразования на стороне кодирующего устройства 20), и соответствующий масштабный коэффициент для прямого преобразования, например, посредством преобразовательного процессорного модуля 206 на стороне кодирующего устройства 20 может быть специфицирован соответствующим образом.
Модуль 208 квантования конфигурирован для квантования коэффициентов 207 преобразования с целью получения квантованных коэффициентов 209 преобразования, например, путем применения скалярного квантования или векторного квантования. Квантованные коэффициенты 209 преобразования могут также называться квантованными коэффициентами 209 остатка. Процедура квантования может уменьшить битовую глубину, ассоциированную с некоторыми или со всеми коэффициентами 207 преобразования. Например, n-битовый коэффициент преобразования может быть округлен в меньшую сторону до m-битового коэффициента преобразования в процессе квантования, где n больше m. Степень квантования может быть модифицирована путем регулирования параметра квантования (quantization parameter, QP). Например, для скалярного квантования могут быть применены разные масштабы для достижения более тонкого или более грубого квантования. Меньший шаг квантования соответствует более тонкому квантованию, тогда как больший шаг квантования соответствует более грубому квантованию. Соответствующий размер шага квантования может быть обозначен параметром квантования (quantization parameter, QP). Этот параметр квантования может представлять собой, например, индекс к заданному набору подходящих размеров шага квантования. Например, меньший параметр квантования может соответствовать более тонкому квантованию (меньшему размеру шага квантования), и больший параметр квантования может соответствовать более грубому квантованию (большему размеру шага квантования) и наоборот. Процедура квантования может содержать деление на величину шага квантования и осуществление соответствующего квантования и/или обратного квантования, например, модулем 210 обратного квантования, или может содержать умножение на величину шага квантования. В вариантах согласно некоторым стандартам, таким как стандарты AVS, AVS2 и AVS3, параметр квантования может быть использован для определения размера шага квантования. В общем случае, размер шага квантования может быть вычислен на основе параметра квантования с использованием аппроксимации с фиксированной запятой для уравнения, содержащего деление. Дополнительный масштабный коэффициент может быть введен для квантования и деквантования с целью восстановления нормы блока остатка, где эта норма блока остатка может быть модифицирована, в соответствии с масштабом, используемым при аппроксимации с фиксированной запятой применительно к уравнению для размера шага квантования и параметра квантования. В одном из примеров реализации, можно комбинировать масштабные коэффициенты для обратного преобразования и деквантования. В качестве альтернативы, может быть использована специализированная таблица квантования, сообщаемая в виде сигнализации от кодирующего устройства к декодирующему устройству, например, в потоке битов данных. Квантование является операцией с потерями, где эти потери возрастают при увеличении размера шага квантования.
Модуль 210 обратного квантования конфигурирован для применения обратного квантования относительно модуля 208 квантования к квантованным коэффициентам для получения деквантованных коэффициентов 211, например, применения, на основе или с использованием такого же размера шага квантования, как в модуле 208 квантования, схемы обратного квантования, которая является обратной относительно схемы квантования, применяемой модулем 208 квантования. Деквантованные коэффициенты 211 могут также называться деквантованными коэффициентами 211 остатка и соответствовать коэффициентам 207 преобразования, хотя обычно они не являются идентичными коэффициентам преобразования из-за потерь при квантовании.
Процессорный модуль 212 обратного преобразования конфигурирован для применения преобразования, обратного преобразованию, применяемому преобразовательным процессорным модулем 206, например, обратного дискретного косинусного преобразования (discrete cosine transform, DCT) или обратного дискретного синусного преобразования (discrete sine transform, DST), с целью получения обратно преобразованного блока 213 в области отсчетов. Обратно преобразованный блок 213 может также называться обратно преобразованным деквантованным блоком 213 или обратно преобразованным блоком 213 остатка.
Реконструирующий модуль 214 (например, сумматор 214) конфигурирован для суммирования обратно преобразованного блока 213 (иными словами, реконструированного блока 213 остатка) с блоком 265 прогнозирования для получения реконструированного блока 215 в области отсчетов, например, путем суммирования величины отсчета из реконструированного блока 213 остатка с величиной отсчета из блока 265 прогнозирования.
В качестве опции, буферный модуль 216 («буфер» 216 для краткости) из, например, буфера 216 строки, конфигурирован для буферизации или сохранения реконструированного блока 215 и соответствующей величины отсчета, например, для внутрикадрового прогнозирования. В других вариантах, кодирующее устройство может быть конфигурировано для использования нефильтрованного реконструированного блока и/или соответствующей величины отсчета, которые сохранены в буферном модуле 216, для какого-либо типа оценки и/или прогнозирования, например, внутрикадрового прогнозирования.
Например, один из вариантов кодирующего устройства 20 может быть конфигурирован таким образом, чтобы буферный модуль 216 использовался не только для сохранения реконструированного блока 215 для модуля 254 внутрикадрового прогнозирования, но также использовался для модуля 220 контурного фильтра (не показан на Фиг. 2), и/или таким образом, что, например, буферный модуль 216 и модуль 230 буфера декодированного изображения образуют один буфер. В других вариантах, фильтрованный блок 221 и/или блок или отсчет из буфера 230 декодированного изображения (этот блок или отсчет не показан на Фиг. 2) используется в качестве входных данных или базиса для работы модуля 254 внутрикадрового прогнозирования.
Модуль 220 контурного фильтра (кратко называется «контурным фильтром» 220) конфигурирован для фильтрации реконструированного блока 215 с целью получения фильтрованного блока 221, для сглаживания переходов пикселей или улучшения качества изображения. Модуль 220 контурного фильтра предназначен для представления одного или нескольких контурных фильтров, включая, например, деблокирующий фильтр, нелинейный фильтр с адаптивным смещением (sample-adaptive offset, SAO) или фильтр другого типа, такой как двусторонний фильтр, адаптивный контурный фильтр (adaptive loop filter, ALF), обостряющий или сглаживающий фильтр, либо совместный фильтр. Хотя модуль 220 контурного фильтра показан на Фиг. 2 в качестве внутриконтурного фильтра, в другой конфигурации, модуль 220 контурного фильтра может быть реализован в качестве пост-контурного фильтра. Фильтрованный блок 221 может также называться фильтрованным реконструированным блоком 221. Буфер 230 декодированного изображения может сохранять реконструированный кодированный блок после того, как модуль 220 контурного фильтра осуществит операцию фильтрации применительно к реконструированному кодированному блоку.
В одном из вариантов, кодирующее устройство 20 (соответственно, модуль 220 контурного фильтра) может быть конфигурировано для передачи на выход параметра контурного фильтра (такого как информация об адаптивном смещении), например, напрямую или после энтропийного кодирования, осуществляемого модулем 270 энтропийного кодирования или каким-либо другим модулем энтропийного кодирования, так что, например, декодирующее устройство 30 может принять такой же параметр контурного фильтра и применить этот такой же параметр контурного фильтра при декодировании.
Буфер 230 декодированного изображения (буфер декодированного изображения, DPB) может представлять собой запоминающее устройство для опорного изображения, которое сохраняет данные опорного изображения с целью кодирования данных видео посредством кодирующего устройства 20. Буфер DPB 230 может быть образован каким-либо одним из разнообразия запоминающих устройств, таких как динамическое запоминающее устройство с произвольной выборкой (динамическое ЗУПВ (dynamic random access memory, DRAM)) (включая синхронное DRAM (synchronous DRAM, SDRAM), магниторезистивное ЗУПВ (RAM) (magnetoresistive RAM, MRAM) и резистивное ЗУПВ (RAM) (resistive RAM, RRAM)), либо запоминающее устройство другого типа. Буфер DPB 230 и буфер 216 могут быть созданы в одном и том же запоминающем устройстве или в раздельных запоминающих устройствах. В одном из примеров, буфер 230 декодированного изображения (decoded picture buffer, DPB) конфигурирован для сохранения фильтрованного блока 221. Буфер 230 декодированного изображения может быть дополнительно конфигурирован для сохранения другого ранее фильтрованного блока, например, ранее реконструированного фильтрованного блока 221, из того же самого текущего изображения или из другого изображения, например, ранее реконструированного изображения, и может генерировать полное ранее реконструированное, иными словами, декодированное изображение (и соответствующий опорный блок и отсчет) и/или частично реконструированное текущее изображение (и соответствующие опорный блок и отсчет), например, для межкадрового прогнозирования. В одном из примеров, если реконструированный блок 215 реконструирован без применения внутриконтурной фильтрации, буфер 230 декодированного изображения (decoded picture buffer, DPB) конфигурирован для сохранения реконструированного блока 215.
Прогнозирующий процессорный модуль 260, также называемый процессорным модулем 260 для прогнозирования блоков, конфигурирован для приема или получения блока 203 изображения (текущий блок 203 изображения из текущего изображения 201) и реконструированных данных изображения, например, опорных отсчетов из одного и того же (текущего) изображения из буфера 216 и/или данных 231 опорного изображения из одного или нескольких ранее декодированных изображений из буфера 230 декодированного изображения; и для обработки таких данных для прогнозирования, иными словами, создания блока 265 прогнозирования, который может представлять собой блок 245 межкадрового прогнозирования или блок 255 внутрикадрового прогнозирования.
Модуль 262 выбора режима может быть конфигурирован для выбора режима прогнозирования (например, режима внутрикадрового прогнозирования или режима межкадрового прогнозирования) и/или соответствующего блока 245 или 255 прогнозирования для использования в качестве блока 265 прогнозирования с целью вычисления блока 205 остатка и реконструкции указанного реконструированного блока 215.
В одном из вариантов, модуль 262 выбора режима может быть конфигурирован для выбора режима прогнозирования (например, из совокупности режимов прогнозирования, поддерживаемых прогнозирующим процессорным модулем 260), где выбранный режим прогнозирования создает оптимальное согласование или меньший остаток (меньший остаток означает лучшее сжатие для передачи или хранения), или создает меньшие сигнализационные издержки (меньшие сигнализационные издержки означают лучшее сжатие для передачи или хранения), либо учитывает или балансирует остаток и издержки. Модуль 262 выбора режима может быть конфигурирован для определения режима прогнозирования на основе оптимизации соотношения между скоростью передачи данных и искажениями (rate distortion optimization, RDO), иными словами, для выбора режима прогнозирования обеспечивающего минимальные искажения при увеличении скорости или выбора режима прогнозирования, для которого соответствующее соотношение между скоростью передачи данных и искажениями удовлетворяет критерию выбора режима прогнозирования.
В последующем, будут подробно описаны осуществляемая процедура прогнозирования (например, с использованием прогнозирующего процессорного модуля 260) и осуществляемый выбор режима (например, с использованием модуля 262 выбора режима) в соответствии с одним из примеров кодирующего устройства 20.
Как описано выше, кодирующее устройство 20 конфигурировано для определения или выбора оптимального режима прогнозирования из совокупности (предварительно заданных) режимов прогнозирования. Эта совокупность режимов прогнозирования может содержать, например, режим внутрикадрового прогнозирования и/или режим межкадрового прогнозирования.
Совокупность режимов внутрикадрового прогнозирования может содержать 35 различных режимов внутрикадрового прогнозирования, например, ненаправленные режимы, такие как DC-режим (или средний режим) и планарный режим, или направленные режимы, определяемые в стандарте H.265, или может содержать 67 различных режимов внутрикадрового прогнозирования, например, ненаправленные режимы, такие как DC-режим (или средний режим) и планарный режим, или направленные режимы, определяемые в разрабатываемом стандарте H.266.
В возможных вариантах реализации, совокупность режимов межкадрового прогнозирования зависит от доступных опорных изображений (т.е. по меньшей мере некоторых декодированных изображений, сохраняемых в буфере DBP 230, как описано выше) и других параметров межкадрового прогнозирования, например, в зависимости от того, используется ли все опорное изображение целиком, либо используется только часть опорного изображения, например, оптимально согласованный опорный блок, который найден в области окна поиска, окружающего область текущего блока, и/или, например, в зависимости от того, какая интерполяции пикселей применяется - полупиксельная или четвертьпиксельная. Совокупность режимов межкадрового прогнозирования может содержать, например, режим усовершенствованного прогнозирования вектора движения (Advanced Motion vector Prediction, AMVP) и режим объединения (merge). В конкретном варианте реализации, совокупность режимов межкадрового прогнозирования может содержать усовершенствованный режим прогнозирования AMVP на основе контрольных точек и усовершенствованный режим объединения на основе контрольных точек в этом варианте настоящей заявки. В одном из примеров, модуль 254 внутрикадрового прогнозирования может быть конфигурирован для осуществления какой-либо комбинации следующих описываемых технологий межкадрового прогнозирования.
В дополнение к описанным выше режимам прогнозирования в этом варианте настоящей заявки могут быть также использованы режим пропуска и/или прямой режим.
Прогнозирующий процессорный модуль 260 может быть дополнительно конфигурирован для разбиения блока 203 изображения на меньшие сегменты блоков или субблоки, например, путем итеративного использования разбиения по схеме дерева квадратов (quad-tree, QT), разбиения по схеме двоичного дерева (binary-tree, BT), разбиение по схеме троичного дерева (ternary tree, TT), разбиение по схеме расширенного дерева квадратов (EQT, Extended Quad-Tree) или какой-либо комбинации таких схем разбиения, и для осуществления, например, прогнозирования на каждом из сегментов блока или субблоков, где процедура выбора режима содержит выбор структуры дерева для секционируемого блока 203 изображения и выбор режима прогнозирования, применяемого к каждому из сегментов блока или субблоков.
Модуль 244 межкадрового прогнозирования содержать модуль оценки движения (motion estimation, ME) (не показан на Фиг. 2) и модуль компенсации движения (motion compensation, MC) (не показан на Фиг. 2). Модуль оценки движения конфигурирован для приема или получения блока 203 изображения (текущий блок 203 изображения из текущего изображения 201) и декодированного изображения 231, или по меньшей мере одного или нескольких ранее реконструированных блоков, например, реконструированный блок из одного или нескольких других/отличных ранее декодированных изображений 231, для оценки движения. Например, последовательность видео может содержать текущее изображение и ранее декодированное изображение 31. Другими словами, текущее изображение и ранее декодированное изображение 31 могут быть частью или формировать последовательность изображений, составляющую последовательность видео.
Например, кодирующее устройство 20 может быть конфигурировано для выбора опорного блока из совокупности нескольких опорных блоков того же самого изображения или других изображений из совокупности других изображений и передачи, в модуль оценки движения (не показан на Фиг. 2), опорного изображения и/или генерации сдвига (пространственного сдвига) между позицией (координаты X и Y) опорного блока и позицией текущего блока в качестве параметра межкадрового прогнозирования. Этот сдвиг также называется вектором движения (motion vector, MV).
Модуль компенсации движения конфигурирован для получения параметра межкадрового прогнозирования и осуществления межкадрового прогнозирования на основе или с использованием параметра межкадрового прогнозирования для получения блока 245 межкадрового прогнозирования. Процедура компенсации движения, осуществляемая модулем компенсации движения (не показан на Фиг. 2) может содержать выборку или генерацию блока прогнозирования на основе вектора движения/блочного вектора, определяемого посредством оценки движения (возможно осуществления интерполяции для достижения точности меньше одного пикселя). Процедура интерполяционной фильтрации может генерировать дополнительные отсчеты пикселей из известных отсчетов пикселей, тем самым потенциально увеличивая число блоков-кандидатов прогнозирования, которые могут быть использованы для кодирования блока изображения. После приема вектора движения для единицы PU текущего блока изображения модуль 246 компенсации движения может определить положение блока прогнозирования, на который указывает вектор движения, в одном списке опорных изображений. Модуль 246 компенсации движения может далее генерировать синтаксический элемент, ассоциированный с блоком и срезом видео, для декодирования блока изображения из среза видео посредством декодирующего устройства 30.
В частности, модуль 244 межкадрового прогнозирования может передать синтаксический элемент модулю 270 энтропийного кодирования, где этот синтаксический элемент содержит параметр межкадрового прогнозирования (например, информацию об индикации режима межкадрового прогнозирования, который выбран для прогнозирования текущего блока после просмотра нескольких режимов межкадрового прогнозирования). В возможном сценарии применения, если имеется только один режим межкадрового прогнозирования, параметр межкадрового прогнозирования может не быть передан в синтаксическом элементе. В этом случае, сторона декодирующего устройства 30 может прямо использовать режим прогнозирования по умолчанию для декодирования. Можно понимать, что модуль 244 межкадрового прогнозирования может быть конфигурирован для осуществления какой-либо комбинации технологий межкадрового прогнозирования.
Модуль 254 внутрикадрового прогнозирования конфигурирован для получения, например, приема, блока 203 изображения (текущего блока изображения) и одного или нескольких ранее реконструированных блоков, например, реконструированных соседних блоков из того же изображения для внутрикадровой оценки. Например, кодирующее устройство 20 может быть конфигурировано для выбора режима внутрикадрового прогнозирования из нескольких (заданных) режимов внутрикадрового прогнозирования.
В одном из вариантов, кодирующее устройство 20 может быть конфигурировано для выбора режима внутрикадрового прогнозирования в соответствии с критерием оптимизации, например, на основе меньшего остатка (например, режима внутрикадрового прогнозирования, который генерирует блок 255 прогнозирования, наиболее похожий на текущий блок 203 изображения), или который создает минимальные искажения в функции скорости передачи битов данных.
Модуль 254 внутрикадрового прогнозирования дополнительно конфигурирован для определения блока 255 с внутрикадровым прогнозированием на основе, например, параметра внутрикадрового прогнозирования для выбранного режима внутрикадрового прогнозирования. В любом случае, после выбора режима внутрикадрового прогнозирования для блока модуль 254 внутрикадрового прогнозирования далее конфигурирован для передачи параметра внутрикадрового прогнозирования, иными словами, информации, указывающей выбранный режим внутрикадрового прогнозирования для блока, в модуль 270 энтропийного кодирования. В одном из примеров, модуль 254 внутрикадрового прогнозирования может быть конфигурирован для осуществления какой-либо комбинации технологий внутрикадрового прогнозирования.
В частности, модуль 254 внутрикадрового прогнозирования может передать синтаксический элемент модулю 270 энтропийного кодирования, где этот синтаксический элемент содержит параметр внутрикадрового прогнозирования (например, информацию индикации режима внутрикадрового прогнозирования, выбранного для прогнозирования текущего блока после просмотра нескольких режимов внутрикадрового прогнозирования). В возможном сценарии применения, если имеется только один режим внутрикадрового прогнозирования, параметр внутрикадрового прогнозирования может не быть передан в синтаксическом элементе. В таком случае, сторона декодирующего устройства 30 может прямо использовать режим прогнозирования по умолчанию для декодирования.
Модуль 270 энтропийного кодирования конфигурирован для применения (или обхода) алгоритма или схемы энтропийного кодирования (например, кодирования по схеме кода переменной длины (variable length coding, VLC), по схеме контекстно-зависимого адаптивного кодирования в коде VLC (context adaptive VLC, CAVLC), по схеме арифметического кодирования, по схеме контекстно-зависимого адаптивного двоичного арифметического кодирования (context adaptive binary arithmetic coding, CABAC), по схеме контекстно-зависимого адаптивного двоичного арифметического кодирования на основе синтаксиса (syntax-based context-adaptive binary arithmetic coding, SBAC), энтропийного кодирования с разбиением на интервалы вероятности (probability interval partitioning entropy, PIPE) или другой технологии энтропийного кодирования) к одному или всем объектам из следующего: квантованным коэффициентам 209, параметру межкадрового прогнозирования, параметру внутрикадрового прогнозирования и/или параметру контурной фильтрации для получения кодированных данных 21 изображения, которые могут быть переданы через выход 272, например, в форме кодированного потока 21 битов данных. Этот кодированный поток битов данных может быть передан декодирующему устройству 30 видео или заархивирован для передачи или вызова позднее посредством этого декодирующему устройству 30 видео. Модуль 270 энтропийного кодирования может быть дополнительно конфигурирован для энтропийного кодирования другого синтаксического элемента для текущего среза видео, подлежащего кодированию.
Для кодирования потока видео могут быть конфигурированы другие структурные варианты кодирующего устройства 20 видео. Например, кодирующее устройство 20, не основанное на преобразовании, может квантовать сигнал остатка непосредственно без использования преобразовательного процессорного модуля 206 для некоторых блоков или кадров. В другом варианте реализации, кодирующее устройство 20 может содержать модуль 208 квантования и модуль 210 обратного квантования, соединенные в одном модуле.
В частности, в этом варианте настоящей заявки кодирующее устройство 20 может быть конфигурировано для реализации способа кодирования видео, описываемого в следующем варианте.
Следует понимать, что другие структурные вариации кодирующего устройства 20 для видео могут быть конфигурированы для кодирования потока видео. Например, для некоторых блоков изображения или кадров изображения кодирующее устройство 20 для видео может напрямую квантовать сигнал остатка без обработки преобразовательным процессорным модулем 206, и соответственно, без обработки процессорным модулем 212 для обратного преобразования. В качестве альтернативы, для некоторых блоков изображения или кадров изображения, кодирующее устройство 20 для видео не генерирует данные остатка, и соответственно, преобразовательный процессорный модуль 206, модуль 208 квантования, модуль 210 обратного квантования и процессорный модуль 212 для обратного преобразования не нужны для выполнения обработки. В качестве альтернативы, кодирующее устройство 20 для видео может напрямую сохранять реконструированный блок изображения в качестве опорного блока, без обработки фильтром 220. В качестве альтернативы, модуль 208 квантования и модуль 210 обратного квантования в кодирующем устройстве 20 для видео могут быть соединены вместе. Контурный фильтр 220 является опцией, и в случае компрессионного кодирования без потерь, преобразовательный процессорный модуль 206, модуль 208 квантования, модуль 210 обратного квантования и процессорный модуль 212 для обратного преобразования являются опциями. Следует понимать, что согласно различным сценариям применения, модуль 244 межкадрового прогнозирования и модуль 254 внутрикадрового прогнозирования могут быть активизированы избирательно.
Фиг. 3 представляет упрощенную/концептуальную блок-схему примера декодирующего устройства 30, конфигурированного для реализации одного из вариантов настоящей заявки. Это декодирующее устройство 30 для видео конфигурировано для приема кодированных данных 21 изображения (например, кодированного потока битов данных), например, полученных в результате кодирования посредством кодирующего устройства 20, для получения декодированного изображения 231. В процессе декодирования, декодирующее устройство 30 для видео принимает данные видео от кодирующего устройства 20 для видео, например, кодированный поток битов данных видео, представляющий блок изображения из кодированного среза видео, и ассоциированный синтаксический элемент.
В примере, показанном на Фиг. 3, декодирующее устройство 30 содержит модуль 304 энтропийного декодирования, модуль 310 обратного квантования, процессорный модуль 312 для обратного преобразования, реконструирующий модуль 314 (например, сумматор 314), буфер 316, контурный фильтр 320, буфер 330 декодированного изображения и прогнозирующий процессорный модуль 360. Прогнозирующий процессорный модуль 360 может содержать модуль 344 межкадрового прогнозирования, модуль 354 внутрикадрового прогнозирования и модуль 362 выбора режима. В некоторых примерах, декодирующее устройство 30 для видео может осуществлять процедуру декодирования изображения, грубо противоположную процедуре кодирования, описываемой применительно к кодирующему устройству 20 для видео, показанному на Фиг. 2.
Модуль 304 энтропийного декодирования конфигурирован для энтропийного декодирования кодированных данных 21 изображения для получения, например, квантованных коэффициентов 309 и/или декодированных параметров кодирования (не показано на Фиг. 3), например, какого-либо одного или всех из следующих параметров - параметра межкадрового прогнозирования, параметра внутрикадрового прогнозирования, параметра контурной фильтрации и/или другого синтаксического элемента (которые декодированы). Модуль 304 энтропийного декодирования далее конфигурировано для передачи параметра межкадрового прогнозирования, параметра внутрикадрового прогнозирования и/или другого синтаксического элемента прогнозирующему процессорному модулю 360. Декодирующее устройство 30 для видео может принять синтаксические элементы на уровне среза видео и/или на уровне блока видео.
Модуль 310 обратного квантования может иметь такую же функцию, как модуль 210 обратного квантования. Процессорный модуль 312 для обратного преобразования может иметь такую же функцию, как процессорный модуль 212 для обратного преобразования. Реконструирующий модуль 314 может иметь такую же функцию, как реконструирующий модуль 214. Буфер 316 может иметь такую же функцию, как буфер 216. Контурный фильтр 320 может иметь такую же функцию, как контурный фильтр 220. Буфер 330 декодированного изображения может иметь такую же функцию, как буфер 230 декодированного изображения.
Прогнозирующий процессорный модуль 360 может содержать модуль 344 межкадрового прогнозирования и модуль 354 внутрикадрового прогнозирования. Модуль 344 межкадрового прогнозирования может быть аналогичен модулю 244 межкадрового прогнозирования функционально, и модуль 354 внутрикадрового прогнозирования может быть аналогичен модулю 254 внутрикадрового прогнозирования функционально. Прогнозирующий процессорный модуль 360 обычно конфигурируют для осуществления прогнозирования блоков и/или получения блока 365 прогнозирования из кодированных данных 21, и приема или получения (в явном или в неявном виде) параметра, относящегося к прогнозированию, и/или информации о выбранном режиме прогнозирования, например, от модуля 304 энтропийного декодирования.
Когда срез видео кодирован в виде среза с внутрикадровым прогнозированием (I-среза), модуль 354 внутрикадрового прогнозирования из прогнозирующего процессорного модуля 360 конфигурирован для генерации блока 365 прогнозирования для блока изображения из текущего среза видео на основе сообщенного посредством сигнализации режима внутрикадрового прогнозирования и данных, полученных от ранее декодированного блока из текущего кадра или изображения. Когда кадр видео кодируют как срез с межкадровым прогнозированием (B или P), модуль 344 межкадрового прогнозирования (например, модуль компенсации движения) из прогнозирующего процессорного модуля 360 конфигурирован для генерации блока 365 прогнозирования для блока видео в текущем срезе видео на основе вектора движения и другого синтаксического элемента, принятого от модуля 304 энтропийного декодирования. Для межкадрового прогнозирования, блок прогнозирования может быть сформирован на основе одного из опорных изображений в одном списке опорных изображений. Декодирующее устройство 30 для видео может построить списки опорных кадров: список 0 и список 1, с использованием способа конструирования по умолчанию на основе опорного изображения, сохраняемого в буфере DPB 330.
Прогнозирующий процессорный модуль 360 конфигурирован для определения блока прогнозирования для блока видео из текущего среза видео посредством синтаксического анализа вектора движения и другого синтаксического элемента, и использования этого найденного блока прогнозирования для генерации блока прогнозирования для текущего блока видео, который в данный момент подвергается декодированию. В одном из примеров настоящей заявки, прогнозирующий процессорный модуль 360 использует некоторые из принятых синтаксических элементов для определения режима прогнозирования (например, внутрикадровое прогнозирование или межкадровое прогнозирование), применяемого для кодирования блока видео из среза видео, типа среза для межкадрового прогнозирования (например, B-срез, P-срез или GPB-срез), информации о построении одного или нескольких списков опорных изображений для рассматриваемого среза, вектора движения для каждого кодируемого с применением межкадрового прогнозирования блока видео из рассматриваемого среза, статуса межкадрового прогнозирования для каждого кодируемого с применением межкадрового прогнозирования блока видео из рассматриваемого среза и другой информации для декодирования блока видео из текущего среза видео. В другом примере настоящего изобретения совокупность синтаксических элементов, принятых декодирующим устройством 30 для видео из потока битов данных, содержит синтаксические элементы в одном или нескольких наборах - адаптивном наборе параметров (adaptive parameter set, APS), наборе параметров последовательности (sequence parameter set, SPS), наборе параметров изображения (picture parameter set, PPS) или в заголовке среза.
Модуль 310 обратного квантования может быть конфигурирован для осуществления обратного квантования (иными словами, деквантования) квантованного коэффициента преобразования, поступившего в потоке битов данных и декодированного модулем 304 энтропийного декодирования. Процедура обратного квантования может содержать: использование параметра квантования, вычисленного кодирующим устройством 20 для видео для каждого блока видео в срезе видео, для определения степени квантования, которое следует применить, и аналогично, определения степени обратного квантования, которое следует применить.
Процессорный модуль 312 обратного преобразования конфигурирован для применения обратного преобразования (например, обратного преобразования DCT, обратного целочисленного преобразования или концептуально аналогичной процедуры обратного преобразования) к коэффициенту преобразования для генерации блока остатка в области пикселей.
Реконструирующий модуль 314 (например, сумматор 314) конфигурирован для суммирования обратно преобразованного блока 313 (иными словами, реконструированного блока 313 остатка) с блоком 365 прогнозирования для получения реконструированного блока 315 в области отсчетов, например, путем суммирования величины отсчета из реконструированного блока 313 остатка с величиной отсчета из блока 365 прогнозирования.
Модуль 320 контурного фильтра (в контуре кодирования или после контура кодирования) конфигурирован для фильтрации реконструированного блока 315 с целью получения фильтрованного блока 321, для сглаживания переходов пикселей или повышения качества видео. В одном из примеров, модуль 320 контурного фильтра может быть конфигурирован для осуществления какой-либо комбинации способов фильтрации, описываемых ниже. Модуль 320 контурного фильтра предназначен для представления одного или нескольких контурных фильтров, включая, например, деблокирующий фильтр, нелинейный фильтр с адаптивным смещением (sample-adaptive offset, SAO) или фильтр другого типа, такой как двусторонний фильтр, адаптивный контурный фильтр (adaptive loop filter, ALF), обостряющий или сглаживающий фильтр, либо совместный фильтр. Хотя модуль 320 контурного фильтра показан на Фиг. 3 как внутриконтурный фильтр, в другой конфигурации этот модуль 320 контурного фильтра может быть реализован как пост-контурный фильтр.
Декодированный блок 321 видео в рассматриваемом кадре или изображении затем сохраняют в буфере 330 декодированного изображения, где хранится опорное изображение, используемое для последующей компенсации движения.
Декодирующее устройство 30 конфигурировано, например, для передачи декодированного изображения 31 через выход 332, для представления пользователю или зрителю от пользователя.
Другие вариации декодирующего устройства 30 для видео могут быть конфигурированы для декодирования сжатого потока битов данных. Например, это декодирующее устройство 30 может генерировать выходной поток видео без обработки его модулем 320 контурного фильтра. Например, не основанное на преобразовании декодирующее устройство 30 может осуществлять обратное квантование сигнала остатка напрямую, без использования процессорного модуля 312 для обратного преобразования, для некоторых блоков или кадров. В другом варианте реализации, декодирующее устройство 30 для видео может иметь модуль 310 обратного квантования и процессорный модуль 312 для обратного преобразования, объединенные в одном модуле.
В частности, в этом варианте настоящей заявки, декодирующее устройство 30 конфигурировано для реализации способа декодирования, описываемого в следующем варианте.
Следует понимать, что операция разбиения блока может быть выполнена прогнозирующим процессорным модулем 360 или независимым модулем (не показан на чертеже). Прогнозирующий процессорный модуль 360 может быть конфигурирован для: разбиения блока 203 изображения на меньшие сегменты блоков или субблоки, например, путем итеративного использования разбиения по схеме дерева квадратов (quad-tree, QT), разбиения по схеме двоичного дерева (binary-tree, BT), разбиения по схеме троичного дерева (triple-tree, TT), разбиения по схеме расширенного дерева квадратов (EQT, Extended Quad-Tree) или какой-либо комбинации таких схем разбиения, и для осуществления, например, прогнозирования на каждом из сегментов блока или субблоков, где режим разбиения может быть определен в соответствии с заданным правилом или определен на основе полученного посредством синтаксического анализа синтаксического элемента, который используется для индикации режима разбиения; и конфигурирован, например, для того, чтобы прогнозировать каждый сегмент блока или субблок. Процедура выбора режима содержит выбор структуры дерева для секционированного блока 203 изображения и выбор режима прогнозирования, применимого к каждому из сегментов блока или субблоков.
Следует понимать, что и другие структурные вариации декодирующего устройства 30 для видео могут быть конфигурированы для декодирования кодированного потока битов данных видео. Например, декодирующее устройство 30 для видео может генерировать выходной поток видео без обработки его фильтром 320. В качестве альтернативы, для некоторых блоков изображения или кадров изображения, модуль 304 энтропийного декодирования из декодирующего устройства 30 для видео не получает квантованные коэффициенты посредством декодирования и, соответственно, модуль 310 обратного квантования и процессорный модуль 312 для обратного преобразования не нужны для выполнения обработки. Контурный фильтр 320 является опцией. В случае сжатия без потерь, модуль 310 обратного квантования и процессорный модуль 312 для обратного преобразования являются опциями. Следует понимать, что согласно различным сценариям применения, модуль межкадрового прогнозирования и модуль внутрикадрового прогнозирования могут быть активизированы избирательно.
Следует понимать, что в кодирующем устройстве 20 и в декодирующем устройстве 30 согласно настоящей заявке результат обработки на одной ступени может быть передан на следующую ступень после дальнейшей обработки. Например, после такой ступени, как интерполяционная фильтрация, определение вектора движении или контурная фильтрация, может быть далее выполнена такая операция, как усечение или сдвиг, над результатом обработки соответствующей ступени.
Например, может быть подвергнут дальнейшей обработке вектор движения для контрольной точки текущего блока изображения или вектор движения для субблока текущего блока изображения, полученный из вектора движения для соседнего аффинного кодированного блока. Это не ограничивается настоящей заявкой. Например, величину вектора движения ограничивают в пределах конкретного диапазона битовой ширины. В предположении, что допустимая битовая ширина вектора движения равна bitDepth, величина этого вектора движения находится в диапазоне от -2^(bitDepth-1) до 2^(bitDepth-1)-1, где символ "^" представляет возведение в степень. Если bitDepth равно 16, диапазон величины вектора составляет от -32768 до 32767. Если bitDepth равно 18, диапазон величины вектора составляет от -131072 до 131071. В качестве другого примера, величины векторов движения (например, векторов MV движения для четырех субблоков размером 4×4 в блоке изображения размером 8×8) ограничены, так что максимальная разница между целыми частями векторов MV для четырех субблоков размером 4×4 не превышает N пикселей, например, не превышает одного пикселя.
Для ограничения вектора движения в пределах конкретной битовой ширины могут быть использованы следующие два способа.
Способ 1: Удаление самого старшего бита переполнения из вектора движения:
ux=(vx+2bitDepth) % 2bitDepth
vx=(ux >= 2bitDepth-1) ? (ux-2bitDepth) : ux
uy=(vy+2bitDepth) % 2bitDepth
vy=(uy >= 2bitDepth-1) ? (uy-2bitDepth) : uy
Здесь vx представляет горизонтальный компонент вектора движения блока изображения или субблока блока изображения, vy представляет вертикальный компонент вектора движения блока изображения или субблока блока изображения, ux и uy представляют промежуточные величины и bitDepth представляет битовую ширину.
Например, величина vx равна -32769, и по приведенным выше формулам получают 32767. Величину сохраняют в компьютере в виде представления в дополнительном коде, представление величины-32769 в дополнительном коде имеет вид 1,0111,1111,1111,1111 (17 бит), и компьютер, обрабатывая переполнения, отбрасывает самый старший бит. Поэтому величина vx равна 0111,1111,1111,1111, иными словами, 32767. Эта величина согласуется с результатом, получаемым в результате вычислений по формулам.
Способ 2: К вектору движения применяют усечение, как показывают следующие формулы:
vx=Clip3(-2bitDepth-1, 2bitDepth-1 -1, vx)
vy=Clip3(-2bitDepth-1, 2bitDepth-1 -1, vy)
Здесь vx представляет горизонтальный компонент вектора движения блока изображения или субблока блока изображения, vy представляет вертикальный компонент вектора движения блока изображения или субблока блока изображения; x, y и z соответствуют трем входным величинам для процесса clip3 усечения вектора MV; и процедуру clip3 определяют для индикации усечения величины z до диапазона [x, y].
Clip3(x, y, z ) =
Figure 00000001
На Фиг. 4 представлена упрощенная структурная схема устройства 400 для кодирования видео (например, устройства 400 для кодирования видео или устройства 400 для декодирования видео) согласно одному из вариантов настоящей заявки. Устройство 400 для кодирования видео подходит для реализации варианта, рассматриваемого в настоящем описании. В одном из вариантов, устройство 400 для кодирования видео может представлять собой декодирующее устройство для видео (например, декодирующее устройство 30, показанное на Фиг. 1A) или кодирующее устройство для видео (например, кодирующее устройство 20, показанное на Фиг. 1A). В другом варианте, устройство 400 для кодирования видео может представлять собой один или более компонентов декодирующего устройства 30, показанного на Фиг. 1A, или кодирующего устройства 20, показанного на Фиг. 1A.
Устройство 400 кодирования видео содержит: входные порты 410 и модуль приемника (Rx) 420, конфигурированные для приема данных; процессор, логический модуль или центральный процессор (CPU) 430, конфигурированный для обработки данных; модуль передатчика (Tx) 440 и выходные порты 450, конфигурированные для передачи данных; и запоминающее устройство 460, конфигурированное для хранения данных. Устройство 400 для кодирования видео может далее содержать оптоэлектрический компонент и электрооптический (electrical-to-optical (EO)) компонент, соединенные с входными портами 410, модулем приемника 420, модулем передатчика 440 и выходными портами 450, для вывода или ввода оптического сигнала или электрического сигнала.
Процессор 430 реализован посредством оборудования и программного обеспечения. Этот процессор 430 может быть выполнен в виде одного или нескольких кристаллов процессоров CPU, ядер (например, многоядерные процессоры), матриц FPGA, схем ASIC и процессоров DSP. Процессор 430 осуществляет связь с входными портами 410, модулем приемника 420, модулем передатчика 440, выходными портами 450 и запоминающим устройством 460. Процессор 430 содержит модуль 470 кодирования (например, кодирующий модуль 470 или декодирующий модуль 470). Кодирующий/декодирующий модуль 470 реализует варианты, рассматриваемые в настоящем описании, для осуществления способа, предлагаемого в вариантах настоящей заявки. Например, кодирующий/декодирующий модуль 470 реализует, выполняет или предоставляет различные операции кодирования. Поэтому введение кодирующего/декодирующего модуля 470 создает значительное усовершенствование для функций устройства 400 для кодирования видео и влияет на переключение устройства 400 для кодирования видео в различные состояния. В качестве альтернативы, этот кодирующий/декодирующий модуль 470 реализован в виде команд, хранящихся в запоминающем устройстве 460 и выполняемых процессором 430.
Запоминающее устройство 460 содержит один или более дисков, накопителей на магнитной ленте и твердотельных дисков и может быть использовано в устройстве для хранения данных переполнения для хранения программ, когда происходит избирательное выполнение таких программ, и для хранения команд и данных, считываемых в ходе выполнения программы. Запоминающее устройство 460 может быть энергозависимым и/или энергонезависимым и может представлять собой постоянное запоминающее устройство (ПЗУ (ROM)), запоминающее устройство с произвольной выборкой (ЗУПВ (RAM)), троичное ассоциативное запоминающее устройство (ternary content-addressable memory, TCAM) и/или статическое запоминающее устройство с произвольной выборкой (статическое ЗУПВ (SRAM)).
На Фиг. 5 представлена упрощенная блок-схема оборудования 500, которая может быть использована в одном из или в обоих устройствах - устройстве-источнике 12 и/или устройстве-адресате 14, показанном на Фиг. 1A, согласно одному из примеров вариантов. Оборудование 500 может осуществлять технологию согласно настоящей заявке. Другими словами, на Фиг. 5 представлена упрощенная блок-схема варианта реализации кодирующего устройства или декодирующего устройства (устройства 500 кодирования для краткости) согласно одному из вариантов настоящей заявки. Устройство 500 кодирования может содержать процессор 510, запоминающее устройство 530 и систему 550 шин. Процессор и запоминающее устройство соединены один с другим через систему шин. Запоминающее устройство конфигурировано для хранения команд. Процессор конфигурирован для выполнения команд, хранящихся в запоминающем устройстве. Запоминающее устройство в устройстве кодирования сохраняет программный код, а процессор может вызывать программный код, хранящийся в запоминающем устройстве, для осуществления различных способов кодирования или декодирования видео, описываемых в настоящей заявке, и в частности, различных новых способов декодирования. Во избежание повторов, подробности здесь описаны не будут.
В этом варианте настоящей заявки, процессор 510 может представлять собой центральный процессор (Central Processing Unit, "CPU" для краткости), или процессор 510 может представлять собой другой процессор общего назначения, цифровой процессор сигнала (DSP), специализированную интегральную схему (ASIC), программируемую пользователем вентильную матрицу (FPGA) или другое программируемое логическое устройство, логическое устройство на дискретных вентилях или транзисторах, дискретный аппаратный компонент или другой подобный компонент. Процессор общего назначения может представлять собой микропроцессор, или может быть каким-либо обычным процессором, или другим подобным устройством.
Запоминающее устройство 530 может содержать постоянное запоминающее устройство (ПЗУ (ROM)) или запоминающее устройство с произвольной выборкой (ЗУПВ (RAM)). В запоминающем устройстве 530 может, в качестве альтернативы, быть использовано устройство какого-либо другого подходящего типа для хранения информации. Запоминающее устройство 530 может содержать код и данные 531, доступные для процессора 510 через шину 550. Запоминающее устройство 530 может далее содержать операционную систему 533 и прикладные программы 535. Совокупность прикладных программ 535 содержит по меньшей мере одну программу, позволяющую процессору 510 осуществлять способ кодирования или декодирования видео (в частности, способ декодирования, описываемый в настоящей заявке), рассматриваемый в настоящей заявке. Например, совокупность прикладных программ 535 может содержать приложения с 1 по N, и далее содержит приложение для кодирования или декодирования видео (для краткости, приложение, кодирующее видео), используемое для осуществления способа кодирования или декодирования видео, описываемого в настоящей заявке.
Система 550 шин может содержать не только шину данных, но также шину питания, шину управления, шину сигнала статуса и другие подобные шины. Однако для ясности описания шины разнообразных типов отмечены на чертеже как система 550 шин.
В качестве опции, устройство 500 кодирования может далее содержать одно или более устройств вывода, например, дисплей 570. В одном из примеров, дисплей 570 может представлять собой сенсорный дисплей, объединяющий собственно дисплей с чувствительным к прикосновениям (сенсорным) элементом, который оперативно воспринимает ввод через прикосновение. Дисплей 570 может быть соединен с процессором 510 через шину 550.
Далее подробно описаны технические решения вариантов настоящей заявки.
В стандарте кодирования видео кадр изображения разбивают на единицы дерева кодирования (CTU), которые не накладываются одна на другую. Размер единицы CTU может быть установлен равным 64×64 (размер единицы CTU может быть в качестве альтернативы установлен равным другой величине, например, размер единицы CTU увеличивают до 128×128 или 256×256). Единица CTU размером 64×64 представляет собой прямоугольную пиксельную матрицу, содержащую 64 строки по 64 пикселя в каждой строке, и каждый пиксель содержит яркостную составляющую или/и цветностную составляющую. Единица CTU представляет единицу дерева кодирования (coding tree unit). Одно изображение содержит несколько единиц CTU, и одна единица CTU обычно соответствует одной квадратной области изображения и содержит пиксель яркостной составляющей и пиксель цветностной составляющей (либо может содержать только пиксель яркостной составляющей, либо может содержать только пиксель цветностной составляющей) в рассматриваемой области изображения. Единица CTU далее содержит синтаксические элементы. Эти синтаксические элементы указывают, как следует разбивать рассматриваемую единицу CTU по меньшей мере на одну единицу кодирования (coding unit, CU), и способ декодирования каждой единицы кодирования для получения реконструированного изображения.
Единица CU представляет единицу кодирования. Единица CU обычно соответствует прямоугольной области A×B и содержит A×B пикселей яркостной составляющей и пиксели цветностной составляющей, соответствующие этим A×B пикселям яркостной составляющей. Здесь «A» представляет ширину прямоугольника, «B» представляет высоту прямоугольника, причем эти величины A и B могут быть одинаковыми или разными. Величины A и B обычно равны 2, возведенной в целочисленную степень, например, 256, 128, 64, 32, 16, 8, и 4. Процедура декодирования может быть применена к единице кодирования для получения прямоугольной области размером A×B. Процедура декодирования обычно содержит такие процедуры, как прогнозирование, деквантование и обратное преобразование для генерации прогнозируемого изображения и остатка. Эти прогнозируемое изображение и остаток суммируют для получения реконструированного изображения.
Дерево квадратов (QT, Quad-Tree) представляет собой один из типов структур дерева. Один узел может быть разбит на четыре дочерних узла. В стандарте кодирования видео используется режим разбиения на единицы CTU по схеме дерева квадратов. Единица CTU служит корневым узлом, и каждый узел соответствует квадратной области. Конкретнее, квадратную область разбивают на четыре квадратные области одинакового размера (длина и ширина квадратной области, полученной после разбиения, равны соответственно половине длины и половине ширины области перед разбиением). Каждая область соответствует одному узлу, как показано на Фиг. 6(a). Узел может не быть далее разбит (в таком случае область, соответствующая этом узлу, является единицей CU), или этот узел разбивают дальше на узлы более низкого уровня в соответствии со схемой дерева QT, BT, TT или EQT.
Двоичное дерево (BT, Binary Tree) представляет собой один из типов структур дерева. Один узел может быть разбит на два дочерних узла. Разбиение на два дочерних узла может быт произведено одним из следующих двух способов: (1) горизонтальное разбиение по схеме двоичного дерева: разбиение области, соответствующей узлу, на две области одинакового размера: верхнюю область и нижнюю область, где каждая область соответствует одному узлу, как показано на Фиг. 6(b); или (2) вертикальное разбиение по схеме двоичного дерева: разбиение области, соответствующей узлу, на две области одинакового размера: левую область и правую область, где каждая область соответствует одному узлу, как показано на Фиг. 6(c). В способе кодирования с разбиением по схеме двоичного дерева узел в структуре двоичного дерева может не быть далее разбит (в таком случае, область, соответствующая этому узлу, является единицей CU), или этот узел разбивают дальше на узлы более низкого уровня в соответствии со схемой дерева BT, TT, или EQT.
Троичное дерево (Ternary Tree, сокращенно TT) представляет собой один из типов структур дерева. Один узел может быть разбит на три дочерних узла. В существующем способе кодирования на основе троичного дерева узел в структуре троичного дерева может не быть разбит, либо этот узел разбивают на три узла более низкого уровня. Такое разбиение на три узла может осуществляться одним из следующих двух способов: (1) горизонтальное разбиение по схеме троичного дерева: разбиение области, соответствующей этому узлу, на три области: верхнюю область, среднюю область и нижнюю область, где каждая область соответствует одному узлу, и высоты этих трех областей равны соответственно 1/4, 1/2 and 1/4 высоты исходного узла, как показано на Фиг. 6(d); или (2) вертикальное разбиение по схеме троичного дерева: разбиение области, соответствующей этому узлу, на три области: левую область, среднюю область и правую область, где каждая область соответствует одному узлу и ширина каждой из этих трех областей равна соответственно 1/4, 1/2 and 1/4 высоты исходного узла, как показано на Фиг. 6(e). В способе кодирования с разбиением по схеме троичного дерева узел в структуре троичного дерева может не быть разбит (в таком случае, область, соответствующая этому узлу, является единицей CU), или этот узел разбивают дальше на узлы более низкого уровня в соответствии со схемой дерева BT, TT или EQT.
Расширенное дерево квадратов (EQT, Extended Quad-Tree) представляет собой структуру разбиения "I-образной" формы. Один узел может быть разбит на четыре дочерних узла. Разбиение на три узла может быть выполнено следующими двумя способами: (1) горизонтальное разбиение по схеме дерева квадратов: разбиение области, соответствующей узлу, на три области: верхнюю область, среднюю область и нижнюю область, где каждая область соответствует одному узлу, высоты трех областей в верхней области, левой средней области, правой средней области и нижней области равны соответственно 1/4, 1/2, 1/2 и 1/4 высоты узла, ширина левой средней области и ширина правой средней области равны соответственно 1/2 и 1/2 высоты узла, как показано на Фиг. 6(f); или (2) вертикальное разбиение по схеме дерева квадратов: разбиение области, соответствующей узлу, на три области: левую область, верхнюю среднюю область, нижнюю среднюю область и правую область, где каждая область соответствует одному узлу, ширинам каждой из этих трех областей - левой области, средней области и правой области равна соответственно 1/4, 1/2, 1/2 и 1/4 высоты узла, и ширина верхней средней области и ширина нижней средней области равны соответственно 1/2 и 1/2 высоты узла, как показано на Фиг. 6(g). В способе кодирования с разбиением по схеме расширенного дерева квадратов узел в структуре расширенного дерева квадратов может не быть разбит, или этот узел разбивают дальше на узлы более низкого уровня в соответствии со схемой дерева BT, TT, или EQT.
Декодирование видео (video decoding) представляет собой процедуру обработки данных для восстановления потока битов данных видео и формирования реконструированного изображения в соответствии со специальным синтаксическим правилом и способом обработки данных.
Кодирование видео (video encoding) представляет собой процедуру обработки данных для сжатия последовательности изображений и преобразования ее в поток битов данных.
Кодирование видео (video coding) представляет собой обобщающий термин, охватывающие как собственно кодирование видео, так и декодирование видео. Перевод термина «video coding» на китайский язык является таким же, как перевод на китайский язык термина «video encoding».
Пакет VTM представляет собой новое программное обеспечение для кодека, разработанное группой JVET.
В стандарте кодирования видео кадр изображения разбивают на единицы дерева кодирования (CTU), которые не накладываются одна на другую. Размер единицы CTU может быть установлен равным 64×64 (размер единицы CTU может быть в качестве альтернативы установлен равным другой величине, например, размер единицы CTU увеличивают до 128×128 или 256×256). Единица CTU размером 64×64 представляет собой прямоугольную пиксельную матрицу, содержащую 64 строки по 64 пикселя в каждой строке, и каждый пиксель содержит яркостную составляющую или/и цветностную составляющую.
При использовании способа разбиения на единицы CTU на основе структуры дерева квадратов (quad-tree, сокращенно QT) такая единица CTU служит корневым (root) узлом дерева квадратов, и эту единицу CTU рекурсивно разбивают на несколько концевых узлов (leaf node) в режиме разбиения по дереву квадратов. Один узел соответствует одной области изображения. Если узел не разбивают, этот узел считается концевым узлом, а область изображения, соответствующая этому узлу, образует одну единицу CU. Если узел разбивают дальше, область изображения, соответствующую этому узлу, разбивают на четыре области одинакового размера (длина и ширина каждой из этих четырех областей равны соответственно половине длины и половине ширины области перед разбиением), и каждая область соответствует одному узлу. Подлежат ли эти узлы дальнейшему разбиению, необходимо будет определить отдельно. Будет ли узел разбит дальше, указывает флаг разбиения split_cu_flag, находящийся в потоке битов данных и соответствующий этому узлу. Глубина дерева квадратов (qtDepth) в корневом узле равна 0, и глубина дерева квадратов в узле потомке равна глубине дерева квадратов для материнского узла плюс 1. Для краткости описания, в последующем под размером и формой узла понимают размер и форму области изображения, соответствующей этому узлу.
Более конкретно, для узла единицы CTU размером 64×64 (глубина дерева квадратов равна 0), такой узел единицы CTU размером 64×64 может не быть разбит на основе флага split_cu_flag, соответствующего рассматриваемому узлу единицы CTU размером 64×64, и этот узел единицы CTU образует одну единицу CU размером 64×64; или узел единицы CTU размером 64×64 разбивают на четыре узла размером 32×32 каждый (глубина дерева квадратов равна 1). Каждый из этих узлов размером 32×32 может быть далее разбит или не разбит на основе флага split_cu_flag, соответствующего этому узлу. Если один из этих узлов размером 32×32 разбивают далее, получают четыре узла размером 16×16 каждый (глубина дерева квадратов равна 2). По аналогии, разбиение завершается, когда все узлы более не разбивают, в результате чего такая единица CTU оказывается разбита на группу единиц CU. Минимальный размер (size) единицы CU идентифицирован в наборе SPS, например, где 8×8 представляет этот минимальный размер единицы CU. В приведенной выше рекурсивной процедуре разбиения, если размер узла равен минимальному размеру единицы CU (minimum CU size), этот узел далее уже не разбивают (по умолчанию), а флаг разбиения для этого узла нет необходимости включать в поток битов данных.
После уяснения, посредством синтаксического анализа, что некий узел является концевым узлом, этот концевой узел представляет собой единицу CU, и далее осуществляют синтаксический анализ информации о кодировании, соответствующей этой единице CU, (включая такую информацию, как индикация режима прогнозирования и коэффициента преобразования для единицы CU, например, синтаксическую структуру coding_unit()). Затем осуществляют процедуру декодирования, такую как прогнозирование, деквантование, обратное преобразование и контурная фильтрация, для единицы CU на основе информации о кодировании, с целью генерации реконструированного изображения, соответствующего этой единице CU. Единица CTU может быть разбита на группу единиц CU с соответствующими размерами на основе локальных признаков изображения с использованием структуры дерева квадратов. Например, гладкую область разбивают на единицы CU большего размера, а обильно текстурированную область разбивают на единицы CU меньшего размера.
Режим разбиения, в котором единицу CTU разбивают на группу единиц CU, соответствует дереву кодирования (coding tree). Конкретное дерево кодирования, которое следует использовать для единицы CTU, обычно определяют на основе технологии оптимизации соотношения между скоростью передачи данных и искажениями (rate distortion optimization, RDO) для кодирующего устройства. Кодирующее устройство пытается использовать несколько режимов разбиения единиц CTU, где каждый режим разбиения соответствует одной величине стоимостной оценки соотношения между скоростью передачи данных и искажениями (RD cost). Кодирующее устройство сравнивает эти стоимостные оценки соотношения RD для различных режимов разбиения, которые оно пыталось использовать, и использует режим разбиения с наименьшей стоимостной оценкой RD в качестве оптимального режима разбиения для единицы CTU при фактическом кодировании этой единицы CTU. Режимы разбиения для единицы CTU, которые попыталось использовать кодирующее устройство, должны соответствовать правилу разбиения, специфицированному декодирующим устройством, так что это декодирующее устройство сможет правильно идентифицировать режимы разбиения для единицы CTU.
В видео, представляющем контент экрана, изображение обычно содержит тот же самый контент. Например, в изображении, содержащем цифры или графические символы, некоторые цифры или некоторые графические символы могут быть найдены вокруг текущего блока, как показано на Фиг. 7. Поэтому, если блок, на который можно ссылаться в качестве опорного, может быть найден в окружении текущего блока в процессе кодирования этого текущего блока, можно напрямую ссылаться на реконструированные пиксели этого блока. При таком подходе коэффициент сжатия при кодировании значительно увеличивается. Технология внутрикадрового копирования блоков (Intra Block Copy, IBC) представляет собой одну из технологий внутрикадрового прогнозирования, при использовании которой осуществляют поиск такого же блока в текущем контенте экрана. Например, синтаксический элемент pred_mode_ibc_flag в Табл. 2 может быть использован для индикации, используется ли режим прогнозирования IBC для текущей единицы кодирования.
На основе разбиения по схеме дерева квадратов, могут быть далее использованы режим разбиения по схеме двоичного дерева (binary tree, сокращенно BT) и режим разбиения по схеме расширенного двоичного дерева (Extended Quad-Tree, сокращенно EQT).
По схеме двоичного дерева один узел разбивают на два дочерних узла. В частности, имеются два режима разбиения по схеме двоичного дерева:
(1) горизонтальное разбиение по схеме двоичного дерева: разбиение области, соответствующей узлу, на две области одинакового размера (то есть, ширина остается неизменной, а высоты становятся равными половине высоты области перед разбиением), где каждая область соответствует одному узлу, как показано на Фиг. 6(b); и
(2) вертикальное разбиение по схеме двоичного дерева: разбиение области, соответствующей узлу, на две области одинакового размера: левую область и правую область (иными словами, высоты остаются неизменными, а ширина каждой вновь полученной области становится равной половине ширины исходной области прежде разбиения), как показано Фиг. 6(c).
Один узел разбивают на четыре дочерних узла посредством разбиения по схеме расширенного дерева квадратов. В частности, существуют два режима разбиения по схеме расширенного дерева квадратов:
(1) горизонтальное разбиение по схеме дерева квадратов: разбиение области, соответствующей узлу, на три области: верхнюю область, среднюю область и нижнюю область, где каждая область соответствует одному узлу, высоты верхней области, левой средней области, правой средней области и нижней области равны соответственно 1/4, 1/2, 1/2 и 1/4 высоты узла, а ширина левой средней области и ширина правой средней области составляют соответственно 1/2 и 1/2 от высоты узла, как показано на Фиг. 6(f); и
(2) вертикальное разбиение по схеме дерева квадратов: разбиение области, соответствующей узлу, на три области: левую область, верхнюю среднюю область, нижнюю среднюю область и правую область, где каждая область соответствует одному узлу, величины ширины левой области, средней области и правой области равны соответственно 1/4, 1/2, 1/2 и 1/4 от высоты узла, и ширина верхней средней области и ширина нижней средней области составляют соответственно 1/2 и 1/2 высоты узла, как показано на Фиг. 6(g).
Режим разбиения по схеме дерева квадратов плюс двоичного дерева/расширенного дерева квадратов (QT plus BT/EQT) означает, что узел на первом уровне дерева кодирования может быть разбит на дочерние узлы только в соответствии с древом квадратов (QT), что концевой узел дерева кодирования первого уровня является корневым узлом для дерева кодирования второго уровня, что узел дерева кодирования второго уровня может быть разбит на дочерние узлы по схеме двоичного дерева (BT) или по схеме расширенного дерева квадратов (EQT), и что концевой узел дерева кодирования второго уровня является единицей кодирования. Следует отметить, что когда для концевого узла используется режим разбиения по схеме дерева BT или EQT, для такого концевого узла можно использовать только режим разбиения по схеме дерева BT или EQT, а режим разбиения по схеме дерева QT для этого концевого узла использовать не допускается.
В качестве альтернативы, на основе разбиения по схеме дерева квадратов, далее могут быть использованы режим разбиения по схеме двоичного дерева (binary tree, сокращенно BT) и режим разбиения по схеме троичного дерева (ternary tree, сокращенно TT).
Один узел разбивают по схеме двоичного дерева на два дочерних узла. В частности, существуют два режима разбиения по схеме двоичного дерева:
(1) горизонтальное разбиение по схеме двоичного дерева: разбиение области, соответствующей узлу, на две области одинакового размера (иными словами, ширина остается неизменной, а высоты становятся равными половине высоты области перед разбиением), где каждая область соответствует одному узлу, как показано на Фиг. 6(b); и
(2) вертикальное разбиение по схеме двоичного дерева: разбиение области, соответствующей узлу, на две области одинакового размера: левую область и правую область (иными словами, высоты остаются неизменными, а ширина каждой области становится равной половине высоты области прежде разбиения), как показано на Фиг. 6(c).
Один узел разбивают на два дочерних узла посредством разбиения по схеме троичного дерева. В частности, имеются два режима разбиения по схеме троичного дерева:
(1) горизонтальное разбиение по схеме троичного дерева: разбиение области, соответствующей узлу, на три области: верхнюю область, среднюю область и нижнюю область, где каждая область соответствует одному узлу, и высоты эти верхней области, средней области и нижней области равны соответственно 1/4, 1/2 и 1/4 высоты узла, как показано на Фиг. 6(d); и
(2) вертикальное разбиение по схеме троичного дерева: разбиение области, соответствующей узлу, на три области: левую область, среднюю область и правую область, где каждая область соответствует одному узлу, и ширина каждой из этих левой области, средней области и правой области равна соответственно 1/4, 1/2 и 1/4 высоты узла, как показано на Фиг. 6(e).
Режим разбиения по схеме QT plus BT/TT, кратко называемый режимом дерева QT-BTT, означает, что узел дерева кодирования первого уровня может быть разбит на дочерние узлы только по схеме дерева QT; что концевой узел дерева кодирования первого уровня является корневым узлом для дерева кодирования второго уровня; что узел дерева кодирования второго уровня может быть разбит на дочерние узлы посредством одного из четырех режимов разбиения: горизонтальное разбиение по схеме двоичного дерева, вертикальное разбиение по схеме двоичного дерева, горизонтальное разбиение по схеме троичного дерева и вертикальное разбиение по схеме троичного дерева; и что концевой узел дерева кодирования второго уровня является единицей кодирования.
Часть синтаксической структуры на уровне единицы CU может быть показана в Табл. 1. Если текущий узел не разбивают далее на дочерние узлы, этот текущий узел является единицей кодирования, и блок прогнозирования для этой единицы кодирования подвергают синтаксическому анализу на основе следующей синтаксической структуры.
Флаг skip_flag представляет собой флаг режима пропуска. Когда флаг skip_flag равен 1, это означает, что для текущей единицы CU используется режим пропуска, или когда флаг skip_flag равен 0, это означает, что для текущей единицы CU режим пропуска не используется.
Флаг merge_flag представляет собой флаг прямого режима. Когда флаг merge_flag равен 1, это означает, что для текущей единицы CU используется режим объединения, или когда флаг merge_flag равен 0, это означает, что для текущей единицы CU режим объединения не используется.
Флаг cu_pred_mode представляет собой флаг режима прогнозирования для единицы кодирования. Когда cu_pred_mode равен 1, это означает, что для текущей единицы прогнозирования используется режим внутрикадрового прогнозирования, или когда флаг cu_pred_mode равен 0, это означает, что для текущей единицы прогнозирования режим внутрикадрового прогнозирования не используется.
Таблица 1
coding_unit( x0, y0, uiDepth, uiWidth, uiHeight ) {
skip_flag
if ( ! skipFlag ) {
merge_flag
}
if ( ! mergeFlag )
cu_pred_mode
}
Часть синтаксической структуры на уровне единицы CU может быть в качестве альтернативы показана в Табл. 2. Эта Табл. 2 является всего лишь примером. Значение флага cu_skip_flag в Табл, 2 является таким же, как значение флага skip_flag в Табл. 1, и значение флага pred_mode_flag в Табл. 2 является таким же, как значение флага cu_pred_mode в Табл. 1.
Флаг cu_skip_flag представляет собой флаг режима пропуска. Когда флаг cu_skip_flag равен 1, это означает, что для текущей единицы CU используется режим пропуска, или когда флаг cu_skip_flag равен 0, это означает, что для текущей единицы CU режим пропуска не используется.
Флаг general_merge_flag представляет собой флаг режима объединения. Когда флаг general_merge_flag равен 1, это означает, что для текущей единицы CU используется режим объединения, или когда флаг general_merge_flag равен 0, это означает, что для текущей единицы CU режим объединения не используется.
Флаг pred_mode_flag представляет собой флаг режима прогнозирования для единицы кодирования. Когда флаг pred_mode_flag равен 1, это означает, что для текущей единицы прогнозирования используется режим внутрикадрового прогнозирования, или когда флаг of pred_mode_flag равен 0, это означает, что для текущей единицы прогнозирования используется обычный режим межкадрового прогнозирования. Если флаг pred_mode_flag равен 1, параметр CuPredMode[x0][y0] равен MODE_INTRA. Если флаг pred_mode_flag равен 0, параметр CuPredMode[x0][y0] равен MODE_INTER.
Когда флаг pred_mode_ibc_flag равен 1, это означает, что для текущей единицы прогнозирования используется режим прогнозирования с копированием IBC, или когда флаг pred_mode_ibc_flag равен 0, это означает, что для текущей единицы прогнозирования не используется режим прогнозирования с копированием IBC. Если флаг pred_mode_ibc_flag равен 1, параметр CuPredMode[x0][y0] равен MODE_IBC.
Параметр CuPredMode[x0][y0] представляет режим прогнозирования для текущей единицы кодирования, и (x0, y0) представляет позицию текущей единицы кодирования в текущем изображении.
Таблица 2
coding_unit(x0,y0,cbWidth,cbHeight,treeType) { Дескриптор
if(slice_type != I || sps_ibc_enabled_flag ) {
if( treeType != DUAL_TREE_CHROMA )
cu_skip_flag[x0][y0] ae(v)
if( cu_skip_flag[x0][y0] == 0 && slice_type != I )
pred_mode_flag ae(v)
if( ( ( slice_type == I && cu_skip_flag[x0][y0] ==0 ) ||
( slice_type != I && ( CuPredMode[x0][y0] != MODE_INTRA ||
( cbWidth == 4 && cbHeight == 4 && cu_skip_flag[x0][y0] == 0 ) ) ) ) &&
sps_ibc_enabled_flag && ( cbWidth != 128 || cbHeight != 128 ) )
pred_mode_ibc_flag ae(v)
}
if( CuPredMode[x0][y0] == MODE_INTRA ) {
} else if( treeType != DUAL_TREE_CHROMA ) { /* MODE_INTER or MODE_IBC */
if( cu_skip_flag[x0][y0] ==0 )
general_merge_flag [x0][y0] ae(v)
}
}
Два дочерних узла размером 4×M (или M×4) каждый генерируют посредством разбиения узла размером 8×M (или M×8) с применением вертикального разбиения по схеме двоичного дерева (или горизонтального разбиения по схеме двоичного дерева). Аналогично, четыре дочерних узла размером 4×M (или M×4) каждый и один узел потомок размером 8×N (или N×8) генерируют посредством разбиения узла размером 16×M (или M×16) с применением вертикального разбиения по схеме расширенного дерева квадратов (или горизонтального разбиения по схеме расширенного дерева квадратов). Аналогично, два дочерних узла размером 4×M (или M×4) каждый и один узел потомок размером 8×M (или M×8) генерируют посредством разбиения узла размером 16×M (или M×16) с применением вертикального разбиения по схеме троичного дерева (или горизонтального разбиения по схеме троичного дерева). Для формата YUV 4:2:0 данных разрешение цветностной составляющей равно 1/2 от разрешения яркостной составляющей. Другими словами, один узел размером 4×M содержит один яркостной блок размером 4×M и два цветностных блока размером 2×(M/2) каждый. Для аппаратного декодирующего устройства, стоимость обработки небольшого блока (особенно, небольшого блока размером 2×2, 2×4 или 2×8) относительно высока. Однако в таком режиме разбиения генерируют небольшие блоки размером 2×2 или 2×4. Это является неблагоприятным обстоятельством для реализации аппаратного декодирующего устройства. Для аппаратного декодирующего устройства сравнительно сложно обрабатывать небольшие блоки. Эта сложность, в частности, отражена в следующих трех аспектах.
(1) Внутрикадровое прогнозирование: Для увеличения скорости обработки данных, оборудование проектируют так, чтобы в общем случае обрабатывать 16 пикселей за раз в процессе внутрикадрового прогнозирования. Однако небольшой блок размером 2×2, 2×4 или 4×2 содержит меньше 16 пикселей. В результате характеристики (производительность) обработки данных при внутрикадровом прогнозировании деградируют.
(2) Кодирование коэффициентов: В стандарте кодирования HEVC, кодирование коэффициентов преобразования осуществляется на основе группы коэффициентов (coefficient group, CG), содержащей 16 коэффициентов. Однако небольшой блок размером 2×2, 2×4 или 4×2 имеет четыре или восемь коэффициентов преобразования. В результате, группу коэффициентов, содержащую четыре коэффициента или восемь коэффициентов, необходимо дополнить, чтобы поддерживать кодирование коэффициентов для таких небольших блоков. В результате, сложность реализации возрастает.
(3) Межкадровое прогнозирование: межкадровое прогнозирование для небольших блоков предъявляет относительно высокие требования к ширине полосы передачи данных. В результате, это влияет на скорость выполнения процедуры декодирования.
Когда узел потомок содержит цветностной блок с равной 2 длиной стороны в дочерних узлах, генерируемых в результате дальнейшего разбиения узла в режиме разбиения, яркостной блок, входящий в этот узел потомок, разбивают дальше в этом режиме разбиения, а цветностной блок, входящий в этот узел потомок, далее не разбивают. При таком подходе цветностной блок с равной 2 длиной стороны не образуется. Это уменьшает максимальную скорость прохождения данных через декодирующее устройство и является благоприятным фактором для реализации этого декодирующего устройства. В дополнение к этому, предложен способ определения режима прогнозирования для цветностного блока на основе режима прогнозирования для яркостного блока, так что эффективность кодирования повышается.
Способ прогнозирования изображения, предлагаемый в настоящей заявке, может быть использован в кодирующем устройстве 18 для видео или в декодирующем устройстве 24 для видео, показанных на Фиг. 8. Следует отметить, что один или более этапов в последующих нескольких вариантах осуществляются только в декодирующем устройстве 24 для видео, и специально описаны в соответствующих разделах в дальнейшем.
Последующее описывает способ прогнозирования изображения в настоящей заявке подробно с использованием конкретных вариантов. Следует отметить, что последующие несколько конкретных вариантов могут быть скомбинированы одни с другими, и тогда тот же самый или аналогичный контент не описывается повторно для различных вариантов.
Фиг. 9 представляет упрощенную логическую схему первого способа прогнозирования изображения согласно одному из вариантов настоящей заявки. Обращаясь к Фиг. 9, способ прогнозирования изображения, предлагаемый в этом варианте, содержит следующие этапы.
Этап 101: Получение индикации режима разбиения для текущего узла.
В этом варианте, сначала осуществляют синтаксический анализ информации о разбиении текущего узла, где информация о разбиении используется для индикации, производить ли разбиение текущего узла или нет. Если информация о разбиении указывает на необходимость выполнения разбиения текущего узла, получают индикацию режима разбиения для текущего узла. Совокупность режимов разбиения для текущего узла содержит по меньшей мере один из режимов - разбиение по схеме дерева квадратов, вертикальное разбиение по схеме двоичного дерева, горизонтальное разбиение по схеме двоичного дерева, вертикальное разбиение по схеме троичного дерева и горизонтальное разбиение по схеме троичного дерева. Конечно, возможен и другой режим разбиения. В рассматриваемом варианте это ничем специально не ограничивается.
Информация о разбиении для текущего узла может быть передана в потоке битов данных. Информация о разбиении для текущего узла может быть получена посредством синтаксического анализа из соответствующего синтаксического элемента в потоке битов данных, так что может быть определен конкретный режим разбиения. Режим разбиения для текущего узла может быть в качестве альтернативы определен в соответствии с другим заданным правилом. Это в рассматриваемом варианте ничем специально не ограничено.
В этом варианте, если информацию о разбиении для текущего узла, полученную в результате синтаксического анализа, используют для индикации разбиения текущего узла, эта информация содержит, в частности, индикацию режима разбиения для яркостного блока, находящегося в текущем узле, и/или режима разбиения для цветностного блока, находящегося в этом текущем узле. Режим разбиения яркостного блока, находящегося в текущем узле, может быть таким же или может отличаться от режима разбиения цветностного блока, находящегося в этом текущем узле. В рассматриваемом варианте это ничем специально не ограничено. Например, информацию о разбиении используют для индикации, что разбиение по схеме дерева квадратов используется и для яркостного блока, и для цветностного блока, находящихся в текущем узле. В качестве альтернативы, информация о разбиении используется для индикации, что разбиение по схеме дерева квадратов применяется к яркостному блоку в рассматриваемом текущем узле, и вертикальное разбиение по схеме двоичного дерева используется для цветностного блока в этом текущем узле.
Этап 102: Определение, получается ли блок изображения заданного размера в результате разбиения текущего узла в рассматриваемом режиме разбиения.
Блок изображения указанного заданного размера может представлять собой яркостной блок, размер которого меньше пороговой величины. Эта пороговая величина может представлять собой количество отсчетов яркостной составляющей, такое как 128, 64 или 32, либо количество отсчетов цветностной составляющей, такое как 32, 16 или 8. Размер текущего узла может быть не меньше указанной пороговой величины.
Когда определено, что блок изображения указанного заданного размера получается в результате разбиения текущего узла в рассматриваемом режиме разбиения, выполняют этап 103. Когда определено, что блок изображения указанного заданного размера не получается в результате разбиения текущего узла в рассматриваемом режиме разбиения, выполняют этап 104.
Этап 103: Осуществление внутрикадрового прогнозирования или межкадрового прогнозирования на всех блоках кодирования, покрываемых текущим узлом.
Следует отметить, что текущий узел в рассматриваемом варианте можно считать областью изображения или блоком изображения, соответствующим узлу, подлежащему обработке, или узлу, подлежащему разбиению. Все блоки кодирования, покрываемые текущим узлом, можно считать всеми блоками кодирования, расположенными в области, соответствующей текущему узлу. Совокупность всех блоков кодирования в рассматриваемом варианте содержит блок кодирования яркостной составляющей (далее - яркостной блок кодирования) и цветностной блок кодирования, получаемые в результате разбиения или не разбиения текущего узла. Блок кодирования может, в качестве альтернативы, представлять собой единицу кодирования (coding unit).
В качестве опции, выполняемый режим внутрикадрового прогнозирования может представлять собой обычный режим внутрикадрового прогнозирования или внутрикадровый режим (intra mode) или режим копирования IBC (intra block copy).
В качестве опции, когда тип (slice type) среза, в котором находится текущий узел, является типом для внутрикадрового прогнозирования (Intra), внутрикадровое прогнозирование, вместо межкадрового прогнозирования, осуществляется на всех блоках кодирования, покрываемых текущим узлом.
В одном из вариантов реализации, процедура внутрикадрового прогнозирования на всех блоках кодирования, покрываемых текущим узлом, может содержать:
разбиение, в рассматриваемом режиме разбиения, яркостного блока, находящегося в текущем узле, для получения яркостных блоков, являющихся результатом разбиения, и осуществление внутрикадрового прогнозирования на этих яркостных блоках, полученных в результате разбиения; и использование цветностного блока, находящегося в текущем узле, в качестве цветностного блока кодирования, и осуществление внутрикадрового прогнозирования на этом цветностном блоке кодирования.
Другими словами, если определено, что внутрикадровое прогнозирование осуществляется на всех блоках кодирования, находящихся в текущем узле, яркостной блок из этого текущего узла разбивают в режиме разбиения для яркостного блока, для получения N узлов дерева кодирования яркостной составляющей; и не разбивают цветностной блок в текущем узле, с целью получения цветностного блока кодирования (для краткости chroma CB).
Можно ограничить, чтобы N узлов дерева кодирования яркостной составляющей не подвергались дальнейшему разбиению, либо не устанавливать такого ограничения. Если узел дерева кодирования яркостной составляющей претерпевает дальнейшее разбиение, выполняют синтаксический анализ для режима разбиения для узла дерева кодирования яркостной составляющей на предмет рекурсивного разбиения. Когда узел дерева кодирования яркостной составляющей далее не разбивают, этот узел дерева кодирования яркостной составляющей соответствует одному яркостному блоку кодирования (luma CB для краткости). На этом яркостном блоке CB осуществляют внутрикадровое прогнозирование яркостной составляющей для получения яркостного блока прогнозирования, соответствующего яркостному блоку CB.
На цветностном блоке CB осуществляют внутрикадровое прогнозирование для получения цветностного блока прогнозирования, соответствующего этому цветностному блоку CB. Указанный цветностной блок прогнозирования и цветностной блок CB имеют одинаковый размер.
В одном из вариантов реализации, процедура межкадрового прогнозирования на всех блоках кодирования, покрываемых текущим узлом, может содержать:
разбиение, в рассматриваемом режиме разбиения, яркостного блока, находящегося в текущем узле, для получения яркостных блоков, являющихся результатом разбиения, и осуществление межкадрового прогнозирования на этих яркостных блоках, полученных в результате разбиения; и использование цветностного блока, находящегося в текущем узле, в качестве цветностного блока кодирования, и осуществление межкадрового прогнозирования на этом цветностном блоке кодирования.
Другими словами, если определено, что межкадровое прогнозирование осуществляется на всех блоках кодирования, находящихся в текущем узле, яркостной блок из этого текущего узла разбивают в режиме разбиения для яркостного блока, для получения N узлов дерева кодирования яркостной составляющей; и не разбивают цветностной блок в текущем узле, с целью получения цветностного блока кодирования (для краткости chroma CB).
В этом варианте, когда определено, что внутрикадровое прогнозирование осуществляется на всех блоках кодирования, находящихся в текущем узле, или когда определено, что межкадровое прогнозирование осуществляется на всех блоках кодирования, находящихся в текущем узле, яркостной блок в этом текущем узле разбивают в режим разбиения для текущего узла, а цветностной блок в этом текущем узле далее не разбивают. Согласно описанному выше способу, не происходит генерация небольшого цветностного блока, к которому применяется внутрикадровое прогнозирование, и поэтому удается избежать случая, в котором внутрикадровое прогнозирование осуществляется для небольшого цветностного блока.
В одном из вариантов реализации, процедура межкадрового прогнозирования на всех блоках кодирования, покрываемых текущим узлом, может содержать:
разбиение, в рассматриваемом режиме разбиения, яркостного блока, находящегося в текущем узле, для получения яркостных блоков, являющихся результатом разбиения, и осуществление межкадрового прогнозирования на этих яркостных блоках, полученных в результате разбиения; и разбиение в указанном режиме разбиения, цветностного блока, находящегося в текущем узле, для получения цветностных блоков в результате этого разбиения, и осуществление межкадрового прогнозирования на этих цветностных блоках, полученных в результате разбиения.
Другими словами, если определено, что межкадровое прогнозирование осуществляется на всех блоках кодирования, находящихся в текущем узле, яркостной блок из этого текущего узла разбивают в режиме разбиения для яркостного блока, для получения N узлов дерева кодирования яркостной составляющей; и цветностной блок из этого текущего узла разбивают в режиме разбиения для цветностного блока, для получения M узлов дерева кодирования. Здесь N и M являются положительными целыми числами, а также эти N и M могут быть одинаковыми или разными. Можно ограничить, чтобы N узлов дерева кодирования яркостной составляющей и M узлов дерева кодирования цветностной составляющей не подвергались дальнейшему разбиению, либо это ограничение можно не устанавливать. Когда дальнейшее разбиение не осуществляется, N узлов дерева кодирования соответствуют N яркостным блокам CB из текущего узла, и M узлов дерева кодирования цветностной составляющей соответствуют M цветностным блокам CB из текущего узла. На N яркостных блоках CB осуществляют межкадровое прогнозирование для получения соответствующих яркостных блоков прогнозирования, и осуществляют межкадровое прогнозирование на M цветностных блоках CB для получения соответствующих цветностных блоков прогнозирования.
В качестве опции, когда межкадровое прогнозирование осуществляется на всех блоках кодирования, покрываемых текущим узлом, процедура межкадрового прогнозирования на всех блоках кодирования, покрываемых текущим узлом, может содержать:
получение индикации под-режима разбиения для узла потомка относительно текущего узла, где этот узел потомок содержит яркостной блок и цветностной блок; определение, может ли быть получен ли яркостной блок первого заданного размера посредством разбиения узла потомка относительно текущего узла в указанном под-режиме разбиения; и когда определено, что яркостной блок первого заданного размера может быть получен (получается) в результате разбиения узла потомка относительно текущего узла в указанном под-режиме разбиения, осуществление такого разбиения узла потомка относительно текущего узла в режиме разбиения, отличном от указанного под-режима разбиения, с целью получения соответствующего блока кодирования, и осуществление межкадрового прогнозирования на соответствующем блоке кодирования; либо использование узла потомка относительно текущего узла в качестве блока кодирования, и осуществление межкадрового прогнозирования на этом узле потомке относительно текущего узла.
Другими словами, если в результате разбиения узла потомка относительно текущего узла в под-режиме разбиения получается яркостной блок первого заданного размера (4×4), этот под-режим разбиения узла потомка не допустим, или не допускается дальнейшее разбиение этого узла потомка, либо узел потомок разбивают в режиме разбиения, отличном от указанного под-режима разбиения. Например, если размер текущего узла равен 8×8 и посредством горизонтального разбиения этого узла по схеме двоичного дерева (или вертикального разбиения по схеме двоичного дерева) генерируют два узла размером 8×4 (или 4×8) каждый, тогда в случае дальнейшего разбиения такого узла размером 8×4 (или 4×8) получаются узлы размером 4×4. В этом случае дальнейшее разбиение узла размером 8×4 (или 4×8) не допускается.
Этап 104: Разбиение текущего узла в режиме разбиения для этого текущего узла, где режим прогнозирования, используемый для всех блоков кодирования, покрываемых текущим узлом, не ограничен.
В частности, яркостной блок, находящийся в этом текущем узле, разбивают с применением режима разбиения для яркостного блока этого текущего узла, и цветностной блок, находящийся в этом текущем узле, разбивают с применением режима разбиения для цветностного блока этого текущего узла.
Следует отметить, что слова «режим прогнозирования, используемый для всех блоков кодирования, покрываемых текущим узлом, не ограничен» на этапе 104 можно понимать как: Не все блоки кодирования, покрываемые текущим узлом, могут быть прогнозируемыми в одном и том же режиме прогнозирования, иными словами, режим прогнозирования для каждого блока кодирования определяют посредством синтаксического анализа, и каждый блок кодирования прогнозируют в режиме прогнозирования, найденном в результате синтаксического анализа.
В качестве опции, после этапа 103 или этапа 104, способ дополнительно содержит:
Этап 105: Синтаксический анализ блоков прогнозирования и информации остатка для всех блоков кодирования, покрываемых текущим узлом.
Этап 106: Декодирование каждого блока кодирования с целью получения реконструированного сигнала блока изображения, соответствующего текущему узлу.
Следует отметить, что приведенные выше два этапа могут быть использованы в декодирующем устройстве 24 для видео, показанном на Фиг. 8.
Блок прогнозирования содержит индикацию режима прогнозирования (указывающую режим внутрикадрового прогнозирования или режим, не являющийся режимом внутрикадрового прогнозирования), режим внутрикадрового прогнозирования, режим межкадрового прогнозирования, информацию о движении и другие подобные данные. Информация о движении может содержать такую информацию, как направление прогнозирования (вперед, назад или двунаправленное прогнозирование), индекс опорного кадра (reference index) и вектор движения (motion vector).
Информация остатка содержит: флаг кодированного блока (coded block flag, cbf), коэффициент преобразования, тип преобразования (такой как DCT-2, DST-7 или DCT-8) и другую подобную информацию. По умолчанию тип преобразования может соответствовать DCT-2.
Если ограничиться тем, что только внутрикадровое прогнозирование осуществляется на всех блоках кодирования, покрываемых текущим узлом, процедура синтаксического анализа блока прогнозирования для яркостного блока CB, полученного в результате разбиения текущего узла, содержит: установление значения флага skip_flag, значения флага merge_flag и значения флага cu_pred_mode равными соответственно 0, 0 и 1 по умолчанию (иными словами, флаг skip_flag, флаг merge_flag и флаг cu_pred_mode - все отсутствуют в потоке битов данных), или установление значения флага skip_flag и значения флага cu_pred_mode равными соответственно 0 и 1 по умолчанию (иными словами, флаг skip_flag и флаг cu_pred_mode - оба отсутствуют в потоке битов данных); и проведение синтаксического анализа информации о режиме внутрикадрового прогнозирования для яркостного блока CB. Процедура синтаксического анализа блока прогнозирования для цветностного блока CB, полученного в результате разбиения текущего узла, содержит: проведение синтаксического анализа режима внутрикадрового прогнозирования для цветностного блока CB. Синтаксический анализ режима внутрикадрового прогнозирования для цветностного блока CB может быть осуществлен следующим способом: (1) проведение синтаксического анализа синтаксического элемента в потоке битов данных для получения индикации режима внутрикадрового прогнозирования; или (2) прямое установление режима внутрикадрового прогнозирования, соответствующего одному из режимов внутрикадрового прогнозирования из совокупности режимов внутрикадрового прогнозирования для цветностной составляющей, таких как режим линейной модели, DM-режим (выводимый режим (derived mode, DM) для цветностной составляющей (chroma derived mode, DM)), режим копирования IBC и другие подобные режимы.
Если ограничиться тем, что только межкадровое прогнозирование осуществляется на всех блоках кодирования, покрываемых текущим узлом, процедура синтаксического анализа режима прогнозирования для единицы CU, полученной в результате разбиения текущего узла, содержит: проведение синтаксического анализа флага skip_flag или/и флага merge_flag, установление значения флага cu_pred_mode на 0 по умолчанию, и проведение синтаксического анализа блока межкадрового прогнозирования для определения таких параметров, как индекс объединения (merge index), направление межкадрового прогнозирования (inter dir), опорный индекс (reference index), индекс предиктора вектора движения (motion vector predictor index) и разность векторов движения (motion vector difference).
Флаг skip_flag представляет собой флаг режима пропуска. Когда значение флага skip_flag равно 1, это означает, что для текущей единицы CU используется режим пропуска, или когда значение флага skip_flag равно 0, это означает, что режим пропуска не используется для текущей единицы CU. Флаг merge_flag представляет собой флаг режима объединения. Когда значение флага merge_flag равно 1, это означает, что для текущей единицы CU используется режим объединения, или когда значение флага merge_flag равно 0, это означает, что режим объединения не используется для текущей единицы CU. Флаг cu_pred_mode представляет собой флаг режима прогнозирования для единицы кодирования. Когда значение флага cu_pred_mode равно 1, это означает, что для текущей единицы прогнозирования осуществляется внутрикадровое прогнозирование, или когда значение флага cu_pred_mode равен 0, это означает, что для текущей единицы прогнозирования осуществляется обычное межкадровое прогнозирование (идентификация такой информации, как направление межкадрового прогнозирования, опорный индекс, индекс предиктора вектора движения и разность векторов движения в потоке битов данных).
В качестве опции, если ограничиться тем, что только межкадровое прогнозирование осуществляется на всех блоках кодирования, покрываемых текущим узлом, процедура синтаксического анализа блока прогнозирования для яркостного блока CB, полученного в результате разбиения текущего узла, содержит: проведение синтаксического анализа флага skip_flag или/и флага merge_flag, установление значения флага cu_pred_mode на 0 по умолчанию и проведение синтаксического анализа блока межкадрового прогнозирования для определения таких параметров, как индекс объединения (merge index), направление межкадрового прогнозирования (inter dir), опорный индекс (reference index), индекс предиктора вектора движения (motion vector predictor index) и разность векторов движения (motion vector difference). Информацию о движении для каждого субблока размером 4×4 в яркостном блоке CB определяют на основе блока межкадрового прогнозирования, полученного посредством синтаксического анализа. Если ограничиться тем, что только межкадровое прогнозирование осуществляется на всех блоках кодирования, покрываемых текущим узлом, блок прогнозирования для цветностного блока CB, полученного в результате разбиения текущего узла, не нуждается в синтаксическом анализе. Цветностной блок CB разбивают на цветностные субблоки размером 2×2 (режим разбиения может быть режимом разбиения S). Информация о движении для каждого цветностного субблока размером 2×2 является информацией о движении для области яркостной составляющей размером 4×4, соответствующей каждому цветностному субблоку размером 2×2. В описанном выше режиме разбиения, не происходит генерация небольших цветностных блоков, на которых осуществляется внутрикадровое прогнозирование, либо не происходит генерация блоков преобразования размером меньше 16 пикселей. Это позволяет преодолеть описанные выше проблемы - проблему в межкадровом прогнозировании и проблему в кодировании коэффициентов.
В качестве опции, если ограничиться тем, что только межкадровое прогнозирование осуществляется на всех блоках кодирования, покрываемых текущим узлом, нет необходимости подвергать синтаксическому анализу блок прогнозирования для цветностного блока CB, полученного в результате разбиения текущего узла. Эти цветностной блок прогнозирования и цветностной блок кодирования имеют одинаковый размер. Информация о движении цветностного блока CB представляет собой информацию о движении заданной позиции в области яркостной составляющей (например, центра, нижнего правого угла или верхнего левого угла этой области яркостной составляющей), соответствующей рассматриваемому цветностному блоку CB. В рассмотренном выше режиме разбиения, не происходит генерация небольших цветностных блоков, на которых осуществляется внутрикадровое прогнозирование, либо не происходит генерация небольших блоков преобразования, либо не происходит генерация небольших цветностных блоков, на которых осуществляется межкадровое прогнозирование.
Следует отметить, что, в этом варианте, режим внутрикадрового прогнозирования представляет собой режим прогнозирования, в котором генерируют предиктор блока кодирования с использованием опорного пикселя в пространственной области для изображения, в каком расположен этот блок кодирования. Например, режим внутрикадрового прогнозирования может представлять собой прямой текущий режим (direct current mode, DC mode), планарный режим (Planar mode), угловой режим (angular mode), режим согласования с шаблоном (template matching mode) или режим копирования IBC. Режим межкадрового прогнозирования представляет собой режим прогнозирования, в котором генерируют предиктор блока кодирования с использованием опорного пикселя во временной области для опорного изображения, в каком расположен этот блок кодирования. Например, режим межкадрового прогнозирования может представлять собой режим пропуска (Skip mode), режим объединения (Merge mode) или режим усовершенствованного прогнозирования вектора движения (AMVP (advanced motion vector prediction)) (что также называется обычным режимом межкадрового прогнозирования).
Для каждого блока кодирования межкадровое прогнозирование или внутрикадровое прогнозирование осуществляется на основе блока прогнозирования для этого блока кодирования, с целью получения изображения межкадрового прогнозирования или изображения внутрикадрового прогнозирования для рассматриваемого блока кодирования. Затем, на основе информации остатка для каждого блока кодирования, выполняют процедуру деквантования и процедуру обратного преобразования применительно к коэффициенту преобразования с целью получения остаточного изображения, и суммируют это остаточное изображение с прогнозируемым изображением соответствующей области для генерации реконструированного изображения.
В качестве опции, в одном из возможных вариантов реализации, блок изображения указанного заданного размера содержит яркостной блок первого заданного размера, и соответственно, этап 102 содержит:
определение, получается ли яркостной блок первого заданного размера в результате разбиения текущего узла в рассматриваемом режиме разбиения для яркостного блока текущего узла, где яркостной блок первого заданного размера представляет собой яркостной блок размером 4×4 пикселей.
Когда яркостной блок первого заданного размера получается в результате разбиения текущего узла в рассматриваемом режиме разбиения для яркостного блока текущего узла, соответственно, этап 103 содержит: осуществление внутрикадрового прогнозирования на всех блоках кодирования, покрываемых текущим узлом.
Когда яркостной блок первого заданного размера не получается в результате разбиения текущего узла в рассматриваемом режиме разбиения для яркостного блока текущего узла, соответственно, этап 104 содержит: разбиение яркостного блока текущего узла в режиме разбиения для яркостного блока текущего узла и разбиение цветностного блока текущего узла в режиме разбиения для этого цветностного блока текущего узла, где режим прогнозирования, используемый для всех блоков кодирования, покрываемых текущим узлом, не ограничиваются.
В качестве опции, в другом возможном варианте реализации, блок изображения указанного заданного размера содержит цветностной блок второго заданного размера, и соответственно, этап 102 содержит:
определение, получается ли этот цветностной блок второго заданного размера в результате разбиения текущего узла в рассматриваемом режиме разбиения для цветностного блока текущего размера, где цветностной блок второго заданного размера представляет собой цветностной блок размером 2×2, 2×4 или 4×2 пикселей.
Когда цветностной блок второго заданного размера получается в результате разбиения цветностного блока текущего узла в режиме разбиения для этого цветностного блока текущего узла, соответственно, этап 103 содержит: осуществление внутрикадрового прогнозирования или межкадрового прогнозирования для всех блоков кодирования, покрываемых текущим узлом.
Когда цветностной блок второго заданного размера не получается в результате разбиения цветностного блока текущего узла в режиме разбиения для этого цветностного блока текущего узла, соответственно, этап 104 содержит: разбиение цветностного блока текущего узла в режиме разбиения для этого цветностного блока текущего узла и разбиение яркостного блока этого текущего узла в режиме разбиения для этого яркостного блока текущего узла, где режим прогнозирования, используемый для всех блоков кодирования, покрываемых текущим узлом, не ограничен.
Соответственно способу прогнозирования изображения, предлагаемому в этом варианте, получают индикацию режима разбиения для текущего узла и определяют, получается ли блок изображения указанного заданного размера в результате разбиения текущего узла в рассматриваемом режиме разбиения для текущего узла, где этот блок изображения представляет собой яркостной блок или цветностной блок. Когда этот блок изображения указанного заданного размера получается в результате разбиения текущего узла в рассматриваемом режиме разбиения для этого текущего узла, осуществляют внутрикадровое прогнозирование или межкадровое прогнозирование на всех блоках кодирования, покрываемых текущим узлом. Согласно изложенному выше способу, внутрикадровое прогнозирование или межкадровое прогнозирование осуществляют на всех блоках кодирования текущего узла, так что может быть реализована параллельная обработка для всех блоков кодирования, находящихся в текущем узле. Это улучшает характеристики (производительность) прогнозирования изображения и увеличивает скорость выполнения процедуры кодирования.
На основе варианта, показанного на Фиг. 9, процедура определения, получается ли яркостной блок первого заданного размера в результате разбиения текущего узла в режиме разбиения для яркостного блока этого текущего узла, описана подробно в соответствии со способом прогнозирования изображения, предлагаемым в следующем варианте. Конкретно описан набор условий для определения, получается ли яркостной блок первого заданного размера.
Фиг. 10 представляет упрощенную логическую схему второго способа прогнозирования изображения согласно одному из вариантов настоящей заявки. Как показано на Фиг. 10, способ прогнозирования изображения, предлагаемый в этом варианте, содержит следующие этапы.
Этап 201: Получение индикации режима разбиения для текущего узла.
В частности, выполняют синтаксический анализ информации о разбиении текущего узла. Если эта информация о разбиении указывает, что нужно разбить яркостной блок из текущего узла, далее определяют режим разбиения этого яркостного блока из текущего узла. Этот режим разбиения яркостного блока содержит по меньшей мере одну из операций - разбиение по схеме дерева квадратов, вертикальное разбиение по схеме двоичного дерева, горизонтальное разбиение по схеме двоичного дерева, вертикальное разбиение по схеме троичного дерева и/или горизонтальное разбиение по схеме троичного дерева. Безусловно, может быть и другой режим разбиения. Это в рассматриваемом варианте ничем специально не ограничено.
Этап 202: Определение, на основе размера текущего узла и режима разбиения этого текущего узла, получается ли яркостной блок первого заданного размера в результате разбиения текущего узла в рассматриваемом режиме разбиения.
Указанный яркостной блок первого заданного размера может представлять собой яркостной блок размером 4×4 или 8×8 пикселей.
Когда определено, что яркостной блок первого заданного размера получается в результате разбиения текущего узла в рассматриваемом режиме разбиения, выполняют этап 203. Когда определено, что яркостной блок первого заданного размера не получается в результате разбиения текущего узла в рассматриваемом режиме разбиения, выполняют этап 204.
В частности, определяют, на основе размера текущего узла и режима разбиения яркостного блока, находящегося в этом текущем узле, получается ли яркостной блок первого заданного размера в результате разбиения текущего узла в рассматриваемом режиме разбиения для яркостного блока.
В этом варианте, под размером текущего узла можно понимать размер в пикселях блока изображения, соответствующего этому текущему узлу. Размер текущего узла может быть определен на основе ширины и высоты блока изображения, соответствующего этому текущему узлу, или может быть определен на основе площади блока изображения, соответствующего этому текущему узлу, или может быть определен на основе количества пикселей яркостной составляющей в блоке изображения, соответствующем этому текущему узлу. Например, тот факт, что текущий узел содержит 128 пикселей яркостной составляющей, может быть описан как то, что площадь текущего узла равна 128, или как то, что произведение ширины текущего узла на его высоту равно 128.
Определение, на основе размера текущего узла и режима разбиения для яркостного блока этого текущего узла, что яркостной блок первого заданного размера получается в результате разбиения текущего узла в рассматриваемом режиме разбиения для яркостного блока, осуществляется на основе одного или нескольких условий из следующего первого набора:
(1) текущий узел содержит M1 пикселей, и режим разбиения текущего узла представляет собой разбиение по схеме дерева квадратов, где, например, M1 равно 64;
(2) текущий узел содержит M2 пикселей, и режим разбиения текущего узла представляет собой разбиение по схеме троичного дерева, где, например, M2 равно 64;
(3) текущий узел содержит M3 пикселей, и режим разбиения текущего узла представляет собой разбиение по схеме двоичного дерева, где, например, M3 равно 32;
(4) текущий узел содержит 64 пикселя яркостной составляющей, и для текущего узла используется разбиение по схеме троичного дерева (вертикальное разбиение по схеме троичного дерева или горизонтальное разбиение по схеме троичного дерева) или разбиение по схеме дерева квадратов; либо текущий узел содержит 32 пикселя яркостной составляющей, и для текущего узла используется разбиение по схеме двоичного дерева (вертикальное разбиение по схеме двоичного дерева или горизонтальное разбиение по схеме двоичного дерева);
(5) ширина текущего узла в четыре раза больше второй пороговой величины, высота текущего узла равна второй пороговой величине и режим разбиения текущего узла представляет собой вертикальное разбиение по схеме троичного дерева;
(6) ширина текущего узла равна второй пороговой величине, высота текущего узла в четыре раза больше второй пороговой величины и режим разбиения текущего узла представляет собой горизонтальное разбиение по схеме троичного дерева;
(7) ширина текущего узла в два раза больше второй пороговой величины, высота текущего узла равна второй пороговой величине и режим разбиения текущего узла представляет собой вертикальное разбиение по схеме двоичного дерева;
(8) высота текущего узла в два раза больше второй пороговой величины, ширина текущего узла равна второй пороговой величине и режим разбиения текущего узла представляет собой горизонтальное разбиение по схеме двоичного дерева; или
(9) ширина и/или высота текущего узла вдвое больше второй пороговой величины и режим разбиения текущего узла представляет собой разбиение по схеме дерева квадратов.
В приведенном выше первом наборе ширина текущего узла представляет собой ширину яркостного блока, соответствующего этому текущему узлу, и высота текущего узла представляет собой высоту яркостного блока, соответствующего этому текущему узлу. В одном из конкретных вариантов реализации, например, вторая пороговая величина может быть равна 4.
Приведенный выше первый набор применим к формату данных видео YUV 4:2:0 или YUV 4:2:2.
В качестве опции, когда яркостной блок первого заданного размера представляет собой яркостной блок размером 4×4 пикселей, определение, на основе размера текущего узла и режима разбиения этого текущего узла, получается ли яркостной блок первого заданного размера в результате разбиения текущего узла в рассматриваемом режиме разбиения, может быть произведено на основе одного из следующий условий:
(1) количество отсчетов яркостного блока из текущего узла равно 64, и режим разбиения представляет собой разбиение по схеме дерева квадратов;
(2) количество отсчетов яркостного блока из текущего узла равно 64, и режим разбиения представляет собой разбиение по схеме троичного дерева; или
(3) количество отсчетов яркостного блока из текущего узла равно 32, и режим разбиения представляет собой разбиение по схеме двоичного дерева.
Количество отсчетов яркостного блока из текущего узла равно количеству пикселей яркостной составляющей (размеру в пикселях (pixel size)) блока изображения, соответствующего текущему узлу.
Этап 203: Осуществление внутрикадровое прогнозирование на всех блоках кодирования, покрываемых текущим узлом.
В альтернативном варианте этапа 203, внутрикадровое прогнозирование может быть осуществлено только на блоке кодирования для яркостного блока первого заданного размера, а режим прогнозирования для другого блока кодирования, покрываемого текущим узлом, не ограничен.
Процедура внутрикадрового прогнозирования на всех блоках кодирования, покрываемых текущим узлом, может содержать:
разбиение, в соответствующем режиме разбиения, яркостного блока, находящегося в текущем узле, для получения яркостных блоков в результате разбиения, и осуществление внутрикадрового прогнозирования на яркостных блоках, полученных в результате разбиения; и использование цветностного блока, находящегося в текущем узле, в качестве цветностного блока кодирования, и осуществление внутрикадрового прогнозирования на этом цветностном блоке кодирования.
Другими словами, если определено, что внутрикадровое прогнозирование осуществляется на всех блоках кодирования, находящихся в текущем узле, яркостной блок из текущего узла разбивают в режиме разбиения для этого яркостного блока, с целью получения N узлов дерева кодирования яркостной составляющей; а цветностной блок текущего узла не разбивают, для получения цветностного блока кодирования (chroma CB для краткости).
Можно ввести ограничение, что N узлов дерева кодирования яркостной составляющей далее не разбивают, или не вводить этого ограничения. Если узел дерева кодирования яркостной составляющей разбивают далее, осуществляют синтаксический анализ режима разбиения для этого узла дерева кодирования яркостной составляющей с целью обеспечения рекурсивного разбиения. Когда узел дерева кодирования яркостной составляющей далее не разбивают, этот узел соответствует одному яркостному блоку кодирования (luma CB для краткости). На этом яркостном блоке CB осуществляют внутрикадровое прогнозирование для получения яркостного блока прогнозирования, соответствующего рассматриваемому яркостному блоку CB.
На цветностном блоке CB осуществляют внутрикадровое прогнозирование для получения цветностного блока прогнозирования, соответствующего этому цветностному блоку CB. Цветностной блок прогнозирования и цветностной блок CB имеют одинаковый размер.
В качестве опции, процедура внутрикадрового прогнозирования на всех блоках кодирования, покрываемых текущим узлом, может содержать:
использование яркостного блока, находящегося в текущем узле, в качестве яркостного блока кодирования, и осуществление внутрикадрового прогнозирования на этом яркостном блоке кодирования; и использование цветностного блока, находящегося в текущем узле, в качестве цветностного блока кодирования, и осуществление внутрикадрового прогнозирования на этом цветностном блоке кодирования. Другими словами, оба блока - и яркостной блок, и цветностной блок, находящиеся в текущем узле, могут не быть повергнуты дальнейшему разбиению.
Этап 204: Разбиение текущего узла в режиме разбиения для этого текущего узла, где режим прогнозирования, используемый для всех блоков кодирования, покрываемых текущим узлом, не ограничен.
Этап 204 в этом варианте является таким же, как этап 104 в варианте, показанном на Фиг. 9. Подробнее см. в приведенном выше варианте. Подробности здесь снова описаны не будут.
В качестве опции, после этапа 203 или этапа 204, способ дополнительно содержит:
Этап 205: Синтаксический анализ блоков прогнозирования и информации остатка для всех блоков кодирования, покрываемых текущим узлом.
Этап 206: Декодирование каждого блока кодирования для получения реконструированного сигнала блока изображения, соответствующего текущему узлу.
Этап 205 и этап 206 в этом варианте являются такими же, как этап 105 и этап 106 в варианте, показанном на Фиг. 9. Подробнее см. в приведенном выше варианте. Подробности здесь снова описаны не будут.
Согласно способу прогнозирования изображения, предлагаемому в этом варианте, получают индикацию режима разбиения для рассматриваемого текущего узла; получается ли яркостной блок первого заданного размера в результате разбиения текущего узла в рассматриваемом режиме разбиения яркостного блока, определяют на основе размера этого текущего узла и режима разбиения для этого яркостного блока; и когда определено, что яркостной блок первого заданного размера получается в результате разбиения текущего узла в рассматриваемом режиме разбиения для яркостного блока, внутрикадровое прогнозирование осуществляется на всех блоках кодирования, покрываемых текущим узлом. Согласно приведенному выше способу, внутрикадровое прогнозирование осуществляется на всех блоках кодирования, находящихся в текущем узле, так что может быть реализована параллельная обработка на всех блоках кодирования из текущего узла. Это улучшает характеристики (производительность) процедуры прогнозирования изображения, и увеличивает скорость выполнения процедуры кодирования.
Фиг. 11 представляет упрощенную логическую схему третьего способа прогнозирования изображения согласно одному из вариантов настоящей заявки. На основе варианта, показанного на Фиг. 10, как представлено на Фиг. 11, следует отметить, что техническое решение, показанное на Фиг. 11, может представлять собой техническое решение, используемое в случае формата YUV 4:2:0 или YUV 4:2:2 данных видео или в случае только формата YUV 4:2:0 данных видео. Когда определено, что яркостной блок первого заданного размера не получается в результате разбиения текущего узла в рассматриваемом режиме разбиения, этап 204 может содержать следующие этапы.
Этап 2041: Определение, получается ли цветностной блок второго заданного размера в результате разбиения текущего узла в рассматриваемом режиме разбиения.
Когда определено, что цветностной блок второго заданного размера получается в результате разбиения текущего узла в рассматриваемом режиме разбиения, осуществляют этап 2042. Когда определено, что цветностной блок второго заданного размера не получается в результате разбиения текущего узла в рассматриваемом режиме разбиения, выполняют этап 2043.
В частности, этап 2041 содержит: определение, на основе размера текущего узла и режима разбиения для цветностного блока, получается ли цветностной блок второго заданного размера в результате разбиения текущего узла в рассматриваемом режиме разбиения для цветностного блока. Этот цветностной блок второго заданного размера может представлять собой цветностной блок размером 2×2, 2×4 или 4×2 пикселей.
Определение, на основе размера текущего узла и режима разбиения для цветностного блока, что цветностной блок второго заданного размера получается в результате разбиения текущего узла в рассматриваемом режиме разбиения цветностного блока, осуществляется на основе одного или нескольких условий из следующего второго набора.
Когда данные видео имеют формат YUV 4:2:2, второй набор содержит:
(1) размер цветностного блока по меньшей мере из одного узла потомка относительно текущего узла равен 2×2, 2×4 или 4×2 пикселей;
(2) ширина или высота цветностного блока по меньшей мере из одного узла потомка относительно текущего узла равна 2;
(3) текущий узел содержит 64 пикселя яркостной составляющей, а режим разбиения текущего узла представляет собой разбиение по схеме троичного дерева или разбиение по схеме дерева квадратов;
(4) текущий узел содержит 32 пикселя яркостной составляющей, а режим разбиения текущего узла представляет собой разбиение по схеме двоичного дерева или разбиение по схеме троичного дерева; или
(5) площадь (или произведение ширины на высоту) текущего узла равна S, где S/2< th1, и режим разбиения для текущего узла представляет собой вертикальное разбиение по схеме двоичного дерева или горизонтальное разбиение по схеме двоичного дерева; или площадь (или произведение ширины на высоту) текущего узла равна S, где S/4<th1, и режим разбиения текущего узла представляет собой вертикальное разбиение по схеме троичного дерева, горизонтальное разбиение по схеме троичного дерева или разбиение по схеме дерева квадратов. Пороговая величина th1 равна 32.
Когда данные видео имеют формат YUV 4:2:0, второй набор содержит:
(1) размер цветностного блока по меньшей мере из одного узла потомка относительно текущего узла равен 2×2, 2×4 или 4×2 пикселей;
(2) ширина или высота цветностного блока по меньшей мере из одного узла потомка относительно текущего узла равна 2;
(3) текущий узел содержит 128 пикселей яркостной составляющей, и для текущего узла используется разбиение по схеме троичного дерева; или текущий узел содержит 64 пикселя яркостной составляющей, и для текущего узла используется разбиение по схеме двоичного дерева, разбиение по схеме дерева квадратов или разбиение по схеме троичного дерева;
(4) текущий узел содержит 256 пикселей яркостной составляющей, и для этого узла используется разбиение по схеме троичного дерева или разбиение по схеме дерева квадратов; или текущий узел содержит 128 пикселей яркостной составляющей, и для этого текущего узла используется разбиение по схеме двоичного дерева;
(5) текущий узел содержит N1 пикселей яркостной составляющей, и для текущего узла используется разбиение по схеме троичного дерева, где N1 равно 64, 128 или 256;
(6) текущий узел содержит N2 пикселей яркостной составляющей, и для текущего узла используется разбиение по схеме дерева квадратов, где N2 равно 64 или 256;
(7) текущий узел содержит N3 пикселей яркостной составляющей, и для текущего узла используется разбиение по схеме двоичного дерева, где N3 равно 64, 128 или 256; или
(8) площадь (или произведение ширины на высоту) текущего узла равна S, где S/2<th1, и режим разбиения для текущего узла представляет собой вертикальное разбиение по схеме двоичного дерева или горизонтальное разбиение по схеме двоичного дерева; или площадь (или произведение ширины на высоту) текущего узла равна S, где S/4<th1, и режим разбиения для текущего узла представляет собой вертикальное разбиение по схеме троичного дерева, горизонтальное разбиение по схеме троичного дерева или разбиение по схеме дерева квадратов. Пороговая величина th1 равно 64.
В качестве опции, яркостной блок первого заданного размера может представлять собой яркостной блок размером 4×4. Когда яркостной блок первого заданного размера представляет собой яркостной блок размером 4×4, цветностной блок второго заданного размера может представлять собой цветностной блок размером 2×4 пикселей или цветностной блок размером 4×2 пикселей, исключая цветностной блок размером 2×2 пикселей.
В качестве опции, яркостной блок первого заданного размера может представлять собой яркостной блок размером 4×4. Когда яркостной блок первого заданного размера представляет собой яркостной блок размером 4×4, цветностной блок второго заданного размера может представлять собой яркостной блок размером 4×8 или яркостной блок размером 8×4, исключая яркостной блок размером 4×4.
В качестве опции, когда цветностной блок второго заданного размера представляет собой цветностной блок размером 2×4, цветностной блок размером 4×2, яркостной блок размером 4×8, или яркостной блок размером 8×4, определение, получается ли цветностной блок второго заданного размера в результате разбиения текущего узла в рассматриваемом режиме разбиения, может быть произведено на основе одного из следующих условий:
(1) количество отсчетов яркостного блока из текущего узла равно 64, и режим разбиения представляет собой разбиение по схеме двоичного дерева; или
(2) количество отсчетов яркостного блока из текущего узла равно 128, и режим разбиения представляет собой разбиение по схеме троичного дерева.
Этап 2042: Осуществление внутрикадрового прогнозирования или межкадрового прогнозирования на всех блоках кодирования, покрываемых текущим узлом.
Осуществляется ли внутрикадровое прогнозирование или межкадровое прогнозирование на всех блоках кодирования, покрываемых текущим узлом, может быть определено в соответствии со следующим способом.
Способ 1: Выполнение синтаксического анализа флага статуса режима прогнозирования для текущего узла; и если этот флаг статуса режима прогнозирования имеет первое значение, осуществление межкадрового прогнозирования на всех блоках кодирования, покрываемых текущим узлом; или когда флаг статуса режима прогнозирования имеет второе значение, осуществление внутрикадрового прогнозирования на всех блоках кодирования, покрываемых текущим узлом.
В этом способе, режим прогнозирования, используемый для всех блоков кодирования, покрываемых текущим узлом, фактически определяют на основе флага в синтаксической таблице. В частности, флаг статуса режима прогнозирования cons_pred_mode_flag выделяют посредством синтаксического анализа из потока битов данных. Когда первое значение флага cons_pred_mode_flag устанавливают равным 0, это означает, что межкадровое прогнозирование осуществляется на всех блоках кодирования, которые получены посредством разбиения или не разбиения текущего узла, и когда второе значение этого флага cons_pred_mode_flag устанавливают равным 1, это означает, что внутрикадровое прогнозирование осуществляется на всех блоках кодирования, которые получены посредством разбиения или не разбиения текущего узла. В качестве опции, когда первое значение флага cons_pred_mode_flag устанавливают равным 1, это означает, что межкадровое прогнозирование осуществляется на всех блоках кодирования, осуществляется на всех блоках кодирования, которые получены посредством разбиения или не разбиения текущего узла, и когда второе значение этого флага cons_pred_mode_flag устанавливают равным 0, это означает, что внутрикадровое прогнозирование осуществляется на всех блоках кодирования, которые получены посредством разбиения или не разбиения текущего узла. Значение флага cons_pred_mode_flag может быть в качестве альтернативы обозначено другим флагом (например, mode_cons_flag). Это не ограничено в рассматриваемом варианте.
Флаг cons_pred_mode_flag может представлять собой синтаксический элемент, который необходимо подвергнуть синтаксическому анализу в процессе разбиения блоков. Когда производится синтаксический анализ указанного синтаксического элемента, параметр cu_pred_mode режима прогнозирования для единицы кодирования, относящийся к единице кодирования, находящейся в зоне покрытии текущего узла, может не подвергаться дальнейшему синтаксическому анализу, и значение параметра cu_pred_mode представляет собой значение по умолчанию, соответствующее значению флага cons_pred_mode_flag.
Синтаксический элемент cons_pred_mode_flag семантически описывают как: Когда значение флага cons_pred_mode_flag равно 0, это означает, что только межкадровое прогнозирование осуществляется применительно к единицам кодирования, покрываемым текущим узлом; или когда значение флага cons_pred_mode_flag равно 1, это означает, что только внутрикадровое прогнозирование осуществляется на блоках кодирования, покрываемых текущим узлом.
Если текущий узел располагается в области изображения, кодируемой с внутрикадровым прогнозированием, (иными словами, тип изображения или среза (slice_type), где располагается текущий узел, является «внутрикадровым» типом или I-типом), и допускается использовать режим с копированием IBC, величину параметра cu_pred_mode определяют как 1, и эту величину параметра cu_pred_mode получают без необходимости синтаксического анализа потока битов данных. Если текущий узел располагается в области изображения с внутрикадровым прогнозированием, но использование режима с копированием IBC не допускается, величину параметра cu_pred_mode определяют как 1, значение флага cu_skip_flag равно 0, и значение параметра cu_pred_mode получают без необходимости синтаксического анализа потока битов данных.
Если текущий узел располагается в области изображения с межкадровым прогнозированием (иными словами, тип изображения или среза (slice_type), где располагается текущий узел, является «межкадровым» типом или B-типом), значение параметра cu_pred_mode определяют как 0, и значение параметра cu_pred_mode получают без необходимости синтаксического анализа потока битов данных.
Режим прогнозирования с копированием IBC можно считать режимом внутрикадрового прогнозирования, поскольку опорный пиксель для прогнозирования с копированием IBC является реконструированным пикселем в текущем изображении. Следовательно, в этом варианте настоящей заявки, внутрикадровое прогнозирование может содержать режим копирования IBC. Другими словами, в этом варианте настоящей заявки, режим копирования IBC, обычный режим внутрикадрового прогнозирования или режим копирования IBC + обычный режим внутрикадрового прогнозирования могут быть использованы для внутрикадрового прогнозирования. Следовательно, в этом варианте настоящей заявки, можно окончательно понять, что внутрикадровое прогнозирование является не-межкадровым прогнозированием.
В качестве опции, тип (slice type) среза, в котором находится текущий узел, не является типом для внутрикадрового прогнозирования (внутрикадровым) (Intra) типом.
Способ 2: Когда режим прогнозирования, используемый для какого-либо из блоков кодирования, покрываемых текущим узлом, является режимом межкадрового прогнозирования, межкадровое прогнозирование осуществляется на всех блоках кодирования, покрываемых текущим узлом; или когда режим прогнозирования, используемый для какого-либо из блоков кодирования, покрываемых текущим узлом, является режимом внутрикадрового прогнозирования, внутрикадровое прогнозирование осуществляется на всех блоках кодирования, покрываемых текущим узлом.
В этом способе, режим прогнозирования, используемый для всех блоков кодирования, покрываемых текущим узлом, фактически определяют на основе режима прогнозирования, используемого каким-либо из блоков кодирования, покрываемых текущим узлом.
В качестве опции, этот какой-либо блок кодирования является 1-м блоком кодирования из всех блоков кодирования, покрываемых текущим узлом, в порядке декодирования. В частности, режим прогнозирования для 1-го блока B0 кодирования в области текущего узла подвергают синтаксическому анализу, и режим прогнозирования для 1-го блока B0 кодирования в этом варианте не ограничивается. Когда посредством синтаксического анализа определено, что режим прогнозирования для блока B0 кодирования является режимом внутрикадрового прогнозирования, внутрикадровое прогнозирование осуществляют на всех блоках кодирования, покрываемых текущим узлом. Когда посредством синтаксического анализа определено, что режим прогнозирования для блока B0 кодирования является режимом межкадрового прогнозирования, межкадровое прогнозирование осуществляется на всех блоках кодирования, покрываемых текущим узлом.
Следует отметить, что этапы, выполняемые согласно приведенным выше способу 1 и способу 2, могут быть использованы в декодирующем устройстве 24 для видео, показанном на Фиг. 8.
Этап 2043: Разбиение текущего узла в режиме разбиения для этого текущего узла, где режим прогнозирования, используемый для всех блоков кодирования, покрываемых текущим узлом, не ограничен.
В качестве опции, после этапа 203 или этапа 2042 или этапа 2043, способ далее содержит следующие этапы.
Этап 205: Выполнение синтаксического анализа блоков прогнозирования и информации остатка обо всех блоках кодирования, покрываемых текущим узлом.
Этап 206: Декодирование каждого блока кодирования для получения реконструированного сигнала для блока изображения, соответствующего текущему узлу.
Этап 205 и этап 206 в этом варианте являются такими же, как этап 105 и этап 106 в варианте, показанном на Фиг. 9. Подробнее см. в приведенном выше варианте. Подробности здесь снова описаны не будут.
Согласно способу прогнозирования изображения, предлагаемому в этом варианте, получают индикацию режима разбиения для текущего узла; определяют, получается ли яркостной блок первого заданного размера в результате разбиения текущего узла в рассматриваемом режиме разбиения для яркостного блока, на основе размера этого текущего узла и режима разбиения для яркостного блока; когда определено, что яркостной блок первого заданного размера получается в результате разбиения текущего узла в рассматриваемом режиме разбиения яркостного блока, далее определяют, получается ли цветностной блок второго заданного размера в результате разбиения текущего узла в рассматриваемом режиме разбиения для цветностного блока; и когда определено, что цветностной блок второго заданного размера получается в результате разбиения текущего узла в рассматриваемом режиме разбиения цветностного блока, внутрикадровое прогнозирование или межкадровое прогнозирование осуществляется на всех блоках кодирования, покрываемых текущим узлом. Согласно приведенному выше способу, внутрикадровое прогнозирование или межкадровое прогнозирование осуществляют на всех блоках кодирования, находящихся в текущем узле, так что может быть реализована параллельная обработка для всех блоков кодирования, расположенных в текущем узле. Это улучшает характеристики (производительность) процедуры прогнозирования изображения, и увеличивает скорость выполнения процедуры кодирования.
Далее описан, со ссылками на два конкретных примера, способ прогнозирования изображения, предлагаемый в варианте, показанном на Фиг. 11.
Первый пример применим к данным видео в формате YUV 4:2:0 или в формате YUV 4:2:2, или применим только к данным видео в формате YUV 4:2:0.
Способ прогнозирования изображения в этом примере содержит следующие этапы.
Этап 1: Получение индикации режима разбиения для текущего узла.
Этап 2: Определение, удовлетворяют ли площадь текущего узла и режим разбиения этого текущего узла по меньшей мере одному условию из следующих условий A:
(1) площадь текущего узла равна 32, и режим разбиения текущего узла представляет собой вертикальное разбиение по схеме двоичного дерева или горизонтальное разбиение по схеме двоичного дерева; или
(2) площадь текущего узла равна 64, и режим разбиения текущего узла представляет собой вертикальное разбиение по схеме троичного дерева, горизонтальное разбиение по схеме троичного дерева или разбиение по схеме дерева квадратов.
Если площадь текущего узла и режим разбиения текущего узла удовлетворяют по меньшей мере одному условию из условий A, осуществляют этап 3.
Этап 3: Ограничение, что внутрикадровое прогнозирование осуществляется на всех блоках кодирования, покрываемых текущим узлом.
В качестве опции, значение флага cons_pred_mode_flag устанавливают равным 1.
Если площадь текущего узла и режим разбиения этого текущего узла не удовлетворяют условиям A, выполняют этап 4.
Этап 4: Определение, удовлетворяют ли площадь текущего узла и режим разбиения этого текущего узла по меньшей мере одному условию из следующих условий B:
(1) площадь S текущего узла удовлетворяет неравенству S/2<th1, и режим разбиения текущего узла представляет собой вертикальное разбиение по схеме двоичного дерева или горизонтальное разбиение по схеме двоичного дерева; или
(2) площадь S текущего узла удовлетворяет неравенству S/4<th1, и режим разбиения текущего узла представляет собой вертикальное разбиение по схеме троичного дерева, горизонтальное разбиение по схеме троичного дерева или разбиение по схеме дерева квадратов.
Пороговая величина th1 связана с форматом данных видео. Например, когда данные видео имеют формат YUV 4:2:0, пороговая величина th1 равна 64; или когда данные видео имеют формат YUV 4:2:2, пороговая величина th1 равна 32.
Площадь текущего узла и режим разбиения текущего узла удовлетворяют по меньшей мере одному условию из совокупности условий B, осуществляют этап 5.
Этап 5: Синтаксический анализ флага cons_pred_mode_flag из потока битов данных и определение, на основе значения флага cons_pred_mode_flag, что межкадровое прогнозирование или внутрикадровое прогнозирование осуществляется на всех единицах кодирования в области покрытия текущего узла.
Если площадь текущего узла и режим разбиения для этого текущего узла не удовлетворяют условию B, выполняют этап 6.
Этап 6: Разбиение текущего узла в режиме разбиения для этого текущего узла, где режим прогнозирования, используемый для всех блоков кодирования, покрываемых текущим узлом, не ограничен.
В качестве опции, после этапа 6, способ дополнительно содержит следующие этапы.
Этап 7: Синтаксический анализ блоков прогнозирования и информации остатка для всех блоков кодирования, покрываемых текущим узлом.
Этап 8: Декодирование каждого блока кодирования для получения реконструированного сигнала блока изображения, соответствующего текущему узлу.
Второй пример применим к данным видео, имеющим формат YUV 4:2:0.
Способ прогнозирования изображения в этом примере содержит следующие этапы.
Этап 1: Получение режима разбиения для текущего узла.
Этап 2: Определение, удовлетворяют ли площадь текущего узла и режим разбиения для этого текущего узла условию C:
площадь текущего узла равна 64, и режим разбиения текущего узла представляет собой горизонтальное разбиение по схеме троичного дерева, вертикальное разбиение по схеме троичного дерева или разбиение по схеме дерева квадратов.
Если площадь текущего узла и режим разбиения этого текущего узла удовлетворяют условию C, осуществляют этап 3.
Этап 3: Осуществляют внутрикадровое прогнозирование на всех единицах кодирования в области покрытия текущего узла.
В качестве опции, значение флага cons_pred_mode_flag устанавливают равным 1.
Если площадь текущего узла и режим разбиения для этого текущего узла не удовлетворяют условию C, осуществляют этап 4.
Этап 4: Определение, удовлетворяют ли площадь текущего узла и режим разбиения для этого текущего узла по меньшей мере одному условию из следующих условий D:
(1) площадь текущего узла равна 64, и режим разбиения для текущего узла представляет собой горизонтальное разбиение по схеме двоичного дерева или вертикальное разбиение по схеме двоичного дерева; или
(2) площадь текущего узла равна 128, и режим разбиения для текущего узла представляет собой горизонтальное разбиение по схеме троичного дерева или вертикальное разбиение по схеме троичного дерева.
Если площадь текущего узла и режим разбиения для этого текущего узла удовлетворяют по меньшей мере одному условию из условий D, выполняют этап 5.
Этап 5: Синтаксический анализ флага cons_pred_mode_flag из потока битов данных и определение, на основе значения этого флага cons_pred_mode_flag, что межкадровое прогнозирование или внутрикадровое прогнозирование осуществляется на всех единицах кодирования в области покрытия текущего узла.
Если площадь текущего узла и режим разбиения для этого текущего узла не удовлетворяют условию D, выполняют этап 6.
Этап 6: Разбиение текущего узла в режиме разбиения для этого текущего узла, где режим прогнозирования, используемый для всех блоков кодирования, покрываемых текущим узлом, не ограничен.
В качестве опции, после этапа 6, способ дополнительно содержит следующие этапы.
Этап 7: Синтаксический анализ блоков прогнозирования и информации остатка относительно всех блоков кодирования, покрываемых текущим узлом.
Этап 8: Декодирование каждого блока кодирования для получения реконструированного сигнала блока изображения, соответствующего текущему узлу.
Фиг. 12 представляет упрощенную логическую схему четвертого способа прогнозирования изображения согласно одному из вариантов настоящей заявки. Как показано на Фиг. 12, способ прогнозирования изображения, предлагаемый в этом варианте, содержит следующие этапы.
Этап 301: Получение индикации режима разбиения для текущего узла.
В частности, подвергают синтаксическому анализу информацию о разбиении текущего узла. Если информация о разбиении обозначает разбиение цветностного блока, находящегося в текущем узле, далее определяют режим разбиения цветностного блока, расположенного в текущем узле. Режим разбиения для цветностного блока содержит по меньшей мере одну из операций - разбиение по схеме дерева квадратов, вертикальное разбиение по схеме двоичного дерева, горизонтальное разбиение по схеме двоичного дерева, вертикальное разбиение по схеме троичного дерева и горизонтальное разбиение по схеме троичного дерева. Безусловно, может быть и другой режим разбиения. Это ничем специально не ограничивается в рассматриваемом варианте.
Этап 302: Определение, на основе размера текущего узла и режима разбиения этого текущего узла, получается ли цветностной блок второго заданного размера в результате разбиения текущего узла в рассматриваемом режиме разбиения.
Когда определено, что цветностной блок второго заданного размера получается в результате разбиения текущего узла в рассматриваемом режиме разбиения, выполняют этап 303. Когда определено, что цветностной блок второго заданного размера не получается в результате разбиения текущего узла в рассматриваемом режиме разбиения, выполняют этап 304.
Этап 302 в этом варианте является таким же, как этап 2041 в варианте, показанном на Фиг. 11. Подробнее см. в приведенном выше варианте. Подробности здесь снова описаны не будут.
В качестве опции, этап 302 может содержать: определение, на основе размера текущего узла и режима разбиения этого текущего узла, получается ли яркостной блок третьего заданного размера в результате разбиения текущего узла в рассматриваемом режиме разбиения.
В качестве опции, яркостной блок третьего заданного размера может представлять собой яркостной блок размером 4×4, 4×8 или 8×4.
В качестве опции, определение, получается ли цветностной блок второго заданного размера в результате разбиения текущего узла в рассматриваемом режиме разбиения, может быть произведено на основе одного из следующих условий:
(1) количество отсчетов яркостного блока из текущего узла равно 64, и режим разбиения представляет собой разбиение по схеме дерева квадратов;
(2) количество отсчетов яркостного блока из текущего узла равно 64, и режим разбиения представляет собой разбиение по схеме троичного дерева;
(3) количество отсчетов яркостного блока из текущего узла равно 32, и режим разбиения представляет собой разбиение по схеме двоичного дерева;
(4) количество отсчетов яркостного блока из текущего узла равно 64, и режим разбиения представляет собой разбиение по схеме двоичного дерева; или
(5) количество отсчетов яркостного блока из текущего узла равно 128, и режим разбиения представляет собой разбиение по схеме троичного дерева.
В качестве опции, цветностной блок второго заданного размера может представлять собой цветностной блок размером 2×4 или 4×2 пикселей, исключая цветностной блок размером 2×2 пикселей. Аналогично яркостной блок третьего заданного размера может представлять собой яркостной блок размером 4×8 или 8×4 пикселей, исключая яркостной блок размером 4×4 пикселей. Соответственно, определение, получается ли цветностной блок второго заданного размера в результате разбиения текущего узла в рассматриваемом режиме разбиения, может быть произведено на основе одного из следующих условий:
(1) количество отсчетов яркостного блока из текущего узла равно 64, и режим разбиения представляет собой разбиение по схеме двоичного дерева; или
(2) количество отсчетов яркостного блока из текущего узла равно 128, и режим разбиения представляет собой разбиение по схеме троичного дерева.
Этап 303: Осуществление внутрикадрового прогнозирования или межкадрового прогнозирования на всех блоках кодирования, покрываемых текущим узлом.
Осуществляется ли внутрикадровое прогнозирование или межкадровое прогнозирование на всех блоках кодирования, покрываемых текущим узлом, может быть определено на основе этапа 2042 в варианте, показанном на Фиг. 11. Подробнее см. в приведенном выше варианте. Подробности здесь снова описаны не будут.
Этап 304: Разбиение текущего узла в режиме разбиения для этого текущего узла, где режим прогнозирования, используемый для всех блоков кодирования, покрываемых текущим узлом, не ограничен.
Этап 304 в этом варианте является таким же, как этап 104 в варианте, показанном на Фиг. 9. Подробнее см. в приведенном выше варианте. Подробности здесь снова описаны не будут.
В качестве опции, после этапа 303 или этапа 304, предлагаемый способ содержит далее следующие этапы.
Этап 305: Синтаксический анализ блоков прогнозирования и информации остатка для всех блоков кодирования, покрываемых текущим узлом.
Этап 306: Декодирование каждого блока кодирования для получения реконструированного сигнала блока изображения, соответствующего текущему узлу.
Этап 305 и этап 306 в этом варианте являются такими же, как этап 105 и этап 106 в варианте, показанном на Фиг. 9. Подробнее см. в приведенном выше варианте. Подробности здесь снова описаны не будут.
Согласно способу прогнозирования изображения, предлагаемому в этом варианте, получают индикацию режима разбиения для текущего узла, определяют, получается ли цветностной блок второго заданного размера в результате разбиения текущего узла в рассматриваемом режиме разбиения, на основе размера текущего узла и режима разбиения этого текущего узла; и когда определено, что цветностной блок второго заданного размера получается в результате разбиения текущего узла в рассматриваемом режиме разбиения, осуществляют внутрикадровое прогнозирование или межкадровое прогнозирование на всех блоках кодирования, покрываемых текущим узлом. Согласно приведенному выше способу осуществляют внутрикадровое прогнозирование или межкадровое прогнозирование на всех блоках кодирования, находящихся в текущем узле, так что можно реализовать параллельную обработку для всех блоков кодирования, расположенных в текущем узле. Это улучшает характеристики (производительность) процедуры прогнозирования изображения, и увеличивает скорость выполнения процедуры кодирования.
Фиг. 13 представляет упрощенную логическую схему пятого способа прогнозирования изображения согласно одному из вариантов настоящей заявки. На основе варианта, представленного на Фиг. 12, как показано на Фиг. 13, когда определено, что the цветностной блок второго заданного размера получается в результате разбиения текущего узла в рассматриваемом режиме разбиения, этап 304 может содержать следующие этапы.
Этап 3041: Определение, получается ли яркостной блок первого заданного размера в результате разбиения текущего узла в рассматриваемом режиме разбиения.
Когда определено, что яркостной блок первого заданного размера получается в результате разбиения текущего узла в рассматриваемом режиме разбиения, выполняют этап 3042. Когда определено, что яркостной блок первого заданного размера не получается в результате разбиения текущего узла в рассматриваемом режиме разбиения, выполняют этап 3043.
В частности, определяют, на основе размера текущего узла и режима разбиения яркостного блока, получается ли яркостной блок первого заданного размера в результате разбиения текущего узла в рассматриваемом режиме разбиения для этого яркостного блока. Яркостной блок первого заданного размера представляет собой яркостной блок размером 4×4 пикселей. Конкретная процедура такого определения является такой же, как процедура на этапе 202 в варианте, показанном на Фиг. 10, и ссылки могут быть сделаны на приведенный выше вариант. Подробности здесь снова описаны не будут.
Этап 3042: осуществление внутрикадрового прогнозирования на всех блоках кодирования, покрываемых текущим узлом.
Этап 3043: Разбиение текущего узла в режиме разбиения для этого текущего узла, где режим прогнозирования, используемый для всех блоков кодирования, покрываемых текущим узлом, не ограничен.
В качестве опции, после этапа 303 или этапа 3042 или этапа 3043, способ дополнительно содержит следующие этапы.
Этап 305: Синтаксический анализ блоков прогнозирования и информации остатка для всех блоков кодирования, покрываемых текущим узлом.
Этап 306: Декодирование каждого блока кодирования для получения реконструированного сигнала блока изображения, соответствующего текущему узлу.
Этап 305 и этап 306 в этом варианте являются такими же, как этап 105 и этап 106 в варианте, показанном на Фиг. 9. Подробнее см. в приведенном выше варианте. Подробности здесь снова описаны не будут.
Согласно способу прогнозирования изображения, предлагаемому в этом варианте, получают индикацию режима разбиения для текущего узла; определяют, получается ли цветностной блок второго заданного размера в результате разбиения текущего узла в рассматриваемом режиме разбиения, на основе размера текущего узла и режима разбиения этого текущего узла; когда определено, что цветностной блок второго заданного размера не получается в результате разбиения текущего узла в рассматриваемом режиме разбиения, дополнительно определяют, получается ли яркостной блок первого заданного размера в результате разбиения текущего узла в рассматриваемом режиме разбиения; и когда определено, что яркостной блок первого заданного размера получается в результате разбиения текущего узла в рассматриваемом режиме разбиения, осуществляют внутрикадровое прогнозирование на всех блоках кодирования, покрываемых текущим узлом. Согласно описанному выше способу, внутрикадровое прогнозирование или межкадровое прогнозирование осуществляют на всех блоках кодирования, находящихся в текущем узле, так что можно реализовать параллельную обработку для всех блоков кодирования, расположенных в этом узле. Это улучшает характеристики (производительность) процедуры прогнозирования изображения, и увеличивает скорость выполнения процедуры кодирования.
Фиг. 14 представляет упрощенную логическую схему шестого способа прогнозирования изображения согласно одному из вариантов настоящей заявки. Способ прогнозирования изображения, предлагаемый в этом варианте, используется в кодирующем устройстве 18 для видео, показанном на Фиг. 8. Как показано на Фиг. 14, способ в этом варианте содержит следующие этапы.
Этап 401: Получение индикации режима разбиения для текущего узла.
Типом среза (slice), в котором расположен текущей узел, является B-тип или P-тип. Должно быть понятно, что когда типом среза, в котором расположен текущий узел, является I-тип, внутрикадровое прогнозирование следует выполнять по умолчанию на всех блоках кодирования, покрываемых текущим узлом.
Сторона декодирующего устройства может получить индикацию режима разбиения для текущего узла посредством синтаксического анализа потока битов данных или на основе полученного параметра.
Сторона кодирующего устройства, в общем случае, сначала определяет режим разбиения, допустимый для текущего узла, и затем определяет оптимальный режим разбиения для этого текущего узла с использованием способа оптимизации соотношения между скоростью передачи данных и искажениями (Rate-distortion optimization, RDO). Этот этап принадлежит обычной технологии, так что подробности здесь описаны не будут.
Этап 402: Определение, удовлетворяют ли размер текущего узла и режим разбиения этого текущего узла первой группе заданных условий.
Первая группа заданных условий может содержать:
(1) количество отсчетов яркостного блока из текущего узла равно 64, и режим разбиения для этого текущего узла представляет собой разбиение по схеме дерева квадратов;
(2) количество отсчетов яркостного блока из текущего узла равно 64, и режим разбиения для этого текущего узла представляет собой разбиение по схеме троичного дерева; или
(3) количество отсчетов яркостного блока из текущего узла равно 32, и режим разбиения для этого текущего узла представляет собой разбиение по схеме двоичного дерева.
Количество отсчетов яркостного блока из текущего узла равно количеству пикселей яркостной составляющей (размер в пикселях (pixel size)) в блоке изображения, соответствующем текущему узлу. Это количество отсчетов может быть получено на основе произведения ширины и высоты рассматриваемого текущего узла.
В другом варианте реализации, первая группа заданных условий дополнительно содержит следующее условие (4):
(4) яркостной блок заданного размера получается в результате разбиения текущего узла в рассматриваемом режиме разбиения, где этот заданный размер равен 4×4 или 8×8.
Следует отметить, что яркостной блок первого заданного размера (4×4 или 8×8) и цветностной блок второго заданного размера (2×4 или 4×2) могут быть получены, когда удовлетворяется одно условие из первой группы заданных условий.
На этом этапе, если размер текущего узла и режим разбиения для этого текущего узла удовлетворяют одному условию из первой группы заданных условий, выполняют этап 403. Если размер текущего узла и режим разбиения для этого текущего узла не удовлетворяют ни одному из условий из первой группы заданных условий, выполняют этап 404.
Этап 403: Осуществление внутрикадровое прогнозирование на всех блоках кодирования, покрываемых текущим узлом.
В качестве опции, когда определено, что внутрикадровое прогнозирование осуществляется на всех блоках кодирования, покрываемых текущим узлом, нет необходимости записывать значение флага mode_constraint_flag в поток битов данных, и значение флага mode_constraint_flag может быть установлено равным 1. Соответственно, сторона декодирующего устройства может также определить, согласно тому же способу, что значение флага mode_constraint_flag равно 1.
Этап 404: Определение, удовлетворяют ли размер текущего узла и режим разбиения для этого текущего узла одному из условий из второй группы заданных условий.
Эта вторая группа заданных условий содержит:
(1) количество отсчетов яркостного блока из текущего узла равно 64, и режим разбиения для этого текущего узла представляет собой вертикальное разбиение по схеме двоичного дерева или горизонтальное разбиение по схеме двоичного дерева; или
(2) количество отсчетов яркостного блока из текущего узла равно 128, и режим разбиения для этого текущего узла представляет собой вертикальное разбиение по схеме троичного дерева или горизонтальное разбиение по схеме троичного дерева.
В другом варианте реализации, вторая группа заданных условий дополнительно содержит следующее условие (3):
(3) цветностной блок заданного размера получается в результате разбиения текущего узла в рассматриваемом режиме разбиения, где этот заданный размер равен 2×4 или 4×2.
На этом этапе, если размер текущего узла и режим разбиения для этого текущего узла удовлетворяют одному условию из второй группы заданных условий, выполняют этап 405. Если размер текущего узла и режим разбиения для этого текущего узла не удовлетворяют ни одному из условий из второй группы заданных условий, выполняют этап 406.
Этап 405: Осуществление внутрикадрового прогнозирования или межкадрового прогнозирования на всех блоках кодирования, покрываемых текущим узлом.
В этом варианте, режим прогнозирования, используемый для всех блоков кодирования, находящихся в текущем узле, может быть определен следующими несколькими способами.
В одном из вариантов реализации, если тип изображения или среза (slice), в котором находится текущий узел, является I-типом, кодирующее устройство или сторона кодирующего устройства определяет, что только внутрикадровое прогнозирование (не-межкадровое прогнозирование) применимо ко всем блокам кодирования, находящимся в текущем узле. В качестве опции, кодирующее устройство или сторона кодирующего устройства не имеет необходимости записывать флаг mode_constraint_flag в поток битов данных, и может установить значение флага mode_constraint_flag, равное 1.
Если тип изображения или среза (slice), в котором располагается текущий узел, не является I-типом, кодирующее устройство или сторона кодирующего устройства определяет значение флага mode_constraint_flag с использованием способа оптимизации соотношения между скоростью передачи данных и искажениями (Rate-distortion optimization, RDO) или другого способа.
Способ оптимизации RDO конкретнее содержит следующее: Кодирующее устройство по отдельности вычисляет стоимостные оценки соотношения между скоростью передачи данных и искажениями (RD cost), генерируемые в случаях осуществления межкадрового прогнозирования и внутрикадрового прогнозирования на всех блоках кодирования, покрываемых текущим узлом, сравнивает величины таких стоимостных оценок соотношения между скоростью и искажениями, генерируемые в случаях двух режимов прогнозирования, и определяет режим прогнозирования с наименьшей стоимостной оценкой соотношения между скоростью передачи данных и искажениями как окончательный режим прогнозирования. Если режим прогнозирования с наименьшей стоимостной оценкой соотношения между скоростью передачи данных и искажениями является режимом внутрикадрового прогнозирования, кодирующее устройство устанавливает значение флага mode_constraint_flag равное 1. Если режим прогнозирования с меньшей стоимостной оценкой соотношения между скоростью передачи данных и искажениями является режимом межкадрового прогнозирования, кодирующее устройство устанавливает значение флага mode_constraint_flag равное 0, и записывает это значение флага mode_constraint_flag в поток битов данных.
Например, кодирующее устройство сначала вычисляет оценку RD cost, генерируемую в случае осуществления межкадрового прогнозирования на всех блоках кодирования, покрываемых текущим узлом, и затем вычисляет оценку RD cost, генерируемую в случае осуществления внутрикадрового прогнозирования. Если в случае осуществления межкадрового прогнозирования на всех блоках кодирования, покрываемых текущим узлом, (например, используется режим пропуска) нет остатка, кодирующее устройство определяет, что межкадровое прогнозирование осуществляется на всех блоках кодирования, покрываемых текущим узлом, устанавливает значение флага mode_constraint_flag, равное 0, и не имеет необходимости вычислять оценку RD cost, генерируемую в случае внутрикадрового прогнозирования. Кодирующее устройство может в качестве альтернативы сначала вычислить оценку RD cost, генерируемую в случае осуществления внутрикадрового прогнозирования на всех блоках кодирования, покрываемых текущим узлом, затем вычислить оценку RD cost, генерируемую в случае осуществления межкадрового прогнозирования, и определить режим прогнозирования с меньшей величиной оценки RD cost в качестве окончательного режима прогнозирования.
Следует отметить, что если текущий узел расположен в области изображения с внутрикадровым прогнозированием (иными словами, тип изображения или среза (slice_type), в котором располагается текущий узел, является внутрикадровым типом или I-типом) и режим с копированием IBC допустим для использования, значение флага pred_mode_flag равно 1 по умолчанию. Если текущий узел расположен в области изображения с внутрикадровым прогнозированием, но режим с копированием IBC не допускается для использования, значение флага pred_mode_flag равно 1 по умолчанию, и значение флага cu_skip_flag равно 0 по умолчанию (указывая, что режим пропуска не используется для текущего блока). Если текущий узел расположен в области изображения с внутрикадровым прогнозированием (иными словами, тип изображения или среза (slice_type), в котором располагается текущий узел, является внутрикадровым типом или I-типом), значение флага mode_constraint_flag равно 1 по умолчанию.
В одном из вариантов реализации, сторона декодирующего устройства или декодирующее устройство может произвести синтаксический анализ флага статуса режима прогнозирования (mode_constraint_flag) для текущего узла; и когда этот флаг статуса режима прогнозирования имеет первое значение, осуществить межкадровое прогнозирование на всех блоках кодирования, принадлежащих текущему узлу; или когда флаг статуса режима прогнозирования имеет второе значение, осуществить внутрикадровое прогнозирование на всех блоках кодирования, принадлежащих текущему узлу.
Этап 406: Разбиение текущего узла в режиме разбиения для этого текущего узла, где режим прогнозирования, используемый для всех блоков кодирования, покрываемых текущим узлом, не ограничен.
В качестве опции, после этапа 403, этапа 405 или этапа 406, способ может дополнительно содержать следующие этапы.
Этап 407: Определение, на основе режима прогнозирования для текущего узла, разбивают ли далее яркостной блок и цветностной блок этого текущего узла.
Когда определено, что только внутрикадровое прогнозирование осуществляется на всех блоках кодирования, расположенных в текущем узле, яркостной блок, расположенный в этом текущем узле, разбивают в рассматриваемом режиме разбиения, для получения яркостных блоков в результате разбиения; а цветностной блок, расположенный в этом текущем узле, используют в качестве цветностного блока кодирования, и осуществляют внутрикадровое прогнозирование на этом цветностном блоке кодирования. Другими словами, если определено, что внутрикадровое прогнозирование осуществляется на всех блоках кодирования, расположенных в текущем узле, яркостной блок, расположенный в этом текущем узле, разбивают в режиме разбиения для яркостного блока для получения N узлов дерева кодирования яркостной составляющей; и цветностной блок из текущего узла не разбивают, чтобы получить один цветностной блок кодирования (chroma CB для краткости). Можно ограничить, что указанные N узлов дерева кодирования яркостной составляющей далее не разбивают, или можно не устанавливать это ограничение. Если узел дерева кодирования яркостной составляющей далее разбивают, выполняют синтаксический анализ режима разбиения для такого узла дерева кодирования яркостной составляющей с целью рекурсивного разбиения. Когда узел дерева кодирования яркостной составляющей далее не разбивают, этот узел дерева кодирования яркостной составляющей соответствует одному яркостному блоку кодирования (luma CB для краткости). На яркостном блоке CB осуществляют внутрикадровое прогнозирование для получения яркостного блока прогнозирования, соответствующего этому яркостному блоку CB. На цветностном блоке CB осуществляют внутрикадровое прогнозирование для получения цветностного блока прогнозирования, соответствующего этому цветностному блоку CB. Цветностной блок прогнозирования и цветностной блок CB имеют одинаковый размер.
Когда определено, что только внутрикадровое прогнозирование осуществляется на всех блоках кодирования, расположенных в текущем узле, в другом варианте реализации, яркостной блок и цветностной блок, находящиеся в текущем узле, разбивают в рассматриваемом режиме разбиения для получения узлов в результате разбиения. Когда узел дерева кодирования далее не разбивают, этот узел дерева кодирования соответствует одной единице кодирования и содержит единицу кодирования яркостной составляющей (далее - яркостная единица кодирования) и единицы кодирования цветностной составляющей (цветностная единица кодирования). На таких яркостных единицах кодирования и цветностных единицах кодирования осуществляют внутрикадровое прогнозирование, где яркостные единицы кодирования и цветностные единицы кодирования получают в результате разбиения.
Когда определено, что только межкадровое прогнозирование осуществляются на всех блоках кодирования, расположенных в текущем узле, в одном из вариантов реализации, яркостной блок, находящийся в текущем узле, разбивают в соответствующем режиме разбиения для получения яркостных блоков в результате разбиения, и осуществляют межкадровое прогнозирование на яркостных блоках, полученных в результате разбиения; и цветностной блок, расположенный в текущем узле, разбивают в соответствующем режиме разбиения для получения цветностных блоков в результате разбиения, и осуществляют межкадровое прогнозирование на цветностных блоках, полученных в результате разбиения. Другими словами, если определено, что межкадровое прогнозирование осуществляется на всех блоках кодирования, расположенных в текущем узле, яркостной блок из текущего узла разбивают в режиме разбиения для яркостного блока, с целью получения N узлов дерева кодирования яркостной составляющей; и цветностной блок из текущего узла разбивают в режиме разбиения для цветностного блока, с целью получения M узлов дерева кодирования цветностной составляющей. Здесь N и M - положительные целые числа, а также N и M могут быть одинаковыми или разными. Можно ввести ограничение, что N узлов дерева кодирования яркостной составляющей и M узлов дерева кодирования цветностной составляющей далее не разбивают, или не вводить такого ограничения. Когда дальнейшее разбиение не осуществляется, N узлов дерева кодирования яркостной составляющей соответствуют N яркостным блокам CB, расположенным в текущем узле, и M узлов дерева кодирования цветностной составляющей соответствуют M цветностным блокам CB, расположенным в текущем узле. Тогда осуществляют межкадровое прогнозирование на N яркостных блоках CB для получения соответствующих яркостных блоков прогнозирования, и осуществляют межкадровое прогнозирование на M цветностных блоках CB для получения соответствующих цветностных блоков прогнозирования.
Когда определено, что только межкадровое прогнозирование осуществляются на всех блоках кодирования, расположенных в текущем узле, в одном из вариантов реализации, яркостной блок, находящийся в текущем узле, разбивают в соответствующем режиме разбиения для получения яркостных блоков в результате разбиения, и осуществляют межкадровое прогнозирование на яркостных блоках, полученных в результате разбиения; и цветностной блок, расположенный в текущем узле, разбивают в соответствующем режиме разбиения для получения цветностных блоков в результате разбиения, и осуществляют межкадровое прогнозирование на цветностных блоках, полученных в результате разбиения. Другими словами, если определено, что межкадровое прогнозирование осуществляется на всех блоках кодирования, расположенных в текущем узле, яркостной блок из текущего узла разбивают в режиме разбиения для яркостного блока, с целью получения N узлов дерева кодирования яркостной составляющей; и цветностной блок из текущего узла разбивают в режиме разбиения для цветностного блока, с целью получения M узлов дерева кодирования цветностной составляющей. Здесь N и M - положительные целые числа, а также N и M могут быть одинаковыми или разными. Можно ввести ограничение, что N узлов дерева кодирования яркостной составляющей и M узлов дерева кодирования цветностной составляющей далее не разбивают, или не вводить такого ограничения. Когда дальнейшее разбиение не осуществляется, N узлов дерева кодирования яркостной составляющей соответствуют N яркостным блокам CB, расположенным в текущем узле, и M узлов дерева кодирования цветностной составляющей соответствуют M цветностным блокам CB, расположенным в текущем узле. Тогда осуществляют межкадровое прогнозирование на N яркостных блоках CB для получения соответствующих яркостных блоков прогнозирования, и осуществляют межкадровое прогнозирование на M цветностных блоках CB для получения соответствующих цветностных блоков прогнозирования.
В частности, если только межкадровое прогнозирование осуществляется на всех блоках кодирования, расположенных в текущем узле, в результате разбиения текущего узла в рассматриваемом режиме разбиения образуются дочерние узлы, такой узел потомок нуждается в дальнейшем разбиении, так что в результате разбиения этого узла потомка получают яркостной блок заданного размера, где, если, например, указанный заданный размер равен 4×4 (иными словами, и ширина, и высота такого узла равны 4), такой режим разбиения узла потомка не допустим, или не допускается дальнейшее разбиение узла потомка. В частности, если ограничиться тем, что только межкадровое прогнозирование осуществляется в некотором узле, и количество отсчетов яркостной составляющей в этом узле равно 32 (или произведение ширины на высоту узла равно 32), разбиение по схеме двоичного дерева (включая горизонтальное разбиение по схеме двоичного дерева или вертикальное разбиение по схеме двоичного дерева) для этого узла не допустимо. Если ограничиться тем, что только межкадровое прогнозирование осуществляется в некотором узле, и количество отсчетов яркостной составляющей в этом узле равно 64 (или произведение ширины на высоту узла равно 64), разбиение по схеме троичного дерева (включая горизонтальное разбиение по схеме троичного дерева или вертикальное разбиение по схеме троичного дерева) не допускается. Такой способ определения применим к данным видео в обоих форматах - и в формате YUV 4:2:0 и в формате YUV 4:2:2.
Например, если размер текущего узла равен 8×8 и из него генерируют два узла размером 8×4 (или 4×8) посредством горизонтального разбиения по схеме двоичного дерева (или вертикального разбиения по схеме двоичного дерева), и далее генерируют блоки размером 4×4, если осуществляют дальнейшее разбиение узла размером 8×4 (или 4×8). В таком случае, не допускается вертикальное разбиение по схеме двоичного дерева (или горизонтальное разбиение по схеме двоичного дерева) для узла размером 8×4 (или 4×8) или для узла размером 8×4 (или 4×8) не допускается дальнейшее разбиение. В качестве другого примера, если количество отсчетов яркостного блока из текущего узла равно 128, и режим разбиения представляет собой горизонтальное разбиение по схеме троичного дерева или вертикальное разбиение по схеме троичного дерева, можно получить в итоге равное 64 количество отсчетов в яркостном блоке. Однако если горизонтальное разбиение по схеме троичного дерева или вертикальное разбиение по схеме троичного дерева для узла потомка используется для узла яркостной составляющей с равным 64 количеством отсчетов, получают яркостной блок размером 4×4. Поэтому, когда ограничено, что осуществляется только межкадровое прогнозирование, горизонтальное разбиение по схеме троичного дерева или вертикальное разбиение по схеме троичного дерева не допускается для узла с равным 64 количеством отсчетов, либо не допускается дальнейшее разбиение узла с равным 64 количеством отсчетов.
Этап 408: Прогнозирование для блока кодирования в единице CU, полученной в результате разбиения текущего узла, с целью получения предиктора для блока кодирования.
Если только внутрикадровое прогнозирование осуществляется на всех блоках кодирования, расположенных в текущем узле, кодирующее устройство или сторона кодирующего устройства определяет, в соответствии со способом оптимизации соотношения между скоростью передачи данных и искажениями (Rate-distortion optimization, RDO) или другим способом, оптимальный режим внутрикадрового прогнозирования, используемый для текущего блок кодирования; и прогнозирует текущий блок кодирования с использованием соответствующего режима внутрикадрового прогнозирования, с целью получения предиктора для текущего блока.
Если только межкадровое прогнозирование осуществляется на всех блоках кодирования, расположенных в текущем узле, кодирующее устройство или сторона кодирующего устройства определяет, в соответствии со способом оптимизации соотношения между скоростью передачи данных и искажениями или другим способом, оптимальный режим межкадрового прогнозирования, используемый для текущего блока кодирования; и прогнозирует текущий блок кодирования с использованием соответствующего режима межкадрового прогнозирования, с целью получения предиктора для текущего блока.
В дополнение к этому, кодирующее устройство назначает величины синтаксическим элементам, связанным с глубиной единиц CU, и записывает величину каждого синтаксического элемента в поток битов данных согласно критерию для определения синтаксиса на уровне единиц CU. Например, если только внутрикадровое прогнозирование осуществляется на всех блоках кодирования, расположенных в текущем узле, значение флага pred_mode_flag устанавливают равным 1 и этот флаг pred_mode_flag не записывают в поток битов данных, иными словами, флаг pred_mode_flag отсутствует в потоке битов данных. Если только внутрикадровое прогнозирование осуществляется на всех блоках кодирования, находящихся в текущем узле, и определено, что режим копирования IBC не используется, значение флага cu_skip_flag (или флага skip_flag) равно 0, и этот флаг cu_skip_flag не записывают в потоке битов данных. В противном случае, флаг cu_skip_flag необходимо записать в поток битов данных после определения значения этого флага cu_skip_flag и передать стороне декодирующего устройства.
Если только межкадровое прогнозирование осуществляется на всех блоках кодирования, расположенных в текущем узле, значение флага pred_mode_flag устанавливают равным 0, и этот флаг pred_mode_flag не записывают в поток битов данных, иными словами, флаг pred_mode_flag отсутствует в потоке битов данных. Если значение флага pred_mode_ibc_flag установлено равным 0, этот флаг pred_mode_ibc_flag не записывают в поток битов данных, иными словами, флаг pred_mode_ibc_flag отсутствует в этом потоке битов данных.
Если только внутрикадровое прогнозирование осуществляется на всех блоках кодирования, расположенных в текущем узле, декодирующее устройство или сторона декодирующего устройства может определить, посредством синтаксического анализа потока битов данных или на основе полученного параметра, оптимальный режим внутрикадрового прогнозирования, используемый для текущего блока кодирования; и прогнозирует текущий блок кодирования с использованием соответствующего режима внутрикадрового прогнозирования, с целью получения предиктора для текущего блока.
Если только межкадровое прогнозирование осуществляется на всех блоках кодирования, находящихся в текущем узле, декодирующее устройство или сторона декодирующего устройства может определить, посредством синтаксического анализа потока битов данных или на основе полученного параметра, оптимальный режим межкадрового прогнозирования, используемый для текущего блока кодирования; и прогнозировать текущий блок кодирования с использованием соответствующего режима межкадрового прогнозирования, с целью получения предиктора для текущего блока.
Этап 409: Получение реконструированного сигнала блока изображения в текущем узле.
После получения информации о прогнозировании посредством внутрикадрового прогнозирования или межкадрового прогнозирования, кодирующее устройство или сторона кодирующего устройства получает информацию остатка путем вычитания соответствующей информации о прогнозировании (или предиктора) из величины пикселя из текущего блока кодирования, трансформирует информацию остатка с использованием такого способа, как дискретное косинусное преобразование (Discrete Cosine Transformation, DCT), получает поток битов данных посредством квантования и энтропийного кодирования, и передает информацию остатка на сторону декодирующего устройства. После суммирования прогнозируемого сигнала с реконструированным сигналом остатка стороне кодирующего устройства далее необходимо осуществить операцию фильтрации для получения реконструированного сигнала, после чего она использует реконструированный сигнал в качестве опорного сигнала для последующего декодирования. В частности, если для блока кодирования используется режим пропуска, информация остатка отсутствует, так что стороне кодирующего устройства нет необходимости осуществлять преобразование, где предиктор имеет конечную реконструированную величину.
После суммирования прогнозируемого сигнала с реконструированным сигналом остатка декодирующему устройству или стороне декодирующего устройства далее необходимо осуществить операцию фильтрации с целью получения реконструированного сигнала. Далее, сторона декодирующего устройства использует полученный реконструированный сигнал в качестве опорного сигнала для последующего кодирования. В частности, если для блока кодирования используется режим пропуска, информация остатка отсутствует, так что декодирующему устройству или стороне декодирующего устройства нет необходимости осуществлять преобразование, где предиктор имеет конечную реконструированную величину
Например, процедура межкадрового прогнозирования или процедура внутрикадрового прогнозирования осуществляется на каждой единице CU на основе блока прогнозирования для этой единицы CU, с целью получения изображения посредством межкадрового прогнозирования или изображения посредством внутрикадрового прогнозирования для этой единицы CU. Затем, на основе информации остатка для каждой единицы CU, осуществляют процедуру деквантования и обратного преобразования применительно к коэффициенту преобразования с целью получения остаточного изображения, и суммируют это остаточное изображение с прогнозируемым изображением соответствующей области с целью генерации реконструированного изображения.
В этом варианте, способ прогнозирования изображения описывают с точки зрения стороны декодирующего устройства для видео. Это декодирующее устройство для видео определяет, на основе размера текущего узла и режима разбиения этого текущего узла, осуществить ли внутрикадровое прогнозирование или межкадровое прогнозирование на всех блоках кодирования, находящихся в текущем узле, так что может быть реализована параллельная обработка для всех блоков кодирования, расположенных в текущем узле. Это совершенствует характеристики (производительность) процедуры прогнозирования изображения, и повышает скорость процедуры декодирования.
Способ прогнозирования изображения, предлагаемый в одном из вариантов, используется в кодирующем устройстве 18 для видео и/или в декодирующем устройстве 24 для видео, показанных на Фиг. 8. Этот вариант содержит следующие этапы.
Этап 501: Получение индикации режима разбиения для текущего узла.
Этап 501 в этом варианте является таким же, как этап 101 в варианте, показанном на Фиг. 9, и подробности здесь снова описаны не будут.
Этап 502: Определение значения переменного параметра modeTypeCondition согласно следующему способу.
Если одно или более условий из следующей первой группы заданных условий являются истинными, параметр modeTypeCondition имеет первое значение, например, 0:
(1) тип изображения или среза (Slice), в котором расположен текущий узел, является I-типом (slice_type == I), и значение флага qtbtt_dual_tree_intra_flag равна 1;
(2) тип режима прогнозирования для текущего узла является только внутрикадровым прогнозированием или только межкадровым прогнозированием, иными словами, ограничен тем, что осуществляется только межкадровое прогнозирование или только внутрикадровое прогнозирование (не- межкадровое прогнозирование); или
(3) формат цветностной составляющей является черно-белым (монохромным (Monochrome)) форматом или форматом 4:4:4, где, например, значение параметра chroma_format_idc равно 0 или 3.
В другом варианте реализации, первая группа заданных условий дополнительно содержит следующее условие (4):
(4) формат цветностной составляющей является черно-белым (монохромным (Monochrome)) форматом, форматом 4:4:4 или форматом 4:2:2, где, например, значение параметра chroma_format_idc равен 0, 3 или 2.
Иначе, если одно или более условий из следующей второй группы заданных условий являются истинными, параметр modeTypeCondition имеет второе значение, например, 1:
(1) произведение ширины и высоты яркостного блока из текущего узла равно 64, и режим разбиения текущего узла представляет собой разбиение по схеме дерева квадратов;
(2) произведение ширины и высоты яркостного блока из текущего узла равно 64, и режим разбиения текущего узла представляет собой горизонтальное разбиение по схеме троичного дерева или вертикальное разбиение по схеме троичного дерева; или
(3) произведение ширины и высоты яркостного блока из текущего узла равно 32, и режим разбиения текущего узла представляет собой горизонтальное разбиение по схеме двоичного дерева или вертикальное разбиение по схеме двоичного дерева.
Иначе, если одно или более условий из следующей третьей группы заданных условий являются истинными, и цветностная составляющая имеет формат 4:2:0 (значение параметра chroma_format_idc равно 1), значение параметра modeTypeCondition определяют по следующей формуле: 1 + (slice_type != I? 1: 0):
(1) произведение ширины и высоты яркостного блока из текущего узла равно 64, и режим разбиения текущего узла представляет собой горизонтальное разбиение по схеме двоичного дерева или вертикальное разбиение по схеме двоичного дерева; или
(2) произведение ширины и высоты яркостного блока из текущего узла равно 128, и режим разбиения текущего узла представляет собой горизонтальное разбиение по схеме троичного дерева или вертикальное разбиение по схеме троичного дерева.
Следует отметить, что Табл. 3 показывает соответствие между форматом цветностной составляющей и параметром chroma_format_idc.
Таблица 3
chroma_format_idc separate_colour_plane_flag формат цветностной составляющей SubWidthC SubHeightC
0 0 Монохромный 1 1
1 0 4:2:0 2 2
2 0 4:2:2 2 1
3 0 4:4:4 1 1
3 1 4:4:4 1 1
В случае черно-белых (Monochrome) отсчетов формат цветностной составляющей отсутствует, так что имеется только последовательность яркостных составляющих.
В случае формата 4:2:0, ширина каждой из двух цветностных составляющей равна половине ширины соответствующих яркостных составляющих, а высота каждой из двух цветностных составляющей равна половине высоты яркостных составляющих.
В случае формата 4:2:2, высота каждой из двух цветностных составляющих является такой же, как высота соответствующих яркостных составляющих, а ширина каждой из двух цветностных составляющих является такой же, как ширина соответствующих яркостных составляющих.
В случае формата 4:4:4, высота и ширина двух цветностных составляющих зависят от значения флага separate_colour_plane_flag. Если значение флага separate_colour_plane_flag равно 0, ширина и высота двух цветностных составляющих является соответственно такой же, как ширина и высота соответствующих яркостных составляющих. В противном случае, (значение флага separate_colour_plane_flag равно 1), три составляющие кодированы по отдельности как изображения с монохромными отсчетами.
Флаг separate_colour_plane_flag равный 1 специфицирует, что три цветовых составляющих в случае формата 4:4:4 цветностной составляющей кодируют по отдельности. Флаг separate_colour_plane_flag равный 0 специфицирует, что эти три цветовых составляющих не кодируют по отдельности.
Флаг qtbtt_dual_tree_intra_flag равный 1 специфицирует, что для I-среза каждую единицу CTU разбивают на единицы кодирования, содержащие 64x64 отсчетов яркостной составляющей, с использованием неявного разбиения по схеме дерева квадратов, и что эти единицы кодирования являются корнями двух раздельных синтаксических структур coding_tree для яркостной составляющей и цветностной составляющей. Флаг qtbtt_dual_tree_intra_flag равный 0 специфицирует, что раздельная синтаксическая структура coding_tree не используется для I-срезов. Когда флаг qtbtt_dual_tree_intra_flag не присутствует, его считают равным 0.
Этап 503: Определение типа режима прогнозирования для всех единиц кодирования, расположенных в текущем узле, на основе значения параметра modeTypeCondition.
В частности, если значение параметра modeTypeCondition равно 1, это ограничивает, что внутрикадровое прогнозирование (MODE_INTRA) осуществляется на всех единицах кодирования из текущего узла. Если значение параметра modeTypeCondition равно 2, синтаксический элемент (флаг) mode_constraint_flag выделяют посредством синтаксического анализа из потока битов данных. Если значение флага mode_constraint_flag равно 0, межкадровое прогнозирование (MODE_INTER) осуществляется на всех единицах кодирования, расположенных в текущем узле. Если значение флага mode_constraint_flag равно 1, осуществляют внутрикадровое прогнозирование (не-межкадровое прогнозирование /MODE_INTRA) на всех единицах кодирования, расположенных в текущем узле.
В противном случае, тип режима прогнозирования для всех единиц кодирования, расположенных в текущем узле, не ограничен и является таким же, как тип режима прогнозирования для текущего узла.
Этап 504: Определение, производится ли дальнейшее разбиение цветностного блока и яркостного блока, соответствующих текущему узлу, с целью получения единицы кодирования цветностной составляющей и единицы кодирования яркостной составляющей.
(Этап 504 является таким же, как этап 407).
Когда определено, что только внутрикадровое прогнозирование осуществляется на всех блоках кодирования, расположенных в текущем узле, яркостной блок, расположенный в текущем узле, разбивают в соответствующем режиме разбиения с целью получения яркостных блоков в результате разбиения, и осуществляют внутрикадровое прогнозирование на яркостных блоках, полученных в результате разбиения; и цветностной блок, расположенный в текущем узле, используется в качестве цветностного блока кодирования, и осуществляют внутрикадровое прогнозирование на цветностном блоке кодирования. Другими словами, если определено, что внутрикадровое прогнозирование осуществляется на всех блоках кодирования, расположенных в текущем узле, яркостной блок из текущего узла разбивают в режиме разбиения для яркостного блока, с целью получения N узлов дерева кодирования яркостной составляющей; а цветностной блок из текущего узла не разбивают для получения одного цветностного блока кодирования (chroma CB для краткости). Можно ввести ограничения, что указанные N узлов дерева кодирования яркостной составляющей далее не разбивают, или можно это ограничение не вводить. Если узел дерева кодирования яркостной составляющей далее разбивают, производят синтаксический анализ режима разбиения для узла дерева кодирования яркостной составляющей для осуществления рекурсивного разбиения. Когда узел дерева кодирования яркостной составляющей далее не разбивают, этот узел дерева кодирования яркостной составляющей соответствует одному яркостному блоку кодирования (luma CB для краткости). Внутрикадровое прогнозирование осуществляют на яркостном блоке CB с целью получения яркостного блока прогнозирования, соответствующего яркостному блоку CB. Внутрикадровое прогнозирование осуществляют на цветностном блоке CB для получения цветностного блока прогнозирования, соответствующего этому цветностному блоку CB. Цветностной блок прогнозирования и цветностной блок CB имеют одинаковый размер.
Когда определено, что только внутрикадровое прогнозирование осуществляется на всех блоках кодирования, расположенных в текущем узле, в другом варианте реализации, яркостной блок и цветностной блок, входящие в текущий узел, разбивают в соответствующем режиме разбиения, с целью получения узлов в результате разбиения. Когда узел дерева кодирования далее не разбивают, этот узел дерева кодирования соответствует одной единице кодирования и содержит единицу кодирования яркостной составляющей и единицу кодирования цветностной составляющей. Внутрикадровое прогнозирование осуществляется на единицах кодирования яркостной составляющей и единицах кодирования цветностной составляющей, где эти единицы кодирования яркостной составляющей и единицы кодирования цветностной составляющей получают в результате разбиения.
Когда определено, что только межкадровое прогнозирование осуществляется на всех блоках кодирования, расположенных в текущем узле, в одном из вариантов реализации, яркостной блок, находящийся в текущем узле, разбивают в соответствующем режиме разбиения с целью получения яркостных блоков в результате разбиения, и осуществляется межкадровое прогнозирование на этих яркостных блоках, полученных в результате разбиения; и цветностной блок, расположенный в текущем узле, разбивают в соответствующем режиме разбиения с целью получения цветностных блоков в результате разбиения, и осуществляется межкадровое прогнозирование на этих цветностных блоках, полученных в результате разбиения. Другими словами, если определено, что межкадровое прогнозирование осуществляется на всех блоках кодирования, расположенных в текущем узле, яркостной блок из этого текущего узла разбивают в режиме разбиения для этого яркостного блока, с целью получения N узлов дерева кодирования яркостной составляющей; и цветностной блок из этого текущего узла разбивают в режиме разбиения для этого цветностного блока, с целью получения M узлов дерева кодирования цветностной составляющей. Здесь N и M положительные целые числа, и эти N и M могут быть одинаковыми или разными. Можно ввести ограничение, что N узлов дерева кодирования яркостной составляющей и M узлов дерева кодирования цветностной составляющей далее не разбивают, либо можно это ограничение не вводить. Когда дальнейшее разбиение не производится, N узлов дерева кодирования яркостной составляющей соответствуют N яркостным блокам CB, расположенным в текущем узле, и M узлов дерева кодирования цветностной составляющей соответствуют M цветностным блокам CB, расположенным в текущем узле. На N яркостных блоках CB осуществляется межкадровое прогнозирование с целью получения соответствующих яркостных блоков прогнозирования, и межкадровое прогнозирование осуществляется на M цветностных блоках CB с целью получения соответствующих цветностных блоков прогнозирования.
Когда определено, что только межкадровое прогнозирование осуществляется на всех блоках кодирования, расположенных в текущем узле, в одном из вариантов реализации, яркостной блок, расположенный в текущем узле, разбивают в соответствующем режиме разбиения с целью получения яркостных блоков в результате разбиения, и осуществляют межкадровое прогнозирование на яркостных блоках, полученных в результате разбиения; и цветностной блок, находящийся в текущем узле, разбивают в соответствующем режиме разбиения с целью получения цветностных блоков в результате разбиения, и осуществляют межкадровое прогнозирование на цветностных блоках, полученных в результате разбиения. Другими словами, если определено, что межкадровое прогнозирование осуществляется на всех блоках кодирования, расположенных в текущем узле, яркостной блок из текущего узла разбивают в соответствующем режиме разбиения для этого яркостного блока, с целью получения N узлов дерева кодирования яркостной составляющей; и цветностной блок из текущего узла разбивают в соответствующем режиме разбиения для этого цветностного блока, с целью получения M узлов дерева кодирования цветностной составляющей. Здесь N и M являются положительными целыми числами, и эти N и M могут быть одинаковыми или разными. Может быть введено ограничение, что указанные N узлов дерева кодирования яркостной составляющей и M узлов дерева кодирования цветностной составляющей далее не разбивают, либо такое ограничение может быть не введено. Если дальнейшее разбиение не осуществляется, N узлов дерева кодирования яркостной составляющей соответствует N яркостных блокам CB, расположенным в текущем узле, и M узлов дерева кодирования цветностной составляющей соответствуют M цветностным блокам CB, расположенным в текущем узле. На N яркостных блоках CB осуществляется межкадровое прогнозирование с целью получения соответствующих яркостных блоков прогнозирования, и межкадровое прогнозирование осуществляется на M цветностных блоках CB с целью получения соответствующих цветностных блоков прогнозирования.
В частности, если на всех блоках кодирования, расположенных в текущем узле, осуществляется только межкадровое прогнозирование, получают дочерние узлы в результате разбиения текущего узла в рассматриваемом режиме разбиения, такой узел потомок нуждается в дальнейшем разбиении, и в результате разбиения этого узла потомка в некотором режиме разбиения получается яркостной блок заданного размера, где, например, этот заданный размер равен 4×4 (иными словами, и ширина, и высота равны 4), такой режим разбиения узла потомка не допускается, или не допускается дальнейшее разбиение узла потомка. В частности, если ограничиться тем, что в некотором узле осуществляется только межкадровое прогнозирование, и количество отсчетов яркостной составляющей в этом узле равно 32 (или произведение ширины на высоту узла равно 32), разбиение по схеме двоичного дерева (включая горизонтальное разбиение по схеме двоичного дерева или вертикальное разбиение по схеме двоичного дерева) для этого узла не допускается. Если ограничиться тем, что в некотором узле осуществляется только межкадровое прогнозирование, и количество отсчетов яркостной составляющей в этом узле равно 64 (или произведение ширины на высоту узла равно 64), разбиение по схеме троичного дерева (включая горизонтальное разбиение по схеме троичного дерева или вертикальное разбиение по схеме троичного дерева) для этого узла не допускается. Такой способ определения применим к данным видео в обоих форматах - и в формате YUV 4:2:0, и в формате YUV 4:2:2.
Например, если размер текущего узла равен 8×8 и в результате горизонтального разбиения по схеме двоичного дерева (или вертикального разбиение по схеме двоичного дерева) образуются два узла размером 8×4 (или 4×8), тогда в случае дальнейшего разбиения такого узла размером 8×4 (или 4×8) образуются блоки размером 4×4. В этом случае, вертикальное разбиение по схеме двоичного дерева (или горизонтальное разбиение по схеме двоичного дерева) не допускается для узла размером 8×4 (или 4×8), либо не допускается дальнейшее разбиение узла размером 8×4 (или 4×8). В качестве другого примера, если количество отсчетов яркостного блока из текущего узла равно 128, и режим разбиения представляет собой горизонтальное разбиение по схеме троичного дерева или вертикальное разбиение по схеме троичного дерева, может быть получен яркостной блок, в котором количество отсчетов равно 64. Однако если горизонтальное разбиение по схеме троичного дерева или вертикальное разбиение по схеме троичного дерева для узла потомка используется для узла яркостной составляющей с равным 64 количеством отсчетов, получают яркостные блоки размером 4×4. Поэтому, когда введено ограничение, что осуществляется только межкадровое прогнозирование, горизонтальное разбиение по схеме троичного дерева или вертикальное разбиение по схеме троичного дерева не допускается для узла с равным 64 количеством отсчетов, либо не допускается дальнейшее разбиение для узла с равным 64 количеством отсчетов.
Этап 505: Синтаксический анализ единицы кодирования для получения информации о режиме прогнозирования.
Синтаксический элемент, относящийся к внутрикадровому прогнозированию или межкадровому прогнозированию, подвергают синтаксическому анализу на основе типа режима прогнозирования для рассматриваемой единицы кодирования, с целью получения окончательного режима прогнозирования для рассматриваемой единицы кодирования. Прогнозирование осуществляются в соответствующем режиме прогнозирования, для получения предиктора.
Если текущий узел расположен в области изображения с внутрикадровым прогнозированием (иными словами, тип изображения или среза (slice_type), в котором расположен текущий узел, является внутрикадровым типом или I-типом) и режим с копированием IBC допустим к использованию, значение параметра cu_pred_mode определяют как 1, так что значение параметра cu_pred_mode оказывается получено без необходимости осуществлять синтаксический анализ потока битов данных. Если текущий узел расположен в области изображения с внутрикадровым прогнозированием, но режим с копированием IBC не допустим к использованию, значение параметра cu_pred_mode определяют как 1, значение флага cu_skip_flag равно 0, так что значение параметра cu_pred_mode оказывается получено без необходимости осуществлять синтаксический анализ потока битов данных.
Если текущий узел расположен в области изображения с межкадровым прогнозированием (иными словами, тип изображения или среза (slice_type), в котором расположен текущий узел, является межкадровым типом или B-типом), значение параметра cu_pred_mode определяют как 0, так что значение параметра cu_pred_mode оказывается получено без необходимости осуществлять синтаксический анализ потока битов данных.
Этап 506: Декодирование каждого блока кодирования для получения реконструированного сигнала блока изображения, соответствующего текущему узлу.
Например, процедуру межкадрового прогнозирования или процедуру внутрикадрового прогнозирования выполняют для каждой единицы CU на основе блока прогнозирования для этой единицы CU, с целью получения изображения межкадрового прогнозирования или изображения внутрикадрового прогнозирования для этой единицы CU. Затем, на основе информации остатка для каждой единицы CU, осуществляют процедуру деквантования и обратного преобразования на коэффициенте преобразования для получения остаточного изображения, и суммируют это остаточное изображение с прогнозируемым изображением соответствующей области для генерации реконструированного изображения.
Способ, соответствующий стороне кодирующего устройства:
Способ прогнозирования изображения, предложенный в одном из вариантов, используется в кодирующем устройстве 18 для видео, показанном на Фиг. 8. Этот вариант содержит следующие этапы.
Этап 601: Получение индикации режима разбиения для текущего узла.
Этап 601 в этом варианте является таким же, как этап 501, и подробности здесь снова описаны не будут.
Этап 602: Определение значения параметра modeTypeCondition согласно следующему способу.
Если одно или более условий из следующей первой группы заданных условий являются истинными, параметр modeTypeCondition имеет первое значение, например, 0:
(1) тип изображения или среза (Slice), в котором расположен текущий узел, является I-типом (slice_type == I), и значение флага qtbtt_dual_tree_intra_flag равно 1;
(2) тип режима прогнозирования для текущего узла представляет только внутрикадровое прогнозирование или только межкадровое прогнозирование, иными словами, процедура ограничена тем, что осуществляется только межкадровое прогнозирование или только внутрикадровое прогнозирование (не-межкадровое прогнозирование); или
(3) формат цветностной составляющей представляет собой черно-белый (монохромный (Monochrome)) формат или формат 4:4:4, где, например, значение параметра chroma_format_idc равно 0 или 3.
В другом варианте реализации, первая группа заданных условий далее содержит следующее условие (4):
(4) формат цветностной составляющей представляет собой черно-белый (монохромный (Monochrome)) формат, формат 4:4:4 или формат 4:2:2, где, например, значение параметра chroma_format_idc равно 0, 3 или 2.
В противном случае, если одно или более условий из следующей второй группы заданных условий являются истинными, величина параметра modeTypeCondition равна второму значению, например, 1:
(1) произведение ширины и высоты яркостного блока, расположенного в текущем узле, равно 64, и режим разбиения для текущего узла представляет собой разбиение по схеме дерева квадратов;
(2) произведение ширины и высоты яркостного блока, расположенного в текущем узле, равно 64, и режим разбиения для текущего узла представляет собой горизонтальное разбиение по схеме троичного дерева или вертикальное разбиение по схеме троичного дерева; или
(3) произведение ширины и высоты яркостного блока, расположенного в текущем узле, равно 32, и режим разбиения для текущего узла представляет собой горизонтальное разбиение по схеме двоичного дерева или вертикальное разбиение по схеме двоичного дерева.
В противном случае, если одно или более условий из следующей третьей группы заданных условий являются истинными, и формат цветностной составляющей является форматом 4:2:0 (значение параметра chroma_format_idc равно 1), значение параметра modeTypeCondition определяют в соответствии со следующей формулой: 1 + (slice_type != I? 1: 0):
(1) произведение ширины и высоты яркостного блока, расположенного в текущем узле, равно 64, и режим разбиения для текущего узла представляет собой горизонтальное разбиение по схеме двоичного дерева или вертикальное разбиение по схеме двоичного дерева; или
(2) произведение ширины и высоты яркостного блока, расположенного в текущем узле, равно 128, и режим разбиения для текущего узла представляет собой горизонтальное разбиение по схеме троичного дерева или вертикальное разбиение по схеме троичного дерева.
Этап 603: Определение типа режима прогнозирования для всех единиц кодирования, расположенных в текущем узле, на основе значения параметра modeTypeCondition.
В частности, если значение параметра modeTypeCondition равно 1, имеет место ограничение, что внутрикадровое прогнозирование (MODE_INTRA) осуществляется на всех единицах кодирования, расположенных в текущем узле. В качестве опции, значение флага mode_constraint_flag устанавливают равным 1.
Если значение параметра modeTypeCondition равно 2, величину синтаксического элемента mode_constraint_flag определяют с использованием способа оптимизации RDO. Например, сначала вычисляют стоимостную оценку RD cost, генерируемую в случае осуществления межкадрового прогнозирования на всех единицах кодирования, расположенных в текущем узле; затем, вычисляют оценку RD cost, генерируемую в случае осуществления внутрикадрового прогнозирования; и если нет остатка в случае осуществления межкадрового прогнозирования на всех единицах кодирования из текущего узла (например, используется режим пропуска), определяют, что межкадровое прогнозирование осуществляется на всех единицах кодирования, расположенных в текущем узле, значение флага mode_constraint_flag устанавливают равным 0, и нет необходимости вычислять стоимостную оценку RD cost, генерируемую в случае внутрикадрового прогнозирования. В качестве альтернативы, сначала может быть вычислена оценка RD cost, генерируемая в случае осуществления внутрикадрового прогнозирования на всех единицах кодирования, расположенных в текущем узле; затем вычисляют оценку RD cost, генерируемую в случае осуществления межкадрового прогнозирования; и определяют режим прогнозирования, которому соответствует меньшая оценка RD cost, в качестве конечного режима прогнозирования.
В противном случае, тип режима прогнозирования для всех единиц кодирования, расположенных в текущем узле, не ограничен и является таким же, как тип режима прогнозирования для текущего узла.
В частности, если текущий узел расположен в области изображения с внутрикадровым прогнозированием (иными словами, тип изображения или среза (slice_type), в котором расположен текущий узел, является внутрикадровым типом или I-типом) и режим с копированием IBC допустим к использованию, значение флага pred_mode_flag равно 1 по умолчанию. Если текущий узел расположен в области изображения с внутрикадровым прогнозированием, но режим с копированием IBC не допустим к использованию, значение флага pred_mode_flag равно 1 по умолчанию, и значение флага cu_skip_flag равно 0.
Этап 604: Определение режима разбиения для цветностного блока и режима разбиения для яркостного блока, соответствующих текущему узлу, с целью получения цветностной единицы кодирования и яркостной единицы кодирования.
(Этап 604 является таким же, как этап 504).
Этап 605: Прогнозирование блока кодирования для единицы CU, полученной в результате разбиения текущего узла, с целью получения предиктора для блока кодирования.
Если только внутрикадровое прогнозирование осуществляется на всех блоках кодирования, расположенных в текущем узле, сторона кодирующего устройства определяет, в соответствии со способом оптимизации соотношения между скоростью передачи данных и искажениями (Rate-distortion optimization, RDO) или другим способом, оптимальный режим внутрикадрового прогнозирования, используемый текущим блоком кодирования; и прогнозирует этот текущий блок кодирования с использованием соответствующего режима внутрикадрового прогнозирования, с целью получения предиктора для текущего блока.
Если только межкадровое прогнозирование осуществляется на всех блоках кодирования, расположенных в текущем узле, сторона кодирующего устройства определяет, в соответствии со способом оптимизации соотношения между скоростью передачи данных и искажениями или другим способом, оптимальный режим межкадрового прогнозирования, используемый для текущего блока кодирования; и прогнозирует текущий блок кодирования с использованием соответствующего режима межкадрового прогнозирования, с целью получения предиктора для текущего блока.
В дополнение к этому, кодирующее устройство назначает величины для синтаксических элементов, связанных с глубиной единиц CU, и записывает величину каждого синтаксического элемента в поток битов данных согласно критерию для определения синтаксиса на уровень единиц CU. Например, если только внутрикадровое прогнозирование осуществляется на всех блоках кодирования, расположенных в текущем узле, значение флага pred_mode_flag устанавливают равным 1 и этот флаг pred_mode_flag не записывают в поток битов данных, иными словами, флаг pred_mode_flag отсутствует в потоке битов данных. Если только внутрикадровое прогнозирование осуществляется на всех блоках кодирования, расположенных в текущем узле, и определено, что режим с копированием IBC не используется, значение флага cu_skip_flag (или флага skip_flag) равно 0, и флаг cu_skip_flag не записывают в поток битов данных. В противном случае, флаг cu_skip_flag необходимо записать в поток битов данных после определения значения флага cu_skip_flag, и передать стороне декодирующего устройства.
Если только межкадровое прогнозирование осуществляется на всех блоках кодирования, расположенных в текущем узле, значение флага pred_mode_flag устанавливают равным 0, и не записывают флаг pred_mode_flag в поток битов данных, иными словами, флаг pred_mode_flag отсутствует в потоке битов данных. Если значение флага pred_mode_ibc_flag установлено равным 0, этот флаг pred_mode_ibc_flag не записывают в поток битов данных, иными словами, флаг pred_mode_ibc_flag отсутствует в потоке битов данных.
Этап 606: Получение реконструированного сигнала блока изображения из текущего узла.
После получения информации о прогнозировании посредством внутрикадрового прогнозирования или межкадровое прогнозирование сторона кодирующего устройства получает информацию остатка посредством вычитания соответствующей информации о прогнозировании (или предиктора) из величины пикселя в текущем блоке кодирования, преобразует информацию остатка с использованием такого способа, как дискретное косинусное преобразования (Discrete Cosine Transformation, DCT), получает поток битов данных посредством квантования и энтропийного кодирования, и передает информацию остатка стороне декодирующего устройства. После суммирования прогнозируемого сигнала и реконструированного сигнала остатка стороне кодирующего устройства далее необходимо осуществить операцию фильтрации с целью получения реконструированного сигнала, после чего она использует этот реконструированный сигнал в качестве опорного сигнала для последующего кодирования. В частности, если для блока кодирования используется режим пропуска, информация остатка отсутствует, и стороне кодирующего устройства нет необходимости осуществлять преобразование, где предиктор имеет конечную реконструированную величину.
На Фиг. 15 представлена упрощенная структура функций оборудования для прогнозирования изображения согласно одному из вариантов настоящей заявки. Как показано на Фиг. 15, оборудование 40 прогнозирования изображения, предлагаемая в этом варианте содержит:
получающий модуль 41, конфигурированный для получения индикации режима разбиения для текущего узла;
решающий модуль 42, конфигурированный для определения, получается ли блок изображения заданного размера в результате разбиения текущего узла в рассматриваемом режиме разбиения, где этот блок изображения содержит яркостной блок или цветностной блок; и
исполнительный модуль 43, конфигурированный для того, чтобы: когда определено, что блок изображения указанного заданного размера получается в результате разбиения текущего узла в рассматриваемом режиме разбиения, осуществить внутрикадровое прогнозирование или межкадровое прогнозирование на всех блоках кодирования, покрываемых текущим узлом.
В качестве опции, блок изображения указанного заданного размера содержит яркостной блок первого заданного размера, и решающий модуль 42 в частности конфигурирован для: определения, на основе размера текущего узла и режима разбиения этого текущего узла, получается ли яркостной блок первого заданного размера в результате разбиения текущего узла в рассматриваемом режиме разбиения.
В качестве опции, когда определено, что яркостной блок первого заданного размера получается в результате разбиения текущего узла в рассматриваемом режиме разбиения, исполнительный модуль 43 в частности конфигурирован для:
осуществления внутрикадрового прогнозирования на всех блоках кодирования, покрываемых текущим узлом.
В качестве опции, когда яркостной блок первого заданного размера не получается в результате разбиения текущего узла в рассматриваемом режиме разбиения, решающий модуль 42 далее конфигурирован для: определения, получается ли цветностной блок второго заданного размера в результате разбиения текущего узла в рассматриваемом режиме разбиения; и
когда определено, что цветностной блок второго заданного размера получается в результате разбиения текущего узла в рассматриваемом режиме разбиения, исполнительный модуль 43 в частности конфигурирован для: осуществления внутрикадрового прогнозирования или межкадрового прогнозирования на всех блоках кодирования, покрываемых текущим узлом.
В качестве опции, блок изображения указанного заданного размера содержит цветностной блок второго заданного размера, и решающий модуль 42 в частности конфигурирован для: определения, на основе размера текущего узла и режима разбиения этого текущего узла, получен ли цветностной блок второго заданного размера в результате разбиения текущего узла в рассматриваемом режиме разбиения.
В качестве опции, когда определено, что цветностной блок второго заданного размера получен в результате разбиения текущего узла в рассматриваемом режиме разбиения, исполнительный модуль 43 в частности конфигурирован для:
синтаксического анализа флага статуса режима прогнозирования для текущего узла; и
когда флаг статуса режима прогнозирования имеет первое значение, осуществления межкадрового прогнозирования на всех блоках кодирования, покрываемых текущим узлом; или когда флаг статуса режима прогнозирования имеет второе значение, осуществления внутрикадрового прогнозирования на всех блоках кодирования, покрываемых текущим узлом.
В качестве опции, когда определено, что цветностной блок второго заданного размера получен в результате разбиения текущего узла в рассматриваемом режиме разбиения, исполнительный модуль 43 в частности конфигурирован для того, чтобы: когда режим прогнозирования, используемый для какого-либо блока кодирования, покрываемого текущим узлом, является режимом межкадрового прогнозирования, осуществлять межкадровое прогнозирование на всех блоках кодирования, покрываемых текущим узлом; или когда режим прогнозирования, используемый для какого-либо блока кодирования, покрываемого текущим узлом, является режимом внутрикадрового прогнозирования, осуществлять внутрикадровое прогнозирование на всех блоках кодирования, покрываемых текущим узлом.
В качестве опции, этот какой-либо блок кодирования является 1-ым блоком кодирования из всех блоков кодирования, покрываемых текущим узлом, в порядке декодирования.
В качестве опции, когда определено, что цветностной блок второго заданного размера получен в результате разбиения текущего узла в рассматриваемом режиме разбиения, исполнительный модуль 43 в частности конфигурирован для:
определения, получается ли яркостной блок первого заданного размера в результате разбиения текущего узла в рассматриваемом режиме разбиения; и
когда определено, что яркостной блок первого заданного размера получается в результате разбиения текущего узла в рассматриваемом режиме разбиения, осуществления внутрикадровое прогнозирование на всех блоках кодирования, покрываемых текущим узлом.
В качестве опции, когда определено, что яркостной блок первого заданного размера не получается в результате разбиения текущего узла в рассматриваемом режиме разбиения, исполнительный модуль 43 в частности конфигурирован для:
синтаксического анализа флага статуса режима прогнозирования для текущего узла; и
когда флаг статуса режима прогнозирования имеет первое значение, осуществления межкадрового прогнозирования на всех блоках кодирования, покрываемых текущим узлом; или когда флаг статуса режима прогнозирования имеет второе значение, осуществление внутрикадрового прогнозирования на всех блоках кодирования, покрываемых текущим узлом.
В качестве опции, когда определено, что яркостной блок первого заданного размера не получается в результате разбиения текущего узла в рассматриваемом режиме разбиения, исполнительный модуль 43 в частности конфигурирован для того, чтобы: когда режим прогнозирования, используемый для какого-либо блока кодирования, покрываемого текущим узлом, представляет собой режим межкадрового прогнозирования, осуществлять межкадровое прогнозирование на всех блоках кодирования, покрываемых текущим узлом; или когда режим прогнозирования, используемый для какого-либо блока кодирования покрываемого текущим узлом, представляет собой режим внутрикадрового прогнозирования, осуществлять внутрикадровое прогнозирование на всех блоках кодирования, покрываемых текущим узлом.
В качестве опции, исполнительный модуль 43 в частности конфигурирован для:
разбиения, в соответствующем режиме разбиения, яркостного блока, расположенного в текущем узле, с целью получения яркостных блоков в результате разбиения, и осуществления внутрикадрового прогнозирования на этих яркостных блоках, полученных в результате разбиения; и использования цветностного блока, расположенного в текущем узле, в качестве цветностного блока кодирования, и осуществления внутрикадрового прогнозирования на этом цветностном блоке кодирования; или
разбиения, в соответствующем режиме разбиения, яркостного блока, расположенного в текущем узле, с целью получения яркостных блоков в результате разбиения, и осуществления межкадрового прогнозирования на яркостных блоках, полученных в результате разбиения; и разбиения, в соответствующем режиме разбиения, цветностного блока, расположенного в текущем узле, с целью получения цветностных блоков в результате разбиения, и осуществления межкадрового прогнозирования на цветностных блоках, полученных в результате разбиения.
В качестве опции, исполнительный модуль 43 в частности конфигурирован для:
разбиения, в соответствующем режиме разбиения, яркостного блока, расположенного в текущем узле, с целью получения яркостных блоков в результате разбиения, и осуществления внутрикадрового прогнозирования на этих яркостных блоках, полученных в результате разбиения; и использования цветностного блока, расположенного в текущем узле, в качестве цветностного блока кодирования, и осуществления внутрикадрового прогнозирования на этом цветностном блоке кодирования; или
разбиения, в соответствующем режиме разбиения, яркостного блока, расположенного в текущем узле, с целью получения яркостных блоков в результате разбиения, и осуществления межкадрового прогнозирования на яркостных блоках, полученных в результате разбиения; и использования цветностного блока, расположенного в текущем узле, в качестве цветностного блока кодирования, и осуществления межкадрового прогнозирования на этом цветностном блоке кодирования.
В качестве опции, когда межкадровое прогнозирование осуществляется на всех блоках кодирования, покрываемых текущим узлом, получающий модуль 41 дополнительно конфигурирован для получения индикации под-режима разбиения для узла потомка относительно текущего узла, где этот узел потомок содержит яркостной блок и цветностной блок; и
решающий модуль 42 дополнительно конфигурирован для определения, получается ли яркостной блок первого заданного размера в результате разбиения узла потомка относительно текущего узла в указанном под-режиме разбиения; и
когда определено, что яркостной блок первого заданного размера получается в результате разбиения узла потомка относительно текущего узла в указанном под-режиме разбиения, исполнительный модуль 43 в частности конфигурирован для: разбиения узла потомка относительно текущего узла в режиме разбиения, отличном от указанного под-режима разбиения, с целью получения соответствующего блока кодирования, и осуществления межкадрового прогнозирования на этом соответствующем блоке кодирования; или использования этого узла потомка относительно текущего узла в качестве блока кодирования, и осуществления межкадрового прогнозирования на этом блоке кодирования.
Оборудование для прогнозирования изображения, предлагаемая в этом варианте настоящей заявки, можно реализовывать технические решения согласно описанным выше вариантам способа. Принципы реализации и технические эффекты этой оборудования аналогичны тому, что описано выше, так что подробности здесь снова описаны не будут.
На Фиг. 16 приведена упрощенная структурная схема оборудования устройства для кодирования видео согласно одному из вариантов настоящей заявки. Как показано на Фиг. 16, устройство 50 для кодирования видео, предложенное в этом варианте, содержит процессор 51 и запоминающее устройство 52, конфигурированное для хранения выполняемых команд для процессора 51. Процессор 51 может осуществлять способ прогнозирования изображения, соответствующий устройству для кодирования видео в приведенных выше вариантах способа. Принципы реализации и технические эффекты этой оборудования аналогично тому, что описано выше, так что подробности здесь снова описаны не будут.
В качестве опции, запоминающее устройство 52 может быть независимым или может быть интегрировано с процессором 51.
Когда запоминающее устройство 52 является компонентом, независимым от процессора 51, устройство 50 для кодирования видео далее содержит шину 53, конфигурированную для соединения запоминающего устройства 52 с процессором 51.
На Фиг. 17 приведена упрощенная структурная схема оборудования устройства для декодирования видео согласно одному из вариантов настоящей заявки. Как показано на Фиг. 17, устройство 60 для декодирования видео, предложенное в этом варианте, содержит процессор 61 и запоминающее устройство 62, конфигурированное для хранения выполняемых команд для процессора 61. Процессор 61 может осуществлять способ прогнозирования изображения, соответствующий устройству для декодирования видео в приведенных выше вариантах способа. Принципы реализации и технические эффекты этой оборудования аналогичны тому, что описано выше, так что подробности здесь снова описаны не будут.
В качестве опции, запоминающее устройство 62 может быть независимым или может быть интегрировано с процессором 61.
Когда запоминающее устройство 62 является компонентом, независимым от процессора 61, устройство 60 для декодирования видео далее содержит шину 63, конфигурированную для соединения запоминающего устройства 62 с процессором 61.
На Фиг. 18 представлена упрощенная структурная схема системы прогнозирования изображения согласно одному из вариантов настоящей заявки. Как показано на Фиг. 18, система для прогнозирования изображения, предлагаемая в этом варианте, содержит устройство 70 для сбора видео, устройство 50 для кодирования видео из варианта, показанного на Фиг. 16, устройство 60 для декодирования видео из варианта, показанного на Фиг. 17, и дисплейное устройство 80.
Устройство 50 для кодирования видео соединено и с устройством 70 для сбора, видео и с устройством 60 для декодирования видео, и устройство 60 для декодирования видео соединено с дисплейным устройством 80.
В частности, устройство 50 для кодирования видео принимает видео или информацию изображения, переданную устройством 70 для сбора видео. Это устройство 50 для кодирования видео может осуществить способ прогнозирования изображения, соответствующий устройству 50 для кодирования видео, из описанных выше вариантов способа. Устройство 50 для кодирования видео передает кодированное видео или кодированную информацию изображения устройству 60 для декодирования видео. Это устройство 60 для декодирования видео может осуществить способ прогнозирования изображения, соответствующий устройству 60 для декодирования видео, из описанных выше вариантов способа. Устройство 60 для декодирования видео передает декодированное видео или информацию изображения дисплейному устройству 80 для представления на экране.
Система для прогнозирования изображения, предлагаемая в этом варианте настоящей заявки, содержит устройство для кодирования видео, которое может осуществлять описанные выше варианты способа, и устройство для декодирования видео, способное осуществлять описанные выше варианты способа. Принципы реализации и технические эффекты этой оборудования аналогичны тому, что описано выше, так что подробности здесь снова описаны не будут.
Один из вариантов настоящей заявки далее предлагает читаемый компьютером носитель для хранения информации. Этот читаемый компьютером носитель для хранения информации сохраняет компьютерную программу, при выполнении которой процессор осуществляет этапы приведенных выше вариантов способа.
Один из вариантов настоящей заявки далее предлагает способ декодирования видео, где этот способ содержит:
получение индикации режима разбиения для текущего узла, где текущий узел содержит яркостной блок и цветностной блок;
определение, получен ли небольшой цветностной блок в результате дальнейшего разбиения текущего узла в режиме разбиения для этого текущего узла, где небольшой цветностной блок представляет собой цветностной блок с количеством пикселей не больше первой заданной величины, либо небольшой цветностной блок представляет собой цветностной блок, в блоках, с количеством пикселей не больше второй заданной величины; и
если небольшой цветностной блок получен в результате дальнейшего разбиения текущего узла в режиме разбиения для этого текущего узла, осуществление межкадрового прогнозирования или внутрикадрового прогнозирования на блоке кодирования (coding block), полученном в результате разбиения текущего узла, служащего корневым узлом, с целью получения информации о прогнозировании для блока кодирования, полученного в результате разбиения.
В качестве опции, процедура межкадрового прогнозирования на блоке кодирования (coding block), полученном в результате разбиения текущего узла, служащего корневым узлом, содержит: осуществление межкадрового прогнозирования на всех блоках кодирования (coding block), полученных в результате разбиения текущего узла, служащего корневым узлом; или
процедура внутрикадрового прогнозирования на блоке кодирования (coding block), полученном в результате разбиения текущего узла, служащего корневым узлом, содержит: осуществление внутрикадрового прогнозирования на всех блоках кодирования (coding block), полученных в результате разбиения текущего узла, служащего корневым узлом.
В качестве опции, процедура межкадрового прогнозирования на блоке кодирования (coding block), полученном в результате разбиения текущего узла, служащего корневым узлом, содержит: осуществление межкадрового прогнозирования на всех небольших цветностных блоках, полученных в результате разбиения текущего узла, служащего корневым узлом; или
процедура внутрикадрового прогнозирования на блоке кодирования (coding block), полученном в результате разбиения текущего узла, служащего корневым узлом, содержит: осуществление внутрикадрового прогнозирования на всех на всех небольших цветностных блоках, полученных в результате разбиения текущего узла, служащего корневым узлом.
В качестве опции, процедура межкадрового прогнозирования на блоке кодирования (coding block), полученном в результате разбиения текущего узла, служащего корневым узлом, содержит: осуществление межкадрового прогнозирования на единице кодирования (coding unit), полученной в результате разбиения текущего узла, служащего корневым узлом; или
процедура внутрикадрового прогнозирования на блоке кодирования (coding block), полученном в результате разбиения текущего узла, служащего корневым узлом, содержит: осуществление внутрикадрового прогнозирования на единице кодирования (coding unit), полученной в результате разбиения текущего узла, служащего корневым узлом.
В качестве опции, процедура межкадрового прогнозирования или внутрикадрового прогнозирования на блоке кодирования (coding block), полученном в результате разбиения текущего узла, служащего корневым узлом, содержит:
проведение синтаксического анализа флага режима прогнозирования узла (cons_pred_mode_flag) для текущего узла; и
когда флаг режима прогнозирования узла имеет первое значение, осуществление межкадрового прогнозирование на блоке кодирования (coding block), полученном в результате разбиения текущего узла, служащего корневым узлом; или
когда флаг режима прогнозирования узла имеет второе значение, осуществление внутрикадрового прогнозирование на блоке кодирования (coding block), полученном в результате разбиения текущего узла, служащего корневым узлом.
В качестве опции, процедура межкадрового прогнозирования или внутрикадрового прогнозирования на блоке кодирования (coding block), полученном в результате разбиения текущего узла, служащего корневым узлом, содержит:
когда режим прогнозирования, используемый для какого-либо блока кодирования, полученного в результате разбиения текущего узла, служащего корневым узлом, представляет собой межкадровое прогнозирование, осуществление межкадрового прогнозирования на блоке кодирования (coding block), полученном в результате разбиения текущего узла, служащего корневым узлом; или
когда режим прогнозирования, используемый для какого-либо блока кодирования, полученного в результате разбиения текущего узла, служащего корневым узлом, представляет собой внутрикадровое прогнозирование, осуществление внутрикадрового прогнозирования на блоке кодирования (coding block), полученном в результате разбиения текущего узла, служащего корневым узлом.
В качестве опции, первая заданная величина равна 2 или 4, либо вторая заданная величина равна 16, 8 или 32.
В качестве опции, процедура внутрикадрового прогнозирования на блоке кодирования (coding block), полученном в результате разбиения текущего узла, служащего корневым узлом, содержит:
разбиение, в режиме разбиения для рассматриваемого узла, яркостного блока, расположенного в текущем узле, для получения яркостного блока кодирования;
осуществление внутрикадрового прогнозирования на этом яркостном блоке кодирования; и
использование цветностного блока, находящегося в текущем узле, в качестве цветностного блока кодирования, и осуществление внутрикадрового прогнозирования на этом цветностном блоке кодирования.
В качестве опции, процедура межкадрового прогнозирования или внутрикадрового прогнозирования на блоке кодирования (coding block), полученном в результате разбиения текущего узла, служащего корневым узлом, содержит:
разбиение, в режиме разбиения для рассматриваемого узла, яркостного блока, расположенного в текущем узле, для получения яркостного блока кодирования;
осуществление межкадрового прогнозирования или внутрикадрового прогнозирования на этом яркостном блоке кодирования; и
использование цветностного блока, расположенного в текущем узле, в качестве цветностного блока кодирования, и осуществление межкадрового прогнозирования или внутрикадрового прогнозирования на этом цветностном блоке кодирования.
В качестве опции, процедура использования цветностного блока, расположенного в текущем узле, в качестве цветностного блока кодирования, и осуществления межкадрового прогнозирования или внутрикадрового прогнозирования на этом цветностном блоке кодирования, содержит:
использование цветностного блока кодирования в качестве цветностного блока прогнозирования, и осуществление внутрикадрового прогнозирования на этом цветностном блоке прогнозирования; или
разбиение цветностного блока кодирования с целью получения цветностного блока прогнозирования, и осуществление межкадрового прогнозирования на этом цветностном блоке прогнозирования, полученном в результате разбиения.
Один из вариантов настоящей заявки далее предлагает способ декодирования видео, где этот способ содержит:
получение индикации режима разбиения для текущего узла, где этот текущий узел содержит яркостной блок и цветностной блок;
определение, получается ли яркостной блок заданного размера в результате дальнейшего разбиения текущего узла в режиме разбиения для этого текущего узла; и
если яркостной блок указанного заданного размера получается в результате дальнейшего разбиения текущего узла в режиме разбиения для этого текущего узла, осуществление внутрикадрового прогнозирования на всех блоках кодирования (coding block), полученных в результате разбиения текущего узла, служащего корневым узлом, с целью получения блоков прогнозирования для блоков кодирования, полученных в результате разбиения.
В качестве опции, способ дополнительно содержит:
если яркостной блок указанного заданного размера не получается в результате дальнейшего разбиения текущего узла в режиме разбиения для этого текущего узла, определение, получается ли небольшой цветностной блок в результате дальнейшего разбиения текущего узла в режиме разбиения для этого текущего узла, где небольшой цветностной блок представляет собой цветностной блок с количеством пикселей не больше первой заданной величины, либо небольшой цветностной блок представляет собой цветностной блок, в блоках, с количеством пикселей не больше второй заданной величины; и
если небольшой цветностной блок получается в результате дальнейшего разбиения текущего узла в режиме разбиения для этого текущего узла, осуществление межкадрового прогнозирования или внутрикадрового прогнозирования на блоке кодирования (coding block), полученном в результате разбиения текущего узла, служащего корневым узлом, с целью получения блока прогнозирования для блока кодирования, полученного в результате разбиения.
В качестве опции, процедура межкадрового прогнозирования на блоке кодирования (coding block), полученном в результате разбиения текущего узла, служащего корневым узлом, содержит: осуществление межкадрового прогнозирования на всех блоках кодирования (coding block), полученных в результате разбиения текущего узла, служащего корневым узлом; или
процедура внутрикадрового прогнозирования на блоке кодирования (coding block), полученном в результате разбиения текущего узла, служащего корневым узлом, содержит: осуществление внутрикадрового прогнозирования на всех блоках кодирования (coding block), полученном в результате разбиения текущего узла, служащего корневым узлом.
В качестве опции, процедура межкадрового прогнозирования на блоке кодирования (coding block), полученном в результате разбиения текущего узла, служащего корневым узлом, содержит: осуществление межкадрового прогнозирования на всех небольших цветностных блоках, полученных в результате разбиения текущего узла, служащего корневым узлом; или
осуществление внутрикадрового прогнозирования на блоке кодирования (coding block), полученном в результате разбиения текущего узла, служащего корневым узлом: осуществление внутрикадрового прогнозирования на всех небольших цветностных блоках, полученных в результате разбиения текущего узла, служащего корневым узлом.
В качестве опции, процедура межкадрового прогнозирования на блоке кодирования (coding block), полученном в результате разбиения текущего узла, служащего корневым узлом, содержит: осуществление межкадрового прогнозирования на единице кодирования (coding unit), полученной в результате разбиения текущего узла, служащего корневым узлом; или
процедура внутрикадрового прогнозирования на блоке кодирования (coding block), полученном в результате разбиения текущего узла, служащего корневым узлом, содержит: осуществление внутрикадрового прогнозирования на единице кодирования (coding unit), полученной в результате разбиения текущего узла, служащего корневым узлом.
В качестве опции, процедура межкадрового прогнозирования или внутрикадрового прогнозирования на блоке кодирования (coding block), полученном в результате разбиения текущего узла, служащего корневым узлом, содержит:
проведение синтаксического анализа флага режима прогнозирования узла (cons_pred_mode_flag) для текущего узла; и
когда флаг режима прогнозирования узла имеет первое значение, осуществление межкадрового прогнозирование на блоке кодирования (coding block), полученном в результате разбиения текущего узла, служащего корневым узлом; и
когда флаг режима прогнозирования узла имеет второе значение, осуществление внутрикадрового прогнозирование на блоке кодирования (coding block), полученном в результате разбиения текущего узла, служащего корневым узлом.
В качестве опции, процедура межкадрового прогнозирования или внутрикадрового прогнозирования на блоке кодирования (coding block), полученном в результате разбиения текущего узла, служащего корневым узлом, содержит:
когда режим прогнозирования, используемый для какого-либо из блоков кодирования, полученных в результате разбиения текущего узла, служащего корневым узлом, представляет собой режим межкадрового прогнозирования, осуществление межкадрового прогнозирования на блоке кодирования (coding block), полученном в результате разбиения текущего узла, служащего корневым узлом; и
когда режим прогнозирования, используемый для какого-либо из блоков, полученных в результате разбиения текущего узла, служащего корневым узлом, представляет собой режим внутрикадрового прогнозирования, осуществление внутрикадрового прогнозирования на блоке кодирования (coding block), полученном в результате разбиения текущего узла, служащего корневым узлом.
В качестве опции, первая заданная величина равна 2 или 4, или вторая заданная величина равна 16, 8 или 32.
В качестве опции, процедура внутрикадрового прогнозирования на блоке кодирования (coding block), полученном в результате разбиения текущего узла, служащего корневым узлом, содержит:
разбиение, в режиме разбиения для указанного узла, яркостного блока, расположенного в текущем узле, для получения яркостного блока кодирования;
осуществление внутрикадрового прогнозирования на яркостном блоке кодирования; и
использование цветностного блока, расположенного в текущем узле, в качестве цветностного блока кодирования, и осуществление внутрикадрового прогнозирования на этом цветностном блоке кодирования.
В качестве опции, процедура межкадрового прогнозирования или внутрикадрового прогнозирования на блоке кодирования (coding block), полученном в результате разбиения текущего узла, служащего корневым узлом, содержит:
разбиение, в режиме разбиения для указанного узла, яркостного блока, расположенного в текущем узле, для получения яркостного блока кодирования;
осуществление межкадрового прогнозирования или внутрикадрового прогнозирования на яркостном блоке кодирования; и
использование цветностного блока, расположенного в текущем узле, в качестве цветностного блока кодирования, и осуществление межкадрового прогнозирования или внутрикадрового прогнозирования на цветностном блоке кодирования.
В качестве опции, процедура использования цветностного блока, расположенного в текущем узле, в качестве цветностного блока кодирования, и осуществления межкадрового прогнозирования или внутрикадрового прогнозирования на цветностном блоке кодирования, содержит:
использование цветностного блока кодирования в качестве цветностного блока прогнозирования, и осуществление внутрикадрового прогнозирования на цветностном блоке прогнозирования; или
разбиение цветностного блока кодирования для получения цветностного блока прогнозирования, и осуществление межкадрового прогнозирования на цветностном блоке прогнозирования, полученном в результате разбиения.
В качестве опции, процедура межкадрового прогнозирования на блоке кодирования (coding block), полученном в результате разбиения текущего узла, служащего корневым узлом, содержит:
разбиение текущего узла в режиме разбиения этого текущего узла для получения узла потомка относительно этого текущего узла;
получение индикации под-режима разбиения для узла потомка относительно текущего узла, где этот узел потомок содержит яркостной блок и цветностной блок;
определение, получается ли яркостной блок заданного размера в результате дальнейшего разбиения узла потомка относительно текущего узла в указанном под-режиме разбиения; и
если яркостной блок указанного заданного размера получается в результате дальнейшего разбиения узла потомка относительно текущего узла в указанном под-режиме разбиения, разбиение узла потомка относительно текущего узла в режиме разбиения, отличном от указанного под-режима разбиения, с целью получения соответствующей единицы кодирования, и осуществление межкадрового прогнозирования на соответствующей единице кодирования; или использование узла потомка относительно текущего узла в качестве единицы кодирования, и осуществление межкадрового прогнозирования на этой единице кодирования.
В качестве опции, заданный размер может быть равен 4×4, 4×8, 8×4, 2×4 или 4×2.
Один из вариантов настоящей заявки далее предлагает способ декодирования видео, где этот способ содержит:
получение индикации режима разбиения для текущего узла, где текущий узел содержит яркостной блок и цветностной блок;
когда режим прогнозирования, используемый для всех блоков кодирования (coding block), полученных в результате разбиения текущего узла, служащего корневым узлом, представляет собой режим межкадрового прогнозирования, разбиение текущего узла в режиме разбиения этого текущего узла для получения узла потомка относительно этого текущего узла;
получение индикации под-режима разбиения для узла потомка относительно текущего узла, где этот узел потомок содержит яркостной блок и цветностной блок;
определение, получается ли яркостной блок заданного размера в результате дальнейшего разбиения узла потомка относительно этого текущего узла в указанном под-режиме разбиения; и
если яркостной блок указанного заданного размера получается в результате дальнейшего разбиения узла потомка относительно этого текущего узла в указанном под-режиме разбиения, разбиение узла потомка относительно этого текущего узла в режиме разбиения, отличном от указанного под-режима разбиения, с целью получения соответствующей единицы кодирования, и осуществление межкадрового прогнозирования на соответствующей единице кодирования; или использование узла потомка относительно этого текущего узла в качестве единицы кодирования, и осуществление межкадрового прогнозирования на этой единице кодирования.
Первый способ декодирования видео, предлагаемый в этом варианте настоящей заявки, относится к режиму разбиения блоков при декодировании видео. Формат данных видео в этом варианте представляет собой формат YUV 4:2:0. Аналогичный способ может быть использован для данных в формате YUV 4:2:2.
Этап 1: Синтаксический анализ режима S разбиения для узла A. Если узел A подвергается дальнейшему разбиению, выполняется этап 2. Если текущий узел не подвергается дальнейшему разбиению на дочерние узлы, текущий узел соответствует одной единице кодирования, и подвергают синтаксическому анализу информацию относительно указанной единицы кодирования.
Режим разбиения узла A может представлять собой по меньшей мере одно из списка - разбиение по схеме дерева квадратов, вертикальное разбиение по схеме двоичного дерева, горизонтальное разбиение по схеме двоичного дерева, вертикальное разбиение по схеме троичного дерева и горизонтальное разбиение по схеме троичного дерева. Режим разбиения может представлять собой другой режим разбиения. В настоящей заявке это не ограничивается. Информация о режиме разбиения может быть передана в потоке битов данных. Индикация режима разбиения для текущего узла может быть получена посредством синтаксического анализа соответствующего синтаксического элемента из потока битов данных. Режим разбиения текущего узла может быть в качестве альтернативы определен в соответствии с заданным правилом. В настоящей заявке это не ограничивается.
Этап 2: Определение, является ли цветностной блок по меньшей мере одного узла потомка B из совокупности дочерних узлов, полученных в результате разбиения узла A в режиме S разбиения, небольшим блоком (посредством определения, удовлетворяют ли ширина и высота узла A, и/или режим разбиения для узла A, и/или ширина и высота узла B по меньшей мере одному условию из группы следующих условий). Если цветностной блок по меньшей мере одного узла потомка B из совокупности дочерних узлов, получаемых в результате разбиения узла A, является небольшим блоком, выполняют этапы с этапа 3 по этап 6 включительно.
В частности, является ли цветностной блок по меньшей мере одного из дочерних узлов B относительно узла A небольшим блоком, может быть определено одним из следующих способов:
(1) если размер цветностного блока по меньшей мере в одном из дочерних узлов B относительно узла A равен 2×2, 2×4 или 4×2, этот цветностной блок по меньшей мере в одном из дочерних узлов B относительно узла A является небольшим блоком;
(2) если ширина или высота цветностного блока по меньшей мере в одном из дочерних узлов B относительно узла A равен 2, этот цветностной блок по меньшей мере в одном из дочерних узлов B относительно узла A является небольшим блоком;
(3) если узел A содержит 128 пикселей яркостной составляющей и для этого узла A используется разбиение по схеме троичного дерева, или если узел A содержит 64 пикселя яркостной составляющей и для этого узла A используется разбиение по схеме двоичного дерева, разбиение по схеме дерева квадратов или разбиение по схеме троичного дерева, цветностной блок по меньшей мере в одном из дочерних узлов B относительно узла A является небольшим блоком;
(4) если узел A содержит 256 пикселей яркостной составляющей и для этого узла A используется разбиение по схеме троичного дерева или разбиение по схеме дерева квадратов, или если узел A содержит 128 пикселей яркостной составляющей и для этого узла A используется разбиение по схеме двоичного дерева, цветностной блок по меньшей мере в одном из дочерних узлов B относительно узла A является небольшим блоком;
(5) если узел A содержит N1 пикселей яркостной составляющей и для этого узла A используется разбиение по схеме троичного дерева, где N1 равно 64, 128 или 256, цветностной блок по меньшей мере в одном из дочерних узлов B относительно узла A является небольшим блоком;
(6) если узел A содержит N2 пикселей яркостной составляющей и для этого узла A используется разбиение по схеме дерева квадратов, где N2 равно 64 или 256, цветностной блок по меньшей мере в одном из дочерних узлов B относительно узла A является небольшим блоком; или
(7) если узел A содержит N3 пикселей яркостной составляющей и для этого узла A используется разбиение по схеме двоичного дерева, где N3 равно 64, 128 или 256, цветностной блок по меньшей мере в одном из дочерних узлов B относительно узла A является небольшим блоком.
Следует отметить, что тот факт, что узел A содержит 128 пикселей яркостной составляющей, может быть также описан как то, что площадь текущего узла равна 128, или произведение ширины на высоту узла A равно 128. Подробности здесь описаны не будут.
Этап 3: Ограничение, что внутрикадровое прогнозирование осуществляется на всех единицах кодирования в области покрытия узла A, или ограничение, что межкадровое прогнозирование осуществляется на всех единицах кодирования в области покрытия узла A. Внутрикадровое прогнозирование или межкадровое прогнозирование осуществляется на всех единицах кодирования в области покрытия узла A, так что может быть реализована параллельная обработка небольших блоков, повышая тем самым характеристики (производительность) кодирования.
Осуществлять ли внутрикадровое прогнозирование или межкадровое прогнозирование на всех единицах кодирования в области покрытия узла A, может быть определено одним из следующих способов.
Способ 1: Определение, осуществляется ли внутрикадровое прогнозирование или межкадровое прогнозирование, на основе флага в синтаксической таблице.
Если цветностной блок по меньшей мере одного узла потомка B, полученного в результате разбиения узла A в режиме S разбиения, является небольшим блоком (и цветностной блок в узле A не является небольшим блоком), флаг cons_pred_mode_flag выделяют посредством синтаксического анализа из потока битов данных. Когда значение флага cons_pred_mode_flag равно 0, это означает, что межкадровое прогнозирование осуществляется на всех единицах кодирования в области покрытия узла A, или когда значение флага cons_pred_mode_flag равно 1, это означает, что внутрикадровое прогнозирование осуществляется на всех единицах кодирования в области покрытия узла A. Флаг cons_pred_mode_flag может представлять собой синтаксический элемент, который необходимо подвергнуть синтаксическому анализу в процессе разбиения блока. Когда производится синтаксический анализ синтаксического элемента, параметр cu_pred_mode единицы кодирования, расположенной в области покрытия узла A, может не быть подвергнут синтаксическому анализу, а значение параметра cu_pred_mode является значением по умолчанию, соответствующим значению флага cons_pred_mode_flag.
Следует отметить, что если для узла потомка относительно узла A используется только режим внутрикадрового прогнозирования, например, если узел A расположен в пределах изображения с внутрикадровым прогнозированием (иными словами, тип изображения, в котором расположен узел A, является внутрикадровым типом или I-типом), или если узел A расположен в пределах изображения с внутрикадровым прогнозированием и технология с копированием IBC не используется для последовательности, значение флага cons_pred_mode_flag равно 1 по умолчанию, иными словами, флаг cons_pred_mode_flag отсутствует в потоке битов данных. Технология с копированием IBC может принадлежать межкадровому прогнозированию или внутрикадровому прогнозированию.
Способ 2: Определение, на основе режима прогнозирования для 1-го узла в области узла A, осуществляется ли внутрикадровое прогнозирование или межкадровое прогнозирование.
Проводят синтаксический анализ режима прогнозирования для 1-й единицы B0 кодирования в области узла A (режим прогнозирования для 1-й единицы B0 кодирования не ограничен). Если режим прогнозирования для 1-й единицы B0 является режимом внутрикадрового прогнозирования, это внутрикадровое прогнозирование осуществляется на всех единицах кодирования в области покрытия узла A. Если режим прогнозирования для 1-й единицы B0 кодирования является режимом межкадрового прогнозирования, это межкадровое прогнозирование осуществляется на всех единицах кодирования в области покрытия узла A.
Этап 4: Определение режима разбиения для цветностного блока и режима разбиения для яркостного блока из узла A на основе режима прогнозирования, используемого для единицы кодирования в области покрытия узла A.
Если режим внутрикадрового прогнозирования используется для всех единиц кодирования в области покрытия узла A, яркостной блок узла A разбивают в режиме S разбиения с целью получения N узлов дерева кодирования яркостной составляющей. Цветностной блок узла A не подвергается дальнейшему разбиению и соответствует одному цветностному блоку кодирования (chroma CB для краткости). Может быть введено ограничение, что указанные N узлов дерева кодирования яркостной составляющей далее не разбивают, либо это ограничение не вводят. Если узел потомок яркостной составляющей подвергают дальнейшему разбиению, проводят синтаксический анализ режима разбиения для узла потомка яркостной составляющей для осуществления рекурсивного разбиения. Когда узел дерева кодирования яркостной составляющей не подвергают дальнейшему разбиению, такой узел дерева кодирования яркостной составляющей соответствует одному яркостному блок кодирования (luma CB для краткости). Блок преобразования цветностной составляющей, соответствующий цветностному блоку CB и цветностной блок кодирования имеют одинаковый размер, и цветностной блок прогнозирования и цветностной блок кодирования имеют одинаковый размер.
Если режим межкадрового прогнозирования используется для всех единиц кодирования в области покрытия узла A, яркостной блок и цветностной блок в узле A подвергают дальнейшему разбиению, в режиме S разбиения, на N узлов дерева кодирования, которые содержат яркостной блок и цветностной блок. Эти N узлов дерева кодирования могут быть или могут не быть подвергнуты дальнейшему разбиению. В случае, когда дальнейшее разбиение не производится, эти N узлов дерева кодирования соответствуют единицам кодирования, которые содержат яркостные блоки и цветностные блоки.
Этап 5: Синтаксический анализ информации о прогнозировании и информации остатка для единицы CU, полученной в результате разбиения узла A.
Информация о прогнозировании содержит индикацию режима прогнозирования (обозначает режим внутрикадрового прогнозирования или режим не-внутрикадрового прогнозирования), режима внутрикадрового прогнозирования, режима межкадрового прогнозирования, информацию о движении и т.п. Информация о движении может содержать такую информацию, как направление прогнозирования (прямое, обратное или двунаправленное), опорный индекс (reference index), и вектор движения (motion vector).
Информация остатка содержит: флаг кодированного блока (coded block flag, cbf), коэффициент преобразования, тип преобразования (такой как DCT-2, DST-7 или DCT-8) и другую подобную информацию. По умолчанию преобразование может быть типа DCT-2.
Если ограничиться тем, что только внутрикадровое прогнозирование осуществляется на всех единицах CU, полученных в результате разбиения узла A, процедура синтаксического анализа информации о прогнозирования для яркостного блока CB, полученного в результате разбиения узла A, содержит: установление значения флага skip_flag, значения флага merge_flag и значения флага cu_pred_mode равных соответственно 0, 0 и 1 по умолчанию (иными словами, флаг skip_flag, merge_flag и параметр cu_pred_mode отсутствуют в потоке битов данных), или установление значения флага skip_flag и значение параметра cu_pred_mode соответственно 0 и 1 по умолчанию (иными словами, флаг skip_flag и параметр cu_pred_mode отсутствуют в потоке битов данных); и проведение синтаксического анализа информации о режиме внутрикадрового прогнозирования для яркостного блока CB. Процедура синтаксического анализа информации о прогнозировании для цветностного блока CB, полученного в результате разбиения узла A, содержит: проведение синтаксического анализа режима внутрикадрового прогнозирования для цветностного блока CB. Информация о режиме внутрикадрового прогнозирования для цветностного блока CB может быть подвергнута синтаксическому анализу в соответствии со следующим способом: (1) проведение синтаксического анализа синтаксического элемента в потоке битов данных для получения индикации режима внутрикадрового прогнозирования; или (2) прямое установление режима внутрикадрового прогнозирования, соответствующего одному из режимов внутрикадрового прогнозирования из группы режимов внутрикадрового прогнозирования для цветностной составляющей, куда входят такие режимы, как режим линейной модели, DM-режим (chroma derived mode, DM), режим копирования IBC и другие подобные режимы.
Если ограничиться тем, что только межкадровое прогнозирование осуществляется на всех единицах CU, полученных в результате разбиения узла A, процедура синтаксического анализа индикации режима прогнозирования для единицы CU, полученной в результате разбиения узла A, содержит: проведение синтаксического анализа флага skip_flag или/и флага merge_flag, установление значения параметра cu_pred_mode равного 0 по умолчанию, и проведение синтаксического анализа информации о межкадровом прогнозировании, такой как индекс объединения (merge index), направление межкадрового прогнозирования (inter dir), опорный индекс (reference index), индекс предиктора вектора движения (motion vector predictor index) и разность векторов движения (motion vector difference).
Флаг skip_flag представляет собой флаг пропуска. Когда значение флага skip_flag равно 1, это означает, что режим пропуска используется для текущей единицы CU, или когда значение флага skip_flag равно 0, это означает, что режим пропуска не используется для текущей единицы CU. Флаг merge_flag представляет собой флаг режима объединения. Когда значение флага merge_flag равно 1, это означает, что режим объединения используется для текущей единицы CU, или когда значение флага merge_flag равно 0, это означает, что режим объединения не используется для текущей единицы CU. Параметр cu_pred_mode представляет флаг режима прогнозирования для единицы кодирования. Когда значение параметра cu_pred_mode равно 1, это означает, что внутрикадровое прогнозирование осуществляется на текущей единице прогнозирования, или когда значение параметра cu_pred_mode равно 0, это означает, что обычное межкадровое прогнозирование (идентифицирующее информацию, такую как направление межкадрового прогнозирования, опорный индекс, индекс предиктора вектора движения и разница векторов движения в потоке битов данных) осуществляется на текущей единице прогнозирования.
Следует отметить, что, в этом варианте, режим внутрикадрового прогнозирования представляет собой режим прогнозирования, в котором предиктор блока кодирования генерируют с использованием опорного пикселя в пространственной области из изображения, в котором расположен блок кодирования. Например, режим внутрикадрового прогнозирования представляет собой прямой текущий режим (direct current mode, DC mode), планарный режим (Planar mode), угловой режим (angular mode), режим согласования с шаблоном (template matching mode), или режим копирования IBC.
Режим межкадрового прогнозирования представляет собой режим прогнозирования, в котором предиктор блока кодирования генерируют с использованием опорного пикселя временной области из опорного изображения блока кодирования. Например, режим межкадрового прогнозирования представляет собой режим пропуска (Skip mode), режим объединения (Merge mode), режим усовершенствованного прогнозирования вектора движения (AMVP (advanced motion vector прогнозирования)) (который также называется обычным режимом межкадрового прогнозирования), или режим с копированием IBC.
Этап 6: Декодирование каждой единицы CU с целью получения реконструированного сигнала блока изображения, соответствующего узлу A.
Например, процедуру межкадрового прогнозирования или процедуру внутрикадрового прогнозирования осуществляют для каждой единицы CU на основе информации о прогнозировании для этой единицы CU, с целью получения изображения межкадрового прогнозирования или изображения внутрикадрового прогнозирования этой единицы CU. Затем, на основе информации остатка для каждой единицы CU, выполняют процедуру деквантования и обратного преобразования над коэффициентом преобразования с целью получения остаточного изображения, и затем это остаточное изображение суммируют с прогнозируемым изображением соответствующей области для генерации реконструированного изображения.
В режиме разбиения в этом варианте, не происходит генерация небольшого цветностного блока, на котором осуществляется внутрикадровое прогнозирование, и поэтому удается избежать случая, в котором внутрикадровое прогнозирование осуществляется на небольшом цветностном блоке.
Во втором способе декодирования видео, предлагаемом в одном из вариантов настоящей заявки этап 1, этап 2, этап 3 и этап 6 соответственно являются такими же, как этап 1, этап 2, этап 3 и этап 6 в первом способе декодирования. Различия состоят в следующем:
Этап 4: Определение режима разбиения цветностного блока и режима разбиения яркостного блока, расположенного в узле A.
Яркостной блок, расположенный в узле A, далее разбивают в режиме S разбиения, с целью генерации N узлов дерева кодирования яркостной составляющей. Цветностной блок, находящийся в узле A, не подвергается дальнейшему разбиению и соответствует одному цветностному блоку кодирования (chroma CB). Цветностной блок преобразования, соответствующий цветностному блоку CB, и цветностной блок кодирования имеют одинаковый размер. [Примечание: По сравнению с первым вариантом, в этом варианте, независимо от того, ограничено ли то, какой режим - режим межкадрового прогнозирования или режим внутрикадрового прогнозирования, используется, цветностной блок далее не разбивают, яркостной блок всегда разбивают в режиме S разбиения. Это не применимо к режиму прогнозирования для области покрытия узла A.]
Этап 5: Синтаксический анализ информации о прогнозировании и информации остатка для единицы CU, полученной в результате разбиения узла A.
Если ограничиться тем, что только внутрикадровое прогнозирование осуществляется на всех единицах CU, полученных в результате разбиения узла A, процедура является такой же, как процедура в первом варианте.
Если ограничиться тем, что только межкадровое прогнозирование осуществляется на всех единицах CU, полученных в результате разбиения узла A, процедура синтаксического анализа информации о прогнозировании яркостного блока CB, полученного в результате разбиения узла A, содержит: проведение синтаксического анализа флага skip_flag или/и флага merge_flag, установление значения параметра cu_pred_mode, равного 0 по умолчанию, и проведение синтаксического анализа информации о межкадровом прогнозировании, такой как индекс объединения (merge index), направление межкадрового прогнозирования (inter dir), опорный индекс (reference index), индекс предиктора вектора движения (motion vector predictor index) и разница вектора движения (motion vector difference). Информацию о движении для каждого субблока размером 4×4 в яркостном блоке CB получают на основе информации о межкадровом прогнозировании, полученной посредством синтаксического анализа.
Если ограничиться тем, что только межкадровое прогнозирование осуществляется на всех единицах CU, полученных в результате разбиения узла A, нет необходимости выполнять синтаксический анализ информации о прогнозировании для цветностного блока CB, полученного в результате разбиения узла A. Цветностной блок CB разбивают на цветностные субблоки размером 2×2 (режим разбиения может представлять собой режим S разбиения). Информация о движении для каждого цветностного субблока размером 2×2 представляет собой информацию о движении для области яркостной составляющей размером 4×4, соответствующей этому цветностному субблоку размером 2×2.
В режиме разбиения в этом варианте, не происходит генерация небольшого цветностного блока, на котором осуществляется внутрикадровое прогнозирование, и не происходит генерация блока преобразования размером меньше 16 пикселей. Поэтому, удается избежать описанной выше сложности процедуры при внутрикадровом прогнозировании и кодировании коэффициентов.
В третьем способе декодирования видео, предлагаемого в одном из вариантов настоящей заявки, этап 1, этап 2, этап 3, этап 4 и этап 6 являются такими же, как этап 1, этап 2, этап 3, этап 4 и этап 6 из второго способа декодирования. Различия состоят в следующем.
Этап 5: Синтаксический анализ информации о прогнозировании и информации остатка для единицы CU, полученной в результате разбиения узла A.
Если ограничиться тем, что только внутрикадровое прогнозирование осуществляется на всех единицах CU, полученных в результате разбиения узла A, процедура является такой же, как процедура из второго варианта.
Если ограничиться тем, что только межкадровое прогнозирование осуществляется на всех единицах CU, полученных в результате разбиения узла A, процедура синтаксического анализа информации о прогнозировании для яркостного блока CB, полученного в результате разбиения узла A, является такой же, как процедура синтаксического анализа во втором варианте.
Если ограничиться тем, что только межкадровое прогнозирование осуществляется на всех единицах CU, полученных в результате разбиения узла A, нет необходимости выполнять синтаксический анализ информации о прогнозировании для цветностного блока CB, полученного в результате разбиения A. Цветностной блок прогнозирования и цветностной блок кодирования имеет одинаковый размер. Информация о движении для цветностного блока CB представляет собой информацию о движении заданной позиции в области яркостной составляющей (например, центра, нижнего-правого угла или верхнего-левого угла этой области яркостной составляющей), соответствующей цветностному блоку CB.
В режиме разбиения в этом варианте, не происходит генерация небольшого цветностного блока, на котором осуществляется внутрикадровое прогнозирование, не происходит генерация небольшого блока преобразования и не происходит генерация небольшого цветностного блока, на котором осуществляется межкадровое прогнозирование.
Один из вариантов настоящей заявки предлагает четвертый способ декодирования видео, так что этот способ содержит следующие этапы.
Этап 1: Этот этап является таким же, как этап 1 в описанном выше первом способе декодирования видео.
Этап 2: Определяют, получается ли яркостной блок размером 4×4 по меньшей мере из одного узла потомка B из совокупности дочерних узлов, полученных в результате разбиения узла A в режиме S разбиения (путем определения, удовлетворяют ли ширина и высота узла A, и/или режим S разбиения узла A, и/или ширина и высота узла B по меньшей мере одному условию в Случае 1).
Если размер (ширина и высота) и/или режим S разбиения, относящиеся к узлу A, удовлетворяют по меньшей мере одному условию в Случае 1, вводят ограничение, что внутрикадровое прогнозирование осуществляется на всех единицах кодирования в области покрытия узла A. В противном случае, если определено, является ли цветностной блок по меньшей мере одного из дочерних узлов B из совокупности дочерних узлов, полученных в результате разбиения узла A в режиме S разбиения, небольшим блоком (путем определения, удовлетворяют ли размер узла A, и/или режим S разбиения узла A, и/или ширина и высота узла B по меньшей мере одному условию в Случае 2), выполняют этапы с этапа 3 по этап 6.
В частности, есть два следующих случая для способа определения, что цветностной блок по меньшей мере одного узла потомка B относительно узла A является небольшим блоком.
Случай 1:
Если одно или более условий из следующей первой группы заданных условий являются истинными, яркостные блоки размером 4×4 получают в результате разбиения узла A в режиме S разбиения:
(1) узел A содержит M1 пикселей и режим разбиения для узла A представляет собой разбиение по схеме дерева квадратов, где, например, M1 равно 64;
(2) узел A содержит M2 пикселей и режим разбиения для узла A представляет собой разбиение по схеме троичного дерева, где, например, M2 равно 64;
(3) узел A содержит M3 пикселей и режим разбиения для узла A представляет собой разбиение по схеме двоичного дерева, где, например, M3 равно 32;
(4) ширина узла A в четыре раза больше второй пороговой величины, высота узла A равна второй пороговой величине, и режим разбиения узла A представляет собой вертикальное разбиение по схеме троичного дерева;
(5) ширина узла A равна второй пороговой величине, высота узла A в четыре раза больше второй пороговой величины, и режим разбиения узла A представляет собой горизонтальное разбиение по схеме троичного дерева;
(6) ширина узла A в два раза больше второй пороговой величины, высота узла A равна второй пороговой величине, и режим разбиения узла A представляет собой вертикальное разбиение по схеме двоичного дерева;
(7) высота узла A в два раза больше второй пороговой величины, ширина узла A равна второй пороговой величине, и режим разбиения узла A представляет собой горизонтальное разбиение по схеме двоичного дерева; или
(8) ширина или/и высота узла A в два раза больше второй пороговой величины, и режим разбиения узла A представляет собой разбиение по схеме дерева квадратов.
Размер может представлять собой ширину и высоту области изображения, соответствующей узлу A, количество пикселей яркостной составляющих в области изображения, соответствующей узлу A, или площадь области изображения, соответствующей узлу A.
В общем случае, ширина текущего узла представляет собой ширину яркостного блока, соответствующего текущему узлу, и высота текущего узла представляет собой высоту яркостного блока, соответствующего текущему узлу. В конкретном варианте реализации, например, вторая пороговая величина может быть равна 4.
Случай 2:
(1) размер цветностного блока по меньшей мере из одного узла потомка B относительно узла A равен 2×4 или 4×2;
(2) ширина или высота цветностного блока по меньшей мере из одного узла потомка B относительно узла A равна 2;
(3) узел A содержит 128 пикселей яркостной составляющей, и для этого узла A используется разбиение по схеме троичного дерева; или узел A содержит 64 пикселя яркостной составляющей, и для этого узла A используется разбиение по схеме двоичного дерева, разбиение по схеме дерева квадратов или разбиение по схеме троичного дерева;
(4) узел A содержит 256 пикселей яркостной составляющей, и для этого узла A используется разбиение по схеме троичного дерева или разбиение по схеме дерева квадратов; или узел A содержит 128 пикселей яркостной составляющей, и для этого узла A используется разбиение по схеме двоичного дерева;
(5) узел A содержит N1 пикселей яркостной составляющей, и для этого узла A используется разбиение по схеме троичного дерева, где N1 равно 64, 128 или 256;
(6) узел A содержит N2 пикселей яркостной составляющей, и для этого узла A используется разбиение по схеме дерева квадратов, где N2 равно 64 или 256; или
(7) узел A содержит N3 пикселей яркостной составляющей, и для этого узла A используется разбиение по схеме двоичного дерева, где N3 равно 64, 128 или 256.
Следует отметить, что тот факт, что узел A содержит 128 пикселей яркостной составляющей, может быть описан как то, что площадь текущего узла равна 128, или как то, что произведение ширины узла A на его высоту равно 128. Подробности здесь описаны не будут.
Этап 3: Этот этап является таким же, как этап 3 приведенного выше способа декодирования видео.
Этап 4: Определение режима разбиения для цветностного блока и режима разбиения для яркостного блока из узла A на основе режима прогнозирования, используемого для единицы кодирования в области покрытия узла A.
Если режим межкадрового прогнозирования используется для всех единиц кодирования в области покрытия узла A, яркостной блок и цветностной блок, расположенные в узле A, разбивают в режиме S разбиения с целью получения узла потомка относительно узла A или/и в области покрытия узла A. Если яркостной блок размером 4×4 образуется в неком режиме разбиения для узла потомка относительно узла A или/и в области покрытия узла A, такой режим разбиения узла потомка не допустим, или не допускается дальнейшее разбиение узла потомка. Например, если размер узла A равен 8×8, и два узла размером 8×4 (или 4×8) образуются в результате горизонтального разбиения этого узла A по схеме двоичного дерева (или вертикального разбиения по схеме двоичного дерева), тогда в результате дальнейшего разбиения этих узлов размером 8×4 (или 4×8) образуются блоки размером 4×4. В таком случае не допускается дальнейшее разбиение узла размером 8×4 (или 4×8).
Если соответствующий режим внутрикадрового прогнозирования используется для всех единиц кодирования в области покрытия узла A, для реализации могут быть использованы упомянутые выше первый, второй или третий способы декодирования. Подробности здесь снова описаны не будут. Например, яркостной блок из узла A разбивают, а цветностной блок этого узла A не разбивают.
Этап 5: Синтаксический анализ блока прогнозирования и информации остатка относительно единицы CU, полученной в результате разбиения узла A.
Этот этап является таким же, как этап 5 в описанном выше первом способе декодирования, так что подробности здесь снова описаны не будут.
Этап 6: Декодирование каждой единицы CU для получения реконструированного сигнала блока изображения, соответствующего узлу A.
Этот этап может осуществляться способом согласно этапу 6 из приведенного выше первого способа декодирования, так что подробности здесь снова описаны не будут.
Один из вариантов настоящей заявки предлагает пятый способ декодирования видео, где этот способ содержит следующие этапы.
Этап 1: Этот этап является таким же, как этап 1 описанного выше первого способа декодирования.
Этап 2: Определение, получается ли яркостной блок размером 4×4 по меньшей мере в одном узле потомке B из совокупности дочерних узлов, полученных в результате разбиения узла A в режиме S разбиения (посредством определения, удовлетворяют ли ширина и высота узла A, и/или режим разбиения узла A, и/или ширина и высота узла B по меньшей мере одному из условий для Случая 1). Если размер (ширина и высота) и/или режим S разбиения для узла A удовлетворяет по меньшей мере одному из условий для Случая 1, введено ограничение, что внутрикадровое прогнозирование осуществляется на всех единицах кодирования в области узла A.
В качестве альтернативы, если определено, является ли цветностной блок по меньшей мере одного узла потомка B из совокупности дочерних узлов, полученных в результате разбиения узла A в режиме S разбиения, небольшим блоком (посредством определения, удовлетворяют ли размер узла A, и/или режим S разбиения узла A, и/или ширина и высота узла B по меньшей мере одному из условий для Случая 2), выполняют этапы с этапа 3 по этап 6 включительно.
В частности, имеются два следующих случая для способа определения, что цветностной блок по меньшей мере из одного узла потомка B относительно узла A является небольшим блоком.
Случай 1:
Если одно или более условий из следующей первой группы заданных условий являются истинными, яркостные блоки размером 4×4 получаются в результате разбиения узла A в режиме S разбиения:
(1) узел A содержит M1 пикселей и режим разбиения для узла A представляет собой разбиение по схеме дерева квадратов, где, например, M1 равно 64;
(2) узел A содержит M2 пикселей и режим разбиения для узла A представляет собой разбиение по схеме троичного дерева, где, например, M2 равно 64;
(3) узел A содержит M3 пикселей и режим разбиения для узла A представляет собой разбиение по схеме двоичного дерева, где, например, M3 равно 32;
(4) ширина узла A в четыре раза больше второй пороговой величины, высота узла A равна второй пороговой величине, и режим разбиения узла A представляет собой вертикальное разбиение по схеме троичного дерева;
(5) ширина узла A равна второй пороговой величине, высота узла A в четыре раза больше второй пороговой величины, и режим разбиения узла A представляет собой горизонтальное разбиение по схеме троичного дерева;
(6) ширина узла A в два раза больше второй пороговой величины, высота узла A равна второй пороговой величине, и режим разбиения узла A представляет собой вертикальное разбиение по схеме двоичного дерева;
(7) высота узла A в два раза больше второй пороговой величины, ширина узла A равна второй пороговой величине, и режим разбиения узла A представляет собой горизонтальное разбиение по схеме двоичного дерева; или
(8) ширина или/и высота узла A в два раза больше второй пороговой величины, и режим разбиения узла A представляет собой разбиение по схеме дерева квадратов.
Размер может представлять собой ширину и высоту области изображения, соответствующей узлу A, количество пикселей яркостной составляющих в области изображения, соответствующей узлу A, или площадь области изображения, соответствующей узлу A.
В общем случае, ширина текущего узла представляет собой ширину яркостного блока, соответствующего текущему узлу, и высота текущего узла представляет собой высоту яркостного блока, соответствующего текущему узлу. В конкретном варианте реализации, например, вторая пороговая величина может быть равна 4.
Случай 2:
(1) размер цветностного блока по меньшей мере из одного узла потомка B относительно узла A равен 2×4 или 4×2;
(2) ширина или высота цветностного блока по меньшей мере из одного узла потомка B относительно узла A равна 2;
(3) узел A содержит 128 пикселей яркостной составляющей, и для этого узла A используется разбиение по схеме троичного дерева; или узел A содержит 64 пикселя яркостной составляющей, и для этого узла A используется разбиение по схеме двоичного дерева, разбиение по схеме дерева квадратов или разбиение по схеме троичного дерева;
(4) узел A содержит 256 пикселей яркостной составляющей, и для этого узла A используется разбиение по схеме троичного дерева или разбиение по схеме дерева квадратов; или узел A содержит 128 пикселей яркостной составляющей, и для этого узла A используется разбиение по схеме двоичного дерева;
(5) узел A содержит N1 пикселей яркостной составляющей, и для этого узла A используется разбиение по схеме троичного дерева, где N1 равно 64, 128 или 256;
(6) узел A содержит N2 пикселей яркостной составляющей, и для этого узла A используется разбиение по схеме дерева квадратов, где N2 равно 64 или 256; или
(7) узел A содержит N3 пикселей яркостной составляющей, и для этого узла A используется разбиение по схеме двоичного дерева, где N3 равно 64, 128 или 256.
Следует отметить, что тот факт, что узел A содержит 128 пикселей яркостной составляющей, может быть описан как то, что площадь текущего узла равна 128, или как то, что произведение ширины узла A на его высоту равно 128. Подробности здесь описаны не будут.
Этап 3: Этот этап является таким же, как этап 3 в описанном выше первом способе декодирования.
Этап 4: Определение режима разбиения для цветностного блока и режима разбиения для яркостного блока из узла A на основе режима прогнозирования, используемого для единицы кодирования в области покрытия узла A.
Если режим межкадрового прогнозирования используется для всех единиц кодирования в области покрытия узла A, яркостной блок и цветностной блок, расположенные в узле A, разбивают в режиме S разбиения с целью получения узла потомка относительно узла A или/и в области покрытия узла A. Если яркостной блок размером 4×4 образуется в режиме разбиения для узла потомка относительно узла A или/и в области покрытия узла A, этот режим разбиения для узла потомка не допускается, или не допускается дальнейшее разбиение узла потомка. Например, если размер узла A равен 8×8 и два узла размером 8×4 (или 4×8) получаются в результате горизонтального разбиения по схеме двоичного дерева (или вертикального разбиения по схеме двоичного дерева), генерация блоков размером 4×4 происходит в случае дальнейшего разбиения узла размером 8×4 (или 4×8). В таком случае, дальнейшее разбиение узла размером 8×4 (или 4×8) не допускается.
Если режим внутрикадрового прогнозирования используется для всех единиц кодирования в области покрытия узла A, для реализации могут быть использованы описанные выше первый, второй или третий способы декодирования видео. Подробности здесь снова описаны не будут. Например, яркостной блок из узла A разбивают, а цветностной блок из узла A не разбивают.
Этап 5: Синтаксический анализ блока прогнозирования и информации остатка для единицы CU, полученной в результате разбиения узла A.
Этот этап является таким же, как этап 5 в описанном выше первом способе декодирования видео, так что подробности здесь снова описаны не будут.
Этап 6: Декодирование каждой единицы CU с целью получения реконструированного сигнала блока изображения, соответствующего узлу A.
Этот этап может быть осуществлен способом, применяемом на этапе 6 приведенного выше первого способа декодирования видео, так что подробности здесь снова описаны не будут.
В некоторых вариантах, если в результате однократного разбиения текущей области образуется яркостной блок размером 4×4 (например, разбиение по схеме дерева квадратов (QT) используется для области размером 64 пикселя яркостной составляющей, или разбиение по схеме троичного дерева (TT) используется для области размером 128 пикселей яркостной составляющей), ограничено, что только режим внутрикадрового прогнозирования допускается использовать для текущей области по умолчанию.
В противном случае, передают флаг для индикации, что только режим межкадрового прогнозирования или режим внутрикадрового прогнозирования допускается использовать для технической области.
Если ограничиться тем, что только режим межкадрового прогнозирования допускается использовать для текущей области, разбивают и яркостной блок, и цветностной блок. Если узел в текущей области разбивают так, что получается яркостной блок размером 4×4, такое разбиение не допускается. Например, если текущий узел имеет размер 8×8, и из него образуются два узла размером 8×4 в результате разбиения HBT (или разбиения VBT), в случае дальнейшего разбиения этих узлов образуются единицы CU размером 4×4. В таком случае, дальнейшее разбиение этих узлов 8×4 не допускается.
Если ограничиться тем, что для рассматриваемой области допускается использовать только режим внутрикадрового прогнозирования, реализация в этом случае является такой же, реализация в первом варианте (иными словами, яркостной блок разбивают, а цветностной блок не разбивают).
Технические решения настоящей заявки обеспечивают следующие положительные эффекты. В различных вариантах настоящей заявки предложен способ разбиения блоков, так что этот способ позволяет избежать случая использования режима внутрикадрового прогнозирования для цветностного блока относительно небольшой площади. Это способствует конвейерной организации оборудования и реализации декодирующего устройства. В дополнение к этому, в случае межкадрового прогнозирования, можно пропустить проведение синтаксического анализа синтаксических элементов некоторых режимов прогнозирования, уменьшая тем самым сложность кодирования. Это устраняет описанную выше сложность обработки данных при кодировании коэффициентов, снижая тем самым сложность кодирования.
Способ разбиения блоков может иметь следующую структуру:
проведение синтаксического анализа режима разбиения для узла A;
определение, является ли цветностной блок по меньшей мере в одном узле потомке B, полученном в результате разбиения узла A в режиме S разбиения, небольшим блоком, (посредством определения, удовлетворяет ли ширина и высота узла A, и/или режим разбиения узла A, и/или ширина и высота узла B по меньшей мере одному условию из следующей группы условий);
если да, ограничивают, что только режим внутрикадрового прогнозирования или только режим межкадрового прогнозирования используется для всех единиц кодирования в области покрытия узла A; и
определение, подлежат ли цветностной блок и яркостной блок узла A дальнейшему разбиению.
Если внутрикадровое прогнозирование осуществляется на всех единицах кодирования в области покрытия узла A, яркостной блок узла A подвергают дальнейшему разбиению в режиме S разбиения, а цветностной блок узла A далее не разбивают. Если межкадровое прогнозирование осуществляется на всех единицах кодирования в области покрытия узла A, яркостной блок и цветностной блок узла A разбивают далее в режиме S разбиения, на N узлов дерева кодирования, содержащих яркостное блоки и цветностные блоки.
Яркостной блок узла A разбивают далее в режиме S разбиения, а цветностной блок узла A далее не разбивают. Цветностной блок преобразования и цветностной блок кодирования имеют одинаковый размер.
Когда внутрикадровое прогнозирование осуществляется на всех единицах кодирования в области покрытия узла A, цветностной блок прогнозирования и цветностной блок кодирования имеют одинаковый размер. Когда межкадровое прогнозирование осуществляется на всех единицах кодирования в области покрытия узла A, цветностной блок прогнозирования разбивают на субблоки (размер субблока меньше размера цветностного блока кодирования), и вектор движения каждого субблока является вектором движения в яркостной области, соответствующей субблоку.
Яркостной блок узла A дополнительно разбивают в режиме S разбиения, а цветностной блок узла A далее не разбивают. Цветностной блок преобразования, соответствующий цветностному блоку кодирования, и этот цветностной блок кодирования имеют одинаковый размер, цветностной блок прогнозирования и цветностной блок кодирования имеют одинаковый размер, а информация о движении цветностного блока CB представляет собой информацию о движении заданной позиции в яркостной области, соответствующей цветностному блоку CB.
Специалист в рассматриваемой области может понимать, что функции, описываемые со ссылками на различные иллюстративные логические блоки, модули и этапы алгоритмов, рассматриваемые в настоящем описании, могут быть реализованы посредством оборудования, загружаемого программного обеспечения, встроенного программного обеспечения или какой-либо комбинации этого. В случае реализации загружаемого программного обеспечения, функции, описываемые со ссылками на иллюстративные логические блоки, модули и этапы, могут быть сохранены или переданы на читаемом компьютером носителе информации в виде одной или нескольких команд или кода, выполняемых процессорным модулем на основе оборудования. Этот читаемый компьютером носитель информации может представлять собой читаемый компьютером носитель для хранения информации, который соответствует материальному носителю, такому как носитель для хранения данных или носитель для связи, включая какой-либо носитель для передачи компьютерной программы из одного пункта в другой (например, в соответствии с каким-либо протоколом связи). При таком подходе, читаемый компьютером носитель может, в общем, соответствовать: (1) энергонезависимому материальному читаемому компьютером носителю для хранения информации, или (2) носителю связи, такому как сигнал или несущая. Носитель для хранения данных может представлять собой какой-либо используемый носитель, к которому могут обращаться и получать доступ один или более компьютеров, либо один или более процессоров для вызова команд, кода и/или структур данных для реализации технологий, описываемых в настоящей заявке. Компьютерный программный продукт может содержать читаемый компьютером носитель.
В качестве примера, но не ограничения, такой читаемый компьютером носитель для хранения информации может содержать ЗУПВ (RAM), ПЗУ (ROM), ЭСППЗУ (EEPROM), CD-ROM или другое запоминающее устройство с компакт-диском, запоминающее устройство на магнитных дисках, устройство флэш-памяти или какой-либо другой носитель, который может быть использован для хранения нужного программного кода в форме команд или структур данных, доступных для компьютера. В дополнение к этому, любое соединение правильно называется читаемым компьютером носителем. Например, если команды передавать от вэб-сайта, сервера или другого удаленного источника по коаксиальному кабелю, оптоволоконному кабелю, витой паре, цифровой абонентской линии (digital subscriber line (DSL)), либо с использованием беспроводных технологий, таких как инфракрасная связь, радио и СВЧ-связь, тогда эти коаксиальный кабель, оптоволоконный кабель, витая пара, линия DSL или беспроводные технологии, такие как инфракрасная связь, радиосвязь или СВЧ-связь включены в определение носителя. Однако должно быть ясно, что понятия читаемый компьютером носитель для хранения информации и носитель для хранения данных не охватывают соединения, несущие, сигналы или другие временные (энергозависимые) носители, но фактически означают энергонезависимые материальные носители для хранения информации. Такие носители используют магнитные диски и оптические диски. Магнитные диски воспроизводят данные магнитным способом, оптические диски, такие как компакт-диск (compact disc (CD)), лазерный диск, оптический диск, цифровой универсальный диск (digital versatile disc (DVD)) и диск Блю-рей, воспроизводят данные оптическим способом с использованием лазеров. Комбинации таких устройств также следует включить в объем понятия «читаемый компьютером носитель информации».
Команды могут быть выполнены одним или несколькими процессорами, такими как один или более цифровых процессоров сигнала (DSP), микропроцессоры общего назначения, специализированные интегральные схемы (ASIC), программируемые пользователем вентильные матрицы (FPGA) или другие эквивалентные интегральные схемы или дискретные логические схемы. Поэтому термин «процессор», используемый в настоящем описании, может обозначать какую-либо из перечисленных выше структур или какую-либо другую структуру, подходящую для реализации технологий, рассматриваемых в настоящем описании. В дополнение к этому, в некоторых аспектах функции, описываемые со ссылками на иллюстративные логические блоки, модули и этапы, рассматриваемые в настоящем описании, могут быть реализованы в специализированных аппаратных и/или программных модулях, конфигурированных для кодирования и декодирования, либо могут быть встроены в комбинированный кодек. В дополнение к этому, такие технологии могут быть полностью реализованы в одной или нескольких схемах или логических элементах.
Технологии настоящей заявки могут быть реализованы в различной оборудованию или устройствах, включая беспроводной телефон, интегральную схему (IC), или группу схем IC (например, чипсет). Разнообразные компоненты, модули или блоки описаны в настоящей заявке для подчеркивания функциональных аспектов оборудования, конфигурированных для реализации описываемых технологий, но не обязательно реализованы в разных аппаратных модулях. Фактически, как описано выше, разнообразные модули и блоки могут быть объединены в оборудованию кодека в сочетании с подходящим загружаемым программным обеспечением и/или встроенным программным обеспечением, либо могут быть реализованы посредством взаимодействующих аппаратных модулей или блоков (включая один или более процессоров, описанных выше).
Описания вариантов сфокусированы на соответствующих вопросах. Для описания частей, которые не описаны подробно в одном из вариантов, следует обратиться к соответствующим описаниям в других вариантах.
Выше описаны всего лишь конкретные варианты реализации настоящей заявки, не предназначенные для ограничения объема защиты настоящей заявки. Любые вариации или замены, легко формулируемые специалистами в рассматриваемой области в пределах технического объема настоящей заявки, попадут в объем защиты этой заявки. Следовательно, объем защиты настоящей заявки должен соответствовать объему защиту Формулы изобретения.

Claims (24)

1. Способ прогнозирования изображения, содержащий этапы, на которых:
определяют, на основе размера текущего узла и режима прогнозирования указанного текущего узла, режим разбиения не допустимый для текущего узла, причем указанный текущий узел представляет собой блок изображения в единице дерева кодирования (coding tree unit) в текущем изображении;
определяют политику разбиения блоков для текущего узла на основе режима разбиения, не допустимого для текущего узла, причем политика разбиения блоков представляет собой политику без выполнения разбиения, с выполнением одного разбиения или с выполнением N разбиений, где N представляет собой целое положительное число более 1; и
получают, в соответствии с политикой разбиения блоков текущего узла, блок кодирования, соответствующий указанному текущему узлу, и осуществляют межкадровое прогнозирование соответствующего блока кодирования; при этом
этап определения, на основе размера текущего узла и режима прогнозирования для указанного текущего узла, режима разбиения, не допустимого для текущего узла, содержит подэтапы, на которых:
определяют, используется ли только режим межкадрового прогнозирования для прогнозирования всех блоков кодирования, принадлежащих текущему узлу, и определяют, равно ли количество отсчетов яркостного блока текущего узла 32 или 64; и
определяют, при определении, что только режим межкадрового прогнозирования используется для прогнозирования всех блоков кодирования, принадлежащих текущему узлу, и определении, что количество отсчетов яркостного блока текущего узла равно 32, что режим разбиения по схеме двоичного дерева представляет собой режим разбиения, не допустимый для текущего узла; или
определяют, при определении, что только режим межкадрового прогнозирования используется для прогнозирования всех блоков кодирования, принадлежащих текущему узлу, и определении, что количество отсчетов яркостного блока текущего узла равно 64, что режим разбиения по схеме троичного дерева представляет собой режим разбиения, не допустимый для текущего узла.
2. Способ по п. 1, в котором размер текущего узла определяют на основе размера узла дерева кодирования, соответствующего указанному текущему узлу, и режима разбиения, используемого для получения указанного текущего узла.
3. Способ по п. 1 или 2, в котором количество отсчетов яркости текущего узла равно произведению ширины текущего узла в отсчетах яркости и высоты текущего узла в отсчетах яркости.
4. Способ по любому из пп. 1-3, в котором этап выполнения межкадрового прогнозирования соответствующего блока кодирования содержит подэтапы, на которых:
осуществляют синтаксический анализ флага статуса режима прогнозирования для текущего узла; и
выполняют, когда значение флага статуса режима прогнозирования является первым значением, межкадровое прогнозирование для всех блоков кодирования, принадлежащих текущему узлу.
5. Оборудование прогнозирования изображения, содержащее:
решающий модуль для определения, на основе размера текущего узла и режима прогнозирования указанного текущего узла, режима разбиения, не допустимого для текущего узла, причем указанный текущий узел представляет собой блок изображения в единице дерева кодирования (coding tree unit) в текущем изображении, при этом
решающий модуль дополнительно выполнен с возможностью: определения политики разбиения блоков текущего узла на основе режима разбиения, не допустимого для текущего узла, причем политика разбиения блоков представляет собой политику без выполнения разбиения, с выполнением одного разбиения или с выполнением N разбиений, где N представляет собой целое положительное число более 1; и
модуль прогнозирования для получения, в соответствии с политикой разбиения блоков текущего узла, блока кодирования, соответствующего указанному текущему узлу, и осуществления межкадрового прогнозирования соответствующего блока кодирования, при этом
решающий модуль дополнительно выполнен с возможностью:
определения, используется ли только режим межкадрового прогнозирования для прогнозирования всех блоков кодирования, принадлежащих текущему узлу, и определения, равно ли количество отсчетов яркостного блока текущего узла 32 или 64; и
определения, при определении, что только режим межкадрового прогнозирования используется для прогнозирования всех блоков кодирования, принадлежащих текущему узлу, и определении, что количество отсчетов яркостного блока текущего узла равно 32, что режим разбиения по схеме двоичного дерева представляет собой режим разбиения, не допустимый для текущего узла; или определения, при определении, что только режим межкадрового прогнозирования используется для прогнозирования всех блоков кодирования, принадлежащих текущему узлу, и определении, что количество отсчетов яркостного блока текущего узла равно 64, что режим разбиения по схеме троичного дерева представляет собой режим разбиения, не допустимый для текущего узла.
6. Устройство кодирования видео, содержащее процессор и запоминающее устройство, для хранения команд, вызывающих, при исполнении процессором, выполнение процессором способа по любому из пп. 1-4.
7. Устройство декодирования видео, содержащее процессор и запоминающее устройство, хранящее команды, вызывающие, при исполнении процессором, выполнение процессором способа по любому из пп. 1-4.
8. Система прогнозирования изображения, содержащая: устройство сбора видео, устройство кодирования видео по п. 6, устройство декодирования видео по п. 7 и устройство отображения, причем устройство кодирования видео соединено и с устройством сбора видео, и с устройством декодирования видео, а устройство декодирования видео соединено с устройством отображения.
9. Машиночитаемый носитель хранения информации, хранящий компьютерную программу, вызывающую, при исполнении процессором, осуществление способа по любому из пп. 1-4.
RU2021123351A 2019-01-08 2020-01-08 Способ прогнозирования изображения, оборудование, система, устройство для прогнозирования изображения и носитель для хранения информации RU2797723C2 (ru)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
CN201910016466.3 2019-01-08
CN201910173454.1 2019-03-07
CN201910219440.9 2019-03-21
CN201910696741.0 2019-07-30

Related Child Applications (1)

Application Number Title Priority Date Filing Date
RU2023114451A Division RU2023114451A (ru) 2019-01-08 2020-01-08 Способ прогнозирования изображения, оборудование, система, устройство для прогнозирования изображения и носитель для хранения информации

Publications (2)

Publication Number Publication Date
RU2021123351A RU2021123351A (ru) 2023-02-09
RU2797723C2 true RU2797723C2 (ru) 2023-06-08

Family

ID=

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
US 2017272782 A1 - 2017.09.21. BENJAMIN BROSS еt al., Versatile Video Coding (Draft 3), Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-L1001-v1, 12th Meeting: Macao, 3-12 Oct. 2018. RU 2674332 С2 - 2018.12.06. EP 2953352 A1 - 2015.12.09. CN 101394565 A - 2009.03.25. WO 2018142903 A1 - 2018.08.09. ЯН РИЧАРДСОН, Видеокодирование Н.264 и MPEG-4 - стандарты нового поколения, Москва, Техносфера, 2005. JICHENG AN et al., CE1-related: Flexible Luma and Chroma Block Partitioning Trees Separation, Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, JVET-L0184, 12th Meeting: Macao, 3-12 Oct. 2018. *

Similar Documents

Publication Publication Date Title
CN112954367B (zh) 使用调色板译码的编码器、解码器和相应方法
US11849109B2 (en) Image prediction method, apparatus, and system, device, and storage medium
CN111327904B (zh) 图像重建方法和装置
CN111416981B (zh) 视频图像解码、编码方法及装置
CN115174931A (zh) 视频图像解码、编码方法及装置
US20210344899A1 (en) Video encoder, video decoder, and corresponding methods
CN111327894B (zh) 块划分方法、视频编解码方法、视频编解码器
RU2797723C2 (ru) Способ прогнозирования изображения, оборудование, система, устройство для прогнозирования изображения и носитель для хранения информации
AU2020205376B2 (en) Image prediction method, device, apparatus and system and storage medium
CN113316939A (zh) 一种标志位的上下文建模方法及装置
CN111901593A (zh) 一种图像划分方法、装置及设备
RU2786626C2 (ru) Способ и устройство для разделения изображения
WO2020143684A1 (zh) 图像预测方法、装置、设备、系统及存储介质
CN111669583A (zh) 图像预测方法、装置、设备、系统及存储介质