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

Классы МПК:G06F15/18 с модификацией программ, осуществляемой самой машиной в соответствии с опытом, накопленным машиной за время полного цикла работы; самообучающиеся машины
G06F15/02 с ручным управлением ввода с помощью клавиатуры и выполнением математических операций с помощью встроенной программы, например карманные калькуляторы 
G06F9/44 устройства для выполнения специальных программ
Автор(ы):, ,
Патентообладатель(и):МАЙКРОСОФТ КОРПОРЕЙШН (US)
Приоритеты:
подача заявки:
2003-09-30
публикация патента:

Изобретение относится к вычислительной технике и может быть использовано в операционных системах для автоматического добавления программных компонентов в системные процессы. Техническим результатом изобретения является расширение мультимедиа функциональных возможностей системных процессов. В изобретении описаны системы и способы для автоматической установки и использования фильтров для обработки мультимедийных данных. Установленные фильтры впоследствии вызываются другими системными процессами, такими как драйверы устройств, приложения и программные средства сбора и обработки данных. Фильтры являются объектами, которые могут быть использованы множеством процессов в любой данный момент времени. Поиск и нумерация установленных фильтров могут быть выполнены службой управления фильтрами согласно их категориям. 8 н. и 15 з.п. ф-лы, 16 ил. системная архитектура и связанные с ней способы динамического   добавления программных компонентов для расширения функциональных   возможностей системных процессов, патент № 2353968

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

Формула изобретения

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

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

устанавливают посредством являющегося службой системного уровня средства управления дополнительными встраиваемыми средствами упомянутый по меньшей мере один мультимедийный фильтр, и

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

2. Способ по п.1, в котором запрос на установку по меньшей мере одного мультимедийного фильтра содержит один или более из следующих объектов:

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

один или более уникальных идентификаторов, соответствующих мультимедийным фильтрам,

одно или более названий, соответствующих мультимедийным фильтрам,

одно или более описаний мультимедийных фильтров, и

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

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

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

устанавливают посредством являющегося службой системного уровня средства управления дополнительными встраиваемыми средствами упомянутый по меньшей мере один мультимедийный фильтр,

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

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

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

4. Способ по п.3, в котором запрос на нумерацию установленных мультимедийных фильтров принимают от одного или более процессов, связанных с компьютером.

5. Способ по п.3, в котором установленные мультимедийные фильтры нумеруют в соответствии с одной или более категориями, соответствующими мультимедийным фильтрам.

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

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

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

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

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

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

12. Способ по п.9, в котором приемлемость установленных в системе фильтров для нумерации определяют в соответствии с критериями, полученными от одного или более из следующих средств:

процесса, запрашивающего нумерацию,

установленных фильтров, и

операционной системы.

13. Способ по п.3, в котором мультимедийные фильтры соединяют вместе в цепочку, а входные мультимедийные данные обрабатывают последовательно мультимедийными фильтрами в цепочке.

14. Способ по п.3, в котором множество процессов могут использовать любой из мультимедийных фильтров одновременно.

15. Машиночитаемый носитель, который содержит исполняемые компьютером команды для выполнения способа по п.3.

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

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

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

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

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

18. Способ по п.16, в котором системный процесс является одним из следующих средств:

прикладной программой для обработки мультимедийных данных, драйвером устройства, и

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

19. Машиночитаемый носитель, который содержит исполняемые компьютером команды для выполнения способа по п.16.

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

запрашивают являющееся службой системного уровня средство управления дополнительными встраиваемыми средствами установить в упомянутой системе мультимедийный фильтр,

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

устанавливают мультимедийный фильтр в упомянутой системе,

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

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

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

21. Способ по п.20, в котором информация, относящаяся к мультимедийному фильтру, включает в себя один или более из следующих объектов:

один или более уникальных идентификаторов, соответствующих мультимедийному фильтру,

одно или более названий, соответствующих мультимедийному фильтру,

одно или более описаний мультимедийного фильтра, и

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

22. Машиночитаемый носитель, который содержит исполняемые компьютером команды для выполнения способа по п.20.

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

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

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

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

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

выбирают посредством упомянутого процесса один или более найденных мультимедийных фильтров, и

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

Описание изобретения к патенту

Область техники, к которой относится изобретение

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

Уровень техники

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

Фильтры представляют собой программные компоненты, которые используются с мультимедийными файлами (например, звукозапись, видеоизображения или неподвижные изображения) и служат при этом в качестве кодеков (кодеров или декодеров), используются для добавления различных эффектов (например, световая коррекция, увеличение яркости и т.д.) или для анализа контента (информационного наполнения) файла (например, для извлечения метаданных, таких как количество людей в данном файле изображения). В настоящее время для форматирования файлов изображений при подготовке публикаций с помощью настольных издательских средств широко используют несколько стандартов кодеков (например, JPEG, TIFF). Большинство операционных систем, приложений и программных средств сбора и обработки данных поддерживает указанные широкоиспользуемые стандарты. Например, программное средство сбора и обработки данных в операционных системах Microsoft® Windows® Me и Microsoft® Windows® XP, поставляемое Microsoft® Corporation под названием Scanner and Camera Wizard, работает со сканирующими устройствами и цифровыми камерами и обладает возможностями декодирования и обработки файлов TIFF, созданных драйверами сканера и цифровой камеры.

