БЫСТРОЕ ПРИНЯТИЕ РЕШЕНИЯ О ДЕЛЬТЕ ПАРАМЕТРА КВАНТОВАНИЯ МАКРОБЛОКА
FAST MACROBLOCK DELTA QUANTISATION PARAMETER DECISION

СВЯЗАННЫЕ ЗАЯВКИ
Эта заявка испрашивает приоритет предварительной заявки на патент США №61/030,857, поданной 22 февраля 2008 года, которая полностью включена в настоящее описание по ссылке.
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Настоящие варианты осуществления касаются мультимедийной обработки изображения. Более подробно, эти варианты осуществления касаются системы и способа для того, чтобы адаптивно управлять скоростью цифровой передачи битов и качеством сжатия цифрового видео в видео кодере.
ОПИСАНИЕ УРОВНЯ ТЕХНИКИ
Возможности цифрового видео могут быть включены в широкий диапазон устройств, включая цифровые телевизоры, цифровые системы прямого вещания, устройства беспроводной связи, персональные цифровые помощники (PDA), ноутбуки, настольные компьютеры, цифровые камеры, устройства цифровой записи, сотовые или спутниковые радио-телефоны и т.п. Эти и другие устройства цифрового видео могут обеспечить существенные усовершенствования по сравнению с обычными аналоговыми видео системами при создании, изменении, передаче, хранении, записи и проигрывании полных видео последовательностей движения.
Многие различные стандарты кодирования видео были установлены для того, чтобы обмениваться цифровыми видео последовательностями. Группа экспертов по движущимся изображениям (MPEG), например, развила многие стандарты, включая MPEG-1, MPEG-2 и MPEG-4. Другие стандарты кодирования включают в себя H.261/H.263, MPEG1/2/4 и последний H.264/AVC.
Стандарты кодирования видео достигает увеличенных скоростей передачи, кодируя данные сжатым способом. Сжатие может уменьшить общее количество данных, которые должны быть переданы, для эффективной передачи кадров изображения. Стандарты H.264, например, используют способы сжатия графики и видео, разработанные, чтобы облегчить передачу видео и изображений по более узкой полосе частот, чем может быть достигнуто без сжатия. В частности, стандарты H.264 включают в себя способы кодирования видео, которые используют общие черты между последовательными кадрами изображения, названными как временная или межкадровая корреляция, чтобы обеспечить межкадровое сжатие. Способы межкадрового сжатия используют избыточность данных в кадрах посредством преобразования основанных на пикселях представлений кадров изображения в представления движения. Кроме того, способы кодирования видео могут использовать общие черты внутри кадров изображения, называемых пространственной или внутрикадровой корреляцией, чтобы достигнуть внутрикадрового сжатия, при котором пространственная корреляция в пределах кадра изображения может быть дополнительно сжата. Внутрикадровое сжатие обычно основано на обычных процессах для сжатия неподвижных изображений, такие как кодирование с пространственным предсказанием и дискретное косинусное преобразование (DCT).
Чтобы поддержать способы сжатия, многие цифровых видео устройства включают в себя кодер для сжатия цифровых видео последовательностей, и декодер для декомпрессии цифровых видео последовательностей. Во многих случаях кодер и декодер являются интегрированным кодером/декодером (КОДЕК), который оперирует над блоками пикселей в кадрах, которые определяют последовательность видео изображений. В стандарте H.264, например, кодер посылающего устройства обычно делит видео кадр изображения, который должен быть передан, на макроблоки, содержащие меньшие блоки изображения. Для каждого макроблока в кадре изображения кодер ищет макроблоки соседних видео кадров, чтобы идентифицировать наиболее подобный макроблок, и кодирует разность между макроблоками для передачи, наряду с вектором движения, который указывает, какой макроблок из опорного кадра использовался для кодирования. Декодер принимающего устройства принимает вектор движения и закодированные разности, и выполняет компенсацию движения, чтобы сгенерировать видео последовательности.
Разность между макроблоками преобразуется и затем квантуется. Параметр квантования (QP) используется, чтобы выполнить квантование и таким образом определить скорость передачи (частоту следования) битов управления и качество восстановленного кадра. Квантование, использующее более высокий QP соответствует более низкой скорости передачи битов и более низкому качеству. Квантование, использующее более низкий QP, соответствует более высокой скорости передачи (частоте следования) битов и более высокому качеству. Регулируя QP, различные скорости передачи битов и степени качества могут быть реализованы.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
В некоторых вариантах осуществления предоставлена система для кодирования видео, причем система содержит запоминающее устройство, причем запоминающее устройство содержит видео кадр, в свою очередь содержащий макроблок. Система также включает в себя модуль квантования, сконфигурированный для выбора диапазона параметров квантования для квантования макроблока, в котором диапазон является поднабором возможных параметров квантования; процессор, сконфигурированный для определения параметра квантования в диапазоне, который приводит к оптимальному квантованию макроблока; и кодер, сконфигурированный для кодирования макроблока, используя определенный параметр квантования.
В некоторых вариантах осуществления предоставлена система для кодирования видео, содержащая средство для приема видео кадра, содержащего макроблок, для квантования; средство для выбора диапазона параметров квантования для квантования макроблока, причем диапазон является поднабором возможных параметров квантования; средство для определения параметра квантования в диапазоне, который приводит к оптимальному значению квантования для макроблока; и средство для кодирования макроблока, используя определенный параметр квантования.
В некоторых вариантах осуществления предоставлен способ для кодирования видео, содержащий: прием видео кадра, содержащего макроблок, для квантования; выбор диапазона параметров квантования для квантования макроблока, причем диапазон является поднабором возможных параметров квантования; определение параметра квантования в диапазоне, который приводит к самому низкому значению искажения для макроблока; и кодирование макроблока, используя определенный параметр квантования.
В некоторых вариантах осуществления предоставлен считываемый компьютером носитель, содержащий считываемый компьютером программный код, приспособленный для выполнения способа, содержащего: прием видео кадра, содержащего макроблок, для квантования; выбор диапазона параметров квантования для квантования макроблока, причем диапазон является поднабором возможных параметров квантования; определение параметра квантования в диапазоне, который приводит к самому низкому значению искажения для макроблока; и кодирование макроблока, используя определенный параметр квантования.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Признаки, задачи и преимущества раскрытых вариантов осуществления станут более очевидными из подробного описания, сформулированного ниже, при рассмотрении совместно с чертежами, на которых аналогичные ссылочные позиции идентифицированы соответственно по всему описанию, и на которых:
Фиг.1 является укрупненной блок-схемой кодирующего исходного устройства и декодирующего принимающего устройства, как использовано в одном варианте осуществления изобретения.
Фиг.2 является схематической диаграммой исходного устройства в одном варианте осуществления изобретения, реализующего модуль оптимизации QP, как описано в вариантах осуществления настоящего изобретения.
Фиг.3 является общей блок-схемой, иллюстрирующей систему кодирования, в которой используется модуль оптимизации QP.
Фиг.4 является блок-схемой процесса кодирования блока, используя параметр квантования.
Фиг.5 является схематической диаграммой потока операций модуля оптимизации QP.
ПОДРОБНОЕ ОПИСАНИЕ
Варианты осуществления изобретения включают в себя системы и способы для кодирования мультимедийного видео, которое должно быть отображено пользователю. В одном варианте осуществления системы и способы приспособлены, чтобы управлять скоростью передачи (частотой следования) кодированных данных для сжатия видео. В некоторых случаях видео передают беспроводным образом или через проводную сеть на приемник для отображения. Один этап в сжатии видео относится к квантованию переданных видео данных. Квантование включает в себя деление видео данных с помощью параметра квантования (QP), чтобы уменьшить размер данных до меньшей, более управляемой формы.
Поскольку не все сегменты видео данных содержат одинаковое количество информации, различные сегменты видео могут квантоваться по-разному с различными QP. Если QP, выбранный для данной секции, будет слишком маленьким, то сжатые данные будут иметь хорошее качество, но не будут сжаты до высокой степени. Это приводит к порождению высокой скорости передачи (частоты следования) битов, когда данные передают на приемник. Наоборот, если выбранный QP будет слишком большим, то данные будут сжаты с высокой степенью, и скорость передачи в битах (частота следования) будет уменьшена, поскольку имеется меньше битов для передачи. Однако, качество видео передаваемых кадров будет относительно низким, так как каждый кадр будет представлен относительно меньшим количеством битов, чем если бы QP был меньшим. В одном варианте осуществления изобретение обеспечивает систему и способ для быстрого и точного выбора надлежащего QP для заданной части (среза) видео. В частности, варианты осуществления изобретения обеспечивают интеллектуальное средство для выбора диапазонов, которые вероятно содержат подходящий QP для заданной совокупности данных.
Одним способом для определения надлежащего QP для макроблока является способ "грубой силы". Реализация способа грубой силы содержит кодирование одного и того же макроблока множество раз, используя диапазон значений QP, и выбор оптимального QP в качестве значения QP, которое предлагает минимальную стоимость кодирования. Различные критерии стоимости могут использоваться, чтобы определить надлежащий QP для конкретного макроблока. Одна мера стоимости известна как стоимость «скорость передачи - искажения», выраженная как комбинация скорости передачи и искажения,
C=D+λR
где D - искажение между оригинальным видео блоком и восстановленным видео блоком из-за квантования, R - скорость передачи (количество битов), используемых для кодирования входного блока видео, и λ - постоянный параметр. И искажение D и скорость передачи R являются функциями QP, так как 1) QP непосредственно влияет на степень искажения между оригинальным видео блоком и восстановленным видео блоком (более высокое QP означает более высокое искажение); и 2) непосредственно относится к количеству битов, необходимого для кодирования остаточных коэффициентов квантования (более высокое QP означает более низкую скорость передачи битов). В одном возможном варианте осуществления λ может аналогично зависеть от QP и может содержать формулу:
mode
(QP-12)/3
λ=0,85*2
В зависимости от применения коэффициенты в этом уравнении должны быть изменены, чтобы определять важность скорости передачи битов по искажению. Здесь, например, с увеличением QP скорость передачи в битах задается, увеличивая релевантность в выборе оптимального значения.
В результате стоимость C является также функцией QP, C=C(QP). После множественных кодирований текущего макроблока, при заданном диапазоне значений QP, лучший QP для макроблока может быть выбран как:
opt
QP=arg min(C(QP))
Одно усовершенствование, которое описано в настоящем описании, заключается в кэшировании блока оценки движения по умолчанию для указанного QP и использовании этой кэшированной оценки движения при вычислении искажения для каждого из параметров QP в диапазоне поиска. Это кэширование, хотя приводит к менее точному измерению потенциальной стоимости QP, экономит большое количество времени, поскольку оценка движения не должна неоднократно вычисляться для каждого потенциального QP.
Принятие решения во внешнем режиме:
Варианты осуществления рассматривают способы, чтобы увеличить скорость кодирования процесса принятия решения о QP макроблока. Например, во время принятия решения о режиме (когда кодер выбирает лучший режим кодирования среди множества возможных режимов кодирования для макроблока), если рассматривается внутренний режим, поиск движения выполняется, чтобы принять решение об оптимальном разделении макроблока и оптимальных векторах движения для каждого разделения (оба в терминах оптимизации метрики стоимости). Кодер может выполнить поиск движения, только когда макроблок закодирован для номинального QP (который может быть задан конечным пользователем или разрешен спецификациями контроля качества для устройства), и сохранить результаты поиска движения. В одном варианте осуществления кодер извлекает сохраненную информацию движения в последующих раундах кодирования (с различными значениями макроблока QP) вместо того, чтобы вызвать поиск движения снова. Это гарантирует, что поиск движения, который является дорогостоящим и требующим много времени процессом, выполняется для каждого макроблока только однажды. Чтобы дополнительно уменьшить время кодирования, необходимое для принятия решения об оптимальном QP макроблока, следующие дополнительные способы могут использоваться:
Принятие решения во внутреннем режиме:
В интер-кодированном срезе (части) (то есть, P-или B-срезе) разрешены как режимы внутреннего (интра-) кодирования (пространственное предсказание) так и режимы внутреннего кодирования (временное предсказание). Поэтому, во время принятия решения о режиме для P- и B-среза макроблоков, режимы внутреннего кодирования могут быть также рассмотрены. Внутренние режимы обычно выбираются для макроблоков, которые представляют новые объекты в текущем кадре и/или изменение сцены. Однако, по сравнению с решением внутреннего режима (когда результаты поиска движения не находятся под значительным влиянием значения QP макроблока), решение о внутреннем режиме зависит от значения QP макроблока. Например, для H.264/AVC разрешены четыре режима внутреннего кодирования: внутренний 4×4, внутренний 8×8, внутренний 16×16 и IPCM. В первых двух режимах макроблок разделен на меньшие блоки (4×4 или 8×8) и предсказывается последовательно в порядке растрового сканирования. Поэтому, когда QP макроблока изменяется, восстановленные блоки изменятся, таким образом, влияя на предсказание и решение о режиме для последующих блоков в макроблоке. В оптимальной схеме решение о внутреннем режиме должно быть повторено, используя различные QP. Однако, это подвержено долгому времени кодирования. Чтобы ускорить решение внутреннего (интра) режима, только одно значение QP может использоваться. Аналогично решению внешнего режима, результаты решения внутреннего режима (которые включают в себя режим предсказания) могут быть сохранены и повторно использованы в последующих раундах кодирования с различными значениями QP. В то время как это может повлечь потери производительности из-за неоптимального решения внутреннего режима, это влияние может оставить ограниченным, так как обычно ограниченный процент от макроблоков во внешнем срезе (P или B-срезе) являются интра-кодированными. Чтобы дополнительно ограничить влияние этого неоптимального решения внутреннего режима, кодер может решить выполнять решение внутреннего режима многократно для различных значений QP, если и только если во время решения о режиме при номинальном QP выбран режим внутреннего кодирования вместо режима интер (внешнего) кодирования, как лучший режим кодирования для текущего макроблока.
Ограничение диапазона QP:
Соседние макроблоки обычно пространственно коррелированы. Это означает, что оптимальные значения QP для граничащих макроблоковв обычно аналогичны. В зависимости от оптимальных значений QP для уже закодированных его соседей диапазон поиска оптимального QP для макроблока может быть подвергнут некоторым ограничениям. Следующий псевдо код обеспечивает одно возможное выполнение этих ограничений:
инициализировать currMBDeltaQP, например, currMBDeltaQP = 0
MB_CODING_LOOP_START:
currMBQP = sliceQP+currMBDeltaQP
//рассматриваем currMBQP, только если оно находится в пределах малого диапазона предсказанного QP
Пусть QPpred будет предсказанным QP на основании QP соседних МБ,
если (currMB не является граничным MB и currMBQP аналогично QPpred),
{
кодировать_макроблок (currMB QP)
если (currQPCost <minQPCost)
{
bestMBQP = currMBQP
minQPCost = currQPCost
}
}
Переход к следующему значению дельта QP,
currMBDeltaQP = nextDeltaQPValue
Возврат к MB_CODING_LOOP_START:
пока все значения дельта QP не будут проверены
Отметим, что псевдо код выше обеспечивает специальное условие для макроблоков, которые лежат на границе видео кадра/среза. Для этих граничных макроблоков один или более их соседей не доступны. Множество способов может использоваться, чтобы принять во внимание это условие, например: 1) использование уровня QP кадра/среза по умолчанию для недоступных соседей при вычислении предсказателя QP; или 2) проверка полного диапазона значений дельта QP. Выбор 2) имеет преимущество, что он облегчает проблему медленного начала для не-граничных макроблоков, позволяя просматривать граничные макроблоки в поисках оптимального значения QP в более широком диапазоне.
Множественные способы могут использоваться для вычисления предсказателя QP на основании соседних параметров QP. Например, средний QP левого и правого соседей может использоваться. Альтернативно, среднее QP левого, верхнего и левого верхнего соседей может использоваться. Альтернативно, среднее QP левого, верхнего, левого верхнего, и верхнего-правого соседей может использоваться. Различные комбинации возможны в зависимости от порядка, в котором закодированы макроблоки.
Различные способы, чтобы решить, аналогично ли текущее значение QP предсказателю QP, могут использоваться для различных типов срезов. Например, диапазон [QPpred-2, QPpred+1] может быть применен в отношении макроблоков P-среза, в то время как диапазон [QPpred-1, QPpred+2] может быть применен в отношении макроблоков B-среза.
Условное ограничение в отношении диапазона поиска QP помогает сократить количество раундов кодирования, выполняемых для каждого макроблока, таким образом, ускоряя процесс кодирования. Однако наложение ограничения может вызывать некоторую потерю эффективности по сравнению с исчерпывающим поиском. Потери эффективности могут быть более серьезными для макроблоков в I- и P-срезах, так как эффективность «искажение - скорость передачи» I- и P-среза должна распространяться вне текущей группы изображений (GOP), пока не встретится следующая точка случайного доступа (также известная как IDR или мгновенная обновленная картинка декодера в H.264/AVC). Поэтому, альтернативой является ослабить или не применить условное ограничение QP в отношении макроблоков I- и P-среза.
Фиг.1 является блок-схемой, иллюстрирующей примерную систему 100, в которой исходное устройство 101 передает закодированную последовательность видео данных по коммуникационной линии связи 109 на принимающее устройство 102. Исходное устройство 101 и принимающее устройство 102 оба являются цифровыми видео устройствами. В частности, исходное устройство 101 кодирует и передает видео данные, используя любой один из множества стандартов сжатия видео, включая описанные выше. Коммуникационная линия связи 109 может охватывать беспроводную линию связи, физическую линию передачи, сеть на основе пакетной передачи, такую как локальная сеть, глобальная сеть, или глобальная сеть, такая как Интернет, общественную коммутируемую телефонную сеть (PSTN), или комбинации различных линий связи и сети. Другими словами, коммуникационная линия связи 109 представляет любой подходящий носитель связи, или возможно коллекцию различных сетей и линий связи, для передачи видео данных от исходного устройства 101 на приемное устройство 102.
Исходное устройство 101 может быть любым цифровым видео устройством, способным к кодированию и передаче видео данных. Например, исходное устройство 101 может включать в себя память 103 для того, чтобы хранить цифровые видео последовательности, видео кодер 104 для кодирования последовательности, и передатчик 105 для передачи закодированных последовательностей по коммуникационной линии связи 109. Память 103 может охватывать компьютерную память, такую как динамическая память или запоминающее устройство на жестком диске. Приемное устройство 102 может быть любым цифровым видео устройством, способным к приему и декодированию видео данных. Например, приемное устройство 102 может включать в себя приемник 108 для приема закодированных цифровых видео последовательностей, декодер 107 для декодирования этих последовательностей, и дисплей 106 для того, чтобы отображать последовательности пользователю.
Примерные устройства для исходного устройства 101 и приемного устройства 102 включают в себя серверы, расположенные в компьютерной сети, автоматизированные рабочие места или другие настольные вычислительные устройства и мобильные вычислительные устройства, такие как ноутбуки. Другие примеры включают в себя системы цифрового телевизионного вещания и устройства приема, такие как мобильные телефоны, цифровые телевизоры, цифровые камеры, цифровые видео камеры или другие устройства цифровой записи, цифровые видео телефоны, такие как сотовые радиотелефоны и спутниковое радиотелефоны, имеющие видео возможности, другие беспроводные видео устройства и т.п.
В некоторых случаях исходное устройство 101 и приемное устройство 102 каждое включает в себя кодер/декодер (КОДЕК) (не показан) для кодирования и декодирования цифровых видео данных. В этом случае и исходное устройство и приемное устройство может включать в себя передатчики и приемники, а также память и дисплей. Многие из способов кодирования, обрисованных в общих чертах ниже, описаны в контексте цифрового видео устройства, которое включает в себя кодер. Подразумевается, однако, что кодер может являться частью КОДЕКА.
Исходное устройство 101, например, включает в себя кодер 104, который оперирует над блоками пикселей в последовательности видео изображений, чтобы закодировать видео данные в сжатый формат. Например, кодер 104 из исходного устройства 101 может разделить видео кадр изображения, который должен быть передан, на макроблоки, содержащие многие меньшие блоки изображения. Для каждого макроблока в кадре изображения кодер 104 из исходного устройства 101 ищет макроблоки, сохраненные в памяти 103 для предыдущего видео кадра, уже переданного (или последующего видео кадра), чтобы идентифицировать аналогичный макроблок, и кодирует разность между макроблоками, наряду с вектором движения, который идентифицирует макроблок от предыдущего кадра, который использовался для кодирования. Исходное устройство 101 может поддерживать программируемые пороги, которые могут вызвать завершение различных задач или итераций во время процесса кодирования, чтобы сократить количество вычислений и сэкономить мощность.
Приемник 108 из приемного устройства 102 принимает вектор движения и закодированные видео данные, и декодер 107 выполняет способы компенсации движения, чтобы сгенерировать видео последовательности для отображения пользователю с помощью дисплея 106. Специалист в данной области техники легко поймет, что вместо отображения закодированных данных различные другие действия могут быть предприняты, включая сохранение данных, переформатирование данных, или повторную передачу декодированных данных. Декодер 107 из приемного устройства 102 может также быть реализован как кодер/декодер (КОДЕК). В этом случае и исходное устройство и приемное устройство может быть способно кодировать, передавать, принимать и декодировать цифровые видео последовательности.
Фиг.2 является блок-схемой, иллюстрирующей примерное исходное устройство 101, включающее в себя видео кодер 203, который сжимает цифровые видео последовательности согласно способам, описанным здесь. Примерное цифровое видео устройство 101 иллюстрировано как беспроводное устройство, такое как мобильное вычислительное устройство, персональный цифровой помощник (PDA), устройство беспроводной связи, радио-телефон и т.п. Однако, способы в настоящем описании не ограничены беспроводными устройствами, и могут быть легко применены к другим цифровым видео устройствам, включая не беспроводные устройства.
В примере на Фиг.2 цифровое видео устройство 101 конфигурируется, чтобы передавать сжатые цифровые видео последовательности через передатчик 202 и антенну 201. Видео кодер 203 кодирует видео последовательности и буферизует закодированные цифровые видео последовательности в памяти 205 хранения видео до передачи. Памяти 205 хранения может также сохранить считываемые компьютером инструкции и данные для использования видео кодером 203 во время процесса кодирования. Память 205 может быть представлять собой синхронную динамическую память с произвольным доступом (SDRAM), жесткий диск, флэш-память, электрически стираемую программируемую память только для считывания (EEPROM), или аналогичные. Видео кадры 204 извлекают из памяти 205 для кодирования. Как описано подробно ниже, видео кодер 203 реализует модуль оптимизации QP (QPOM) 206, который конфигурируется, чтобы оптимизировать кодирование видео, выполняемое видео кодером 203. QPOM 206 облегчает управление скоростью передачи в битах при наличии инструкций, которые определяют, какие параметры будут использоваться кодером 203 во время процесса кодирования.
Примерная система сжатия данных 300, которая включает QPOM, иллюстрирована на фиг.3. Видео сигнал 305 сначала подается к препроцессору 301 при подготовке к сжатию. Препроцессор 301 может служить множеству целей, или может быть исключен из системы в целом. Препроцессор 301 может, например, форматировать видео сигнал 305 в компоненты, которые более легко обрабатываются системой сжатия. Выходной сигнал препроцессора 301 подается к кодеру 302. Кодер 302 квантует данные, которые им приняты, затем сжимает квантованные коэффициенты. Выполненное квантование зависит от параметров квантования обратной связи 307 от QPOM 303. Вместе, кодер 302 и QPOM 303 могут составлять систему 308 кодирования или КОДЕК. QPOM 303 использует статистику, характеризующую текущий закодированный сегмент видео, чтобы адаптивно установить параметры квантования для кодирования следующего сегмента видео. Этот процесс адаптивного устанавливания параметров квантования для кодируемого видео описан более подробно ниже. Как только данные были квантованы, их посылают в блок 304 форматирования, который форматирует выходной битовый поток 306 для передачи. Блок 304 форматирования принимает данными с управляемой скоростью передачи, и собирает данные в отформатированный поток двоичных сигналов для передачи через канал связи. При этом блок 304 форматирования может добавить дополнительную информацию к данным. Например, сигналы, указывающие начало блока, начало кадра, номер блока, номер кадра и информацию квантования, могут быть добавлены к сигналу данных с помощью блока 304 форматирования.
Основанное на блоке видео кодирование широко используется в стандартах кодирования видео, таких как H.261/H.263, MPEG1/2/4 и последней версии H.264/AVC. В основанной на блоках системе кодирования входной видео кадр обрабатывается блок за блоком. Обычно используемый размер блока равен 16×16, который также известен как макроблок. Фиг.4 показывает блок-схему одного примера основанного на блоках видео кодирования. Специалист в данной области техники легко признает, что дополнительные признаки возможны. Фиг.4 обеспечивает обобщенный краткий обзор работы кодера и его использование упомянутого QP. Для каждого входного блока видео данных 401 система генерирует блок 413 предсказания. Блок 413 предсказания сформирован модулем 410 предсказания, который выполняет или пространственное предсказание (предсказание в пределах того же самого кадра, используя уже соседние), или временное предсказание (предсказание по кадрам), и может использоваться в последующем процессе кодирования 417. Остаточный блок 402 затем вычисляется посредством вычитания значений блока предсказания из значений соответствующего оригинального видео блока из кадра 401. Остаточный блок 402 затем прогоняется через модуль 403 преобразования, который, например, выполняет дискретное косинусное преобразование (DCT) над остаточным блоком 402. Вслед за этим преобразованием остаточный блок квантуется, используя выбранный параметр квантования в модуле квантования 404. Набор квантованных коэффициентов 405 преобразования затем сканируются в 1-мерный вектор в модуле 406 сканирования коэффициентов, и статистически кодируется в модуле 408 статистического кодирования прежде, чем быть отосланным как закодированный поток битов 409.
Как показано блоком 416, параметр квантования не только используется, чтобы квантовать блок, но также и определить эффективность квантования. Остаточный блок 414 восстанавливается посредством деквантования 416 и инвертирования 415 квантованного остаточного блока. Этот восстановленный блок 412 затем сохраняется 411 и используется не только при определении эффективности параметра квантования для этого конкретного блока, но также и для последующего предсказания 418 будущих блоков.
Фиг.5 иллюстрирует обобщенную блок-схему одного возможного варианта осуществления процесса (способа) 500 работы QPOM 303. Процесс 500 начинается в начальном состоянии 501 посредством приема первого макроблока. Для первого макроблока предсказанное значение для QP может быть определено способом по умолчанию, например, поиском оптимизации посредством грубой силы. Поиск оптимизации посредством грубой силы содержит итерирование по всем возможным значениям QP, применяя метрику стоимости для каждого, и выбирая QP, генерирующий оптимальную метрику стоимости (как описано выше). Специалист в данной области техники признает, что различные альтернативные способы существуют для выбора начального предсказанного QP, например, по умолчанию, на основании статистических свойств видео сигнала, или глобальное предсказание - любая из этих альтернатив будет достаточна, пока получающийся QP обеспечивает разумное квантование. Для последующих макроблоков процесс 500 может выбрать предсказанное QP, основанное на соседних QP или предыдущих оптимальных QP. Если текущий макроблок находится в углу кадра, то есть соседи недоступны, альтернативные соседи или значение по умолчанию может использоваться для предсказанного QP. Как только предсказанный QP был выбран, процесс 500 идентифицирует диапазон QP для оценки, в состоянии 502. Процесс 500 повторяется по диапазону QP, применяя метрику стоимости, чтобы определить эффективность каждого QP в этом диапазоне. Как описано выше, метрика стоимости может содержать стоимость «искажение - скорость передачи». Как только оптимальный QP был определен, процесс 500 вставляет предсказанный QP в заголовок среза в состоянии 506. Это будет QP, используемый для последующего квантования этого макроблока системой. Процесс 500 затем определяет, доступно ли больше макроблоков для обработки в состоянии 503 принятия решения. Если макроблоки доступны, то процесс продолжится со следующим макроблоком в состоянии 508. Если макроблоки не доступны, то процесс закончится в состоянии 509 окончания.
Обычно выбранный диапазон будет просто простираться на целочисленное смещение, меньшее, чем предсказанный QP, и целочисленное смещение, большее чем предсказанный QP (то есть, +/-3). Однако, выбранный диапазон может быть смещен выше или ниже QP и может зависеть от типа квантуемого кадра. H.264, например, содержат I, P, или B кадры. На I и P кадры более часто ссылаются другие кадры, чем на кадры B, чтобы восстановить информацию изображения. Соответственно, I и P кадры должны быть обычно квантованы меньше, так чтобы их информация не была потеряна. Таким образом, после распознания I или P кадра QPOM может вместо этого выбрать диапазон, больше смещенный к более низкому QP - то есть, на 2 меньше, чем предсказанный QP и только 1 выше. Это увеличит шанс, что оптимальный QP будет ниже, чем предсказанный QP. Напротив, будут случаи, когда восходящее смещение является предпочтительным, то есть, в системах, требующих высокой скорости передачи в битах, с меньшим количеством акцента на качество.
Таким образом, новые и улучшенные способ и устройство для кодирования видео были описаны. Специалистам в данной области техники понятно, что различные иллюстративные логические блоки, модули, схемы и этапы алгоритма, описанные в соединении с вариантами осуществления, раскрытыми здесь, могут быть реализованы как электронные аппаратные средства, программное обеспечение, или их комбинации. Различные иллюстративные компоненты, блоки, модули, схемы и этапы были описаны в общем в терминах их функциональных возможностей. Реализованы ли функциональные возможности как аппаратные средства или программное обеспечение, зависит от конкретного применения и структурных ограничений, наложенных на всю систему. Квалифицированные специалисты признают взаимозаменяемость аппаратных средств и программного обеспечения при этих обстоятельствах, и как лучше всего реализовать описанные функциональные возможности для каждого конкретного применения. В качестве примеров, различные иллюстративные логические блоки, модули, схемы и этапы алгоритма, описанные в соединении с вариантами осуществления, раскрытыми здесь, могут быть реализованы или выполнены цифровым сигнальным процессором (DSP), специализированной интегральной схемой (ASIC), программируемой пользователем вентильной матрицей (FPGA) или другим программируемым логическим устройством, на дискретных логических вентилях или транзисторной логикой, дискретных компонентах аппаратных средств, таких как, например, регистры и FIFO, процессор, выполняющие набор инструкций программно-аппаратных средств, любой обычный программируемый программный модуль и процессор или любая их комбинация. Процессор может быть микропроцессором, но в альтернативе процессор может быть любым обычным процессором, контроллером, микроконтроллером или конечным автоматом. Программный модуль мог постоянно находиться в памяти RAM, флэш-памяти, памяти ROM, регистрах, жестком диске, сменном диске, CD-ROM, или любой другой форме носителя данных, известного в области техники. Специалисты дополнительно оценят, что данные, инструкции, команды, информация, сигналы, биты, символы и элементы сигнала, на которые можно сослаться всюду по вышеупомянутому описанию, представлены напряжениями, токами, электромагнитными волнами, магнитными полями или частицами, оптическими полями или частицами, или любой их комбинацией.
Предыдущее описание предпочтительных вариантов осуществления предоставлено, чтобы позволить любому специалисту сделать или использовать раскрытые варианты осуществления. Различные модификации к этим вариантам осуществления будут для специалистов, и общие принципы, определенные здесь, могут быть применены к другим вариантам осуществления без использования изобретательной способности. Таким образом, раскрытые варианты осуществления не предназначены, чтобы быть ограниченными вариантами осуществления, описанными выше, но должны получить самый широкий объем, совместимый с принципами и новыми признаками, раскрытыми здесь.