KR20220016489A - 웨어러블 디바이스 로케이션 정확도 시스템들 - Google Patents

웨어러블 디바이스 로케이션 정확도 시스템들 Download PDF

Info

Publication number
KR20220016489A
KR20220016489A KR1020217042616A KR20217042616A KR20220016489A KR 20220016489 A KR20220016489 A KR 20220016489A KR 1020217042616 A KR1020217042616 A KR 1020217042616A KR 20217042616 A KR20217042616 A KR 20217042616A KR 20220016489 A KR20220016489 A KR 20220016489A
Authority
KR
South Korea
Prior art keywords
location
content
client
data
wearable device
Prior art date
Application number
KR1020217042616A
Other languages
English (en)
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 KR20220016489A publication Critical patent/KR20220016489A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3296Power saving characterised by the action undertaken by lowering the supply or operating voltage
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/01Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/13Receivers
    • G01S19/34Power consumption
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/01Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/13Receivers
    • G01S19/14Receivers specially adapted for specific applications
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/01Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/13Receivers
    • G01S19/24Acquisition or tracking or demodulation of signals transmitted by the system
    • G01S19/25Acquisition or tracking or demodulation of signals transmitted by the system involving aiding data received from a cooperating element, e.g. assisted GPS
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/01Satellite radio beacon positioning systems transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/13Receivers
    • G01S19/24Acquisition or tracking or demodulation of signals transmitted by the system
    • G01S19/25Acquisition or tracking or demodulation of signals transmitted by the system involving aiding data received from a cooperating element, e.g. assisted GPS
    • G01S19/258Acquisition or tracking or demodulation of signals transmitted by the system involving aiding data received from a cooperating element, e.g. assisted GPS relating to the satellite constellation, e.g. almanac, ephemeris data, lists of satellites in view
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/38Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system
    • G01S19/39Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system the satellite radio beacon positioning system transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/396Determining accuracy or reliability of position or pseudorange measurements
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S19/00Satellite radio beacon positioning systems; Determining position, velocity or attitude using signals transmitted by such systems
    • G01S19/38Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system
    • G01S19/39Determining a navigation solution using signals transmitted by a satellite radio beacon positioning system the satellite radio beacon positioning system transmitting time-stamped messages, e.g. GPS [Global Positioning System], GLONASS [Global Orbiting Navigation Satellite System] or GALILEO
    • G01S19/40Correcting position, velocity or attitude
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01SRADIO DIRECTION-FINDING; RADIO NAVIGATION; DETERMINING DISTANCE OR VELOCITY BY USE OF RADIO WAVES; LOCATING OR PRESENCE-DETECTING BY USE OF THE REFLECTION OR RERADIATION OF RADIO WAVES; ANALOGOUS ARRANGEMENTS USING OTHER WAVES
    • G01S5/00Position-fixing by co-ordinating two or more direction or position line determinations; Position-fixing by co-ordinating two or more distance determinations
    • G01S5/01Determining conditions which influence positioning, e.g. radio environment, state of motion or energy consumption
    • G01S5/017Detecting state or type of motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/163Wearable computers, e.g. on a belt
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/16Constructional details or arrangements
    • G06F1/1613Constructional details or arrangements for portable computers
    • G06F1/1633Constructional details or arrangements of portable computers not specific to the type of enclosures covered by groups G06F1/1615 - G06F1/1626
    • G06F1/1684Constructional details or arrangements related to integrated I/O peripherals not covered by groups G06F1/1635 - G06F1/1675
    • G06F1/1694Constructional details or arrangements related to integrated I/O peripherals not covered by groups G06F1/1635 - G06F1/1675 the I/O peripheral being a single or a set of motion sensors for pointer control or gesture input obtained by sensing movements of the portable computer
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3206Monitoring of events, devices or parameters that trigger a change in power modality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F1/00Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
    • G06F1/26Power supply means, e.g. regulation thereof
    • G06F1/32Means for saving power
    • G06F1/3203Power management, i.e. event-based initiation of a power-saving mode
    • G06F1/3234Power saving characterised by the action undertaken
    • G06F1/3287Power saving characterised by the action undertaken by switching off individual functional units in the computer system
    • 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/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • 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/025Services making use of location information using location based information parameters
    • H04W4/027Services making use of location information using location based information parameters using movement velocity, acceleration 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/029Location-based management or tracking services
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/18Information format or content conversion, e.g. adaptation by the network of the transmitted or received information for the purpose of wireless delivery to users or terminals
    • H04W4/185Information format or content conversion, e.g. adaptation by the network of the transmitted or received information for the purpose of wireless delivery to users or terminals by embedding added-value information into content, e.g. geo-tagging
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/70Services for machine-to-machine communication [M2M] or machine type communication [MTC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/80Services using short range communication, e.g. near-field communication [NFC], radio-frequency identification [RFID] or low energy communication
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W4/00Services specially adapted for wireless communication networks; Facilities therefor
    • H04W4/02Services making use of location information

Landscapes

  • Engineering & Computer Science (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Computing Systems (AREA)
  • Telephone Function (AREA)
  • Studio Devices (AREA)

Abstract

웨어러블 전자 디바이스들에서의 로케이션 관리 프로세스들을 위한 시스템들, 방법들, 디바이스들, 컴퓨터 판독가능 매체들, 및 다른 다양한 실시예들이 설명된다. 일 실시예는 클라이언트 디바이스와 웨어러블 디바이스를 페어링하는 것, 클라이언트 디바이스의 제1 애플리케이션 및 로케이션 회로를 사용하여 제1 시간에 제1 클라이언트 로케이션 결정을 캡처하는 것을 포함한다. 그 후 클라이언트 디바이스는 웨어러블 디바이스로부터 콘텐츠를 수신하는데, 여기서 콘텐츠는 콘텐츠 캡처 시간 및 로케이션 상태 데이터와 연관된다. 그 후 클라이언트 디바이스는 상이한 로케이션 데이터 세트들을 조정하기 위해 이용가능한 데이터에 기초하여 로케이션을 업데이트한다. 일부 실시예들에서, 가속도계로부터의 데이터와 같은 추가 센서 데이터를 이용하여, 특정 콘텐츠에 대해 어느 로케이션 데이터가 더 정확한지를 결정한다.

Description

웨어러블 디바이스 로케이션 정확도 시스템들
본 출원은 2019년 5월 30일자로 출원된 미국 특허 출원 일련 번호 제16/426,857호의 우선권을 주장하며, 이 출원은 그 전체가 본 명세서에 참조로 포함된다.
본 개시내용의 실시예들은 일반적으로 모바일 컴퓨팅 기술 및 웨어러블 디바이스 기술에 관한 것으로, 보다 상세하게는, 전력 및 컴퓨팅 자원 제한 환경에서 로케이션 서비스들을 갖는 방법들 및 디바이스들에 관한 것인데, 이들로만 제한되지는 않는다.
안경 및 시계와 같은 웨어러블 디바이스들은 많은 형태로 출현하고 있지만, 회로 및 전력을 위한 제한된 공간을 갖는다. 그럼에도 불구하고, 웨어러블 제품들의 폼 팩터 및 습관적 사용은 타깃팅된 단일 기능 디바이스들과는 별개의 이점들을 제공한다. 이 때문에, 손목 밴드들, 안경들, 및 제한된 폼 팩터들을 갖는 다른 그러한 디바이스들과 같은 웨어러블 디바이스들은 추가 기능성을 계속 포함하고 있다. 그렇기는 하지만, 공간 및 전력 자원들의 제한은 웨어러블 디바이스 공간에서의 계속적인 혁신을 추구하게 만든다.
첨부된 도면들의 다양한 것들은 본 개시내용의 예시적인 실시예를 나타낼 뿐이고 그 범위를 제한하는 것으로서 간주되어서는 안 된다.
도 1은 본 명세서에 설명된 다양한 실시예들에 따른 사용을 위한 웨어러블 디바이스를 도시한다.
도 2는 본 명세서에 설명된 일부 실시예들에 따른, 웨어러블 디바이스의 양태들을 도시한다.
도 3은 일부 실시예들에 따른, 연관된 클라이언트 디바이스들 및 지원 시스템들과 연계된, 웨어러블 디바이스 동작을 위한 시스템의 양태들을 도시한다.
도 4는 본 명세서에 설명된 일부 실시예들에 따른, 웨어러블 디바이스의 양태들을 도시한다.
도 5는 본 명세서에 설명된 일부 실시예들에 따른, 웨어러블 디바이스의 양태들을 도시한다.
도 6은 본 명세서에 설명된 일부 실시예들에 따른, 예시적인 방법을 도시한다.
도 7은 본 명세서에 설명된 일부 실시예들에 따른, 웨어러블 디바이스 로케이션 동작들의 양태들을 도시한다.
도 8은 본 명세서에 설명된 일부 실시예들에 따른, 예시적인 방법을 도시한다.
도 9는 본 명세서에 설명된 일부 실시예들에 따른, 웨어러블 디바이스 로케이션 동작들의 양태들을 도시한다.
도 10은 본 명세서에 설명된 일부 실시예들에 따른, 예시적인 방법을 도시한다.
도 11은 일부 실시예들에 따른, 연관된 클라이언트 디바이스들 및 지원 서버 컴퓨터 시스템들과 연계된, 웨어러블 디바이스 동작을 위한 통신 환경의 양태들을 도시한다.
도 12는 일부 예시적인 실시예들에 따른, 머신 상에 설치될 수 있는 소프트웨어 아키텍처의 예를 도시하는 블록도이다.
도 13은 일부 예시적인 실시예들에 따른, 머신으로 하여금 본 명세서에서 논의된 방법론들 중 임의의 하나 이상을 수행하게 야기하기 위한 명령어들의 세트가 그 내에서 실행될 수 있는 컴퓨터 시스템 형태의 머신의 개략도를 도시한다.
본 명세서에 설명된 실시예들은 모바일 컴퓨팅 기술 및 웨어러블 건강 기술에 관한 것으로, 더 구체적으로는, 상당한 컴퓨팅 자원 제한(예를 들어, 배터리 전력)을 갖는 웨어러블 디바이스를 이용하여 생성된 콘텐츠에 대한 로케이션 데이터를 인에이블하기 위한 방법 및 디바이스에 관한 것인데, 이에 제한되는 것은 아니다.
예를 들어, 웨어러블 디바이스가 이미지들 또는 비디오 클립들을 발생하기 위해 사용될 때, 로케이션 태깅으로 이 데이터에 컨텍스트를 추가하는 것이 바람직하다. 이 로케이션 데이터를 효과적으로 제공하기 위해, 웨어러블 디바이스에서 생성된 콘텐츠에 합리적으로 일관된 데이터 세트를 제공하기 위해 로케이션 인식 하드웨어가 필요하다. 동시에, 웨어러블 디바이스들은 로케이션 서비스들과 같은 특징들을 가능케 하기 위해 이용가능한 공간의 관점에서 상당한 제한들을 포함한다. 이는 디바이스 로케이션을 끊임없이 업데이트하도록 구성될 수 있는 표준 로케이션 서비스들에 대해 특히 그러하다. 그러나, 웨어러블 디바이스들에 대한 전력 제한들은 끊임없는 로케이션 업데이트들을 실행불가능하게 한다. 본 명세서에설명된 실시예들은 로케이션 데이터가 콘텐츠와 동일 시간에 캡처되지 않을 때 콘텐츠에 대한 로케이션 추정을 시도하기 위해 이용가능한 로케이션 데이터를 사용한다. 다양한 로케이션 데이터 세트가 콘텐츠 캡처의 로케이션 추정으로서 콘텐츠에 대해 조정된다. 이는 디바이스들이 향상된 출력(예를 들어, 특정 환경들에서 태깅하는 향상된 콘텐츠 로케이션 정확도를 갖는 콘텐츠)을 갖게 함으로써 디바이스들의 동작에 있어서 개선을 이루어낸다.
본 명세서에 설명된 실시예들은 추가로 웨어러블 카메라 디바이스에 의해 생성된 콘텐츠에 대한 로케이션 데이터를 제공하는 데 필요한 자원들을 감소시킴으로써 웨어러블 디바이스들에 대한 개선을 제공한다. 이 개선된 디바이스 성능은 로케이션 회로의 효율적인 사용, 초기 로케이션 결정을 위한 시간을 감소시키기 위한 지원 데이터의 사용, 및 다른 소스들로부터의 데이터와 조합된 웨어러블 디바이스로부터의 제한된 전력 효율적인 로케이션 데이터가 이미지들 및 비디오 클립들에 대한 일관된 로케이션 데이터를 제공하는 것을 허용하기 위해 다른 소스들로부터의 로케이션 데이터의 병합의 조합에 의해 제공된다.
일부 실시예들에서, 웨어러블 디바이스의 동작은 고속 회로, 저전력 회로, 및 로케이션 회로의 조합의 이용에 의해 개선된다. 저전력 회로는, 고속 회로 및 로케이션 회로가 더 많은 전력을 소비하므로, 전력 사용을 최소화하기 위해 로케이션 회로 내의 고속 회로의 부팅을 관리한다. 또한, 로케이션 회로에 의한 전력 사용을 최소화하기 위해, 디바이스가 로케이션 결정을 개시할 때 로케이션 회로에 의한 처음 결정까지의 시간을 줄이기 위한 지원 데이터가 고속 회로로부터 로케이션 회로로 자동으로 통신된다. 저전력 회로는 고속 회로 및 로케이션 회로를 가능할 때마다 저전력 상태로 복귀시킨다.
추가적으로, 웨어러블 디바이스의 로케이션을 계속 업데이트하기보다는, 로케이션 결정은 트리거 이벤트가 발생할 때 또는 주기적으로만 개시된다. 예를 들어, 웨어러블 디바이스 상의 회로가 디바이스가 착용되어 있다고 결정할 때 15분 또는 30분마다 로케이션 결정이 시도될 수 있다. 착용 상태 결정은 관성 측정 유닛 또는 주변 광 센서와 같은 주변 센서들에 기초할 수 있다. 일부 실시예들에서, 저전력 회로 상에서 동작하는 신경망은 이러한 센서들로부터의 입력들을 사용하여 착용 상태 결정을 구현할 수 있다. 디바이스가 착용되어 있지 않으면(예를 들어, 착용 상태와 연관되어 있지 않으면), 어떠한 로케이션 결정도 시도되지 않을 것이다. 저전력 신경망 회로는 디바이스가 착용되어 있는지의 결정을 가능하게 하기 위해 저전력 회로의 일부일 수 있다. 이러한 동작들은 이 결정을 하기 위해 웨어러블 디바이스 상의 센서들로부터의 간단한 모션 데이터 또는 광 감지 데이터를 사용할 수 있다. 트리거 이벤트는 이미지 또는 비디오 클립을 캡처하는 입력의 수신일 수 있다. 일단 이러한 입력이 수신되면, 웨어러블 디바이스는 로케이션 결정을 개시할 수 있다. 디바이스가 로케이션을 결정할 수 없는 경우, 이전 결정으로부터의 로케이션 데이터의 이전 세트가 캡처된 데이터에 대해 사용될 수 있다. 캡처된 콘텐츠가 연관된 셀 폰과 같은 클라이언트 디바이스에 나중에 다운로드될 때, 클라이언트 디바이스는 클라이언트 디바이스에 의해 캡처된 로케이션 데이터로부터 더 정확한 로케이션 데이터가 이용가능한지를 결정할 수 있다. 그 후, 콘텐츠와 연관된 로케이션 데이터가 클라이언트 디바이스에서 업데이트될 수 있다.
저전력 사용으로 생성된 로케이션 데이터로 웨어러블 디바이스들의 동작을 개선하기 위한 실시예들의 다양한 추가적인 상세사항들 및 조합들이 아래에 상세히 설명된다.
도 1은 다양한 개시된 실시예들을 구현하는 웨어러블 전자 디바이스의 예시적인 실시예들의 양태들을 예시하며, 전자 디바이스는 연관된 로케이션 정보를 갖는 이미지 및 비디오 콘텐츠를 통신하기 위해 네트워크 시스템 내에서 추가로 동작할 수 있는 전자기기-가능형 안경(31)에 의해 구성되는 안경류의 예시적인 형태로 되어 있다. 도 1은 안경(31)의 정면 사시도를 보여준다. 안경(31)은, 임의의 적절한 형상 기억 합금(shape memory alloy)을 포함하여, 플라스틱 또는 금속과 같은 임의의 적절한 재료로 만들어진 프레임(32)을 포함할 수 있다. 프레임(32)은, 브릿지(38)에 의해 연결된, 제1 또는 좌측 렌즈, 디스플레이, 또는 광학 요소 홀더(36), 및 제2 또는 우측 렌즈, 디스플레이, 또는 광학 요소 홀더(37)를 포함할 수 있는 전면 피스(front piece)(33)를 가질 수 있다. 전면 피스(33)는 좌측 단부(left end portion)(41) 및 우측 단부(42)를 추가로 포함한다. 제1 또는 좌측 광학 요소(44) 및 제2 또는 우측 광학 요소(43)는 각자의 좌측 및 우측 광학 요소 홀더들(36, 37) 내에 제공될 수 있다. 광학 요소들(43, 44) 각각은 렌즈, 디스플레이, 디스플레이 어셈블리, 또는 이들의 조합일 수 있다. 일부 실시예들에서, 예를 들어, 안경(31)에는, 예컨대, 안경(31)의 카메라들(69)에 의해 캡처된 시각적 미디어에 대한 미리보기 이미지(preview image)들을 사용자에게 디스플레이 가능하게 하는 통합된 근안용 디스플레이 메커니즘(near-eye display mechanism)이 제공된다.
프레임(32)은, 전면 피스(33)에 결합되도록 힌지(도시되지 않음)와 같은 임의의 적절한 수단에 의해 전면 피스(33)의 각자의 좌측 및 우측 단부들(41, 42)에 결합되거나, 전면 피스(33)와 일체가 되도록 전면 피스(33)에 견고하게 또는 고정적으로 고정된 좌측 아암 또는 안경다리 피스(46) 및 우측 아암 또는 안경다리 피스(47)를 추가로 포함한다. 안경다리 피스들(46, 47) 각각은 전면 피스(33)의 각자의 단부(41 또는 42)에 결합되는 제1 부분(51) 및 사용자의 귀에 결합하기 위한 만곡 피스 또는 아치 피스와 같은 임의의 적절한 제2 부분(52)을 포함할 수 있다. 일 실시예에서, 전면 피스(33)는 단일 또는 일체형 구조를 갖도록 단일 재료 피스(single piece of material)로 형성될 수 있다. 일 실시예에서, 전체 프레임(32)은 단일 또는 일체형 구조를 갖도록 단일 재료 피스로 형성될 수 있다.
안경(31)은, 프레임(32)에 의해 운반되도록 임의의 적절한 유형의 것일 수 있고 또한 일 실시예에서는, 안경다리 피스들(46 및 47) 중 하나에 적어도 부분적으로 배치되도록 적절한 크기 및 형상의 것일 수 있는, 컴퓨터(61)와 같은 컴퓨팅 디바이스를 포함할 수 있다. 일 실시예에서, 도 16에 예시된 바와 같이, 컴퓨터(61)는 안경다리 피스들(46, 47) 중 하나의 안경다리의 크기 및 형상과 유사한 크기 및 형상을 가지므로, 완전히는 아니더라도 거의 완전히 안경다리 피스들(46 및 47)의 구조 및 경계 내에 배치된다. 일 실시예에서, 컴퓨터(61)는 안경다리 피스들(46, 47) 둘 모두에 배치될 수 있다. 컴퓨터(61)는 메모리를 갖는 하나 이상의 프로세서, 무선 통신 회로, 및 전원을 포함할 수 있다. 컴퓨터(61)는 저전력 회로, 고속 회로, 로케이션 회로, 및 디스플레이 프로세서를 포함한다. 다양한 다른 실시예는 이들 요소들을 상이한 구성들로 포함하거나 또는 상이한 방식들로 함께 통합할 수 있다. 컴퓨터(61)의 양태의 추가적인 상세사항은 이하의 설명을 참조하여 설명된 바와 같이 구현될 수 있다.
컴퓨터(61)는 배터리(62) 또는 다른 적절한 휴대용 전원을 추가로 포함한다. 일 실시예에서, 배터리(62)는 안경다리 피스들(46 또는 47) 중 하나에 배치된다. 도 1에 도시된 안경(31)에서, 배터리(62)는 좌측 안경다리 피스(46)에 배치되고 연결(74)을 이용하여 우측 안경다리 피스(47)에 배치된 컴퓨터(61)의 나머지에 전기적으로 결합되는 것으로 도시되어 있다. 하나 이상의 입력 및 출력 디바이스는 프레임(32)의 외부로부터 액세스가능한, 배터리(62)를 충전하기에 적합한 커넥터 또는 포트(도시되지 않음), 무선 수신기, 송신기, 또는 송수신기(도시되지 않음), 또는 이러한 디바이스들의 조합을 포함할 수 있다.
안경(31)은 디지털 카메라들(69)을 포함한다. 2개의 카메라(69)가 묘사되지만, 다른 실시예들은 단일 또는 추가(즉, 2개보다 많은) 카메라(69)의 사용을 고려한다. 설명을 용이하게 하기 위해, 카메라들(69)에 관련된 다양한 피처가 단 하나의 카메라(69)를 참조하여 더 설명될 것이지만, 이러한 피처들은 적절한 실시예들에서 카메라들(69) 둘 다에 적용될 수 있음을 알 것이다.
다양한 실시예에서, 안경(31)은 카메라(69) 외에도 임의 수의 입력 센서 또는 주변 디바이스를 포함할 수 있다. 전면 피스(33)에는, 안경(31)이 사용자의 얼굴에 장착될 때 사용자로부터 전방 또는 외측을 향하는 외측, 전방, 전면, 또는 외측 면(66), 및 안경(31)이 사용자의 얼굴에 장착될 때 사용자의 얼굴을 향하는 대향하는 내측, 후방, 후면, 또는 내측 면(67)이 제공된다. 이러한 센서들은 사용자를 향하도록 전면 피스(33)의 내부 면(67) 또는 프레임(32) 상의 다른 곳에 장착되거나 제공될 수 있는 카메라들(69)과 같은 내향 비디오 센서들 또는 디지털 이미징 모듈들, 및 사용자로부터 멀리 향하도록 전면 피스(33)의 외부 면(66) 또는 프레임(32) 상의 다른 곳에 장착되거나 제공될 수 있는 카메라들(69)과 같은 외향 비디오 센서들 또는 디지털 이미징 모듈들을 포함할 수 있다. 그러한 센서들, 주변 디바이스들, 또는 주변 기기들은 바이오메트릭 센서(biometric sensor), 로케이션 센서(location sensor), 가속도계(accelerometer), 또는 임의의 다른 그러한 센서들을 추가로 포함할 수 있다.
안경(31)은 사용자에 의한 햅틱 또는 수동 관여(manual engagement)를 위해 프레임(32) 상에 장착된 카메라 제어 버튼을 포함하는 카메라 제어 메커니즘 또는 사용자 입력 메커니즘의 예시적인 실시예를 추가로 포함한다. 카메라 제어 버튼은 단지 2개의 조건, 즉 관여 조건(engaged condition)과 비관여 조건(disengaged condition) 사이에서 사용자에 의해 처분될 수 있다는 점에서 바이모달(bi-modal) 또는 싱글 액션(single-action) 메커니즘을 제공한다. 이 예시적인 실시예에서, 카메라 제어 버튼은 디폴트로는 비관여 상태에 있고, 그것을 관여 상태로 처분하기 위해 사용자에 의해 눌리어질 수 있는 푸시 버튼이다. 눌리어진 카메라 제어 버튼의 해제 시에, 그것은 비관여 상태로 자동으로 복귀한다.
다른 실시예들에서, 싱글 액션 입력 메커니즘은, 예를 들어, 사용자가 프레임(32)의 외부 면(66) 상의 대응하는 지점에 손가락을 터치할 때 터치 감지 버튼을 관여 상태로 처분하기 위해, 사용자의 손가락의 존재를 검출하기 위한, 그 면에 인접한 프레임(32) 상에 장착된 용량성 센서를 포함하는 터치 감지 버튼에 의해 대신 제공될 수 있다. 전술한 카메라 제어 버튼 및 용량성 터치 버튼은 카메라(69)의 싱글 액션 제어를 위한 햅틱 입력 메커니즘의 2개의 예일 뿐이며, 다른 실시예들은 상이한 싱글 액션 햅틱 제어 배열들을 이용할 수 있다는 것을 알 것이다.
도 2는 안경(31) 형태의 예시적인 전자 디바이스의 컴포넌트들 중 일부를 예시하는 개략도이다. 상호작용하는 머신 컴포넌트들의 대응하는 배열이 본 개시내용과 일치하는 전자 디바이스가, 예를 들어, 웨어러블 디바이스(예를 들어, 안경(31)), 스마트폰, 태블릿, 또는 디지털 카메라와 같은 모바일 전자 디바이스를 포함하는 실시예들에 적용될 수 있다는 점에 유의한다. 안경(31)의 컴퓨터(61)는 온보드 메모리(226)와 통신 상태에 있는 중앙 프로세서(221)를 포함한다. 중앙 프로세서(221)는 중앙 처리 장치 및/또는 그래픽 처리 장치일 수 있다. 이 예시적인 실시예에서의 메모리(226)는 플래시 메모리와 랜덤 액세스 메모리의 조합을 포함한다. 도 2의 디바이스(31)는 GPS 프로세서(256)를 추가로 포함한다. GPS 프로세서(256)가 GPS(global positioning system)라고 지칭되지만, 임의의 로케이션 시스템 또는 GNSS(global navigation satellite system) 지원 회로가 다양한 실시예들에서 GPS 시스템들, 로케이션 시스템들, 로케이션 회로, 로케이션 회로들, 로케이션 또는 GPS 프로세서들(256), 또는 다른 이러한 용어들로서 본 명세서에서 지칭되는 요소들의 일부로서 사용될 수 있다. 본 명세서에서 설명되는 바와 같이, 그러한 디바이스들은 디바이스의 현재 로케이션을 추정하기 위해 로케이션 연산들 또는 로케이션 "결정(fix)" 연산들을 수행하기 위해 사용된다. 또한, "처음 결정까지의 시간(time to first fix)"은 로케이션 연산을 개시하는 것으로부터 연관된 로케이션 데이터를 생성하는 것까지의 시간을 지칭한다. 성공적인 로케이션 결정은 로케이션과 연관된 데이터 세트를 야기하지만, 이러한 데이터는 상당한 연관된 불확실성을 가질 수 있다. 본 명세서에 설명된 다양한 실시예들은 웨어러블 디바이스에서의 로케이션 연산들의 전력 사용을 더 감소시키기 위해 전력 소비 및 처음 결정까지의 시간에 대한 정확도의 트레이드오프들을 사용할 수 있다. 또한, 회로가 로케이션을 결정할 수 없을 때 로케이션 연산들을 계속하기보다는, 본 명세서의 실시예들은 로케이션 데이터가 이용가능하지 않거나 결정하기 어려운 환경에 웨어러블 디바이스가 있을 때 전력 사용을 제한하기 위해 비교적 낮은 타임아웃 임계값을 사용할 수 있다. 이러한 환경들은 실내 로케이션에서 또는 장애물들이 로케이션 회로가 관련 위성 정보에 액세스하는 것을 방해하는 곳에서 발생할 수 있다. 전력을 소비하기보다는, 타임아웃(예를 들어, 30초, 60초, 2분)이 로케이션 데이터를 생성하려고 시도하는데 소비되는 자원들을 제한하는데 사용될 수 있다. 대신에, 본 명세서의 실시예들은 단순히 로케이션 실패 또는 타임아웃 응답을 제공할 수 있고, 또 다른 디바이스(예를 들어, 페어링된 클라이언트 또는 전화 디바이스)로부터의 이전 로케이션 결정 또는 로케이션 데이터에 의존할 수 있다. 대안으로서 또는 추가로, 디바이스는 자동(예를 들어, GNSS) 로케이션 시스템을 통해 로케이션 데이터가 이용가능하지 않을 때 추정된 로케이션을 입력할 것을 사용자에게 촉구할 수 있다.
안경(31)은 중앙 프로세서(221) 및 카메라(69)와 통신 상태에 있는 카메라 제어기(214)를 추가로 포함한다. 카메라 제어기(214)는 카메라 제어 버튼을 포함하는 싱글 액션 입력 메커니즘(도 2의 싱글 액션 입력 메커니즘(235)에 의해 일반적으로 표시됨)으로부터 수신된 제어 신호들의 처리에 기초하여 사진 콘텐츠 또는 비디오 콘텐츠의 기록을 제어하고, 또한 카메라(69)에 의한 이미지 데이터의 캡처에 관한 하나 이상의 이미지 캡처 파라미터의 자동 조정 및 그 영속 저장 전의 및/또는 보기 또는 미리보기를 위한 사용자에의 그의 프레젠테이션 전에 이미지 데이터의 온보드 처리를 제공하도록 구성되는 회로를 포함한다.
일부 실시예들에서, 카메라 제어기(214)는 본 명세서에 설명된 다양한 기능들을 수행하도록 구성된 펌웨어 또는 주문형 집적 회로(ASIC)와 같은 영구적으로 구성된 회로를 포함한다. 다른 실시예들에서, 카메라 제어기(214)는 본 명세서에 설명된 다양한 기능들을 실행하도록 프로세서를 일시적으로 구성하는 명령어들을 실행하는 동적 재구성가능 프로세서를 포함할 수 있다.
카메라 제어기(214)는 메모리(226)와 상호작용하여, 사진 콘텐츠 및 비디오 콘텐츠의 형태로 이미지 콘텐츠를 저장, 조직화, 및 프리젠테이션한다. 이를 위해, 메모리(226)는, 이 예시적인 실시예에서, 사진 콘텐츠 메모리(228) 및 비디오 콘텐츠 메모리(242)를 포함한다. 따라서, 카메라 제어기(214)는 중앙 프로세서(221)와 협력하여, 이미지 캡처 파라미터들 중 일부에 따라 카메라(69)에 의해 캡처된 디지털 이미지들을 나타내는 이미지 데이터를 카메라(69)로부터 수신하고, 이미지 캡처 파라미터들 중 일부에 따라 이미지 데이터를 처리하고, 및 처리된 이미지 데이터를 사진 콘텐츠 메모리(228) 및 비디오 콘텐츠 메모리(242) 중 적절한 곳에 저장하도록 구성된다.
카메라 제어기(214)는 디스플레이 제어기(249)와 협력하여, 메모리(226) 내의 선택된 사진들 및 비디오들의 안경(31)에 통합된 디스플레이 메커니즘 상의 디스플레이를 야기하고, 따라서 캡처된 사진들 및 비디오들의 미리보기들을 제공하도록 추가로 구성된다. 일부 실시예들에서, 카메라 제어기(214)는 비디오 파일에 포함시키기 위한 자동 브라켓팅(bracketing) 파라미터들을 사용하여 캡처된 이미지들의 처리를 관리할 것이다.
싱글 액션 입력 메커니즘(235)은 중앙 프로세서(221) 및 카메라 제어기(214)에 통신가능하게 결합되어, 카메라 제어 버튼의 현재 상태를 나타내는 신호들을 전달하고, 그에 의해 카메라 제어 버튼이 현재 눌려지고 있는지의 여부를 카메라 제어기(214)에 전달한다. 카메라 제어기(214)는 싱글 액션 입력 메커니즘(235)으로부터 수신된 입력 신호들에 관하여 중앙 프로세서(221)와 추가로 통신한다. 일 실시예에서, 카메라 제어기(214)는 싱글 액션 입력 메커니즘(235)을 통해 수신된 입력 신호들을 처리하여 카메라 제어 버튼과의 특정 사용자 개입이 비디오 콘텐츠 또는 사진 콘텐츠의 기록을 야기하는지를 결정하고, 및/또는 입력 신호들의 처리에 기초하여 하나 이상의 이미지 캡처 파라미터를 동적으로 조정하도록 구성된다. 예를 들어, 미리 정의된 임계 지속기간보다 길게 카메라 제어 버튼을 누르면, 카메라 제어기(214)는 캡처된 비디오 콘텐츠의 지속적 저장 및 디스플레이 전에 캡처된 비디오 콘텐츠에 비교적 덜 엄격한 비디오 처리를 자동적으로 적용하게 된다. 반대로, 이러한 실시예에서 임계 지속기간보다 짧게 카메라 제어 버튼을 누르면, 카메라 제어기(214)는 하나 이상의 정지 이미지를 표현하는 이미지 데이터에 비교적 더 엄격한 사진 안정화 처리를 자동적으로 적용하게 된다.
안경(31)은, 예를 들어, 디바이스에 통합된 디스플레이 메커니즘 상에 시각적 미디어(카메라(69)에 의해 캡처된 사진 및 비디오 콘텐츠를 포함함)의 디스플레이를 제어하기 위한 디스플레이 제어기(249)를 포함하여, 스마트 안경 또는 스마트폰들과 같은 모바일 전자 디바이스들에 공통인 다양한 컴포넌트를 추가로 포함할 수 있다. 도 2의 개략도는 안경(31)의 부분을 형성하는 모든 컴포넌트들의 하나도 빠짐없는 표현이 아니라는 점에 유의한다.
도 3은 특정 실시예들에서 사용될 수 있는 대안적인 네트워크 시스템(301)을 예시한다. 네트워크 시스템(301)은 인터페이스 모듈들(340), 애플리케이션 로직 모듈들(350), 데이터베이스 서버들(332), 및 데이터베이스들(334)을 갖는 메시징 시스템(330)뿐만 아니라, 클라이언트 애플리케이션들(312)을 동작시키는 클라이언트 디바이스들(310)을 포함한다. 그러나, 네트워크 시스템(301)은 클라이언트 디바이스들(310)에 연결된 웨어러블 클라이언트 동반 디바이스들(314)을 추가로 포함한다. 다양한 실시예에서, 웨어러블 클라이언트 동반 디바이스(314)는 클라이언트 디바이스(310) 또는 메시징 시스템(330)과의 유선 통신을 위해 구성된다. 클라이언트 동반 디바이스(314)는 또한 클라이언트 디바이스(310), 메시징 시스템(330), 또는 둘 다와의 무선 통신을 위해 동시에 구성될 수 있다. 클라이언트 동반 디바이스들(314)은 안경(31), 챙(visor), 시계, 또는 다른 네트워크 가능 아이템들과 같은 웨어러블 디바이스들일 수 있다. 클라이언트 동반 디바이스들(314)은 또한 클라이언트 디바이스(310)와 같은 또 다른 디바이스를 통해 네트워크에 액세스하는 본 명세서에 설명된 임의의 디바이스일 수 있다. 클라이언트 동반 디바이스들(314)은 이미지 센서들(316), 무선 입력 및 출력(I/O)(317), 및 (예를 들어, 클라이언트 동반 디바이스(들)(314)를 사용하여 캡처된 콘텐츠에 일반 캡처 영역 정보를 할당하기 위한) 로케이션 시스템(360)의 요소들을 포함한다. 클라이언트 동반 디바이스들(314)은 하나 이상의 프로세서, 디스플레이, 배터리(62), 및 메모리를 포함할 수 있지만, 제한된 처리 및 메모리 자원을 가질 수 있다. 이러한 실시예들에서, 메시징 시스템(330)을 위해 사용되는 클라이언트 디바이스(310) 및/또는 서버 컴퓨팅 디바이스들은 디바이스들(314) 상에서 동작하는 로케이션 모듈들(360)의 개선된 처음 결정까지의 시간 성능뿐만 아니라, 디바이스들(314)에 의해 제공되는 로케이션 정보가 이용가능하지 않거나 또는 연관된 클라이언트 디바이스(310)로부터의 다른 이용가능한 정보보다 덜 정확한 경우에 보충 로케이션 정보를 지원하는 것 둘 다에 대한 보조를 제공할 수 있다. 일 실시예에서, 예를 들어, 클라이언트 동반 디바이스(314)는 도 1의 안경(31)과 같은 한 쌍의 네트워크 가능 안경일 수 있고, 클라이언트 디바이스(310)는 메시징 시스템(330)에 대한 액세스를 가능하게 하여 이미지 센서(들)(316)로 캡처된 비디오 콘텐츠의 통신을 가능하게 하는 스마트폰일 수 있다.
도 4는 일부 예시적인 실시예들에 따른, 카메라 디바이스(410)의 세부사항들을 포함하는 네트워크화된 시스템(400)을 예시하는 블록도이다. 특정 실시예들에서, 카메라 디바이스(410)는 전술한 도 1의 안경(31)에 구현될 수 있다.
시스템(400)은 카메라 디바이스(410), 클라이언트 디바이스(490), 및 서버 시스템(498)을 포함한다. 클라이언트 디바이스(490)는 스마트폰, 태블릿, 패블릿, 랩톱 컴퓨터, 액세스 포인트, 또는 저전력 무선 접속(425) 및 고속 무선 접속(437) 모두를 사용하여 카메라 디바이스(410)와 접속할 수 있는 임의의 다른 그러한 디바이스일 수 있다. 클라이언트 디바이스(490)는 서버 시스템(498) 및 네트워크(495)에 접속된다. 네트워크(495)는 유선 및 무선 접속들의 임의의 조합을 포함할 수 있다. 서버 시스템(498)은 서비스 또는 네트워크 컴퓨팅 시스템의 일부인 하나 이상의 컴퓨팅 디바이스일 수 있다.
시스템(400)은 옵션으로서 추가적인 주변 디바이스 요소들(419) 및/또는 카메라 디바이스(410)와 통합된 디스플레이(411)를 포함할 수 있다. 이러한 주변 디바이스 요소들(419)은 생체인식 센서들, 추가 센서들, 또는 카메라 디바이스(410)와 통합된 디스플레이 요소들을 포함할 수 있다. 주변 디바이스 요소들(419)의 예들은 도 12 및 13과 관련하여 더 논의된다. 예를 들어, 주변 디바이스 요소들(419)은 모션 검출기들, 광 검출기들, 출력 컴포넌트들(1352)을 포함하는 임의의 I/O 컴포넌트들, 모션 컴포넌트들(1358), 또는 본 명세서에 기술되는 임의의 다른 이러한 요소들을 포함할 수 있다.
카메라 디바이스(410)는 카메라(414), 이미지 프로세서(412), 인터페이스(416), 저전력 회로(420), 및 고속 회로(430)를 포함한다. 카메라(414)는 전하 결합 디바이스(charge coupled device), 렌즈, 또는 카메라(414)의 일부로서 데이터를 캡처하기 위해 사용될 수 있는 임의의 다른 광 캡처 요소들과 같은 디지털 카메라 요소들을 포함한다.
인터페이스(416)는 카메라 디바이스(410)에 제공되는 사용자 커맨드의 임의의 소스를 지칭한다. 일 구현에서, 인터페이스(416)는, 눌리어질 때, 인터페이스(416)로부터 저전력 프로세서(422)로 사용자 입력 신호를 전송하는 카메라(414) 상의 물리적 버튼이다. 이러한 카메라 버튼을 누른 다음에 즉시 해제하는 것은 단일 이미지를 캡처하라는 요청으로서 저전력 프로세서(422)에 의해 처리될 수 있다. 제1 시간 기간 동안의 이러한 카메라 버튼의 누름은, 버튼이 눌리어진 동안 비디오 데이터를 캡처하고 버튼이 해제될 때 비디오 캡처를 중단하라는 요청으로서 저전력 프로세서(422)에 의해 처리될 수 있고, 버튼이 눌리어진 동안 캡처된 비디오는 단일 비디오 파일로서 저장된다. 특정 실시예들에서, 저전력 프로세서(422)는 500 밀리초 또는 1초와 같은 버튼의 누름과 해제 사이의 임계 시간 기간을 가질 수 있으며, 그 임계 시간 기간 아래에서는 버튼 누름 및 해제는 이미지 요청으로서 처리되고, 그 임계 시간을 넘으면 버튼 누름 및 해제는 비디오 요청으로서 해석된다. 저전력 프로세서(422)는 이미지 프로세서(412)가 부팅하는 동안 이 결정을 내릴 수 있다. 다른 실시예들에서, 인터페이스(416)는 카메라(414)로부터의 데이터에 대한 요청과 연관된 사용자 입력들을 수용할 수 있는 임의의 기계적 스위치 또는 물리적 인터페이스일 수 있다. 다른 실시예들에서, 인터페이스(416)는 소프트웨어 컴포넌트를 가질 수 있거나, 또는 또 다른 소스로부터 무선으로 수신된 커맨드와 연관될 수 있다.
이미지 프로세서(412)는 카메라(414)로부터 신호들을 수신하고 카메라(414)로부터의 그런 신호들을 메모리(434)에 저장하기에 적합한 포맷이 되도록 처리하는 회로를 포함한다. 이미지 프로세서(412)는 저전력 회로(420)의 제어 하에 켜지고 부팅될 수 있도록 카메라 디바이스(410) 내에 구조화된다. 이미지 프로세서(412)는 저전력 회로(420)에 의해 추가적으로 꺼질 수 있다. 이미지 프로세서(412)와 연관된 다양한 전력 설계 요소들에 의존하여, 이미지 프로세서(412)는 오프 상태에 있는 경우에도 여전히 소량의 전력을 소비할 수 있다. 그러나, 이 전력은 온 상태에 있을 때 이미지 프로세서(412)에 의해 사용되는 전력에 비해 무시할만할 것이며, 또한 배터리 수명에도 무시할만한 영향을 미칠 것이다. 본 명세서에서 설명되는 바와 같이, "오프" 상태에서의 디바이스 요소들은 저전력 프로세서(422)가 디바이스들을 켜고 끌 수 있도록 디바이스 내에 여전히 구성된다. 카메라 디바이스(410)의 동작 동안 "오프" 또는 "꺼짐"으로 지칭되는 디바이스는 누설 또는 시스템 설계의 다른 양태들로 인해 반드시 제로 전력을 소비하지는 않는다.
하나의 예시적인 실시예에서, 이미지 프로세서(412)는, 동작을 위해 마이크로프로세서에 의해 사용되는 휘발성 메모리와 함께, 카메라(414)로부터의 센서 데이터를 처리하기 위해 맞춤화된 마이크로프로세서 집적 회로(IC)를 포함한다. 이미지 프로세서(412)가 데이터를 처리하기 위해 켜질 때 걸리는 시간량을 줄이기 위해, 이미지 프로세서(412)를 동작 또는 부팅하기 위한 명령어들과 함께 비휘발성 판독 전용 메모리(ROM)가 IC 상에 통합될 수 있다. 이러한 ROM은 카메라(414)로부터 센서 데이터를 수집하기 위한 기본 기능성을 제공하는 데 필요한 최소 크기와 매칭되도록 최소화될 수 있으며, 따라서 부팅 시간에 지연을 유발하는 추가 기능성이 존재하지 않는다. ROM은 비디오 프로세서(412)의 마이크로프로세서의 휘발성 메모리에 대한 DMA(direct memory access)를 갖도록 구성될 수 있다. DMA는, 비디오 프로세서(412)의 메인 제어기의 동작과는 독립적으로, ROM으로부터 비디오 프로세서(412)의 시스템 메모리로의 데이터의 메모리-대-메모리 전송을 허용한다. DMA를 이 부트 ROM에 제공하는 것은 이미지 프로세서(412)의 켜짐으로부터 카메라(414)로부터의 센서 데이터가 처리되고 저장될 수 있을 때까지의 시간량을 더 감소시킨다. 특정 실시예들에서, 카메라(414)로부터의 카메라 신호의 최소 처리는 이미지 프로세서(412)에 의해 수행되고, 추가적인 처리는 클라이언트 디바이스(490) 또는 서버 시스템(498) 상에서 동작하는 애플리케이션들에 의해 수행될 수 있다.
저전력 회로(420)는 저전력 프로세서(422) 및 저전력 무선 회로(424)를 포함한다. 저전력 회로(420)의 이러한 요소들은 개별 요소들로서 구현될 수 있거나 또는 단일 칩 상의 시스템의 일부로서 단일 IC 상에 구현될 수 있다. 저전력 프로세서(422)는 카메라 디바이스(410)의 다른 요소들을 관리하기 위한 로직을 포함한다. 전술한 바와 같이, 예를 들어, 저전력 프로세서(422)는 인터페이스(416)로부터 사용자 입력 신호들을 받아들일 수 있다. 저전력 프로세서(422)는 또한 저전력 무선 접속(425)을 통해 클라이언트 디바이스(490)로부터 입력 신호들 또는 명령어 통신들을 수신하도록 구성될 수 있다. 이러한 명령어들에 관련된 추가적인 상세사항들이 이하에서 추가로 설명된다. 저전력 무선 회로(424)는 저전력 무선 통신 시스템을 구현하기 위한 회로 요소들을 포함한다. 블루투스TM 저에너지로도 알려진 블루투스TM 스마트는 저전력 무선 회로(424)를 구현하기 위해 사용될 수 있는 저전력 무선 통신 시스템의 하나의 표준 구현이다. 다른 실시예들에서, 다른 저전력 통신 시스템들이 사용될 수 있다.
로케이션 회로(213)는 위에서 설명된 로케이션 서비스를 구현하기 위한 특수 처리 회로를 포함한다. 예를 들어, 로케이션 회로(213)는 디바이스(210)[예컨대, 안경(31)]에 대한 위치 확인 데이터가 페어링된 클라이언트 디바이스(490)로부터 이용가능하지 않을 때 이러한 데이터를 발생하기 위해 위성 알마낙 이진 데이터(satellite almanac binary data)와 같은 지원 정보와 연계하여 GNSS 또는 GPS 데이터에 액세스하기 위한 회로를 포함할 수 있다.
고속 회로(430)는 고속 프로세서(432), 메모리(434), 및 고속 무선 회로(436)를 포함한다. 고속 프로세서(432)는 카메라 디바이스(410)에 필요한 임의의 일반 컴퓨팅 시스템의 고속 통신 및 동작을 관리할 수 있는 임의의 프로세서일 수 있다. 고속 프로세서(432)는 고속 무선 회로(436)를 이용하여 고속 무선 접속(437) 상의 고속 데이터 전송을 관리하는데 필요한 처리 자원을 포함한다. 특정 실시예들에서, 고속 프로세서(432)는 LINUX 운영 체제와 같은 운영 체제 또는 도 9의 운영 체제(904)와 같은 다른 그러한 운영 체제를 실행한다. 임의의 다른 책임들에 부가하여, 카메라 디바이스(410)를 위해 소프트웨어 아키텍처를 실행하는 고속 프로세서(432)는 고속 무선 회로(436)와의 데이터 전송들을 관리하기 위해 사용된다. 특정 실시예들에서, 고속 무선 회로(436)는 본 명세서에서 Wi-Fi라고도 지칭되는 IEEE(Institute of Electrical and Electronic Engineers) 802.11 통신 표준들을 구현하도록 구성된다. 다른 실시예들에서, 다른 고속 통신 표준들이 고속 무선 회로(436)에 의해 구현될 수 있다. 일부 실시예들에서, 고속 회로(430)는 전술한 비디오 프로세서 기능들을 포함할 수 있는, 다양한 기능들과 통합된 SoC(system on a chip) 회로일 수 있어서, 비디오 프로세서(412)가 고속 회로(430)와 통합될 수 있도록 한다. 본 명세서에 기술된 다양한 실시예에서, 저전력 회로(220), 로케이션 회로(213), 및 고속 회로(230)가 개별적으로 관리되고 각각이 다른 시스템과 독립적으로 저전력 상태에 놓일 수 있다는 점에서, 저전력 회로(220) 및 로케이션 회로(213)는 고속 회로(230)와 분리되어 있다.
메모리(434)는 카메라(414) 및 이미지 프로세서(412)에 의해 생성된 카메라 데이터를 저장할 수 있는 임의의 저장 디바이스를 포함한다. 메모리(434)가 고속 회로(430)와 통합된 것으로 도시되어 있지만, 다른 실시예들에서, 메모리(434)는 카메라 디바이스(410)의 독립적인 독립형 요소일 수 있다. 이러한 특정 실시예들에서, 전기 라우팅 라인들이 고속 프로세서(432)를 포함하는 칩을 통해 비디오 프로세서(412) 또는 저전력 프로세서(422)로부터 메모리(434)로의 접속을 제공할 수 있다. 다른 실시예들에서, 고속 프로세서(432)는 메모리(434)를 수반하는 판독 또는 기입 동작이 필요한 임의의 시간에 저전력 프로세서(422)가 고속 프로세서(432)를 부팅하도록 메모리(434)의 어드레싱을 관리할 수 있다.
이어서, 도 5는 일부 예시적인 실시예들에 따른 다양한 시스템 요소 사이의 상호작용들에 대한 상세사항들을 갖는 예시적인 시스템(500)을 도시한다. 시스템(500)의 실시예에서, 웨어러블 디바이스, 클라이언트 디바이스(510), 및 로케이션 지원 서버(532)가 예시된다. 웨어러블 디바이스는 웨어러블 디바이스 입력/출력(I/O)(514), 고속 회로(516), 저전력 회로(518), 및 로케이션 회로(560)를 포함한다. 이러한 디바이스 요소들은 앞서 논의된 카메라 디바이스(410)의 대응하는 요소들과 유사할 수 있고, 본 명세서에서 설명된 임의의 실시예의 임의의 웨어러블 디바이스 또는 클라이언트 동반 디바이스(314)에서 이용될 수 있다.
일부 실시예들에서, 시스템(500)의 동작은 로케이션 회로(560)가 저전력 슬리프(sleep) 상태에서 맴도는(spin) 시간량을 최대화함으로써 개선된다. 일부 그러한 실시예들에서, 로케이션 회로(560)는 적어도 4개의 상태를 갖는다. 상태들은 오프 상태, 저전력 코어 슬리프 상태, 시도 슬리프 상태, 및 취득 상태를 포함한다. 오프 상태는 로케이션 회로(560)가 완전히 꺼진 동작 설정이다. 다양한 실시예들에서, 이 상태는 시스템(500)이 임계(예를 들어, 거의 제로) 저전력 상태에 있을 때에만 사용된다. 이러한 꺼짐 상태로부터의 부팅은 추가 자원들을 필요로 하며, 로케이션 데이터가 필요할 때 처음 결정까지의 시간을 크게 줄인다. 저전력 상태 또는 슬리프 상태는 아주 낮은 전력 사용의 동작 설정이지만, 이는 로케이션 회로(560)가 실시간 클록을 유지하게 허용한다. 저전력 상태에서의 실시간 클록의 유지는 로케이션 회로(560)에 대해 처음 결정까지의 시간 성능을 상당히 증가시킨다(예를 들어, 결정의 개시로부터 데이터의 획득까지의 시간을 낮춘다). 저전력 사용 및 증가된 성능으로 인해, 시스템(500)은 저전력 상태를 로케이션 회로(560)에 대한 디폴트 상태로서 사용한다. 시도 슬리프 상태 또는 저전력 상태로의 전이는 로케이션 데이터가 생성되었을 때 또는 획득 상태에서 타임아웃이 발생했을 때 사용된다. 취득 상태는 시스템(500)에 의한 사용을 위해 로케이션 데이터를 생성하기 위해 사용되는 로케이션 회로(560)의 고전력 사용 상태이다. 로케이션 회로(560)가 취득 상태에 진입할 때, 회로는 저전력 모드로부터 깨어나서 로케이션 결정을 시도하기 시작한다. 이 시간 동안, 로케이션 회로(560)는 처음 결정까지의 시간을 감소시키는 데 도움을 주는 보조 데이터를 받기 시작할 것이다. 이러한 데이터는, 예를 들어, 이전 로케이션에 관한 정보는 물론이고, 로케이션 위성 및 로케이션 위성 정보와 연관된 알마낙 이진 데이터(almanack binary data)를 포함할 수 있다. 디바이스가 성공적으로 로케이션을 취득하면, 로케이션 파라미터들이 시스템 메모리 내에 캐싱될 것이다. 결정이 획득되었고 로케이션 파라미터들이 캐싱되거나 또는 타임아웃이 만료된 후에, 로케이션 회로(560)는 자동으로 시도 슬리프 상태로 진입한 다음, 전력 사용을 제한하기 위해 가능한 한 빨리 슬리프 상태(예를 들어, 저전력 상태)로 복귀한다.
로케이션 회로(560)에 대한 상기 상태들의 맥락에서, 전체 시스템은 일부 실시예들에서 이하의 흐름에 따라 작업할 수 있다. 로케이션 회로(560)는 웨어러블 디바이스가 (예를 들어, 주기적 클록 기반 트리거 또는 상태 트리거로부터 또는 이미지 또는 비디오 클립의 캡처로부터) 로케이션 결정을 트리거할 때까지 저전력 슬리프 모드로 유지된다. 클라이언트 디바이스(510)는 로케이션 지원 서버(532)로부터 보조 데이터를 주기적으로 획득할 것이다. 로케이션 보조 데이터는 고속 회로(516)와 연관된 메모리에 저장되고, 로케이션 결정 동작들 동안 로케이션 회로(560)에 이 정보를 제공할 것이다. 미디어 캡처 동작들 동안, 미디어가 기록 완료되면, 4개의 로케이션 파라미터가 로케이션 결정 동작들의 일환으로서 결정된다. 마지막 캐싱된 로케이션 파라미터들은 캡처된 콘텐츠에 대한 메타데이터로서 기입될 것이다. 로케이션 회로(560)가 로케이션 결정을 얻을 수 있는 경우, 고속 회로(516)는 부팅할 것이고, 캡처된 콘텐츠에 대한 이전에 할당된 로케이션 파라미터들을 오버라이드할 것이다.
도 5에 도시된 바와 같이, 클라이언트 디바이스(510)는 동작(570)에서 로케이션 지원 서버(532)로부터의 보조 데이터를 주기적으로 요청한다. 로케이션 지원 서버(532)는 동작(572)에서 임의의 업데이트 정보로 클라이언트 디바이스(510)에 응답한다. 이 업데이트 정보는 로케이션 회로(560)에서의 개선된 처음 결정까지의 시간 동작을 가능하게 하는 위성 이진 데이터에 대한 업데이트들을 포함할 수 있다. 그 후 클라이언트 디바이스(510)는 동작(574)에서 페어링된 웨어러블 디바이스로 주기적으로 체크할 것이고, 웨어러블 디바이스가 로케이션 지원 서버(532)로부터의 현재 보조 데이터를 갖지 않는 경우, 클라이언트 디바이스(510)는 동작(574)에서 이 데이터를 웨어러블 디바이스 I/O(514)를 통해 웨어러블 디바이스에 제공할 것이다.
그 후 시스템(500)의 웨어러블 디바이스는 저전력 회로(518), 고속 회로(516), 및 로케이션 회로(560) 사이에 분산된 로케이션 관리자 동작들을 갖는 것으로 고려될 수 있다. 로케이션 관리자 기능성의 핵심 관리는 웨어러블 디바이스가 임계 저전력 모드에 있지 않는 한 연속적인 동작을 위해 구성되는 저전력 회로(518)에 구성된다. 저전력 회로(518)는 저전력 회로(518)의 구성의 일부로서 저전력 소비로 인해 웨어러블 디바이스의 다른 요소들의 동작들을 관리한다. 이러한 동작들은 웨어러블 디바이스가 착용되고 있는 때를 결정하고, 로케이션 관리자 기능성의 동작에 영향을 줄 웨어러블 디바이스의 다른 그러한 상태들을 결정하기 위한 간단한 신경망 또는 상태 식별 기능성을 포함할 수 있다. 예를 들어, 저전력 회로(518)가 웨어러블 디바이스가 어느 한 상태에 있는 것으로 결정하는 동작들을 수행할 때, 그 후 저전력 회로(518)는 클록 트리거를 이용하여 이전 로케이션 결정 이후의 임계 시간 기간 후에 로케이션 결정 동작을 개시할 수 있다. 이러한 동작들은 이전의 결정 시도에서의 이전의 성공적인 결정에 대한 개별 클록들을 포함할 수 있다. 예를 들어, 저전력 회로(518)는 마지막 결정 시도가 성공하지 못한 경우 그 시도로부터 5분 후에, 또는 마지막 결정 시도가 성공한 경우 그 시도로부터 15분 후에 로케이션 결정 동작들을 개시할 수 있다. 다른 실시예들에서, 저전력 회로(518)는 로케이션 관리자가 디바이스가 착용되어 있다고 결정하는 동안 고정된 주기적 시간에 결정 시도를 단순히 수행한다.
저전력 회로(518)는 또한 웨어러블 디바이스에서 수신된 입력들에 응답하여 로케이션 관리자 기능성을 관리할 수 있다. 예를 들어, 버튼 누름 입력(576)이 웨어러블 디바이스 I/O(514)에서 수신될 때, 신호는 동작(578)에서 저전력 회로(518)에 운반될 수 있고, 이 입력(576)에 응답하여, 저전력 회로(518)는 동작(586)에서 로케이션 취득 모드에 진입하도록 로케이션 결정 동작을 관리하고 로케이션 회로(560)에 지시한다.
일부 실시예들에서, 웨어러블 디바이스 I/O(514)를 통한 입력(576)은 동작(580)을 통해 고속 회로(516)를 자동으로 부팅하고, 고속 회로(516)의 부팅 동작은 동작(582)에서 고속 회로(516)로부터 저전력 회로(518)로의 로케이션 보조 이진 데이터 또는 다른 로케이션 보조 데이터의 통신을 자동으로 개시한다. 로케이션 결정을 트리거한 입력에 응답하여 그러한 통신을 자동으로 개시함으로써, 처음 결정까지의 시간이 감소된다. 저전력 회로(518)가 결정을 개시하고 보조 데이터를 수신할 때, 동작(584)에서 보조 데이터는 로케이션 회로(560)에 포워딩된다. 이 보조 데이터는 또한 처음 결정까지의 시간을 감소시키기 위해 로케이션 회로(560)에 의해 사용된다. 그 후 로케이션 회로(560)는 웨어러블 디바이스에 대한 로케이션 파라미터들을 결정하는 동작들을 수행한다. 이러한 동작들은 로케이션 실패(588) 또는 로케이션 성공(590)을 낳을 수 있다. 로케이션 실패(588)가 발생한 후, 표시가 저전력 회로(518)로 되돌려 전달될 수 있고, 이 정보는 후속 로케이션 결정의 타이밍을 결정하기 위해 사용될 수 있다. 일부 실시예들에서, 콘텐츠가 로케이션 결정 동작과 연관되어 캡처되고 있는 경우, 콘텐츠는 이전 세트의 로케이션 파라미터들을 자동으로 할당받을 수 있으며, 따라서 로케이션 실패(588)는 캡처된 콘텐츠와 연관된 로케이션 데이터에 대한 어떠한 변경도 유발하지 않을 것이다. 로케이션 성공(590)이 발생하면, 이 동작에서 생성된 로케이션 파라미터들 및 다양한 로케이션 데이터가 고속 회로(516)에 의해 임의의 최근에 캡처된 콘텐츠에 전파된다.
도 6은 본 명세서에 설명된 일부 실시예들에 따른 예시적인 방법을 도시한다. 도 6은 특히 일부 실시예들에 따라 시스템이 자원 제약된 환경에서 로케이션 관리를 위한 향상된 디바이스 성능을 가능하게 하기 위한 방법(600)을 기술한다. 일부 실시예들에서, 방법(600)은 안경(31)의 카메라 디바이스(410)에 의해 캡처되는 콘텐츠와 연관된 로케이션 데이터를 제공하기 위해 안경(31)과 같은 웨어러블 디바이스에 의해 수행된다. 일부 실시예들에서, 방법(600)은 안경(31)과 같은 디바이스의 비일시적 스토리지에 저장된 컴퓨터 판독가능 명령어들로 구체화되어, 명령어들이 디바이스의 하나 이상의 프로세서에 의해 실행될 때, 디바이스는 방법(600)을 수행하도록 된다.
방법(600)은 웨어러블 디바이스가 로케이션 지원 서버로부터 알마낙 데이터 이진(almanac data binary)을 수신하는 동작(602)으로 시작한다. 이러한 데이터는 웨어러블 디바이스의 I/O 회로(예를 들어, 블루투스TM 저에너지, Wifi 다이렉트 등)를 사용하여 페어링된 클라이언트 디바이스(510)를 통해 수신될 수 있다. 일부 실시예들에서, 클라이언트 디바이스(510)는 알마낙 데이터 이진이 최신인지 또는 임계 시간 기간(예를 들어, 24시간, 2일, 10시간 등) 내에 업데이트되었는지를 결정하기 위해 웨어러블 디바이스에 질의하고, 데이터가 최신이 아닌 경우, 업데이트된 정보가 클라이언트 디바이스(510)로부터 웨어러블 디바이스로 푸시된다. 일부 실시예들에서, 전력 설정들이 이러한 업데이트 과정의 일부로서 추가로 질의되어, 알마낙 데이터 이진이 웨어러블 디바이스가 임계 전력 레벨을 넘는 경우에만 업데이트되도록 한다. 일부 실시예들에서, 도 1에 설명된 시스템과 같은, 그리고 본 명세서에 설명된 다른 실시예들에서의 메시징 서버 시스템은 알마낙 데이터 이진 업데이트를 더 관리한다. 다른 실시예들에서, 클라이언트 디바이스(510)는 로케이션 지원 서버로부터 직접 업데이트 데이터를 수신한다.
웨어러블 디바이스가 업데이트된 알마낙 데이터 이진 정보를 수신할 때, 그 정보는 동작(604)에서 웨어러블 디바이스의 고속 회로(430)와 연관된 메모리에 저장된다. 그 후, 동작(606)에서 웨어러블 디바이스의 표준 동작 상태는 웨어러블 디바이스의 로케이션 회로(413)를 실시간 클록을 포함하는 로케이션 회로 저전력 상태에서 동작시키고 웨어러블 디바이스의 고속 회로(430)를 고속 회로 저전력 상태에서 동작시키는 것을 수반한다. 동작(608)은 웨어러블 디바이스의 저전력 회로(420)를 이용하여 웨어러블 디바이스에서 로케이션 결정 동작을 개시한 후에 로케이션 결정 동작의 나머지 지속기간 동안 저전력 회로(420)를 저전력 회로 유휴 상태에 두는 것을 수반한다. 다양한 실시예들에서, 이러한 로케이션 결정 동작은 로케이션 데이터와 연관될 이미지 또는 비디오 데이터의 캡처를 표시하는 입력, 또는 센서 데이터에 기초하여 결정된 "착용된" 디바이스 상태와 연관된 주기적 업데이트에 응답하여 개시될 수 있다.
로케이션 결정 동작의 개시에 응답하여, 그 후 동작(610)은 로케이션 회로(413)를 저전력 상태로부터 정상 상태로 전이하는 것, 웨어러블 디바이스의 고속 회로(430)를 부팅하는 것, 및 고속 회로(430)를 사용하여 알마낙 데이터 이진을 메모리로부터 로케이션 회로(413)로 전달하는 것을 수반한다. 그 후, 동작(612)은 로케이션 결정 동작의 일부로서 로케이션 회로(413)를 이용하여 로케이션 상태 데이터를 생성하고, 로케이션 상태 데이터를 메모리에 저장하기 위해 고속 회로(430)에 전달하고, 고속 회로(430)를 고속 회로 저전력 상태로 복귀시킨다.
일부 그러한 실시예들은 웨어러블 디바이스의 카메라 제어 버튼으로부터의 저전력 회로(420)에서의 입력 신호의 수신에 응답하여 웨어러블 디바이스에서 로케이션 결정 동작이 개시되는 경우에 동작한다. 일부 그러한 동작들의 일부로서, 로케이션 결정 동작은 이전의 입력 신호가 임계 시간 기간 내에 저전력 회로(420)에서 수신되지 않았다는 결정에 응답하여 웨어러블 디바이스에서 추가로 개시될 수 있다.
일부 실시예들에서, 로케이션 상태 데이터는 임계값 획득 시간 기간 동안 로케이션 회로(413)의 획득 모드 동작 동안 발생된다. 다양한 시스템들에서, 임계값 획득 시간은 결정이 일어날 것 같지 않은 경우 전력을 낭비하지 않고 합리적인 결정 획득 시간을 허용하도록 구성된다. 이러한 기간들은 로케이션 회로(413)에 의존하는 평균 획득 기간에 기초할 수 있다. 일부 실시예들에서, 기간은 45초 내지 90초이다. 일부 실시예들에서, 시스템은 평균 획득 시간, 또는 로케이션 결정 동작과 연관된 또 다른 값을 추적하고, 이력 데이터에 기초하여 임계값 획득 시간을 선택한다. 예를 들어, 시스템은 60초의 최대 허용가능 시간을 갖는 가변 획득 시간을 가질 수 있지만, 성공적인 로케이션 결정 동작들의 95%가 30초의 처음 결정까지의 시간 내에 성공을 달성하고, 따라서 30초를 결정 동작들에 대한 타임아웃 임계값으로서 사용하는 것을 식별할 수 있다. 그 후 타임아웃이 시간의 임계값 백분율보다 더 많은 비성공적인 결정 동작들을 가지며 발생하는 경우, 가변 로케이션 결정 타임아웃 임계값은 최대 허용가능 값까지 증분 값만큼 증가될 수 있다. 그러한 동작들은 일부 사례들에서 성공적인 로케이션 결정의 줄어든 기회를 대가로 하여 전력 자원들을 절약할 수 있다.
로케이션 상태 데이터가 로케이션 실패 표시를 포함하는 실시예들에서, 시스템은 입력 신호에 응답하여 웨어러블 디바이스의 카메라 센서를 사용하여 하나 이상의 이미지의 캡처를 개시하고 로케이션 실패 표시에 응답하여 하나 이상의 이미지를 이전에 캐싱된 로케이션 값과 연관시킴으로써 동작할 수 있다. 다른 시스템들이 동작할 수 있는데, 여기서 로케이션 상태 데이터는 복수의 로케이션 파라미터를 포함하고, 복수의 로케이션 파라미터는 적어도 결정까지의 시간 값, 정확도 값 및 하나 이상의 로케이션 값을 포함한다. 일부 그러한 실시예들은 입력 신호에 응답하여 웨어러블 디바이스의 카메라 센서를 사용하여 하나 이상의 이미지의 캡처를 개시하고 하나 이상의 이미지를 하나 이상의 로케이션 값과 연관시킴으로써 동작한다.
도 7은 본 명세서에 설명된 일부 실시예들에 따른, 웨어러블 디바이스 로케이션 동작들의 양태들을 도시한다. 도 7은 특히 타임라인(702) 동안 웨어러블 디바이스에서 콘텐츠 캡처를 개시하는 버튼 누름 입력들에 응답하는 로케이션 관리자의 양태들을 도시한다. 도 7은 버튼 누름 동작(710, 712 및 714)을 도시한다. 초기 버튼 누름(710)이 수신될 때, 로케이션 관리자 시스템들은 획득 모드(720)에 진입한다. 예를 들어, 로케이션 회로(560)는 시스템(500)을 사용하는 실시예에서 로케이션 획득 상태에 놓일 것이다. 로케이션 관리자가 획득 모드에 있을 때, 다중의 버튼 누름 입력이 수신될 수 있다. 버튼 누름(712)과 같은 후속 버튼 누름 동작은 로케이션 획득(720)에 대해 어떠한 영향도 미치지 않을 것이다. 도 7에서, 로케이션 성공(730)은 로케이션 성공(730)에서 결정된 로케이션 파라미터들이 동작(740)에서 특정 버튼 누름 입력들과 연관되어 생성된 콘텐츠로 되돌려 전파되는 결과를 낳는다. 따라서, 버튼 누름(710)에 응답하여 생성된 콘텐츠는 동작(744)에서 로케이션 성공(730)으로부터의 로케이션 파라미터들을 할당받고, 버튼 누름(712)에 응답하여 생성된 콘텐츠는 동작(742)에서 로케이션 파라미터들로 서명된다. 일부 실시예들에서, 로케이션 결정 성공(730)으로부터의 데이터는 성공 후의 임계 시간 기간 동안 사용된다. 예를 들어, 버튼 누름이 로케이션 성공(730) 직후에 발생하는 경우, 추가적인 로케이션 획득 결정이 사용되지 않을 것이지만, 대신에 로케이션 성공(730)으로부터의 로케이션 파라미터들은 이 버튼 누름이 임계 시간 내에 발생하는 경우에 응답하여 생성된 콘텐츠에 할당될 것이다. 이러한 임계 시간이 만료된 후, 버튼 누름(714)과 같은 후속 버튼 누름들은 후속 로케이션 획득(721)에서의 추가적인 로케이션 결정 동작을 낳을 것이다.
도시된 바와 같이, 버튼 누름(714)은 로케이션 획득(721)을 개시한다. 로케이션 실패(732)는 로케이션 획득(721)으로부터 귀결된다. 이러한 실패는 차단되거나 방해받는 위성 로케이션 액세스 정보, 다른 신호원들로부터의 간섭, 또는 다양한 다른 그러한 메커니즘들과 같은 다양한 원인들에 기인할 수 있다. 로케이션 실패(732)가 발생할 때, 동작(750)은 버튼 누름(714)에 응답하여 생성된 데이터가 동작(752)에서 가장 최근의 로케이션 파라미터들을 할당받는 결과를 낳는다. 이 경우, 가장 최근의 파라미터들은 로케이션 성공(730)으로부터의 것일 것이다. 따라서, 버튼 누름(714)에 응답하여 생성된 콘텐츠는 후속 로케이션 업데이트가 만약 있다면 더 정확한 로케이션 데이터를 제공할 때까지 로케이션 성공(730)으로부터의 로케이션 파라미터들과 연관될 것이다.
도 8은 본 명세서에 설명된 일부 실시예들에 따른, 예시적인 방법을 도시한다. 도 8은 특히 디바이스의 프라이버시 설정들에 따라 인에이블된 웨어러블 디바이스 로케이션 동작에서 처음 결정까지의 시간을 감소시키는 방법(800)을 설명한다. 상기 방법(600)과 유사하게, 일부 실시예들에서, 방법(800)은 안경(31)의 카메라 디바이스(410)에 의해 캡처된 콘텐츠와 연관된 로케이션 데이터를 제공하기 위해 안경(31)과 같은 웨어러블 디바이스에 의해 수행되고, 일부 실시예들에서, 방법(800)은 명령어들이 처리 회로(예를 들어, 디바이스의 저전력, 고속, 및/또는 로케이션 회로(413))에 의해 실행될 때 방법(800)을 수행하는 웨어러블 디바이스의 비일시적 스토리지에 저장된 컴퓨터 판독가능 명령어들로 구체화된다.
방법(800)은 웨어러블 디바이스의 고속 회로(516)와 연관된 메모리에, 웨어러블 디바이스의 로케이션 회로(560)에 대한 처음 결정까지의 시간 지원 데이터를 저장하기 위한 동작(802)으로 시작하고, 여기서 로케이션 회로(560)는 고속 회로(516)와는 별개이다. 전술한 바와 같이, 이러한 처음 결정까지의 시간 지원 데이터는 위성 알마낙 이진 데이터일 수 있다. 일부 실시예들에서, 이러한 처음 결정까지의 시간 지원 데이터는 추가적으로 또는 대안적으로 이전 로케이션 결정 데이터, 국가 코드 데이터, 타임아웃 설정들, 또는 성능을 개선하는데 있어서 로케이션 회로(413)를 돕기 위한 임의의 다른 이러한 데이터를 포함할 수 있다.
그 후 동작(804)에서 웨어러블 디바이스의 로케이션 회로(560)를 실시간 클록을 포함하는 로케이션 회로 저전력 상태로 동작시키고 웨어러블 디바이스의 고속 회로(516)를 고속 회로 저전력 상태로 동작시키면서 로케이션 결정 동작이 웨어러블 디바이스에서 개시된다. 그 후, 동작(806)에서, 로케이션 결정 동작의 개시에 응답하여, 고속 회로(516) 및 로케이션 결정 회로(560)를 부팅하고, 고속 회로(516)의 부팅 시에 메모리 내의 처음 결정까지의 시간 지원 데이터를 로케이션 회로(560)로 자동으로 통신한다. 로케이션 회로(560)에서의 로케이션 상태 데이터는 동작(808)에서 처음 결정까지의 시간 지원 데이터를 사용한다.
다양한 그러한 실시예들은 또한 제1 로케이션 결정이 증가된 처음 결정까지의 시간 동작에 대해 선택된 정확도 파라미터들의 제1 세트를 이용하여 결정되는 경우에, 제1 로케이션 결정이 2차원 로케이션 결정인 경우에, 또는 로케이션 회로(560)가 저전력 상태에서 동작하는 동안 어떠한 로케이션 계산도 수행하지 않고 실시간 클록을 유지하는 경우에 동작할 수 있다.
유사하게, 다양한 실시예들은, 처음 결정까지의 시간 지원 데이터를 로케이션 회로(560)에 통신한 이후에 그리고 로케이션 상태 데이터의 생성 이전에 고속 회로(516)를 고속 회로 저전력 동작 상태로 복귀시키고, 및 로케이션 상태 데이터의 생성 이후에 고속 회로 저전력 상태로부터 고속 회로(516)를 부팅시킴으로써 동작할 수 있다. 유사하게, 다양한 그러한 실시예들은 제1 로케이션 결정이 결정되거나 타임아웃 기간이 만료될 때 로케이션 회로(560)를 저전력 상태로 복귀시킴으로써 동작할 수 있으며, 여기서 로케이션 상태 데이터는 제1 로케이션 결정 또는 타임아웃 표시자를 포함한다.
도 9는 본 명세서에서 설명된 일부 실시예들에 따른 페어링된 클라이언트 디바이스에서의 웨어러블 디바이스 로케이션 동작들 및 로케이션 업데이트들의 양태들을 도시한다. 웨어러블 디바이스가 클라이언트 디바이스와 페어링될 때, 프라이버시 설정들이 웨어러블 디바이스가 로케이션 데이터를 수집하도록 인가되는지를 결정하기 위해 검사될 수 있다. 일부 실시예들에서, 디폴트 또는 비페어링된 프라이버시 설정은 로케이션 데이터의 캡처를 방지하고, 웨어러블 디바이스는 클라이언트 디바이스와의 페어링 동작의 일부로서 웨어러블 디바이스의 비휘발성 메모리에 저장된 로케이션 설정 값에 응답하여 로케이션 결정 동작이 허용될 때만 로케이션 데이터를 수집한다. 이러한 실시예들에서, 로케이션 데이터를 수집하기 위한 인가는 클라이언트 상의 애플리케이션과 상호작용하는 사용자에 의해 제공되고, 웨어러블 디바이스 상의 설정들은 클라이언트 디바이스와의 페어링 또는 다른 통신 동안 업데이트된다.
전술된 바와 같이, 로케이션 정보를 지속적으로 업데이트하기보다는, 배터리 자원을 절감하기 위하여, 웨어러블 디바이스는 다양한 설정과 신호 가용성에 의존하여 불규칙적으로 로케이션(920, 922, 및 924)을 취할 것인 한편, 스마트폰과 같은 동반 디바이스는 정기적으로 주기적 로케이션 스냅샷(910, 912, 914)을 취할 것으로 예상된다. 웨어러블 디바이스가 이들 로케이션(920, 922, 924) 측정들을 연관된 콘텐츠의 캡처와 정렬하려고 시도할 수 있지만, 다양한 이유로, 이들 로케이션 측정들은 특정 콘텐츠에 대한 정확한 로케이션 데이터를 제공하지 않을 수 있다. 일부 실시예들에서, 웨어러블 디바이스는 콘텐츠가 캡처될 때 웨어러블 디바이스에서 이용가능한 가장 최근의 로케이션 파라미터들을 할당한다. 다른 실시예들에서, 웨어러블 디바이스는 콘텐츠에 대해 어느 측정이 더 정확한지를 표시하는 다양한 기준에 기초하여 콘텐츠의 캡처 전에 또는 후에 취해진 측정들로부터 로케이션 파라미터들을 할당한다. 콘텐츠가 나중에 웨어러블 디바이스로부터 스마트폰과 같은 페어링된 클라이언트 디바이스로 다운로드될 때, 스마트폰은 더 정확한 로케이션 데이터를 로케이션 스냅샷들(910, 912, 914)로부터 웨어러블 디바이스에 의해 생성된 콘텐츠와 연관시키는 능력을 가질 수 있다. 웨어러블 디바이스가 콘텐츠 캡처의 시간에 또는 그 근처에서 로케이션 데이터를 캡처할 수 없었던 일부 상황에서, 클라이언트 디바이스는 더 정확한 로케이션 데이터를 가질 수 있다.
예를 들어, 도 9의 시스템(900)은 웨어러블 디바이스에 의해 캡처된 콘텐츠에 대한 데이터 캡처 시간들(930 및 934)을 도시한다. 로케이션 스냅샷들(910, 912, 914)은 연관된 클라이언트 디바이스에 의해 캡처된 로케이션 파라미터들과 연관되고, 로케이션 업데이트들(920, 922, 924)은 콘텐츠를 캡처하였고 클라이언트 디바이스와 페어링되는 웨어러블 디바이스에 의해 생성된 로케이션 파라미터들이다. 웨어러블 디바이스가 클라이언트 디바이스에 콘텐츠를 다운로드할 때, 콘텐츠 로케이션이 분석될 수 있고, 그 로케이션 정보가 웨어러블 디바이스로부터의 로케이션 정보보다 더 정확한 것으로 결정되는 경우 클라이언트 디바이스로부터의 가장 가까운 로케이션 스냅샷 데이터로 업데이트될 수 있다. 도 9의 예에서, 캡처 시간(934)에 실제로 캡처된 콘텐츠는 웨어러블 디바이스에 의해 이루어진 로케이션 측정(922)과 연관될 수 있다. 콘텐츠가 클라이언트 디바이스에 다운로드될 때, 클라이언트 디바이스는 클라이언트 디바이스가 다운로드된 콘텐츠와 연관시킬 더 정확한 로케이션 데이터를 갖는지를 결정하기 위해 타임라인(902)을 생성할 수 있다. 예를 들어, 데이터 캡처 시간(930)에 캡처된 콘텐츠는 웨어러블 디바이스에서의 임의의 이전의 로케이션 측정 또는 로케이션 스냅샷(910) 시간에 대해서보다 클라이언트 디바이스(510)에서 발생한 로케이션 업데이트(920)에 시간적으로 더 가깝게 발생하였다. 따라서, 나중의 데이터 캡처 시간(930)의 근접성은, 로케이션 스냅샷(910)으로부터의 로케이션보다는, 그 콘텐츠와 연관된 로케이션 업데이트(920)로부터의 로케이션을 설정하기 위해 사용될 수 있다. 캡처 시간(934)에 캡처된 콘텐츠에 대해, 로케이션 스냅샷(914)의 시간이 로케이션 측정들(924 또는 922)의 시간보다 데이터 캡처 시간(934)에 더 가깝기 때문에, 데이터 캡처 시간(934)으로부터의 콘텐츠와 연관된 로케이션 데이터는 클라이언트 디바이스에서 로케이션 스냅샷(914)에서의 클라이언트 디바이스로부터의 로케이션 데이터로 업데이트될 수 있다.
다양한 실시예들에서, 웨어러블 디바이스 또는 클라이언트 디바이스와 연관된 다른 상태 데이터가 어느 로케이션 데이터가 캡처된 콘텐츠와 연관되는지를 결정하기 위해 사용될 수 있다. 예를 들어, 로케이션 스냅샷(914) 및 로케이션 측정들(922, 924)은 모션 정보와 추가로 연관될 수 있다. 로케이션 스냅샷(914)이 클라이언트 디바이스가 로케이션 업데이트(934) 시에 고속으로 이동하고 있었다는 것을 나타내고, 웨어러블 디바이스로부터의 다른 데이터가 웨어러블 디바이스가 데이터 캡처 시간(934)에 또는 로케이션 측정(924) 시에 고속으로 이동하고 있지 않았다는 것을 나타내기 위해 이용가능한 경우, 클라이언트 디바이스는 로케이션 측정(924)이 데이터 캡처 시간(934)과 연관된 콘텐츠에 대한 정확한 로케이션 정보를 제공할 가능성이 더 크다고 결정할 수 있다.
도 10은 본 명세서에 설명된 일부 실시예들에 따른, 예시적인 방법을 도시한다. 도 10은 특히 연관된 로케이션 데이터의 정확도를 개선하고 연관된 웨어러블 디바이스 동작들에서 전력 소비를 감소시키기 위해 콘텐츠와 연관된 로케이션 데이터를 조정하기 위한 방법(1000)을 설명한다. 방법(1000)은 웨어러블 디바이스(31)와 같은 웨어러블 디바이스와 페어링되거나 다른 방식으로 연관된 클라이언트 디바이스(510) 또는 본 명세서에 설명된 임의의 다른 그러한 클라이언트 동반 디바이스(314)에서의 동작들을 수반할 수 있다. 일부 실시예들에서, 방법(1000)은, 명령어들이 클라이언트 디바이스(510)의 처리 회로에 의해 실행될 때 방법(1000)을 수행하는 클라이언트 디바이스(510)의 비일시적 스토리지에 저장된 컴퓨터 판독가능 명령어들로 구체화된다.
방법(1000)은 클라이언트 디바이스(510)의 처리 회로에 의해, 클라이언트 디바이스(510) 상에서 동작하는 제1 애플리케이션을 사용하여 클라이언트 디바이스(510)를 웨어러블 디바이스(31)와 페어링하는 동작(1002)으로 시작한다. 웨어러블 디바이스(31)와 연관된 애플리케이션의 동작들, 또는 클라이언트 디바이스(510)에서의 다른 그러한 동작들 동안, 동작(1004)은 클라이언트 디바이스(510)의 제1 애플리케이션 및 로케이션 회로(413)를 사용하여 제1 시간에 제1 클라이언트 로케이션 결정을 캡처하는 것을 수반한다. 로케이션에 대한 이러한 동작들을 애플리케이션의 동작으로 제한하는 것은 사용자 프라이버시를 보호하고 웨어러블 디바이스(31)와 연관된 로케이션 데이터의 수집에 걸친 사용자 확실성을 애플리케이션과 연관된 프라이버시 설정들에 허용한다. 이러한 제한들이 덜 정확한 로케이션 데이터를 제공하기는 하지만, 이것들은 사용자 프라이버시를 개선할 뿐만 아니라 로케이션 서비스 기반 전력 사용을 제한한다.
그 후, 동작(1006)은, 클라이언트 디바이스(510)에서, 웨어러블 디바이스(31)로부터 제1 피스의 콘텐츠를 수신하는 것을 수반하고, 여기서 제1 피스의 콘텐츠는 콘텐츠 캡처 시간 및 제1 웨어러블 디바이스 로케이션 상태 데이터와 연관되고, 제1 웨어러블 디바이스 로케이션 상태 데이터는 로케이션 데이터 및 로케이션 시간을 포함하고, 로케이션 시간은 콘텐츠 캡처 시간과 상이하다. 전술된 바와 같이, 웨어러블 디바이스(31)에서의 주기적 로케이션 캡처는 개선된 배터리 성능을 허용하지만, 로케이션 정확도를 낮춘다. 웨어러블 디바이스(31)와 클라이언트 디바이스(510) 사이의 페어링 때문에, 시스템은 웨어러블 디바이스(31)와 클라이언트 디바이스(510)의 근접성에 관해 가정을 세울 수 있다. 일부 실시예들에서, 웨어러블 디바이스(31) 및/또는 클라이언트 디바이스(510)에서 생성된 상태 데이터는 이 가정을 검증하고, 웨어러블 디바이스(31)를 사용하여 캡처된 콘텐츠와 연관시킬 최상의 로케이션 데이터에 관한 정확도 추정치를 더 개선하기 위해 사용될 수 있다. 그 후, 동작(1008)은 로케이션 데이터의 추정된 정확도 및 제1 클라이언트 로케이션 결정에 기초하여 제1 피스의 콘텐츠를 처리하여 제1 피스의 콘텐츠에 대한 연관된 로케이션을 업데이트하는 것을 수반한다.
일부 실시예들에서, 로케이션 데이터의 추정된 정확도는 콘텐츠 캡처 시간의 로케이션 시간 및 제1 시간에 대한 시간 근접도에 기초한다. 일부 그러한 실시예들은 시간 근접도가 시간 임계값보다 클 때 로케이션 플래그를 생성하는 것을 수반한다. 일부 그러한 실시예들은 클라이언트 로케이션 결정의 일부로서 속도 값을 수반한다. 일부 이러한 실시예들에서, 제1 피스의 콘텐츠는 제1 모션 데이터 세트와 추가로 연관되고, 여기서 클라이언트 디바이스(510)는 속도 값을 포함하는 제2 모션 데이터 세트와 연관되고, 추정된 정확도는 제1 모션 데이터 세트 및 제2 모션 데이터 세트에 추가로 기초한다. 상태 데이터가 또한 추정된 정확도에 수반될 수 있다. 예를 들어, 관성 센서 데이터 또는 광 센서 데이터가 제공되어 다양한 시간에서 웨어러블 디바이스(31)의 상태를 결정하는데 이용될 수 있다. 유사한 데이터가 웨어러블 디바이스(31)와 연관된 애플리케이션이 실행 중일 때 클라이언트 디바이스(510)의 상태를 결정하기 위해 사용될 수 있다. 상태 데이터의 비교는 로케이션 데이터의 정확도를 더 추정하거나, 다르게는 특정 콘텐츠와 연관시킬 최상의 로케이션 데이터를 결정하기 위해 사용될 수 있다. 예를 들어, 클라이언트 디바이스(510)에서의 상태 데이터가 "이동 중" 또는 "운전 중"임을 나타내고 그 후 "정지"를 나타내는 경우, 콘텐츠 캡처 시간과 "이동 중" 상태 동안 결정된 로케이션 사이의 시간 차이가 콘텐츠 캡처 시간과 "정지" 상태 동안 결정된 나중의 로케이션 사이의 시간 차이보다 더 작더라도, "정지"로의 상태 전이들 후에 캡처된 콘텐츠는 "이동 중" 상태 동안보다 "정지" 상태가 시작된 후에 결정된 로케이션 데이터와 연관될 가능성이 더 클 수 있다. 따라서, 클라이언트 디바이스(510)가 "운전 중" 상태 동안 제1 로케이션 결정을 결정하고, 5분이 경과하고, 콘텐츠가 상태가 "운전 중"에서 "정지"로 변경되는 것과 거의 동일한 시간에 웨어러블 디바이스(31)에서 캡처되지만 어떠한 로케이션 결정 성공도 발생하지 않고 그 후, 또 다른 제2 로케이션 결정이 발생하기 전에 10분이 경과하는 경우, 캡처된 콘텐츠는 상태 데이터로 인해 제1 로케이션 결정보다는 제2 로케이션 결정과 연관될 수 있다.
일부 실시예들에서, 제1 클라이언트 로케이션 결정은 클라이언트 디바이스(510)의 처리 회로를 사용하여 애플리케이션의 부팅 시에 개시된다. 일부 실시예들은 애플리케이션이 클라이언트 디바이스(510) 상에서 동작하는 동안 클라이언트 디바이스(510)의 로케이션 회로(413)를 사용하여 클라이언트 로케이션 결정 동작들을 주기적으로 수행하는 것, 및 클라이언트 디바이스(510)에서, 웨어러블 디바이스(31)로부터 복수의 콘텐츠 피스를 수신하는 것을 수반하며, 여기서 복수의 콘텐츠 피스의 각각의 콘텐츠 피스는 대응하는 콘텐츠 캡처 시간 및 연관된 웨어러블 디바이스 로케이션 상태 데이터와 연관된다. 그 후, 각각의 콘텐츠 피스에 대해, 방법은 연관된 로케이션을 업데이트하기 위해 연관된 웨어러블 디바이스 로케이션 상태 데이터를 클라이언트 로케이션 결정 동작들과 비교하는 단계를 수반한다. 일부 그러한 실시예들에서, 각각의 콘텐츠 피스에 대한 연관된 로케이션은 각각의 콘텐츠 피스에 대한 대응하는 콘텐츠 캡처 시간과의 연관된 시간 차이에 기초하여 클라이언트 결정 동작들의 로케이션 또는 연관된 웨어러블 디바이스 로케이션 상태 데이터로서 선택된다. 그 후, 각각의 콘텐츠 피스는 대응하는 캡처 시간과의 연관된 시간 차이에 기초하여 결정된 연관된 로케이션과 함께 클라이언트 디바이스(510)의 메모리에 저장된다.
전술한 바와 같이, 다양한 상이한 동작들이 방법들(600, 800, 1000)에 수반된다. 특정 동작들이 특정 순서들로 설명되지만, 다른 실시예들은 반복된 동작들 및 개재 동작들로 가능하고, 상이한 방법들의 다양한 동작들의 조합들이 다른 상이한 실시예들 내에서 가능하다. 그러므로, 웨어러블 디바이스(31) 및 페어링된 클라이언트 디바이스들(510)에 의해 제공된 로케이션 서비스들과 연관되어 웨어러블 디바이스들(31)의 전력 성능을 개선시키기 위해 본 명세서에 설명된 혁신들의 가능한 범위 내에서 설명된 동작들 또는 유사한 동작들을 사용하여 추가적인 방법들이 가능하다는 것이 분명할 것이다.
도 11은 일부 실시예에 따른, 웨어러블 디바이스(31)와 함께 사용될 수 있는, 네트워크(495)를 통해 데이터를 교환하도록 구성된 클라이언트-서버 아키텍처를 갖는 네트워크 시스템(1100)을 묘사하는 네트워크 도면이다. 예를 들어, 네트워크 시스템(1100)은 클라이언트들이 네트워크 시스템(1100) 내에서 통신하고 데이터를 교환하는 메시징 시스템(330)일 수 있으며, 여기서 특정 데이터는 본 명세서에 설명된 웨어러블 디바이스들(31)로 그리고 그로부터 통신된다. 데이터는 네트워크 시스템(1100) 및 그의 사용자들과 연관된 다양한 기능들 및 양태들에 관련될 수 있다. 네트워크 시스템(1100)이 본 명세서에서 클라이언트-서버 아키텍처를 갖는 것으로 도시되지만, 다른 실시예들은 피어-투-피어 또는 분산 네트워크 환경들과 같은 다른 네트워크 아키텍처들을 포함할 수 있다.
도 11에 도시된 바와 같이, 네트워크 시스템(1100)은 메시징 시스템(1130)을 포함한다. 메시징 시스템(1130)은 일반적으로, 인터페이스 계층(1124), 애플리케이션 로직 계층(1126), 및 데이터 계층(1128)으로 구성된 3-타이어(three-tiered) 아키텍처에 기초한다. 관련 컴퓨터 및 인터넷 관련 분야의 통상의 기술자에 의해 이해되는 바와 같이, 도 11에 도시된 각각의 모듈 또는 엔진은 실행가능한 소프트웨어 명령어들의 세트 및 명령어들을 실행하기 위한 대응하는 하드웨어(예를 들어, 메모리 및 프로세서)를 나타낸다. 다양한 실시예에서, 본 명세서에서 구체적으로 설명되지 않은 추가 기능성을 용이하게 하기 위해, 도 11에 나타낸 것과 같은, 추가 기능 모듈들 및 엔진들이 메시징 시스템(1130)과 함께 이용될 수 있다. 더구나, 도 11에 묘사된 다양한 기능 모듈들 및 엔진들은 단일 서버 컴퓨터 상에 존재할 수 있거나, 또는 다양한 배열로 여러 개의 서버 컴퓨터에 걸쳐 분산될 수 있다. 더욱이, 메시징 시스템(1130)이 도 11에서는 3-타이어 아키텍처를 갖는 것으로 묘사되어 있지만, 본 발명의 주제는 결코 이러한 아키텍처로만 제한되지는 않는다.
도 11에 도시된 바와 같이, 인터페이스 계층(1124)은 클라이언트 애플리케이션들(1112)을 실행하는 클라이언트 디바이스들(1110) 및 제3자 애플리케이션들(1122)을 실행하는 제3자 서버들(1120)과 같은, 다양한 클라이언트 컴퓨팅 디바이스 및 서버로부터 요청들을 수신하는 인터페이스 모듈들(예를 들어, 웹 서버)(1140)로 구성된다. 수신된 요청들에 응답하여, 인터페이스 모듈들(1140)은 네트워크(1104)를 통해 요청 측 디바이스들에 적절한 응답들을 전달한다. 예를 들어, 인터페이스 모듈들(1140)은 HTTP(Hypertext Transfer Protocol) 요청들, 또는 다른 웹 기반 API(application programming interface) 요청들과 같은 요청들을 수신할 수 있다.
클라이언트 디바이스들(1110)은, 매우 다양한 모바일 컴퓨팅 디바이스 및 모바일 특유의 운영 체제(예를 들어, IOSTM, ANDROIDTM, WINDOWS® PHONE) 중 임의의 것을 포함하는 특정한 플랫폼을 위해 개발된 종래의 웹 브라우저 애플리케이션들 또는 애플리케이션들("앱"이라고도 지칭됨)을 실행할 수 있다. 예에서, 클라이언트 디바이스들(1110)은 클라이언트 애플리케이션들(1112)을 실행하고 있다. 클라이언트 애플리케이션들(1112)은 사용자(1106)에게 정보를 제시하고 네트워크(1104)를 통해 통신하여 메시징 시스템(1130)과 정보를 교환하는 기능성을 제공할 수 있다. 클라이언트 디바이스들(1110) 각각은 적어도 디스플레이(411) 및 메시징 시스템(1130)에 액세스하기 위한 네트워크(1104)와의 통신 능력을 포함하는 컴퓨팅 디바이스를 포함할 수 있다. 클라이언트 디바이스들(1110)은, 원격 디바이스, 워크스테이션, 컴퓨터(61), 범용 컴퓨터, 인터넷 어플라이언스, 핸드헬드 디바이스, 무선 디바이스, 휴대용 디바이스, 웨어러블 컴퓨터, 셀룰러 또는 모바일 전화, PDA(personal digital assistant), 스마트폰, 태블릿, 울트라북, 넷북, 랩톱, 데스크톱, 멀티-프로세서 시스템, 마이크로프로세서-기반의 또는 프로그래머블 가전 제품, 게임 콘솔, 셋탑 박스, 네트워크 PC, 미니 컴퓨터, 및 그와 유사한 것을 포함하지만, 이것으로만 제한되는 것은 아니다. 사용자(1106)는, 사람, 머신, 또는 클라이언트 디바이스(1110)와 상호작용하는 기타의 수단을 포함할 수 있다. 일부 실시예들에서, 사용자들(1106)은 클라이언트 디바이스들(1110)을 통해 메시징 시스템(1130)과 상호작용한다.
도 11에 도시된 바와 같이, 데이터 계층(1128)은 정보 저장 리포지토리 또는 데이터베이스(1134)에의 액세스를 용이하게 해주는 하나 이상의 데이터베이스 서버(1132)를 가진다. 데이터베이스들(1134)은 멤버 프로필 데이터, 소셜 그래프 데이터(예를 들어, 메시징 시스템(1130)의 멤버들 사이의 관계들), 및 다른 사용자 데이터와 같은 데이터를 저장하는 저장 디바이스들이다.
개인은 메시징 시스템(1130)에 등록하여 메시징 시스템(1130)의 멤버가 될 수 있다. 일단 등록되고 나면, 멤버는 메시징 시스템(1130) 상에서 소셜 네트워크 관계(예를 들어, 친구, 팔로워, 또는 연락처)를 형성할 수 있고 메시징 시스템(1130)에 의해 제공되는 광범위한 애플리케이션과 상호작용할 수 있다.
애플리케이션 로직 계층(1126)은, 인터페이스 모듈(1140)과 연계하여, 데이터 계층(1128) 내의 다양한 데이터 소스 또는 데이터 서비스로부터 검색된 데이터로 다양한 사용자 인터페이스를 생성하는 다양한 애플리케이션 로직 모듈(1150)을 포함한다. 개개의 애플리케이션 로직 모듈들(1150)은 메시징 시스템(1130)의 다양한 애플리케이션, 서비스, 및 피처와 연관된 기능성을 구현하는데 이용될 수 있다. 예를 들어, 메시징 애플리케이션은 애플리케이션 로직 모듈들(1150) 중 하나 이상으로 구현될 수 있다. 메시징 애플리케이션은, 클라이언트 디바이스(1110)의 사용자(1106)가 텍스트와 사진 및 비디오와 같은 미디어 콘텐츠를 포함하는 메시지를 송수신하기 위한 메시징 메커니즘을 제공한다. 클라이언트 디바이스(1110)는 지정된 시간 기간(예를 들어, 제한되거나 무제한) 동안 메시징 애플리케이션으로부터의 메시지에 액세스하여 볼 수 있다. 예에서, 특정 메시지는, 특정 메시지가 처음 액세스될 때 시작하는 (예를 들어, 메시지 전송자에 의해 지정된) 미리 정의된 지속기간 동안 메시지 수신자에게 액세스될 수 있다. 미리 정의된 지속기간이 경과한 후에, 메시지는 삭제되고 더 이상 메시지 수신자에게 액세스될 수 없다. 물론, 다른 애플리케이션들 및 서비스들은 그들 자신의 애플리케이션 로직 모듈들(1150)에서 별도로 구체화될 수 있다.
예시적인 머신 및 하드웨어 컴포넌트들
위에서 설명된 예시적인 전자 디바이스들은 다양한 컴퓨터 컴포넌트 또는 머신 요소를 포함할 수 있고, 그것들의 적어도 일부는 자동화된 동작들을 수행하고 및/또는 다양한 기능성을 자동으로 제공하도록 구성된다. 이것들은 예를 들어, 설명된 바와 같은 자동화된 이미지 데이터 처리 및 이미지 캡처 파라미터 조정을 포함한다. 따라서, 안경(31)은 독립적인 컴퓨터 시스템을 제공할 수 있다. 대신에 또는 추가로, 안경(31)은 하나 이상의 오프보드 프로세서 및/또는 디바이스를 포함하는 분산 시스템의 일부를 형성할 수 있다.
도 12는 전술한 디바이스들 중 임의의 하나 이상에 설치될 수 있는 소프트웨어 아키텍처(1202)를 도시하는 블록도(1200)이다. 도 12는 소프트웨어 아키텍처의 비제한적 예일 뿐이고, 본 명세서에 설명된 기능성을 용이하게 하기 위해 많은 다른 아키텍처가 구현될 수 있다는 것을 알 것이다. 다양한 실시예에서, 소프트웨어(1202)는 프로세서들(1310), 메모리(1330), 및 I/O 컴포넌트들(1350)을 포함하는 도 13의 머신(1300)과 같은 하드웨어에 의해 구현된다. 이러한 예시적인 아키텍처에서, 소프트웨어(1202)는 각각의 계층이 특정한 기능성을 제공할 수 있는 계층들의 스택으로서 개념화될 수 있다. 예를 들어, 소프트웨어(1202)는, 운영 체제(1204), 라이브러리들(1206), 프레임워크들(1208), 및 애플리케이션들(1210)과 같은 계층들을 포함한다. 동작상, 애플리케이션들(1210)은, 일부 실시예와 일치하도록, 소프트웨어 스택을 통해 API(application programming interface) 호출(1212)을 기동하고, API 호출(1212)에 응답하여 메시지들(1214)을 수신한다. 다양한 실시예에서, 임의의 클라이언트 디바이스(510), 서버 시스템(498)의 서버 컴퓨터, 또는 본 명세서에 설명된 다른 디바이스는 소프트웨어(1202)의 요소들을 사용하여 동작할 수 있다. 앞서 설명된 바와 같은, 카메라 제어기(134) 및 휴대용 전자 디바이스들의 다른 컴포넌트들과 같은 디바이스들은 소프트웨어(1202)의 양태들을 사용하여 추가적으로 구현될 수 있다.
다양한 구현에서, 운영 체제(1204)는 하드웨어 자원을 관리하고 공통 서비스를 제공한다. 운영 체제(1204)는, 예를 들어, 커널(1212), 서비스들(1222), 및 드라이버들(1224)을 포함한다. 커널(1212)은 일부 실시예들에 일치하도록 하드웨어와 다른 소프트웨어 계층들 사이의 추상화 계층(abstraction layer)으로서 작용한다. 예를 들어, 커널(1212)은, 다른 무엇보다도, 메모리 관리, 프로세서 관리(예를 들어, 스케쥴링), 컴포넌트 관리, 네트워킹, 및 보안 설정을 제공한다. 서비스들(1222)은 다른 소프트웨어 계층들에 대한 다른 공통 서비스들을 제공할 수 있다. 일부 실시예들에 따라, 드라이버들(1224)은 기저 하드웨어를 제어하거나 이와 인터페이싱하는 것을 담당한다. 예를 들어, 드라이버들(1224)은 디스플레이 드라이버, 카메라 드라이버, BLUETOOTH® 또는 BLUETOOTH® Low Energy 드라이버, 플래시 메모리 드라이버, 직렬 통신 드라이버(예를 들어, USB 드라이버), WI-FI® 드라이버, 오디오 드라이버, 전력 관리 드라이버 등을 포함할 수 있다. 안경(31)의 카메라 제어기(134)와 같은 디바이스의 특정 구현들에서, 저전력 회로(420)는 BLUETOOTH® Low Energy 드라이버들 및 통신들을 관리하고 다른 디바이스들을 제어하기 위한 기본 로직만을 포함하는 드라이버들(1224)을 이용하여 동작할 수 있고, 다른 드라이버들은 고속 회로(430)로 동작한다.
일부 실시예들에서, 라이브러리들(1206)은 애플리케이션들(1210)에 의해 활용되는 하위-레벨 공통 인프라스트럭처를 제공한다. 라이브러리들(1206)은, 메모리 할당 기능, 문자열 조작 기능, 수학 기능 등과 같은 기능을 제공할 수 있는 시스템 라이브러리들(1230)(예를 들어, C 표준 라이브러리)를 포함할 수 있다. 또한, 라이브러리들(1206)은, 미디어 라이브러리(예를 들어, MPEG4(Moving Picture Experts Group-4), H.264 또는 AVC(Advanced Video Coding), MP3(Moving Picture Experts Group Layer-3), AAC(Advanced Audio Coding), AMR(Adaptive Multi-Rate) 오디오 코덱, JPEG 또는 JPG(Joint Photographic Experts Group), PNG(Portable Network Graphics)과 같은 다양한 미디어 포맷의 프리젠테이션과 조작을 지원하는 라이브러리들), 그래픽 라이브러리(예를 들어, 디스플레이(411) 상의 그래픽 컨텍스트에서 2차원(2D) 및 3차원(3D)으로 렌더링하는데 이용되는 OpenGL 프레임워크), 데이터베이스 라이브러리(예를 들어, 다양한 관계형 데이터베이스 기능을 제공하는 SQLite), 웹 라이브러리(예를 들어, 웹 브라우징 기능성을 제공하는 WebKit), 및 그와 유사한 것과 같은 API 라이브러리들(1232)을 포함할 수 있다. 라이브러리들(1206)은 또한, 많은 다른 API를 애플리케이션들(1210)에 제공하는 광범위한 다른 라이브러리(1234)를 포함할 수 있다.
프레임워크들(1208)은 일부 실시예에 따라 애플리케이션들(1210)에 의해 활용될 수 있는 상위-레벨 공통 인프라스트럭처를 제공한다. 예를 들어, 프레임워크들(1208)은, 다양한 그래픽 사용자 인터페이스(graphic user interface, GUI) 기능들, 고레벨 자원 관리, 고레벨 로케이션 서비스들 등을 제공한다. 프레임워크들(1208)은 애플리케이션(1210)에 의해 활용될 수 있는 광범위한 범위의 다른 API를 제공할 수 있으며, 그 중 일부는 특정한 운영 체제(1204) 또는 플랫폼 특정적일 수 있다.
예시적인 실시예에서, 애플리케이션들(1210)은, 홈 애플리케이션(1250), 연락처 애플리케이션(1252), 브라우저 애플리케이션(1254), 북 리더 애플리케이션(1256), 로케이션 애플리케이션(1258), 미디어 애플리케이션(1260), 메시징 애플리케이션(1262), 게임 애플리케이션(1264), 및 제3자 애플리케이션(1266)과 같은 광범위한 다른 애플리케이션을 포함한다. 일부 실시예들에 따르면, 애플리케이션들(1210)은 프로그램들에서 정의된 기능들을 실행하는 프로그램들이다. 객체 지향형 프로그래밍 언어(Objective-C, Java 또는 C++) 또는 절차형 프로그래밍 언어(예를 들어, C 또는 어셈블리 언어)와 같은 다양한 방식으로 구조화된 다양한 프로그래밍 언어가 애플리케이션들(1210) 중 하나 이상을 생성하기 위해 채택될 수 있다. 특정 예에서, 제3자 애플리케이션(1266)(예를 들어, 특정 플랫폼의 벤더 이외의 엔티티에 의해 ANDROIDTM 또는 IOSTM SDK(software development kit)를 이용하여 개발된 애플리케이션)은 IOSTM, ANDROIDTM, WINDOWS® Phone, 또는 다른 모바일 운영 체제들과 같은 모바일 운영 체제 상에서 실행되는 모바일 소프트웨어일 수 있다. 이 예에서, 제3자 애플리케이션(1266)은 본 명세서에서 설명된 기능성을 용이하게 하기 위해 운영 체제(1204)에 의해 제공되는 API 호출(1212)을 기동할 수 있다.
본 명세서에 기술된 실시예들은 특히, 디바이스 로케이션을 지속적으로 모니터링하고 업데이트하는 것이 불가능한 그런 자원 제한된 환경에서 로케이션 동작들의 사용을 포함하는 임의의 애플리케이션 또는 애플리케이션 모듈과 상호작용할 수 있다. 대신에, 특정 애플리케이션(1210)은 웨어러블 디바이스(31) 상에서 동작하는 애플리케이션의 일부로서 로케이션 서비스들을 포함할 수 있거나, 또는 애플리케이션(1210)은 자원 제한들을 갖는 동반 디바이스 또는 웨어러블 디바이스(31)와 연계하여 제공되는 로케이션 서비스들을 위해 클라이언트 디바이스(1110)에서 로케이션 동작들을 지원할 수 있다.
본 명세서에서 특정 실시예들은 로직 또는 다수의 컴포넌트, 모듈, 요소들, 또는 메커니즘을 포함하는 것으로 설명된다. 이러한 모듈들은 소프트웨어 모듈들(예를 들어, 머신-판독가능 매체상에 또는 송신 신호에 구체화된 코드) 또는 하드웨어 모듈들을 구성할 수 있다. "하드웨어 모듈"은 특정 동작들을 수행할 수 있는 유형 유닛(tangible unit)이며, 특정 물리적 방식으로 구성되거나 배열될 수 있다. 다양한 예시적 실시예에서, 하나 이상의 컴퓨터 시스템(예컨대, 단독형 컴퓨터 시스템, 클라이언트 컴퓨터 시스템, 또는 서버 컴퓨터 시스템) 또는 컴퓨터 시스템의 하나 이상의 하드웨어 모듈(예컨대, 프로세서 또는 프로세서들의 그룹)은 본 명세서에서 설명된 바와 같은 어떤 동작들을 수행하도록 동작하는 하드웨어 모듈로서 소프트웨어(예컨대, 애플리케이션 또는 애플리케이션 부분)에 의해 구성된다.
일부 실시예들에서, 하드웨어 모듈은 기계적으로, 전자적으로, 또는 그 임의의 적절한 조합으로 구현된다. 예를 들어, 하드웨어 모듈은 어떤 동작들을 수행하도록 영구적으로 구성되는 전용 회로 또는 로직을 포함할 수 있다. 예를 들어, 하드웨어 모듈은 FPGA(field-programmable gate array) 또는 ASIC와 같은 특수 목적 프로세서일 수 있다. 하드웨어 모듈은 어떤 동작들을 수행하도록 소프트웨어에 의해 일시적으로 구성되는 프로그래머블 로직 또는 회로를 또한 포함할 수 있다. 예를 들어, 하드웨어 모듈은 범용 프로세서 또는 다른 프로그래머블 프로세서(1310) 내에 포함된 소프트웨어를 포함할 수 있다. 전용이며 영구적으로 구성된 회로에서, 또는 (예컨대, 소프트웨어에 의해 구성된) 일시적으로 구성된 회로에서 하드웨어 모듈을 기계적으로 구현하기 위한 판단은 비용 및 시간 고려사항에 의해 추진될 수 있다는 것을 알 것이다.
따라서, 어구 "하드웨어 모듈"은 어떤 방식으로 동작하거나 본 명세서에서 설명된 어떤 동작들을 수행하도록 물리적으로 구축되거나, 영구적으로 구성(예컨대, 하드와이어드(hardwired))되거나, 또는 일시적으로 구성(예컨대, 프로그래밍)되는 엔티티라면 무엇이든 간에, 유형 엔티티(tangible entity)를 포괄하는 것으로 이해되어야 한다. 본 명세서에서 이용된 바와 같이, "하드웨어-구현된 모듈"은 하드웨어 모듈을 지칭한다. 하드웨어 모듈들이 일시적으로 구성되는(예를 들어, 프로그래밍되는) 실시예들을 고려하면, 하드웨어 모듈들 각각은 임의의 한 시간 인스턴스에서 인스턴스화되거나 구성될 필요는 없다. 예를 들어, 하드웨어 모듈이 특수 목적 프로세서가 되도록 소프트웨어에 의해 구성된 범용 프로세서(1310)를 포함하는 경우, 범용 프로세서(1310)는 상이한 시간들에서 (예를 들어, 상이한 하드웨어 모듈들을 포함하는) 각자의 상이한 특수 목적 프로세서들로서 구성될 수 있다. 소프트웨어는 그에 따라, 예를 들어, 한 시간 인스턴스에서는 특정의 하드웨어 모듈을 구성하고 상이한 시간 인스턴스에서는 상이한 하드웨어 모듈을 구성하도록 특정의 프로세서 또는 프로세서들(1310)을 구성할 수 있다.
하드웨어 모듈은 다른 하드웨어 모듈에 정보를 제공하고 다른 하드웨어 모듈로부터 정보를 수신할 수 있다. 따라서, 설명된 하드웨어 모듈들은 통신가능하게 결합되는 것으로서 간주될 수 있다. 다중의 하드웨어 모듈이 동시에 존재하는 경우, 통신은 하드웨어 모듈들 중 둘 이상의 하드웨어 모듈 사이에서 (예를 들어, 적절한 회로 및 버스를 통한) 신호 송신을 통해 달성될 수 있다. 다중의 하드웨어 모듈이 상이한 시간들에 구성되거나 인스턴스화되는 실시예들에서, 이러한 하드웨어 모듈들 간의 통신은 예를 들어, 다중의 하드웨어 모듈이 액세스하는 메모리 구조들에서의 정보의 저장 및 검색을 통해 달성될 수 있다. 예를 들어, 하나의 하드웨어 모듈은 동작을 수행하고, 그것이 통신가능하게 결합되는 메모리 디바이스에 그 동작의 출력을 저장한다. 그 후, 추가의 하드웨어 모듈이 저장된 출력을 검색하고 처리하기 위하여 이후의 시간에 메모리 디바이스에 액세스할 수 있다. 하드웨어 모듈들은 입력 또는 출력 디바이스들과의 통신들을 또한 개시할 수 있고, 자원(예컨대, 정보의 모음)에 대해 동작할 수 있다.
본 명세서에 설명된 예시적인 방법들의 다양한 동작들은, 관련 동작들을 수행하도록 (예를 들어, 소프트웨어에 의해) 일시적으로 구성되거나 영구적으로 구성되는 하나 이상의 프로세서(1310)에 의해 적어도 부분적으로 수행될 수 있다. 일시적으로 구성되든 영구적으로 구성되든 간에, 이러한 프로세서들(1310)은 본 명세서에 설명된 하나 이상의 동작 또는 기능을 수행하도록 동작하는 프로세서 구현 모듈들을 구성한다. 본 명세서에서 사용될 때, "프로세서 구현 모듈"이란 하나 이상의 프로세서(1310)를 이용하여 구현된 하드웨어 모듈을 지칭한다.
유사하게, 본 명세서에 설명된 방법들은 특정 프로세서 또는 프로세서들(1310)이 하드웨어의 예가 되면서, 적어도 부분적으로 프로세서 구현될 수 있다. 예를 들어, 방법의 동작들 중 적어도 일부는 하나 이상의 프로세서(1310) 또는 프로세서 구현 모듈에 의해 수행될 수 있다. 더욱이, 하나 이상의 프로세서(1310)는 또한 "클라우드 컴퓨팅" 환경에서 또는 "SaaS(software as a service)"로서 관련 동작들의 수행을 지원하도록 동작할 수 있다. 예를 들어, 동작들 중 적어도 일부는 (프로세서들(1310)을 포함하는 머신들의 예들로서) 컴퓨터들(61)의 그룹에 의해 수행될 수 있고, 이들 동작들은 네트워크(1104)(예를 들어, 인터넷)를 통해 및 하나 이상의 적절한 인터페이스(예를 들어, API)를 통해 액세스가능하다. 특정 실시예들에서, 예를 들어, 클라이언트 디바이스(1110)는 클라우드 컴퓨팅 시스템들과 통신하여 중계 또는 동작할 수 있고, 클라우드 환경에서 본 명세서에 설명된 디바이스들에 의해 생성된 이미지들 또는 비디오들과 같은 미디어 콘텐츠를 저장할 수 있다.
동작들 중 특정 동작의 수행은 단일 머신 내에 상주할 뿐만 아니라 다수의 머신에 걸쳐 배치되는 프로세서들(1310) 사이에 분산될 수 있다. 일부 예시적인 실시예에서, 프로세서들(1310) 또는 프로세서 구현 모듈들은 단일의 지리적 로케이션에 (예를 들어, 가정 환경, 사무실 환경, 또는 서버 팜 내에) 자리잡는다. 다른 예시적인 실시예들에서, 프로세서들(1310) 또는 프로세서 구현 모듈들은 다수의 지리적 로케이션에 걸쳐 분산된다.
도 13은, 머신 판독가능 매체(예를 들어, 머신 판독가능 저장 매체)로부터 명령어들을 판독하고 본 명세서에 논의된 방법론들 중 임의의 하나 이상을 수행할 수 있는, 일부 실시예에 따른 머신(1300)의 컴포넌트들을 도시하는 블록도이다. 구체적으로는, 도 13은 예시적인 형태의 컴퓨터 시스템으로 된 머신(1300)의 개략도를 도시하며, 머신 내부에서, 머신(1300)으로 하여금 여기서 논의된 방법론들 중 임의의 하나 이상을 수행하게 하기 위한 명령어(1316)(예를 들어, 소프트웨어, 프로그램, 애플리케이션, 애플릿, 앱 또는 기타의 실행가능한 코드)가 실행될 수 있다. 대안적인 실시예들에서, 머신(1300)은 독립형 디바이스로서 동작하거나 또는 다른 머신에 결합(예를 들어, 네트워킹)될 수 있다. 네트워킹된 배치에서, 머신(1300)은 서버-클라이언트 네트워크 환경에서 서버 머신 또는 클라이언트 머신의 자격으로, 또는 피어-투-피어(또는 분산형) 네트워크 환경에서 피어 머신으로서 동작할 수 있다. 머신(1300)은, 서버 컴퓨터, 클라이언트 컴퓨터, 개인용 컴퓨터(PC), 태블릿 컴퓨터, 랩톱 컴퓨터, 넷북, 셋탑 박스(STB), PDA, 엔터테인먼트 미디어 시스템, 셀룰러 전화, 스마트폰, 모바일 디바이스, 웨어러블 디바이스(31)(예를 들어, 스마트 시계), 스마트 홈 디바이스(예를 들어, 스마트 어플라이언스), 기타의 스마트 디바이스, 웹 어플라이언스, 네트워크 라우터, 네트워크 스위치, 네트워크 브릿지, 또는 머신(1300)에 의해 취해질 동작들을 지정하는 명령어(1316)들을 순차적으로 또는 기타의 방식으로 실행할 수 있는 임의의 머신을 포함할 수 있지만, 이것으로만 제한되는 것은 아니다. 또한, 단일 머신(1300)만이 도시되어 있지만, "머신"이라는 용어는 또한 본 명세서에서 논의된 방법론들 중 임의의 하나 이상을 수행하기 위해 명령어들(1316)을 개별적으로 또는 공동으로 실행하는 머신들(1300)의 모음을 포함하는 것으로 간주될 것이다.
다양한 실시예에서, 머신(1300)은 버스(1302)를 통해 서로 통신하도록 구성될 수 있는 프로세서들(1310), 메모리(1330), 및 I/O 컴포넌트들(1350)을 포함한다. 예시적인 실시예에서, 프로세서(1310)(예를 들어, CPU(central processing unit), RISC(reduced instruction set computing) 프로세서, CISC(complex instruction set computing) 프로세서, 그래픽 처리 유닛(GPU), 디지털 신호 프로세서(DSP), ASIC, 무선 주파수 집적 회로(RFIC), 또 다른 프로세서, 또는 이들의 임의의 적절한 조합)는, 예를 들어, 명령어들(1316)을 실행할 수 있는 프로세서(1312) 및 프로세서(1314)를 포함한다. "프로세서"라는 용어는, 명령어들(1316)을 동시에 실행할 수 있는 2개 이상의 독립된 프로세서(1312, 1314)("코어"라고도 함)를 포함할 수 있는 멀티 코어 프로세서(1310)를 포함하는 것을 의도한다. 도 13은 다중의 프로세서(1310)를 도시하지만, 머신(1300)은 단일 코어를 갖는 단일 프로세서(1312), 다중 코어를 갖는 단일 프로세서(1312)(예를 들어, 멀티 코어 프로세서), 단일 코어를 갖는 다중 프로세서(1310), 다중 코어를 갖는 다중 프로세서(1310), 또는 이들의 임의의 조합을 포함할 수 있다.
일부 실시예에 따르면, 메모리(1330)는 버스(1302)를 통해 프로세서들(1310)에 액세스가능한, 메인 메모리(1332), 정적 메모리(1334), 및 저장 유닛(1336)을 포함한다. 저장 유닛(1336)은, 본 명세서에 설명된 방법론들 또는 기능들 중 임의의 하나 이상을 구체화하는 명령어(1316)들이 저장되어 있는 머신 판독가능 매체를 포함할 수 있다. 명령어(1316)들은 또한, 머신(1300)에 의한 그 실행 동안에, 완전히 또는 적어도 부분적으로, 메인 메모리(1332) 내에, 정적 메모리(1334) 내에, 프로세서(1310)들 중 적어도 하나 내에(예를 들어, 프로세서의 캐시 메모리 내에), 또는 이들의 임의의 적절한 조합 내에 존재할 수 있다. 따라서, 다양한 실시예에서, 메인 메모리(1332), 정적 메모리(1334), 및 프로세서(1310)는 머신 판독가능 매체로 간주된다.
본 명세서에서 이용된 바와 같이, "메모리"라는 용어는, 일시적으로 또는 영구적으로 데이터를 저장할 수 있는 머신 판독가능 매체를 지칭하며, 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 버퍼 메모리, 플래시 메모리, 및 캐시 메모리를 포함하지만 이에 제한되지는 않는 것으로 간주될 수 있다. 머신 판독가능 매체가 예시적인 실시예에서 단일 매체인 것으로 도시되어 있지만, 용어 "머신 판독가능 매체"는 명령어들(1316)을 저장할 수 있는 단일 매체 또는 다중 매체(예를 들어, 중앙집중형 또는 분산형 데이터베이스, 또는 연관된 캐시 및 서버들)를 포함하는 것으로 간주되어야 한다. "머신 판독가능 매체"라는 용어는 또한, 명령어들(1316)이, 머신(1300)의 하나 이상의 프로세서(예를 들어, 프로세서들(1310))에 의해 실행될 때, 머신(1300)으로 하여금 본 명세서에 설명된 방법론들 중 임의의 하나 이상을 수행하게 하도록, 머신(예를 들어, 머신(1300))에 의한 실행을 위한 명령어들(예를 들어, 명령어들(1316))을 저장할 수 있는 임의의 매체 또는 다중 매체의 조합을 포함하는 것으로 간주되어야 한다. 따라서, "머신 판독가능 매체"는 다중의 저장 장치 또는 디바이스를 포함하는 "클라우드 기반" 저장 시스템 또는 저장 네트워크뿐만 아니라 단일 저장 장치 또는 디바이스를 지칭한다. 따라서 "머신 판독가능 매체"라는 용어는, 제한적인 것은 아니지만, 고체 상태 메모리(예를 들어, 플래시 메모리), 광학 매체, 자기 매체, 다른 비휘발성 메모리(예를 들어, EPROM(erasable programmable read-only memory)), 또는 이들의 임의의 적절한 조합인 하나 이상의 데이터 리포지토리를 포함하는 것으로 취해질 것이다. 용어 "머신 판독가능 매체"는 구체적으로 비법정 신호들 자체는 배제한다.
I/O 컴포넌트들(1350)은 입력을 수신하고, 출력을 제공하고, 출력을 생성하고, 정보를 송신하고, 정보를 교환하고, 측정들을 캡처하는 등을 위한 매우 다양한 컴포넌트를 포함한다. 일반적으로, I/O 컴포넌트들(1350)은 도 13에 도시되지 않은 많은 다른 컴포넌트를 포함할 수 있다는 것을 알 것이다. I/O 컴포넌트들(1350)은 단지 이하의 논의를 간소화하기 위해 기능성에 따라 그룹화되어 있고, 이러한 그룹화는 어떠한 방식으로든 제한하는 것이 아니다. 다양한 예시적인 실시예에서, I/O 컴포넌트들(1350)은 출력 컴포넌트들(1352) 및 입력 컴포넌트들(1354)을 포함한다. 출력 컴포넌트들(1352)은, 시각적 컴포넌트(예를 들어, 플라즈마 디스플레이 패널(PDP), 발광 다이오드(LED) 디스플레이, 액정 디스플레이(LCD), 프로젝터, 또는 CRT(cathode ray tube)와 같은 디스플레이(411)), 음향적 컴포넌트(예를 들어, 스피커), 햅틱 컴포넌트(예를 들어, 진동 모터), 기타의 신호 생성기 등을 포함한다. 입력 컴포넌트들(1354)은 알파뉴메릭 입력 컴포넌트들(예를 들어, 키보드, 알파뉴메릭 입력을 수신하도록 구성되는 터치 스크린, 광전 키보드(photo-optical keyboard), 또는 다른 알파뉴메릭 입력 컴포넌트들), 포인트 기반 입력 컴포넌트들(예를 들어, 마우스, 터치패드, 트랙볼, 조이스틱, 모션 센서, 또는 다른 포인팅 기구들), 촉각 입력 컴포넌트들(예를 들어, 물리적 버튼, 터치들 또는 터치 제스처들의 로케이션 및 힘을 제공하는 터치 스크린, 또는 다른 촉각 입력 컴포넌트들), 오디오 입력 컴포넌트들(예를 들어, 마이크로폰), 및 이와 유사한 것을 포함한다.
일부 추가의 예시적인 실시예에서, I/O 컴포넌트들(1350)은, 무엇보다도, 바이오메트릭 컴포넌트(1356), 모션 컴포넌트(1358), 환경 컴포넌트(1360), 또는 위치 컴포넌트(1362)를 포함한다. 예를 들어, 바이오메트릭 컴포넌트들(1356)은, 표현(예를 들어, 손 표현, 얼굴 표정, 음성 표현, 신체 제스처, 또는 시선 추적)을 검출하고, 생체신호(예를 들어, 혈압, 심박수, 체온, 땀 또는 뇌파)를 측정하고, 사람을 식별(예를 들어, 음성 식별, 망막 식별, 얼굴 식별, 지문 식별, 또는 뇌파계-기반 식별), 및 그와 유사한 것을 하는 컴포넌트들을 포함한다. 모션 컴포넌트들(1358)은 가속도 센서 컴포넌트들(예를 들어, 가속도계), 중력 센서 컴포넌트들, 회전 센서 컴포넌트들(예를 들어, 자이로스코프) 등을 포함한다. 환경 컴포넌트들(1360)은, 예를 들어, 조명 센서 컴포넌트(예를 들어, 광도계), 온도 센서 컴포넌트(예를 들어, 주변 온도를 검출하는 하나 이상의 온도계), 습도 센서 컴포넌트, 압력 센서 컴포넌트(예를 들어, 기압계), 청각적 센서 컴포넌트(예를 들어, 배경 잡음을 검출하는 하나 이상의 마이크로폰), 근접 센서 컴포넌트(예를 들어, 근처의 물체를 검출하는 적외선 센서), 가스 센서 컴포넌트(예를 들어, 머신 후각 검출 센서, 안전을 위해 유해 가스의 농도를 검출하거나 대기 중의 오염 물질을 측정하는 가스 검출 센서), 또는 주변의 물리적 환경에 대응하는 표시, 측정치, 또는 신호를 제공할 수 있는 기타의 컴포넌트들을 포함한다. 위치 컴포넌트(1362)는, 로케이션 센서 컴포넌트(예를 들어, GPS(Global Positioning System) 수신기 컴포넌트), 고도 센서 컴포넌트(예를 들어, 고도가 도출될 수 있는 기압을 검출하는 고도계 또는 기압계), 오리엔테이션 센서 컴포넌트(예를 들어, 자력계), 및 그와 유사한 것을 포함한다.
통신은 다양한 기술을 이용하여 구현될 수 있다. I/O 컴포넌트들(1350)은, 머신(1300)을 제각기 결합(1382) 및 결합(1372)을 통해 네트워크(1380) 또는 디바이스들(1370)에 결합하도록 동작가능한 통신 컴포넌트들(1364)을 포함할 수 있다. 예를 들어, 통신 컴포넌트들(1364)은 네트워크 인터페이스 컴포넌트, 또는 네트워크(1380)와 인터페이싱하기에 적합한 또 다른 디바이스를 포함한다. 추가 예들에서, 통신 컴포넌트들(1364)은 유선 통신 컴포넌트, 무선 통신 컴포넌트, 셀룰러 통신 컴포넌트, 근접장 통신(NFC) 컴포넌트, BLUETOOTH® 컴포넌트(예를 들어, BLUETOOTH® Low Energy), WI-FI® 컴포넌트, 및 다른 양태들을 통해 통신을 제공하는 기타 통신 컴포넌트를 포함한다. 디바이스들(1370)은 또 다른 머신(1300) 또는 임의의 다양한 주변 디바이스(예를 들어, USB를 통해 결합된 주변 디바이스)일 수 있다.
게다가, 일부 실시예들에서, 통신 컴포넌트들(1364)은 식별자를 검출하거나 또는 식별자를 검출하도록 동작가능한 컴포넌트를 포함한다. 예를 들어, 통신 컴포넌트들(1364)은 RFID(radio frequency identification) 태그 판독기 컴포넌트, NFC 스마트 태그 검출 컴포넌트, 광학 판독기 컴포넌트(예를 들어, UPC(Universal Product Code) 바코드과 같은 일차원 바코드, QR(Quick Response) 코드, Aztec 코드, Data Matrix, Dataglyph, MaxiCode, PDF417, Ultra 코드, UCC RSS(Uniform Commercial Code Reduced Space Symbology)-2D 바코드, 및 기타의 광학 코드와 같은 다차원 바코드를 검출하는 광학 센서), 음향 검출 컴포넌트(예를 들어, 태깅된 오디오 신호를 식별하는 마이크로폰), 또는 이들의 임의의 적절한 조합을 포함한다. 또한, 인터넷 프로토콜(IP) 지오-로케이션을 통한 로케이션, WI-FI® 신호 삼각측량을 통한 로케이션, 특정한 로케이션을 나타낼 수 있는 BLUETOOTH® 또는 NFC 비컨 신호 검출을 통한 로케이션 등과 같은 다양한 정보가 통신 컴포넌트들(1364)을 통해 도출될 수 있다.
다양한 예시적인 실시예에서, 네트워크(1380)의 하나 이상의 부분은, 애드혹 네트워크, 인트라넷, 엑스트라넷, 가상 사설망(VPN), 근거리 통신망(LAN), 무선 LAN(WLAN), 광역 네트워크(WAN), 무선 WAN(WWAN), 도시권 통신망(MAN), 인터넷, 인터넷의 일부, PSTN(Public Switched Telephone Network)의 일부, POTS(plain old telephone service) 네트워크, 셀룰러 전화 네트워크, 무선 네트워크, WI-FI® 네트워크, 또 다른 유형의 네트워크, 또는 2개 이상의 이러한 네트워크들의 조합일 수 있다. 예를 들어, 네트워크(1380) 또는 네트워크(1380)의 부분은 무선 또는 셀룰러 네트워크를 포함할 수 있고, 결합(1382)은 CDMA(Code Division Multiple Access) 접속, GSM(Global System for Mobile communications) 접속, 또는 또 다른 유형의 셀룰러 또는 무선 결합을 포함할 수 있다. 이 예에서, 결합(1382)은, 1xRTT(Single Carrier Radio Transmission Technology), EVDO(Evolution-Data Optimized) 기술, GPRS(General Packet Radio Service) 기술, EDGE(Enhanced Data rates for GSM Evolution) 기술, 3G를 포함한 3GPP(third Generation Partnership Project), 4세대 무선(4G) 네트워크, UMTS(Universal Mobile Telecommunications System), HSPA(High-Speed Packet Access), WiMAX(Worldwide Interoperability for Microwave Access), LTE(Long-Term Evolution) 표준, 다양한 표준 설정 기구에 의해 정의된 기타의 것들, 기타의 장거리 프로토콜들, 또는 기타 데이터 전송 기술과 같은, 다양한 유형의 데이터 전송 기술들 중 임의의 것을 구현할 수 있다.
예시적인 실시예에서, 명령어들(1316)은 네트워크 인터페이스 디바이스(예를 들어, 통신 컴포넌트(1364)에 포함된 네트워크 인터페이스 컴포넌트)를 통해 송신 매체를 이용하여 및 다수의 널리 공지된 전송 프로토콜(예를 들어, HTTP) 중 임의의 하나를 이용하여 네트워크(1380)를 통해 송신되거나 수신된다. 유사하게, 다른 예시적인 실시예들에서, 명령어들(1316)은 디바이스들(1370)로의 결합(1372)(예를 들어, 피어-투-피어 결합)을 통해 송신 매체를 이용하여 송신되거나 수신된다. "송신 매체"라는 용어는, 머신(1300)에 의한 실행을 위한 명령어들(1316)을 저장, 인코딩 또는 운반할 수 있고, 이러한 소프트웨어의 전달을 가능케 하는 디지털 또는 아날로그 통신 신호 또는 기타의 무형 매체를 포함하는 임의의 무형 매체를 포함하는 것으로 간주될 것이다.
게다가, 머신 판독가능 매체는 전파 신호를 구체화하지 않는다는 점에서 비일시적(다시 말해서, 임의의 일시적 신호들을 갖지 않음)이다. 그러나, 머신 판독가능 매체를 "비일시적"으로 라벨링하는 것은 매체가 이동할 수 없다는 것을 의미하는 것으로 해석해서는 안 된다; 매체는 하나의 물리적 로케이션에서 또 다른 물리적 로케이션으로 수송 가능한 것으로 간주되어야 한다. 추가로, 머신 판독가능 매체는 유형의 것이므로, 매체는 머신 판독가능 디바이스로 간주될 수 있다.
본 명세서 전체에 걸쳐, 복수형 인스턴스(plural instance)는 단일 인스턴스로서 기술된 컴포넌트들, 동작들, 또는 구조들을 구현할 수 있다. 하나 이상의 방법의 개별적인 동작들이 별개의 동작들로서 예시 및 설명되어 있지만, 개별적인 동작들 중 하나 이상은 동시에 수행될 수 있으며, 이러한 동작들이 예시된 순서로 반드시 수행되는 것을 요구하는 것은 아니다. 예시적인 구성에서 별개의 컴포넌트들로서 제시된 구조 및 기능성은 조합된 구조 또는 컴포넌트로서 구현될 수 있다. 마찬가지로, 단일 컴포넌트로서 제시된 구조들 및 기능성은 개별 컴포넌트들로서 구현될 수 있다. 이들 및 다른 변형, 수정, 추가, 및 개선은 본 명세서의 주제의 범위 내에 있다.
본 발명의 주제에 대한 개관이 특정한 예시적인 실시예들을 참조하여 설명되었지만, 본 개시내용의 실시예들의 더 넓은 범위를 벗어나지 않으면서 이들 실시예들에 대한 다양한 수정 및 변경이 이루어질 수 있다. 본 발명의 주제의 이러한 실시예들은 단지 편의를 위해 그리고 실제로 하나보다 많은 것이 개시된다면 임의의 단일 개시내용 또는 발명의 개념으로 본 출원의 범위를 자발적으로 제한하도록 의도하지 않고서 "발명"이라는 용어에 의해 개별적으로 또는 집합적으로 본 명세서에서 지칭될 수 있다.
본 명세서에서 예시된 실시예들은 본 기술분야의 통상의 기술자가 개시된 교시를 실시할 수 있게 하도록 충분히 상세하게 설명되었다. 본 개시내용의 범위로부터 벗어나지 않고서 구조적 및 논리적 치환과 변경이 이루어질 수 있도록 하는 다른 실시예들이 이용될 수 있고 그로부터 도출될 수 있다. 따라서, 상세한 설명은 제한적인 의미로 해석해서는 안 되며, 다양한 실시예들의 범위는 오직 첨부된 청구항들에 의해, 그러한 청구항들에게 부여된 등가물들의 전체 범위(full range of equivalents)와 함께 정의된다.
본 명세서에서 사용되는 바와 같이, "또는(or)"이라는 용어는 포괄적인 또는 배타적인 의미로 해석될 수 있다. 게다가, 본 명세서에서 단일 인스턴스로서 설명된 자원, 동작, 또는 구조에 대해 복수의 인스턴스가 제공될 수 있다. 추가적으로, 다양한 자원, 동작, 모듈, 엔진, 및 데이터 저장소 사이의 경계는 다소 임의적이고, 특정한 동작들은 구체적인 예시적인 구성들의 맥락에서 예시된다. 기능성의 다른 할당들을 구상해 볼 수 있고 본 개시내용의 다양한 실시예의 범위 내에 있을 수 있다. 일반적으로, 예시적인 구성에서 별개의 자원들로서 제시된 구조 및 기능성은 조합된 구조 또는 자원으로서 구현될 수 있다. 유사하게, 단일 자원으로서 제시된 구조들 및 기능성은 별도의 자원으로서 구현될 수 있다. 이들 및 다른 변형, 수정, 추가, 및 개선은 첨부된 청구항들에 의해 표현되는 본 개시내용의 실시예들의 범위 내에 있다. 따라서, 명세서 및 도면들은 제한적인 의미라기보다는 예시적인 의미로 간주되어야 한다.

Claims (20)

  1. 방법으로서:
    클라이언트 디바이스의 처리 회로에 의해, 상기 클라이언트 디바이스 상에서 동작하는 제1 애플리케이션을 사용하여 상기 클라이언트 디바이스를 웨어러블 디바이스와 페어링하는 단계;
    상기 클라이언트 디바이스의 제1 애플리케이션 및 로케이션 회로를 사용하여 제1 시간에 제1 클라이언트 로케이션 결정을 캡처하는 단계;
    상기 클라이언트 디바이스에서, 상기 웨어러블 디바이스로부터 제1 콘텐츠 피스를 수신하는 단계 - 상기 제1 콘텐츠 피스는 콘텐츠 캡처 시간 및 제1 웨어러블 디바이스 로케이션 상태 데이터와 연관되고, 상기 제1 웨어러블 디바이스 로케이션 상태 데이터는 로케이션 데이터 및 로케이션 시간을 포함하고, 상기 로케이션 시간은 상기 콘텐츠 캡처 시간과 상이함 -; 및
    상기 로케이션 데이터의 추정된 정확도 및 상기 제1 클라이언트 로케이션 결정에 기초하여 상기 제1 콘텐츠 피스를 처리하여 상기 제1 콘텐츠 피스에 대한 연관된 로케이션을 업데이트하는 단계를 포함하는 방법.
  2. 제1항에 있어서,
    상기 로케이션 데이터의 추정된 정확도는 상기 로케이션 시간 및 상기 제1 시간에 대한 상기 콘텐츠 캡처 시간의 시간 근접도에 기초하는 방법.
  3. 제2항에 있어서,
    상기 시간 근접도가 시간 임계값보다 클 때 로케이션 플래그를 생성하는 단계를 추가로 포함하는 방법.
  4. 제1항 또는 제2항에 있어서,
    상기 제1 클라이언트 로케이션 결정은 속도 값을 추가로 포함하는 방법.
  5. 제4항에 있어서,
    상기 제1 콘텐츠 피스는 제1 모션 데이터 세트와 추가로 연관되고, 상기 클라이언트 디바이스는 상기 속도 값을 포함하는 제2 모션 데이터 세트와 연관되고, 상기 추정된 정확도는 상기 제1 모션 데이터 세트 및 상기 제2 모션 데이터 세트에 추가로 기초하는 방법.
  6. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 제1 클라이언트 로케이션 결정은 상기 클라이언트 디바이스의 처리 회로를 사용하여 상기 애플리케이션의 부팅 시에 개시되는 방법.
  7. 제1항 내지 제3항 중 어느 한 항에 있어서,
    상기 애플리케이션이 상기 클라이언트 디바이스 상에서 동작하는 동안 상기 클라이언트 디바이스의 로케이션 회로를 사용하여 클라이언트 로케이션 결정 동작들을 주기적으로 수행하는 단계;
    상기 클라이언트 디바이스에서, 상기 웨어러블 디바이스로부터 복수의 콘텐츠 피스를 수신하는 단계 - 상기 복수의 콘텐츠 피스 중 각각의 콘텐츠 피스는 대응하는 콘텐츠 캡처 시간 및 연관된 웨어러블 디바이스 로케이션 상태 데이터와 연관됨 -; 및
    각각의 콘텐츠 피스에 대해, 상기 연관된 웨어러블 디바이스 로케이션 상태 데이터를 상기 클라이언트 로케이션 결정 동작들과 비교하여 연관된 로케이션을 업데이트하는 단계를 추가로 포함하는 방법.
  8. 제7항에 있어서,
    각각의 콘텐츠 피스에 대한 상기 연관된 로케이션은 각각의 콘텐츠 피스에 대한 대응하는 콘텐츠 캡처 시간과의 연관된 시간 차이에 기초하여 상기 클라이언트 결정 동작들의 로케이션 또는 상기 연관된 웨어러블 디바이스 로케이션 상태 데이터로서 선택되고;
    상기 대응하는 캡처 시간과의 연관된 시간 차이에 기초하여 결정된 상기 연관된 로케이션과 함께 각각의 콘텐츠 피스를 상기 클라이언트 디바이스의 메모리에 저장하는 단계를 포함하는 방법.
  9. 디바이스로서:
    통신 회로;
    메모리; 및
    상기 메모리 및 상기 통신 회로에 결합된 처리 회로를 포함하고, 상기 처리 회로는:
    상기 클라이언트 디바이스 상에서 동작하는 제1 애플리케이션을 사용하여 상기 클라이언트 디바이스와 웨어러블 디바이스의 페어링을 관리하는 동작;
    상기 클라이언트 디바이스의 제1 애플리케이션 및 로케이션 회로를 사용하여 제1 시간에 제1 클라이언트 로케이션 결정을 캡처하는 것을 개시하는 동작;
    상기 클라이언트 디바이스에서의, 상기 웨어러블 디바이스로부터의 제1 콘텐츠 피스의 수신을 관리하는 동작 - 상기 제1 콘텐츠 피스는 콘텐츠 캡처 시간 및 제1 웨어러블 디바이스 로케이션 상태 데이터와 연관되고, 상기 제1 웨어러블 디바이스 로케이션 상태 데이터는 로케이션 데이터 및 로케이션 시간을 포함하고, 상기 로케이션 시간은 상기 콘텐츠 캡처 시간과 상이함 -; 및
    상기 로케이션 데이터의 추정된 정확도 및 상기 제1 클라이언트 로케이션 결정에 기초하여 상기 제1 콘텐츠 피스를 처리하여 상기 제1 콘텐츠 피스에 대한 연관된 로케이션을 업데이트하는 동작을 포함하는 동작들을 수행하도록 구성된 디바이스.
  10. 제9항에 있어서,
    상기 로케이션 데이터의 추정된 정확도는 상기 로케이션 시간 및 상기 제1 시간에 대한 상기 콘텐츠 캡처 시간의 시간 근접도에 기초하는 디바이스.
  11. 제10항에 있어서,
    상기 처리 회로는 상기 시간 근접도가 시간 임계값보다 클 때 로케이션 플래그를 생성하는 동작을 포함하는 동작들을 수행하도록 추가로 구성된 디바이스.
  12. 제9항 내지 제11항 중 어느 한 항에 있어서,
    상기 제1 클라이언트 로케이션 결정은 속도 값을 추가로 포함하는 디바이스.
  13. 제9항 내지 제11항 중 어느 한 항에 있어서,
    상기 처리 회로는:
    상기 애플리케이션이 상기 클라이언트 디바이스 상에서 동작하는 동안 상기 클라이언트 디바이스의 로케이션 회로를 사용하여 클라이언트 로케이션 결정 동작들을 주기적으로 수행하는 동작;
    상기 클라이언트 디바이스에서의, 상기 웨어러블 디바이스로부터의 복수의 콘텐츠 피스의 수신을 관리하는 동작 - 상기 복수의 콘텐츠 피스 중 각각의 콘텐츠 피스는 대응하는 콘텐츠 캡처 시간 및 연관된 웨어러블 디바이스 로케이션 상태 데이터와 연관됨 -;
    각각의 콘텐츠 피스에 대해, 상기 연관된 웨어러블 디바이스 로케이션 상태 데이터를 상기 클라이언트 로케이션 결정 동작들과 비교하여 연관된 로케이션을 업데이트하는 동작을 포함하는 동작들을 수행하도록 추가로 구성되고;
    각각의 콘텐츠 피스에 대한 상기 연관된 로케이션은 각각의 콘텐츠 피스에 대한 대응하는 콘텐츠 캡처 시간과의 연관된 시간 차이에 기초하여 상기 클라이언트 결정 동작들의 로케이션 또는 상기 연관된 웨어러블 디바이스 로케이션 상태 데이터로서 선택되는 디바이스.
  14. 제13항에 있어서,
    상기 처리 회로는:
    상기 대응하는 캡처 시간과의 연관된 시간 차이에 기초하여 결정된 상기 연관된 로케이션과 함께 각각의 콘텐츠 피스를 상기 클라이언트 디바이스의 메모리에 저장하는 동작을 포함하는 동작들을 수행하도록 추가로 구성된 디바이스.
  15. 명령어들을 포함하는 비일시적 컴퓨터 판독가능 매체로서, 상기 명령어들은, 클라이언트 디바이스의 처리 회로에 의해 실행될 때, 상기 클라이언트 디바이스로 하여금 동작들을 수행하도록 야기하고, 상기 동작들은:
    상기 클라이언트 디바이스 상에서 동작하는 제1 애플리케이션을 사용하여 상기 클라이언트 디바이스와 웨어러블 디바이스를 페어링하는 동작;
    상기 클라이언트 디바이스의 제1 애플리케이션 및 로케이션 회로를 사용하여 제1 시간에 제1 클라이언트 로케이션 결정을 캡처하는 동작;
    상기 웨어러블 디바이스로부터 제1 콘텐츠 피스를 수신하는 동작 - 상기 제1 콘텐츠 피스는 콘텐츠 캡처 시간 및 제1 웨어러블 디바이스 로케이션 상태 데이터와 연관되고, 상기 제1 웨어러블 디바이스 로케이션 상태 데이터는 로케이션 데이터 및 로케이션 시간을 포함하며, 상기 로케이션 시간은 상기 콘텐츠 캡처 시간과 상이함 -; 및
    상기 로케이션 데이터의 추정된 정확도 및 상기 제1 클라이언트 로케이션 결정에 기초하여 상기 제1 콘텐츠 피스를 처리하여 상기 제1 콘텐츠 피스에 대한 연관된 로케이션을 업데이트하는 동작을 포함하는 비일시적 컴퓨터 판독가능 매체.
  16. 제15항에 있어서,
    상기 제1 클라이언트 로케이션 결정은 속도 값을 추가로 포함하고, 상기 제1 콘텐츠 피스는 제1 모션 데이터 세트와 추가로 연관되는 비일시적 컴퓨터 판독가능 매체.
  17. 제15항에 있어서,
    상기 클라이언트 디바이스는 상기 속도 값을 포함하는 제2 모션 데이터 세트와 연관되고, 상기 추정된 정확도는 상기 제1 모션 데이터 세트 및 상기 제2 모션 데이터 세트에 추가로 기초하는 비일시적 컴퓨터 판독가능 매체.
  18. 제15항 내지 제17항 중 어느 한 항에 있어서,
    상기 제1 클라이언트 로케이션 결정은 상기 클라이언트 디바이스의 처리 회로를 사용하여 상기 애플리케이션의 부팅 시에 개시되는 비일시적 컴퓨터 판독가능 매체.
  19. 제15항 내지 제17항 중 어느 한 항에 있어서,
    상기 명령어들은 상기 클라이언트 디바이스로 하여금:
    상기 애플리케이션이 상기 클라이언트 디바이스 상에서 동작하는 동안 상기 클라이언트 디바이스의 로케이션 회로를 사용하여 클라이언트 로케이션 결정 동작들을 주기적으로 수행하는 동작;
    상기 클라이언트 디바이스에서, 상기 웨어러블 디바이스로부터 복수의 콘텐츠 피스를 수신하는 동작 - 상기 복수의 콘텐츠 피스 중 각각의 콘텐츠 피스는 대응하는 콘텐츠 캡처 시간 및 연관된 웨어러블 디바이스 로케이션 상태 데이터와 연관됨 -; 및
    각각의 콘텐츠 피스에 대해, 상기 연관된 웨어러블 디바이스 로케이션 상태 데이터를 상기 클라이언트 로케이션 결정 동작들과 비교하여 연관된 로케이션을 업데이트하는 동작을 포함하는 동작들을 수행하도록 추가로 야기하는 비일시적 컴퓨터 판독가능 매체.
  20. 제19항에 있어서,
    각각의 콘텐츠 피스에 대한 상기 연관된 로케이션은 각각의 콘텐츠 피스에 대한 대응하는 콘텐츠 캡처 시간과의 연관된 시간 차이에 기초하여 상기 클라이언트 결정 동작들의 로케이션 또는 상기 연관된 웨어러블 디바이스 로케이션 상태 데이터로서 선택되는 비일시적 컴퓨터 판독가능 매체.
KR1020217042616A 2019-05-30 2020-05-29 웨어러블 디바이스 로케이션 정확도 시스템들 KR20220016489A (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/426,857 2019-05-30
US16/426,857 US10575131B1 (en) 2019-05-30 2019-05-30 Wearable device location accuracy systems
PCT/US2020/035354 WO2020243591A1 (en) 2019-05-30 2020-05-29 Wearable device location accuracy systems

Publications (1)

Publication Number Publication Date
KR20220016489A true KR20220016489A (ko) 2022-02-09

Family

ID=69590818

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020217042616A KR20220016489A (ko) 2019-05-30 2020-05-29 웨어러블 디바이스 로케이션 정확도 시스템들

Country Status (5)

Country Link
US (4) US10575131B1 (ko)
EP (1) EP3977717A1 (ko)
KR (1) KR20220016489A (ko)
CN (1) CN113874813A (ko)
WO (1) WO2020243591A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10582453B1 (en) 2019-05-30 2020-03-03 Snap Inc. Wearable device location systems architecture
US10560898B1 (en) 2019-05-30 2020-02-11 Snap Inc. Wearable device location systems
US10575131B1 (en) 2019-05-30 2020-02-25 Snap Inc. Wearable device location accuracy systems
CN113555132A (zh) * 2020-04-24 2021-10-26 华为技术有限公司 多源数据处理方法、电子设备和计算机可读存储介质

Family Cites Families (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5604765A (en) 1994-12-23 1997-02-18 Stanford Telecommunications, Inc. Position enhanced communication system including system for embedding CDMA navigation beacons under the communications signals of a wireless communication system
US5841396A (en) 1996-03-08 1998-11-24 Snaptrack, Inc. GPS receiver utilizing a communication link
US7308272B1 (en) 2001-10-25 2007-12-11 On-Board Communications, Inc. Mobile phone locator
US9010645B2 (en) 2003-06-13 2015-04-21 Michael Arnouse Portable computing system and portable computer for use with same
US7176833B2 (en) 2005-04-26 2007-02-13 Sony Ericsson Mobile Communications Ab Portable electronic devices, methods and computer program products using activity-triggered GPS updates
JP4889349B2 (ja) 2006-04-05 2012-03-07 オリンパス株式会社 電子スチルカメラ及び画像処理装置
US8188917B2 (en) 2008-02-25 2012-05-29 CSR Technology Holdings Inc. System and method for operating a GPS device in a micro power mode
US8185134B2 (en) 2008-10-21 2012-05-22 Qualcomm Incorporated Multimode GPS-enabled camera
US8878855B2 (en) 2009-08-13 2014-11-04 Liveclicker, Inc. Video in e-mail
US9739890B2 (en) 2009-11-04 2017-08-22 Maxlinear, Inc. GPS baseband controller architecture
US9128180B2 (en) 2012-03-16 2015-09-08 Microsoft Technology Licensing, Llc Efficient power usage in position tracking operations
KR101504182B1 (ko) 2013-02-26 2015-03-24 주식회사 케이티 소셜 미디어 연동을 기반으로 m2m 디바이스를 제어하는 방법 및 시스템
US9602963B2 (en) * 2013-03-15 2017-03-21 Apple Inc. Facilitating access to location-specific information using wireless devices
US8976062B2 (en) 2013-04-01 2015-03-10 Fitbit, Inc. Portable biometric monitoring devices having location sensors
AU2014253684B2 (en) 2013-04-18 2017-06-15 Bluedot Innovation Pty Ltd Reactive hybrid location determination method and apparatus
US9535164B2 (en) 2013-10-10 2017-01-03 Google Technology Holdings LLC Systems and methods for location assistance with personal area network devices
EP3561670A1 (en) 2014-09-02 2019-10-30 Apple Inc. Location determination using communicatively coupled electronic devices
US9692967B1 (en) 2015-03-23 2017-06-27 Snap Inc. Systems and methods for reducing boot time and power consumption in camera systems
US9742997B1 (en) * 2015-05-14 2017-08-22 Snap Inc. Systems and methods for device communication handshaking
US9668217B1 (en) * 2015-05-14 2017-05-30 Snap Inc. Systems and methods for wearable initiated handshaking
US10365811B2 (en) * 2015-09-15 2019-07-30 Verizon Patent And Licensing Inc. Home screen for wearable devices
US20180321351A1 (en) 2015-11-20 2018-11-08 Ford Global Technologies, Llc Wearable device journey informer
EP3497952B1 (en) * 2016-08-11 2021-12-22 Sony Group Corporation Authentication method, wearable device and mobile device
CN109983759B (zh) * 2016-11-01 2021-06-04 斯纳普公司 快速视频采集和传感器调节
US11092998B1 (en) 2018-01-12 2021-08-17 Snap Inc. Eyewear device with fingerprint sensor for user input
US10387487B1 (en) * 2018-01-25 2019-08-20 Ikorongo Technology, LLC Determining images of interest based on a geographical location
US11115074B1 (en) 2018-07-05 2021-09-07 Snap Inc. Wearable device antenna
US10582453B1 (en) 2019-05-30 2020-03-03 Snap Inc. Wearable device location systems architecture
US10560898B1 (en) 2019-05-30 2020-02-11 Snap Inc. Wearable device location systems
US10575131B1 (en) 2019-05-30 2020-02-25 Snap Inc. Wearable device location accuracy systems

Also Published As

Publication number Publication date
US11716592B2 (en) 2023-08-01
US10575131B1 (en) 2020-02-25
US20200382905A1 (en) 2020-12-03
US20230328479A1 (en) 2023-10-12
WO2020243591A1 (en) 2020-12-03
US11026052B2 (en) 2021-06-01
EP3977717A1 (en) 2022-04-06
CN113874813A (zh) 2021-12-31
US20210337351A1 (en) 2021-10-28

Similar Documents

Publication Publication Date Title
US11320651B2 (en) Reducing boot time and power consumption in displaying data content
US11785549B2 (en) Wearable device location systems
KR102185343B1 (ko) 고속 비디오 캡처 및 센서 조절
US11716592B2 (en) Wearable device location accuracy systems
US11963105B2 (en) Wearable device location systems architecture
US11785336B2 (en) Wearable satellite receiver with reduced power consumption
KR102686279B1 (ko) 웨어러블 디바이스 로케이션 시스템들
KR20240116557A (ko) 웨어러블 디바이스 로케이션 시스템들

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right