ОПЕРАЦИЯ ПО РАСПАКОВКЕ БЛОКОВ ИНТЕРПОЛИРОВАННЫХ КАДРОВ В ПРИЛОЖЕНИИ ПО ПОВЫШАЮЩЕМУ ПРЕОБРАЗОВАНИЮ СКОРОСТИ ПЕРЕДАЧИ КАДРОВ
UNPACKING OPERATION FOR BLOCKS OF INTERPOLATED FRAMES IN APPLICATION ON UPCONVERSION OF FRAME TRANSMISSION RATE

ПРИОРИТЕТ ЗАЯВКИ ПО §119 U.S.C.
Настоящая заявка на патент испрашивает приоритет за предварительной заявкой №60/660,909, зарегистрированной 10 марта, 2005 г. и отнесенной к ее патентообладателю, и, таким образом, явно включенной в данный документ по ссылке.
Область техники, к которой относится изобретение
Изобретение относится к сжатию данных в общем и к понижению уровня шума обработанного видео в частности.
Уровень техники
Сжатие, основанное на блоках, может сопровождаться искажениями между границами блоков, особенно, если связь между границами блоков не рассматривается.
Масштабируемый видеокод является достижением, широко используемым в приложениях с низкой битовой скоростью, особенно в гетерогенных сетях с изменяющимися полосами пропускания (например, Интернет и беспроводной поток). Масштабируемое видеокодирование дает возможность передавать кодированное видео как множественные уровни - типично, базовый уровень содержит наиболее значимую информацию и занимает наименьшую полосу пропускания (наименьшая битовая скорость для видео) и улучшенные уровни предлагают усовершенствования по сравнению с базовым уровнем. Наиболее масштабируемые методики сжатия видео используют обстоятельство, что пользовательская визуальная система является менее восприимчивой к шуму (из-за сжатия) в областях с высокой частотой изображения, чем более плоские участки с низкой частотой. Отсюда базовый уровень преимущественно содержит низкочастотную информацию, и высокочастотная информация передается в улучшенных уровнях. Когда полосы пропускания сети не хватает, существует более высокая вероятность приема только базового уровня кодированного видео (нет улучшенных уровней).
Если информация видео улучшенного уровня или базового уровня потеряна из-за условий канала или удалена, чтобы сохранить заряд аккумулятора, любые из нескольких типов методик интерполяции могут использоваться для замещения отсутствующих данных. Например, если кадр уровня улучшения потерян, тогда другой кадр, представляющий данные, например, кадр базового уровня, может использоваться для интерполяции данных для замещения отсутствующих данных улучшенного уровня. Интерполяция может содержать данные расчета компенсированного интерполирующего перемещения. Видеоданные замещения могут обычно подвергаться искажениям из-за несовершенной интерполяции.
Как результат, существует необходимость в алгоритмах последующей обработки для понижения шума интерполированных данных, так чтобы уменьшить и/или устранить искажения интерполяции.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯ
Предлагается способ обработки видеоданных. Способ включает в себя интерполированные видеоданные и понижение шума интерполированных видеоданных. С одной стороны, интерполированные видеоданные содержат первый и второй блоки и способ включает в себя определение значения граничной силы изображения (также упоминаемого ниже как значение прочности границ), ассоциативно связанного с первым и вторым блоками и понижение шума первого и второго блоков использованием определяемого значения прочности границ.
Предлагается процессор для обработки видеоданных. Процессор конфигурируется для интерполяции видеоданных и для понижения шума интерполированных видеоданных. С одной стороны, интерполированные видеоданные включают в себя первый и второй блоки и процессор конфигурируется для определения значения прочности границ, ассоциативно связанного с первым и вторым блоками и понижение шума первого и второго блоков с помощью использования определяемого значения прочности границ.
Предлагается устройство для обработки видеоданных. Устройство включает в себя интерполятор для интерполяции видеоданных и блок понижения шума для понижения шума интерполированных видеоданных. С одной стороны, интерполированные видеоданные содержат первый и второй блоки, и устройство включает в себя блок определения, чтобы определять значение прочности границ, ассоциативно связанного с первым и вторым блоками, и блок понижения шума понижает шум первого и второго блоков с помощью использования определяемого значения прочности границ.
Предлагается устройство для обработки видеоданных. Устройство включает в себя средство для интерполирования данных и средство для понижения шума интерполированных видеоданных. С одной стороны, интерполированные видеоданные включают в себя первый и второй блоки и устройство включает в себя средство для определения значения прочности границ, ассоциативно связанного с первым и вторым блоками и средство для понижения шума первого и второго блоков с помощью использования определяемого значения прочности границ.
Предлагается машиночитаемый носитель, который реализует способ обработки видеоданных. Способ включает в себя интерполирование видеоданных и понижение шума интерполируемых видеоданных. С одной стороны, интерполированные видеоданные содержат первый и второй блоки и способ включает определение значения прочности границ, ассоциативно связанного с первым и вторым блоками, и понижение шума первого и второго блоков, используя определяемое значение прочности границ.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг.1 является иллюстрацией примера системы видеодекодера для декодирования и отображения потокового видео.
Фиг.2 является блок-схемой последовательности операций способа, которая иллюстрирует пример обработки для выполнения понижения шума интерполированных видеоданных, которые необходимо отразить на устройстве отображения.
Фиг.3А показывает пример интерполяции вектора движения, используемой в некоторых вариантах осуществления обработки на фиг.1.
Фиг.3В показывает пример пространственной интерполяции, используемой в некоторых вариантах осуществления обработки на фиг.1.
Фиг.4 является иллюстрацией пикселей, смежных с вертикальными и горизонтальными границами блоков 4×4.
Фиг.5А, 5В и 5С иллюстрируют положения ссылочных (контрольных) блоков, используемые в определении значений прочности границ в некоторых вариантах осуществления обработки на фиг.1.
Фиг.6А и 6В являются блок-схемами последовательности операций способа, которые иллюстрируют примеры обработок для определения значений прочности границ.
Фиг.7 иллюстрирует пример способа для обработки видеоданных.
Фиг.8 иллюстрирует примерное устройство для обработки видеоданных.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯ
Описываются способ и устройство для улучшения качества интерполируемого видео, создаваемого из развернутых видеоданных, которые выполняют понижение шума интерполированных видеоданных. Фильтр нижних частот используется для фильтрования интерполированных видеоданных. В одном примере уровень фильтрования фильтра нижних частот определяется на основе значения прочности границ, определяемого для интерполируемых видеоданных и прилегающих видеоданных (интерполируемых и/или не интерполируемых). В частности, значение прочности определяется на основе близости контрольных видеоданных для интерполируемых видеоданных и прилегающих видеоданных. В последующем описании даны конкретные подробности для предоставления полного понимания вариантов осуществления. Однако обычный специалист в данной области техники может понять, что варианты осуществления могут быть применены без этих конкретных подробностей. Например, электрические компоненты могут быть показаны на блок-схемах для того, чтобы не скрывать варианты осуществления в ненужных подробностях. В других примерах подобные компоненты, другие структуры и методики могут быть показаны подробно, чтобы дополнительно пояснять варианты осуществления. Опытным специалистам также понятно, что электрические компоненты, которые показаны на отдельных блоках, могут быть расположены по-другому и/или объединены в один компонент.
Следует также заметить, что некоторые варианты осуществления могут быть описаны как процесс, который изображен на блок-схеме последовательности операций способа, блок-схеме, структурной диаграмме или блок-схеме. Хотя блок-схема последовательности операций способа может описывать операции как последовательный процесс, многие из операций могут выполняться параллельно или одновременно, и процесс может повторяться. Кроме того, порядок операций может быть переупорядочен. Процесс прерывается, когда его операции завершены. Процесс может соответствовать способу, функции, процедуре, подпроцедуре, подпрограмме и т.д. Когда процесс соответствует функции, его прерывание соответствует возвращению функции к функции вызова или главной функции.
Фиг.1 является блок-схемой системы видеодекодера для декодирования потоковых данных. Система 100 включает в себя устройство 110 декодера, сеть 150, внешнее запоминающее устройство 185 и устройство 190 отображения. Устройство 110 декодера включает в себя видеоинтерполятор 155, блок 160 понижения видеошума, блок 165 определения прочности границ, блок 170 определения функции границы, компонент 175 запоминающего устройства и процессор 180. Процессор 180 в целом управляет общим функционированием примерного устройства 110 декодера. Один или более элементов могут быть добавлены, переупорядочены или объединены в устройстве 110 декодера. Например, процессор 180 может являться внешним по отношению к устройству 110 декодера.
Фиг.2 является блок-схемой последовательности операций способа, которая иллюстрирует пример обработки для выполнения понижения шума интерполируемых видеоданных, которые необходимо отобразить на устройстве отображения. Со ссылкой на Фиг.1 и 2 обработка 300 начинается на этапе 305 с приема кодированных видеоданных. Процессор 180 может принимать кодированные видеоданные (например, MPEG-4 или сжатые видеоданные Н.264) от сети 150 или источника изображения, например, компонента 175 внутреннего запоминающего устройства или внешнего запоминающего устройства 185. Кодированные видеоданные могут являться сжатыми видеоданными MPEG-4 или Н.264. Отсюда, компонент 175 внутреннего запоминающего устройства и/или внешнее запоминающее устройство 185 может являться цифровым видеодиском (DVD) или накопителем на жестком диске, который содержит кодированные видеоданные.
Сеть 150 может являться частью проводной системы, например, телефона, кабеля и оптического волокна или беспроводной системы. В случае беспроводных систем связи сеть 150 может содержать, например, часть системы связи с кодовым разделением каналов с многостанционным доступом (CDMA или CDMA2000) или альтернативно, система может являться системой многостанционного доступа с частотным разделением (FDMA), системой с ортогональным многостанционным доступом с частотным разделением (OFDMA), системой многостанционного доступа с временным разделением каналов (TDMA), например, GSM/GPRS (система пакетной радиосвязи общего пользования)/EDGE(улучшенный GSM для передачи данных) или технологией мобильного телефона TETRA (наземная радиосвязь с автоматическим перераспределением каналов) для обслуживающей отрасли, широкополосный CDMA (WCDMA), системы с высокой скоростью (1xEV-DO или 1xEV-DO эталонная многоабонентская доставка сообщений) или в целом любой системой беспроводной связи, использующей сочетания методик. Обработка 300 продолжается на этапе 310 с декодированием принятых видеоданных, в котором по меньшей мере некоторых из принятых видеоданных могут быть декодированы и использоваться как контрольные данные для создания интерполируемых видеоданных, как будет обсуждаться ниже. В одном примере декодированные видеоданные содержат текстовую информацию, например, значения яркости и постоянной уровня цвета пикселей. Принятые видеоданные могут являться внутрикодированными данными, где действительные видеоданные преобразуются (используя, например, дискретное косинусное преобразование, преобразование Хадамарда, дискретное преобразование элементарных волн или целочисленное преобразование, например, используемое в Н.264) или это могут быть внутрикодированные данные (например, использование прогноза с компенсированным движением), где вектор движения и остаточная ошибка преобразовываются. Подробности действий по декодированию этапа 310 известны этим специалистам в данной области техники и не будут обсуждаться в данном документе дополнительно.
Обработка 300 продолжается на этапе 315, где декодированные контрольные данные интерполируются. В одном примере интерполяция на этапе 315 содержит интерполяцию данных вектора движения из контрольных видеоданных. Для того, чтобы проиллюстрировать интерполяцию данных вектора движения, будет использоваться упрощенный пример. Фиг.3А показывает пример интерполяции вектора движения, используемого на этапе 315. Кадр 10 представляет кадр в первой временной точке в последовательности потокового видео. Кадр 20 представляет кадр во второй временной точке в последовательности потокового видео. Программы прогноза компенсированного движения, известные специалистам в данной области техники, могут использоваться для размещения части видео, которое содержит объект 25А в кадре 10, который почти соответствует части видео, которое содержит объект 35 в кадре 20. Вектор 40 движения располагает объект 25А в кадре 10 относительно объекта 35 в кадре 20 (заштрихованный контур, помеченный 25С в кадре 20 используется для иллюстрации относительного положения объектов 25А и 35). Если кадр 10 и кадр 20 расположены в промежуток времени "T" друг от друга в последовательности, тогда кадр 15, расположенный между кадрами 10 и 20, может быть интерполирован на основе декодированных видеоданных в кадре 10 и/или кадре 20. Например, если кадр 15 расположен в момент времени посреди (момент времени Т/2 от обоих) кадров 10 и 20, тогда данные пикселей объекта 35 (или объекта 25А) могут быть расположены в точке, расположенной с помощью вектора 45 движения, который может быть определен посредством интерполяции, которая является половиной размера и с тем же самым заголовком, как и вектор 40 движения (заштрихованный контур, отмеченный 25В в кадре 15, используется для иллюстрации и относительного местоположения объектов 25А и 30). Так как объект 35 был спрогнозирован на основе объекта 25А (представленный как вектор движения, указывающий на объект 25А и остаточная ошибка, добавленная к значениям пикселей объекта 25А), объект 25А и/или объект 35 могут использоваться как контрольные части для интерполирования объекта 30 в кадре 15. Как будет понятно специалистам в данной области техники, другие способы интерполирования вектора движения и/или данных остаточной ошибки одной или более контрольных частей (например, используя два вектора движения на блок, как в двунаправленном прогнозе) могут использоваться в создании интерполированных данных на этапе 315.
В другом примере интерполяция на этапе 315 содержит объединение значений пикселей, расположенных в различной пространственной области видеокадра. Фиг.3b показывает пример пространственной интерполяции, используемой на этапе 315 в обработке 300. Кадр 50 содержит видеоизображение дома 55. Область видеоданных, отмеченных 60, является отсутствующей, например, из-за повреждения данных. Пространственная интерполяция характеристик 65 и 70, которые расположены рядом с отсутствующей частью 60, могут использоваться как контрольные части для интерполирования области 60. Интерполяция может быть простой линейной интерполяцией между значениями пикселей областей 65 и 70. В другом примере значения пикселей, расположенных в различных временных кадрах из кадров, содержащих отсутствующие данные, могут быть объединены (например, с помощью усреднения) для создания данных интерполируемых пикселей. Средство интерполяции, например, видеоинтерполятор 155 Фиг.1 может выполнять действия по интерполяции этапа 315.
Кроме векторов движения могут использоваться другие способы временного прогноза, например, данные оптического потока и данные плавного преобразования изображений для интерполяции видеоданных. Интерполяция оптического потока может передавать поле скоростей пикселей в изображении с течением времени. Интерполяция может быть основана на пикселях, извлекаемых из поля оптического потока на заданный пиксель. Данные интерполяции могут содержать скорость и информацию о направлении.
Плавное преобразование изображений является методикой обработки изображений, используемой для вычисления преобразования из одного изображения в другое. Плавное преобразование изображений создает последовательность промежуточных изображений, которые, когда сопоставлены с исходными изображениями, представляет переход от одного изображения к другому. Способ определяет точки сетки исходного изображения и функции деформирования точек для нелинейной интерполяции, см. Вольберг Г. "Деформирование цифровых изображений", IEEE Computer Society Press, 1990.
Этапы 320, 325 и 330 являются этапами по выбору, используемые с некоторыми вариантами осуществления понижения уровня шума, выполняемого на этапе 335, и будут обсуждаться подробно ниже. Продолжая этап 335, в интерполированных видеоданных понижается уровень шума так, чтобы удалить помехи изображения, которые произошли из-за действий по интерполяции этапа 315. Средство понижения уровня шума, например, устройство 160 понижения видеошума Фиг.1 может выполнять действия этапа 335. Понижение уровня шума может содержать один или более способов, известных специалистам в данной области техники, включая распаковку блоков для уменьшения помех изображения по распаковке блоков, снижая колебания для уменьшения колебательных помех изображения, и способы для уменьшения размытости движений. После снижения уровня шума видеоданные с пониженным уровнем шума отображаются, например, на устройстве 190 отображения, как показано на Фиг.1.
Пример снижения уровня шума на этапе 335 содержит использование фильтра распаковки блоков, например, фильтр распаковки блоков стандарта Н.264 сжатия видео. Фильтр распаковки блоков, заданный в Н.264, требует деревьев решений, которые определяют активность по границам блоков. Как исходно было спланировано в Н.264, края блоков с активностью изображений вне установленных пороговых величин не фильтруются или слабо фильтруются, тогда как те с блоками низкой активности строго фильтруются. Используемые фильтры могут быть, например, низкочастотными фильтрами конечной импульсной характеристики (FIR) с 3 или 5-ю ответвлениями.
Фиг.4 является иллюстрацией пикселей, смежных с вертикальными и горизонтальными границами блоков 4×4 (текущий блок "q" и соседний блок "р"). Вертикальная граница 200 представляет любую границу между двумя примыкающими блоками 4×4. Пиксели 202, 204, 206 и 208, отмеченные р0, р1, р2 и р3, соответственно, лежат слева от вертикальной границы 200 (в блоке "р"), тогда как пиксели 212, 214, 216 и 218, отмеченные q0, q1, q2 and q3, соответственно, лежат справа от вертикальной границы 200 (в блоке "q"). Горизонтальная граница 220 представляет любую границу между двумя блоками 4×4, один непосредственно над другим. Пиксели 222, 224, 226 и 228, отмеченные р0, p1, р2 и р3, соответственно, лежат выше горизонтальной границы 200, в то время как пиксели 232, 234, 236 и 238, отмеченные q0, q1, q2, q3, соответственно, лежат ниже горизонтальной границы 200. В варианте осуществления распаковки блоков в Н.264 операции фильтрования влияют вплоть до трех пикселей с любой стороны, выше или ниже границы. В зависимости от квантователя, используемого для преобразованных коэффициентов, режимы кодирования блоков (внутри или межкодируемые) и плавный переход цветов эталонов изображений через границу возможны несколько результатов, варьируясь от отсутствия фильтруемых пикселей до фильтруемых пикселей р0, р1, р2, q0, q1 и q2.
Конструкции фильтров распаковки блоков для блока на основе сжатия видео преимущественно следует общему принципу измерения изменений интенсивности вдоль краев блоков, за которым следует определение силы фильтра, который необходимо использовать и затем с помощью действительной низкочастотной операции фильтрования вдоль краев блоков. Фильтры распаковки блоков уменьшают помехи изображения распаковки блоков посредством сглаживания (низкочастотное фильтрование вдоль) краев блоков.
Измерение, известное как прочность границ, определяется на этапе 320. Значение прочности границ может определяться на основе содержимого видеоданных или контекста видеоданных. С одной стороны, более высокие прочности границ выливаются в более высокие уровни фильтрования (например, большая потеря четкости). Параметры, влияющие на прочность границ, включают в себя ситуации, зависящие от контекста и/или содержимого, например, являются ли данные внутрикодируемыми или междукодируемыми, где внутрикодируемые участки в целом фильтруются тяжелее, чем междукодируемые части. Другими параметрами, влияющими на измерение прочности границ, являются образ кодированного блока (СРВ), который является функцией числа ненулевых коэффициентов в блоке пикселей 4 на 4 и параметра квантования.
Для того, чтобы избежать потерю четкости характеристиками краев в изображении, может выполняться выборочное измерение активности краев на этапе 325, и низкочастотное фильтрование (на этапе 335 понижения уровня шума) обычно используется в не крайних участках (чем ниже измерение активности края в участке, тем сильнее фильтр, используемый в понижении уровня шума на этапе 335). Подробности определения прочности границ и определения активности краев известны обычным специалистам в данной области техники, и их нет необходимости пояснять в раскрываемом способе. На этапе 330 измерение прочности границ и/или измерение активности краев используется для определения уровня понижения шума, которое необходимо выполнить на этапе 335. Посредством модификаций параметров распаковки блоков, например прочности границ и/или измерений активности краев, интерполированные области могут быть эффективно снижены по уровню шума. Обработка 300 может завершаться посредством отображения 340 интерполированных видеоданных с пониженным уровнем шума. Один или более элементов могут быть добавлены, переупорядочены или объединены в обработке 300.
Фиг.5А, 5В и 5С показывают иллюстрации положений контрольных блоков, используемые в определении значений прочности границ на этапе 320 в некоторых вариантах осуществления процесса Фиг.1, где действие по понижению уровня шума на этапе 335 содержит распаковку блоков. Сценарии, отображенные на Фиг.5, представляют прогноз с компенсированным движением с одним вектором движения на контрольный блок, как обсуждалось выше в отношении Фиг.5А. На Фиг.5А, 5В и 5С кадр 75, который интерполирован, является интерполированным на основе ссылочного (контрольного) кадра 80. Интерполированный блок 77 является интерполированным на основе контрольного блока 81 и интерполированный блок 79, который является смежным блоком к блоку 77, является интерполированным на основе контрольного блока 83. На Фиг.5А контрольные блоки 81 и 83 являются также смежными. Это служит признаком видеоизображений, которые являются неподвижными между интерполированным кадром 75 и контрольным кадром 80. В этом случае прочность границ может быть установлена низкой, так, чтобы степень понижения уровня шума была низкой. На Фиг.5В контрольные блоки 81 и 83 перекрывают друг друга так, чтобы содержать общие видеоданные. Перекрытые блоки могут служить признаком некоторого незначительного движения и прочность границ может быть установлена выше, чем для случая на Фиг.5А. На Фиг.5С контрольные блоки 81 и 83 являются отдельными друг от друга (несмежные блоки). Это указание на то, что изображения не тесно ассоциативно связаны друг с другом и помехи изображения при распаковке блоков могут быть более ощутимыми. В случае Фиг.5С прочность границ может быть установлена до значения, приводящего к большей распаковке блоков, чем сценарии Фиг.5А и 5В. Сценарий, не показанный на любой из Фиг.5, содержит контрольные блоки 81 и 83 из различных контрольных кадров. Этот случай можно рассматривать аналогичным образом случаю, показанному на Фиг.5С, или значение прочности границ может быть определено как значение, которое приводит к большей распаковке блоков, чем случай, показанный на Фиг.5С.
Фиг.6А является блок-схемой последовательности операций способа, которая иллюстрирует пример обработки для определения значений прочности границ для ситуаций, показанных на Фиг.5А, 5В и 5С с одним вектором движения на каждый блок. Процесс, показанный на Фиг.6А, может быть выполнен на этапе 320 обработки 300, показанной на Фиг.2. Со ссылкой на Фиг.5 и 6 проверка сделана в блоке 405 решения для определения, являются ли блоки 81 и 83 также смежными блоками. Если они являются смежными блоками, как показано на Фиг.5А, тогда прочность границ устанавливается на нуле на этапе 407. В этих вариантах осуществления, где смежные контрольные блоки 81 и 83 уже с пониженным уровнем шума (с распакованными блоками в этом примере), понижение уровня шума интерполированных блоков 77 и 79 на этапе 335 может быть опущено. Если контрольные блоки 81 и 83 не являются смежными контрольными блоками, тогда проверка делается в блоке 410 решения для определения того, перерыты ли контрольные блоки 81 и 83. Если контрольные блоки 81 и 83 перекрывают друг друга, как показано на Фиг.5В, тогда прочность границ устанавливается на единице на этапе 412. Если контрольные блоки не перекрывают друг друга (например, контрольные блоки 81 и 83 раздельны в том же самом кадре или в различных кадрах), тогда обработка продолжается в блоке 415 решения. Проверка делается в блоке 415 решения для определения является ли один или оба из контрольных блоков 81 и 83 внутрикодируемыми. Если один из контрольных блоков является внутрикодируемым, тогда прочность границ устанавливается до двух на этапе 417, иначе прочность границ устанавливается до трех на этапе 419. В этом примере смежные блоки являются интерполированными из контрольных блоков, которые расположены близко друг к другу, снижены по уровню шума в более низких степенях, чем блоки, интерполированные из отдельных контрольных блоков.
Интерполированные блоки могут также быть образованы из более, чем одного контрольного блока. Фиг.6 В является блок-схемой последовательности операций способа, которая иллюстрирует другой вариант осуществления обработки для определения значений прочности границ (как выполнено на этапе 320 Фиг.2) для интерполированных блоков, которые содержат два вектора движения, указывающие на два контрольных блока. Пример, показанный на Фиг.6В, предполагает, что векторы движения показывают на передний кадр и задний (предыдущий) кадр, как в двунаправленных прогнозных кадрах. Специалисты в данной области техники признают, что многочисленные контрольные кадры могут содержать многочисленные передние или также многочисленные задние контрольные кадры. Пример рассматривает передние и задние (предыдущие) векторы движения текущего блока, который интерполирован, и смежного блока в том же самом кадре. Если впереди расположенные контрольные блоки, как отображено с помощью передних векторов движения текущего блока и смежного блока, определяются как смежные блоки в блоке 420 решения, тогда обработка продолжается в блоке 425 решения для определения, являются ли задние контрольные блоки, как отображено с помощью задних векторов движения текущего блока и смежного блока, также смежными. Если и передний, и задний контрольные блоки являются смежными, тогда это показывает на очень малое движение изображения, и прочность границ устанавливается до нуля на этапе 427, который приводит к низкой степени распаковки блоков. Если один из передних или задних контрольных блоков определяется как смежный (в блоке 425 решения или блоке 430 решения), тогда прочность границ устанавливается до единицы (на этапе 429 или этапе 432), приводя к большей распаковке блоков, чем случай, где оба контрольных блока являются смежными. Если в блоке 430 решения определяется, что ни передний, ни задний контрольные блоки не являются смежными, тогда прочность границ устанавливается до двух, приводя к даже большей распаковке блоков.
Деревья решений, показанные на Фиг.6А и 6В, являются лишь примерами обработок для определения прочности границ на основе относительного положения одного или более контрольных частей интерполированных видеоданных и на основе числа векторов движения на каждый блок. Другие способы могут использоваться, как будет очевидно специалистам в данной области техники. Средство определения, например, блок 165 определения прочности границ на Фиг.1 может выполнять действия этапа 320, показанного на Фиг.2 и проиллюстрированного на Фиг.6А и 6В. Один или более элементов могут быть добавлены, переставлены или объединены в деревьях решений, показанных на Фиг.6А и 6В.
Фиг.7 иллюстрирует один примерный способ 700 обработки видеоданных в соответствии с описанием выше. В целом способ 700 содержит интерполирование 710 видеоданных и понижение 720 уровня шума интерполированных видеоданных. Понижение уровня шума интерполированных видеоданных может быть основано на значении прочности границ, как описано выше. Прочность границ может быть определена на основе содержимого и/или контекста видеоданных. Также прочность границ может быть определена на основе того, были ли интерполированы видеоданные, используя один вектор движения или более, чем один вектор движения. Если использовался один вектор движения, прочность границ может быть определена на основе того, происходят ли векторы движения из смежных блоков контрольного кадра, из перекрытых смежных блоков контрольного кадра, из не смежных блоков контрольного кадра или из различных контрольных кадров. Если использовались более, чем один векторов движения, прочность границ может быть определена на основе того, указывают ли передние векторы движения на смежные контрольные блоки, или того, указывают ли задние векторы движения на смежные контрольные блоки.
Фиг.8 показывает пример устройства 800, которое может быть реализовано для выполнения способа 700. Устройство 800 содержит интерполятор 810 и блок 820 понижения уровня шума. Интерполятор 820 может интерполировать видеоданные, и блок 820 понижения уровня шума может понижать уровень шума интерполированных видеоданных, как описано выше.
Вариант осуществления распаковки блоков, обсуждаемый выше, является лишь примером одного типа понижения уровня шума. Различные другие альтернативы будут очевидны специалистам в данной области техники. Алгоритм распаковки блоков Н.264, описанный выше, использует блоки пикселей 4 на 4. Специалистам в данной области техники будет понятно, что блоки различных размеров, например, любой N на М блок пикселей, где N и М являются целыми, может использоваться как интерполированный и/или контрольные части видеоданных.
Специалисты в данной области техники поймут, что информация и сигналы могут быть представлены с использованием любой из множества различных технологий и методик. Например, данные, инструкции, команды, информация, сигналы, разряды, символы и элементарные сигналы, которые могут быть указаны ссылкой по всему вышеприведенному описанию, могут быть представлены напряжениями, токами, электромагнитными волнами, магнитными полями или частицами, оптическими полями или частицами, или любой их комбинацией.
Обычные специалисты будут дополнительно принимать во внимание, что различные иллюстративные логические блоки, модули и этапы алгоритмов, описанные в связи с примерами, раскрытыми в материалах настоящей заявки, могут быть реализованы в виде электронных аппаратных средств, встроенного программного обеспечения, компьютерного программного обеспечения, связующего программного обеспечения, микрокода или их сочетания. Чтобы ясно проиллюстрировать эту взаимозаменяемость аппаратных средств и программного обеспечения, различные иллюстративные компоненты, блоки, модули, схемы, и этапы были описаны выше в общем смысле, в составляющих их функциональных возможностей. Реализуются ли подобные функциональные возможности как аппаратное или программное обеспечение, зависит от конкретного приложения и конструктивных ограничений, налагаемых на всю систему. Специалисты могут реализовать описанные функциональные возможности различными способами для каждого конкретного приложения, но подобные решения по реализации не должны интерпретироваться как причина отклонения от объема раскрытых способов.
Различные пояснительные логические блоки, компоненты, модули и схемы, описанные в связи с примерами, раскрытыми в материалах настоящей заявки, могут быть реализованы или выполнены с помощью процессора общего назначения, цифрового сигнального процессора (DSP), специализированной интегральной схемы (ASIC), программируемой пользователем вентильной матрицы (FPGA) или другого программируемого логического устройства, дискретной вентильной или транзисторной логики, дискретных компонентов аппаратных средств или любого их сочетания, спроектированных для выполнения функций, описанных в материалах настоящей заявки. Процессор общего назначения может быть микропроцессором, но в альтернативе, процессор может быть любым традиционным процессором, контроллером, микроконтроллером или конечным автоматом. Процессор также может быть реализован как сочетание вычислительных устройств, например, объединение DSP и микропроцессора, множества микропроцессоров, одного или более микропроцессоров совместно с ядром DSP или любая другая подобная конфигурация.
Этапы способа или алгоритма, описанные в связи с примерами, раскрытыми в материалах настоящей заявки, могут быть реализованы непосредственно в аппаратных средствах, в модуле программного обеспечения, выполняемом процессором, или комбинации этих двух. Модуль программного обеспечения может находиться в памяти ОЗУ, флэш-памяти, памяти ПЗУ, памяти EPROM (электрически программируемого ПЗУ), памяти EEPROM (электрически стираемого и программируемого ПЗУ), регистрах, на жестком диске, съемном диске, CD-ROM (ПЗУ на компакт-диске) или любом другом виде носителя хранения (данных), известного в данной области техники. Примерный носитель хранения соединен с процессором из условия, что процессор может считывать информацию с и записывать информацию на носитель хранения. В альтернативе носитель хранения может быть одним целым с процессором. Процессор и носитель данных могут постоянно находиться в ASIC. ASIC может находиться в беспроводном модеме. В альтернативном варианте процессор и носитель хранения могут постоянно находиться в виде дискретных компонентов в беспроводном модеме.
Предшествующее описание раскрытых примеров осуществления предоставляется, чтобы дать возможность любому специалисту в данной области техники создавать или использовать раскрытые способы и устройство. Различные модификации в этих примерах будут явно очевидны для специалистов в данной области техники и принципы, определенные в материалах настоящей заявки, могут использоваться в других примерах и дополнительные элементы могут добавляться.
Таким образом, описаны способы и устройство для декодирования потокового мультимедиа в реальном времени, используя информацию маркировки о разрушении битов и разрушенных данных, в приложении декодера, для выполнения интеллектуального маскирования ошибок и коррекции ошибок разрушенных данных.