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

Иллюстрации

Показать все

Изобретение относится к обработке видеоданных, в частности к способам и системам, предназначенным для кодирования и декодирования информации, относящимся к методам сжатия видеоданных. Техническим результатом является повышение эффективности кодирования видеоданных. Технический результат достигается тем, что предложен способ кодирования уточняющих коэффициентов в слое масштабируемого повышения качества отношения сигнал-шум (ОСШ) сжатой последовательности видеокадров. Принимают последовательность видеокадров. Составляют прогнозирование исходного видеосигнала в текущем кадре из последовательности видеокадров. Формируют разностный сигнал посредством вычитания прогнозирования исходного видеосигнала из исходного видеосигнала в текущем кадре. К разностному сигналу применяют преобразование. Квантуют множество коэффициентов преобразования. Уточняющий коэффициент отображают в троичный уточняющий символ. Уточняющие символы группируют в определенном порядке кодирования. Группы уточняющих символов кодируют с использованием кодов переменной длины. 5 н. и 25 з.п. ф-лы, 16 ил., 1 табл.

Реферат

Родственные заявки

Эта заявка испрашивает приоритет принадлежащей тому же правопреемнику предварительной патентной заявки США с порядковым номером 60/786800, зарегистрированной 27 марта 2006 г., под названием "Кодирование уточняющих коэффициентов для мелкозернистой масштабируемости", и предварительной патентной заявки США с порядковым номером 60/830199, зарегистрированной 11 июля 2006 г., под названием "Способы и системы для кодирования уточняющих коэффициентов при сжатии видеоданных", которые включены здесь путем ссылки.

Область техники

Настоящее раскрытие относится, в общем, к обработке видеоданных. Более конкретно, настоящее раскрытие относится к способам и системам, предназначенным для кодирования и декодирования информации, относящимся к методам сжатия видеоданных.

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

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

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

Методы сжатия видеоданных могут приносить выгоду пользователям различных форм мультимедиа. Например, в технике широковещательной передачи цифровое телевидение на практике осуществляется посредством сжатия видеоданных. Телевизионные станции могут выполнять широковещательную рассылку не только для HDTV (телевидение высокой четкости), но также и по множеству виртуальных каналов на одном и том же физическом канале. Широковещательная рассылка цифровых видеоданных может использовать формат сжатия видеоданных стандарта MPEG-2. H.264/MPEG-4 и VC-1 начинают проявляться как новые стандарты в области сжатия видеоданных.

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

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

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

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

фиг.3 иллюстрирует способ кодирования информации;

фиг.4 иллюстрирует один вариант осуществления способа декодирования закодированной последовательности видеокадров;

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

фиг.6 иллюстрирует один вариант осуществления классификации значимых и уточняющих коэффициентов;

фиг.7 иллюстрирует недостаток одной схемы уточняющего кодирования в кодировании с переменной длиной (VLC);

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

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

фиг.10 иллюстрирует один вариант осуществления таблицы кодирования кодом переменной длины (VLC);

фиг.11 иллюстрирует один вариант осуществления множества слоев мелкозернистой масштабируемости (FGS);

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

фиг.13 иллюстрирует другой вариант осуществления, где значимое кодирование и уточняющее кодирование могут перемежаться и используется порядок кодирования FGS поддиапазонов;

фиг.14 иллюстрирует один вариант осуществления способа решения на основе декодера;

фиг.15 иллюстрирует один вариант осуществления способа решения на основе кодера;

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

Подробное описание

Раскрыт способ кодирования уточняющих коэффициентов в слое масштабируемого повышения качества отношения сигнал-шум ("ОСШ") сжатой последовательности видеокадров. Принимают последовательность видеокадров. Из последовательности видеокадров составляют прогнозирование исходного видеосигнала в текущем кадре. Формируют разностный сигнал посредством вычитания прогнозирования исходного видеосигнала из исходного видеосигнала в текущем кадре. К разностному сигналу применяют преобразование. Квантуют множество коэффициентов преобразования. Уточняющий коэффициент отображают в троичный уточняющий символ. Уточняющие символы группируют в определенном порядке кодирования. Группы уточняющих символов кодируют с использованием кодов переменной длины.

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

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

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

