Усовершенствованное кодирование улучшающего слоя для масштабируемого кодирования видео
Иллюстрации
Показать всеИзобретение относится к цифровому кодированию видео и, в частности, к масштабируемому кодированию видеоданных. Техническим результатом является обеспечение статистического кодирования битового потока улучшающего слоя в одном проходе кодирования, тем самым уменьшая сложность кодирования, задержку кодирования и требования к памяти. Указанный технический результат достигается тем, что кодируют каждый отличный от нуля коэффициент вектора коэффициентов улучшающего слоя, не зная какие-либо последующие коэффициенты. Кодирование улучшающего слоя в одном проходе может избавить от необходимости выполнять первый проход для анализа вектора коэффициентов и второй проход для кодирования вектора коэффициентов на основе анализа. 8 н. и 58 з.п. ф-лы, 15 ил.
Реферат
Эта заявка притязает на приоритет по предварительной заявке на патент США №60/979919, поданной 15 октября 2007 года, и предварительной заявке на патент США №60/940214, поданной 16 октября 2007 года. Содержание каждой из этих заявок заключено в настоящий документ по ссылке.
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Это раскрытие относится к цифровому кодированию видео и, в частности, к масштабируемому кодированию видеоданных.
УРОВЕНЬ ТЕХНИКИ
Способности работы с цифровым видео могут быть заключены в широкий диапазон устройств, включающий в себя цифровые телевизоры, системы прямого цифрового вещания, устройства беспроводной связи, системы беспроводного вещания, карманные персональные компьютеры (PDA), переносные или настольные компьютеры, цифровые камеры, цифровые записывающие устройства, устройства видеоигр, игровые приставки, сотовые или спутниковые радиотелефоны и т.п. Устройства для работы с цифровым видео осуществляют методики сжатия видео, такие как стандарты Группы экспертов по движущемуся изображению (MPEG)-2, MPEG-4, или стандарт сектора стандартизации Международного союза по телекоммуникациям (ITU-T) H.264/MPEG-4, часть 10, усовершенствованное кодирование видео (AVC) (в дальнейшем "стандарт MPEG-4/H.264, часть 10, AVC") для более эффективной передачи и приема цифрового видео. Методики сжатия видео выполняют пространственное и временное предсказание для уменьшения или удаления избыточности, присущей видеопоследовательностям.
При кодировании видео сжатие видео обычно включает в себя пространственное предсказание и/или оценку движения и компенсацию движения для формирования видеоблока предсказания. Внутреннее кодирование полагается на пространственное предсказание для уменьшения или удаления пространственной избыточности среди видеоблоков в пределах заданного элемента кодирования, например кадра или мозаичного фрагмента. Другими словами, видеокодер выполняет пространственное предсказание для сжатия данных на основе других данных в пределах того же самого элемента кодирования. Напротив, внешнее кодирование полагается на временное предсказание для уменьшения или удаления временной избыточности среди видеоблоков последовательных видеокадров видеопоследовательности. Таким образом, для внешнего кодирования видеокодер выполняет оценку движения и компенсацию движения для отслеживания движения совпадающих видеоблоков из двух или более смежных элементов кодирования.
После пространственного или временного предсказания блок остаточных коэффициентов (называемый остаточным блоком или остаточной информацией) формируется посредством вычитания видеоблока предсказания из первоначального кодируемого видеоблока. Остаточный блок может представлять собой двумерную матрицу значений коэффициентов, которые определяют количество различий между видеоблоком предсказания и первоначальным блоком. Видеокодер может применить к остаточному блоку процессы преобразования, квантования и статистического кодирования для дополнительного уменьшения скорости передачи битов, ассоциированной с передачей остаточного блока. Методики преобразования могут содержать дискретные косинусные преобразования (DCT), вейвлетные преобразования, целочисленные преобразования или другие типы преобразований.
При DCT-преобразовании, например, процесс преобразования конвертирует набор коэффициентов в области пикселей в коэффициенты преобразования, которые представляют собой энергию коэффициентов в области пикселей в области частоты или преобразования. К коэффициентам преобразования применяется квантование для формирования квантованных коэффициентов преобразования. Квантование обычно ограничивает количество битов, ассоциированных с любым заданным коэффициентом. Видеокодер статистически кодирует квантованные коэффициенты преобразования, чтобы дополнительно сжать квантованные коэффициенты преобразования. Видеокодер может статистически кодировать коэффициенты с использованием кодирования с переменной длиной (VLC), арифметического кодирования, кодирования с фиксированной длиной или их комбинации. Видеодекодер может выполнять обратные операции для воссоздания видеопоследовательности.
Некоторые стандарты кодирования видео, такие как MPEG-2, кодируют видео с относительно постоянным качеством, скоростью передачи битов или пространственной разрешающей способностью. Такая методика может быть достаточной для предоставления приложений для работы с видео для устройств, имеющих аналогичные способности декодера (например, память или ресурсы для обработки) и/или качества соединения. Однако более современные системы передачи видео обычно включают в себя устройства с переменными способностями декодера и/или качествами соединения. В таких системах передача видео, закодированного с относительно постоянным качеством, скоростью передачи битов или пространственной разрешающей способностью, приводит к тому, что приложения для работы с видео работают для устройств, которые имеют подходящие способности декодера и/или качество соединения, и не работают для устройств, у которых нет подходящих способностей декодера и/или качества соединения. В контексте беспроводной связи, например, устройства, расположенные ближе к источнику передачи видео, могут иметь более высокое качество соединения, чем устройства, расположенные дальше от источника. Таким образом, устройства, расположенные дальше от источника, могут быть не в состоянии принять закодированное видео, переданное с постоянным качеством, скоростью передачи битов или пространственной разрешающей способностью.
Другие стандарты кодирования видео используют методики масштабируемого кодирования для преодоления этих проблем. Масштабируемым кодированием видео (SVC), например, в соответствии с расширением стандарта ITU-T H.264/MPEG-4, часть 10, AVC называется кодирование видео, в котором видеопоследовательность закодирована как базовый слой и один или более масштабируемых улучшающих слоев. Для SVC базовый слой обычно несет видео с базовым пространственным, временным и/или качественным уровнем. Один или более улучшающих слоев несут добавочное видео для поддержки более высоких пространственных, временных и/или качественных уровней. Улучшающие слои могут, например, добавлять пространственную разрешающую способность к кадрам базового слоя или могут добавлять добавочные кадры для увеличения полной частоты кадров. В некоторых случаях базовый слой может быть передан более надежным методом, чем передача улучающих слоев. Таким образом, устройства, расположенные дальше от источника закодированного видео или с более низкими способностями декодера могут быть в состоянии принять базовый слой и, таким образом, видеопоследовательность, хотя и с самым низким пространственным, временным и/или качественным уровнем.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Это раскрытие описывает методики масштабируемого кодирования видео, которые дают возможность статистического кодирования битового потока улучшающего слоя в одном проходе кодирования. Традиционно битовый поток улучшающего слоя кодируется с использованием множества проходов кодирования. Для каждого видеоблока улучшающего слоя, например, первый проход кодирования может собирать статистику для блока для использования при выборе таблиц кодирования (или кодовых книг) для статистического кодирования блока, и второй проход кодирования может статистически кодировать блок с использованием выбранных таблиц кодирования. Однако в соответствии с методиками в этом раскрытии видеоблоки битового потока улучшающего слоя статистически кодируются без выполнения первого прохода кодирования для сбора статистики для использования при выборе таблицы кодирования видео.
Вместо этого улучшающий слой кодируется с использованием методики кодирования, которая кодирует коэффициенты улучшающего слоя один за другим в одном проходе кодирования. В одном случае видеокодер для каждого из отличных от нуля коэффициентов видеоблока улучшающего слоя может закодировать символ конца блока (EOB), длину серии и знак. Видеокодер может использовать только одну таблицу кодирования для кодирования видеоблока улучшающего слоя, тем самым избавляя от необходимости выполнять первый проход кодирования для накопления статистики, которая должна использоваться при выборе таблиц кодирования.
Вдобавок, видеокодер может не кодировать величину отличных от нуля коэффициентов в улучшающем слое. В этом методе величина всех отличных от нуля коэффициентов улучшающего слоя может быть ограничена величиной, равной единице. Отсутствие кодирования величины коэффициентов улучшающего слоя может привести к некоторой потере отношения пикового сигнала к шуму (PSNR), но уменьшает количество битов, используемых для кодирования улучшающего слоя. Методики этого раскрытия могут предоставить несколько преимуществ. Например, методики могут уменьшить сложность кодирования, задержку кодирования и требования к памяти для кодирования битового потока улучшающего слоя при поддержании эффективности кодирования.
В одном аспекте способ кодирования видео с использованием масштабируемого кодирования видео содержит этап, на котором кодируют видеоблок с первым качеством как часть битового потока базового слоя. Способ также включает в себя этап, на котором как часть по меньшей мере одного битового потока улучшающего слоя кодируют уточнения видеоблока, которые при их комбинировании с видеоблоком, закодированным с первым качеством, дают в результате видеоблок, имеющий второе качество, которое больше первого качества. Способ также включает в себя уточнения видеоблока, которые должны быть закодированы в одном проходе кодирования.
В еще одном аспекте устройство для кодирования видео с использованием масштабируемого кодирования видео содержит по меньшей мере один кодер, который кодирует видеоблок с первым качеством как часть битового потока базового слоя и как часть по меньшей мере одного битового потока улучшающего слоя кодирует уточнения видеоблока, которые при их комбинировании с видеоблоком, закодированным с первым качеством, дают в результате видеоблок, имеющий второе качество, которое больше первого качества. Уточнения видеоблока кодируются в одном проходе кодирования.
В еще одном аспекте машиночитаемый носитель содержит команды, чтобы заставить один или более процессоров кодировать видеоблок с первым качеством как часть битового потока базового слоя и как часть по меньшей мере одного битового потока улучшающего слоя кодировать уточнения видеоблока, которые при их комбинировании с видеоблоком, закодированным с первым качеством, дают в результате видеоблок, имеющий второе качество, которое больше первого качества. Уточнения видеоблока кодируются в одном проходе кодирования.
В еще одном аспекте устройство для кодирования видеоданных с использованием масштабируемого кодирования видео содержит первое средство для кодирования видеоблока с первым качеством как части битового потока базового слоя и второе средство для кодирования как части по меньшей мере одного битового потока улучшающего слоя уточнений видеоблока, которые при их комбинировании с видеоблоком, закодированным с первым качеством, дают в результате видеоблок, имеющий второе качество, которое больше первого качества. Уточнения видеоблока кодируются в одном проходе кодирования.
В еще одном аспекте способ декодирования видеоданных с использованием масштабируемого кодирования видео содержит этапы, на которых декодируют битовый поток базового слоя для получения видеоблока с первым качеством и декодируют битовый поток улучшающего слоя для получения уточнений видеоблока, которые при их комбинировании с видеоблоком, декодированным с первым качеством, дают в результате видеоблок, имеющий второе качество. Декодирование улучшающего слоя включает в себя этап, на котором для каждого отличного от нуля коэффициента уточнений видеоблока декодируют символ, указывающий наличие по меньшей мере одного оставшегося отличного от нуля коэффициента, длину серии, указывающую количество нулевых коэффициентов, предшествующих отличному от нуля коэффициенту, и знак отличного от нуля коэффициента.
В еще одном аспекте устройство для декодирования видеоданных с использованием масштабируемого кодирования видео содержит по меньшей мере один декодер, который декодирует битовый поток базового слоя для получения видеоблока с первым качеством и декодирует битовый поток улучшающего слоя для получения уточнений видеоблока, которые при их комбинировании с видеоблоком, декодированным с первым качеством, дают в результате видеоблок, имеющий второе качество. По меньшей мере один декодер для каждого отличного от нуля коэффициента уточнений видеоблока декодирует символ, указывающий наличие по меньшей мере одного оставшегося отличного от нуля коэффициента, длину серии, указывающую количество нулевых коэффициентов, предшествующих отличному от нуля коэффициенту, и знак отличного от нуля коэффициента.
В еще одном аспекте машиночитаемый носитель содержит команды, чтобы заставить один или более процессоров декодировать битовый поток базового слоя для получения видеоблока с первым качеством и декодировать битовый поток улучшающего слоя для получения уточнений видеоблока, которые при их комбинировании с видеоблоком, декодированным с первым качеством, дают в результате видеоблок, имеющий второе качество. Команды заставляют один или более процессоров для каждого отличного от нуля коэффициента уточнений видеоблока декодировать символ, указывающий наличие по меньшей мере одного оставшегося отличного от нуля коэффициента, длину серии, указывающую количество нулевых коэффициентов, предшествующих отличному от нуля коэффициенту, и знак отличного от нуля коэффициента.
В еще одном аспекте устройство для декодирования видеоданных с использованием масштабируемого кодирования видео содержит первое средство для декодирования битового потока базового слоя для получения видеоблока с первым качеством и второе средство для декодирования битового потока улучшающего слоя для получения уточнений видеоблока, которые при их комбинировании с видеоблоком, декодированным с первым качеством, дают в результате видеоблок, имеющий второе качество. Второе средство декодирования для каждого отличного от нуля коэффициента уточнений видеоблока декодирует символ, указывающий наличие по меньшей мере одного оставшегося отличного от нуля коэффициента, длину серии, указывающую количество нулевых коэффициентов, предшествующих отличному от нуля коэффициенту, и знак отличного от нуля коэффициента.
Методики, описанные в этом раскрытии, могут быть осуществлены в аппаратном обеспечении, программном обеспечении, программно-аппаратном обеспечении или любой их комбинации. При осуществлении в программном обеспечении программное обеспечение может исполняться в процессоре, который может относиться к одному или более процессорам, таким как микропроцессор, специализированная интегральная схема (ASIC), программируемая вентильная матрица (FPGA), процессор цифровых сигналов (DSP) или другая эквивалентная интегрированная или дискретная логическая схема. Программное обеспечение, содержащее команды для исполнения методик, может быть сначала сохранено на машиночитаемом носителе и загружено и исполнено посредством процессора.
В соответствии с этим это раскрытие также рассматривает машиночитаемые носители, содержащие команды, чтобы заставить процессор выполнять любое разнообразие методик, описанных в этом раскрытии. В некоторых случаях машиночитаемый носитель может образовывать часть компьютерного программного продукта, который может быть продан изготовителям и/или использоваться в устройстве. Компьютерный программный продукт может включать в себя машиночитаемый носитель и в некоторых случаях также может включать в себя упаковочные материалы.
Подробности одного или более аспектов раскрытия изложены ниже в сопроводительных чертежах и в описании. Другие отличительные признаки, цели и преимущества методик, описанных в этом раскрытии, будут очевидны из описания и чертежей и из формулы изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг.1 - блок-схема, иллюстрирующая систему передачи видео, которая поддерживает масштабируемость видео.
Фиг.2 - блок-схема, иллюстрирующая устройство источника и устройство адресата системы кодирования, показанной на Фиг.1, в дополнительных подробностях.
Фиг.3 - блок-схема, иллюстрирующая примерный кодер базового слоя и кодер улучшающего слоя в дополнительных подробностях.
Фиг.4 - блок-схема, иллюстрирующая примерный статистический кодер базового слоя и статистический кодер улучшающего слоя в дополнительных подробностях.
Фиг.5 - блок-схема, иллюстрирующая пример декодера базового слоя и декодера улучшающего слоя в дополнительных подробностях.
Фиг.6 - блок-схема, иллюстрирующая примерный статистический декодер базового слоя и статистический декодер улучшающего слоя в дополнительных подробностях.
Фиг.7 - концептуальная схема, иллюстрирующая зигзагообразное сканирование блока коэффициентов 4×4.
Фиг.8 - концептуальная схема, иллюстрирующая гипотетический пример блока коэффициентов видеоблока улучшающего слоя.
Фиг.9 - блок-схема последовательности операций, иллюстрирующая примерную работу видеокодера, выполняющего методики масштабируемого кодирования видео этого раскрытия.
Фиг.10 - блок-схема последовательности операций, иллюстрирующая примерную работу кодера улучшающего слоя, кодирующего остаточные коэффициенты видеоблока улучшающего слоя в соответствии с одним аспектом этого раскрытия.
Фиг.11 - блок-схема последовательности операций, иллюстрирующая примерную работу декодера улучшающего слоя, декодирующего битовый поток улучшающего слоя для получения вектора остаточных коэффициентов преобразования.
Фиг.12-15 - блок-схемы, иллюстрирующие различные конфигурации кодеров и/или декодеров для использования при масштабируемом кодировании видео в соответствии с этим раскрытием.
ПОДРОБНОЕ ОПИСАНИЕ
Фиг.1 является блок-схемой, иллюстрирующей систему 10 передачи видео, которая поддерживает масштабируемость видео. В примере на Фиг.1 система 10 передачи видео включает в себя устройство 12 источника и множество устройств 14A, 14B адресата (все вместе "устройства 14 адресата"). Устройство 12 источника получает цифровой видеоконтент от одного или более источников и кодирует видеоконтент для передачи на устройства 14 адресата. Видеоконтент, например, может быть захвачен в режиме реального времени или в режиме, близком к реальному времени, архивирован (например, предварительно захвачен), сформирован на компьютере или являться комбинацией перечисленного. В каждом случае видеоконтент может быть закодирован устройством 12 источника для передачи на устройства 14 адресата через канал связи. Устройство 12 источника может включать в себя передатчик или быть подключено к передатчику, который включает в себя подходящие компоненты модуляции радиочастоты (RF), фильтрации и усилителя для привода одной или более антенн для доставки закодированного видео по каналу связи.
Для поддержки масштабируемого видео устройство 12 источника кодирует видео источника как битовый поток базового слоя (или базовый слой) и один или более масштабируемых битовых потоков улучшающих слоев (или улучшающих слоев). Битовый поток базового слоя обычно несет видеоданные с базовым уровнем качества. Один или более улучшающих слоев несут добавочные видеоданные, называемые здесь уточнениями, для поддержки более высоких уровней качества. Уточнения, закодированные в улучающих слоях, например, могут постепенно увеличивать точность воспроизведения (например, визуальное качество) посредством предоставления добавочных более высоких частотных коэффициентов или дополнительного уточнения существующих коэффициентов. В некоторых случаях базовый слой может быть передан более надежным методом, чем передача улучшающих слоев, например с более низкой вероятностью искажения пакетов (PER).
В примере, проиллюстрированном на Фиг.1, для простоты показаны базовый слой и единственный улучшающий слой одного канала. Однако устройство 12 источника может закодировать более одного улучшающего слоя, несущего добавочные видеоданные канала. В некоторых случаях устройство 12 источника может закодировать видео источника в отдельных битовых потоках для поддержки разных каналов для выбора пользователями, ассоциированными с устройствами 14 адресата. Каналы обычно передаются одновременно таким образом, что устройства 14 адресата в любое время могут выбирать разные каналы для просмотра. Таким образом, устройства 14 адресата под управлением пользователя могут выбрать один канал для просмотра спортивных программ и затем выбрать еще один канал для просмотра новостей или некоторого другого запланированного по программе события, что очень похоже на практику просмотра телепередач. В общем случае каждый канал может быть закодирован как базовый слой и один или более улучшающих слоев.
Кроме того, методики этого раскрытия в иллюстративных целях описываются в контексте масштабируемости качества (также называемой масштабируемостью отношения сигнала к шуму (SNR)). Однако методики могут быть расширены на пространственную масштабируемость. В приложениях с пространственной масштабируемостью базовый слой несет видеоданные с базовой пространственной разрешающей способностью, и улучшающие слои несут добавочные видеоданные для поддержки более высокой пространственной разрешающей способности. В некоторых случаях система 10 может употреблять масштабируемость видео, которое комбинирует масштабируемость отношения сигнала к шуму (SNR), пространственную и/или временную масштабируемость.
Устройство 12 источника, например, может кодировать видео источника как базовый слой в соответствии с расширением SVC стандарта H.264/MPEG-4, часть 10, AVC и кодировать видео источника как улучшающий слой в соответствии с методиками, описанными в этом раскрытии. Таким образом, методики, описанные в этом раскрытии, в некоторых аспектах могут быть применены для осуществления расширений масштабируемости видео для устройств, которые иным образом согласованы со стандартом H.264. Фактически методики этого раскрытия могут представлять собой потенциальные модификации для будущих версий или расширений стандарта H.264 или других стандартов. Однако методики могут использоваться вместе с любым разнообразием других стандартов сжатия видео, таких как стандарты MPEG-1 и MPEG-2, ITU-T H.263, стандарт видеокодека 421M Общества инженеров кино и телевидения (SMPTE) (обыкновенно называемый "VC-1"), стандарт, определенный рабочей группой Китая по стандартам кодирования аудио и видео (обыкновенно называемый "AVS"), а также любой другой стандарт кодирования видео, определенный органом по стандартизации или разработанный организацией как частный стандарт.
Устройства 14 адресата могут поддерживать проводной и/или беспроводной прием закодированного видео. Устройства 14 адресата могут содержать любое устройство, способное принимать и декодировать цифровые видеоданные, такое как устройства беспроводной связи, например сотовые или спутниковые радиотелефоны, беспроводные системы вещания, карманные персональные компьютеры (PDA), переносные или настольные компьютеры, цифровые камеры, цифровые записывающие устройства, устройства видеоигр, игровые приставки, цифровые телевизоры, системы прямого цифрового вещания и т.п. В примере на Фиг.1 показаны два устройства 14A, 14B адресата. Однако система 10 может включать в себя любое количество устройств 14 адресата. Устройства 14 адресата также могут работать в соответствии с любым из разнообразия стандартов сжатия видео, описанных выше.
Фиг.1 представляет позиционирование устройств 14 адресата относительно устройства 12 источника, которое передает закодированное видео. В частности, устройство 14A адресата находится ближе к источнику передачи, то есть устройству 12 источника на Фиг.1, а устройство 14B адресата находится дальше от источника передачи. В случаях, в которых базовый слой закодирован с более низкой вероятностью искажения пакетов (PER), оба устройства 14A и 14B адресата могут надежно принимать и декодировать базовый слой. Устройство 14A адресата, которое расположено ближе к устройству 12 источника, также может надежно принимать улучшающий слой. Однако устройство 14B адресата, которое расположено дополнительно дальше от устройства 12 источника, не может надежно принимать улучшающий слой, например, из-за условий сети или канала.
Таким образом, более близкое устройство 14A адресата способно работать с видео более высокого качества, поскольку ему доступны данные и базового слоя, и улучшающего слоя, тогда как устройство 14B адресата способно представлять только минимальный уровень качества, предоставляемый данными базового слоя. Таким образом, видео, полученное устройствами 14 адресата, является масштабируемым в том смысле, что добавочные биты улучшающего слоя могут быть декодированы и добавлены к битовому потоку базового слоя для увеличения отношения сигнала к шуму (SNR) декодированного видео. Однако масштабируемость возможна только тогда, когда представлены данные улучшающего слоя. Таким образом, термин "качество", используемый в этом раскрытии, может ссылаться к объективному и/или субъективному визуальному качеству. Другими словами, уточнения улучшающего слоя дают в результате видеоданные с более высококачественным воспроизведением первоначальных данных. В этом методе точность воспроизведения видео увеличивается посредством улучшающего слоя.
В других случаях условия сети или канала могут быть достаточными для обоих устройств 14A и 14B адресата, чтобы принять базовый слой и улучшающий слой. Однако устройства 14A и 14B адресата могут иметь различные способности декодера, которые не позволяют одному из устройств 14A и 14B адресата использовать добавочные видеоданные улучшающего слоя для воспроизведения более высококачественного видео. Если одно из устройств 14 адресата является таким клиентским устройством, как например, мобильная телефонная трубка или другое маленькое переносное устройство, могут иметься ограничения вследствие вычислительной сложности и требований к памяти. В соответствии с этим масштабируемое кодирование видео может быть создано таким образом, что устройства 14 адресата с ограниченными вычислительными ресурсами или ресурсами памяти могут декодировать только базовый слой. В этом методе устройства 14 адресата с более хорошими условиями сети или канала и/или более хорошими способностями декодера будут в состоянии воссоздать видео с более высоким качеством с использованием добавочных видеоданных улучшающего слоя.
Методики, описанные в этом раскрытии, используют методики статистического кодирования, которые содействуют эффективному кодированию битовых потоков улучшающего слоя. Методики статистического кодирования этого раскрытия могут дать возможность кодирования добавочных видеоданных, например, в форме уточнений в битовом потоке улучшающего слоя в одном проходе кодирования, тем самым уменьшая сложность кодирования, задержку кодирования и требования к памяти. Как будет описано в дополнительных подробностях, устройство 12 источника в некоторых случаях может закодировать каждый отличный от нуля коэффициент вектора коэффициентов улучшающего слоя без знания о каких-либо последующих коэффициентах, то есть каких-либо коэффициентах после отличного от нуля коэффициента, кодируемого в настоящий момент. Кодирование улучшающего слоя с одним проходом может избавить от необходимости выполнения первого прохода для анализа вектора коэффициентов и второго прохода для кодирования вектора коэффициентов на основе этого анализа.
Например, некоторые традиционные статистические кодеры могут выполнять первый проход кодирования, чтобы сформировать символы для представления вектора коэффициентов, причем по меньшей мере некоторые из символов представляют более одного отличного от нуля коэффициента. Другими словами, знание о последующих коэффициентах необходимо для кодирования отличных от нуля коэффициентов вектора коэффициентов. Вдобавок или в качестве альтернативы некоторые традиционные статистические кодеры могут также выбирать во время первого или последующего прохода кодирования таблицы кодирования VLC для использования при кодировании символов. В одном аспекте таблицы кодирования VLC могут быть выбраны на основе сформированных символов. В качестве альтернативы во время первого прохода кодирования посредством анализа вектора коэффициентов могут быть собраны статистические данные, и таблицы кодирования VLC могут быть выбраны на основе накопленных статистических данных.
Затем традиционным статистическим кодером выполняется второй проход кодирования для статистического кодирования вектора коэффициентов на основе анализа, выполненного во время первого прохода кодирования. В качестве одного примера, некоторые традиционные статистические кодеры во время второго прохода кодирования могут кодировать символы, сформированные во время первого прохода, с использованием таблиц кодирования VLC, выбранных на основе сформированных символов или других статистических данных. Формирование символов, которые представляют более одного отличного от нуля коэффициента и/или выбор таблиц кодирования VLC на основе сформированных символов или других статистических данных, может позволить более эффективно кодировать вектор коэффициентов.
Методики этого раскрытия не только избавляют от необходимости более одного прохода для кодирования улучшающего слоя, но методики статистического кодирования этого раскрытия могут вдобавок привести к кодированию улучшающего слоя без сохранения информации коэффициентов видеоданных базового слоя и доступа к ней, что дополнительно уменьшает вычислительную сложность и требования к памяти.
Устройство 12 источника, устройство 14 адресата или они оба могут являться беспроводным или проводным устройством связи, как описано выше. Также устройство 12 источника, устройство 14 адресата или они оба могут быть осуществлены как устройство на интегральных схемах, такое как интегральная микросхема или набор микросхем, которое может быть заключено в беспроводное или проводное устройство связи или в устройство другого типа, поддерживающее приложения для работы с цифровым видео, такие как цифровой проигрыватель медиа, карманный персональный компьютер (PDA), цифровой телевизор и т.п.
Фиг.2 является блок-схемой, иллюстрирующей устройство 12 источника и устройство 14 адресата системы 10 кодирования в дополнительных подробностях. Устройство 14 адресата, например, может быть любым из устройств 14A или 14B адресата, показанным на Фиг.1. Как показано на Фиг.2, устройство 12 источника может включать в себя источник 18 видео, видеокодер 20 и передатчик 22. Источник 18 видео устройства 12 источника может включать в себя устройство захвата видео, такое как видеокамера, видеоархив, вмещающий в себя ранее захваченное видео, или видео, поставленное от поставщика видеоконтента. Как дополнительная альтернатива, источник 18 видео может формировать в качестве видеоисточника данные на основе компьютерной графики или комбинацию «живого» видео и видео, созданного компьютером. В некоторых случаях устройство 12 источника может являться так называемым «камерофоном» или видеотелефоном, в этом случае источник 18 видео может являться видеокамерой. В каждом случае захваченное, предварительно захваченное или созданное компьютером видео может быть закодировано видеокодером 20 для передачи от устройства 12 источника на устройство 14 адресата через передатчик 22 и канал 16 связи.
Видеокодер 20 принимает видеоданные от источника 18 видео и кодирует видеоданные как битовый поток базового слоя и один или более битовых потоков улучшающего слоя. В примере, проиллюстрированном на Фиг.2, видеокодер 20 включает в себя кодер 30 базового слоя и кодер 32 улучшающего слоя. Кодер 30 базового слоя и кодер 32 улучшающего слоя принимают обыкновенные видеоданные от источника 18 видео. Кодер 30 базового слоя кодирует видеоданные с первой скоростью передачи битов для формирования битового потока базового слоя видео на первом уровне качества. Кодер 32 улучшающего слоя кодирует добавочные биты для формирования одного или более улучшающих слоев, которые при их добавлении к битовому уровню базового слоя улучшают видео до второго, более высокого уровня качества. Другими словами, улучшающий слой при его добавлении к базовому слою предоставляет вторую, более высокую скорость передачи битов, которая предоставляет более высокий уровень качества. Таким образом, улучшающий слой может рассматриваться как уточнение видеоданных, закодированных в базовом слое. Уточнения могут являться, например, добавочными коэффициентами и/или уточнениями к существующим коэффициентам. Уточнения, закодированные в улучшающих слоях, могут быть иерархическими в том смысле, что уточнения в улучшающих слоях постепенно увеличивают качество видеоданных по мере их декодирования. Таким образом, декодирование уточнений всех улучшающих слоев, например, приведет к самой высокой скорости передачи битов и максимальному качеству, в то время как декодирование уточнений только первого улучшающего слоя произведет увеличение скорости передачи битов и качества относительно декодирования только базового слоя.
Видеоданные, принятые от источника 18 видео, могут являться рядом видеокадров. Кодер 30 базового слоя и кодер 32 улучшающего слоя делят ряд кадров на закодированные элементы и обрабатывают закодированные элементы для кодирования ряда видеокадров. Закодированные элементы могут, например, быть цельными кадрами или участками кадров, такими как мозаичные фрагменты кадров. Кодер 30 базового слоя и кодер 32 улучшающего слоя делят каждый закодированный элемент на блоки пикселей (упоминаемые здесь как видеоблоки или блоки) и работают над видеоблоками в пределах индивидуальных закодированных элементов для кодирования видеоданных. Таким образом, видеоданные могут включать в себя множество кадров, кадр может включать в себя множество мозаичных фрагментов, и мозаичный фрагмент может включать в себя множество видеоблоков.
Видеоблоки могут иметь фиксированные или переменные размеры и могут отличаться по размеру в соответствии со специфицированным стандартом кодирования. В качестве примера, стандарт ITU-T H.264/MPEG-4, часть 10, AVC поддерживает внутреннее предсказание с разнообразными размерами блока, такими как 16×16, 8×8 или 4×4 для компонентов яркости и 8×8 для компонентов цветности, а также внешнее предсказание с разнообразными размерами блока, такими как 16×16, 16×8, 8×16, 8×8, 8×4, 4×8 и 4×4 для компонентов яркости и соответствующими масштабированными размерами для компонентов цветности. В стандарте H.264/ MPEG-4, часть 10, AVC каждый видеоблок, часто называемый макроблоком (MB), может быть разделен на субблоки одного размера или разных размеров. Таким образом, закодированный элемент может содержать субблоки одинаковых или разных размеров. В общем случае макроблоки и разнообразные субблоки могут рассматриваться как видеоблоки. Таким образом, макроблоки могут рассматриваться как видеоблоки, и если они разделены или подразделены, может считаться, что сами макроблоки задают множества видеоблоков.
Кодеры 30, 32 выполняют внутреннее и внешнее кодирование видеоблоков кадров. Внутреннее кодирование полагается на пространственное предсказание для уменьшения или удаления пространственной избыточности в видеоданных в пределах заданного закодированного элемента, например кадра или мозаичного фрагмента. Для внутреннего кодирования кодеры 30, 32 образуют блок пространственного предсказания на основе одного или более ранее закодированных блоков в пределах того же самого кадра, что и текущий кодируемый блок. Блок предсказания может являться предсказанной версией текущего кодируемого видеоблока. Кодер 30 базового слоя мож