Адаптивное кодирование режима прогнозирования видеоблоков

Иллюстрации

Показать все

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

Реферат

По настоящей заявке испрашивается приоритет на основании предварительной заявки на патент США № 60/944,470, поданной 15 июля 2007 года, и предварительной заявки на патент США № 60/979,762, поданной 12 октября 2007 года, содержимое каждой из которых в полном объеме включено в настоящий документ путем ссылки.

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ

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

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

Возможности цифрового видео могут быть встроены в широкий диапазон устройств, включая цифровые телевизоры, системы цифрового прямого широковещания, устройства беспроводной связи, такие как переносные радиотелефоны, беспроводные широковещательные системы, персональные цифровые устройства (PDA), дорожные или настольные компьютеры, цифровые камеры, цифровые записывающие устройства, устройства видеоигр, консоли видеоигр и т.п. Цифровые видеоустройства реализуют такие технологии сжатия видеоизображения, как MPEG-2, MPEG-4 или H.264/MPEG-4, часть 10, усовершенствованное кодирование видео (AVC), чтобы более эффективно передавать и принимать цифровое видео. Технологии сжатия видеоизображений выполняют графическое и временное прогнозирование для того, чтобы уменьшать или удалять избыточность, присутствующую в видеопоследовательностях.

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

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

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

Раскрытие изобретения

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Фиг.7 является блок-схемой последовательности операций, иллюстрирующей выбор примерного контекста кодирования для кодирования.

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

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

Фиг.1 является блок-схемой, иллюстрирующей систему кодирования и декодирования видео 10, которая выполняет технологии кодирования, описанные в настоящем описании. Как показано на фиг.1, система 10 включает в себя исходное устройство 12, которое передает кодированные видеоданные в целевое устройство 14 через канал 16 связи. Исходное устройство 12 формирует кодируемые видеоданные для передачи в целевое устройство 14. Исходное устройство 12 может включать в себя видеоисточник 18, видеокодер 20 и передающее устройство 22. Видеоисточник 18 исходного устройства 12 может включать в себя устройство видеозахвата, такое как видеокамера, видеоархив, содержащий ранее захваченное видео, или видеопередачу от поставщика видеосодержимого. В качестве дополнительной альтернативы, видеоисточник 18 может формировать основанные на компьютерной графике данные в качестве исходного видео или комбинацию живого видео и машиногенерируемого видео. В некоторых случаях исходное устройство 12 может быть так называемым камерофоном или видеотелефоном, и при этом видеоисточник 18 может быть видеокамерой. В каждом случае захваченное, предварительно захваченное или машиногенерируемое видео может быть кодировано посредством видеокодера 20 для передачи из исходного устройства 12 в целевое устройство 14 через передающее устройство 22 и канал 16 связи.

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

