EA043454B1 - Управление скоростью для видеодекодера - Google Patents

Управление скоростью для видеодекодера Download PDF

Info

Publication number
EA043454B1
EA043454B1 EA202192449 EA043454B1 EA 043454 B1 EA043454 B1 EA 043454B1 EA 202192449 EA202192449 EA 202192449 EA 043454 B1 EA043454 B1 EA 043454B1
Authority
EA
Eurasian Patent Office
Prior art keywords
enhancement
stream
frame
quantization parameters
base
Prior art date
Application number
EA202192449
Other languages
English (en)
Inventor
Гвидо Меарди
Лоренцо Чиккарелли
Original Assignee
В-Нова Интернэшнл Лтд
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by В-Нова Интернэшнл Лтд filed Critical В-Нова Интернэшнл Лтд
Publication of EA043454B1 publication Critical patent/EA043454B1/ru

Links

Description

Область техники
Изобретение относится к способу и устройству для кодирования сигнала. В частности, но не исключительно, данное изобретение относится к способу и устройству для кодирования сигналов видео и/или изображения. Изображение относится к методике управления скоростью и устройству для управления скоростью во время процесса кодирования.
Уровень техники
Известно, что при кодировании данных, например, видеоданных, заранее устанавливается количество бит, требуемых для кодирования части данных. В случае видеоданных это может представлять собой количество битов для кодирования кадра видеоданных. Требуется установка количества бит, известная как управление скоростью. Известно, что битовую скорость выбирают с постоянным или переменным значением.
Используют известную форму управления скоростью коэффициент постоянной скорости или CRF (Constant Rate Factor), при которой скорость передачи данных регулируют для достижения или поддержания требуемого качества кодирования. По этой причине при видеокодировании скорость передачи в битах можно увеличивать или уменьшать, в зависимости от степени сложности кодируемого эпизода. Для эпизода с большей степенью сложности потребуется больше данных для кодирования с заданным уровнем качества, чем для эпизода с меньшей степенью сложности при одинаковом уровне качества. Таким образом, CRF будет поддерживать постоянный уровень качества при кодировании, по сравнению с поддержанием постоянной скорости передачи в битах как это осуществляется при кодировании с постоянной скоростью передачи в битах. Термины уровень качества и качественный уровень являются взаимозаменяемыми.
Сущность изобретения
Предложены способы, компьютерные программы, машиночитаемые носители и кодер как указано в прилагаемой формуле изобретения.
В варианте реализации предложен способ кодирования входного видеосигнала в виде гибридного видеопотока, причем способ включает: прием входного видеосигнала с первым разрешением; получение указания требуемого уровня качества для кодирования, причем требуемый уровень качества устанавливается одной или более скоростями передачи в битах для гибридного видеопотока, причем указанный видеопоток содержит базовый кодированный поток со вторым разрешением и множество потоков улучшения с каждым из первого и второго разрешений, причем первое разрешение выше второго разрешения; кодирование каждого из множества потоков улучшения посредством: генерирования набора остаточных сигналов на основании разности между входным видеосигналом и восстановленным видеосигналом с соответствующим разрешением потока улучшения; определения параметров квантования для набора остаточных сигналов на основании требуемого уровня качества; квантования набора остаточных сигналов на основании параметров квантования; и создания кодированного потока из набора квантованных остаточных сигналов.
Способ позволяет установить управление скоростью в соответствии с требуемым показателем качества или скоростью передачи в битах. Поскольку способ используется для гибридных потоков, способ позволяет задать квантование двух различных потоков улучшения.
Другие аспекты изобретения будут очевидны из прилагаемой формулы изобретения.
Краткое описание графических материалов
Один или более примеров будут описаны со ссылкой на прилагаемые графические материалы, на которых:
на фиг. 1 показана блок-схема примера кодера с первым уровнем детализации;
на фиг. 2 показана блок-схема примера декодера с первым уровнем детализации;
на фиг. 3 показана блок-схема примера кодера со вторым уровнем детализации;
на фиг. 4 показана блок-схема контроллера скорости в соответствии с первым примером;
на фиг. 5 показана блок-схема контроллера скорости в соответствии со вторым примером;
на фиг. 6 показана блок-схема контроллера скорости улучшения в соответствии с примером;
на фиг. 7А показана блок-схема примера контроллера скорости, используемого в кодере для первого потока улучшения;
на фиг. 7В показана блок-схема примера контроллера скорости, используемого в кодере для множества потоков улучшения;
на фиг. 8 показана блок-схема контроллера скорости в соответствии с третьим примером;
на фиг. 9 показана блок-схема контроллера скорости в соответствии со четвертым примером;
на фиг. 10А показан пример применения квантования;
на фиг. 10В показан пример применения квантования с переменной мертвой зоной;
на фиг. 11 показана блок-схема, на которой показан способ управления скоростью в соответствии с примером.
Подробное описание варианта(ов) реализации
В изобретении описывается гибридная технология обратного кодирования. Технология представляет собой гибкий, адаптивный, высокоэффективный и недорогой в отношении вычислений формат коди- 1 043454 рования, который объединяет различные форматы кодирования видео, базовый кодек (т.е. кодердекодер), (например, AVC/H.264, HEVC/H.265 или любой другой существующий или разработанный в будущем кодек, а также нестандартные алгоритмы, такие как VP9, AV1 и другие) с по меньшей мере двумя уровнями улучшения кодированных данных.
В основной структуре схемы кодирования используют сигнал источника с пониженным разрешением, кодированный с помощью базового кодека, добавляют данные первого уровня коррекции или улучшения к декодированному выходному сигналу базового кодека для генерирования скорректированного изображения, а затем добавляют данные дополнительного уровня коррекции или улучшения к варианту с увеличенным разрешением скорректированного изображения.
Таким образом, некоторые примеры, описанные в данной заявке, предназначены для кодирования сигнала в набор потоков данных, т.е. данные, которые изменяются с течением времени. Некоторые примеры относятся к кодеру или процессу кодирования, который генерирует набор потоков, включающий в себя базовый поток и один или более потоков улучшения, в котором обычно используются два потока улучшения. Следует отметить, что базовый поток может быть выполнен с возможностью декодирования аппаратным декодером, в то же время поток(и) улучшения может быть пригоден для реализации с обработкой посредством программного обеспечения с приемлемой потребляемой мощностью.
В некоторых примерах предложена структура кодирования, которая создает множество степеней свободы, которые обеспечивают высокую гибкость и адаптируемость во многих ситуациях, таким образом делая формат кодирования подходящим для многих вариантов использования, включая передачу с помощью технологии over-the-top (OTT), потоковое видео, прямая трансляция UHD. Это также обеспечивает низкую сложность видеокодирования.
Как правило, набор потоков, который может называться в данной заявке гибридным потоком, декодируют и объединяют для генерирования выходного сигнала для изображения. Он может содержать выходной восстановленный видеосигнал с таким же разрешением, что и первоначальный входной видеосигнал. Хотя декодированный сигнал базового кодека не предназначен для просмотра, он представляет собой полностью декодированный видеосигнал с низким разрешением, обеспечивая выходной сигнал, совместимый с существующими декодерами, там, где это считается целесообразным, также используемый как выходной сигнал низкого разрешения. Базовый поток и первый поток улучшения могут дополнительно декодироваться и объединяться для просмотра как скорректированный видеопоток низкого разрешения.
В примере технологии видеокодирования, описанной в данной заявке, используется минимальное количество относительно простых средств кодирования. При синергетическом сочетании они могут обеспечить улучшение визуального качества при сравнении с изображением полного разрешения, кодированным с помощью базового кодека, в то же время обеспечивая гибкость генерирования таким способом, которым они могут быть использованы.
Способы и устройства основываются на общем методе, который построен на существующем алгоритме кодирования и/или декодирования (например, стандарты MPEG, такие как AVC/H.264, HEVC/H.265, и т.д., а также нестандартные алгоритмы, такие как VP9, AV1 и другие), который служит основой для уровня улучшения. Уровень улучшения служит соответственно для различных методов кодирования и/или декодирования. Идея, лежащая в основе общего метода, заключается в иерархическом кодировании/декодировании кадра видео, в отличие от использования методов на основе блоков, как это реализовано в семействе алгоритмов MPEG. Иерархическое кодирование кадра включает генерирование остаточных сигналов для полного кадра, а затем уменьшая кадр или исключая каждый десятый элемент кадра и т.д.
Пример процесса кодирования показан на блок-схеме на фиг. 1. Входной видеосигнал полного разрешения обрабатывают для генерирования различных кодированных потоков. Базовый кодированный поток создают путем подачи варианта входного видеосигнала с пониженным разрешением на базовый кодек (например, AVC, HEVC или любой другой кодек). Базовый кодированный поток может содержать выходной сигнал базового кодера базового кодека. Первый кодированный поток для уровня улучшения (кодированный поток уровня 1) создают путем обработки остаточных сигналов, полученных путем получения разности между восстановленным видеосигналом базового кодека и вариантом входного видеосигнала с пониженным разрешением. Восстановление кодированного базового потока может включать прием декодированного базового потока от базового кодека. Второй кодированный поток для уровня улучшения (кодированный поток уровня 2) создают путем обработки остаточных сигналов, полученных путем получения разности между вариантом входного видеосигнала с повышенным разрешением скорректированного варианта восстановленного базового кодированного видеосигнала и входным видеосигналом.
В некоторых случаях компоненты, показанные на фиг. 1, могут предусматривать обычный кодер низкой сложности. В некоторых случаях потоки улучшения могут генерироваться процессом кодирования, который составляет часть кодера низкой сложности, причем кодер низкой сложности может быть выполнен с возможностью управления независимым базовым кодером и декодером (например, помещенный в корпус как базовый кодек). В других случаях базовый кодер и декодер могут поставляться как
- 2 043454 часть кодера низкой сложности. В одном случае кодер низкой сложности, показанный на фиг. 1, может рассматриваться в виде оболочки для базового кодека, причем функциональные возможности базового кодека могут быть скрыты от объекта, реализующего кодер низкой сложности.
Видеосигнал представляет собой видеосигнал с повышенным разрешением и дополнительно объединенный с декодированными остаточными сигналами, полученными из кодированного потока уровня 2.
Возвращаясь к фиг. 1, примерная топология кодера на общем уровне выглядит следующим образом. Кодер 100 содержит вход I для приема входного сигнала 10. Входной сигнал 10 может содержать видео полного (или наивысшего) разрешения, причем кодер применяется покадрово. Вход I соединяется с блоком понижения разрешения 105D и блоком 100-2 обработки. Блок 105D понижения разрешения подает выходной сигнал на базовый кодек 120 на базовом уровне кодера 100. Блок 105D понижения разрешения также подает выходной сигнал на блок 100-1 обработки. Блок 100-1 обработки передает выходной сигнал на блок 105U повышения разрешения, который, в свою очередь, подает выходной сигнал на блок 100-2 обработки. Каждый из блоков 100-2 и 100-1 обработки содержат один или более следующих модулей: блок 110 преобразования, блок 120 квантования и блок 130 энтропийного кодирования.
Базовый поток в основном создается с помощью указанного выше процесса. Другими словами, понижается разрешение входного видеосигнала (т.е. к входному видеосигналу применяют операцию понижения разрешения для генерирования входного видеосигнала пониженного разрешения). Видеосигнал пониженного разрешения затем кодируют с помощью первого базового кодека (т.е. к видеосигналу пониженного разрешения применяют операцию кодирования для генерирования кодированного базового потока с помощью первого или базового кодека). Предпочтительно, первый или базовый кодек представляет собой кодек, подходящий для аппаратного декодирования. Кодированный базовый поток может называться базовым слоем или базовым уровнем.
Как указано выше, поток улучшения может содержать два потока. Первый уровень улучшения обеспечивает набор поправочных данных, которые могут быть объединены с декодированным вариантом базового потока для генерирования скорректированного изображения. Первый поток улучшения показан на фиг. 1 и 3 в виде кодированного потока уровня 1.
Для генерирования кодированного потока уровня 1 декодируют кодированный базовый поток (т.е. к кодированному базовому потоку применяют операцию декодирования для генерирования декодированного базового потока). Затем получают разность между декодированным базовым потоком и входным видеосигналом пониженного разрешения (т.е. к входному видеосигналу пониженного разрешения и декодированному базовому потоку применяют операцию вычитания для генерирования первого набора остаточных сигналов). В данной заявке термин остаточные сигналы используется известным в данной области техники образом, другими словами, как погрешность между опорным кадром и восстановленным кадром. В данной заявке восстановленный кадр представляет собой декодированный базовый поток, а опорный кадр представляет собой входной видеосигнал пониженного разрешения. Таким образом, остаточные сигналы, используемые на первом уровне улучшения, можно рассматривать как скорректированный видеосигнал, поскольку они корректируют декодированный базовый поток до входного видеосигнала пониженного разрешения, который использовался при операции базового кодирования. Затем первый набор остаточных сигналов кодируют с использованием первого блока 100-1 кодирования (который может также называться первым кодером или первым кодером улучшения) для генерирования кодированного потока уровня 1 (т.е. к первому набору остаточных сигналов применяют операцию кодирования для генерирования первого потока улучшения).
На фиг. 2 показана блок-схема процесса декодирования, который может соответствовать процессу кодирования, показанному на фиг. 1. Процесс декодирования разделяется на две половины, как показано штриховой линией. Ниже штриховой линии находится базовый уровень декодера 200. Базовый уровень может быть успешно реализован в аппаратном обеспечении. Выше штриховой линии находится уровень улучшения, который может быть успешно реализован в программном обеспечении. Декодер 200 может содержать только процессы уровня улучшения или, при необходимости, комбинацию процессов базового уровня и процессов уровня улучшения. Декодер 200 может быть успешно реализован в программном обеспечении, главным образом, на уровне улучшения, и может надлежащим образом соответствовать существующей технологии декодирования, в частности, существующей технологии аппаратного обеспечения. Существующая технология означает более раннюю технологию, ранее разработанную и проданную, которая уже присутствует на рынке и которую будет затруднительно и/или дорого заменить, и которая может по-прежнему использоваться для декодированных сигналов. В других случаях базовый уровень может содержать любое и/или разработанное в будущем средство или технологию кодирования.
Топология декодера на общем уровне представлена следующим образом. Декодер 200 содержит вход (не показан) для приема одного или более входных сигналов, содержащих кодированный базовый поток, кодированный поток уровня 1 и кодированный поток уровня 2 вместе с необязательными заголовками, содержащими дополнительную декодирующую информацию (такую как информация о локальной и глобальной конфигурации). Декодер 200 содержит базовый декодер 220 на базовом уровне и блоки 200-1 и 200-2 обработки на уровне улучшения. Базовый декодер 220 может составлять часть прикладного базового кодека (например, функцией декодирования или блоком базового кодека). Также предусмотрен
- 3 043454 блок 205U повышения разрешения между блоками 200-1 и 200-2 обработки для подачи на блок 200-2 обработки варианта сигнала с повышенным разрешением, выдаваемого блоком 200-1 обработки.
Декодер 200 принимает один или более входных сигналов и направляет три потока, сгенерированных кодером 100. Кодированный базовый поток направляют и декодируют посредством базового декодера 220, который соответствует базовому кодеку 120, используемому в кодере 100, и который предназначен для реверсирования процесса кодирования на базовом уровне. Кодированный поток уровня 1 обрабатывается посредством блока 200-1 декодера 200 для восстановления первых остаточных сигналов, созданных кодером 100. Блок 200-1 соответствует блоку 100-1 обработки в кодере 100 и на базовом уровне предназначен для реверсирования или по существу реверсирования обработки блока 100-1. Выходной сигнал базового декодера 220 объединяется с первыми остаточными сигналами, полученными из кодированного потока уровня 1. Посредством блока 205U повышения разрешения повышается разрешение объединенного сигнала. Кодированный поток уровня 2 обрабатывается посредством блока 200-2 для восстановления дополнительных остаточных сигналов, созданных кодером 100. Блок 200-2 соответствует блоку 100-2 обработки кодера 100 и на базовом уровне предназначен для реверсирования или по существу реверсирования обработки блока 100-2. Сигнал с повышенным разрешением от блока 205U повышения разрешения объединяется с дополнительными остаточными сигналами, полученными из кодированного потока уровня 2 для создания восстановления уровня 2 входного сигнала 10. Восстановление уровня 2 входного сигнала 10 может использоваться как декодированный видеосигнал с тем же разрешением, что и первоначальный входной видеосигнал. Кодирование и декодирование, описанное в данной заявке, может генерировать восстановление с потерями или без потерь первоначального входного сигнала 10, в зависимости от конфигурации кодера и декодера. Во многих случаях восстановление уровня 2 входного сигнала 10 может представлять собой восстановление с потерями первоначального входного видеосигнала, причем потери имеют уменьшенное или минимальное влияние на восприятие декодированного видеосигнала.
Как указано выше, поток улучшения может содержать два потока, а именно: кодированный поток уровня 1 (первый уровень улучшения) и кодированный поток уровня 2 (второй уровень улучшения). Кодированный поток уровня 1 обеспечивает набор поправочных данных, которые могут быть объединены с декодированным вариантом базового потока для генерирования скорректированного изображения. Кодированный поток уровня 2 обеспечивает набор данных коррекции или улучшения, который добавляет мелкие детали к скорректированному изображению, сгенерированному посредством объединения декодированного потока уровня 1 и декодированного базового потока.
На фиг. 3 более подробно показан процесс кодирования, показанный на фиг. 1. Кодированный базовый поток создается непосредственно базовым кодером 120Е и, в случае необходимости, может подвергаться квантованию и энтропийному кодированию. В некоторых случаях эти последние процессы могут выполняться в ходе кодирования посредством базового кодера 120Е. Для генерирования кодированного потока уровня 1 декодируют кодированный базовый поток в кодере 100 (т.е. к кодированному базовому потоку в базовом блоке 120D декодирования применяют операцию декодирования базового потока). Базовый блок 120D декодирования показан в составе базового уровня кодера 100 и показан отдельно от соответствующего базового кодирующего блока 120Е. Например, базовый декодер 120D может представлять собой декодирующий компонент, который служит дополнением для кодирующего компонента в виде базового кодера 120Е с базовым кодеком. В других примерах базовый блок 120D декодирования вместо того, чтобы входить в состав уровня улучшения, в частности, может входить в состав блока 100-1 обработки.
Возвращаясь к фиг. 3, получают разность между выходным сигналом декодированного базового потока от базового блока 120D декодирования и входным видеосигналом пониженного разрешения (т.е. к входному видеосигналу пониженного разрешения и декодированному базовому потоку применяют операцию вычитания 110-S для генерирования первого набора остаточных сигналов). В данной заявке термин остаточные сигналы используется известным в данной области техники образом; другими словами, остаточные сигналы представляют погрешность или разности между опорным сигналом или кадром и восстановленным сигналом или кадром. В данной заявке восстановленный сигнал или кадр представляет собой декодированный базовый поток, а опорный сигнал или кадр представляет собой входной видеосигнал пониженного разрешения. Таким образом, остаточные сигналы, используемые на первом уровне улучшения, можно рассматривать как сигнал коррекции, поскольку они выполнены с возможностью коррекции будущего декодированного базового потока до входного видеосигнала пониженного разрешения, который использовался при операции базового кодирования, или до более близкого приближения. Это является полезным, поскольку может скорректировать особенности или другие отличительные свойства базового кодека. К ним, в частности, относятся: алгоритмы компенсации движения, применяемые базовым кодеком, квантование и энтропийное кодирование, применяемое базовым кодеком и регулировки блоков, применяемые базовым кодеком.
Компоненты блока 100-1 на фиг. 1 более подробно показаны на фиг. 3. В частности для получения кодированного потока уровня 1 первый набор остаточных сигналов преобразуют, осуществляют его квантование и энтропийное кодирование. На фиг. 3 операцию 110-1 преобразования применяют к перво- 4 043454 му набору остаточных сигналов; операцию 120-1 квантования применяют к преобразованному набору остаточных сигналов для генерирования набора квантованных остаточных сигналов; и операцию 130-1 энтропийного кодирования применяют к квантованному набору остаточных сигналов для генерирования кодированного потока уровня 1 на первом уровне улучшения. Однако, следует отметить, что в других примерах может выполняться только этап 120-1 квантования или только этап 110-1 преобразования. Энтропийное кодирование может не использоваться или может необязательно использоваться в дополнение к одному или обоим из этапа 110-1 преобразования и этапа 120-1 квантования. Операция энтропийного кодирования может представлять собой энтропийное кодирование любого подходящего типа, такое как операция кодирования Хаффмана или операция кодирования длин серий (RLE; run-length encoding), или комбинация как операции кодирования Хаффмана, так и операции RLE.
Как указано выше, поток улучшения может содержать кодированный поток уровня 1 (первый уровень улучшения) и кодированный поток уровня 2 (второй уровень улучшения). Первый уровень улучшения можно рассматривать для обеспечения скорректированного видеосигнала на базовом уровне, иными словами, например, для коррекции особенностей кодера. Второй уровень улучшения можно рассматривать для обеспечения дополнительного уровня улучшения, который используют для преобразования скорректированного видеосигнала в первоначальный входной видеосигнал или его близкое приближение. Например, второй уровень улучшения может добавлять мелкие детали, которые теряются при понижении разрешения и/или помогает корректировать от ошибок, которые вводятся одним или более из операции 110-1 преобразования и операции 120-1 квантования.
Следует отметить, что компоненты, показанные на фиг. 1 и 3, могут производить действия над блоками или единицами кодирования данных, например, соответствующими 2x2 или 4x4 частям кадра при конкретном уровне разрешения. Компоненты производят действия без каких-либо межблоковых зависимостей, следовательно они могут применяться параллельно ко множеству блоков или единиц кодирования в пределах кадра. Это отличается от сравнительных схем кодирования видеосигналов, в которых имеются зависимости между блоками (например, либо пространственные зависимости, либо временные зависимости). Зависимости сравнительных схем кодирования видеосигналов ограничивают уровень параллелизма и требуют более высокой сложности.
Предпочтительно, операция 110-1 преобразования представляет собой преобразование направленной декомпозиции, такое как преобразование по принципу Адамара. В основном, преобразование может применяться с использованием матрицы преобразования, которую применяют к плоскому (т.е. одномерному массиву) блоку остаточных элементов (например, соответствующих блоку элементов изображения, такому как канал компонента цвета во входном сигнале). Как описано выше, эти блоки могут также называться единицами кодирования, поскольку они являются основными блоками, в которых применяются процессы кодера и декодера. Для единицы кодирования размером 2x2 можно применять матрицу Адмара размером 4x4, а для единицы кодирования размером 4x4 можно применять матрицу Адмара размером 16x16. Эти два вида преобразования могут называться преобразованием направленной декомпозиции (DD) и преобразования направленной декомпозиции в квадрате (DDS). Последнее преобразование называется так называемым, поскольку его можно рассматривать как многократное применение преобразования направленной декомпозиции. Оба имеют малое ядро, которое применяют непосредственно к остаточным сигналам.
В качестве примера первое преобразование имеет ядро размером 4x4, которое применяют к плоскому блоку 2x2 остаточных сигналов (R). Полученные коэффициенты (С) могут определяться следующим образом:
/Соо\ /1 1 1 1 \/Roo\ | coi \ / 1 -1 1 -1\Roi
С10 11 1 -1 -1R \с11/ \ 1 -1 -1 1 / XRn/
Следуя этому, второе преобразование имеет ядро размером 16x16, которое применяют к плоскому блоку 4x4 остаточных сигналов. Полученные коэффициенты являются следующими:
Си
Си = С20 С21 С22 С30 Сз1
Предпочтительно, операция 120-1 квантования выполняется с использованием линейного квантова- 5 043454 теля. Линейный квантователь может использовать мертвую зону переменного размера. Это более подробно описывается ниже со ссылкой на фиг. 10А и 10В.
В одном случае кодер 100, показанный на фиг. 1 и 3, а также декодер 200, показанный на фиг. 2, описанные в данной заявке, могут применяться к так называемым плоскостям данных, которые отражают различные цветовые компоненты видеосигнала. Например, компоненты и способы, описанные в данной заявке, могут применяться к различным плоскостям YUV или RGB данных, отражающих различные цветовые каналы. Различные цветовые каналы могут обрабатываться параллельно. Следовательно, ссылки на наборы остаточных сигналов, как описано в данной заявке, могут содержать множество наборов остаточных сигналов, где каждый цветовой компонент имеет другой набор остаточных сигналов, который составляет часть объединенного потока улучшения.
Со ссылкой одновременно на фиг. 1 и 3, для генерирования кодированного потока уровня 2 создают дополнительный уровень информации улучшения путем создания и кодирования дополнительного набора остаточных сигналов в блоке 100-2. Дополнительный набор остаточных сигналов представляет собой разность между вариантом с повышенным разрешением (посредством блока 105U повышения разрешения) скорректированного варианта декодированного базового потока (опорного сигнала или кадра) и входным сигналом 10 (требуемым сигналом или кадром).
Для достижения восстановления скорректированного варианта декодированного базового потока, как было бы сгенерировано в декодере 200, по меньшей мере некоторые из этапов обработки блока 100-1 реверсируются, чтобы имитировать процессы декодера 200 и учесть по меньшей мере некоторые потери и особенности процессов преобразования и квантования. С этой целью блок 100-1 содержит инверсный блок 120-li квантования и инверсный блок 110-li преобразования. Квантованный первый набор остаточных сигналов инверсно квантуют в блоке 120-li инверсного квантования и инверсно преобразуют в блоке 110-li инверсного преобразования в кодере 100 для восстановления варианта со стороны декодера первого набора остаточных сигналов. Для восстановления входного сигнала блока 105U повышения разрешения могут дополнительно выполняться другие операции фильтрации.
Декодированный базовый поток от декодера 120D объединяют с вариантом со стороны декодера первого набора остаточных сигналов (т.е. выполняют операцию 110-С суммирования декодированного базового потока и варианта со стороны декодера первого набора остаточных сигналов). Операция 110-С суммирования генерирует восстановление варианта входного видеосигнала с пониженным разрешением, такого, который будет, по всей вероятности, сгенерирован в декодере - т.е. восстановленный видеосигнал с разрешением уровня 1). Как показано на фиг. 1 и 3, затем повышают разрешение восстановленного базовым кодеком видеосигнала посредством блока 105U повышения разрешения.
Затем сигнал с повышенным разрешением (т.е. восстановленный сигнал или кадр) сравнивают с входным сигналом 10 (т.е. требуемым или опорным сигналом или кадром) для создания второго или дополнительного набора остаточных сигналов (т.е. к повторно созданному потоку с высоким разрешением применяют операцию 100-S вычитания для генерирования дополнительного набора остаточных сигналов). Затем дополнительный набор остаточных сигналов обрабатывают в блоке 100-2, чтобы преобразовать его в кодированный поток уровня 2 (т.е. операцию кодирования затем применяют к дополнительному набору остаточных сигналов для генерирования кодированного потока дополнительного улучшения).
В частности, преобразуют дополнительный набор (т.е. операцию 110-2 преобразования выполняют на дополнительном наборе остаточных сигналов для генерирования дополнительного преобразованного набора остаточных сигналов). Преобразованные остаточные сигналы затем квантуют и энтропийно кодируют способом, описанным выше в отношении первого набора остаточных сигналов (т.е. операцию 120-2 квантования применяют к преобразованному набору остаточных сигналов для генерирования дополнительного набора квантованных остаточных сигналов; и операцию 130-2 энтропийного кодирования применяют к квантованному дополнительному набору остаточных сигналов для генерирования кодированного потока уровня 2, содержащего дополнительный уровень информации улучшения). Однако может выполняться только этап 120-1 квантования или только этап преобразования и квантования. Кроме того, необязательно может использоваться энтропийное кодирование. Предпочтительно, операция энтропийного кодирования представляет собой операцию кодирования Хаффмана или операцию кодирования длин серий (RLE) или и то и другое.
Таким образом, как показано на фиг. 1 и 3 и описано выше, выходной сигнал процесса кодирования представляет собой базовый поток и один или более потоков улучшения с уровнем улучшения, который предпочтительно содержит первый уровень улучшения и дополнительный уровень улучшения.
На фиг. 1-3 показан пример схемы кодирования и декодирования, в которой могут применяться некоторые аспекты данного изобретения. Один аспект изобретения представляет собой возможность адаптировать скорость передачи данных гибридного потока, при этом сохраняя требуемый уровень качества (например, требуемый уровень качества для выходного декодированного видеосигнала). Аспект гибридной методики кодирования состоит в том, что методика позволяет осуществлять параллельное кодирование и декодирование потока данных. Поскольку методика не основывается на внутриблочной информации, независимо от того, является ли она внутрикадровой или межкадровой, каждый кадр, и, конечно, отдельные части кадра могут обрабатываться по-отдельности. В целях управления скоростью данная
- 6 043454 гибкость позволяет устанавливать разные метрики для каждого потока улучшения, поскольку можно независимо управлять различными компонентами кодирования каждого уровня улучшения. Таким образом, это обеспечивает улучшенную и упрощенную методику управления скоростью.
С помощью гибридных потоков, таких как набор из трех потоков, подаваемых на выход кодером 100, требуемый уровень качества для гибридного потока в целом, например, на основании ограничений пропускной способности, может быть реализован путем применения управления скоростью для одного или более из трех потоков. Управление скоростью может применяться путем определения требуемого качества или скоростей передачи в битах для отдельных потоков в пределах ресурса скорости передачи в битах. Поскольку каждый поток улучшения представляет разрешение видео данных при преобразовании для просмотра, управление скоростью передачи данных посредством метрики качества гарантирует, что гибридный поток может кодировать и доставлять данные с известным качеством.
На фиг. 4 показано схематическое представление первого примера контроллера 400 скорости. Контроллер 400 скорости данного примера содержит контроллер 402 скорости улучшения. Контроллер 402 скорости улучшения выполнен с возможностью управления скоростью передачи в битах каждого из потоков улучшения, показанных на фиг. 1-3, (например, потоков уровня 1 и уровня 2) путем установки параметров квантования Qi для каждого потока. На фиг. 4 контроллер 402 скорости улучшения подает на выход два параметра квантования: первый параметр Q1 квантования для первого (уровень 1) потока улучшения и второй параметр Q2 квантования для второго (уровень 2) потока улучшения. Следует отметить, что в некоторых реализациях уровни потоков улучшения могут помечаться в обратном порядке таким образом, что поток с наибольшим разрешением является уровнем 0, а поток с более низким разрешением является уровнем 1.
В примере, показанном на фиг. 4 показан контроллер 400 скорости, реализованный в соответствии с первым режимом управления скоростью. В этом режиме управления скоростью не предоставляется внешний требуемый уровень качества. По существу, первый и второй параметры Q1 и Q2 квантования могут быть выбраны на основании внутренних логических схем управления и/или внутренних измерений для схемы кодирования. Контроллер 400 скорости может также дополнительно определять скорость передачи в битах для базового уровня (не показан) или скорость передачи в битах для базового уровня может быть выбрана посредством параметра конфигурации. Несмотря на то что на фиг. 4 показаны два потока улучшения, описанный в данной заявке процесс может быть расширен на множество потоков улучшения (например, с увеличением уровней разрешения). В примерах, описанных в данной заявке, скорость передачи в битах можно выбирать в соответствии с бит-на-элемент изображения или скоростью bpp, где элемент изображения может содержать остаточный элемент (например, пиксель остаточного сигнала).
В примере, показанном на фиг. 4, как более подробно описывается ниже, контроллер 402 скорости улучшения определяет, для каждого уровня улучшения, уровень квантования, который представляется параметрами Q1 и Q2 квантования. Контроллер 400 скорости составляет часть кодера, такого как кодер 100 на любой из фиг. 1 и 3. Параметры квантования могут также передаваться декодеру, такому как декодер 200 на фиг. 2. Параметры квантования могут составлять часть информации заголовка для гибридного потока (или одного из потоков улучшения). Параметры квантования Q1 и Q2 можно определять покадрово таким образом, что для данного кадра параметры квантования используются для квантования каждой единицы кодирования в пределах кадра, например, как применяется блоками 120-1 и 120-2 квантования. Ссылка на кадр в данной заявке может относиться к конкретному компоненту кадра, например, одному из компонентов YUV или RGB, где набор компонентов кодируется аналогичным образом (и может кодироваться параллельно). В некоторых случаях могут присутствовать различные параметры квантования Q1 и Q2 для различных компонентов и/или общие параметры квантования Q1 и Q2 для каждого набора компонентов для данного кадра (например, параметры квантования выбирают для кадра и применяют аналогичным образом для каждого компонента).
Как показано на фиг. 4, в некоторых случаях контроллер 400 скорости может принимать необязательную обратную связь 604 кодирования. Обратная связь 604 кодирования может содержать информацию относительно процесса кодирования, которая может использоваться контроллером 402 скорости улучшения для выбора параметров Q1 и Q2 квантования. Обратная связь 604 кодирования может содержать обратную связь от процесса кодирования применительно к ранее кодированным кадрам. Обратная связь 604 кодирования может обеспечить возможность определения контроллером 602 скорости улучшения уровня квантования для каждого уровня улучшения.
Как более подробно описывается ниже, параметры Q1 и Q2 квантования могут использоваться блоками 120-1 и 120-2 квантования для определения размера ячейки (или выбора размеров ячеек) для использования в процессе квантования, причем меньший размер ячейки представляет более детальный уровень квантования, для которого требуется больше данных для кодирования (т.е. больше ячеек означает большее количество значений для энтропийного кодирования и меньшую вероятность нулевых серий, если применяется кодирование длин серий). Путем корректировки размера ячейки (и следовательно, уровня квантования) становится возможным управлять качеством кодируемого кадра, а также скоростью передачи данных. По этой причине, за счет изменения параметров квантования для каждого потока
- 7 043454 улучшения количество данных, требуемых для кодирования каждого кадра данных, может изменяться. В одном случае контроллер 402 скорости улучшения может быть выполнен с возможностью выбора параметров Qi и Q2 квантования в зависимости от сложности кадра, таким образом уменьшая скорость передачи данных для эпизодов низкой сложности и/или обеспечивая корректировку на основании возможности изменения пропускной способности.
В соответствии с первым режимом управления скоростью, как показано с помощью примера на фиг. 4, требуемый уровень качества в первом случае может представлять собой заданное внутреннее значение. Первый режим управления скоростью может применяться при наличии статической доступной для передачи скорости передачи в битах. В этом случае параметры квантования Qi и Q2 могут быть скорректированы во время передачи и/или генерирования кодированного гибридного потока для поддержания статической скорости передачи в битах. Независимость двух потоков улучшения обеспечивает хорошую гибкость для управления скоростью передачи в битах, например в некоторых случаях более мелкий уровень квантования для первого уровня улучшения может обеспечить возможность более грубого уровня квантования на втором уровне квантования и так обеспечить компромисс скорости передачи в битах (например, поскольку второй уровень улучшения обычно имеет более высокое разрешение и, следовательно, для него требуется больше битов). В других примерах, описанных ниже, второй режим управления скоростью представлен, когда может быть выбран требуемый уровень качества (например, пользователем, облачным контроллером или параметром конфигурации), чтобы лучше управлять скоростью передачи данных.
Как более подробно описывается ниже, в некоторых случаях количество данных, требуемых для кодирования каждого кадра, может изменяться и может изменяться в каждом уровне улучшения. Это может быть связано с непредсказуемым характером входного видеопотока и/или возможностью кодировать блоки данных независимо от других блоков (например, также на покадровом уровне). Для учета изменений в данных, требуемых для кодирования каждого кадра данных, предпочтительно выбрать требуемый уровень качества или коэффициент качества таким, чтобы буфер, используемый в процессе кодирования и/или декодирования, не был полным или превышал информационную емкость для большинства кадров. Это гарантирует, что более сложные кадры, для которых требуется больше данных для кодирования, могут храниться в буфере. Требуемый уровень качества может также использоваться в случаях, когда доступна переменная пропускная способность, например, там, где передача может занимать переменную часть доступной полосы пропускания, может быть необходимо работать с заданным уровнем качества, чтобы избежать использования слишком большой полосы пропускания.
На фиг. 5 показан другой пример контроллера 500 скорости, который реализует второй режим управления скоростью, как описано выше. В некоторых случаях контроллер 500 скорости, показанный на фиг. 5, может быть таким же, как и контроллер 400 скорости, но отображать изменения в рабочих параметрах, например, в случае использования и/или установки дополнительных компонентов. В других случаях контроллер 500 скорости, показанный на фиг. 5, может быть жестко запрограммирован или сконфигурирован для реализации второго режима управления скоростью, в отличие от первого режима управления скоростью.
Контроллер 500 скорости, показанный на фиг. 5, совместно использует некоторые элементы совместно с контроллером 400 скорости, показанным на фиг. 4. Контроллер 502 скорости улучшения снова конфигурируют для вывода набора параметров квантования Qi и Q2, которые могут управлять квантованием на двух уровнях кодирования, как описано выше. Контроллер 500 скорости отличается от контроллера 400 скорости, показанного на фиг. 4, тем, что он выполнен с возможностью приема указания требуемого уровня 510 качества для гибридного видеопотока. Затем контроллер 500 скорости выполнен с возможностью корректировки рабочих параметров улучшения и/или кодирующих компонентов базовых уровней для обеспечения этого требуемого уровня 510 качества. На фиг. 5 указание требуемого уровня 510 качества принимается контроллером 512 качества, который составляет часть контроллера 500 скорости. Контроллер 512 качества на фиг. 5 выполнен с возможностью управления контроллером 502 скорости улучшения в соответствии с указанием требуемого уровня 510 качества, например, контроллер 502 качества может корректировать работу базового уровня и уровня улучшения (включая кодирование потоков уровня 1 и уровня 2) для удовлетворения или достижения указания требуемого уровня 510 качества. На фиг. 5 контроллер 512 качества подает на выход базовые параметры 514, которые используются для кодирования базового уровня или уровня гибридного потока (например, управления базовым кодеком, таким как 120 на фиг. 1).
Таким образом, на фиг. 5, показан другой пример процесса управления скоростью, в котором базовый уровень, а также уровни улучшения гибридного потока кодируются с целью достижения подаваемого извне указания качества посредством контроллера 500 скорости.
Как показано на фиг. 5, контроллер 500 скорости принимает указание требуемого уровня 510 качества для кодирования. Указание требуемого уровня 510 качества может представлять собой заданное значение (например, как загруженное из файла конфигурации или другого хранилища данных) или может вводиться пользователем. Указание требуемого уровня 510 качества может содержать значение в пределах заданного диапазона значений, которое отображается на заданный диапазон значений качества
- 8 043454 для выходного декодированного видеосигнала (например, восстановленный сигнал уровня 2, подаваемый на выход декодером). Указание требуемого уровня 510 качества может быть формой коэффициента постоянной скорости; однако, относительный коэффициент постоянной скорости обычно предназначен для одиночных схем кодирования, например, таких как те, которые могут быть реализованы на базовом уровне, в отличие от гибридных схем, которые охватывают различные методы кодирования. В данной области техники существует сложность в адаптации таких гибридных схем для использования параметра, аналогичного коэффициенту постоянной скорости. Например, использование различных методик кодирования на базовом уровне и уровне улучшения означает, что невозможно управлять обоими уровнями с помощью общего совместного коэффициента качества и, кроме того, что оба уровня и подуровни потоков улучшения могут иметь переменную скорость передачи в битах, которая зависит от входного содержимого изображения.
В одном случае указание требуемого уровня 510 качества может содержать 8-битное целое значение, которое представляет собой определенный диапазон качества. Указание требуемого уровня 510 качества может быть определено таким образом, что диапазон подобен диапазону, используемому для известных видеокодеков, например, для AVC и HEVC диапазон 0-51 используется, где более низкие значения указывают на более высокое качество, а более высокие значения представляют более низкое качество. В этом случае контроллер 500 скорости и, в частности, контроллер 512 качества выполнен с возможностью преобразования указания требуемого уровня 510 качества в команды управления для контроллера 502 скорости улучшения и в базовые параметры 514 для базового кодека. Например, контроллер 512 качества управляет скоростями передачи в битах для базового и двух потоков улучшения путем установки базовых параметров 514 и управления контроллером 502 скорости улучшения. Указание требуемого уровня 510 качества, таким образом, устанавливает первоначальный коэффициент качества, который используется контроллером 512 качества для управления контроллером 502 скорости улучшения для определения параметров квантования Q1 и Q2 для уровней улучшения. Контроллер 500 скорости, таким образом, выбирает скорости передачи в битах для гибридных потоков для удовлетворения или достижения указания требуемого уровня 510 качества.
Указание требуемого уровня 510 качества может быть выражено с использованием одного или более различных первоначальных параметров. Указание требуемого уровня 510 качества может быть независимым от аналогичных указаний, доступных для базового слоя и/или слоев улучшения. Контроллер 512 качества может отображать указание требуемого уровня 510 качества на ряд базовых параметров 514 для управления базовым уровнем. Базовые параметры 514 могут включать один или более базовых режимов (таких как режимы постоянной скорости передачи в битах, переменной скорости передачи в битах или коэффициента постоянного качества), базовая скорость передачи в битах, базовый размер буфера и максимальная базовая скорость передачи в битах.
Указание требуемого уровня 510 качества может включать один параметр, например, целое число и/или может включать массив различных требуемых параметров. В одном случае указание требуемого уровня 510 качества может быть обеспечено вместе с дополнительными ограничениями и/или свойствами кодируемого входного видеосигнала. Например, указание требуемого уровня 510 качества может содержать, быть функцией, или может сопровождаться параметрами, такими как входное разрешение видеосигнала, доступная скорость передачи в битах и набор пространственных масштабируемых параметров (например, таких как, следует ли использовать выборку вверх/вниз в обоих направлениях, или только в горизонтальном направлении). В одном варианте реализации требуемый уровень 510 качества зависит от стандарта кодирования, используемого для кодирования видеопотока. В некоторых случаях указание требуемого уровня 510 качества может содержать, быть функцией, или может сопровождаться параметрами, которые можно использовать для установки или замещения значений по умолчанию для базовых параметров 514. Например, если базовый режим работы передается контроллеру 512 качества, это может использоваться для однозначного выбора базового режима в базовых параметрах 514. В предпочтительном случае указание требуемого уровня 510 качества является статическим для кодирования подаваемого видеосигнала или файла, например, используется для кодирования видео. Однако, с помощью контроллера 512 качества один или более основных параметров управления, включая параметры Q1 и Q2 квантования могут (и, по всей вероятности) изменяться от кадра к кадру, чтобы пытаться соответствовать требуемому уровню 510 качества.
Как описано со ссылкой на фиг. 1-3, на основании базовых параметров 514 кодер управляет базовым кодеком 102. Как описано выше, базовый кодек 102 принимает входной сигнал с пониженным разрешением таким образом, чтобы базовое кодирование и декодирование выполнялось с использованием базовых параметров 514 с разрешением, которое ниже разрешения входного видеосигнала. Аналогичным образом, поток улучшения уровня 1 обычно кодируют с таким же разрешением, как базовый уровень, а поток улучшения уровня 2 обычно кодируют с таким же или более высоким разрешением входного сигнала. Контроллер 512 качества выполнен с возможностью управления скоростью передачи в битах базового кодера и кодера улучшения для удовлетворения или достижения указания требуемого уровня 510 качества при наличии множества разрешений. Это снова означает, что управление скоростями передачи в битах является нетривиальной операцией.
В некоторых случаях параметры Q1 и Q2 квантования отличаются от базовых параметров 514. На- 9 043454 пример, базовые параметры 514 могут управлять базовым кодеком 120, показанным на фиг. 1 в черном ящике или модульным способом с использованием доступных внешних интерфейсов (например, аппаратных и/или прикладных программных интерфейсов) базового кодека. Однако, контроллер 500 скорости может иметь более привилегированный доступ к внешнему управлению блоками улучшения кодирования, следовательно, может установить параметры Q1 и Q2 квантования на более низком или более точном уровне управления. Базовый кодек может сам использовать параметры квантования в пределах его структуры кодирования; однако, эти параметры обычно не конфигурируются извне (например, может отсутствовать или быть ограничен доступ через интерфейс базового кодека и/или может отсутствовать возможность передачи информации к базовому кодеку для обеспечения изменений в параметрах квантования при кодировании). Предпочтительно, кодированный базовый поток или уровень кодируется независимо от потоков улучшения.
Необязательно, как более подробно описывается ниже, контроллер 502 скорости улучшения также принимает дополнительный входной сигнал, указывающий на обратную связь 504 кодирования. Это может включать в себя обратную связь от операций кодирования уровня улучшения (например, блоков 1001 и 100-2 на фиг. 1) и/или подкомпонентов этих операций. Это может включать в себя обратную связь от кодирования одного или более предыдущих кадров или блоков видеосигнала. Это также может включать в себя обратную связь от базового уровня (например, базового кодека, использующего стандартный интерфейс протоколирования).
С помощью контроллера 500 скорости, показанного на фиг. 5, уровень квантования может быть постоянным или изменяться, чтобы соответствовать или пытаться соответствовать указанию требуемого уровня 510 качества. Например, параметрами квантования Q1 и Q2 можно управлять, чтобы соответствовать одной или более скоростям передачи в битах или диапазонам скоростей передачи в битах, или ограничениям, которые выбирают на основании требуемого уровня 510 качества. В одном случае базовые параметры 514 выбирают как статические параметры для кодирования и параметры квантования Q1 и Q2 являются переменными в пределах контекста выбранных статических базовых параметров 514, чтобы соответствовать или пытаться соответствовать указанию требуемого уровня 510 качества.
В примерах, где уровень квантования изменяется, контроллер 502 скорости улучшения может выбирать границы параметров квантования Q1 и Q2 для каждого потока улучшения. Например, верхняя и нижняя границы могут быть установлены на основании указания требуемого уровня 510 качества таким образом, что субъективный уровень качества (который представляет собой уровень качества, воспринимаемый пользователем) остается неизменным или незаметным. Это позволяет контроллеру 500 скорости гибко кодировать видеопоток без ощутимой потери качества, даже в случае сложных эпизодов. Поскольку количество данных, хранящихся в выходном буфере, изменяется, необязательный модуль 504 обратной связи кодирования может предоставить дополнительную информацию относительно информационной емкости буфера контроллеру 502 скорости улучшения. Данная информация может использоваться для корректировки параметров Q1 и Q2 квантования для каждого потока улучшения.
На фиг. 6 показан пример контроллера 602 скорости улучшения. В примере показаны некоторые внутренние компоненты, которые могут быть реализованы в некоторых случаях для обеспечения одного или более контроллеров 402 и 502 скорости улучшения.
На фиг. 6 контроллер 602 скорости улучшения снова конфигурируют для вывода параметров Q1 и Q2 квантования для кодирования данного кадра (или единицы кодирования) видеосигнала. В примере на фиг. 6 контроллер 602 скорости улучшения корректирует скорость передачи в битах для каждого потока улучшения путем определения параметров Q1 и Q2 квантования на основании множества входных параметров. В частности, контроллер 602 скорости улучшения выполнен с возможностью определения параметров Q1 и Q2 квантования для каждого кадра в наборе множества кадров кодируемого видеосигнала. Обратную связь от кодирования предыдущего кадра можно использовать для установки параметров квантования Q1 и Q2 для текущего кадра.
Например, можно кодировать первый кадр f0 и параметры квантования Q1 и Q2 можно определять для этого первого кадра. Затем кодируют последующий кадр видеоданных fb В этом случае контроллер 602 скорости улучшения выполнен с возможностью, предпочтительно, использования кодированных данных от предшествующего кадра f0 для определения параметров квантования Q1 и Q2 для последующего кадра. Например, установки для предшествующего кадра (или одного или более предшествующих кадров) могут использоваться для определения первоначальных значений параметров Q1 и Q2 квантования для последующего кадра, причем контроллер 602 скорости улучшения выполнен с возможностью поиска новых значений для параметров Q1 и Q2 квантования с этой начальной точки. Таким образом, параметры кодирования от предыдущего кадра обеспечивают форму обратной связи для использования в установке параметров Q1 и Q2 квантования для последующих кадров. Поскольку гибридный видеопоток построен таким образом, что кадры могут кодироваться независимо друг от друга, в то время как следующий описывается со ссылкой на предшествующий кадр и последующий кадр для облегчения понимания, предшествующий кадр необязательно должен быть непосредственно предшествующим последующему кадру.
На фиг. 6 контроллер 602 скорости улучшения принимает указание требуемого уровня 610 качест
- 10 043454 ва. Это может включать в себя такое же указание требуемого уровня 510 качества, которое является входным сигналом для контроллера 500 скорости на фиг. 5. В других случаях контроллер 512 качества может корректировать указание требуемого уровня 510 качества перед его прохождением к контроллеру 602 скорости улучшения на фиг. 6. Указание требуемого уровня 610 качества является входным сигналом для вычислителя 620 параметров. Вычислитель 620 параметров выполнен с возможностью обработки указания требуемого уровня 610 качества (и необязательно одного или более дополнительных параметров) и вывода параметров Q'1 и Q'2 квантования для каждого потока улучшения, а также требуемой скорости BRD передачи в битах. Требуемая скорость BRD передачи в битах может включать в себя предполагаемую скорость передачи в битах для гибридного видеопотока (и/или одного или более из потоков улучшения) в случае, если выходные параметры Q1 и Q2 квантования используются для попытки соответствовать входному указанию требуемого уровня 610 качества. Контроллер 602 скорости улучшения дополнительно принимает указание 630 уровня инерциального качества, которое является входным сигналом для инерционного вычислителя 632 параметров. Инерциальный вычислитель 632 параметров воспроизводит функциональные возможности вычислителя 620 параметров, но принимает разные входные сигналы (и, следовательно, генерирует другой выходной сигнал). Например, вычислитель 620 параметров и инерциальный вычислитель 632 параметров могут содержать различные экземпляры общего класса программного кода и/или дубликатов общей аппаратной микросхемы. Инерциальный вычислитель 632 параметров выводит параметры Q1 и Q2 квантования для каждого потока улучшения, а также инерциальную скорость BRI передачи в битах. Инерциальная скорость BR1 передачи в битах может включать в себя предполагаемую скорость передачи в битах для гибридного видеопотока (и/или одного или более из потоков улучшения) в случае, если выходные параметры Q1 и Q2 квантования используются для попытки соответствовать входному инерциальному указанию требуемого уровня 630 качества. В заключение, контроллер 602 скорости улучшения также принимает входной сигнал 640 параметра кодирования. Это может включать в себя входной сигнал, аналогичный обратной связи 404 и 504 кодирования, показанной на фиг. 4 и 5. Входной сигнал 640 параметра кодирования может содержать один или более рабочих параметров, таких как один или более из типа кадра, скорости передачи в битах базового уровня, минимальной требуемой скорости передачи в битах (например, как определено контроллером 512 качества) и целевой скорости передачи в битах на основании предыдущего кодирования. Входной сигнал 640 параметра кодирования подается на вычислитель 642 диапазона скоростей передачи в битах. Вычислитель 642 диапазона скоростей передачи в битах принимает входной сигнал 640 параметра кодирования и определяет диапазон скорости передачи в битах, такой как максимальная и минимальная скорость передачи в битах для гибридного видеопотока (или для одного или более отдельных потоков улучшения).
Выходные сигналы вычислителя 620 параметров, вычислителя 632 инерциальных параметров и вычислителя 642 диапазона скоростей передачи в битах выводятся на корректировщик 650 качества. Корректировщик 650 качества выполнен с возможностью обработки входных сигналов и определения окончательного набора параметров квантования Q1 и Q2 для текущего кадра, подлежащего кодированию. В одном случае корректировщик 650 качества определяет, находятся ли один или более из принятых требуемой скорости передачи в битах BRD и инерциальной скорости передачи в битах BRI из вычислителя 620 параметров и вычислителя 632 инерциальных параметров в пределах диапазона скорости передачи в битах, выводимого вычислителем 642 диапазона скоростей передачи в битах. Если одна из входных скоростей передачи в битах находится в пределах диапазона скорости передачи в битах, соответствующий один из параметров квантования Q'1 и Q'2 и параметров квантования Q1 и Q2 выбирают и используют в качестве параметров квантования Q1 и Q2, которые выводятся контроллером 602 скорости улучшения. Если ни одна из входных скоростей передачи в битах не находится в пределах диапазона скоростей передачи в битах, то корректировщик 650 качества также выводит обновленное инерциальное указание требуемого уровня качества на вычислитель 632 качества инерциальных параметров. Обновленное инерциальное указание требуемого уровня качества представляет собой обновленную версию инерциального указания требуемого уровня 630 качества. Корректировщик 650 качества использует выходной сигнал вычислителя 620 параметров в качестве опорного сигнала для регулирования инерциального указания требуемого уровня 630 качества в направлении, которое связано с увеличением или уменьшением скорости передачи в битах, чтобы попасть в диапазон скоростей передачи в битах. Затем вычислитель 632 инерциальных параметров итеративно активируется для вывода скорректированных параметров квантования Q1 и Q2 и скорректированной инерциальной скорости передачи в битах BRI на основании обновленного инерциального указания требуемого уровня качества, принятого от корректировщика 650 качества. Этот цикл обратной связи может повторяться до тех пор, пока скорректированная инерциальная скорость передачи в битах BRI не попадет в диапазон скоростей передачи в битах из вычислителя 642 диапазона скоростей передачи в битах. Когда обнаруживается, что выходной сигнал скорости передачи в битах из одного или более из вычислителя 620 параметров и вычислителя 632 инерциальных параметров попадает в диапазон скоростей передачи в битах, и выводится окончательный набор параметров квантования Q1 и Q2, корректировщик 650 качества также выполнен с возможностью вывода инерциального указания требуемого уровня 652 качества, подлежащей использованию для следующего кадра (напри- 11 043454 мер, кадра n+1). Выходной сигнал требуемого уровня 652 качества можно использовать как инерциальное указание требуемого уровня 630 качества для следующего кадра (тогда как указание требуемого уровня 610 качества может быть постоянным для следующего кадра в зависимости от работы контроллера 512 качества).
Как описано выше, контроллер 602 скорости улучшения принимает несколько входных параметров для вывода окончательного набора параметров квантования Q1 и Q2 для каждого потока улучшения и инерциального указания качества кадра для следующего кадра на требуемом уровне 652 качества.
Для первого кадра видеоданных или в том случае, когда инерциальное указание требуемого уровня 630 качества недоступно, инерциальное указание требуемого уровня 630 качества может быть установлено как начальное указание требуемого уровня 610 качества. Как показано на фиг. 4, это может быть начальное значение, установленное пользователем, или значение, заранее определенное иным образом. Указание требуемого уровня 610 качества, инерциальное указание требуемого уровня 630 качества или инерциальное указание требуемого уровня 652 качества могут иметь общий формат и могут представлять собой любой подходящий объективный показатель качества. В одном случае они могут представлять собой 8-битовое целочисленное значение в пределах заранее определенного диапазона значений качества, представляющих воспринимаемое качество выходного декодированного видеосигнала.
Как вычислитель 620 параметров, так и вычислитель 632 инерциальных параметров определяют уровень квантования, требуемый для каждого уровня улучшения, на основании указания качества. Кроме того, на основании требуемого уровня квантования также вычисляется скорость передачи в битах, необходимая для кодирования кадра данных с требуемым качеством или близким к нему. Общее количество данных, необходимое для кодирования кадра с использованием описанной в данной заявке гибридной схемы кодирования, может зависеть от степени сложности эпизода в видеосигнале и поэтому может изменяться в зависимости от кадра. По существу, разные параметры квантования могут быть определены для разных кадров с постоянным указанием требуемого уровня 610 качества. Таким образом, контроллер 602 скорости улучшения представляет собой динамическую систему, в которой выходные сигналы компонентов изменяются для каждого кадра и для данного кадра.
Входной сигнал 640 параметра кодирования определяет ряд параметров, используемых в процессе кодирования. Они могут включать в себя целевой коэффициент скорости (или уровень качества) и целевую скорость передачи в битах. Входной сигнал 640 параметра кодирования также может включать в себя диапазон в виде максимального и минимального значения для таких параметров. Вычислитель 642 диапазона скоростей передачи в битах может сравнивать различные указания диапазона скоростей передачи в битах, предоставленные входным сигналом 640 параметра кодирования, для определения общего диапазона скоростей передачи в битах.
В некоторых примерах, подробно описанных ниже, кодер 100 использует буфер, который реализован в соответствии с моделью дырявого ведра, чтобы определять уровень квантования для кадра данных. Поскольку количество данных, необходимое для кодирования кадра, может варьироваться в зависимости от сложности кадра, содержимым буфера необходимо управлять таким образом, чтобы буфер не переполнялся (например, чтобы кодировалось больше данных, которые могут поддерживаться доступной пропускной способностью или скоростью передачи в битах). В этом случае входной сигнал 640 параметра кодирования может содержать измерения, связанные с буфером, такие как информационная емкость буфера и минимальная скорость передачи в битах для заполнения буфера. Таким образом, вычислитель 642 диапазона скоростей передачи в битах может использовать измерения, связанные с буфером (т.е. параметры дырявого ведра), для определения диапазона скорости передачи в битах для одного или более потоков улучшения.
При помощи контроллера 400 и 500 скорости, показанного на фиг. 4 и 5, и контроллера 600 скорости улучшения, показанного на фиг. 6, кадр видеоданных может быть закодирован с несколькими уровнями квантования, причем предпочтительно каждый из базового потока и двух потоков улучшения кодируется с разными уровнями квантования. Кодирование в этих примерах повторяется для нескольких кадров с использованием покадрового процесса. Следовательно, как описано выше, для каждого кадра процесс кодирования включает в себя восстановление кадра видеоданных с каждым соответствующим разрешением двух потоков улучшения и последующее сравнение восстановлений с видеоданными, полученными из кадра входного видеосигнала, причем указанные видеоданные соответствуют соответствующим разрешениям потоков улучшения. Таким образом, данное сравнение дает возможность устанавливать различия между первоначальным и восстановленным кадрами. Например, как показано на фиг. 1 и 3, для каждого кадра набор остаточных сигналов для кадра видеосигнала генерируется на каждом из двух уровней улучшения на основании сравнения, и эти остаточные сигналы кодируются с использованием параметров квантования для двух потоков улучшения, которые выводятся контроллером 400 и 500 скорости, показанном на фиг. 4 и 5 (например, посредством работы контроллера 600 скорости улучшения). Процесс может повторяться в течение нескольких кадров данных, чтобы закодировать полный видеосигнал (например, видеофайл или видеопоток для передачи). Кадры кодируются в гибридном потоке, чтобы соответствовать или пытаться соответствовать входному указанию требуемого уровня 510 или 610 качества. Это обеспечивает простой способ, с помощью которого технически неподготовленный пользо- 12 043454 ватель может установить сложные технические параметры квантования для нескольких различных методов кодирования, чтобы получить требуемый уровень качества.
На фиг. 7А и 7В представлено схематическое изображение приведенного в качестве примера кодера 700. Он может включать кодер 100, показанный на фиг. 1 и 3. На фиг. 7А и 7В показано, как контроллер скорости из предыдущих примеров (например, контроллер 400 или 500 скорости, показанный на фиг. 4 или 5) может быть реализован в контексте кодера 100, как показано на фиг. 1 или 3. На фиг. 7А показан контроллер 710 скорости, выполненный с возможностью управления блоком 720-1 квантования в первом кодере 700-1 улучшения. На фиг. 7В показан тот же контроллер 710 скорости, выполненный с возможностью управления блоками 720-1 и 720-2 квантования в первом кодере 700-1 улучшения и втором кодере 700-2 улучшения. Контроллер 710 скорости может содержать программу системы программного обеспечения (например, на быстром низкоуровневом языке, таком как С или C++) и/или выделенную электронную схему. На обеих фигурах показан базовый кодек 730, который выполнен с возможностью осуществления операций кодирования и декодирования в соответствии с методом базового кодирования видеосигналов, который отличается от кодирования уровней улучшения. Базовый кодек 730 выводит кодированный базовый поток (BS), первый кодер 700-1 улучшения выводит первый кодированный поток улучшения (LS1), а второй кодер 700-2 улучшения выводит второй кодированный поток улучшения (L2S). Приведенный в качестве примера кодер 700, показанный на фиг. 7А и 7В, также содержит буфер 740 для приема одного или более кодированных потоков. Буфер 740 используют для хранения и/или объединения кодированного базового потока и по меньшей мере одного из двух кодированных потоков улучшения. Буфер 740 может содержать программно определяемый буфер (например, зарезервированную область ресурсов памяти) и/или выделенный аппаратный буфер. Буфер 740 выполнен с возможностью объединения нескольких кодированных потоков для вывода гибридного видеопотока (HVS).
В примере на фиг. 7А и 7В контроллер 710 скорости принимает данные от базового уровня обработки (например, в по меньшей мере базовом кодере базового кодека 730) и буфера 740. Эти данные могут содержать входной сигнал 640 параметра кодирования, показанный на фиг. 6, или обратную связь 404 и 504 кодирования, показанную на фиг. 4 и 5.
На фиг. 7А показано использование буфера 740 по отношению к кодированному базовому потоку и первому кодированному потоку улучшения; на фиг. 7В показан другой пример, в котором буфер принимает кодированный базовый поток и оба кодированных потока улучшения. Тем временем процесс управления скоростью, представленный на фиг. 6-8, показан с двумя потоками улучшения. Количество потоков улучшения может составлять больше или меньше двух.
В примере, показанном на фиг. 7А, контроллер 710 скорости управляет квантованием в первом кодере 700-1 улучшения, предоставляя набор параметров квантования Q1. В примере, показанном на фиг. 7В, контроллер 710 скорости управляет квантованием в пределах обоих уровней кодирования улучшения путем предоставления параметров квантования соответствующим компонентам квантования, т.е. путем предоставления параметров квантования Q1 и Q2 блокам 720-1 и 720-2 квантования (которые могут представлять собой реализацию блоков 120-1 и 120-2 квантования на одной или более из фиг. 1 и 3). В еще одном случае (не показан) буфер 740 может быть выполнен с возможностью приема кодированного базового потока и второго кодированного потока улучшения.
В примерах, показанных на фиг. 7А и 7В, буфер 740 может быть выполнен с возможностью приема входных сигналов с переменными скоростями передачи в битах (например, кодированных потоков с переменными скоростями передачи в битах), в то время как выходной сигнал (т.е. гибридный видеопоток) считывается с постоянной скоростью передачи в битах. В других случаях выходной сигнал может выводиться с переменной скоростью передачи в битах, но ограничен указанием требуемого уровня качества, как описано со ссылкой на фиг. 6. Контроллер 710 скорости может считывать состояние из буфера 740 для обеспечения того, чтобы он не переполнялся или не становился пустым, и управлять данными, которые передаются в буфер, для обеспечения того, чтобы на его выходе всегда были данные, доступные для считывания. Например, входной сигнал 640 параметра кодирования, показанный на фиг. 6, может иметь минимальную скорость передачи в битах, необходимую для заполнения буфера 740, и максимальную скорость передачи в битах или информационную емкость буфера 740. Их можно использовать для управления диапазоном скоростей передачи в битах, как описано со ссылкой на фиг. 6.
На фиг. 8 показан третий пример контроллера 800 скорости, который можно использовать для управления скоростью передачи в битах одного или более потоков данных в кодере 100, показанном на фиг. 1 и 3. Его можно рассматривать как измененный вариант любого из ранее описанных кодеров. На фиг. 9 показан четвертый пример контроллера 900 скорости, который представляет собой более усовершенствованный измененный вариант третьего примера контроллера 800 скорости. На фиг. 8 и 9 показаны две возможные реализации контролера скорости, совместимого с моделью дырявого ведра. В частности, на фиг. 8 и 9 показан один способ, посредством которого может быть реализована необязательная обратная связь 404 или 504 кодирования, показанная на фиг. 4 и 5. Его можно рассматривать как измененный вариант использования инерциальных параметров, показанных на фиг. 6.
Как контроллер 800 скорости, так и контроллер 900 скорости, показанные на фиг. 8 и 9, принимают состояние 840, 940 буфера (такого как буфер 740, показанный на фиг. 7А и 7В) для генерирования набора параметров квантования Qt для текущего кадра t. Параметры квантования могут быть переданы компо- 13 043454 ненту квантования в одном или более конвейерах кодирования Уровня-1 и Уровня-2, как показано на фиг. 3. Хотя примеры на фиг. 8 и 9 приведены со ссылкой на один уровень улучшения, они могут быть адаптированы в соответствии с примерами, показанными на фиг. 4-6, для обеспечения параметров квантования для нескольких уровней улучшения (или повторной реализации для каждого из совокупности уровней улучшения).
В обоих примерах общая работа контроллера 800, 900 скорости может заключаться в следующем. Набор параметров квантования Qt корректируют на основании обратной связи из буфера. Эта обратная связь может указывать количество данных в буфере (например, информационную емкость и т.п.). Как на фиг. 8, так и на фиг. 9 указание количества данных в буфере (т.е. насколько заполнен буфер) принимается посредством сигнала 840, 940 из буфера. Затем это используется либо прямо, либо косвенно компонентом 820, 920 оценки Q для оценки набора параметров квантования Qt, которые используют в качестве рабочих параметров квантования.
Например, компонент 820 оценки Q, показанный на фиг. 8, может быть выполнен с возможностью приема сигнала 840 из буфера и определения того, приближается ли информационная емкость буфера к максимуму (т.е. становится заполненной). Это может выполняться прямо (например, с использованием указания оставшейся информационной емкости) и/или косвенно (например, с использованием скорости передачи в битах, такой как информационная емкость bpp). Если информационная емкость буфера приближается к максимуму, компонент 820 оценки Q выполнен с возможностью корректировки параметров квантования Qt, чтобы уменьшить количество требуемых данных. Аналогично использованию входного сигнала 640 параметра кодирования, показанного на фиг. 6, сигнал 840 из буфера может содержать (или можно использовать для того, чтобы определять) максимальный и минимальный диапазон (например, относящийся к размеру буфера), и параметры квантования могут быть скорректированы, чтобы, в свою очередь, скорректировать количество битов, требуемых для кодирования кадра, таким образом, чтобы оно попадало в диапазон.
В одном случае набор значений параметров квантования Qt может быть пропорционален количеству данных в буфере. Например, если в момент приема нового кадра в буфере находится большое количество данных (т.е. информационная емкость буфера приближается к максимуму), то компонент 820 оценки Q может установить высокое значение Qt (например, большой шаг или размер ячейки), чтобы уменьшить количество кодируемых остаточных данных.
В некоторых примерах параметр квантования Qt можно использовать для установки ширины шага квантования, причем ширина шага квантования обратно пропорциональна значению параметра квантования Qt. В этом случае низкие значения Qt могут соответствовать большим значениям ширины шага квантования, что приводит к меньшему количеству ячеек или групп квантования для данного диапазона остаточных значений, и, таким образом, набор значений параметров квантования Qt может быть обратно пропорционален количеству данных в буфере. В этом случае, если буфер относительно пуст, то контроллер скорости конфигурируется для установки высоких значений Qt (т.е. низких значений ширины шага) для кодирования большего количества остаточных данных в гибридный видеопоток. Могут применять разные методы в зависимости от того, как определяют ширину шага квантования на основании одного или более параметров квантования.
В общем, в примере, показанном на фиг. 8, контроллер 800 скорости обеспечивает процесс адаптивного управления скоростью, причем количество данных в буфере используют для определения уровня квантования для одного или более уровней улучшения.
В примере, показанном на фиг. 9, используют дополнительные компоненты для определения набора параметров квантования. В примере, показанном на фиг. 9, контроллер 900 скорости также принимает параметры кодирования от базового кодера. Они показаны как сигнал 942 от базового, который вводится в контроллер 900 скорости. Сигнал 942 от базового может составлять часть входного сигнала 640 параметра кодирования, показанного на фиг. 6. В одном случае сигнал 942 от базового может указывать скорость передачи в битах, которую использует базовый кодер (например, как часть базового кодека 120). Если базовый кодер выполнен с возможностью использования формата кодирования с переменной скоростью передачи в битах, то скорость передачи в битах, используемая базовым кодером, может изменяться по кадрам. Таким образом, текущую скорость передачи в битах базового кодера можно использовать для определения параметров квантования для потоков улучшения.
В одном случае сигнал 942 от базового также может указывать количество данных заполнителя, которые базовый кодер собирается добавить в свой поток. В этом случае кодер может заменить данные заполнителя базового кодера дополнительными данными потока улучшения, чтобы максимально увеличить доступную пропускную способность. В этом случае, если есть высокий уровень заполнения, контроллер 900 скорости может иметь возможность устанавливать значения параметра квантования Qt, которые приводят к меньшей ширине шага, таким образом, что в буфере принимается больше остаточных данных. Это возможно, потому что данные заполнителя могут быть удалены или заменены в базовом потоке кодера (например, либо перед буфером, либо в буфере), поскольку не требуется декодировать базовый кодированный поток.
На фиг. 9 контроллер 900 скорости содержит компонент 910 оценки целевого размера. Он принима- 14 043454 ет сигнал 940 из буфера и сигнал 942 от базового. Компонент 910 оценки целевого размера может быть выполнен с возможностью приема состояния буфера посредством сигнала 940 из буфера и информации относительно количества данных заполнителя, которые базовый кодер планирует добавить к кадру посредством сигнала 942 от базового. Следовательно, компонент оценки целевого размера определяет целевой размер данных для кадра. Количество данных, содержащихся в буфере, может быть указано параметром заполненности, который может быть нормализован в диапазоне от 0 до 1 или от 0% до 100%, где 60% указывают, что буфер заполнен на 60% (т.е. имеет 40% оставшегося места). В этом случае может быть определена функция отображения или таблица поиска для отображения ячеек заполненности на параметр целевого размера, причем целевой размер представляет собой целевой размер для следующего кадра, подлежащего кодированию одним или более из первого и второго уровней улучшения. В одном случае функция отображения или таблица поиска могут реализовывать нелинейное отображение, которое может быть установлено на основании результатов экспериментов. В одном случае оценка целевого размера также может быть установлена на основании параметра конфигурации, который указывает требуемую долю гибридного видеопотока, который должен быть заполнен потоком улучшения (например, с оставшейся частью гибридного видеопотока, заполняемого базовым потоком).
В примере, показанном на фиг. 9, целевой размер, определенный компонентом 910 оценки целевого размера, передается компоненту 920 оценки Q. На фиг. 9 компонент 920 оценки Q дополнительно принимает входные данные из буфера 930 параметров, который хранит набор параметров квантования Qt_1 из предыдущего кадра. Таким образом, аналогично фиг. 6 обеспечен механизм обратной связи, в котором количество данных, используемых для кодирования первого кадра, используют для установки параметров квантования для кодирования последующих кадров.
На фиг. 9 компонент 920 оценки Q принимает целевой размер от компонента 910 оценки целевого размера, набор параметров квантования Qt_1 из предыдущего кадра и размер текущего кадра (текущий размер данных), закодированный с набором параметров квантования Qt_1 из предыдущего кадра (текущий размер). Размер текущего кадра может быть предоставлен компонентом 940 оценки текущего размера. Компонент 940 оценки текущего размера может использовать по меньшей мере частичную реализацию по меньшей мере одного из конвейеров кодирования улучшения (например, компонентов L-1 или L-2) для определения текущего размера на основании входного сигнала из буфера 930 параметров. Компонент 940 оценки текущего размера может содержать версию вычислителя 632 инерциальных параметров, показанного фиг. 6, в том смысле, что он имитирует показатель размера для кодирования данного кадра с учетом набора данных кодирования из предыдущего кадра. В одном случае информация текущего размера может быть определена параллельной копией по меньшей мере одного из конвейеров кодирования улучшения, например текущий кадр должен быть квантован с параметрами квантования Qt для передачи, а компонент 940 оценки текущего размера принимает Qt_1 и определяет текущий размер на основании этих параметров квантования путем выполнения кодирования, которое не передается. В другом примере текущий размер может быть альтернативно получен из интерфейса облачной конфигурации, например, на основании предварительной обработки предварительно записанного видеосигнала. В этом другом примере, таком как показанный на фиг. 6, может не требоваться параллельная реализация.
На фиг. 9 компонент 920 оценки Q принимает свои входные данные (например, как описано выше) и вычисляет исходный набор ожидаемых параметров квантования Q't. В одном случае это может быть выполнено с использованием набора функций размера, которые отображают размер данных (например, выраженный целевым или текущим размером) на параметр квантования. Размер данных и/или параметр квантования могут быть нормализованы, например до значений от 0 до 1. Параметр квантования может быть связан с размером шага квантования, например н может представлять собой коэффициент качества, который обратно пропорционален размеру шага квантования и/или может представлять собой размер шага квантования.
В примере на фиг. 9 набор кривых может быть определен для отображения нормализованного размера на параметр квантования. Каждая кривая может иметь один или более из множителя и смещения, которые могут зависеть от свойств текущего кадра (например, они могут зависеть от сложности информации для кодирования в кадре). Множитель и смещение могут определять форму кривой. Множитель может применяться к функции нормализации размера, которая представляет собой функцию параметра квантования Q. В одном случае текущий размер (т.е. размер кадра t, кодированного с Qt_1) и Qt_1, можно использовать для определения точки в пространстве набора кривых. Эту точку можно использовать для выбора набора ближайших кривых из набора кривых. Это может быть кривая, которая находится выше точки, и кривая, которая находится ниже точки, или самая высокая или самая низкая кривая по отношению к точке. Набор ближайших кривых можно использовать в функции интерполяции вместе с точкой для определения новой кривой, связанной с точкой. Как только эта новая кривая определена, могут быть определены множитель и смещение для новой кривой. Затем эти значения можно использовать вместе с принятым целевым размером для определения значения Qt (например, кривая может определять функцию размера и Q).
В некоторых случаях по меньшей мере оценка 920 Q контроллера 900 скорости является адаптивной, при этом свойства одного или более предыдущих кадров влияют на оценку Q текущего кадра. В одном случае набор кривых может храниться в доступном запоминающем устройстве и обновляться на
- 15 043454 основании набора кривых, определенных для предыдущего кадра. В некоторых случаях адаптивное квантование можно применять по-разному для разных положений коэффициентов в модуле или блоке кодирования, например для разных элементов в массиве из 4 или 16 коэффициентов (для преобразований
2x2 или 4x4).
И наконец, в примере, приведенном на фиг. 9, показан компонент 950 ограничения Q, который принимает ожидаемый набор параметров квантования Q't, который выводится из компонента 920 оценки Q, и корректирует этот набор на основании одного или более факторов. Компонент 950 ограничения Q может содержать версию или часть корректировщика 650 качества. Ожидаемый набор параметров квантования Q't может содержать одно или более значений. В одном случае исходный набор параметров квантования Q't может быть скорректирован на основании одного или более из рабочего режима уровня базового кодирования и изменений параметра квантования Qt. В одном случае ожидаемый набор параметров квантования Q't может быть ограничен на основании набора параметров квантования, используемых уровнем базового кодирования, который может быть принят с данными из этого уровня. В одном случае, либо с адаптацией, либо без нее с использованием данных уровня базового кодирования, ожидаемый набор параметров квантования Q't может быть ограничен на основании значений из предыдущего набора параметров квантования. В этом случае одно или более из минимального значения и максимального значения для Q't могут быть установлены на основании предыдущего значения Q (например, Qt_1). Затем выходные данные ограничения предоставляются как окончательный набор параметров квантования Qt, как показано позицией 950 на фиг. 9.
В одном случае набор параметров квантования содержит одно значение Qt. В этом случае ширина шага, применяемая одним из компонентов квантования к кадру t, может быть установлена на основании Qt. Функция определения ширины шага также может быть основана на максимальной ширине шага (например, ширина шага может находиться в диапазоне от 0 до 10). Пример вычисления ширины шага:
ширина шага = [(1-Q0,2)(ширина шагамакс-1)]+1.
Далее некоторые измененные варианты квантования будут описаны со ссылкой на фиг. 10А и 10В. Они описывают, как параметры квантования можно применять в одном или более блоках квантования.
На фиг. 10А представлен пример того, как квантование остаточных сигналов и/или коэффициентов (преобразованных остаточных сигналов) можно выполнять на основании ячеек, имеющих определенную ширину шага. Фиг. 10А предоставлена только для примера, и могут существовать разные способы реализации квантования, известные в данной области техники. На фиг. 10А ось х представляет остаточные или преобразованные значения коэффициентов. В этом примере определено количество ячеек с шириной шага 5. Размер ширины шага можно выбирать, например, на основании значения параметра. В некоторых случаях размер ширины шага может быть установлен динамически, например, на основании примеров управления скоростью, описанных выше.
На фиг. 10А ширина шага приводит к ячейкам, соответствующим остаточным значениям в диапазонах 0-4, 5-9, 10-14, 15-19 (т.е. от 0 до 4, включая как 0, так и 4). Ширина ячейки может быть выполнена с возможностью включения или исключения конечных точек по мере необходимости. В этом примере квантование выполняют путем замены всех значений, попадающих в ячейку, целочисленным значением (например, остаточные значения от 0 до 4 включительно имеют квантованное значение 1). На фиг. 10А квантование может быть выполнено путем деления на ширину шага (например, 5), с принятием округления вниз результата (т.е. ближайшее целое число меньше десятичного числа для положительных значений) и последующего добавления единицы (например, 3/5 = 0,6, округление вниз(0,6)=0,0+1=1; или 16/5 = 3,2, округление вниз (3,2) = 3,3+1=4). Аналогичным образом можно обрабатывать отрицательные значения, например работая с абсолютными значениями, а затем преобразуя их в отрицательные значения после вычисления (например, абс(-9)=9,9/5=1,8, округление вниз (1,8)=1,1+1=2,2*-1=-2).
На фиг. 10А показан случай линейного квантования, в котором все ячейки имеют общую ширину шага. Следует отметить, что могут быть осуществлены различные разные реализации на основании этого метода, например первая ячейка может иметь квантованное значение 0 вместо 1 или может содержать значения от 1 до 5 включительно. На фиг. 10А представлено одно простое изображение квантования в соответствии с ячейками данной ширины шага.
На фиг. 10В показано, как может быть реализована так называемая мертвая зона (DZ). На фиг. 10В остаточные сигналы или преобразованные коэффициенты со значением в заранее определенном диапазоне установлены на 0. На фиг. 10В заранее определенный диапазон представляет собой диапазон около значения 0. На фиг. 10В значения меньше 6 и больше -6 установлены на 0. Мертвая зона может быть установлена как фиксированный диапазон (например, от -6 до 6) или может быть установлена на основании ширины шага. В одном случае мертвая зона может быть установлена как заранее определенное кратное ширине шага, например как линейная функция значения ширины шага. В примере, показанном на фиг. 10В, мертвая зона установлена как 2,4*ширина шага. Следовательно, при ширине шага 5 мертвая зона составляет от -6 до +6. В другом случае мертвая зона может быть установлена как нелинейная функция значения ширины шага.
В одном случае мертвую зону устанавливают на основании динамической ширины шага, например она
- 16 043454 может быть адаптивной. В этом случае мертвая зона может изменяться при изменении ширины шага. Например, если ширина шага была обновлена до 3 вместо 5, мертвая зона 2,4*ширина шага может измениться с диапазона от -6 до +6 до диапазона от -3,6 до 3,6; или, если ширина шага обновленадо 10, мертвая зона может измениться и будет составлять от -12 до 12. В одном случае умножитель для ширины шага может находиться в диапазоне от 2 до 4. В одном случае множитель также может быть адаптивным, например в зависимости от рабочих условий, таких как доступные скорости передачи в битах.
Наличие мертвой зоны может содействовать уменьшению количества данных, подлежащих передаче по сети, например содействовать уменьшению скорости передачи в битах. При использовании мертвой зоны остаточные сигналы или значения коэффициентов, которые попадают в мертвую зону, эффективно игнорируются.
В одном случае ширина шага для квантования может варьироваться для разных коэффициентов в блоке 2x2 или 4x4 преобразованных коэффициентов. Например, меньшая ширина шага может быть присвоена коэффициентам, которые экспериментально определены для более сильного влияния на восприятие декодированного сигнала, например в направленной декомпозиции (квадратичная направленная декомпозиция (DDS; DDSquared)), как описано выше, коэффициентам АА, АН, AV и AD может быть присвоена меньшая ширина шага, причем более поздним коэффициентам присвоена большая ширина шага. В этом случае может быть определен параметр базовая_ширина_шага, который устанавливает ширину шага по умолчанию, а затем к нему может быть применен модификатор, чтобы вычислить модифицированную_ширину_шага для использования в квантовании (и деквантовании), например модифицированная_ширина_шага = базовая_ширина_шага*модификатор, причем модификатор может быть установлен на основании конкретного коэффициента в блоке или модуле.
В некоторых случаях модификатор также или альтернативно может зависеть от уровня улучшения. Например, ширина шага может быть меньше для потока улучшения уровня 1, поскольку она может влиять на ряд восстановленных пикселей с более высоким уровнем качества.
В некоторых случаях модификаторы могут быть определены на основании как коэффициента в блоке, так и уровня улучшения. В одном случае матрица квантования может быть определена с набором модификаторов для разных коэффициентов и разных уровней улучшения. Эта матрица квантования может передаваться между кодером и декодером. В одном случае матрица квантования может быть построена в кодере с использованием параметров квантования, выдаваемых контроллерами скорости, как описано в данной заявке.
В одном случае могут быть определены разные режимы квантования. В одном режиме общую матрицу квантования можно использовать для обоих уровней улучшения; в другом режиме можно использовать отдельные матрицы для разных уровней; в еще одном режиме матрицу квантования можно использовать только для одного уровня улучшения, например только для уровня 0. Матрица квантования может быть индексирована с помощью положения коэффициента в блоке (например, 0 или 1 в направлении х и 0 или 1 в направлении у для блока 2x2 или от 0 до 3 для блока 4x4). Эти режимы могут зависеть от применяемого режима управления скоростью и количества управляемых уровней улучшения.
В одном случае матрица базового квантования может быть определена с набором значений. Эта матрица базового квантования может быть модифицирована с помощью коэффициента масштабирования, который представляет собой функцию ширины шага для одного или более уровней улучшения. В одном случае коэффициент масштабирования может представлять собой фиксированную функцию переменной ширины шага. В декодере переменная ширины шага может быть получена от кодера для одного или более из потока уровня 0 и потока уровня 1. В одном случае каждая запись в матрице квантования может быть масштабирована с использованием экспоненциальной функции коэффициента масштабирования, например каждая запись может быть возведена в степень коэффициента масштабирования.
На фиг. 11 представлена блок-схема процесса кодирования в соответствии с вариантом реализации изобретения.
Процесс кодирования может быть реализован с использованием описанного в данной заявке кодера 100 и/или другого кодера. Процесс кодирования предназначен для кодирования входного видеосигнала как гибридного видеопотока. Кодированный гибридный видеопоток содержит базовый кодированный поток и совокупность потоков улучшения.
На этапе S102 входной видеосигнал принимается с первым разрешением. Входной видеосигнал может быть предоставлен в любом известном формате с разрешением. На этапе S104 способ включает получение указания требуемого уровня качества для кодирования. Это может включать параметр в пределах определенного диапазона, который отображается на набор выходных уровней качества, и/или может включать определенную скорость передачи в битах или показатель скорости передачи в битах. В процессе кодирования получают гибридный видеопоток. При декодировании гибридный видеопоток отображает видеосигнал на уровне качества/качественном уровне. Гибридный видеопоток содержит базовый кодированный поток со вторым разрешением и совокупность потоков улучшения с каждым из первого и второго разрешений, причем первое разрешение выше второго разрешения.
На этапе S106 способ включает кодирование каждого из совокупности потоков улучшения. Это может включать команду на итерацию этапов S108-S114 для каждого потока улучшения. На этапе S108 способ включает генерирование набора остаточных сигналов на основании разности между входным
- 17 043454 видеосигналом и восстановленным видеосигналом с соответствующим разрешением потока улучшения. Например, на первом уровне улучшения, описанном в данной заявке, разрешение может быть ниже, чем разрешение входного видеосигнала. Таким образом, генерирование остаточных сигналов для каждого потока улучшения обеспечивает поправочные данные, которые при декодировании на базовом уровне будут отображать видеоданные с соответствующим разрешением. На этапе S110 способ выполняет этап определения параметров квантования для набора остаточных сигналов на основании требуемого уровня качества. Он может быть выполнен с использованием контроллеров скорости, описанных в данной заявке (таких как те, что показаны на любой из фиг. 4-9). Путем определения параметров квантования на основании требуемого уровня качества, полученного на этапе S104, уровень качества можно поддерживать во время процесса кодирования, несмотря на изменение скоростей передачи в битах из-за обработки кодирования и/или содержимого кадра. На этапе S112 способ включает квантование остаточных сигналов на основании параметров квантования, определенных на этапе S110. Это может включать определение ширины шага с использованием параметров квантования и выполнение квантования, как проиллюстрировано на одной или более из фиг. 10А и 10В. Посредством итерации этапа S112 каждый из потоков улучшения квантуется на основании параметров квантования, определенных для этого потока. В предпочтительных случаях параметры квантования для каждого потока улучшения различаются; однако в определенном примере может быть желательно использовать параметры квантования для каждого потока. Поскольку процесс выполняют для каждого уровня улучшения, показан необязательный возврат процесса к этапу S108. На этапе S114 после определения квантования выполнение способа переходит к созданию кодированного потока из набора квантованных остаточных сигналов. Затем кодированные потоки улучшения, выводимые путем повторения этапа S114, могут быть объединены с базовым кодированным потоком для генерирования гибридного видеопотока. В некоторых случаях базовый уровень и потоки улучшения кодируются отдельно, например базовый кодированный поток генерируется независимым базовым кодеком, который использует другой метод кодирования для потоков улучшения.
Определенные способы и компоненты кодера, описанные в данной заявке, можно выполнять с помощью команд, которые хранятся на энергонезависимом машиночитаемом носителе. Энергонезависимый машиночитаемый носитель хранит код, содержащий команды, которые при выполнении их одним или более компьютерами вызывают выполнение компьютером этапов способов или выполнение операций компонентов кодера, описанных в данной заявке. Энергонезависимый машиночитаемый носитель может содержать одно или более из вращающегося магнитного диска, вращающегося оптического диска, микросхемы флэш-памяти микросхемы оперативного запоминающего устройства (ОЗУ) и других механически перемещающихся или твердотельных носителей информации. Некоторые примеры могут быть реализованы как: физические устройства, такие как полупроводниковые микросхемы; представления на языке описания аппаратных средств логического или функционального режима таких устройств; и один или более энергонезависимых машиночитаемых носителей, выполненных с возможностью хранения таких представлений на языке описания аппаратных средств. Описания в данной заявке принципов, аспектов и вариантов реализации охватывают как их структурные, так и функциональные эквиваленты.
В данной заявке описаны некоторые примеры, и следует отметить, что возможны различные комбинации различных компонентов из различных примеров. Для лучшего объяснения примеров представлены отличительные признаки; однако понятно, что некоторые признаки могут быть добавлены, модифицированы и/или опущены без модификации функциональных аспектов данных описанных примеров. Элементы, описанные в данной заявке как соединенные или соединенные с возможностью связи, имеют эффективную взаимную зависимость, реализуемую посредством прямого или косвенного соединения, в котором используются один или более других промежуточных элементов. Примеры, описанные в данной заявке как взаимодействующие или связанные с другим устройством, модулем или элементами, включают любую форму связи или соединения. Кроме того, могут быть использованы также эквиваленты и модификации, не описанные выше, без отклонения от объема данного изобретения, который определен в прилагаемой формуле изобретения.

