Способ контентно-адаптивного энтропийного кодирования данных о режимах и опорных типах для видео следующего поколения

Иллюстрации

Показать все

Группа изобретений относится к технологиям кодирования/декодирования видеоданных. Техническим результатом является повышение эффективности кодирования видеоданных. Предложен компьютерный способ видео кодирования. Способ содержит этап, на котором загружают данные разбиений, данные «горизонтальный/вертикальный», указывающие, является ли разбиение горизонтальным или вертикальными разбиением, данные режимов и данных опорных типов по меньшей мере для части видеокадра. Далее определяют первую оценочную стоимость бита при энтропийном кодировании, содержащую стоимость бита при энтропийном кодировании для совместного кодирования данных разбиений и данных режимов и стоимость бита при энтропийном кодировании для кодирования данных «горизонтальный/вертикальный». 4 н. и 21 з.п. ф-лы, 34 ил., 48 табл.

Реферат

Уровень техники

Видео кодирующее устройство сжимает видеоинформацию таким образом, чтобы можно было больше информации передать в пределах заданной полосы частот. Сжатый сигнал может быть затем передан приемнику, имеющему декодер, осуществляющий декодирование или расширение сигнала перед его представлением на дисплее.

Стандарт «Высокоэффективного видео кодирования» (High Efficient Video Coding (HEVC)) представляет собой самый последний стандарт сжатия видео данных, разработанный Группой сотрудничества по видео кодированию (Joint Collaborative Team on Video Coding (JCT-VC)), созданной Группой экспертов по кинематографии МСО/МЭК (ISO/IEC Moving Picture Experts Group (MPEG)) и Группой экспертов по видео кодированию МСЭ (ITU-T Video Coding Experts Group (VCEG)). Стандарт HEVC был разработан в связи с тем, что предшествующий ему стандарт H.264/AVC (Advanced Video Coding) (усовершенствованное видео кодирование) не обеспечивал достаточного сжатия, необходимо для развивающихся видео приложений с повышенным разрешением. Аналогично предшествующим стандартам видео кодирования стандарт HEVC содержит базовые функциональные модули, такие как внутрикадровое/межкадровое прогнозирование, преобразование, квантование, контурную фильтрацию и энтропийное кодирование.

Современный стандарт HEVC может попытаться ослабить ограничения стандарта H.264/AVC, такие как ограниченный выбор допустимых единиц прогнозирования и единиц кодирования, ограничения допустимой генерации нескольких опор и прогнозов, ограничения размеров блоков преобразования и реальных преобразований, ограниченность механизмов для уменьшения артефактов, возникающих при кодировании, и неэффективные способы энтропийного кодирования. В то же время современный стандарт HEVC может использовать итеративный подход для решения этих проблем.

Например, при все более увеличивающемся разрешении видео, которое необходимо сжать, и ожиданиях достижения высокого качества изображения, соответствующие скорость передачи данных/ширина полосы пропускания, необходимые для стандартов кодирования, таких как Н.264, или даже более развитых и развивающихся стандартов, таких как H.265/HEVC, становятся относительно высокими. Упомянутые выше стандарты используют расширенные формы традиционных подходов, чтобы в неявном виде рассматривать проблему недостаточного сжатия/качества, но часто достигают лишь ограниченных результатов.

Настоящее изобретение, разработанное в контексте проекта кодека видео следующего поколения (Next Generation Video (NGV)), рассматривает общую проблему проектирования усовершенствованного видео кодека, который позволил бы максимально увеличить достижимую эффективность сжатия, оставаясь в то же время в достаточной степени практичным для применения в устройствах. Например, в условиях все возрастающего разрешения видео и ожиданий высокого качества изображения вследствие наличия хороших дисплеев, соответствующие скорость передачи данных/ширина полосы частот, требуемые при использовании существующих стандартов видео кодирования, таких как более ранние стандарты MPEG и даже сравнительно более недавний стандарт H.264/AVC, относительно высоки. Стандарт H.264/AVC не считается способным обеспечить достаточно высокую степень сжатия для развивающихся видео приложений с более высоким разрешением.

Краткое описание чертежей