Также раскрыто электронное устройство, реализующее способ кодирования уточняющих коэффициентов в слое масштабируемого повышения качества ОСШ сжатой последовательности видеокадров. Электронное устройство включает в себя процессор и запоминающее устройство, находящееся в электронной связи с процессором. Содержатся команды, хранящиеся в запоминающем устройстве. Принимают последовательность видеокадров. Прогнозирование исходного видеосигнала в текущем кадре составляют из последовательности видеокадров. Формируют разностный сигнал посредством вычитания прогнозирования исходного видеосигнала из исходного видеосигнала в текущем кадре. К разностному сигналу применяют преобразование. Квантуют множество коэффициентов преобразования. Уточняющий коэффициент отображают в троичный уточняющий символ. Уточняющие символы группируют в определенном порядке кодирования. Группы уточняющих символов кодируют с использованием кодов переменной длины.

Также раскрыт компьютерочитаемый носитель, включающий в себя команды для реализации способа кодирования уточняющих коэффициентов в слое масштабируемого повышения качества ОСШ сжатой последовательности видеокадров. Принимают последовательность видеокадров. Из последовательности видеокадров составляют прогнозирование исходного видеосигнала в текущем кадре. Формируют разностный сигнал посредством вычитания прогнозирования исходного видеосигнала из исходного видеосигнала в текущем кадре. К разностному сигналу применяют преобразование. Квантуют множество коэффициентов преобразования. Уточняющий коэффициент отображают в троичный уточняющий символ. Уточняющие символы группируют в определенном порядке кодирования. Группы уточняющих символов кодируют с использованием кодов переменной длины.

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

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

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

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

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

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

Объединенная группа по вопросам видеоизображений (JVT), которая состоит из экспертов по кодированию видеоданных из ISO/IEC MPEG и ITU-T VCEG, работает над расширением масштабируемого кодирования видеоданных (SVC) для Н.264/AVC. Участниками используется стандартное программное обеспечение, называемое JSVM (объединенная масштабируемая модель видеоданных). JSVM поддерживает различные особенности масштабируемости. Поток битов SVC может иметь мелкозернистую масштабируемость, пространственную масштабируемость, временную масштабируемость или любые комбинации из этих трех видов масштабируемости.

Мелкозернистая масштабируемость, далее упоминаемая как FGS, является важной и весьма желательной особенностью для кодирования видеоданных. Эта особенность позволяет почти произвольно укорачивать сжатый поток битов видеокадров, в то же самое время обеспечивая конечного пользователя постепенным ухудшением качества декодированного видеосигнала. Поскольку декодер видеоданных принимает и декодирует большее количество битов в этом слое, это будет производить лучшее качество видеоданных. Кроме того, FGS в JSVM была разработана таким образом, что улучшение качества видеоданных равномерно распространяется по всему видеокадру, в противоположность концентрированию в пределах только определенной пространственной области кадра, поскольку последний случай является визуально нежелательным для конечного зрителя.

FGS достигает постепенного улучшения качества видеоданных при использовании кодирования битовой плоскости. Если видеокадр основного или предыдущего слоя квантуют с использованием параметра квантования ПК, то видеоданные текущего слоя повышения качества квантуют с использованием параметра квантования, обычно примерно ПК-6, который эффективно сокращает вдвое величину этапа квантования. В результате меньшего размера этапа квантования в слое повышения качества большее количество коэффициентов преобразования становится ненулевым. Все ненулевые коэффициенты в слое повышения качества могут быть классифицированы на три типа: незначимые коэффициенты, значимые коэффициенты и уточняющие коэффициенты. Термин "незначимые" коэффициенты относится к тем коэффициентам, которые равны нулю в слое повышения качества, а соответствующие коэффициенты в основном или предыдущем слое являются нулевыми. Термин "значимые" коэффициенты относится к тем коэффициентам, которые стали ненулевыми в слое повышения качества, а соответствующие коэффициенты в основном или предыдущем слое являются нулевыми. Термин "уточняющие" коэффициенты относится к тем коэффициентам, которые уже отличаются от нуля (то есть являются значимыми) в основном или предыдущем слое. Их значения будут уточняться в текущем слое повышения качества.