Claims (15)

1. Способ кодирования входного видеосигнала в виде гибридного видеопотока, включающий прием входного видеосигнала с первым пространственным разрешением;
получение указания требуемого уровня качества для кодирования, причем требуемый уровень качества устанавливается одной или более скоростями передачи в битах для гибридного видеопотока, причем указанный видеопоток содержит базовый кодированный поток со вторым пространственным разрешением и множество потоков улучшения, причем указанное множество потоков улучшения содержит первый поток улучшения с первым пространственным разрешением и второй поток улучшения со вторым пространственным разрешением, причем первое разрешение выше второго разрешения;
кодирование каждого из множества потоков улучшения посредством генерирования набора остаточных сигналов на основании разности между входным видеосигналом и восстановленным видеосигналом с соответствующим разрешением потока улучшения;
определения параметров квантования для набора остаточных сигналов на основании требуемого
- 18 043454 уровня качества;
квантования набора остаточных сигналов на основании параметров квантования и создания кодированного потока из набора квантованных остаточных сигналов.
2. Способ по п.1, отличающийся тем, что базовый кодированный поток и по меньшей мере один из множества потоков улучшения кодируют с использованием различных уровней квантования.
3. Способ по любому из предшествующих пунктов, отличающийся тем, что базовый кодированный поток и один или более из множества потоков улучшения кодируют с использованием компонентов кодирования, управляемых независимо друг от друга.
4. Способ по любому из предшествующих пунктов, включающий субдискретизацию входного видеосигнала для создания субдискретизированного видеосигнала со вторым разрешением и предоставление субдискретизированного видеосигнала первому базовому кодеру для создания базового кодированного потока.
5. Способ по любому из предшествующих пунктов, отличающийся тем, что кодирование каждого из множества потоков улучшения выполняют покадрово и включает, для каждого кадра и для каждого из потоков улучшения восстановление кадра видеосигнала с соответствующим разрешением потока улучшения;
сравнение восстановленного кадра видеосигнала с кадром, полученным из входного видеосигнала с соответствующим разрешением потока улучшения; и, генерирование набора остаточных сигналов для кадра видеосигнала на основании указанного сравнения.
6. Способ по любому из предшествующих пунктов, отличающийся тем, что определение параметров квантования включает прием состояния буфера, который принимает один или более из множества кодированных потоков и базовый кодированный поток; и использование указанного состояния для определения параметров квантования.
7. Способ по любому из предшествующих пунктов, отличающийся тем, что определение параметров квантования включает определение информационной емкости буфера на основании размера буфера и количества данных, хранящихся в буфере, причем параметры квантования определяют на основании требуемого уровня качества и определенной информационной емкости буфера, и при необходимости определение параметров квантования для набора остаточных сигналов для данного потока улучшения включает определение количества данных, требуемых для кодирования набора остаточных данных для данного потока улучшения;
сравнение определенного количества данных с определенной информационной емкостью буфера и корректировку исходного набора параметров квантования на основании указанного сравнения.
8. Способ по п.7, включающий сравнение ожидаемого размера набора квантованных остаточных сигналов с информационной емкостью буфера;
изменение, с учетом указанного сравнения, ширины шага квантования для увеличения или уменьшения ожидаемого размера набора квантованных остаточных сигналов.
9. Способ по любому одному из пп.6-8, отличающийся тем, что буфер выполнен с возможностью приема входных данных из базового кодированного потока и множества потоков улучшения с переменными скоростями передачи в битах и предоставления выходных данных с постоянной скоростью передачи в битах.
10. Способ по любому из предшествующих пунктов, отличающийся тем, что определение параметров квантования для набора остаточных сигналов на основании требуемого уровня качества включает определение параметров квантования, которые обеспечивают требуемый уровень качества в пределах набора ограничений скорости передачи в битах, и/или для каждого из множества уровней улучшения определение ширины шага для квантования набора остаточных сигналов.
11. Способ по любому из предшествующих пунктов, отличающийся тем, что определение параметров квантования для набора остаточных сигналов включает прием исходного набора параметров квантования для набора остаточных сигналов, связанных с предыдущим кадром видеосигнала;
прием входных данных из буфера для гибридного видеопотока;
прием входных данных от базового кодера, используя кодирование базового кодированного потока;
корректировку исходного набора параметров квантования на основании входных данных для определения набора параметров квантования для набора остаточных сигналов, связанных с текущим кадром видеосигнала, и/или этап определения параметров квантования включает
- 19 043454 прием состояния базового кодера, используя кодирование базового кодированного потока; и использование указанного состояния для определения параметров квантования.
12. Способ по любому из предшествующих пунктов, отличающийся тем, что параметры квантования для данного потока улучшения основываются на предыдущем наборе параметров квантования для потока улучшения.
13. Способ по любому из предшествующих пунктов, отличающийся тем, что кодируют множество кадров входного видеосигнала и покадрово определяют параметры квантования для каждого из множества кадров, и при необходимости определенные параметры квантования для кадра данных используют как исходные параметры квантования для последующего кадра видеоданных.
14. Способ по п.13, отличающийся тем, что параметры квантования для кадра определяют на основании целевого размера данных для кадра и текущего размера данных для кадра, причем текущий размер данных для кадра определяют с использованием предыдущего набора параметров квантования.
15. Система, содержащая кодер, выполненный с возможностью реализации способа по любому предшествующему пункту способа.
EA202192449 2019-03-20 2019-12-13 Управление скоростью для видеодекодера EA043454B1 (ru)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
GB1903844.7 2019-03-20
GB1904014.6 2019-03-23
GB1904492.4 2019-03-29
GB1905325.5 2019-04-15
GB1909701.3 2019-07-05

