Область техники, к которой относится изобретение
[1] Настоящее описание на примере некоторых вариантов осуществления относится к кодированию и декодированию изображений или видео. Конкретнее, настоящее раскрытие относится к кодированию и декодированию видео с использованием метода дифференциального кодирования, выполняемого в режиме пропуска преобразования.
Уровень техники
[2] Изложения в этом разделе предоставляют собой лишь справочную информацию, относящуюся к настоящему раскрытию, и не обязательно составляют предшествующий уровень техники.
[3] Поскольку видеоданные имеют большой объем данных по сравнению с аудиоданными или данными неподвижных изображений, требуется много аппаратных ресурсов, включая память, для хранения или передачи данных в необработанном виде перед тем, как подвергнуть их процессу сжатия.
[4] Соответственно, хранение или передача видеоданных обычно сопровождается их сжатием с использованием кодирующего устройства до того, как модуль декодирования сможет принимать, распаковывать и воспроизводить сжатые видеоданные. Известные технологии сжатия видеоизображений включают стандарт H.264/AVC и стандарт высокоэффективного кодирования видеоизображений (HEVC), повышающий эффективность кодирования H.264 / AVC примерно на 40%.
[5] Однако постоянное увеличение размера, разрешения и частоты кадров видеоизображений и, как следствие, увеличение объема данных, подлежащих кодированию, требует нового и улучшенного метода сжатия с более высокой эффективностью кодирования и более высоким качеством изображения по сравнению с известными методами сжатия.
Раскрытие сущности изобретения
Техническая проблема
[6] Настоящее раскрытие в некоторых вариантах осуществления направлено на раскрытие устройства и способа декодирования видео с использованием метода дифференциального кодирования для остаточного сигнала во время декодирования в режиме пропуска преобразования.
Техническое решение
[7] По меньшей мере один аспект настоящего раскрытия предусматривает способ декодирования видео для восстановления текущего блока, который кодируется с использованием интра-предсказания. Способ включает в себя: декодирование из битового потока информации о направлении, указывающей направление дифференциального кодирования, применяемого к остаточному блоку текущего блока, генерирование остаточного блока посредством восстановления информации об остаточных сигналах из битового потока и генерирование модифицированного остаточного блока посредством модифицирования остаточных сигналов в остаточном блоке на основе информации о направлении. Каждый целевой остаточный сигнал для модифицирования в остаточном блоке модифицируется посредством суммирования с одним или более остаточными сигналами в остаточном блоке, которые расположены в направлении, указанном посредством информации о направлении из целевого остаточного сигнала. Способ дополнительно включает в себя обратное квантование модифицированного остаточного блока в обратно квантованный остаточный блок, генерирование блока предсказания для текущего блока с использованием интра-предсказания и восстановление текущего блока посредством добавления блока предсказания и обратно квантованного остаточного блока.
[8] Другой аспект настоящего раскрытия предусматривает устройство декодирования видео для восстановления текущего блока, который кодируется с использованием интра-предсказания. Устройство декодирования видео включает в себя модуль энтропийного декодирования, модуль обратного квантования, модуль интра-предсказания и сумматор. Модуль энтропийного декодирования конфигурирован для декодирования из битового потока информации о направлении, указывающей направление дифференциального кодирования, применяемого к остаточному блоку текущего блока, и для генерирования остаточного блока посредством восстановления информации об остаточных сигналах из битового потока. Модуль обратного квантования конфигурирован для генерирования модифицированного остаточного блока посредством модифицирования остаточных сигналов в остаточном блоке на основе информации о направлении и для обратного квантования модифицированного остаточного блока в обратно квантованный остаточный блок. Модуль интра-предсказания конфигурирован для генерирования блока предсказания для текущего блока посредством интра-предсказания. Сумматор выполнен с возможностью добавления блока предсказания и обратно квантованного остаточного блока в восстановленный текущий блок. При этом каждый целевой остаточный сигнал для модифицирования в остаточном блоке модифицируется посредством суммирования с одним или более остаточными сигналами в остаточном блоке, которые расположены в направлении, указанном посредством информации о направлении из целевого остаточного сигнала.
Преимущества изобретения
[9] Как описано выше, некоторые варианты осуществления настоящего раскрытия предусматривают устройство и способ декодирования видео, использующие метод дифференциального кодирования для остаточного сигнала во время декодирования в режиме пропуска преобразования, что обеспечивает улучшенные характеристики сжатия.
Краткое описание чертежей
[10] На фиг. 1 показана схема, иллюстрирующая устройство кодирования видеоизображений, которое может реализовывать способы, предложенные настоящим изобретением.
[11] На фиг. 2 показана схема, поясняющая способ разделения блока с использованием структуры QTBTTT.
[12] На фиг. 3A и 3B показаны схемы множества режимов интра-предсказания, включая режимы широкоугольного интра-предсказания.
[13] На Фиг. 4 показана схема, иллюстрирующая устройство декодирования видеоизображений, выполненное с возможностью реализовывать методы, предложенные настоящим изобретением.
[14] Фиг. 5 иллюстрирует методы дифференциального кодирования согласно по меньшей мере одному варианту осуществления настоящего раскрытия.
[15] На фиг. 6 показана блок-схема способа декодирования видео для блока, кодированного с интра-предсказанием, использующего метод явного дифференциального кодирования согласно по меньшей мере одному варианту осуществления настоящего раскрытия.
[16] На фиг. 7 показана блок-схема способа декодирования видео для блока, кодированного с интер-предсказанием, использующего метод явного дифференциального кодирования согласно по меньшей мере одному варианту осуществления настоящего раскрытия.
[17] На фиг. 8 показана блок-схема способа декодирования видео для блока, кодированного с интра-предсказанием, использующего метод неявного дифференциального кодирования согласно другому варианту осуществления настоящего раскрытия.
Перечень ссылочных обозначений
120, 440: модуль предсказания
130: вычитатель
140: модуль преобразования
170, 450: сумматор
180, 460: модуль фильтра
430: модуль обратного преобразования
Осуществление изобретения
[18] Далее вариант осуществления настоящего изобретения будет подробно описан со ссылкой на приложенные чертежи. В нижеследующем описании одинаковые номера позиций предпочтительно относятся к одинаковым элементам, несмотря на то, что эти элементы показаны на разных чертежах. Кроме того, в целях ясности и краткости изложения, в нижеследующем описании некоторых вариантов осуществления опущено подробное описание относящихся к ним известных компонентов и функций, в случае, когда они затрудняют понимание объекта настоящего изобретения.
[19] Варианты осуществления настоящего раскрытия относятся к кодированию и декодированию видео. Конкретнее, настоящее раскрытие предусматривает устройство и способ для декодирования видео с использованием метода дифференциального кодирования для остаточного сигнала для улучшения эффективности сжатия во время кодирования в режиме пропуска преобразования.
[20] На фиг. 1 показана схема, иллюстрирующая устройство кодирования видеоизображений, которое может реализовывать способы, предложенные настоящим изобретением. Далее устройство кодирования виде и субкомпоненты устройства будут описаны со ссылкой на фиг. 1.
[21] Устройство кодирования видеоизображений может быть конфигурировано так, что оно содержит модуль 110 разделения блока, модуль 120 предсказания, модуль 130 вычитания, модуль 140 преобразования, модуль 145 квантования, модуль 150 переупорядочивания, модуль 155 энтропийного кодирования, модуль 160 обратного квантования, модуль 165 обратного преобразования, сумматор 170, модуль 180 фильтра и память 190.
[22] Соответствующие компоненты устройства кодирования видеоизображений могут быть реализованы как аппаратное или программное обеспечение, или в виде комбинации аппаратного и программного обеспечения. Кроме того, функция каждого компонента может быть реализована программно, а функция программного обеспечения для каждого компонента может быть реализована с возможностью ее исполнения микропроцессором.
[23] Видеоизображение состоит из множества изображений. Каждое изображение разбивается на множество участков, и для каждого участка выполняется кодирование. Например, одно изображение разбивается на один или более фрагментов и/или секций. Здесь один или более фрагментов могут быть определены как группа фрагментов. Каждый фрагмент и/или секцию разделяют на одну или более единиц дерева кодирования (CTU). И каждую CTU разделяют на одну или более единиц кодирования (CU) древовидной структурой. Информация, применяемая к соответствующим CU, кодируется как синтаксис CU, а информация, обычно применяемая к CU, включенным в одну единицу CTU, кодируется как синтаксис CTU. Кроме того, информация, обычно применяемая ко всем блокам в одной секции, кодируется как синтаксис заголовка секции, а информация, применяемая ко всем блокам, составляющим одно изображение, кодируется в наборе параметров изображения (PPS) или заголовке изображения. Кроме того, информация, на которую обычно ссылается множество изображений, кодируется в наборе параметров последовательности (SPS). Кроме того, информация, на которую обычно ссылаются один или более наборов SPS, кодируется в наборе параметров видеоизображения (VPS). Таким же образом информация, обычно применяемая к одному фрагменту или группе фрагментов, может быть кодирована как синтаксис заголовка фрагмента или заголовка группы фрагментов.
[24] Модуль 110 разделения блоков определяет размер блока дерева кодирования (CTU). Информация о размере CTU (размер CTU) кодируется как синтаксис SPS или набора PPS и передается в устройство декодирования видео.
[25] Модуль 110 разделения изображения разделяет каждое изображение, составляющее видеоизображение, на множество единиц CTU, имеющих заранее определенный размер, а затем использует древовидную структуру для рекурсивного разделения единиц CTU. Концевой узел в древовидной структуре становится единицей кодирования CU, которая является базовой единицей кодирования.
[26] Древовидная структура для может быть деревом квадрантов (QuadTree (QT)), в котором верхний узел (или родительский узел) разделен на четыре нижних узла одинакового размера (или дочерние узлы), двоичным деревом (BinaryTree (BT)), в котором верхний узел разделен на два нижних узла, троичным деревом (TernaryTree (TT)), в котором верхний узел разделен на три нижних узла с соотношением размеров 1: 2: 1, или комбинацией двух или более из структуры QT, структуры BT и структуры TT. Например, может использоваться структура, включающая дерево квадрантов и двоичное дерево (QTBT), или структура, включающая дерево квадрантов и двоичное дерево троичное дерево (QTBTTT). Здесь BTTT может в совокупности называться деревом множественного типа (MTT).
[27] На фиг. 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 энтропийного кодирования и передается в устройство декодирования видео.
[28] В качестве альтернативы, перед кодированием первого флага (QT_split_flag), указывающего, разделен ли каждый узел на четыре узла нижнего уровня, может быть закодирован флаг разделения единицы CU (split_cu_flag), указывающий, разделен ли этот узел или нет. Когда значение флага разделения CU (split_cu_flag) указывает, что разделение не выполняется, блок соответствующего узла становится конечным узлом в структуре дерева разделения и обслуживает единицу кодирования (CU), которая является базовой единицей кодирования. Когда значение флага разделения единицы CU (split_cu_flag) указывает, что узел был разделен, устройство кодирования видео начинает кодирование с первого флага описанным выше способом.
[29] В качестве другого примера древовидной структуры, в которой используется структура QTBT, можно привести два типа разделения, включающие тип, в котором по горизонтали разделяют блок соответствующего узла на два блока одинакового размера (т.е. симметричное горизонтальное разделение), и тип, в котором его же разделяют по вертикали (т. е. симметричное вертикальное разделение). Кодируемым модулем 155 энтропийного кодирования и передаваемым в устройство декодирования видеоизображений является флаг разделения (split_flag), указывающий, разделен ли каждый узел структуры BT на блоки нижнего уровня, и информацию о типе разделения, указывающую тип его разделения. Между тем, может быть дополнительный тип, в котором блок соответствующего узла разбивается на два асимметрично сформированных блока. Асимметричная форма может включать в себя форму блока соответствующего узла, разбиваемого на два прямоугольных блока, имеющих соотношение размеров 1:3, или форму блока соответствующего узла, разбиваемого в диагональном направлении.
[30] Единица CU может иметь различные размеры в зависимости от структуры QTBT или QTBTTT разделения единицы CTU. В дальнейшем блок, соответствующий CU, который должен быть закодирован или декодирован (то есть концевой узел QTBTTT), называется «текущим блоком». При использовании разделения QTBTTT текущий блок может иметь форму не только квадрата, но и прямоугольника.
[31] Модуль 120 предсказания предсказывает текущий блок, чтобы сгенерировать блок предсказания. Модуль 120 предсказания включает в себя модуль 122 интра-предсказания и модуль 124 интер-предсказания.
[32] В общем, каждый из текущих блоков изображения может кодироваться с предсказанием. Предсказание текущего блока обычно может выполняться с использованием метода интра-предсказания или метода интер-предсказания, при этом метод интра-предсказания использует данные из изображения, содержащего текущий блок, а метод интер-предсказания использует данные из изображения, закодированного до изображения, содержащего текущий блок. Интер-предсказание включает в себя как однонаправленное, так и двунаправленное предсказание.
[33] Модуль 122 интра-предсказания предсказывает пиксели в текущем блоке, используя соседние пиксели (опорные пиксели), расположенные вокруг текущего блока в текущем изображении. Существует множество режимов интра-предсказания согласно направлениям предсказания. Например, как показано на фиг. 3A, несколько режимов интра-предсказания могут включать в себя 2 ненаправленных режима, включая планарный режим и режим DC, а также 65 направленных режимов. Соответствующие режимы предсказания обеспечивают различные соответствующие определения соседних пикселей и формул вычисления, которые должны использоваться.
[34] Для эффективного направленного предсказания блока тока прямоугольной формы могут использоваться дополнительные направленные режимы, как показано на фиг. 3B пунктирными стрелками режимов интра-предсказания (под номерами 67-80 и номерами от -1 до -14. Они могут называться «режимами широкоугольного интра-предсказания». Стрелки на фиг. 3B указывают соответствующие опорные отсчеты, используемые для предсказания, а не направления предсказания. Направление предсказания противоположно направлению, указанному стрелкой. Режим широкоугольного интра-предсказания - это режим, в котором предсказание выполняется в направлении, противоположном определенному направленному режиму без дополнительной передачи битов, когда текущий блок имеет прямоугольную форму. В этом случае из режимов широкоугольного интра-предсказания некоторые режимы широкоугольного интра-предсказания, доступные для использования в текущем блоке, могут определяться отношением ширины к высоте прямоугольного текущего блока. Например, режимы широкоугольного интра-предсказания, которые имеют угол меньше 45 градусов (режимы интра-предсказания под номерами 67-80), могут использоваться, когда текущий блок имеет прямоугольную форму с высотой меньше ширины. Режимы широкоугольного интра-предсказания, имеющие угол -135 градусов или больше (режимы интра-предсказания под номерами от -1 до -14) могут использоваться, когда текущий блок имеет прямоугольную форму с высотой больше ширины.
[35] Модуль 122 интра-предсказания может определять режим интра-предсказания, который будет использоваться для кодирования текущего блока. В некоторых примерах модуль 122 интра-предсказания может кодировать текущий блок с использованием нескольких режимов интра-предсказания и выбирать для использования подходящий режим интра-предсказания из проверенных режимов. Например, модуль 122 интра-предсказания может вычислять значения скоростного искажения посредством анализа скорости-искажения нескольких протестированных режимов интра-предсказания и выбирать режим интра-предсказания, который имеет лучшие характеристики скорости-искажения среди протестированных режимов.
[36] Модуль 122 интра-предсказания выбирает один режим интра-предсказания из множества режимов интра-предсказания и предсказывает текущий блок, используя по меньшей мере один соседний пиксель (опорный пиксель), определенный согласно выбранному режиму интра-предсказания и формуле вычисления. Информация о выбранном режиме интра-предсказания кодируется модулем 155 энтропийного кодирования и передается в устройство декодирования видеоизображений.
[37] Модуль 124 интер-предсказания генерирует блок предсказания для текущего блока посредством процесса компенсации движения. Модуль 124 интер-предсказания ищет блок, наиболее похожий на текущий блок в опорном изображении, которое был кодировано и декодировано раньше, чем текущее изображение, и генерирует блок предсказания текущего блока, используя найденный блок. Затем модуль 124 интер-предсказания генерирует вектор движения, соответствующий смещению между текущим блоком в текущем изображении и блоком предсказания в опорном изображении. В целом, оценку движения выполняют для компонента яркости, а вектор движения, вычисленный на основе компонента яркости, используется как для компонента яркости, так и для компонента цветности. Информация о движении, включающая в себя информацию об опорном изображении и информацию о векторе движения, используемую для предсказания текущего блока, кодируется модулем 155 энтропийного кодирования и передается в устройство декодирования видеоизображений.
[38] Модуль 130 вычитания генерирует остаточный блок путем вычитания из текущего блока блока предсказания, сгенерированного модулем 122 интра-предсказания или содулем 124 интер-предсказания.
[39] Модуль 140 преобразования преобразует остаточный сигнал в остаточном блоке, имеющем значения пикселей в пространственной области, в коэффициенты преобразования в частотной области. Модуль 140 преобразования может преобразовывать остаточные сигналы в остаточном блоке, используя полный размер остаточного блока в качестве блока преобразования, или разделять остаточный блок на множество субблоков и использовать субблоки в качестве блоков преобразования для выполнения преобразования. В качестве альтернативы, модуль 140 преобразования может разделить остаточный блок на два субблока, которые представляют собой область преобразования и область без преобразования, и использовать только субблок области преобразования в качестве блока преобразования для преобразования остаточных сигналов. Здесь субблок области преобразования может быть одним из двух прямоугольных блоков, имеющих соотношение размеров 1: 1 на основе горизонтальной оси (или вертикальной оси). В этом случае флаг (cu_sbt_flag), указывающий, что преобразован только один субблок, информация о направлении (по вертикали/горизонтали) (cu_sbt_horizontal_flag) и/или информация о положении (cu_sbt_pos_flag) кодируются модулем 155 энтропийного кодирования и передаются в устройство декодирования видео. Кроме того, размер субблока области преобразования может иметь соотношение размеров 1: 3 на основе горизонтальной оси (или вертикальной оси). В этом случае флаг (cu_sbt_quad_flag), определяющий соответствующее разделение, дополнительно кодируется энтропийным кодером 155 и передается в устройство декодирования видео.
[40] Между тем, модуль 140 преобразования может по отдельности преобразовывать остаточный блок в горизонтальных направлениях и вертикальных направлениях. Для операции преобразования могут использоваться различные типы функций преобразования или матриц преобразования. Например, пары функций преобразования для горизонтального преобразования и вертикального преобразования могут быть определены как набор множественных преобразований (MTS). Модуль 140 преобразования может выбрать одну пару функций преобразования, имеющих наибольшую эффективность преобразования в MTS, и преобразовать остаточный блок в горизонтальном и вертикальном направлениях соответственно. Информация (mts_idx) о паре функций преобразования, выбранных в MTS, кодируется энтропийным кодером 155 и передается в устройство декодирования видео. Размер блока преобразования, к которому применяется MTS, может быть ограничен 32 × 32 и меньше.
[41] Модуль 145 квантования квантует коэффициенты преобразования, выведенные из модуля 140 преобразования, и выводит квантованные коэффициенты преобразования в модуль 155 энтропийного кодирования.
[42] Модуль 150 переупорядочения может выполнять переупорядочение значений коэффициентов с помощью квантованных коэффициентов преобразования.
[43] Модуль 150 переупорядочивания может использовать сканирование коэффициентов для преобразования двумерной матрицы коэффициентов в одномерную последовательность коэффициентов. Например, модуль 150 переупорядочивания может сканировать коэффициенты DC до коэффициентов в высокочастотной области посредством зигзагообразного сканирования или диагонального сканирования для вывода одномерной последовательности коэффициентов. В зависимости от размера блока преобразования и режима интра-предсказания используемое зигзагообразное сканирование может быть заменено вертикальным сканированием для сканирования двумерного массива коэффициентов в направлении столбца и горизонтальным сканированием для сканирования коэффициентов в форму двумерного блока в направлении ряда. Другими словами, способ сканирования, который должен использоваться, может быть выбран из зигзагообразного сканирования, диагонального сканирования, вертикального сканирования и горизонтального сканирования в соответствии с размером блока преобразования и режимом интра-предсказания.
[44] Модуль 155 энтропийного кодирования кодирует последовательность одномерных квантованных коэффициентов преобразования, выводимых из модуля 150 переупорядочения, с использованием различных методов кодирования, таких как контекстно-зависимый адаптивный двоичный арифметический код (CABAC), экспоненциальный алгоритм Голомба и т.п. кодирования для генерации битового потока.
[45] Кроме того, модуль 155 энтропийного кодирования кодирует информацию о разделении блока, такую как размер единицы CTU, флаг разделения единицы CU, флаг разделения QT, тип разделения MTT и направление разделения MTT, позволяя устройству декодирования видеоизображений разделить блок таким же образом, как и устройство кодирования видеоизображений. Кроме того, модуль 155 энтропийного кодирования кодирует информацию о типе предсказания, указывающую, закодирован ли текущий блок посредством интра-предсказания или интер-предсказания, и кодирует, в зависимости от типа предсказания, информацию интра-предсказания (то есть информацию о режиме интра-предсказания) или информацию интер-предсказания (т. е. информацию об опорных изображениях и векторах движения).
[46] Модуль 160 обратного квантования выполняет обратное квантование квантованных коэффициентов преобразования, выводимых из модуля 145 квантования, для генерирования коэффициентов преобразования. Модуль 165 обратного преобразования преобразует коэффициенты преобразования, выданные из модуля 160 обратного квантования, из частотной области в пространственную область, чтобы восстановить остаточный блок.
[47] Сумматор 170 добавляет восстановленный остаточный блок и блок предсказания, сгенерированный модулем 120 предсказания, чтобы восстановить текущий блок. Пиксели в восстановленном текущем блоке используются в качестве опорных пикселей при интра-предсказании следующего блока.
[48] Модуль 180 фильтра выполняет фильтрацию восстановленных пикселей для уменьшения артефактов блочности, артефактов звона, артефактов размытия и т.д., генерируемых вследствие предсказания на основе блоков и преобразования/квантования. Модуль 180 фильтра может включать в себя фильтр 182 удаления блочности и фильтр 184 адаптивного смещения отсчетов (SAO).
[49] Фильтр 180 удаления блочности фильтрует границу между восстановленными блоками, чтобы удалить артефакт блочности, вызванный поблочным кодированием/декодированием, а фильтр 184 SAO выполняет дополнительную фильтрацию видео, отфильтрованного с удалением блочности. Фильтр 184 SAO - это фильтр, используемый для компенсации разницы между восстановленным пикселем и исходным пикселем, вызванной кодированием с потерями.
[50] Восстановленный блок фильтруется через фильтр 182 удаления блочности и фильтр 184 SAO и сохраняется в памяти 190. Когда все блоки в одном изображении восстановлены, восстановленное изображение может использоваться в качестве опорного изображения для интер-предсказания блоков в изображении, подлежащим последующему кодированию.
[51] На фиг. 4 показана функциональная схема, иллюстрирующая устройство декодирования видеоизображений, выполненное с возможностью реализовывать методы согласно настоящему раскрытию. В дальнейшем устройство декодирования видео и компоненты устройства будут описаны со ссылкой на фиг. 4.
[52] Устройство декодирования видеоизображений может быть конфигурировано так, что оно включает модуль 410 энтропийного декодирования, модуль 415 переупорядочивания, модуль 420 обратного квантования, модуль 430 обратного преобразования, модуль 440 предсказания, сумматор 450, модуль 460 фильтра и память 470.
[53] Как и в устройстве кодирования видеоизображений с фиг. 1, соответствующие компоненты устройства декодирования видеоизображений могут быть реализованы как аппаратные средства или программное обеспечение, или как комбинация аппаратных средств и программного обеспечения. Кроме того, функция каждого компонента может быть реализована программно, а функция программного обеспечения для каждого компонента может быть реализована с возможностью ее исполнения микропроцессором.
[54] Модуль 410 энтропийного декодирования декодирует битовый поток, сгенерированный устройством кодирования видео, и извлекает информацию о разделении блоков, чтобы определить текущий блок, который должен быть декодирован, и извлекает информацию предсказания и информацию остаточного сигнала и тому подобное, необходимое для восстановления текущего блока.
[55] Модуль 410 энтропийного декодирования извлекает информацию о размере единицы CTU из набора параметров последовательности (SPS) или набора параметров изображения (PPS), определяет размер единицы CTU и разделяет изображение на единицы CTU заданного размера. Затем модуль 410 энтропийного декодирования определяет CTU как наивысший уровень, то есть корневой узел древовидной структуры, и извлекает информацию разделения на CTU и тем самым разделяет CTU с использованием древовидной структуры.
[56] Например, при разделении единицы CTU с использованием структуры QTBTTT сначала извлекается первый флаг (QT_split_flag), связанный с разделением QT, и каждый узел разделяется на четыре узла нижнего уровня. Для узла, соответствующего концевому узлу QT, модуль 410 энтропийного декодирования извлекает второй флаг (MTT_split_flag), связанный с разделением MTT, и информацию о направлении разделения (вертикальное/горизонтальное) и/или типе разделения (двоичное/троичное), чтобы разделить соответствующий концевой узел на структуру MTT. Это позволяет рекурсивно разбивать соответствующие узлы ниже концевого узла QT на структуру BT или TT.
[57] В качестве другого примера, при разделении 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 и информацию о направлении разделения.
[58] Между тем, когда модуль 410 энтропийного декодирования определяет текущий блок, который должен быть декодирован посредством разделения древовидной структуры, он извлекает информацию о типе предсказания, указывающую, был ли текущий блок предсказан интра-предсказанием или интер-предсказанием. Когда информация о типе предсказания указывает на интра-предсказание, модуль 410 энтропийного декодирования извлекает элемент синтаксиса для информации интра-предсказания (режим интра-предсказания) текущего блока. Когда информация о типе предсказания указывает на интер-предсказание, модуль 410 энтропийного декодирования извлекает элемент синтаксиса для информации интер-предсказания, то есть информацию, указывающую вектор движения и опорное изображение, на которое ссылается вектор движения.
[59] Кроме того, модуль 410 энтропийного декодирования извлекает информацию о квантованных коэффициентах преобразования текущего блока в качестве информации об остаточном сигнале.
[60] Модуль 415 переупорядочения изменяет в обратном порядке сканирования коэффициентов, выполняемого устройством кодирования видео, последовательность одномерных квантованных коэффициентов преобразования, энтропийно декодированных модулем 410 энтропийного декодирования, в двумерный массив коэффициентов. (т.е. блок).
[61] Модуль 420 обратного квантования выполняет обратное квантование квантованных коэффициентов преобразования. Модуль 430 обратного преобразования выполняет обратное преобразование коэффициентов обратного квантованного преобразования из частотной области в пространственную для восстановления остаточных сигналов и, таким образом, генерирования восстановленного остаточного блока текущего блока.
[62] Кроме того, когда модуль 430 обратного преобразования выполняет обратное преобразование только частичной области (субблока) блока преобразования, он извлекает флаг (cu_sbt_flag), указывающий, что был преобразован только субблок блока преобразования, направленность субблока (вертикальная / horizontal) информации (cu_sbt_horizontal_flag) и / или информации о положении субблока (cu_sbt_pos_flag) и обратно преобразует коэффициенты преобразования субблока из частотной области в пространственную область для восстановления остаточных сигналов. В то же время модуль 430 обратного преобразования заполняет оставшуюся область, которая не подвергается обратному преобразованию, значением «0» в качестве остаточных сигналов, и тем самым генерирует последний остаточный блок для текущего блока.
[63] Кроме того, когда применяется MTS, модуль 430 обратного преобразования использует информацию MTS (mts_idx), передаваемую из устройства кодирования видео, для определения функций преобразования или матриц преобразования, которые должны применяться в горизонтальном и вертикальном направлениях, соответственно, и использует определенную функцию преобразования для выполнения обратного преобразования коэффициентов преобразования в модуль преобразования в горизонтальном и вертикальном направлениях.
[64] Модуль 440 предсказания может включать в себя модуль 442 интра-предсказания и модуль 444 интер-предсказания. Модуль 442 интра-предсказания активируется, когда тип предсказания текущего блока является интра-предсказанием, и модуль 444 интер-предсказания активируется, когда тип предсказания текущего блока является интер-предсказанием.
[65] Модуль 442 интра-предсказания определяет, среди множества режимов интра-предсказания, режим интра-предсказания текущего блока из элемента синтаксиса для режима интра-предсказания, извлеченного модулем 410 энтропийного декодирования, и в соответствии с определенным режимом интра-предсказания он предсказывает текущий блок, используя соседние опорные пиксели текущего блока.
[66] Модуль 444 интер-предсказания использует элемент синтаксиса для режима интра-предсказания, извлеченный модулем 410 энтропийного декодирования, для определения вектора движения текущего блока и опорного изображения, на которое ссылается вектор движения, и он использует вектор движения и опорное изображение для предсказания текущего блока.
[67] Сумматор 450 добавляет остаточный блок, выходящий из модуля обратного преобразования, и модуль предсказания, выданный из модуля интер-предсказания или модуля интра-предсказания, для восстановления текущего блока. Пиксели в восстановленном текущем блоке используются в качестве опорных пикселей при интра-предсказании подлежащего декодированию следующего блока.
[68] Модуль 460 фильтра может включать в себя фильтр 462 удаления блочности и фильтр 464 SAO. Фильтр 462 удаления блочности выполняет фильтрацию с удалением блочности на границе между реконструированными блоками, чтобы удалить артефакт блочности, вызванный поблочным декодированием. Фильтр 464 SAO выполняет дополнительную фильтрацию на восстановленном блоке после фильтрации с удалением блочности, чтобы компенсировать разницу между восстановленным пикселем и исходным пикселем, вызванную кодированием с потерями. Восстановленный блок фильтруется через фильтр 462 удаления блочности и фильтр 464 SAO и сохраняется в памяти 470. Когда все блоки в одном изображении восстановлены, восстановленное изображение может использоваться в качестве опорного изображения для интер-предсказания блоков в подлежащем последующему кодированию изображении.
[69] Как описано выше, устройство кодирования видео преобразует остаточные сигналы в коэффициенты преобразования в частотной области, кодирует и сигнализирует коэффициенты преобразования устройству декодирования видео. Устройство декодирования видео обратно преобразовывает коэффициенты преобразования в остаточные сигналы в пространственной области. Однако, в зависимости от характеристик видео или остаточных сигналов, большинство коэффициентов преобразования, сгенерированных в результате преобразования, возможно, находятся в высокочастотной области. В этом случае коэффициенты преобразования кодирования частотной области могут иметь меньшую эффективность кодирования, чем кодирование остаточных сигналов пространственной области.
[70] Режим пропуска преобразования (TS) - это метод прямого энтропийного кодирования остаточных сигналов без их преобразования, и, как правило, он не имеет превосходных характеристик кодирования по сравнению с дискретным косинусным преобразованием (DCT). Однако, поскольку содержимое экрана содержит множество остаточных компонентов в высокочастотном диапазоне, которые возникают на границе графических элементов с высоким цветовым контрастом, режим пропуска преобразования полезен для видео с кодированием содержимого экрана (SCC) или сходными характеристиками.
[71] Когда применяется режим пропуска преобразования, используется процесс остаточного кодирования с пропуском преобразования для квантования и кодирования предсказанных остаточных сигналов. Процесс кодирования с пропуском преобразования - это метод, в котором процесс кодирования коэффициентов преобразования модифицируется, чтобы он подходил для SCC.
[72] Информация о режиме пропуска преобразования (transform_skip_flag [x0] [y0] [cIdx], в дальнейшем transform_skip_flag) может доставляться в единицах блоков преобразования. Здесь (x0, y0) - это верхняя левая позиция блока преобразования, cIdx - индикатор для цветовых элементов, где 0 обозначает яркость, 1 обозначает Cb цветности и 2 обозначает Cr. Когда режим пропуска преобразования «transform_skip_flag» равен 1, преобразование пропускается, а когда он равен 0, выполнять преобразование или пропускать его, может быть определено в соответствии с другим элементом синтаксиса.
[73] Между тем, размер блока преобразования, к которому может применяться режим пропуска преобразования, может быть ограничен до 32 × 32. В этом случае кодирование transform_skip_flag может быть опущено для блока преобразования, превышающего размер блока преобразования, к которому может быть применен режим пропуска преобразования, и устройство декодирования видео не применяет режим пропуска преобразования к блоку преобразования, когда он больше 32 × 32. В качестве альтернативы, информация о размере блока преобразования, к которому может применяться режим пропуска преобразования, может быть закодирована как синтаксис высокого уровня, например, элемент синтаксиса в SPS или PPS, и сигнализирована в устройство декодирования видео. Для блока преобразования, превышающего размер, определенный синтаксисом высокого уровня, кодирование transform_skip_flag опускается. Устройство декодирования видео декодирует информацию о размере блока преобразования, к которому может быть применен режим пропуска преобразования, и оно не декодирует transform_skip_flag и не применяет режим пропуска преобразования, когда текущий блок преобразования, который должен быть преобразован, больше размера, указанного в информации о размере.
[74] Информация о MTS и режиме пропуска преобразования может быть объединена, как показано в таблице 1, и выражена в виде единого синтаксиса.
[75] Таблица 1
[76] Как показано в Таблице 1, MTS и режим пропуска преобразования могут быть установлены согласно tu_mts_idx. Здесь для диапазона от 0 до 5 tu_mts_idx выражается как усеченные унарные коды.
[77] Нижеследующее описывает метод дифференциального кодирования, обеспечивающий улучшение производительности сжатия в режиме пропуска преобразования с помощью устройства кодирования видео и устройства декодирования видео.
[78] Когда единица преобразования (TU) кодируется в режиме пропуска преобразования со сжатием с потерями, метод дифференциального кодирования может применяться к остаточному сигналу после интра-предсказания или интер-предсказания. В режиме пропуска преобразования метод дифференциального кодирования может уменьшить общее количество энергии остаточного компонента для энтропийного кодирования и, таким образом, обеспечить дополнительно улучшенную производительность сжатия.
[79] Фиг. 5 иллюстрирует методы дифференциального кодирования согласно по меньшей мере одному варианту осуществления настоящего раскрытия.
[80] В методе горизонтального дифференциального кодирования, как показано на фиг. 5 на (A), текущий отсчет предсказывается посредством использования, среди отсчетов, кодированных устройством кодирования видео, остаточного компонента самого ближнего левого столбца в горизонтальном направлении.После применения метода горизонтального дифференциального кодирования к остаточным сигналам блока размером N × N (N - натуральное число), результирующие остаточные сигналы (0≤i <N, i - натуральное число) могут быть выражены Уравнением 1. В частности, остаточный сигнал в позиции (i, j) модифицируется посредством вычитания из него остаточного сигнала в позиции (i, j-1). Здесь (i, j) обозначает i-й ряд и j-й столбец.
[81]
[82] Здесь Q (r) - восстановленный остаточный сигнал, включающий шум квантования.
[83] Как показано в Уравнении 1, при горизонтальном дифференциальном кодировании устройство кодирования энтропийно кодирует, а затем передает остаточные сигналы в устройство декодирования и резервирует их после восстановления для предсказывания остаточных сигналов следующего столбца. Процесс горизонтального предсказания может выполняться последовательно для всех столбцов блока.
[84] В методе горизонтального дифференциального кодирования, как показано на фиг. 5 на (В), текущий отсчет предсказывается посредством использования, среди отсчетов, кодированных устройством кодирования видео, остаточного компонента самого ближнего левого столбца в горизонтальном направлении. После применения метода вертикального дифференциального кодирования к остаточным сигналам блока N × N, результирующие остаточные сигналы (0≤i<N, i -натуральное число) могут быть выражены Уравнением 2. В частности, остаточный сигнал в позиции (i, j) модифицируется посредством вычитания из него остаточного сигнала в позиции (i-1, j). Здесь (i, j) также обозначает i-й ряд и j-й столбец.
[85]
[86] Как показано в Уравнении 2, при вертикальном дифференциальном кодировании сторона устройства кодирования энтропийно кодирует, а затем передает остаточные сигналы на сторону устройства декодирования и резервирует их после восстановления для предсказывания остаточных сигналов следующего ряда. Процесс вертикального предсказания может выполняться последовательно для всех рядов блока.
[87] Когда применяется метод горизонтального дифференциального кодирования, устройство декодирования видео восстанавливает остаточные сигналы, как показано в Уравнении 3. Другими словами, остаточные сигналы в остаточном блоке, восстановленном устройством декодирования видео из битового потока, модифицируются в соответствии с методом горизонтального дифференциального кодирования. Целевой остаточный сигнал, который должен быть изменен в восстановленном остаточном блоке, модифицируется таким образом, что левые остаточные сигналы, расположенные в том же ряду слева от целевого остаточного сигнала, добавляются к целевому остаточному сигналу.
[88]
[89] Устройство декодирования видео может последовательно добавлять восстановленные остаточные сигналы и, таким образом, восстанавливать остаточные сигналы j-го столбца. Процесс горизонтального восстановления может выполняться последовательно для всех столбцов блока.
[90] Когда применяется метод вертикального дифференциального кодирования, устройство декодирования видео восстанавливает остаточные сигналы, как показано в Уравнении 4. Остаточные сигналы в остаточном блоке, восстановленном устройством декодирования видео из битового потока, модифицируются в соответствии с методом вертикального дифференциального кодирования. Подлежащий модификации целевой остаточный сигнал в восстановленном остаточном блоке модифицируется таким образом, что верхние остаточные сигналы, расположенные в том же столбце над целевым остаточным сигналом, добавляются к целевому остаточному сигналу.
[91]
[92] Устройство декодирования видео может последовательно добавлять восстановленные остаточные сигналы и, таким образом, восстанавливать остаточные сигналы i-го ряда. Процесс вертикального восстановления может выполняться последовательно для всех рядов блока.
[93] Вышеприведенное описание иллюстрирует дифференциальное кодирование в горизонтальном и вертикальном направлениях, хотя направление дифференциального кодирования не обязательно ограничивается только горизонтальным и вертикальным направлениями. Направление дифференциального кодирования может включать в себя горизонтальное и вертикальное направления и может дополнительно включать в себя другие направления, например диагональное направление на 45 градусов и диагональное направление на 135 градусов. Таким образом, устройство декодирования видео может добавлять к целевому остаточному сигналу для модифицирования в остаточном блоке, восстановленном из битового потока, один или более остаточных сигналов в остаточном блоке, которые расположены в направлении дифференциального кодирования от целевого остаточного сигнала, и тем самым модифицирует целевой остаточный сигнал.
[94] В случае неявного дифференциального кодирования устройство декодирования видео может выводить информацию о направлении предсказания для дифференциального кодирования из информации интра-предсказания, декодированной заранее. Например, когда текущий блок использует интра-предсказание, а режим интра-предсказания является направленным режимом №18, к остаточным сигналам может применяться горизонтальное дифференциальное кодирование. Когда текущий блок использует интра-предсказание, а режим интра-предсказания является направленным режимом № 50, к остаточным сигналам может применяться вертикальное дифференциальное кодирование.
[95] В другом варианте осуществления настоящего раскрытия, когда текущий блок использует интра-предсказание и разница между режимом интра-предсказания и направленным режимом № 18 меньше, чем предварительно установленный пороговый диапазон, как показано в Уравнении 5, к остаточным сигналам может применяться горизонтальное дифференциальное кодирование.
[96]
[97] Здесь predModeIntra - это режим интра-предсказания текущего блока, а | · | указывает абсолютное значение.
[98] Кроме того, когда текущий блок использует интра-предсказание и разница между режимом интра-предсказания и направленным режимом № 50 меньше, чем предварительно установленный пороговый диапазон, как показано в Уравнении 6, к остаточным сигналам может применяться вертикальное дифференциальное кодирование.
[99]
[100] Между тем, в случае явного дифференциального кодирования устройство декодирования видео может определять информацию о режиме предсказания дифференциального кодирования путем декодирования информации из битового потока.
[101] Когда режим пропуска преобразования, то есть transform_skip_flag, имеет значение «истина», устройство декодирования видео принимает информацию дифференциального кодирования diff_cod_idx, как показано в Таблице 2, и определяет, применять ли метод дифференциального кодирования к текущему блоку.
[102] Таблица 2
[103] В таблице 2 DIFF_COD_OFF - это режим, в котором дополнительное дифференциальное кодирование не выполняется после пропуска преобразования, а DIFF_COD_VER и DIFF_COD_HOR - это режимы предсказания для предсказания в вертикальном или горизонтальном направлении. Индексы режимов предсказания в вертикальном или горизонтальном направлении могут быть взаимозаменяемыми. Как показано в Таблице 2, когда diff_cod_idx не равен 0, синтаксис преобразуется в двоичную форму в 2 бита. Первый бит может быть выражен как 1, а второй бит может быть выражен как 0 или 1 в зависимости от направления. Устройство декодирования видео распознает по первому биту, что применяется дифференциальное кодирование, и идентифицирует направление дифференциального кодирования по второму биту. С другой стороны, когда diff_cod_idx равен 0 (DIFF_COD_OFF), синтаксис преобразуется в двоичный вид в 0. В этом случае не требуется второй бит для указания направления дифференциального кодирования. В приведенном выше примере применение или неприменение дифференциального кодирования и направление дифференциального кодирования выражены в виде одного синтаксиса. Однако из результатов преобразования в двоичную форму, показанных в таблице 2, очевидно, что применение или неприменение дифференциального кодирования и направление дифференциального кодирования могут быть закодированы как отдельные синтаксисы. Например, могут использоваться два синтаксиса с 1-битным флагом, указывающим применение или неприменение дифференциального кодирования, и 1-битным флагом, указывающим направление дифференциального кодирования.
[104] В другом варианте осуществления настоящего раскрытия информация режима пропуска преобразования transform_skip_flag и информация дифференциального кодирования diff_cod_idx может быть объединена и выражена, как показано в Таблице 3.
[105] Таблица 3
[106] Здесь «transform_skip_idx = 0» выполняет ту же операцию, что и «transform_skip_flag = 1». Кроме того, «transform_skip_idx = -1» работает так же, как «transform_skip_flag = 0».
[107] В другом варианте осуществления настоящего раскрытия информация режима пропуска преобразования transform_skip_flag, информация дифференциального кодирования diff_cod_idx и информация MTS tu_mts_idx может быть объединена и выражена, как показано в Таблице 4.
[108] Таблица 4
[109] Явное дифференциальное кодирование согласно настоящему раскрытию может применяться как к режимам интра-предсказания, так и к режимам интер-предсказания.
[110] Когда явное дифференциальное кодирование применяется к режиму интра-предсказания, информация о режиме интра-предсказания может быть опущена, и может быть закодирован только синтаксис, связанный с дифференциальным кодированием. Режим интра-предсказания текущего блока устанавливается равным направлению дифференциального кодирования. Как описано выше, при использовании 67 режимов интра-предсказания требуется большое количество битов для передачи информации о режиме интра-предсказания, применяемого к текущему блоку. Применение явного дифференциального кодирования в интра-предсказании может уменьшить количество битов, требуемых для кодирования информации о режиме интра-предсказания, путем определения направления режима интра-предсказания из направления дифференциального кодирования. Другими словами, путем вывода режима интра-предсказания из синтаксиса в отношении направления предсказания дифференциального кодирования количество передаваемых кодов уменьшается.
[111] В качестве альтернативы, при применении дифференциального кодирования режим интра-предсказания текущего блока может быть ограничен, чтобы разрешить использование режимов интра-предсказания исключительно в пределах порогового диапазона от направления дифференциального кодирования. Например, при применении горизонтального дифференциального кодирования только режимы интра-предсказания, удовлетворяющие Уравнению 5, допустимы в качестве режимов интра-предсказания текущего блока среди всех режимов интра-предсказания. При применении вертикального дифференциального кодирования только режимы интра-предсказания, удовлетворяющие Уравнению 6, допустимы в качестве режимов интра-предсказания текущего блока среди всех режимов интра-предсказания. Соответственно, поскольку выбор режимов интра-предсказания текущего блока выполняется из числа некоторых режимов интра-предсказания, аналогичных направлению дифференциального кодирования, а не всех режимов интра-предсказания, количество битов, необходимых для кодирования режима интра-предсказания текущего блока можно уменьшить. Устройство декодирования видео может генерировать набор кандидатов, составленный из режимов интра-предсказания в пределах порогового диапазона от направления дифференциального кодирования, и может задать, в качестве режима интра-предсказания текущего блока, кандидата, который указан информацией о режиме интра-предсказания, принятой от устройства кодирования видео, среди набора кандидатов.
[112] Устройство кодирования видео и устройство декодирования видео могут не выполнять фильтрацию с удалением блочности на границе между текущим блоком и смежным блоком, когда метод дифференциального кодирования применяется как к остаточному блоку текущего блока, так и к остаточному блоку смежного блока.
[113] На фиг. 6 показана блок-схема способа декодирования видео для декодирования блока, кодированного с интра-предсказанием, использующего метод явного дифференциального кодирования согласно по меньшей мере одному варианту осуществления настоящего раскрытия.
[114] Устройство декодирования видео декодирует из битового потока информацию о дифференциальном кодировании, применяемом к остаточному блоку текущего блока (S610).
[115] Информация о дифференциальном кодировании может включать в себя флаг, указывающий, применяется ли дифференциальное кодирование, и флаг для указания направления дифференциального кодирования. Устройство декодирования видео может декодировать информацию о дифференциальном кодировании, применяемом к остаточному блоку текущего блока. Информация дифференциального кодирования может быть передана в устройство декодирования видео как элемент синтаксиса diff_cod_idx, как показано в таблице 2.
[116] Устройство декодирования видео восстанавливает информацию об остаточном сигнале из битового потока и генерирует остаточный блок, используя информацию об остаточном сигнале и информацию дифференциального кодирования (S620).
[117] Устройство декодирования видео сначала восстанавливает информацию остаточного сигнала.
[118] Например, устройство декодирования видео восстанавливает флаг (tu_cbf_luma), указывающий, существует ли остаточный сигнал относительно текущего блока. Когда присутствует остаточный сигнал (tu_cbf_luma истинно), остаточные сигналы для текущего блока восстанавливаются из битового потока. С другой стороны, когда tu_cbf_luma ложно, все остаточные сигналы устанавливаются на 0.
[119] Между тем, когда присутствует остаточный сигнал (tu_cbf_luma истинно), transform_skip_flag, указывающий, пропускается ли преобразование, может быть декодирован. Здесь, когда transform_skip_flag не был передан, выводится, что transform_skip_flag имеет то же значение, что и флаг, указывающий на применение или неприменение дифференциального кодирования. Другими словами, как описано выше, поскольку метод дифференциального кодирования применяется в режиме пропуска преобразования, transform_skip_flag не включается в битовый поток. Когда применяется дифференциальное кодирование, для параметра transform_skip_flag может быть автоматически установлено значение «истина» («1»), так что преобразование может быть пропущено.
[120] Когда метод явного дифференциального кодирования применяется, устройство декодирования видео может использовать декодированную информацию о направлении для генерирования остаточного блока из остаточных сигналов, восстановленных из битового потока. Уравнение 3 используется в случае горизонтального дифференциального кодирования, а Уравнение 4 используется в случае вертикального дифференциального кодирования.
[121] Устройство декодирования видео выполняет обратное квантование остаточного блока (S630).
[122] Устройство декодирования видео генерирует блок предсказания текущего блока посредством интра-предсказания (S640). Устройство декодирования видео может генерировать блок предсказания текущего блока с использованием подэтапов S642 и S644.
[123] Устройство декодирования видео устанавливает режим интра-предсказания текущего блока с использованием информации дифференциального кодирования (S642).
[124] Когда метод дифференциального кодирования применяется, устройство декодирования видео может устанавливать режим интра-предсказания, используя информацию о направлении из декодированной информации дифференциального кодирования. В частности, в случае горизонтального дифференциального кодирования режим интра-предсказания устанавливается как режим горизонтального интра-предсказания (например, INTRA_ANGULAR18 на фиг. 3A и 3B), а в случае вертикального дифференциального кодирования режим интра-предсказания устанавливается как режим вертикального интра-предсказания (например, INTRA_ANGULAR50 на фиг. 3A и 3B).
[125] Устройство декодирования видео предсказывает текущий блок, используя ранее восстановленные пиксели вокруг текущего блока, в соответствии с режимом интра-предсказания (S644).
[126] Устройство декодирования видео восстанавливает текущий блок, добавляя блок предсказания к обратно квантованному остаточному блоку (S650).
[127] Поскольку метод дифференциального кодирования применяется в режиме пропуска преобразования, устройство декодирования видео пропускает обратное преобразование обратно квантованного остаточного блока. Соответственно, устройство декодирования видео может восстанавливать текущий блок, добавляя обратно квантованный остаточный блок и блок интра-предсказания текущего блока. В случае интра-предсказания следующего блока, который должен быть декодирован, пиксели в восстановленном текущем блоке могут использоваться в качестве опорных пикселей.
[128] Чтобы удалить артефакт блочности, вызванный поблочным декодированием, устройство декодирования видео выполняет фильтрацию с удалением блочности на границе между смежным блоком, соседним с восстановленным текущим блоком, и восстановленным текущим блоком. Однако, когда и остаточный блок смежного блока, и остаточный блок текущего блока были дифференциально кодированы, устройство декодирования видео может пропустить фильтрацию с удалением блочности на границе между смежным блоком и текущим блоком.
[129] На фиг. 7 показана блок-схема способа декодирования видео для декодирования блока, кодированного с интер-предсказанием, использующего метод явного дифференциального кодирования согласно по меньшей мере одному варианту осуществления настоящего раскрытия.
[130] Устройство декодирования видео декодирует из битового потока информацию о дифференциальном кодировании, применяемом к остаточному блоку текущего блока (S710).
[131] Информация дифференциального кодирования может включать в себя флаг для указания применения или неприменения дифференциального кодирования и флаг для указания направления дифференциального кодирования. Устройство декодирования видео может декодировать информацию о дифференциальном кодировании, применяемом к остаточному блоку текущего блока. Информация дифференциального кодирования может быть передана в устройство декодирования видео как элемент синтаксиса diff_cod_idx, как показано в таблице 2.
[132] Устройство декодирования видео восстанавливает информацию об остаточном сигнале из битового потока и генерирует остаточный блок, используя информацию об остаточном сигнале и информацию дифференциального кодирования (S720).
[133] Устройство декодирования видео генерирует остаточные сигналы, сначала восстанавливая переданную информацию об остаточных сигналах. Поскольку конкретный способ такой же, как тот, что описан со ссылкой на фиг. 6, его дальнейшее описание будет опущено.
[134] Когда метод явного дифференциального кодирования применяется, устройство декодирования видео может использовать декодированную информацию о направлении для генерирования остаточного блока из остаточных сигналов, восстановленных из битового потока. Уравнение 3 используется в случае горизонтального дифференциального кодирования, а Уравнение 4 используется в случае вертикального дифференциального кодирования.
[135] Устройство декодирования видео выполняет обратное квантование остаточного блока (S730).
[136] Устройство декодирования видео генерирует блок предсказания текущего блока посредством интер-предсказания (S740). Устройство декодирования видео может генерировать блок предсказания текущего блока с использованием подэтапов S742 и S744.
[137] Устройство декодирования видео использует элемент синтаксиса извлеченного режима интер-предсказания для определения вектора движения текущего блока и опорного изображения, на которое ссылается вектор движения (S742).
[138] Устройство декодирования видео предсказывает текущий блок, используя вектор движения и опорное изображение (S744).
[139] Устройство декодирования видео восстанавливает текущий блок, добавляя блок предсказания к обратно квантованному остаточному блоку (S750).
[140] Поскольку метод дифференциального кодирования применяется в режиме пропуска преобразования, устройство декодирования видео пропускает обратное преобразование обратно квантованного остаточного блока. Соответственно, устройство декодирования видео может восстанавливать текущий блок, добавляя обратно квантованный остаточный блок и блок интер-предсказания текущего блока.
[141] Чтобы удалить артефакт блочности, вызванный поблочным декодированием, устройство декодирования видео может выполнять фильтрацию с удалением блочности на границе между смежным блоком, соседним с восстановленным текущим блоком, и восстановленным текущим блоком. Однако, когда и остаточный блок смежного блока, и остаточный блок текущего блока были дифференциально кодированы, устройство декодирования видео может пропустить выполнение фильтрации с удалением блочности на границе между смежным блоком и текущим блоком. Когда все блоки в одном изображении восстановлены, восстановленное изображение может использоваться в качестве опорного изображения для интер-предсказания блоков в следующе изображении, подлежащим кодированию.
[142] На фиг. 8 показана блок-схема способа декодирования видео для декодирования блока, кодированного с интра-предсказанием, использующего метод неявного дифференциального кодирования согласно другому варианту осуществления настоящего раскрытия.
[143] Устройство декодирования видео декодирует информацию об интра-предсказании, применяемом к текущему блоку, из битового потока и использует декодированную информацию об интра-предсказании для генерирования блока предсказания текущего блока (S810). Устройство декодирования видео может генерировать блок предсказания текущего блока с использованием подэтапов S842 и S844.
[144] Устройство декодирования видео использует декодированную информацию интра-предсказания для определения режима интра-предсказания текущего блока (S812).
[145] Устройство декодирования видео может определять, используя элемент синтаксиса извлеченного режима интра-предсказания, режим интра-предсказания текущего блока из множества режимов интра-предсказания.
[146] Устройство декодирования видео предсказывает текущий блок, используя ранее восстановленные пиксели вокруг текущего блока, в соответствии с режимом интра-предсказания (S814).
[147] Устройство декодирования видео использует режим интра-предсказания для вывода информации о направлении дифференциального кодирования, применяемого к остаточному блоку текущего блока (S820).
[148] Когда применяется метод неявного дифференциального кодирования, требуемой информацией о дифференциальном кодировании является направление дифференциального кодирования. В режиме пропуска преобразования (transform_skip_flag имеет значение true) устройство декодирования видео может оценивать информацию о направлении предсказания дифференциального кодирования из информации интра-предсказания. Например, когда режим интра-предсказания является направленным режимом № 18, к остаточному блоку может применяться горизонтальное дифференциальное кодирование. Кроме того, когда режим интра-предсказания является направленным режимом № 50, к остаточному блоку может применяться вертикальное дифференциальное кодирование.
[149] В другом варианте осуществления настоящего раскрытия, когда разница между режимом интра-предсказания и направленным режимом № 18 меньше, чем предварительно установленный пороговый диапазон, как показано в Уравнении 5, к остаточному блоку может применяться горизонтальное дифференциальное кодирование. Кроме того, когда разница между режимом интра-предсказания и направленным режимом № 50 меньше, чем предварительно установленный пороговый диапазон, как показано в Уравнении 6, к остаточному блоку может применяться вертикальное дифференциальное кодирование.
[150] Устройство декодирования видео восстанавливает информацию об остаточном сигнале из битового потока и генерирует остаточный блок, используя информацию об остаточном сигнале и информацию дифференциального кодирования (S830).
[151] Когда метод неявного дифференциального кодирования применяется, устройство декодирования видео может использовать декодированную информацию, оцененную из режима интра-предсказания для генерирования остаточного блока из остаточных сигналов, восстановленных из битового потока. Уравнение 3 используется в случае горизонтального дифференциального кодирования, а Уравнение 4 используется в случае вертикального дифференциального кодирования.
[152] Устройство декодирования видео выполняет обратное квантование остаточного блока (S840).
[153] Устройство декодирования видео восстанавливает текущий блок, добавляя блок предсказания и обратно квантованный остаточный блок (S850).
[154] Поскольку метод дифференциального кодирования применяется в режиме пропуска преобразования, устройство декодирования видео пропускает обратное преобразование обратно квантованного остаточного блока. Соответственно, устройство декодирования видео может восстанавливать текущий блок, добавляя обратно квантованный остаточный блок и блок интра-предсказания текущего блока. Для будущего интра-предсказания следующего блока для декодирования пиксели в восстановленном текущем блоке могут использоваться в качестве опорных пикселей.
[155] Чтобы удалить артефакт блочности, вызванный поблочным декодированием, устройство декодирования видео может выполнять фильтрацию с удалением блочности на границе между смежным блоком, соседним с восстановленным текущим блоком, и восстановленным текущим блоком. Однако, когда и остаточный блок смежного блока, и остаточный блок текущего блока были дифференциально закодированы, устройство декодирования видео освобождается от выполнения фильтрации с удалением блочности на границе между смежным блоком и текущим блоком.
[156] Хотя этапы в соответствующих блок-схемах описаны как выполняемые последовательно, они лишь воплощают техническую идею некоторых вариантов осуществления настоящего раскрытия. Следовательно, специалист в соответствующей области техники может выполнять этапы, изменяя последовательности, описанные на соответствующих чертежах, или выполняя два или более этапов параллельно, и, следовательно, этапы на соответствующих блок-схемах не ограничиваются проиллюстрированными хронологическими последовательностями.
[157] Между тем, различные способы или функции, приведенные в настоящем описании, могут быть реализованы как инструкции, хранящиеся на энергонезависимом носителе информации, которые могут быть прочитаны и выполнены одним или несколькими процессорами. Невременный носитель записи включает в себя, например, все типы записывающих устройств, в которых данные хранятся в форме, читаемой компьютерной системой. Например, невременный носитель информации может включать в себя, среди прочего, носители данных, такие как стираемое программируемое постоянное запоминающее устройство (EPROM), флэш-накопитель, оптический накопитель, магнитный жесткий диск и твердотельный накопитель (SSD).
[158] Несмотря на то, что примерные варианты осуществления настоящего изобретения были описаны в иллюстративных целях, специалисты в данной области техники поймут, что возможны различные модификации, дополнения и замены без отклонения от идеи и объема заявленного изобретения. Следовательно, для краткости и ясности были описаны примерные варианты осуществления настоящего изобретения. Объем технической идеи настоящих вариантов осуществления не ограничен иллюстрациями. Соответственно, рядовому специалисту понятно, что объем заявленного изобретения ограничивается не вариантами осуществления, которые были непосредственно описаны выше, а формулой изобретения и ее эквивалентами.
Перекрестная ссылка на родственную заявку
Эта заявка испрашивает приоритет согласно 35 USC §119 (a) патентной заявки № 10-2019-0028995, поданной 13 марта 2019 г. в Корее, все содержание которой включено в настоящий документ посредством ссылки. Кроме того, эта непредварительная заявка испрашивает приоритет в странах, отличных от США, по той же причине, что и корейская патентная заявка, полное содержание которой включено сюда посредством ссылки.
Изобретение относится к области кодирования и декодирования видео с использованием метода дифференциального кодирования, выполняемого в режиме пропуска преобразования. Техническим результатом является повышение эффективности кодирования и декодирования видео. Предложен способ декодирования видео для восстановления текущего блока, кодированного с использованием интра-предсказания, который включает в себя декодирование из битового потока информации о направлении, указывающей направление дифференциального кодирования, применяемого к остаточному блоку текущего блока, генерирование остаточного блока из остаточных сигналов посредством восстановления и использования информации об остаточных сигналах из битового потока и использования информации о направлении, обратное квантование модифицированного остаточного блока, генерирование блока предсказания для текущего блока посредством интра-предсказания и восстановление текущего блока посредством добавления блока предсказания и обратно квантованного остаточного блока. 3 н. и 7 з.п. ф-лы, 9 ил., 4 табл.
1. Устройство декодирования видео для восстановления текущего блока, кодируемого с использованием интра-предсказания, содержащее:
модуль декодирования, конфигурированный для декодирования, из битового потока, информации о направлении, указывающей направление дифференциального кодирования, применяемого к остаточному блоку текущего блока, и для генерирования остаточного блока посредством восстановления информации об остаточных сигналах из битового потока, причем информация о режиме интра-предсказания для текущего блока не декодируется из битового потока;
модуль обратного квантования, конфигурированный для генерирования модифицированного остаточного блока посредством модифицирования остаточных сигналов в остаточном блоке на основе информации о направлении, и для обратного квантования модифицированного остаточного блока в обратно квантованный остаточный блок,
при этом каждый целевой остаточный сигнал для модифицирования в остаточном блоке модифицируется посредством суммирования с одним или более остаточными сигналами в остаточном блоке, которые расположены в направлении, указанном посредством информации о направлении из целевого остаточного сигнала;
модуль интра-предсказания, конфигурированный для вывода режима интра-предсказания для текущего блока с использованием информации о направлении, и для генерирования блока предсказания для текущего блока посредством интра-предсказания текущего блока с использованием ранее восстановленных пикселей вокруг текущего блока в соответствии с выведенным режимом интра-предсказания;
сумматор, конфигурированный для добавления блока предсказания и обратно квантованного остаточного блока для восстановления текущего блока; и
фильтр удаления блочности, конфигурированный для фильтрации с удалением блочности на границе между восстановленным текущим блоком и соседним блоком, смежным с восстановленным текущим блоком,
при этом фильтрация с удалением блочности не выполняется фильтром удаления блочности на границе между восстановленным текущим блоком и соседним блоком, когда дифференциальное кодирование применяется как к остаточному блоку соседнего блока, так и к остаточному блоку текущего блока.
2. Устройство по п. 1, в котором модуль декодирования дополнительно конфигурирован для декодирования, из битового потока, флага, указывающего, было ли применено дифференциальное кодирование к остаточному блоку текущего блока,
при этом информация о направлении декодируется из битового потока, когда флаг указывает, что дифференциальное кодирование было применено к остаточному блоку текущего блока.
3. Устройство по п. 1, в котором информация о направлении указывает одно любое из горизонтального направления и вертикального направления.
4. Устройство по п. 3, в котором, когда информация о направлении указывает горизонтальное направление, целевой остаточный сигнал модифицируется посредством суммирования с левыми остаточными сигналами, расположенными слева от целевого остаточного сигнала в том же ряду, что и целевой остаточный сигнал.
5. Устройство по п. 3, в котором, когда информация о направлении указывает вертикальное направление, целевой остаточный сигнал модифицируется посредством суммирования с верхними остаточными сигналами, расположенными сверху от целевого остаточного сигнала в том же столбце, что и целевой остаточный сигнал.
6. Устройство по п. 1, в котором режим интра-предсказания текущего блока устанавливается так, чтобы иметь направление предсказания, которое совпадает с направлением, указанным посредством информации о направлении.
7. Устройство по п. 1, в котором обратное преобразование для обратно квантованного остаточного блока пропускается.
8. Устройство по п. 1, в котором информация об остаточных сигналах содержит: информацию, указывающую, существуют ли остаточные сигналы; и информацию, указывающую, используется ли режим пропуска преобразования.
9. Способ кодирования видео для кодирования текущего блока с использованием интра-предсказания, содержащий:
определение направления дифференциального кодирования, применяемого к остаточному блоку текущего блока;
вывод режима интра-предсказания для текущего блока из направления дифференциального кодирования, и генерирование блока предсказания текущего блока посредством интра-предсказания текущего блока с использованием ранее восстановленных пикселей вокруг текущего блока в соответствии с режимом интра-предсказания;
генерирование остаточного блока посредством вычитания блока предсказания из текущего блока;
генерирование модифицированного остаточного блока посредством модифицирования остаточных сигналов в остаточном блоке на основе направления дифференциального кодирования, при этом каждый целевой остаточный сигнал, модифицируемый в остаточном блоке, модифицируется посредством вычитания, из целевого остаточного сигнала, соседнего остаточного сигнала, смежного с целевым остаточным сигналом в направлении дифференциального кодирования;
кодирование, в битовый поток, модифицированного остаточного блока и информации для указания направления дифференциального кодирования, причем информация о режиме интра-предсказания не кодируется;
восстановление текущего блока; и
фильтрацию с удалением блочности на границе между восстановленным текущим блоком и соседним блоком, смежным с восстановленным текущим блоком,
при этом фильтрация с удалением блочности не выполняется на границе между восстановленным текущим блоком и соседним блоком, когда дифференциальное кодирование применяется как к остаточному блоку соседнего блока, так и к остаточному блоку текущего блока.
10. Способ передачи битового потока, содержащего кодированные видеоданные, причем способ содержит:
генерирование битового потока путем кодирования текущего блока с использованием интра-предсказания; и
передачу битового потока в устройство декодирования видео,
причем генерирование битового потока содержит:
определение направления дифференциального кодирования, применяемого к остаточному блоку текущего блока из множества направлений, включающих горизонтальное направление и вертикальное направление;
вывод режима интра-предсказания для текущего блока из направления дифференциального кодирования, и генерирование блока предсказания текущего блока посредством интра-предсказания текущего блока с использованием ранее восстановленных пикселей вокруг текущего блока в соответствии с режимом интра-предсказания;
генерирование остаточного блока посредством вычитания блока предсказания из текущего блока;
генерирование модифицированного остаточного блока посредством модифицирования остаточных сигналов в остаточном блоке на основе направления дифференциального кодирования, причем каждый целевой остаточный сигнал, модифицируемый в остаточном блоке, модифицируется посредством вычитания, из целевого остаточного сигнала, соседнего остаточного сигнала, смежного с целевым остаточным сигналом в направлении дифференциального кодирования;
кодирование, в битовый поток, информации для указания направления дифференциального кодирования и модифицированного остаточного блока, причем информация о режиме интра-предсказания не кодируется.
US 2015063454 A1, 2015.03.05 | |||
US 2015264376 A1, 2015.09.17 | |||
WO 2018221817 A1, 2018.12.06 | |||
ZHAO YIN et al | |||
Приспособление для точного наложения листов бумаги при снятии оттисков | 1922 |
|
SU6A1 |
Станок для придания концам круглых радиаторных трубок шестигранного сечения | 1924 |
|
SU2019A1 |
S | |||
DE-LUXAN-HERNANDEZET et al, CE3: Line-based intra |
Авторы
Даты
2023-12-07—Публикация
2020-03-13—Подача