Квантование "скорость-искажение" для контекстно-зависимого адаптивного кодирования с переменной длиной кодового слова (cavlc)

Иллюстрации

Показать все

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

Реферат

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

По настоящей заявке испрашивается приоритет по дате подачи предварительной заявки США №61/044232, поданной 11 апреля 2008 г., содержимое которой полностью включено в настоящее описание посредством ссылки.

Область техники, к которой относится изобретение

Это раскрытие объекта изобретения относится к цифровому видеокодированию, а более конкретно к способам квантования для видеокодирования.

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

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

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

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

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

Контекстнозависимое адаптивное кодирование с переменной длиной кодового слова (CAVLC) является одним типом способа энтропийного кодирования, которое в настоящее время поддерживается в некоторых стандартах кодирования, например усовершенствованное видеокодирование (AVC) Экспертной группы по вопросам движущегося изображения (MPEG)-4, Часть 10/H.264 сектора стандартизации Международного союза электросвязи (ITU-T) (далее в этом документе "стандарт AVC MPEG-4, Часть 10/H.264"). В соответствии с CAVLC, как определено в стандарте AVC MPEG-4, Часть 10/H.264, кодер кодирует множество синтаксических элементов, которые представляют вектор коэффициентов. Синтаксические элементы могут включать в себя общее количество коэффициентов в векторе коэффициентов, несколько замыкающих коэффициентов в векторе коэффициентов, знаки каждого из замыкающих коэффициентов, амплитуды (или уровни) ненулевых коэффициентов, за исключением замыкающих коэффициентов, сумму всех непрерывных последовательностей (т.е. общее количество непрерывных серий перед последним ненулевым коэффициентом) и длину непрерывной серии из нулей перед каждым ненулевым коэффициентом. CAVLC является адаптивным в том смысле, что кодер адаптивно выбирает кодовые таблицы VLC для использования в кодировании синтаксических элементов на основе конкретных характеристик вектора коэффициентов.

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

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

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

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

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

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

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

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

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

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

Фиг.2 - блок-схема, на которой изображен пример видеокодера в соответствии с раскрытием объекта изобретения.

Фиг.3 - структурная схема, на которой изображено зигзагообразное сканирование видеоблока четыре-на-четыре.

Фиг.4 - блок-схема, на которой изображена решетка (trellis) квантования в соответствии с раскрытием объекта изобретения.

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

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

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

В примере по фиг.1 устройство 12 источника может включать в себя источник 20 видео, видеокодер 22, модулятор/демодулятор (модем) 23 и передатчик 24. Приемное устройство 14 может включать в себя приемник 26, модем 27, видеодекодер 28 и дисплей 30. В соответствии с этим раскрытием объекта изобретения видеокодер 22 устройства 12 источника может быть выполнен с возможностью применения способов квантования, описанных в этом раскрытии объекта изобретения. Следовательно, в устройстве 12 источника можно достичь требуемых уровней квантования и посредством этого улучшить процесс кодирования.

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

Источник 20 видео устройства 12 источника может включать в себя устройство видеозахвата, например видеокамеру, видеоархив, содержащий ранее захваченное видео, или внешний видеосигнал от провайдера видеосодержимого, например, поставляемый через спутник. В качестве дополнительного альтернативного варианта, источник 20 видео может формировать компьютерные графические данные как видеоисточник или комбинацию прямой видеосъемки, архивного видео и формируемого компьютером видео. В некоторых случаях, если источник 20 видео является видеокамерой, устройство 12 источника и приемное устройство 14 могут являться так называемыми камерофонами или видеотелефонами. В каждом случае захватываемое, предварительно захватываемое или формируемое компьютером видео может быть закодировано видеокодером 22. Информация кодированного видео может после этого модулироваться модемом 23 согласно такому стандарту передачи информации, например, как множественный доступ с кодовым разделением (CDMA), или другому стандарту передачи информации и передаваться в приемное устройство 14 через передатчик 24. Модем 23 может включать в себя различные смесители, фильтры, усилители или другие компоненты, предназначенные для модуляции сигнала. Передатчик 24 может включать в себя схемы, предназначенные для передачи данных, включающие в себя усилители, фильтры и одну или несколько антенн.

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

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

