Способ стабилизации видеоизображения для многофункциональных платформ

Иллюстрации

Показать все

Изобретение относится к области обработки цифрового сигнала. Технический результат - обеспечение стабилизации цифрового видеоизображения. Способ стабилизации цифрового видео содержит этапы, на которых анализируют компьютерное устройство для определения доступности любого из различных мультимедийных компонентов обработки цифрового сигнала (DSP); определяют какой доступный мультимедийный компонент DSP использовать для по меньшей мере одной части стабилизации цифрового видео, причем стабилизация цифрового видео содержит, по меньшей мере, оценку векторов локального движения, обработку оценочных векторов локального движения для расчета преобразования глобального движения, деформирование изображения на основе преобразования глобального движения для компенсации движения вибрации видео; выполняют стабилизацию цифрового видео в отношении сегмента видео на компьютерном устройстве с использованием упомянутого определенного доступного мультимедийного компонента DSP для упомянутой по меньшей мере одной части стабилизации цифрового видео. 3 н. и 22 з.п. ф-лы, 13 ил.

Реферат

Предшествующий уровень техники

Все более и более распространено включение возможностей видеокамеры в многоцелевые, небольшие и легкие портативные электронные устройства, такие как мобильные телефоны, компактные фотокамеры и мультимедийные проигрыватели. В отличие от больших специализированных записывающих видеокамер, в таких многоцелевых портативных устройствах, как правило, отсутствует какой-либо механический или оптический механизм для уменьшения движения вибрации видео вследствие дрожащей или нетвердой руки. Вследствие их более легкого веса и характерного для них использования широкоугольной линзы, многоцелевые портативные устройства могут быть более восприимчивы к движению вибрации видео вследствие дрожания руки. Кроме того, поскольку доступность этих недорогих многоцелевых портативных устройств увеличивает популярность выполнения видеосъемки за рамками сообщества видеооператоров-любителей и профессионалов, все чаще бытовое видео производится посредством пользователей, имеющих очень малый опыт и навык съемки качественного видео. Также, среди потребителей растет популярность обмена короткими видеоклипами по сети Интернет через электронную почту, блоги, вебсайты для обмена видео и сайты социальных сетей. В частности, пользователи, которые не являются профессиональными видеооператорами или людьми, увлеченными таким хобби, часто выгружают видеоклипы на вебсайт (иногда непосредственно с устройства видеозахвата) без какого-либо редактирования или иной обработки. Вследствие этих разных причин, качество видеоклипов, которыми обмениваются по сети, очень часто является очень низкими, и, как правило, видеоклипы страдают от движения вибрации видео вследствие дрожания руки.

Стабилизация цифрового видеоизображения является технологией обработки цифрового сигнала, которая может быть применена к видео для коррекции движения вибрации видео вследствие дрожания руки. В одном иллюстративном варианте реализации, технология охватывает вычисление оценки локального движения для макро-блоков каждого изображения последовательности видеокадров относительно их предыдущего изображения; обработку векторов локального движения макро-блоков для произведения оценки глобального движения вследствие вибрации; а затем, компенсацию движения вибрации видео посредством смещения или искажения изображения в направлении, противоположном расчетному движению вибрации.

Один недостаток известной цифровой стабилизации видеоизображения заключается в том, что технология является довольно интенсивной в вычислительном отношении. При загрузке видео в блог, на сайт обмена видео или сайт социальной сети, видео может быть загружено из устройств, возможности по обработке которых варьируются. Кроме того, случайный пользователь больше может быть заинтересован в срочности быстрой публикации на сайте обмена видео или социальной сети, так что какая-либо продолжительная обработка видео не является желательной. Например, видео может быть загружено непосредственно с многоцелевого портативного устройства, как например, по сотовой сети связи. Однако, многоцелевое портативное устройство (такое как мобильный телефон) часто имеет ограниченные ресурсы обработки или должно совместно использовать ресурсы обработки с другими возможностями многоцелевого устройства. Альтернативно, портативное устройство также может быть соединено с персональным компьютером (PC), ноутбуком, нетбуком или с подобными устройствами с возможностью подключения к сети Интернет для выгрузки видео на сайт обмена видео или социальной сети. Однако, эти PC, соединенные с сетью Интернет, также сильно варьируются по способности обработки ресурсов. Кроме того, в интересах срочности, какие-либо задержки в обработке во время публикации через устройство, соединенное с сетью Интернет, могут быть нежелательными.