Описываемый здесь материал проиллюстрирован прилагаемыми чертежами, служащими в качестве примеров, но не накладывающими ограничений на этот материал. Для простоты и ясности иллюстраций элементы, показанные на чертежах, не обязательно изображены в масштабе. Например, для большей ясности размеры некоторых элементов на чертеже могут быть увеличены относительно размеров других элементов. Кроме того, там, где это считается подходящим, позиционные обозначения и другие справочные надписи повторены на разных чертежах, чтобы отметить соответствующие или аналогичные элементы. На этих чертежах:

фиг. 1 представляет схему, иллюстрирующую пример видео кодирующего устройства следующего поколения;

фиг. 2 представляет схему, иллюстрирующую пример видео декодирующего устройства следующего поколения;

фиг. 3(a) представляет схему, иллюстрирующую пример видео кодирующего устройства и подсистем следующего поколения;

фиг. 3(b) представляет схему, иллюстрирующую пример видео декодирующего устройства и подсистем следующего поколения;

фиг. 4 представляет схему, иллюстрирующую пример модуля энтропийного кодирующего устройства;

фиг. 5 представляет схему, иллюстрирующую пример модуля энтропийного декодирующего устройства;

фиг. 6 представляет схему, иллюстрирующую пример модуля энтропийного кодирующего устройства;

фиг. 7 представляет схему, иллюстрирующую пример модуля энтропийного декодирующего устройства;

фиг. 8 представляет логическую схему, иллюстрирующую пример процесса;

фиг. 9 иллюстрирует пример потока битов данных;

фиг. 10 представляет логическую схему, иллюстрирующую пример процесса;

фиг. 11 представляет схему, иллюстрирующую пример системы видео кодирования и процесса видео кодирования;

фиг. 12 представляет логическую схему, иллюстрирующую пример процесса кодирования;

фиг. 13 иллюстрирует пример потока битов данных;

фиг. 14 представляет логическую схему, иллюстрирующую пример процесса декодирования;

фиг. 15(A), 15(B) и 15(C) представляет схему, иллюстрирующую пример системы видео кодирования и процесса видео кодирования;

фиг. 16 представляет схему, иллюстрирующую пример системы видео кодирования;

фиг. 17 представляет схему, иллюстрирующую пример системы;

фиг. 18 иллюстрирует пример устройства;

фиг. 19 представляет схему, иллюстрирующую пример структур кадров и зависимостей при прогнозировании;

фиг. 20 представляет схему, иллюстрирующую пример опорных типов прогнозирования;

фиг. 21 представляет логическую схему, иллюстрирующую пример процесса;

фиг. 22 представляет логическую схему, иллюстрирующую пример процесса;

фиг. 23 представляет логическую схему, иллюстрирующую пример процесса;

фиг. 24 представляет диаграмму, иллюстрирующую примеры разбиения и режимов для примера Р-кадра;

фиг. 25 представляет диаграмму, иллюстрирующую пример разбиения и режимов для примера Р-кадра;

фиг. 26 представляет диаграмму, иллюстрирующую пример разбиения и режимов для примера B/F-кадра;

фиг. 27 представляет диаграмму, иллюстрирующую пример разбиения и режимов для примера B/F-кадра;

фиг. 28 представляет диаграмму, иллюстрирующую пример межблочных опорных типов для примера Р-кадра;

фиг. 29 представляет диаграмму, иллюстрирующую пример межблочных опорных типов для примера Р-кадра;

фиг. 30 представляет диаграмму, иллюстрирующую пример межблочных опорных типов для примера B/F-кадра;

фиг. 31 представляет диаграмму, иллюстрирующую пример межблочных опорных типов для примера B/F-кадра, все организованы в соответствии по меньшей мере с некоторыми вариантами реализации настоящего изобретения.

Осуществление изобретения

Один или несколько вариантов реализации настоящего изобретения будут теперь описаны со ссылками на прилагаемые чертежи. Хотя здесь будут обсуждаться конкретные конфигурации и способы организации, следует понимать, что это делается исключительно для иллюстративных целей. Специалисты в соответствующей области должны понимать, что и другие конфигурации и способы могут быть использованы, не отклоняясь от смысла и объема настоящего изобретения. Специалистам в рассматриваемой области должно быть очевидно, что способы и/или конструкции, описываемые здесь, могут быть также применены в разнообразных других системах и приложениях, отличных от тех, которые рассматриваются здесь.