Видеокодер 22 и видеодекодер 28 могут функционировать согласно стандарту сжатия видео, например стандарту AVC MPEG-4, Часть 10/H.264. Стандарт AVC MPEG-4, Часть 10/H.264 ITU-T, был сформулирован Экспертной группой ITU по вопросам кодирования изображения (VCEG) ITU-T вместе с Экспертной группой по вопросам движущегося изображения (MPEG) ISO/IEC как продукт коллективного партнерства, известного как Совместная экспертная группа по вопросам видео (JVT). В некоторых аспектах способы, описанные в этом раскрытии объекта изобретения, могут быть применены к устройствам, которые в целом соответствуют стандарту H.264.

Видеокодер 22 и видеодекодер 28, каждый, могут быть реализованы как один или несколько микропроцессоров, цифровых сигнальных процессоров (DSP), одна или несколько специализированных интегральных схем (ASIC), пользовательских программируемых вентильных матриц (FPGA), дискретная логика, программное обеспечение, аппаратное обеспечение, программно-аппаратные средства или любые их комбинации. Каждый из видеокодера 22 и видеодекодера 28 может быть включен в один или несколько кодеров или декодеров, любой из которых может быть интегрирован как часть объединенного кодера/декодера (КОДЕК) в соответствующие мобильное устройство, абонентский аппарат, широковещательное устройство, сервер и т.п.

Видеопоследовательность, как правило, включает в себя серию видеокадров. Видеокодер 22 выполняет ряд операций над видеоблоками внутри отдельных видеокадров для кодирования видеоданных. Видеоблоки могут иметь фиксированные или переменные размеры и могут отличаться по размеру согласно заданному стандарту кодирования. Каждый видеокадр может включать в себя серию слайсов, которые могут быть независимо декодируемыми единицами видеокадра. Каждый слайс может включать в себя серию макроблоков, которые могут быть организованы в субблоки. В качестве примера, стандарт H.264 поддерживает интра-предсказание (предсказание без компенсации движения) в блоках различного размера, например 16×16, 8×8 или 4×4 для компонентов яркости и 8×8 для компонентов цветности, а также интер-предсказание (предсказание с компенсацией движения) в блоках различного размера, например 16×16, 16×8, 8×16, 8×8, 8×4, 4×8 и 4×4 для компонентов яркости, и соответствующих масштабированных размеров для компонентов цветности. Меньшие видеоблоки могут обеспечить лучшую разрешающую способность и могут использоваться для участков видеокадра, которые включают в себя высокие уровни детализации. В общем, макроблоки (MB) и различные субблоки могут рассматриваться как видеоблоки.

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

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

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

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

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

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

Фиг.2 является блок-схемой, иллюстрирующей пример видеокодера 50, который включает в себя модуль 40 квантования скорость-искажение (RD), который выполняет квантование коэффициентов видеоблока в соответствии с этим раскрытием объекта изобретения. Видеокодер 50 может, например, соответствовать видеокодеру 22 устройства источника 12. Видеокодер 50 может выполнять интра- и интер-кодирование блоков внутри видеокадров. Интра-кодирование основано на пространственном предсказании для уменьшения или удаления пространственной избыточности в видео внутри данного видеокадра. Интер-кодирование основано на временном предсказании для уменьшения или удаления временной избыточности в видео внутри смежных кадров видеопоследовательности. Для интер-кодирования видеокодер 50 может выполнять оценку движения для отслеживания движения соответствующих видеоблоков между двумя или несколькими смежными кадрами. Интра-режим (I-режим) может относиться к пространственному режиму сжатия, а интер-режимы, например предсказание (P-режим) или двунаправленный (B-режим), могут относиться к временному режиму сжатия.

В примере по фиг.2 видеокодер 50 включает в себя модуль 32 предсказания, запоминающее устройство 34 опорного кадра, модуль 38 преобразования, модуль 40 квантования RD, модуль 42 обратного квантования, модуль 44 обратного преобразования и модуль 46 кодирования CAVLC. Для фильтрации границ блока может также содержаться деблочный фильтр (отмены блоков) для удаления артефактов блочности. Видеокодер 50 также включает в себя сумматор 48 и сумматор 51.

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

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

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