По этим причинам, будет полезной и желательной технология стабилизации видеоизображения, которая эффективно работает на всех различных доступных вычислительных платформах.

Сущность изобретения

Вкратце, подробное описание, в целом, относится к обработке цифрового видео для стабилизации изображения в отношении последовательности видеокадров.

Следующее подробное описание касается систем и способов, которые реализуют стабилизацию видео на многофункциональной платформе, которые эффективно используют доступные компоненты обработки мультимедийного цифрового сигнала для обеспечения лучшей производительности. Например, стабилизация видео на многофункциональной платформе программируется в исполняемую библиотеку, которая предоставляет функции программирования для использования любого из различных компонентов обработки мультимедийного цифрового сигнала, которые могут быть предоставлены на вычислительных устройствах, имеющих многофункциональную платформу. Вариант реализации стабилизации видео работает на многофункциональной платформе посредством анализа вычислительного устройства, на котором она выполняется, на предмет каких-либо доступных компонентов обработки мультимедийного цифрового сигнала на вычислительном устройстве. Затем, вариант реализации стабилизации видео на многофункциональной платформе определяет, какой доступный компонент или компоненты обработки мультимедийного цифрового сигнала использовать для обработки одной или нескольких частей стабилизации видео, в соответствии с иерархической структурой, которая упорядочивает компоненты обработки мультимедийного цифрового сигнала посредством критериев, включающих в себя, по меньшей мере, производительность стабилизации видеоизображения. Затем, вариант реализации обрабатывает видео для стабилизации видеоизображения, включая выполнение функций исполняемых библиотек с использованием определенных мультимедийных компонентов обработки цифрового сигнала на этих частях обработки стабилизации видеоизображения.

В некоторых вариантах реализации, представленных в следующем подробном описании, стабилизация видеоизображения использует форму оценки вектора локального движения, которая выделяет последовательность векторов движения среди соседних блоков видеокадра. В этой оценке вектора локального движения, кадр и его эталонный кадр подвергаются субдискретизации в один или в несколько раз для формирования множества версий кадра и эталонного кадра с множеством разрешений. Версия кадра с самым низким разрешением имеет множество блоков, связанных в виде пирамидальной структуры с последовательно большим количеством блоков в соответствующих положениях в каждой версии кадра с более высоким разрешением. Процесс оценки векторов движения начинается с версии кадра с самым низким разрешением, а именно с оценки векторов движения блоков версии кадра с самым низким разрешением с использованием полного поиска по ассоциированной версии эталонного кадра с самым низким разрешением. Затем, для каждой версии кадра с последовательно более высоким разрешением, векторы движения для блоков версии кадра с более высоким разрешением оцениваются с использованием детализированного поиска, начиная с вектора движения, оцененного для ассоциированного блока из предыдущей версии кадра с более низким разрешением, в соответствии с пирамидальной структурой. После повторения данной процедуры для каждой версии кадра с более высоким разрешением до версии кадра с полным разрешением, она производит оцененные векторы локального движения для блоков версии кадра с полным разрешением, которые лучше выделяют согласованность среди соседних блоков. Эта более согласованная оценка векторов локального движения лучше выделяет глобальное движение кадра.