Поскольку уточняющие коэффициенты имеют отличающиеся статистические данные от других коэффициентов, они отдельно кодируются в слое FGS. Подобно Н.264/AVC, рекомендация проекта SVC также поддерживает два режима статистического кодирования: режим основанного на контексте адаптивного двоичного арифметического кодирования (CABAC) и режим основанного на контексте адаптивного кодирования с переменной длиной (CAVLC). Обеспечены подробности для схемы улучшенного кодирования уточняющих коэффициентов в режиме CAVLC, которые, как показано, не только улучшают эффективность кодирования, но также и значительно уменьшают сложность реализации и кодера и декодера.

В слое FGS уточняющие коэффициенты посылаются с использованием двух элементов синтаксиса: coeff_refinement_flag и coeff_refinement_direction_flag. Первый элемент синтаксиса, coeff_refinement_flag, определяет, действительно ли уровень уточняющего коэффициента равен 0. Не нарушая общности, предполагается, что, если coeff_refinement_flag равен 0, значение уровня уточняющего коэффициента равно 0, в то время как coeff_refinement_flag, равный 1, определяет, что значение уровня уточняющего коэффициента является либо равным -1, либо равным 1. Второй элемент, coeff_refinement_direction_flag, определяет, является ли знак уточняющего уровня коэффициента преобразования таким же или отличающимся от знака его представления основного или предыдущего слоя. Не нарушая общности, предполагается, что, если coeff_refinement_direction_flag равен 0, знак уточняющего уровня коэффициента преобразования равен знаку соответствующего коэффициента в основном слое; иначе, уточняющий уровень имеет противоположный знак.

В режиме CAVLC один способ кодирования уточняющих коэффициентов в слое FGS состоит в том, чтобы обрабатывать уточняющие коэффициенты блок за блоком. Как только кодер видеоданных начинает кодировать уточняющие коэффициенты в блоке, все уточняющие коэффициенты в текущем блоке кодируются прежде, чем кодер видеоданных начинает кодировать другие коэффициенты. Такая схема когда-то была принята в одной версии JSVM.

Таблица обеспечивает такой процесс уточняющего кодирования на основе блоков, суммируемый в следующем псевдокоде.

//кодирование уточняющего уровня//vlcTab1 представляет собой таблицу VLC, подлежащую использованию для кодирования уточняющего уровня до тех пор,пока (уточняющий коэффициент все еще остается в текущем блоке) {получить следующий уточняющий коэффициент в зигзагообразном порядкепусть m = уровень коэффициентакодировать уровень m, используя текущую vlcTab1обновить статистические данные уточняющего уровняобновить значение vlcTab1}сдвинуть биты уточняющего уровня, оставшиеся в буфере битов//кодирование признака уточняющего направления//VlcTab2 представляет собой таблицу VLC, подлежащую использованию для кодирования уточняющего направления до тех пор,пока (уточняющий коэффициент все еще остается в текущем блоке) {получить следующий уточняющий коэффициент в зигзагообразном порядкеесли (текущий уточняющий уровень является ненулевым){если (уровень имеет такой же знак, как основной коэффициент)пусть уточняющее направление s = 0иначепусть уточняющее направление s = 1кодировать направление s, используя текущую vlcTab2обновить статистические данные уточняющего направленияобновить значение vlcTab2}}сдвинуть биты уточняющего направления, оставшиеся в буфере битов

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

В таблице, vlcTab (vlcTab1 или vlcTab2) может принимать одно из трех значений, указывающих разные способы выполнения кодирования VLC на синтаксисах уточняющих признаков. Если vlcTab = 0, уточняющие синтаксисы посылаются бит за битом (кодирование признаков). Если vlcTab = 1, уточняющие синтаксисы посылаются в группах из трех битов. Если vlcTab = 2, уточняющие синтаксисы посылаются в группах из четырех битов. Значение vlcTab адаптивно определяется в соответствии с накопленными статистическими данными уточняющих коэффициентов в вырезке текущих видеоданных. Также и кодер и декодер следят за значением наиболее вероятного символа (БВС) и переводят в другое состояние фактический символ, подлежащий кодированию, если БВС изменяется с 0 на 1 или наоборот.