Однако некоторые производители аппаратных средств, таких как цифровые камеры и сканеры, предпочитают использовать кодеки, специально спроектированные для работы с их собственными аппаратными компонентами. Например, Nikon® Corporation предпочитает использовать специализированную версию TIFF, известную как формат TIFF/EP, для кодирования и декодирования цифровых изображений. Однако формат TIFF/EP широко не используется, либо не поддерживается операционными системами или приложениями обработки изображений. Например, операционная система Windows® XP от Microsoft® Corporation не поддерживает формат TIFF/EP для изображений. Следовательно, пользователь рабочего стола (экранной интерактивной среды) Windows® XP не сможет декодировать и просматривать файл изображений TIFF/EP, полученный из камеры Nikon®, без установки отдельного приложения для просмотра. Также некоторые приложения обработки изображений, например Image Viewer от Microsoft® Corporation, нельзя расширить для поддержки стандарта TIFF/EP, поскольку они разработаны для использования стандартного декодера TIFF, всякий раз, когда в приложение поступает файл типа TIFF. В настоящее время пользователь для того, чтобы иметь возможность просмотра и коррекции изображения TIFF/EP, должен добавить в свою систему Windows® XP компоненту кодека TIFF/EP и использовать приложение, специально предназначенное для работы с изображениями TIFF/EP. Таким образом, имеется насущная потребность в операционных системах, отличающихся большей гибкостью в плане предоставления возможностей поставщикам IHV и поставщикам ISV расширять возможности имеющихся системных процессов, таких как драйверы устройств, программные средства сбора и обработки данных и другие приложения, путем предоставления их собственных фильтров в качестве дополнительных средств, встраиваемых в системные процессы. Предоставление возможности поставщикам IHV или поставщикам ISV расширения возможностей имеющихся приложений или программных средств сбора и обработки данных также исключит необходимость создания индивидуальных приложений для работы со специализированными фильтрами и позволит вместо этого поставщикам ISV и поставщикам IHV сконцентрировать свои усилия на предоставлении наилучших фильтров в качестве дополнительных встраиваемых средств.

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

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

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

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

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

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

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

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

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

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

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

Перечень чертежей

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Обзор

Фильтры представляют собой программные компоненты, используемые при обработке мультимедийных данных (например, аудио-, видео- и неподвижных изображений). Фильтры могут быть кодеками (кодерами или декодерами), аналитическими фильтрами или корректирующими фильтрами. Примеры кодеков включают в себя кодеки формата MPEG для видео-, формата JPEG или TIFF для цифровых неподвижных изображений и форматы WAV или AVI для файлов звукозаписи. Кодеки используют в основном для сжатия мультимедийных файлов с целью их эффективной передачи по сети. Корректирующие фильтры, которые также называют «эффекты», используют главным образом для добавления корректирующих эффектов в мультимедийный файл путем изменения битов изображения для коррекции данных или для переназначения данных (например, усиление яркости для файла изображений, или подавление шума для файла аудиоданных). Аналитические фильтры выделяют данные из файлов изображений (например, метаданные, такие как цвет фона в файле изображений). Множество фильтров предоставляют в виде стандартных средств вместе с программными средствами операционной системы (например, Microsoft® Windows® XP) или с приложениями для обработки мультимедийных данных (например, Adobe® Photoshop®). Однако имеется большое количество фильтров, обслуживающих специальные задачи, которые не могут поддерживаться конкретной платформой операционной системы или приложениями. Среди прочего системная архитектура и способы, описанные ниже, предоставляют открытую и гибкую архитектуру для добавления фильтров в виде дополнительных встраиваемых средств с целью расширения возможностей существующих системных процессов.

На фиг. 1 показан статический способ расширения возможностей системы путем предоставления дополнительных встраиваемых средств для выполнения специализированных задач. В указанной системе процессу 110 (например, драйверам устройств, приложениям или программным средствам сбора и обработки данных) могут потребоваться сведения об имеющихся дополнительных встраиваемых фильтрах 125, которые зарегистрированы в системном реестре 120. Затем процесс 110 может выбрать конкретный объект 125 в виде дополнительного встраиваемого фильтра и использовать редактор 130 (например, Filter Graph Editor от Microsoft® Corporation) для добавления фильтра 125 вместе с другими компонентами, такими как встроенный фильтр 140, для обработки мультимедийного файла и предоставления его целевому средству 150 воспроизведения (например, дисплей, динамик или файл). Указанный способ должен рассчитывать на само приложение, обладающее сведениями о существующих дополнительных встраиваемых фильтрах 125, либо в самом приложении должен быть дополнительный программный код для выполнения запроса к реестру 120 с целью определения доступности существующего фильтра 125. Это представляет большие трудности для разработчиков приложений, требуя от них добавления дополнительных строк программного кода для выполнения запроса и обработки данных для дополнительного встраиваемого фильтра.

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

