Методики кодирования и декодирования цифрового видео с переменным разрешением

Иллюстрации

Показать все

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

Реферат

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

Цифровое видео требует большого объема памяти и большой пропускной способности. Типовая необработанная цифровая видеопоследовательность содержит 15, 30 или даже 60 кадров в секунду (кадр/с). Каждый кадр может включать в себя сотни тысяч пикселей. Каждый пиксель представляет крошечный элемент изображения. В необработанном виде компьютер обычно представляет один пиксель, например, 24-мя битами. Таким образом, битрейт, или количество бит в секунду, для типовой необработанной цифровой видеопоследовательности может составлять порядка 5 миллионов бит в секунду (бит/с) или более.

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

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

Сущность изобретения

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

Различные варианты осуществления изобретения относятся в целом к цифровому кодированию, декодированию и обработке цифрового мультимедийного контента, такого как видео, изображения, снимки и т.д. В некоторых вариантах цифровое кодирование, декодирование и обработка цифрового мультимедийного контента могут основываться на ряде стандартов и вариантов видеокодека стандарта 421М (“VC-1”) Общества кино- и телеинженеров США (SMPTE). В частности, некоторые варианты изобретения относятся к способам видеокодирования и видеодекодирования с множественным разрешением, а также к тому, каким образом допускается использование указанных способов в битовом потоке VC-1 без потери полной совместимости с предыдущими версиями. В одном варианте устройство, например, может включать в себя видеокодер, скомпонованный для сжатия или кодирования цифровой видеоинформации в виде расширенного видеопотока или битового потока SMPTE VC-1. Этот видеокодер может кодировать цифровую видеоинформацию в виде множества уровней, например, один базовый уровень и один или несколько уровней пространственного и/или временного улучшения. Базовый уровень может предложить определенное минимальное пространственное разрешение и базовый уровень временного разрешения. Один или несколько уровней улучшения могут включать в себя кодированную видеоинформацию, которую можно использовать для повышения базового уровня пространственного разрешения и/или базового уровня временного разрешения для видеоинформации, закодированной в виде базового уровня. Видеодекодер может избирательно декодировать видеоинформацию из базового уровня и одного или нескольких уровней улучшения для проигрывания или воспроизведения видеоинформации с желаемым уровнем качества. Аналогичным образом, блок многоадресного управления аудио- видеоинформацией (AVMCU) может выбрать видеоинформацию из базового уровня и одного или нескольких уровней улучшения для одного участника видеоконференции на основе такой информации, как доступная в данный момент полоса пропускания сети и пропускная способность приемника при декодировании. Также описаны и заявлены другие варианты.

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

Фиг. 1 иллюстрирует вариант системы видеозаписи и воспроизведения.

Фиг. 2 иллюстрирует вариант общей системы видеокодера.

Фиг. 3 иллюстрирует вариант общей системы видеодекодера.

Фиг. 4 иллюстрирует вариант иерархии уровней видео.

Фиг. 5 иллюстрирует вариант первого видеопотока.

Фиг. 6 иллюстрирует вариант второго видеопотока.

Фиг. 7 иллюстрирует вариант третьего видеопотока.

Фиг. 8 иллюстрирует вариант четвертого видеопотока.

Фиг. 9 иллюстрирует вариант логической блок-схемы.

Фиг. 10 иллюстрирует вариант первой модифицированной видеосистемы.

Фиг. 11 иллюстрирует вариант второй модифицированной видеосистемы.

Фиг. 12 иллюстрирует вариант вычислительной среды.

Подробное описание изобретения

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

