СПОСОБ И УСТРОЙСТВО ДЛЯ ПРЕОБРАЗОВАНИЯ С ПОВЫШЕНИЕМ ЧАСТОТЫ КАДРОВ С ПОМОЩЬЮ КОДЕРА (EA-FRUC) ДЛЯ СЖАТИЯ ВИДЕОИЗОБРАЖЕНИЯ
METHOD AND APPARATUS FOR ENCODER ASSISTED FRAME RATE UP CONVERSION (EA-FRUC) FOR VIDEO COMPRESSION

Область техники, к которой относится изобретение
Описанные здесь варианты осуществления, в основном, относятся к сжатию цифрового видеоизображения, более конкретно к способу и устройству для Преобразования с Повышением Частоты Кадров с Помощью Кодера (EA-FRUC) для сжатия видеоизображения.
Уровень техники
В настоящее время существуют форматы видеоизображения, поддерживающие различные частоты кадров. В настоящее время наиболее распространены следующие форматы, перечисленные в порядке поддерживаемых ими кадров в секунду (fps): 24 (традиционный), 25 (PAL, телевизионный стандарт ПАЛ), 30 (обычное чересстрочное видеоизображение) и 60 (Высокое Разрешение (HD), например, 72Op). Хотя указанные частоты кадров подходят для большинства приложений, для достижения малой полосы частот, требуемой для передачи видеоизображения для мобильной телефонной трубки, частоты кадров иногда понижают до столь низких частот, как 15; 10; 7,5 или 3 кадров/сек. Хотя эти низкие частоты позволяют недорогим устройствам с более низкими вычислительными возможностями отображать некоторое видеоизображение, результирующее качество видеоизображения скорее страдает от видеоэффекта, такого как "замедленная съемка" (то есть существует эффект слайд-шоу), чем является сглаженным в движении. Также из-за частого пропускания кадров не правильно отслеживается количество движения в видеоизображении. Например, в фрагментах содержимого видеоизображения "быстрого движения", таких которые возникают в спортивных событиях, должно быть пропущено меньшее количество кадров, в то время как в фрагментах содержимого видеоизображения "медленного движения", таких которые возникают в ток-шоу, может быть пропущено большее количество кадров. Сжатие видеоизображения должно зависеть от содержимого, и чтобы повысить эффективность сжатия видеоизображения, должно быть предпочтительно наличие возможности анализа и объединения характеристик движения и текстуры в последовательности, которая должна быть кодирована.
Преобразование с Повышением Частоты Кадров (FRUC, ППЧК) является процессом использования интерполяции видеоизображения в видеодекодере для увеличения частоты кадров восстановленного видеоизображения. При FRUC интерполированные кадры создают с использованием принятых кадров в качестве опорных. В настоящее время системы, осуществляющие интерполяцию кадров FRUC, содержат подходы, основанные на интерполяции с компенсацией движения и обработке переданных векторов движения. Также FRUC используют при преобразовании между различными форматами видеоизображения. Например, в приложениях Телекинодатчика и Обратного - Телекинодатчика, которые являются способом передачи фильм-магнитная лента с записью изображения со звуковым сопровождением, который корректирует соответствующие частоты цветных кадров между фильмом и видеоизображением, прогрессивное видеоизображение (24 кадра/секунду) преобразуется в чересстрочное видеоизображение NTSC (29,97 кадра/сек).
Другой подход FRUC использует адаптивную взвешенную интерполяцию с компенсацией движения (WAMCI, АВИКД) для уменьшения искажений изображения блока, вызванных неточностями оценки движения и обработки на основе блока. Этот подход основан на интерполяции посредством взвешенных сумм многочисленных изображений интерполяции с компенсацией движения (MCI, ИКД). В предложенном способе также уменьшаются искажения изображения блока на границах блока посредством применения способа, подобного компенсации движения перекрывающихся блоков (OBMC, КДПМ). Для уменьшения размывания границ при обработке перекрывающихся областей способ, в частности, использует анализ движения для определения типа движения блока и адаптивно применяет OBMC. Экспериментальные результаты указывают, что предложенный подход достигает улучшенных результатов с существенным уменьшением искажений изображения блока.
Еще один подход FRUC использует анализ надежности вектора для уменьшения искажений изображения, вызванных использованием векторов движения, которые неточно переданы из кодирующего устройства. При этом подходе используют оценку движения для создания векторов движения, которые сравнивают с переданными векторами движения для определения наиболее предпочтительного подхода для интерпретации кадра. В обычных алгоритмах преобразования с повышением (частоты кадров), использующих оценку движения, процесс оценки выполняют с использованием двух смежных декодированных кадров для создания векторов движения, что обеспечивает возможность интерполяции кадра. Однако эти алгоритмы пытаются усовершенствовать использование полосы частот передачи, не принимая во внимание количество вычислений, требуемых для операции оценки движения. Для сравнения, в алгоритмах преобразования с повышением (частоты кадров), использующих переданные векторы движения, качество интерполированных кадров в существенной степени зависит от векторов движения, которые получены кодирующим устройством. Используя комбинацию двух подходов, переданные векторы движения сначала анализируют для принятия решения, пригодны ли они для создания кадров интерполяции. Затем способ, используемый для интерполяции, адаптивно выбирают из трех способов: локальной интерполяции с компенсацией движения, глобальной интерполяции с компенсацией движения и интерполяции с повторением кадра.
Хотя способы FRUC, в основном, осуществляются как функции постобработки в видеодекодере, соответственно в эту операцию обычно не вовлечен видеокодер. Однако при подходе, определенном как FRUC с помощью кодера (EA-FRUC), кодер может определять, можно ли устранить передачу некоторой информации, относящейся к векторам движения или опорным кадрам (например, остаточные данные), при этом обеспечивая возможность автономного восстановления декодером главных частей кадров без устраненных векторов или остаточных данных. Например, в MPEG-2 был введен способ кодирования видеоизображения с предсказанием в двух направлениях, как усовершенствование кодирования В-кадра. В этом способе предложено использование критерия ошибки для обеспечения возможности применения истинных векторов движения при кодировании с предсказанием с компенсацией движения. Показатель искажения основан на сумме абсолютных разностей (SAD, САР), но этот показатель искажения, как известно, является недостаточным для обеспечения показателя истинного искажения, особенно там, где должно быть определено количественно количество движения между двумя кадрами в последовательности. Дополнительно, разновидности порогов классифицированы с использованием фиксированных порогов, тогда как, оптимально, эти пороги должны быть переменными, поскольку классификации предпочтительно зависят от содержимого.
Область изучения EA-FRUC является развивающейся областью. Имеется повышенный интерес к этой области видеосжатия, в частности в отношении приложений с низкой скоростью передачи битов, подобных потоковому видеоизображению и видеотелефонии, и особенно в сценариях, где отправителем является узел сети, который имеет возможность поддерживать приложения высокой сложности, и приемник является портативным, ограниченной сложности и мощности. EA-FRUC также находит приложение в открытых системах, где декодер соответствует любому стандартному или популярному способу кодирования видеоизображения и в закрытых системах, где могут быть приняты собственные способы декодирования.
Требуется подход, который обеспечивает интерполированные кадры высокого качества в декодере при уменьшении величины полосы частот, необходимой для передачи информации, необходимой для выполнения интерполяции, и также уменьшении объема вычислений, необходимых для создания этих кадров, чтобы он хорошо подходил для мультимедийных мобильных устройств, которые зависят от обработки малой мощности.
Соответственно, существует потребность в преодолении отмеченных выше проблем.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Варианты осуществления обеспечивают систему Преобразования с Повышением Частоты Кадров с Помощью Кодера (EA-FRUC), которая использует кодирование видеоизображения и операции предварительной обработки в видеокодере для использования обработки FRUC, которая должна происходить в декодере, для улучшения эффективности сжатия и качества восстановленного видеоизображения.
В одном варианте осуществления способ заключается в том, что определяют, кодировать ли кадр в последовательности кадров содержимого видеоизображения посредством определения пространственной активности в кадре последовательности кадров; определяют временную активность в кадре; определяют избыточность по меньшей мере в одной определенной активности из определенной пространственной активности, определенной временной активности и определенной пространственно-временной активности и кодируют кадр, если определенная избыточность ниже заданного порога.
В другом варианте осуществления способ заключается в том, что определяют, кодировать ли набор из одного или большего количества кадров в последовательности кадров содержимого видеоизображения посредством определения пространственной активности в наборе кадров последовательности кадров; определяют временную активность в наборе кадров; определяют избыточность по меньшей мере в одной определенной активности из определенной пространственной активности, определенной временной активности и определенной пространственно-временной активности и кодируют один или большее количество набора кадров, если определенная избыточность находится в пределах заданных порогов.
В другом варианте осуществления раскрыт носитель информации, считываемый компьютером, содержащий сохраненные на ней инструкции, которые предписывают выполнение компьютером способа составления последовательности видеоизображения, содержащей последовательность кадров. Способ заключается в том, что определяют пространственную активность в кадре последовательности кадров; определяют временную активность в кадре; определяют избыточность по меньшей мере в одной определенной активности из определенной пространственной активности и определенной временной активности и кодируют кадр, если определенная избыточность ниже заданного порога.
Еще в одном варианте осуществления раскрыто устройство для составления последовательности видеоизображений, содержащей последовательность кадров. Устройство содержит средство для определения пространственной активности в кадре последовательности кадров; средство для определения временной активности в кадре; средство для определения избыточности по меньшей мере в одной определенной активности из определенной пространственной активности и определенной временной активности и средство для кодирования кадра, если определенная избыточность ниже заданного порога.
В еще одном варианте осуществления раскрыт по меньшей мере один процессор, сконфигурированный с возможностью осуществления способа составления последовательности видеоизображения, содержащей последовательность кадров. Способ заключается в том, что определяют пространственную активность в кадре последовательности кадров; определяют временную активность в кадре; определяют избыточность по меньшей мере в одной определенной активности из определенной пространственной активности и определенной временной активности и кодируют кадр, если определенная избыточность ниже заданного порога.
Из последующего подробного описания специалистам в данной области техники станут очевидны другие задачи, признаки и преимущества. Однако должно быть понятно, что подробное описание и определенные примеры, указывающие типичные варианты осуществления, приведены для иллюстрации, а не ограничения. Не отступая от сущности изобретения, могут быть сделаны многие изменения и модификации внутри последующего описания и должно быть понято, что описание включает в себя все такие модификации.
Краткое описание чертежей
Изобретение может стать более понятым согласно приложенным чертежам.
Фиг.1 является блок-схемой системы кодирования видеоизображения, осуществляющей систему Преобразования с Повышением Частоты Кадров с Помощью Кодера (EA-FRUC), в соответствии с одним вариантом осуществлениям.
Фиг.2 является блок-схемой, иллюстрирующей функционирование системы EA-FRUC фиг.1.
Фиг.3 является блок-схемой, иллюстрирующей однопроходное кодирование, в соответствии с одним вариантом осуществления системы EA-FRUC фиг.1.
Фиг.4 является блок-схемой, иллюстрирующей двухпроходное кодирование, в соответствии с одним вариантом осуществлениям системы EA-FRUC фиг.1, и
Фиг.5 является блок-схемой, иллюстрирующей приложение системы 100 EA-FRUC для системы радиосвязи.
В чертежах используется сквозная нумерация.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
Преобразование с Повышением Частоты Кадров (FRUC) является способом увеличения частоты кадров в декодере при передаче видеоизображения с низкой скоростью передачи битов. Как правило, это является операцией декодера. Однако, предусматривая потребности FRUC алгоритма в декодере, видеокодер может принимать интеллектуальные решения относительно того, какой кадр или какие кадры в последовательности видеоизображения могут быть пропущены (то есть не переданы в декодер) для обеспечения увеличения полной скорости передачи битов сжатых данных, соответственно улучшая эффективность сжатия. В одном варианте осуществления системы FRUC(EA-FRUC) с помощью кодера, как здесь описано, кодер имеет доступ к исходным кадрам, а также к априорной информации относительно алгоритма FRUC, используемого в декодере, и с использованием сформированного с их помощью интерполированного кадра передает дополнительную информацию, чтобы способствовать выполнению декодером FRUC для улучшения решений, сделанных при интерполяции. Используя преимущество наличия информации относительно того, что в декодере будет выполняться FRUC, система EA-FRUC использует в видеокодере кодирование видеоизображения и операции предварительной обработки для улучшения эффективности сжатия (вследствие этого улучшая использование полосы частот передачи) и качества восстановленного видеоизображения. В частности, в декодер обеспечивают информацию из кодера, которая может быть дополнительной или заменять информацию, обычно передаваемую кодером, которая должна использоваться при обычном FRUC, или FRUC с помощью кодера.
В одном варианте осуществления информация, обеспечиваемая кодером, содержит такие параметры, как пространственные (например, детализации, решения по режиму, характеристики окрестности) и временные (например, решения по вектору(ам) движения) характеристики изображения, которые должны интерполироваться в декодере, а также информацию различий, в отношении обычного кодирования с предсказанием (B или P) кадра и интерполированного кадра, сформированного процессом FRUC. Кадры, интерполированные процессом FRUC, будут определены здесь как "F-Кадры".
Обзор FRUC с помощью кодера
Фиг.1 иллюстрирует систему 100 кодирования/декодирования ("кодирования") видеоизображения, сконфигурированную в соответствии с одним вариантом осуществления. Система 100 кодирования содержит видеокодер 104, который обрабатывает цифровые видеоданные так, чтобы оптимизировать эти данные для передачи и декодирования одним или большим количеством декодеров. Более конкретно, в одном варианте осуществления видеокодер 104 использует алгоритм кодирования видеоизображения для кодирования и сжатия входного исходного видеоизображения 102 для уменьшения полосы частот, требуемой для передачи видеоизображения 102 в декодер 154. Эффективность сжатия видеокодера 104 может быть улучшена различными способами, один из которых состоит в сокращении частоты передаваемых кадров (то есть в сокращении количества кадров, которые должны быть переданы). Тогда в декодере 154 используют механизмы FRUC для увеличения частоты кадров декодированного потока видеоизображения и уточнения количества движения. Более конкретно, декодер 154 создает интерполированные кадры, используя опорные кадры в кодированном потоке видеоизображения, который принимают из кодера 104. Как здесь дополнительно описано, видеокодер 104 "знает" о том, что видеодекодер 154 может выполнять FRUC при операции кодирования, и использует эту возможность для уменьшения количества и размера передаваемых кадров.
Анализ F кадров
В одном варианте осуществления кодер 104 системы 100 кодирования содержит модуль 106 классификации содержимого для определения пространственного и временного коэффициента сложности: (i) в каждом кадре последовательности видеоизображения и (ii) между кадрами в последовательности видеоизображения. Кодер 104 использует результат этой операции для определения: (i) какой кадр в последовательности кадров, также известной как Группа Изображений (GOP, ГИ), может быть пропущен; и (ii) сколько последовательных кадров могут быть пропущены между двумя кодированными кадрами. Каждая GOP, по определению, состоит из компоновки одного I-изображения (кадра) P-изображения (кадра) и одного или большего количества B-изображений (кадров). GOP служит в качестве основного элемента доступа, (при этом) I-кадр служит в качестве точки доступа для облегчения произвольного доступа. Следует отметить, что GOP может состоять из переменного количества кадров. Предполагается, что любые пропущенные кадры, по мере необходимости, будут соответственно восстановлены в декодере 154 с использованием известных способов FRUC. В одном варианте осуществления для анализа может быть принят один из следующих способов:
1. Ранг значимости каждого кадра в последовательности зависит от активности в последовательности (например, медленное движение относительно быстрого движения, ровные области против заполненных текстур), и затем пропускают все кадры с высокой корреляцией в последовательности.
2. Для создания ожидаемого FRUC-кадра в кодере 104 используют доступный в декодере 154 алгоритм FRUC. Если корреляция между исходным кадром и его интерполированной версией высока, то исходный кадр пропускают. Альтернативно, если исходный кадр кодирован как B-кадр и восстановленный B-кадр имеет высокую корреляцию со своей интерполированной версией, то этот B-кадр с высокой корреляцией пропускается. Если нет, исходный кадр кодируют и передают. Если корреляция между исходным кадром и интерполированным кадром, или B-кадром и интерполированным кадром является умеренной, то не избыточную часть кадра кодируют как вспомогательную информацию, которая используется для улучшения качества интерполированного кадра относительно соответствующего ему исходного кадра.
Фиг.2 иллюстрирует один вариант осуществления процесса, используемого системой 100 кодирования для классификации исходного содержимого. В одном варианте осуществления на этапе 208 определяют, существуют ли какие-либо ограничения времени ожидания для выполнения кодирования исходного содержимого. Например, поточные приложения в реальном времени или кодеры, ограниченные в соответствии с требованиями на время ожидания (например, потоки, несущие диалоговое видео, например видеотелефония), обычно должны заканчивать все операции кодирования за один проход. В этом случае, операция продолжается на этапе 208, где выполняют процесс кодирования в один проход. Напротив, не-диалоговое видео, такое как видео по запросу (VOD, ВЗ) и приложения для цифровой камеры и (записывающей) видеокамеры, где кодированное видео сохраняют и, соответственно, никакие ограничения не распространяются на операцию кодирования с точки зрения синхронизации ресурсов, могут быть обработаны с использованием кодирования в два прохода, как на этапе 216. Как здесь описано, из-за указанных различий степень и качество классификации содержимого, выполняемой системами 100 кодирования, для этих двух режимов различны.
Пространственная Активность
Согласно фиг.2 и фиг.1 пространственная активность определяется модулем 106 классификации содержимого на этапе 210. Более конкретно, модуль 106 классификации содержимого определяет величину пространственной активности в источнике 102 видеоизображения. В одном варианте осуществления пространственная активность относится к количеству информации текстуры, такой как контур, цвет без примесей и объекты высокого контраста, в кадрах изображения последовательности видеоизображения. В основном, чем больше количество информации текстуры в последовательности видеоизображения, тем больше пространственная активность. В одном варианте осуществления информация текстуры может быть определена количественно с использованием следующих показателей:
a. Среднее значение: При кодировании на основе блока, среднее значение каждого блока по сравнения со средним значением: (i) кадра или (ii) окрестности блоков различных размеров.
b. Дисперсия: величина дисперсии пикселя в каждом макроблоке может сравниваться с заданным зависимым-от-данных порогом для определения пространственной активности. Альтернативно, блоки могут быть классифицированы на основе показателей среднего значения и дисперсии, в этом случае для различных диапазонов средних значений могут использоваться различные пороги.
c. Дисперсия и Среднее значение Переменного Размера/Формы Блока: показатели среднего значения и дисперсии могут быть расширены на переменные размеры блока и на объекты, охватывающие области произвольного размера (и формы) в изображении или кадре.
d. Степень Контрастности: отношение: (i) стандартного отклонения блока, области или объекта к (ii) среднему значению области или окрестности блоков (например, блок 3x3), может использоваться для обеспечения показателя контрастности внутри окрестности элементов. Дополнительно степень контрастности может быть взвешена на основе величин средних значений. Более конкретно, степень контрастности данного блока или макроблока выражается как сумма разностей среднего значения текущего блока и среднего значения окрестных блоков (8 окрестных блоков в окрестности 3x3 из 9 блоков), нормализованная по среднему значению всех блоков в окрестности. Этот показатель обеспечивает существенную степень детализации в пространственной информации текстуры, которая преобразуется в пространственную активность и успешно использовалась как алгоритм разделения блоков, для дискретного косинусного преобразования блока переменного размера (также известный как ABSDCT, АРБДКП).
e. Поле Вектора Движения: В предсказанных кадрах (например, P или B кадрах) векторы движения макроблоков (и векторы движения подблоков) предсказанного кадра могут быть отображены для формирования поля вектора движения. Такие поля используются для обработки вектора движения для сглаживания выделяющихся векторов движения и, в основном, указывают: (i) полное движение в последовательности; (ii) активность движения различных объектов в кадрах (например, на основе интенсивности, плотности и/или величины поля вектора движения); и (iii) количество движущихся объектов в кадре. Уровень активности движения также обеспечивает индикацию относительно пространственной активности определенной последовательности вследствие потребности в обнаружении процессом обнаружения активности движения обоих объектов (для которых требуется обнаружить контуры) и изменчивости (что требует обнаружения различий между областями) по последовательности.
f. Обнаружение Контура: алгоритмы обнаружения контура при обработке изображения обычно применяют фильтр верхней частоты, такой как фильтр Sobel, для пикселей в изображении по определенному окну (например, области 3x3 или 5x5) и затем фильтрованные выходные данные сравнивают с порогом для определения существования контура. Карта обнаруженных контуров и количество контуров обеспечивают индикацию пространственной активности.
g. Как известно специалистам в области обработки изображения, существуют другие различные индикаторы пространственной активности, и любой такой показатель может применяться для процесса, который изображен на фиг.2.
Временная Активность
На этапе 212 модулем 106 классификации содержимого определяется временная активность. Количество движения в последовательности видеоизображения определяет величину временной корреляции и избыточности в кадрах последовательности видеоизображения, которые могут использоваться для сжатия последовательности видеоизображения. В одном варианте осуществления квантификация временной активности определяется посредством одного из следующих подходов:
a. Поле Вектора Движения: этот показатель использует подход, идентичный описанному выше при описании создания модулем 210 пространственной активности поля вектора движения для интерполированного кадра и затем анализа поля вектора движения.
b. Размер Предсказанного Кадра: Размер предсказанного кадра является индикатором его энтропии, потому что для предсказанного кадра размер предсказанного кадра зависит от количества битов, требуемых для кодирования векторов движения и остатков предсказания. В основном, чем больше количество движения (или временной активности), тем большая энтропия будет кодирована в предсказанных кадрах.
c. Дескриптор MPEG-7: дескриптор активности движения (MAD, ДАД) MPEG-7 пытается "фиксировать" человеческое восприятие " интенсивности действия " или "темпа" последовательности видеоизображения. Например, момент выигрышного гола при игре в футбол должен восприниматься большинством зрителей как последовательность "быстрых действий". Для сравнения, последовательность "голова и плечи" говорящего человека, конечно, должна рассматриваться теми же самыми зрителями как последовательность "медленных действий". Было обнаружено, что MAD MPEG-7 точно фиксирует весь диапазон интенсивности действия в обычном видеоизображении. Он использует квантованное стандартное отклонение векторов движения для классификации сегментов видеоизображения на пять классов в пределах от очень низкой до очень высокой интенсивности.
d. Активность Движения: дескриптор активности движения направлен на проблему эффективного анализа содержимого, индексации, просмотра и запроса активности движения видеоданных, которая определяется как количество движения в последовательности видеоизображения, и был включен как дескриптор в стандарте MPEG-7. Предложенный способ пытается автоматически измерять активность движения с использованием накопления разностей квантованных пикселей по кадрам данного сегмента видеоизображения. В результате накопленное движение каждой сцены представляют в виде двумерной матрицы. Также обеспечен масштабируемый способ для сравнения этих матриц и формирования дескрипторов MAD, которые эффективно представляют различные движения каждой сцены. Степени величины, а также местоположения движения вычисляются и представляются.
Все вышеперечисленные показатели пространственной и временной активности являются только примерами. В других вариантах осуществлениях любой и все такие алгоритмы могут использоваться с простым выбором порога для оценки и классификации уровня пространственной и временной активности в кадре и между кадрами.
Пространственно-временная активность
На этапе 214 определяют количественно абсолютную пространственную активность между соседними кадрами или набором кадров, таким как GOP, и дисперсию абсолютной пространственной активности по кадрам, используя простые разности (различия) кадров и/или статистику более высокого порядка, такую как дисперсия и эксцесс для определения корреляции между кадрами.
Альтернативно, принципы степени контрастности расширяются на временную область для обеспечения показателей временно-пространственной активности.
Определение Избыточности
Показатели пространственной активности, определенные на этапе 210 совместно с показателями временной активности или активности движения, определенными на этапе 212, используют для определения полной пространственно-временной активности для данной последовательности. Например, при гибридном сжатии видеоизображения первый кадр в последовательности (например, первый кадр после произвольной точки доступа или изменения сцены) кодируют, обычно, независимо от любого временного предсказания. Этот первый кадр определен как I-кадр. Последующие кадры в последовательности предпочтительно предсказываются из I или другого предыдущего кадра(ов), которые, как ранее отмечено, определены как P или B кадры. В одном варианте осуществления избыточность между опорным кадром и предсказанным кадром в исходной последовательности видеоизображения может быть определена с использованием перечисленных ниже подходов:
a. Корреляция: Для определения избыточности может быть выполнена корреляция двух элементов: (1) пикселей (i) одного или большего количества макроблоков; (ii) других основных элементов кадра; или (iii) полностью предсказанного кадра, относительно (2) эквивалентно соотнесенных элементов в опорном кадре. В вычислительном отношении этот подход обработки является дорогостоящей операцией, но точно оценивает избыточность.
b. Вектор Движения: Между опорным кадром и предсказанным кадром сравнивают величину и корреляцию векторов движения в окрестностях макроблоков и по полному кадру. Затем может применяться сглаживание векторов движения или другая обработка вектора движения для определения дисперсии вектора движения или для классификации полей движения на основе активности.
c. Значимость: каждый макроблок или окно макроблоков затем оценивают на основе уровня избыточности как низкий, средний или высокий. Блоки низкой избыточности кодируются как B-кадры с использованием двунаправленного предсказания, блоки средней избыточности обеспечивают в декодер один элемент или большее количество элементов их следующей информации: вектор движения для усовершенствования результатов обработки векторов движения в декодере FRUC, информацию остатка для усовершенствования различия в текстуре, информацию сдвига яркости в форме смещений DC и т.д. Блоками высокой избыточности являются те, которые хорошо коррелируют с соответствующими блоками в интерполированном кадре, и их пропускают.
Все описанные выше части информации относительно макроблока или окна, 3x3, макроблоков определены как способствующая информация.
Выбор Кадров для FRUC
После того как была определена величина избыточности в исходном видеоизображении, как описано выше, оно классифицируется на основе содержимого. В одном варианте осуществления используется ряд выборочных исходных данных для установления параметров классификации для определенного приложения, и таким образом система 100 кодирования может быть настроена для определенного содержимого, которое, ожидается, должно поддерживаться данной реализацией. Механизм классификации использует размер предсказанных кадров при нормальном гибридном кодировании. В одном варианте осуществления чем меньше размер и больше коэффициент избыточности предсказанного кадра, тем выше вероятность того, что интерполированный кадр будет пропущен при процессе кодирования. Соответственно, эти кадры не будут включены в передаваемую последовательность видеоизображения, но, следовательно, будут преобразованы с повышением (частоты) при процессе декодирования/FRUC.
Описанный выше механизм применяют к кодированию в один проход и кодированию низкой сложности в два прохода, как изображено на фиг.3, которые исполняют для таких приложений, как приложения мобильной (записывающей) видеокамеры; где время ожидания и возможности процессора ограничивают возможностью выполнения устройством полного или частичного кодирования первого прохода сопровождающегося полным кодированием второго прохода. Однако когда сложность кодера не существенна, как при осуществлениях Интернет или беспроводного мультимедийного сервера, нормальное гибридное кодирование может быть выполнено в первом проходе и затем могут быть определены пространственная активность, временная активность, временно-пространственная активность во втором проходе, как иллюстрировано на фиг.4. В одном варианте осуществления, основанном на размерах предсказанных кадров последовательности видеоизображения (например, размерах P-кадров и B-кадров в последовательности видеоизображения) и характеристиках кадра (например, доли битов для Векторов Движения относительно данных коэффициента), низкая стоимость (например, кадры низкой стоимости передачи) может быть пропущена в кодере 104 и восстановлена в декодере 154 с использованием декодированных опорных кадров. В другом варианте осуществления малая энтропия может быть кодирована кодером 104 и передана в декодер 154, чтобы "содействовать" процессу преобразования с повышением (частоты кадров) в декодере 154, как описано ниже. Хотя задача содействия, прежде всего, состоит в увеличении качества восстановленного видеоизображения, это может также использоваться для снижения вычислительной нагрузки на декодер 154, способствуя созданию правильных решений механизмом 158 FRUC в декодере 154 при процессе принятия решения по режиму.
Кодирование энтропии между исходными кадрами и кадрами, интерполированными FRUC
Как здесь отмечено, одно из первичных преимуществ EA-FRUC состоит в том, что в кодере является доступным исходный кадр для кадра, который должен быть интерполирован. Следовательно, решения FRUC могут быть направлены на минимизацию ошибки между исходным и восстановленным кадром. Например, описанные здесь подходы обработки, предлагаемые FRUC, зависят от обработки вектора движения, идентификации и назначения содержимого. В этих процессах интерполяция смычек и перекрывающихся областей является сложной задачей. Однако при использовании статистического кодирования модулем 108 определения энтропии на фиг.1 такие области идентифицируют и в декодер 154 передают соответствующую дополнительную информацию, чтобы способствовать процессу FRUC. Другие приложения такого статистического кодирования имеются в приложениях кодирования масштабируемого видеоизображения процессов FRUC, как описано в находящейся в процессе одновременного рассмотрения заявке на патент за номером No 11/173.121, называемой "Method and Apparatus for Using Frame Rate up Conversion Techniques in Scalable Video Coding”. В одном варианте осуществления модуль определения энтропии 108 может использовать следующие показатели для статистического кодирования:
1. Данные Различия Пикселей: остаток для пикселя между кадром, восстановленным FRUC, и исходным кадром преобразуют, квантуют и статистически кодируют для передачи. Этот подход прост. Однако любой остаток, оставшийся от процесса кодирования, содержит высокую энергию и не сжимается хорошо.
2. Выбор Порога: Пороги основаны на показателях активности (пространственной и временной), или на маскировании и чувствительности системы визуализации для человека, вместо того, чтобы основываться на SAD. Система визуализации для человека (HVS, СВЧ) является эмпирической моделью, которая описывает чувствительность человеческого глаза к различным визуальным эффектам, таким как цвет, яркость, контраст и т.д., SAD, как известно, минимизирует ошибку средне-квадратичного показателя и предпочтительнее, чем качественный визуальный показатель.
3. Вектор Движения: Правильные данные вектора движения для областей с большими отличиями от исходного кадра кодируют и передают. Этот вектор движения оценивают с использованием исходных кадров и восстановленных опорных кадров в причинно-следственном и не причинно-следственном режимах. Причинно-следственное кодирование является прогнозирующим кодированием, которое использует информацию, доступную на момент кодирования/декодирования (например, информацию из предыдущих макроблоков в виде порядка декодирования), при этом не причинно-следственное кодирование является интерполяционным кодированием, которое использует информацию интерполяции (например, информацию из следующего макроблока).
4. Кодирование B-Кадра: В находящейся в процессе одновременной обработки заявке на патент за номером [040442] называемой "Method and Apparatus for Using Frame Rate up Conversion Techniques in Scalable Video Coding" описано использование кадра, интерполированного-FRUC, в качестве одного из опорных кадров при предсказании B-кадра. Этот подход может обеспечивать в среднем сокращение на 30% в данных текстуры, которые должны быть переданы.
5. Режим, на котором основано: Вышеупомянутый подход кодирования B-кадра определяет использование интерполированного кадра в качестве опорного кадра при кодировании B-кадров. Решение использовать интерполированный кадр может быть основано на скорости передачи (то есть для минимизации скорости передачи битов для заданного искажения), искажении (то есть для минимизации искажения для заданной целевой скорости передачи битов) и/или качестве (то есть максимизации основанной на HVS или среднеквадратичной ошибки), показателе для измерения перцепционных показателей качества на основе качества для заданной целевой скорости передачи битов.
Когда была определена кодируемая энтропия, в одном варианте осуществления для кодирования данных могут использоваться обычно используемые коды переменной длины, такие как коды Хаффмена (Huffman) или арифметические коды. Дополнительно, для данных, распределенных по Лапласу, таких как остатки, могут применяться коды Golomb-Rice или Exp-Golomb.
Формирование Потока Битов
Стандарты кодирования видеоизображения определяют поток битов, который должен быть декодирован видеодекодером, соответствующим любым стандартам. Однако функционирование кодера является "открытым" в том смысле, что может использоваться любая технология кодера, пока кодированный поток битов совместим с соответствующим стандартам декодером в процессе восстановления. В расширяемых приложениях, где возможности декодера неизвестны, кодером должен быть сформирован соответствующий стандартам поток битов, и выполнение направлено на соответствующее декодирование и оптимизировано для него. В одном варианте осуществления модуль 112 формирования потока битов системы 100 кодирования управляет функционированием соответствующего стандартам генератора 114 потока битов, соответствующего стандартам генератора 116 потока битов и частного генератора 118 потока битов. Функционирование каждого из этих генераторов будет объясняться ниже.
В стандартах кодирования видеоизображения определены профили и уровни, так как они обеспечивают большой набор инструментальных средств для кодирования аудиовизуальных объектов и для обеспечения возможности эффективных реализаций стандартов, подмножества наборов инструментальных средств были идентифицированы для использования в определенных приложениях. Указанные подмножества, называемые 'Профилями', ограничивают количество инструментальных средств в наборе инструментальных средств, который должен реализовать декодер. Дополнительно, для каждого из этих Профилей, также установлены один или большее количество уровней сложности, ограничивая вычислительную сложность.
Стандарты и Соответствующие Профили
В целях соответствующих стандарту декодеров в приемниках для декодирования переданного потока, как в мультимедиа радиосвязи, эти видеодекодеры соответствуют определенным профилям и уровням. Хотя алгоритмы FRUC были обеспечены в различных стандартах как дополнения, они обычно не являются частью стандартного профиля. Соответственно, предпочтительно, чтобы для согласования с EA-FRUC не была сделана никакая модификация в синтаксисе и/или семантике потока битов.
Для соответствия существующим стандартам система 100 кодирования использует синтаксис, соответствующий стандартам (соответствующий профиль), который может использоваться для передачи "способствующей" информации. В одном варианте осуществления стандартный синтаксис может использоваться соответствующим стандартам генератором 114 для осуществления процесса EA-FRUC в следующих подходах:
a. Синтаксис B-кадра: Когда B-кадры не приняты, или потому что они являются частью уровня расширения, и был принят только основной уровень, или полный B-Кадр не отправлен, с большинством избыточных макроблоков, являющихся макроблоками режима пропуска, посредством нормального кодирования B-кадра отправляют только способствующую информацию.
b. Избыточные Секции или Изображения: для этого синтаксиса обеспечен H.264. В случае, где определенные кадры избыточны, не должны отправляться полная секция или кадр. С использованием данного синтаксиса отправляют часть секции (небольшое количество значимых макроблоков) или кадра (небольшое количество секций, определенных как значимые). Эта особенность является частью всех профилей, определенных в H.264.
c. Дополнительная Информация Расширения (SEI, ДИР): Определенные поля SEI являются частью профилей H.264, которые могут использоваться для передачи "способствующей" информации.
Соответствие Стандартам, Несоответствие Профилям
Наборы инструментальных средств во многих стандартах кодирования видеоизображения содержат синтаксис и семантику для переноса частных данных, которые не соответствуют профилям, определенным в стандарте (то есть инструментальные средства обеспечивают для информативных обращений, в противоположность нормативным обращениям). Интерпретация проанализированных частных данных может быть специфичной для устройств адресата, в закрытой системе связи эта специфическая особенность может использоваться для улучшения эффективности. В одном таком приложении указанной особенности, в одном варианте осуществления изобретения, не соответствующий стандарту генератор 116 потока битов использует эти не соответствующие стандарту частные данные для обеспечения "способствующей" информации для FRUC. Использование частной информации в системе закрытого цикла обеспечивает больше гибкости при передаче "способствующей" информации, так как модификации декодера, требуемые для ее использования, минимальны и могут быть обеспечены через простые "сменные модули" или "дополнительные модули":
a. Определенные Поля SEI: поля, которые не являются частью профилей в H.264, могут использоваться для передачи "способствующей" информации.
b. Данные Пользователя: MPEG-2 и MPEG-4 предлагают синтаксис для переноса частных данных, который может использоваться для передачи "вспомогательной" информации.
Частное (Использование)
Не соответствующий стандартам частный кодек, обеспеченный в частном генераторе 118 потока битов, увеличивает гибкость обеспеченного здесь подхода EA-FRUC. Более конкретно, любая и все технологии сжатия видеоизображения (например, основанные на преобразованиях, таких как DCT, целых чисел, Адамара, преобразованиях с разложением на волны малой длины, объектном, оптического потока или морфинга) могут применять обобщенный алгоритм интерполяции видеоизображения, применяемый для достижения уменьшения скорости передачи битов и увеличения эффективности сжатия, как описано выше для EA- FRUC. Преимущества использования частного кодека заключаются в том, что частная сущность генератора 118 потока битов обеспечивает чрезвычайно гибкую платформу для использования всех алгоритмов FRUC и EA-FRUC. Имеет место большое сокращение дополнительной служебной информации потока битов, вносимой стандартами (например, заголовки Макроблока в H.264 имеют тенденцию занимать 25% полной скорости передачи битов), которая может быть уменьшена и/или устранена. Теперь также возможно объединенное кодирование источника-канала, что является высоко выгодным для мультимедийной связи через ошибочные телефонные каналы. Например, частный подход, который использует объединение вероятностей распределений и характеристик источника и канала передачи данных, обеспечивает системе 100 кодирования возможность задания приоритетов определенному потоку и добавить необходимые параметры и данные для постепенного избавления от ошибок.
Маскирование Ошибок для EA-FRUC и FRUC
Возрастающая популярность беспроводного мультимедиа требует, чтобы передаваемое видеоизображение было упругим по отношению к ошибкам и интеллектуальных видеодекодеров, которые могут маскировать бит, пакет и пакетные ошибки. Сжатие видеоизображения удаляет избыточность и увеличивает энтропию в сжатом потоке. Однако как ни странно, удаление избыточной информации и увеличение энтропии настолько существенно - вплоть до того, что потеря отдельного бита, байта или пакета данных может воздействовать на качество восстановленного видеоизображения; в пределах от потери одного блока до потери многих макроблоков или секций, распространяясь по текущей GOP до следующего I-кадра или кадра Мгновенной Регенерации Декодирования (IDR, МРД), которые приняты правильно. IDR является терминологией H.264, которая установлена для Мгновенной Регенерации Декодирования. Изображение IDR является абсолютной точкой регенерации (элементом доступа) в потоке битов, так что вне элемента доступа нет никакой прогнозирующей информации, необходимой для декодирования изображения IDR. Возможности возникновения ошибок имеют серьезные последствия, и маскирование ошибки является необходимым в таких приложениях, как видеотелефония, видеоконференция и видеоэлектронная почта). Ошибки также воздействуют на время ожидания в приложениях разговора. К счастью, как предусмотрено в различных видах FRUC для маскирования ошибки, может использоваться интерполяция кадра, секции, макроблока и блока и алгоритмы, способствующие интерполяции (например, назначение вектора движения и обработка вектора движения).
Фиг.5 изображает блок-схему терминала 502x доступа и точки 504x доступа, в которых могут соответственно размещаться декодер 154 и кодер 104 в приложении системы 100 EA-FRUC для системы радиосвязи. Для обратной линии связи, в терминале 502x доступа, процессор 514 данных передачи (TX) принимает данные трафика из буфера 512 данных, обрабатывает (например, кодирует, перемежает и отображает символы) каждый пакет данных на основе выбранной схемы кодирования модуляции и обеспечивает символы данных. Символ данных является символом модуляции для данных, и пилот-символ является символом модуляции для пилот-сигнала (который известен априорно). Модулятор 516 принимает символы данных, пилот-символы и возможно сигнализацию для обратной линии связи, выполняет (например, OFDM) модуляцию и/или другую обработку, как определено системой, и обеспечивает выходной поток чипов (элементарных сигналов). Модуль 518 передатчика (TMTR) обрабатывает (например, преобразует в аналоговый, фильтрует, усиливает и преобразует с повышением частоты) выходной поток чипов и формирует модулированный сигнал, который передается из антенны 520.
В точке 504x доступа модулированные сигналы, переданные терминалом 502x доступа и другими терминалами, соединенными с точкой 504x доступа, принимаются антенной 552. Модуль 554 приемника (RCVR) обрабатывает (например, кондиционирует (приводит в соответствие с требуемыми условиями) и оцифровывает) принятый сигнал из антенны 552 и обеспечивает принятые выборки. Демодулятор (Demod) 556 обрабатывает (например, демодулирует и обнаруживает) принятые выборки и обеспечивает обнаруженные символы данных, которые являются шумовой оценкой символов данных, переданных терминалами в точку 504x доступа. Процессор 558 данных приема (RX) обрабатывает (например, обратно отображает символы, осуществляет обратное перемежение и декодирует символы) обнаруженные символы данных для каждого терминала и обеспечивает декодированные данные для этого терминала.
Для прямой линии связи в точке 504x доступа данные трафика обрабатываются процессором 560 данных TX для формирования символов данных. Модулятор 562 принимает символы данных, пилот-символы и сигнализацию для прямой линии связи, выполняет (например, OFDM) модуляцию и/или другую соответствующую обработку и обеспечивает выходной поток чипов, который дополнительно кондиционируется модулем 564 передатчика и передается из антенны 552. Сигнализация прямой линии связи может содержать команды управления мощностью, сформированные контроллером 570 для всех терминалов, осуществляющих передачу, на обратной линии связи в точку 504x доступа. В терминале 502x доступа модулированный сигнал, переданный точкой 504x доступа, принимается антенной 520, кондиционируется и оцифровывается модулем 522 приемника и обрабатывается демодулятором 524 для получения обнаруженных символов данных. Процессор 1026 данных RX обрабатывает обнаруженные символы данных и обеспечивает декодированные данные для терминала и сигнализацию прямой линии связи. Контроллер 530 принимает команды управления мощностью и управляет передачей данных и мощностью передачи на обратной линии связи в точку 504x доступа. Контроллеры 530 и 570 управляют функционированием терминала 502x доступа и точки 504x доступа, соответственно. Модули 532 и 572 памяти хранят коды программы и данные, используемые контроллерами 530 и 570, соответственно.
Описанный здесь "терминал доступа" относится к устройству, обеспечивающему речевую связность и/или связность данных для пользователя. Терминал доступа может быть соединен с вычислительным устройством, таким как портативный компьютер или настольный компьютер, или он может быть самостоятельным устройством, таким как персональный цифровой секретарь. Терминал доступа может быть также определен как модуль абонента, мобильная станция, мобильное устройство, удаленная станция, удаленный терминал, пользовательский терминал, пользовательский агент или пользовательское оборудование. Терминалом доступа может быть также модуль абонента, беспроводное устройство, сотовый телефон, телефон PCT, радиотелефон, телефонный аппарат протокола инициации сеанса (SIP, ПИС), станции беспроводной местной линии (WLL, БМЛ), персональный цифровой секретарь (PDA), карманное устройство, имеющее возможность беспроводного соединения, или другое устройство обработки, соединенное с беспроводным модемом.
Описанная здесь "точка доступа " относится к устройству в сети доступа, которое осуществляет связь с терминалами доступа по радиоинтерфейсу, через один или большее количество секторов. Точка доступа действует как маршрутизатор между терминалом доступа и остальной частью сети доступа, которая может содержать сеть IP, посредством преобразования принятых кадров радиоинтерфейса в пакеты IP. Также точка доступа координирует управление атрибутами для радиоинтерфейса.
Раскрытые варианты осуществления могут применяться к любой из или к комбинации следующих технологий: системы Многостанционного Доступа с Кодовым Разделением Каналов (CDMA, МДКР), CDMA (MC-CDMA) с несколькими несущими, Широкополосной CDMA (W-CDMA), Высокоскоростной Доступ Пакетов Обратной Линии Связи (HSDPA), системы Многостанционного Доступа с Временным Разделением Каналов (TDMA, МДВР), системы Многостанционного Доступа с Частотным Разделением Каналов (FDMA, МДРЧ) и системы Многостанционного Доступа с Ортогональным Частотным Разделением Сигналов (OFDMA, МДОЧРС).
Следует отметить, что описанные здесь способы могут быть осуществлены на ряде аппаратных средств связи, процессоров и систем, известных для специалистов в данной области техники. Например, как здесь описано, общим требованием для работы клиента является то, что клиент имеет дисплей для отображения содержимого и информации, процессор для управления работой клиента и память для хранения данных и программ, связанных с работой клиента. В одном варианте осуществления клиентом является сотовый телефон. В другом варианте осуществления клиентом является карманный компьютер, имеющий возможности осуществления связи. Еще в одном варианте осуществления клиентом является персональный компьютер, имеющий возможности осуществления связи.
Различные иллюстративные логики, логические блоки, модули и схемы, описанные в связи с раскрытыми здесь вариантами осуществления, могут быть осуществлены или выполнены с универсальным процессором, цифровым процессором сигналов (DSP, ЦПС), специализированной интегральной схемой (ASIC, ПОИМ), программируемой вентильной матрицей (FPGA, ПВМ) или другими программируемым логическим устройством, дискретным логическим элементом или логическим транзистором, дискретными компонентами аппаратных средств или любой их комбинацией, предназначенной для выполнения описанных здесь функций. Универсальным процессором может быть микропроцессор, но альтернативно, процессором может быть любой обычный процессор, контроллер, микроконтроллер или конечный автомат. Также процессор может быть осуществлен как комбинация вычислительных устройств, например комбинация DSP и микропроцессора, нескольких микропроцессоров, одного или большего количества микропроцессоров совместно с ядром DSP или любой другой такой конфигурацией.
Этапы способа или алгоритма, описанные совместно с раскрытыми здесь вариантами осуществления, могут быть воплощены непосредственно в аппаратных средствах, в программном модуле, выполняемом процессором или в их комбинации. Программный модуль может постоянно храниться в памяти RAM, флэш-памяти, памяти ROM, памяти EPROM, памяти EEPROM, регистрах, на жестком диске, съемном диске, CD-ROM, или носителе информации любого другого вида, известного в данной области техники. Возможный носитель информации соединен с процессором так, что процессор может считывать информацию с носителя информации и записывать информацию на него. Альтернативно, носитель информации может быть объединен с процессором. Процессор и носитель информации могут постоянно находиться в ASIC. ASIC может постоянно находиться в пользовательском терминале. Альтернативно, процессор и носитель информации могут постоянно находиться в виде дискретных компонентов в пользовательском терминале.
Описание раскрытых вариантов осуществления обеспечено для предоставления возможности любому человеку, являющемуся специалистом в данной области техники, сделать или использовать различные варианты осуществления. Различные модификации этих вариантов осуществления могут быть очевидны для специалистов в данной области техники, и родовые принципы, определенные здесь, могут применяться к другим вариантам осуществления, например в службе мгновенной передачи сообщений или любых общих приложениях передачи данных посредством радиосвязи, не отступая от сущности или объема изобретения. Соответственно, описание предназначено для предоставления в наиболее широком объеме, совместимом с принципами и новыми признаками, раскрытыми здесь, а не для ограничения показанными здесь вариантами осуществления. Слово "возможный" используется здесь исключительно в значении "служащий в качестве примера, возможного варианта, или иллюстрации". Любой вариант осуществления, описанный здесь как "возможный", не должен обязательно рассматриваться как предпочтительный или имеющий преимущество по отношению к другим вариантам осуществления.