В некоторых вариантах реализации, представленных в следующем подробном описании, стабилизация видеоизображения включает в себя способы обработки векторов движения для более надежной оценки глобального движения кадров в видео. Они включают в себя выбор набора векторов движения, которые более надежно отражают глобальное движение кадров, как например, посредством устранения векторов движения на границах изображения, устранения векторов движения, которые производят высокую остаточную погрешность компенсации движения, и векторов движения блоков с низкой дисперсией. Стабилизация видеоизображения также может включать в себя обнаружение и удаление посторонних векторов движения посредством оценки параметров глобального преобразования движения с использованием подхода согласования произвольной выборки. Стабилизация видеоизображения также может оценивать преобразование глобального движения на основе модели подобия движения, которая может лучше моделировать движение вибрации видео вследствие дрожания руки.

В некоторых вариантах реализации, представленных в следующем подробном описании, стабилизация видеоизображения также может ограничить оценку преобразования глобального движения, соответствующую движению вибрации видео, пороговыми значениями обнаружения и коррекции ошибок при оценке глобального движения. Стабилизация видеоизображения сравнивает параметры оцененного преобразования глобального движения двумя предельными значениями. Если верхнее предельное значение превышается, то оценка преобразования глобального движения сбрасывается. Если параметры превышают нижнее предельное значение, то параметры расчетного преобразования глобального движения ограничиваются их нижним предельным значением. В противном случае, оцененное преобразование глобального движения используется без изменений.

В некоторых вариантах реализации, представленных в следующем подробном описании, способ стабилизации видеоизображения выполняет оцененное для кадров временное сглаживание преобразований глобального движения.

Следующее подробное описание представляет варианты стабилизации видеоизображения, которые могут быть использованы в сценарии воспроизведения в режиме реального времени или транскодирования, а также изменения, подходящие для стабилизации видео в автономном (офлайновом) режиме. В режиме реального времени, стабилизация видеоизображения может быть выполнена с использованием однопроходной обработки векторов локального движения для получения оценок глобального движения кадров. В автономном режиме, стабилизация видеоизображения может выполнять двухпроходную обработку векторов движения. Например, первый проход обработки векторов движения может быть использован для сбора такой статистической информации о векторах движения, как вероятностные распределения векторов движения во всех кадрах сцены видеофрагмента. Эта статистическая информация может быть использована для адаптивного определения предельных значений, применяемых к оценке преобразования глобального движения. Информация из первого прохода также может быть использована во временном сглаживании преобразования глобального движения. Например, информация может быть использована для определения предельных значений ограничения для ограниченной глобальной оптимизации временного сглаживания. Кроме того, первый проход в автономном режиме также может быть использован для обнаружения изменений сцены в видеофрагменте.

Данное краткое изложение сущности изобретения предоставлено для введения подборки концепций в упрощенной форме, которые дополнительно описаны ниже в подробном описании. Это краткое изложение сущности изобретения не предназначено для идентификации ключевых признаков или существенных признаков заявленного изобретения, и, при этом, оно не предназначена для использования в качестве помощи в определении объема заявленного изобретения. Дополнительные признаки и преимущества изобретения будут очевидны из нижеследующего подробного описания вариантов осуществления, которое приведено со ссылкой на сопроводительные чертежи.

Краткое описание чертежей

Фиг.1 является схемой последовательности операций способа технологии стабилизации цифрового видеоизображения для многофункциональной платформы для наиболее эффективного использования доступных компонентов обработки мультимедийного цифрового сигнала, в соответствии с иерархией производительности вычислений.

Фиг.2 является схемой последовательности операций, состоящей из трех частей процесса стабилизации цифрового видеоизображения, в котором используются доступные компоненты обработки мультимедийного цифрового сигнала целевого вычислительного устройства в соответствии с иерархическим процессом использования из фиг.1.

Фиг.3 является графическим представлением, иллюстрирующим субдискретизацию видеокадра для оценки локального движения на основе блоков с пирамидальной структурой.

Фиг.4, 5, 6 и 7 являются графическими представлениями, иллюстрирующими иллюстративную обработку видеокадра для оценки локального движения на основе блоков с пирамидальной структурой

Фиг.8 является графическим представлением, иллюстрирующим модели преобразования глобального движения, включая модель подобия преобразования глобального движения, используемую для стабилизации цифрового видеоизображения.