Для решения этих и других проблем могут быть предложены различные варианты, связанные с методиками кодирования и декодирования с множественным разрешением. Масштабируемый видеокодер может кодировать цифровую видеоинформацию в виде множества уровней видео в общем видеопотоке, где каждый уровень видео предлагает один или несколько уровней пространственного разрешения и/или временного разрешения. Видеокодер может мультиплексировать цифровую видеоинформацию для множества уровней видео, например, базовый уровень и уровни улучшения, в один общий видеопоток. Видеодекодер может демультиплексировать или избирательно декодировать видеоинформацию из общего видеопотока для извлечения видеоинформации из базового уровня и одного или нескольких уровней улучшения с целью проигрывания или воспроизведения видеоинформации с желаемым уровнем качества, как правило, определенном в единицах отношения сигнал-шум (SNR) или других показателях. Видеодекодер может избирательно декодировать видеоинформацию с использованием различных стартовых кодов, определенных для каждого уровня видео. Аналогичным образом, блок AVMCU может напрямую выбрать указанный базовый уровень и только поднабор уровней улучшения для одного или нескольких участников на основе такой информации, как доступная в данный момент полоса пропускания и пропускная способность декодера. Блок AVMCU выбирает уровни, используя стартовые коды в битовом видеопотоке.

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

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

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

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

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

В частности, такой улучшенный вариант реализации переменного разрешения при видеокодировании имеет преимущество, состоящее в наличии параметров, которые задают в видеопотоке размеры разрешения при отображении. Разрешение при кодировании для участка видео передается на уровне точек входа. Точки входа находятся рядом или на стыке с одной или несколькими субпоследовательностями или группами изображений из видеопоследовательности, которая начинается с кадра с внутренним кодированием (называемого также «I-кадр») и также может содержать один или несколько кадров, закодированных с предсказанием (также называемых «P-кадр» или «B-кадр»), которые кодируются с предсказанием относительно указанного кадра с внутренним кодированием. Таким образом, разрешение при кодировании, сообщенное в данной точке входа, применяется к группе изображений, которые включают в себя I-кадр на базовом уровне и P-кадры или B-кадры, относящиеся к указанному I-кадру.

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

На фиг. 1 показан вариант реализации системы 100 видеозаписи и воспроизведения. На фиг. 1 показана система 100 видеозаписи и воспроизведения, использующая видеокодек, в котором реализован способ кодирования с переменным разрешением в типовом приложении или пользовательском сценарии. Система 100 видеозаписи и воспроизведения обычно включает в себя источник видео/кодер 12, который записывает и кодирует видеоконтент от источника 110 входного цифрового видео в виде сжатого битового видеопотока по каналу 140 связи, и видеоплеер/декодер 150, который принимает и декодирует видеоинформацию из канала и отображает ее на видеодисплее 170. Некоторые примеры указанных систем, в которых может быть реализован описанный ниже видеокодек с переменным разрешением при кодировании, охватывают системы, в которых видеозапись, кодирование, декодирование и воспроизведение выполняются в одном устройстве, а также системы, в которых эти операции выполняются в отдельных устройствах, находящихся в разных местах. Например, цифровой видеорекордер или персональный компьютер с картой селектора (тюнера) телевизионных каналов может записывать и кодировать видео в накопителе на жестких дисках, а также считывать, декодировать и отображать на мониторе видеоинформацию из накопителя на жестких дисках. В другом примере издатель или телевещатель коммерческого видео может использовать систему изготовления мастер-дисков, включающую в себя видеокодер, для создания видеопередач (например, через цифровой спутниковый канал или видеопоток Web) или запоминающего устройства (например, магнитная лента или диск), несущего закодированное видео, которое затем используют для распространения этого видео по пользовательским устройствам декодирования и воспроизведения (например, персональный компьютер, видеоплеер, видеоприемник и т.д.).

В показанной здесь системе 100 источник видео/кодер 120 включает в себя препроцессор 122 источника, кодер 124 сжатия источника, мультиплексор 126 и канальный кодер 128. Препроцессор 122 получает несжатое цифровое видео от источника 110 цифрового видео, например, такого как видеокамера, аналоговая телевизионная запись или другие источники, и обрабатывает это видео для ввода в кодер 124 сжатия. Кодер 124 сжатия, примером которого является видеокодер 200, описанный со ссылками на фиг. 2, выполняет сжатие и кодирование видео. Мультиплексор 126 составляет пакеты и доставляет результирующий сжатый битовый видеопоток в канальный кодер 128 для кодирования и передачи по каналу 140 связи. Канал 140 связи может представлять собой канал передачи видео, такой как цифровое телевизионное вещание, спутниковая или иная эфирная передача, либо кабельная, телефонная или иная проводная передача и т.д. Канал 140 связи также может представлять собой носитель записанного видео, такой как компьютерный накопитель на жестких дисках или диск другого типа, ленту, оптический диск (DVD) или иной съемный носитель с записью. Канальный кодер 128 кодирует сжатый битовый видеопоток в виде контейнера файлов, сигнала несущей для передачи или т.п.

