Способ и устройство для назначения векторов движения
Иллюстрации
Показать всеИзобретение относится к обработке видеоизображения и более конкретно к способам и устройствам для назначения векторов движения. Техническим результатом является удаление искажений размытия и блочности, а также уменьшение сложности операций интерполяции для процесса назначения векторов движения для интерполируемых кадров, содержащих перекрывающиеся и пустые зоны. Предложен способ обработки множества векторов движения для видеокадра, интерполируемого с использованием первого опорного кадра и второго опорного кадра, причем каждый опорный кадр содержит карту содержания и включает в себя этапы: деления интерпретируемого во множество зон видеокадра, определения количества проходящих через одну из множества зон векторов движения на основании карт содержания первого опорного кадра и второго опорного кадра, и формирования вектора движения для назначения на одну зону на основании количества проходящих через одну зону векторов движения. 4 н. и 56 з.п. ф-лы, 9 ил.
Реферат
Настоящая заявка на патент притязает на приоритет предварительной заявки на патент № 60/590,110, поданной ее заявителем и полностью включенной в настоящее описание посредством ссылки.
Ссылка на находящуюся на совместном рассмотрении заявку на патент
Настоящая заявка на патент имеет отношение к следующей одновременно рассматриваемой заявке на патент США: «Method and Apparatus for Motion Compensated Frame Rate Up Conversion for Block-Based Low Bit-Rate Video» № 11/122,678, поданной заявителем и включенной в настоящее описание во всей своей полноте в качестве ссылки.
Область техники, к которой относится изобретение
Описанные в настоящем документе варианты осуществления относятся в целом к обработке видеоизображения и более конкретно к способам и устройством для назначения векторов движения.
Уровень техники
Низкоскоростное сжатие видеоизображения очень важно во многих мультимедийных приложениях, например в беспроводном потоковом видео и видеотелефонии, из-за ограниченных ресурсов полосы пропускания и непостоянства доступности полосы пропускания. Адаптация полосы пропускания к низкоскоростному кодированию видеосигнала может быть достигнута посредством сокращения временной разрешающей способности. Другими словами, для сокращения скорости передачи вместо сжатия и передачи битового потока с частотой смены кадров, равной тридцати (30) кадрам в секунду (fps), временная разрешающая способность может быть разделена на два битовых потока с частотой смены кадров, равной 15 кадрам в секунду. Один типичный подход для сокращения полосы пропускания заключается в исключении и удалении избыточной информации из закодированного сигнала, например в удалении части или целого кадра. Однако последствия сокращения временной разрешающей способности приводит к введению искажений изображения во временной области, например к рывкам в движении, которые значительно ухудшают визуальное качество декодированного видеоизображения.
Для отображения полной частоты смены кадров на принимающей стороне, для восстановления (повторного формирования) пропущенных кадров и сокращения временных искажений изображения требуется алгоритм восстановления, названный преобразованием частоты смены кадров (FRUC). В целом преобразование частоты смены кадров (FRUC) представляет собой процесс интерполяции видеоизображения на видео декодере для увеличения воспринятой (видимой) частоты смены кадров восстановленного видеоизображения. Было предложено множество алгоритмов преобразования частоты смены кадров (FRUC), вследствие чего они могут быть классифицированы на две общие категории. Первая категория интерполирует недостающий кадр посредством использования комбинации принятых видеокадров без учета движения объекта. В этот класс входят способы повтора и усреднения кадра. Недостатки этих способов включают в себя образование рывков в движении, «паразитных» изображений и размытия перемещения объектов при сложном движении. Вторая категория является более продвинутой по сравнению с первой категорией и использует информацию о движении, передающуюся посредством кодера в процессе, названном интерполяцией (кадра) с компенсацией движения (MCI).
При обычном прогнозирующем кодировании с компенсацией движения каждый видеокадр сначала делится на квадратные блоки, состоящие из элементов изображения: например, на блоки размером 8 элементов изображения на 8 элементов изображения. В свою очередь каждый блок кодируется, а сформированная закодированная последовательность передается по каналу связи на декодер. В течение процесса кодирования совершается определение того, действительно ли элементы изображения блока значительно изменились по сравнению с соседним блоком, находящимся в предыдущем кадре. В противном случае выполняется передача индикации, которая указывает декодеру на то, что он должен выполнить простой повтор элементов изображения того блока из предыдущего кадра для получения элементов изображения для текущего блока. Если элементы изображения изменены, начиная с предыдущего кадра, то предпринимается попытка определения наилучшей оценки движения, которое происходит в блоке. Зачастую это выполняется посредством методики оценки движения соответствующего блока, где элементы изображения текущего блока являются последовательными по сравнению с различными небольшими сдвигами соответствующего блока, находящегося в предыдущем кадре. Считается, что сдвиг, который обеспечивает лучшее соответствие, является «наилучшей оценкой» сдвига в изображении блока, находящегося между кадрами, а величина и направление этого сдвига, называемые «вектором движения», выбираются для передачи на декодер. Кроме того, после нахождения наилучшего соответствия элементы изображения, находящиеся в текущем блоке, сравниваются с элементами изображения, находящимися в «лучшем» сдвинутом блоке, находящимся в предыдущем кадре, для выявления того, существует ли значительное различие. В противном случае вместо передачи вектора движения выполняют передачу индикации на декодер для того, чтобы элементы изображения сдвинутого блока, находящегося в предыдущем кадре, были повторены для элементов изображения текущего сдвинутого блока. Считается, что такие блоки были успешно компенсированы движением. Однако если между этими двумя блоками существует значительное различие, то различие кодируется и передается на декодер для того, чтобы элементы изображения, находящиеся в текущем блоке, могли быть восстановлены с большей точностью.
Здесь были описаны некоторые предложения для увеличения качества повторных кадров для того, чтобы сделать их более близкими к оригиналу. Таким образом, вместо выполнения простого повтора элементов изображения из предыдущего кадра, как было описано выше, при обычном прогнозирующем кодировании с компенсацией движения при интерполяции (кадра) с компенсацией движения (MCI) для бокового сдвига блока посредством соответствующей величины перед отображением используются векторы движения. Другими словами, этот способ формирует недостающий блок элементов изображения с помощью усреднения по непосредственно предыдущему и последующему блокам элементов изображения, которые доступны декодеру. Однако экспериментальные результаты показывают, что если изображения последовательных блоков не представляют трансляционное движение, то воспроизведенное изображение может быть худшим по сравнению с повторением кадра. Хотя наблюдается, что это ухудшение вызвано относительно малым количеством элементов изображения, которые не соответствуют предположению о трансляционном движении, а размещение этих элементов изображения в неверной позиции создает очень заметные искажения изображения.
Как показано в иллюстрированном на Фиг.1 предшествующем уровне техники, при интерполяции (кадра) с компенсацией движения недостающий кадр 108 интерполируется на основании восстановленного текущего кадра 102, сохраненного предыдущего кадра 104 и набора переданных векторов 106 движения. Восстановленный текущий кадр 102 составляется из набора неперекрывающихся блоков 150, 152, 154 и 156, связанных с набором переданных векторов 106 движения, указывающих на соответствующие блоки, находящиеся в сохраненном предыдущем кадре 104. Интерполированный кадр 108 может быть сформирован в любой линейной комбинации соответствующих элементов изображения, находящихся в текущем и предыдущих кадрах, или в нелинейной операции, например в срединной операции.
Несмотря на то что интерполяция (кадра) с компенсацией движения (MCI) является более продвинутой, интерполяция (кадра) с компенсацией движения на основе блоков внедряет перекрывающиеся зоны, которые являются зонами, содержащими множество проходящих через них траекторий движения, и пустые зоны, которые являются зонами, не содержащими никаких проходящих через них траекторий движения, к тому же присутствие обоих типов зон в интерполированных кадрах нежелательно. Как иллюстрировано на Фиг.2, интерполированный кадр 202 содержит перекрывающуюся зону 206 и пустую зону 204. Основные причины для формирования этих двух типов нежелательных зон:
1) Перемещение объектов происходит не по жестко заданной модели трансляционного движения.
2) Переданные векторы движения, используемые в интерполяции (кадра) с компенсацией движения (MCI), возможно, не указывают на истинные траектории движения из-за алгоритмов поиска быстрого движения на основе блоков, используемых на кодирующей стороне.
3) Покрытый и непокрытый фон в текущем кадре и предыдущих кадрах.
Интерполяция перекрывающихся и пустых зон является основной технической проблемой в традиционных подходах к компенсированию движения на основе блоков. Для заполнения этих перекрывающихся и пустых зон были предложены способы усредненного размытия и пространственной интерполяции. Однако недостатками этих способов являются внесение искажений размытия и блочности, а также увеличение сложности операций интерполяции.
Для преобразования частоты смены кадров (FRUC) с компенсацией движения важно надлежащее назначение векторов движения, поскольку оно необходимо для кадров, интерполированных с преобразованием частоты смены кадров с компенсацией движения (FRUC). Кроме того, надлежащее назначение векторов движения полезно при любом применении, где требуется надлежащая компенсация движения, основанная на назначении векторов движения. Соответственно существует потребность в преодолении вышеупомянутой проблемы.
Раскрытие изобретения
Описанные в настоящем документе варианты осуществления обеспечивают процесс назначения векторов движения для интерполируемых кадров, содержащих перекрывающиеся и пустые зоны.
В одном варианте осуществления раскрыт способ обработки множества векторов движения для видеокадра, интерполируемого с использованием первого опорного кадра и второго опорного кадра, причем каждый опорный кадр содержит карту содержания. Способ включает в себя этапы деления видеокадра, интерпретируемого во множество зон, определения количества проходящих через одну зону векторов движения на основании карт содержания первого опорного кадра и второго опорного кадра и назначения векторов движения на одну зону на основании количества проходящих через одну зону векторов движения.
В другом варианте осуществления раскрыт машиночитаемый носитель, содержащий сохраненные на нем команды, служащие для выполнения компьютером способа обработки множества векторов движения для видеокадра, интерполируемого с использованием первого опорного кадра и второго опорного кадра, причем каждый опорный кадр содержит карту содержания. Способ включает в себя этапы деления интерпретируемого во множество зон видеокадра, определения количества проходящих через одну зону векторов движения на основании карт содержания первого опорного кадра и второго опорного кадра и назначения векторов движения на одну зону на основании количества проходящих через одну зону векторов движения.
Еще в одном варианте осуществления раскрыто устройство для обработки множества векторов движения для кадра, интерполируемого с использованием первого опорного кадра и второго опорного кадра, причем каждый опорный кадр содержит карту содержания. Устройство включает в себя средство для деления видеокадра, интерпретируемого во множество зон, средство для определения количества проходящих через одну зону векторов движения на основании карт содержания первого опорного кадра и второго опорного кадра и средство для назначения векторов движения на одну зону на основании количества проходящих через одну зону векторов движения.
Еще в одном варианте осуществления раскрыт, по меньшей мере, один процессор, выполненный с возможностью осуществления способа обработки множества векторов движения для видеокадра, интерполируемого с использованием первого опорного кадра и второго опорного кадра, причем каждый опорный кадр содержит карту содержания. Способ включает в себя этапы деления видеокадра, интерпретируемого во множество зон, определения количества проходящих через одну зону векторов движения, на основании карт содержания первого опорного кадра и второго опорного кадра, и назначения векторов движения на одну зону на основании количества проходящих через одну зону векторов движения.
Другие цели, особенности и преимущества станут очевидными специалистам в данной области техники из нижеследующего подробного описания. Однако должно пониматься, что подробное описание, конкретные примеры и указывающие иллюстративные варианты осуществления даны в иллюстративных целях, а не в качестве ограничения. В нижеследующем описании может быть сделано множество изменений и модификаций, не отступая от его сущности, и следует понимать, что описание включает в себя все подобные изменения.
Краткое описание чертежей
Описанные в настоящем документе варианты осуществления будут более понятны с учетом сопроводительных чертежей, на которых изображено следующее:
Фиг.1 - чертеж, иллюстрирующий структуру кадра, интерполированного с использованием интерполяции (кадра) с компенсацией движения (MCI);
Фиг.2 - чертеж, иллюстрирующий перекрывающиеся и пустые зоны, которые могут столкнуться в интерполированном кадре в течение интерполяции (кадра) с компенсацией движения (MCI);
Фиг.3 - блок-схема системы для преобразования частоты смены кадров (FRUC), служащей для выполнения назначения векторов движения;
Фиг.4 - блок-схема подсистемы исключения векторов движения системы векторов движения;
Фиг.5 - схема последовательности операций, иллюстрирующая краткий обзор способа для назначения векторов движения для перекрывающихся и пустых зон;
Фиг.6 - схема последовательности операций, иллюстрирующая работу системы для преобразования частоты смены кадров (FRUC) для назначения векторов движения для перекрывающихся и пустых зон;
Фиг.7 - чертеж, иллюстрирующий различные классы содержания, назначенные на графические элементы, находящиеся в видеокадре;
Фиг.8 - схема последовательности операций, иллюстрирующая работу системы для преобразования частоты смены кадров (FRUC), служащей для назначения векторов движения для перекрывающихся и пустых зон;
Фиг.9 - блок-схема терминала доступа и точки доступа системы беспроводной связи.
На некоторых чертежах аналогичные ссылочные номера указывают на аналогичные элементы.
Осуществление изобретения
Описанные в настоящем документе варианты осуществления обеспечивают способы назначения векторов движения и устройство, которое поддерживает переменные изменения на основе размеров блоков, на основе элементов изображения и на основе блоков при назначении векторов движения. Описанные в настоящем документе устройства и способы назначения векторов движения принимают участие при формировании интерполированных кадров, также называемых «F кадров», с повышенным качеством, например в процессе, таком как процесс преобразования с повышением частоты смены кадров (FRUC). Дополнительная содержащаяся в декодированных видеоданных информация используется в качестве входных данных для процесса назначения векторов движения. Дополнительная информация может включать в себя, например, описание типа графических элементов, которые составляют каждый кадр, называемое «карты содержания», а также описание сложности и движения элементов, называемое «карты сложности» и «карты активности» соответственно. Описанное в настоящем документе назначение векторов движения рассматривает проблемы, с которыми сталкиваются в течение формирования интерполированных кадров в виде перекрывающихся и пустых зон, которые нежелательны в интерполированных кадрах.
Фиг.3 иллюстрирует систему 300 для преобразования частоты смены кадров (FRUC), которая может выполнять назначение векторов движения для F-кадров, также называемых «интерполируемые кадры», система 300 для преобразования частоты смены кадров (FRUC) принимает входящий битовый поток 302 и использует модуль 306 дешифратора двоичных кодов для исключения: (1) набора векторов 308 движения, которые находятся в буфере 316 сохраненных векторов движения, и (2) остатка 310. Остаток 310 вводится в модуль 312 обратного квантования/обратного преобразования, результат его вычисления объединяется с предыдущим кадром, сохраненным в буфере 318 сохраненных предыдущих кадров, для формирования текущего кадра. Текущий кадр сохраняется в буфере 320 текущих кадров. Подчасть 350 системы 300 для преобразования частоты смены кадров (FRUC), включающая в себя буфер 316 сохраненных векторов движения, буфер 318 сохраненных кадров и буфер 320 текущих кадров содержит определенные функциональные модули для выполнения назначения векторов движения в соответствии с одним иллюстративным вариантом осуществления, как описано в настоящем документе. В частности, подчасть 350 включает в себя процессор 322 для обработки векторов движения, модуль 324 оценки выбранного двунаправленного движения, второй процессор 326 для обработки векторов движения, модуль 328 определения режима работы, модуль 330 преобразователя, повышающего частоту смены кадров (FRUC), и постпроцессор 332. Далее со ссылками на чертежи описан процесс работы системы 300 для преобразования частоты смены кадров (FRUC). Кроме того, одна иллюстративная система экстраполяции векторов движения и классификации содержания, которая может быть использована с описанной в настоящем документе системой, описана в находящейся на рассмотрении заявке №_________, названной «Method and Apparatus for Frame Rate Up Conversion» [Fang Shi, Viji Raveendran], поданной 15 июня 2004 года. Более того, один иллюстративный процесс сглаживания векторов движения, который может быть использован с описанной в настоящем документе системой, описан в находящейся на рассмотрении заявке № ________, названной «Method and Apparatus for Motion Vector Processing» [Fang Shi, Viji Raveendran]. Находящаяся на рассмотрении заявка №_________, названная «Method and Apparatus for Motion Compensated Frame Rate Up Conversion» [040432], также обеспечивает другие иллюстративные варианты осуществления других компонентов системы 300 для преобразования частоты смены кадров (FRUC), в частности, не описанные в настоящем документе.
Следует отметить, что изображенные на Фиг.3 функциональные модули в одном варианте осуществления соответствуют определенным модулям, которые могут быть реализованы с использованием одного или нескольких программно реализованных алгоритмов. Процесс работы алгоритмов описан на высоком уровне и достаточно детализирован для предоставления специалистам в данной области техники возможности их реализации с использованием комбинации подходов к аппаратным средствам и программному обеспечению. Например, описанные в настоящем документе компоненты могут быть реализованы в качестве программного обеспечения, выполняемого на универсальном процессоре, а также в качестве «аппаратно-реализованной» схемы в специализированной интегральной схеме (ASIC) или любой их комбинации. Следует отметить, что различные другие подходы к реализации модулей, описанные в настоящем документе, могут быть использованы, а также должны находиться в пределах области специалистов в данном уровне техники, практикующих в обширной области изображения и видеообработки.
Кроме того, описанные в настоящем документе идеи изобретения могут быть использованы в кодирующих/декодирующих системах, которые соответствуют стандартам H.26x, как провозглашено Сектором по стандартизации телекоммуникаций, состоящим в составе Международного Телекоммуникационного Союза (ITU-T), или стандартам MPEGx, как провозглашено Экспертной группой по вопросам движущегося изображения, рабочей группой Международной организации по стандартизации / Первым объединенным техническим комитетом Международной электротехнической комиссии (ISO/IEC JTC1). Стандарты кодирования видеосигнала ITU-T называются рекомендациями и отличаются от H.26x (например, H.261, H.262, H.263 и H.264). Стандарты ISO/IEC отличаются от MPEG-x (например, MPEG-1, MPEG-2 и MPEG-4). Например, множество опорных кадров и непостоянные размеры блока являются специальными особенностями, требуемыми для стандарта H264. В других вариантах осуществления кодирующие/декодирующие системы, в которых используются описанные в настоящем документе идеи изобретения, могут являться частными.
В одном варианте осуществления система 300 для преобразования частоты смены кадров (FRUC) может быть сконфигурирована на основании различных требований сложности. Например, конфигурация высокой сложности может включать в себя множество опорных кадров, непостоянные размеры блока, экстраполяцию векторов движения предыдущего опорного кадра с моделями ускорения движения и оценку движения при помощи двойного сглаживания поля движения. В отличие от этого конфигурация малой сложности может включать в себя только один опорный кадр, постоянные размеры блока и интерполяцию с компенсацией движения и сглаживанием поля движения. Другие конфигурации также допустимы для различных применений.
Система 300 принимает входные данные от множества модулей хранения данных, находящихся в подсистеме 400 базы данных, используемой для хранения и извлечения информации об используемых в обработке видеокадрах. Как иллюстрировано на Фиг.4, эти модули хранения включают в себя модуль 402 хранения карт содержания множества предыдущих кадров (MUTIPLE F_PREV CONTENT MAP), модуль 404 хранения экстраполированных полей движения множества предыдущих кадров (EXTRAPOLATED MULTIPLE F_PREV MOTION FIELDS), модуль 406 хранения карты содержания одного предыдущего кадра (F_PREV CONTENT MAP) и модуль 408 хранения экстраполированного поля движения одного предыдущего кадра (EXTRAPOLED F_PREV MOTION FIELD). Модуль 414 управления режимом работы на основе множества опорных кадров соединен с соответствующими модулями хранения для выполнения следующего этапа ввода в зависимости от того, работает ли система 300 в режиме, который использует множество опорных кадров. В частности, если система 300 использует множество предыдущих опорных кадров, то входные данные берутся из модуля 402 хранения карт содержания множества предыдущих кадров и модуля 404 хранения экстраполированных полей движения множества предыдущих кадров. При режиме работы с одним предыдущим опорным кадром входные данные берутся из модуля 406 хранения карты содержания одного предыдущего кадра и модуля 408 хранения экстраполированного поля движения одного предыдущего кадра.
Несмотря на то что чертеж иллюстрирует использование только двух разных наборов модулей для хранения карт содержания и полей движения, то есть один набор, в котором используются множество опорных кадров (то есть модуль 402 хранения карт содержания множества предыдущих кадров и модуль 404 хранения экстраполированных полей движения множества предыдущих кадров), и другой, в котором используется один опорный кадр (то есть модуль 406 хранения карты содержания одного предыдущего кадра и модуль 408 хранения экстраполированного поля движения одного предыдущего кадра), следует отметить, что также возможны и другие конфигурации. Например, функциональные возможности двух различных модулей хранения карт содержания могут быть объединены таким образом, чтобы один модуль хранения мог быть использован для хранения карт содержания для множества кадров или одной карты содержания для одного кадра. Кроме того, модули хранения также могут хранить данные для текущего кадра.
Выходные данные из модуля 414 управления режимом работы на основе множества опорных кадров, а также модуля 410 хранения поля движения текущего кадра (F_CURR MOTION FIELD) и модуль 412 хранения карты содержания текущего кадра (F_CURR CONTENT MAP) подаются на модуль 416 экстраполяции векторов движения. Модуль 416 экстраполяции векторов движения исключает векторы движения, а также дополнительную информацию, используемую для обработки векторов движения в системе 300, как описано в настоящем документе. Таким образом, используемые в системе 300 входные векторы движения могут быть взяты из текущего кадра или могут быть взяты и из текущего кадра и из одного или нескольких предварительно декодированных кадров. Кроме того, другие входные данные для системы 300 являются информацией о боковой полосе частот из данных декодированного кадра, который может включать в себя, но не ограничиваться этим, важные зоны, вариации в информации о текстуре и вариации в значениях яркости фона. Эта информация может обеспечить правила для классификации векторов движения и алгоритмы адаптивного сглаживания, как обсуждается ниже.
Фиг.5 иллюстрирует краткий обзор иллюстративного процесса 500 назначения векторов движения, который начинается с картами содержания и векторами движения для опорных кадров, использующихся для интерполяции F-кадра, получаемого на этапе 502. В одном варианте осуществления, в котором процесс выполняется на декодере клиента, карты содержания и векторы движения предварительно передаются с сервера, как было обсуждено выше. В другом варианте осуществления карта содержания или векторы движения могут быть сформированы на стороне клиента.
На этапе 504 каждый блок, находящийся в F-кадре (то есть в интерполируемом кадре), также называемый «блок F-кадра», «макроблок F-кадра» или «F_MB», классифицируется в качестве перекрывающихся зон или пустых зон. Как далее описано в настоящем документе, для определения того, содержит ли каждый блок, находящийся в F-кадре, перекрывающуюся или пустую зону, F-кадр сначала делится на серию неперекрывающихся блоков. Затем выполняется определение того, имеют ли начало или заканчиваются проходящие через каждый неперекрывающийся блок, находящийся в F-кадре, какие-либо векторы движения на опорных кадрах, между которыми расположен F-кадр. Как было обсуждено ранее, перекрывающиеся зоны представляют собой зоны, содержащие множество проходящих через них траекторий движения (то есть множество векторов движения), между тем пустые зоны представляют собой зоны, не содержащие никаких проходящих через них траекторий движения, (то есть никаких векторов движения). Таким образом, если блок, находящийся в F-кадре, будет содержать множество проходящих через него векторов движения, то он будет классифицирован в качестве содержащего перекрывающуюся зону, также называемый в настоящем документе как «блок перекрывающейся зоны» или «перекрывающаяся зона». Кроме того, множество проходящих через определенный блок векторов движения, из-за которых блок является блоком перекрывающейся зоны, называются «набором перекрывающихся векторов движения» для блока. Этот набор перекрывающихся векторов движения будет подвержен модификации, при которой определенные векторы движения могут быть исключены из набора перекрывающихся векторов движения, как будет описано ниже, и измененный набор векторов движения в настоящем документе называется «обработанный набор перекрывающихся векторов движения». В другом варианте осуществления набор перекрывающихся векторов движения содержит только векторы движения, которые удовлетворяют определенным критериям и, таким образом, будет идентичен обработанному набору перекрывающихся векторов движения. Если блок не будет содержать проходящих через него векторов движения, то он будет классифицирован в качестве пустой зоны, также называемой в настоящем документе «блок с пустой зоной» или «пустая зона». В одном варианте осуществления блок, содержащий один проходящий через него вектор движения, не будет классифицирован в качестве содержащего пустую зону. В другом варианте осуществления эти типы блоков будут классифицироваться в качестве перекрывающейся зоны. После классификации блоков процесс продолжается совместно с процессом назначения векторов движения, который зависит от того, как был классифицирован блок.
На этапе 506 выполняется определение того, был ли блок классифицирован в качестве пустой зоны. Если блок был классифицирован в качестве пустой зоны, то процесс переходит на этап 514, на котором выполняется процесс назначения векторов движения для пустой зоны. В противном случае процесс переходит на этап 508, на котором выполняется определение того, является ли проходящий через блок F-кадра вектор движения единственным. Если проходящий через блок F-кадра вектор движения является единственным, то процесс переходит на этап 512, на котором традиционный процесс компенсации движения выполняется на основании единственного вектора движения. Если блок классифицирован в качестве перекрывающейся зоны, то процесс переходит на этап 510, на котором выполняется процесс назначения векторов движения для перекрывающихся зон.
Фиг.6 изображает иллюстративный процесс назначения векторов движения, в котором основной процесс назначения векторов движения, описанный со ссылкой на Фиг.5, применяется к процессу работы системы 300 FRUC для выполнения назначения векторов движения для перекрывающихся и пустых блоков, где на этапе 602 система сначала делит F-кадр, в данном случае интерпретируемый кадр, на неперекрывающиеся макроблоки (MB), а затем назначает классификации перекрывающейся зоны и пустой зоны на эти блоки. В системе с постоянным размером блока кадр должен быть разделен на блоки одного постоянного размера. Как описано в настоящем документе, макроблок (MB) относится к блоку, имеющему размер, равный 16x16. Однако описание настоящего документа может быть применено и к блокам других размеров. Кроме того, в системе, которая поддерживает непостоянные размеры блока, кадр может быть разделен на блоки, которые имеют различные размеры и формы. Для видеокодеков, которые поддерживают непостоянные размеры блока, система 300 также может выполнить назначение векторов движения для векторов движения, связанных с этими блоками. Одним подобным стандартом, как упомянуто выше, является стандарт H.264, который поддерживает размеры блока 16x16, 16x8, 8x16, 8x8, 8x4, 4x8 и 4x4.
После деления F-кадра блоки классифицируются в качестве перекрывающихся или пустых зон вышеупомянутым способом, в котором все векторы движения, которые принадлежат блоку перекрывающейся зоны, группируются в соответствующие наборы, и процесс переходит на этап 604, на котором система 300 FRUC определяет, существуют ли карты содержания для опорных кадров.
Важно, чтобы находящееся в кадре содержание было классифицировано в качестве части описанного в настоящем документе процесса назначения векторов движения. На основании метаданных принятого видеопотока (то есть переданных векторов движения) и декодированных данных (то есть восстановленных значений элементов изображения кадра) находящееся в кадре содержание может быть классифицировано на следующие типы класса:
1. Статичный фон (SB);
2. Движение объекта (МО);
3. Появляющийся объект (АО);
4. Исчезающий объект (DO); и
5. Границы (EDGE).
Таким образом, тип класса зоны кадра, на который указывает текущий вектор движения, то есть макроблок или блок, анализируется и затрагивает обработку интерполируемых кадров. Введение класса EDGE к классификации содержания добавляет дополнительный класс классификации содержания и обеспечивает усовершенствование процесса FRUC, как описано в настоящем документе.
Фиг.7 представляет иллюстрацию различных классов элементов изображения или зон, включающих в себя классы: движущийся объект 708 (МО), появляющийся объект 704 (АО), исчезающий объект 710 (DO), статичный фон 702 (SB) и EDGE 706 для интерполяции (кадра) с компенсацией движения (MCI), на которой направления стрелок 712 обозначают траекторию движения элементов изображения в трех иллюстрированных кадрах: кадре (t-1), кадре (t) (F-кадре) и кадре (t+1). В частности, в контексте интерполяции (кадра) с компенсацией движения (MCI) каждый элемент изображения или зона, находящиеся в каждом видеокадре, могут быть классифицированы на один из вышеупомянутых перечисленных пяти классов, а соотнесенный вектор движения может быть обработан определенным способом на основании сравнения изменения (если оно имеет место быть) информации о типе класса, как описано ниже. Кроме того, вышеупомянутые пять классификаций содержания могут быть сгруппированы в три менее ограниченных класса, в то время как различия между классами SB, АО и DO незначительны:
1. SB 702, АО 704, DO 710;
2. МО 708; и
3. EDGE 706.
В одном варианте осуществления используются два различных подхода для выполнения классификации содержания DO 710, SB 702, АО 704 и МО 708, каждое из которых основывается на различных вычислительных сложностях. Например, при подходе малой сложности для классификации содержания могут быть использованы следующие формулы:
Qc=abs(Fc[yn][xn]-Fp[yn][xn]);
Qp=abs Fp[yn][xn]-Fpp[yn][xn]);
Qc=(Qc>порога); и
Qp=(Qp>порога); где:
yn и xn являются координатами у и x местоположений элемента изображения;
Fc является значением элемента изображения текущего кадра;
Fp является значением элемента изображения предыдущего кадра;
Fpp является значением элемента изображения кадра, предшествующего предыдущему элементу изображения кадра;
Qc является абсолютной разностью значений элементов изображения между соотнесенными элементами изображениями (находящимися в координатах [yn] [xn]), находящимися в текущем и предыдущем кадрах; и,
Qp является абсолютной разностью значений элементов изображения между соотнесенными элементами изображения (находящимися в координатах [yn] [xn]), находящимися в предыдущем и предшествующем предыдущему кадрах; и:
если (Qc&&Qp), тогда выполняется классификация в качестве движущегося объекта;
или же, если (!Qc&&!Qp), тогда выполняется классификация в качестве статичного фона;
или же, если (Qc&&!Qp), тогда выполняется классификация в качестве исчезающего объекта;
или же, если (!Qc&&Qp), тогда выполняется классификация в качестве появляющегося объекта.
Например, в подходе высокой сложности классификация основана на сегментации объекта и морфологических операциях с классификацией содержания, выполняемой посредством прослеживания движения сегментированного объекта. Таким образом:
1. Осуществляется выполнение сегментации объекта в поле движения;
2. Выполняется отслеживание движения сегментированного объекта (например, посредством морфологических операций);
3. Выполняется маркировка объекта в качестве SB, АО, DO и МО соответственно.
На этапе 606, после определения карт содержания, существующих для опорных кадров, система FRUC исключает из каждого макроблока перекрывающейся зоны, находящегося в F-кадре, любые векторы движения из набора перекрывающихся векторов движения, принадлежащих блоку перекрывающейся зоны, который начинается или заканчивается на различных классах содержания.
В частности, при использовании карты содержания каждого опорного кадра для определения типа содержания каждого макроблока, находящегося в том же опорном кадре, где каждый макроблок классифицируется на один из классов МО, SB, АО, DO и EDGE (или на три класса, в то время как различия между классами SB, АО и DO, как было описано выше, являются незначительными), он может быть определен, если какой-либо вектор движения, находящийся в наборе перекрывающихся векторов движения (то есть предварительно определенных в качестве всех проходящих через блок перекрывающейся зоны векторов движения), начинается и заканчивается на макроблоках, содержащих различные классы содержания. Например, вектор движения, содержащий собственную начальную точку, касающуюся макроблока, находящегося в кадре (T+l), классифицированного в качестве макроблока МО, а его конечная точка, касающаяся макроблока, находящегося в кадре (T-l), классифицированного в качестве макроблока SB, будет подобным вектором движения. В одном варианте осуществления любой вектор движения исключается из набора перекрывающихся векторов движения, если начальная и конечная точки того вектора движения принадлежат различным классам содержания. Как было ранее определено, неисключенные векторы движения попадают в обработанный набор векторов движения.
После удаления векторов движения, содержащих начальную и конечную точки, связанные с макроблоками, классифицированными в различных классах, из набора перекрывающихся векторов движения и обработанного набора сформированных векторов движения процесс переходит на этап 608 принятия решений, на котором выполняется определение того, является ли макроблок, которому назначается вектор движения, макроблоком перекрывающейся зоны.
Назна