Хотя последующее описание предлагает разнообразные варианты реализации, которые могут быть выполнены в различных архитектурах, таких как архитектура системы на кристалле (system-on-a-chip (SoC)), например, реализация способов и/или конструкций, описываемых здесь, не ограничивается конкретными архитектурами и/или компьютерными системами и может быть осуществлена с использованием какой-либо другой архитектуры и/или компьютерной системы, подходящей для аналогичных целей. В качестве примера, для воплощения рассматриваемых здесь способов и/или конструкций могут быть использованы, например, несколько кристаллов и/или корпусов интегральных схем (integrated circuit (IC)), и/или разнообразные вычислительные устройства и/или устройства потребительской электроники (consumer electronic (СЕ)), такие как приставки, смартфоны и т.п. Далее, хотя в последующем описании могут быть приведены многочисленные конкретные подробности, такие как логические конфигурации, типы и взаимосвязи между компонентами системы, варианты логического разбиения/соединения и т.п., заявляемый предмет изобретения может быть реализован на практике и без таких конкретных подробностей. В других случаях некоторые материалы, такие как, например, структуры управления и полные последовательности команд программного обеспечения, могут быть не показаны подробно, чтобы не «затемнять» рассматриваемый здесь материал.

Рассматриваемый здесь материал может быть реализован в виде аппаратуры, встроенного программного обеспечения, загружаемого программного обеспечения или какого-либо сочетания этих компонентов. Рассматриваемый здесь материал может быть также реализован в виде команд, которые записаны на машиночитаемом носителе и которые могут быть прочитаны и выполнены одним или несколькими процессорами. Машиночитаемый носитель может представлять собой любой носитель и/или механизм для хранения или передачи информации в форме, читаемой машиной (например, компьютерным устройством). Например, такой машиночитаемый носитель может представлять собой постоянное запоминающее устройство (ПЗУ (ROM)); запоминающее устройство с произвольной выборкой (ЗУПВ (RAM)); магнитный диск для записи данных; оптический носитель записи; устройства флэш-памяти; электрические, оптические, акустические сигналы или распространяющиеся сигналы других видов (например, сигналы несущих, инфракрасные сигналы, цифровые сигналы и т.п.) и прочие носители.

Ссылки в настоящем описании на «один вариант реализации», «какой-либо вариант реализации», «пример варианта реализации» и т.п. указывают, что рассматриваемый вариант реализации может содержать конкретный признак, структуру или характеристику, но каждый вариант совсем не обязательно содержит этот конкретный признак, структуру или характеристику. Более того, такие фразы не обязательно относятся к одному и тому же варианту реализации. Далее, когда какой-либо конкретный признак, структура или характеристика описаны в связи с каким-либо вариантом, предполагается, что знаний специалиста в рассматриваемой области будет достаточно, чтобы применить этот признак, структуру или характеристику в связи с другим вариантом реализации, независимо от того, было ли такое применение описано в явном виде, или нет.

Системы, устройства, изделия и способы, описанные ниже, относятся к контентно-адаптивному энтропийному кодированию для видео систем.

Ниже описаны видео системы, устройства, изделия и способы следующего поколения (Next generation video (NGV)). Видео кодирование NGV может обладать значительной адаптивностью на контентной основе в процессе видео кодирования, чтобы добиться более высокой степени сжатия. Как рассмотрено выше, стандарт H.264/AVC может иметь ряд ограничений, а современные попытки улучшить этот стандарт, такие как, например, стандарт HEVC, могут использовать итеративные подходы для решения проблем этих ограничений. Здесь будет рассмотрена NGV-система, содержащая кодирующее устройство и декодирующее устройство.