В видеоплеере/декодере 150 канальный декодер 152 декодирует сжатый битовый видеопоток в канале 140 связи. Демультиплексор 154 демультиплексирует сжатый битовый видеопоток и доставляет его из канального декодера в декодер 156 сжатия, примером которого является видеодекодер 300, описанный со ссылками на фиг. 3. Затем декодер сжатия декодирует и восстанавливает видео из сжатого битового видеопотока. Наконец, постпроцессор 158 обрабатывает видео, подлежащее отображению на видеодисплее 170. Примеры операций постобработки включают в себя деблокирование, подавление периодически повторяющихся помех или иное устранение артефактов, преобразование со сжатием диапазона, цветовое преобразование и иные подобные операции.

На фиг. 2 представлена блок-схема обобщенного видеокодера 200, а на фиг. 3 - блок-схема обобщенного видеодекодера 300, в которых может быть реализован указанный способ кодирования с переменным разрешением. Взаимосвязи между модулями в кодере и декодере указывают на основной поток информации в кодере и декодере, в то время как другие взаимосвязи для ясности опущены. В частности, на фигурах 2 и 3 не показана вспомогательная информация, указывающая настройки кодера, режимы, таблицы и т.д., используемые для видеопоследовательности, кадра, макроблока, блока и т.д. Указанная вспомогательная информация пересылается в выходном битовом потоке, как правило, после энтропийного кодирования вспомогательной информации. Форматом выходного битового потока может быть, например, формат SMPTE VC-1, формат SMPTE VC-1, адаптированный для передачи в реальном времени, формат H.263, формат H.264 или другие форматы для видео.

В одном варианте кодер 200 и декодер 300 имеют, например, блочную основу и используют формат макроблока 4:2:0, причем каждый макроблок включает в себя 4 блока яркости 8 × 8 (время от времени рассматриваемые как один макроблок 16 × 16) и два блока цветности 8 × 8. В альтернативном варианте кодер 200 и декодер 300 имеют объектную основу, используют разные форматы макроблока или блока или выполняют операции на наборах пикселей разного размера или конфигурации, отличных от блоков 8 × 8 и макроблоков 16 × 16. Макроблок можно использовать для представления либо прогрессивного, либо чересстрочного видеоконтента.

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

Обычно способы сжатия видео включают в себя внутрикадровое сжатие и межкадровое сжатие. В способах внутрикадрового сжатия сжимаются отдельные кадры, которые обычно называют I-кадрами, ключевыми кадрами или опорными кадрами. В способах межкадрового сжатия кадры сжимаются со ссылками на предыдущие и/или последующие кадры, и такие кадры обычно называют предсказанными кадрами. Примерами предсказанных кадров являются предсказуемый (P), суперпредсказуемый (SP) кадр и «бипредсказуемый» или двунаправленный (B) кадр. Предсказанный кадр представляют на основе предсказания с компенсацией движения (или различия), исходя из одного или нескольких других кадров. Предсказанный остаток представляет собой различие между тем, что было предсказано, и оригинальным кадром. В противоположность этому, I-кадр, или ключевой кадр, сжимают без обращения к другим кадрам.

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

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

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

Предсказанный кадр (например, P-кадр, SP-кадр и B-кадр) представляют на основе предсказания (или различия) исходя из одного или нескольких других кадров. Остаток предсказания представляет собой различие между тем, что было предсказано, и исходным кадром. В противоположность этому, ключевой кадр (например, I-кадр) сжимают без обращения к другим кадрам.

