Кодирование видеосигналов посредством выбора фильтра

Иллюстрации

Показать все

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

Реферат

Ссылка на родственные заявки

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

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

Это заявка относится к кодированию видеосигналов, более определенно, к техническим приемам интерполирования опорных кадров в системах сжатия видеоизображений.

Описание предшествующего уровня техники

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

Для передачи цифровых видеопоследовательностей был установлен ряд различных стандартов кодирования видеосигналов. Например, Экспертная группа по вопросам движущегося изображения (MPEG) разработала некоторое количество стандартов, включающих в себя MPEG-1 (стандарт сжатия изображения и звука), MPEG-2 (расширение MPEG-1 для кабельного телевидения и видеодисков DVD (цифровых видеодисков)) и MPEG-4 (стандарт сжатия движущегося изображения и звука, предназначенный для передачи данных с низкой скоростью). Другие стандарты включают в себя ITU (Международный союз по телекоммуникациям) H.263, технологию QuickTime™, разработанную корпорацией Apple Computer Cupertino Calif.; Video for Windows™, разработанную корпорацией Microsoft Corporation of Redmond, Вашингтон; Indeo™, разработанную Корпорацией Intel; RealVideo™ от RealNetworks, Inc., Сиэтл, Вашингтон; и Cinepak, разработанную фирмой SuperMac, Inc. Эти и другие стандарты, включая стандарты, которые еще будут разработаны, продолжают развиваться.

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

Один метод DCT известен как метод адаптивного дискретного косинусного преобразования размеров блоков (ABSDCT). Этот метод раскрыт в патенте США № 5021891, озаглавленном "Способ и система адаптивного сжатия изображений размеров блоков", переуступленном правопреемнику настоящего изобретения и включенном в этот документ посредством ссылки. Технические приемы DCT также раскрыты в патенте США № 5107345, озаглавленном "Способ и система адаптивного сжатия изображений размеров блоков", переуступленном правопреемнику настоящего изобретения и включенном в этот документ посредством ссылки. Кроме того, использование метода ABSDCT в сочетании с методом дифференциального преобразования дерева квадрантов обсуждается в патенте США № 5452104, озаглавленном "Способ и система адаптивного сжатия изображений размеров блоков", также переуступленном правопреемнику настоящего изобретения и включенном в этот документ посредством ссылки. Раскрытые в этих патентах системы используют то, что упоминается как "внутрикадровое" кодирование, в котором каждый кадр данных изображения кодируется без учета содержимого какого-либо другого кадра. При использовании метода ABSDCT достигаемая скорость передачи данных может быть снижена от, приблизительно, 1,5 миллиарда битов в секунду до, приблизительно, 50 миллионов битов в секунду без заметного ухудшения качества изображения.

Метод ABSDCT может использоваться для того, чтобы сжимать либо черно-белое, либо цветное изображение или сигнал, представляющий изображение. Цветной входной сигнал может быть в формате YIQ, с Y, являющимся выборкой сигнала яркости, или освещенности, и I и Q, являющимися выборками сигнала цветности, или цвета, для каждого из блоков 4 на 4 пикселей (минимальных элементов изображения). Также могут использоваться другие известные форматы, такие как форматы YUV ("яркость - цветность синего - цветность красного"), YC.sub.bC.sub.y или RGB ("зеленый, красный, синий"). Из-за низкой пространственной чувствительности глаза к цвету, большая часть исследований показала, что подвыборка цветовых компонентов с множителем четыре в горизонтальном и вертикальном направлениях является разумной. Соответственно, видеосигнал может быть представлен четырьмя компонентами сигнала яркости и двумя компонентами сигнала цветности.

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Соответствие блоков представляет собой самый распространенный способ оценки движения. Обычно каждый макроблок (то есть, 16×16 пикселей) в видеокадре сравнивается со сдвинутыми областями такого же размера из предыдущего кадра, и сдвиг, который приводит к минимальной погрешности, выбирается как наилучший вектор движения для этого макроблока.

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

Предсказанные кадры (или P-кадры) требуют предварительного декодирования некоторых других кадров (кадров) для их декодирования и могут содержать и данные изображения, и смещения векторов движения. В H.264, во время декодирования предсказанные кадры могут использовать множество предварительно декодированных кадров в качестве опорных, и могут иметь любое произвольное соотношение порядка - отображения относительно кадров (кадров), используемых для их предсказания. Также обычно предсказанные кадры требуют меньшего количества битов для кодирования, чем интра-кадры.

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

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

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

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