На фиг. 2 показана более динамичная и гибкая система 200 для расширения возможностей системных процессов 210 с помощью дополнительных встраиваемых фильтров 245. В указанной системе системная служба, называемая здесь средством 220 управления дополнительными встраиваемыми средствами, предоставляется в виде объекта компонентной модели (например, объект Component Object Model (COM) на платформе Microsoft® Windows®), который доступен всей системе и служит в качестве узла между процессами 210 и дополнительными встраиваемыми фильтрами 245. Таким образом, с одной стороны, дополнительные встраиваемые фильтры 245 могут использовать средство 220 управления дополнительными встраиваемыми средствами для установки себя в системе (240) и сделать себя доступными для процессов 210. С другой стороны, средство 220 управления дополнительными встраиваемыми средствами может быть использовано процессами 210 для нахождения, нумерации и предоставления интерфейсов дополнительным встраиваемым фильтрам, таким как фильтр 245. Процесс 210 может использовать редактор 250 для добавления дополнительного встраиваемого фильтра 245 вместе со встроенным фильтром 260 с целью обработки мультимедийного файла и подачи на целевое средство 270 воспроизведения. Предоставление отдельной системной службы для управления установкой и подготовкой к работе дополнительных встраиваемых фильтров не только освободит сами процессы 210 от необходимости иметь дело с указанной объемной программной задачей, но также сделает упомянутую службу потенциально доступной всем процессам в системе, которые могут формировать вызовы в средство 220 управления дополнительными встраиваемыми средствами.

Кроме того, вся система 200 вместе со средством 220 управления дополнительными встраиваемыми средствами обеспечивает надежную модель защиты, гарантирующую, что любые подверженные ошибкам, не заслуживающие доверия или непроверенные фильтры не смогут повредить систему или вызвать ошибки в процессах 210, которые возможно используют дополнительные встраиваемые фильтры 245. Например, средство 220 управления дополнительными встраиваемыми средствами можно использовать для проверки дополнительных встраиваемых фильтров до их установки или регистрации системой (225). Также средство 220 управления дополнительными встраиваемыми средствами можно использовать для отделения (215) процесса 210 от дополнительных встраиваемых фильтров 245, так что ошибки в дополнительных встраиваемых фильтрах 245 не переносятся в процесс 210. Эти и другие аспекты системы 200 более подробно описываются ниже.

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

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

На фиг. 4 показана системная архитектура с системной службой для установки и вызова дополнительных встраиваемых фильтров. В частности, на фиг. 4 показана системная архитектура с системной службой, доступной всем процессам в системе, для нахождения и использования дополнительных встраиваемых фильтров. Процессы могут включать в себя драйверы 430 устройств (например, драйвер устройства для конкретной модели сканера), программные средства 420 сбора и обработки данных, которые можно использовать для обработки данных от указанного устройства перед их запоминанием в накопителе 470 для жестких дисков, интерфейс 425 пользователя для сбора и обработки данных и приложения 410 общего назначения. Средство 440 управления дополнительными встраиваемыми средствами представляет собой глобальную в масштабе системы службу, и к нему может быть осуществлен доступ всеми указанными процессами (например, 430, 420, 410 и 425). Дополнительные встраиваемые фильтры также могут быть обеспечены поставщиками IHV, ISV или даже поставщиками третьей стороны. Таким образом, для расширения функциональных возможностей драйвера, предоставленного поставщиком IHV, или приложения, предоставленного поставщиком ISV, можно использовать заслуживающий доверие фильтр, предоставляемый поставщиком третьей стороны. Такая гибкость позволит пользователю настроить свой рабочий стол с учетом собственных требований для расширения мультимедийных функциональных возможностей системы.

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

Кроме того, стандартные драйверы 430 устройств выполняют задачи, относящиеся к пересылке мультимедийных данных от устройства (не показано) к приложениям или операционной системе, а также к обработке пересылаемых данных. Компоненты драйвера 430, связанные именно с пересылкой данных между устройством и системой, обычно одинаковы для разных моделей устройства. Однако в драйверах для разных моделей устройства могут использоваться разные эффекты или корректирующие фильтры. Компоненты драйвера 430, связанные с обработкой мультимедийных данных, могут быть реализованы в виде дополнительных встраиваемых фильтров 455, и при использовании средства 440 управления дополнительными встраиваемыми средствами они могут вызываться драйверами только тогда, когда это необходимо. Таким образом, гибкая системная архитектура 400 позволяет поставщикам IHV или разработчикам драйверов предоставлять стандартный драйвер без каких-либо специализированных фильтров, подлежащих совместному использованию между многочисленными моделями устройства, и предоставления компонентов в зависимости от модели в виде дополнительных встраиваемых средств для расширения стандартного драйвера. Также вместо того, чтобы предоставлять полностью обновленную версию драйвера устройства, можно выполнить модернизацию или коррекцию его свойств в виде дополнительных встраиваемых средств. Это приведет к значительной экономии средств на поддержку драйверов.