Например, стандарт Н.264 может поддерживать два режима энтропийного кодирования. В первом режиме коэффициенты преобразования адаптивного кодирования в коде переменной длины (Adaptive VLC (Variable Length Coding)) могут быть кодированы с использованием контекстно-зависимого адаптивного кодирования в коде переменной длины (Context Adaptive VLC (CAVLC)) а все другие синтаксические элементы (например, данные заголовка и другие служебные данные, режимы, векторы движения и т.п.) могут быть кодированы с использованием экспоненциального кодирования Голомба (Exponential Golomb coding). Данные, кодированные с применением способа CAVLC, и данные, кодированные с применением экспоненциальных кодов Голомба, могут быть мультиплексированы для генерации кодированного потока битов данных. Во втором режиме все данные могут быть кодированы с применением контекстно-зависимого адаптивного двоичного арифметического кодирования (Context Adaptive Binary Arithmetic Coding (CABAC)). Соответствующее декодирующее устройство также может работать в двух режимах - «разборки» и декодирования мультиплексированного потока битов данных в первом режиме и декодирования потока битов данных, кодированного способом САВАС, во втором режиме. Такие способы могут иметь ограничения. Например, кодирование способом САВАС может быть эффективно, но при этом оно может быть сложным, так что пропускная способность в контекстах с более высоким разрешением может быть ограничена. Далее, при группировании типов данных вместе для кодирования, эффективность и сложность энтропийного кодирования могут оказаться не оптимизированными.

В некоторых вариантах реализации видео кодека энтропийное кодирование и декодирование разнообразных данных, таких как данные заголовка и другие служебные данные, режимы, векторы движения и/или коэффициенты преобразования, могут вносить значительный вклад в эффективность кодирования и в сложность системы. В некоторых примерах, рассматриваемые здесь способы могут балансировать эффективность кодирования и сложность системы.

В некоторых вариантах модуль энтропийного кодирования может принимать первые видеоданные и вторые видеоданные для осуществления энтропийного кодирования этих видеоданных. Первые видеоданные и вторые видеоданные могут быть данными различных типов (например, данные заголовка, параметры морфинга, параметры синтеза, или данные глобального отображения, или векторы движения, или данные разбиения при внутрикадровом прогнозировании и т.п., как будет рассмотрено далее). Первый способ энтропийного кодирования может быть определен для первых видеоданных на основе параметра, ассоциированного с этими первыми видеоданными, такого как, например, число сжатых битов первых видеоданных, заданный индикатор или флаг, ассоциированный с первыми видеоданными, заданный пороговый уровень или эвристически определяемый пороговый уровень, либо другой подобный параметр. В некоторых примерах в качестве первого способа энтропийного кодирования может быть выбран способ адаптивного кодирования длин серий символов в коде переменной длины или адаптивное прокси-кодирование в коде переменной длины. Первые видеоданные могут быть кодированы посредством первого способа энтропийного кодирования. В некоторых примерах для вторых видеоданных может быть определен второй способ энтропийного кодирования на основе параметра, обсуждавшегося применительно к первым видеоданным. В некоторых примерах второй способ энтропийного кодирования может быть определен из совокупности опций, куда входят способ адаптивного кодирования длин серий символов в коде переменной длины, способ адаптивного прокси-кодирования в коде переменной длины, способ адаптивного векторного кодирования в коде переменной длины, способ адаптивного 1-мерного кодирования в коде переменной длины, способ адаптивного 2-мерного кодирования в коде переменной длины или какой-либо другой способ, как обсуждается здесь. В некоторых примерах второй способ энтропийного кодирования может быть задан заранее для типа данных, к которому относятся вторые видеоданные. В результате энтропийного кодирования первых видеоданных и вторых видеоданных можно получить первые сжатые видеоданные и вторые сжатые видеоданные. Первые и вторые сжатые видеоданные могут быть собраны воедино для генерации выходного потока битов данных.

Выходной поток битов данных может быть передан от кодирующего устройства декодирующему устройству, которое может «разобрать» этот поток битов данных для определения первых и вторых сжатых видеоданных. Сжатые видеоданные могут быть подвергнуты энтропийному кодированию для генерации энтропийно декодированных видеоданных, которые могут быть далее декодированы для получения видеокадра. Этот видеокадр может быть передан дисплейному устройству для представления пользователю.

В некоторых примерах для энтропийного кодирования в модуле энтропийного кодирования могут быть приняты видеоданные дополнительных типов. Например, третьи, четвертые, пятые, шестые, седьмые или более видеоданные могут быть подвергнуты энтропийному кодированию для генерации соответствующих сжатых видеоданных, которые могут быть собраны в выходном потоке битов данных, переданы и затем энтропийно декодированы в декодирующем устройстве. Такие разнообразные типы данных и возможные варианты (опции) способов кодирования/декодирования будут рассмотрены далее.