Фиг.9 является схемой последовательности операций, иллюстрирующей такую однопроходную обработку векторов движения видеокадра для оценки преобразования глобального движения для движения вибрации вследствие дрожания руки, как для использования в стабилизации цифрового видеоизображения в режиме реального времени.

Фиг.10 является схемой последовательности операций, иллюстрирующей такую двухпроходную обработку векторов движения для видеокадра для оценки преобразования глобального движения для движения вибрации вследствие дрожания руки, как для использования в стабилизации цифрового видеоизображения в автономном режиме.

Фиг.11 является блок-схемой вычислительной среды, в которой могут быть осуществлены на практике технические приемы стабилизации цифрового видеоизображения.

Фиг.12 и 13 являются блок-схемами сетевой среды облачных вычислений, в которой могут быть осуществлены на практике технические приемы стабилизации цифрового видеоизображения.

Подробное описание изобретения

Следующее подробное описание касается систем и технических приемов для обеспечения стабилизации цифрового видеоизображения и, более конкретно, касается методик стабилизации цифрового видеоизображения, работающих на многофункциональной аппаратной вычислительной платформе при эффективном использовании доступных компонентов аппаратных средств обработки мультимедийного цифрового сигнала (DSP). Методики стабилизации цифрового видеоизображения могут быть осуществлены на практике при помощи множества аппаратных устройств, включая карманные и портативные вычислительные устройства, видеокамеры, мобильные телефоны, развлекательные приставки (такие как видеоигровые приставки и телевизионная приставка), различные сетевые клиентские компьютеры (например, персональные компьютеры, ноутбук, портативный компьютер и планшетные компьютеры), а также серверные компьютеры. Методики стабилизации цифрового видеоизображения также могут быть использованы во множестве сценариев использования и вычисления, включающих в себя обработку видео на специализированном устройстве видеозахвата, обработку видео на компьютере, не подключенном к сети, обработку видео на сетевом клиентском компьютере и обработку видео на серверном компьютере. Кроме того, различные части методик стабилизации цифрового видеоизображения могут выполняться параллельно или совместно на нескольких вычислительных устройствах, как например, помимо прочего, в случае архитектуры клиент-сервер, сетевой службы «облачных вычислений» или вычислительной структуры с одноранговыми узлами. Соответственно, следует понимать, что методики могут быть реализованы на множестве различных электронных и вычислительных устройств, включающих в себя как потребительские оконечные устройства, управляемые пользователями, так и серверные компьютеры, которые могут обеспечивать упомянутые методики как часть предлагаемого пользователям обслуживания.

Иерархический выбор мультимедийных компонентов DSP на многофункциональной платформе для стабилизации цифрового видеоизображения

Обработка видео, и, более конкретно, описанная в настоящем документе обработка согласно методикам стабилизации цифрового видеоизображения, является, разумеется, интенсивным в вычислительном отношении. С другой стороны, методики стабилизации цифрового видеоизображения могут быть осуществлены на множестве вычислительных устройств, конфигурация аппаратных средств обработки мультимедийных компонентов которых может широко варьироваться. Одно направление методик стабилизации цифрового видеоизображения, описанное в настоящем документе, для достижения лучшей потенциальной производительности и качества состоит в том, что методики оценивают целевое вычислительное устройство, на котором они выполняются, и выбирают использование доступных компонентов обработки мультимедийных данных в соответствии с иерархией, построенной таким способом, который учитывает один или несколько аспектов производительности, качества, энергопотребления, согласования и надежности. Таким образом, методики стабилизации цифрового видеоизображения разрабатываются для многофункциональной операционной платформы, а затем приспосабливаются для наилучшего использования возможностей обработки мультимедийных данных фактических целевых вычислительных аппаратных средств, на которых они работают.