Кроме того, поставщики IHV могут использовать средство 440 управления дополнительными встраиваемыми средствами для изменения функциональных возможностей аналогичных, но встроенных или стандартных системных фильтров. Например, программные средства сбора и обработки данных со сканера платформы Microsoft® Windows® XP распознают ролики механизма подачи документа в сканере как часть сканируемого изображения. В настоящее время пользователь вынужден вручную корректировать это, выбирая область, не включающую в себя сканированные ролики. Однако поставщик IHV может использовать средство управления дополнительными встраиваемыми средствами для предоставления дополнительного встраиваемого фильтра, чтобы заменить упомянутый встроенный фильтр и автоматически удалить ролики со сканированного изображения.

Программные средства 420 сбора и обработки данных (например, Scanner and Camera Wizard от Microsoft® Corporation) обычно используют для обработки мультимедийных данных, когда эти данные пересылаются из устройства в систему или наоборот. Программные средства 420 сбора и обработки данных могут использовать средство управления дополнительными встраиваемыми средствами для существенного расширения их собственных возможностей таким же образом, как было описано выше применительно к драйверам 430. В настоящее время поставщики IHV должны предоставлять свои собственные программные средства сбора и обработки данных для работы со специализированным фильтром, который обычно не поддерживается стандартными программными средствами сбора и обработки данных, встроенными в операционную систему. Однако в случае использования системной архитектуры 400 возможности программных средств сбора и обработки данных, встроенных в операционную систему (например, Scanner and Camera Wizard от Microsoft® Corporation) могут быть расширены путем использования специализированных фильтров в качестве дополнительных встраиваемых средств. Следовательно, поставщики IHV могут расширить функциональные возможности существующих программных средств сбора и обработки данных вместо того, чтобы их заменять.

Аналогичным образом средство 440 управления дополнительными встраиваемыми средствами можно также использовать в приложениях для нахождения, нумерации, выбора и использования дополнительных встраиваемых фильтров 465, имеющихся в системе (460), для расширения функциональных возможностей приложений. Таким образом, средство 440 управления дополнительными встраиваемыми средствами, будучи реализованным в виде системной службы, может расширить функциональные возможности различных процессов (например, 410, 420 и 430) на различных уровнях (например, 470, 475 и 480) обработки мультимедийных данных.

Разделение типовой обработки мультимедийных данных в системе на 4 уровня (например, 470, 475 и 480) показано на фиг. 4 просто для демонстрации концепции, состоящей в том, что средство управления дополнительными встраиваемыми средствами является системной службой, которую можно использовать для расширения функциональных возможностей программных компонентов различных типов. Аналогичным образом разделение дополнительных встраиваемых фильтров 455 и 465 на прикладные дополнительные встраиваемые средства 450 и дополнительные встраиваемые средства 460 сбора и обработки данных также выполнено просто в целях иллюстрации и не является существенным для правильного функционирования системы.

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

Далее со ссылками на фигуры 5, 6, 7 и 8 подробно описываются функциональные возможности средства 440 управления дополнительными встраиваемыми средствами. Средство 440 управления дополнительными встраиваемыми средствами можно реализовать в виде объекта (например, объекта компонентной модели (COM) Microsoft), который может обрабатываться системными процессами, такими как драйвер 420 устройства или приложение 410. Обычно средство 440 управления дополнительными встраиваемыми средствами отвечает за установку и нумерацию дополнительных встраиваемых фильтров 455 и 465, имеющихся в системе. На фиг. 5 представлена иллюстративная реализация средства 440 управления дополнительными встраиваемыми средствами, где показаны различные способы, которые может использовать процесс для расширения своих возможностей, и способы, которые могут использовать разработчики фильтров для установки своих фильтров в системе.