Используемый здесь термин «кодер» ("coder") может относиться к кодирующему устройству и/или к декодирующему устройству. Аналогично, используемый здесь термин «кодирующая обработка» ("coding") может относиться к осуществлению видео кодирования в кодирующем устройстве и/или к осуществлению видео декодирования в декодирующем устройстве. Например, и видео кодирующее устройство, и видео декодирующее устройство могут быть примерами кодеров, способных осуществлять кодирующую обработку видеоданных. Кроме того, используемый здесь термин «кодек» ("codec") может относиться к любому процессу, программе или набору операций, такому, например, как какое-либо сочетание загружаемого программного обеспечения, встроенного программного обеспечения и/или аппаратуры, которое может реализовать кодирующее устройство и/или декодирующее устройство. Кроме того, используемая здесь фраза «видеоданные» ("video data") может относиться к любому типу данных, ассоциированных с видео кодированием, таких как, например, видеокадры, данные изображения, кодированный поток битов данных или другие подобные данные.

Фиг. 1 представляет схему, иллюстрирующую пример кодирующего устройства 100 для кодирования видео следующего поколения, построенного в соответствии по меньшей мере с некоторыми вариантами настоящего изобретения. Как показано, кодирующее устройство 100 может принимать входное видео 101. Это входное видео 101 может представлять собой любое подходящее видео для кодирования, такое как, например, входные кадры видео последовательности. Как показано, входное видео может быть принято через модуль 102 предварительного анализа контента. Этот модуль 102 предварительного анализа контента может быть конфигурирован для осуществления анализа контента видеокадров входного видео 101 с целью определения разнообразных типов для повышения эффективности видео кодирования и скорости кодирования. Например, модуль 102 предварительного анализа контента может определить информацию о горизонтальном и вертикальном градиенте (например, Rs, Cs), дисперсии, пространственной сложности одного кадра, временной сложности одного кадра, обнаружении изменений сцены, оценке диапазона движения, определении усиления, оценке дистанции прогнозирования, оценке числа объектов, обнаружении границ области, вычислении карты пространственной сложности, оценке фокусировки, оценке зернистости пленки или других подобных параметрах. Параметры, генерируемые модулем 102 предварительного анализа контента, могут быть использованы кодирующим устройством 100 (например, через контроллер 103 кодирующего устройства) и/или квантованы и переданы декодирующему устройству. Как показано, видеокадры и/или другие данные могут быть переданы от модуля 102 предварительного анализа контента в модуль 104 адаптивной организации кадров, который может определить тип кадра (например, I-, Р- или F/B-кадр) для каждого видеокадра и переупорядочить видеокадры по мере необходимости. В некоторых примерах модуль 104 адаптивной организации кадров может содержать генератор фрагментов кадра, конфигурированный для генерации фрагментов кадров. В некоторых примерах модуль 102 предварительного анализа контента и модуль 104 адаптивной организации кадров можно совместно рассматривать как подсистему предварительного анализа в составе кодирующего устройства 100.

Как показано, видеокадры и/или другие данные могут быть переданы от модуля 104 адаптивной организации кадров в модуль 105 генератора единиц прогнозирования. В некоторых примерах этот модуль 105 генератора единиц прогнозирования может разбивать кадр на «плитки» или супер-фрагменты или на какие-то другие подобные части. В некоторых примерах устройство может содержать дополнительный модуль (например, между модулями 104 и 105) для разбиения кадра на «плитки» или супер-фрагменты. Модуль 105 генератора единиц прогнозирования может разбивать каждую плитку или супер-фрагмент на потенциальные единицы прогнозирования. В некоторых вариантах потенциальный тип разбиения на единицы прогнозирования может быть определен с использованием способа разбиения, такого как, например, как метод k-мерного (k-d) дерева, метод двоичного дерева или другой подобный способ, который может быть определен на основе типов (например, I-, Р- или F/B-кадр) индивидуальных видеокадров, характеристик фрагмента кадра, подвергаемого разбиению, или других подобных факторов. В некоторых примерах найденные потенциальные типы разбиения на единицы прогнозирования могут представлять единицы для конкретного прогнозирования (например, межкадрового или внутрикадрового прогнозирования) и могут быть описаны как единицы прогнозирования или блоки прогнозирования и т.п.

