СИСТЕМА ДЛЯ УПРАВЛЕНИЯ РЕСУРСОМ КАМЕРЫ В ПОРТАТИВНОМ УСТРОЙСТВЕ
SYSTEM FOR CONTROL OF CHAMBER RESOURCE IN PORTABLE DEVICE

Приоритет по настоящей заявке испрашивается по предварительной заявке на патент США № 60/465,533, поданной 25 апреля 2003, и по заявке на патент США № 10/453,091, поданной 2 июня 2003. Содержание этих документов объединено здесь посредством ссылки.
Область техники, к которой относится изобретение
Настоящее изобретение относится в основном к получению изображений и их обработке в портативных устройствах, более конкретно к системе для управления ресурсом камеры в портативном устройстве, имеющем встроенный контроллер.
Уровень техники
Продвижения вперед в технологии привели к меньшим по размерам и более мощным персональным вычислительным устройствам. Например, в настоящее время существует многообразие портативных беспроводных телефонов, карманных компьютеров (PDA), пейджинговых устройств, которые являются небольшими, легковесными и могут легко переноситься пользователями. Типично, эти устройства включают в себя встроенный контроллер с ограниченными ресурсами запоминающего устройства. Например, объем имеющегося запоминающего устройства и возможности обработки могут быть ограничены маленьким размером этого устройства.
Существует возрастающая потребность в персональных вычислительных устройствах для того, чтобы работать с большими объемами данных и выполнять программы, которые являются более сложными. Например, пользователи запрашивают приложения, которые обеспечивают всестороннюю обработку изображений. В этой области пользователи хотели бы иметь портативные устройства, которые включают в себя ресурсы камеры, которыми можно управлять для получения неподвижных изображений и видеоклипов для обработки и/или передачи.
Для того чтобы фиксировать изображения на портативных устройствах, необходимо управлять ресурсами камеры этих устройств. Например, один тип портативного устройства может включать в себя ресурс камеры с низким разрешением, которая представляет собой разработку для получения неподвижных изображений, и другой тип портативных устройств может включать ресурс камеры, большей по размеру и с более высоким разрешением, с возможностями изменения масштаба изображения, разработанного для фиксирования видеофильма. Таким образом, каждый тип портативного устройства может иметь отличный от других ресурс камеры, с помощью которого фиксировать содержание изображений. Следовательно, разработчики приложений должны преодолевать проблемы, связанные с совместимостью, при разработке приложений для использования на широком многообразии портативных устройств, которые могут иметь различные конфигурации и ресурсы камеры.
Одна технология, используемая для преодоления проблем, связанных с совместимостью, требует того, чтобы приложение было специально создано для выполнения его на портативном устройстве, имеющем конкретный ресурс камеры. Например, если разработчик приложения разрабатывает приложение, которое выполняется на портативном устройстве для получения видеоизображений, разработчики должны адаптировать это приложение так, чтобы оно было точно совместимым с ресурсом камеры, имеющемся на этом конкретном устройстве.
К сожалению, достаточно дорогостоящим и неэффективным является создание приложений для использования на широком многообразии портативных устройств, которые адаптируются для конкретных ресурсов камеры, обнаруженных на этом устройстве. Например, разработчику приложения потребовалось бы модифицировать приложение для использования на различных портативных устройствах на основе имеющегося ресурса камеры, тем самым, выдвигая требование, чтобы были разработаны множественные версии одного и того же приложения. Также разработчик приложения должен был бы постоянно обновлять свои приложения, по мере того, как новые ресурсы камеры становятся доступными.
Другая технология, предлагаемая для управления ресурсами камеры на портативных устройствах, включает в себя использование мультимедийных платформ, в основном доступных для использования в настольных компьютерах, серверах или других относительно больших вычислительных устройствах. Однако эти типы платформ были бы крайне неэффективны, если их использовать в портативном устройстве, имеющем ограниченные ресурсы, потому что эти системы в основном требуют большое число интерфейсов для программного обеспечения, которые должны создаваться между приложением и программными модулями, загружаемыми на это устройство. Таким образом, в дополнение к тому, что они являются очень сложными, эти системы требуют интенсивных запоминающих устройств и средств обработки, что не совместимо с ограниченной производительностью обработки, имеющейся на типичных портативных устройствах.
Следовательно, что требуется, так это система, которая обеспечивает возможность того, что приложения эффективно и легко осуществляют доступ к ресурсам камеры и управляют ими на множестве портативных устройств, чтобы фиксировать, кодировать, манипулировать и отображать неподвижные изображения и видеоизображения.
Система должна быть компактной и спроектированной так, чтобы работать, используя ограниченные ресурсы, имеющиеся на типичном портативном устройстве. Например, система не должна требовать протяженных интерфейсов программного обеспечения между программными модулями, которые являются большими, неэффективными и не практичными для использования на небольшом устройстве с ограниченным ресурсом. Система должна работать, чтобы обеспечивать возможность того, что все типы ресурсов камеры были управляемы, и обеспечивать наращиваемую архитектуру, которая предусматривает управление новыми ресурсами камеры по мере того, как они становятся доступны.
Раскрытие изобретения
В одном или более вариантах осуществления система камеры, включающая в себя способы и устройства, предлагается для осуществления управления ресурсами камеры на портативных устройствах. Например, одним портативным устройством может быть беспроводной телефон со встроенным контроллером и ограниченными ресурсами запоминающего устройства, который включает в себя устройство камеры. В одном или более вариантах осуществления система камеры содержит небольшую и эффективную программу, которая выполняется на портативном устройстве для обеспечения возможности того, чтобы приложения, выполняющиеся на этом устройстве, управляли ресурсом камеры, используя простой интерфейс. Таким образом, система камеры является особенно хорошо подходящей для использования в портативных устройствах, имеющих встроенные контроллеры с ограниченными ресурсами запоминающего устройства.
В одном варианте осуществления система камеры обеспечивает простой, эффективный и действенный способ доступа и управления ресурсами камеры на портативном устройстве, и обеспечивает возможность того, что статические и динамические приложения: (1) фиксируют кадр или видеоизображения, (2) устанавливают настройки и параметры конфигурации камеры, (3) обрабатывают фиксированное изображение и видеокадры, (4) добавляют дополнительную информацию, такую как информацию о местоположении, для изображения и видеокадра, (5) кодируют фиксированные изображения и видеокадры, (6) отображают фиксированные изображения и видеокадры, и (7) принимают события камеры асинхронно.
В одном или более вариантах осуществления система камеры содержит небольшой программный модуль, который иллюстрируется примерами посредством выполняющегося приложения. Это приложение затем использует простой программный интерфейс приложения (API), обеспечиваемый программным модулем, чтобы выполнять все операции камеры. События от камеры направляются на приложение посредством зарегистрированной функции обратного вызова. Программный модуль потребляет минимальную память и обеспечивает эффективную реализацию посредством осуществления прямого доступа к программному драйверу на уровне устройства для выполнения всех операций камеры.
В одном варианте осуществления обеспечивается способ для управления системой камеры для обеспечения возможности того, что приложение будет управлять ресурсами камеры в портативном устройстве. Этот способ заключается в том, что активируют систему камеры, при этом система камеры может работать так, чтобы управлять ресурсом камеры, обеспечивают то, что программный интерфейс приложения (API) принимает команды от приложения, осуществляют прием команды от приложения посредством программного интерфейса приложения (API), при этом команда идентифицирует функцию камеры, которая должна выполняться, и выполняют функцию камеры, идентифицируемую с помощью команды.
В другом варианте осуществления предлагается устройство для управления системой камеры для обеспечения возможности того, что приложение будет управлять ресурсами камеры в портативном устройстве. Устройство содержит средство для активирования системы камеры, при котором система камеры может работать так, чтобы управлять ресурсом камеры. Устройство также содержит средство для обеспечения того, что программный интерфейс приложения (API) принимает команды от приложения. Устройство также содержит средство для приема команды от приложения посредством программного интерфейса приложения (API), при этом команда идентифицирует функцию камеры, которая должна выполняться. Устройство также содержит средство для выполнения функции камеры, идентифицируемой с помощью команды.
В другом варианте осуществления предлагается компьютерно-читаемый носитель, который содержит команды, которые, при выполнении процессором в портативном устройстве, действуют так, чтобы обеспечить систему камеры, которая позволяет приложению управлять ресурсом камеры в портативном устройстве. Компьютерно-читаемый носитель содержит команды для активирования системы камеры, при этом система камеры может работать так, чтобы управлять своим ресурсом, команды для обеспечения того, чтобы программный интерфейс приложения (API) принимал команды программного интерфейса приложения (API) от приложения, команды для приема команды программного интерфейса приложения (API) от приложения через программный интерфейс приложения (API), при этом команда программного интерфейса приложения (API) идентифицирует функцию камеры, которая должна выполняться, команды для выполнения функции камеры, идентифицированной посредством команды программного интерфейса приложения (API).
В другом варианте осуществления предлагается устройство для работы системы камеры, чтобы обеспечить возможность для приложения управлять ресурсом камеры в портативном устройстве. Устройство содержит логическую схему для активирования системы камеры, при этом система камеры может работать так, чтобы управлять ресурсом камеры, и дополнительно содержит логическую схему для обеспечения того, что программный интерфейс приложения (API) принимает команды от приложения. Устройство также содержит логическую схему для приема команды от приложения через программный интерфейс приложения, при этом команды идентифицирует функцию камеры, которая должна выполняться, и дополнительно содержит логическую схему для выполнения функции камеры, идентифицированной командой.
Другие аспекты, преимущества и признаки настоящего изобретения станут очевидны после обзора нижеприведенного краткого описания чертежей, подробного описания изобретения и формулы изобретения.
Краткое описание чертежей
Вышеупомянутые аспекты и соответствующие преимущества вариантов осуществления, описанных здесь, станут более легко понятны при помощи ссылок на следующее подробное описание в сочетании с прилагаемыми чертежами, на которых:
Фиг.1 представляет сеть передачи данных, которая включает в себя портативное беспроводное устройство с встроенным контроллером, подходящим для выполнения одного варианта осуществления системы камеры;
Фиг.2 представляет структурную схему, иллюстрирующую один вариант осуществления портативного устройства, показанного на Фиг.1, который включает в себя один вариант осуществления системы ICamera, которая действует так, чтобы обеспечить возможность того, что приложение управляет ресурсом камеры на устройстве;
Фиг.3 представляет подробную структурную схему одного варианта осуществления системы ICamera, показанной на Фиг.2;
Фиг.4 представляет один вариант осуществления конечного автомата, обеспечиваемый одним вариантом осуществления системы ICamera, чтобы обеспечить возможность того, что приложение управляет ресурсом камеры на портативном устройстве; и
Фиг.5 представляет один вариант осуществления способа для функционирования системы ICamera, чтобы обеспечить возможность того, что приложение управляет ресурсом камеры в портативном устройстве.
Осуществление изобретения
Следующее подробное описание описывает систему камеры, включающую в себя способы и устройство для управления ресурсом камеры в портативном устройстве. В одном или более вариантах осуществления портативное устройство имеет встроенный контроллер и ограниченные ресурсы (т.е. ограниченную емкость запоминающего устройства), и система камеры работает, чтобы обеспечить возможность того, что программы приложения управляют ресурсом камеры, используя единственный интерфейс.
TM
В одном или более вариантах осуществления система камеры взаимодействует со средой прогона программы, реализующейся на устройстве, которая используется для упрощения работы устройства посредством обеспечения обобщенных вызовов конкретных ресурсов устройства. Одна такая среда прогона программы представляет собой платформу программного обеспечения Двоичной среды прогона программы для беспроводной связи (BREW), разработанную компанией QUALCOMM, Inc., Сан-Диего, Калифорния. В следующем описании будет предполагаться, что система камеры осуществляется на портативном устройстве, выполняющем среду прогона программы, такую как платформу программного обеспечения BREW. Однако один или более вариантов осуществления системы камеры являются подходящими для использования с другими типами сред прогона программы для управления ресурсами камеры на портативном устройстве.
Фиг.1 представляет сеть 100 передачи данных, которая включает в себя портативное беспроводное устройство 102 со встроенным контроллером, подходящим для выполнения одного варианта осуществления системы камеры, которая будет в дальнейшем называться системой «ICamera» и показана позицией 104. Система 104 «ICamera» работает, чтобы обеспечить возможность того, что приложения, которые работают на устройстве 102, контролируют ресурс 124 камеры, расположенный на устройстве 102. В одном варианте осуществления система 104 «ICamera» взаимодействует со средой 116 прогона программы, реализующейся на устройстве. Например, в одном варианте осуществления среда 116 прогона программы представляет собой платформу программного обеспечения BREW.
В одном или более вариантах осуществления система 104 «ICamera» является подходящей для использования с широким многообразием портативных устройств. Например, другие подходящие портативные устройства включают в себя, но не ограничиваются ими, карманные компьютеры (PDA), устройства электронной почты, пэйджеры, планшетные компьютеры, мобильные телефоны или фактически любой другой тип портативного устройства, который включает в себя ресурс камеры.
Беспроводное устройство 102 может работать, чтобы осуществлять связь с сетевым сервером 106 через сеть 108 передачи данных, используя каналы 110 беспроводной связи. В одном варианте осуществления устройство 102 содержит беспроводной телефон, который может передавать и принимать голосовую и/или другую информацию по сети 108. Устройство 102 также работает, чтобы принимать приложения по сети 108. Например, приложения 112 и 114 могут быть загружены на устройство 102 от сетевого сервера 106. Эти приложения выполняются на устройстве 102 и используют камеру 124 устройства, чтобы предоставить дополнительные признаки и/или функциональность пользователю устройства. Например, приложения могут получать и обрабатывать неподвижные изображения или видеоинформацию от камеры 124 устройства. Возможно, также загружать приложения на устройство 102 от любого другого объекта сети, подключенного к сети 108.
В одном варианте осуществления устройство 102 также непосредственно подключается к локальной системе, такой как локальная рабочая станция 118, через прямую линию 120 связи. Устройство 102 может работать так, чтобы загружать приложения от локальной рабочей станции 118, используя прямую линию 120 связи. Например, приложение 122 загружается на устройство 102 от рабочей станции 118, используя линию 120 связи. Система 104 «ICamera» может загружаться от сервера 106 на устройство 102 и работает на устройстве 102, чтобы обеспечить возможность того, что приложения управляют камерой 124. В другом варианте осуществления система 104 «ICamera» может загружаться на устройство 102 с рабочей станции 118 по линии 120 связи или может быть установлена на устройстве 102 во время изготовления.
В одном варианте осуществления система 104 «ICamera» предлагается в качестве команд, запоминаемых на компьютерно-читаемом носителе, таком как флоппи-диск, и загружается на систему 118 для передачи на устройство 102. В другом варианте осуществления система 104 «ICamera» может запоминаться на компьютерно-читаемом носителе, таком как плата запоминающего устройства (не показана), и вставляемом непосредственно в устройство 102, так что система 104 «ICamera» может выполняться на устройстве 102. Таким образом, устройство 102 может принимать систему 104 «ICamera» в беспроводной передаче, проводной передаче или посредством извлечения его непосредственно из запоминающего устройства.
Фиг.2 представляет структурную схему, иллюстрирующую один вариант осуществления устройства 102, который включает в себя один вариант осуществления системы 104 «ICamera», которая работает так, чтобы обеспечить возможность того, что приложение будет эффективно управлять ресурсом камеры. Устройство 102 содержит обрабатывающую логическую схему 202, которая подключается к внутренней шине 204 данных запоминающему устройству 210 магазинного типа. Также подключаются к внутренней шине 204 данных запоминающее устройство 206 для хранения команд, запоминающее устройство 216 приложения, динамическая область 210 памяти, пользовательский интерфейс 212, логическая схема 216 камеры, логическая схема 218 аудиоустройства и интерфейс 214 ввода/вывода (I/O).
Во время работы устройства 102 обрабатывающая логическая схема 202 выполняет команды программы, хранящиеся в запоминающем устройстве 206 для хранения команд, чтобы активировать среду 116 прогона программы. Среда 116 прогона программы может быть средой BREW или другой подходящей средой прогона программы. Чтобы способствовать выполнению команд, обрабатывающая логическая схема 202 использует запоминающее устройство 216 магазинного типа для хранения программных данных или команд на временной основе. Например, обрабатывающая логическая схема 202 может запоминать постоянные величины, переменные величины, программные адреса, указатели, команды или другую информацию на временной основе в динамической области 210 памяти. Динамическая область памяти содержит виртуально любой тип памяти, подходящий для хранения и извлечения информации посредством обрабатывающей логической схемы 202.
В одном или более вариантах осуществления обрабатывающая логическая схема 202 содержит центральный процессор (CPU), вентильную матрицу, программное обеспечение или логическую схему, содержащую любую комбинацию аппаратных средств и программного обеспечения. Таким образом, обрабатывающая логическая схема 202 в основном содержит логическую схему для выполнения машинно-читаемых команд.
Запоминающее устройство 206 для хранения команд содержит запоминающее устройство с произвольной выборкой (RAM), постоянное запоминающее устройство (ROM), запоминающее устройство с групповой перезаписью (FLASH), электронно-перепрограммируемое постоянное запоминающее устройство (EEPROM) или любой другой подходящий тип памяти, или их комбинацию. В одном варианте осуществления запоминающее устройство 106 для хранения команд расположено внутри устройства 102, а в другом варианте осуществления запоминающее устройство 206 для хранения команд содержит удаляемую плату запоминающего устройства или устройство памяти, которое может быть выборочно прикреплено к устройству 102, и, тем самым, подключено к внутренней шине 204. Таким образом, запоминающее устройство 206 для хранения команд может содержать виртуально любой тип памяти, которая способна запоминать команды, которые могут выполняться обрабатывающей логической схемой 202.
Пользовательский интерфейс 212 принимает входные данные пользователя, например, с клавиатуры, указательного устройства, сенсорной клавиатуры или других механизмов ввода, чтобы обеспечить возможность того, что пользователь взаимодействует с устройством 102.
Аудиологическая схема 218 содержит логическую схему для вывода аудиоинформации на громкоговоритель(и) устройства, удаленные громкоговоритель(и) или аудиосистему, или другой тип источника звука. Например, пара удаленных громкоговорителей может принимать выходные аудиоданные логической схемы 218 для передачи аудиоинформации пользователю устройства.
Логическая схема 216 камеры содержит логическую схему аппаратных средств и/или программных средств, которая служит средством соединения с ресурсом 124 камеры, установленным на устройстве. Например, устройство может включать в себя камеру прибора с зарядовой связью (CCD) или любой другой тип ресурса камеры. Логическая схема 216 камеры служит средством соединения с ресурсом камеры для обеспечения возможности того, что неподвижные изображения и видеоизображения будут получаться от ресурса камеры. Таким образом, логическая схема 216 камеры и аудиологическая схема 218 могут содержать аппаратные средства и/или программное обеспечение в любой комбинации, чтобы обеспечить возможность того, что устройство 102 зафиксирует и получит визуальную и аудиоинформацию.
Интерфейс 214 ввода/вывода (I/O) работает, чтобы передавать и принимать информацию между устройством 102 и внешними устройствами, системами и/или сетями. Например, в одном варианте осуществления интерфейс 214 ввода/вывода (I/O) содержит цепь радиоприемопередатчика (не показана), которая работает, чтобы передавать и принимать информацию по сети беспроводной передачи данных, используя, например, линию 110 связи. Например, приемопередатчик содержит схему, которая модулирует информацию, принятую от обрабатывающей логической схемы 2-2, и преобразует модулированную информацию в высокочастотные сигналы, пригодные для беспроводной передачи. Подобным образом приемопередатчик также содержит схему для преобразования принятых высокочастотных сигналов передачи в сигналы, подходящие для демодуляции и последующей обработки посредством обрабатывающей логической схемы 202.
В другом варианте осуществления интерфейс 214 ввода/вывода содержит приемопередатчик, который работает так, чтобы передавать и принимать информацию по линии передачи с фиксированным монтажом, такой как телефонная линия, чтобы осуществлять связь с удаленной системой по сети передачи данных общего пользования, такой как Интернет.
В еще другом варианте осуществления интерфейс 214 ввода/вывода содержит схему, которая работает так, чтобы осуществлять связь с локальными устройствами, такими как локальная рабочая станция 116, использующими линию 120 передачи. Интерфейс 214 ввода/вывода может также включать в себя схему (такую как логическая схема с последовательным или параллельным портом), чтобы осуществлять связь с принтером или другим локальным компьютером или устройством, таким как флоппи-диск или плата запоминающего устройства. Таким образом, интерфейс 214 ввода/вывода может содержать любой тип аппаратных средств, программного обеспечения или логическую схему, содержащую любую комбинацию аппаратных средств и программного обеспечения, чтобы обеспечить возможность того, что устройство 102 будет осуществлять связь с другими локальными или удаленно расположенными устройствами или системами.
Во время работы устройства 102 выполнение команд программы обрабатывающей логической схемой 202 обусловливает то, что система 104 ICamera активируется. Например, команды ICamera могут сохраняться в компьютерно-читаемых носителях, таких, как запоминающее устройство для хранения команд, и выполнение этих команд активирует систему ICamera. Система 104 ICamera взаимодействует со средой 116 прогона программы для обеспечения возможности того, что приложение эффективно управляет ресурсом 124 камеры, расположенном на устройстве. Например, приложение 220 загружается в  устройство 102 посредством беспроводной сети 108 и сохраняется в запоминающем устройстве 208. В одном варианте осуществления приложение 220 активируется и взаимодействует с системой 104 ICamera, чтобы управлять работой ресурса 124 камеры посредством управления логической схемой 216 камеры. Например, приложение 220 может действовать, чтобы извлекать неподвижные изображения или видеокадры из ресурса камеры, или устанавливать выбранные параметры, которые контролируют, как работает ресурс камеры. Чтобы завершить это, приложение 220 взаимодействует с единственным программным интерфейсом, обеспечиваемым системой 104 ICamera, чтобы выполнять все операции, связанные с ресурсом камеры.
Фиг.3 показывает подробную функциональную диаграмму одного варианта осуществления системы 104 ICamera, выполняемого на устройстве 102. Устройство 102 включает в себя свои собственные аппаратные средства 302, которые содержат ресурс камеры, например камеру 124. Устройство 102 также включает в себя свое собственное мультимедийное программное обеспечение 304, которое содержит программные модули для аудио и видео. Эти модули могут включать в себя конкретные кодирующие модули, такие как кодирующие модули MPEG4 и JPEG. Эти модули представляют модули программного обеспечения низкого уровня, которые используются, чтобы непосредственно осуществлять связь с собственными аппаратными средствами 302. Например, модули 304 подключаются к ресурсу 302 камеры. Хотя показан один вариант осуществления, возможно, также иметь меньше или больше мультимедийных модулей 304 программного обеспечения, и эти модули могут подключаться ко всем типам собственных аппаратных средств 302. Таким образом, другие конфигурации собственных аппаратных средств 302 и собственного программного обеспечения 304 возможны в пределах объема правовой охраны настоящего изобретения.
Во время работы устройство 102 выполняет команды программы, чтобы активировать среду 116 прогона программы, которая в одном варианте осуществления представляет собой среду Brew. Во время работы устройства 102 приложение 220 затем активируется. Например, пользователь устройства загружает приложение 220 от сети передачи данных (т.е. используя интерфейс 214), и активирует приложение 220 через пользователя 212 I/F. Приложение 220 было спроектировано, чтобы управлять ресурсом камеры устройства, и было создано, используя структурные компоненты ICamera, как описано здесь.
Приложение 220 иллюстрирует пример системы 104 ICamera, которая обеспечивает возможность того, что приложение 220 использует простой программный интерфейс 306 приложения (API), обеспечиваемый системой 104 ICamera для выполнения всех операций, связанных с ресурсом камеры. Структура 308 данных носителей может быть по выбору создана системой 104 ICamera для запоминания и извлечения видеоинформации.
Система 104 ICamera подключается и осуществляет обмен информацией с собственными модулями 304 через среду 116 прогона программы. Например, среда 116 прогона программы может быть платформой Brew, которая обеспечивает обобщенные вызовы для обеспечения доступа к особым ресурсам устройства. Однако любая подходящая технология интерфейса может использоваться для обеспечения возможности связи между системой 104 ICamera и модулями 304. Таким образом, возможно для системы 104 ICamera непосредственно управлять любым из модулей 304 для выполнения выбранных функций камеры. Например, система 104 ICamera может управлять модулем Mpeg4 для получения видеоданных от ресурса камеры и кодировать их в формате Mpeg4. Данные, полученные системой 104 ICamera от модулей 304, могут быть сохранены в структуре 308 данных, тем самым выполняя функцию «Запись», или могут быть извлечены и отображены на дисплее устройства, тем самым выполняя функцию «Воспроизведение».
Структура данных, хранимых на носителе
Структура 308 данных, хранимых на носителе, работает, чтобы защитить данные камеры, принятые системой 104 ICamera от собственного программного обеспечения 304. В одном варианте осуществления следующая структура определяет структуру данных, хранимых на носителе, которая обеспечивает данные типа источник/приемник и контекстно-зависимые данные, соотносимые с типом данных, хранимых на носителе.
typedef struct
{
AEECLSID clsData; //Тип данных носителя
void *pData; //контекстно-зависимые данные
uint32 dwSize; //контекстно-зависимые данные
} AEEMediaData;
где элементы определяются следующим образом:
clsData; //Тип данных носителя
pData; //контекстно-зависимые данные
dwSize; //контекстно-зависимые данные
и где следующая таблица представляет подробное описание контекстно-зависимых данных для предопределенных типов данных носителя, где «Считывать/Записывать» означает «Воспроизводить/Записывать» в отношении ресурса камеры устройства.
clsData
Режим
pData
dwSize
MMD_FILE_NAMEMMD_BUFFER:
считывать/записыватьсчитывать/записывать
имя файларазмер данных буфера печатающего устройства или 0
0
MMD_SOURCE:
считывать/записывать
размер данных ISOURCE или 0
Следует заметить, что для воспроизведения clsData могут быть установлены на идентификатор класса любого класса на основе ISOURCE с pData, установленными в соответствующем интерфейсном указательном устройстве.
В одном варианте осуществления система 104 ICamera обеспечивает единственный интерфейс 306, который обеспечивает возможность того, что приложение управляет ресурсом камеры на устройстве. Интерфейс 306 включает в себя набор команд программного интерфейса приложения (API) системы ICamera, которые обеспечивают выполнение различных функций, относящихся к камере. Набор команд программного интерфейса приложения (API), обеспечиваемый системой ICamera, представляет собой следующее:
1.
ICAMERA_SetParm()
;устанавливает параметры камеры
2.
ICAMERA_GetParm()
;получает параметры камеры
3.
ICAMERA_Preview()
;начинает предварительный просмотр (режим видоискателя)
4.
ICAMERA_Pause()
;приостанавливает выполнение текущей операции
5.
ICAMERA_Resume()
;возобновляет выполнение текущей операции
6.
ICAMERA_RecordSnapshot()
;записывает кадр
7.
ICAMERA_RecordMovie()
;записывает фильм
8.
ICAMERA_Stop()
;выдает команду прекращения работы
9.
ICAMERA_EncodeSnapshot()
;кодирует изображение кадра в определенном формате (напр., формате JPEG)
10.
ICAMERA_SetMediaData()
;устанавливает данные носителя
11.
ICAMERA_RegisterNotify()
;регистрирует функцию уведомления
12.
ISHELL_CreateInstance()
;приписывает значение объекту системы ICamera
и так далее.
Например, команда ICAMERA_SetParm() может быть выполнена приложением, чтобы дать команду системе 104 ICamera установить конкретные параметры, установки или переменные, связанные с ресурсом камеры устройства. В других вариантах осуществления приложения могут выполнять одну или более других команд программного интерфейса приложения (API) системы ICamera (выше не показаны), которые могут быть включены в систему 104 ICamera для управления фактически любой функцией ресурса камеры.
В одном варианте осуществления система 104 ICamera работает так, чтобы обеспечить возможность того, что приложение будет управлять ресурсом камеры для снятия кадра и сохранения его путем выполнения следующих шагов:
1. Программа приложения приписывает значение объекту системы/интерфейса ICamera, используя команду «ISHELL_CreateInstance()» и регистрирует функцию обратного вызова для приема асинхронных событий.
2. Команда «ICAMERA_Preview()» начинает работу камеры в режиме предварительного просмотра, обеспечивающем возможность того, что кадры изображения будут приниматься и отображаться при помощи приложения через функцию регистрируемого обратного вызова.
3. Команда «ICAMERA_SetMediaData()» устанавливает имя файла/буфер, где требуется записать данные.
4. Команды «ICAMERA_SetVideoEncode()» и «ICAMERA_SetAudioEncode()» определяет форматы кодирования, которые должны использоваться для кодирования данных изображения от ресурса камеры и аудиоданных. Например, форматами кодирования могут быть кодирование JPEG и MPEG4. Например, ресурс камеры может иметь подсоединенный микрофон для аудиозаписи.
5. Команда «ICAMERA_Recordsnapshot()» записывает и кодирует изображение в указанном месте назначения.
В другом варианте осуществления система 104 ICamera работает, чтобы обеспечить возможность того, что приложение будет управлять ресурсом камеры для установки рабочих параметров камеры, таких как параметр камеры, обеспечивающий изменение масштаба изображения, или уровни яркости и контрастности, посредством выполнения следующих команд программного интерфейса приложения (API).
1. При выполнении команды «ICAMERA_Setzoom()» устанавливается уровень масштаба изображения.
2. При выполнении команды «ICAMERA_Brightness()» устанавливается уровень яркости.
3. При выполнении команды «ICAMERA_SetContrast()» устанавливается уровень контраста.
Фиг.4 представляет один вариант осуществления конечного автомата 400, обеспечиваемый одним вариантом осуществления системы ICamera для обеспечения возможности того, что приложение будет управлять ресурсом камеры на портативном устройстве. После того как приложение приписывает значение объекту системы ICamera, конечный автомат 400 находится в состоянии 403 готовности (READY). Приложение может затем выдавать команды программного интерфейса приложения системы ICamera, чтобы переходить в другие состояния конечного автомата 400 и тем самым управлять работой ресурса камеры. Например, команда Preview() активирует состояние 404 предварительного просмотра. Команда Record_snapshot() активирует состояние 406 кадра, когда изображение кадра получается от ресурса камеры. Команда Record_movie() активирует состояние 408 фильма, когда поток видеоизображений получается от ресурса камеры. Конечный автомат 400 также обеспечивает возможность того, что дополнительные команды управляют работой каждого состояния. Например, команды Pause() и Resume() могут использоваться для управления работой состояния 404 предварительного просмотра.
Следовательно, использование конечного автомата 400, обеспечиваемого системой ICamera обеспечивает возможность того, что приложения управляют ресурсом камеры системы, чтобы получать неподвижные изображения и видеоклипы. Возможно также модифицировать конечный автомат 400 так, чтобы добавлять, удалять, изменять или переустанавливать состояния, и/или работу команд программного интерфейса приложения (API) для перехода в состояния без отклонения от объема правовой охраны вариантов осуществления. Таким образом, фактически любой тип конечного автомата может обеспечиваться системой ICamera для обеспечения возможности того, что приложения будут управлять ресурсом камеры устройства.
Фиг.5 представляет один вариант осуществления способа 500 для осуществления работы системы ICamera на устройстве, чтобы обеспечить возможность того, что приложение будет управлять ресурсом камеры на устройстве. Будет предполагаться, что устройство реализует среду BREW прогона программы и включает в себя один вариант осуществления системы ICamera, как описано здесь.
В блоке 502 создается приложение, использующее структурные компоненты системы ICamera так, что оно может управлять ресурсом камеры на устройстве посредством использования простого программного интерфейса приложения (API), обеспечиваемого системой ICamera. Например, разработчики приложений создают приложения, которые выполняются на портативных устройствах и реализуют различные функции камеры. Приложения включают в себя команды программного интерфейса приложения (API) системы ICamera, для подключения к системе ICamera и, посредством этого, управляют операциями камеры устройства в соответствии с конечным автоматом (т.е. конечным автоматом 400, показанным на Фиг.4).
В блоке 504 приложение с командами программного интерфейса приложения (API) системы ICamera загружается на портативное устройство для выполнения. Например, приложение может загружаться на устройство через сеть 108 беспроводной передачи данных. Приложение может выполняться немедленно или быть сохраняемым в запоминающем устройстве и выполняться в более позднее время.
В блоке 506 приложение выполняется и приписывает значение объекту системы ICamera. Например, приложение выполняется в среде прогона программы, действующей на устройстве. Во время выполнения приложение приписывает значения объекту системы ICamera так, что оно может управлять ресурсами камеры устройства.
В блоке 508 приложение регистрирует функцию уведомления, если это требуется для принятых асинхронных событий от системы ICamera. Например, выбранные события камеры могут переключать уведомление приложению.
В блоке 510 структура данных носителя создается и инициализируется на основе ресурса камеры и/или требуемых характеристик кодирования для носителя. Например, в одном варианте осуществления тип данных носителя определяется на основе расширения файла, содержания файла и кодирования файла.
В блоке 512 приложение выдает команды программного интерфейса приложения (API) системы ICamera системе ICamera, которая, в свою очередь, работает так, чтобы управлять ресурсом камеры на портативном устройстве. Например, приложение может выдавать команды для выполнения любой из функций, описанных в конечном автомате 400, для управления работой ресурса камеры. Таким образом, приложение может получать кадры, видеоизображения, или управлять параметрами камеры вне зависимости от типа ресурса камеры, доступного на устройстве. В результате система камеры работает так, чтобы устранить любые потенциальные проблемы, связанные с совместимостью между ресурсом камеры устройства и приложением.
В блоке 514 после того, как приложение завершило выполнение функций камеры, система ICamera больше не требуется и она выключается.
Следует отметить, что способ 500 представляет собой только один вариант осуществления и что возможно вносить изменения, дополнения, удаления и/или переустановки шагов способа без отступления от объема правовой охраны описанных вариантов осуществления.
Пример осуществления
Ниже приводится пример осуществления, чтобы проиллюстрировать, как в одном варианте осуществления приписывается значение объекту системы ICamera и ресурс камеры управляется посредством приложения, загружаемого в портативное устройство. Этот пример включает в себя ссылки на соответствующие блоки в способе 500, представленном на Фиг.5, и предполагается, что среда прогона программы, используемая портативным устройством, представляет собой среду BREW. Пример «САрр» представляет собой глобальную структуру апплета BREW.
static void App_CameraPreview(CApp * pme)
{
int nRet;
AEEMediaData md;
//создают структуру данных носителя (Фиг.5 - блок 510)
md.clsData = MMD_FILE_NAME;
md.pData = (void *)"album/snapshot.jpg";
md.dwSize = 0;
//Активируют систему ICamera и приводят в состояние готовности (Ready) (Фиг.5 - блок 508)
nRet = ISHELL_CreateInstance(pme->a.pIShell, AEECLSID_CAMERA, &pme->m_pICamera);
//Если успешно, то регистрируют App_CameraNotify() как регистрируемый обратный вызов для событий системы ICamera (Фиг.5 - блок 508)
if (SUCCESS != nRet)
DisplayErrorDlg(pme, IDS_ERR_CREATECAMERA);
else if (SUCCESS != ICAMERA_RegisterNotify(pme->m_pICamera, App_CameraNotify, pme))
DisplayErrorDlg(pme,IDS_ERR_REGISTERNOTIFY);
//Начинают предварительный просмотр (Фиг.5 - блок 512)
else if (SUCCESS != ICAMERA_Preview(pme->m_pIMedia)) DisplayErrorDlg(pme, IDS_ERR_PLAY);
Множественные ресурсы камеры
В одном варианте осуществления система ICamera работает для обеспечения возможности того, что приложение будет управлять множественными ресурсами камеры на единичном устройстве. Например, устройство может включать в себя камеру с низким разрешением для получения неподвижных изображений и камеру с высоким разрешением для получения видеоклипов. В этом варианте осуществления могут приписываться значения объекта для двух вариантов системы ICamera, чтобы обеспечить возможность того, что приложение будет управлять двумя ресурсами камеры. Например, один программный интерфейс приложения (API) системы ICamera используется приложением, чтобы управлять камерой низкого разрешения, а второй программный интерфейс приложения (API) системы ICamera используется приложением, чтобы управлять камерой высокого разрешения. Например, одна камера может использоваться для видеотелефонии, а вторая камера - как цифровой преобразователь(DSC)/записывающая видеокамера.
Для ясности описания чертежи, представляющие работу двух или более систем ICamera на устройстве, не приводятся. Однако, поскольку каждая система ICamera работает, как здесь описывается, такие чертежи были бы избыточными и ненужными. Во время работы приложение приписывает значения объекта на первом и втором вариантах системы ICamera, тем самым активируя первый и второй программные интерфейса приложения (API) системы ICamera. Приложение после этого выполняет команды, связанные с любым программным интерфейсом приложения (API) для управления соответствующим ресурсом камеры. Таким образом, варианты осуществления системы ICamera могут использоваться для обеспечения возможности того, что приложение будет управлять фактически любым числом ресурсов камеры на устройстве.
В одном или более вариантах осуществления была описана система камеры, включающая в себя способы и устройство, которая работает так, чтобы обеспечить возможность приложению управлять одним или более ресурсами камеры на портативном устройстве с ограниченными ресурсами, имеющем встроенный контроллер. Соответственно, в то время как один или более вариантов осуществления способов и устройства были проиллюстрированы и описаны здесь, значимым является то, что различные изменения могут вноситься в варианты осуществления без отступления от их духа или существенных характеристик. Следовательно, предполагается, что приведенные здесь варианты осуществления являются иллюстративными, но не ограничивающими объема правовой охраны изобретения, которое определено нижеследующей формулой изобретения.