Дополнительные встраиваемые фильтры, такие как фильтры 455 и 465, можно классифицировать по их функциональным возможностям, а средство управления дополнительными встраиваемыми средствами способно выполнять поиск фильтров на основе указанной классификации. Далее представлен возможный список стандартных категорий фильтров на основе их функциональных возможностей: художественные, художественные эффекты, рассеивающие, рассеивающие эффекты, цветовые, цветовые эффекты, увеличение резкости, эффекты увеличения резкости, шумовые и шумовые эффекты. Система может иметь множество фильтров, зарегистрированных под указанными стандартными категориями, при этом к любой одной категории может принадлежать более одного фильтра, а один фильтр может принадлежать более чем одной категории. Однако иногда бывают фильтры, которые невозможно классифицировать в рамках одной из стандартных категорий. В этом случае можно использовать способ 510 для добавления частной категории путем предоставления уникального идентификатора (например, глобального уникального идентификатора (GUID)), называемого идентификатором (ID) категории, названия и некоторого описания функциональных возможностей фильтра. После классификации и регистрации фильтра можно использовать способ 520 для нумерации всех категорий, которые имеют по меньшей мере один фильтр, находящийся в системе. Также можно модифицировать способ 520 для простой нумерации всех категорий, известных системе, или просто для нумерации категорий, определенных системой. Кроме того, средство 440 управления дополнительными встраиваемыми средствами также обеспечивает способы для удаления категории. Например, способ 530 удаляет категорию на основе ввода уникального идентификатора, связанного с этой категорией. Удаление категории с использованием способа 530 может не только удалить данную категорию, но также и все фильтры, связанные с удаленной категорией. Следовательно, средство 440 управления дополнительными встраиваемыми средствами имеет возможности управления дополнениями, нумерацией и удалением фильтров на основе категорий, которым они принадлежат, что может оказаться более быстрым и эффективным, чем выполнение той же операции на уровне фильтров.

Используя средство 440 управления дополнительными встраиваемыми средствами, можно также обеспечить дополнительный уровень детализации, обеспечиваемый поиском и нумерацией отдельных фильтров, а не категорий. Способ 540 может быть использован системным процессом для нумерации всех фильтров, принадлежащих конкретной категории. Вызов способа 540 может понадобиться для определения категории путем использования ее уникального идентификатора (ID). Разработчики фильтров могут также использовать способ 550 для установки нового фильтра путем предоставления идентификатора категории, идентификатора фильтра, названия и описания функциональных возможностей фильтра. Кроме того, способ 560 можно использовать для деинсталляции фильтра, когда вызов способа 560 задает идентификатор фильтра. Кроме того, способ 570 может быть использован системным процессом для получения информации о конкретном фильтре и решения вопроса о том, использовать ли этот фильтр для расширения возможностей процесса.

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

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

В описании, относящемся к фиг. 5, кратко обсуждался способ 550 для установки фильтров в системе. На фиг. 6 с дополнительными подробностями показан процесс установки фильтров. На этапе 610 система получает дополнительное встраиваемое средство, подлежащее установке в системе. Дополнительный встраиваемый фильтр может являться программным объектом компонентной модели, который может быть предоставлен вместе с относящимися к нему драйверами устройств, вместе с установкой новых приложений и т.д. Также можно отправить дополнительный встраиваемый фильтр на сервер в сети, так чтобы пользователи могли осуществлять доступ к этому серверу и скачивать дополнительные встраиваемые фильтры по усмотрению самих пользователей. Каков бы ни был способ получения дополнительного встраиваемого фильтра, сами разработчики фильтров должны быть хорошо знакомы с интерфейсом средства управления дополнительными встраиваемыми средствами (например, фиг. 5), чтобы использовать вышеописанные способы для установки своих фильтров в системе. Так, на этапе 620 дополнительный встраиваемый фильтр использует интерфейс средства управления дополнительными встраиваемыми средствами для адресации вызова от средства управления дополнительными встраиваемыми средствами, чтобы начать установку фильтра. Фильтр предоставляет средству управления дополнительными встраиваемыми средствами идентификатор его категории, идентификатор фильтра, название фильтра и описание. Затем на этапе 630 средство управления дополнительными встраиваемыми средствами проверяет, заслуживает ли добавляемый фильтр доверие. Добавляемый фильтр предоставляют с цифровой подписью, которую средство управления дополнительными встраиваемыми средствами определяет как подлинную. На этапе 640, если подпись оказывается неприемлемой, то тогда на этапе 650 средство управления дополнительными встраиваемыми средствами отвергает добавляемый фильтр. Однако, если на этапе 640 подпись оказывается приемлемой, то добавляемый фильтр считается заслуживающим доверие. Затем на этапе 660 средство управления дополнительными встраиваемыми средствами использует параметры, предоставляемые дополнительными встраиваемыми фильтрами, для их установки в системе. Если добавляемые дополнительные встраиваемые фильтры не принадлежат стандартной категории фильтров либо какой-либо другой категории, с которой система уже хорошо знакома, то тогда процессу, вызывающему средство управления дополнительными встраиваемыми средствами, возможно понадобится добавить в реестр категорию (510) до установки какого-либо из связанных с ним фильтров.

Иллюстративный процесс, связанный с поиском и нумерацией дополнительных встраиваемых фильтров в системе