В одном иллюстративном варианте реализации, методики стабилизации цифрового видеоизображения, описанные ниже, реализованы в исполняемой программе, которая должна исполняться на вычислительном устройстве (более подробно описанном ниже), такой как файл динамически подключаемой библиотеки (DLL) или как исполняемый файл прикладной программы. При реализации в виде DLL или другого исполняемого библиотечного файла, исполняемая программа реализует стабилизацию цифрового видеоизображения в виде ряда библиотечных функций и обеспечивает программный интерфейс для прикладных программ для реализации программного использования функциональных возможностей стабилизации цифрового видеоизображения посредством исполняемой программы. Исполняемая программа исполняется на многофункциональной платформе или в вычислительной среде, то есть исполняемая программа может исполняться на множестве компьютеров и вычислительных устройств, которые могут включать в себя изменяющиеся мультимедийные компоненты обработки цифровых сигналов (DSP).

Со ссылкой на фиг.1, библиотечная программа стабилизации цифрового видеоизображения изображения включает в себя программирование для выполнения обработки видео для стабилизации цифрового видеоизображения с использованием различных мультимедийных компонентов DSP, которые потенциально могут быть доступны на целевом вычислительном устройстве, на котором исполняется программа. Затем, программа настраивается для лучшего использования мультимедийных компонентов DSP с помощью иерархического процесса 100 использования мультимедийных данных. В первом действии 110 этого процесса 100, библиотечная программа анализирует мультимедийные компоненты DSP целевой вычислительной системы или устройства, на котором она была установлена и исполняется. Библиотечная программа может выполнять этот анализ посредством выполнения вызова службы (сервиса) операционной системы для запроса системной информации, посредством проверки системной информации, записанной в реестре или в другой системной базе данных, посредством вызова программных интерфейсов, связанных с мультимедийными компонентами DSP, посредством выполнения попытки доступа к мультимедийным компонентам DSP, либо посредством других аналогичных путей получения доступа к системной информации и/или запроса на предмет наличия компонентов аппаратных средств.

Затем, на основе результатов анализа в действии 110, библиотечная программа выполняет выбор мультимедийных компонентов DSP, которые определены как доступные на целевом вычислительном устройстве, в соответствии с иерархией обработки. В иллюстрируемом примере, библиотечная программа сначала выбирает использование любых доступных блоков микросхем ASIC, которые настроены для мультимедийной DSP в целевом вычислительном устройстве, как показано в действиях 120-121. Примеры таких существующих серийно выпускаемых блоков микросхем ASIC включают в себя видео карты от Intel (известные под названием Larrabee) и Nvidia (называемые Tesla). Если на целевом устройстве не доступен такой блока микросхем ASIC, то тогда библиотечная программа выбирает использование любого доступного блока обработки графической информации с возможностью шейдера на целевом устройстве, как показано в действиях 130-131. Если микросхема ASIC или компоненты шейдера GPU (графического процессора) не присутствуют, то библиотечная программа выбирает использование любого доступного многоядерного процессора или центрального процессора с усовершенствованным мультимедийным набором команд (например, команд SSEx). И наконец, если на целевом устройстве не доступен ни один из этих мультимедийных компонентов DSP с более высокой производительностью, то библиотечная программа прибегает к выполнению обработки видео при помощи методик стабилизации цифрового видеоизображения на одноядерном CPU (центральном процессоре) с использованием программирования на C/C++, как показано в действии 150. В других альтернативных вариантах реализации, могут быть использованы другие иерархии мультимедийных компонентов DSP на основе рассмотрения вышеупомянутых аспектов производительности, качества, энергопотребления, согласованности и надежности для мультимедийных компонентов DSP, которые, тогда, могут быть доступны в серийно выпускаемых аппаратных средствах вычислительных устройств многофункциональной платформы. Такие альтернативные варианты реализации могут включать в себя использование меньшего или дополнительного количества мультимедийных компонентов DSP, чем в иллюстрированном иерархическом процессе 100 использования мультимедийной DSP.

Стабилизация цифрового видеоизображения на многофункциональной платформе

