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

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

Info

Publication number
RU2564832C2
RU2564832C2 RU2012134335/08A RU2012134335A RU2564832C2 RU 2564832 C2 RU2564832 C2 RU 2564832C2 RU 2012134335/08 A RU2012134335/08 A RU 2012134335/08A RU 2012134335 A RU2012134335 A RU 2012134335A RU 2564832 C2 RU2564832 C2 RU 2564832C2
Authority
RU
Russia
Prior art keywords
motion
video
frame
digital video
processing
Prior art date
Application number
RU2012134335/08A
Other languages
English (en)
Other versions
RU2012134335A (ru
Inventor
Юнцзюнь ВУ
Никола БОРИСОВ
Вэйдун ЧЖАО
Шьям САДХВАНИ
Навин ТХУМПУДИ
Original Assignee
МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи filed Critical МАЙКРОСОФТ ТЕКНОЛОДЖИ ЛАЙСЕНСИНГ, ЭлЭлСи
Publication of RU2012134335A publication Critical patent/RU2012134335A/ru
Application granted granted Critical
Publication of RU2564832C2 publication Critical patent/RU2564832C2/ru

Links

Images

Classifications

    • G06T3/18
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • H04N23/682Vibration or motion blur correction
    • H04N23/683Vibration or motion blur correction performed by a processor, e.g. controlling the readout of an image memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • G06T7/207Analysis of motion for motion estimation over a hierarchy of resolutions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/41Structure of client; Structure of client peripherals
    • H04N21/422Input-only peripherals, i.e. input devices connected to specially adapted client devices, e.g. global positioning system [GPS]
    • H04N21/4223Cameras
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N21/00Selective content distribution, e.g. interactive television or video on demand [VOD]
    • H04N21/40Client devices specifically adapted for the reception of or interaction with content, e.g. set-top-box [STB]; Operations thereof
    • H04N21/43Processing of content or additional data, e.g. demultiplexing additional data from a digital video stream; Elementary client operations, e.g. monitoring of home network or synchronising decoder's clock; Client middleware
    • H04N21/44Processing of video elementary streams, e.g. splicing a video clip retrieved from local storage with an incoming video stream, rendering scenes according to MPEG-4 scene graphs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/68Control of cameras or camera modules for stable pick-up of the scene, e.g. compensating for camera body vibrations
    • H04N23/681Motion detection
    • H04N23/6811Motion detection based on the image signal
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/14Picture signal circuitry for video frequency region
    • H04N5/144Movement detection
    • H04N5/145Movement estimation

Abstract

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

Description

Предшествующий уровень техники
Все более и более распространено включение возможностей видеокамеры в многоцелевые, небольшие и легкие портативные электронные устройства, такие как мобильные телефоны, компактные фотокамеры и мультимедийные проигрыватели. В отличие от больших специализированных записывающих видеокамер, в таких многоцелевых портативных устройствах, как правило, отсутствует какой-либо механический или оптический механизм для уменьшения движения вибрации видео вследствие дрожащей или нетвердой руки. Вследствие их более легкого веса и характерного для них использования широкоугольной линзы, многоцелевые портативные устройства могут быть более восприимчивы к движению вибрации видео вследствие дрожания руки. Кроме того, поскольку доступность этих недорогих многоцелевых портативных устройств увеличивает популярность выполнения видеосъемки за рамками сообщества видеооператоров-любителей и профессионалов, все чаще бытовое видео производится посредством пользователей, имеющих очень малый опыт и навык съемки качественного видео. Также, среди потребителей растет популярность обмена короткими видеоклипами по сети Интернет через электронную почту, блоги, вебсайты для обмена видео и сайты социальных сетей. В частности, пользователи, которые не являются профессиональными видеооператорами или людьми, увлеченными таким хобби, часто выгружают видеоклипы на вебсайт (иногда непосредственно с устройства видеозахвата) без какого-либо редактирования или иной обработки. Вследствие этих разных причин, качество видеоклипов, которыми обмениваются по сети, очень часто является очень низкими, и, как правило, видеоклипы страдают от движения вибрации видео вследствие дрожания руки.
Стабилизация цифрового видеоизображения является технологией обработки цифрового сигнала, которая может быть применена к видео для коррекции движения вибрации видео вследствие дрожания руки. В одном иллюстративном варианте реализации, технология охватывает вычисление оценки локального движения для макро-блоков каждого изображения последовательности видеокадров относительно их предыдущего изображения; обработку векторов локального движения макро-блоков для произведения оценки глобального движения вследствие вибрации; а затем, компенсацию движения вибрации видео посредством смещения или искажения изображения в направлении, противоположном расчетному движению вибрации.
Один недостаток известной цифровой стабилизации видеоизображения заключается в том, что технология является довольно интенсивной в вычислительном отношении. При загрузке видео в блог, на сайт обмена видео или сайт социальной сети, видео может быть загружено из устройств, возможности по обработке которых варьируются. Кроме того, случайный пользователь больше может быть заинтересован в срочности быстрой публикации на сайте обмена видео или социальной сети, так что какая-либо продолжительная обработка видео не является желательной. Например, видео может быть загружено непосредственно с многоцелевого портативного устройства, как например, по сотовой сети связи. Однако, многоцелевое портативное устройство (такое как мобильный телефон) часто имеет ограниченные ресурсы обработки или должно совместно использовать ресурсы обработки с другими возможностями многоцелевого устройства. Альтернативно, портативное устройство также может быть соединено с персональным компьютером (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):
Figure 00000001
где x и y являются исходным положением, x' и у' являются преобразованным положением, а s, β, tx, ty являются параметрами масштабирования, поворота и трансляции, соответственно.
В целом, большинство пользователей будут ощущать эффекты движения дрожания исключительно при трансляции, повороте и изменении масштаба. Соответственно, основывающаяся на подобии модель преобразования движения хорошо подходит для области применения стабилизации видео для моделирования дрожания руки оператора камеры. Однако альтернативные варианты реализации оценки преобразования глобального движения могут использовать и другие модели, которые моделируют дополнительные или меньшее количество аспектов вибрации видео вследствие дрожания руки.
Однопроходная обработка векторов движения в режиме реального времени
Фиг.9 иллюстрирует иллюстративный вариант реализации однопроходной обработки 900 векторов движения для оценки преобразования глобального движения видеокадров, который подходит для обработки в режиме реального времени. Обработка векторов движения применяется к векторам движения для каждого видеокадра сцены в последовательности видеокадров, такой как полученная с помощью описанной выше оценки движения на основе блоков с пирамидальной структурой. Иллюстративный вариант реализации начинается с действия 910, где принимают информацию о векторах движения для видеокадра. Кроме того, иллюстративная обработка 900 вектора движения также принимает информацию об остаточном значении для каждого блока относительно остаточного значения его соответствующего блока в положении вектора движения в эталонном кадре, которое является суммой абсолютных разностей (SAD) значений, вычисленных во время оценки векторов движения. Кроме того, иллюстративная обработка 900 векторов движения принимает значение дисперсии в информационном содержимом изображения исходного блока в видеокадре, которое также может быть вычислено во время оценки векторов движения.
В действии 920, однопроходная обработка 900 векторов движения выбирает набор более надежных векторов движения, на основе которых будет выполняться оценка преобразования глобального движения. В одном иллюстративном варианте реализации, однопроходная обработка 900 векторов движения выбирает векторы движения на основе трех правил. Во-первых, векторы движения на границах изображения могут быть ненадежными и, следовательно, не выбираются. Например, после движения камеры от кадра к кадру, информационное содержимое в граничных блоках может частично отсутствовать. Во-вторых, большая остаточная ошибка после компенсации движения блока (например, значение SAD для блока является большим) может указать на ненадежную оценку движения. Следовательно, векторы движения для блоков с большими остаточными погрешностями компенсации движения (что обозначается большим значением SAD, вычисленным во время оценки движения для блока) также не выбираются. В-третьих, оценка движения для блока с низкой исходной дисперсией может быть ненадежной, так что векторы движения для таких блоков также не выбираются. В альтернативных вариантах реализации, обработка 900 может основывать выбор набора векторов движения на меньшем количестве или дополнительных критериях надежности.
В действии 930, обработка 900 векторов движения вычисляет оценку преобразования глобального движения каждого кадра на основе векторов движения, выбранных в действии 920. В одном иллюстративном варианте реализации, преобразование глобального движения оценивается с использованием уравнения (1) для основывающейся на подобии модели глобального движения, обсуждаемой выше. Альтернативно, преобразование глобального движения может быть оценено на основе другой модели движения. Для оценки преобразования глобального движения, обработка 900 векторов движения использует способ согласования произвольных выборок (RANSAC) для обнаружения и устранения векторов движения, которые являются посторонними. Более конкретно, в способе RANSAC два вектора движения выбираются произвольно из набора векторов движения, выбранных в действии 920. Затем, обработка вектора движения решает уравнение (1) с использованием минимальной среднеквадратической ошибки (LMSE), подходящей для определения значений параметров s, β, tx, ty для двух произвольно выбранных векторов движения. Затем, способ RANSAC определяет множество других векторов движения, которые также согласуются с этим решением параметров уравнения преобразования глобального движения. Способ RANSAC повторяет произвольный выбор других пар векторов движения до тех пор, пока не будет найдена наибольшая группа векторов движения, согласующихся с упомянутым решением. Это устраняет векторы движения, которые рассматриваются как посторонние или несовпадающие с согласованием решения LMSE для параметров преобразования глобального движения.
В действии 940-944, обработка векторов движения выполняет обнаружение ошибок и коррекцию посредством подвергания оценки параметров для преобразования глобального движения действию двух предельных значений для каждого из движений масштабирования, поворота и трансляции. В схеме последовательности операций, два предельных значения обозначены как нижнее предельное значение (T1x) и верхнее предельное значение (T2x), где T1x<T2x, а x представляет масштабирование, поворот или трансляцию. Два предельных значения могут быть получены эмпирически на большой репрезентативной выборке видео, которая демонстрирует вибрирующее движение видео, и представляют статистическую вероятность того, что они являются глобальным образцом движения вибрации видео. Как показано в действиях 940-944, если параметры (s, β, tx, ty) преобразования глобального движения меньше их нижнего предельного значения, то используется преобразование глобального движения, оцениваемое в действии 930. В противном случае, если параметры преобразования глобального движения для масштабирования, поворота и трансляции превышают нижнее предельное значение, но остаются меньше верхнего предельного значения, то обработка векторов движения ограничивает преобразование глобального движения до нижнего предельного значения, как показано в действии 943. Если преобразование глобального движения, оцениваемое в действии 930, превышает верхнее предельное значение, то преобразование глобального движения сбрасывается. Таким образом, эти действия предназначены для обнаружения чрезмерного глобального движения, которое не будет являться характерным для движения вибрации видео вследствие дрожащей руки, а затем для коррекции избыточной компенсации.
Последнее действие 950 из обработки 900 векторов движения применяет временное сглаживание к преобразованию глобального движения. В одном иллюстративном варианте реализации, оценки преобразования глобального движения для последовательности видеокадров сцены фильтруются посредством 31-точечного фильтра Гаусса, как показано в следующем уравнении (2).
Figure 00000002
Обозначение ( W t 1 W t 2 ... W t 15 ) 1
Figure 00000003
обозначает обращение (инверсию) матрицы. В этом уравнении (2), W t '
Figure 00000004
является преобразованием глобального движения после сглаживания в момент времени t, а W t i
Figure 00000005
является преобразованием глобального движения до сглаживания в момент времени (t-i). Значения C t i
Figure 00000006
являются коэффициентами фильтра Гаусса, а I является матрицей тождественного преобразования. В сценариях воспроизведения видео в режиме реального времени или перекодирования, этот размер фильтра вводит задержку на 15 изображений. Альтернативные варианты реализации могут использовать более длинный или более короткий размер фильтра, и, альтернативно, могут использовать фильтр другого типа, включающий в себя адаптивный фильтр.
Двухпроходная обработка векторов движения в автономном режиме
Альтернативно, оценка преобразования глобального движения может быть выполнена с использованием двухпроходной обработки векторов движения (такой как иллюстративная двухпроходная обработка 1000 векторов движения, изображенная на фиг.10), которая предлагает лучшее качество стабилизации видеоизображения, но ценой значительно увеличенного времени вычисления. Также, двухпроходная обработка, в целом, вводит меньше удобств для пользователя в связи с тем, что пользователь вынужден ожидать окончания обработки стабилизации видео для просмотра результатов. Вследствие ее увеличенной нагрузки по вычислениям, двухпроходная обработка векторов движения, как правило, лучше подходит для выполнения в автономном (офлайновом) режиме. Двухпроходная структура обработки векторов движения позволяет лучшую оптимизацию частей обнаружения ошибок и коррекции и части временного сглаживания обработки векторов движения. В первом проходе, обработка векторов движения может собрать дополнительную информацию для использования в этих частях обработки, которая затем может быть применена во втором проходе обработки векторов движения.
Как иллюстрировано в действии 1005 на фиг.10, двухпроходная обработка 1000 векторов движения выполняет обнаружение изменения сцены во всем сегменте видео во время первого прохода. Обнаружение изменения сцены может быть выполнено с использованием традиционно известных способов. Затем, в действии 1010, двухпроходная обработка 1000 векторов движения производит оценки преобразования глобального движения для каждого видеокадра сцены для первого прохода, как, например, посредством применения тех же самых действий, что и в действиях 910, 920 и 930 из однопроходной обработки 900 векторов движения из фиг.9. В этом первом проходе эти оценки преобразования глобального движения просто собираются для создания статистической информации для лучшей оптимизации оценок преобразования глобального движения во втором проходе. Соответственно, оценки глобального движения в первом проходе не используются непосредственно в деформировании 230 изображения из процесса 200 стабилизации видеоизображения для компенсации движения вибрации видео. Вместо этого, в действии 1020 двухпроходная обработка 1000 векторов движения вычисляет минимальные и максимальные значения и вероятностные распределения для параметров трансляции, поворота и масштабирования преобразования глобального движения (например, s min
Figure 00000007
, s max
Figure 00000008
, β min
Figure 00000009
, β max
Figure 00000010
, t x min
Figure 00000011
, t x max
Figure 00000012
, t y min
Figure 00000013
, t y max
Figure 00000014
, p(s), p(β), p( t x
Figure 00000015
) и p( t y
Figure 00000016
)) во всех кадрах в каждой сцене сегмента видео. Альтернативно, статистика вероятностей может быть собрана для всего сегмента видео, а не для каждой отдельной сцены.
На основе этих эмпирических вероятностных распределений параметров для каждой сцены, двухпроходная обработка 1000 векторов движения в действии 1030 определяет нижнее и верхнее предельные значения ( T 1 x
Figure 00000017
и T 2 x
Figure 00000018
) в каждой сцене для каждого из параметров преобразования глобального движения (s, p, t x
Figure 00000019
, t y
Figure 00000020
). Например, нижнее и верхнее предельные значения могут быть выбраны для соответствия определенным пороговым значениям вероятности p 1
Figure 00000021
и p 2
Figure 00000022
. В одном примере, пороговые значения вероятности p 1
Figure 00000023
и p 2
Figure 00000024
составляют 95% и 98%, соответственно. Другими словами, 95% значений параметров, зафиксированных для сцены в первом проходе, находятся в рамках предельного значения T 1 x
Figure 00000025
; а 98% зафиксированных значений параметра находятся ниже верхнего предельного значения T 2 x
Figure 00000026
. В альтернативных вариантах реализации, двухпроходная обработка вектора движения может определять предельные значения на основе других пороговых значений вероятности или каких-либо других эмпирических вероятностных критериев. Кроме того, нижнее и верхнее предельные значения могут быть ограничены посредством строгих предельных значений. По сравнению с однопроходной обработкой 900 вектора движения из фиг.9, эта настройка предельных значений ( T 1 x
Figure 00000027
и T 2 x
Figure 00000028
) параметров на основе эмпирической статистики вероятностей видео позволяет адаптивное обнаружение и коррекцию ошибок, применяемые к преобразованию глобального движения, для каждого конкретного видеоконтента.
Затем, в действии 1030, двухпроходная обработка 1000 векторов движения выполняет второй проход обработки векторов движения. Для этого второго прохода, обработка 1000 выполняет обработку, выполняемую в действиях 910, 920 930 и 940-944 из однопроходной обработки 900 векторов движения. Для предельных значений ( T 1 x
Figure 00000029
и T 2 x
Figure 00000030
) применяемых в действиях 940-944 из этого второго прохода, двухпроходной процесс использует предельные значения, определенные на основе статистической вероятности для видео, которые были собраны в первом проходе. Поскольку эти предельные значения приспособлены для содержимого предметного видео, то двухпроходная обработка 1000 векторов движения должна выполнять более качественное обнаружение и коррекцию ошибок с использованием этих адаптивных предельных значений.
Двухпроходная обработка векторов движения также может достигнуть лучшего качества стабилизации цифрового видеоизображения (по сравнению с однопроходной обработкой векторов движения) также посредством выполнения глобального временного сглаживания во всем сегменте видео. В одном иллюстративном варианте реализации двухпроходной обработки 1000 векторов движения, обработка выполняет временное сглаживание с использованием глобальной оптимизации с заданными ограничениями вместо подхода «скользящего» окна для однопроходной обработки векторов движения. Один пример такой глобальной оптимизации с заданными ограничениями включает в себя определения ограничения для глобальных преобразований чрезмерно сглаженного движения из усреднения преобразования глобального движения на количество из N видеокадров в качестве верхнего предельного значения для временного сглаживания, где N может являться значением в диапазоне [10, 15] для чрезмерного сглаживания. Затем, в рамках ограничения избыточного сглаживания, выполняется выпуклая оптимизация. В одном иллюстративном варианте реализации, целевая функция, например, может быть определена как:
Figure 00000031
(3)
В уравнении (3) целевой функции, первый член означает, что преобразование W j
Figure 00000032
окончательного выравнивания должно быть подобным исходному преобразованию и соседним с ним преобразованиям, W s t
Figure 00000033
с другими весовыми коэффициентами C i
Figure 00000034
в окне. Второй член означает, что преобразование W j
Figure 00000035
окончательного выравнивания должно быть подобным преобразованию W s t
Figure 00000036
с избыточным выравниванием в качестве ограничения, с весом ρ. Значение D является метрикой измерения расстояния, которая может быть расстоянием между преобразованными координатами четырех углов изображения с W j
Figure 00000037
и W s t
Figure 00000038
. Выпуклая оптимизация может применяться для минимизации целевой функции.
Деформирование изображения при помощи преобразования глобального движения
И снова со ссылкой на фиг.2, в итоге, процесс 200 стабилизации цифрового видеоизображения выполняет деформирование 230 изображения на основе преобразования глобального движения, произведенного с использованием либо однопроходной, либо двухпроходной обработки 220 векторов движения. Деформирование изображения может быть выполнено в GPU просто посредством использования GPU D3D API и/или настроенного бикубического вершинного шейдера для применения деформирования изображения в противоположном направлении от оценки преобразования глобального движения вследствие движения вибрации видео. Для обеспечения достаточного количества видеоконтента на границах видеокадра для позволения деформирования изображения, в одном иллюстративном варианте реализации видеокадр обрезается примерно до τ% в границах, которые, как правило, должны составлять 10% для однопроходного режима обработки и изменяемый (адаптивный) процент для разных сценах в двухпроходном режиме обработки. Это позволяет перемещать отображаемую часть в пределах содержимого видеокадра посредством деформирования изображения, которое, затем, формирует видео со стабилизированным изображением для вывода.
Как может быть понятно из действия 944 в обработке векторов движения, если глобальное движение превышает величину движения вибрации видео, которое могло возникнуть вследствие дрожания руки, расчетное преобразование глобального движения просто сбрасывается. Таким образом, никакого деформирования изображения не применяется к глобальному движению видео, которое превышает параметры предельных значений вибрации вследствие дрожания руки. Вместо этого, видеокадр воспроизводится с его фактическим движением, без какой-либо компенсации на дрожание руки.
Пример вычислительной среды
Фиг.11 иллюстрирует обобщенный пример подходящей вычислительной среды 1100, в которой могут быть реализованы описанные варианты осуществления, методики и технологии. Например, вычислительная среда 1100 может быть одним из вычислительных устройств (например, серверным компьютером, персональным компьютером, ноутбуком или другим вычислительным устройством), на котором выполняется процесс 200 стабилизации цифрового видеоизображения по фиг.2.
Вычислительная среда 1100 не предназначена для выдвижения какого-либо ограничения в отношении объема использования или функциональных возможностей технологии, поскольку технология может быть реализована в разнообразных вычислительных средах специального или общего назначения. Например, раскрытая технология может быть реализована и с другими конфигурациями компьютерных систем, включая мобильные устройства, многопроцессорные системы, микропроцессорную или программируемую бытовую электронику, сетевые PC, миникомпьютеры, универсальные вычислительные машины и т.п. Раскрытая технология также может быть осуществлена на практике в распределенных вычислительных средах, где задачи выполняются посредством удаленных обрабатывающих устройств, которые соединены через сеть связи. В распределенной вычислительной среде программные модули могут быть расположены как в локальных, так и в удаленных запоминающих устройствах.
Со ссылкой на фиг.11, вычислительная среда 1100 включает в себя, по меньшей мере, один центральный процессор 1110 и запоминающее устройство 1120. На фиг.11, эта большая часть базовой конфигурации 1130 заключена в пределах пунктирной линии. Центральный процессор 1110 исполняет исполняемые компьютером команды и может являться реальным или виртуальным процессором. В многозадачной системе, несколько блоков обработки данных выполняют исполняемые компьютером команды для увеличения вычислительной мощности, а также несколько процессоров могут работать одновременно. Запоминающее устройство 1120 может являться энергозависимым запоминающим устройством (например, регистром, кэшем, RAM (оперативным запоминающим устройством)), энергонезависимым запоминающим устройством (например, ROM (постоянным запоминающим устройством), EEPROM (электрически-стираемым программируемым постоянным запоминающим устройством), флэш-памятью и т.д.), или какой-либо их комбинацией. Запоминающее устройство 1120 хранит программное обеспечение 1180, которое, например, может реализовывать технологии, описанные в настоящем документе.
В дополнение к центральному процессору 1110, вычислительная среда может включать в себя другие ресурсы обработки, такие как компоненты обработки цифровых сигналов (DSP) или мультимедийные компоненты 1115. Компоненты 1115 DSP могут являться любыми из ресурсов, которые могут быть эффективно использованы для процесса стабилизации цифрового видеоизображения посредством варианта реализации библиотеки многофункциональной платформы, обсуждаемой выше в связи с фиг.1. Например, компоненты DSP могут включать в себя блоки мультимедийной DSP микросхемы ASIC, блоки шейдера GPU, многоядерный CPU, усовершенствованные наборы мультимедийных команд для CPU, и т.д.
Вычислительная среда может иметь дополнительные признаки. Например, вычислительная среда 1100 включает в себя устройство 1140 хранения данных, одно или несколько устройств 1150 для ввода данных, одно или несколько устройств 1160 для вывода данных и одно или несколько соединений 1170 связи. Механизм взаимного соединения (не показан), такой как шина, контроллер или сеть, связывает компоненты вычислительной среды 1100. Как правило, программное обеспечение операционной системы (не показано) обеспечивает операционную среду для других программных средств, исполняющихся в вычислительной среде 1100, и координирует действия компонентов вычислительной среды 1100.
Устройство 1140 хранения данных может быть сменным или несменным, и включает в себя магнитные диски, магнитные ленты или кассеты, CD-ROM (компакт-диски), CD-RW (перезаписываемые компакт-диски), DVD (универсальные цифровые диски), или любую другую среду, которая может быть использована для хранения информации и к которой может быть получен доступ в пределах вычислительной среды 1100. Устройство хранения данных 1140 сохраняет команды для программных средств 1180, которые могут реализовать технологии, описанные в настоящем документе.
Устройство(а) 1150 ввода данных может являться устройством сенсорного ввода, таким как клавиатура, дополнительная клавиатура, мышь, ручка или шаровой манипулятор, устройство ввода речи, сканирующее устройство или другое устройство, которое обеспечивает ввод данных для вычислительной среды 1100. Для ввода звука, устройство(а) 1150 ввода данных может быть звуковой картой или подобным устройством, которое принимает ввод звуковых данных в аналоговой или цифровой форме, или устройством считывания CD-ROM, которое предоставляет образцы звука в вычислительную среду 1100. Устройство(а) 1160 вывода данных может быть устройством отображения, принтером, динамиком, устройством записи компакт-дисков или другим устройством, которое обеспечивает вывод данных из вычислительной среды 1100.
Соединение(я) 1170 связи позволяет передавать информацию по среде передачи данных (например, соединительной сети) на другой вычислительный модуль. Среда передачи данных передает информацию, такую как исполняемые компьютером команды, сжатую графическую информацию или другие данные, в модулированном сигнале данных.
Машиночитаемый носитель является любым доступным носителем, в котором находятся данные и команды процессора, к которым можно получить доступ в пределах вычислительной среды 1100. Для примера, но не ограничения, в пределах иллюстрированной вычислительной среды 1100, машиночитаемый носитель включает в себя запоминающее устройство 1120 и/или устройство 1140 хранения данных. Как можно легко понять, термин «машиночитаемый носитель данных» включает в себя носители, такие как запоминающее устройство 1120 и устройство 1140 хранения данных, для хранения данных и программных команд, а не только лишь модулированные сигналы данных.
Иллюстративная сетевая среда облачных вычислений
Фиг.12 и 13 иллюстрируют обобщенный пример подходящей сетевой среды 1200 для облачных вычислений, в которой может быть осуществлена вышеупомянутая описанная стабилизация цифрового видеоизображения.
В иллюстративной сетевой среде 1200 облачных вычислений, различные типы компьютерных служб для обмена, хранения или распространения видео (например, сайты для обмена видео или сайты социальных сетей) предоставляются посредством совокупности доступных через сеть вычислительных ресурсов или ресурсов хранения данных, называемых облаком 1210. Например, облако 1210 может включать в себя совокупность серверных вычислительных устройств, которые могут быть расположены централизовано или рассредоточены, которая предоставляет службы с использованием вычислений в облаке для различных типов пользователей и устройств, соединенных через сеть, такую как сеть Интернет.
В иллюстративной среде 1200 облако 1210 предоставляет службы (такие как службы хранения видео, обмена видео или социальных сетей, помимо других примеров) для пользовательских вычислительных устройств. Службы могут быть предоставлены в облаке 1210 через поставщиков служб облачных вычислений или через других поставщиков сетевых служб. Например, службы с использованием вычислений в облаке могут включать в себя службу хранения видео, сайт для обмена видео, сайт социальной сети или другие службы, через которые распространяется пользовательское видео для его просмотра посредством других пользователей на сетевых устройствах 1320A-N.
Пользователь может использовать такие различные мобильные устройства видеозахвата для выполнения записи видео, как портативные видеокамеры, цифровые камеры с режимом видеосъемки, мобильные телефоны и карманные вычислительные устройства. Пользователь может выгружать видео в службу в облаке 1210 либо напрямую (например, с использованием службы передачи данных телекоммуникационной сети), либо сначала посредством передачи видео на локальный компьютер 1230, такой как ноутбук, персональный компьютер или другое соединенное с сетью вычислительное устройство.
Как показано на фиг.13, позже видео может быть загружено, передано и/или иным способом воспроизведено из устройства хранения видеоданных с использованием вычислений в облаке или сайта обмена данными на других сетевых вычислительных устройствах, которые могут иметь множество факторов 1320A-N размеров экрана устройства отображения. Сетевое устройство 1320A представляет собой устройство с таким устройством отображения средних размеров, которое может быть доступно на персональном компьютере, ноутбуке, планшетном ПК или другим подобном соединенном с сетью устройстве.
Сетевое устройство 1320B представляет собой устройство с устройством отображения, форм-факторы которого разработаны для обеспечения максимальной портативности (например, экран небольших размеров). Например, сетевое устройство 1320B может быть мобильным телефоном, смартфоном, карманным персональным компьютером, и т.п.
Сетевое устройство 1320N представляет собой сетевое устройство с большим экраном для визуального отображения. Например, сетевое устройство 1320N может быть телевизионным экраном (например, телевидения высокой четкости) или другим устройством, которое предоставляет вывод видеоданных на телевизор или видеопроектор (например, телевизионная абонентская приставка или игровая консоль), или другие устройства с подобной функцией вывода видеоданных на устройство отображения.
В иллюстрированной сетевой среде 1200 облачных вычислений стабилизация цифрового видеоизображения может быть реализована и выполнена на различных этапах обмена, хранения и распространения видео, посредством различных ранее описанных устройств, в зависимости от желательного сценария использования. В одном иллюстративном сценарии стабилизация цифрового видеоизображения реализуется в программных средствах на локальном компьютере 1230 и применяется либо когда видео изначально передается на локальный компьютер, либо когда оно загружается в службу с использованием вычислений в облаке. В другом сценарии стабилизация цифрового видеоизображения реализуется в облаке и применяется к видео по мере его выгрузки и сохранения в облаке. В другом сценарии стабилизация цифрового видеоизображения реализуется посредством служб с использованием облачных вычислений и применяется при воспроизведении видео, его передаче или распространении на другое сетевое устройство или службу. Еще в одном сценарии стабилизация цифрового видеоизображения реализуется посредством служб облачных вычислений и применяется при транскодировании видео для представления его с подходящим разрешением или при потоковом воспроизведении с подходящей шириной полосы пропускания для сетевого устройства, на котором выполняется просмотр. В других дополнительных сценариях, стабилизация цифрового видеоизображения может быть выполнена на сетевом устройстве во время воспроизведения.
Иллюстративные альтернативы и комбинации
Любой из описанных в настоящем документе способов может быть выполнен с помощью одного или нескольких машиночитаемых носителей (например, устройств хранения данных или других материальных носителей), содержащих (например, имеющих или сохраняющих) исполняемые компьютером команды для выполнения (например, выполнения вычислительным устройством) таких способов. Работа может быть полностью автоматической, полуавтоматической или предполагать вмешательство оператора.
После описания и иллюстрации принципов наших инноваций в подробном описании и сопроводительных чертежах, будет понятно, что различные варианты осуществления могут быть иметь изменения в структуре и деталях без отступления от этих принципов. Следует понимать, что программы, процессы или способы, описанные в настоящем документе, не связаны и не ограничиваются каким-либо конкретным типом вычислительной среды, если не указано иначе. Различные типы специализированных вычислительных сред или вычислительных сред общего назначения могут быть использованы или выполнять операции в соответствии с описанными в настоящем изобретении идеями. Элементы вариантов осуществления, изображенные в программных средствах, могут быть реализованы в аппаратных средствах и наоборот.
С учетом многих возможных вариантов осуществления, к которым могут быть применены принципы нашего изобретения, мы заявляем в качестве своего изобретения все такие варианты осуществления, которые могут находиться в пределах объема и сущности, определяемых следующей формулой изобретения и ее эквивалентами.

Claims (25)

1. Машиночитаемый носитель информации, на котором сохранены исполняемые инструкции для предписания программируемому ими компьютерному устройству выполнять способ стабилизации цифрового видео, содержащего этапы, на которых:
анализируют компьютерное устройство для определения доступности любого из различных мультимедийных компонентов обработки цифрового сигнала (DSP) на компьютерном устройстве;
определяют из результатов упомянутого анализа, какой доступный мультимедийный компонент DSP использовать для по меньшей мере одной части стабилизации цифрового видео, в соответствии с иерархической структурой для упорядочения мультимедийных компонентов DSP посредством критериев, содержащих, по меньшей мере, производительность стабилизации цифрового видео, причем стабилизация цифрового видео содержит, по меньшей мере, оценку векторов локального движения для получения оценочных векторов локального движения, обработку оценочных векторов локального движения для расчета преобразования глобального движения, представляющего движение вибрации видео, и деформирование изображения на основе преобразования глобального движения для компенсации движения вибрации видео; и
выполняют стабилизацию цифрового видео в отношении сегмента видео на компьютерном устройстве с использованием упомянутого определенного доступного мультимедийного компонента DSP для упомянутой по меньшей мере одной части стабилизации цифрового видео, при этом выполнение стабилизации цифрового видео включает в себя деформирование по меньшей мере одного кадра данного сегмента видео на основе упомянутого преобразования глобального движения, которое применяется в отношении этого по меньшей мере одного кадра сегмента видео.
2. Машиночитаемый носитель информации по п. 1, при этом упомянутая иерархическая структура содержит в следующем порядке: мультимедийные модули DSP специализированной интегральной микросхемы (ASIC), модули шейдера графического процессора (GPU), многоядерный центральный процессор (CPU) и одноядерный CPU.
3. Машиночитаемый носитель информации по п. 1, при этом после того как при упомянутом анализе определено, что на компьютерном устройстве доступен шейдер GPU, при осуществлении стабилизации цифрового видео используют шейдер GPU для оценки векторов локального движения.
4. Машиночитаемый носитель информации по п. 3, при этом, если при упомянутом анализе определено, что на компьютерном устройстве доступен шейдер GPU, то при осуществлении стабилизации цифрового видео дополнительно используют шейдер GPU для деформирования изображения.
5. Машиночитаемый носитель информации по п. 1, при этом библиотека операционной системы включает в себя набор библиотечных функций для управления стабилизацией цифрового видео, причем эта библиотека обеспечивает программный интерфейс для прикладных программ, чтобы использовать стабилизацию цифрового видео, при этом данная библиотека включает в себя по меньшей мере один вызов службы операционной системы или интерфейса DSP как часть упомянутой оценки и включает в себя по меньшей мере один вызов интерфейса DSP для выполнения упомянутой по меньшей мере одной части стабилизации цифрового видео.
6. Машиночитаемый носитель информации по п. 1, при этом исполняемый файл прикладного программы управляет стабилизацией цифрового видео, причем исполняемый файл прикладного программы включает в себя по меньшей мере один вызов службы операционной системы или интерфейса DSP как часть упомянутой оценки и включает в себя по меньшей мере один вызов интерфейса DSP для выполнения упомянутой по меньшей мере одной части стабилизации цифрового видео.
7. Машиночитаемый носитель информации по п. 1, при этом библиотека операционной системы управляет стабилизацией цифрового видео, причем данная библиотека включает в себя по меньшей мере один вызов интерфейса DSP как часть упомянутой оценки и включает в себя по меньшей мере один вызов интерфейса DSP для выполнения упомянутой по меньшей мере одной части стабилизации цифрового видео.
8. Способ стабилизации цифрового видео, содержащий выполнение на компьютерном устройстве этапов, на которых:
выполняют оценку векторов локального движения для кадра из множества кадров сцены сегмента видео, причем при оценке векторов локального движения для этого кадра
выполняют субдискретизацию упомянутого кадра и эталонного кадра, ассоциированного с упомянутым кадром, в один или в несколько раз для формирования множества версий упомянутого кадра с множеством разрешений, причем версия упомянутого кадра с самым низким разрешением имеет множество блоков, связанных в виде пирамидальной структуры с последовательно большим количеством блоков в соответствующих положениях в каждой версии упомянутого кадра с более высоким разрешением,
для версии упомянутого кадра с самым низким разрешением оценивают векторы движения блоков упомянутой версии кадра с самым низким разрешением с использованием обработки по первоначальной оценке векторов движения в отношении эталонного кадра, ассоциированного с версией с самым низким разрешением;
для каждой версии упомянутого кадра с последовательно более высоким разрешением оценивают векторы движения блоков данной версии кадра с последовательно более высоким разрешением с использованием детализированного поиска, начиная с вектора движения, оцененного для ассоциированного блока предыдущей версии кадра с более низким разрешением, в соответствии с упомянутой пирамидальной структурой; и
получают оценочные векторы локального движения для блоков версии упомянутого кадра с исходным разрешением;
обрабатывают оценочные векторы локального движения упомянутого кадра для расчета преобразования глобального движения, представляющего движение вибрации видео, включая выбор набора векторов движения, чтобы использовать их для расчета преобразования глобального движения, из полученных оценочных векторов локального движения упомянутого кадра, при этом данный выбор набора векторов движения содержит одно или более из
исключения векторов движения на границах изображения,
исключения векторов движения, имеющих высокую остаточную погрешность компенсации движения, и
исключения векторов движения для блоков с малым изменением содержимого изображения; и
выполняют деформирование изображения в отношении упомянутого кадра на основе преобразования глобального движения, рассчитанного для данного кадра, для компенсации движения вибрации видео.
9. Способ по п. 8, в котором при упомянутой обработке оценочных векторов локального движения упомянутого кадра для расчета преобразования глобального движения обрабатывают векторы локального движения упомянутого кадра с использованием согласования произвольной выборки для удаления посторонних векторов движения.
10. Способ по п. 8, в котором упомянутое преобразование глобального движения основывается на модели движения видео, базирующейся на подобии.
11. Способ по п. 8, в котором при упомянутой обработке оценочных векторов локального движения упомянутого кадра
сравнивают преобразование глобального движения, рассчитанное при помощи обработки векторов локального движения упомянутого кадра, с верхним и нижним предельными значениями;
если расчетное преобразование глобального движения превышает верхнее предельное значение, то преобразование глобального движения сбрасывают;
если расчетное преобразование глобального движения превышает нижнее предельное значение, но не верхнее предельное значение, то ограничивают преобразование глобального движения нижним предельным значением; и
в противном случае используют расчетное преобразование глобального движения для представления движения вибрации видео.
12. Способ по п. 11, дополнительно содержащий этапы, на которых:
в качестве первого прохода по кадрам в сцене сегмента видео обрабатывают кадры для расчета преобразований глобального движения для кадров в сцене сегмента видео;
определяют вероятностные распределения параметров преобразования глобального движения для кадров в сцене сегмента видео;
определяют упомянутое нижнее предельное значение и упомянутое верхнее предельное значение на основе вероятностных распределений; и
применяют упомянутые нижнее предельное значение и верхнее предельное значение к оценкам преобразования глобального движения в соответствующей второму проходу обработке кадров в сцене сегмента видео.
13. Способ по п. 8, в котором при упомянутой обработке оценочных векторов локального движения упомянутого кадра
обрабатывают векторы движения упомянутого кадра с использованием согласования произвольной выборки и наименьшей величины среднеквадратической ошибки для оценки параметров для преобразования глобального движения на основе модели движения, базирующейся на подобии;
сравнивают оценочные параметры преобразования глобального движения с нижним и верхним предельными значениями упомянутых параметров;
если какие-либо из оценочных параметров преобразования глобального движения превышают свое верхнее предельное значение, то преобразование глобального движения сбрасывают;
если какие-либо из оценочных параметров преобразования глобального движения превышают нижнее предельное значение, но не верхнее предельное значение, то ограничивают оценочные параметры преобразования глобального движения их нижним предельным значением; и
в противном случае используют расчетное преобразование глобального движения для представления движения вибрации видео.
14. Способ по п. 8, в котором упомянутая обработка оценочных векторов локального движения упомянутого кадра содержит применение временного сглаживания к расчетному преобразованию глобального движения с использованием фильтра Гаусса.
15. Способ по п. 8, в котором при упомянутой обработке оценочных векторов локального движения упомянутого кадра применяют временное сглаживание к расчетному преобразованию глобального движения с использованием глобальной оптимизации с заданными ограничениями в отношении кадров в сцене сегмента видео.
16. Способ по п. 8, в котором библиотека операционной системы включает в себя набор библиотечных функций для управления стабилизацией цифрового видео, причем эта библиотека обеспечивает программный интерфейс для прикладных программ, чтобы использовать стабилизацию цифрового видео, при этом данная библиотека включает в себя по меньшей мере один вызов интерфейса DSP для выполнения одного или более из оценки векторов локального движения и деформирования изображения.
17. Способ по п. 8, в котором исполняемый файл прикладной программы управляет стабилизацией цифрового видео, причем исполняемый файл прикладной программы включает в себя по меньшей мере один вызов интерфейса DSP для выполнения одного или более из оценки векторов локального движения и деформирования изображения.
18. Способ по п. 8, в котором библиотека операционной системы управляет стабилизацией цифрового видео, причем данная библиотека включает в себя по меньшей мере один вызов интерфейса DSP для выполнения одного или более из оценки векторов локального движения и деформирования изображения.
19. Устройство обработки цифрового видео для обработки видео для применения стабилизации цифрового видео к этому видео, содержащее:
запоминающее устройство, хранящее библиотечную программу стабилизации видео для универсальной платформы;
по меньшей мере один компонент обработки цифрового сигнала;
процессорное устройство, выполненное с возможностью исполнения библиотечной программы стабилизации видео из запоминающего устройства, причем данное исполнение библиотечной программы стабилизации видео содержит:
анализ упомянутого по меньшей мере одного компонента обработки цифрового сигнала устройства обработки цифрового видео;
определение того, какой из упомянутого по меньшей мере одного компонента обработки цифрового сигнала использовать для по меньшей мере одной части стабилизации цифрового видео, в соответствии с иерархической структурой для упорядочения компонентов обработки цифрового сигнала посредством критериев, содержащих, по меньшей мере, производительность стабилизации цифрового видео; и
выполнение стабилизации цифрового видео в отношении упомянутого видео частично посредством обработки кадра данного видео для оценки векторов локального движения этого кадра, обработки оценочных векторов движения для расчета преобразования глобального движения, представляющего движение вибрации видео, и деформирования данного кадра на основе преобразования глобального движения для компенсации движения вибрации видео, при этом при выполнении стабилизации цифрового видео выполняются функции программирования в библиотечной программе стабилизации видео для универсальной платформы, чтобы использовать упомянутый определенный компонент обработки цифрового сигнала для упомянутой по меньшей мере одной части стабилизации цифрового видео.
20. Устройство обработки цифрового видео по п. 19, в котором упомянутая обработка кадра для оценки векторов локального движения кадра содержит предписание упомянутому определенному по меньшей мере одному компоненту обработки цифрового сигнала
выполнять субдискретизацию в отношении упомянутого кадра и эталонного кадра, ассоциированного с данным кадром, в один или более раз для формирования множества версий упомянутого кадра с множеством разрешений, причем версия упомянутого кадра с самым низким разрешением имеет множество блоков, связанных в виде пирамидальной структуры с последовательно большим количеством блоков в соответствующих положениях в каждой версии упомянутого кадра с более высоким разрешением;
для версии упомянутого кадра с самым низким разрешением оценивать векторы движения блоков версии упомянутого кадра с самым низким разрешением с использованием обработки по первоначальной оценке векторов движения в отношении эталонного кадра, ассоциированного с версией с самым низким разрешением;
для каждой версии упомянутого кадра с последовательно более высоким разрешением, оценивать векторы движения блоков данной версии кадра с последовательно более высоким разрешением с использованием детализированного поиска, начиная с вектора движения, оцененного для ассоциированного блока предыдущей версии кадра с более низким разрешением, в соответствии с упомянутой пирамидальной структурой; и
получать оценочные векторы локального движения для блоков версии с исходным разрешением упомянутого кадра.
21. Устройство обработки цифрового видео по п. 19, в котором упомянутая обработка оценочных векторов для расчета преобразования глобального движения, представляющего движение вибрации видео, содержит выбор набора векторов движения, чтобы использовать их для расчета преобразования глобального движения, из оценочных векторов локального движения упомянутого кадра, причем данный выбор набора векторов движения содержит:
исключение векторов движения на границах изображения,
исключение векторов движения, имеющих высокую остаточную погрешность компенсации движения, и
исключение векторов движения для блоков с малым изменением содержимого изображения.
22. Устройство обработки цифрового видео по п. 19, в котором упомянутая обработка оценочных векторов для расчета преобразования глобального движения, представляющего движение вибрации видео, содержит обработку оценочных векторов локального движения упомянутого кадра с использованием согласования произвольной выборки и наименьшей среднеквадратической ошибки для оценки параметров для преобразования глобального движения на основе модели движения, базирующейся на подобии.
23. Устройство обработки цифрового видео по п. 19, в котором упомянутая обработка оценочных векторов для расчета преобразования глобального движения, представляющего движение вибрации видео, содержит:
сравнение оценочных параметров преобразования глобального движения с верхним и нижним предельными значениями;
сброс преобразования глобального движения, если какие-либо из оценочных параметров преобразования глобального движения превышают свое верхнее предельное значение;
ограничение оценочных параметров преобразования глобального движения их нижним предельным значением, если какие-либо из оценочных параметров преобразования глобального движения превышают нижнее предельное значение, но не верхнее предельное значение; и
в противном случае использование расчетного преобразования глобального движения для представления движения вибрации видео.
24. Устройство обработки цифрового видео по п. 23, в котором упомянутое верхнее предельное значение и упомянутое нижнее предельное значение задаются в первом проходе стабилизации цифрового видео, при этом упомянутые верхнее предельное значение и нижнее предельное значение сравниваются с оценочными параметрами преобразования глобального движения во втором проходе стабилизации цифрового видео.
25. Устройство обработки цифрового видео по п. 19, в котором упомянутая обработка оценочных векторов для расчета преобразования глобального движения, представляющего движение вибрации видео, дополнительно содержит применение временного сглаживания к расчетному преобразованию глобального движения с использованием фильтра Гаусса.
RU2012134335/08A 2010-02-11 2011-02-05 Способ стабилизации видеоизображения для многофункциональных платформ RU2564832C2 (ru)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/704,047 US8896715B2 (en) 2010-02-11 2010-02-11 Generic platform video image stabilization
US12/704,047 2010-02-11
PCT/US2011/023839 WO2011100174A2 (en) 2010-02-11 2011-02-05 Generic platform video image stabilization

Publications (2)

Publication Number Publication Date
RU2012134335A RU2012134335A (ru) 2014-02-20
RU2564832C2 true RU2564832C2 (ru) 2015-10-10

Family

ID=44353429

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2012134335/08A RU2564832C2 (ru) 2010-02-11 2011-02-05 Способ стабилизации видеоизображения для многофункциональных платформ

Country Status (11)

Country Link
US (4) US8896715B2 (ru)
EP (2) EP2999210B1 (ru)
JP (1) JP5778187B2 (ru)
KR (2) KR101725215B1 (ru)
CN (1) CN102742260B (ru)
AU (1) AU2011216119B2 (ru)
CA (1) CA2786910C (ru)
HK (1) HK1216695A1 (ru)
RU (1) RU2564832C2 (ru)
TW (2) TWI568262B (ru)
WO (1) WO2011100174A2 (ru)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10991190B1 (en) 2020-07-20 2021-04-27 Abbott Laboratories Digital pass verification systems and methods

Families Citing this family (57)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8896715B2 (en) 2010-02-11 2014-11-25 Microsoft Corporation Generic platform video image stabilization
US8947453B2 (en) * 2011-04-01 2015-02-03 Sharp Laboratories Of America, Inc. Methods and systems for mobile document acquisition and enhancement
US9094617B2 (en) 2011-04-01 2015-07-28 Sharp Laboratories Of America, Inc. Methods and systems for real-time image-capture feedback
US9824426B2 (en) 2011-08-01 2017-11-21 Microsoft Technology Licensing, Llc Reduced latency video stabilization
CN102497550A (zh) * 2011-12-05 2012-06-13 南京大学 H.264编码中运动补偿插值的并行加速方法及装置
CN103186372B (zh) * 2011-12-29 2017-01-18 上海墨游信息科技有限公司 一种游戏引擎
US9460495B2 (en) * 2012-04-06 2016-10-04 Microsoft Technology Licensing, Llc Joint video stabilization and rolling shutter correction on a generic platform
KR101939628B1 (ko) * 2012-05-30 2019-01-17 삼성전자주식회사 모션 검출 방법 및 모션 검출기
US9300873B2 (en) * 2012-06-22 2016-03-29 Apple Inc. Automated tripod detection and handling in video stabilization
US8941743B2 (en) * 2012-09-24 2015-01-27 Google Technology Holdings LLC Preventing motion artifacts by intelligently disabling video stabilization
US9554042B2 (en) * 2012-09-24 2017-01-24 Google Technology Holdings LLC Preventing motion artifacts by intelligently disabling video stabilization
US9712818B2 (en) * 2013-01-11 2017-07-18 Sony Corporation Method for stabilizing a first sequence of digital image frames and image stabilization unit
US9055223B2 (en) * 2013-03-15 2015-06-09 Samsung Electronics Co., Ltd. Digital image stabilization method and imaging device using the same
US9374532B2 (en) * 2013-03-15 2016-06-21 Google Inc. Cascaded camera motion estimation, rolling shutter detection, and camera shake detection for video stabilization
KR102121558B1 (ko) * 2013-03-15 2020-06-10 삼성전자주식회사 비디오 이미지의 안정화 방법, 후처리 장치 및 이를 포함하는 비디오 디코더
JP6232730B2 (ja) * 2013-04-16 2017-11-22 セイコーエプソン株式会社 プロジェクターおよび制御方法
US9798575B2 (en) * 2013-05-06 2017-10-24 Sas Institute Inc. Techniques to manage virtual classes for statistical tests
CN103297657B (zh) * 2013-05-14 2016-08-10 李小林 一种基于gpu的视频稳定方法
US20150022677A1 (en) * 2013-07-16 2015-01-22 Qualcomm Incorporated System and method for efficient post-processing video stabilization with camera path linearization
KR102115066B1 (ko) 2013-07-23 2020-06-05 마이크로소프트 테크놀로지 라이센싱, 엘엘씨 비디오 안정화를 위한 적응적 경로 평활화
US9953400B2 (en) 2013-07-23 2018-04-24 Microsoft Technology Licensing, Llc Adaptive path smoothing for video stabilization
GB201318658D0 (en) 2013-10-22 2013-12-04 Microsoft Corp Controlling resolution of encoded video
AU2013260753A1 (en) * 2013-11-25 2015-06-11 Canon Kabushiki Kaisha Rapid shake detection using a cascade of quad-tree motion detectors
JP6448218B2 (ja) 2014-05-12 2019-01-09 キヤノン株式会社 撮像装置、その制御方法および情報処理システム
IL233684B (en) 2014-07-17 2018-01-31 Shamir Hanan Stabilizing and displaying remote images
US9398217B2 (en) 2014-10-15 2016-07-19 Microsoft Technology Licensing, Llc Video stabilization using padded margin pixels
CN105100546A (zh) * 2014-12-31 2015-11-25 天津航天中为数据系统科技有限公司 运动估计方法及装置
US9949093B2 (en) * 2015-01-29 2018-04-17 Dominic M. Kotab System, method, and computer program product for managing a network based on feedback
KR101661476B1 (ko) * 2015-06-04 2016-09-30 숭실대학교산학협력단 비의도 움직임 완화 필터링 기반의 동영상 안정화 방법, 이를 수행하기 위한 기록매체 및 장치
JP6348665B2 (ja) * 2015-06-10 2018-06-27 株式会社ソニー・インタラクティブエンタテインメント ヘッドマウントディスプレイ、表示制御方法及びプログラム
GB2539241B (en) 2015-06-11 2019-10-23 Advanced Risc Mach Ltd Video processing system
US10708571B2 (en) * 2015-06-29 2020-07-07 Microsoft Technology Licensing, Llc Video frame processing
US10043070B2 (en) * 2016-01-29 2018-08-07 Microsoft Technology Licensing, Llc Image-based quality control
US10148880B2 (en) 2016-04-04 2018-12-04 Microsoft Technology Licensing, Llc Method and apparatus for video content stabilization
US10097765B2 (en) 2016-04-20 2018-10-09 Samsung Electronics Co., Ltd. Methodology and apparatus for generating high fidelity zoom for mobile video
US10534503B1 (en) 2016-06-06 2020-01-14 Google Llc Motion stills experience
US9961261B2 (en) * 2016-06-20 2018-05-01 Gopro, Inc. Image alignment using a virtual gyroscope model
US9916863B1 (en) * 2017-02-24 2018-03-13 Gopro, Inc. Systems and methods for editing videos based on shakiness measures
US10740431B2 (en) * 2017-11-13 2020-08-11 Samsung Electronics Co., Ltd Apparatus and method of five dimensional (5D) video stabilization with camera and gyroscope fusion
CN108416382B (zh) * 2018-03-01 2022-04-19 南开大学 一种基于迭代采样和一对多标签修正的Web图像训练卷积神经网络方法
CN108765356A (zh) * 2018-07-26 2018-11-06 杭州拓叭吧科技有限公司 一种防眩晕的模拟驾驶系统、方法及其驾驶舱
US11455705B2 (en) * 2018-09-27 2022-09-27 Qualcomm Incorporated Asynchronous space warp for remotely rendered VR
CN109544584B (zh) * 2018-11-30 2021-03-16 国网智能科技股份有限公司 一种实现巡检稳像精度测量的方法及系统
US10970911B2 (en) * 2019-02-21 2021-04-06 Facebook Technologies, Llc Graphics processing chip with machine-learning based shader
US11716537B2 (en) * 2019-03-28 2023-08-01 Sony Group Corporation Image processing device, image processing method, and program
US11089220B2 (en) 2019-05-02 2021-08-10 Samsung Electronics Co., Ltd. Electronic test device, method and computer-readable medium
US11470254B1 (en) * 2019-06-21 2022-10-11 Gopro, Inc. Systems and methods for assessing stabilization of videos
CN110430480B (zh) * 2019-08-09 2022-02-18 深圳市迈岭信息技术有限公司 一种流媒体云存储同步的系统和方法
CN110750757B (zh) * 2019-10-29 2023-04-07 哈尔滨工业大学 一种基于灰度线性建模及金字塔分解的图像抖动量计算方法
CN110971895B (zh) * 2019-12-18 2022-07-08 北京百度网讯科技有限公司 视频抖动检测方法和装置
KR20210107958A (ko) 2020-02-24 2021-09-02 삼성전자주식회사 디지털 영상 안정화 장치, 그것의 동작 방법, 및 그것을 갖는 전자 장치
KR20210155284A (ko) * 2020-06-15 2021-12-22 한화테크윈 주식회사 영상처리장치
CN112291561B (zh) * 2020-06-18 2024-03-19 珠海市杰理科技股份有限公司 Hevc最大编码块运动向量计算方法、装置、芯片及存储介质
US11436793B1 (en) 2021-02-12 2022-09-06 Facebook Technologies, Llc Systems and methods for graphics rendering based on machine learning
US11863786B2 (en) * 2021-05-21 2024-01-02 Varjo Technologies Oy Method of transporting a framebuffer
CN113411500B (zh) * 2021-06-18 2024-01-12 上海盈方微电子有限公司 一种全局运动向量估计方法及电子防抖方法
CN116193257B (zh) * 2023-04-21 2023-09-22 成都华域天府数字科技有限公司 一种消除手术视频图像画面抖动的方法

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2377735C2 (ru) * 2005-04-13 2009-12-27 Нокиа Корпорейшн Способ, устройство и система для эффективного кодирования и декодирования видеоданных

Family Cites Families (73)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5259040A (en) 1991-10-04 1993-11-02 David Sarnoff Research Center, Inc. Method for determining sensor motion and scene structure and image processing system therefor
US5748231A (en) 1992-10-13 1998-05-05 Samsung Electronics Co., Ltd. Adaptive motion vector decision method and device for digital image stabilizer system
EP0986252B1 (en) 1993-06-04 2006-03-08 Sarnoff Corporation System and method for electronic image stabilization
US5973733A (en) 1995-05-31 1999-10-26 Texas Instruments Incorporated Video stabilization system and method
JP2914320B2 (ja) * 1996-09-06 1999-06-28 日本電気株式会社 モジュール切り替え型画像圧縮・再生装置
US6097854A (en) 1997-08-01 2000-08-01 Microsoft Corporation Image mosaic construction system and apparatus with patch-based alignment, global block adjustment and pair-wise motion-based local warping
US6847737B1 (en) 1998-03-13 2005-01-25 University Of Houston System Methods for performing DAF data filtering and padding
US7382927B2 (en) * 1999-01-08 2008-06-03 Sharp Laboratories Of America, Inc. System for constructing mosaic images
US6798843B1 (en) 1999-07-13 2004-09-28 Pmc-Sierra, Inc. Wideband digital predistortion linearizer for nonlinear amplifiers
US7084905B1 (en) 2000-02-23 2006-08-01 The Trustees Of Columbia University In The City Of New York Method and apparatus for obtaining high dynamic range images
US6970206B1 (en) 2000-04-20 2005-11-29 Ati International Srl Method for deinterlacing interlaced video by a graphics processor
US7227896B2 (en) * 2001-10-04 2007-06-05 Sharp Laboratories Of America, Inc. Method and apparatus for global motion estimation
US7061524B2 (en) 2001-11-13 2006-06-13 The Board Of Trustees Of The Leland Stanford Junior University Motion/saturation detection system and method for synthesizing high dynamic range motion blur free images from multiple captures
EP1376471A1 (en) 2002-06-19 2004-01-02 STMicroelectronics S.r.l. Motion estimation for stabilization of an image sequence
US7119837B2 (en) 2002-06-28 2006-10-10 Microsoft Corporation Video processing system and method for automatic enhancement of digital video
JP3799326B2 (ja) 2002-12-02 2006-07-19 Necインフロンティア株式会社 パケット送信方式及びパケット受信方式
US6879731B2 (en) 2003-04-29 2005-04-12 Microsoft Corporation System and process for generating high dynamic range video
JP4262014B2 (ja) 2003-07-31 2009-05-13 キヤノン株式会社 画像撮影装置および画像処理方法
US7346109B2 (en) 2003-12-23 2008-03-18 Genesis Microchip Inc. Motion vector computation for video sequences
US7817726B2 (en) 2004-05-21 2010-10-19 Broadcom Corporation System and method for automatic filter generation using sampled SINC function with windowed smoothing
US7649549B2 (en) 2004-09-27 2010-01-19 Texas Instruments Incorporated Motion stabilization in video frames using motion vectors and reliability blocks
US7489341B2 (en) 2005-01-18 2009-02-10 Primax Electronics Ltd. Method to stabilize digital video motion
US7755667B2 (en) 2005-05-17 2010-07-13 Eastman Kodak Company Image sequence stabilization method and camera having dual path image sequence stabilization
US7894528B2 (en) 2005-05-25 2011-02-22 Yissum Research Development Company Of The Hebrew University Of Jerusalem Fast and robust motion computations using direct methods
US7433514B2 (en) 2005-07-13 2008-10-07 Canon Kabushiki Kaisha Tone mapping of high dynamic range images
US7454136B2 (en) 2005-07-28 2008-11-18 Mitsubishi Electric Research Laboratories, Inc. Method and apparatus for acquiring HDR flash images
JP4640032B2 (ja) * 2005-08-11 2011-03-02 カシオ計算機株式会社 画像合成装置、画像合成方法及びプログラム
US7557832B2 (en) 2005-08-12 2009-07-07 Volker Lindenstruth Method and apparatus for electronically stabilizing digital images
JP4775700B2 (ja) * 2005-09-05 2011-09-21 カシオ計算機株式会社 画像処理装置及び画像処理方法
US7817151B2 (en) * 2005-10-18 2010-10-19 Via Technologies, Inc. Hardware corrected software vertex shader
TWI296178B (en) * 2005-12-12 2008-04-21 Novatek Microelectronics Corp Image vibration-compensating apparatus and the method thereof
US9182228B2 (en) 2006-02-13 2015-11-10 Sony Corporation Multi-lens array system and method
JP4620607B2 (ja) * 2006-02-24 2011-01-26 株式会社モルフォ 画像処理装置
US7929599B2 (en) 2006-02-24 2011-04-19 Microsoft Corporation Accelerated video encoding
US8014445B2 (en) 2006-02-24 2011-09-06 Sharp Laboratories Of America, Inc. Methods and systems for high dynamic range video coding
US7623683B2 (en) 2006-04-13 2009-11-24 Hewlett-Packard Development Company, L.P. Combining multiple exposure images to increase dynamic range
JP2007328693A (ja) * 2006-06-09 2007-12-20 Canon Inc 画像回転装置
US8644643B2 (en) * 2006-06-14 2014-02-04 Qualcomm Incorporated Convolution filtering in a graphics processor
WO2007145366A1 (en) 2006-06-15 2007-12-21 Kabushiki Kaisha Toshiba Portable electronic device and control method thereof
US8340185B2 (en) 2006-06-27 2012-12-25 Marvell World Trade Ltd. Systems and methods for a motion compensated picture rate converter
EP2052553A4 (en) 2006-07-26 2010-08-25 Human Monitoring Ltd IMAGE STABILIZER
JP2008053875A (ja) * 2006-08-23 2008-03-06 Sony Corp 画像処理装置および方法、プログラム、並びにプログラム格納媒体
US20080112630A1 (en) * 2006-11-09 2008-05-15 Oscar Nestares Digital video stabilization based on robust dominant motion estimation
US7856246B2 (en) 2007-03-21 2010-12-21 Nokia Corporation Multi-cell data processor
JP4931223B2 (ja) * 2007-03-30 2012-05-16 株式会社バンダイナムコゲームス 動きベクトル探索プログラム、情報記憶媒体、動きベクトル探索装置、及び、ネットワークシステム
JP4958610B2 (ja) 2007-04-06 2012-06-20 キヤノン株式会社 画像防振装置、撮像装置及び画像防振方法
US8422550B2 (en) 2007-07-27 2013-04-16 Lagavulin Limited Apparatuses, methods, and systems for a portable, automated contractual image dealer and transmitter
KR101392732B1 (ko) 2007-08-20 2014-05-08 삼성전자주식회사 손떨림에 의한 움직임 추정 장치 및 방법, 그를 이용한영상 촬상 장치
JP4461165B2 (ja) 2007-09-26 2010-05-12 株式会社東芝 画像処理装置、方法およびプログラム
US8284205B2 (en) 2007-10-24 2012-10-09 Apple Inc. Methods and apparatuses for load balancing between multiple processing units
US8760450B2 (en) 2007-10-30 2014-06-24 Advanced Micro Devices, Inc. Real-time mesh simplification using the graphics processing unit
US8750390B2 (en) 2008-01-10 2014-06-10 Microsoft Corporation Filtering and dithering as pre-processing before encoding
US8769207B2 (en) 2008-01-16 2014-07-01 Via Technologies, Inc. Caching method and apparatus for a vertex shader and geometry shader
US8130277B2 (en) * 2008-02-20 2012-03-06 Aricent Group Method and system for intelligent and efficient camera motion estimation for video stabilization
JP2009230537A (ja) 2008-03-24 2009-10-08 Olympus Corp 画像処理装置、画像処理プログラム、画像処理方法、および、電子機器
US8300117B2 (en) * 2008-03-28 2012-10-30 Fuji Xerox Co., Ltd. System and method for exposing video-taking heuristics at point of capture
US8213706B2 (en) 2008-04-22 2012-07-03 Honeywell International Inc. Method and system for real-time visual odometry
US9571856B2 (en) 2008-08-25 2017-02-14 Microsoft Technology Licensing, Llc Conversion operations in scalable video encoding and decoding
JP5213613B2 (ja) * 2008-09-26 2013-06-19 キヤノン株式会社 画像処理装置及び画像処理方法及び撮像装置及びプログラム
US8406569B2 (en) 2009-01-19 2013-03-26 Sharp Laboratories Of America, Inc. Methods and systems for enhanced dynamic range images and video from multiple exposures
JP4915424B2 (ja) 2009-02-19 2012-04-11 ソニー株式会社 画像処理装置、カメラモーション成分算出方法、画像処理プログラム及び記録媒体
US8659670B2 (en) * 2009-04-20 2014-02-25 Qualcomm Incorporated Motion information assisted 3A techniques
WO2010123923A1 (en) 2009-04-23 2010-10-28 Zoran Corporation Multiple exposure high dynamic range image capture
US8446433B1 (en) * 2009-06-12 2013-05-21 Lucasfilm Entertainment Company Ltd. Interactive visual distortion processing
KR101614914B1 (ko) 2009-07-23 2016-04-25 삼성전자주식회사 모션 적응적 고대비 영상 획득 장치 및 방법
US8606009B2 (en) 2010-02-04 2013-12-10 Microsoft Corporation High dynamic range image generation and rendering
US8896715B2 (en) 2010-02-11 2014-11-25 Microsoft Corporation Generic platform video image stabilization
US8531535B2 (en) 2010-10-28 2013-09-10 Google Inc. Methods and systems for processing a video for stabilization and retargeting
US8849054B2 (en) * 2010-12-23 2014-09-30 Samsung Electronics Co., Ltd Digital image stabilization
US8711248B2 (en) 2011-02-25 2014-04-29 Microsoft Corporation Global alignment for high-dynamic range image generation
US9824426B2 (en) 2011-08-01 2017-11-21 Microsoft Technology Licensing, Llc Reduced latency video stabilization
US9460495B2 (en) 2012-04-06 2016-10-04 Microsoft Technology Licensing, Llc Joint video stabilization and rolling shutter correction on a generic platform
US9374532B2 (en) * 2013-03-15 2016-06-21 Google Inc. Cascaded camera motion estimation, rolling shutter detection, and camera shake detection for video stabilization

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2377735C2 (ru) * 2005-04-13 2009-12-27 Нокиа Корпорейшн Способ, устройство и система для эффективного кодирования и декодирования видеоданных

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10991190B1 (en) 2020-07-20 2021-04-27 Abbott Laboratories Digital pass verification systems and methods
US10991185B1 (en) 2020-07-20 2021-04-27 Abbott Laboratories Digital pass verification systems and methods
US11514738B2 (en) 2020-07-20 2022-11-29 Abbott Laboratories Digital pass verification systems and methods
US11514737B2 (en) 2020-07-20 2022-11-29 Abbott Laboratories Digital pass verification systems and methods
US11574514B2 (en) 2020-07-20 2023-02-07 Abbott Laboratories Digital pass verification systems and methods

Also Published As

Publication number Publication date
US10841494B2 (en) 2020-11-17
US9578240B2 (en) 2017-02-21
TW201616859A (zh) 2016-05-01
EP2534828A4 (en) 2015-03-04
TWI568262B (zh) 2017-01-21
EP2534828B1 (en) 2018-12-19
RU2012134335A (ru) 2014-02-20
CA2786910C (en) 2020-06-30
WO2011100174A2 (en) 2011-08-18
CN102742260A (zh) 2012-10-17
US20110193978A1 (en) 2011-08-11
KR20150126421A (ko) 2015-11-11
TW201143398A (en) 2011-12-01
TWI517705B (zh) 2016-01-11
HK1216695A1 (zh) 2016-11-25
EP2534828A2 (en) 2012-12-19
WO2011100174A3 (en) 2011-11-17
CA2786910A1 (en) 2011-08-18
AU2011216119A1 (en) 2012-08-09
JP5778187B2 (ja) 2015-09-16
US10257421B2 (en) 2019-04-09
US8896715B2 (en) 2014-11-25
KR101725215B1 (ko) 2017-04-10
EP2999210B1 (en) 2019-12-04
US20150036010A1 (en) 2015-02-05
AU2011216119B2 (en) 2014-07-03
JP2013520717A (ja) 2013-06-06
KR20130001215A (ko) 2013-01-03
EP2999210A1 (en) 2016-03-23
CN102742260B (zh) 2015-07-15
US20170094172A1 (en) 2017-03-30
US20190297263A1 (en) 2019-09-26
KR101757838B1 (ko) 2017-07-26

Similar Documents

Publication Publication Date Title
RU2564832C2 (ru) Способ стабилизации видеоизображения для многофункциональных платформ
US9824426B2 (en) Reduced latency video stabilization
US10217200B2 (en) Joint video stabilization and rolling shutter correction on a generic platform
US10455152B2 (en) Panoramic video processing method and device and non-transitory computer-readable medium
KR102003012B1 (ko) 제약-기반 회전 스무싱을 통한 디지털 비디오 안정화 시스템 및 방법
Liu et al. Subspace video stabilization
US10003768B2 (en) Apparatus and methods for frame interpolation based on spatial considerations
US8810692B2 (en) Rolling shutter distortion correction
JP2021515347A (ja) ニューラルネットワークモデルのトレーニング、タイムラプス撮影ビデオの生成方法及び装置
WO2023103576A1 (zh) 视频处理方法、装置、计算机设备及存储介质
WO2018058476A1 (zh) 一种图像校正方法及装置
JP7351140B2 (ja) 配信装置、配信システムおよび配信プログラム
JP2017005343A (ja) 映像品質推定装置、映像品質推定方法、及びプログラム
CN117541507A (zh) 图像数据对的建立方法、装置、电子设备和可读存储介质
CN116740142A (zh) 轨迹注意力目标跟踪方法、装置及可读介质

Legal Events

Date Code Title Description
HZ9A Changing address for correspondence with an applicant