СПОСОБ И УСТРОЙСТВО ДЛЯ ИСПОЛЬЗОВАНИЯ СПОСОБОВ ПРЕОБРАЗОВАНИЯ КАДРОВ С ПОВЫШЕНИЕМ ЧАСТОТЫ КАДРОВ ПРИ КОДИРОВАНИИ МАСШТАБИРУЕМОГО ВИДЕО
METHOD AND DEVICE FOR USE OF FRAME CONVERSION METHODS WITH INCREASE OF FRAME FREQUENCY IN CODING OF SCALABLE VIDEO

Испрашивание приоритета согласно параграфу 119 раздела 35 Свода Законов США
Настоящая заявка испрашивает приоритет предварительной заявки на патент США № 60/585154 "Method and Apparatus for Using Frame Rate up Conversion (FRUC) Technique in Scalable Video Coding", поданной 1 июля 2004, и предварительной заявки на патент США № 60/665816 "Method and Apparatus for Using Frame Rate Up Conversion Techniques in Scalable Video Coding", поданной 22 марта 2005, переданным их правопреемнику и тем самым явно включенных по ссылке.
Область техники
Настоящее изобретение относится в целом к сжатию видео данных и, более конкретно, к способу и устройству для использования методов преобразования с повышением частоты кадров (FRUC) при кодировании масштабируемого видео.
Уровень техники
Адаптация частоты следования при сжатии видео и аудио информации обычно достигается посредством способов масштабирования (SNR, пространственного, временного), переключающимися между битовыми потоками, кодированными с различными скоростями передачи данных в битах, и множеством режимов скоростей передачи информации в битах, в которых кодер выдает на сервер контент в виде множества медиапотоков (потоков мультимедийной информации) в переменных диапазонах частот. Сервер затем выдает соответствующий поток на основании сетевых условий и/или потенциальной аудитории.
Из-за ограниченной полосы частот, доступной в приложении низкоскоростного видео, некоторые кодеры применяют способы выборки во времени (также называемые как пропуск кадров), чтобы удовлетворить требуемым соотношениям сжатия. В таком сценарии кадры во входной последовательности периодически «выпадают» из процесса кодирования и поэтому не передаются. Таким образом, вместо полной входной последовательности декодер принимает только частичную информацию по временной оси. В результате связанные со временем артефакты, такие как судорожные движения, представляются на стороне приема. Преобразование с повышением частоты кадров (FRUC, ППЧК) используется в декодере, чтобы восстановить пропущенные кадры с целью уменьшения временных (во времени) артефактов. Различные методы были предложены для FRUC. Как правило, методика интерполяции с компенсированным движением (MCI) обеспечивает наилучшее решение в применениях с использованием временного FRUC. Однако желательно оптимизировать реализацию методов FRUC в декодере, в то же время минимизируя скорости передачи данных в битах потока видео.
Сущность изобретения
Ниже описаны различные подходы для использования способов FRUC (преобразования с повышением частоты кадров) в масштабируемом кодировании видео и, в частности, для обеспечения встраивания методов сжатия FRUC на стороне кодера, также упомянутой как "FRUC с участием кодера" (EA-FRUC).
В одном варианте осуществления способ для кодирования потока видео включает в себя этапы разделения потока видео на главный уровень, имеющий множество кадров главного уровня, и интерполированный уровень, имеющий множество кадров интерполированного уровня; интерполяции кадра FRUC; и кодирования множества кадров главного уровня в главном уровне с помощью интерполированного FRUC кадра.
В другом варианте осуществления EA-FRUC реализуется как считываемый компьютером носитель, имеющий команды, сохраненные на нем, причем сохраненные команды при выполнении процессором вынуждают процессор исполнять способ для кодирования потока видео. Способ включает в себя этапы разделения потока видео на главный уровень, имеющий множество кадров главного уровня, и интерполированный уровень, имеющий множество кадров интерполированного уровня; интерполяцию кадра преобразования с повышением частоты кадров (FRUC); и кодирование множества кадров главного уровня в главном уровне с помощью интерполированного FRUC кадра.
В еще одном варианте осуществления система реализуется как процессор видеокодера, принимающий поток видео. Процессор видеокодера включает в себя модуль преобразования с повышением частоты кадров (FRUC), причем этот модуль FRUC формирует множество кадров FRUC из принятого потока видео; модуль вычисления стоимости искажения частоты (RD_cost), подсоединенный к модулю FRUC, при этом упомянутый модуль вычисления RD_cost принимает множество кадров FRUC и вычисляет значение RD_cost макроблока кадра F на основании макроблока в одном из множества кадров FRUC; и модуль выбора режима, подсоединенный к модулю вычисления RD_cost, причем модуль выбора режима сконфигурирован так, чтобы сравнивать значение RD_cost макроблока кадра FRUC на основании макроблока в одном из множества кадров FRUC с значением RD_cost макроблока кадра B для соответствующего макроблока в соответствующем кадре B.
Другие задачи, признаки и преимущества станут очевидны специалистам в данной области техники из нижеследующего подробного описания. Должно быть понятно, однако, что подробное описание и конкретные примеры при описании вариантов осуществления изобретения даются в качестве иллюстрации, а не ограничения. Множество изменений и модификаций в пределах описания могут быть сделаны без отрыва от его объема, и изобретение включает в себя все такие модификации.
Краткое описание чертежей
Изобретение может быть легче понято при рассмотрении совместно со ссылками на сопроводительные чертежи, на которых:
фиг. 1 изображает диаграмму, иллюстрирующую обычное двухуровневое кодирование с базовым уровнем и уровнем расширения;
фиг. 2 изображает диаграмму, иллюстрирующую схему кодирования, сконфигурированную в соответствии с одним вариантом осуществления, где основной уровень был закодирован с помощью FRUC-кадров;
фиг. 3 изображает блок-схему способа для кодирования базового уровня с помощью кадров FRUC в соответствии с одним вариантом осуществления;
фиг. 4 изображает блок-схему системы кодирования, сконфигурированную в соответствии с одним вариантом осуществления;
фиг. 5 изображает блок-схему способа для выбора режима для кодирования в соответствии с одним вариантом осуществления;
фиг. 6 изображает диаграмму, иллюстрирующую двухуровневую схему кодирования, сконфигурированную в соответствии с одним вариантом осуществления, где уровень расширения был закодирован с помощью кадров FRUC;
фиг. 7 изображает блок-схему способа для разделения медиа данных на два уровня и кодирования уровня расширения с помощью кадров FRUC в соответствии с одним вариантом осуществления; и
фиг. 8 изображает блок-схему терминала доступа и точки доступа беспроводной системы.
Аналогичные цифровые ссылочные позиции относятся к аналогичным элементам на всех чертежах.
Подробное описание
Хотя методика FRUC (преобразования с повышением частоты кадров - ППЧК) типично используется на стороне декодера, она может быть расширена на сторону кодера. В частности, удобно использовать FRUC кадр в качестве дополнительного режима предсказания для кадра с компенсированным движением. Добавляя дополнительный режим предсказания для промежуточного (интер-) предсказанного кадра, может быть достигнута экономия скорости передачи данных в битах. Другими словами, могут быть улучшены коэффициенты сжатия для одного и того же восстановленного визуального качества.
Для видео кодирования, основанного на стандартах, синтаксис битового потока должен быть дополнен из-за введения дополнительного режима FRUC. Однако соответствие стандартному синтаксису может быть сохранено посредством пометки с помощью флагов об использовании FRUC в предсказанных кадрах в поле пользовательских данных или полях Информации Дополнительного Расширения (ИДР, Supplemental Enhancement Information - SEI) как в стандарте H.264 кодирования видео, опубликованном Международным Телекоммуникационным Союзом, Сектором Стандартизации Телекоммуникаций (ITU-T). Эта особенность особенно выгодна в системах передачи видео, где функция FRUC выполняется декодером. Дополнительно, закрытые системы, где возможны модификации видео декодера, придерживаются извлечения значительной выгоды в терминах ширины полосы частот передачи и эффективности сжатия.
На стороне декодера после приема переданных потоков битов и восстановленных (I/P) кадров внутреннего (интра-) изображения (I)/предсказанного изображения (P) кадры FRUC интерполируют, используя те же самые способы, принятые на стороне кодера. Промежуточные (интер-) кадры затем восстанавливают на основании как восстановленных I/P-кадров, так и кадра FRUC того же самого момента времени. До тех пор пока одна и та же методика используется как на стороне декодера, так и стороне кодера, не будет существовать никакой ошибки или проблем отклонения.
Альтернативное применение системы может иметь место в масштабируемом кодировании видео. Когда используется масштабирование во времени, некоторые кадры предсказания, в частности кадры изображения с двунаправленным предсказанием/интерполированным изображением, передают в уровне расширения; и I и P кадры передают в базовом уровне. В таком сценарии, если уровень расширения не принимается или не требуется, частота кадров восстановленного видео в декодере является более низкой, чем исходная частота кадров. Посылка разности кадра FRUC и кадра B в базовом уровне может обеспечивать реконструирование (восстановление) близкого приближения кадра B посредством FRUC в декодере. Результаты показывают, что стоимость разности (в битах) является значительно меньшей и, следовательно, не оказывает воздействия на скорость передачи в битах видео базового уровня. Эта разность может быть вычислена как чистый остаток FRUC и истинного B кадра посредством установления порогов (или квантования), чтобы ограничить информацию видимыми областями (например, отверстия, которые не могут быть восстановлены посредством FRUC), или в виде усовершенствования известных FRUC способов (например, данные вектора истинного движения или квантованные данные вектора истинного движения). Снова такую информацию о разности можно передавать в полях "пользовательские данные" стандартного синтаксиса или в полях SEI, как в H.264 стандарте.
На основании доступности ресурсов декодера могут быть выбраны различные способы FRUC на основании степени их вычислительной сложности. Моментом, на который следует обратить внимание, является тот, что FRUC обычно требует меньше вычислительных циклов, чем декодирование кадра B, так как FRUC включает в себя простую 3- или 5-отводную фильтрацию и оценку движения (ОД, ME) в отношении малой процентной части кадра в относительно малой области поиска; по сравнению с двунаправленной компенсацией движения (КД, МС) в отношении всех макроблоков (иногда более одной компенсации движения (МС)/макроблок (МБ, МВ)) кадра B. FRUC предлагает степень детализации в уровнях сложности на основании уровня детализации, принятого для восстановления промежуточного кадра при малой стоимости визуального качества.
Как правило, B кадры в вычислительном отношении более дороги, чем кадры P, и I кадры являются наименее дорогими из трех типов кадров. В этом отношении дополнительное преимущество системы и ее расширение на кодирование масштабируемого видео заключается в сохранении вычислительных циклов и, таким образом, ценная для карманных устройств энергия (которая приводит к более длинному времени резервирования и времени разговора в таких устройствах). Экономия энергии реализуется независимо от того, принят ли кадр B или нет, когда на основании доступных тактов декодер может выбирать - декодировать кадр B или восстанавливать интерполированный кадр посредством FRUC и использовать детализацию из данных разности.
Основанные на блоках алгоритмы FRUC могут быть классифицированы по основанию увеличения вычислительной сложности:
1) алгоритмы без компенсации движения, такие как повторение кадра и усреднение кадра;
2) билинейная интерполяция с компенсацией движения (MCI) без MV-обработки;
3) MCI с MV-обработкой; и,
4) MCI, снабженная инициированной оценкой движения (МЕ), с MV-обработкой.
Любой из вышеупомянутых способов кодирования с использованием FRUC может быть объединен со способами кодирования с разбиением на уровни. Адаптация скорости передачи канала передачи может быть достигнута кодированием с разбиением на уровни. Базовый уровень сжатого битового потока обычно содержит более важные данные, а уровень расширения содержит менее важные данные, которые подвергаются передаче с большей частотой появления ошибок.
В одном варианте осуществления предпочтительно, чтобы битовый поток базового уровня подчинялся стандартам и допускалось сокращение битового потока уровня расширения, когда ширина полосы частот передачи уменьшается ниже некоторого порога. Согласно этому сценарию желательно:
1) разделить входящую последовательность кадров на кадры базового уровня и кадры уровня расширения таким образом, чтобы были взаимно-однозначные отношения между каждым кадром расширения и каждым потенциальным FRUC кадром,
2) кодировать кадр базового уровня согласно стандарту,
3) интерполировать кадр FRUC в тот же момент времени, когда должен кодироваться кадр расширения, и,
4) кодировать кадр расширения на основании интерполированного кадра FRUC.
Преимуществами этого подхода являются два. Первое, вводя один дополнительный режим предсказания для кадра уровня расширения, коэффициент сжатия для уровня расширения увеличится. Таким образом, для фиксированной ширины полосы частот передачи возможность сокращения битового потока уровня расширения уменьшается, поскольку становится менее вероятным, что битовый поток уровня расширения превысит порог скорости передачи, когда уровень расширения будет сокращен. Второе, однако, даже если битовый поток уровня расширения должен быть сокращен при ухудшающихся условиях передачи вследствие того способа, каким разделены кадры базового уровня и уровня расширения, как объяснено выше, декодер может все еще восстанавливать отсутствующие кадры уровня расширения, заменяя их интерполированными кадрами FRUC.
Фиг. 1 иллюстрирует обычную двухуровневую схему кодирования последовательности 106 видео, включающую в себя базовый уровень 104 и уровень 102 расширения. Кадры I и P, например P кадры 112 и 114, отделяются в базовый уровень 104 из-за их важности для корректного восстановления последовательности 106 видео, в то время как менее важные кадры B, например B кадры 110, находятся в уровне 102 расширения. В этом подходе согласно предшествующему уровню техники реконструкция кадров расширения в уровне 102 расширения зависит только от восстановленных кадров базового уровня в базовом уровне 104, но не зависит от восстановленных кадров в уровне 102 расширения. В частности, B кадры в уровне 102 расширения не используются в качестве опорных для предсказания во времени кадра в базовом уровне 104, хотя кадры B могут использоваться, чтобы предсказать будущие B кадры.
Фиг. 2 иллюстрирует последовательность 206 видео, закодированную в соответствии с одним вариантом осуществления схемы кодирования, где I кадр 212 является стандартным интра-кадром (внутренним) (кадром, который не подвергается временному предсказанию) и P кадр 220 является стандартным предсказанным кадром. Как видно из чертежа, кадры в основном уровне 202 закодированы с помощью интерполированного уровня 204.
PF кадры 216 являются P-кадрами, где интерполированный кадр FRUC используется в качестве одного из множества опорных изображений. Например, FRUC FRM 224 (FRUC кадр 224) является опорным изображением для PF FRM 216 (FRUC кадром 216). Напротив, стандартный подход использует I FRM 212 (I кадр 212) в качестве единственного опорного изображения для кадров P. Таким образом, в одном варианте осуществления кадр FRUC FRM используется как опорное изображение (картинка) для декодирования интерполированных кадров основного уровня.
BF кадры являются кадрами B, имеющими интерполированные кадры FRUC в качестве одного из множества опорных изображений. Таким образом, в одном варианте осуществления опорные изображения для BF кадров могут включать в себя один или более из кадров I, B, P, PF или BF. Например, BF кадр 214 является B-кадром, имеющим интерполированный FRUC кадр 222 в качестве одного из множества опорных изображений; и BF кадр 218 является B-кадром, имеющим интерполированный FRUC кадр 226 в качестве одного из множества опорных изображений. Напротив, даже при том, что стандартные B (двунаправленные) предсказанные кадры могут иметь множество опорных изображений (картинок), эти опорные изображения включают в себя только кадры I, B или P.
Упоминаемый здесь термин "F кадры" относится к кадрам, которые являются предсказанными кадрами с интерполированными FRUC кадрами, используемыми в качестве опорных изображений. Таким образом, и кадры PF, и кадры BF являются F кадрами. В одном варианте осуществления множество опорных изображений используются для предсказания F кадров. Кроме того, интерполированные FRUC кадры могут быть единственным опорным изображением, используемым для предсказания F кадров. Далее, архитектура, описанная здесь, охватывает подход, в котором часть интерполированных кадров FRUC используется в качестве опорных, например, используя только специфические макроблоки (которые могут быть блоками любого размера или формы) из интерполированного FRUC кадра.
Фиг. 3 иллюстрирует блок-схему примерного процесса кодирования FRUC для битового потока, описанного выше со ссылками на фиг. 2. На этапе 302 входящая медиа (видео) последовательность разделяется на F-кадры и не-F кадры, где F-кадрами являются кадры PF и BF, как описано выше, и не-F кадрами являются кадры I, B или P. В одном варианте осуществления имеется взаимно-однозначное отношение между каждым F-кадром и каждым потенциальным FRUC кадром. В других вариантах осуществления отношение кадров расширения к потенциальному FRUC кадру не должно быть взаимно-однозначным соответствием. Как только последовательность видео была разделена, работа выполняется в соответствии с этапом 304, где не-F кадры кодируют на основании стандартной используемой схемы кодирования. Например, для этих не-F кадров может использоваться стандарт кодирования, который опубликован в стандарте H.264. Затем на этапе 306 кадр FRUC интерполируется в тот же момент времени, когда должен быть кодирован кадр расширения. В одном варианте осуществления FRUC кадр может зависеть и от восстановленного (реконструированного) текущего кадра и от сохраненного предыдущего кадра. Другие варианты осуществления могут использовать другие FRUC алгоритмы, описанные выше. На этапе 308 кадры в уровне расширения кодируют с помощью интерполированного FRUC кадра, как подробно описано со ссылками на фиг. 4. Таким образом, из-за доступности FRUC кадра дополнительный режим предсказания (FRUC режим) может быть выбран для кадров предсказания в основном уровне.
Фиг. 4 иллюстрирует схему кодера, cконфигурированного в соответствии с одним вариантом осуществления. Первоначально детектор 402 P кадра определяет, является ли новый кадр F-кадром. Если нет, кодер 404 кадра P или B кодирует кадр, и кодер 406 с переменной длиной кодирования (ПДК, VLC) генерирует окончательный битовый поток для закодированного кадра P или B, чтобы вывести в выходном битовом потоке 404. Векторы движения для P или B кадра сохраняют в буфере 408 вектора движения (MV, ВД), в то время как буфер 410 восстановленного кадра сохраняет восстановленный P или B кадр. FRUC модуль 412 подсоединен к буферу 408 MV и буферу 410 восстановленного кадра, чтобы выполнить FRUC алгоритм и сформировать FRUC кадр, который сохраняют в буфере 414 FRUC кадра. Как описано выше, FRUC кадры используются для формирования различных кадров F (например, BF или PF).
Если детектор 402 F кадра обнаруживает, что новый кадр является F кадром, модуль 428 кодирования F кадра выполняет кодирование по принципу макроблок - за - макроблоком нового кадра F. Закодированный макроблок кадра F посылают на блок 434, который определяет количество битов, которые должны быть переданы для кадра B, который включает в себя биты, необходимые для передачи векторов движения. Затем вычисляется значение RD_cost макроблока кадра B в модуле 436 вычисления RD_cost B-блока. Далее, на основании кодирования кадра B компаратор 430 сравнивает (1) значение суммы абсолютных разностей (САР, SAD_b) макроблока кадра F на основании FRUC кадра, извлеченного из буфера 414 FRUC кадра (SAD_f), при вычитании из соответствующего макроблока кадра B, с (2) заранее определенным пороговым значением (TH). Если результаты вычитания больше или равны пороговому значению, то ухудшение качества может быть слишком большим и, таким образом, кодер должен послать полученную с помощью кодера информацию FRUC кадра. В одном варианте осуществления пороговое значение равно шестикратному используемому размеру блока (например, размера блока 16×16). Следует отметить, что хотя используемый здесь термин "макроблок" обычно относится к стандартному размеру блока 16×16 пиксельных элементов, может использоваться любой размер блока. Кроме того, блоки могут иметь любую форму.
Если разность между SAD макроблока кадра B и SAD макроблока кадра F меньше, чем этот порог, то кодер укажет, что макроблок кадра F должен использоваться в модуле 432 и бит для индикации F-режима помещается в выходной битовый поток 440. Если нет, то остаточный исходный (оригинальный) макроблок и совместно расположенный блок кадра FRUC вычисляют в модуле 416, результаты которого квантуются в модуле 418 дискретного косинусного преобразования (ДКП, DCT)/квантования/VLC. Число битов блока FRUC кадра, необходимых для передачи информации кадров FRUC, определяется в модуле 420 битов F-блока, и на основании этого вычисления определяют значение RD_cost макроблока кадра FRUC в модуле 422 RD_cost F-блока. Вычисление RD_cost описано здесь со ссылками на фиг. 5.
На основании вычисленного RD_cost макроблока кадра B и RD_cost макроблока кадра F модуль 424 компаратора определяет - какие биты разместить в выходной битовый поток 440. В одном варианте осуществления, если RD_cost макроблока кадра B меньше, чем RD_cost макроблока кадра F, то биты для макроблока кадра B, включая сгенерированные векторы движения, будут помещены в выходной битовый поток 440. Иначе, биты для макроблока кадра F будут помещены в выходной битовый поток 440.
Фиг. 5 иллюстрирует алгоритм, осуществленный в соответствии с одним вариантом осуществления для процесса выбора режима макроблока кадра B уровня расширения в течение кодирования кадров в уровне расширения. На этапе 502 векторы движения вперед и назад получают для макроблока кадра B. В одном варианте осуществления эти векторы получают, выполняя обычную двунаправленную оценку движения. Таким образом, никакая информация из кадра FRUC не используется. Затем на этапе 504 определяют наилучший режим для макроблока кадра B. В варианте осуществления наилучший режим выбирают из одного из трех режимов: режим прямого предсказания, режим обратного предсказания и билинейный режим предсказания. Далее, выбор наилучшего режима выполняют без использования кадра FRUC.
На этапе 506 получают остаток ошибки между макроблоком кадра B на основании выбранного наилучшего режима и первоначального макроблока из исходного кадра (то есть подлежащего кодированию исходного кадра). Информацию остатка ошибки между первоначальным макроблоком и макроблоком кадра FRUC затем получают на этапе 508. В одном варианте осуществления остаток ошибки для макроблока кадра B и макроблока кадра FRUC вычисляют, вычитая первоначальный макроблок из макроблока кадра B или макроблока кадра FRUC, соответственно. Кроме того, переменную, называемую стоимостью искажения частоты (RD_cost), вычисляют и для макроблока кадра B, и макроблока кадра FRUC, в соответствии с заданной следующей формулой:
RD_cost = Искажение + Лямбда * Частота
В одном варианте осуществления «Частота» - есть общее количество битов, используемых для кодирования некоторого блока (которое использует остаток ошибки соответствующего макроблока), «Искажение» - есть мера искажения, и «Лямбда» - заранее определенный коэффициент взвешивания, который зависит от квантования макроблока. В одном варианте осуществления «Искажение» определяется вычислением суммы абсолютных разностей (SAD). В других вариантах осуществления могут использоваться отличные метрики искажения. Далее, «Лямбда» в одном варианте осуществления является эмпирически полученной формулой, зависящей от параметра квантования.
Как описано выше, выбор режима кодирования кадра FRUC или кадра B основан на основании значения "сумма абсолютных разностей" (SAD), которое является фактически мерой искажения, и количества битов, требуемых для кодирования остатка. Эти два значения суммируют, один взвешивается посредством (умножается на) значения Лямбда, и "наилучший" режим выбирается на основании того, который дает минимизированный результат. Причина того, что используется суммирование искажения и частоты, заключается в том, что кодер может делать компромисс между качеством изображения и скоростью передачи информации в битах. Так, например, если кодер встречает очень сложный макроблок, который испытывает сильные искажения, если он использует тот же самый параметр квантования, как и прежде, это может снизить значение квантования, чтобы учесть компромисс в искажении, даже при том, что потребуется большее количество битов для кодирования.
Как только были определены остаток ошибки и, следовательно, B_RD_cost (RD_cost макроблока кадра B) и остаток ошибки и, следовательно, FRUC_RD_cost (RD_cost макроблока кадра FRUC), на этапе 510 сравнивают значения стоимости и определяют, является ли FRUC_RD_cost меньшим, чем B_RD_cost. Если да, то выбирают на этапе 512 режим FRUC. Иначе, наилучший режим, который определен на этапе 504, выбирают на этапе 514.
Фиг. 6 иллюстрирует последовательность 606 видео, кодированную в соответствии со схемой кодирования согласно одному варианту осуществления с блоком 608 принятия решения об уровне, который разделяет медиа-данные на два уровня, включающие в себя базовый уровень 604 и уровень 602 расширения. Кадры I и P, такие как P кадры 612 и 614, разделяются на базовый уровень 604 из-за их важности для правильного восстановления последовательности 606 видео, в то время как менее важные кадры B, такие как B кадры 610, остаются в уровне 602 расширения. Как проиллюстрировано на чертеже, FRUC кадры 616 также могут быть уже существующими в базовом уровне 604.
Фиг. 7 иллюстрирует схему последовательности операций процесса кодирования FRUC в соответствии с одним вариантом осуществления, как описано выше. На этапе 702 входящая медиа-последовательность (видео) разбивается на кадры базового уровня и кадры уровня расширения. В одном варианте осуществления имеется взаимно-однозначное отношение между каждым кадром расширения и каждым возможным (потенциальным) FRUC кадром. В других вариантах осуществления отношение кадров расширения к возможным FRUC кадрам не должно иметь взаимно-однозначного соответствия. Как только последовательность видео была разделена, работа выполняется в соответствии с этапом 704, где кадры в базовом уровне кодируют на основании стандартной используемой схемы кодирования. Например, может использоваться стандарт кодирования, который провозглашен в стандарте H.264. Затем на этапе 706 кадр FRUC интерполируется в тот же самый момент времени, что и подлежащий кодированию кадр расширения. В одном варианте осуществления кадр FRUC может зависеть как от восстановленного текущего кадра, так и сохраненного предыдущего кадра. Другие варианты осуществления могут использовать другие алгоритмы FRUC, описанные выше. На этапе 708 кадры в уровне расширения кодируют с помощью интерполированного кадра FRUC.
Следует отметить, что модули и блоки обработки, упомянутые здесь, могут быть осуществлены во множестве реализаций аппаратными/программными средствами. Таким образом, специалисту понятно, что, например, один и тот же процессор может выполнять операцию FRUC, а также вычисления SAD. Кроме того, цифровой сигнальный процессор (DSP, ЦСП) или другой специализированный процессор может использоваться вместе с универсальным процессором, чтобы осуществить описанные здесь функции. Ссылки на модули или блоки, выполняющие определенную функцию или функции, не должны быть ограничены тем, чтобы включать в себя конкретную схему для выполнения упомянутой функции или функций, но могут снова включать в себя процессор, конфигурированный для выполнения упомянутой функции или функций.
Настоящее изобретение обеспечивает экономию в передаваемом битовом потоке для от очень малого компромисса до отсутствия компромисса в визуальном качестве, что основано на способе выбора режима, описанного выше. Например, имеется сокращение отношения битовая скорость/пропускная способность посредством дополнения синтаксиса битового потока стандарта (H.26X/MPEG-X) при том же уровне качества. Это уменьшит возможность пропуска битового потока расширения, и, следовательно, улучшит восстановленное качество видео. В одном варианте осуществления при кодировании уровня расширения информация о векторе движения не должна быть передана, так как эта информация может быть восстановлена/вычислена в декодере посредством простых функций интерполяции. Таким образом, все виды экономии скорости передачи информации в битах могут быть реализованы.
Кроме того, вычислительное масштабирование может быть достигнуто адаптивным выбором соответствующего FRUC алгоритма на основании оптимального использования аппаратных ресурсов приемника. Например, если декодер имеет встроенный ускоритель оценки движения, может быть выбран FRUC алгоритм интерполяции MCI, снабженной инициированной оценкой движения (МЕ), и MV-обработкой. Лучшее временное масштабирование может быть достигнуто, когда, используя особенности FRUC, видео будет воспроизведено с полной частотой передачи кадров, где кадры FRUC вставляют, только когда принимают битовый поток базового уровня. Экономия энергии в декодере может также быть получена, в частности, в портативных устройствах, где реконструкция потока видео с помощью FRUC требует меньшего количества циклов, чем реконструкция полного кадра B.
Предсказывается, что кадры B занимают до 30% общей скорости передачи информации в битах, когда используется структура группы изображений IBP (GOP). Следовательно, настоящее изобретение, с помощью уменьшения данных, назначенных для передачи B кадров, может уменьшить полную скорость передачи информации в битах. Например, для структур GOP IBP скорость передачи информации в битах может быть уменьшена до 15%, когда включены как базовый уровень, так и уровень расширения. Этот процент увеличивается, когда используются структуры IBBP GOP или IBBBP GOP, поскольку эти структуры используют большее количество B кадров. Увеличивается для большего количества кадров B между I и P.
Фиг. 8 иллюстрирует блок-схему терминала 802x доступа и точки 804x доступа в беспроводной системе. "Терминал доступа", описанный здесь, относится к устройству, обеспечивающему связность речи и/или данных для пользователя. Терминал доступа может быть соединен с вычислительным устройством, таким как портативный компьютер или настольный компьютер, или он может быть независимым устройством, таким как персональный цифровой помощник. Терминал доступа может также быть назван абонентским блоком, мобильной станцией, мобильным устройством, удаленной станцией, удаленным терминалом, терминалом пользователя, пользовательским агентом или оборудованием пользователя. Терминал доступа может быть абонентской станцией, беспроводным устройством, сотовым телефоном, телефоном системы персональной подвижной связи (PCS), радиотелефоном, телефоном протокола инициирования сеанса (SIP), станцией местной радиосвязи (WLL), персональным цифровым помощником (PDA), портативным устройством, имеющим возможность беспроводного подключения, или другим устройством обработки, связанным с беспроводным модемом. "Точка доступа", описанная здесь, относится к устройству в сети доступа, которое обменивается по эфирному интерфейсу через один или более секторов с терминалами доступа. Точка доступа действует как маршрутизатор между терминалом доступа и остальной частью сети доступа, которая может включать в себя IP сеть, преобразовывая принятые по эфирному интерфейсу кадры в пакеты IP. Точка доступа также координирует управление атрибутами для эфирного интерфейса.
Для обратной линии связи в терминале 802x доступа процессор 814 передачи данных (TX) принимает данные трафика из буфера 812 данных, обрабатывает (например, кодирует, перемежает и преобразует символы) каждый пакет данных на основании выбранной схемы кодирования и модуляции и выдает символы данных. Символ данных является символом модуляции для данных, и пилот-символ является символом модуляции для пилот сигнала (который известен априорно). Модулятор 816 принимает символы данных, пилот-символы и возможно сигнализацию для обратной линии связи, выполняет модуляцию (например, OFDM) и/или другую обработку, как определено системой, и выдает поток выходных элементов сигнала. Модуль 818 передатчика (TMTR) обрабатывает (например, преобразовывает в аналоговый вид, фильтрует, усиливает и преобразует с повышением частоты) поток выходных элементов сигнала и формирует модулированный сигнал, который передают из антенны 820.
В точке 804x доступа модулированные сигналы, переданные терминалом 802x доступа и другими терминалами, находящимися в связи с точкой 804x доступа, принимаются антенной 852. Модуль 854 приемника (RCVR) обрабатывает (например, приводит к требуемым условиям и оцифровывает) принятый сигнал от антенны 852 и выдает принятые выборки. Демодулятор (Demod) 856 обрабатывает (например, демодулирует и обнаруживает) принятые выборки и выдает обнаруженные символы данных, которые являются оценкой шума символов данных, переданных терминалами к точке 804x доступа. Процессор 858 принятых данных обрабатывает (например, выполняет обратное преобразование символов, осуществляет обращенное перемежение и декодирует) обнаруженные символы данных для каждого терминала и выдает декодированные данные для этого терминала.
Для прямой линии связи в точке 804x доступа данные трафика обрабатываются процессором 860 приема (TX), чтобы сформировать символы данных. Модулятор 862 принимает символы данных, пилот-символы и сигнализацию для прямой линии связи, выполняет модуляцию (например, OFDM) и/или другую подходящую обработку и выдает поток выходных элементов сигнала, который далее приводятся к требуемым условиям модулем 864 передатчика и передается от антенны 852. Сигнализация прямой линии связи может включать в себя команды регулирования мощности, сформированные контроллером 870 для всех терминалов, осуществляющих передачу по обратной линии связи к точке 804x доступа. В терминале 802x доступа модулированный сигнал, переданный точкой 804x доступа, принимается антенной 820, приводится к требуемым условиям и оцифровывается модулем 822 приемника и обрабатывается демодулятором 824, чтобы получить детектированные символы данных. Принимающий процессор 826 RX обрабатывает детектированные символы данных и выдает декодированные данные для терминала и сигнализации прямой линии связи. Контроллер 830 принимает команды регулирования мощности и управляет передачей данных и мощностью передачи по обратной линии связи к точке 804x доступа. Контроллеры 830 и 870 управляют работой терминала 802x доступа и точки 804x доступа, соответственно. Блоки памяти (запоминающие устройства) 832 и 872 хранят коды программ и данные, используемые контроллерами 830 и 870, соответственно.
Раскрытые варианты осуществления могут применяться к любому одному или комбинациям следующих технологий: системы множественного доступа с кодовым разделением каналов (CDMA), множественный доступ с кодовым разделением каналов с множеством несущих (МС-CDMA), широкополосный множественный доступ с кодовым разделением каналов (W-CDMA), высокоскоростной пакетный доступ нисходящей линии связи (HSDPA), системы множественного доступа с временным разделением каналов (TDMA), системы множественного доступа с частотным разделением каналов (FDMA) и системы множественного доступа с ортогональным разделением по частоте (OFDMA).
Следует отметить, что способы, описанные здесь, могут быть осуществлены на множестве аппаратных средств связи, процессорах и системах, известных специалистам. Например, общее требование для работы клиента, работать так, как описано в настоящем описании, заключается в том, что клиент имеет дисплей для отображения содержимого и информации, процессор для управления работой клиента и память для хранения данных и программ, относящихся к работе клиента. В одном варианте осуществления клиентом является сотовый телефон. В другом варианте осуществления клиентом является карманный компьютер, имеющий возможности связи. В еще одном варианте осуществления клиентом является персональный компьютер, имеющий возможности связи. Кроме того, аппаратные средства, например приемник универсальной системы определения местоположения (GPS), могут быть включены по мере необходимости в клиент, чтобы осуществить различные варианты осуществления. Различные иллюстративные логические схемы, логические блоки, модули и схемы, описанные со ссылками на варианты осуществления, раскрытые выше, могут быть реализованы или выполнены универсальным процессором, цифровым сигнальным процессором (DSP), интегральной схемой специализированного назначения (ASIC), программируемой пользователем вентильной матрицей (FPGA) или другим программируемым логическим устройством, аппаратными компонентами на дискретных логических вентилях или транзисторной логике, дискретных элементах или любой их комбинации, предназначенной для выполнения функций, описанных здесь. Процессор общего назначения может быть микропроцессором, но в альтернативе процессор может быть любым обычным процессором, контроллером, микроконтроллером или конечным автоматом. Процессор может также быть осуществлен как комбинация вычислительных устройств, например комбинацией DSP и микропроцессора, множеством микропроцессоров, одним или более микропроцессоров вместе с ядром DSP или любой другой такой конфигурацией.
Раскрытые варианты осуществления могут применяться к любому одному или комбинациям следующих технологий: системы множественного доступа с кодовым разделением каналов (CDMA), множественный доступ с кодовым разделением каналов с множеством несущих (МС-CDMA), широкополосный множественный доступ с кодовым разделением каналов (W-CDMA), высокоскоростной пакетный доступ нисходящей линии связи (HSDPA), системы множественного доступа с временным разделением каналов (TDMA), системы множественного доступа с частотным разделением каналов (FDMA) и системы множественного доступа с ортогональным разделением по частоте (OFDMA).
Следует отметить, что способы, описанные здесь, могут быть осуществлены на множестве аппаратных средств связи, процессорах и системах, известных специалистам. Например, общее требование для работы клиента, работать как описано в настоящем описании, заключается в том, что клиент имеет дисплей для отображения содержимого и информации, процессор для управления работой клиента и память для хранения данных и программ, относящихся к работе клиента. В одном варианте осуществления клиентом является сотовый телефон. В другом варианте осуществления клиентом является карманный компьютер, имеющий возможности связи. В еще одном варианте осуществления клиентом является персональный компьютер, имеющий возможности связи. Кроме того, аппаратные средства, например приемник универсальной системы определения местоположения (GPS), могут быть включены по мере необходимости в клиент, чтобы осуществить различные варианты осуществления. Различные иллюстративные логические схемы, логические блоки, модули и схемы, описанные со ссылками на варианты осуществления, раскрытые выше, могут быть реализованы или выполнены универсальным процессором, цифровым сигнальным процессором (DSP), интегральной схемой специализированного назначения (ASIC), программируемой пользователем вентильной матрицей (FPGA) или другим программируемым логическим устройством, аппаратные компоненты на дискретных логических вентилях или транзисторной логике, дискретных элементах или любой их комбинации, предназначенной для выполнения функции, описанных здесь. Процессор общего назначения может быть микропроцессором, но в альтернативе процессор может быть любым обычным процессором, контроллером, микроконтроллером или конечным автоматом. Процессор может также быть осуществлен как комбинация вычислительных устройств, например комбинацией DSP и микропроцессора, множеством микропроцессоров, одним или более микропроцессоров вместе с ядром DSP или любой другой такой конфигурацией.
Этапы способа или алгоритма, описанные со ссылками на варианты осуществления, раскрытые выше, могут быть воплощены непосредственно в аппаратных средствах, в программном модуле, выполняемом процессором, или в их комбинации. Программный модуль может постоянно находиться в оперативной памяти (ОЗУ), флэш-памяти, памяти ПЗУ (ROM), электрически программируемой памяти ПЗУ, электрически стираемой программируемой памяти ПЗУ (СППЗУ), регистрах, на жестком диске, съемном диске, CD-ROM или носителе данных любой другой формы, известной в данной области техники. Примерный носитель данных соединен с процессором так, что процессор может считывать информацию с него и записывать информацию на носитель данных. В альтернативе носитель данных может быть встроенным в процессор. Процессор и носитель данных могут постоянно находиться в ASIC. Специализированные интегральные схемы ASIC могут постоянно находиться в терминале пользователя. В альтернативе процессор и носитель данных могут постоянно находиться в терминале пользователя в качестве дискретных компонентов.
Описание раскрытых вариантов осуществления обеспечивается для того, чтобы дать возможность любому специалисту в данной области техники воплотить или использовать изобретение. Различные модификации к этим вариантам осуществления могут быть очевидны специалисту, и универсальные принципы, раскрытые здесь, могут применяться к другим вариантам осуществления, например, в службе мгновенной передачи сообщений или любых обычных беспроводных приложениях передачи данных, без отрыва от объема и контекста описанных вариантов осуществления. Таким образом, контекст описания не предназначен быть ограниченным вариантами осуществления, показанными выше, но предоставляет самый широкий контекст, совместимый с принципами и новыми признаками, раскрытыми в настоящем описании. Слово "примерный" используется здесь исключительно для того, чтобы означать "служащий как пример, образец или иллюстрация". Любой вариант осуществления, описанный здесь как "примерный", не обязательно должен быть рассмотрен как выгодный по сравнению с другими вариантами осуществления.