KR102028141B1 - 동일한 센서로부터의 다양한 파라미터들을 이용하는 동시적 데이터 스트리밍 - Google Patents

동일한 센서로부터의 다양한 파라미터들을 이용하는 동시적 데이터 스트리밍 Download PDF

Info

Publication number
KR102028141B1
KR102028141B1 KR1020157003859A KR20157003859A KR102028141B1 KR 102028141 B1 KR102028141 B1 KR 102028141B1 KR 1020157003859 A KR1020157003859 A KR 1020157003859A KR 20157003859 A KR20157003859 A KR 20157003859A KR 102028141 B1 KR102028141 B1 KR 102028141B1
Authority
KR
South Korea
Prior art keywords
sensor
data stream
sensor data
processor
module
Prior art date
Application number
KR1020157003859A
Other languages
English (en)
Other versions
KR20150036601A (ko
Inventor
조셉 좀포
Original Assignee
퀄컴 인코포레이티드
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 퀄컴 인코포레이티드 filed Critical 퀄컴 인코포레이티드
Publication of KR20150036601A publication Critical patent/KR20150036601A/ko
Application granted granted Critical
Publication of KR102028141B1 publication Critical patent/KR102028141B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/038Control and interface arrangements therefor, e.g. drivers or device-embedded control circuitry
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/033Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor
    • G06F3/0346Pointing devices displaced or positioned by the user, e.g. mice, trackballs, pens or joysticks; Accessories therefor with detection of the device orientation or free movement in a 3D space, e.g. 3D mice, 6-DOF [six degrees of freedom] pointers using gyroscopes, accelerometers or tilt-sensors
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information
    • H04W4/024Guidance services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W88/00Devices specially adapted for wireless communication networks, e.g. terminals, base stations or access point devices
    • H04W88/02Terminal devices
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C25/00Manufacturing, calibrating, cleaning, or repairing instruments or devices referred to in the other groups of this subclass
    • G01C25/005Manufacturing, calibrating, cleaning, or repairing instruments or devices referred to in the other groups of this subclass initial alignment, calibration or starting-up of inertial devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2200/00Indexing scheme relating to G06F1/04 - G06F1/32
    • G06F2200/16Indexing scheme relating to G06F1/16 - G06F1/18
    • G06F2200/161Indexing scheme relating to constructional details of the monitor
    • G06F2200/1614Image rotation following screen orientation, e.g. switching from landscape to portrait mode
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2200/00Indexing scheme relating to G06F1/04 - G06F1/32
    • G06F2200/16Indexing scheme relating to G06F1/16 - G06F1/18
    • G06F2200/163Indexing scheme relating to constructional details of the computer
    • G06F2200/1637Sensing arrangement for detection of housing movement or orientation, e.g. for controlling scrolling or cursor movement on the display of an handheld computer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M1/00Substation equipment, e.g. for use by subscribers
    • H04M1/72Mobile telephones; Cordless telephones, i.e. devices for establishing wireless links to base stations without route selection
    • H04M1/724User interfaces specially adapted for cordless or mobile telephones
    • H04M1/72403User interfaces specially adapted for cordless or mobile telephones with means for local support of applications that increase the functionality
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04MTELEPHONIC COMMUNICATION
    • H04M2250/00Details of telephonic subscriber devices
    • H04M2250/12Details of telephonic subscriber devices including a sensor for measuring a physical value, e.g. temperature or motion

Abstract

실시예들은 센서 옵티마이저를 가지는 디바이스를 구현하며, 여기서 센서 모듈로부터의 소스 데이터 스트림은, 센서 옵티마이저에 의해, 소스 데이터 스트림과 서로 다른 데이터 스트림 파라미터들(예를 들어, 데이터 레이트, 교정, 스케일링, 기타 등등)을 가지는 다수의 센서 데이터 스트림들을 생성하는데 이용될 수 있다. 이러한 센서 옵티마이저는 모바일 디바이스 프로세서 상에서 실행되는 애플리케이션들로부터의 센서 데이터에 대한 요청들을 인터셉트하며, 서로 다른 데이터 스트림 파라미터들을 가지는 데이터 스트림들을 프로세서에 의해 실행되는 애플리케이션들에 동시에 제공할 수 있다.

Description

동일한 센서로부터의 다양한 파라미터들을 이용하는 동시적 데이터 스트리밍{CONCURRENT DATA STREAMING USING VARIOUS PARAMETERS FROM THE SAME SENSOR}
[0001] 본 개시의 양상들은 센서들에 관한 것이다. 특히, 동일한 센서로부터의 서로 다른 출력 데이터 스트림들에 대한 서로 다른 데이터 스트림 파라미터들을 가지는 다수의 출력 데이터 스트림들을 센서들이 가지게 하기 위한 디바이스들, 시스템들 및 방법들. 스마트 폰과 같은 모바일 디바이스가 통합되는 특정 실시예들 ― 여기서 다수의 애플리케이션들이 동일한 센서로부터의 서로 다른 데이터 스트림 파라미터들을 가지는 스마트 폰 요청 정보 상에서 동작함 ― 이 제공된다.
[0002] 현재 모바일 폰들에 빈번하게, 센서들이 통합된다. 센서들의 예들은 카메라들과 같은 광(light) 센서들, 또는 가속도계들과 같은 움직임 센서들일 수 있다. 모바일 디바이스들 내에서 현재 구조화된 이러한 센서들은 단일 센서 데이터 스트림을 출력할 수 있다. 그 다음, 센서 데이터 스트림에서의 데이터의 추가 조작이 모바일 디바이스의 별개의 기능 또는 애플리케이션의 일부분으로서 수행될 것이다. 단일 센서 데이터 스트림은 모바일 디바이스의 프로세서에 의해 카피 및 변경될 수 있지만, 센서 모듈은 스스로 단일 데이터 스트림을 출력한다.
[0003] 스마트 폰들과 같은 모바일 디바이스들의 능력이 증가함에 따라, 더 크고 더 많은 다이버스 타입들의 애플리케이션들이 이러한 모바일 디바이스들 상에서 동작되고, 이에 따라, 모바일 디바이스들에 통합된 센서들에 대한 센서 데이터를 제공하기 위한 새로운 그리고 유용한 기법들 및 구조들에 대한 증가하는 필요성이 존재한다.
[0004] 본원에 설명된 다양한 실시예들은 동일한 센서로부터의 서로 다른 출력 데이터 스트림들에 대한 서로 다른 데이터 스트림 파라미터들을 가지는 다수의 출력 데이터 스트림들을 센서들이 가지게 하기 위한 디바이스들, 시스템들 및 방법들을 포함한다. 예를 들어, 하나의 잠재적 실시예는, 센서 옵티마이저(sensor optimizer)에서, 프로세서로부터 제 1 센서 엘리먼트로부터의 센서 데이터에 대한 제 1 요청을 수신하는 단계 ― 상기 센서 데이터에 대한 제 1 요청은 데이터 스트림 파라미터들의 제 1 세트를 식별함 ― ; 상기 센서 옵티마이저에서, 상기 제 1 센서 엘리먼트로부터의 센서 데이터에 대한 제 2 요청을 수신하는 단계 ― 상기 제 2 요청은 데이터 스트림 파라미터들의 제 1 세트와 서로 다른 데이터 스트림 파라미터들의 제 2 세트를 식별함 ― ; 상기 센서 옵티마이저에 의해, 상기 데이터 스트림 파라미터들의 제 1 세트 및 상기 데이터 스트림 파라미터들의 제 2 세트에 기초한 파라미터들의 소스 세트를 이용하여, 상기 제 1 센서 엘리먼트로부터의 소스 데이터 스트림을 요청하는 단계; 상기 센서 옵티마이저에 의해, 소스 데이터 스트림으로부터 제 1 센서 데이터 스트림을 생성하는 단계 ― 상기 제 1 센서 데이터 스트림이 데이터 스트림 파라미터들의 제 1 세트에 따름 ― ; 상기 센서 옵티마이저에 의해, 상기 소스 데이터 스트림으로부터 제 2 센서 데이터 스트림을 생성하는 단계 ― 상기 제 2 센서 데이터 스트림은 상기 데이터 스트림 파라미터들의 제 2 세트에 따름 ― ; 및 상기 제 1 센서 데이터 스트림 및 상기 제 2 센서 데이터 스트림을 상기 프로세서에 동시에 전달하는 단계를 포함하는 방법이다.
[0005] 이러한 실시예에 따른 또 다른 잠재적 방법이 기능할 수 있으며, 여기서 센서 데이터에 대한 제 1 요청은 교정된 데이터에 대한 요청을 포함하고, 상기 제 1 센서 데이터 스트림은 상기 데이터 스트림 파라미터들의 제 1 세트에 따르며, 상기 교정된 데이터를 포함한다.
[0006] 이러한 실시예에 따른 또 다른 잠재적 방법이 추가적으로 기능할 수 있으며, 여기서, 상기 센서 데이터에 대한 제 2 요청은 교정되지 않은 데이터에 대한 요청을 포함하고, 상기 제 2 센서 데이터 스트림은 상기 데이터 스트림 파라미터들의 제 2 세트에 따르며, 상기 교정되지 않은 데이터를 포함한다. 이러한 실시예에 따른 또 다른 잠재적 방법이 추가적으로, 기능할 수 있으며, 여기서, 상기 센서 데이터에 대한 제 1 요청은 상기 프로세서 상에서 동작하는 제 1 애플리케이션으로부터 수신되고, 상기 센서 데이터에 대한 제 2 요청은 상기 프로세서 상에서 동작하는 상기 제 1 애플리케이션으로부터 수신된다.
[0007] 이러한 실시예에 따른 또 다른 잠재적 방법이 추가적으로 기능할 수 있으며, 여기서, 상기 센서 데이터에 대한 제 1 요청은 상기 프로세서 상에서 동작하는 제 1 애플리케이션으로부터 수신되고, 상기 센서 데이터에 대한 제 2 요청은 상기 프로세서 상에서 동작하는 제 2 애플리케이션으로부터 수신된다.
[0008] 이러한 실시예에 따른 또 다른 잠재적 방법이 추가적으로 기능할 수 있으며, 여기서, 상기 제 1 애플리케이션은 카메라 애플리케이션을 포함하고, 상기 제 2 애플리케이션은 네비게이션 애플리케이션을 포함한다. 이러한 실시예에 따른 또 다른 잠재적 방법이 추가적으로 기능할 수 있으며, 여기서, 상기 제 1 센서 엘리먼트는 자이로스코프를 포함한다. 이러한 실시예에 따른 또 다른 잠재적 방법이 추가적으로 기능할 수 있으며, 여기서, 상기 제 1 센서 엘리먼트는 가속도계를 포함한다.
[0009] 이러한 실시예에 따른 또 다른 잠재적 방법은 추가적으로 기능할 수 있으며, 여기서, 상기 제 1 애플리케이션은 사용자 인터페이스 방향성 제어 애플리케이션을 포함하고, 상기 제 2 애플리케이션은 네비게이션 애플리케이션을 포함한다. 이러한 실시예에 따른 또 다른 잠재적 방법은 추가적으로 기능할 수 있으며, 여기서, 센서 데이터에 대한 제 1 요청은 상기 프로세서 상에서 동작하는 제 1 애플리케이션으로부터 수신되고, 상기 센서 데이터에 대한 제 2 요청은 상기 프로세서를 포함하는 모바일 디바이스 내의 제 2 프로세서 상에서 동작하는 제 2 애플리케이션으로부터 수신된다.
[0010] 이러한 실시예에 따른 또 다른 잠재적 방법은 추가적으로 기능할 수 있으며, 여기서, 상기 제 1 센서 데이터 스트림 및 상기 제 2 센서 데이터 스트림을 생성하는 단계는, 상기 센서 옵티마이저의 신호 멀티플렉싱 모듈에서 상기 제 1 센서 엘리먼트로부터 상기 소스 데이터 스트림을 수신하는 단계; 상기 신호 멀티플렉싱 모듈로부터 상기 센서 옵티마이저의 제 1 출력 레지스터로 상기 제 1 센서 데이터 스트림을 출력하는 단계; 및 상기 신호 멀티플렉싱 모듈로부터 상기 센서 옵티마이저의 제 2 출력 레지스터로 상기 제 2 센서 데이터 스트림을 출력하는 단계를 포함한다.
[0011] 이러한 실시예에 따른 또 다른 잠재적 방법이 추가적으로 기능할 수 있으며, 여기서, 상기 제 1 센서 데이터 스트림을 상기 제 1 애플리케이션에 그리고 상기 제 2 센서 데이터 스트림을 상기 제 2 애플리케이션에 동시에 전달하는 단계는, 제 1 시간에서 시작하고 제 2 시간에서 종료하는 센서 어드레싱 모듈을 통해 상기 제 1 센서 데이터 스트림을 상기 제 1 출력 레지스터로부터 상기 프로세서의 상기 제 1 애플리케이션으로 전달하는 단계; 및 제 3 시간에서 시작하고 제 4 시간에서 종료하는 센서 어드레싱 모듈을 통해 상기 제 2 센서 데이터 스트림을 상기 제 2 출력 레지스터로부터 상기 프로세서의 상기 제 2 애플리케이션으로 전달하는 단계를 포함하고, 상기 제 3 시간은 상기 제 1 시간보다 더 나중이고, 상기 제 3 시간은 상기 제 2 시간보다 더 이르다.
[0012] 또 다른 잠재적 실시예는 제 1 센서 엘리먼트를 포함하는 제 1 센서 모듈; 상기 제 1 센서 모듈에 커플링된 센서 옵티마이저; 및 상기 센서 옵티마이저를 통해 상기 제 1 센서 모듈에 커플링된 프로세서를 포함하는 디바이스일 수 있고, 상기 센서 옵티마이저는 상기 제 1 센서 모듈로부터 소스 센서 데이터 스트림을 수신하고, 상기 소스 센서 데이터 스트림으로부터 유도된 적어도 2개의 센서 데이터 스트림들을 상기 프로세서로 동시에 출력한다.
[0013] 이러한 실시예에 따른 또 다른 잠재적 디바이스는 추가적으로 기능할 수 있으며, 여기서, 상기 센서 옵티마이저는, 신호 멀티플렉싱 모듈에 의해 상기 제 1 센서 엘리먼트에 커플링된 복수의 디지털 필터들; 복수의 출력 레지스터들 ― 각각의 출력 레지스터는 상기 복수의 디지털 필터들 중 하나의 대응하는 디지털 필터에 커플링됨 ― ; 및 상기 복수의 출력 레지스터들에 커플링된 센서 어드레싱 모듈을 포함한다.
[0014] 이러한 실시예에 따른 또 다른 잠재적 디바이스는 추가적으로 기능할 수 있으며, 여기서, 상기 센서 옵티마이저는 제 1 교정 모듈을 더 포함하고, 상기 복수의 디지털 필터들은 제 1 디지털 필터 및 제 2 디지털 필터를 포함하고, 상기 프로세서는 복수의 애플리케이션들을 실행하고, 상기 복수의 애플리케이션들의 각각의 애플리케이션은 상기 복수의 애플리케이션들의 각각의 애플리케이션에 의한 센서 데이터에 대한 요청의 일부분으로서 상기 센서 어드레싱 모듈로 통신하기 위해 데이터 스트림 파라미터들의 세트를 상기 프로세서에 제공하고, 상기 복수의 출력 레지스터들은 상기 제 1 디지털 필터에 커플링된 제 1 출력 레지스터 및 상기 제 2 디지털 필터에 커플링된 제 2 출력 레지스터를 포함하고, 상기 제 1 디지털 필터는 상기 제 1 교정 모듈을 통해 상기 제 1 출력 레지스터에 커플링된다.
[0015] 또 다른 잠재적 실시예는 센서 모듈로부터의 소스 센서 데이터 스트림을 인터셉트하기 위한 수단; 상기 소스 센서 데이터 스트림으로부터 유도된 적어도 2개의 서로 다른 센서 데이터 스트림들을 생성하기 위한 수단; 및 상기 적어도 2개의 서로 다른 센서 데이터 스트림들을 프로세서로 동시에 출력하기 위한 수단을 포함하는 디바이스일 수 있다.
[0016] 이러한 실시예에 따른 또 다른 잠재적 디바이스는 추가적으로, 상기 프로세서로부터 상기 센서 모듈로의 센서 데이터 스트림들에 대한 요청들을 인터셉트하기 위한 수단; 및 인터셉트된 센서 데이터 스트림들에 대한 요청들로부터의 요청된 센서 스트림 파라미터들에 매칭하도록 각각의 센서 데이터 스트림에 대한 센서 스트림 파라미터들의 세트를 조정하기 위한 수단을 포함할 수 있다.
[0017] 이러한 실시예에 따른 또 다른 잠재적 디바이스는 추가적으로, 제 2 센서 모듈로부터의 제 2 소스 데이터 스트림을 인터셉트하기 위한 수단; 상기 제 2 소스 센서 데이터 스트림으로부터 유도된 제 2의 적어도 2개의 서로 다른 센서 데이터 스트림들을 생성하기 위한 수단; 및 상기 제 2의 적어도 2개의 서로 다른 센서 데이터 스트림들을 프로세서로 동시에 출력하기 위한 수단을 포함할 수 있다.
[0018] 또 다른 실시예는 컴퓨터 판독가능한 명령들을 포함하는 비-일시적 컴퓨터 판독가능한 저장 매체일 수 있으며, 상기 컴퓨터 판독가능한 명령들은, 상기 저장 매체에 커플링된 프로세서에 의해 실행될 때, 디바이스로 하여금, 제 1 센서 엘리먼트로부터의 센서 데이터에 대한 제 1 요청을 상기 프로세서로부터 센서 옵티마이저로 전달하는 단계 ― 상기 센서 데이터에 대한 제 1 요청은 데이터 스트림 파라미터들의 제 1 세트를 식별함 ― ; 상기 제 1 센서 엘리먼트로부터의 센서 데이터에 대한 제 2 요청을 상기 프로세서로부터 상기 센서 옵티마이저로 전달하는 단계 ― 상기 제 2 요청은 상기 데이터 스트림 파라미터들의 제 1 세트와 서로 다른 데이터 스트림 파라미터들의 제 2 세트를 식별함 ― ; 상기 센서 옵티마이저에 의해, 상기 데이터 스트림 파라미터들의 제 1 세트 및 상기 데이터 스트림 파라미터들의 제 2 세트에 기초한 파라미터들의 소스 세트를 이용하여, 상기 제 1 센서 엘리먼트로부터의 소스 데이터 스트림을 요청하는 단계; 상기 센서 옵티마이저에 의해, 상기 소스 데이터 스트림으로부터 제 1 센서 데이터 스트림을 생성하는 단계 ― 상기 제 1 센서 데이터 스트림이 상기 데이터 스트림 파라미터들의 제 1 세트에 따름 ― ; 상기 센서 옵티마이저에 의해, 상기 소스 데이터 스트림으로부터 제 2 센서 데이터 스트림을 생성하는 단계 ― 상기 제 2 센서 데이터 스트림은 상기 데이터 스트림 파라미터들의 제 2 세트에 따름 ― ; 및 상기 프로세서에서, 상기 제 1 센서 데이터 스트림 및 상기 제 2 센서 데이터 스트림을 동시에 수신하는 단계를 포함하는 방법을 수행하게 한다.
[0019] 이러한 비-일시적 컴퓨터 판독가능한 저장 매체의 추가 실시예들이 기능할 수 있으며, 여기서, 상기 방법은, 상기 프로세서에 의해, 상기 센서 데이터에 대한 제 1 요청을 개시하는 제 1 애플리케이션을 실행하는 단계; 및 상기 프로세서에 의해, 상기 제 1 애플리케이션의 실행과 동시에 제 2 애플리케이션을 실행하는 단계를 더 포함하고, 상기 제 2 애플리케이션은 상기 센서 데이터에 대한 제 2 요청을 개시한다.
[0020] 다양한 실시예들의 특성 및 이점들의 추가적 이해가 다음의 도면들에 대한 참조에 의해 구현될 수 있다. 첨부된 도면들에서, 유사한 컴포넌트들 또는 특징들은 동일한 참조 라벨을 가질 수 있다. 추가로, 동일한 타입의 다양한 컴포넌트들은 기준 라벨 다음에 대시기호 및 유사한 컴포넌트들 사이를 구별하는 제 2 라벨에 의해 구별될 수 있다. 오직 제 1 참조 라벨만이 본 명세서에서 이용된다면, 본 설명은 제 2 참조 라벨과 관계없이 동일한 제 1 참조 라벨을 가지는 유사한 컴포넌트들 중 임의의 하나의 컴포넌트에 적용가능하다.
[0021] 도 1은 하나의 잠재적 실시예에 따른 디바이스의 도면을 도시한다.
[0022] 도 2는 일부 실시예들에 따른 방법을 예시한다.
[0023] 도 3은 하나의 잠재적 실시예에 따른 디바이스의 도면을 도시한다.
[0024] 도 4는 하나의 잠재적 실시예에 따른 디바이스의 도면을 도시한다.
[0025] 도 5는 하나의 잠재적 실시예에 따른 모바일 디바이스의 도면을 도시한다.
[0026] 도 6은 일부 실시예들에 따른 방법을 예시한다.
[0027] 도 7은 본 개시의 하나 또는 그 초과의 양상들이 구현될 수 있는 예시적 컴퓨팅 시스템을 예시한다.
[0028] 본 혁신들은 센서들 및 통합 센서들을 가지는 전자 디바이스들에 관한 것이다. 특히, 센서 엘리먼트를 프로세서와 통합시킬 수 있는 디바이스들이 설명된다. 프로세서는 다수의 애플리케이션들을 동시에 동작시킬 수 있으며, 각각의 애플리케이션은 센서 엘리먼트로부터의 정보를 요청한다. 다양한 실시예들은 서로 다른 애플리케이션들에 맞춤화된(tailored) 동시적 및 별개의 데이터 스트림들을 제공하도록 기능할 수 있다.
[0029] 예를 들어, 하나의 잠재적 실시예에서, 네비게이션 애플리케이션 및 카메라 애플리케이션을 가지는 스마트 폰은 애플리케이션들을 동시에 동작시킬 수 있다. 네비게이션 애플리케이션은, 디바이스의 움직임을 측정하고 디바이스가 움직임에 따라 방향들을 업데이트함으로써, 방향들을 제공하는 것을 보조하기 위해 자이로스코프 데이터를 이용할 수 있다. 카메라 애플리케이션은 이미지 안정화 함수에 대한 자이로스코프 데이터를 이용할 수 있다. 이러한 2개의 서로 다른 이용들은 데이터에 대한 서로 다른 요건들을 가질 수 있다. 카메라 애플리케이션의 이미지 안정화 함수는 교정이 연속적으로 실시간으로 결정 및 정정되는 경우 더 효과적으로 작동할 수 있다. 한편, 네비게이션 애플리케이션은 실시간 교정 및 정정이 네비게이션 성능을 저하시킬 수 있는 불연속성들 또는 데이터로의 건너뛰기(jumps into)를 초래할 수 있기 때문에, 교정되지 않은 데이터를 요구할 수 있다. 추가적으로, 애플리케이션들은 서로 다른 데이터 레이트들 또는 다른 파라미터들에 대한 서로 다른 세팅들을 요구할 수 있다. 따라서, 이 두 디바이스들에 대한 데이터를 제공하기 위한 단일 데이터 스트림의 이용은 애플리케이션들 중 하나 또는 둘 모두의 성능 저하 및/또는 비효율성들을 야기할 수 있다. 다양한 실시예들에 따라, 제 1 데이터 스트림은 포토그래피 애플리케이션에서의 이미지 안정화에 대한 실시간 바이어스 정정을 생성하는 교정된 데이터로 생성될 수 있고, 제 2 데이터 스트림은 네비게이션 애플리케이션에 대한 교정되지 않은 데이터로 생성될 수 있으며, 각각의 데이터 스트림은, 서로 다를 수 있거나 서로 다르지 않을 수 있는 추가 파라미터들을 가진다.
[0030] 또 다른 잠재적 예는 사용자 인터페이스 방향성 제어 애플리케이션 및 네비게이션 애플리케이션을 가지는 센서 엘리먼트로서 가속도계를 포함하는 디바이스, 이를테면, 폰 또는 태블릿 컴퓨터이다. 사용자 인터페이스 방향성 제어 애플리케이션은 사용자가 디바이스를 회전시킴에 따라 정확한 초상화-풍경화(portrait-landscape) 방향에서 데이터를 디바이스 스크린으로 제시하기 위해 더 낮은 주파수에서 교정된 데이터를 요청할 수 있다. 네비게이션 애플리케이션은 사용자로의 방향들을 제시하는 것을 보조하기 위해 더 높은 주파수에서 교정되지 않은 데이터를 요청할 수 있다. 이 애플리케이션들에 대한 동시적 교정된 그리고 교정되지 않은 데이터 스트림들을 생성할 수 있는 시스템은 향상된 애플리케이션 성능을 제공할 수 있다.
[0031] 본원에 설명된 바와 같이, "센서 엘리먼트"는 물리적 특성을 측정하고 그 특성을 설명하는 신호를 출력하는데 이용되는 디바이스의 임의의 컴포넌트를 지칭한다. 센서 엘리먼트 중 하나의 예는 카메라 및 광을 전자 신호로 변환하는 다른 광 검출 엘리먼트들을 포함한다. 또 다른 예는 움직임을 측정하는 엘리먼트들 및 가속도계들을 포함한다. 추가 예는 센싱 엘리먼트로서 기능하는 수신기의 위치를 식별하는 전자 신호를 출력하기 위해 위성 신호들을 수신하는 글로벌 포지셔닝 수신기이다. 센서 엘리먼트는 임의의 이러한 트랜시버 또는 측정 엘리먼트일 수 있다.
[0032] 본원에 설명된 바와 같이, "모듈"은 유닛으로서의 기능들을 수행하기 위해 디바이스의 일부분으로서 통합되는 컴포넌트들의 세트를 지칭한다. 모듈들은 다양한 기능들을 수행하기 위한 회로, 소프트웨어, 펌웨어 또는 이들의 임의의 결합을 포함할 수 있다. 예를 들어, 무선 모듈은 안테나, 및 안테나를 이용하여 신호들을 전송 및 수신할 시의 기본적 기능을 위한 임의의 펌웨어 및 소프트웨어를 포함할 수 있다.
[0033] 본원에 설명된 바와 같이, "센서 모듈"은 센서 엘리먼트에 의해 측정된 특성을 설명하는 신호를 출력하는 센서 엘리먼트를 포함하는 통합 컴포넌트들의 세트를 지칭한다. 센서 엘리먼트와 통합된 이러한 컴포넌트들은 프로세싱 엘리먼트에 의해 이용가능한 형태로 센서 엘리먼트로부터의 신호를 포맷 및 버퍼링하는 액티브 컴포넌트들을 포함할 수 있다. 이러한 컴포넌트들의 예들은, 센서 모듈을 포함하는 디바이스 내의 애플리케이션들로서 구현되는 특정 알고리즘들을 수행하기 위해, 센서 엘리먼트로부터 출력된 아날로그 신호를 범용 컴퓨팅 프로세서에 의해 이용가능한 디지털 신호로 변환할 수 있는 아날로그-디지털 컨버터들을 포함한다. 다양한 센서 모듈들에서, 센서 엘리먼트들은, 센싱 엘리먼트에 직접적으로 커플링된 단일 집적 회로 다이에 제조 후 부착된 칩 구조들 상에 통합 시스템을 생성하기 위해 회로 컴포넌트들과 통합될 수 있다. 다른 센서 모듈들에서, 인쇄 회로 기판은, 인쇄 회로 기판에서 전도성 라인(conductive line)들을 이용하여 컴포넌트들에 직접적으로 커플링된 센싱 엘리먼트를 가지는 다양한 컴포넌트들을 포함할 수 있다.
[0034] 본원에 설명된 바와 같이, "데이터 스트림"은 시간이 지남에 따른 정보 출력을 지칭한다. 예를 들어, 특정 센서 엘리먼트들은 센서 엘리먼트의 환경의 물리적 특성의 측정치들이 측정될 때 아날로그 신호를 끊임없이 출력하도록 기능할 수 있다. 센서 엘리먼트로부터의 끊임없는 출력의 일부분으로서 출력되는 정보는 센서 데이터 스트림일 수 있다. 다양한 대안적 실시예들에서, 데이터 스트림은 주기적이거나, 랜덤하거나, 센서 모듈에 관련된 정보에 대한 특정 요청들과 연관될 수 있다.
[0035] 본원에 설명된 바와 같이, "동시에 출력된 센서 스트림들"은, 각각의 센서 스트림의 적어도 일부분으로부터의 데이터가 또 다른 센서 스트림의 적어도 일부분으로부터의 데이터가 출력되는 것과 동시에 출력되는 다수의 센서 스트림들을 지칭한다. 각각의 센서 스트림의 출력은 동시에 시작하거나 종료될 필요가 없다. 이것은 단지, 제 2 센서 스트림으로부터의 데이터가 센서 모듈로부터 출력되는 것과 동시에 제 1 센서 데이터 스트림으로부터의 데이터가 센서 모듈로부터 출력되는 것을 나타낸다.
[0036] 도 1을 참조하면, 디바이스(100)는 디바이스의 하나의 잠재적 비-제한적 예를 예시한다. 디바이스(100)는, 센서 엘리먼트(110) 및 디지털 데이터 출력(120)을 포함할 수 있는 센서(102)를 포함한다. 디바이스(100)는 또한, 센서 옵티마이저(103) 및 애플리케이션들(150a-d)을 포함한다. 디바이스(100)는 추가적으로, 센서 옵티마이저(103)를 각각의 애플리케이션들(150a-d)에 통신적으로 커플링시키는 통신 링크들(132a-d)을 포함할 수 있다. 4개의 애플리케이션들이 도 1에 도시되지만, 2개 또는 그 초과의 애플리케이션들 중 임의의 수의 애플리케이션들이 다양한 실시예들에 따라 기능할 수 있다.
[0037] 센서(102)는 디바이스(100)와 통합된 임의의 센싱 디바이스일 수 있으며, 정보를 수신하기 위한 센서 엘리먼트(110)를 포함한다. 예를 들어, 센서(102)는 자이로스코프, 가속도계, 자력계, CCD(charge coupled device), 광전지(photovoltaic cell), 임의의 광 센싱 디바이스, 온도 센싱 디바이스, 압력 센싱 디바이스, 또는 임의의 다른 잠재적 센싱 디바이스 또는 엘리먼트일 수 있다.
[0038] 디지털 데이터 출력(120)은 아날로그 데이터를 생성하는 센서 엘리먼트들에 대한 아날로그-디지털 컨버터를 포함할 수 있으며, 디지털 필터들, 디바이스 교정 세팅들, 바이어스들 및 스케일 팩터들을 더 포함할 수 있다. 다양한 실시예들에서, 센서 엘리먼트(110)는, 이후에 디바이스(100)로 추가로 통합될 수 있는 집적 회로 또는 패키징된 전자 디바이스의 일부분으로서, 디지털 데이터 출력(120)과 통합될 수 있다.
[0039] 센서 옵티마이저(103)는, 센서 엘리먼트(110)로부터 디지털 데이터 출력(120)을 통해 데이터 스트림을 수신하고, 센서 엘리먼트(110)로부터의 단일 데이터 스트림을 통신 링크들(132)을 통해 애플리케이션들(150)에 전달될 수 있는 다수의 데이터 스트림들로 변환하기 위한 하드웨어 모듈 또는 소프트웨어 모듈을 포함할 수 있다. 유사하게, 이 두 애플리케이션들(150) 및 통신 링크들(132)은 하드웨어 모듈들, 펌웨어 모듈, 소프트웨어 모듈들로서 또는 이러한 모듈들의 임의의 결합으로서 구현될 수 있다. 예를 들어, 하나의 잠재적 실시예에서, 디바이스(100)는 도 3에 설명된 프로세서(710)와 같은 단일 프로세서를 포함할 수 있다. 단일 프로세서는 센서 옵티마이저(103), 애플리케이션들(150a, 150b, 150c 및 150d)을 구현할 수 있으며, 통신 링크들(132a, 132b, 132c 및 132d)을 추가로 구현할 수 있다. 대안적 실시예들에서, 센서 옵티마이저(103)는 하나 또는 그 초과의 프로세서들에 커플링된 집적 회로 또는 디바이스, 또는 애플리케이션들(150)을 구현하는 하드웨어 모듈들을 포함할 수 있다. 통신 링크들(132)은 디바이스(100) 내의 하나 또는 그 초과의 전도성 라인들일 수 있다. 디바이스(100) 내의 임의의 모듈은, 모듈을 구현하기 위한 하드웨어 엘리먼트들, 펌웨어 엘리먼트들, 소프트웨어 엘리먼트들 또는 엘리먼트들의 임의의 결합을 이용하여 구현될 수 있다.
[0040] 도 2는 실시예를 구현하는 방법을 설명한다. 단계(S202)에서, 제 1 애플리케이션(190a)은 센서 엘리먼트(110)로부터의 이용가능한 데이터 스트림들에 관한 정보를 요청할 수 있다. 이러한 질의(query)는 제 1 애플리케이션의 선호도들에 매칭하도록 조정되는 파라미터들을 가질 수 있는 이용되지 않은 데이터 스트림들을 식별하려고 시도할 수 있거나, 식별된 파라미터들에 따르는 데이터 스트림이 이용가능한지 여부를 식별하기 위한 요청을 선호되는 파라미터들의 세트에 제공할 수 있다. 단계(S204)에서, 제 1 애플리케이션(190a)은 센서 어드레싱 모듈(160)로부터 데이터 스트림의 이용가능성을 식별하는 통신을 수신할 수 있고, 애플리케이션(190a)은 파라미터들과 함께 데이터에 대한 요청을 전달할 수 있다.
[0041] 단계(S206)에서, 디바이스(100) 내에서 동작하는 제 2 애플리케이션(190b)은 센서 데이터를 요청하며, 파라미터들의 세트를 식별할 수 있다. 애플리케이션(190a)과는 달리, 제 2 애플리케이션(190b)은 데이터의 다수의 스트림들이 존재할 수 있음을 확인응답하기 위한 어떠한 통합 시스템도 가지지 않을 수 있다. 대신에, 센서 어드레싱 모듈(160)과 같은 또 다른 모듈은 요청을 수신하고, 적절한 데이터 스트림의 이용가능성을 식별하며, 애플리케이션(190b)으로부터의 요청에 기초하여 대응하는 디지털 필터(130) 및 교정 모듈(140) 세팅들을 세팅하고, 애플리케이션(190b)에 투명한 방식으로 데이터 스트림을 애플리케이션(190b)에 전달한다. S204 및 S206에서의 이 요청들은 동시에 발생할 수 있거나, 하나의 데이터 스트림이 센서 데이터에 대한 요청에 응답하여 또 다른 데이터 스트림이 생성되는 시간에 존재할 수 있도록, 별개의 시간들에서 초기에 발생할 수 있다. 다양한 대안적 실시예들에서, 애플리케이션들의 임의의 결합 또는 전부는 위에서 설명된 애플리케이션(190a)의 방식과 유사한 방식으로 기능할 수 있다. 다른 대안적 실시예들에서, 애플리케이션들의 임의의 결합 또는 전부는 애플리케이션(190b)의 방식과 유사한 방식으로 기능할 수 있다. 추가적으로, 여전히 추가 실시예들에서, 많은 2개 또는 그 초과의 애플리케이션들은 동시적 데이터 스트림들을 이용하여 디바이스 내에서 기능할 수 있다.
[0042] 단계(S210)에서, 센서 어드레싱 모듈(160)은 임의의 데이터 요청들을 수신하고, 각각의 요청에 응답하는데 적절한 센서 데이터를 식별할 수 있다. 이러한 식별은 애플리케이션에 의해 식별된 출력 레지스터를 단순히 식별할 수 있거나, 이용가능한 데이터 스트림들과 제공된 파라미터들을 매칭시킬 수 있다. 단계(S212)에서, (예를 들어, 바이어스들 및 스케일 팩터들에 관한) 교정 선택들, 데이터 레이트들, 주파수 필터들 또는 임의의 다른 세팅들에 대한 임의의 필요한 업데이트들은 데이터 요청에 기초하여 특정 데이터 스트림에 대해 업데이트될 수 있다. 단계(S214)에서, 적절한 데이터 스트림들이 요청된 파라미터들에 기초하여 세팅된 이후, 센서 어드레싱 모듈(160)은 데이터 스트림을 대응하는 적절한 애플리케이션으로 동시에 라우팅할 수 있다. 예를 들어, 디지털 필터(130d) 및 교정 모듈(140d)이 애플리케이션(190a)에 의해 제공된 파라미터들을 이용하여 세팅되는 경우 그리고 디지털 필터(130a) 및 교정 모듈(140a)이 애플리케이션(190b)에 의해 제공된 파라미터들에 매칭하도록 세팅되는 경우, 출력 레지스터(150d)로부터의 데이터는 출력 레지스터(150a)로부터의 데이터가 애플리케이션(190b)에 전송되는 것과 동시에 애플리케이션(190a)에 전송될 수 있다.
[0043] 이러한 시스템은 연속적으로 전송되는 제 1 데이터 스트림으로 동작할 수 있는 반면, 제 2 데이터 스트림은 다양한 애플리케이션 요청들에 응답하여 반복적으로 시작 및 중단한다. 이러한 시스템은, 동시에 전송되는 임의의 수의 추가 데이터 스트림들로 동작하고, 추가 데이터 스트림들은 다른 데이터 스트림들이 동작하는 동안 시작 및 종료하며, 각각의 데이터 스트림은 파라미터들의 서로 다른 세트를 가진다. 추가로, 특정 실시예들에서, 특정 애플리케이션들에는 동일한 파라미터들을 가지는 서로 다른 데이터 스트림들 또는 동일한 데이터 스트림이 전송될 수 있는 반면, 다수의 추가 애플리케이션들은 서로 다른 파라미터들을 가지는 동시에 송신된 데이터 스트림을 수신한다.
[0044] 다양한 대안적 실시예들에서, 데이터 레이트와 같은 파라미터들의 결합, 교정 파라미터들의 포함, 및 동적 값 범위들, 데이터 레이트, 데이터 교정, 데이터 출력 범위, 데이터 출력 분해도, 샘플링 레이트, 측정 레이지, 필터링 주파수 또는 임의의 다른 이러한 파라미터의 조정이 이용될 수 있다. 이러한 파라미터들은 디지털 필터(230b), 교정 모듈(240) 또는 임의의 다른 추가 모듈에 의해 세팅될 수 있다.
[0045] 이제, 실시예의 추가적인 잠재적 예가 설명될 수 있다. 하나의 잠재적 실시예에서, 센서 어드레싱 모듈(160)은 출력 레지스터(150a)와 연관된 데이터 스트림이 20 Hz의 샘플링 레이트를 가지는 교정된 데이터를 포함하고, 출력 레지스터(150b)가 100 Hz의 샘플링 레이트를 가지는 교정되지 않은 데이터를 포함한다는 정보를 포함할 수 있다. 애플리케이션(190c)이 20 Hz의 샘플링 레이트로 교정된 데이터를 요청하면, 출력 레지스터(150a)로부터의 정보는 애플리케이션(190c)으로 단순히 전송된다. 애플리케이션(190d)이 200 Hz로 교정되지 않은 데이터를 요청하면, 디지털 필터(130b)는 샘플링 레이트를 조정하도록 변경될 수 있고, 출력 레지스터(150b)에서의 데이터가 애플리케이션(190d)으로부터의 파라미터 요청에 매칭하도록 조정되면, 데이터는 애플리케이션(190d)에 전송될 수 있다.
[0046] 도 2에 의해 설명된 바와 같이, 애플리케이션 요청 센서 데이터에 대한 파라미터들을 협상하는 하나의 잠재적 구현은 이용가능한 스트림들에 대해 센서 모듈에 질의(query)하는 것이다. 다양한 대안적 실시예들에서, 애플리케이션은 특정 파라미터들을 가지는 데이터 스트림에 대한 요청을 전송할 수 있다. 센서 어드레싱 모듈은 이러한 요청을 수신하며, 요청된 파라미터들과 동일한 현재 파라미터들을 가지는 스트림이 존재하는지 여부를 식별할 수 있다. 요청된 파라미터들과 동일한 현재 파라미터들을 가지는 데이터 스트림이 존재한다면, 센서 어드레싱 모듈은 데이터 스트림을 애플리케이션에 전달함으로써 또는 데이터 스트림을 식별함으로써 응답할 수 있다. 그 다음, 그 데이터 스트림에 대한 파라미터들은 애플리케이션에 의해 릴리즈(release)될 때까지 고정될 수 있다. 대안적으로, 통신은, 데이터 스트림이 요청된 파라미터들에 더 이상 매칭하지 않을 것임을 표시하는, 그 데이터 스트림에 대한 파라미터들의 추후 업데이트 이전에 애플리케이션에 전송될 수 있다.
[0047] 요청된 파라미터들과 동일한 현재 파라미터들을 가지는 데이터 스트림이 존재하지 않는다면, 센서 어드레싱 모듈은 이용가능한 데이터 스트림을 식별하고, 데이터 스트림과 연관된 교정 모듈들 및/또는 필터들과 통신하여, 요청된 데이터 스트림에 매칭하는 파라미터들로 데이터 스트림을 업데이트할 수 있다. 그 다음, 데이터 스트림과 연관된 데이터 스트림 또는 식별자는 요청 애플리케이션에 전송될 수 있다. 모든 데이터 스트림들이 이용 중이고, 어떠한 데이터 스트림들도 요청된 데이터 스트림 파라미터들에 매칭하지 않는다면, 어떠한 데이터 스트림도 이용가능하지 않다는 표시가, 데이터 스트림에 대한 요청이 데이터 스트림 파라미터들의 세트를 가진다는 것에 응답하여 전송될 수 있다.
[0048] 도 3을 참조하면, 센서 옵티마이저의 하나의 특정 실시예가 예시된다. 디바이스(200)는 센서 모듈(202), 센서 옵티마이저(203) 및 애플리케이션들(290a-d)을 포함한다. 센서 옵티마이저(203)로서 도시된 센서 옵티마이저의 실시예는 신호 멀티플렉싱 모듈(220), 디지털 필터들(230a-d), 교정 모듈들(240a-d), 출력 레지스터들(250a-d) 및 센서 어드레싱 모듈(260)을 포함한다. 4개의 디지털 필터들(230), 4개의 교정 모듈들(240) 및 4개의 출력 레지스터들(250)이 도시되지만, 몇몇 엘리먼트들 중 2개 또는 그 초과의 엘리먼트들 중 임의의 수의 엘리먼트가 다양한 실시예들에 따라 제시될 수 있다. 유사하게, 4개의 애플리케이션들이 도 3에 도시되지만, 임의의 수의 애플리케이션들이, 애플리케이션 또는 애플리케이션들이 적어도 2개의 동시적 센서 데이터 스트림들을 요청하여, 단일 센서 모듈로부터 적어도 2개의 동시적 센서 데이터 스트림들을 수신하는 것과 같은 다양한 실시예들에 따라 기능할 수 있다.
[0049] 센서 모듈(202)은 디바이스(200)와 통합된 임의의 센싱 디바이스일 수 있다. 예를 들어, 센서 엘리먼트는 자이로스코프, 가속도계, 자력계, CCD(charge coupled device), 광전지(photovoltaic cell), 임의의 광 센싱 디바이스, 온도 센싱 디바이스, 압력 센싱 디바이스, 또는 임의의 다른 잠재적 센싱 디바이스 또는 엘리먼트일 수 있다.
[0050] 신호 멀티플렉싱 모듈(220)은 센서 엘리먼트(210)로부터의 센서 데이터를 별도의 신호들로서 다수의 디지털 필터들(230)에 의해 이용하기 위한 다수의 데이터 스트림들로 변환할 수 있다.
[0051] 디지털 필터들(230)은 각각의 대응하는 디지털 필터(230)와 연관된 데이터 스트림의 다양한 파라미터들을 조정하도록 구성가능할 수 있는 하드웨어 디지털 필터들을 포함할 수 있다. 예를 들어, 필터링 주파수는 샘플링 레이트 및 측정 범위와 함께, 디지털 필터에 의해 세팅될 수 있다. 이러한 세팅들은 센서 어드레싱 모듈에 의해 디지털 필터(230)에 직접적으로 전달될 수 있거나, 임의의 적절한 신호 경로에 의해 디지털 필터(230)에 전달될 수 있다. 다양한 실시예들에서, 디지털 필터들(230)은 대안적으로, 센서 소스 데이터 스트림 상에서 임의의 종류의 디지털 조작 또는 디지털 프로세싱을 구현할 시 또는 이를 구현하기 위해 펌웨어, 하드웨어, 소프트웨어 또는 임의의 결합을 포함할 수 있다.
[0052] 교정 모듈들(240)은 교정 데이터를 이용하여 다양한 데이터 스트림들을 변경하도록 기능할 수 있다. 하나의 잠재적 실시예에서, 각각의 교정 모듈(240)은 교정 데이터를 저장하는 메모리를 포함한다. 이러한 교정 데이터는 디바이스의 동작의 일부분으로서 생성될 수 있으며, 여기서 공지된 입력은 센서 엘리먼트(210)에 제공되고, 센서 엘리먼트(210)의 출력은 교정 데이터를 생성하기 위해 공지된 입력의 값들과 비교된다. 그 다음, 교정 데이터는 교정 모듈들(240)에 의한 이용을 위해 저장될 수 있다. 디지털 필터들(230)의 기능과 유사하게, 교정 모듈들(240)은 교정 데이터를 이용하여 연관된 데이터 스트림을 변경하도록 또는 교정 데이터를 이용하여 연관된 데이터 스트림을 변경하지 않도록 센서 어드레싱 모듈(260)로부터 커맨드를 직접적으로 수신하기 위해 입력을 가질 수 있다. 이러한 입력은 센서 어드레싱 모듈(260)로부터의 다이렉트 신호 또는 교정 모듈(240)에 입력된 커맨드에 대한 임의의 다른 가능한 경로를 통한 입력을 포함할 수 있다. 다양한 실시예들에서, 교정 모듈들(240)은 하드웨어, 펌웨어, 소프트웨어 또는 이들의 임의의 결합으로 구현될 수 있다. 따라서, 교정 모듈들(240)은 교정 데이터를 저장하는 메모리를 이용하여 구현될 수 있으며, 추가로, 소스 데이터 스트림으로부터 교정된 데이터 스트림을 생성하기 위해 교정 데이터를 이용하는 하나 또는 그 초과의 프로세서들을 포함하거나 또는 이들에 연결될 수 있다.
[0053] 다양한 실시예들에서, 교정 데이터는 팩토리(factory) 세팅에서 생성될 수 있으며, 여기서, 모든 유닛들은, 센서 옵티마이저가 센서 모듈들을 가지는 디바이스 내에 있을 때 센서 출력 측정들에 있어서의 변화들을 보상하기 위해, 공지된 센싱 타겟과 비교된다. 대안적 실시예들에서, 디바이스 사용자는 교정 파라미터들을 업데이트하기 위해 디바이스 내의 교정 애플리케이션의 일부분으로서 교정 루틴을 수행할 수 있다. 여전히 추가 실시예들에서, 디바이스는 실제 또는 거의 실시간 교정을 생성하기 위해 자동화된 교정 또는 교정 업데이트를 연속적으로 또는 주기적으로 구현하는 자동화된 교정 루틴들을 포함할 수 있다.
[0054] 그 다음, 출력 데이터 레지스터(250)는 각각의 디지털 필터(230) 및 교정 모듈(240)로부터의 연관된 데이터 스트림에 대한 데이터를 저장할 수 있다. 이러한 레지스터는 임의의 수용가능한 데이터 저장 디바이스 또는 메모리일 수 있다. 애플리케이션(290)이 센서 엘리먼트(210)로부터의 정보를 요청할 때, 애플리케이션(290)은 센서 어드레싱 모듈(260)과 통신하는 특정 출력 레지스터(250)를 직접적으로 어드레싱함으로써 이러한 정보를 요청할 수 있거나, 애플리케이션(290)은 단순히, 파라미터들의 세트 그룹을 가지는 데이터 스트림을 요청하고, 대응하는 출력 레지스터(250)에 대한 디지털 필터(230) 및 교정 모듈(240)이 가능한 한 가깝게 파라미터들에 매칭한다는 것을 검증한 이후, 센서 어드레싱 모듈(260)이 출력 레지스터(250)로부터의 데이터를 요청하게 할 수 있다. 특정 실시예들에서, 센서 옵티마이저는, 프로세서가 메시지를 센서 모듈에 전달할 때 센서 옵티마이저가 위에서 논의된 바와 같이 요청을 인터셉트할 수 있도록, 센서 모듈을 "스푸프(spoof)"할 수 있다. 도 3의 예에서, 센서 어드레싱 모듈은 프로세서 상에서 동작하는 애플리케이션으로부터의 요청을 인터셉트할 수 있고, 그 다음, 소스 센서 데이터 스트림에 대한 요청을 센서 모듈(202)에 전달할 수 있다. 특정 실시예들에서, 프로세서에 의해 실행되는 센서 옵티마이저 애플리케이션은 센서 데이터에 대한 요청들의 인터셉션(interception)을 가능하게 하기 위해 센서 옵티마이저(303)와 함께 동작할 수 있다.
[0055] 추가적인 대안적 실시예들에서, 센서 어드레싱 모듈(260)은 추가 데이터 스트림들의 생성을 위한 엘리먼트들을 더 포함할 수 있다. 예를 들어, 6개의 서로 다른 데이터 스트림들이 센서 엘리먼트(210)로부터 요청되면, 어드레싱 모듈(260)은 출력 데이터 레지스터들(250)에서 데이터 스트림들로부터 추가 데이터 스트림들을 생성하기 위한 펌웨어, 하드웨어 또는 소프트웨어를 포함할 수 있다. 센서 어드레싱 모듈은 추가로, 출력 데이터 레지스터에서 단일 스트림으로부터 다수의 출력 스트림들을 생성할 수 있으며, 교정, 샘플링 레이트, 대역폭 또는 임의의 다른 이러한 데이터 스트림 파라미터를 조정함으로써 다수의 데이터 스트림들 중 하나 또는 그 초과의 데이터 스트림들을 변경할 수 있다. 이러한 실시예들에서, 센서 어드레싱 모듈(260)은 교정 데이터를 저장하는 메모리 엘리먼트 또는 메모리 모듈을 포함하거나 이에 연결될 수 있으며, 추가로, 프로세싱 엘리먼트 또는 프로세싱 모듈을 포함하거나 이에 연결될 수 있다. 그 다음, 센서 어드레싱 모듈은 출력 데이터 레지스터(250a)와 같은 단일 출력 데이터 레지스터로부터의 데이터 스트림을 이용하여 서로 다른 파라미터들을 가지는 다수의 데이터 스트림들을 출력할 수 있다.
[0056] 도 4는 또 다른 잠재적 실시예에 따른 디바이스의 또 다른 예를 설명한다. 도 4의 디바이스(300)는 제 1 센서 모듈(301), 제 2 센서 모듈(302), 센서 옵티마이저(303), 프로세서(398) 및 메모리(396)를 포함한다. 센서 옵티마이저(303)는 신호 멀티플렉싱 모듈(320), 디지털 필터들(330a-d), 교정 모듈들(340a-d) 및 출력 레지스터들(350a-d)을 포함한다. 센서 모듈(301) 및 센서 모듈(302)은 서로 다른 타입들의 센서 모듈들일 수 있다. 예를 들어, 센서 모듈(301)은 자이로스코프 모듈로서 기능할 수 있고, 센서 모듈(302)은 카메라 모듈로서 기능할 수 있다. 대안적 실시예들에서, 이 센서 모듈들은 동일한 기능을 수행하는 리던던트 모듈들일 수 있다.
[0057] 도 4의 실시예에서, 센서 멀티플렉싱 모듈(320)은 단일 소스 데이터 스트림으로부터 다수의 센서 데이터 스트림들을 생성하는 듀얼 기능을 서빙할 수 있으며, 또한, 출력 레지스터와 연관된 서로 다른 회로 경로들에 대한 서로 다른 센서 모듈들로부터 서로 다른 소스 데이터 스트림들을 선택하도록 스위치로서 기능할 수 있다. 따라서, 예를 들어, 3개의 센서 데이터 스트림들이 프로세서(398) 상에서 동작하는 애플리케이션들에 의해 센서 모듈(301)로부터 요청되고, 하나의 센서 데이터 스트림이 센서 모듈(302)로부터 요청되면, 신호 멀티플렉싱 모듈(320)은 소스 데이터 스트림(311)으로부터 3개의 센서 데이터 스트림들(323, 324 및 325)을 그리고 소스 데이터 스트림(312)으로부터 단일 센서 데이터 스트림(322)을 생성할 수 있다. 그 다음, 다양한 센서 데이터 스트림들(322-325)은 센서 어드레싱 모듈(360)을 통한 프로세서(398)로의 통신을 위해 출력 레지스터들(350)에서 버퍼링되기 이전에, 프로세서에 의해 요청된 센서 스트림 파라미터들에 매칭하도록 대응하는 디지털 필터들(330) 및 교정 모듈들(340)에 의해 변경될 수 있다.
[0058] 도 4의 실시예에서, 신호 센서 어드레싱 모듈(360)은 센서 모듈들(301 및 302)과 프로세서(398) 사이에서 센서 데이터 및 센서 데이터에 대한 요청들을 라우팅한다. 따라서, 특정 실시예들에서, 단일 센서 옵티마이저는 다수의 센서 모듈들에 대한 어드레싱 및 데이터 스트림 생성을 가능하게 하도록 기능할 수 있다. 대안적 실시예들에서, 각각의 센서 모듈은 별개의 센서 옵티마이저를 가질 수 있거나, 센서 모듈들의 그룹들은 임의의 잠재적 결합에서의 서로 다른 센서 옵티마이저들과 연관될 수 있다.
[0059] 추가로, 도 4에 의해 도시된 바와 같이, 애플리케이션들(390a, 390b 및 390c)은 비-일시적 저장 메모리(396)와 함께 프로세서(398)에 의해 실행될 때 동작한다. 이러한 애플리케이션들은 센서 모듈들(300 및 400)로부터의 센서 데이터를 요청하기 위해 프로세서(398)에 의해 실행될 때 기능할 수 있으며, 각각의 애플리케이션의 일부분으로서 메모리(396) 내에 이용하기 위한 이러한 센서 데이터를 저장할 수 있다. 하나의 잠재적 실시예에서, 프로세서(398)에 의해 실행되는 애플리케이션은 센서 데이터에 대한 요청들의 인터셉션을 관리하도록, 서로 다른 센서 스트림 파라미터들에 대한 요청들을 관리하도록 그리고 센서 데이터에 대한 용납되지 않는 또는 과도한 수의 요청들을 관리하도록 센서 옵티마이저(303)와 함께 기능할 수 있다.
[0060] 도 4는 센서 모듈들(301 및 302)로부터 유도된 센서 데이터 및 센서 데이터 스트림들에 대한 신호 경로들을 추가로 나타낸다. 예를 들어, 소스 데이터 스트림들(311)은 센서(301)로부터 신호 멀티플렉싱 모듈(320)에서 수신되고, 소스 데이터 스트림(312)은 센서 모듈(320)로부터 신호 멀티플렉싱 모듈(320)에서 수신된다. 이 소스 데이터 스트림들은 센서 옵티마이저를 관리하는 애플리케이션과 함께 프로세서로부터 센서 모듈에서 수신된 요청에 응답하여, 센서 어드레싱 모듈(360)로부터의 요청에 응답하여, 또는 신호 멀티플렉싱 모듈(320), 디지털 필터(330a) 및 교정 모듈(340a)을 통해 출력 레지스터(350)로부터 센서 모듈(301)로의 경로와 같은 센서 데이터 스트림 경로를 따르는 통신에 응답하여, 센서 모듈들로부터 출력될 수 있다. 신호 멀티플렉싱 모듈(320)은 소스 데이터 스트림들(311 및 312)의 임의의 결합을 이용하여 생성될 수 있는 센서 데이터 스트림들(322, 323, 324 및 325)을 출력한다.
[0061] 신호 멀티플렉싱 모듈(320)은 본질적으로 별개의 하드웨어 또는 회로 경로들을 따르는 출력 데이터 스트림들로서 고려될 수 있으며, 이들 각각은 센서 데이터 스트림의 출력을 저장 및 관리하기 위한 출력 레지스터(350)를 가진다. 특정 센서 데이터 스트림에 대한 필터링 및 교정 조정들은 그 스트림이 출력 레지스터에 의해 관리되기 이전에 이루어질 수 있지만, 센서 데이터 스트림에 대한 특정 데이터 스트림 파라미터들을 세팅하기 위해 임의의 변화들이 이루어짐에도 불구하고, 레지스터에서 수신된 신호는 여전히, 동일한 센서 데이터 스트림인 것으로 고려된다.
[0062] 예를 들어, 도 4에 도시된 바와 같이, 센서 데이터 스트림(322)은 필터링된 센서 데이터 스트림(332)을 생성하도록 디지털 필터(330d)에 의해 변경될 수 있으며, 이는 교정된 센서 데이터 스트림(342)을 생성하도록 교정 모듈(340d)에 의해 추가로 변경될 수 있는데, 교정된 센서 데이터 스트림(342)은 출력 레지스터(350d)로의 입력이지만, 출력 레지스터(350)에서 수신된 교정된 필터링된 센서 데이터 스트림은 여전히 센서 데이터 스트림(322)인 것으로 고려된다.
[0063] 다른 실시예들에 대해서와 같이, 도 4에 도시된 예는 각각의 회로 경로에 대한 교정 모듈 및 디지털 필터를 포함하지만, 모듈들 및 경로들의 임의의 결합은, 대안적 실시예들에서, 서로 다른 데이터 스트림 파라미터들을 가지는 단일 센서 모듈로부터의 제 1 및 제 2 데이터 스트림들 중 적어도 일부분의 동시적 출력을 가능하게 하도록 제시될 수 있다.
[0064] 도 5는 본원에 설명된 실시예들과 함께 이용될 수 있는 모바일 디바이스의 하나의 잠재적 실시예를 예시하는 블록도이다. 이러한 모바일 디바이스들은 단일 센서 모듈이 서로 다른 데이터 스트림 파라미터들을 가지는 동시적 센서 데이터 스트림들을 출력하는 것을 가능하게 하기 위한 센서 모듈들 및 하나 또는 그 초과의 센서 옵티마이저들을 포함한다. 이러한 모바일 디바이스는 또한, 애플리케이션들이 단일 센서 모듈로부터의 서로 다른 데이터 스트림 파라미터들을 가지는 센서 데이터를 요청할 수 있도록, 다양한 실시예들과 함께 설명된 바와 같은 애플리케이션들을 실행시킬 수 있다. 도 5의 모바일 디바이스(500)는 유사한 또는 결합된 기능을 제공하는 임의의 모바일 디바이스, 이를테면, 스마트 폰, 셀룰러 폰, 개인용 디지털 보조기, 태블릿 컴퓨터, 개인용 미디어 플레이어뿐만 아니라, 임의의 다른 타입의 휴대용 전자 디바이스일 수 있다. 디바이스(500)가 또한 스마트 셀룰러 전화와 같은 휴대용 전자 디바이스와 연관된 촉각 버튼들(tactile buttons), 전력 디바이스(예를 들어, 배터리)뿐만 아니라, 다른 컴포넌트들을 포함할 수 있다는 것이 인식되어야 한다. 따라서, 도 5는, 일부 컴포넌트들이 생략되기 때문에 제한으로서 이해되지 않을 것이다.
[0065] 도 5에 도시된 실시예에서, 디바이스(500)는 다수의 컴포넌트들에서 동작들을 수행하기 위한 명령들을 실행하도록 구성되는 프로세서(510)를 포함하며, 예를 들어, 휴대용 전자 디바이스 내에서의 구현에 적합한 범용 프로세서 또는 마이크로프로세서일 수 있다. 프로세서(510)는 모바일 디바이스(500) 내의 복수의 컴포넌트들과 통신적으로 커플링된다. 이 통신적 커플링을 구현하기 위해, 프로세서(510)는 버스(540)에 걸쳐 다른 예시된 컴포넌트들과 통신할 수 있다. 버스(540)는 모바일 디바이스(500) 내의, 데이터를 전송하도록 적응된 임의의 서브시스템일 수 있다. 버스(540)는 복수의 컴퓨터 버스들일 수 있으며, 데이터를 전송하기 위한 추가 회로를 포함할 수 있다.
[0066] 메모리(520)는 프로세서(510)에 커플링될 수 있다. 일부 실시예들에서, 메모리(520)는 쇼트-텀(short-term) 및 롱-텀(long-term) 저장 둘 모두를 제공하며, 사실상, 몇몇 유닛들로 분할될 수 있다. 메모리(520)는 SRAM(static random access memory) 및/또는 DRAM(dynamic random access memory)과 같은 휘발성 그리고/또는 ROM(read-only memory), 플래시 메모리 등과 같은 비휘발성일 수 있다. 게다가, 메모리(520)는 SD(secure digital) 카드들과 같은 이동가능한 저장 디바이스들을 포함할 수 있다. 따라서, 메모리(520)는 모바일 디바이스(500)에 대한 컴퓨터 판독가능한 명령들, 데이터 구조들, 프로그램 모듈들 및 다른 데이터의 저장을 제공한다. 일부 실시예들에서, 메모리(520)는 서로 다른 하드웨어 모듈들로 분배될 수 있다.
[0067] 모바일 디바이스(500)는, 애플리케이션 모듈들이 센서 모듈들(501A-Z)로부터의 센서 데이터에 대한 요청들을 수행할 때 프로세서(510)에 의해 실행되는 애플리케이션 모듈들(521A-N)로부터의 요청들을 인터셉트할 수 있는 센서 옵티마이저(505)를 포함한다. 추가적으로, 위에서 설명된 바와 같이, 애플리케이션 모듈들(521)은 센서 데이터에 대한 요청들의 인터셉션을 가능하게 하기 위해, 특정 데이터 스트림 파라미터들을 가지는 특정 센서 데이터 스트림들을 어드레싱하는 것을 보조하기 위해 그리고 센서 옵티마이저(505)와 함께 하나 또는 그 초과의 센서 모듈들(501)로부터의 이용가능한 센서 데이터 스트림들에 대해 관리하기 위해 센서 옵티마이저(505)와 함께 기능할 수 있는 센서 옵티마이저 애플리케이션 모듈을 포함할 수 있다.
[0068] 일부 실시예들에서, 메모리(520)는 복수의 애플리케이션 모듈들(521A-N)을 저장한다. 애플리케이션 모듈들(521A-N)은 프로세서(510)에 의해 실행될 특정 명령들을 포함한다. 메모리(520)는 많은 애플리케이션 모듈들을 저장할 수 있다. 애플리케이션 모듈들(521A-N) 각각은, 예를 들어, 달력 애플리케이션, 지오-펜싱(geo-fencing) 애플리케이션, 전력 관리 애플리케이션, 스마트 경고 애플리케이션, 소셜 미디어 애플리케이션(예를 들어, Twitter™ 또는 Facebook™) 또는 프로세서(510)에 의해 실행될 명령들을 가지는 임의의 애플리케이션-타입 모듈일 수 있다. 임의의 이러한 애플리케이션들은 센서 데이터 또는 센서 데이터 스트림에 대한 요청을 센서 어드레싱 모듈에 전달함으로써 센서 데이터에 액세스할 수 있다. 일부 실시예들에서, 메모리(520)는 운영 시스템(523)을 포함한다. 운영 시스템(523)은 애플리케이션 모듈들(521A-N) 및/또는 관리 센서 모듈들(501)에 의해 제공된 명령들의 실행을 개시하도록 동작가능할 수 있다. 운영 시스템(523)은 스레딩, 자원 관리, 데이터 저장 제어 및 다른 유사한 기능을 포함하는 디바이스(500)의 컴포넌트들에 걸쳐 다른 동작들을 수행하도록 적응될 수 있다.
[0069] 일부 실시예들에서, 모바일 디바이스(500)는 하나 또는 그 초과의 무선 모듈들(512)을 포함한다. 무선 모듈들(512)은 Wi-Fi 트랜시버, 셀룰러 전화 타워들과 통신하기 위한 트랜시버 또는 무선 통신들을 구현하기 위한 임의의 다른 이러한 모듈을 포함할 수 있다.
[0070] 추가적으로, 일부 실시예들에서, 모바일 디바이스(500)는 복수의 센서 모듈들(501A-501Z)을 포함한다. 각각의 센서 모듈(501)은 디바이스(500) 내의 물리적 모듈이다. 그러나, 모듈들(501) 각각은 구조로서 영구적으로 구성되지만, 모듈들(501) 각각은 특정 기능들을 수행하도록 일시적으로 구성될 수 있거나, 일시적으로 활성화될 수 있다. 공통적 예는, 이미지 캡처에 대해 활성화되고, 이미지 캡처 이후 활성화해제되거나, 비디오 캡처 스트림의 형태로 센서 데이터 스트림의 생성에 대해 활성화되고, 비디오 데이터의 캡처가 완료될 때 활성화해제되는 이미지 캡처 및 셔터 릴리즈(shutter release)에 대한 카메라 모듈(즉, 센서 모듈)을 프로그래밍할 수 있는 애플리케이션 모듈이다. 추가로, 센서 모듈들(501)과 더불어, 특정 기능을 가지는 다수의 추가 하드웨어 모듈들이 모바일 디바이스(500) 내에 포함될 수 있다. 모듈들(501) 각각은, 예를 들어, 가속도계, 위성 네비게이션 시스템 수신기(예를 들어, GPS 모듈), 압력 모듈, 온도 모듈, 오디오 출력 및/또는 입력 모듈(예를 들어, 마이크로폰), 카메라 모듈, 근접도 센서, ALS(alternate line service) 모듈, 용량성 터치 센서, NFC(near field communication) 모듈, Bluetooth 트랜시버, 셀룰러 트랜시버, 자력계, 자이로스코프, 관성 센서(예를 들어, 가속도계 및 자이로스코프를 결합하는 모듈), 주변 광 센서, 상대 습도 센서 또는 감지 출력을 제공하고 그리고/또는 감지 입력을 수신하도록 동작가능한 임의의 다른 유사한 모듈일 수 있다. 일부 실시예들에서, 센서 모듈들(501)의 하나 또는 그 초과의 기능들은 소프트웨어로 구현될 수 있다.
[0071] 센서 모듈들(501) 및 애플리케이션 모듈들(521A-N) 외에도, 모바일 디바이스(500)는 디스플레이 모듈(503) 및 사용자 입력 모듈(504)을 가질 수 있다. 디스플레이 모듈(503)은 정보를 디바이스(500)로부터 사용자로 그래픽적으로 제시한다. 이 정보는 하나 또는 그 초과의 애플리케이션 모듈들(521A-N), 하나 또는 그 초과의 센서 모듈들(501), 이들의 결합, 또는 (예를 들어, 운영 시스템(524)에 의해) 사용자에 대한 그래픽 컨텐츠를 해결하기 위한 임의의 다른 적합한 수단으로부터 유도될 수 있다. 디스플레이 모듈(503)은 LCD(liquid crystal display) 기술, LPD(light emitting polymer display) 기술 또는 일부 다른 디스플레이 기술일 수 있다. 일부 실시예들에서, 디스플레이 모듈(503)은 용량성 또는 저장성 터치 스크린이며, 사용자와의 햅틱 및/또는 촉각 접촉에 민감할 수 있다. 이러한 실시예들에서, 디스플레이 모듈(503)은 멀티-터치-감지 디스플레이를 포함할 수 있다.
[0072] 모바일 디바이스의 추가 실시예들은 도 7에 관하여 아래에서 상세되는 바와 같이, 컴퓨팅 디바이스들의 다양한 부분들을 더 포함할 수 있다.
[0073] 도 6은 잠재적 실시예에 따른 추가적인 대안적 방법을 설명한다. S610에서, 센서 옵티마이저는, 프로세서로부터, 제 1 센서 엘리먼트로부터의 센서 데이터에 대한 제 1 요청을 수신하고, 상기 센서 데이터에 대한 제 1 요청은 데이터 스트림 파라미터들의 제 1 세트를 식별한다. S612에서, 센서 옵티마이저는 제 1 센서 엘리먼트로부터의 센서 데이터에 대한 제 2 요청을 수신하고, 상기 제 2 요청은 데이터 스트림 파라미터들의 제 1 세트와 서로 다른 데이터 스트림 파라미터들의 제 2 세트를 식별한다.
[0074] S614에서, 센서 옵티마이저는 데이터 스트림 파라미터들의 제 1 세트 및 데이터 스트림 파라미터들의 제 2 세트에 기초하여 파라미터들의 소스 세트를 이용하여, 센서 엘리먼트로부터의 소스 데이터 스트림을 요청한다. S616에서, 센서 옵티마이저는 소스 데이터 스트림으로부터 제 1 센서 데이터 스트림을 생성하고, 여기서, 제 1 센서 데이터 스트림은 데이터 스트림 파라미터들의 제 1 세트에 따른다.
[0075] S618에서, 센서 옵티마이저는 소스 데이터 스트림으로부터 제 2 센서 데이터 스트림을 생성하고, 여기서, 제 2 센서 데이터 스트림은 데이터 스트림 파라미터들의 제 2 세트에 따른다. S620에서, 센서 옵티마이저는 제 1 센서 데이터 스트림 및 제 2 센서 데이터 스트림을 프로세서에 동시에 전달한다.
[0076] 하나 또는 그 초과의 센서 엘리먼트들을 가지고, 복수의 애플리케이션들을 동시에 동작시키는 디바이스의 다양한 양상들이 구현될 수 있는 컴퓨팅 시스템의 예가 이제, 도 7에 관하여 설명될 것이다. 하나 또는 그 초과의 양상들에 따라, 도 7에 예시된 바와 같은 컴퓨터 시스템은 컴퓨팅 디바이스의 일부분으로서 포함될 수 있으며, 이는 본원에 설명된 특징들, 방법들 및/또는 방법 단계들 전부 및/또는 이들 중 임의의 것을 구현, 수행 및/또는 실행할 수 있다. 예를 들어, 컴퓨터 시스템(700)은 핸드헬드 디바이스의 컴포넌트들 중 일부를 표현할 수 있다. 핸드헬드 디바이스는 입력 감지 유닛, 이를테면, 카메라 및/또는 디스플레이 유닛을 가지는 임의의 컴퓨팅 디바이스일 수 있다. 핸드헬드 디바이스의 예들은 비디오 게임 콘솔들, 태블릿들, 스마트 폰들, 텔레비전들 및 모바일 디바이스들을 포함하지만, 이에 제한되는 것은 아니다. 일 실시예에서, 시스템(700)은 위에서 설명된 방법들 중 임의의 방법을 구현하도록 구성된다. 도 7은, 본원에 설명된 바와 같은, 다양한 실시예들에 의해 제공되는 방법들을 수행할 수 있고 그리고/또는 호스트 컴퓨터 시스템, 원격 키오스크/단말, POS(point-of-sale) 디바이스, 모바일 디바이스, 셋탑 박스 및/또는 컴퓨터 시스템으로서 기능할 수 있는 컴퓨터 시스템(700)의 일 실시예의 개략도를 제공한다. 도 7은 단지 다양한 컴포넌트들의 일반화된 도면을 제공하는 것으로 여겨지며, 이들 전부 및/또는 이들 중 임의의 것이 적절하게 이용될 수 있다. 따라서, 도 7은 개별 시스템 엘리먼트들이, 비교적 분리되거나 또는 비교적 더 통합된 방식으로, 어떻게 구현될 수 있는지를 광범위하게 예시한다.
[0077] 버스(705)를 통해 전기적으로 커플링될 수 있는(또는 그렇지 않으면, 적절하게 통신할 수 있는) 하드웨어 엘리먼트들을 포함하는 컴퓨터 시스템(700)이 도시된다. 하드웨어 엘리먼트들은, (제한없이, 하나 또는 그 초과의 범용 프로세서들 및/또는 하나 또는 그 초과의 특수 목적 프로세서들(이를테면, 디지털 신호 프로세싱 칩들, 그래픽 가속 프로세서들 등)을 포함하는) 하나 또는 그 초과의 프로세서들(710), (제한없이, 카메라, 마우스, 키보드 등을 포함할 수 있는) 하나 또는 그 초과의 입력 디바이스들(715), 및 (제한없이, 디스플레이 유닛, 프린터 등을 포함할 수 있는) 하나 또는 그 초과의 출력 디바이스들(720)을 포함할 수 있다. 일부 실시예들에서, 하나 또는 그 초과의 프로세서(710)는 도 1 및 도 2에 관하여 위에서 설명된 기능들 전부 또는 이들의 서브세트를 수행하도록 구성될 수 있다. 예를 들어, 위에서 설명된 바와 같이, 애플리케이션들(190a-d)의 임의의 결합은 하나 또는 그 초과의 프로세서들(710)을 이용하여 구현될 수 있다. 프로세서(710)는, 예를 들어, 일반적 프로세서 및/또는 애플리케이션 프로세서를 포함할 수 있다. 다양한 실시예들에서, 프로세서는 추가 엘리먼트들, 이를테면, 아날로그-디지털 컨버터들, 또는 디지털 데이터 출력들, 이를테면, 디지털 데이터 출력(120)에 의해 변경될 수 있는 카메라 입력들, 자이로스코프 입력들 또는 다른 센서 엘리먼트 입력을 프로세싱하는 엘리먼트로 통합된다.
[0078] 컴퓨터 시스템(700)은, (제한없이, 로컬 및/또는 네트워크 액세스가능한 스토리지를 포함할 수 있고, 그리고/또는 제한없이, 디스크 드라이브, 드라이브 어레이, 광 저장 디바이스, 고체-상태 저장 디바이스, 이를테면, 프로그램가능하고, 플래시-업데이트가능한 식일 수 있는 랜덤 액세스 메모리("RAM") 및/또는 판독-전용 메모리("ROM")를 포함할 수 있는) 하나 또는 그 초과의 비-일시적 저장 디바이스들(725)을 더 포함할 수 있다(그리고/또는 이들과 통신할 수 있다). 이러한 저장 디바이스들은 (제한없이, 다양한 파일 시스템들, 데이터베이스 구조들 등을 포함하는) 임의의 적절한 데이터 스토리지를 구현하도록 구성될 수 있다.
[0079] 컴퓨터 시스템(700)은 또한, (제한없이, 모뎀, 네트워크 카드(무선 또는 유선), 적외선 통신 디바이스, 무선 통신 디바이스 및/또는 칩셋(이를테면, Bluetooth®디바이스, 802.11 디바이스, WiFi 디바이스, WiMax 디바이스, 셀룰러 통신 설비들 등) 등을 포함할 수 있는) 통신 서브시스템(730)을 포함할 수 있다. 통신 서브시스템(730)은 데이터가, 네트워크(이를테면, 일례만 들자면, 아래에서 설명된 네트워크), 다른 컴퓨터 시스템들, 및/또는 본원에 설명된 임의의 다른 디바이스들과 교환되게 할 수 있다. 많은 실시예들에서, 컴퓨터 시스템(700)은, 위에서 설명된 바와 같은 RAM 또는 ROM 디바이스를 포함할 수 있는 비-일시적 작업 메모리(735)를 더 포함할 것이다.
[0080] 컴퓨터 시스템(700)은 또한, 운영 시스템(740), 디바이스 드라이버들, 실행가능한 라이브러리들, 및/또는 다른 코드, 이를테면, 본원에 설명된 바와 같이, 다양한 실시예들에 의해 제공되는 컴퓨터 프로그램들을 포함할 수 있고, 그리고/또는 다른 실시예들에 의해 제공되는 방법들을 구현하고, 그리고/또는 시스템들을 구성하도록 설계될 수 있는 하나 또는 그 초과의 애플리케이션 프로그램들(745)을 비롯하여, 작업 메모리(735) 내에 현재 위치되어 있는 것으로 도시된 소프트웨어 엘리먼트들을 포함할 수 있다. 단지 예로서, 예를 들어, 도 2에 관하여 설명된 바와 같은, 위에서 논의된 방법(들)에 관하여 설명된 하나 또는 그 초과의 프로시저들은 컴퓨터(및/또는 컴퓨터 내의 프로세서)에 의해 실행가능한 코드 및/또는 명령들로 구현될 수 있고, 양상에서, 그 다음, 이러한 코드 및/또는 명령들은, 설명된 방법들에 따라, 하나 또는 그 초과의 동작들을 수행하도록 범용 컴퓨터(또는 다른 디바이스)를 구성하고 그리고/또는 적응시키는데 이용될 수 있다. 프로세서(710), 메모리(735), 운영 시스템(740), 및/또는 애플리케이션 프로그램들(745)은 도 1-2에 관하여 설명된 다양한 블록들을 구현하는데 이용될 수 있다.
[0081] 이 명령들 및/또는 코드의 세트는, 위에서 설명된 저장 디바이스(들)(725)와 같은 컴퓨터 판독가능한 저장 매체 상에 저장될 수 있다. 일부 경우들에서, 저장 매체는 컴퓨터 시스템, 이를테면, 컴퓨터 시스템(700) 내에 포함될 수 있다. 다른 실시예들에서, 저장 매체는 컴퓨터 시스템(예를 들어, 이동식(removable) 매체, 이를테면, 컴팩트 디스크(disc))과 별개일 수도 있고, 그리고/또는 저장 매체가 저장 매체 상에 저장된 명령들/코드로 범용 컴퓨터를 프로그래밍하고, 구성하고 그리고/또는 적응시키는데 이용될 수 있도록 설치 패키지로 제공될 수 있다. 이 명령들은 컴퓨터 시스템(700)에 의해 실행가능한 실행가능 코드의 형태를 취할 수 있고, 그리고/또는 (그 다음, 컴퓨터 시스템(700) 상에서의 컴파일(compilation) 및/또는 설치(installation) 시에, (예를 들어, 다양한 일반적으로 이용가능한 컴파일러들, 설치 프로그램들, 압축/압축해제 유틸리티들 등 중 임의의 것을 이용하여) 실행가능한 코드의 형태를 취하는) 소스 및/또는 설치가능한 코드의 형태를 취할 수 있다.
[0082] 특정 요건들에 따라 상당한 변화들이 이루어질 수 있다. 예를 들어, 커스터마이징된 하드웨어가 또한 이용될 수 있고, 그리고/또는 특정한 엘리먼트들이 하드웨어, 소프트웨어(애플릿들과 같은 휴대용 소프트웨어 등을 포함함) 또는 둘 모두로 구현될 수 있다. 추가로, 네트워크 입력/출력 디바이스들과 같은 다른 컴퓨팅 디바이스들로의 연결이 이용될 수 있다.
[0083] 일부 실시예들은 본 개시에 따라 방법들을 수행하기 위해 컴퓨터 시스템(이를테면, 컴퓨터 시스템(700))을 이용할 수 있다. 예를 들어, 프로세서(710)가 작업 메모리(735)에 포함되는 (운영 시스템(740) 및/또는 다른 코드, 이를테면, 애플리케이션 프로그램(745)에 포함될 수 있는) 하나 또는 그 초과의 명령들의 하나 또는 그 초과의 시퀀스들을 실행하는 것에 응답하여, 설명된 방법들의 프로시저들의 일부 또는 전부가 컴퓨터 시스템(700)에 의해 수행될 수 있다. 이러한 명령들은 다른 컴퓨터 판독가능한 매체, 이를테면, 저장 디바이스(들)(725) 중 하나 또는 그 초과의 저장 디바이스(들)로부터 작업 메모리(735)로 판독될 수 있다. 단지 예로서, 작업 메모리(735) 내에 포함된 명령들의 시퀀스들의 실행은 프로세서(들)(710)로 하여금 본원, 예를 들어, 도 1-2에 관하여 설명된 방법들에 설명된 방법들의 하나 또는 그 초과의 프로시저들을 수행하게 할 수 있다.
[0084] 본원에 이용되는 바와 같은 "기계 판독가능한 매체" 및 "컴퓨터 판독가능한 매체"라는 용어들은, 기계로 하여금 특정 방식으로 동작하게 하는 데이터를 제공하는데 참여하는 임의의 매체를 지칭한다. 컴퓨터 시스템(700)을 이용하여 구현되는 실시예에서, 다양한 컴퓨터 판독가능한 매체들이, 실행을 위한 명령들/코드를 프로세서(들)(710)에 제공하는데 수반될 수 있고, 그리고/또는 (예를 들어, 신호들과 같은) 이러한 명령들/코드를 저장 및/또는 전달하는데 이용될 수 있다. 많은 구현들에서, 컴퓨터 판독가능한 매체는 물리 그리고/또는 유형의 저장 매체이다. 이러한 매체는 비-휘발성 매체들 및 휘발성 매체들을 포함하는(그러나, 이에 제한되는 것은 아님) 많은 형태들을 취할 수 있다. 비-휘발성 매체들은, 예를 들어, 광 그리고/또는 자기 디스크들, 이를테면, 저장 디바이스(들)(725)를 포함한다. 휘발성 매체들은, 제한없이, 동적 메모리, 이를테면, 작업 메모리(735)를 포함한다.
[0085] 물리적 그리고/또는 유형의 컴퓨터 판독가능한 매체들의 일반적 형태들은, 예를 들어, 플로피 디스크, 플렉서블 디스크, 하드 디스크, 자기 테이프 또는 임의의 다른 자기 매체, CD-ROM, 임의의 다른 광 매체, 펀치 카드들(punch cards), 페이퍼테이프(papertape), 홀들의 패턴들을 갖는 임의의 다른 물리 매체, RAM, PROM, EPROM, FLASH-EPROM, 임의의 다른 메모리 칩 또는 카트리지, 또는 컴퓨터가 명령들 및/또는 코드를 판독할 수 있는 임의의 다른 매체를 포함한다.
[0086] 다양한 형태들의 컴퓨터 판독가능한 매체들은 실행을 위한 하나 또는 그 초과의 명령들의 하나 또는 그 초과의 시퀀스들을 프로세서(들)(710)에 전달하는데 수반될 수 있다. 단지 예로서, 명령들은 초기에, 원격 컴퓨터의 자기 디스크 및/또는 광 디스크 상에서 전달될 수 있다. 원격 컴퓨터는 그것의 동적 메모리에 명령들을 로딩하며, 컴퓨터 시스템(700)에 의해 수신 및/또는 실행되도록 송신 매체 상에서 신호들로서 명령들을 전송할 수 있다. 전자기파 신호들, 어쿠스틱 신호들, 광학 신호들 등의 형태일 수 있는 이러한 신호들은 본 발명의 다양한 실시예들에 따라, 명령들이 인코딩될 수 있는 반송파들의 모든 예들이다.
[0087] 통신 서브시스템(730)(및/또는 이것의 컴포넌트들)은 일반적으로 신호들을 수신할 것이고, 그 다음, 버스(705)는 신호들(및/또는 신호들에 의해 전달되는 데이터, 명령들 등)을 작업 메모리(735)에 전달할 수 있고, 프로세서(들)(710)는 이 작업 메모리(735)로부터의 명령들을 리트리브 및 실행한다. 작업 메모리(735)에 의해 수신된 명령들은 프로세서(들)(710)에 의한 실행 이전에 또는 이후에 비-일시적 저장 디바이스(725) 상에 선택적으로 저장될 수 있다.
[0088] 위에서 논의된 방법들, 시스템들 및 디바이스들은 예들이다. 다양한 실시예들은 적절하게 다양한 프로시저들 또는 컴포넌트들을 생략, 치환 또는 부가할 수 있다. 예를 들어, 대안적 구성들에서, 설명된 방법들은 설명된 것과 서로 다른 순서로 수행될 수 있고, 그리고/또는 다양한 스테이지들이 부가, 생략 및/또는 결합될 수 있다. 또한, 특정 실시예들에 관하여 설명된 특징들은 다양한 다른 실시예들에서 결합될 수 있다. 실시예들의 서로 다른 양상들 및 엘리먼트들은 유사한 방식으로 결합될 수 있다. 또한, 기술은 진화하고, 따라서, 많은 엘리먼트들이 이 특정 예들에 대한 본 개시의 범위를 제한하지 않는 예들이다.
[0089] 특정 세부사항들이 실시예들의 완전한 이해를 제공하기 위해 설명에 주어진다. 그러나, 실시예들은 이러한 특정 세부사항들 없이 실시될 수 있다. 예를 들어, 공지된 회로들, 프로세스들, 알고리즘들, 구조들 및 기법들은 실시예들을 모호하게 하는 것을 회피하기 위해 불필요한 세부사항 없이 나타낸다. 이러한 설명은 단지 예시적 실시예들만을 제공하며, 본 발명의 범위, 적용가능성 또는 구성을 제한하는 것으로 의도되지 않는다. 오히려, 실시예들의 상기 설명은 본 발명의 실시예들을 구현하기 위한 가능한 설명을 당업자들에게 제공할 것이다. 본 발명의 사상 및 범위로부터 벗어나지 않으면서 엘리먼트들의 배열 및 기능에서 다양한 변화들이 이루어질 수 있다.
[0090] 또한, 일부 실시예들은 흐름도들 또는 블록도들로서 도시되는 프로세스들로서 설명되었다. 각각은 순차적 프로세스로서 동작들을 설명할 수 있지만, 동작들 중 다수는 병렬로 또는 동시에 수행될 수 있다. 또한, 동작들의 순서가 재배열될 수 있다. 프로세스는 도면에 포함되지 않는 추가 단계들을 가질 수 있다. 게다가, 방법들의 실시예들은 하드웨어, 소프트웨어, 펌웨어, 미들웨어, 마이크로코드, 하드웨어 기술어들 또는 이들의 임의의 결합에 의해 구현될 수 있다. 소프트웨어, 펌웨어, 미들웨어 또는 마이크로 코드로 구현될 때, 연관된 태스크들을 수행하기 위한 프로그램 코드 또는 코드 세그먼트들은 저장 매체와 같은 컴퓨터 판독가능한 매체에 저장될 수 있다. 프로세서들은 연관된 태스크들을 수행할 수 있다.
[0091] 몇몇 실시예들을 설명하였지만, 본 개시의 사상으로부터 벗어나지 않고 다양한 변경들, 대안적 구성들 및 등가물들이 이용될 수 있다. 예를 들어, 위의 엘리먼트들은 단지 더 큰 시스템의 컴포넌트일 수 있으며, 여기서 다른 규칙들이 본 발명의 애플리케이션보다 우선할 수도 있고 또는 그렇지 않으면 애플리케이션을 변경할 수도 있다. 또한, 다수의 단계들이 위의 엘리먼트들이 고려되기 이전에, 고려되는 동안에 또는 고려된 이후에 착수될 수 있다. 따라서, 위의 설명은 본 개시의 범위를 제한하지 않는다.

Claims (20)

  1. 방법으로서,
    센서 옵티마이저(sensor optimizer)에서, 프로세서로부터 제 1 센서 엘리먼트로부터의 센서 데이터에 대한 제 1 요청을 수신하는 단계 ― 상기 센서 데이터에 대한 제 1 요청은 데이터 스트림 파라미터들의 제 1 세트를 식별함 ― ;
    상기 센서 옵티마이저에서, 상기 제 1 센서 엘리먼트로부터의 센서 데이터에 대한 제 2 요청을 수신하는 단계 ― 상기 제 2 요청은 상기 데이터 스트림 파라미터들의 제 1 세트와 상이한 데이터 스트림 파라미터들의 제 2 세트를 식별함 ― ;
    상기 센서 옵티마이저에 의해, 상기 데이터 스트림 파라미터들의 제 1 세트 및 상기 데이터 스트림 파라미터들의 제 2 세트에 기초하는 파라미터들의 소스 세트를 이용하여, 상기 제 1 센서 엘리먼트로부터의 소스 데이터 스트림을 요청하는 단계;
    상기 센서 옵티마이저에 의해, 상기 소스 데이터 스트림으로부터 제 1 센서 데이터 스트림을 생성하는 단계 ― 상기 제 1 센서 데이터 스트림은 상기 데이터 스트림 파라미터들의 제 1 세트에 따름 ― ;
    상기 센서 옵티마이저에 의해, 상기 소스 데이터 스트림으로부터 제 2 센서 데이터 스트림을 생성하는 단계 ― 상기 제 2 센서 데이터 스트림은 상기 데이터 스트림 파라미터들의 제 2 세트에 따름 ― ; 및
    상기 프로세서에 상기 제 1 센서 데이터 스트림 및 상기 제 2 센서 데이터 스트림을 동시에 전달하는 단계를 포함하며,
    상기 센서 데이터에 대한 제 1 요청은 교정된 데이터에 대한 요청을 포함하고,
    상기 제 1 센서 데이터 스트림은 상기 데이터 스트림 파라미터들의 제 1 세트에 따르고, 그리고 상기 교정된 데이터를 포함하는,
    방법.
  2. 제 1 항에 있어서,
    상기 센서 데이터에 대한 제 2 요청은 교정되지 않은 데이터에 대한 요청을 포함하고,
    상기 제 2 센서 데이터 스트림은 상기 데이터 스트림 파라미터들의 제 2 세트에 따르고, 그리고 상기 교정되지 않은 데이터를 포함하는,
    방법.
  3. 제 2 항에 있어서,
    상기 센서 데이터에 대한 제 1 요청은 상기 프로세서 상에서 동작하는 제 1 애플리케이션으로부터 수신되고, 그리고
    상기 센서 데이터에 대한 제 2 요청은 상기 프로세서 상에서 동작하는 상기 제 1 애플리케이션으로부터 수신되는,
    방법.
  4. 제 2 항에 있어서,
    상기 센서 데이터에 대한 제 1 요청은 상기 프로세서 상에서 동작하는 제 1 애플리케이션으로부터 수신되고, 그리고
    상기 센서 데이터에 대한 제 2 요청은 상기 프로세서 상에서 동작하는 제 2 애플리케이션으로부터 수신되는,
    방법.
  5. 제 4 항에 있어서,
    상기 제 1 애플리케이션은 카메라 애플리케이션을 포함하고, 그리고
    상기 제 2 애플리케이션은 네비게이션 애플리케이션을 포함하는,
    방법.
  6. 제 5 항에 있어서,
    상기 제 1 센서 엘리먼트는 자이로스코프를 포함하는,
    방법.
  7. 제 4 항에 있어서,
    상기 제 1 센서 엘리먼트는 가속도계를 포함하며,
    상기 제 1 애플리케이션은 사용자 인터페이스 방향성(orientation) 제어 애플리케이션을 포함하고, 그리고
    상기 제 2 애플리케이션은 네비게이션 애플리케이션을 포함하는,
    방법.
  8. 제 2 항에 있어서,
    상기 센서 데이터에 대한 제 1 요청은 상기 프로세서 상에서 동작하는 제 1 애플리케이션으로부터 수신되고, 그리고
    상기 센서 데이터에 대한 제 2 요청은 상기 프로세서를 포함하는 모바일 디바이스 내의 제 2 프로세서 상에서 동작하는 제 2 애플리케이션으로부터 수신되는,
    방법.
  9. 제 4 항에 있어서,
    상기 제 1 센서 데이터 스트림 및 상기 제 2 센서 데이터 스트림을 생성하는 것은:
    상기 센서 옵티마이저의 신호 멀티플렉싱 모듈에서 상기 제 1 센서 엘리먼트로부터 상기 소스 데이터 스트림을 수신하는 것;
    상기 신호 멀티플렉싱 모듈로부터 상기 센서 옵티마이저의 제 1 출력 레지스터(register)로 상기 제 1 센서 데이터 스트림을 출력하는 것; 및
    상기 신호 멀티플렉싱 모듈로부터 상기 센서 옵티마이저의 제 2 출력 레지스터로 상기 제 2 센서 데이터 스트림을 출력하는 것을 포함하는,
    방법.
  10. 제 9 항에 있어서,
    상기 제 1 센서 데이터 스트림을 상기 제 1 애플리케이션에 그리고 상기 제 2 센서 데이터 스트림을 상기 제 2 애플리케이션에 동시에 전달하는 것은:
    센서 어드레싱 모듈을 통해 상기 제 1 출력 레지스터로부터 상기 프로세서의 상기 제 1 애플리케이션에 상기 제 1 센서 데이터 스트림을 전달하는 것 ― 상기 제 1 센서 데이터 스트림을 전달하는 것은 제 1 시간에서 시작하고 그리고 제 2 시간에서 종료함 ― ; 및
    상기 센서 어드레싱 모듈을 통해 상기 제 2 출력 레지스터로부터 상기 프로세서의 상기 제 2 애플리케이션에 상기 제 2 센서 데이터 스트림을 전달하는 것 ― 상기 제 2 센서 데이터 스트림을 전달하는 것은 제 3 시간에서 시작하고 그리고 제 4 시간에서 종료함 ― 을 포함하고,
    상기 제 3 시간은 상기 제 1 시간보다 더 나중이고, 그리고 상기 제 3 시간은 상기 제 2 시간보다 더 이른,
    방법.
  11. 디바이스로서,
    제 1 센서 엘리먼트를 포함하는 제 1 센서 모듈;
    상기 제 1 센서 모듈에 커플링된 센서 옵티마이저; 및
    상기 센서 옵티마이저를 통해 상기 제 1 센서 모듈에 커플링된 프로세서를 포함하고,
    상기 센서 옵티마이저는 상기 제 1 센서 모듈로부터 소스 센서 데이터 스트림을 수신하고, 그리고 상기 소스 센서 데이터 스트림으로부터 도출되는 적어도 2개의 센서 데이터 스트림들을 상기 프로세서로 동시에 출력하며,
    상기 센서 옵티마이저는:
    신호 멀티플렉싱 모듈에 의해 상기 제 1 센서 엘리먼트에 커플링된 복수의 디지털 필터들;
    복수의 출력 레지스터들 ― 각각의 출력 레지스터는 상기 복수의 디지털 필터들 중 하나의 대응하는 디지털 필터에 커플링됨 ― ; 및
    상기 복수의 출력 레지스터들에 커플링된 센서 어드레싱 모듈을 포함하는,
    디바이스.
  12. 제 11 항에 있어서,
    상기 센서 옵티마이저는 제 1 교정 모듈을 더 포함하고,
    상기 복수의 디지털 필터들은 제 1 디지털 필터 및 제 2 디지털 필터를 포함하고,
    상기 프로세서는 복수의 애플리케이션들을 실행하고, 상기 복수의 애플리케이션들의 각각의 애플리케이션은 상기 복수의 애플리케이션들의 각각의 애플리케이션에 의한 센서 데이터에 대한 요청의 일부분으로서 상기 센서 어드레싱 모듈로의 통신을 위해 상기 프로세서에 데이터 스트림 파라미터들의 세트를 제공하고,
    상기 복수의 출력 레지스터들은 상기 제 1 디지털 필터에 커플링된 제 1 출력 레지스터 및 상기 제 2 디지털 필터에 커플링된 제 2 출력 레지스터를 포함하고, 그리고
    상기 제 1 디지털 필터는 상기 제 1 교정 모듈을 통해 상기 제 1 출력 레지스터에 커플링되는,
    디바이스.
  13. 디바이스로서,
    센서 모듈로부터의 소스 센서 데이터 스트림을 인터셉트(intercept)하기 위한 수단;
    상기 소스 센서 데이터 스트림으로부터 도출되는 적어도 2개의 상이한 센서 데이터 스트림들을 생성하기 위한 수단;
    프로세서에 상기 적어도 2개의 상이한 센서 데이터 스트림들을 동시에 출력하기 위한 수단;
    상기 프로세서로부터 상기 센서 모듈로의 센서 데이터 스트림들에 대한 요청들을 인터셉트하기 위한 수단;
    상기 인터셉트된 센서 데이터 스트림들에 대한 요청들로부터의 요청된 센서 스트림 파라미터들에 매칭하도록 각각의 센서 데이터 스트림에 대한 센서 스트림 파라미터들의 세트를 조정하기 위한 수단;
    제 2 센서 모듈로부터의 제 2 소스 데이터 스트림을 인터셉트하기 위한 수단;
    상기 제 2 소스 센서 데이터 스트림으로부터 도출되는 제 2의 적어도 2개의 상이한 센서 데이터 스트림들을 생성하기 위한 수단; 및
    상기 프로세서에 상기 제 2의 적어도 2개의 상이한 센서 데이터 스트림들을 동시에 출력하기 위한 수단을 포함하는,
    디바이스.
  14. 컴퓨터 판독가능 명령들을 포함하는 비-일시적 컴퓨터 판독가능 저장 매체로서,
    상기 컴퓨터 판독가능 명령들은, 상기 저장 매체에 커플링된 프로세서에 의해 실행될 때, 디바이스로 하여금 상기 제1항 내지 제10항 중 어느 한 항의 방법을 수행하도록 하는,
    비-일시적 컴퓨터 판독가능 저장 매체.
  15. 삭제
  16. 삭제
  17. 삭제
  18. 삭제
  19. 삭제
  20. 삭제
KR1020157003859A 2012-07-17 2013-06-24 동일한 센서로부터의 다양한 파라미터들을 이용하는 동시적 데이터 스트리밍 KR102028141B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201261672677P 2012-07-17 2012-07-17
US61/672,677 2012-07-17
US13/799,201 US9462632B2 (en) 2012-07-17 2013-03-13 Concurrent data streaming using various parameters from the same sensor
US13/799,201 2013-03-13
PCT/US2013/047295 WO2014014618A2 (en) 2012-07-17 2013-06-24 Concurrent data streaming using various parameters from the same sensor

Publications (2)

Publication Number Publication Date
KR20150036601A KR20150036601A (ko) 2015-04-07
KR102028141B1 true KR102028141B1 (ko) 2019-10-02

Family

ID=49946512

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020157003859A KR102028141B1 (ko) 2012-07-17 2013-06-24 동일한 센서로부터의 다양한 파라미터들을 이용하는 동시적 데이터 스트리밍

Country Status (10)

Country Link
US (1) US9462632B2 (ko)
EP (1) EP2875416B1 (ko)
JP (1) JP6151357B2 (ko)
KR (1) KR102028141B1 (ko)
CN (1) CN104487914B (ko)
BR (1) BR112015001012B1 (ko)
ES (1) ES2710515T3 (ko)
IN (1) IN2015MN00036A (ko)
TW (1) TWI518513B (ko)
WO (1) WO2014014618A2 (ko)

Families Citing this family (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9641266B2 (en) 2012-07-17 2017-05-02 Qualcomm Incorporated Sensor with concurrent data streaming using various parameters
JP5445722B1 (ja) 2012-09-12 2014-03-19 オムロン株式会社 データフロー制御指令発生装置およびセンサ管理装置
US9816370B2 (en) * 2012-09-19 2017-11-14 Honeywell International Inc. System and method for optimizing an operation of a sensor used with wellbore equipment
WO2017019719A2 (en) * 2015-07-27 2017-02-02 Smash Solar, Inc. Sensing, interlocking solar panel system and installation method
EP2754524B1 (de) 2013-01-15 2015-11-25 Corning Laser Technologies GmbH Verfahren und Vorrichtung zum laserbasierten Bearbeiten von flächigen Substraten, d.h. Wafer oder Glaselement, unter Verwendung einer Laserstrahlbrennlinie
EP2781296B1 (de) 2013-03-21 2020-10-21 Corning Laser Technologies GmbH Vorrichtung und verfahren zum ausschneiden von konturen aus flächigen substraten mittels laser
US11556039B2 (en) 2013-12-17 2023-01-17 Corning Incorporated Electrochromic coated glass articles and methods for laser processing the same
US9517963B2 (en) 2013-12-17 2016-12-13 Corning Incorporated Method for rapid laser drilling of holes in glass and products made therefrom
US9607319B2 (en) 2013-12-30 2017-03-28 Adtile Technologies, Inc. Motion and gesture-based mobile advertising activation
US9436270B2 (en) * 2014-02-12 2016-09-06 Qualcomm Incorporated Wireless low-energy secure data transfer
CH709355A1 (it) * 2014-03-13 2015-09-15 Alessandro Pasquali Metodo e impianti per connessioni mediante raggi luminosi.
JP6364315B2 (ja) * 2014-07-04 2018-07-25 ルネサスエレクトロニクス株式会社 電子装置
US9815144B2 (en) 2014-07-08 2017-11-14 Corning Incorporated Methods and apparatuses for laser processing materials
CN107073642B (zh) 2014-07-14 2020-07-28 康宁股份有限公司 使用长度和直径可调的激光束焦线来加工透明材料的系统和方法
CN105806362B (zh) * 2014-12-30 2018-08-24 上海新跃仪表厂 一种ccd探测器辐射效应试验装置
HUE055461T2 (hu) 2015-03-24 2021-11-29 Corning Inc Kijelzõ üveg kompozíciók lézeres vágása és feldolgozása
WO2017011296A1 (en) 2015-07-10 2017-01-19 Corning Incorporated Methods of continuous fabrication of holes in flexible substrate sheets and products relating to the same
US9578493B1 (en) * 2015-08-06 2017-02-21 Adtile Technologies Inc. Sensor control switch
US10437463B2 (en) 2015-10-16 2019-10-08 Lumini Corporation Motion-based graphical input system
US10458812B2 (en) * 2015-10-30 2019-10-29 Invensense, Inc. Sensor output configuration
KR102525295B1 (ko) * 2016-01-06 2023-04-25 삼성전자주식회사 데이터 관리 방법 및 장치
JP6447530B2 (ja) * 2016-01-29 2019-01-09 オムロン株式会社 信号処理装置、信号処理装置の制御方法、制御プログラム、および記録媒体
JP6447531B2 (ja) 2016-01-29 2019-01-09 オムロン株式会社 信号処理装置、信号処理装置の制御方法、制御プログラム、および記録媒体
US10196152B2 (en) 2016-03-29 2019-02-05 Simmonds Precision Products, Inc. Sensor data processing for condition monitoring systems
KR102078294B1 (ko) 2016-09-30 2020-02-17 코닝 인코포레이티드 비-축대칭 빔 스폿을 이용하여 투명 워크피스를 레이저 가공하기 위한 기기 및 방법
KR102428350B1 (ko) 2016-10-24 2022-08-02 코닝 인코포레이티드 시트형 유리 기판의 레이저 기반 기계 가공을 위한 기판 프로세싱 스테이션
CN106643604A (zh) * 2016-12-29 2017-05-10 成都多沐汽车工程有限公司 数据交互方法及装置、数字化检具系统
US9983687B1 (en) 2017-01-06 2018-05-29 Adtile Technologies Inc. Gesture-controlled augmented reality experience using a mobile communications device
CN107623789A (zh) * 2017-09-26 2018-01-23 惠州Tcl移动通信有限公司 移动终端及磁传感器数据控制方法、及存储介质
CN108770048B (zh) * 2018-04-28 2021-05-18 Oppo广东移动通信有限公司 功耗控制方法及相关装置
US11068530B1 (en) * 2018-11-02 2021-07-20 Shutterstock, Inc. Context-based image selection for electronic media
US10728633B2 (en) * 2018-12-19 2020-07-28 Simmonds Precision Products, Inc. Configurable distributed smart sensor system

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090003599A1 (en) 2007-06-29 2009-01-01 Honeywell International, Inc. Systems and methods for publishing selectively altered sensor data in real time
US20120083911A1 (en) 2010-09-30 2012-04-05 Apple Inc. Communicating sensor data between electronic devices

Family Cites Families (28)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR940004404B1 (ko) 1990-11-30 1994-05-25 삼성전자 주식회사 불휘발성 반도체 메모리장치
US6362737B1 (en) * 1998-06-02 2002-03-26 Rf Code, Inc. Object Identification system with adaptive transceivers and methods of operation
DE10007813A1 (de) 2000-02-21 2001-09-06 Becker Gmbh Navigationssystem für ein Kraftfahrzeug und Verfahren zum Betreiben eines Navigationssystems
CA2418612C (en) 2002-12-06 2005-12-27 Marian Gavrila Hybrid communication terminal - alarm system
EP1627524A4 (en) 2003-03-20 2009-05-27 Ge Security Inc SYSTEMS AND METHODS FOR PROCESSING IMAGES OF MULTIPLE RESOLUTIONS
JP5028751B2 (ja) 2005-06-09 2012-09-19 ソニー株式会社 行動認識装置
EP2054804B1 (en) * 2006-04-07 2017-05-17 Qualcomm Incorporated Sensor interface, and methods and apparatus pertaining to same
US20100005117A1 (en) 2006-07-28 2010-01-07 Koninklijke Philips Electronics N. V. Distributed shared data space for personal health systems
US8769485B2 (en) 2006-12-04 2014-07-01 Tibco Software, Inc. Data parallelism and parallel operations in stream processing
WO2008090487A1 (en) 2007-01-22 2008-07-31 Nxp B.V. Computer device and method for adapting the compression rate of digital images
US8037485B1 (en) 2007-09-04 2011-10-11 Adobe Systems Incorporated Abstracting data acquisition and management
WO2009105709A1 (en) 2008-02-21 2009-08-27 Dexcom, Inc. Systems and methods for processing, transmitting and displaying sensor data
US8797178B2 (en) 2008-03-10 2014-08-05 Microsoft Corporation Efficient stream sharing for multi-user sensor data collection
US8212720B2 (en) 2008-09-24 2012-07-03 Texas Instruments Incorporated Detecting lack of movement to aid GNSS receivers
US20100097464A1 (en) 2008-10-17 2010-04-22 Volpe Industries Network video surveillance system and recorder
US9398536B2 (en) 2009-05-29 2016-07-19 Qualcomm Incorporated Method and apparatus for movement detection by evaluating elementary movement patterns
US9074897B2 (en) 2009-06-15 2015-07-07 Qualcomm Incorporated Real-time data with post-processing
US8645093B2 (en) * 2009-11-04 2014-02-04 Qualcomm Incorporated Calibrating multi-dimensional sensor for offset, sensitivity, and non-orthogonality
US8781737B2 (en) 2009-11-20 2014-07-15 Qualcomm Incorporated Spatial alignment determination for an inertial measurement unit (IMU)
US8612146B2 (en) 2010-02-15 2013-12-17 Texas Instruments Incorporated Accelerometer-aided gyroscope
US8310380B2 (en) 2010-03-02 2012-11-13 Invensense Inc. Selectable communication interface configurations for motion sensing device
US8271235B2 (en) 2010-03-30 2012-09-18 Qualcomm Incorporated Efficient concurrent sampling at different rates
EP2447667B1 (en) 2010-10-26 2015-11-11 BlackBerry Limited System and method for calibrating a magnetometer according to a quality threshold
US20120101762A1 (en) 2010-10-26 2012-04-26 Research In Motion Limited System and Method for Calibrating a Magnetometer Using Partial and Full Calibrations
ES2562704T3 (es) 2010-12-30 2016-03-07 Ar Innovation Ag Método para configurar un sensor de movimiento, así como un sensor de movimiento configurable y un sistema para configurar dicho sensor de movimiento
US8676528B2 (en) * 2011-02-08 2014-03-18 Blackberry Limited System and method for calibrating an accelerometer
US9541393B2 (en) * 2011-06-30 2017-01-10 Qualcomm Incorporated Reducing power consumption or error of digital compass
US9641266B2 (en) 2012-07-17 2017-05-02 Qualcomm Incorporated Sensor with concurrent data streaming using various parameters

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090003599A1 (en) 2007-06-29 2009-01-01 Honeywell International, Inc. Systems and methods for publishing selectively altered sensor data in real time
US20120083911A1 (en) 2010-09-30 2012-04-05 Apple Inc. Communicating sensor data between electronic devices

Also Published As

Publication number Publication date
US20140023087A1 (en) 2014-01-23
CN104487914B (zh) 2017-08-04
TWI518513B (zh) 2016-01-21
WO2014014618A3 (en) 2014-02-13
BR112015001012B1 (pt) 2022-03-15
ES2710515T3 (es) 2019-04-25
KR20150036601A (ko) 2015-04-07
EP2875416A2 (en) 2015-05-27
JP2015524970A (ja) 2015-08-27
BR112015001012A2 (pt) 2017-06-27
TW201405318A (zh) 2014-02-01
US9462632B2 (en) 2016-10-04
EP2875416B1 (en) 2018-12-12
JP6151357B2 (ja) 2017-06-21
CN104487914A (zh) 2015-04-01
WO2014014618A2 (en) 2014-01-23
IN2015MN00036A (en) 2015-10-16

Similar Documents

Publication Publication Date Title
KR102028141B1 (ko) 동일한 센서로부터의 다양한 파라미터들을 이용하는 동시적 데이터 스트리밍
US10530511B2 (en) Sensor with concurrent data streaming using various parameters
US10484589B2 (en) Electronic device and image capturing method thereof
US10831792B2 (en) Sensor information using method and electronic device using the same
US10429722B2 (en) Camera lens assembly
EP3342150B1 (en) Electronic device
US10547788B2 (en) Electronic device including camera and acoustic component with limited interference therebetween
CN108353152B (zh) 图像处理设备及其操作方法
KR102506428B1 (ko) 전자 장치 및 이의 노이즈 제어 방법
CN108293095B (zh) 图像传感器、包括该图像传感器的电子设备及其操作方法
KR102433293B1 (ko) 전자 장치 및 전자 장치의 제어 방법
EP3905661A1 (en) Electronic device and method for recommending image capturing place
KR20180038892A (ko) 영상 처리 방법 및 이를 지원하는 전자 장치
KR20180008043A (ko) 전자 장치 및 전자 장치 제어 방법

Legal Events

Date Code Title Description
A302 Request for accelerated examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant