Квантование, основанное на моделировании искажения скорости передачи, для кодеров cabac

Иллюстрации

Показать все

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

Реферат

[0001] Эта заявка испрашивает приоритет предварительной заявки США № 61/019830, поданной 8 января 2008 г., и предварительной заявки США № 61/030454, поданной 21 февраля 2008 г., каждая из которых включена здесь по ссылке.

Область техники

[0002] Настоящее описание относится к цифровому кодированию видеосигнала и, более конкретно, к методикам квантования для процессов кодирования видеосигнала, которые поддерживают адаптивное двоичное арифметическое кодирование, основанное на контексте (CABAC).

Предшествующий уровень техники

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

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

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

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

[0007] Адаптивное двоичное арифметическое кодирование, основанное на контексте (CABAC), является одним типом способа статистического кодирования, который в настоящее время поддерживается в некоторых стандартах кодирования, таких как ITU-T H.264/MPEG4, стандарт AVC. CABAC может включать некоторые этапы, включающие в себя преобразование в двоичную форму, выбор контекстной модели и двоичное арифметическое кодирование. При преобразовании в двоичную форму любые недвоичные символы отображаются в двоичную последовательность (иногда называемую строкой контейнера (приемника)). При контекстном моделировании распределение вероятности модели назначается на элементы (например, символы), которые кодируются. Впоследствии, на этапе последующего двоичного арифметического кодирования используется назначенное распределение вероятности, чтобы выполнять кодирование для генерирования последовательности битов, которые формируют закодированное представление элементов, кодируемых согласно назначенному распределению вероятности модели.

[0008] Процесс CABAC может без потерь сжимать элементы, которые определяют поток видеосигналов, зная вероятности элементов в данном контексте. CABAC обычно сжимает данные более эффективно, чем другие способы статистического кодирования, такие как способы адаптивного кодирования с переменной длиной кода (CAVLC), но может потребовать значительно более сложной обработки на стороне декодера. CABAC в рамках ITU H.264/AVC более полно описывается в следующей публикации: «Context-based Adaptive Binary Arithmetic Coding in the H.264/AVC Video Compression Standard» Detlev Marpe, Heiko Schwarz и Thomas Wiegand, публикуемой в IEEE Transactions on Circuits and Systems for Video Technology, volume 13, Номер 7, июль 2003 г.

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

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

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

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

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

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

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

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

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

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

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

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

[0019] Фиг.3 является концептуальной диаграммой, иллюстрирующей зигзагообразное сканирование блока видео элемента четыре на четыре.

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

[0021] Фиг.5-10 являются блок-схемами, иллюстрирующими способы, совместимые с настоящим описанием.

Подробное описание

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

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

[0024] Иллюстрированная система 10 согласно фиг.1 является только примерной. Способы квантования настоящего изобретения могут быть выполнены любым устройством кодирования, которое поддерживает CABAC. Исходное устройство 12 является только одним примером такого устройства кодирования. Способы квантования настоящего изобретения могут включать в себя коэффициенты квантования блока видео для процесса кодирования видео, который поддерживает CABAC для статистического кодирования. В этом случае кодер 22 видео может генерировать множество наборов квантованных коэффициентов для блока видео, в котором каждый из наборов квантованных коэффициентов определяется на основании предположения, что конкретный один из коэффициентов блока видео соответствует последнему ненулевому коэффициенту блока видео. Последний ненулевой коэффициент может зависеть от используемого порядка сканирования, такого как зигзагообразное сканирование. Кодер 22 видео может оценивать множество стоимостей, ассоциированных с кодированием блока видео с помощью CABAC, где оцененные стоимости соответственно основываются на различных одних из наборов квантованных коэффициентов, и выбирать данный один из наборов квантованных коэффициентов, ассоциированный с самой низкой стоимостью. Этот подход может называться подходом с одним проходом, поскольку оцененные стоимости генерируются для каждого из различных наборов квантованных коэффициентов в единственном проходе, который рассматривает различные коэффициенты как последний ненулевой коэффициент блока видео.

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

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

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

[0028] Приемник 26 приемного устройства 16 принимает информацию по каналу 15, и модем 27 демодулирует информацию. Снова, процесс кодирования видео может реализовывать способы, описанные в настоящем описании, чтобы улучшить процессы квантования. Процесс декодирования видео, выполняемый декодером 28 видео, может выполнять обратное квантование при восстановлении видеопоследовательности. Устройство 30 отображения отображает декодированные видеоданные пользователю и может содержать любое множество устройств отображения, таких как электронно-лучевая трубка, жидкокристаллический дисплей (LCD), плазменная панель, дисплей на органических светоизлучающих диодах (OLED) или другой тип устройства отображения.