В некоторых примерах выбранный тип разбиения на единицы прогнозирования (например, единицы прогнозирования) может быть определен из совокупности потенциальных типов разбиения на единицы прогнозирования. Например, выбор типа разбиения на единицы прогнозирования может быть основан на определении, для каждого потенциального типа разбиения на единицы прогнозирования, прогнозов с использованием характеристик межкадрового прогнозирования на основе движения и нескольких опорных единиц или внутрикадрового прогнозирования, и определения параметров прогнозирования. Для каждого потенциального типа разбиения на единицы прогнозирования может быть найдена потенциальная погрешность прогнозирования посредством нахождения разности между исходными пикселями и прогнозируемыми пикселями, так что выбранный тип разбиения на единицы прогнозирования может представлять собой один из потенциальных типов разбиения на единицы прогнозирования, которому соответствует минимальная погрешность прогнозирования. В других примерах выбранный тип разбиения на единицы прогнозирования может быть определен на основе оптимизации искажений скорости, включая взвешенный подсчет на основе числа битов, используемых для кодирования единицы прогнозирования, и погрешности прогнозирования, ассоциированной с единицами прогнозирования для такого типа разбиения.

Как показано, в схеме вычитания 106 может быть найдена разность между исходными пикселями в выбранном разбиении на единицы прогнозирования (например, в единицах прогнозирования из состава текущего кадра) и прогнозируемыми пикселями (например, полученными в результате прогнозирования пикселей единицы прогнозирования в составе текущего кадра на основе опорного кадра или опорных кадров и других данных прогнозирования, таких как данные межкадрового или внутрикадрового прогнозирования). Процедура определения единиц прогнозирования будет рассмотрена ниже и может содержать контур декодирования, как показано на фиг. 1. Любые остатки или остаточные данные (например, данные погрешности единиц прогнозирования) после вычисления разности могут быть переданы в модуль 107 генератора единиц кодирования. В некоторых примерах, таких как внутрикадровое прогнозирование применительно к единицам прогнозирования в кадрах любого типа (I-, F7B- или Р-кадры), модуль 107 генератора единиц кодирования может быть обойден посредством переключателей 107а и 107b. В таких примерах может быть осуществлен только один уровень разбиения. Такие единицы разбиения могут быть описаны как единицы прогнозирования (как уже рассмотрено) или как единицы кодирования или и так, и так. В различных вариантах такое разбиение может быть выполнено посредством модуля 105 генератора единиц прогнозирования (как уже рассмотрено) или, как будет рассмотрено дальше, такое разбиение может быть осуществлено посредством модуля разбиения на единицы внутрикадрового прогнозирования/кодирования на основе k-мерного дерева или модуля разбиения на единицы внутрикадрового прогнозирования/кодирования на основе двумерного дерева, реализованного в виде модуля 107 генератора единиц кодирования.

В некоторых примерах данные погрешности единиц прогнозирования, если таковая имеется, могут быть не настолько значимыми, чтобы послужить основанием для кодирования этих данных. В других примерах, где может быть желательно кодировать данные погрешности единиц прогнозирования и где эти данные погрешности единиц прогнозирования ассоциированы с межкадровым прогнозированием или подобным прогнозированием, модуль 107 генератора единиц кодирования может определить единицы кодирования в составе единиц прогнозирования. В некоторых примерах модуль 107 генератора единиц кодирования может быть не нужен, поскольку разбиение может быть кодировано без выделения единиц кодирования (например, как показано по обходному пути, проходящему через переключатели 107а и 107b). Вместе с разбиением на единицы кодирования или без такого разбиения данные погрешностей единиц прогнозирования (которые в последующем в любом случае могут быть описаны как единицы кодирования) могут быть переданы в модуль 108 адаптивного преобразования, если остатки или остаточные данные требуют кодирования. В некоторых примерах модуль 105 генератора единиц прогнозирования и модуль 107 генератора единиц кодирования могут совместно рассматриваться в качестве подсистемы разбиения в составе кодирующего устройства 100. В различных примерах модуль 107 генератора единиц кодирования может оперировать над данными погрешностей единиц прогнозирования, данными исходных пикселей, остаточными данными или вейвлетными данными.