Если текущий кадр 205 является напрямую предсказанным кадром, то блок 210 оценки движения оценивает движение макроблоков или других наборов пикселей (например, блоков 16 × 8, 8 × 16 или 8 × 8) текущего кадра 205 относительно опорного кадра, который является восстановленным предыдущим кадром 225, хранящимся в хранилище 220 кадров. В альтернативных вариантах опорный кадр является более поздним кадром, либо текущий кадр является кадром с двунаправленным предсказанием. Блок 210 оценки движения в качестве дополнительной информации выводит информацию 215 о движении, например, векторы движения. Компенсатор 230 движения использует информацию 215 о движении для восстановленного предыдущего кадра 225 с целью формирования текущего кадра 235 с компенсацией движения. Однако предсказание редко бывает точным, и различие между текущим кадром 235 с компенсацией движения и исходным текущим кадром 205 представляет собой остаток 245 предсказания. В альтернативном варианте блок оценки движения и компенсатор движения используют оценку движения/компенсацию движения другого типа.

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

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

Если для последующей оценки/компенсации движения необходим восстановленный текущий кадр, обратный квантователь 276 выполняет обратное квантование квантованных коэффициентов спектральных данных. Затем обратный преобразователь 266 частоты выполняет операции, обратные операциям преобразователя 260 частоты, создавая восстановленный остаток предсказания (для предсказанного кадра) или восстановленный ключевой кадр. Если текущий кадр 205 был ключевым кадром, то в качестве восстановленного текущего кадра берется этот восстановленный ключевой кадр. Если текущий кадр 205 был предсказанным кадром, то восстановленный остаток предсказания добавляется к текущему кадру 235 с компенсацией движения для формирования восстановленного текущего кадра. В хранилище 220 кадров выполняется буферизация восстановленного текущего кадра для его использования при предсказании следующего кадра. В некоторых вариантах кодер использует деблокирующий фильтр для восстановленного кадра с целью адаптивного сглаживания разрывов в блоках кадров.

Энтропийный кодер 280 сжимает выходной сигнал квантователя 270, а также некоторую дополнительную информацию (например, информацию 215 о движении, размер шага квантования). Типовые способы энтропийного кодирования включают в себя арифметическое кодирование, дифференциальное кодирование, кодирование Хаффмана, кодирование длин серий, LZ кодирование, словарное кодирование и их комбинации. Энтропийный кодер 280 обычно использует различные способы кодирования для разного вида информации (например, DC коэффициенты, AC коэффициенты, дополнительная информация разных видов) и может осуществлять выбор из множества кодовых таблиц в рамках конкретного способа кодирования.

Энтропийный кодер 280 помещает сжатую видеоинформацию 295 в буфер 290. В адаптивные модули битрейта возвращается индикатор уровня буфера. Сжатая видеоинформация 295 извлекается из буфера 290 с постоянным или относительно постоянным битрейтом и запоминается для последующей передачи потока с этим битрейтом. В альтернативном варианте кодер 200 обеспечивает потоковую передачу сжатой видеоинформации немедленно после сжатия.

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

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

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

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

Энтропийный декодер 380 осуществляет энтропийное декодирование подвергнутых энтропийному кодированию квантованных данных, а также подвергнутую энтропийному кодированию дополнительную информацию (например, информацию о движении, размер шага квантования), используя, как правило, операцию, обратную энтропийному кодированию, которая выполняется кодером. Способы энтропийного декодирования включают в себя арифметическое декодирование, дифференциальное декодирование, декодирование Хаффмана, декодирование длин серий, LZ декодирование, словарное декодирование и их комбинации. В энтропийном декодере 380 часто используют разные способы декодирования для информации разного вида (например, DC коэффициенты, AC коэффициенты, разного рода дополнительная информация), а также возможен выбор из множества кодовых таблиц в рамках конкретного способа декодирования.