Способ уточняющего кодирования текущего CAVLC может иметь относительно высокую вычислительную сложность. Например, для широко распространенного способа может быть необходимо поддерживать и обновлять накопленные статистические данные обоих уточняющих синтаксисов (синтаксиса уровня и синтаксиса направления). Для широко распространенного способа может быть необходимо обновлять значения vlcTab и БВС. Для широко распространенного способа может требоваться гарантировать, что величины счета вероятности для 0 и 1 не будут выходить за пределы при их обратном масштабировании, когда это необходимо. Адаптивное изменение длины группы также может усложнять реализацию.

Даже при его относительно высокой сложности широко распространенное уточняющее кодирование может быть неэффективным. Моделирования показывают, что для некоторых последовательностей уточняющее кодирование CAVLC может принимать до удвоенного количества битов (ухудшение 100%) по сравнению с уточняющим кодированием CABAC, тогда как полное ухудшение скорости передачи данных использования режима CAVLC вместо CABAC обычно составляет только примерно 15% или меньше. Эта неэффективность в значительной степени происходит вследствие того, что уточняющее кодирование CAVLC выполняет два цикла операций смещения битов в конце каждого блока (один для синтаксиса уровня, а другой для синтаксиса направления). Если блок содержит очень мало уточняющих коэффициентов (например, только 1 или 2 коэффициента), то частые операции смещения могут делать невозможным группирование 3 или 4 битов вместе, следовательно, неся большие потери битов, потому что в соответствии с этой схемой кодирование с переменной длиной использоваться не может.

Как используется в данном описании, термины "один вариант осуществления", "вариант осуществления", "варианты осуществления", "этот вариант осуществления", "эти варианты осуществления", "один или больше вариантов осуществления", "некоторые варианты осуществления", "определенные варианты осуществления", "один вариант осуществления, "другой вариант осуществления" и т.п. означают "один или больше (но не обязательно все) варианты осуществления описанного раскрытия (раскрытий)", если явно не определено иначе.

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

Фраза "основанный на" не означает "основанный только на", если явно не определено иначе. Другими словами, фраза "основанный на" описывает и "основанный только на" и "основанный по меньшей мере на".

Фиг.1 иллюстрирует один вариант 100 осуществления масштабируемой структуры потока битов кодирования видеоданных, далее упоминаемой как мелкозернистая масштабируемость (FGS). В FGS последовательность видеокадров сжимается в единственный поток видеокадров по меньшей мере с двумя слоями: основным слоем 106 и слоем 104 повышения качества. Как иллюстрируется, FGS может дополнительно включать в себя N слоев 102 повышения качества.

В одном варианте осуществления основной слой 106 представляет собой немасштабируемое кодирование последовательности видеокадров и обычно имеет самое низкое качество последовательности видеокадров. Слой 104 повышения качества и N слоев 102 повышения качества имеют изменяющиеся уровни качества, которые выше уровня качества основного слоя 106. Декодирование каждого дополнительного слоя повышения качества, кодируемого после основного слоя 106, приводит к повышающемуся качеству последовательности видеокадров. Кроме того, поток битов FGS имеет одно существенное преимущество, заключающееся в том, что во время или после кодирования биты, относящиеся к слою 104 повышения качества и N слоям 102 повышения качества, могут быть укорочены (снижая скорость передачи битов и таким образом качество декодированного изображения) в реальном времени. Это обеспечивает гибкий контроль над скоростью передачи передаваемых битов и позволяет регулировать слой 104 повышения качества и N слоев 102 повышения качества так, чтобы они соответствовали располагаемой скорости передачи битов.