Модуль 107 генератора единиц кодирования может генерировать потенциальные типы разбиения на единицы кодирования (например, единицы кодирования) или, например, данные погрешностей единиц прогнозирования с использованием способов разбиения с применением двумерного и/или k-мерного дерева или других подобных способов. В некоторых примерах потенциальные единицы кодирования могут быть преобразованы с использованием адаптивного или фиксированного преобразования в блоки различного размера посредством модуля 108 адаптивного преобразования, а выбранный тип разбиения на единицы кодирования и выбранный вид преобразования (например, адаптивное или фиксированное) могут быть определены на основе оптимизации искажений скорости или на другой основе. В некоторых примерах выбранный тип разбиения на единицы кодирования и/или выбранные преобразования могут быть определены с применением заданного способа выбора на основе размера единиц кодирования или аналогичных факторов.

Например, модуль 108 адаптивного преобразования может содержать первую часть или компонент для осуществления параметрического преобразования, чтобы можно было произвести локально оптимальное кодирование с преобразованием применительно к блокам небольшого или среднего размера, и вторую часть или компонент для осуществления глобально устойчивого и обладающего небольшими издержками преобразования при кодировании с использованием фиксированного преобразования, такого как дискретное косинусное преобразование (discrete cosine transform (DCT)) или с преобразованием на основе кадров, из совокупности разнообразных преобразований, включая параметрическое преобразование, или какую-либо другую конфигурацию, как это будет обсуждаться далее. В некоторых примерах в качестве локально оптимального преобразования при кодировании может быть применено параметрическое преобразование Хаара (Parametric Haar Transform (РЫТ)), как это будет обсуждаться далее. В некоторых примерах преобразование может быть выполнено применительно к двумерным (2D) блокам прямоугольной формы с размерами в пределах от 4×4 пикселей до 64×64 пикселей, причем реальный размер блоков зависит от ряда факторов, таких как, являются ли преобразуемые блоки яркостными или цветностными, осуществляется ли межкадровое или внутрикадровое прогнозирование, или является применяемое преобразование параметрическим преобразованием Хаара (РНТ) или дискретным косинусным преобразованием (DCT) или еще каким-либо подобным преобразованием.

Как показано, полученные в результате коэффициенты преобразования могут быть переданы в модуль 109 адаптивного квантования. Этот модуль 109 адаптивного квантования может осуществлять квантование полученных коэффициентов преобразования. Кроме того, любые данные, ассоциированные с параметрическим преобразованием, могут быть, по мере необходимости, переданы либо в модуль 109 адаптивного квантования (если квантование нужно) или в модуль 110 адаптивного энтропийного кодирования. Кроме того, как показано на фиг. 1, квантованные коэффициенты можно сканировать и передать в модуль 110 адаптивного энтропийного кодирования. Этот модуль 110 адаптивного энтропийного кодирования может осуществить энтропийное кодирование квантованных коэффициентов и вставить их в выходной поток 111 битов данных. В некоторых примерах модуль 108 адаптивного преобразования и модуль 109 адаптивного квантования могут совместно считаться подсистемой преобразования при кодировании в составе кодирующего устройства 100.

Как показано на фиг. 1, кодирующее устройство 100 содержит локальный декодирующий контур. Этот локальный декодирующий контур может начинаться с модуля 112 адаптивного обратного квантования. Этот модуль 112 адаптивного обратного квантования может быть конфигурирован для осуществления операций, противоположных операциям модуля 109 адаптивного квантования, например, может быть выполнено обратное сканирование, и квантованные коэффициенты могут быть обратно пересчитаны для определения коэффициентов преобразования. Такая операция адаптивного квантования может быть операцией с потерями, например. Как показано, коэффициенты преобразования могут быть переданы в модуль 113 адаптивного обратного преобразования. Этот модуль 113 адаптивного обратного преобразования может осуществлять преобразование, обратное тому преобразованию, которое было выполнено модулем 108 адаптивного преобразования, например, для генерации остатков или остаточных величин или данных погрешностей единиц прогнозирования (или исходных данных, или вейвлетных данных, как обсуждается), ассоциированных с единицами кодирования. В некоторых примерах модуль 112 адаптивного обратного квантования и модуль 113 адаптивного обратного преобразования могут совместно считаться подсистемой преобразования при декодировании в составе кодирующего устройства 100.