Если кадр 305, подлежащий восстановлению, является напрямую предсказанным кадром, компенсатор 330 движения использует информацию 315 о движении для опорного кадра 325 с целью формирования предсказания 335 восстанавливаемого кадра 305. Например, компенсатор 330 движения использует вектор движения макроблока для обнаружения соответствующего макроблока в опорном кадре 325. Таким образом, предсказание 335 представляет собой набор видеоблоков с компенсацией движения из ранее декодированного видеокадра. Буфер 320 кадров запоминает ранее восстановленные кадры для их использования в качестве опорных кадров. В альтернативном варианте компенсатор движения применяет компенсацию движения другого типа. Предсказание, осуществляемое компенсатором движения, редко бывает безошибочным, так что декодер 300 также восстанавливает остатки предсказания.

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

Обратный квантователь 370 выполняет обратное квантование энтропийно декодированных данных. Обычно обратный квантователь использует для энтропийно декодированных данных равномерное скалярное обратное квантование с размером шага, который изменяется на покадровой основе или иной основе. В альтернативном варианте обратный квантователь применяет другой тип обратного квантования к этим данным, например, неравномерное, векторное или неадаптивное квантование, либо выполняет напрямую обратное квантование данных пространственной области в системе декодера, в которой не используются обратные преобразования частоты.

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

Методика кодирования с переменным разрешением позволяет декодеру поддерживать желаемое разрешение при отображении видео, что предоставляет кодеру возможность гибкого выбора для кодирования какого-либо участка или участков видео на множестве уровней разрешения при кодировании, которое может отличаться от разрешения при отображении. Кодер может кодировать некоторые изображения из видеопоследовательности при более низких значениях разрешения для достижения более низкого битрейта, размера отображения или качества отображения. Если необходимо использовать более низкое разрешение при кодировании, кодер выполняет фильтрацию и понижающую дискретизацию изображения (изображений) до более низкого разрешения. При декодировании декодер избирательно декодирует эти участки видеопотока с более низким разрешением при кодировании для отображения с данным разрешением при отображении. Декодер может также выполнить повышающую дискретизацию видео с более низким разрешением перед отображением на экране с адресуемостью с большим количеством пикселей. Аналогичным образом кодер может закодировать некоторые изображения из видеопоследовательности с более высокими значениями разрешения для достижения более высокого битрейта при кодировании, размера отображения или качества отображения. При необходимости использования более высокого разрешения при кодировании фильтр кодера сохраняет более крупный участок с разрешением исходного видео. Обычно это выполняется путем кодирования дополнительного уровня, представляющего различие между видео с более высоким разрешением и версией уровня с более низким разрешением, интерполированного для согласования размера видео с более высоким разрешением. Например, исходное видео может иметь разрешение по горизонтали и вертикали, составляющее 640 и 480 пикселей соответственно. Кодированный базовый уровень может иметь 160 × 120 пикселей. Первый уровень пространственного улучшения может обеспечить разрешение 320 × 240 пикселей. Этот уровень пространственного улучшения можно получить путем понижающей дискретизации исходного видео с коэффициентом 2 для разрешения по горизонтали и вертикали. Кодирование выполняется путем вычисления различия между видео 320 × 240 и базовым уровнем 160 × 120, интерполированным с коэффициентом 2 по горизонтали и вертикали, для согласования с разрешением 320 × 240 первого уровня улучшения. При декодировании декодер избирательно декодирует эти участки видеопотока с указанной базой и более высоким пространственным разрешением при кодировании для отображения с данным разрешением или для обеспечения более высокой степени детализации в видео независимо от разрешения для отображения.

В различных вариантах видеокодер 200 может обеспечить переменное разрешение при кодировании на покадровой или иной основе. Разрешения различного уровня при кодировании могут быть реализованы в виде множества уровней видео, где каждый уровень видео обеспечивает разный уровень пространственного разрешения и/или временного разрешения для данного набора видеоинформации. Например, видеокодер 200 может быть скомпонован для кодирования видеоинформации в виде видеопотока с базовым уровнем и уровнем улучшения. Видеоинформация может содержать, например, одну или несколько кадровых последовательностей, кадры, изображения, снимки, стоп-кадры, блоки, макроблоки, наборы пикселей или иной определенный набор видеоданных (называемых общим термином «кадры»). Базовый уровень может иметь первый уровень пространственного разрешения и первый уровень временного разрешения. Уровень улучшения может повысить п