После установки фильтров, как было описано со ссылками на фиг.6, их можно пронумеровать и предоставить системным процессам для расширения их возможностей. Описание такого общего процесса представлено на фигурах 7 и 8. На этапе 710 средство управления дополнительными встраиваемыми средствами принимает запрос от системного процесса на нумерацию списка дополнительных встраиваемых фильтров, имеющихся в системе, которые удовлетворяют критериям, предоставляемым вызывающим процессом. После приема средством управления дополнительными встраиваемыми средствами запроса на нумерацию на этапе 720 средство управления отвечает на запрос, пронумеровывая список дополнительных встраиваемых фильтров, предоставленный вызывающему процессу.

Критерии для выбора фильтров, подлежащих нумерации, могут быть представлены просто как список фильтров, принадлежащих одной или нескольким категориям фильтров (например, 540). Критерии могут быть также более сложными, такими как запрос нумерации фильтров, которые имеют цифровые подписи, связанные с конкретным объектом, заслуживающим доверия. На фиг. 8 показан процесс для нумерации дополнительных встраиваемых фильтров, имеющихся в системе, на основе иллюстративного набора критериев. На этапе 810 средство управления дополнительными встраиваемыми средствами принимает от процесса запрос на нумерацию дополнительных встраиваемых фильтров. На этапе 820 средство управления дополнительными встраиваемыми средствами идентифицирует все фильтры, принадлежащие категориям, которые заданы в запросе процесса. Далее на этапе 830 средство управления дополнительными встраиваемыми средствами подтверждает, что выбранные фильтры имеют одну или несколько цифровых подписей, заданных запрашивающим процессом. Например, приложения от Microsoft® Corporation, возможно, захотят использовать только те дополнительно встраиваемые фильтры, которые имеют цифровые подписи, проверенные и утвержденные Microsoft®. Кроме того, на этапе 840 средство управления дополнительными встраиваемыми средствами удостоверяется в том, что у выбранных фильтров не просрочена определенная дата, связанная с данным фильтром. Это может оказаться полезным, если фильтр был загружен в систему с целью пробного использования пользователем, которому еще необходимо будет приобрести законную лицензию на данный фильтр. Таким образом, на этапе 850 нумеруются только те фильтры, которые удовлетворяют всем критериям, заданным процессом (например, идентификатор категории, приемлемые цифровые подписи, дата истечения срока действия и т.д.). Более сложные критерии могут также зависеть от названия или описания устанавливаемых фильтров. Однако, чем фильтры более сложные, тем процесс их нумерации может оказаться менее эффективным. Также один или несколько критериев могут быть установлены средством управления дополнительными встраиваемыми средствами, дополнительным встраиваемым фильтром и операционной системой или комбинацией перечисленного.

Иллюстративный процесс для выбора и использования дополнительных встраиваемых фильтров, имеющихся в системе

После нумерации списка фильтров, выполняемой средством управления дополнительными встраиваемыми средствами в ответ на запрос от процесса, этот процесс может использовать дополнительный встраиваемый фильтр для расширения своих собственных возможностей. Как показано на фиг. 9, на этапе 910 процесс, запрашивающий нумерацию дополнительных встраиваемых фильтров, принимает пронумерованный список или таблицу дополнительных встраиваемых фильтров, либо осуществляет доступ к этому списку. Затем на этапе 920 процесс, запрашивающий нумерацию, выбирает один или несколько имеющихся дополнительных встраиваемых фильтров. Далее на этапе 930 процесс, запрашивающий нумерацию, принимает указатель интерфейса на выбранный объект - дополнительный встраиваемый фильтр. Далее на этапе 940 процесс использует интерфейс к дополнительному встраиваемому фильтру для вызова фильтра и соответствующие этому фильтру способы обработки выбранных мультимедийных данных. Также, возможно, окажется выгодным, чтобы процесс запрашивал или давал команду средству управления дополнительными встраиваемыми средствами на вызов фильтра вместо непосредственного вызова фильтра самим процессом. Это позволит выполнять процесс, запрашивающий использование дополнительных встраиваемых фильтров, отдельно от процесса фильтра, что снижает вероятность уязвимости фильтра ко всякого рода ошибкам.

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

После вызова процессом выбранного дополнительного встраиваемого фильтра для обработки мультимедийных данных процесс или средство управления дополнительными встраиваемыми средствами (как возможный случай) может передать управление обработкой самому фильтру. Как показано на фиг. 10, на этапе 1010 дополнительный встраиваемый фильтр может предоставить пользователю интерфейс пользователя для ввода параметров, необходимых для обработки мультимедийных данных. На фиг. 11 показан один пример такого интерфейса пользователя, связанного с вводом параметров, определенных пользователем, для фильтра с эффектом рассеяния. В альтернативном варианте функциональные возможности фильтра, возможно, не потребуют от пользователя ввода каких-либо параметров процесса (например, некоторые аналитические фильтры требуют лишь ввода мультимедийных данных, а в качестве выходных данных могут предоставить один или несколько типов метаданных). На этапе 1020 дополнительный встраиваемый фильтр использует заданные параметры для обработки мультимедийных данных. Затем на этапе 1030 дополнительный встраиваемый фильтр подает обработанные данные в процесс, вызывающий дополнительный встраиваемый фильтр, или другой фильтр для продолжения обработки мультимедийных данных. Затем обработанные данные могут быть переданы целевому средству воспроизведения, такому, как дисплей или динамик.

