СПОСОБ СТАБИЛИЗАЦИИ ВИДЕОИЗОБРАЖЕНИЯ ДЛЯ МНОГОФУНКЦИОНАЛЬНЫХ ПЛАТФОРМ Российский патент 2015 года по МПК G06T1/00 H04N5/235 

Описание патента на изобретение RU2564832C2

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Обозначение ( W t 1 W t 2 ... W t 15 ) 1 обозначает обращение (инверсию) матрицы. В этом уравнении (2), W t ' является преобразованием глобального движения после сглаживания в момент времени t, а W t i является преобразованием глобального движения до сглаживания в момент времени (t-i). Значения C t i являются коэффициентами фильтра Гаусса, а I является матрицей тождественного преобразования. В сценариях воспроизведения видео в режиме реального времени или перекодирования, этот размер фильтра вводит задержку на 15 изображений. Альтернативные варианты реализации могут использовать более длинный или более короткий размер фильтра, и, альтернативно, могут использовать фильтр другого типа, включающий в себя адаптивный фильтр.

Двухпроходная обработка векторов движения в автономном режиме

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

Как иллюстрировано в действии 1005 на фиг.10, двухпроходная обработка 1000 векторов движения выполняет обнаружение изменения сцены во всем сегменте видео во время первого прохода. Обнаружение изменения сцены может быть выполнено с использованием традиционно известных способов. Затем, в действии 1010, двухпроходная обработка 1000 векторов движения производит оценки преобразования глобального движения для каждого видеокадра сцены для первого прохода, как, например, посредством применения тех же самых действий, что и в действиях 910, 920 и 930 из однопроходной обработки 900 векторов движения из фиг.9. В этом первом проходе эти оценки преобразования глобального движения просто собираются для создания статистической информации для лучшей оптимизации оценок преобразования глобального движения во втором проходе. Соответственно, оценки глобального движения в первом проходе не используются непосредственно в деформировании 230 изображения из процесса 200 стабилизации видеоизображения для компенсации движения вибрации видео. Вместо этого, в действии 1020 двухпроходная обработка 1000 векторов движения вычисляет минимальные и максимальные значения и вероятностные распределения для параметров трансляции, поворота и масштабирования преобразования глобального движения (например, s min , s max , β min , β max , t x min , t x max , t y min , t y max , p(s), p(β), p( t x ) и p( t y )) во всех кадрах в каждой сцене сегмента видео. Альтернативно, статистика вероятностей может быть собрана для всего сегмента видео, а не для каждой отдельной сцены.

На основе этих эмпирических вероятностных распределений параметров для каждой сцены, двухпроходная обработка 1000 векторов движения в действии 1030 определяет нижнее и верхнее предельные значения ( T 1 x и T 2 x ) в каждой сцене для каждого из параметров преобразования глобального движения (s, p, t x , t y ). Например, нижнее и верхнее предельные значения могут быть выбраны для соответствия определенным пороговым значениям вероятности p 1 и p 2 . В одном примере, пороговые значения вероятности p 1 и p 2 составляют 95% и 98%, соответственно. Другими словами, 95% значений параметров, зафиксированных для сцены в первом проходе, находятся в рамках предельного значения T 1 x ; а 98% зафиксированных значений параметра находятся ниже верхнего предельного значения T 2 x . В альтернативных вариантах реализации, двухпроходная обработка вектора движения может определять предельные значения на основе других пороговых значений вероятности или каких-либо других эмпирических вероятностных критериев. Кроме того, нижнее и верхнее предельные значения могут быть ограничены посредством строгих предельных значений. По сравнению с однопроходной обработкой 900 вектора движения из фиг.9, эта настройка предельных значений ( T 1 x и T 2 x ) параметров на основе эмпирической статистики вероятностей видео позволяет адаптивное обнаружение и коррекцию ошибок, применяемые к преобразованию глобального движения, для каждого конкретного видеоконтента.

Затем, в действии 1030, двухпроходная обработка 1000 векторов движения выполняет второй проход обработки векторов движения. Для этого второго прохода, обработка 1000 выполняет обработку, выполняемую в действиях 910, 920 930 и 940-944 из однопроходной обработки 900 векторов движения. Для предельных значений ( T 1 x и T 2 x ) применяемых в действиях 940-944 из этого второго прохода, двухпроходной процесс использует предельные значения, определенные на основе статистической вероятности для видео, которые были собраны в первом проходе. Поскольку эти предельные значения приспособлены для содержимого предметного видео, то двухпроходная обработка 1000 векторов движения должна выполнять более качественное обнаружение и коррекцию ошибок с использованием этих адаптивных предельных значений.