[0029] В примере на фиг.1 канал 15 передачи данных может содержать любую беспроводную или проводную среду передачи данных, такую как радиочастотный (РЧ) спектр, или одну или более физических линий передачи, или любую комбинацию беспроводных и проводных сред. Канал 15 передачи данных может формировать часть сети, основанной на пакетной передаче, такую как локальная сеть, глобальная сеть или глобальная сеть, такая как Интернет. В общем, канал 15 передачи данных представляет любую подходящую среду передачи данных или совокупность различных сред передачи данных для передачи видеоданных от исходного устройства 12 на приемное устройство 16.

[0030] Кодер 22 видео и декодер 28 видео могут работать согласно стандарту сжатия видео, который поддерживает CABAC, такому как стандарт ITU-T H.264, альтернативно описанный как MPEG-4, Часть 10, усовершенствованное кодирование видео (AVC). Хотя не показано на фиг.1, в некоторых аспектах кодер 22 видео и декодер 28 видео могут быть объединены с кодером и декодером аудиосигнала и могут включать в себя соответствующие блоки MUX-DEMUX или другое аппаратное обеспечение и программное обеспечение, обрабатывать кодирование как аудио, так и видео в общем потоке данных или в отдельных потоках данных. Если применимо, блоки MUX-DEMUX могут согласовываться с протоколом мультиплексора ITU H.223 или другими протоколами, такими как протокол пользовательских дейтаграмм (UDP).

[0031] Стандарт ITU-T H.264/MPEG-4 (AVC) был сформулирован посредством экспертной группы по вопросам кодирования видео (VCEG) ITU-T вместе с экспертной группой по вопросам движущихся изображений (MPEG) ISO/IEC как продукт коллективного партнерства, известного как Объединенная Видео Команда (JVT). В некоторых аспектах способы, описанные в настоящем описании, могут быть применены к устройствам, которые, в общем, соответствуют стандарту H.264. Стандарт H.264 описан в Рекомендации H.264 ITU-T, усовершенствованном кодировании видео для основных аудиовизуальных услуг, посредством Группы по изучению ITU-T, и датирован мартом 2005 г., который может быть упомянут в настоящем описании как стандарт H.264 или спецификация H.264, или стандарт или спецификация H.264/AVC. Объединенная Видео Команда (JVT) продолжает разрабатывать расширения для H.264/MPEG-4 AVC.

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

[0033] Видеопоследовательность обычно включает в себя ряд видеокадров. Кодер 22 видео работает на блоках видео в пределах индивидуальных видеокадров, чтобы закодировать видеоданные. Блоки видео могут иметь фиксированные или изменяющиеся размеры и могут отличаться по размеру согласно указанному стандарту кодирования. Каждый видеокадр включает в себя ряд частей. Каждая часть может включать в себя ряд макроблоков, которые могут быть размещены в подблоках. В качестве примера, стандарт ITU-T H.264 поддерживает внутреннее предсказание в различных размерах блока, таких как 16 на 16, 8 на 8 или 4 на 4 для компонентов яркости и 8×8 для компонентов насыщенности цвета, а также внешнее предсказание в различных размерах блока, таких как 16 на 16, 16 на 8, 8 на 16, 8 на 8, 8 на 4, 4 на 8 и 4 на 4 для компонентов яркости и соответствующих масштабированных размеров для компонентов насыщенности цвета. Блоки видео могут содержать блоки пиксельных данных или блоки коэффициентов преобразования, например, следующие за процессом преобразования, таким как дискретное косинусное преобразование или концептуально аналогичный процесс преобразования. Способы квантования настоящего изобретения обычно применяются к коэффициентам преобразования преобразованных блоков видео.

[0034] Меньшие блоки видео могут обеспечивать лучшее решение, и они могут быть использованы для местоположений видеокадра, которые включают в себя высокие уровни детализации. В целом, макроблоки (макроблоки MB) и различные подблоки могут быть рассмотрены как блоки видео. В дополнение, часть может рассматриваться как ряд блоков видео, таких как MB и/или подблоки. Каждая часть может быть независимо декодируемым модулем видеокадра. После предсказания может быть выполнено преобразование в отношении остаточного блока 8×8 или остаточного блока 4×4, и дополнительное преобразование может быть применено к коэффициентам DC блоков 4×4 для компонентов насыщенности цвета или компонента яркости, если используется режим предсказания intra_16×16. Снова, после преобразования данные могут все еще называться блоками видео, то есть блоками коэффициентов преобразования. В общем, термин «коэффициенты» относится к коэффициентам преобразования, но может альтернативно относиться к другим типам коэффициентов или значениям, таким как пиксельные значения или другой тип коэффициентов.