Фиг.2 представляет блок-схему 200 сети, иллюстрирующую основной слой 202 и N слоев 204 повышения качества, посылаемые из кодера 208 через сеть 210 в декодер 212. Декодер 212 может декодировать и использовать основной слой 202 и все или части одного или больше слоев 204 повышения качества. Декодер 212 создает оптимальную аппроксимацию 214 исходной последовательности 206 видеокадров. В одном варианте осуществления оптимальная аппроксимация 214 отображается на дисплее 216, таком как компьютерный монитор, телевизионный приемник, PDA (персональный цифровой ассистент), кинопроектор и т.д. Последовательность 206 видеокадров кодируется как основной слой 202 и один или больше слоев 204 повышения качества. Основной слой 202 с более низким качеством представляет минимальный стандарт качества, а каждый из слоев 204 повышения качества является уточнением относительно качества изображения основного слоя 202. В одном варианте осуществления последовательность 206 видеокадров кодируется с использованием формата кодирования видеоданных FGS, как объясняется на фиг.1. Формат кодирования FGS может быть особенно полезен для приложений потоковой передачи и широковещательной рассылки видеоданных, где располагаемая ширина полосы передачи заранее может быть неизвестна. Во время или после кодирования слои 204 повышения качества могут быть произвольно укорочены так, чтобы соответствовать располагаемой скорости передачи битов. Когда доступная скорость передачи битов изменяется, слои 204 повышения качества могут быть укорочены соответствующим образом в реальном времени, чтобы обеспечивать декодированную последовательность видеокадров оптимального качества относительно текущей ширины полосы. Например, сеть 200 может укорачивать слои 204 повышения качества и затем посылать потоки битов разным адресатам с различными скоростями передачи битов.

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

Способ 300 начинается 302 с приема 304 кодером последовательности видеокадров. В одном варианте осуществления последовательность видеокадров представляет собой разуплотненный видеосигнал. Кодер начинает сжимать последовательность видеокадров, используя подобия между соседними кадрами видеоданных и составляя 306 прогнозирование текущего видеосигнала. Прогнозирование образуется из одного или больше предыдущих или будущих кадров и улучшается посредством компенсирования различий между кадрами. Затем формируется 308 разностный сигнал посредством вычитания прогнозируемого кадра из фактического текущего кадра. Кодер использует подобия между соседними выборками остаточной части прогнозирования для снижения пространственной избыточности.

Способ 300 продолжается посредством применения 310 преобразования к разностному сигналу, чтобы снизить остающуюся пространственную избыточность. Преобразование обращает сигналы остаточной части прогнозирования в другую область, в которой они представлены коэффициентами преобразования. Коэффициенты квантуются 312, чтобы удалить незначимые значения, оставляя небольшое количество значимых коэффициентов, которые обеспечивают более компактное представление остаточных выборок. В одном варианте осуществления коэффициенты квантуются с использованием ПК-6, который эффективно уменьшает размер этапа квантования вдвое. В результате уменьшенного размера этапа квантования в текущем кадре отличными от нуля становятся больше коэффициентов преобразования. Например, остаток прогнозирования, кодируемый с использованием способа 300, может быть в слое повышения качества. Если предыдущий слой кадра видеоданных или основного слоя кадра видеоданных квантовался 312 с использованием параметра квантования ПК, то текущий слой повышения качества квантуется 312 с использованием ПК-6.

В одном варианте осуществления ненулевые квантованные коэффициенты в слое повышения качества могут быть классифицированы как незначимые, значимые или уточняющие коэффициенты. Термин "незначимые" коэффициенты относится к тем коэффициентам, которые являются нулевыми в основном или предыдущем слое и остаются нулевыми в текущем слое повышения качества. Термин "значимые" коэффициенты относится к тем коэффициентам, которые являются нулевыми в основном или предыдущем слое, но становятся ненулевыми коэффициентами в текущем слое повышения качества. Термин "уточняющие" коэффициенты относится к тем коэффициентам, которые уже являются ненулевыми в основном или предыдущем слое. В одном варианте осуществления каждый уточняющий коэффициент отображается 313 в троичный уточняющий символ. Троичный уточняющий символ может иметь одно из трех значений. Кодер просматривает текущий слой повышения качества и группирует 314 уточняющие символы в определенном порядке кодирования. В одном варианте осуществления кодер группирует 314 последовательные уточняющие символы в порядке кодирования, основанном на поддиапазонах. Каждая группа уточняющих символов упоминается как "группа уточняющих символов". Затем кодер кодирует 316 группы уточняющих символов и добавляет эти коды к потоку битов. В одном варианте осуществления кодер кодирует 316 группу уточняющих символов с использованием кода переменной длины (VLC) из таблицы VLC. В другом варианте осуществления таблица VLC, используемая для кодирования одной группы уточняющих символов, может динамически выбираться из набора таблиц VLC на основании текущей оценки статистического распределения уточняющих коэффициентов.

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