Иллюстративная модель защиты системы для установки и вызова дополнительных встраиваемых фильтров

Системная архитектура по фиг. 4, позволяющая системным процессам расширять свои возможности путем использования дополнительных встраиваемых фильтров, является открытой и гибкой. Это выгодно в том отношении, что указанная открытая и гибкая архитектура позволяет пользователю добавлять нужные лично ему компоненты обработки мультимедийных данных на рабочий стол. Однако это также делает систему уязвимой к ошибкам и дефектам, которые могут быть в дополнительном встраиваемом фильтре, предоставленном поставщиком ISV, поставщиком IHV или третьей стороной. Создатели программных средств операционной системы или приложений всегда опасаются позволять пользователю расширять возможности процессов системы или приложения путем использования компонентов, предоставляемых другими сторонами, из-за возрастающего риска, связанного с нарушением безопасности. Однако, как было описано выше, некоторые из этих опасений могут быть устранены путем предъявления требования поставки дополнительных встраиваемых фильтров с цифровыми подписями, которые могут подтвердить их соответствие требованиям безопасности. Например, средство управления дополнительными встраиваемыми средствами может быть сконфигурировано таким образом, чтобы оно требовало предоставление всеми дополнительными встраиваемыми фильтрами одной или нескольких утвержденных цифровых подписей (смотри, например, этап 630). Также даже после того, как установка дополнительного встраиваемого фильтра в системе утверждена, процессы, запрашивающие дополнительные встраиваемые фильтры, могут задать средству управления дополнительными встраиваемыми средствами дополнительные критерии безопасности, так что для выбора нумеруются только те фильтры, которые удовлетворяют указанным критериям (смотри, например, этап 830).

Кроме того, на фигурах 12 и 13 показан еще один механизм защиты для защиты процессов от любых ошибок или дефектов в дополнительных встраиваемых фильтрах, используемых для расширения возможностей этих процессов. Как показано на фиг. 12, процесс 1210 может запросить средство 1220 управления дополнительными встраиваемыми средствами для нумерации списка имеющихся дополнительных встраиваемых фильтров 1230. Процесс может также запросить средство 1220 управления дополнительными встраиваемыми средствами на предмет идентификации цифровых подписей, связанных с каждым из дополнительных встраиваемых фильтров. Те фильтры, которые не могут предоставить одну или несколько из определенных утвержденных цифровых подписей, могут быть помещены в «песочницу» (среду изоляции, карантин) 1240, так что выбранные фильтры 1250, 1251 и 1253 можно будет использовать вне процесса 1210. Таким образом, процесс 1210 может быть изолирован от выбранных фильтров 1250, 1251 и 1253, так что любые ошибки или дефекты в этих фильтрах не смогут вызвать отказ при функционировании процесса 1210. Однако у процесса 1210 останется способность принимать выходные данные фильтров 1250, 1251 и 1253.

Подход на основе помещения некоторых фильтров в «песочницу», показанный на фиг. 12, может привести к значительному снижению скорости обработки мультимедийных файлов. Следовательно, в определенных обстоятельствах может также оказаться выгодным использовать фильтр в самом процессе 1210. На фиг. 13 показан дополнительный встраиваемый объект 1320, вызываемый и используемый в процессе 1310. Хотя это обычно приводит к более быстрой обработке, имеется опасность отказа в процессе 1310 в результате ошибок в дополнительном встраиваемом фильтре 1320. Таким образом, средство 1340 управления дополнительными встраиваемыми средствами можно использовать для проверки подлинности цифровых подписей дополнительных встраиваемых фильтров, так что вызывать и использовать в процессе 1310 можно будет только те фильтры, которые представили утвержденные подписи 1320. В противном случае дополнительные встраиваемые фильтры можно разместить вне процесса 1310, как показано на фиг. 12. Например, если приложение принимает от средства 1340 управления дополнительными встраиваемыми средствами подтверждение надежности фильтра, то процесс 1310 приложения может загрузить фильтр, подлежащий вызову через пользовательский интерфейс этого приложения. Такое структурное решение позволит разработчикам фильтров рекламировать свои бренды даже в том случае, когда они используются в программных средствах другого объекта.

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

