Адаптивное сканирование коэффициентов для кодирования видео
Иллюстрации
Показать всеИзобретение относится к способам кодирования и декодирования для видеоизображений с пространственным и временным предсказанием для уменьшения или удаления избыточности, свойственной видеопоследовательностям. Техническим результатом является повышение эффективности кодирования видеоизображений. Указанный технический результат достигается тем, что предложен способ сканирования коэффициентов видеоблоков, в котором адаптируют порядок сканирования, используемый для сканирования двумерного блока коэффициентов в одномерный вектор коэффициентов на основе статистических данных, связанных с одним или несколькими предварительно кодированными блоками. Например, статистические данные, которые указывают вероятность того, что заданное значение коэффициента в каждой позиции двумерного блока равно нулю или отличается от нуля, могут быть собраны для одного или нескольких предварительно кодированных блоков. Установка порядка сканирования может быть выполнена для большей гарантии того, что ненулевые коэффициенты сгруппируются в передней части одномерного вектора коэффициентов. Сбор статистических данных и установка порядка сканирования могут быть выполнены отдельно для каждого возможного режима предсказания. 4 н. и 50 з.п. ф-лы, 8 ил.
Реферат
Родственные заявки
Настоящая заявка притязает на приоритет в соответствии с предварительной заявкой на патент США № 60/944,470, поданной 15 июня 2007 года, а также в соответствии с предварительной заявкой на патент США № 60/979,762, поданной 12 октября 2007 года, причем информационное содержание каждой из вышеперечисленных заявок полностью включено в настоящий документ посредством ссылки.
Область техники, к которой относится изобретение
Настоящее раскрытие относится к кодированию цифрового видео и, более конкретно, к статистическому кодированию коэффициентов видеоблоков.
Уровень техники
Поддержка функциональных возможностей цифрового видео может быть включена в широкий диапазон устройств, включающий в себя цифровые телевизоры, цифровые системы прямого вещания, устройства беспроводной связи, такие как радиотелефонные трубки, системы радиовещания, личные цифровые устройства (PDA), ноутбуки или настольные компьютеры, цифровые камеры, цифровые записывающие устройства, игровые видеоустройства, игровые видеоприставки и т.п. Цифровые видеоустройства используют способы сжатия видео, такие как MPEG-2, MPEG-4 или H.264/ часть 10 MPEG-4 продвинутое кодирование видео (AVC), для более эффективной передачи и приема цифрового видео. Способы сжатия видео выполняют пространственное и временное предсказание для уменьшения или удаления избыточности, свойственной видеопоследовательностям.
В целом, сжатие видео включает в себя пространственное и/или временное предсказание. В частности, внутрикадровое кодирование основывается на пространственном предсказании для уменьшения или удаления пространственной избыточности между видеоблоками в пределах данного кодированного блока, который может включать в себя видеокадр, часть видеокадра или подобное. В отличие от этого межкадровое кодирование основывается на временном предсказании для уменьшения или удаления временной избыточности между видеоблоками последовательно кодированных блоков видеопоследовательности. При внутрикадровом кодировании видеокодер выполняет пространственное предсказание для сжатия данных на основе других данных, находящихся в пределах одного кодированного блока. При межкадровом кодировании видеокодер выполняет оценку движения и компенсацию движения для отслеживания движения соответствующих видеоблоков двух или более соседних кодированных блоков.
После пространственного или временного предсказания посредством вычитания видеоблока предсказания, сформированного в течение процесса предсказания, из первоначального видеоблока, то есть кодируемого, формируется остаточный блок. Следовательно, остаточный блок указывает различие между прогнозируемым блоком и текущим кодируемым блоком. Видеокодер может применять процессы преобразования, квантования и статистического кодирования для дополнительного уменьшения скорости передачи битов, связанной с передачей остаточного блока. Способы преобразования могут преобразовать набор пиксельных значений в коэффициенты преобразования, которые представляют энергию пиксельных значений в частотной области. Квантование применяется к коэффициентам преобразования, и, в целом, вовлекает процесс, который ограничивает количество битов, связанных с любым заданным коэффициентом. Перед статистическим кодированием видеокодер сканирует квантованный блок коэффициентов в одномерный вектор коэффициентов. Видеокодер выполняет статистическое кодирование вектора квантованных коэффициентов преобразования для дополнительного сжатия остаточных данных.
Видеодекодер может выполнять операции обратного статистического кодирования для восстановления коэффициентов. Обратное сканирование также может быть выполнено на декодере для формирования двумерных блоков из принятых одномерных векторов коэффициентов. Затем видеодекодер выполняет обратное квантование и обратное преобразование коэффициентов для получения восстановленного остаточного блока. После чего видеодекодер декодирует видеоблок предсказания на основе информации о предсказании и информации о движении. Затем видеодекодер добавляет видеоблок предсказания к соответствующему остаточному блоку для формирования восстановленного видеоблока, а также для формирования декодированной последовательности видеоинформации.
Сущность изобретения
Настоящее раскрытие описывает способы сканирования коэффициентов видеоблоков. В частности, способы настоящего раскрытия адаптируют порядок сканирования, используемый для сканирования двумерного блока коэффициентов в одномерный вектор коэффициентов на основе статистических данных, связанных с одним или несколькими предварительно кодированными блоками. Например, статистические данные, которые указывают вероятность того, что заданное значение коэффициента в каждой позиции двумерного блока равно нулю или отличается от нуля, могут быть собраны для одного или нескольких предварительно кодированных блоков. Установка порядка сканирования может быть выполнена для большей гарантии того, что ненулевые коэффициенты совместно сгруппируются в передней части одномерного вектора коэффициентов, что может повысить эффективность статистического кодирования. Сбор статистических данных и установка порядка сканирования могут быть выполнены отдельно для каждого возможного режима предсказания процесса кодирования.
В одном аспекте способ кодирования видеоданных включает в себя этап сканирования значений коэффициентов первого видеоблока с использованием порядка сканирования коэффициентов. Способ также включает в себя этап сбора статистических данных, связанных, по меньшей мере, с частью значений коэффициентов, а также этап установки порядка сканирования коэффициентов, в соответствии с собранными статистическими данными. Способ также включает в себя этап сканирования значений коэффициентов, по меньшей мере, одного последующего видеоблока с использованием установленного порядка сканирования коэффициентов в случае присутствия в кодируемом блоке первого видеоблока, по меньшей мере, одного последующего видеоблока. Способ также включает в себя этап статистического кодирования значений коэффициентов.
В другом аспекте устройство, которое кодирует видеоданные, включает в себя блок сканирования и блок статистического кодирования. Блок сканирования сканирует значения коэффициентов первого видеоблока с использованием порядка сканирования коэффициентов, собирает статистические данные, связанные, по меньшей мере, с частью значений коэффициентов, а также устанавливает порядок сканирования коэффициентов, в соответствии с собранными статистическими данными. Блок сканирования также сканирует значения коэффициентов, по меньшей мере, одного последующего видеоблока с использованием установленного порядка сканирования коэффициентов в случае присутствия в кодируемом блоке первого видеоблока, по меньшей мере, одного последующего видеоблока. Блок статистического кодирования выполняет статистическое кодирование значений коэффициентов.
В другом аспекте машиночитаемый носитель информации содержит команды, которые в результате выполнения на устройстве кодирования видео предписывают устройству кодировать видеоблоки. В частности, команды предписывают устройству сканировать значения коэффициентов первого видеоблока с использованием порядка сканирования коэффициентов, собирать статистические данные, связанные, по меньшей мере, с частью значений коэффициентов, а также устанавливать порядок сканирования коэффициентов, в соответствии с собранными статистическими данными. Команды также предписывают устройству сканировать значения коэффициентов, по меньшей мере, одного последующего видеоблока с использованием установленного порядка сканирования коэффициентов в случае присутствия в кодируемом блоке первого видеоблока, по меньшей мере, одного последующего видеоблока. Команды также предписывают устройству выполнять статистическое кодирование значений коэффициентов.
В другом аспекте устройство, которое кодирует видеоданные, включает в себя средство для сканирования значений коэффициентов первого видеоблока с использованием порядка сканирования коэффициентов, средство для сбора статистических данных, связанных, по меньшей мере, с частью значений коэффициентов, средство для установки порядка сканирования коэффициентов, в соответствии с собранными статистическими данными. Средство сканирования коэффициентов сканирует значения коэффициентов, по меньшей мере, одного последующего видеоблока с использованием установленного порядка сканирования коэффициентов в случае присутствия в кодируемом блоке первого видеоблока, по меньшей мере, одного последующего видеоблока. Устройство также включает в себя средство для статистического кодирования значений коэффициентов.
Способы, описанные в настоящем раскрытии, могут быть реализованы в аппаратных средствах, программных средствах, микропрограммных средствах или же посредством любой комбинации вышеперечисленного. При программной реализации программные средства могут быть выполнены в процессоре, который может являться одним или несколькими процессорами, таким как микропроцессор, специализированная интегральная микросхема (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 может формировать данные, основанные на компьютерной графике, в качестве исходного видео, или комбинацию живого видео и видео, сформированного на компьютере. В некоторых случаях, когда видеоисточник 18 может являться видеокамерой, устройство-источник 12 может являться так называемым камерофоном или видеотелефоном. В каждом случае захваченное, предварительно захваченное или сформированное на компьютере видео может быть закодировано посредством видеокодера 20 для передачи с устройства-источника 12 на устройство-получатель 14 посредством передатчика 22 и канала 16 связи.
Видеокодер 20 принимает видеоданные от видеоисточника 18. Видеоданные, принятые от видеоисточника 18, могут являться серией видеокадров. Видеокодер 20 делит серию кадров на кодируемые блоки, а также обрабатывает кодируемые блоки для кодирования серии видеокадров. Например, кодируемые блоки могут являться целыми кадрами или частями кадров (то есть частями). Следовательно, в некоторых случаях кадры могут быть разделены на части. Видеокодер 20 делит каждый кодируемый блок на блоки пикселей (называемые в настоящем документе видеоблоками или блоками), а также работает с видеоблоками, находящимися в пределах отдельных кодируемых блоков, для кодирования видеоданных. По существу, кодируемый блок (например, кадр или часть) может содержать несколько видеоблоков. Другими словами, видеопоследовательность может включать в себя несколько кадров, кадр может включать в себя несколько частей, а часть может включать в себя несколько видеоблоков.
Видеоблоки могут иметь фиксированный или переменный размер, а также могут отличаться по размеру, в соответствии с определенным стандартом кодирования. В качестве примера, стандарт сектора по стандартизации телекоммуникаций в составе международного телекоммуникационного союза (ITU-T) H.264/ часть 10 MPEG-4 продвинутое кодирование видео (AVC) (далее стандарт «Н.264/часть 10 MPEG-4 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), может быть подразделен на подблоки меньшего размера, а также предсказан в подблоках. В целом, макроблоки МВ и различные подблоки могут рассматриваться в качестве видеоблоков. Следовательно, макроблоки МВ могут рассматриваться в качестве видеоблоков, и в случае подразделения или подразбиения макроблоки МВ могут быть самостоятельно рассмотрены для определения наборов видеоблоков.
Для каждого видеоблока видеокодер 20 выбирает тип блока. Тип блока может указывать на то, с использованием межкадрового или внутрикадрового предсказания был предсказан блок, а также крупность блока. Например, стандарт H.264/ часть 10 MPEG-4 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/часть 10 MPEG-4 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), плазменный дисплей, светодиодный дисплей (LED), дисплей на органических светодиодах (OLED) или дисплей другого типа.
В некоторых случаях устройство-источник 12 и устройство-получатель 14 могут работать, по существу, симметрично. Например, как устройство-источник 12, так и устройство-получатель 14 может включать в себя компоненты кодирования и декодирования видео. Следовательно, система 10 может поддерживать одностороннюю или двухстороннюю передачу видео между устройствами 12 и 14, например, для потокового видео, широковещательной передачи видео или видеотелефонной связи. Устройство, которое включает в себя компоненты кодирования и декодирования видео, также может являться частью общего устройства кодирования, архивации и воспроизведения, такого как цифровой видеомагнитофон (DVR).
Видеокодер 20 и видеодекодер 26 могут работать в соответствии с любым множеством стандартов сжатия видео, таких как стандарты, определенные посредством экспертной группы по вопросам движущегося изображения (MPEG) в MPEG-1, MPEG-2 и MPEG-4, стандарт ITU-T H.263, стандарт 421M видеокодека общества инженеров по кино и телевидению (SMPTE) (как правило, называемый «VC-1»), стандарт, определенный посредством рабочей группы Китая по стандартизации кодирования аудио и видео (как правило, называемый «AVS»), а также любой другой стандарт кодирования видео, определенный посредством органа стандартизации или разработанный посредством организации в качестве специального стандарта. Несмотря на то, что на Фиг.1 не изображено, в некоторых аспектах как видеокодер 20, так и видеодекодер 26 могут быть объединены с кодером и декодером аудио, соответственно, а также могут включать в себя соответствующие блоки MUX-DEMUX (мультиплексирования/демультиплексирования) или другие аппаратные средства и программные средства для обработки кодирования как аудио, так и видео в общем потоке данных или же в отдельных потоках данных. В этом способе устройство-источник 12 и устройство-получатель 14 могут работать с мультимедийными данными. В случае необходимости блоки MUX-DEMUX могут соответствовать протоколу мультиплексора ITU H.223 или другим протоколам, таким как протокол передачи пользовательских датаграмм (UDP).
В некоторых аспектах при широковещательной передаче видео описанные в настоящем раскрытии способы могут быть применены к расширенному стандарту Н.264 кодирования видео для предоставления услуг передачи видео в реальном времени в мобильных системах наземной многоадресной передачи мультимедийных данных (TM3) с использованием спецификации радиоинтерфейса односторонней передачи данных по прямой линии связи (FLO). «Спецификация радиоинтерфейса односторонней передачи данных по прямой линии связи для наземной мобильной многоадресной передачи мультимедийных данных» была опубликована в июле 2007 года в качестве технического стандарта TIA-1099 («Спецификация FLO»). То есть канал 16 связи может включать в себя информационный радиоканал, используемый для беспроводной рассылки видеоинформации, в соответствии со спецификацией FLO или подобной. Спецификация FLO включает в себя примеры, определяющие синтаксис битового потока, а также семантику и процессы декодирования, подходящие для радиоинтерфейса FLO.
Альтернативно, видео может быть передано в соответствии с другими стандартами, такими как DVB-H (цифровая широковещательная передача видео для мобильных устройств), ISDB-T (цифровое наземное вещание объединенных сервисов) или DMB (цифровая широковещательная передача мультимедийных данных). Следовательно, устройство-источник 12 может являться мобильным беспроводным терминалом, потоковым видеосервером или вещательным видеосервером. Однако описанные в настоящем раскрытии способы не ограничиваются никаким конкретным типом системы широковещательной передачи, многоадресной передачи или прямой (двухточечной) связи. В случае широковещательной передачи устройство-источник 12 может транслировать несколько каналов видеоданных нескольким устройствам-получателям, каждое из которых может являться аналогичным устройству-получателю 14, изображенному на Фиг.1. Следовательно, несмотря на то, что на Фиг.1 изображено одно устройство-получатель 14, при видеовещании устройство-источник 12, как правило, передает видеоинформацию одновременно нескольким устройствам-получателям.
В других примерах передатчик 22, канал 16 связи и приемник 24 могут быть сконфигурированы для передачи информации, в соответствии с любой системой проводной или беспроводной связи, включающей в себя один или несколько нижеперечисленных вариантов: сеть Ethernet, телефон (например, POTS), кабель, линия передачи и оптоволоконные системы, и/или системой беспроводной связи, включающей в себя один или несколько нижеперечисленных вариантов: система связи множественного доступа с кодовым разделением каналов (CDMA или CDMA2000), система множественного доступа с частотным разделением каналов (FDMA), система множественного доступа с ортогональным частотным разделением (OFDM), система множественного доступа с временным разделением каналов (TDMA), такая как GSM (глобальная система мобильной связи), GPRS (система пакетной радиосвязи общего пользования) или EDGE (улучшенная GSM для передачи данных), система мобильной телефонной связи TETRA (магистральная наземная радиосвязь), система широкополосного множественного доступа с кодовым разделением каналов (WCDMA), высокоскоростная система 1×EV-DO (первое поколение эволюционировавшей передачи только данных) или золотая система 1×EV-DO многоадресной передачи, система IEEE 802.18, система MediaFLOTM, система DMB, система DVB-H или другая схема для передачи данных между двумя или более устройствами.
Как видеокодер 20, так и видеодекодер 26 может быть реализован в качестве одного или нескольких микропроцессоров, цифровых сигнальных процессоров (DSP), специализированных интегральных микросхем (ASIC), логических матриц с эксплуатационным программированием (FPGA), дискретной логики, программных средств, аппаратных средств, микропрограммных средств или посредством любой комбинации вышеперечисленного. Как видеокодер 20, так и видеодекодер 26 могут быть включены в один или несколько кодеров или декодеров либо интегрированы в качестве части объединенного кодера/декодера (CODEC) в соответствующее мобильное устройство, абонентское устройство, широковещательное устройство, сервер или подобное. Кроме того, как устройство-источник 12, так и устройство-получатель 14 могут включать в себя соответствующие компоненты модуляции, демодуляции, частотного преобразования, фильтрации и усиления, для передачи и приема кодированного видео и в соответствующих случаях включать в себя радиочастотные (RF) компоненты и антенны для поддержки беспроводной связи. Однако для простоты иллюстрации такие компоненты в итоге показаны в качестве передатчика 22 устройства-источника 12 и приемника 24 устройства-получателя 14, изображенных на Фиг.1.
Фиг.2 изображает блок-схему, подробно иллюстрирующую иллюстративный видеокодер 20, изображенный на Фиг.1. Видеокодер 20 выполняет внутрикадровое и межкадровое кодирование блоков, находящихся в пределах видеокадров. Внутрикадровое кодирование основывается на пространственном предсказании для уменьшения или удаления пространственной избыточности в видеоданных, находящихся в пределах данного видеоблока кодирования, например кадра или части. При внутрикадровом кодировании видеокодер 20 формирует блок пространственного предсказания на основе одного или нескольких предварительно кодированных блоков, находящихся в пределах одного блока кодирования, в качестве кодируемого блока. Межкадровое кодирование основывается на временном предсказании для уменьшения или удаления временной избыточности в пределах соседних кадров видеопоследовательности. При межкадровом кодировании видеокодер 20 выполняет оценку движения для отслеживания движения соответствующих видеоблоков между двумя или более соседними кадрами.
В изображенном на Фиг.2 примере видеокодер 20 включает в себя блок 30 разбиения, блок 32 предсказания, блок 34 сохранения кадров, блок 38 преобразования, блок 40 квантизации, блок 41 сканирования коэффициентов, блок 42 обратной квантизации, блок 44 обратного преобразования и блок 46 статистического кодирования. Видеокодер 20 также включает в себя блоки 48A и 48B суммирования («блоки 48 суммирования»). Для уменьшения или удаления блочности к восстановленным видеоблокам может быть применен фильтр для удаления блочности (не показан). Описание различных отличительных признаков на Фиг.2 в качестве блоков предназначено для выделения различных функциональных аспектов иллюстрированных устройств, а также не должно подразумеваться, что такие блоки должны быть реализованы посредством отдельных компонентов аппаратных или программных средств. Точнее, функциональные возможности, связанные с одним или несколькими блоками, могут быть объединены в пределах общих или отдельных компонентов аппаратных или программных средств.
Блок 30 разбиения принимает видеоинформацию (обозначенную на Фиг.2 как «ВВОД ВИДЕОИНФОРМАЦИИ»), например, в виде последовательности видеокадров, от видеоисточника 18 (Фиг.1). Блок 30 разбиения делит каждый видеокадр на блоки кодирования, которые включают в себя множество видеоблоков. Как было описано выше, блоки кодирования могут являться целым кадром или частью кадра (например, часть кадра). В одном случае блок 30 разбиения может первоначально разделить каждый блок кодирования на несколько видеоблоков, имеющих размер, равный 16×16 (то есть на ма