Видеоблоки могут иметь фиксированный или изменяющийся размер и могут отличаться по размеру согласно заданному стандарту кодирования. В качестве примера Сектор стандартизации Международного Союза по телекоммуникациям (ITU-T) H.264/MPEG-4, Часть 10, Усовершенствованное кодирование видео (AVC) (в дальнейшем стандарт "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, например, каждый видеоблок в 16×16 пикселов, зачастую называемый макроблоком (MB), может быть подразделен на субблоки меньшего размера и прогнозирован в субблоках. В общем, MB и различные субблоки могут считаться видеоблоками. Таким образом, MB могут считаться видеоблоками, и если разбиты на сегменты или на подсегменты, MB могут сами рассматриваться как задающие наборы видеоблоков.

Для каждого из видеоблоков видеокодер 20 выбирает тип блока для блока. Тип блока может указывать то, прогнозируется блок с использованием взаимного прогнозирования или внутреннего прогнозирования, а также размер сегмента блока. Например, стандарт H.264/MPEG-4 часть 10 AVC поддерживает число типов блока взаимного и внутреннего прогнозирования, в том числе взаимный 16×16, взаимный 16×8, взаимный 8×16, взаимный 8×8, взаимный 8×4, взаимный 4×8, взаимный 4×4, внутренний 16×16, внутренний 8×8 и внутренний 4×4. Как подробно поясняется ниже, видеокодер 20 может выбирать один из типов блоков для каждого из видеоблоков.

Видеокодер 20 также выбирает режим прогнозирования для каждого из видеоблоков. В случае внутренне кодированного видеоблока режим прогнозирования может определять способ, чтобы прогнозировать текущий видеоблок, с использованием одного или более ранее кодированных видеоблоков. В стандарте H.264/MPEG-4 часть 10 AVC, например, видеокодер 20 может выбирать один из девяти возможных режимов однонаправленного прогнозирования для каждого внутреннего блока 4×4: режим вертикального прогнозирования, режим горизонтального прогнозирования, режим DC-прогнозирования, режим прогнозирования вниз и влево по диагонали, режим прогнозирования вниз и вправо по диагонали, режим прогнозирования вправо по вертикали, режим прогнозирования вниз по горизонтали, режим прогнозирования влево по вертикали и режим прогнозирования вверх по горизонтали. Аналогичные режимы прогнозирования используются для того, чтобы прогнозировать каждый внутренний блок 8×8. Для внутреннего блока 16×16 видеокодер 20 может выбирать один из четырех возможных однонаправленных режимов: режим вертикального прогнозирования, режим горизонтального прогнозирования, режим DC-прогнозирования и режим прогнозирования на плоскости. В некоторых случаях видеокодер 20 может выбирать режим прогнозирования из набора режимов прогнозирования, который включает в себя не только режимы однонаправленного прогнозирования, но также и один или более режимов многонаправленного прогнозирования, которые задают комбинации однонаправленных режимов. Например, один или более режимов многонаправленного прогнозирования могут быть режимами двунаправленного прогнозирования, которые сочетают два режима однонаправленного прогнозирования, как описывается подробнее ниже.

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

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

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

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

После сканирования коэффициентов видеокодер 20 кодирует каждый из видеоблоков единицы кодирования с использованием любой из множества технологий энтропийного кодирования, таких как контекстно-адаптивное кодирование переменной длины (CAVLC), контекстно-адаптивное двоичное арифметическое кодирование (CABAC), кодирование по длинам серий и т.п. Исходное устройство 12 передает кодированные видеоданные в целевое устройство 14 через передающее устройство 22 и канал 16. Канал 16 связи может содержать любую передающую среду беспроводной или проводной связи, такую как радиочастотный (RF) спектр или одна или более физических линий передачи, либо любую комбинацию беспроводных и проводных передающих сред. Канал 16 связи может формировать часть сети с коммутацией пакетов, такой как локальная вычислительная сеть, глобальная вычислительная сеть либо глобальная сеть, такая как Интернет. Канал 16 связи, в общем, представляет любую надлежащую среду связи или набор различных сред связи для передачи кодированных видеоданных из исходного устройства 12 в целевое устройство 14.

Целевое устройство 14 может включать в себя приемное устройство 24, видеодекодер 26 и дисплейное устройство 28. Приемное устройство 24 принимает кодированный поток видеобитов из исходного устройства 12 через канал 16. Видеодекодер 26 применяет энтропийное декодирование, чтобы декодировать кодированный поток видеобитов, чтобы получать информацию заголовка и квантованные остаточные коэффициенты кодированных видеоблоков кодированной единицы. Как описано выше, квантованные остаточные коэффициенты, кодируемые посредством исходного устройства 12, кодируются как одномерный вектор. Следовательно, видеодекодер 26 сканирует квантованные остаточные коэффициенты кодированных видеоблоков, чтобы преобразовывать одномерный вектор коэффициентов в двумерный блок квантованных остаточных коэффициентов. Аналогично видеокодеру 20 видеодекодер 26 может собирать статистические данные, которые указывают вероятность того, что данная позиция коэффициента в видеоблоке является нулевой или ненулевой, и тем самым регулировать порядок сканирования тем же способом, который использовался в процессе кодирования. Соответственно, взаимнообратные порядки адаптивного сканирования могут применяться посредством видеодекодера 26 для того, чтобы изменять представление одномерного вектора преобразованных в последовательную форму квантованных коэффициентов преобразования обратно в двумерные блоки квантованных коэффициентов преобразования.

Видеодекодер 26 восстанавливает каждый из блоков единицы кодирования с использованием декодированной информации заголовка и декодированной остаточной информации. В частности, видеодекодер 26 может формировать видеоблок прогнозирования для текущего видеоблока и комбинировать блок прогнозирования с соответствующим остаточным видеоблоком, чтобы восстанавливать каждый из видеоблоков. Целевое устройство 14 может отображать восстановленные видеоблоки пользователю через дисплейное устройство 28. Дисплейное устройство 28 может содержать любое из множества дисплейных устройств, таких как электронно-лучевая трубка (CRT), жидкокристаллический дисплей (LCD), плазменный дисплей, дисплей на светоизлучающих диодах (светодиодах), дисплей на органических светодиодах или другой тип дисплея.

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

Видеокодер 20 и видеодекодер 26 могут работать согласно любому из множества стандартов сжатия видео, таких как заданные посредством Экспертной группы по киноизображению (MPEG) в стандарте MPEG-1, MPEG-2 и MPEG-4, ITU-T H.263, стандарт видеокодека Общества инженеров кино и телевидения (SMPTE) 421M (обычно называемый "VC-1"), стандарт, заданный посредством Рабочей группы по стандартам кодирования аудио-видео (Китай) (обычно называемой "AVS"), а также любой другой стандарт кодирования видео, заданный посредством органа стандартизации или разработанный посредством организации как собственный стандарт. Хотя не показано на фиг.1, в некоторых аспектах видеокодер 20 и видеодекодер 26 могут быть интегрированы с аудиокодером и декодером соответственно и могут включать в себя соответствующие модули MUX-DEMUX либо другие аппаратные средства и программное обеспечение, чтобы обрабатывать кодирование аудио и видео в общем потоке данных или в отдельных потоках данных. Таким образом, исходное устройство 12 и целевое устройство 14 могут оперировать с мультимедийными данными. Если применимо, модули MUX-DEMUX могут соответствовать протоколу мультиплексора ITU H.223 или другим протоколам, таким как протокол пользовательских дейтаграмм (UDP).

В некоторых аспектах для широковещательной передачи видео технологии, описанные в настоящем описании, могут быть применены к улучшенному кодированию видео H.264 для доставки видеоуслуг реального времени в системах наземной многоадресной передачи мобильного мультимедиа (TM3), использующих спецификацию радиоинтерфейса только прямой линии связи (FLO), "Forward Link Only Air Interface Specification for Terrestrial Mobile Multimedia Multicast", опубликованную в июле 2007 года как Технический стандарт TIA-1099 ("FLO Specification"). Другими словами, канал 16 связи может содержать беспроводной информационный канал, используемый для того, чтобы выполнять широковещательную передачу беспроводной видеоинформации согласно спецификации FLO, и т.п. Спецификация технологии FLO включает в себя примеры, задающие синтаксис и семантику потока битов, а также процессы декодирования, подходящие для радиоинтерфейса по технологии FLO.

Альтернативно, видео может передаваться в широковещательном режиме согласно другим стандартам, таким как DVB-H (цифровая широковещательная передача видео для карманных устройств), ISDB-T (комплексные службы цифровой наземной широковещательной передачи) или DMB (цифровая широковещательная передача мультимедиа). Следовательно, исходным устройством 12 может быть мобильный беспроводной терминал, сервер потоковой передачи видео и сервер широковещательной передачи видео. Тем не менее, технологии, описанные в данном документе, не ограничены каким-либо конкретным типом системы широковещательной передачи, многоадресной передачи или передачи "точка-точка". В случае широковещательной передачи исходное устройство 12 может передавать в широковещательном режиме несколько каналов видеоданных в несколько целевых устройств, каждое из которых может быть аналогичным целевому устройству 14 по фиг.1. Таким образом, хотя одно целевое устройство 14 показано на фиг.1, для приложений передачи видео в широковещательном режиме исходное устройство 12 типично должно передавать в широковещательном режиме видеосодержимое одновременно во множество целевых устройств.

В других примерах передающее устройство 22, канал 16 связи и приемное устройство 24 могут быть выполнены с возможностью связи согласно любой системе проводной или беспроводной связи, включающей в себя одно или более из Ethernet, телефона (к примеру, POTS), кабеля, линии питания и оптоволоконных систем, и/или беспроводной системы, содержащей одно или более из системы связи с множественным доступом с кодовым разделением (CDMA или CDMA2000), системы с множественным доступом с частотным разделением (FDMA), системы с множественным доступом c ортогональным частотным разделением (OFDM), системы с множественным доступом с временным разделением (TDMA), такой как GSM (глобальная система мобильной связи), GPRS (общая служба пакетной радиопередачи) или EDGE (развитие стандарта GSM с увеличенной скоростью передачи данных), мобильной телефонной системы TETRA (наземная транковая система связи), системы с широкополосным множественным доступом с кодовым разделением (WCDMA), системы по стандарту высокоскоростной передачи данных 1xEV-DO (высокоскоростная система обмена пакетными данными первого поколения) или системы Gold Multicast по 1xEV-DO, системы IEEE 802.18, системы MediaFLOTM, DMB-системы, DVB-H-системы или другой схемы обмена данных между двумя или больше устройствами.

Видеокодер 20 и видеодекодер 26 могут быть реализованы как один или более микропроцессоров, процессоров цифровых сигналов (DSP), специализированных интегральных схем (ASIC), программируемых пользователем вентильных матриц (FPGA), дискретная логика, программное обеспечение, аппаратные средства, микропрограммное обеспечение или любые комбинации вышеозначенного. Каждый из видеокодера 20 и видеодекодера 26 может быть включен в один или более кодеров или декодеров, любой из которых может быть интегрирован как часть комбинированного кодера/декодера (кодека) в соответствующем мобильном устройстве, абонентском устройстве, широковещательном устройстве, сервере и т.п. Помимо этого, исходное устройство 12 и целевое устройство 14 могут включать в себя соответствующие компоненты модуляции, демодуляции, частотного преобразования, фильтрации и усилителя для передачи и приема кодированного видео, в зависимости от необходимости, включая радиочастотные (RF) беспроводные компоненты и антенны, достаточные для того, чтобы поддерживать беспроводную связь. Для простоты иллюстрации, тем не менее, эти компоненты обобщаются как передающее устройство 22 исходного устройства 12 и приемное устройство 24 из целевого устройства 14 на фиг.1.

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