Как проиллюстрировано на фиг.2, методики стабилизации цифрового видеоизображения выполняют обработку предметного видео, охватывающую, в целом, три части: оценку 210 локального движения, обработку 220 вектора движения для оценки преобразования глобального движения, соответствующего вибрации видео вследствие дрожания руки, и деформирование изображения для компенсации движения вибрации видео. Оценка 210 локального движения и деформирование 230 изображения являются интенсивными в вычислительном отношении, и наиболее целесообразно их выполнение с использованием выбора из любых доступных мультимедийных компонентов DSP на целевом вычислительном устройстве, выбираемых в соответствии с иерархическим использованием DSP, изображены на фиг.1 и обсужденным выше. Например, форма оценки 210 локального движения, которая особенно подходит для обработки с использованием шейдера GPU, может быть реализована в библиотечной программе и использоваться для осуществления соответствующей оценке локального движения части стабилизации цифрового видеоизображения, если целевое вычислительное устройство имеет возможность шейдера GPU среди доступных ему мультимедийных компонентов DSP. С другой стороны, библиотечная программа может включать в себя функциональные возможности для выполнения деформирования 230 изображения с использованием вызова API (прикладного программного интерфейса) D3D, если определено, что проанализированное целевое вычислительное устройство обладает этой возможностью среди доступных ему мультимедийных компонентов DSP. Вторая часть 220, а именно обработка векторов локального движения для оценки преобразования глобального движения, выполняется на центральном процессоре в иллюстративном варианте реализации.

ME (оценка движения) на основе блоков с пирамидальной структурой на GPGPU (устройстве обработки графической информации общего назначения)

В одном иллюстративном варианте реализации, библиотечная программа для стабилизации цифрового видеоизображения включает в себя программирование для реализации оценки 210 локального движения с использованием методики оценки движения на основе блоков с пирамидальной структурой, проиллюстрированной на фиг.3-7, которая особенно хорошо подходит для обработки в шейдере GPU (если определено, что он доступен на целевом вычислительном устройстве, посредством процесса 100, обсуждаемого выше). По сравнению с индивидуальной оценкой локального движения для блоков видеокадров с полным разрешением, методика оценки движения на основе блоков с пирамидальной структурой также выделяет глобальное движение видеокадра, что хорошо подходит для оценки всего глобального движения видеокадров для стабилизации цифрового видеоизображения.

Оценка движения на основе блоков с пирамидальной структурой выполняет оценку движения для каждого кадра видео относительно эталонного кадра. В целом, эталонный кадр является последовательным кадром (например, непосредственно предшествующим или последующим кадром) в последовательности видеокадров. Альтернативно, каждый третий кадр может быть использован в качестве эталона для следующих двух кадров видео, или может быть выполнен другой выбор эталонного кадра. Для оценки движения, видеокадр делится на сетку блоков с регулярной структурой, и оценка движения вычисляет вектор движения или смещение каждого блока видеокадра по отношению к близко соответствующему информационному содержимому изображения в эталонном кадре.

Оценка движения на основе блоков с пирамидальной структурой начинается посредством многократной субдискретизации разрешения как видеокадра, так и его эталонного кадра в два раза с использованием шейдера GPU вычислительного устройства, предназначенного для субдискретизации. В примере, изображенном на фиг.3, двукратная субдискретизация видеокадра и эталонного кадра выполняется трижды для создания версий видеокадра и эталонного кадра с полным разрешением, 1/2 разрешения, 1/4 разрешения и 1/8 разрешения. Субдискретизация видеокадра и эталонного кадра по разрешению может быть выполнена фиксированное количество раз, или субдискретизация может быть выполнена разное количество раз, в зависимости от размеров и исходного разрешения видеокадра, в соответствии с доступным пространством буфера изображения и ресурсами обработки вычислительного устройства. Альтернативно, субдискретизация видеокадра и эталонного кадра может быть выполнена меньше или больше раз, чем на примере, изображенном на фиг.3. Следует понимать, что пример, иллюстрированный на фиг.3, является исключительно иллюстративным, и фактические видеокадры, обрабатываемые посредством методик стабилизации цифрового видеоизображения, в целом, будут иметь большее количество пикселов и более высокое исходное разрешение, чем в изображенном примере.

Для каждого разрешения видеокадра, оценка движения на основе блоков с пирамидальной структурой разделяет видеокадр на сетку блоков. Для каждого разрешения используются одни и те же размеры блока. Предпочтительно, используется относительно большие размеры блока, такие как 16×16 или 8×8 пикселов. Таким образом, каждый блок изображения с самым низким разрешением будет разделен на 4 блока с одними и теми же размерами блока в соответствующем положении на следующем изображении с более высоким разрешением, что эффективно обеспечивает пирамидальную структуру или иерархические взаимозависимости блоков в изображении с самым низким разрешением с блоками в соответствующем положении в изображениях с более высоким разрешением. В целях иллюстрации, блоки в версиях видеокадра с более высоким разрешением (то есть 1/1, 1/2 и 1/4 разрешения), которые имеют взаимосвязь пирамидальной структуры с верхним левым блоком изображения с 1/8 разрешения, изображены в рамках границы жирной линии на фиг.3.

Затем, оценка движения на основе блоков с пирамидальной структурой выполняет полный поиск на основе суммы абсолютных разностей (SAD) на каждом блоке в изображении с самым низким разрешением по всему эталонному кадру для обнаружения положения соответствующего информационного содержимого изображения в эталонном кадре. Это создает вектор локального движения каждого блока в видеокадре с самым низким разрешением, соответствующий его смещению от соответствующего информационного содержимого изображения в эталонном кадре. Этот полный поиск выполняется исключительно в видеокадре с самым низким разрешением и эталонном кадре, как изображено на фиг.4.

Как иллюстрировано на фиг.5-7, затем, оценка движения на основе блоков с пирамидальной структурой выполняет детализированный поиск для оценки движения для каждой последующей версии видеокадра с более высоким разрешением относительно эталонного кадра, до видеокадра с исходным разрешением. Как упоминалось ранее, каждый блок изображения с более низким разделяется на четыре блока в соответствующем положении следующей версии видеокадра с более высоким разрешением. Вектор движения, вычисленный с помощью поиска оценки движения для блока в изображении с более низким разрешением, используется в качестве начала отсчета для выполнения детализированных поисков оценки движения для каждого из четырех блоков в пирамидальной структуре в следующей версии видеокадра с более высоким разрешением. Этот детализированный поиск, использующий взаимосвязь блоков с пирамидальной структурой в видеокадре с более низким разрешением с четырьмя соответствующими блоками в следующем видеокадре с более высоким разрешением, обеспечивает согласованность в вычислении оценки движения среди соседних блоков. По мере повторения детализированного поиска для каждой последовательной версии видеокадра с более высоким разрешением, эта обеспечиваемая согласованность среди соседних элементов обеспечивает более согласованный набор векторов локального движения для блоков в изображении с исходным разрешением, который будет являться основой для оценки преобразования глобального движения, обсуждаемой ниже.

Как только шейдер GPU завершает оценку локального движения для исходного разрешения видеокадра, вектор движения, наряду с результатом суммы разностей и дисперсией для каждого блока видеокадра с исходным разрешением, копируется на CPU для оценки преобразования глобального движения.

Обработка вектора движения для оценки преобразования глобального движения

И снова со ссылкой на фиг.2, часть 220 обработки вектора движения для оценки преобразования глобального движения из процесса 200 стабилизации цифрового видеоизображения в одном иллюстративном варианте реализации выполняется на центральном процессоре (CPU) вычислительного устройства. Методики стабилизации цифрового видеоизображения могут использовать однопроходной режим обработки векторов движения, который подходит для обработки в реальном времени во время воспроизведения видео, потокового видео или передачи. Альтернативно, может быть использован двухпроходной режим обработки векторов движения, который обеспечивает лучшее качество стабилизации видео ценой увеличенного времени вычисления. Следовательно, двухпроходной режим может лучше подходить для сценариев обработки видео при автономной работе, которые не имеют временных ограничений воспроизведения видео в реальном времени, и для которых желательно высокое качество стабилизации видео.

