|
(21), (22) Заявка: 2007106447/09, 21.07.2005
(24) Дата начала отсчета срока действия патента:
21.07.2005
(30) Конвенционный приоритет:
21.07.2004 US 60/590,110
(46) Опубликовано: 27.09.2008
(56) Список документов, цитированных в отчете о поиске:
RU 2182727 С2, 20.05.2002. US 5394196 А, 28.02.1995. US 6625333 В1, 23.09.2003. ЕР 1369820 А1, 10.12.2003.
(85) Дата перевода заявки PCT на национальную фазу:
21.02.2007
(86) Заявка PCT:
US 2005/025897 (21.07.2005)
(87) Публикация PCT:
WO 2006/012428 (02.02.2006)
Адрес для переписки:
129090, Москва, ул. Б. Спасская, 25, стр.3, ООО “Юридическая фирма Городисский и Партнеры”, пат.пов. Ю.Д.Кузнецову, рег.№ 595
|
(72) Автор(ы):
ШИ Фан (US), РАВИИНДРАН Виджаялакшми Р. (US)
(73) Патентообладатель(и):
КВЭЛКОММ ИНКОРПОРЕЙТЕД (US)
|
(54) СПОСОБ И УСТРОЙСТВО ДЛЯ НАЗНАЧЕНИЯ ВЕКТОРОВ ДВИЖЕНИЯ
(57) Реферат:
Изобретение относится к обработке видеоизображения и более конкретно к способам и устройствам для назначения векторов движения. Техническим результатом является удаление искажений размытия и блочности, а также уменьшение сложности операций интерполяции для процесса назначения векторов движения для интерполируемых кадров, содержащих перекрывающиеся и пустые зоны. Предложен способ обработки множества векторов движения для видеокадра, интерполируемого с использованием первого опорного кадра и второго опорного кадра, причем каждый опорный кадр содержит карту содержания и включает в себя этапы: деления интерпретируемого во множество зон видеокадра, определения количества проходящих через одну из множества зон векторов движения на основании карт содержания первого опорного кадра и второго опорного кадра, и формирования вектора движения для назначения на одну зону на основании количества проходящих через одну зону векторов движения. 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) относится к блоку, имеющему размер, равный 16×16. Однако описание настоящего документа может быть применено и к блокам других размеров. Кроме того, в системе, которая поддерживает непостоянные размеры блока, кадр может быть разделен на блоки, которые имеют различные размеры и формы. Для видеокодеков, которые поддерживают непостоянные размеры блока, система 300 также может выполнить назначение векторов движения для векторов движения, связанных с этими блоками. Одним подобным стандартом, как упомянуто выше, является стандарт H.264, который поддерживает размеры блока 16×16, 16×8, 8×16, 8×8, 8×4, 4×8 и 4×4.
После деления 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 принятия решений, на котором выполняется определение того, является ли макроблок, которому назначается вектор движения, макроблоком перекрывающейся зоны.
Назначение вектора движения для перекрывающегося макроблока
На этапе 608 выполняется определение того, содержит ли обработанный набор перекрывающихся векторов движения для каждого макроблока более одного перекрывающегося вектора движения. Если обработанный набор перекрывающихся векторов движения для каждого макроблока содержит более одного перекрывающегося вектора движения, то в одном варианте осуществления процесс переходит на этап 616, на котором проходящий через центральный элемент изображения вектор(ы) движения используется в процессе назначения вектора движения для макроблока. В другом варианте осуществления, как отмечено на этапе 618, процесс назначения основывается на определении наиболее перекрытой зоны. Еще в одном варианте осуществления, как отмечено на этапе 620, назначается взвешенный вектор движения, взвешенный вектор движения формируется на основании перекрытия, находящегося в перекрывающейся зоне макроблока. Еще в одном варианте осуществления, как отмечено на этапе 622, вектору движения назначается усредненное значение. Каждый из этих вариантов осуществления описан ниже.
Назначение вектора движения на основании вектора движения центрального элемента изображения:
В одном варианте осуществления назначение вектора движения основывается на определении вектора движения, проходящего через центральный элемент изображения макроблока. Последовательность включает в себя следующие этапы:
1) Начала с текущего макроблока (x/block_size, y/block_size), находящегося в текущем кадре, где (x, y) являются координатами местоположения центрального элемента изображения текущего блока макроблока;
2) Вычисления текущего вектора движения (dx, dy) макроблока (x, y);
3) Пропорционального масштабирования вектора движения, в случае 1:2 FRUC, где F-кадр находится точно между текущим кадром и предыдущим опорным кадром, равно (dx/2, dy/2);
4) Макроблоку, находящемуся в F-кадре, MB_f((x+dx/2)/block_size,(y+dy/2)/block_size) назначается вектор движения (dx/2, dy/2);
5) Если на один и тот же макроблок, находящийся в F-кадре, будет назначено более одного вектора движения, то будет выполнена операция усреднения или нахождения среднего значения для получения итогового начального числа вектора движения.
Назначение вектора движения на основании макроблока, покрывающего наибольшую зону:
В другом варианте осуществления назначение векторов движения основывается на определении вектора движения с соотнесенным макроблоком, который покрывает наибольшую зону макроблока F-кадра. Этапы приведены ниже:
1) Текущий макроблок (x/block_size, y/block_size) находится в текущем кадре, где (x, y) являются координатами местоположения его центрального элемента изображения;
2) Текущий вектор движения (dx,dy) принадлежит макроблоку (x, y);
3) Пропорциональное масштабирование вектора движения в случае 1:2 FRUC равно (dx/2, dy/2);
4) Вектор движения (dx, dy) проходит через F-кадр, перекрестное местоположение в F-кадре равно (x+dx/2, y+dy/2);
5) Поиск вплоть до четырех макроблоков в наложении F-кадра с макроблоком, отцентрированным по (x+dx/2, y+dy/2):
a. F_MB_1 (x1, y1); где x1=((int)(x+dx/2)/block_size) *block_size+block_size/2; y1=((int) (y+dy/2)/block_size) *block_size+block_size/2:
b. F_MB_2 (x2, y2); где x2=x1+block_size: y2=y1;
с. F_MB_3 (x3, y3); где x3=x1+block_size; y3=y1+block_size;
d. F_MB_4 (x4, y4); где x4-x1; y4=у1+block_size;
6. Поиск вплоть до четырех зон, находящихся в пределах четырех макроблоков F-кадра (F_MB), покрытых макроблоком, отцентрированным по (x+dx/2, y+dy/2), и связанных со всеми вычисленными зонами с вектором движения (dx/2, dy/2):
a. Area_MB_1=(block_size-(x+dx/2-xl)) * (block_size-(y+dy/2-y1))
b. Area_MB_2=(block_size-(x+dx/2-x2)) * (block_size-(y+dy/2-y2))
с. Area_MB_3=(block_size-(x+dx/2-x3)) * (block_size-(y+dy/2-y3))
d. Area_MB_4=(block_size-(x+dx/2-x4)) * (block_size-(y+dy/2-y4));
7. Для каждого макроблока F-кадра (F_MB) выбирается вектор движения, который предоставляет наибольшую зону.
Назначение взвешенного усредненного вектора движения:
Еще в одном варианте осуществления назначение векторов движения основано на взвешенном среднем числе макроблоков, которые покрывают макроблок. Этапы приведены ниже:
1) Текущий макроблок (x/block_size. y/block_size) находится в текущем кадре, где (x, y) являются координатами местоположения его центрального элемента изображения;
2) Текущий вектор движения (dx, xy) принадлежит макроблоку (x, y);
3) Пропорциональное масштабирование вектора движения в случае 1:2 FRUC равно (dx/2, dy/2);
4) Вектор движения (dx, dy) проходит через F-кадр, перекрестное местоположение в F-кадре равно (x+dx/2, y+dy/2);
5) Поиск вплоть до четырех макроблоков в наложении b F-кадра с макроблоком, отцентрированным по (x+dx/2, y+dy/2):
a. F_MB_1 (x1, y1); x1=((int) (x+dx/2)/block_size) * block_size+block_size/2; y1=((int) (y+dy/2)/block_size) * block_size+block_size/2;
b. F_MB_2 (x2, y2); x2=x1+block_size; y2=y1;
с. F_MB_3 (x3, у3); х3=x1+block_size; y3=y1+block_size;
d. F_MB_4 (x4, y4); x4=x1; y4=y1+block_size;
6. Поиск вплоть до четырех зон, находящихся в пределах четырех макроблоков F-кадра (F_MB), покрытых макроблоком, отцентрированным по (x+dx/2, y+dy/2), и связанных со всеми вычисленными зонами с вектором движения (dx/2, dy/2):
a. Area_MB_1=(block_size-(x+dx/2-x1))*(block_size-(y+dy/2-yl))
b. Area_MB_2=(block_size-(x+dx/2-x2))*(block_size-(y+dy/2-y2))
с. Area_MB_3=(block_size-(x+dx/2-x3))*(block_size-(y+dy/2-y3))
d. Area_MB_4=(block_size-(x+dx/2-x4))*(block_size-(y+dy/2-y4));
7. Если N векторов движения проходят через макроблок F-кадра (F_MB), то взвешенный вектор движения назначается на макроблок F-кадра (F_MB):
MV=w_1*MV1+w_2*MV_2 +…. +w_N*MV_N,
где w_i является взвешенным коэффициентом.
На этапе 628, где предварительно на этапе 608 было определено, что макроблок F-кадра не содержит никаких перекрывающихся векторов движения, система выполняет определение того, содержит ли макроблок F-кадра единственный проходящий через него вектор движения (то есть является ли единственным вектором движения, находящимся в обработанном наборе векторов движения). Если вектор движения является единственным находящимся в обработанном наборе вектором движения, то процесс переходит на этап 630, на котором выполняется традиционное назначение векторов движения. В противном случае макроблок F-кадра определяется в качестве не содержащего проходящих через него векторов движения и процесс переходит на этап 622, на котором в одном варианте осуществления вектор движения с нулевым значением назначается на макроблок F-кадра. В другом варианте осуществления, как отмечено на этапе 624, макроблоку F-кадра назначается вектор движения, который является средним числом доступных векторов движения, граничащих с макроблоком. Еще в одном варианте осуществления, как отмечено на этапе 626, макроблоку F-кадра назначается вектор движения, который является средним значением доступных векторов движения, граничащих с макроблоком.
Должно быть отмечено, что несмотря на то что изображенный на Фиг.6 процесс назначения векторов движения начинается с исследования того, является ли макроблок F-кадра макроблоком перекрывающейся зоны, процесс должен быть условлен для одинакового применения и в случае, если макроблок F-кадра является макроблоком пустой зоны, и в случае, если присутствует только один вектор движения, проходящий через макроблок F-кадра, и такие изменения потока процесса являются благоприятными для осуществления в пределах возможностей специалистов в данной области техники.
Фиг.8 иллюстрирует процесс назначения векторов движения, основанный на элементах изображения вместо основанного на блоках, для системы 300 FRUC, где подобно изображенному на Фиг.6 этапу 604 на этапе 806 выполняется определение того, существуют ли карты содержания для опорных кадров. Если карты содержания для опорных кадров существуют, то подобно изображенному на Фиг.6 этапу 606 на этапе 808 исключаются любые граничащие векторы движения, начинающиеся и заканчивающиеся в различных классах содержания. Затем процесс переходит на этап 816, на котором выполняется определение того, является ли элемент изображения перекрывающимся. Если элемент изображения является перекрывающимся, то процесс переходит на этап 818, на котором медианный вектор движения на основании среднего значения перекрывающихся векторов движения, которые не были исключены на основании различных классов содержания конечных точек, назначается на элемент изображения. В другом варианте осуществления, как отмечено на этапе 820, усредненный вектор движения на основании среднего значения перекрывающихся векторов движения, которые не были исключены на основании различных классов содержания конечных точек, назначается на элемент изображения.
Если F-кадр элемента изображения не является перекрывающейся областью, то на этапе 828 выполняется определение того, является ли единственным проходящий через элемент изображения вектор движения. Если проходящий через элемент изображения вектор движения является единственным, то процесс переходит на этап 830, на котором элементу изображения назначается проходящий через него вектор движения. В противном случае элемент изображения определяется в качестве пустой зоны и процесс переходит на этап 822, на котором медианный вектор движения на основании среднего значения соседних векторов движения назначается на элемент изображения. В другом варианте осуществления, как отмечено на этапе 820, усредненный вектор движения на основании среднего значения соседних векторов движения назначается на элемент изображения. Должно быть отмечено, что соседние векторы движения, которые могут использоваться при назначении усредненного и медианного векторов движения, могут быть подвергнуты исключению на основании различных классов содержания начальных и конечных точек.
Фиг.9 изображает блок-схему терминала 902х доступа и точки 904х доступа в системе беспроводной связи. «Терминал доступа», как обсуждается в настоящем документе, относится к устройству, предоставляющему возможность установления голосовой и/или информационной связи с пользователем. Терминал доступа может быть соединен с вычислительным устройством, например ноутбуком или настольным (персональным) компьютером, или он может сам содержать подобные устройства, например «карманный» компьютер. Терминал доступа также может называться абонентским модулем, мобильной станцией, мобильным телефоном, удаленной станцией, удаленным терминалом, пользовательским терминалом, пользовательским агентом или пользовательским оборудованием. Терминал доступа может являться абонентским терминалом, устройством беспроводной связи, сотовым телефоном, телефоном персональной мобильной связи, радиотелефоном, телефоном, использующим протокол инициации сеанса (SIP), станцией беспроводного абонентского доступа (WLL), «карманным» компьютером» (PDA), портативным устройством, имеющим возможность беспроводной связи, или другим устройством для обработки, соединенным с радиомодемом. «Точка доступа», как обсуждается в настоящем документе, относится к устройству, находящемуся в сети доступа, которое обменивается данными с терминалами доступа по радиоинтерфейсу через один или несколько секторов. Точка доступа функционирует в качестве маршрутизатора, находящегося между терминалом доступа и остальной частью сети доступа, которая может включать в себя IP-сеть, посредством преобразования принятых по радиоинтерфейсу кадров в IP-пакеты. Точка доступа также координирует управление атрибутами для радиоинтерфейса.
В случае с обратной линией связи процессор 914 передачи данных (TX),находящийся в терминале 902х доступа, принимает трафик от буфера 912 данных, обрабатывает (например, кодирует, чередует и преобразовывает символы) каждый пакет данных на основании выбранной схемы кодирования и модуляции и предоставляет символы данных. Символ данных является символом модуляции для данных, а пилот-символ является символом модуляции для пилота (который известен априори). Модулятор 916 принимает символы данных, пилот-символы и, возможно, выполняет передачу сигналов по обратной линии связи, выполняет модуляцию (например, OFDM) и/или другую обработку, как определено системой, а также предоставляет поток выходных элементов. Передатчик 918 (TMTR) обрабатывает (например, преобразовывает в аналоговый тип, фильтрует, усиливает и повышает частоту) поток выходных элементов и формирует модулированный сигнал, который передается с антенны 920.
В точке 904х доступа модулированные сигналы передаются посредством терминала 902х доступа, а другие терминалы, соединенные с точкой 904х доступа, осуществляют прием посредством антенны 952. Приемник 954 (RCVR) обрабатывает (например, определяет состояния и оцифровывает) принятый с антенны 952 сигнал и предоставляет принятые образцы. Демодулятор 956 (Demod) обрабатывает (например, демодулирует и выполняет поиск), принятые образцы и предоставляет обнаруженные символы данных, которые являются шумовой оценкой символов данных, переданных терминалами на точку 904х доступа. Процессор 958 приема данных (RX) обрабатывает (например, выполняет обратное преобразование символа, обратное чередование и декодирование) обнаруженные символы данных для каждого терминала и предоставляет декодированные данные для того терминала.
В случае с прямой линией связи в точке 904х доступа данные трафика обрабатываются процессором 960 передачи данных (TX) для формирования символов данных. Модулятор 962 принимает символы данных, пилот-символы и передает сигналы по прямой линии связи, выполняет модуляцию (например, OFDM) и/или другую подходящую обработку и предоставляет поток выходных элементов, который далее обрабатывается передатчиком 964 и передается с антенны 952. Передача сигналов по прямой линии связи может включать в себя команды управления мощностью, сформированные контроллером 970 для всех терминалов, выполняющих передачу по обратной линии связи на точку 904х доступа. В терминале 902х доступа модулированный сигнал, переданный точкой 904х доступа, принимается антенной 920, обрабатывается и оцифровывается приемником 922, а также обрабатывается демодулятором 924 для получения обнаруженных символов данных. Процессор 926 приема данных (RX) обрабатывает обнаруженные символы данных и предоставляет декодированные данные для терминала и выполняет передачу сигналов по прямой линии связи. Контроллер 930 принимает команды управления мощностью и управляет передачей данных и передачей мощности по обратной линии связи на точку 904х доступа. Контроллеры 930 и 970 управляют процессом работы терминала 902х доступа и точки 904х доступа соответственно. Модули 932 и 972 памяти сохраняют управляющие программы и данные, используемые контроллерами 930 и 970 соответственно.
Раскрытые варианты осуществления могут быть применены к любой технологии или их комбинациям: системам множественного доступа с кодовым разделением каналов (CDMA), многочастотного множественного доступа с кодовым разделением каналов (MC-CDMA), широкополосного множественного доступа с кодовым разделением каналов (W-CDMA), высокоскоростной пакетный доступ по входящей линии связи (HSDPA), множественного доступа с временным разделением (TDMA), множественного доступа с частотным разделением (FDMA) и множественного доступа с ортогональным частотным разделением (OFDMA).
Раскрытые в настоящем документе этапы способа или алгоритма, описанного со ссылкой на варианты осуществления, могут быть реализованы непосредственно в аппаратных средствах, в выполняемом процессором программном модуле или в их комбинации. Программный модуль может постоянно находиться в памяти оперативного запоминающего устройства (RAM), флэш-памяти, памяти постоянного запоминающего устройства (ROM), памяти стираемого программируемого постоянного запоминающего устройства (EPROM), памяти электрически стираемого программируемого постоянного запоминающего устройства (EEPROM), регистрах, на жестком диске, съемном диске, на компакт-диске (CD-ROM) или любой другой формой носителей данных, известной в уровне техники. Иллюстративный носитель данных соединен с процессором таким образом, чтобы процессор мог считывать и записывать информацию на носитель данных. Альтернативно носитель данных может являться неотъемлемой частью процессора. Процессор и носитель данных могут постоянно находиться в специализированных интегральных схемах (ASIC). Специализированные интегральные схемы (ASIC) могут постоянно находиться в пользовательском терминале. Альтернативно процессор и носитель данных могут постоянно находиться в пользовательском терминале в качестве дискретных (отдельных) компонентов.
Должно быть отмечено, что описанные в настоящем документе способы могут быть реализованы в разнообразном коммуникационном оборудовании, процессорах и системах, известных специалистам в данном уровне техники. Например, общим требованием к клиенту для работы, как описано в настоящем документе, является то, чтобы клиент имел устройство отображения для отображения содержания и информации, процессор для управления процессом работы клиента и запоминающее устройство для хранения данных и программ, связанных с работой клиента. В одном варианте осуществления клиентом является сотовый телефон. В другом варианте осуществления клиентом является портативный компьютер, имеющий возможности связи. Еще в одном варианте осуществления клиентом является персональный компьютер, имеющий возможности связи. Кроме того, аппаратные средства, например приемник GPS, по мере необходимости могут быть включены в состав клиента для реализации описанных в настоящем документе различных вариантов осуществления. Различные раскрытые в настоящем документе иллюстративные логики, логические блоки, модули и схемы, описанные со ссылкой на варианты осуществления, могут быть осуществлены или выполнены с универсальным процессором, процессором для цифровой обработки сигналов (DSP), специализированной интегральной схемой (ASIC), программируемой вентильной матрицей (FPGA) или другим программируемым логическим устройством, логическими элементами на дискретных компонентах или логикой транзистора, дискретными компонентами аппаратных средств или любой их комбинацией, разработанной для выполнения описанных в настоящем документе функций. Универсальный процессор может являться микропроцессором, но альтернативно процессор может являться любым обычным процессором, контроллером, микроконтроллером или конечным автоматом. А также процессор может быть реализован в качестве комбинации вычислительных устройств, например комбинации процессора для цифровой обработки сигналов (DSP) и микропроцессора, множества микропроцессоров, одного или нескольких микропроцессоров совместно с ядром процессора для цифровой обработки сигналов (DSP) или любой другой подобной конфигурации.
Различные раскрытые в настоящем документе иллюстративные логики, логические блоки, модули и схемы, описанные со ссылкой на варианты осуществления, могут быть реализованы или выполнены с универсальным процессором, процессором для цифровой обработки сигналов (DSP), специализированной интегральной схемой (ASIC), программируемой вентильной матрицей (FPGA) или другим программируемым логическим устройством, логическими элементами на дискретных компонентах или логикой транзистора, дискретными компонентами аппаратных средств или любой их комбинацией, разработанной для выполнения описанных в настоящем документе функций. Универсальный процессор может являться микропроцессором, но альтернативно процессор может являться любым обычным процессором, контроллером, микроконтроллером или конечным автоматом. А также процессор может быть реализован в качестве комбинации вычислительных устройств, например комбинации процессора для цифровой обработки сигналов (DSP) и микропроцессора, множества микропроцессоров, одного или нескольких микропроцессоров совместно с ядром процессора для цифровой обработки сигналов (DSP) или любой подобной конфигурации.
Вышеописанные варианты осуществления являются иллюстративными вариантами осуществления. Теперь специалисты в данной области техники могут делать множество изменений, отступая от вышеописанных вариантов осуществления, но не отступая от раскрытых в настоящем документе идей изобретения. Различные модификации этих вариантов осуществления могут являться очевидными специалистам в данной области техники, и определенные в настоящем документе общие принципы могут быть применены к другим вариантам осуществления, например службе мгновенного обмена сообщениями или любым общим применениям беспроводной связи, не отступая от сущности или объема новых описанных в настоящем документе аспектов. Таким образом, объем новых аспектов вариантов осуществления не предназначен для ограничения показанными в настоящем документе вариантами осуществления и соответствует самому широкому объему, совместимому с принципами и новыми раскрытыми в настоящем документе особенностями. Слово «иллюстративный» используется в настоящем документе исключительно для обозначения «служить примером, исключением или иллюстрацией». Любой описанный в настоящем документе «иллюстративный» вариант осуществления не обязательно должен рассматриваться в качестве предпочтительного или выгодного по отношению к другим вариантам осуществления. Соответственно объем новых аспектов вариантов осуществления определяется исключительно объемом нижеследующей формулы изобретения.
Формула изобретения
1. Способ обработки множества векторов движения для видеокадра, интерполируемого с использованием первого опорного кадра и второго опорного кадра, причем каждый опорный кадр содержит карту содержания, содержащий этапы, на которых: делят видеокадр, интерполируемый во множество зон; определяют количество векторов движения, проходящих через одну из множества зон, на основании карт содержания первого опорного кадра и второго опорного кадра; и формируют вектор движения для назначения на одну зону на основании количества векторов движения, проходящих через одну зону.
2. Способ по п.1, в котором этап деления интерпретируемого во множество зон видеокадра содержит этап деления видеокадра, интерпретируемого во множество неперекрывающихся зон.
3. Способ по п.1, в котором этап деления интерпретируемого во множество зон видеокадра содержит этап деления видеокадра, интерпретируемого во множество перекрывающихся зон.
4. Способ по п.1, а котором этап формирования вектора движения для одной зоны на основании количества проходящих через одну зону векторов движения содержит этап выбора одного из множества проходящих через одну зону векторов движения.
5. Способ по п.1, в котором этап деления интерпретируемого во множество зон видеокадра содержит этап деления видеокадра, интерпретируемого во множество зон постоянного размера.
6. Способ по п.1, в котором этап деления интерпретируемого во множество зон видеокадра содержит этап деления видеокадра, интерпретируемого во множество зон различных размеров.
7. Способ по п.1, в котором этап деления интерпретируемого во множество зон видеокадра содержит этап деления видеокадра, интерпретируемого во множество элементов изображения.
8. Способ по п.1, в котором этап определения количества проходящих через одну из множества зон векторов движения на основании карт содержания первого опорного кадра и второго опорного кадра, содержащий этапы, на которых: для каждого проходящего через одну зону вектора движения: определяют класс содержания начальной точки вектора движения и класс содержания конечной точки вектора движения; сравнивают класс содержания начальной точки вектора движения и класс содержания конечной точки вектора движения; и удаляют вектор движения из рассматриваемого количества проходящих через одну зону векторов движения, если класс содержания начальной точки вектора движения и класс содержания конечной точки вектора движения являются различными.
9. Способ по п.1, в котором этап формирования вектора движения для назначения на одну зону на основании количества проходящих через одну зону векторов движения содержит этапы вычисления среднего значения любых доступных соседних векторов движения и медианы любых доступных векторов движения; и назначения одной зоне вектора движения, выбранного из группы, состоящей из: (i) нулевого вектора движения, (ii) среднего значения любых доступных соседних векторов движения и (iii) медианы любых доступных соседних векторов движения; если количество проходящих через одну зону векторов движения равно нулю.
10. Способ по п.1, в котором этап формирования вектора движения для назначения на одну зону на основании количества проходящих через одну зону векторов движения содержит этап назначения одной зоне вектора движения, выбранного из группы, состоящей из: (i) вектора движения центрального элемента изображения, (ii) вектора движения наиболее перекрытой зоны, (iii) взвешенного вектора движения и (iv) усредненного вектора движения; если количество проходящих через одну зону векторов движения является большим единицы.
11. Способ по п.1, в котором карта содержания содержит множество классов содержания.
12. Способ по п.11, в котором множество классов содержания содержит класс содержания фона.
13. Способ по п.12, в котором класс фона содержит класс появляющегося объекта, класс исчезающего объекта и класс статичного фона.
14. Способ по п.11, в котором множество классов содержания содержит класс содержания движущегося объекта.
15. Способ по п.11, в котором множество классов содержания содержит класс содержания границ.
16. Машиночитаемый носитель содержит сохраненные на нем команды для выполнения компьютером способа для обработки множества векторов движения для интерполируемого видеокадра с использованием первого опорного кадра и второго опорного кадра, причем каждый опорный кадр содержит карту содержания, способ, содержащий этапы, на которых: делят видеокадр, интерпретируемый во множество зон; определяют количество проходящих через одну из множества зон векторов движения на основании карт содержания первого опорного кадра и второго опорного кадра; и формируют вектор движения для назначения на одну зону на основании количества проходящих через одну зону векторов движения.
17. Машиночитаемый носитель по п.16, в котором этап деления интерпретируемого во множество зон видеокадра содержит этап деления видеокадра, интерпретируемого во множество неперекрывающихся зон.
18. Машиночитаемый носитель по п.16, в котором этап деления интерпретируемого во множество зон видеокадра содержит этап деления видеокадра, интерпретируемого во множество перекрывающихся зон.
19. Машиночитаемый носитель по п.16, в котором этап формирования вектора движения для одной зоны на основании количества проходящих через одну зону векторов движения содержит этап выбора одного из множества проходящих через одну зону векторов движения.
20. Машиночитаемый носитель по п.16, в котором этап деления интерпретируемого во множество зон видеокадра содержит этап деления видеокадра, интерпретируемого во множество зон постоянного размера.
21. Машиночитаемый носитель по п.16, в котором этап деления интерпретируемого во множество зон видеокадра содержит этап деления видеокадра, интерпретируемого во множество зон различных размеров.
22. Машиночитаемый носитель по п.16, в котором этап деления интерпретируемого во множество зон видеокадра содержит этап деления видеокадра, интерпретируемого во множество элементов изображения.
23. Машиночитаемый носитель по п.16, в котором этап определения количества проходящих через одну из множества зон векторов движения на основании карт содержания первого опорного кадра и второго опорного кадра включает в себя этапы, на которых: для каждого проходящего через одну зону вектора движения; определения класса содержания начальной точки вектора движения и класса содержания конечной точки вектора движения; сравнения класса содержания начальной точки вектора движения и класса содержания конечной точки вектора движения; и удаления вектора движения из рассматриваемого количества проходящих через одну зону векторов движения, если класс содержания начальной точки вектора движения и класс содержания конечной точки вектора движения являются различными.
24. Машиночитаемый носитель по п.16, в котором этап формирования вектора движения для назначения на одну зону на основании количества проходящих через одну зону векторов движения содержит этап назначения одной зоне вектора движения, выбранного из группы, состоящей из: (i) нулевого вектора движения, (ii) среднего числа любых доступных соседних векторов движения и (iii) медианы любых доступных соседних векторов движения; если количество проходящих через одну зону векторов движения равно нулю.
25. Машиночитаемый носитель по п.16, в котором этап формирования вектора движения для назначения на одну зону на основании количества проходящих через одну зону векторов движения содержит этап назначения одной зоне вектора движения, выбранного из группы, состоящей из: (i) вектора движения центрального элемента изображения, (ii) вектор движения наиболее перекрытой зоны, (iii) взвешенного вектора движения и (iv) усредненного вектора движения; если количество проходящих через одну зону векторов движения является большим единицы.
26. Машиночитаемый носитель по п.16, в котором карта содержания содержит множество классов содержания.
27. Машиночитаемый носитель по п.26, в котором множество классов содержания содержит класс содержания фона.
28. Машиночитаемый носитель по п.27, в котором класс фона содержит класс появляющегося объекта, класс исчезающего объекта и класс статичного фона.
29. Машиночитаемый носитель по п.26, в котором множество классов содержания содержит класс содержания движущегося объекта.
30. Машиночитаемый носитель по п.26, в котором множество классов содержания содержит класс содержания границ.
31. Устройство для обработки множества векторов движения для видеокадра, интерполируемого с использованием первого опорного кадра и второго опорного кадра, причем каждый опорный кадр содержит карту содержания, содержащее: средство для деления видеокадра, интерпретируемого во множество зон; средство для определения количества векторов движения, проходящих через одну из множества зон, на основании карт содержания первого опорного кадра и второго опорного кадра; и средство для формирования вектора движения для назначения на одну зону на основании количества проходящих через одну зону векторов движения.
32. Устройство по п.31, в котором средство для деления интерпретируемого во множество зон видеокадра содержит средство для деления видеокадра, интерпретируемого во множество неперекрывающихся зон.
33. Устройство по п.31, в котором средство для деления интерпретируемого во множество зон видеокадра содержит средство для деления видеокадра, интерпретируемого во множество перекрывающихся зон.
34. Устройство по п.31, в котором средство для формирования вектора движения для одной зоны на основании количества проходящих через одну зону векторов движения содержит средство для выбора одного из множества проходящих через одну зону векторов движения.
35. Устройство по п.31, в.котором средство для деления интерпретируемого во множество зон видеокадра содержит средство для деления видеокадра, интерпретируемого во множество зон постоянного размера.
36. Устройство по п.31, в котором средство для деления интерпретируемого во множество зон видеокадра содержит средство для деления видеокадра, интерпретируемого во множество зон различных размеров.
37. Устройство по п.31, в котором средство для деления интерпретируемого во множество зон видеокадра содержит средство для деления видеокадра, интерпретируемого во множество элементов изображения.
38. Устройство по п.31, в котором средство для определения количества проходящих через одну из множества зон векторов движения на основании карт содержания первого опорного кадра и второго опорного кадра, содержащее: средство для определения класса содержания начальной точки вектора движения и класса содержания конечной точки вектора движения; средство для сравнения класса содержания начальной точки вектора движения с классом содержания конечной точки вектора движения; и средство для удаления вектора движения из рассматриваемого множества проходящих через одну зону векторов движения, если класс содержания начальной точки вектора движения и класс содержания конечной точки вектора движения являются различными.
39. Устройство по п.31, в котором средство для формирования вектора движения для назначения на одну зону на основании количества проходящих через одну зону векторов движения содержит средство для назначения одной зоне вектора движения, выбранного из группы, состоящей из: (i) нулевого вектора движения, (ii) среднего числа любых доступных соседних векторов движения и (iii) медианы любых доступных соседних векторов движения; если количество проходящих через одну зону векторов движения равно нулю.
40. Устройство по п.31, в котором средство для формирования вектора движения для назначения на одну зону на основании количества проходящих через одну зону векторов движения содержит средство для назначения одной зоне вектора движения, выбранного из группы, состоящей из: (i) вектора движения центрального элемента изображения, (ii) вектор движения наиболее перекрытой зоны, (iii) взвешенного вектора движения и (iv) усредненного вектора движения; если количество проходящих через одну зону векторов движения, является большим единицы.
41. Устройство по п.31, в котором карта содержания содержит множество классов содержания.
42. Устройство по п.41, в котором множество классов содержания содержит класс содержания фона.
43. Устройство по п.42, в котором класс фона содержит класс появляющегося объекта, класс исчезающего объекта и класс статичного фона.
44. Устройство по п.41, в котором множество классов содержания содержит класс содержания движущегося объекта.
45. Устройство по п.41, в котором множество классов содержания содержит класс содержания границ.
46. Процессор, выполненный с возможностью осуществления способа обработки множества векторов движения для видеокадра, интерполируемого с использованием первого опорного кадра и второго опорного кадра, причем каждый опорный кадр содержит карту содержания, способ, содержащий этапы, на которых: делят видеокадр, интерпретируемый во множество зон; определяют количество проходящих через одну из множества зон векторов движения на основании карт содержания первого опорного кадра и второго опорного кадра; и формируют вектор движения для назначения на одну зону на основании количества проходящих через одну зону векторов движения.
47. Процессор по п.46, в котором этап деления интерпретируемого во множество зон видеокадра содержит этап деления видеокадра, интерпретируемого во множество неперекрывающихся зон.
48. Процессор по п.46, в котором этап деления интерпретируемого во множество зон видеокадра содержит этап деления видеокадра, интерпретируемого во множество перекрывающихся зон.
49. Процессор по п,46, в котором этап формирования вектора движения для одной зоны на основании количества проходящих через одну зону векторов движения содержит этап выбора одного из множества проходящих через одну зону векторов движения.
50. Процессор по п.46, в котором этап деления интерпретируемого во множество зон видеокадра содержит этап деления видеокадра, интерпретируемого во множество зон постоянного размера.
51. Процессор по п.46, в котором этап деления интерпретируемого во множество зон видеокадра содержит этап деления видеокадра, интерпретируемого во множество зон различных размеров.
52. Процессор по п.46, в котором этап деления интерпретируемого во множество зон видеокадра содержит этап деления видеокадра, интерпретируемого во множество элементов изображения.
53. Процессор по п.46, в котором этап определения количества проходящих через одну из множества зон векторов движения на основании карт содержания первого опорного кадра и второго опорного кадра содержит этапы, на которых для каждого проходящего через одну зону вектора движения: определяют класс содержания начальной точки вектора движения и класс содержания конечной точки вектора движения; сравнивают класс содержания начальной точки вектора движения с классом содержания конечной точки вектора движения; и удаляют вектор движения из рассматриваемого множества проходящих через одну зону векторов движения, если класс содержания начальной точки вектора движения и класс содержания конечной точки вектора движения являются различными.
54. Процессор по п.46, в котором этап формирования вектора движения для назначения на одну зону на основании количества проходящих через одну зону векторов движения содержит этап назначения одной зоне вектора движения, выбранного из группы, состоящей из: (i) нулевого вектора движения, (ii) среднего числа любых доступных соседних векторов движения и (iii) медианы любых доступных соседних векторов движения; если количество проходящих через одну зону векторов движения равно нулю.
55. Процессор по п.46, в котором этап формирования вектора движения для назначения на одну зону на основании количества проходящих через одну зону векторов движения содержит этап назначения одной зоне вектора движения, выбранного из группы, состоящей из: (i) вектора движения центрального элемента изображения, (ii) вектора движения наиболее перекрытой зоны, (iii) взвешенного вектора движения и (iv) усредненного вектора движения; если количество проходящих через одну зону векторов движения является большим единицы.
56. Процессор по п.46, в котором карта содержания содержит множество классов содержания.
57. Процессор по п.56, в котором множество классов содержания содержит класс содержания фона.
58. Процессор по п.57, в котором класс фона содержит класс появляющегося объекта, класс исчезающего объекта и класс статичного фона.
59. Процессор да п.56, в котором множество классов содержания содержит класс содержания движущегося объекта.
60. Процессор по п.56, в котором множество классов содержания содержит класс содержания границ.
РИСУНКИ
|
|