[0035] После кодирования, основанного на внутреннем или внешнем предсказании, и способов преобразования (таких как целочисленное преобразование 4×4 или 8×8, используемое в H.264/AVC, или дискретное косинусное преобразование DCT) может быть выполнено квантование. Квантование рассматривается более подробно ниже, но, в общем, оно относится к процессу, в котором квантуются коэффициенты, чтобы по возможности уменьшить количество данных, используемых для представления коэффициентов. Процесс квантования может уменьшать разрядность цвета, ассоциированную с некоторыми или всеми коэффициентами. Например, во время квантования 8-битовое значение может быть округлено в меньшую сторону до 7-битового значения. Способы квантования настоящего изобретения составляют факт, что CABAC будет выполнен.

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

[0037] Согласно методикам настоящего изобретения кодер 22 видео может генерировать множество наборов квантованных коэффициентов для блока видео, в котором каждый из наборов квантованных коэффициентов определяется на основании предположения, что конкретный один из коэффициентов блока видео соответствует последнему ненулевому коэффициенту блока видео. Кодер 22 видео может оценивать множество стоимостей, ассоциированных с кодированием блока видео с помощью CABAC, в котором оцененные стоимости соответственно основываются на различных одних из наборов квантованных коэффициентов, и выбирать заданный один из наборов квантованных коэффициентов, ассоциированных с самой низкой стоимостью. Кодер 22 видео может использовать выбранный набор квантованных коэффициентов для квантования блока видео. Этот подход называется подходом с одним проходом.

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

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

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

[0041] Во время процесса кодирования кодер 50 видео принимает блок видео, который должен быть закодирован, и модуль 32 предсказания выполняет способы кодирования с предсказанием. Для внешнего кодирования модуль 32 предсказания сравнивает блок видео, который должен быть закодирован, с различными блоками в одном или более опорных видеокадрах или частях для определения предсказывающего блока. Для внутреннего кодирования модуль 32 предсказания генерирует предсказывающий блок на основании соседних данных в пределах одного и того же закодированного модуля. Модуль 32 предсказания выводит блок предсказания, и сумматор 48 вычитает блок предсказания из закодированного блока видео для генерирования остаточного блока.

[0042] Для внешнего кодирования модуль 32 предсказания может содержать модули оценки движения и компенсации движения, которые идентифицируют вектор движения, который указывает на блок предсказания и генерирует блок предсказания на основании вектора движения. Обычно, оценка движения рассматривается как процесс генерирования вектора движения, который оценивает движение. Например, вектор движения может указывать смещение предсказывающего блока в пределах кадра с предсказанием относительно текущего блока, кодируемого в пределах текущего кадра. Компенсация движения обычно рассматривается как процесс установки или генерирования предсказывающего блока на основании вектора движения, определенного оценкой движения. Как отмечено, для внутреннего кодирования модуль 32 предсказания генерирует предсказывающий блок на основании соседних данных в пределах одного и того же закодированного модуля. Один или более режимов внутреннего предсказания могут определять, как может быть определен блок внутреннего предсказания.

[0043] Кодер 50 видео формирует остаточный блок видео, вычитая блок видеопредсказания, произведенный модулем 32 предсказания, из первоначального кодируемого блока видео. Сумматор 48 выполняет эту операцию вычитания. Модуль 38 преобразования применяет преобразование, такое как дискретное косинусное преобразование (DCT) или концептуально аналогичное преобразование, к остаточному блоку, формируя блок видео, содержащий коэффициенты остаточного блока преобразования. Например, модуль 38 преобразования может выполнять другие преобразования, определенные стандартом Н.264, которые концептуально аналогичны DCT. Могут быть также использованы вейвлет-преобразования, целочисленные преобразования, преобразования поддиапазонов или другие типы преобразования. В любом случае модуль 38 преобразования применяет преобразование к остаточному блоку, производя блок остаточных коэффициентов преобразования. Преобразование может преобразовывать остаточную информацию из пиксельной области в частотную область.

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

[0045] После квантования модуль 46 САВАС статистически кодирует квантованные коэффициенты преобразования согласно методологии САВАС, чтобы дополнительно сжимать данные. После статистического кодирования посредством модуля 46 САВАС закодированное видео может быть передано на другое устройство или заархивировано для более поздней передачи или поиска. Модуль 42 обратного квантования и модуль 44 обратного преобразования применяют обратное квантование и обратное преобразование, соответственно, чтобы восстановить остаточный блок в пиксельной области для использования в качестве опорного блока. Сумматор 51 суммирует восстановленный остаточный блок с блоком предсказания с компенсированным движением, произведенным модулем 36 компенсации движения, чтобы произвести восстановленный блок видео для сохранения в хранилище 34 опорного кадра. Восстановленный блок видео может быть использован модулем 32 предсказания как опорный блок, чтобы внешне закодировать блок в последующем видеокадре.

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

где x и y определяют местоположение заданного коэффициента в пределах блока видео, и cij являются весовыми коэффициентами, иногда называемыми коэффициентами ошибки предсказания. П