Фиг.4 иллюстрирует один вариант осуществления способа 400 декодирования закодированной последовательности видеокадров. Способ 400 декодирования может быть инверсией способа 300 кодирования, показанного на фиг.3. Способ 400 декодирования начинается 402, когда декодер принимает 404 закодированную последовательность видеокадров. Закодированная последовательность видеокадров также может упоминаться как поток битов. Декодер декодирует 406 группы уточняющих символов с использованием таблицы VLC. Если группы уточняющих символов закодированы с использованием адаптивных таблиц VLC на основании статистического распределения уточняющих коэффициентов, та же самая статистическая информация используется в декодере для выбора правильной таблицы VLC. Если декодером принимаются закодированные уточняющие символы из множества слоев повышения качества, декодер может адаптировать таблицу VLC, используемую для декодирования уточняющих символов, в соответствии с их соответственными слоями повышения качества.

Способ 400 продолжается, и декодер декодирует 408 уточняющие коэффициенты, используя недавно декодированные уточняющие символы. Затем декодер переходит к обратному квантованию 410 декодированных уточняющих коэффициентов прежде, чем их добавлять обратно к подвергнутым обратному квантованию коэффициентам основного или предыдущего слоя. Способ 400 продолжается посредством применения 412 обратного преобразования к подвергнутым обратному квантованию коэффициентам. В одном варианте осуществления обратное преобразование может включать в себя обратное дискретное косинусное преобразование. После того как декодер применяет 412 обратное преобразование к уточняющим коэффициентам, декодер создает 414 аппроксимацию исходной последовательности видеокадров, как она существовала перед способом 300 кодирования на фиг.3.

Фиг.5 иллюстрирует один вариант осуществления кадра 500 видеоданных, разделенного на множество макроблоков. Макроблоки представляют собой базовые элементы данных в процессе декодирования. Как иллюстрируется, кадр 500 видеоданных может быть разделен на множество макроблоков установленного размера, каждый из которых включает в себя выборку из кадра 500 видеоданных. В одном варианте осуществления каждый макроблок включает в себя выборку из 16×16 пикселей (минимальных элементов изображения). В дополнительном варианте осуществления каждый макроблок включает в себя компонент яркости (яркость) и два компонента хроматических данных (цветность). Компонент яркости относится к яркости конкретной выборки, в то время как компоненты цветности относятся к характеристикам цвета выборки. В одном варианте осуществления кадр 500 видеоданных дополнительно разбит на множество вырезок, вырезку А 502, вырезку В 504 и вырезку C 506. Вырезка представляет собой последовательность макроблоков, которые обрабатываются последовательно в определенном порядке кодирования. Например, вырезка А 502 и макроблоки, содержащиеся в вырезке А 502, могут кодироваться и посылаться в декодер перед вырезкой В 504 и вырезкой C 506. В дополнительном варианте осуществления порядок кодирования различных вырезок 502, 504 и 506 и отправки их в декодер могут быть произвольными. Например, вырезка В 504 может кодироваться и посылаться в декодер перед другими вырезками. Точно так же вырезка C 506 может кодироваться и посылаться в декодер перед другими двумя вырезками. Каждый макроблок в N слоях повышения качества соответствует макроблоку в каждом из N-1 слоев повышения качества и основного слоя.

Фиг.6 иллюстрирует пример того, как классифицировать коэффициенты. Обеспечены блок 602 коэффициентов основного слоя и блок 604 коэффициентов слоя повышения качества. Пустые пространства в основном слое 602 и слое 604 повышения качества представляют коэффициенты, равные нулю. Эти коэффициенты упоминаются как незначимые коэффициенты. Каждое из остающихся пространств, 606, 608, 608a и 608b, представляет коэффициент, который может иметь ненулевое значение. В одном варианте осуществления элемент 602 коэффициента основного слоя находится в предыдущем слое повышения качества при использовании формата кодирования видеоданных FGS. Как предв