Как показано, данные погрешностей единиц прогнозирования (или подобные данные) могут быть переданы в используемый в качестве опции модуль 114 сборки единиц кодирования. Этот модуль 114 сборки единиц кодирования может собирать единицы кодирования в декодированные единицы прогнозирования по мере необходимости (как показано, в некоторых примерах, модуль 114 сборки единиц кодирования может быть пропущен посредством переключателей 114а и 114b, так что такие декодированные единицы прогнозирования могли быть сформированы в модуле 113 адаптивного обратного преобразования) для генерации единиц прогнозирования с использованием данных погрешностей прогнозирования, или декодированных остаточных единиц прогнозирования или других подобных элементов.

Как показано, декодированные остаточные единицы прогнозирования могут быть суммированы с единицами прогнозирования (например, данными прогнозируемых пикселей) в сумматоре 115 для генерации реконструированных единиц прогнозирования. Эти реконструированные единицы прогнозирования могут быть переданы в модуль 116 сборки единиц прогнозирования. Этот модуль 116 сборки единиц прогнозирования может собирать реконструированные единицы прогнозирования для генерации реконструированных плиток или супер-фрагментов. В некоторых примерах модуль 114 сборки единиц кодирования и модуль 116 сборки единиц прогнозирования могут совместно считаться подсистемой устранения разбиения в составе кодирующего устройства 100.

Реконструированные плитки и супер-фрагменты могут быть переданы в модуль 117 анализа блочности и деблокирующей фильтрации. Этот модуль 117 анализа блочности и деблокирующей фильтрации может устранить блочные искажения и «дрожание» реконструированных плиток и супер-фрагментов (или единиц прогнозирования для таких плиток или супер-фрагментов). Сформированные параметры фильтра для устранения блочных искажений и дрожания могут быть использованы для работы фильтра в текущий момент и/или кодированы в выходном потоке 111 битов данных для использования декодирующим устройством, например. Выходной сигнал модуля 117 анализа блочности и деблокирующей фильтрации может быть передан в модуль 118 анализа качества и фильтрации для восстановления качества. Модуль 118 анализа качества и фильтрации для восстановления качества может определять параметры фильтрации для восстановления качества (QR-фильтрации) (например, для QR-разложения) и использовать найденные параметры для фильтрации. Параметры QR-фильтрации могут быть также кодированы в составе выходного потока 111 битов данных для использования декодирующим устройством. Как показано, выходной сигнал модуля 118 анализа качества и фильтрации для восстановления качества может быть передан в буфер 119 декодированных кадров. В некоторых примерах выходной сигнал модуля 118 анализа качества и фильтрации для восстановления качества может представлять собой конечный реконструированный кадр, который может быть использован для прогнозирования при кодировании других кадров (например, конечный реконструированный кадр может быть опорным кадром или подобным объектом). В некоторых примерах модуль 117 анализа блочности и деблокирующей фильтрации и модуль 118 анализа качества и фильтрации для восстановления качества могут совместно считаться подсистемой фильтрации в составе кодирующего устройства 100.

В кодирующем устройстве 100 операции прогнозирования могут представлять собой операции межкадрового и/или внутрикадрового прогнозирования. Как показано на фиг. 1(a), межкадровое прогнозирование может быть выполнено посредством одного или несколько модулей и в том числе модуля 120 анализа морфинга и генерации преобразованных кадров, модуля 121 анализа и генерации синтезированных кадров и модуля 123 прогнозирования характеристик и фильтрации с компенсацией движения. Модуль 120 анализа морфинга и генерации преобразованных кадров может анализировать текущий кадр с целью определения параметров для изменений коэффициента передачи, изменений в доминирующем движении, изменений в совмещении и изменений в размытости контура относительно опорного кадра или кадров, с использованием которых текущий кадр может быть кодирован. Найденные параметры морфинга могут быть квантованы/деквантованы и использованы (например, модулем 120 анализа морфинга и генерации преобразованных кадров) для генерации преобразованных опорных кадров, которые могут быть использованы модулем 122 оценки движения для вычисления векторов движения с целью эффективного прогнозирования текущего кадра с компенсацией движения (и характеристик). Модуль 121 анализа и генерации синтезированных кадров может генерировать кадры со сверхразрешением (super resolution (SR.)) кадры и проецируемые интерполированные (projected interpolation (PI)) кадры или подобные кадры для оценки движения с целью определения векторов движения для эффективного прогнозирования с компенсацией движения в этих кадрах.

Модуль 122 оце