Автоматическая съемка и монтаж видеоролика
Иллюстрации
Показать всеИзобретение относится к вычислительной технике, а более конкретно к автоматическому управлению процессом съемки видеоролика. Технический результат – обеспечение автоматического выбора, установление положения, ориентации и прочих параметров камер в процессе съемки видеоролика. Для этого получают информацию о действии в сцене, после чего вычисляют режиссерское описание кадра, который нужно снять. Затем передают описание кадра оператору и генерируют набор вариантов кадров согласно режиссерскому описанию кадра. Получают параметры камер для съемки каждого из набора вариантов кадров и производят выбор наилучшего кадра, который близок к режиссерскому описанию кадра. Возвращают кадр режиссеру, который производит его окончательную регистрацию в монтажном листе. Устанавливают соответствующую камеру и производят съемку наилучшего кадра. Получают последующие кадры действия в сцене путем повторения предыдущих этапов способа и генерируют последовательность кадров в соответствии с монтажным листом. Передают последовательность кадров клиентской программе. 2 н. и 19 з.п. ф-лы, 5 ил.
Реферат
Область техники
Изобретение относится к вычислительной технике, а более конкретно к автоматическому управлению процессом съемки видеоролика.
Уровень техники
В настоящий момент развиваются технологии преобразования текста, написанного на естественном языке в изображения, видеоролик, последовательность кадров и т.п.
Из уровня техники известна технология преобразования набора слов в описание трехмерной сцены, описанная в заявке US 2010/0169076 A1, 01.07.2010. В известном решении проводят лингвистический анализ текста, представляющего собой одно или несколько слов, фраз или предложений. После чего формируют описание трехмерной сцены по результатам семантического разбора. Затем формируют трехмерную сцену из описания трехмерной сцены и визуализируют трехмерную сцену или трехмерное изображение. При этом расположение и ориентацию камеры в трехмерной сцене выбирает пользователь вручную. В альтернативном варианте расположение и ориентацию камеры известное решение задает автоматически. Однако в известном решении используются статическое расположение и ориентация камеры (в основном общий план). Кроме того, в связи с тем что получаемая трехмерная сцена не является динамической, расположение и ориентация камеры не меняется в процессе "повествования". Еще одним недостатком известного решения является то, что известная технология не предусматривает никакие ограничения при установке камеры, т.е. фактически камера может быть помещена чрезмерно близко к объекту или даже внутрь объекта, присутствующего в трехмерной сцене.
При этом автоматическое получение параметров камер и управление камерами необходимы для создания видеоролика, поскольку очевидно, что в процессе "повествования" камера не может находиться в одном и том же месте все время. Кроме того, очевидно, что для придания динамичности и реалистичности получаемому ролику, необходимо использовать как общий план, так и крупный план, также необходимо "переводить взгляд" камеры с одного персонажа (объекта) на другого.
Таким образом, существует потребность в технологии, которая бы автоматически выбирала и устанавливала положение, ориентацию и прочие параметры камер в процессе съемки видеоролика. Кроме того, существует потребность в создании технологии, которая бы автоматически производила видеоролик, готовый к просмотру, путем автоматической компоновки и монтажа записей с камер.
Сущность изобретения
Изобретение выполняет функции автоматической съемки и монтажа согласно основным принципам кино.
Для решения упомянутых выше проблем реализован способ автоматического управления процессом съемки видеоролика. В предлагаемом способе получают информацию о действии в сцене, после чего вычисляют режиссерское описание кадра, который нужно снять. Затем передают описание кадра оператору и генерируют набор вариантов кадров согласно режиссерскому описанию кадра. Получают параметры камер для съемки каждого из набора вариантов кадров и производят выбор наилучшего кадра. Возвращают кадр режиссеру, который производит его окончательную регистрацию в монтажном листе. Устанавливают соответствующую камеру и производят съемку наилучшего кадра. Получают последующие кадры действия в сцене, путем повторения предыдущих этапов способа, и генерируют последовательность кадров в соответствии с монтажным листом. Передают последовательность кадров клиентской программе.
В частном случае выполнения информацию о действии в сцене получают в ответ на сигнал о начале действия.
В частном еще одном частном случае выполнения информацию о действии в сцене получают в виде пакетной последовательности действий, причем весь пакет получают сразу.
В другом случае выполнения в режиссерском описании кадра учитывают информацию о типе действия (сказуемое), главном герое (подлежащее), о второстепенных героях (дополнения). Также учитывают уже заполненную часть монтажного листа.
В другом случае выполнения при начале нового действия предварительно заполняют монтажный лист на несколько кадров вперед.
В еще одном частном случае выполнения дополнительно производят реконструкцию режиссерских описаний кадров по авторским кадрам, причем авторскими кадрами являются кадры, полученные с помощью предустановленных пользователем камер.
В одном из вариантов конкретной реализации наилучшим считается кадр, который наиболее близок к режиссерскому описанию кадра, и в тоже время удовлетворяет внешним по отношению к нему требованиям. Одним из таких требований является процент видимой области снимаемой части объекта. Еще одним требованием является удовлетворение правила 180 градусов. Еще одним требованием является отсутствие посторонних объектов в центрах внимания кадра (объектов, контрастных и/или занимающих достаточно большую область центральной части кадра - по отношению к объектам съемки). При этом генерацию набора вариантов кадров согласно режиссерскому описанию кадра и выбор наилучшего кадра производят итеративно до удовлетворения требований.
В частном случае выполнения клиентской программе передают каждый кадр сразу по получении.
В другом случае выполнения клиентской программе передают последовательность кадров по запросу клиента.
Дополнительно изобретение предусматривает вывод изображения кадра на дисплей.
В частном случае выполнения задают массив камер, которые будут использоваться в качестве подсказок.
В другом случае выполнения задают массив авторских камер для дополнения автоматически созданных.
Дополнительно изобретение предусматривает линейный монтаж видеоролика, причем монтаж производят как при заранее известной последовательности событий сценария, так и с информацией только о прошедших и текущем событиях сценария.
Изобретение также может быть реализовано в виде машиночитаемого носителя, имеющего исполняемые компьютером инструкции, которые при их загрузке в компьютер побуждают процессор выполнять этапы способа автоматического управления процессом съемки видеоролика.
Предлагаемое изобретение позволяет автоматически получать наборы параметров камеры (внутренних и внешних), по которым однозначно определяются параметры камеры на каждый момент времени, и автоматически устанавливать указанные камеры в трехмерной сцене по полученным параметрам. При этом данные параметры характеризуют съемку художественно обоснованным способом, согласно основным принципам кино. Эти параметры могут быть применены как к виртуальной, так и реальной камере.
На вход система получает параметры работы, действия объектов, существенные для съемки и информацию или источник информации об окружении (положения объектов и, возможно, дополнительные параметры, описывающие пространственную конфигурацию снимаемого мира). Система может получать или запрашивать некоторые их этих данных как при запуске, так и в процессе работы. Данные могут описывать как реальный, так и виртуальный мир.
Дополнительно изобретение позволяет:
- переопределять кадры для съемки конкретного действия. Такой кадр не будет замещен;
- задавать массив камер, которые будут использоваться в качестве подсказок для автоматических алгоритмов. Эта функциональность может также использоваться для имитации базовых моментов авторского стиля;
- задавать массив авторских камер для дополнения автоматически созданных. Из совокупного множества будет выбрана та, что лучше подходит для съемки в данный момент.
Дополнительно изобретение работает в одном из трех режимов:
- (А) линейный монтаж при заранее известной последовательности событий сценария;
- (В) линейный монтаж с информацией только о прошедших и текущем событиях сценария;
- (С) результаты работы могут использоваться для нелинейного монтажа.
Для решения вышеозначенных и родственных задач, некоторые иллюстративные аспекты описаны здесь в связи с нижеследующим описанием и прилагаемыми чертежами. Однако эти аспекты представляют лишь некоторые возможные подходы к применению раскрытых здесь принципов и призваны охватывать все подобные аспекты и их эквиваленты. Другие преимущества и признаки новизны следуют из нижеследующего подробного описания, приведенного совместно с чертежами.
Для понимания сущности изобретения ниже приведены расшифровки основных терминов
Кадр - непрерывный временной отрезок, снятый определенным образом.
Монтажный лист - документ, последовательно описывающий каждый кадр и их взаимное расположение. Монтажный лист может создаваться на этапе описания режиссерской задумки, предварительного или финального монтажа.
Крупность, план - масштаб человека в кадре.
Ракурс (вертикальный) - вертикальный угол съемки. Различают верхний, нижний и нейтральный ракурсы.
Горизонтальный ракурс - горизонтальный угол съемки.
Статический кадр - съемка камерой, в течение всего времени сохраняющей свою ориентацию, положение и другие параметры.
Динамический кадр - съемка движущейся камерой. Характерные примеры: панорамы, отъезды, наезды, съемка в движении.
Камера - совокупность параметров (внутренних и внешних) модели, имитирующей физическую камеру. Параметры: позиция, ориентация, зум.
Линейный монтаж - монтаж в реальном времени. Картинка поступает одновременно с нескольких камер. Задача монтажа - переключение источника картинки.
Нелинейный монтаж - монтаж уже отснятого материала. Появляется возможность изменить последовательность снятых событий, скорость течения времени.
Воздух (вертикальный) - запас свободного пространства в кадре над головой персонажа. Меняется в зависимости от используемой крупности и прочих художественных целей.
Горизонтальный воздух - запас свободного пространства в кадре впереди или позади персонажа. Если персонаж в кадре смотрит на объект за кадром, скорее всего, по направлению взгляда персонажа будет воздух. Если персонаж счастливо убегает от погони, воздух будет позади. Если его настигают - впереди.
Режиссерское описание кадра - набор параметров в формализованном виде:
- крупность;
- вертикальный ракурс;
- горизонтальный ракурс;
- горизонтальная композиция кадра.
Краткое описание чертежей
На фиг. 1 представлена общая структура изобретения и способа ее интеграции.
На фиг. 2 представлена структурная схема работы изобретения в плане последовательности этапов работы.
На фиг. 3 представлен общий алгоритм работы изобретения.
На фиг. 4 представлен схематический рисунок сцены из примера.
На фиг. 5 представлен примерный набор кадров, который может быть получен при обработке действий из примера при помощи изобретения.
Подробное описание изобретения
Концептуально систему можно разделить на три части (фиг. 1): модуль интеграции, режиссер-монтажер, оператор.
CamerasBridge - модуль интеграции - обеспечивает интеграцию предлагаемого решения. Его задачи:
- предоставление входных данных и параметров работы;
- предоставление реализации вспомогательных интерфейсов (ICharacterInfoProvider, IScenelnfoProvider, IDebugView, ILog);
- получение в результате последовательности художественно-значимых кадров.
CamerasBridge сконструирован таким образом, чтобы обеспечить быструю интеграцию системы в новую среду.
Director - режиссер-монтажер - согласно внутренним алгоритмам и настройкам описывает, какой кадр снимать в данный момент. Модуль принимает решения согласно общепринятым правилам съемки кино и монтажа.
CameraOperator - оператор - модуль, который строит кадр согласно описанию, полученному от Director с одной стороны и физическим ограничениям с другой. Модуль принимает решения согласно общепринятым правилам съемки кино и информации о физической сцене (конфигурация и габариты объектов и т.п.).
Каждый модуль и подмодуль системы может быть программным, аппаратным или программно/аппаратным модулем. Выбор способа реализации каждого модуля производится в зависимости от задач и функций системы или конкретного модуля.
Ниже приведен примерный алгоритм работы способа со ссылками на фиг. 2, и3.
1. Получение информации о действии от приложения и обратное преобразование в синтаксическую основу для кинофразы. Система может работать как в режиме ожидания сигнала о начале действия (I), так и в режиме обработки пакетной последовательности действий (весь пакет приходит от клиента сразу) (II). На этом же шаге может происходить обновление состояния системы.
2. Вычисление режиссерского описания кадра, который нужно снять. Учитываются тип действия (сказуемое), главный герой (подлежащее), второстепенные (дополнения).
3. Также учитывается уже заполненная часть монтажного листа. Например, на конструирование режиссерского описания кадра влияет: начинается съемка нового действия или продолжается съемка старого; в некоторых случаях имеется зависимость между параметрами предыдущего кадра и допустимыми параметрами для следующего кадра; текущий этап действия, если оно продолжается - и т.п. Регистрация элемента в монтажном листе происходит на этапе 8.
4. Описание подается на вход оператору.
5. Если нужно, оператор производит реконструкцию режиссерских описаний кадров по авторским кадрам (если заданные кадры не меняются в течение действия сценария, тогда они могут быть рассчитаны только на этапе инициализации системы).
6. Генерируется набор вариантов кадров согласно режиссерскому описанию кадра.
7. Из набора вариантов кадров производится выбор наилучшего кадра. Наилучшим считается кадр, который наиболее близок к режиссерскому описанию кадра, и в тоже время удовлетворяет некоторым внешним по отношению к нему требованиям (например, процент видимой области снимаемой части объекта; удовлетворение правила 180 градусов; отсутствие посторонних объектов в центрах внимания кадра (объектов, контрастных и/или занимающих достаточно большую область центральной части кадра - по отношению к объектам съемки)). В частном случае выполнения изобретения шаги 6 или 7 или и 6 и 7 производятся итеративно до достижения некоторого критерия.
8. Кадр возвращается режиссеру, который производит необходимые действия по его регистрации. Эти действия включают обновление информации о кадре в монтажном листе, если его режиссерское описание было добавлено или добавление всей информации в противном случае.
9. Кадр передается клиентской программе: сразу (например, в режиме (В)), либо в составе всей последовательности полученной последовательности кадров по запросу клиента (например, в режимах (А) и (С)).
В качестве общего пояснения приведены примеры устройства, реализующего изобретение.
Изобретение может быть реализовано на любом типе ЭВМ (включая, но не ограничиваясь ими, следующие: персональные компьютеры, смартфоны, планшетные компьютеры, игровые консоли и т.п.).
Устройство типа ЭВМ в соответствии с вариантом исполнения изобретения имеет процессор, функционально соединенный с оперативным запоминающим устройством любого типа. Устройство может быть соединено с дисплеем для представления видеосодержимого. Для ввода информации могут быть использованы мышь и клавиатура. Изобретение, соответственно, может быть реализовано с помощью клиентских программ и компьютерных инструкций, исполняемых процессором, и выполняющих функции, согласно аспектам изобретения.
Приведенное устройство является лишь вариантом устройства, реализующего изобретение.
Описание виртуального пространства и действий загружены в ОЗУ посредством клавиатуры и мыши и считываются оттуда клиентской программой. Клиентская программа, преобразовав эти данные, сохраняет в ОЗУ, откуда они будут считаны процессором. В процессе работы процессор исполняет компьютерные инструкции, согласно аспектам изобретения, и записывает результаты работы в ОЗУ. Клиентская программа считывает результаты работы из ОЗУ, и применяет к виртуальному пространству, получая изображение, которое выводится на дисплей.
Предположим клиентская программа воспроизводит следующую сцену, состоящую из объектов виртуального пространства и совокупности действий, которые должны быть реализованы. Пример потока данных между устройством ввода и устройством вывода представлен ниже.
Объекты.
Комната, в ней находится персонаж. В комнате есть окно. Действия.
Персонаж говорит: "Ну все, всем пока", грустно смотрит в пол, потом идет к окну, открывает его и выпрыгивает.
Система получит следующую последовательность действий:
1.
Тип действия: говорить.
Главный герой: персонаж.
Объект действия (дополнение, "над чем"): нет.
Объект действия (дополнение, "при помощи чего чем"): нет.
Прочие параметры: …
2.
Тип действия: смотреть.
Главный герой: персонаж.
Объект действия (дополнение, "над чем"): пол.
Объект действия (дополнение, "при помощи чего чем"): нет.
Прочие параметры: …
3.
Тип действия: идти. Главный герой: персонаж.
Объект действия (дополнение, "над чем"): окно.
Объект действия (дополнение, "при помощи чего чем"): нет.
Прочие параметры: …
4.
Тип действия: открыть. Главный герой: персонаж.
Объект действия (дополнение, "над чем"): окно.
Объект действия (дополнение, "при помощи чего чем"): нет.
Прочие параметры: …
5.
Тип действия: выпрыгнуть.
Главный герой: персонаж.
Объект действия (дополнение, "над чем"): окно.
Объект действия (дополнение, "при помощи чего чем"): нет.
Прочие параметры: …
В результате от системы будут получены N наборов параметров камеры. N зависит от длительности действия и других факторов. Пусть на съемку действий уйдет:
1. Действие "говорить": 1 кадр
2. Действие "смотреть", 1 кадр
3. Действие "идти", 2 кадра
4. Действие "открыть", 1 кадр
5. Действие "выпрыгнуть", 1 кадр
Применив полученные параметры к камере в соответствующие моменты времени, клиент получит кадры, показанные на фиг. 5 (в данном примере в промежутках между этими моментами времени позиция, и прочие параметры камеры остаются неизменными, а действие идет своим ходом).
Режимы монтажа
Director может работать в двух режимах:
- линейный монтаж при заранее известной последовательности событий сценария;
- линейный монтаж с информацией только о прошедших и текущем событиях сценария;
- результаты работы системы могут использоваться для нелинейного монтажа.
Крупности и вертикальная композиция
У разных киношкол существуют различные системы крупностей. В них много общего, но есть и отличия. Например:
Крупности по Кулешову
Деталь - часть лица
Крупный план - голова
1й средний - по пояс
2й средний - по колени
Общий план - полный рост
Дальний план - маленькая часть кадра, неразличимы детали
Альтернативная система крупностей
Крупные планы: часть лица, лицо, грудь (соски)
Средние планы: талия, бедра (голливудский), колени
Общие планы: полный рост, дальний план
Система крупностей и алгоритмы согласно изобретению
Система различает 9 типов крупности. Они реализуются по известным пропорциям персонажей, которые описаны в соответствующих таблицах для каждого персонажа.
Если с персонажем не связана такая таблица, подается набор стандартных пропорций.
Система автоматически вычисляет воздух, крупности и строит вертикальную композицию на их основе.
Таким образом, для режиссерского описания кадра крупность задается не цифрами, а типами: "Общий 1", "Средний 2" и т.п.
Горизонтальная композиция
- Два персонажа или группа в кадре. Выравниваются относительно центра кадра. Масштаб задает выбранная крупность на выбранном персонаже.
- Один персонаж в кадре. Остальные участники действия (если есть) за кадром. Реализуем горизонтальную композицию, просчитываем горизонтальный воздух.
- Перемещение. Вход и выход из кадра. Тоже все ОК.
Вертикальный ракурс
Для режиссерского описания кадра вертикальный ракурс задается не цифрами, а типами: "Обычный", "Нижний", "Верхний" В основном используется обычный ракурс.
В частных случаях, при необходимости, используются верхний и нижний ракурсы. Введем в контексте действия параметр "доминирование" или "сила" для персонажа. Если параметр находится в нейтральном значении, будет использоваться обычный ракурс. Если его значение невелико - верхний ракурс. Иначе - нижний ракурс, показывающий, что персонаж доминирует.
Горизонтальный ракурс и линия действия
Кадры в смысле горизонтального ракурса делятся по следующим типам:
- Фронтальный
- Внутренний 30°
- Внутренний 60°
- Профильный
- Внешний 60°
- Внешний 30°
- Задний
Они строятся относительно линии действия и главного персонажа (персонажей) действия.
Эти типы делят радиальное пространство вокруг объектов съемки (точнее, половину круга разделенного линией действия и относительно нее) на сектора. Именно в такой системе очень удобно следовать правилу 30 градусов (http://en.wikipedia.org/wiki/30-degree_rule), правилу 180 градусов и многим другим правилам киноязыка.
Выбор оптимального кадра согласно указаниям "Director"
CameraOperator - оператор - это класс, возвращающий вычисленную камеру (положение, ориентация, …) в зависимости от конкретных условий и ограничений, накладываемых режиссером на кадр.
Основная проблема, с которой он сталкивается при попытке реализовать требования вызывающего, - проблема видимости.
Если посторонние предметы загораживают ключевые объекты кадра, самым простым решением проблемы было бы сделать их полупрозрачными - как в играх. Однако такой подход не является приемлемым для целей изобретения. Поэтому оператор пытается найти новый ракурс по следующим двум алгоритмам.
Алгоритм 1 генерации камер для желаемого кадра.
При этом варианте есть большая вероятность, что начальная задумка режиссера будет нарушена, т.к. оптимальный кадры выйдет за границы желаемых значений.
Относительно желаемого направления съемки по спирали расставляются потенциальные ракурсы. Эта спираль лежит на поверхности сферы, описанной вокруг центра съемки. (Радиус сферы зависит от выбранной крупности кадра.) Ракурс меняется по умолчанию с шагом 10 градусов, радиус спирали задается ограничением по максимальному отклонению от желаемого ракурса. По умолчанию это 30 градусов. Ракурсы, не прошедшие ограничения по вертикальному отклонению, также отбрасываются. Для обычного ракурса диапазон по вертикали - от 0 до 20 градусов.
Это первая партия кандидатов. Вторая строится из камер, расставленных по всему кругу в горизонтальной плоскости. С шагом в 30 градусов в кандидаты добавляется сначала камера слева, затем справа. Затем - еще более дальняя слева и дальняя справа. И так далее, пока не будет достигнут горизонтальный ракурс, противоположный желаемому.
Необходимо отметить, что все кандидаты добавляются в порядке приоритета. Иными словами, порядковый номер является функцией ошибки. Из этого списка выбирается первый кандидат, преодолевший минимальные требования.
При этом обе партии кандидатов лежат на поверхности одной и той же сферы.
Алгоритм 2 генерации камер для желаемого кадра.
Это частный случай алгоритма 1. Он просчитывает только кадры, лежащие в рамках допустимых режиссером значений.
Относительно желаемого направления съемки по спирали расставляются потенциальные ракурсы. Эта спираль лежит на поверхности сферы, описанной вокруг центра съемки. (Радиус сферы однозначно зависит от выбранной крупности кадра.) Ракурс меняется по умолчанию с шагом 5 градусов, радиус спирали задается ограничением по максимальному отклонению от желаемого ракурса. По умолчанию это 15 градусов. Ракурсы, не прошедшие ограничения по вертикальному отклонению, также отбрасываются. Для обычного ракурса диапазон по вертикали - от 0 до 20 градусов.
Оператор также проверяет, можно ли разместить данную камеру в физическом мире. Например, если камера стоит слишком близко от объекта, пересекается с ним либо находится внутри, то такую камеру разместить нельзя.
Кроме того в алгоритмах выбора оптимального кадра реализованы функции:
- использования заданного массива камер, в качестве подсказок для автоматических алгоритмов. Эта функциональность может также использоваться для имитации базовых моментов авторского стиля.
- использования заданного массива авторских камер для дополнения автоматически созданных. Из совокупного множества будет выбрана та, что лучше подходит для съемки в данный момент.
Структура киноповествования
В качестве пояснения, как пример использования изобретения, предлагаемая система встроена в систему визуализации текста, описанную в международной заявке PCT/RU 2011/000666, поданной 31.08.2011, полный текст которой включен в данное описание путем ссылки, расширяя ее возможности указанными выше функциями.
Система визуализации текста преобразует сценарий, написанный на естественным языке, в анимационные ЗД ролики. Промежуточным этапом такого преобразования является выделение действующих лиц и действий из сценария. В результате составляется скелет повествования, который для персонажей задает цели, а для предлагаемого решения - основу для построения плана съемки.
Основная часть системы визуализации текста, обработав естественный язык, оперирует упрощенной моделью языка. Это последовательный список однотипных фраз-действий в виде совокупности (кто, что сделал, над чем, при помощи чего, дополнительные модификаторы и параметры).
Подсистемами симуляции поведения они затем преобразуются в цели и выполняются.
Предлагаемой системой эта совокупность преобразуется обратно в "остов" предложения естественного языка, то есть, в синтаксическую конструкцию в виде совокупности членов предложения (подлежащее, сказуемое, дополнения,...). В частном случае возможен вариант с более дробной совокупностью, получаемой уже в процессе выполнения поведения.
Каждая такая конструкция хорошо ложится на язык монтажа и может быть сравнительно легко превращена в кинофразу (законченную последовательность кадров, снимающих действие).
Действительно, вспомним, что
- подлежащее отвечает на вопросы "кто?", "что?"
- сказуемое - "что он делает?", "что с ним происходит?"
- дополнение - "чем?", "при помощи чего?", "над кем?" и т.п.
Это - прямое отображение на классические, азбучные принципы монтажа. Например, кадр, снимающий объект определенной крупностью, отвечает на вполне определенный вопрос и т.д.
Используемые в этой заявке термины "компонент" и "система" относятся к компьютерной сущности, которая представляет собой либо оборудование, либо комбинацию оборудования и программного обеспечения, либо программное обеспечение, либо выполняемое программное обеспечение. Например, компонент может представлять собой, но без ограничения, процесс, выполняющийся на процессоре, процессор, привод жесткого диска, множественные приводы (оптического и/или магнитного носителя), объект, выполнимый модуль, поток выполнения, программу и/или компьютер. В порядке иллюстрации, компонентом может быть как приложение, выполняющееся на сервере, так и сам сервер. Один или несколько компонентов могут размещаться в процессе и/или потоке выполнения, и компонент может размещаться на одном компьютере и/или распределяться между двумя или несколькими компьютерами.
Хотя вышеприведенное описание относится в целом к компьютерным инструкциям, которые могут выполняться на одном или нескольких компьютерах, специалистам в данной области техники очевидно, что новый вариант осуществления также можно реализовать совместно с другими программными модулями и/или как комбинацию оборудования и программного обеспечения.
В общем случае, программные модули включают в себя процедуры, программы, объекты, компоненты, структуры данных и т.д., которые выполняют определенные задачи или реализуют определенные абстрактные типы данных. Кроме того, специалистам в данной области техники очевидно, что способы, отвечающие изобретению, можно осуществлять на практике посредством других конфигураций компьютерной системы, в том числе однопроцессорных или многопроцессорных компьютерных систем, миникомпьютеров, универсальных компьютеров, а также персональных компьютеров, карманных вычислительных устройств, микропроцессорных или программируемых потребительских электронных приборов и пр., каждый их которых может в ходе работы подключаться к одному или нескольким соответствующим устройствам.
Иллюстрируемые аспекты также можно применять на практике в распределенных вычислительных средах, где задачи выполняются удаленными устройствами обработки, связанными друг с другом посредством сети передачи данных. В распределенной вычислительной среде, программные модули могут располагаться в локальных и удаленных запоминающих устройствах.
Компьютер обычно включает в себя различные компьютерно-считываемые среды. Компьютерно-считываемые среды могут представлять собой любые имеющиеся среды, к которым компьютер может осуществлять доступ, и включают в себя энергозависимые и энергонезависимые среды, сменные и стационарные среды. В порядке примера, но не ограничения, компьютерно-считываемые среды могут содержать компьютерные носители данных и среды передачи данных. Компьютерные носители данных включают в себя энергозависимые и энергонезависимые, сменные и стационарные носители, реализованные с помощью любого метода или технологии для хранения информации, например компьютерно-считываемых команд, структур данных, программных модулей или других данных. Компьютерные носители данных включает в себя, но без ограничения, ОЗУ, ПЗУ, ЭСППЗУ, флэш-память или другую технологию памяти, CD-ROM, цифровые универсальные диски (DVD) или другие оптические диски, магнитные кассеты, магнитную ленту, накопитель на магнитных дисках или другие магнитные запоминающие устройства или любой другой носитель, который можно использовать для хранения полезной информации, и к которому компьютер может осуществлять доступ.
Компьютер включает в себя процессор, системную память и системную шину. Системная шина обеспечивает интерфейс для системных компонентов, в том числе, но без ограничения, системной памяти к процессору. Процессор может представлять собой любой из различных коммерчески доступных процессоров. В качестве процессора также можно применять двойные микропроцессоры и другие многопроцессорные архитектуры.
Системная шина может представлять собой любую из нескольких типов шинных структур, и может дополнительно подключаться к шине памяти (с помощью контроллера памяти или без него), периферийной шине и локальной шине с использованием любых разнообразных коммерчески доступных шинных архитектур. Системная память включает в себя постоянную память (ПЗУ) и оперативную память (ОЗУ). Базовая система ввода/вывода (BIOS) хранится в энергонезависимой памяти, например ПЗУ, ЭППЗУ, ЭСППЗУ, причем BIOS содержит основные процедуры, которые помогают переносить информацию между элементами компьютера, например, при запуске. ОЗУ также может включать в себя высокоскоростное ОЗУ, например, статическое ОЗУ для кэширования данных.
Компьютер дополнительно включает в себя внутренний привод жесткого диска (HDD) (например, EIDE, SATA), причем внутренний привод жесткого диска также можно приспособить для внешнего использования в подходящем корпусе, привод магнитного флоппи-диска (FDD), (например, для чтения с или записи на сменную дискету) и привод оптического диска, (например, читающий диск CD-ROM или для чтения с или записи на другие оптические носители высокой емкости, например, DVD). Привод жесткого диска, привод магнитного диска и привод оптического диска могут быть подключены к системной шине посредством интерфейса привода жесткого диска, интерфейса привода магнитного диска и интерфейса оптического привода, соответственно. Интерфейс для реализаций внешнего привода включает в себя по меньшей мере одну или обе из технологий универсальной последовательной шины (USB) и интерфейса IEEE 1394.
Приводы и соответствующие компьютерные носители данных обеспечивают энергонезависимое хранилище данных, структур данных, компьютерных инструкций и т.д. Для компьютера, приводы и носители обеспечивают хранение любых данных в подходящем цифровом формате. Хотя вышеприведенное описание компьютерно-считываемых носителей относится к HDD, сменной магнитной дискете и сменным оптическим носителям, например CD или DVD, специалистам в данной области техники очевидно, что другие типы носителей, которые считываются компьютером, например, zip-диски, магнитные кассеты, карты флэш-памяти, картриджи и т.п., также можно использовать в иллюстративной операционной среде и, кроме того, что любые такие носители могут содержать компьютерные инструкции для осуществления новых способов раскрытой архитектуры.
На приводах и ОЗУ может храниться ряд программных модулей, в том числе операционная система, один или несколько прикладные программы, другие программные модули и программные данные. Полностью или частично, операционная система, приложения, модули и/или данные также могут кэшироваться в ОЗУ. Также очевидно, что раскрытую архитектуру также можно реализовать с различными коммерчески доступными операционными системами или комбинациями операционных систем.
Пользователь может вводить команды и информацию в компьютер через одно или несколько проводных/беспроводных устройств ввода, например, клавиатуру и указательное устройство, например мышь. Устройства ввода/вывода могут включать в себя микрофон/громкоговорители и другое устройство, например, ИК пульт управления, джойстик, игровая панель, перо, сенсорный экран и пр. Эти и другие устройства ввода нередко подключены к процессору через интерфейс устройств ввода, который подключен к системной шине, но могут подключаться посредством других интерфейсов, например, параллельного порта, последовательного порта IEEE 1394, игрового порта, порта USB, ИК интерфейса и т.д.
Монитор или устройство отображения другого типа также подключен к системной шине через интерфейс, например видеоадаптер. Помимо монитора, компьютер обычно включает в себя другие периферийные устройства вывода, например, громкоговорители, принтеры и т.д.
Компьютер может работать в сетевой среде с использованием логических соединений посредством проводной и/или беспроводной связи с одним или несколькими удаленными компьютерами, например удаленным(и) компьютером(ами). Удаленный(е) компьютер(ы) могут представлять собой рабочую станцию, компьютер-сервер, маршрутизатор, персональный компьютер, портативный компьютер, развлекательный прибор на основе микропроцессора, равноправное устройство или другой общий сетевой узел, и обычно включает в себя многие или все элементы, описанные выше применительно к компьютеру, хотя, для краткости, показано только запоминающее устройство. Описанные логические соединения включают в себя проводное/беспроводное подключение к локальной сети (LAN) и/или к более крупномасштабным сетям, например глобальной сети (WAN). Такие сетевые среды LAN и WAN обычно имеют место в учреждениях и компаниях и обеспечивают компьютерные сети в масштабах предприятия, например интрасети, которые все могут подключаться к глобальной сети связи, например, Интернету.
При использовании в сетевой среде LAN компьютер подключен к локальной сети через проводной и/или беспроводной интерфейс или адаптер сети связи. Адаптер может обеспечивать проводное или беспроводное подключение к LAN, которая также может включать в себя беспроводную точку доступа для связи с беспроводным адаптером.
При использовании в сетевой среде WAN, компьютер может включать в себя модем, или подключаться к серверу связи в WAN, или может иметь другое средство установления связи в WAN, например, Интернете. Модем, который может быть внутренним или внешним и проводным и/или беспроводным устройством, подключен к системной шине через интерфейс последовательного порта. В сетевой среде, программные модули, описанные применительно к компьютеру, или часть из них, могут храниться в удаленном запоминающем устройстве. Показанные сетевые соединения являются иллюстративными, и можно использовать другие средства установления линии связи между компьютерами.
Компьютер способен осуществлять связь с любыми беспроводными устройствами, оперативно поддерживающими беспроводную связь, например, принтером, скан