СПОСОБ И УСТРОЙСТВО ДЛЯ ЭФФЕКТИВНОГО КОДИРОВАНИЯ ОСТАТОЧНЫХ БЛОКОВ
METHOD AND DEVICE FOR EFFICIENT CODING OF RESIDUAL BLOCKS

Область техники
Настоящее изобретение, описанное на примере некоторых вариантов осуществления, относится к кодированию и декодированию видеоизображений. В частности, настоящее изобретение относится к способу и устройству для эффективного кодирования остаточных блоков.
Уровень техники
Поскольку видеоданные имеют большой объем данных по сравнению с аудиоданными или данными неподвижных изображений, требуется много аппаратных ресурсов, включая память, для хранения или передачи данных в необработанном виде перед тем, как подвергнуть их процессу сжатия.
Соответственно, хранение или передача видеоданных обычно сопровождается их сжатием с использованием кодирующего устройства до того, как блок декодирования сможет принимать, распаковывать и воспроизводить сжатые видеоданные. Известные технологии сжатия видеоизображений включают стандарт H.264/AVC и стандарт высокоэффективного кодирования видеоизображений (HEVC), повышающий эффективность кодирования H.264 / AVC примерно на 40%.
Однако постоянное увеличение размера, разрешения и частоты кадров видеоизображений и, как следствие, увеличение объема данных, подлежащих кодированию, требует нового и улучшенного метода сжатия с более высокой эффективностью кодирования и более высоким качеством изображения по сравнению с известными методами сжатия.
В процессе кодирования видеоизображений устройство кодирования видеоизображений генерирует остаточный блок, выполняя предсказание текущего блока посредством интра-предсказания или интер-предсказания, а затем вычитая значения отсчетов текущего блока из значений отсчетов блока предсказания. Устройство кодирования видеоизображений разделяет остаточный блок на один или несколько блоков преобразования, применяет преобразование к одному или нескольким блокам преобразования и тем самым преобразует остаточные значения блоков преобразования из области пикселей в область частот. В зависимости от точности предсказания в некоторых областях остаточного блока может не быть остаточных значений или быть не много остаточных значений, и иногда очень неэффективно вслепую разделять остаточный блок на блоки преобразования меньшего размера.
Раскрытие сущности изобретения
Техническая проблема, решаемая изобретением
Настоящее изобретение, описанное на примере некоторых вариантов осуществления, направлено на то, чтобы предложить схему кодирования остаточных блоков, подходящую для остаточных блоков, имеющих области без остаточных значений или с небольшими остаточными значениями.
Техническое решение
В соответствии с по меньшей мере одним аспектом настоящего изобретения предложено устройство декодирования видеоизображений, включающее блок декодирования, блок предсказания, блок обратного квантования и обратного преобразования, сумматор и блок фильтрации. Блок декодирования выполнен с возможностью декодирования из потока битов флага, указывающего, были ли закодированы остаточные сигналы, соответствующие только частичной области текущего блока, и декодирования из потока битов информации о коэффициентах преобразования для одного подблока из двух разделенных подблоков из текущего блока для восстановления коэффициентов преобразования, когда флаг указывает, что были закодированы остаточные сигналы, соответствующие только частичной области текущего блока. Блок предсказания выполнен с возможностью предсказания текущего блока для генерации блока предсказания. Блок обратного квантования и обратного преобразования выполнен с возможностью выполнения обратного квантования и обратного преобразования коэффициентов преобразования в одном подблоке, для которого была декодирована информация о коэффициентах преобразования, чтобы генерировать остаточный блок для текущего блока. Сумматор выполнен с возможностью суммирования блока предсказания и остаточного блока для восстановления текущего блока. Блок фильтрации выполнен с возможностью установки сетки из N отсчетов с регулярными интервалами в горизонтальном и вертикальном направлениях и выполнения фильтрации удаления блочности на границе между двумя подблоками в текущем блоке, которая совпадает с границей сетки.
Согласно другому аспекту настоящего изобретения предложен способ декодирования видеоизображений, причем способ включает в себя этапы (i) декодирования из потока битов флага, указывающего, были ли закодированы остаточные сигналы, соответствующие только частичной области текущего блока, (ii) восстановление коэффициентов преобразования путем декодирования из потока битов информации о коэффициентах преобразования для одного подблока из двух подблоков, отделенных от текущего блока, когда флаг указывает, что были закодированы остаточные сигналы, соответствующие только частичной области текущего блока, (iii) предсказание текущего блока для генерации блока предсказания, (iv) создание остаточного блока для текущего блока путем выполнения обратного квантования и обратного преобразования коэффициентов преобразования в одном подблоке, для которого была декодирована информация о коэффициентах преобразования, (v ) восстановление текущего блока путем сложения блока предсказания и остаточного блока, и (vi) установка сетки из N отсчетов через равные интервалы в горизонтальном и вертикальном направлениях и выполнение фильтрации удаления блочности на границе между двумя подблоками в текущем блоке, которая совпадает с границей сетки.
Краткое описание чертежей
На фиг. 1 показана схема, иллюстрирующая устройство кодирования видеоизображений, которое может реализовывать способы, предложенные настоящим изобретением.
На фиг. 2 показана схема, поясняющая способ разделения блока с использованием структуры QTBTTT.
На фиг. 3A показана схема, иллюстрирующая множество режимов интра-предсказания.
На Фиг. 3B показана схема, иллюстрирующая множество режимов интра-предсказания, включая режимы широкоугольного интра-предсказания.
На Фиг. 4 показана схема, иллюстрирующая устройство декодирования видеоизображений, выполненное с возможностью реализовывать технологии, предложенные настоящим изобретением.
На фиг. 5A-5D показаны различные типы разделения остаточного блока и подблоков, подлежащих кодированию.
На фиг. 6 показана схема, поясняющая случай кодирования отдельного подблока в релевантном остаточном блоке текущего блока, иллюстрирующая позиции соседних блоков, на которые следует ссылаться для предсказания параметра квантования (QP).
На фиг. 7 показана схема блока цветности и, по меньшей мере, одного блока яркости, который совмещен с блоком цветности.
На фиг. 8 показана схема восстановленных текущих блоков, иллюстрирующая их релевантные остаточные блоки, подвергающиеся вертикальным разбиениям и трансформациям в своих левых подблоках для того, чтобы выявить границы их межблочного разделения по границе удаления блочности.
На фиг. 9 показана схема, поясняющая фильтрацию удаления блочности, выполняемую на границе между остаточными подблоками на уровне остаточного сигнала.
На фиг. 10 показана блок-схема способа, выполняемого устройством кодирования видеоизобpажений для кодирования с интер-предсказанием текущего блока видеоизображения согласно, по меньшей мере, одному варианту осуществления настоящего изобретения.
На фиг. 11 показана блок-схема способа, выполняемого устройством декодирования видеоизображений для декодирования текущего блока, кодированного с интер-предсказанием, из кодированного потока битов видеоизображения согласно, по меньшей мере, одному варианту осуществления настоящего изобретения.
Осуществление изобретения
Далее вариант осуществления настоящего изобретения будет подробно описан со ссылкой на приложенные чертежи. В нижеследующем описании одинаковые номера позиций предпочтительно относятся к одинаковым элементам, несмотря на то, что эти элементы показаны на разных чертежах. Кроме того, в целях ясности и краткости изложения, в нижеследующем описании некоторых вариантов осуществления опущено подробное описание относящихся к ним известных компонентов и функций, в случае, когда они затрудняют понимание объекта настоящего изобретения.
На фиг. 1 показана схема, иллюстрирующая устройство кодирования видеоизображений, которое может реализовывать способы, предложенные настоящим изобретением. Далее устройство кодирования видеоизображений и компоненты устройства будут описаны со ссылкой на фиг. 1.
Устройство кодирования видеоизображений может быть сконфигурировано так, что оно содержит блок 110 разделения изображения, блок 120 предсказания, блок 130 вычитания, блок 140 преобразования, блок 145 квантования, блок 150 переупорядочивания, блок 155 энтропийного кодирования, блок 160 обратного квантования, блок 165 обратного преобразования, сумматор 170, блок 180 фильтрации и память 190.
Соответствующие компоненты устройства кодирования видеоизображений могут быть реализованы как аппаратное или программное обеспечение, или в виде комбинации аппаратного и программного обеспечения. Кроме того, функция каждого компонента может быть реализована программно, а функция программного обеспечения для каждого компонента может быть реализована с возможностью ее выполнения микропроцессором.
Видеоизображение состоит из множества изображений. Каждое изображение разбивается на множество участков, и для каждого участка выполняется кодирование. Например, одно изображение разбивается на один или несколько фрагментов и/или секций. Здесь один или несколько фрагментов могут быть определены как группа фрагментов. Каждый фрагмент и/или секцию разделяют на одну или несколько единиц дерева кодирования (CTU). И каждую единицу CTU разделяют на одну или несколько единиц кодирования (CU) древовидной структурой. Информация, применяемая к соответствующим единицам CU, кодируется как синтаксис CU, а информация, обычно применяемая к единицам CU, включенным в одну единицу CTU, кодируется как синтаксис CTU. Кроме того, информация, обычно применяемая ко всем блокам в одной секции, кодируется как синтаксис заголовка секции, а информация, применяемая ко всем блокам, составляющим одно изображение, кодируется в наборе параметров изображения (PPS) или заголовке изображения. Кроме того, информация, на которую обычно ссылается множество изображений, кодируется в наборе параметров последовательности (SPS). Кроме того, информация, на которую обычно ссылаются один или несколько наборов SPS, кодируется в наборе параметров видеоизображения (VPS). Таким же образом информация, обычно применяемая к одному фрагменту или группе фрагментов, может быть закодирована как синтаксис заголовка фрагмента или заголовка группы фрагментов.
Блок 110 разделения изображения определяет размер единицы дерева кодирования CTU. Информация о размере единицы CTU (размер единицы CTU) кодируется как синтаксис набора SPS или набора PPS и передается в устройство декодирования видеоизображений.
Блок 110 разделения изображения разделяет каждое изображение, составляющее видеоизображение, на множество единиц CTU, имеющих заранее определенный размер, а затем использует древовидную структуру для рекурсивного разделения единиц CTU. Концевой узел в древовидной структуре становится единицей кодирования CU, которая является базовой единицей кодирования.
Используемая древовидная структура для может быть деревом квадрантов (QuadTree (QT)), в котором верхний узел (или родительский узел) разделен на четыре нижних узла одинакового размера (или дочерние узлы), двоичным деревом (BinaryTree (BT)), в котором верхний узел разделен на два нижних узла, троичным деревом (TernaryTree (TT)), в котором верхний узел разделен на три нижних узла с соотношением размеров 1: 2: 1, или комбинацией двух или более из структуры QT, структуры BT и структуры TT. Например, может использоваться структура, включающая дерево квадрантов и двоичное дерево (QTBT), или структура, включающая дерево квадрантов и двоичное дерево троичное дерево (QTBTTT). Здесь BTTT может в совокупности называться деревом множественного типа (MTT).
На фиг. 2 показана древовидная структура разделения QTBTTT. Как показано на фиг. 2, единица CTU может быть сначала разделена на структуру QT. Разделение дерева квадрантов может повторяться до тех пор, пока размер блока разделения не достигнет минимального размера блока (MinQTSize) концевого узла, разрешенного в структуре QT. Первый флаг (QT_split_flag), указывающий, разделен ли каждый узел структуры QT на четыре узла нижнего уровня, кодируется блоком 155 энтропийного кодирования и передается в устройство декодирования видеоизображений. Если концевой узел структуры QT не превышает максимальный размер (MaxBTSize) блока корневого узла, разрешенного в структуре BT, он может быть дополнительно разделен на любую одну или более структур BT или структур TT. В структуре BT и/или структуре TT может быть множество направлений разделения. Например, может быть два направления, в которых блок соответствующего узла разделяется по горизонтали и по вертикали. Как показано на фиг. 2, когда начинается разделение MTT, второй флаг (mtt_split_flag), указывающий, разделены ли узлы, и, если да, дополнительный флаг, указывающий направления разделения (вертикальное или горизонтальное), и/или флаг, указывающий разделение или тип разделения (двоичное или троичное) кодируется блоком 155 энтропийного кодирования и передается в устройство декодирования видеоизображений.
В качестве альтернативы, перед кодированием первого флага (QT_split_flag), указывающего, разделен ли каждый узел на четыре узла нижнего уровня, может быть закодирован флаг разделения единицы CU (split_cu_flag), указывающий, разделен ли этот узел или нет. Когда значение флага разделения единицы CU (split_cu_flag) указывает, что узел не был разделен, блок этого узла становится концевым узлом в структуре дерева разделения и превращается в единицу кодирования (CU), которая является базовой единицей кодирования. Когда значение флага разделения единицы CU (split_cu_flag) указывает, что узел был разделен, устройство кодирования видеоизображений начинает кодирование с первого флага описанным выше способом.
В качестве другого примера древовидной структуры, в которой используется структура QTBT, можно привести два типа разделения, включающие тип, в котором по горизонтали разделяют блок соответствующего узла на два блока одинакового размера (т.е. симметричное горизонтальное разделение), и тип, в котором его же разделяют по вертикали (т. е. симметричное вертикальное разделение). Кодируемым блоком 155 энтропийного кодирования и передаваемым в устройство декодирования видеоизображений является флаг разделения (split_flag), указывающий, разделен ли каждый узел структуры BT на блоки нижнего уровня, и информацию о типе разделения, указывающую тип его разделения. Между тем, может быть дополнительный тип, в котором блок соответствующего узла разбивается на два асимметрично сформированных блока. Асимметричная форма может включать в себя форму блока соответствующего узла, разбиваемого на два прямоугольных блока, имеющих соотношение размеров 1:3, или форму блока соответствующего узла, разбиваемого в диагональном направлении.
Единица CU может иметь различные размеры в зависимости от структуры QTBT или QTBTTT разделения единицы CTU. В дальнейшем блок, соответствующий единице CU, который должен быть закодирован или декодирован (то есть концевой узел QTBTTT), называется «текущим блоком». При использовании разделения QTBTTT текущий блок может иметь форму не только квадрата, но и прямоугольника.
Блок 120 предсказания предсказывает текущий блок, чтобы сгенерировать блок предсказания. Блок 120 предсказания включает в себя блок 122 интра-предсказания и блок 124 интер-предсказания.
В общем, каждый из текущих блоков изображения может кодироваться с предсказанием. Предсказание текущего блока обычно может выполняться с использованием метода интра-предсказания или метода интер-предсказания, при этом метод интра-предсказания использует данные из самого изображения, содержащего текущий блок, а метод интер-предсказания использует данные из предыдущего изображения, закодированного перед изображением, содержащим текущий блок. Интер-предсказание включает в себя как однонаправленное, так и двунаправленное предсказание.
Блок 122 интра-предсказания предсказывает пиксели в текущем блоке, используя периферийные пиксели (опорные пиксели), расположенные вокруг текущего блока в текущем изображении. Различные направления предсказания представляют несколько соответствующих режимов интра-предсказания. Например, как показано на фиг. 3A, несколько режимов интра-предсказания могут включать в себя 2 ненаправленных режима, включая планарный режим и режим DC, а также 65 направленных режимов. Соответствующие режимы предсказания обеспечивают различные соответствующие определения соседних пикселей и формул вычисления, которые должны использоваться.
Для эффективного направленного предсказания текущего блока прямоугольной формы дополнительными используемыми режимами могут быть направленные режимы, показанные на фиг. 3B пунктирными стрелками режимов интра-предсказания под номерами 67-80 и под номерами от -1 до -14. Они могут называться «режимами широкоугольного интра-предсказания». Стрелки на фиг. 3B указывают соответствующие опорные отсчеты, используемые для предсказания, а не направления предсказания. Направление предсказания противоположно направлению, указанному стрелкой. Режимы широкоугольного интра-предсказания - это режимы, применяемые, когда текущий блок имеет прямоугольную форму, чтобы выполнять предсказание конкретного направленного режима в обратном направлении без дополнительной передачи битов. В этом случае из режимов широкоугольного интра-предсказания некоторые режимы широкоугольного интра-предсказания, доступные для использования в текущем блоке, могут определяться отношением ширины к высоте прямоугольного текущего блока. Например, режимы широкоугольного интра-предсказания, которые имеют угол меньше 45 градусов (режимы интра-предсказания под номерами 67-80), доступны для использования в текущем блоке, когда они имеют прямоугольную форму, в которой высота меньше ширины. Режимы широкоугольного интра-предсказания, имеющие угол -135 градусов или больше (режимы интра-предсказания под номерами от -1 до -14) доступны для использования в текущем блоке при наличии прямоугольной формы с высотой больше ширины.
Блок 122 интра-предсказания может определять режим интра-предсказания, который будет использоваться для кодирования текущего блока. В некоторых примерах блок 122 интра-предсказания может кодировать текущий блок с использованием нескольких режимов интра-предсказания и выбирать для использования подходящий режим интра-предсказания из проверенных режимов. Например, блок 122 интра-предсказания может вычислять значения скоростного искажения посредством анализа скорости-искажения нескольких протестированных режимов интра-предсказания и выбирать режим интра-предсказания, который имеет лучшие характеристики скорости-искажения среди протестированных режимов.
Блок 122 интра-предсказания выбирает один режим интра-предсказания из множества режимов интра-предсказания и предсказывает текущий блок, используя по меньшей мере один соседний пиксель (опорный пиксель), определенный согласно выбранному режиму интра-предсказания и формуле вычисления. Информация о выбранном режиме интра-предсказания кодируется блоком 155 энтропийного кодирования и передается в устройство декодирования видеоизображений.
Блок 124 интер-предсказания генерирует блок предсказания для текущего блока посредством процесса компенсации движения. Блок 124 интер-предсказания ищет блок, наиболее похожий на текущий блок в кодированном и декодированном опорном изображении перед текущим изображением, и генерирует блок предсказания текущего блока, используя найденный блок. Затем блок 124 интер-предсказания генерирует вектор движения, соответствующий смещению между текущим блоком в текущем изображении и блоком предсказания в опорном изображении. В общем, оценку движения выполняют для компонента яркости, а вектор движения, вычисленный на основе компонента яркости, используется как для компонента яркости, так и для компонента цветности. Информация о движении, включающая в себя информацию об опорном изображении и информацию о векторе движения, используемую для предсказания текущего блока, кодируется блоком 155 энтропийного кодирования и передается в устройство декодирования видеоизображений.
Блок 130 вычитания генерирует остаточный блок путем вычитания из текущего блока блока предсказания, сгенерированного блоком 122 интра-предсказания или блоком 124 интер-предсказания.
Блок 140 преобразования разделяет остаточный блок на один или несколько блоков преобразования, применяет преобразование к одному или более блокам преобразования и, таким образом, преобразует остаточные значения блоков преобразования из области пикселей в область частот. В области частот преобразованные блоки называются блоками коэффициентов, содержащими одно или более значений коэффициентов преобразования. Ядро двумерного преобразования может использоваться для преобразования, а ядро одномерного преобразования может использоваться для каждого из горизонтального преобразования и преобразования в вертикальном направлении. Ядра преобразования могут быть основаны на дискретном косинусном преобразовании (DCT), дискретном синусоидальном преобразовании (DST) или другом подобном.
Блок 140 преобразования может преобразовывать остаточные сигналы в остаточном блоке, используя весь размер остаточного блока в качестве блока преобразования. Кроме того, блок 140 преобразования может разделять остаточный блок на два подблока в горизонтальном или вертикальном направлении и выполнять преобразование только на одном из двух подблоков, как будет описано ниже со ссылкой на фигуры с 5А по 5D. Соответственно, размер блока преобразования может отличаться от размера остаточного блока (и, следовательно, размера блока предсказания). В подблоке, в котором не выполняется преобразование, может не быть ненулевых остаточных значений отсчетов или они могут быть очень немногочисленными. Для остаточных отсчетов подблока, в котором выполняется преобразование, сигнализация не выполняется, и все они могут рассматриваться устройством декодирования видеоизображений как «0». В зависимости от направлений и соотношений разделения может существовать несколько типов разделения. Блок 140 преобразования предоставляет блоку 155 энтропийного кодирования информацию о режиме кодирования (или режиме преобразования) остаточного блока, такую как информацию, указывающую, является ли преобразованный остаточный блок остаточным подблоком, информацию, указывающую тип разделения, выбранный для разделения остаточного блока на подблоки и информацию для идентификации подблока, в котором выполняется преобразование, и т. д. Блок 155 энтропийного кодирования может кодировать информацию о режиме кодирования (или режиме преобразования) остаточного блока.
Блок 145 квантования квантует коэффициенты преобразования, выданные из блока 140 преобразования, и выводит квантованные коэффициенты преобразования в блок 155 энтропийного кодирования. Блок 145 квантования может напрямую квантовать соответствующий остаточный блок для определенного блока или кадра без преобразования.
Блок 150 переупорядочивания может переупорядочивать значения коэффициентов на квантованных остаточных отсчетах. Блок 150 переупорядочивания может использовать сканирование коэффициентов для преобразования двумерной матрицы коэффициентов в одномерную последовательность коэффициентов. Например, блок 150 переупорядочивания может сканировать коэффициенты DC до коэффициентов в высокочастотной области посредством зигзагообразного сканирования или диагонального сканирования для вывода одномерной последовательности коэффициентов. В зависимости от размера блока преобразования и режима интра-предсказания используемое зигзагообразное сканирование может быть заменено вертикальным сканированием для сканирования двумерного массива коэффициентов в направлении столбца и горизонтальным сканированием для сканирования коэффициентов в форму двумерного блока в направлении строки. Другими словами, способ сканирования, который должен использоваться, может быть выбран из зигзагообразного сканирования, диагонального сканирования, вертикального сканирования и горизонтального сканирования в соответствии с размером блока преобразования и режимом интра-предсказания.
Блок 155 энтропийного кодирования использует различные методы кодирования, такие как контекстно-зависимое адаптивное двоичное арифметическое кодирование (CABAC), экспоненциальный код Голомба и т.п., для кодирования последовательности одномерных квантованных коэффициентов преобразования, выводимых из блока 150 переупорядочивания для генерации потока битов.
Кроме того, блок 155 энтропийного кодирования кодирует информацию о разделении блока, такую как размер единицы CTU, флаг разделения единицы CU, флаг разделения QT, тип разделения MTT и направление разделения MTT, позволяя устройству декодирования видеоизображений разделить блок таким же образом, как и устройство кодирования видеоизображений. Кроме того, блок 155 энтропийного кодирования кодирует информацию о типе предсказания, указывающую, закодирован ли текущий блок посредством интра-предсказания или интер-предсказания, и декодирует, в зависимости от типа предсказания, информацию интра-предсказания, то есть информацию о режиме интра-предсказания или информацию интер-предсказания, т. е. информацию об опорных изображениях и векторах движения.
Блок 160 обратного квантования выполняет обратное квантование квантованных коэффициентов преобразования, выводимых из блока 145 квантования, для генерации коэффициентов преобразования. Блок 165 обратного преобразования преобразует коэффициенты преобразования, выданные из блока 160 обратного квантования, из частотной области в пространственную область, чтобы восстановить остаточный блок.
Блок 170 суммирования складывает восстановленный остаточный блок и блок предсказания, сгенерированный блоком 120 предсказания, чтобы восстановить текущий блок. Пиксели в восстановленном текущем блоке используются в качестве опорных пикселей при интра-предсказании следующего блока.
Блок 180 фильтрации выполняет фильтрацию восстановленных пикселей для уменьшения блочных артефактов, артефактов звона, артефактов размытия и т.д., генерируемых вследствие предсказания на основе блоков и преобразования/квантования. Блок 180 фильтрации может включать в себя фильтр 182 удаления блочности и фильтр 184 адаптивного смещения отсчетов (SAO).
Фильтр 180 удаления блочности фильтрует границу между восстановленными блоками, чтобы удалить блочный артефакт, вызванный поблочным кодированием/декодированием, а фильтр 184 SAO выполняет дополнительную фильтрацию отфильтрованного изображения с удаленной блочностью. Фильтр SAO 184 - это фильтр, используемый для компенсации разницы между восстановленным пикселем и исходным пикселем, вызванной кодированием с потерями.
Восстановленный блок фильтруется через фильтр 182 удаления блочности и фильтр 184 SAO и сохраняется в памяти 190. Когда все блоки в одном изображении восстановлены, восстановленное изображение может использоваться в качестве опорного изображения для интер-предсказания блоков в приближающемся изображении, подлежащим кодированию.
На Фиг. 4 показана схема, иллюстрирующая устройство декодирования видеоизображений, выполненное с возможностью реализовывать способы, предложенные настоящим изобретением. В дальнейшем устройство декодирования видеоизображений и компоненты устройства будут описаны со ссылкой на фиг. 4.
Устройство декодирования видеоизображений может быть сконфигурировано так, что оно включает блок 410 энтропийного декодирования, блок 415 переупорядочивания, блок 420 обратного квантования, блок 430 обратного преобразования, блок 440 предсказания, сумматор 450, блок 460 фильтрации и память 470.
Как и в устройстве кодирования видеоизображений с фиг. 1, соответствующие компоненты устройства декодирования видеоизображений могут быть реализованы как аппаратные средства или программное обеспечение, или как комбинация аппаратных средств и программного обеспечения. Кроме того, функция каждого компонента может быть реализована программно, а функция программного обеспечения для каждого компонента может быть реализована с возможностью ее выполнения микропроцессором.
Блок 410 энтропийного декодирования декодирует поток битов, сгенерированный устройством кодирования видеоизображений, и извлекает информацию о разделении блоков для определения текущего блока, который должен быть декодирован, и извлекает информацию предсказания, необходимую для восстановления текущего блока, и информацию об остаточном сигнале и т. д.
Блок 410 энтропийного декодирования извлекает информацию о размере единицы CTU из набора параметров последовательности (SPS) или набора параметров изображения (PPS), определяет размер единицы CTU и разделяет изображение на единицы CTU заданного размера. Затем блок 410 энтропийного декодирования определяет единицу CTU как наивысший уровень, то есть корневой узел древовидной структуры, и извлекает информацию разделения на единице CTU и тем самым разделяет единицу CTU с использованием древовидной структуры.
Например, при разделении единицы CTU с использованием структуры QTBTTT сначала извлекается первый флаг (QT_split_flag), связанный с разделением QT, и каждый узел разделяется на четыре узла нижнего уровня. Для узла, соответствующего концевому узлу QT, блок 410 энтропийного декодирования извлекает второй флаг (MTT_split_flag), связанный с разделением MTT, и информацию о направлении разделения (вертикальное/горизонтальное) и/или типе разделения (двоичное/троичное) чтобы разделить этот концевой узел на структуру MTT. Это позволяет рекурсивно разбивать соответствующие узлы ниже концевого узла QT на структуру BT или TT.
В качестве другого примера, при разделении единицы CTU с использованием структуры QTBTTT блок 410 энтропийного декодирования может сначала извлечь флаг разделения CU (split_cu_flag), указывающий, разделена ли единица CU, и после разделения соответствующего блока он также может извлечь первый флаг. (QT_split_flag). В процессе разделения каждый узел может иметь ноль или более рекурсивных разделений QT, за которыми следует ноль или более рекурсивных разделений MTT. Например, единица CTU может сразу войти в разделение MTT или, наоборот, иметь только несколько разделений QT.
В качестве еще одного примера, при разделении единицы CTU с использованием структуры QTBT блок 410 энтропийного декодирования извлекает первый флаг (QT_split_flag), связанный с разделением QT, чтобы разделить каждый узел на четыре узла нижнего уровня. И для узла, соответствующего концевому узлу QT, блок 410 энтропийного декодирования извлекает флаг разделения (split_flag), указывающий, является ли этот узел дополнительно разделенным на BT и информацию о направлении разделения.
Между тем, когда блок 410 энтропийного декодирования определяет текущий блок, который должен быть декодирован посредством разделения древовидной структуры, он извлекает информацию о типе предсказания, указывающую, был ли текущий блок предсказан интра-предсказанием или интер-предсказанием. Когда информация о типе предсказания указывает на интра-предсказание, блок 410 энтропийного декодирования извлекает элемент синтаксиса для информации интра-предсказания (режим интра-предсказания) текущего блока. Когда информация о типе предсказания указывает на интер-предсказание, блок 410 энтропийного декодирования извлекает элемент синтаксиса для информации интер-предсказания, то есть информацию, указывающую вектор движения и опорное изображение, на которое ссылается вектор движения.
Между тем, блок 410 энтропийного декодирования извлекает из потока битов информацию о режиме кодирования остаточного блока, например, информацию о том, был ли закодирован остаточный блок или были закодированы только подблоки остаточного блока, информацию, указывающую выбранный тип разделения для разделения остаточного блока на подблоки, информацию, идентифицирующую закодированные остаточные подблоки, параметры квантования и т. д. Кроме того, блок 410 энтропийного декодирования извлекает информацию о квантованных коэффициентах преобразования текущего блока в качестве информации об остаточном сигнале.
Блок 415 переупорядочивания повторно упорядочивает, в обратной последовательности последовательности сканирования коэффициентов, выполняемой устройством кодирования видеоизображений, одномерные квантованные коэффициенты преобразования, которые энтропийно декодированы блоком 410 энтропийного декодирования в двумерный массив коэффициентов, т.е. блок.
Блок 420 обратного квантования выполняет обратное квантование квантованных коэффициентов преобразования. Блок 430 обратного преобразования выполняет обратное преобразование, основанное на информации о режиме кодирования остаточного блока, обратно квантованных коэффициентов преобразования из частотной области в пространственную область, чтобы восстановить остаточные сигналы и тем самым сформировать восстановленный остаточный блок текущего блока.
Блок 430 обратного преобразования реагирует на то, когда информация о режиме кодирования остаточного блока указывает, что остаточный блок текущего блока был закодирован в устройстве кодирования видеоизображений, выполняя обратное преобразование обратно квантованных коэффициентов преобразования с использованием размера текущего блока (таким образом, размер остаточного блока должен быть восстановлен) в качестве единицы преобразования для генерации восстановленного остаточного блока текущего блока.
Кроме того, блок 430 обратного преобразования реагирует на то, когда информация о режиме кодирования остаточного блока указывает, что единственный подблок остаточного блока был закодирован в устройстве кодирования видеоизображений, выполняя обратное преобразование для обратно квантованных коэффициентов преобразования с использованием размера преобразованного подблока в качестве единицы преобразования для восстановления остаточных сигналов преобразованного подблока при заполнении остаточных сигналов непреобразованного подблока значениями «0», тем самым генерируя восстановленный остаточный блок текущего блока.
Блок 440 предсказания может включать в себя блок 442 интра-предсказания и блок 444 интер-предсказания. Блок 442 интра-предсказания активируется, когда тип предсказания текущего блока является интра-предсказанием, а блок 444  интер-предсказания активируется, когда тип предсказания текущего блока является интер-предсказанием.
Блок 442 интра-предсказания определяет, среди множества режимов интра-предсказания, режим интра-предсказания текущего блока из элемента синтаксиса для режима интра-предсказания, извлеченного блоком 410 энтропийного декодирования, и в соответствии с определенным режимом интра-предсказания он предсказывает текущий блок, используя соседние опорные пиксели текущего блока.
Блок 444 интер-предсказания использует элемент синтаксиса для режима интра-предсказания, извлеченный блоком 410 энтропийного декодирования, для определения вектора движения текущего блока и опорного изображения, на которое ссылается вектор движения, и он использует вектор движения и опорное изображение как определенное для предсказания текущего блока.
Сумматор 450 суммирует остаточный блок, выданный из блока обратного преобразования, и блок предсказания, выданный из блока интер-предсказания или блока интра-предсказания, для восстановления текущего блока. Пиксели в восстановленном текущем блоке используются в качестве опорных пикселей при интра-предсказании подлежащего декодированию приходящего блока.
Блок 460 фильтрации может включать в себя фильтр 462 удаления блочности и фильтр 464 SAO. Фильтр 462 удаления блочности устраняет блочность и фильтрует границу между восстановленными блоками, чтобы удалить блочный артефакт, вызванный поблочным декодированием. Фильтр 464 SAO выполняет дополнительную фильтрацию на восстановленном блоке после фильтрации удаления блочности, чтобы компенсировать разницу между восстановленным пикселем и исходным пикселем, вызванную кодированием с потерями. Восстановленный блок фильтруется через фильтр 182 удаления блочности и фильтр 184 SAO и сохраняется в памяти 190. Когда все блоки в одном изображении восстановлены, восстановленное изображение может использоваться в качестве опорного изображения для интер-предсказания блоков в подлежащем кодированию приближающемся изображении.
Технологии вариантов осуществления, проиллюстрированных в данном документе, в целом относятся к кодированию с интер-предсказанием, то есть кодированию и декодированию текущего блока. Чтобы эффективно кодировать остаточный блок, полученный в соответствии с компенсацией движения на основе блоков, устройство кодирования видеоизображений может разделить остаточный блок на два остаточных подблока в горизонтальном или вертикальном направлении и кодировать только один остаточный подблок между двумя остаточными подблоками. Другими словами, процесс преобразования и квантования может применяться только к одному остаточному подблоку. Остаточные значения другого некодированного подблока рассматриваются как «0» или игнорируются. Такой инструмент кодирования может быть эффективным при кодировании остаточного блока, когда некоторая его область не имеет остаточного значения или имеет малое остаточное значение.
Устройство кодирования видеоизображений может выбрать оптимальный режим кодирования из первого и второго режима кодирования, при этом первый режим кодирования кодирует остаточный блок, таким образом, преобразуя остаточные сигналы в остаточном блоке в блок преобразования, который по размеру равен блоку предсказания, а второй режим кодирования разделяет остаточный блок на два подблока в горизонтальном или вертикальном направлении и кодирует только один подблок, таким образом, преобразуя остаточные сигналы в остаточном блоке в блок преобразования, который отличается по размеру от блока предсказания.
Далее подробно описан второй режим, связанный с кодированием остаточного блока. Нижеследующее описание в основном относится к технологии декодирования, в частности, к работе устройства декодирования видеоизображений, при этом технология кодирования описана кратко, поскольку последняя является обратной по отношению к подробно описанной технологии декодирования. Кроме того, термины «подблок(и) остаточного блока» и «остаточный(е) подблок(и)» могут использоваться взаимозаменяемо.
1. Тип разделения и положение преобразования
На фиг. 5A-5D показаны различные типы разделения или разбиения остаточного блока и подблоков, которые подлежат кодированию (и, таким образом, преобразованию). Остаточный блок можно разделить на два подблока. В проиллюстрированных остаточных блоках 510-580 подблоки, которые подвергаются преобразованию, закрашены и помечены буквой «A». Подблок, расположенный на левой или верхней стороне в остаточном блоке, может быть выражен как расположенный в «позиции 0» в остаточном блоке, а подблок, расположенный на правой или нижней стороне в остаточном блоке, может быть выражен как расположенный в «позиция 1» в остаточном блоке. Положение подблока в остаточном блоке, в котором выполняется преобразование, может называться «позицией преобразования». Следовательно, позиция преобразования, обозначенная как «позиция 0», может представлять преобразование, выполняемое над подблоком, расположенным на левой или верхней стороне в остаточном блоке, позиция преобразования, обозначенная как «позиция 1», может представлять преобразование, выполняемое над подблоком. расположенным справа или снизу в остаточном блоке.
Можно рассматривать различные типы разделения в соответствии с направлением разделения и коэффициентом разделения. Типы разделения блоков, которые следует принимать во внимание, включают первый тип, в котором разделение происходит симметрично в горизонтальном направлении, второй тип, в котором разделение происходит симметрично в вертикальном направлении, третий тип, в котором разделение происходит асимметрично в горизонтальном направлении (например, в соотношении 1:3 или 3:1), и четвертый тип, в котором разделение происходит асимметрично в вертикальном направлении (например, в соотношении 1:3 или 3:1).
Блок 510 вертикально разделен на левый подблок и правый подблок, и преобразование не выполняется в правом подблоке в позиции 1, а выполняется в левом подблоке в позиции 0. Блок 520 вертикально разделен на левый и правый подблоки, и преобразование не выполняется в левом подблоке, а выполняется в правом подблоке в позиции 1. Блок 530 горизонтально разделен на верхний и нижний подблоки и преобразование выполняется в верхнем подблоке в позиции 0, а не в нижнем подблоке. Блок 540 горизонтально разделен на два подблока и преобразование выполняется в нижнем подблоке в позиции 1, а не в верхнем подблоке.
Блок 550 вертикально разделен на левый подблок и правый подблок с соотношением 1:3 и преобразование не выполняется в правом подблоке в позиции 1, а выполняется в левом подблоке в позиции 0. Блок 560 вертикально разделен на левый и правый подблоки с соотношением 3:1, и преобразование выполняется не в левом подблоке, а в правом подблоке в позиции 1. Блок 570 горизонтально разделен на верхний и нижний подблоки, имеющие соотношение 1: 3, и преобразование выполняется на верхнем подблоке в позиции 0, а не в нижнем подблоке. Блок 540 разделен на два подблока в горизонтальном направлении, и преобразование выполняется в нижнем подблоке в позиции 1, а не в верхнем подблоке.
Как и в случае блоков 550-580, показанных на фиг. 5C и 5D, когда остаточный блок разбивается асимметрично (например, в соотношении 1:3 или 3:1), по умолчанию может быть установлено выполнение преобразование для меньшего подблока.
Доступные отношения разделения и направления разделения могут быть ограничены в соответствии с размером остаточного блока, чтобы обеспечить 4 или более пикселей для высоты или ширины подблока, который подвергается преобразованию. Например, первый тип горизонтально-симметричного разделения может быть разрешен для остаточных блоков, имеющих ширину 8 или более  пикселей, а второй тип вертикально-симметричного разделения может быть разрешен для остаточных блоков, имеющих высоту 8 или более пикселей. Аналогично третий тип и четвертый тип, которые обеспечивают горизонтальное или вертикальное асимметричное разделение, могут быть разрешены для остаточных блоков, имеющих ширину или высоту 16 или более пикселей.
2. Выбор ядра преобразования.
В зависимости от направления разделения (горизонтального или вертикального) остаточного блока и его позиции преобразования, т. е. позиции преобразованного подблока, могут быть выбраны ядра преобразования (horTransform и verTransform) в горизонтальном и вертикальном направлениях, используемые для преобразования подблока.
Когда к остаточному блоку применяется вертикальное разделение, ядро, которое должно использоваться для преобразования подблока, может быть неявно получено следующим образом. В случае блоков 510 и 550, когда преобразуемый подблок находится в позиции 0, тогда (horTransform, verTransform) = (DCT-8, DST-7). В случае блоков 520 и 560, когда преобразуемый подблок находится в позиции 1, тогда (horTransform, verTransform) = (DST-7, DST-7).
Когда к остаточному блоку применяется вертикальное разделение, ядро, которое должно использоваться для преобразования подблока, может быть неявно получено следующим образом. В случае блоков 510 и 550, когда преобразуемый подблок находится в позиции 0, тогда (horTransform, verTransform) = (DCT-8, DST-7). В случае блоков 520 и 560, когда преобразуемый подблок находится в позиции 1, тогда (horTransform, verTransform) = (DST-7, DST-7).
Когда один из остаточных подблоков больше 32 пикселей, ядро DCT-2 может применяться как для горизонтального, так и для вертикального направлений. Кроме того, для остаточного блока компонента цветности ядро DCT-2 может всегда применяться к преобразованию остаточного подблока, независимо от направления разделения (горизонтального или вертикального) остаточного блока и его позиции преобразования, т.е. позиции преобразованного подблока. В некоторых случаях может явно передаваться информация, идентифицирующая ядра преобразования, используемые для преобразования в горизонтальном и вертикальном направлениях.
3. Сигнализация режима остаточного кодирования
Когда текущий блок закодирован с интер-предсказанием, а соответствующий остаточный блок имеет по меньшей мере один ненулевой коэффициент, может быть явно сигнализирован первый флаг для указания, преобразован ли релевантный остаточный блок текущего блока или только один подблок остаточного блока закодирован.
Соответственно, устройство декодирования видеоизображений во время восстановления остаточного блока текущего блока, закодированного с помощью интер-предсказания, может декодировать первый флаг из потока битов, чтобы определить, разделило ли устройство кодирования видеоизображений остаточный блок на два подблока и закодировало ли только один подблок из двух подблоков.
В некоторых вариантах осуществления может быть пропущена сигнализация первого флага в зависимости от ширины или высоты текущего блока или в зависимости от произведения ширины и высоты, отношения ширины к высоте и большего из значений ширины и высоты. Например, когда ширина и высота текущего блока меньше 8 пикселей, устройство декодирования видеоизображений может пропустить декодирование первого флага и сделать вывод, что весь остаточный блок текущего блока был преобразован.
Когда кодируется только один подблок остаточного блока, могут дополнительно сигнализироваться тип разделения и позиция преобразования остаточного блока. В устройство кодирования видеоизображений может быть предоставлена информация о типе разделения и позиции преобразования различными способами. Например, один элемент синтаксиса может использоваться для представления типа разделения остаточного блока, или два флага могут использоваться для представления коэффициента разделения и направления разделения. Кроме того, один флаг может использоваться для представления позиции преобразования, которая является позицией преобразуемого подблока. Например, можно установить флаг, указывающий позицию преобразования, на значение «0», когда преобразование применяется к подблоку, расположенному на левой или верхней стороне в остаточном блоке, и установить флаг, указывающий позицию преобразования, на значение «1», когда преобразование применяется к подблоку, расположенному справа или снизу в остаточном блоке.
Остаточный блок при разделении в соотношении 1:3 или 3:1 может добавлять ограничение, соглансо которому преобразование неизменно выполняется в меньшем подблоке, что позволяет исключить сигнализацию флага, указывающего позицию преобразования.
Кроме того, в зависимости от ширины и высоты остаточного блока или в зависимости от произведения ширины и высоты, отношения ширины к высоте и большего из значений ширины и высоты, возможно ограничение использования некоторого типа разделения или направления разделения и/или коэффициента разделения, что позволяет исключить сигнализацию элементов синтаксиса, представляющих один и тот же тип разделения или направление разделения и/или коэффициент разделения. Например, когда ширина и высота остаточного блока меньше 16 пикселей, не может быть разрешено разделение остаточного блока «в соотношении 1:3 или 3:1». Соответственно, устройство декодирования видеоизображений может реагировать на остаточный блок, когда ширина и высота меньше 16 пикселей, для вывода отношения разделения как 1:1 без декодирования флага, указывающего коэффициент разделения. В другом примере, когда ширина (или высота) остаточного блока меньше 8 пикселей, не может быть разрешено разделение остаточного блока в вертикальном направлении (или горизонтальном направлении). Соответственно, устройство декодирования видеоизображений может реагировать на остаточный блок, имеющий ширину менее 8 пикселей для вывода о том, что остаточный блок разделен в горизонтальном направлении без флагов декодирования, указывающих направление разделения. Точно так же устройство декодирования видеоизображений может реагировать на остаточный блок, когда он имеет высоту менее 8 пикселей, для вывода о том, что разделение выполняется в вертикальном направлении. Согласно еще одну примеру устройство может реагировать так, что когда ширина больше, чем высота, то делается вывод о том, что разделение выполняется в вертикальном направлении, а когда высота больше, чем ширина, то делается вывод, что разделение выполняется в горизонтальном направлении.
Остаточный блок, связанный с компонентом яркости, может иметь свой единственный остаточный подблок, кодированный исключительно, в этом случае соответствующий остаточный блок, связанный с компонентом цветности, может также иметь свой единственный остаточный подблок, кодированный исключительно. Соответственно, первый флаг, переданный на уровне единицы CU, может совместно использоваться остаточным блоком компонента яркости и остаточными блоками компонента цветности.
Тот же режим остаточного кодирования, выбранный для остаточного блока компонента яркости, может быть применен к остаточному блоку компонента цветности, расположенному совместно с остаточным блоком компонента яркости. Другими словами, когда остаточный блок компонента яркости имеет только один кодированный подблок, остаточный блок компонента цветности может аналогичным образом иметь только один кодированный подблок. В этом случае информация о типе разделения остаточного блока и позиции подблока, подлежащего кодированию, может совместно использоваться блоком яркости и блоками цветности.
В по меньшей мере одном варианте осуществления единой древовидной структуры один и тот же режим остаточного кодирования может применяться к компоненту яркости и компоненту цветности, и та же информация о направлении разделения, определенном для остаточного блока компонента яркости, и позиции подблока, подлежащего кодированию, может применяться к остаточным блокам компонентов цветности. Согласно другому примеру, в случае кодирования только одного подблока остаточного блока компонента цветности, когда аналогичным образом кодируется только один подблок совмещенного остаточного блока компонента яркости, одна и та же информация о направлении разделения, определенная для остаточного блока компонента яркости и позиции подблока, подлежащего кодированию, может применяться к остаточным блокам компонента цветности.
4. Восстановление остаточного блока
Устройство декодирования видеоизображений может определять на основе типа разделения и позиции преобразования позицию подблока в остаточном блоке, где декодировать соответствующую информацию о коэффициентах преобразования из потока битов, а также размер подблока. Устройство декодирования видеоизображений может декодировать информацию о коэффициентах преобразования из потока битов, чтобы восстановить коэффициенты преобразования подблока, соответствующего позиции преобразования. Устройство декодирования видеоизображений применяет процесс обратного квантования/обратного преобразования к восстановленным коэффициентам преобразования для генерации остаточных сигналов подблока, соответствующего позиции преобразования, и устанавливает для всех остаточных сигналов другого подблока, соответствующего позиции без преобразования, значение «0», тем самым восстанавливая остаточный блок ткущего блока.
Аналогично, устройство кодирования видеоизображений выполняет преобразование и квантование остаточного подблока, соответствующего позиции преобразования, энтропийно кодирует квантованные коэффициенты преобразования и применяет процесс обратного квантования/обратного преобразования к квантованным коэффициентам преобразования, чтобы восстановить остаточный подблок, соответствующий позиции преобразования и устанавливает все остаточные сигналы другого подблока, соответствующие позиции без преобразования, равными «0», тем самым восстанавливая остаточный блок текущего блока.
5. Расчет параметров квантования.
Устройство кодирования видеоизображений может определять значение параметра квантования (QP) для текущего блока (CU) и определять на основе значения QP и значения предсказания QP значение параметра дифференциального квантования (Delta QP или DQP) для текущего блока. Устройство кодирования видеоизображений может быть сконфигурировано для сигнализации значения DQP и квантования текущего блока с использованием определенного значения QP. Устройство кодирования видеоизображений может регулировать значение QP текущего блока и, таким образом, регулировать степень квантования, применяемую к блокам коэффициентов, относящихся к текущему блоку.
DQP определяется как разница между текущим QP, т.е. фактическим QP, используемым в текущем блоке, и предсказанным значением текущего QP или значением предсказания QP. На основе сигнализированного DQP соответствующее текущее значение QP может быть восстановлено путем добавления DQP к значению предсказания QP. В частности, устройство кодирования видеоизображений выдает DQP, который должен быть вычислен, путем вычитания значения предсказания QP из фактического QP текущего блока, а устройство декодирования видеоизображений выдает фактический QP текущего блока, который должен быть восстановлен, путем добавления принятого DQP к значению предсказания QP.
В некоторых вариантах осуществления среднее значение фактических значений QP для верхнего блока и левого блока по отношению к текущему блоку может быть определено как значение предсказания QP текущего блока. В некоторых других вариантах осуществления репрезентативные значения (например, среднее, медианное и т. д.) фактических значений QP для левого блока, верхнего левого блока и верхнего блока относительно текущего блока могут быть определены как значение предсказания QP для текущего блока.
В некоторых вариантах осуществления кодируют только один подблок соответствующего остаточного блока текущего блока, при этом информация о разделениях остаточного блока, форма разделения или позиция подблока для кодирования и т. д. используются в качестве основы для выбора соседних блоков, на которые следует ссылаться. Затем фактические значения QP для выбора соседних блоков могут использоваться в качестве значения предсказания QP текущего блока, или фактические значения QP выбранного соседнего блока (ов) могут использоваться в качестве основы для получения значения предсказания QP для текущего блока.
На фиг. 6 показана схема, поясняющая случай кодирования одного подблока в релевантном остаточном блоке текущего блока, иллюстрирующая позиции соседних блоков, на которые следует ссылаться для предсказания параметра квантования (QP).
Когда остаточный блок 610 разделен по вертикали и остаточный сигнал имеется только в левом подблоке, то есть кодируется только левый подблок, по меньшей мере одно из значений предсказания QP соседних блоков «a, b, d, e», смежных с левым подблоком, может использоваться в качестве основы для вычисления значения предсказания QP текущего блока. Например, значение предсказания QP текущего блока может быть вычислено на основе среднего значения значений QP блока «a» и блока «b».
Когда остаточный блок 620 разделен по вертикали и остаточный сигнал имеется только в правом подблоке, то есть кодируется только правый подблок, значение QP блока «c», который является соседним блоком, смежным с правым подблоком, может быть определено как значение предсказания QP текущего блока.
На фиг. 7 показана схема блока цветности и, по меньшей мере, одного блока яркости, который совмещен с блоком цветности.
Значение QP для блока цветности может быть определено на основании определенного значения QP для соответствующего блока(ов) яркости. Значение предсказания QP блока цветности может быть определено на основании значения QP блока яркости в том же месте. В качестве примера значение QP блока яркости «a», расположенного в верхнем левом углу текущего блока, может использоваться в качестве значения предсказания QP для остаточного блока компонента цветности. В качестве альтернативы используемое значение предсказания QP остаточного блока компонента цветности может быть наиболее частым значением, максимальным значением, минимальным значением, средним значением или средним значением среди значений QP блоков яркости от «a до i».
При кодировании одного подблока в остаточном блоке компонента цветности используемое значение предсказания QP блока цветности может быть значением QP блока яркости, выбранным на основе большего значения (альтернативно меньшего значения) среди направления разделения остаточного блока, позиции подблока для кодирования, размера подблока, отношения горизонтали к вертикали подблока, а также ширины или высоты подблока. По меньшей мере в одном варианте осуществления используемое значение предсказания QP блока компонента цветности представляет собой значение QP одного из блока «d» и блока «i», которые являются блоками яркости, соответствующими подблоку A, кодируемому в компоненте цветности, остаточному блоку или среднему значению значений QP блока «d» и блока «i».
6. Внутриконтурная фильтрация
Устройство кодирования видеоизображений и устройство декодирования видеоизображений могут выполнять внутриконтурную фильтрацию, включая фильтрацию удаления блочности на восстановленном текущем блоке, и сохранять отфильтрованный текущий блок в буфере (например, в памяти 190 на фиг. 1 и в памяти 470 на фиг. 4) для будущего использования в качестве опорного изображения для интер-предсказания приходящих блоков в кодируемом изображении.
Фильтр удаления блочности применяется к пикселям на границе блока, чтобы уменьшить блочные артефакты, вызванные границей между блоками в восстановленном изображении. Фильтрация удаления блочности выполняется на вертикальной границе и горизонтальной границе. Фильтрация, сначала выполняемая на вертикальной границе, может служить входом для последующей фильтрации горизонтальной границы.
На фиг. 8 показана схема восстановленных текущих блоков (810, 820), иллюстрирующая их соответствующие остаточные блоки, подвергающиеся вертикальным разделениям и преобразованиям в их левых подблоках (то есть позиция преобразования равна 0), чтобы показать их границы разделения между подблоками и границу удаления блочности.
Устройство кодирования видеоизображений и устройство декодирования видеоизображений могут определять, применять или нет фильтрацию удаления блочности к текущему блоку на основе того, совпадает ли граница удаления блочности размером 4x4 (или 8x8) с границей между подблоками остаточного блока. Например, устройство декодирования видеоизображений может установить сетку из N отсчетов с регулярными интервалами в горизонтальном и вертикальном направлениях и выполнять фильтрацию удаления блочности только тогда, когда граница между двумя подблоками в текущем блоке совпадает с границей сетки. Соответственно, фильтрация удаления блочности не может выполняться на границах между подблоками, которые не совпадают с границей сетки. Здесь N может быть установлено равным 2n (n - натуральное число). В качестве альтернативы устройство кодирования видеоизображений и устройство декодирования видеоизображений могут определять, применять ли фильтрацию удаления блочности к текущему блоку, на основе пикселей, включенных в несколько столбцов или строк, включенных в текущий блок. Сетка в различных единицах может использоваться в зависимости от того, является ли текущий блок блоком яркости или блоком цветности. Например, сетка может быть установлена в единицах 4×4 для блока яркости, и сетка может быть установлена в единицах 8×8 для блока цветности.
В некоторых вариантах осуществления фильтрация удаления блочности может выполняться на уровне восстановленного остаточного сигнала. На фиг. 9 показана схема, поясняющая фильтрацию удаления блочности, выполняемую на границе между остаточными подблоками на уровне остаточного сигнала. На ифг. 9 показан остаточный блок 4 × 8, который подвергается горизонтальному разделению и преобразованию в своем нижнем подблоке 4×4 (то есть позиция преобразования равна 1). После того, как остаточные сигналы, соответствующие нижнему подблоку, восстановлены а остаточные сигналы верхнего подблока заполнены «0» для завершения восстановленного остаточного блока, для остаточного блока может быть выполнена фильтрация удаления блочности. Вариант осуществления с фиг. 9 иллюстрирует одномерный фильтр среднего значения, имеющий параметр [1 2 1], примененный к границе между двумя подблоками.
При применении фильтра удаления блочности к текущему блоку в соответствии с требуемой силой фильтрации удаления блочности может быть выбран сильный фильтр или слабый фильтр. Кроме того, можно рассмотреть возможность использования различных обычных фильтров в общих методах обработки изображений, таких как фильтр среднего значения, фильтр медианного значения и двусторонний фильтр.
Что касается выбора фильтра, устройство видеодекодирования может быть проинформировано устройством кодирования видеоизображений о фильтре, который будет использоваться, перед выбором фильтра для использования в фильтрации остаточного удаления блочности. Например, индекс фильтра, который должен использоваться, может сообщаться среди множества заранее определенных фильтров. В качестве альтернативы можно использовать один заранее определенный фильтр.
После того, как фильтр выбран, в вариантах осуществления вычисляют параметры фильтрации, относящиеся к выбранному фильтру, в частности, параметры, которые определяют интенсивность фильтра и значения отсечения для изменений в пикселях, и на основе вычисленных параметров фильтрации выполняют фильтрацию по остаточной границе выборки.
Для параметров фильтра может передаваться информация о местоположении соседнего блока кодирования, такая как предыдущий кадр, соседний блок, группа соседних фрагментов, соседний фрагмент и т.п., и могут использоваться параметры фильтра соседнего блока декодирования, соответствующие местоположению, для текущего блока, как он есть, или параметры фильтра для текущего блока восстанавливаются из значений соседних параметров и дополнительных сигнализированных значений разности.
На фиг. 10 показана блок-схема способа, выполняемого устройством кодирования видеоизобpажений для кодирования с интер-предсказанием текущего блока видеоизображения согласно, по меньшей мере, одному варианту осуществления настоящего изобретения.
На этапе S1010 устройство кодирования видеоизображений может сгенерировать блок предсказания посредством интер-предсказания текущего блока кодируемых видеоданных, и оно может сгенерировать остаточный блок путем вычитания блока предсказания из текущего блока видеоданных.
На этапе S1020 устройство кодирования видеоизображений может определить режим остаточного кодирования для остаточного блока текущего блока. В частности, устройство кодирования видеоизображений может выбирать, кодировать ли остаточный блок текущего блока или кодировать только один подблок, который является частичной областью остаточного блока. Этот выбор может быть основан на тесте «скорость-искажение».
На этапе S1030 устройство кодирования видеоизображений может кодировать информацию о режиме остаточного кодирования, выбранном для соответствующего остаточного блока текущего блока.
Информация о режиме остаточного кодирования может включать в себя первый флаг, указывающий, является ли кодированным остаточный блок или только один подблок остаточного блока.
Когда кодируется только один подблок остаточного блока, устройство кодирования видеоизображений может дополнительно кодировать информацию, указывающую тип разделения для разделения остаточного блока на два подблока. Можно рассматривать различные типы разделения в соответствии с направлением разделения и коэффициентом разделения. Например, метод кодирования с интер-предсказанием может предусматривать использование типов разделения, включающих первый тип, который обеспечивает горизонтальное симметричное разделение на два подблока, второй тип, который обеспечивает вертикальное симметричное разделение на два подблока, третий тип, который обеспечивает горизонтальное асимметричное разделение на два подблока. (например, с соотношением 1:3 или 3:1), и четвертый тип, который обеспечивает асимметричное разделение по вертикали на два подблока (например, с соотношением 1:3 или 3:1). Один или несколько элементов синтаксиса могут использоваться, чтобы сигнализировать тип разделения (или направление разделения и коэффициент разделения) для соответствующего остаточного блока текущего блока.
В зависимости от ширины и высоты соответствующего остаточного блока текущего блока и, таким образом, в зависимости от ширины и высоты блока предсказания, устройство кодирования видеоизображений может ограничивать использование некоторых направлений разделения, коэффициентов разделения и/или типов разделения, и, таким образом, оно может пропускать сигнализацию элементов синтаксиса, выражающих направление разделения, коэффициент разделения и/или тип разделения в зависимости от ширины и высоты остаточного блока.
В по меньшей мере одном варианте осуществления, когда ширина и высота остаточного блока меньше 16 пикселей, не может быть разрешено разделение остаточного блока «в соотношении 1:3 или 3:1». Соответственно, когда ширина и высота остаточного блока меньше 16 пикселей, устройство декодирования видеоизображений может сделать вывод, что коэффициент разделения может быть 1:1, что может быть принято во внимание устройством кодирования видеоизображений для пропуска сигнализации элементов синтаксиса (например, 1-битного флага), выражающих направление разделения. В другом варианте осуществления, когда ширина текущего блока меньше 8 пикселей, может быть запрещено вертикальное разделение текущего блока. Когда высота текущего блока меньше 8 пикселей может быть запрещено горизонтальное разделение текущего блока. Соответственно, когда ширина (или высота) остаточного блока меньше 8 пикселей, текущий блок может быть разделен с соотношением 1:1 в вертикальном (или горизонтальном) направлении устройством декодирования видеоизображений, что позволяет устройству кодирования видеоизображений пропускать сигнализацию элементов синтаксиса (например, 1-битного флага), выражающих направление разделения.
Кроме того, устройство кодирования видеоизображений может явно сигнализировать флаг для идентификации подблока из двух подблоков, классифицированных в соответствии с типом разделения, который должен быть кодирован (и, таким образом, подвергаться преобразованию). В некоторых вариантах осуществления устройство кодирования видеоизображений может реагировать на то, когда тип разделения текущего блока является третьим типом или четвертым типом, то есть когда текущий блок асимметрично разделен в горизонтальном или вертикальном направлении, для немедленного решения, о том, что должен кодироваться меньший подблок из двух блоков, пропуская при этом сигнализацию флага для идентификации подблока, подлежащего кодированию.
На этапах с S1040 по S1050 устройство кодирования видеоизображений кодирует остаточный блок или один подблок остаточного блока в соответствии с режимом остаточного кодирования, выбранным для соответствующего остаточного блока текущего блока. Когда выбирается кодирование остаточного блока, устройство кодирования видеоизображений может выполнять преобразование и квантование остаточного блока в единице преобразования, равной по размеру остаточному блоку, и энтропийно кодировать квантованные коэффициенты преобразования. Когда выбирается кодирование только одного подблока остаточного блока, устройство кодирования видеоизображений может выполнять преобразование и квантование подблока, соответствующего позиции преобразования, и энтропийно кодировать квантованные коэффициенты преобразования. Остаточные сигналы других подблоков, соответствующих непреобразованным позициям, считаются равными 0, что устраняет необходимость преобразования информации о коэффициентах.
На этапе S1060 устройство кодирования видеоизображений может применить процесс обратного квантования/обратного преобразования к квантованным коэффициентам преобразования, чтобы восстановить остаточные сигналы, соответствующие позициям преобразования, и установить для всех остаточных сигналов других подблоков, соответствующих непреобразованным позициям, значение 0, тем самым восстанавливая остаточный блок для текущего блока. Устройство кодирования видеоизображений может суммировать восстановленный остаточный блок с блоком предсказания, чтобы сгенерировать восстановленный текущий блок.
На этапе S1070 устройство кодирования видеоизображений может выполнять фильтрацию удаления блочности, по меньшей мере, на восстановленном текущем блоке и сохранять отфильтрованный текущий блок в буфере, например, в памяти 190 на фиг. 1 для использования в качестве опорного изображения для  интер-предсказания приходящих блоков в кодируемом изображении. В частности, устройство кодирования видеоизображений может установить сетку на N отсчетов с регулярными интервалами в горизонтальном и вертикальном направлениях и определить, применять ли фильтрацию удаления блочности к текущему блоку на основе того, совпадает ли граница между подблоками остаточного блока с границей сетки. Устройство кодирования видеоизображений может выполнять фильтрацию удаления блочности только тогда, когда граница между двумя остаточными подблоками в текущем блоке совпадает с границей сетки. Другими словами, фильтрация удаления блочности может выполняться только тогда, когда граница удаления блочности размером 4×4 (или 8×8) совпадает с границей между остаточными подблоками.
На фиг. 11 показана блок-схема способа, выполняемого устройством декодирования видеоизображений для декодирования текущего блока, кодированного с интер-предсказанием, из кодированного потока битов видеоизображения согласно, по меньшей мере, одному варианту осуществления настоящего изобретения.
На этапе S1110 устройство декодирования видеоизображений, например блок энтропийного декодирования с фиг. 4, может декодировать информацию о режиме остаточного кодирования соответствующего остаточного блока текущего блока.
Например, устройство декодирования видеоизображений может декодировать из потока битов первый флаг, указывающий, был ли закодирован релевантный остаточный блок текущего блока или только один подблок остаточного блока. Первый флаг, имеющий первое значение (например, «0»), может указывать, что остаточный блок был преобразован, а первый флаг, имеющий второе значение (например, «1»), может указывать, что только один подблок остаточного блока был преобразован.
Когда первый флаг указывает, что был преобразован только один подблок остаточного блока, устройство декодирования видеоизображений может дополнительно декодировать из потока битов один или несколько элементов синтаксиса, представляющих тип разделения (направление разделения и/или коэффициент разделения) остаточного блока и может определять тип разделения остаточного блока, по меньшей мере частично, на основе декодированного одного или нескольких элементов синтаксиса. Можно рассматривать различные типы разделения в соответствии с направлением разделения и коэффициентом разделения. Например, типы разделения могут включать первый тип, который обеспечивает горизонтальное симметричное разделение на два подблока, второй тип, который обеспечивает вертикальное симметричное разделение на два подблока, третий тип, который обеспечивает горизонтальное асимметричное разделение на два подблока. (например, с соотношением 1:3 или 3:1), и четвертый тип, который обеспечивает асимметричное разделение по вертикали на два подблока (например, с соотношением 1:3 или 3:1).
При определении типа разделения ширина и высота текущего блока могут дополнительно учитываться вместе с информацией, указывающей тип разделения. Использование некоторых типов разделения (или направления разделения и/или коэффициента разделения) может быть ограничено в зависимости от ширины и высоты текущего блока, что может исключать сигнализацию элементов синтаксиса, выражающих одни и те же типы разделения (или направление разделения и/или отношение разделения).
По меньшей мере в одном варианте осуществления устройство может реагировать на то, когда ширина и высота текущего блока меньше 16 пикселей, запрещая разделение текущего блока «в соотношении 1:3 или 3:1». Соответственно, когда ширина и высота остаточного блока меньше 16 пикселей, устройство декодирования видеоизображений может просто сделать вывод о том, что отношение разделения равно 1:1 без необходимости декодировать элемент синтаксиса, указывающий направление разделения, например, 1- битовый флаг.
Согласно другому варианту осуществления устройство может реагировать на то, когда ширина (или высота) текущего блока меньше 8 пикселей, запрещая разделение текущего блока в вертикальном направлении (или горизонтальном направлении). Следовательно, когда ширина остаточного блока меньше 8 пикселей, устройство декодирования видеоизображений может просто сделать вывод о направлении разделения как о горизонтальном направлении без необходимости декодировать элемент синтаксиса, указывающий направление разделения. Таким же образом, когда высота остаточного блока меньше 8 пикселей, устройство декодирования видеоизображений может просто сделать вывод о направлении разделения как о вертикальном направлении без необходимости декодировать элемент синтаксиса, указывающий направление.
Чтобы идентифицировать подблок, из которого должна быть декодирована информация о коэффициентах преобразования, устройство декодирования видеоизображений может дополнительно декодировать из потока битов элемент синтаксиса (например, 1-битовый флаг), указывающий позицию кодированного подблока, и, таким образом, позицию подблока, в которой было выполнено преобразование. В некоторых вариантах осуществления устройство декодирования видеоизображений может реагировать на то, когда тип разделения текущего блока является третьим или четвертым типом, немедленно делая вывод о том, что преобразование претерпел меньший подблок из двух блоков, пропуская декодирование элемента синтаксиса для указания позиции подблока, где было выполнено преобразование.
На этапах с S1120 по S1130 устройство декодирования видеоизображений может восстанавливать релевантный остаточный блок текущего блока на основе декодированной информации режима остаточного кодирования.
Когда первый флаг указывает, что соответствующий остаточный блок текущего блока был закодирован, устройство декодирования видеоизображений может декодировать из потока битов информацию о коэффициентах преобразования для остаточного блока, чтобы восстановить коэффициенты преобразования. После этого устройство декодирования видеоизображений выполняет обратное квантование коэффициентов преобразования и выполняет обратное преобразование квантованных коэффициентов преобразования в единице преобразования, равной по размеру остаточному блоку, тем самым восстанавливая остаточный блок текущего блока.
Когда первый флаг указывает, что был закодирован только один подблок остаточного блока, устройство декодирования видеоизображений может декодировать из потока битов информацию о коэффициентах преобразования для подблока, соответствующего позиции преобразования, чтобы восстановить коэффициенты преобразования. После этого устройство декодирования видеоизображений выполняет обратное квантование и обратное преобразование коэффициентов преобразования для генерации остаточных сигналов для подблока, соответствующего позиции преобразования, и устанавливает все остаточные сигналы другого подблока, соответствующего позиции без преобразования, в 0, таким образом восстанавливая остаточный блок текущего блока.
На этапе S1140 устройство декодирования видеоизображений может сгенерировать блок предсказания посредством интер-предсказания текущего блока и может восстановить текущий блок, суммируя блок предсказания и остаточный блок.
На этапе S1150 устройство декодирования видеоизображений может выполнить фильтрацию удаления блочности, по меньшей мере, на восстановленном текущем блоке и сохранить отфильтрованный текущий блок в буфере, и т.п., например, в памяти 470 с фиг. 4, для использования в качестве опорного изображения для интер-предсказания приходящих блоков в кодируемом изображении. Устройство декодирования видеоизображений может установить сетку из N отсчетов с регулярными интервалами в горизонтальном и вертикальном направлениях и определить на основе границы установленной сетки, применять ли фильтрацию удаления блочности к текущему блоку. Например, фильтрация удаления блочности может применяться к границе между текущим блоком и другими блоками, которые уже были декодированы, когда эта граница совпадает с границей сетки. Кроме того,  фильтрация удаления блочности может применяться к границе между подблоками остаточного блока, когда эта граница совпадает с границей сетки. Сетка в различных единицах может использоваться в зависимости от того, является ли текущий блок блоком яркости или блоком цветности. Например, сетка может быть установлена в единицах 4×4 для блока яркости, и сетка может быть установлена в единицах 8×8 для блока цветности.
Следует понимать, что в приведенном выше описании представлены иллюстративные варианты осуществления, которые могут быть реализованы различными другими способами. Функции, описанные в некоторых вариантах осуществления, могут быть реализованы с помощью оборудования, программного обеспечения, встроенного программного обеспечения и/или их комбинации. Также следует понимать, что функциональные компоненты, описанные в настоящем описании, помечены как «… блок», чтобы особо подчеркнуть возможность их автономной реализации.
Между тем, различные способы или функции, приведенные в настоящем описании, могут быть реализованы как инструкции, хранящиеся на энергонезависимом носителе информации, которые могут быть прочитаны и выполнены одним или несколькими процессорами. Энергонезависимый носитель записи включает в себя, например, все типы записывающих устройств, в которых данные хранятся в форме, читаемой компьютерной системой. Например, энергонезависимый носитель информации может включать в себя, среди прочего, носители данных, такие как стираемое программируемое постоянное запоминающее устройство (EPROM), флэш-накопитель, оптический накопитель, магнитный жесткий диск и твердотельный накопитель (SSD).
Несмотря на то, что примерные варианты осуществления настоящего изобретения были описаны в иллюстративных целях, специалисты в данной области техники поймут, что возможны различные модификации, дополнения и замены без отклонения от идеи и объема заявленного изобретения. Следовательно, для краткости и ясности были описаны примерные варианты осуществления настоящего изобретения. Объем технической идеи настоящих вариантов осуществления не ограничен иллюстрациями. Соответственно, рядовому специалисту понятно, что объем заявленного изобретения ограничивается не ариантами осуществления, которые были непосредственно описаны выше, а формулой изобретения и ее эквивалентами.
Ссылка на родственную заявку
Эта заявка испрашивает приоритет корейской заявки на получение патента № 10-2019-0028364, поданной 12 марта 2019 г., описание которой полностью включено в настоящий документ посредством ссылки.