Видеокодер 50 формирует остаточный видеоблок (помеченный "БЛОК RESID") посредством вычитания видеоблока прогноза, создаваемого модулем 32 предсказания, из исходного видеоблока, который должен быть закодирован. Сумматор 48 выполняет эту операцию вычитания для получения остаточного блока. Модуль 38 преобразования применяет преобразование, например дискретное косинусное преобразование (DCT), к остаточному блоку для создания видеоблока остаточных коэффициентов преобразования. Модуль 38 преобразования может применять преобразование на базе блоков 8×8 (N=8) или 4×4 (N=4). Модуль 38 преобразования, однако, может выполнять другие преобразования, определенные стандартом H.264, которые концептуально являются аналогичными DCT. Также могут использоваться вейвлет-преобразования, целочисленные преобразования, поддиапазонные преобразования или другие типы преобразований. В любом случае модуль 38 преобразования применяет преобразование к остаточному блоку с созданием блока остаточных коэффициентов преобразования. Посредством преобразования можно преобразовать остаточную информацию из пиксельной области в частотную область.

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

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

Квантованные коэффициенты также обеспечиваются в модуль 42 обратного квантования. Модуль 42 обратного квантования и модуль 44 обратного преобразования применяют обратное квантование и обратное преобразование соответственно для восстановления остаточного блока (помеченного "RECON RESID") в пиксельной области для использования в качестве опорного блока. Сумматор 51 добавляет восстановленный остаточный блок, выводимый модулем 44 обратного преобразования, к блоку прогноза, создаваемому модулем 32 предсказания, для создания восстановленного видеоблока для сохранения в запоминающем устройстве 34 опорного кадра. Восстановленный видеоблок, сохраненный в запоминающем устройстве 34 опорного кадра, может использоваться модулем 32 предсказания как опорный блок для интер-кодирования блока в последующем видеокадре или интра-кодирования блока в идентичном кадре.

Ошибка предсказания или остаточный блок E(x,y), то есть разность между блоком, который должен быть закодирован, I(x,y) и блоком прогноза P(x,y), могут быть представлены как взвешенная сумма базисных функций преобразования fij(x,y):

где x и y определяют положение данного коэффициента внутри видеоблока и cij - весовые коэффициенты, иногда называемые коэффициентами ошибки предсказания или остаточными коэффициентами преобразования. Остаточные коэффициенты преобразования или веса cij могут впоследствии квантоваться следующим образом:

где lij - квантованные коэффициенты или уровни и Q(cij,QP) - функция, посредством которой квантуют cij с параметром квантования QP. Функция Q(cij,QP) может разделять cij на значение, полученное согласно QP, и положение (i,j) в матрице квантования, которая определяет размер шага квантования. Операция квантования может привносить потерю информации. Однако квантованные коэффициенты могут быть представлены с меньшим количеством битов, следовательно, с экономией полосы пропускания передачи, объема памяти и ресурсов обработки. Уровень сжатия (потери информации) традиционно управляется посредством регулировки значения QP.

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

где Q-1(lij,QP) представляет функцию, посредством которой деквантуют lij с параметром квантования QP. В функции Q(lij,QP) lij может умножаться (на) значение, полученное согласно QP и положению (i,j) в матрице обратного квантования, которая определяет размер шага квантования. Для получения восстановленного остаточного блока или восстановленной ошибки предсказания, которая представляет разность между восстановленным блоком R(x,y) и исходным блоком I(x,y), могут выполняться операции обратного преобразования. В одном примере восстановленный вариант остаточного блока или ошибки предсказания Ẽ(x,y) может быть получен с применением следующей функции к деквантованным коэффициентам rij:

где - базисные функции обратного преобразования.

Традиционно квантование коэффициентов преобразования в видеокодеках обычно основано на квантователях с равномерным восстановлением (URQ). Классификационное правило для квантования данных определяется кодером. Одним примером квантования является так называемый подход мертвая зона плюс равномерное пороговое квантование (DZ-UTQ). Уравнение ниже определяет такой квантователь с мертвой зоной, где f0 обозначает параметр мертвой зоны при 0<fij<0,5:

где lij соответствует уровню квантования или значению коэффициента квантования, sgn(N) - знаковая функция, которая извлекает знак действительного числа N, и - функция округления в меньшую сторону, которая возвращает наибольшее целое число, меньшее или равное М.

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

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

В