Источник 18 видеоинформации может включать в себя устройство оцифровки видеосигналов, такое как одна или более видеокамер, видеоархив, содержащий предварительно запомненную видеоинформацию, или видео в реальном масштабе времени, подаваемое от поставщика видеоинформации. В качестве дополнительного альтернативного варианта, источник 18 видеоинформации может генерировать основанные на компьютерной графике данные в виде исходной видеоинформации, или комбинацию видео в реальном масштабе времени и генерируемой компьютером видеоинформации. В некоторых случаях, если источник 18 видеоинформации представляет собой камеру, устройство 12 источника данных и приемное устройство 14 могут образовывать так называемые мобильные телефоны со встроенной камерой или видеотелефоны, включающие в себя спутниковые или мобильные радиотелефоны, или другие устройства беспроводной связи. Следовательно, в некоторых аспектах, технические приемы, описанные в этой заявке, могут быть реализованы в пределах телефонной трубки мобильного устройства беспроводной связи, такой как телефонная трубка мобильного телефона. В каждом случае запомненная, предварительно запомненная или создаваемая компьютером видеоинформация может кодироваться видеокодером 20 для передачи от устройства 12 источника видеоинформации в видеодекодер 26 устройства 14 приема видеоинформации через передатчик 22, канал 16 и приемник 24. Устройство 28 отображения может включать в себя любое из множества устройств отображения, такое как жидкокристаллический дисплей (LCD, ЖКД), плазменный дисплей или дисплей на органических светоизлучающих диодах (OLED).

Видеокодер 20 и видеодекодер 26 могут быть выполнены, в некоторых аспектах этой заявки, с возможностью поддерживать масштабируемое кодирование видеосигналов для пространственной, временной масштабируемости и/или масштабируемости по отношению сигнал-шум (SNR). Кодер 20 и декодер 26 могут поддерживать различные степени масштабируемости благодаря поддерживанию кодирования, передачи и декодирования основного уровня и одного или более масштабируемых уровней расширения. Для масштабируемого кодирования, основной уровень несет видеоинформацию с минимальным уровнем качества. Один или более уровней расширения несут дополнительный битовый поток, чтобы поддерживать более высокие пространственные, временные уровни или уровни SNR.

Видеокодер 20 и видеодекодер 26 могут работать в соответствии со стандартом сжатия видеоизображения, таким как MPEG-2, MPEG-4, ITU-T (Международный союз электросвязи - сектор телекоммуникаций) H.263 или ITU-T H.264/MPEG-4, Часть 10 (AVC (средства обработки аудиовизуальной информации)). Хотя на фиг.1 не показано, в некоторых аспектах, видеокодер 20 и видеодекодер 22 могут быть объединены с кодером и декодером звукового сопровождения, соответственно, и включать в себя соответствующие модули MUX-DEMUX (мультиплексора-демультиплексора) или другое аппаратное обеспечение и программное обеспечение, чтобы манипулировать кодированием и аудио, и видеосигналов в общем потоке данных или в отдельных потоках данных. Если это является подходящим, модули MUX-DEMUX могут согласовываться с протоколом мультиплексора ITU H.223 или с другими протоколами, такими как протокол пользовательских дейтаграмм (UDP).

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

Объединенная группа по видеоизображениям (JVT) продолжает работать над расширением масштабируемого кодирования видеосигналов (SVC) для AVC H.264/MPEG-4. Спецификация и H.264/MPEG-4AVC, и развиваемого расширения SVC представлены в форме Объединенного проекта (JD). Объединенная масштабируемая модель видеоизображений (JSVM), созданная посредством JVT, реализует инструментальные средства для использования в масштабируемом видеоизображении, которые могут использоваться в системе 10 для различных задач кодирования, описанных в этой заявке.

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

Каждый из видеокодера 20 и видеодекодера 26 может быть реализован в виде одного или более микропроцессоров, процессор цифровых сигналов (DSP, ПЦС), интегральных схем прикладной ориентации (ASIC, ИСПО), программируемых пользователем вентильных матриц (FPGA), дискретной логики, программного обеспечения, аппаратного обеспечения, встроенного программного обеспечения или любых их комбинаций. Следовательно, описанные в данном описании технические приемы могут быть реализованы в пределах одного или более устройств на интегральных схемах, которые могут быть упомянуты все вместе как устройство на интегральных схемах. Такое устройство на интегральных схемах может быть обеспечено в устройстве связи, таком как телефонная трубка устройства беспроводной связи. Каждый из видеокодера 20 и видеодекодера 26 может быть включен в один или более кодеров или декодеров, либо каждый из может быть включен в виде части объединенного кодера/декодера (кодека) в соответствующее мобильное устройство, абонентское устройство, устройство широковещательной рассылки, сервер или подобное устройство. Кроме того, каждое из устройства 12 источника видеоинформации и устройства 14 приема видеоинформации может включать в себя соответствующие компоненты модуляции, демодуляции, преобразования частоты, фильтрации и усилителя для передачи и приема закодированного видеосигнала, как это является подходящим, которые включают в себя компоненты радиочастотной (РЧ) беспроводной связи и антенны, достаточные для поддерживания беспроводной связи. Однако для обеспечения простоты иллюстрации, такие компоненты на фиг.1 не показаны.

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

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