Фиг.8 иллюстрирует различные модели преобразования глобального движения, которые могут быть использованы для оценки движения вибрации видео вследствие дрожания руки, включая такие модели преобразования движения, как преобразование трансляционного подобия, евклидово преобразование, проективное и аффинное преобразования. В иллюстративном варианте реализации, представленном в настоящем документе, обработка векторов движения использует модель глобального преобразования подобия с параметрами трансляции (параллельного переноса), поворота и масштаба, как показано в следующем уравнении (1):

где x и y являются исходным положением, x' и у' являются преобразованным положением, а s, β, tx, ty являются параметрами масштабирования, поворота и трансляции, соответственно.

В целом, большинство пользователей будут ощущать эффекты движения дрожания исключительно при трансляции, повороте и изменении масштаба. Соответственно, основывающаяся на подобии модель преобразования движения хорошо подходит для области применения стабилизации видео для моделирования дрожания руки оператора камеры. Однако альтернативные варианты реализации оценки преобразования глобального движения могут использовать и другие модели, которые моделируют дополнительные или меньшее количество аспектов вибрации видео вследствие дрожания руки.

Однопроходная обработка векторов движения в режиме реального времени

Фиг.9 иллюстрирует иллюстративный вариант реализации однопроходной обработки 900 векторов движения для оценки преобразования глобального движения видеокадров, который подходит для обработки в режиме реального времени. Обработка векторов движения применяется к векторам движения для каждого видеокадра сцены в последовательности видеокадров, такой как полученная с помощью описанной выше оценки движения на основе блоков с пирамидальной структурой. Иллюстративный вариант реализации начинается с действия 910, где принимают информацию о векторах движения для видеокадра. Кроме того, иллюстративная обработка 900 вектора движения также принимает информацию об остаточном значении для каждого блока относительно остаточного значения его соответствующего блока в положении вектора движения в эталонном кадре, которое является суммой абсолютных разностей (SAD) значений, вычисленных во время оценки векторов движения. Кроме того, иллюстративная обработка 900 векторов движения принимает значение дисперсии в информационном содержимом изображения исходного блока в видеокадре, которое также может быть вычислено во время оценки векторов движения.

В действии 920, однопроходная обработка 900 векторов движения выбирает набор более надежных векторов движения, на основе которых будет выполняться оценка преобразования глобального движения. В одном иллюстративном варианте реализации, однопроходная обработка 900 векторов движения выбирает векторы движения на основе трех правил. Во-первых, векторы движения на границах изображения могут быть ненадежными и, следовательно, не выбираются. Например, после движения камеры от кадра к кадру, информационное содержимое в граничных блоках может частично отсутствовать. Во-вторых, большая остаточная ошибка после компенсации движения блока (например, значение SAD для блока является большим) может указать на ненадежную оценку движения. Следовательно, векторы движения для блоков с большими остаточными погрешностями компенсации движения (что обозначается большим значением SAD, вычисленным во время оценки движения для блока) также не выбираются. В-третьих, оценка движения для блока с низкой исходной дисперсией может быть ненадежной, так что векторы движения для таких блоков также не выбираются. В альтернативных вариантах реализации, обработка 900 может основывать выбор набора векторов движения на меньшем количестве или дополнительных критериях надежности.

В действии 930, обработка 900 векторов движения вычисляет оценку преобразования глобального движения каждого кадра на основе векторов движения, выбранных в действии 920. В одном иллюстративном варианте реализации, преобразование глобального движения оценивается с использованием уравнения (1) для основывающейся на подобии модели глобального движения, обсуждаемой выше. Альтернативно, преобразование глобального движения может быть оценено на основе другой модели движения. Для оценки преобразования глобал