Может потребоваться, чтобы дополнительные встраиваемые фильтры, используемые средством управления дополнительными встраиваемыми средствами для расширения возможностей процесса (как разрешено системной архитектурой по фиг. 4), имели определенные стандартные функциональные возможности для эффективной работы со средством управления дополнительными встраиваемыми средствами и системными процессами. Например, дополнительные встраиваемые фильтры способны принимать входные данные множества типов и выдавать выходные данные множества типов. Один такой фильтр представляет собой стыковочный фильтр, который может принять множество изображений и создать одно выходное изображение. Также фильтр для сканирования документов может взять одно изображение и создать множество выходных типов, таких как изображения и текстовые данные. Примерами фильтров, которые обеспечивают выходные данные, отличные от изображений, включают в себя генераторы аннотаций и фильтры для измерений параметров изображения. Генератор аннотаций может выделять такие данные, как дата, из отметки даты на изображении или данные о том, есть ли в изображении люди. Фильтр для измерений параметров изображения может сформировать аспекты предварительно отсканированного изображения, относящиеся к гистограммам или измерениям, которые следует использовать для настройки параметров сканирования.

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

Еще один признак дополнительных встраиваемых фильтров показан на фиг. 15. Обычно фильтры способны обрабатывать только части входных мультимедийных данных. Например, если речь идет об обработке изображений, то фильтры, такие как дополнительный встраиваемый фильтр 1510 эффекта, способны принимать часть полного изображения (например, идентифицированную координатами), обрабатывать эту выбранную часть и выдавать ее целевому средству 1530 воспроизведения. Таким образом, когда приложение манипулирует изображением посредством фильтра, исходный вид изображения может сохраняться, когда часть изображения изменяется под воздействием эффекта. Это позволяет приложению обеспечивать пользователя практически мгновенным видом эффекта от дополнительного встраиваемого средства. Если, например, данный эффект нежелателен, то соответствующее дополнительное встраиваемое средство можно не выбирать. Хотя на фиг. 15 используется пример файла изображений для иллюстрации указанного признака фильтра, аналогичным образом могут быть обработаны и другие мультимедийные данные (например, аудио или видео) с помощью фильтров соответствующих типов.

Как показано на фиг. 16, признак, состоящий в связывании дополнительных встраиваемых фильтров в цепочку (фиг. 14), и признак, состоящий в обработке части мультимедийного файла, могут быть объединены для связывания множества фильтров в цепочку и просмотра или прослушивания эффектов от дополнительных встраиваемых фильтров, когда обрабатываются части входного файла. Например, часть полного изображения (1610) может быть масштабирована (1620), а затем эта выбранная часть может быть отброшена (1630) для исключения эффекта «красных глаз» перед визуализацией изображения (1650).

Альтернативные варианты

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

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

Класс G06F15/18 с модификацией программ, осуществляемой самой машиной в соответствии с опытом, накопленным машиной за время полного цикла работы; самообучающиеся машины

модифицированный интеллектуальный контроллер -  патент 2527212 (27.08.2014)
модифицированный интеллектуальный контроллер с адаптивным критиком -  патент 2523218 (20.07.2014)
устройство для моделирования процесса принятия решения в условиях неопределенности -  патент 2517243 (27.05.2014)
модифицированный интеллектуальный контроллер с нечеткими правилами -  патент 2504002 (10.01.2014)
система распознавания поведения -  патент 2475853 (20.02.2013)
динамическая экспертная система -  патент 2462752 (27.09.2012)
модифицированный интеллектуальный контроллер -  патент 2458390 (10.08.2012)
интеллектуальный контроллер с правилами самомодификации обучающей и управляющей нейронных сетей -  патент 2447494 (10.04.2012)
обучение сверточных нейронных сетей на графических процессорах -  патент 2424561 (20.07.2011)
охлаждаемая плата и самоорганизующийся суперкомпьютер -  патент 2367125 (10.09.2009)

Класс G06F15/02 с ручным управлением ввода с помощью клавиатуры и выполнением математических операций с помощью встроенной программы, например карманные калькуляторы 

Класс G06F9/44 устройства для выполнения специальных программ

устройство обработки информации, система обработки информации, способ обработки информации и носитель информации -  патент 2525746 (20.08.2014)
устройство воспроизведения, способ воспроизведения, устройство записи, способ записи, программа и структура данных -  патент 2525482 (20.08.2014)
расширяемость для основывающейся на web визуализации диаграмм -  патент 2524855 (10.08.2014)
моделирующий коап -  патент 2516703 (20.05.2014)
устройство и способ предоставления информации, терминальное устройство и способ обработки информации, и программа -  патент 2515717 (20.05.2014)
способ и устройство для классификации контента -  патент 2509352 (10.03.2014)
конфигурируемое разделение для параллельных данных -  патент 2503997 (10.01.2014)
кэширование и предоставление данных перед отправкой, относящихся к отправителю или получателю сообщения электронной почты -  патент 2501074 (10.12.2013)
протокол коммутации смеси мультимедийных данных для управления мультимедийными данными -  патент 2501070 (10.12.2013)
синхронизация жизненных циклов виртуальной машины и приложения -  патент 2498394 (10.11.2013)
Наверх