Двухпроходная обработка векторов движения также может достигнуть лучшего качества стабилизации цифрового видеоизображения (по сравнению с однопроходной обработкой векторов движения) также посредством выполнения глобального временного сглаживания во всем сегменте видео. В одном иллюстративном варианте реализации двухпроходной обработки 1000 векторов движения, обработка выполняет временное сглаживание с использованием глобальной оптимизации с заданными ограничениями вместо подхода «скользящего» окна для однопроходной обработки векторов движения. Один пример такой глобальной оптимизации с заданными ограничениями включает в себя определения ограничения для глобальных преобразований чрезмерно сглаженного движения из усреднения преобразования глобального движения на количество из N видеокадров в качестве верхнего предельного значения для временного сглаживания, где N может являться значением в диапазоне [10, 15] для чрезмерного сглаживания. Затем, в рамках ограничения избыточного сглаживания, выполняется выпуклая оптимизация. В одном иллюстративном варианте реализации, целевая функция, например, может быть определена как:

(3)

В уравнении (3) целевой функции, первый член означает, что преобразование W j окончательного выравнивания должно быть подобным исходному преобразованию и соседним с ним преобразованиям, W s t с другими весовыми коэффициентами C i в окне. Второй член означает, что преобразование W j окончательного выравнивания должно быть подобным преобразованию W s t с избыточным выравниванием в качестве ограничения, с весом ρ. Значение D является метрикой измерения расстояния, которая может быть расстоянием между преобразованными координатами четырех углов изображения с W j и W s t . Выпуклая оптимизация может применяться для минимизации целевой функции.

Деформирование изображения при помощи преобразования глобального движения

И снова со ссылкой на фиг.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 и применяется либо когда видео изначально передается на локальный компьютер, либо когда оно загружается в службу с использованием вычислений в облаке. В другом сценарии стабилизация цифрового видеоизображения реализуется в облаке и применяется к видео по мере его выгрузки и сохранения в облаке. В другом сценарии стабилизация цифрового видеоизображения реализуется посредством служб с использованием облачных вычислений и применяется при воспроизведении видео, его передаче или распространении на другое сетевое устройство или службу. Еще в одном сценарии стабилизация цифрового видеоизображения реализуется посредством служб облачных вычислений и применяется при транскодировании видео для представления его с подходящим разрешением или при потоковом воспроизведении с подходящей шириной полосы пропускания для сетевого устройства, на котором выполняется просмотр. В других дополнительных сценариях, стабилизация цифрового видеоизображения может быть выполнена на сетевом устройстве во время воспроизведения.

Иллюстративные альтернативы и комбинации

Любой из описанных в настоящем документе способов может быть выполнен с помощью одного или нескольких машиночитаемых носителей (например, устройств хранения данных или других материальных носителей), содержащих (например, имеющих или сохраняющих) исполняемые компьютером команды для выполнения (например, выполнения вычислительным устройством) таких способов. Работа может быть полностью автоматической, полуавтоматической или предполагать вмешательство оператора.

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

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

Похожие патенты RU2564832C2

название год авторы номер документа
МЕТОДИКИ КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ ЦИФРОВОГО ВИДЕО С ПЕРЕМЕННЫМ РАЗРЕШЕНИЕМ 2007
  • Баркли Уоррен В.
  • Чоу Филип А.
  • Крайнон Риджис Дж.
  • Мур Тим
RU2497302C2
СПОСОБ ПРЕОБРАЗОВАНИЯ ЧАСТОТЫ КАДРОВ, ПОДДЕРЖИВАЮЩИЙ ЗАМЕНУ ИНТЕРПОЛЯЦИИ КАДРА С КОМПЕНСАЦИЕЙ ДВИЖЕНИЯ ЛИНЕЙНОЙ КОМБИНАЦИЕЙ КАДРОВ, И РЕАЛИЗУЮЩЕЕ ЕГО УСТРОЙСТВО 2022
  • Ильичев Сергей Дмитриевич
  • Ковлига Игорь Миронович
  • Погл Петр
RU2786784C1
СПОСОБЫ ВИДЕОКОДИРОВАНИЯ ДЛЯ КОДИРОВАНИЯ ЗАВИСИМЫХ ИЗОБРАЖЕНИЙ ПОСЛЕ ПРОИЗВОЛЬНОГО ДОСТУПА 2012
  • Чэнь Ин
  • Кобан Мухаммед Зейд
  • Чэнь Пэйсун
  • Карчевич Марта