Как показано на фиг.2, видеокодер 20 принимает текущий видеоблок 21 в пределах видеокадра, подлежащего кодированию. В примере на фиг.2 видеокодер 20 включает в себя модуль 23 оценки движения, запоминающее устройство 25 для опорных кадров, модуль 27 компенсации движения, модуль 29 преобразования блоков, модуль 31 квантования, модуль 33 инверсного квантования, модуль 35 обратного преобразования и модуль 37 энтропийного кодирования. Видеокодер 20 также включает в себя сумматор 39 и сумматор 41. Фиг.2 иллюстрирует компоненты временного предсказания видеокодера 20 для интер-кодирования видеоблоков. Хотя на фиг.2 для простоты иллюстрации не показано, видеокодер 20 также может включать в себя компоненты пространственного предсказания для интра-кодирования некоторых видеоблоков.

Модуль 23 оценки движения сравнивает видеоблок 21 с блоками в одном или более соседних видеокадрах, чтобы генерировать один или более векторов движения. Соседний кадр или кадры могут быть извлечены из запоминающего устройства 25 для опорных кадров. Оценка движения может быть выполнена для блоков переменных размеров, например, для 16×16, 16×8, 8×16, 8×8, или для меньших размеров блоков. Модуль 23 оценки движения идентифицирует блок в соседнем кадре, который наиболее близко соответствует текущему видеоблоку 21, например, на основании модели случайного искажения, и определяет смещение между блоками. Исходя из этого, модуль 23 оценки движения производит вектор движения, который указывает величину и траекторию смещения.

Векторы движения могут иметь точность в половину пикселя или четверть пикселя, или даже более высокую точность, позволяя видеокодеру 20 отслеживать движение с более высокой точностью, чем определение местоположений целых пикселей, и получать блок с более хорошим предсказанием. Когда используются векторы движения с дробными значениями пикселей, операции интерполяции могут выполняться в модуле 27 компенсации движения. Например, в стандарте H.264/AVC, чтобы получать сигнал яркости в позициях половин пикселей, может использоваться фильтр Винера с 6 отводами с коэффициентами (1, -5, 20, 20, -5, 1)/32. Чтобы получать сигналы яркости в местоположениях четвертей пикселей, может использоваться билинейная фильтрация на значениях в местоположениях целых пикселей и на интерполированных значениях в местоположениях половин пикселей. Билинейный фильтр также может использоваться в интерполяции дробных пикселей для компонентов сигнала цветности, которые могут иметь точность до 1/8 пикселя.

Модуль 23 оценки движения идентифицирует наилучший вектор движения для видеоблока с использованием модели определения искажения в зависимости от скорости передачи. Благодаря использованию результирующего вектора движения, модуль 27 компенсации движения формирует видеоблок предсказания с помощью компенсации движения. Видеокодер 20 формирует видеоблок остатка посредством вычитания видеоблока предсказания, произведенного модулем 27 компенсации движения, из первоначального, текущего видеоблока 21 в сумматоре 39. Модуль 29 преобразования блоков применяет преобразование к блоку остатка. Модуль 31 квантования квантует коэффициенты преобразования, чтобы дополнительно снизить скорость передачи данных. Модуль 37 энтропийного кодирования выполняет энтропийное кодирование квантованных коэффициентов для еще большего дополнительного снижения скорости передачи данных. Видеодекодер 26 выполняет обратные операции для восстановления закодированной видеоинформации.

Модуль 33 инверсного квантования и модуль 35 обратного преобразования применяют инверсное квантование и обратное преобразование, соответственно, чтобы восстанавливать блок остатка. Сумматор 41 добавляет восстановленный блок остатка к блоку компенсированного предсказания движения, произведенному модулем 27 компенсации движения, чтобы произвести восстановленный видеоблок (или принятие решения относительно фильтров для текущего кадра) для сохранения в запоминающем устройстве 25 для опорных кадров. Модуль компенсации движения, содержащий модуль 44 принятия решения относительно фильтров, выполненный с возможностью принимать опорные кадры из запоминающего устройства 25 для опорных кадров, принимает текущий кадр и производит восстановленный видеоблок, подлежащий сохранению в запоминающем устройстве 25 для опорных кадров фильтра. Восстановленный видеоблок может использоваться модулем 23 оценки движения и модулем 27 компенсации движения для кодирования блока в последующем видеокадре.

При выполнении компенсации движения для данного блока в текущем видеокадре 21 модуль 27 компенсации движения может использовать фиксированный набор фильтров, чтобы интерполировать опорный блок из опорного кадра. Если текущий блок однонаправлено предсказан, необходим один опорный блок, или если текущий блок двунаправлено предсказан, необходимы два опорных блока. В H.264, в некоторых случаях могут использоваться многочисленные опорные кадры в прямом и обратном направлениях. Фильтры, фактически используемые модулем 27 компенсации движения, зависят от дробной части вектора движения. Например, если вектор движения указывает на местоположение половины пикселя в опорном кадре в данном измерении, чтобы получить значение местоположения половины пикселя, устанавливаемый по умолчанию интерполирующий фильтр может использоваться в этом измерении с вектором движения половины пикселя. Если оба компонента вектора движения указывают на целочисленные местоположения, значения пикселей из опорного кадра в запоминающем устройстве 25 для опорных кадров могут использоваться непосредственно, без выполнения какой-либо операции интерполирующей фильтрации.

Фиг.3 представляет бл