Publications (1)

Publication Number Publication Date
EA043454B1 true EA043454B1 (ru) 2023-05-25

Family

ID=

Similar Documents

Publication Publication Date Title
KR102525578B1 (ko) 부호화 방법 및 그 장치, 복호화 방법 및 그 장치
CN113785580A (zh) 用于视频编码器的速率控制
CN114631320A (zh) 对图像执行人工智能(ai)编码和ai解码的设备和方法
US20220385911A1 (en) Use of embedded signalling for backward-compatible scaling improvements and super-resolution signalling
US20230069953A1 (en) Learned downsampling based cnn filter for image and video coding using learned downsampling feature
WO2014120960A1 (en) Content adaptive bitrate and quality control by using frame hierarchy sensitive quantization for high efficiency next generation video coding
US10542265B2 (en) Self-adaptive prediction method for multi-layer codec
CN114009027A (zh) 视频译码中的残差的量化
US20230076920A1 (en) Global skip connection based convolutional neural network (cnn) filter for image and video coding
US20220182654A1 (en) Exchanging information in hierarchical video coding
US20220272342A1 (en) Quantization of residuals in video coding
CN112840650A (zh) 人工智能(ai)编码装置及其操作方法和ai解码装置及其操作方法
KR102287942B1 (ko) 전처리를 이용한 영상의 ai 부호화 및 ai 복호화 방법, 및 장치
JP2017017684A (ja) 高ダイナミックレンジフレームおよびインポーズされる低ダイナミックレンジフレームの両方を符号化するための方法およびデバイス
CN116508091A (zh) 使用后处理控制的视频解码
US20230156343A1 (en) Blind local reshaping in hdr imaging
KR102267792B1 (ko) 이미지 블록에 관한 픽셀-도메인 전처리 동작들에 기초한 이미지 블록 코딩
US20240040160A1 (en) Video encoding using pre-processing
CN113727102B (zh) 一种低延时有损图像编码器和解码器
EA043454B1 (ru) Управление скоростью для видеодекодера
GB2623148A (en) Constant rate factor video encoding control