RU2566972C2
БЫСТРОЕ ПРИНЯТИЕ РЕШЕНИЯ О ДЕЛЬТЕ ПАРАМЕТРА КВАНТОВАНИЯ МАКРОБЛОКА 2009
  • Е Янь
  • Карчевич Марта
  • Чэнь Пэйсун
RU2498523C2
СПОСОБ И УСТРОЙСТВО ДЛЯ ПРЕОБРАЗОВАНИЯ С ПОВЫШЕНИЕМ ЧАСТОТЫ КАДРОВ С ПОМОЩЬЮ КОДЕРА (EA-FRUC) ДЛЯ СЖАТИЯ ВИДЕОИЗОБРАЖЕНИЯ 2005
  • Равииндран Виджаялакшми Р.
  • Ши Фан
  • Уолкер Гордон Кент
RU2377737C2
СПОСОБ И УСТРОЙСТВО ДЛЯ АЛГОРИТМОВ ПРОТИВОСТОЯНИЯ ОШИБКАМ ПРИ БЕСПРОВОДНОЙ ПЕРЕДАЧЕ ВИДЕО 2007
  • Субраманиа Ситараман Ганапатхи
  • Уолкер Гордон Кент
  • Равииндран Виджаялакшми Р.
RU2404536C2
МЕТОДИКИ МАСШТАБИРУЕМОСТИ НА ОСНОВЕ ИНФОРМАЦИИ СОДЕРЖИМОГО 2006
  • Равииндран Виджаялакшми Р.
  • Уолкер Гордон Кент
  • Тянь Тао
  • Бхамидипати Пханикумар
  • Ши Фан
  • Чэнь Пэйсун
  • Субраманиа Ситараман Ганапатхи
  • Огуз Сейфуллах Халит
RU2378790C1
СПОСОБ СОЗДАНИЯ ВИДЕОИЗОБРАЖЕНИЙ КОМПЬЮТЕРНОЙ ТРЕХМЕРНОЙ ВИРТУАЛЬНОЙ СРЕДЫ 2009
  • Хайндмэн Эрн
RU2526712C2
СПОСОБЫ И УСТРОЙСТВО ДЛЯ АДАПТИВНОЙ ПОТОКОВОЙ ПЕРЕДАЧИ ОБЛАКОВ ТОЧЕК 2020
  • Хамза, Ахмед
  • Хэ, Юн
RU2795052C2
СИСТЕМА И СПОСОБ ОБРАБОТКИ СИМВОЛОВ, ВСТАВЛЕННЫХ В ЦИФРОВОЕ ВИДЕО 2003
  • Лейн Ричард Д.
  • Силбергер Амнон
RU2351090C2

Иллюстрации к изобретению RU 2 564 832 C2

Реферат патента 2015 года СПОСОБ СТАБИЛИЗАЦИИ ВИДЕОИЗОБРАЖЕНИЯ ДЛЯ МНОГОФУНКЦИОНАЛЬНЫХ ПЛАТФОРМ

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

Формула изобретения RU 2 564 832 C2

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, в котором упомянутая обработка оценочных векторов для расчета преобразования глобального движения, представляющего движение вибрации видео, дополнительно содержит применение временного сглаживания к расчетному преобразованию глобального движения с использованием фильтра Гаусса.

Документы, цитированные в отчете о поиске Патент 2015 года RU2564832C2

Способ и приспособление для нагревания хлебопекарных камер 1923
  • Иссерлис И.Л.
SU2003A1
Пресс для выдавливания из деревянных дисков заготовок для ниточных катушек 1923
  • Григорьев П.Н.
SU2007A1
Пресс для выдавливания из деревянных дисков заготовок для ниточных катушек 1923
  • Григорьев П.Н.
SU2007A1
Способ приготовления мыла 1923
  • Петров Г.С.
  • Таланцев З.М.
SU2004A1
Пресс для выдавливания из деревянных дисков заготовок для ниточных катушек 1923
  • Григорьев П.Н.
SU2007A1
Способ приготовления мыла 1923
  • Петров Г.С.
  • Таланцев З.М.
SU2004A1
СПОСОБ, УСТРОЙСТВО И СИСТЕМА ДЛЯ ЭФФЕКТИВНОГО КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ ВИДЕОДАННЫХ 2006
  • Ванг Йе-Куй
RU2377735C2

RU 2 564 832 C2

Авторы

Ву Юнцзюнь

Борисов Никола

Чжао Вэйдун

Садхвани Шьям

Тхумпуди Навин

Даты

2015-10-10Публикация

2011-02-05Подача