KR101477443B1 - 저 비용의 프로그램 가능 패턴 인식을 제공하는 방법 및 장치 - Google Patents

저 비용의 프로그램 가능 패턴 인식을 제공하는 방법 및 장치 Download PDF

Info

Publication number
KR101477443B1
KR101477443B1 KR1020137010667A KR20137010667A KR101477443B1 KR 101477443 B1 KR101477443 B1 KR 101477443B1 KR 1020137010667 A KR1020137010667 A KR 1020137010667A KR 20137010667 A KR20137010667 A KR 20137010667A KR 101477443 B1 KR101477443 B1 KR 101477443B1
Authority
KR
South Korea
Prior art keywords
pattern recognition
mask
memory
processor
state machine
Prior art date
Application number
KR1020137010667A
Other languages
English (en)
Other versions
KR20130073972A (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 KR20130073972A publication Critical patent/KR20130073972A/ko
Application granted granted Critical
Publication of KR101477443B1 publication Critical patent/KR101477443B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/02Knowledge representation; Symbolic representation
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4498Finite state machines
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/94Hardware or software architectures specially adapted for image or video understanding

Abstract

패턴 인식을 제공하는 장치가 적어도 하나의 프로세서와, 컴퓨터 프로그램 코드를 포함하는 적어도 하나의 메모리를 포함할 수 있다. 적어도 하나의 메모리 및 컴퓨터 프로그램 코드는 적어도 하나의 프로세서와 함께 장치로 하여금 사용자 단말기의 움직임을 기술하는 센서 데이터의 표시를 수신하게 하고, 결과값들을 정의하기 위해 사전 정의된 방식으로 센서 데이터의 확장을 제공하게 하며, 유한 상태 머신으로 제공하기 위한 선택된 결과값을 발생하기 위해 결과값들에 대해 논리 마스크를 적용하게 하고, 유한 상태 머신의 최종 상태로의 정의된 천이를 진행함으로써 식별되는 패턴에 센서 데이터가 대응하는지를 판정하기 위해 유한 상태 머신과 연계된 패턴 인식 알고리즘을 활용하게 하도록 구성된다. 그에 대응하는 컴퓨터 프로그램 제품과 방법 역시 제공된다.

Description

저 비용의 프로그램 가능 패턴 인식을 제공하는 방법 및 장치{METHOD AND APPARATUS FOR PROVIDING LOW COST PROGRAMMABLE PATTERN RECOGNITION}
본 발명의 실시예들은 전반적으로 모바일 전자 장치 기술에 관한 것으로, 보다 구체적으로는 저비용의 프로그램 가능한 패턴 인식을 제공하는 방법 및 장치에 관한 것이다.
전자 장치는 현대 세계에서 점점 더 유비쿼터스화되고 있다. 특히, 모바일 통신 장치는 모든 연령대의 사회 경제적 배경과 교양 정도를 갖는 사람들에게 인기를 끌고 있다. 따라서, 이러한 장치의 사용자는 각자의 모바일 통신 장치에 더욱 더 밀착되고 있다. 이 장치들이 통화, 이메일링, 공유 혹은 소비 미디어 콘텐츠, 게임, 네비게이션 및 다른 다양한 활동중 어느 것에 이용되던 간에, 사람들은 그들의 장치에 더 많이 접속하고, 그에 따라 다른 사람과 일반 세상에도 더 많이 연결된다.
처리 능력, 메모리 관리, 애플리케이션 개발, 전력 관리 및 그 밖의 영역에서의 발전 덕분에, 통신 장치, 예컨대 컴퓨터, 모바일 전화기, 카메라, PDA, 미디어 플레이어 및 많은 그 밖의 장치는 점점 더 유능해지고 있다. 그러나, 모바일 통신 장치의 인기와 유용성은 일반적으로 이런 장치의 할인 판매 및 사용을 부채질할 뿐만 아니라, 더 유능한 하드웨어를 저비용의 소형 패키지로 제공하기 위해, 그리고 이런 장치가 활용될 수 있는 방대한 수량과 종류의 애플리케이션을 제공하기 위해 설계자와 제조자들이 지속적인 경쟁을 하도록 만든다.
그러므로, 매우 소형의 패키지로 강력한 패턴 인식 성능을 제공하면서도 모바일 전자 장치에 이용가능한 패턴 인식 시스템을 제공할 수 있는 방법, 장치 및 컴퓨터 프로그램 제품이 제공된다. 따라서, 예컨대 검출 프로그램은 센서 하드웨어와 함께 이용될 수 있는 유한 상태 머신을 통해 정의되거나 또는 심지어 센서가 위치되는 바로 그 칩에 정의될 수 있다. 더 나아가, 검출 프로그램은 비교적 저 비용으로 저 전력을 소비하면서 매우 강력한 검출 성능을 제공하는 비교적 소형일 수 있다.
일 실시예로, 패턴 인식을 제공하는 방법이 제시된다. 이 방법은 사용자 단말기의 움직임을 기술하는 센서 데이터의 표시(indication)를 수신하는 것과, 결과값들(outcome values)을 정의하기 위해 사전 정의된 방식으로 센서 데이터의 확장(expansion)을 제공하는 것과, 유한 상태 머신으로 제공하기 위한 선택된 결과값을 발생하기 위해 결과값들에 대해 논리 마스크를 적용하는 것과, 유한 상태 머신의 최종 상태로의 정의된 천이를 진행함으로써 식별되는 패턴에 센서 데이터가 대응하는지를 판정하기 위해 유한 상태 머신과 연계된 패턴 인식 알고리즘을 활용하는 것을 포함할 수 있다.
다른 실시예로, 패턴 인식을 제공하는 컴퓨터 프로그램 제품이 제시된다. 이 컴퓨터 프로그램 제품은 컴퓨터 실행 가능 프로그램 코드 명령어가 내장되어 있는 적어도 하나의 비 일시성 컴퓨터 판독 가능 저장 매체를 포함한다. 컴퓨터 실행 가능 프로그램 코드 명령어는 사용자 단말기의 움직임을 기술하는 센서 데이터의 표시를 수신하는 프로그램 코드 명령어와, 결과값들을 정의하기 위해 사전 정의된 방식으로 센서 데이터의 확장을 제공하는 프로그램 코드 명령어와, 유한 상태 머신으로 제공하기 위한 선택된 결과값을 발생하기 위해 결과값들에 대해 논리 마스크를 적용하는 프로그램 코드 명령어와, 유한 상태 머신의 최종 상태로의 정의된 천이를 진행함으로써 식별되는 패턴과 센서 데이터가 대응하는지를 판정하기 위해 유한 상태 머신과 연계된 패턴 인식 알고리즘을 활용하는 프로그램 코드 명령어를 포함할 수 있다.
또다른 실시예로, 패턴 인식을 제공하는 장치가 제시된다. 이 장치는 적어도 하나의 프로세서와, 컴퓨터 프로그램 코드를 포함하는 적어도 하나의 메모리를 포함할 수 있다. 적어도 하나의 메모리와 컴퓨터 프로그램 코드는 적어도 하나의 프로세서를 이용하여 장치로 하여금 적어도 장치의 움직임을 기술하는 센서 데이터의 표시를 수신하게 하고, 결과값들을 정의하기 위해 사전 정의된 방식으로 센서 데이터의 확장을 제공하게 하며, 유한 상태 머신으로 제공하기 위한 선택된 결과값을 발생하기 위해 결과값들에 대해 논리 마스크를 적용하게 하고, 유한 상태 머신의 최종 상태로의 정의된 천이를 진행함으로써 식별되는 패턴에 센서 데이터가 대응하는지를 판정하기 위해 유한 상태 머신과 연계된 패턴 인식 알고리즘을 활용하게 한다.
또다른 실시예로, 패턴 인식을 제공하는 장치가 제시된다. 이 장치는 장치의 움직임을 기술하는 센서 데이터의 표시를 수신하는 수단과, 결과값들을 정의하기 위해 사전 정의된 방식으로 센서 데이터의 확장을 제공하는 수단과, 유한 상태 머신으로 제공하기 위한 선택된 결과값을 발생하기 위해 결과값들에 대해 논리 마스크를 적용하는 수단과, 유한 상태 머신의 최종 상태로의 정의된 천이를 진행함으로써 식별되는 패턴과 센서 데이터에 대응하는지를 판정하기 위해 유한 상태 머신과 연계된 패턴 인식 알고리즘을 활용하는 수단을 포함할 수 있다.
본 발명의 실시예들이 일반적인 용어들로 정의됨에 있어 첨부 도면을 참조할 것이며, 이때 도면들은 반드시 일정 비율로 도시된 것은 아니다.
도 1은 본 발명의 예시적인 실시예를 이용하는 모바일 단말기의 개략적인 블록도이다.
도 2는 본 발명의 예시적인 일 실시예에 따라 저 비용 및 저 전력 소모성 프로그램 가능 인식 시스템을 제공하는 장치의 개략적인 블록도이다.
도 3은 본 발명의 예시적인 일 실시예에 따른 데이터 전 처리기 및 상태 결정기의 블록도를 도시한다.
도 4는 본 발명의 예시적인 일 실시예에 따른 데이터 전 처리기의 블록도의 상세도를 도시한다.
도 5는 본 발명의 예시적인 일 실시예에 따른 데이터 전 처리기 내부의 마스크 로직의 블록도를 도시한다.
도 6은 도 6a, 도 6b 및 도 6c를 포함하고, 본 발명의 예시적인 일 실시예에 따라 유한 상태 머신을 이용하여 평가되는 검출 신호들의 일 예를 도시한다.
도 7은 도 6에 도시된 예에 대응하는 신호 검출 알고리즘의 상태 차트를 도시한다.
도 8은 본 발명의 예시적인 일 실시예에 따라 도 7의 연상 기호 코드(mnemonic code)를 도메인 특정 프로세서의 머신 코드로 변환하는 일 예를 도시한다.
도 9는 본 발명의 예시적인 일 실시예에 따라 패턴 인식을 제공하는 방법에 따른 흐름도이다.
본 발명의 일부 실시예들이 이제부터 첨부 도면을 참조하여 더 자세히 설명될 것이며, 이들 도면에는 본 발명의 모든 실시예가 아닌 일부만이 도시되어 있다. 실제로, 본 발명의 다양한 실시예들은 많은 다른 형태로 구현될 수 있고, 본원에 설정된 실시예들로만 한정 해석되어서는 안되며, 오히려 이들 실시예들은 본 개시물이 해당 법적 요건을 만족시킬 수 있도록 하기 위해 제시되었다. 본원 전체적으로 동일한 참조 부호는 동일한 구성 요소를 지칭한다. 본원에 이용되는 것처럼 "데이터", "콘텐츠", "정보"라는 용어와 그 유사 용어들은 본 발명의 실시예에 따라 전송, 수신 및/또는 저장될 수 있는 데이터를 지칭하기 위해 서로 바꿔서 이용될 수도 있다. 따라서 이들 용어중 어떤 것의 이용이 본 발명의 실시예의 사상과 범주를 제한하는 것으로 이해되어서는 안된다.
또한, 본원에서 이용되는 '회로망(circuitry)'라는 용어는 (a) 하드웨어 전용 회로 구현(예컨대 아날로그 회로망 및/또는 디지털 회로망의 구현), (b) 장치로 하여금 본원에 설명된 하나 이상의 기능들을 수행하게 하기 위해 함께 작업하는 하나 이상의 컴퓨터 판독 가능 메모리에 저장된 소프트웨어 및/또는 펌웨어 명령어를 포함하는 컴퓨터 프로그램 제품과 회로의 조합, (c) 소프트웨어 혹은 펌웨어가 물리적으로 제공되지 않을 경우에도 동작을 위해 소프트웨어 혹은 펌웨어를 요구하는 회로로, 예컨대 마이크로프로세서 또는 마이크로프로세서의 일부분을 지칭한다. '회로망'의 정의는 특허청구범위를 포함한 본원에서 이 용어의 모든 이용에 적용된다. 다른 예로서, 본원에서 이용되는 '회로망'이라는 용어는 하나 이상의 프로세서 및/또는 그 일부분과 그 수반하는 소프트웨어 및/또는 펌웨어를 포함하는 구현도 포함한다. 다른 예로서, 본원에서 이용되는 '회로망'이라는 용어는, 예를 들면, 모바일 폰을 위한 기저대역 IC 또는 애플리케이션 프로세서 IC, 또는 서버, 셀룰러 네트워크 장치, 다른 네트워크 장치 및/또는 다른 컴퓨터 장치내의 그와 유사한 IC를 포함한다.
본원에서 정의된 것처럼, 비 일시성 물리적 저장 매체(예컨대 휘발성 혹은 비휘발성 메모리 장치)를 지칭하는 "컴퓨터 판독 가능 저장 매체"는 전자기 신호를 지칭하는 "컴퓨터 판독 가능 전송 매체"와 구별될 수 있다.
셀룰러 폰이나 다른 개인용 컴퓨터 장치 및/또는 통신 장치같은 모바일 전자 장치는 사용자와 다른 장치 혹은 네트워크와 상호작용하는 능력이 매우 강력해지고 있다. 이러한 장치들은 종종 사용자의 경험을 개선하도록 기획된 매우 유능한 프로세서 및 주변 장치와 함께 제공된다. 예로서, 일부 모바일 전자 장치에는, 모바일 전자 장치의 움직임을 검출하고 이러한 움직임을 사용자 인터페이스 메커니즘으로서 이용하도록 구성될 수 있는 가속도계(accelerometers)나 다른 센서가 탑재된다. 예를 들어, 모바일 전자 장치를 손에 쥐고 있는 사용자는 특정 응답을 초래하기 위한 입력으로서 모바일 전자 장치를 사용하여 특정 제스처(gestures)를 수행하는 것이 가능해진다.
센서가 이런 식으로 이용될 때, 센서는 처리 엔진이나 주 콘트롤러 혹은 모바일 전자 장치의 프로세서에 의해 처리되는 센서 데이터를 발생할 수 있다. 그러나 이러한 메커니즘은 종종 방대한 양의 에너지를 소모하는데, 그 이유는 예컨대 처리 엔진이 센서 하드웨어보다 100배 혹은 1000배까지의 더 많은 에너지를 소비할 수 있기 때문이다. 이러한 방대한 에너지 소모를 막기 위한 한 가지 대안은 센서 데이터 처리를 전담하는 비교적 저 비용의 마이크로콘트롤러를 이용하는 것이다. 그러나, 크기 제한으로 인해 이러한 추가의 프로세서를 위한 공간을 찾는 것이 어렵고, 어떤 경우에는 추가적인 별개의 프로세서에 대한 비용 문제도 바람직하지 않다.
본 발명의 일부 실시예들은 비교적 강력한 패턴 인식을 다룰 수 있는 매우 작은 패키지(예컨대 프로그램을 위한 16바이트와 구성 및 출력을 위한 16바이트를 포함하는 32바이트)의 제공을 가능하게 한다. 따라서, 금전적 및 공간적 비용과 관련해 더 적은 비용으로 패턴 인식이 제공될 수 있다. 이런 맥락에서, 일부 실시예들은 예컨대 패턴 인식을 위해 센서 하드웨어의 일부로서 포함되는 도메인 특정 머신 언어를 채용하도록 이용되는 상응하는 소형 메모리를 갖는 소형의 도메인 특정 저 전력 소모성 처리 장치를 제공할 수 있다. 따라서, 모바일 전자 장치에 패턴 인식 능력을 제공함에 있어 비교적 저 비용의 효율적인 해결책이 실현될 수 있다.
도 1은 예시적인 일 실시예가 실시될 수 있는 예시적인 플랫폼으로서, 본 발명의 실시예들로부터의 이점을 갖는 모바일 단말기(10)의 블록도를 예시한다. 그러나, 본원에 예시 및 설명된 모바일 단말기(10)는 본 발명의 실시예의 이점을 가질 수 있는 임의의 유형의 장치를 예시하는 것임을 이해해야 하며, 따라서 본 발명의 실시예의 범주를 제한하는 것으로 이해되어서는 안 된다. 이런 맥락에서, 다양한 유형의 모바일 단말기, 예컨대 PDA, 모바일 폰, 페이저, 모바일 TV, 게임기, 랩탑 컴퓨터, 카메라, 비디오 리코더, 오디오/비디오 플레이어, 라디오, GPS같은 위치 인식 장치 혹은 전술한 장치들의 임의 조합 및 그 밖의 유형의 음성 및 텍스트 통신 시스템이 쉽게 본 발명의 실시예를 채용할 수 있을 것이다.
모바일 단말기(10)는 송신기(14) 및 수신기(16)와 동작 가능하게 통신하는 안테나(12) 혹은 다중 안테나를 포함할 수 있다. 모바일 단말기(10)는 또한 예컨대 콘트롤러(20) 또는 다른 처리 장치처럼 송신기(14)로 신호를 제공하고 수신기(16)로부터 신호를 수신하는 장치를 더 포함할 수 있다. 이 신호는 적용 가능한 셀룰러 시스템의 무선 인터페이스 표준에 따른 신호 정보를 포함하고 있으며, 또한 사용자 음성, 수신 데이터 및/또는 사용자 발생 데이터도 포함하고 있다. 이와 관련하여, 모바일 단말기(10)는 하나 이상의 무선 인터페이스 표준, 통신 프로토콜, 변조 유형 및 액세스 유형과 동작 가능하다. 예시로서, 모바일 단말기(10)는 다수의 제 1, 제 2, 제 3 및/또는 제 4 세대 통신 프로토콜 종류중 어떤 것에 따라 동작 가능하다. 예컨대 모바일 단말기(10)는 제 2 세대(2G) 무선 통신 프로토콜 IS-136, 시분할 다중 액세스(TDMA), 세계 무선 통신 시스템(GSM) 및 IS-95 코드 분할 다중 액세스(CDMA)에 따라 동작 가능하거나, 제 3 세대(3G) 무선 통신 프로토콜, 예컨대 범용 이동 통신 시스템(UMTS), CDMA2000, 광대역 코드 분할 다중 액세스(WCDMA) 및 시분할 동기방식 코드 분할 다중 액세스(TD-SCDMA)에 따라 동작 가능하거나, 3.9G 무선 통신 프로토콜 예컨대 E-UTRAN에 따라 동작 가능하거나, 혹은 제 4 세대(4G) 무선 통신 프로토콜 등에 따라 동작 가능할 것이다. 선택적으로, 또는 추가적으로, 모바일 단말기(10)는 비 셀룰러 통신 메커니즘에 따라 동작하는 것이 가능할 수도 있다. 예를 들어, 모바일 단말기(10)는 무선 근거리 통신망(LAN) 혹은 이하에서 도 2와 연계하여 설명되는 다른 통신망에서 통신 가능할 것이다.
일부 실시예에서, 콘트롤러(20)는 모바일 단말기(10)의 오디오 및 논리 기능을 구현하기에 바람직한 회로를 포함할 수 있다. 예를 들어, 콘트롤러(20)는 하나 이상의 디지털 신호 처리기 및/또는 하나 이상의 마이크로프로세서를 포함한다. 콘트롤러는 또한 하나 이상의 아날로그 대 디지털 변환기, 하나 이상의 디지털 대 아날로그 변환기 및/또는 다른 지원 회로를 더 포함한다. 모바일 단말기(10)의 제어 및 신호 처리 기능은 이들 장치의 각각의 성능에 따라 이들 장치 사이에 할당된다. 콘트롤러(20)는 또한 변조 및 전송 이전에 메시지 및 데이터를 컨볼루션으로 부호화하고 인터리브하는 기능을 포함할 수 있다. 콘트롤러(20)는 추가로 내부 음성 부호화기를 포함할 수 있으며, 내부 데이터 모뎀을 포함할 수 있다. 더 나아가, 콘트롤러(20)는 메모리에 저장된 하나 이상의 소프트웨어 프로그램을 동작시키는 기능을 더 포함할 수 있다. 예를 들어, 콘트롤러(20)는 종래의 웹 브라우저같은 접속 프로그램을 동작시킬 수도 있다. 이때 접속 프로그램은 모바일 단말기(10)가 예컨대 무선 애플리케이션 프로토콜(WAP), 하이퍼텍스트 전송 프로토콜(HTTP) 및/또는 그 밖의 프로토콜에 따라 예컨대 위치 기반 콘텐츠 및/또는 다른 웹 페이지 콘텐츠같은 웹 콘텐츠를 전송 및 수신하는 것을 허용할 것이다.
모바일 단말기(10)는 예컨대 종래의 이어폰 또는 스피커폰(24)같은 출력 장치, 신호기(ringer)(22), 마이크로폰(26), 디스플레이(28) 및 사용자 입력 인터페이스를 포함하는 사용자 인터페이스도 포함할 수 있고, 이때 이 장치들은 모두 콘트롤러(20)에 접속되어 있다. 모바일 단말기(10)가 데이터를 수신할 수 있게 하는 사용자 입력 인터페이스는 모바일 단말기(10)로 하여금 데이터를 수신할 수 있게 하는 다수의 장치, 예컨대 키패드(30), 터치 디스플레이(도시 안 됨) 또는 그 밖의 입력 장치중 임의의 장치를 포함할 수 있다. 키패드(30)를 포함하는 일 실시예에서, 키패드(30)는 종래의 숫자 키(0-9) 및 관련 키(#, *)와, 모바일 단말기(10)를 동작시키는데 이용되는 다른 하드 키 및 소프트 키를 포함한다. 선택적으로, 키패드(30)는 종래의 QWERTY 키패드 배열을 포함할 수도 있다. 키패드(30)는 또한 연관 기능을 갖는 다양한 소프트 키도 포함할 수 있다. 또한, 혹은 선택적으로, 모바일 단말기(10)는 예컨대 조이스틱이나 그 밖의 다른 사용자 입력 인터페이스같은 인터페이스 장치를 포함할 수도 있다. 모바일 단말기(10)는 모바일 단말기(10)를 동작시키는데 필요한 여러 회로에 전력을 공급할 뿐만 아니라 감지 가능한 출력으로서 기계적 진동을 선택적으로 제공하는 예컨대 진동 배터리 팩같은 배터리(34)를 더 포함할 수 있다.
또한, 모바일 단말기(10)는 예컨대 위치 인식 움직임 센서같은 센서(36)를 포함할 수 있다. 예를 들어, 센서(36)는 가속도계, 관성 센서, 혹은 어떤 기준에 대해 모바일 단말기(10)의 움직임을 결정할 수 있는 다른 장치를 포함할 수도 있다. 일부 실시예에서, 센서(36)는 온-보드 프로세서와, 온-보드 프로세서에 의해 실행될 때 센서(36)가 명령어에 정의된 해당 기능을 수행하도록 구성하는 명령어를 저장하고 있는 메모리를 포함하여 센서(36)의 기능을 지원하는 하드웨어를 포함할 수도 있다. 그러나 몇몇 경우에는, 센서(36)가 모바일 단말기(10)의 다른 처리 자원(예컨대 콘트롤러(20) 또는 다른 프로세서)을 활용할 수도 있다. 일부의 경우, 센서(36)는 미세 전자 기계 시스템(MEMS) 요소 및/또는 압전성, 압저항성, 용량성 또는 다른 하드웨어적 요소를 포함할 수 있는데, 이들은 모바일 단말기(10)의 움직임(보다 구체적으로는, 센서(36)의 움직임)을 감지하여, 단말기(10)의 움직임에 기반하거나 비례하여 전기 신호를 제공한다. 본원에서 이용되는 것처럼, 센서(36)(또는 센서(36)가 위치되거나 실장되어 있는 장치)의 움직임은 센서(36)의 가속도, 각속도 및/또는 근접 정보를 말한다. 그러므로 센서(36)의 움직임은 예컨대 가속도의 경우는 MEMS 유형 구조에 의해, 각속도의 경우는 자이로스코프에 의해, 혹은 근접 정보의 경우는 근접 센서에 의해 측정될 수 있다. 이런 맥락에서, 센서(36)의 움직임은 전형적으로 속도 또는 가속도의 크기 및 대응 방향 또는 방위와 연관된다. 몇몇 경우, 측정된 움직임은 (예컨대 하나 이상의 차원에서 속도 및/또는 가속도의 성분을 갖는) 다차원일 수 있다. 그러나, 단일 차원의 움직임도 고려되며, 일부 예시적인 실시예에서 측정 가능하다.
일부 실시예에서, 모바일 단말기(10)는 사용자 식별자 모듈(UIM)(38)을 더 포함할 수 있다. UIM(38)은 전형적으로 내장형 프로세서를 갖는 메모리 장치이다. UIM(38)은 예를 들면 가입자 식별 모듈(SIM), 범용 IC 카드(UICC), 범용 가입자 식별 모듈(USIM) 및 탈착식 사용자 식별 모듈(R-UIM) 등을 포함할 수 있다. UIM(38)은 전형적으로 모바일 가입자와 관련된 정보 요소를 저장한다. UIM(38)에 덧붙여서, 모바일 단말기(10)는 메모리와 함께 장칙될 것이다. 예를 들어, 모바일 단말기(10)는 예컨대 데이터를 일시적으로 저장하는 캐시 영역을 포함하는 휘발성 RAM처럼 휘발성 메모리(40)를 포함할 수 있다. 모바일 단말기(10)는 매립형 및/또는 탈작식의 다른 비휘발성 메모리(42)를 포함할 수도 있다. 메모리는 모바일 단말기(10)의 기능을 구현하기 위해 모바일 단말기(10)에서 이용되는 다수의 정보들 중 임의의 정보 및 데이터를 저장할 수 있다. 예를 들어, 메모리는 모바일 단말기(10)를 고유하게 식별할 수 있는 예컨대 국제 모바일 기기 식별(IMEI) 코드같은 식별자를 포함할 수 있다. 더 나아가, 메모리는 셀 id 정보를 결정하기 위한 명령어를 저장할 수도 있다. 구체적으로, 메모리는 콘트롤러(20)가 실행하는 애플리케이션 프로그램을 저장할 수 있으며, 이 프로그램은 모바일 단말기(10)가 통신하고 있는 현재 셀의 신원, 예컨대 셀 id 신원 혹은 셀 id 정보를 결정한다.
도 2는 저 비용 및 저 전력 소모성 프로그램 가능 인식 시스템을 제공하는 장치(50)의 개략적인 블록도이다. 이 장치(50)는 하나 이상의 프로세서, 예컨대 프로세서(70) 및 메모리 장치(76)를 포함하거나 혹은 이들과 통신할 수 있다. 메모리 장치(76)는 예컨대 하나 이상의 휘발성 및/또는 비휘발성 메모리를 포함할 수 있다. 다시 말해서, 예를 들면 메모리 장치(76)는 컴퓨터 장치같은 머신에 의해 판독될 수 있는 데이터를 저장하도록 구성된 게이트를 포함하는 컴퓨터 판독가능 저장 매체같은 전자 저장 장치일 수 있다. 메모리 장치(76)는 본 발명의 예시적인 실시예에 따라 장치로 하여금 다양한 기능을 수행하게 할 수 있는 정보, 데이터, 애플리케이션, 명령어 등을 저장하도록 구성될 수 있다. 예를 들면, 메모리 장치(76)는 프로세서(70)에 의한 처리를 위해 입력 데이터를 버퍼하도록 구성될 수 있다. 또한, 혹은 선택적으로, 메모리 장치(760는 프로세서(70)에 의한 실행을 위해 명령어를 저장하도록 구성될 수 있다.
장치(50)는 일부 실시예에서 모바일 단말기(예를 들면 모바일 단말기(10))의 센서 하드웨어(예컨대 센서(36))나 혹은 본 발명의 일 실시예를 채용하도록 구성된 다른 컴퓨터 장치와 연관될 수 있다. 그러나, 일부 실시예에서, 장치(50)는 칩이나 칩셋으로서 구현될 수 있다. 다시 말해서, 장치(50)는 구조 어셈블리(예컨대 기판)상에 재료, 구성요소 및/또는 배선을 포함하는 하나 이상의 물리적 패키지(예컨대 칩)를 포함할 수 있다. 구조 어셈블리는 그 속에 포함된 구성요소 회로에 대한 물리적 세기, 크기 보존 및/또는 전기적 상호 작용의 제한을 제공할 수 있다. 그러므로 장치(50)는 몇몇 경우에 본 발명의 일 실시예를 단일 칩이나 단일 "시스템 온 칩"으로 구현하도록 구성될 수 있다. 이런 맥락에서, 일부 경우에는, 칩 혹은 칩셋이 본원에 설명된 기능들을 제공하기 위해 하나 이상의 동작을 수행하는 수단을 구성할 수 있다.
프로세서(70)는 많은 다른 방식으로 하드웨어에 구현될 수 있다. 예를 들어, 프로세서(70)는 하나 이상의 다양한 처리 수단으로 구현될 수 있는데, 예를 들면, 코프로세서, 마이크로프로세서, 콘트롤러, 디지털 신호 처리기(DSP), DSP를 수반하거나 하지 않는 처리 요소로 구현될 수도 있고, 혹은 주문형 반도체(ASIC), 현장 프로그램 가능 게이트 어레이(FPGA), 그래픽 처리 유닛(GPU), 전용 컴퓨터 칩 혹은 그 밖의 하드웨어 구현같은 집적 회로를 포함하는 다양한 다른 처리 회로로 구현될 수도 있다. 일부 실시예에서, 프로세서(70)는 독립적으로 수행하도록 구성된 하나 이상의 처리 코어를 포함할 수 있다. 다중 코어 프로세서는 단일의 물리적 패키지내에서 다중 처리를 가능하게 한다. 또한, 혹은 선택적으로, 프로세서(70)는 명령어의 독립적인 실행, 파이프라이닝 및/또는 멀티쓰레딩을 가능하게 하기 위해 버스(예컨대 I2C(inter-integraed circuit) 버스)를 통해 탠덤으로 구성되는 하나 이상의 프로세서를 포함할 수도 있다.
예시적인 실시예에서, 프로세서(70)는 메모리 장치(76)에 저장된 명령어 혹은 프로세서(70)에 접근 가능한 명령어를 실행하도록 구성될 수 있다. 선택적으로, 혹은 추가적으로, 프로세서(70)는 하드 코딩된 기능을 실행하도록 구성된다. 그러므로, 하드웨어 방법으로 구성되든지, 소프트웨어 방법으로 구성되든지, 혹은 이 둘의 조합으로 구성되든지 간에 그에 맞게 구성되어 있다면 프로세서(70)는 본 발명의 일 실시예에 다른 동작을 수행할 수 있는 엔티티(예컨대, 회로내에 물리적으로 구현된 것)를 나타낼 수 있다. 따라서, 예를 들어, 프로세서(70)가 ASIC, FPGA 등으로 구성될 때, 이 프로세서(70)는 본원에 설명된 동작을 실행하는 하드웨어로 세부적으로 구성될 수 있다. 선택적으로, 다른 실시예로서, 프로세서(70)가 소프트웨어 명령어로서 구현될 경우, 이 명령어들은 명령어가 수행될 때 프로세서로(70)로 하여금 본원에 설명된 알고리즘 및/또는 동작을 수행하게 하도록 세부적으로 구성될 것이다. 그러나 일부 경우에는, 프로세서(70)가, 본원에 설명된 알고리즘 및/또는 동작을 수행하는 명령어로 프로세서(70)를 추가 구성함으로써 본 발명의 일 실시예를 채용하도록 되어 있는 특정 장치(예컨대 모바일 단말기 또는 움직임 센서)의 프로세서일 수 있다. 프로세서(70)는 특히 프로세서(70)의 동작을 지원하도록 구성된 논리 게이트, 연산 논리 유닛(ALU) 및 클록을 포함할 수 있다.
예시적인 일 실시에로, 프로세서(70)는 데이터 전처리기(80)와 상태 결정기(82)로 구현되거나 이들을 포함하거나 혹은 이들을 제어할 수 있다. 이런 맥락에서, 본원에 설명된 것처럼 프로세서(70)는 데이터 전처리기(80) 및 상태 결정기(82)와 각각 관련될 다양한 기능들의 실행 또는 출현을 표시 또는 제어할 수 있다고 말할 수 있다. 데이터 전처리기(80) 및 상태 결정기(82)는 각각 임의의 수단으로서, 예컨대 소프트웨어에 따라 동작하거나 하드웨어로 구현된 장치 또는 회로이거나, 또는 하드웨어와 소프트웨어의 조합으로 구현된 장치 또는 회로일 수 있다.
데이터 전처리기(80)는 상태 결정기(82)에 의해 동작중에 센서 테이터가 수신되기 이전에 그때 수신된 센서 데이터를 처리하도록 구성된다. 상태 결정기(82)는 해당 입력을 위한 패턴 인식과 관련하여 출력을 결정하도록 구성될 것이다. 몇몇 예에서, 상태 결정기(82)는 이후에 더 상세히 정의되는 패턴 인식 알고리즘을 실행하도록 구성될 것이다. 그러므로, 상태 결정기(82)는 유한 상태 머신의 형태로 비교적 작고 컴팩트한 프로그램을 실행하도록 구성되어, 특정 컨디션(conditions)이, 상태 결정기(82)에 의한 인식을 위해 저장된 프로그램과 연관된 움직임과 일치하는 제스처의 수행이나 다른 물리적 움직임 패턴의 인식으로서 해석될 수 있는 것인지 판정할 수 있다. 데이터 전처리기(80) 및 상태 결정기(82)는 각기 다양한 다른 방식중 임의의 방식으로 구현될 수 있다. 그러나 비제한적인 예시 경우로 세부 사항을 보여주기 위해 일부 예시적인 구현 특징이 도 3에 제시되어 있다.
도 3은 예시적인 실시예에 따른 데이터 전처리기(80) 및 상태 결정기(82)의 블록도을 예시한다. 도 4는 예시적인 실시예에 따른 데이터 전처리기(80)의 블록도의 보다 세부적인 구성을 도시한다. 도 5는 예시적인 실시예에 따른 데이터 전처리기(80) 내부의 마스크 로직의 블록도를 예시한다.
도 3에 도시된 바와 같이, 데이터 전처리기(80)는 미분기(Diff)(90), 데이터 확장기(92) 및 마스크 로직(94)을 포함하고, 상태 결정기(82)는 유한 상태 머신(96)을 포함한다. 도 4에 도시된 것처럼, Diff(90)는 감산기(100)와 멀티플렉서(102)를 포함한다. Diff(90)는 위치 정보에 대응하는 센서 데이터를 수신한다. 일부 경우, 위치 데이터는 3차원 공간(예를 들면, x방향, y방향 및 z방향으로)의 위치를 나타내는 데이터를 포함한다. 그러므로, 위치 정보는 x', y', z' 데이터 값으로 수신된다. 일단 위치 데이터가 수신되면, 위치 데이터는 감산기(100)로 통신되고, 여기에서 3개의 선택 가능한 감산 동작중 하나가 선택된 Diff 모드에 기반하여 수행된다. Diff 모드 선택은 멀티플렉서(102)의 출력을 결정하는데, 이것은 위치 정보로부터 감산될 대응하는 선택된 값을 제공한다. Diff 모드 선택에 기반한 감산과 관련한 옵션은 예컨대 데이터, "오프셋" 값의 감산 및 이전 데이터 값의 감산에 변화가 없을 때 상수값(예를 들면, 0, 0, 0)의 감산을 포함한다. 오프셋 값은 3바이트의 메모리를 차지하며, 장치(50)의 동작에 정의된 신호 처리 설정의 일부이다. 이전 데이터 값은 두 개의 연속적인 센서 데이터 측정 사이에서 나온 델타 값(delta values)으로부터 기인한 데이터이다. 이전 데이터 값은 임시 메모리(예컨대 메모리 장치(76)의 일부분)로부터 검색된다. 따라서 현재 값의 세트가 결정될 때마다, 이 현재 값은 새로운 현재 값이 수신될 때 장래에 이전 데이터 값으로 이용되기 위해 임시 메모리에 저장될 것이다. 감산기(100)의 출력은 데이터 확장기(92)로 공급된다.
데이터 확장기(92)는 위치 정보(예컨대 x', y', z' 데이터 값)와 피감산 데이터(substracted data)(예컨대 x, y, z 데이터 값)를 입력으로서 수신하도록 구성된다. 수신된 피감산 값(예컨대 x, y, z 데이터 값)은 마스크 로직(94)으로 전달된다. 예시적인 실시예에서, 데이터 확장기(92)는 하나 이상의 인버터(inverters)를 포함하여, 피감산 값의 역(inverse)인 역 데이터 값(inverse data values)(예를 들면, -x, -y, -z 데이터 값)을 전달한다. 다시 말해서, 데이터 확장기(92)는 피감산 데이터를 수신하여 피감산 데이터와 역 피감산 데이터(inverse substracted data)를 마스크 로직(94)에 출력으로 제공하도록 구성된다. 데이터 확장기(92)에 의해 수신된 위치 정보(예컨대 x', y', z' 데이터 값)는 마스크 로직(94)으로의 패스 결과(pass result)(v 및 -v)를 발생하는데 이용된다. 패스 결과는 위치 정보에 대한 수학적 함수(예컨대 특허 방정식)의 적용으로 얻어낸 값으로 결정될 것이다. 따라서, 데이터 확장기(92)는 결과값으로서 정의된 총 8개의 데이터 값(예컨대 x, y, z, v 및 -x, -y, -z, -v 데이터 값)을 마스크 로직(94)으로 전달하도록 구성된다.
마스크 로직(94)은 어떤 입력 데이터가 상태 결정기(82)에서 패턴 인식에 이용될 것인지 선택하도록 구성된다. 그러므로, 마스크 로직(94)은 수신된 결과값들중에서 처리를 위해 패턴 인식 알고리즘으로 전송될 특정 값들을 효과적으로 정의한다. 다시 말해서, 마스크 로직(94)은 특정 패턴 인식 알고리즘에서 이용되지 않거나 혹은 필요없는 데이터 값을 필터링한다.
예시적인 실시예에서, 장치(50) 및/또는 모바일 단말기(10)는 마스크 로직(94)에 의해 제공될 마스크를 정의하는 설정(예컨대 신호 처리 설정)에 따라 구성될 것이다. 그러므로, 이러한 설정과 연관된 마스크 로직 블록은 입력되는 결과값에 대해 필터 파라미터를 정의할 것이다. 예시적인 실시예로, 설정 관련 마스크 로직 블록은 적어도 제 1 마스크(MA)와 제 2 마스크(SA)를 포함할 수 있다. 제 1 마스크 및 제 2 마스크는 각각 예컨대 수신된 데이터 값과 동일한 수의 비트(예컨대 8비트)일 수 있다. 마스크 선택기(MASA)는 이 제 1 마스크와 제 2 마스크중 어떤 것이 마스크 로직(94)에 수신된 결과값에 적용될 것인지 선택하는데 이용될 것이다. 마스크 선택기는 몇몇 실시예에서 단일 비트이다.
예시적인 실시예로, 추가 마스크가 이용될 수도 있다. 예를 들면, 일 실시예로, 마스크 로직 선택 블록이 두 개의 추가 마스크(예컨대 MAtrig 및 SAtrig)를 포함할 수 있고, 이들은 활성화(activation)가 가능할 경우 트리거된 다음 컨디션 이후에 (예컨대 MASA에 기반하여) 설정 및 활성화될 것이다. 이후, 특정 신호(예컨대 트리거 소거 신호 혹은 리셋 컨디션)가 수신될 때까지, 트리거된 마스크(예컨대 MAtrig 및 SAtrig)는 수신된 추가 데이터에 대해 마스크 선택기를 통해 선택할 수 있는 사용 가능한 마스크 세트를 유지한다. 그러므로, 예를 들어 "-trig" 마스크는 트리거된 리셋 컨디션 이후에 소거될 것이다. 일부 실시예에서 마스크 로직(94)은 도 5에 도시된 마스크 선택 로직(110)을 포함하거나 혹은 마스크 선택 로직(110)과 함께 동작한다. 마스크 선택 로직(110)은 마스크 선택기(예컨대 MASA) 및 도 5의 실시예에 따라 추가 표시된 것처럼 트리거 컨디션이 수신되었는지에 대한 표시에 기반하여 적용될 마스크(예컨대 MA, SA, MAtrig 또는 SAtrig)의 선택을 위한 논리 구조를 제공할 수 있다. 이와 관련하여, MASA는 제 1 마스크(MA 혹은 MAtrig)와 제 2 마스크(SA 또는 SAtrig) 중에서 선택하고, 제 1 및 제 2 마스크는 전술한 것처럼 트리거 컨디션이 수신되었는지에 기반하여 원래 마스크(MA 또는 SA) 또는 트리거된 마스크(MAtrig 또는 SAtrig)와 연관된다.
일부 실시예에서, 마스크 로직(94)의 사용은 처리될 특정 방향 관련 컨디션은 필터링하는 반면 다른 것은 무시되어 상태 결정기(82)에 도달하지 못하게 할 수 있게 한다. 그래서 마스크 로직(94)은 예컨대 신호 방향 검출 및 인쇄 배선판(PWB) 방향 구성에 이용될 수 있다. 그러므로 선택 마스크는 상태 결정기(82)에 공급될 값들을 정의할 수 있다. 이런 맥락에서, 상태 결정기(82)로 전달된 "필터링된" 데이터는 마스크 로직(94)에 수신된 8개의 데이터 값(예컨대 x, y, z, v 및 -x, -y, -z, -v 데이터 값) 모두이거나 혹은 그 값들중 일부 부분 집합일 수 있다.
상태 결정기(82)는 마스크 로직(94)에 의해 제공된 필터링된 데이터를 수신하여, 유한 상태 머신(960을 통해 이 필터링된 데이터에 대해 동작한다. 일부 실시예에서, 장치(50) 혹은 모바일 단말기(10)의 설정(예컨대 신호 처리기 설정)은 유한 상태 머신(96)의 동작에 적용가능한 설정 혹은 값들을 포함한다. 예를 들어, 이 설정 또는 값들은 유한 상태 머신(96)의 현재 상태에 대한 정보를 보유하는 프로그램 카운터(PC) 및/또는 유한 상태 머신(96)이 리셋 천이(예컨대 리셋 컨디션이 발생함)에서 자신의 상태를 변경한 상태 수(예컨대 PC-RP로 설정)를 나타내는 리셋 포인터(RP)를 포함할 수 있다. 일부 경우, RP는 0의 디폴트 값을 갖지만 프로그램 명령어를 이용하여 변경할 수 있다. RP와 PC의 각각의 크기는 4비트일 수 있다. PC와 RP가 일 예로 각각 4비트이므로, 이 두 값은 단일 바이트의 메모리에 엔코드될 수 있는 반면, 유한 상태 머신(96)의 최대 16개 상태를 나타낼 수 있다.
일부 실시예에서, 설정 또는 값들은 천이 컨디션과 관련된 임계값 및/또는 타이머 설정을 포함할 수 있다. 예를 들어, 설정은 만족할 경우에 천이 컨디션 또는 상태 변경으로 트리거하는 임계값을 정의할 수 있다. 일부 경우에는, 고려될 임계 시간 길이와 관련하여 값들이 제공될 필요가 있고, 각각의 값 또는 임계값과 관련해 타이머 설정은 이러한 임계 시간 길이를 정의할 것이다. 일 실시예로, 일부 파라미터의 이름 혹은 논리 의미가 정의되고, 그들의 대응 크기는 임계 1(8비트), 임계 2(8비트), 타이머 1(16비트), 타이머 2(16비트), 타이머 3(8비트) 및 타이머 4(8비트)를 포함한다. 유한 상태 머신(96)의 각각의 상태 수는 대응 상태를 위해 예약된 메모리의 1바이트를 가질 것이다. 각각의 상태를 위한 메모리의 대응 바이트는 각각의 메모리 어드레스로부터 대응 상태를 위한 리셋 천이 컨디션 및 다음 천이 컨디션으로 엔코드된다. 그러므로 각각의 상태는 다음 상태로의 천이 및 리셋 상태로의 천이를 포함한 두 개의 가능한 천이를 갖는다. 리셋 상태는 디폴트로 초기 상태이지만 이후에 설명되는 것처럼 설정 리셋 포인트(SRP)를 이용하여 일부 경우에는 변경될 수 있다.
몇몇 예로서, 타이머 기반 천이 및 임계 기반 천이를 포함한 두 종류의 천이 컨디션이 존재한다. 각각의 상태는 연관된 타이머 및/또는 임계 컨디션을 갖는다(예를 들면, 한 개의 다음 컨디션 및 한 개의 리셋 컨디션을 포함해 상태마다 두 개의 컨디션을 갖되, 그 중 하나는 NOP(비동작)임). 위에서 지적한 것처럼, 일부 타이머 기반 천이 컨디션은 현재 상태에서 소모되는 시간의 분량이 만료될 때 트리거한다. 임계 기반 천이 컨디션은 임계 컨디션이 입력 데이터와 일치할 때(예를 들면, 임계가 충족될 때) 트리거한다. 예로서, 만약 입력 데이터가 "x-10, y-0"(예컨대 모든 다른 값들은 마스크 로직(94)에 의해 필터링으로 걸러짐을 나타냄)이고 임계 1이 "임계 1을 초과"하는 천이 컨디션과 함께 5로 설정되었다면, x값이 5를 초과하므로 이 컨디션 트리거는 설정된다. 다음 천이 컨디션의 경우, 트리거된 마스크가 설정되게 하여(비록 다른 실시예는 원래 마스크가 이용되도록 트리거된 마스크가 설정되지 않을 수 있게 하더라도), x 데이터 값만이 다음 상태에서 평가를 위해 잔류할 것이다(리셋 컨디션이 트리거하거나 최종 상태에 도달될 때까지). 다음 천이가 트리거할 때, 최종 상태에 도달될 때까지 천이할 때마다 PC는 1씩 증가될 것이다. 유한 상태 머신(96)의 최종 상태에 도달될 때, 대응 패턴은 검출되도록 해석될 것이고, 장치(50)는 대응 패턴과 일치하는 신호가 검출되었음을 나타내는 신호(예컨대 I2C 버스를 통한 인터럽트 신호)를 전송한다. 일부 경우, 신호는 실행 도중에 (예를 들면, 이루에 설명되는 OUTC 및 OUTW 커맨드를 이용하여) 전송될 수 있다. 천이를 위한 값들을 조심스럽게 선택함으로써 설계자들은 검출될 신호 패턴을 훌륭한 표현력으로 설명할 수 있게 된다.
상태 정보는 PC의 값, RP, 타이머 값 및 트리거된 마스크 정보를 포함할 수 있다. 리셋 천이가 트리거할 때, PC는 RP와 동일하게 설정되고, 트리거된 마스크는 클리어된다. 그러므로 데이터는 현재 상태(예컨대 PC가 가리키는 상태)의 천이 컨디션에 대해서만 평가된다. 각각의 상태는 두 개의 천이 컨디션만 가진다(그 중 하나는 비동작과 관련한 NOP이다).
도 6a, 도 6b 및 도 6c로 이루어진 도 6은 유한 상태 머신을 이용하여 평가되고 있는 검출 신호들의 일 예를 예시한다. 이와 관련하여, 도 6은 다음 천이 컨디션을 트리거하고 다음 상태로의 천이를 유발하는 신호가 수신되는 일 예를 예시한다. 도 6a의 예시 그래프는 유한 상태 머신(96)의 다양한 서로 다른 상태의 각각에 의해 기술되고 있는 다양한 파라미터와 비교하여 수신 펄스를 보여준다. 도 6b는 특정 패턴(예컨대 특정 방향으로 모바일 단말기(10)의 움직임)이 충족되는지를 결정하는 파라미터 측정과 관련하여 유한 상태 머신(96)의 대응 상태를 보여준다. 도 6c는 천이를 달성하는데 필요한 컨디션을 충족하는데 실패한 것을 보여주는 예시 그래프이다.
그러므로 도 6은 검출이 일어날 수 있도록 하기 위해 최대 시간 기간내의 임계값 미만이면서 적어도 최소 시간과 관련한 임계값에는 도달해야 하는 신호를 필요로 하는 패턴 검출 동작을 보여준다. 이와 관련하여, 그래프(200)에 도시된 바와 같이, 임계 기반 천이값(임계 TH1)을 초과하는 값을 갖는 신호가 수신된다. 유한 상태 머신(96)은 동작(220)에서 TH1보다 큰 값을 갖는 펄스를 대기하며 상태 1을 유지하며, 그래프(200)에 도시된 것과 같은 펄스의 수신에 응답하여 상태 2로 천이를 하게 된다. 만약 수신 신호가 TH1에 도달하지 못하면, 도 6c의 그래프(270)에 도시된 것처럼, 상태 천이는 일어나지 않는다.
만약 상태 2로의 천이가 발생하면, 타이머 기반 컨디션이 도 6b의 동작(222)에 도시된 것처럼 적용될 것이다. 타이머 기반 컨디션은 수신 펄스가 최소 길이를 갖는지 체크할 것이다. 다시 말해서, 타이머 기반 컨디션은 펄스가 제 1 타이머(T1)의 만료(expiry)로서 정의되는 최소 시간동안 TH1을 초과하는 값을 유지하는지를 검사할 것이다. 그래프(202)에 도시된 것처럼, 펄스의 값은 제 1 타이머가 만료될 때까지 TH1보다 높은 값을 유지하고, 그에 따라 유한 상태 머신(96)은 상태 3으로 천이한다. 그러나, 만약 동작(222)의 컨디션이 충족되지 않았다면(만약 펄스의 값이 도 6c의 그래프(272)에 도시된 것처럼 제 1 타이머의 만료 이전에 TH1 이하로 떨어지면), 유한 상태 머신(96)은 초기 상태(예컨대 상태 1 및 그 대응 동작(220))로 되돌아 천이한다.
만약 상태 3으로의 천이가 발생하면, 도 6b의 동작(224)에서 펄스가 최대 길이를 초과하는지에 대한 판정을 위한 검사가 진행될 것이다. 동작(224)에서, 펄스의 최대 길이가 초과되었는지에 대한 이 검사는 제 2 타이머(T2)의 만료 이전에 신호가 임계 TH1 이하로 감소되었음을 확인함으로써 실시된다. 그래프(204)는 제 2 타이머(T2)의 만료 이전에 펄스가 TH1 이하에 있는 일 예를 나타낸다. 따라서, 유한 상태 머신(96)은 동작(226)에서 종료 상태로 진행할 것이다. 그러나 만약에 동작(224)의 컨디션이 충족되지 않으면(예를 들면, 만약에 도 6c의 그래프(274)에 도시된 것처럼 제 2 타이머의 만료 이후에 펄스의 값이 TH1을 초과하면), 유한 상태 머신(96)은 초기 상태(예를 들면, 상태 1 및 그 대응 동작(220))로 되돌아 천이한다.
도 7은 도 6에 설명된 예에 대응하는 신호 검출 알고리즘의 예시적인 상태 차트를 도시한다. 도 7에서, 유한 상태 머신의 상태 수는 가장 좌측 컬럼에 기재되어 있다. 그 인접 컬럼에는 각각의 개별 상태에서 리셋 컨디션이 충족되게 하는 값이 기재되어 있다. 리셋 컬럼의 우측으로, 대응하는 상태에서 다음 상태로의 진행에 필요한 컨디션의 목록이 기재되어 있다. 각각의 개별 상태에 대한 정보는 가장 우측 컬럼에 기재되어 있다. 그러므로 도 7은 도 6의 신호 검출 알고리즘을 도메인 특정 프로세서의 연상 기호 코드로 변환한다. 도 8은 일 실시예에 따라 도 7의 연상 기호 코드를 도메인 특정 프로세서의 머신 코드로 변환한 일 예를 예시한다. 이하의 표는 예시적인 천이 컨디션을 나타낸다. 이하에 제공된 표는 16개의 천이 컨디션을 제시하므로, 단일 상태로의 천이(예컨대 다음 및 리셋 컨디션)는 1바이트로 엔코드될 수 있다. 4비트는 다음 컨디션을 위해 제공되고, 4비트는 리셋 컨디션을 위해 제공될 것이다. 일부 실시예로, 단지 16개의 컨디션만을 위한 자리를 제공하기 위해 크기 제한이 구현될 수 있다. 따라서, 천이 컨디션을 신중하게 선택함으로써 알고리즘을 위한 가장 좋은 가능한 표현을 제공할 수 있다.
Figure 112013036811513-pct00001
다음 및 리셋 천이 컨디션 커맨드의 최상부에 신호 처리 설정을 변경하기 위해 다른 커맨드가 제공될 수도 있다. 이들 커맨드는 동일한 메모리 공간에 저장될 것이고, 그러므로 패턴 인식 프로그램을 위한 이용 가능한 유한 상태 머신 상태의 수를 줄일 수 있다. 커맨드는 사용과 관련해 다른 의미를 갖지 않는 다음 및 리셋 천이 컨디션을 이용하여 엔코드될 수 있다. 따라서, 적어도 28개의 커맨드가 아래 목록에 나타낸 것처럼 제공될 수 있다.
Figure 112013036811513-pct00002
각각의 커맨드는 1바이트이 메모리를 차지한다. 추가적으로, 몇몇 커맨드는 대응 파라미터의 저장을 위해 1 혹은 2바이트의 메모리를 차지할 수도 있다. 특히, 일부 실시예의 JMP 커맨드는 JMP 커맨드와 두 개의 컨디션 및 두 개의 점프 어드레스를 포함하여 3바이트를 차지할 수도 있다. SPR/CRP 커맨드는 리셋 포인트를 어드레스 PC+1로 설정한다. CRP는 리셋 포인트를 상태 0으로 설정한다. STOP 커맨드는 인터럽트를 전송하여 실행을 중지시킨다. CONT 커맨드는 인터럽트를 전송하고, 상태 0에서부터 속행한다. OUTW는 인터럽트를 전송하고 호스트를 기다리는 반면, OUTS 커맨드는 인터럽트를 전송하고 다음 상태를 속행한다. SELMA는 MA 마스크를 선택하고, SELSA는 SA 마스크를 선택한다. SELMA는 리셋하고, SELSA는 MASA 비트를 설정한다. SRTAM0은 트리거된 마스크의 정규 동작을 제공한다. SRTAM1은 트리거된 마스크를 항상 크리어 상태로 유지함으로써 항상 원래 마스크(예컨대 MA 혹은 SA)가 트리거된 마스크(MAtrig 혹은 SAtrig)를 대신해서 이용되도록 한다. REL은 MASA에 의해 선택된 현재 이용되는 트리거된 마스크를 크리어시킨다.
일부 실시예에서, 제스처와 관련한 방향 검출을 위해 파라미터(예컨대, 피크(peaks))를 정확히 판정하기 위해 피크 검출을 위한 여분의 로직이 제공될 수도 있다. 예를 들어, 트리거된 마스크가 제 1 임계 컨디션을 충족하는 축 및 방향에 기반하여 디폴트로 설정될 수 있다. 피크 검출이 활성화되면, 트리거된 마스크는 제 1 및 제 2 임계 컨디션 사이에서 최고값이 검출되는 축 및 방향에 기반하여 설정될 것이다. 트리거된 마스크는 어떤 다른 축이나 방향에서 더 높은 값이 나올 때마다 갱신될 것이다. 일 예로, 제 2 임계 컨디션은 트리거된 마스크에 대해 보통 평가된다. 따라서, 보다 확실한 방식으로 신호로부터 방향을 검출하는 것이 가능하다. 예시적인 경우로, 검출 패턴을 정의하는 특정 프로그램 코드를 위한 메모리는 16바이트를 넘지 않으며, 신호 처리 설정을 위한 메모리는 12바이트를 넘지 않는다. 추가 4바이트는 유한 상태 머신 프로그램 실행 및 추가 출력 정보를 위해 확보될 것이다. 그러므로, 단일 프로그램이 메모리의 총 32바이트의 메모리 범위로 제공될 수 있고, 이것은 굉장히 작은 메모리량으로 확실한 검출 능력을 제공하는 것으로 간주될 수 있다. 따라서, 양호한 패턴 검출이 저 비용으로 저 전력을 소모하면서 수행될 수 있다.
일부 실시예는 저 전력 소비와 함께 저 비용의 해결책이 제공될 수 있게 하는데, 이 해결책은 동일한 효과를 달성하기 위해 주 프로세서 또는 전용 마이크로프로세서를 이용하는 것보다 더 효율적인 방식으로 센서 데이터의 처리를 가능하게 한다. 그러므로, 비교적 적은 비용과 전력을 소비하면서도 더 자주, 심지어는 연속적으로 처리를 제공할 수 있는 처리 능력이 가능해진다. 다수의 상이한 제스처가 예컨대 더블 탭 제스처(double tap gesture), 더블 셰이크 제스처(double shake gesture)(예를 들면, 한 방향 혹은 여러 방향으로), 단일 셰이크 제스처, 더블 턴 제스처, 방위 결정(예를 들면 풍경 혹은 초상), 보행자 움직임과 관련한 시작 및 중지 검출, 보행 계수기 등등으로 검출될 수 있다. 그러므로 예시적인 실시예는 제스처 입력의 평가를 제공하고, 예컨대 절전 및/또는 웨이크업(wake up) 기능, 보행 계수 및/또는 센서에 의해 검출된 움직임에 기반하여 트리거된 다른 기능들을 제공하는 것처럼 대응 기능을 트리거하도록 채용될 것이다.
일부 실시예에서, 패턴 인식 알고리즘은 프리로드(pre-loaded)되거나 혹은 미리 내재될 수 있다(공장에서 설정되거나 개발자에 의해 설정됨). 그러나, 패턴 인식 알고리즘은 일부 실시예에서 I2C 디지털 버스를 통해 실행 시간에 기반하여 칩에 로드될 수도 있다. 그러므로, 일부 실시예에서는 예컨대 제 3자가 혹은 사용자가 패턴 인식 알고리즘을 정의할 수 있다.
도 9는 본 발명의 예시적인 일 실시예에 따른 방법 및 프로그램 제품의 흐름도이다. 흐름도의 각 블록과 이 흐름도내의 블록들의 조합이 예컨대 하드웨어, 펌웨어, 프로세서, 회로망 및/또는 하나 이상의 컴퓨터 프로그램 명령어를 포함하는 소프트웨어의 실행과 연관된 다른 장치처럼 다양한 수단으로 구현될 수 있음이 이해될 것이다. 예를 들어, 전술한 하나 이상의 프로시저는 컴퓨터 프로그램 명령어로 구현될 수 있다. 이와 관련하여, 전술한 프로시저를 구현하는 컴퓨터 프로그램 명령어는 모바일 단말기 혹은 다른 장치의 메모리 장치에 저장되고, 모바일 단말기 혹은 다른 장치내의 프로세서에 의해 실행된다. 이해될 수 있는 바와 같이, 이러한 컴퓨터 프로그램 명령어는 컴퓨터 혹은 다른 프로그램 가능 장치 예컨대 하드웨어에 로드되어 머신을 만들 수 있고, 결과적으로 컴퓨터 혹은 다른 프로그램 가능 장치상에서 실행되는 명령어는 흐름도 블록에 지정된 기능들을 구현하는 수단을 생성할 수 있다. 이러한 컴퓨터 프로그램 명령어는 또한 컴퓨터 혹은 다른 프로그램 가능 장치로 하여금 특정 방식으로 기능하도록 표시하는 컴퓨터 판독 가능 메모리에 저장될 수도 있고, 결과적으로 컴퓨터 판독 가능 메모리에 저장된 명령어는 흐름도 블록내에 지정된 기능을 구현하는 명령어 수단을 포함하는 제조물을 발생할 수 있다. 또한 컴퓨터 프로그램 명령어는 컴퓨터 혹은 다른 프로그램 가능 장치에 로드되어 일련의 동작이 이 컴퓨터 혹은 다른 프로그램 가능 장치상에서 수행되어 컴퓨터 구현 프로세스를 발생시킬 수 있고, 결과적으로 컴퓨터 혹은 다른 프로그램 가능 장치상에 실행되는 명령어는 흐름도에 지정된 기능들을 구현할 수 있다.
따라서, 흐름도의 블록들은 지정된 기능을 수행하는 수단의 조합, 이 지정된 기능들을 수행하는 동작들의 조합 및 이 지정된 기능들을 수행하는 프로그램 명령어 수단을 지원한다. 흐름도의 하나 이상의 블록과 흐름도내의 블록들의 조합이 특정 기능을 수행하는 전용 하드웨어 기반 컴퓨터 시스템이나 혹은 전용 하드웨어와 컴퓨터 명령어의 조합에 의해 구현될 수 있음이 이해될 것이다.
이와 관련하여, 도 9에 도시된 바와 같이, 본 발명의 일 실시예에 따른 방법은 동작(300)에서 사용자 단말기의 움직임을 기술하는 센서 데이터의 표시를 수신하고, 동작(310)에서 사전 정의된 방식으로 센서 데이터의 확장을 제공하여 결과값을 정의한다. 본 방법은 또한 동작(320)에서 결과값에 논리 마스크를 적용하여 유한 상태 머신에 제공하기 위한 선택된 결과값을 발생하고, 동작(330)에서 유한 상태 머신과 연계된 패턴 인식 알고리즘을 활용하여 센서 데이터가 유한 상태 머신의 최종 상태로의 정의된 천이를 진행함으로써 식별되는 패턴에 대응하는지를 결정한다.
일부 실시예에서, 전술한 동작중 어떤 것이 이하에 설명된 것처럼 수정되거나 더 확장될 수 있다. 더 나아가, 일부 실시예에서는 추가적인 선택적 동작이 포함될 수도 있다. 본원에 설명된 수정안, 선택적 추가안 또는 확장안의 각각은 단독으로 혹은 본원에 설명된 특징들중 다른 것들과 조합하여 동작(300) 내지 동작(330)에 포함될 수 있다. 이런 맥락에서, 선택적 수정안의 각각은 동작(300), 동작(310), 동작(320) 및 동작(330)과 단독으로, 혹은 다른 선택적 동작들의 하나 이상 또는 모두와 임의의 조합으로 조합 가능하다. 일 실시예로, 센서 데이터의 표시를 수신하는 것은 사용자 단말기의 움직임 정보를 1차원 또는 다차원으로 정의하는 데이터를 수신하는 것을 포함할 수도 있고, 센서 데이터의 확장을 제공하는 것은 사전 정의된 방식으로 포맷된 결과 데이터를 발생하도록 움직임 정보에 수학적 함수를 적용하는 것을 포함할 수도 있다. 일부 실시예에서, 논리 마스크를 적용하는 것은 마스크 선택 로직에 기반하여 선택된 마스크를 적용하는 것을 포함할 수 있다. 더 나아가, 마스크 선택 로직에 기반하여 선택된 마스크를 적용하는 것은 트리거된 컨디션과 트리거되지 않은 컨디션 중 어느 것에 1차 마스크를 적용할지 혹은 2차 마스크를 적용할지 결정하기 위해 트리거 컨디션을 나타내는 데이터와 마스크 선택기 입력을 결합하는 것을 포함할 수도 있다. 일 실시예로, 패턴 인식 알고리즘을 활용하는 것은 패턴 인식 알고리즘을 정의하는 프로그램을 활용하는 것을 포함할 수 있다. 프로그램은 메모리에 저장될 수 있고, 프로세서에 의해 실행될 수 있으며, 메모리와 프로세서는 둘다 센서 데이터를 제공하는 센서와 함께 칩을 공유할 수 있거나 센서 데이터를 제공하는 하드웨어와 함께 구현될 수 있다. 일부 실시예에서, 패턴 인식 알고리즘을 활용하는 것은 설정(12바이트) 및 출력(4바이트)을 위해 16바이트를 또한 확보하고 있는 메모리의 단지 16바이트에 저장된 프로그램을 활용하는 것을 포함한다. 출력은 타이머 카운터를 위한 2바이트와 PC 및 RP값을 위한 1바이트를 포함한다. 1바이트는 현재 활성 트리거된 마스크(MAtrig 및 SAtrig)의 콘텐츠를 위해 제공될 것이다. 도 3에서 알 수 있듯이, 확장된 데이터의 출력은 8데이터 "채널"이고, 따라서 8비트가 8채널을 마스크하기 위해 이용될 것이다. 그러므로 각각의 마스크는 단일 바이트에 저장될 것이다. 일 실시예로, 패턴 인식 알고리즘을 활용하는 것은 타이머 기반 천이 혹은 임계 기반 천이를 포함하는 천이에 기반하여 유한 상태 머신에 정의된 알고리즘을 활용하는 것을 포함할 수 있다. 추가적으로, 또는 선택적으로, 패턴 인식 알고리즘을 활용하는 것은 각각의 상태가 단지 다음 상태 및 리셋 상태를 포함한 두 개의 가능한 천이만을 갖는 유한 상태 머신에 정의된 알고리즘을 활용하는 것을 포함할 수도 있다. 일부 실시예에서, 패턴 인식 알고리즘을 활용하는 것은 제조사(예컨대 센서 제조사 혹은 단말기 제조사) 혹은 사용자에 의해 정의된 알고리즘을 활용하는 것을 포함할 수도 있다.
예시적인 실시예에서, 전술한 도 9의 방법을 수행하는 장치는 전술한 동작들(300 내지 330)의 일부 혹은 각각을 수행하도록 구성된 프로세서(예컨대 프로세서(70))를 포함할 수 있다. 프로세서는, 예를 들어, 하드웨어 구현 논리 기능을 수행하거나, 저장된 명령어를 실행하거나 또는 각각의 동작을 수행하는 알고리즘을 실행함으로써 동작들(300 내지 330)을 수행하도록 구성될 수도 있다. 선택적으로, 장치는 전술한 동작들의 각각을 수행하는 수단을 포함할 수도 있다. 이와 관련하여, 일 실시예에 따르면, 동작들(300 내지 330)을 수행하는 수단의 예들은 예컨대 데이터 전처리기(80) 및 상태 결정기(82) 각각을 포함할 수도 있다. 추가적으로, 또는 선택적으로, 프로세서(70)가 데이터 전처리기(80) 및 상태 결정기(82)를 제어하도록 구성되거나 심지어는 이들로 구현될 수도 있기에, 프로세서(70) 및/또는 명령어를 실행하거나 전술한 정보를 처리하는 알고리즘을 실행하는 장치나 회로망은 동작(300 내지 330)을 수행하는 예시적인 수단을 형성할 수도 있다.
당업자라면, 본원에 설정된 발명과 관련하여 전술한 설명과 첨부 도면에 제시된 사상의 이점을 갖는 많은 수정안과 다른 구현들이 연상될 것이다. 그러므로, 본 발명은 개시된 특정 실시예로만 한정되지 않으며, 수정안과 다른 구현들은 첨부된 특허청구범위의 범주내에 포함되는 것으로 의도된다. 더 나아가, 비록 전술한 설명과 첨부 도면이 구성요소 및 기능들의 예시적인 특정 조합의 맥락에서 실시예를 설명하고 있더라도, 구성요소 및/또는 기능들의 다른 조합들이 첨부된 특허청구범위의 범주를 벗어남이 없이 선택적 실시예로 제공될 수도 있음을 이해해야 한다. 이와 관련하여, 예를 들어, 본원에서 명시적으로 설명되지 않은 구성요소 및/또는 기능들의 다른 조합들도 첨부된 특허청구범위의 일부에 설정될 수 있는 것으로 간주된다. 비록 특정 용어들이 본원에서 이용되고 있을지라도, 이 용어들은 포괄적 및 기술적 의미로만 이용된 것으로 한정을 위해 이용된 것은 아니다.

Claims (20)

  1. 패턴 인식을 제공하는 방법에 있어서,
    사용자 단말기의 움직임을 기술하는 센서 데이터의 표시(indication)를 수신하는 단계와,
    결과값(outcome values)을 정의하기 위해 사전 정의된 방식으로 상기 센서 데이터의 확장(expansion)을 제공하는 단계와,
    유한 상태 머신으로 제공하기 위한 선택된 결과값을 발생하기 위해 상기 결과값에 대해 논리 마스크(logical mask)를 적용하는 단계와,
    상기 센서 데이터가 상기 유한 상태 머신의 최종 상태로의 정의된 천이를 진행함으로써 식별되는 패턴에 대응하는지를 판정하기 위해 상기 유한 상태 머신과 연계된 패턴 인식 알고리즘을 활용하는 단계를 포함하는
    패턴 인식 제공 방법.
  2. 제1항에 있어서,
    상기 센서 데이터의 표시를 수신하는 단계는 상기 사용자 단말기의 움직임 정보를 정의하는 데이터를 1차원 혹은 다차원으로 수신하는 단계를 포함하고, 상기 센서 데이터의 확장을 제공하는 단계는 사전 정의된 방식으로 포맷된 결과 데이터를 발생하기 위해 상기 움직임 정보에 수학적 함수를 적용하는 단계를 포함하는
    패턴 인식 제공 방법.
  3. 제1항에 있어서,
    상기 논리 마스크를 적용하는 단계는 마스크 선택 로직에 기반하여 선택된 마스크를 적용하는 단계를 포함하는
    패턴 인식 제공 방법.
  4. 제3항에 있어서,
    상기 마스크 선택 로직에 기반하여 선택된 마스크를 적용하는 단계는 트리거된 컨디션 또는 트리거되지 않은 컨디션에 대해 제 1 마스크를 적용할지 또는 제 2 마스크를 적용할지 판정하기 위해 마스크 선택 입력 및 트리거 컨디션을 나타내는 데이터를 결합하는 단계를 포함하는
    패턴 인식 제공 방법.
  5. 제1항에 있어서,
    상기 패턴 인식 알고리즘을 활용하는 단계는 패턴 인식 알고리즘을 정의하는 프로그램을 활용하는 단계를 포함하되, 상기 프로그램은 메모리에 저장되고 프로세서에 의해 실행되며, 상기 메모리 및 상기 프로세서는 상기 센서 데이터를 제공하는 센서와 함께 칩을 공유하고 있는
    패턴 인식 제공 방법.
  6. 제1항에 있어서,
    상기 패턴 인식 알고리즘을 활용하는 단계는 패턴 인식 알고리즘을 정의하는 프로그램을 활용하는 단계를 포함하되, 상기 프로그램은 메모리에 저장되고 프로세서에 의해 실행되며, 상기 메모리 및 상기 프로세서는 상기 센서 데이터를 제공하는 하드웨어와 함께 구현되는
    패턴 인식 제공 방법.
  7. 제1항에 있어서,
    상기 패턴 인식 알고리즘을 활용하는 단계는 단지 메모리의 16바이트에만 저장된 프로그램을 활용하는 단계를 포함하되, 상기 메모리는 설정 및 출력을 위해 또한 16바이트를 확보하는
    패턴 인식 제공 방법.
  8. 제1항에 있어서,
    상기 패턴 인식 알고리즘을 활용하는 단계는 타이머 기반 천이 또는 임계 기반 천이를 포함하는 천이들에 기반하여 상기 유한 상태 머신에 정의된 알고리즘을 활용하는 단계를 포함하는
    패턴 인식 제공 방법.
  9. 제1항에 있어서,
    상기 패턴 인식 알고리즘을 활용하는 단계는 각각의 상태가 다음 상태 및 리셋 상태를 포함한 단지 두 개의 가능한 천이만을 갖는 상기 유한 상태 머신에 정의된 알고리즘을 활용하는 단계를 포함하는
    패턴 인식 제공 방법.
  10. 제1항에 있어서,
    상기 패턴 인식 알고리즘을 활용하는 단계는 제조사 또는 사용자에 의해 정의된 알고리즘을 활용하는 단계를 포함하는
    패턴 인식 제공 방법.
  11. 패턴 인식을 제공하는 장치에 있어서,
    상기 장치는 적어도 하나의 프로세서 및, 컴퓨터 프로그램 코드를 포함하는 적어도 하나의 메모리를 포함하되,
    상기 적어도 하나의 메모리 및 상기 컴퓨터 프로그램 코드가 상기 적어도 하나의 프로세서와 함께 상기 장치로 하여금 적어도,
    상기 장치의 움직임을 기술하는 센서 데이터의 표시를 수신하게 하고,
    결과값을 정의하기 위해 사전 정의된 방식으로 상기 센서 데이터의 확장을 제공하게 하며,
    유한 상태 머신으로 제공하기 위한 선택된 결과값을 발생하기 위해 상기 결과값에 논리 마스크를 적용하게 하고,
    상기 센서 데이터가 상기 유한 상태 머신의 최종 상태로의 정의된 천이를 진행함으로써 식별되는 패턴에 대응하는지 판정하기 위해 상기 유한 상태 머신과 연계된 패턴 인식 알고리즘을 활용하게 하도록 구성되는
    패턴 인식 제공 장치.
  12. 제11항에 있어서,
    상기 적어도 하나의 메모리 및 상기 컴퓨터 프로그램 코드는 상기 적어도 하나의 프로세서와 함께 상기 장치로 하여금, 상기 장치의 움직임 정보를 1차원 또는 다차원으로 정의하는 데이터를 수신함으로써 상기 센서 데이터의 표시를 수신하게 하고, 사전 정의된 방식으로 포맷된 결과 데이터를 발생하기 위해 상기 움직임 정보에 수학적 함수를 적용함으로써 상기 센서 데이터를 확장하게 하도록 또한 구성되는
    패턴 인식 제공 장치.
  13. 제11항에 있어서,
    상기 적어도 하나의 메모리 및 상기 컴퓨터 프로그램 코드는 상기 적어도 하나의 프로세서와 함께 상기 장치로 하여금, 마스크 선택 로직에 기반하여 선택된 마스크를 적용함으로써 상기 논리 마스크를 적용하게 하도록 또한 구성되는
    패턴 인식 제공 장치.
  14. 제13항에 있어서,
    상기 적어도 하나의 메모리 및 상기 컴퓨터 프로그램 코드는 상기 적어도 하나의 프로세서와 함께 상기 장치로 하여금, 트리거된 컨디션 또는 트리거되지 않은 컨디션에 대해 제 1 마스크를 적용할지 또는 제 2 마스크를 적용할지 판정하기 위해 마스크 선택 입력 및 트리거 컨디션을 나타내는 데이터를 결합함으로써 상기 마스크 선택 로직에 기반하여 선택된 상기 마스크를 적용하게 하도록 또한 구성되는
    패턴 인식 제공 장치.
  15. 제11항에 있어서,
    상기 적어도 하나의 메모리 및 상기 컴퓨터 프로그램 코드는 상기 적어도 하나의 프로세서와 함께 상기 장치로 하여금, 상기 패턴 인식 알고리즘을 정의하는 프로그램을 활용함으로써 상기 패턴 인식 알고리즘을 활용하게 하도록 또한 구성되되, 상기 프로그램은 메모리에 저장되고 프로세서에 의해 실행되며, 상기 메모리 및 상기 프로세서는 상기 센서 데이터를 제공하는 센서와 함께 칩을 공유하거나 상기 센서 데이터를 제공하는 하드웨어와 함께 구현되는
    패턴 인식 제공 장치.
  16. 제11항에 있어서,
    상기 적어도 하나의 메모리 및 상기 컴퓨터 프로그램 코드는 상기 적어도 하나의 프로세서와 함께 상기 장치로 하여금, 단지 메모리의 16바이트에만 저장된 프로그램을 활용함으로써 상기 패턴 인식 알고리즘을 활용하게 하도록 또한 구성되되, 상기 메모리는 설정 및 출력을 위해 또한 16바이트를 확보하는
    패턴 인식 제공 장치.
  17. 제11항에 있어서,
    상기 적어도 하나의 메모리 및 상기 컴퓨터 프로그램 코드는 상기 적어도 하나의 프로세서와 함께 상기 장치로 하여금, 타이머 기반 천이 또는 임계 기반 천이를 포함하는 천이들에 기반하여 상기 유한 상태 머신에 정의된 알고리즘을 활용함으로써 상기 패턴 인식 알고리즘을 활용하게 하도록 또한 구성되는
    패턴 인식 제공 장치.
  18. 제11항에 있어서,
    상기 적어도 하나의 메모리 및 상기 컴퓨터 프로그램 코드는 상기 적어도 하나의 프로세서와 함께 상기 장치로 하여금, 각각의 상태가 다음 상태 및 리셋 상태를 포함한 단지 두 개의 가능한 천이만을 갖는 상기 유한 상태 머신에 정의된 알고리즘을 활용함으로써 상기 패턴 인식 알고리즘을 활용하게 하도록 또한 구성되는
    패턴 인식 제공 장치.
  19. 제11항에 있어서,
    상기 적어도 하나의 메모리 및 상기 컴퓨터 프로그램 코드는 상기 적어도 하나의 프로세서와 함께 상기 장치로 하여금, 제조사 또는 사용자에 의해 정의된 알고리즘을 활용하는 것을 포함하는 패턴 인식 알고리즘을 활용하게 하도록 또한 구성되는
    패턴 인식 제공 장치.
  20. 패턴 인식을 제공하기 위한 컴퓨터 실행 가능 프로그램 코드 명령어가 저장되어 있는 컴퓨터 판독 가능 저장 매체로서,
    상기 컴퓨터 실행 가능 프로그램 코드 명령어가,
    사용자 단말기의 움직임을 기술하는 센서 데이터의 표시를 수신하는 프로그램 코드 명령어와,
    결과값을 정의하기 위해 사전 정의된 방식으로 상기 센서 데이터의 확장을 제공하는 프로그램 코드 명령어와,
    유한 상태 머신으로 제공하기 위한 선택된 결과값을 발생하기 위해 상기 결과값에 대해 논리 마스크를 적용하는 프로그램 코드 명령어와,
    상기 센서 데이터가 상기 유한 상태 머신의 최종 상태로의 정의된 천이를 진행함으로써 식별되는 패턴에 대응하는지를 판정하기 위해 상기 유한 상태 머신과 연계된 패턴 인식 알고리즘을 활용하는 프로그램 코드 명령어를 포함하는
    패턴 인식 제공을 위한 컴퓨터 판독 가능 저장 매체.
KR1020137010667A 2010-09-29 2011-09-29 저 비용의 프로그램 가능 패턴 인식을 제공하는 방법 및 장치 KR101477443B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/893,559 US8429114B2 (en) 2010-09-29 2010-09-29 Method and apparatus for providing low cost programmable pattern recognition
US12/893,559 2010-09-29
PCT/IB2011/054302 WO2012042501A1 (en) 2010-09-29 2011-09-29 Method and apparatus for providing low cost programmable pattern recognition

Publications (2)

Publication Number Publication Date
KR20130073972A KR20130073972A (ko) 2013-07-03
KR101477443B1 true KR101477443B1 (ko) 2014-12-29

Family

ID=45871656

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137010667A KR101477443B1 (ko) 2010-09-29 2011-09-29 저 비용의 프로그램 가능 패턴 인식을 제공하는 방법 및 장치

Country Status (4)

Country Link
US (1) US8429114B2 (ko)
KR (1) KR101477443B1 (ko)
CN (1) CN103124947B (ko)
WO (1) WO2012042501A1 (ko)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10353495B2 (en) 2010-08-20 2019-07-16 Knowles Electronics, Llc Personalized operation of a mobile device using sensor signatures
US20130332108A1 (en) * 2012-06-12 2013-12-12 Apple Inc. Embedded hardware state machine for context detection integrated with a sensor chip
CN104484308B (zh) * 2014-11-18 2017-12-26 瑞昱半导体股份有限公司 应用于操作模式有限状态机的控制方法
CN108958458B (zh) * 2017-05-19 2022-11-25 腾讯科技(深圳)有限公司 一种用户设备互动方法、装置、用户设备、以及计算机可读存储介质
DE102017210050B3 (de) 2017-06-14 2018-12-06 Elektrobit Automotive Gmbh Verfahren zum Ermitteln einer Position
IT201700088977A1 (it) 2017-08-02 2019-02-02 St Microelectronics Srl Procedimento per il riconoscimento di gesti, circuito, dispositivo e prodotto informatico corrispondenti
US10579606B2 (en) * 2018-05-03 2020-03-03 Samsung Electronics Co., Ltd Apparatus and method of data analytics in key-value solid state device (KVSSD) including data and analytics containers

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060056446A (ko) * 2004-11-19 2006-05-24 삼성전자주식회사 휴대 단말기 제어 장치 및 방법
KR20080091372A (ko) * 2006-01-20 2008-10-10 프랑스 텔레콤 공간적으로 분절가능한 인터페이스 및 애플리케이션 프레임워크를 제어하는 연관 방법
US20100001949A1 (en) * 2008-07-07 2010-01-07 Keynetik, Inc. Spatially Aware Inference Logic
KR20100052378A (ko) * 2008-11-10 2010-05-19 삼성전자주식회사 휴대 단말기의 모션 입력 장치 및 그의 운용 방법

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0935195A2 (en) 1998-02-06 1999-08-11 Analog Devices, Inc. "An integrated circuit with a high resolution analog-to-digital converter, a microcontroller and high density memory and an emulator for an integrated circuit
US9578154B2 (en) * 2007-01-12 2017-02-21 Nokia Technologies Oy Mobile communication terminal and method
US8135975B2 (en) 2007-03-09 2012-03-13 Analog Devices, Inc. Software programmable timing architecture
US20110299774A1 (en) 2008-04-22 2011-12-08 Corey Mason Manders Method and system for detecting and tracking hands in an image
US7768245B1 (en) 2009-04-28 2010-08-03 Analog Devices, Inc. Emulator circuit, a controller for a switched mode power supply, and a switched mode power supply

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20060056446A (ko) * 2004-11-19 2006-05-24 삼성전자주식회사 휴대 단말기 제어 장치 및 방법
KR20080091372A (ko) * 2006-01-20 2008-10-10 프랑스 텔레콤 공간적으로 분절가능한 인터페이스 및 애플리케이션 프레임워크를 제어하는 연관 방법
US20100001949A1 (en) * 2008-07-07 2010-01-07 Keynetik, Inc. Spatially Aware Inference Logic
KR20100052378A (ko) * 2008-11-10 2010-05-19 삼성전자주식회사 휴대 단말기의 모션 입력 장치 및 그의 운용 방법

Also Published As

Publication number Publication date
CN103124947B (zh) 2016-05-04
CN103124947A (zh) 2013-05-29
KR20130073972A (ko) 2013-07-03
US20120078839A1 (en) 2012-03-29
WO2012042501A4 (en) 2012-05-31
WO2012042501A1 (en) 2012-04-05
US8429114B2 (en) 2013-04-23

Similar Documents

Publication Publication Date Title
KR101477443B1 (ko) 저 비용의 프로그램 가능 패턴 인식을 제공하는 방법 및 장치
JP6479322B2 (ja) ユーザの接触に基づいてグラフィカルユーザインターフェースを表示するための方法及び装置
TWI573074B (zh) 用以提供自鎖定螢幕對功能取用的方法與裝置以及相關電腦程式產品
US9337926B2 (en) Apparatus and method for providing dynamic fiducial markers for devices
US10733959B2 (en) Method for configuring input interface and electronic device using same
Chu et al. Mobile Apps: It's Time to Move Up to {CondOS}
CN107357411B (zh) 电子装置
WO2012001462A1 (en) Method and apparatus for providing context-based power consumption control
WO2015035870A1 (zh) 多cpu调度方法及装置
CN103150008A (zh) 一种输入状态的切换方法及装置
CN107835984B (zh) 热减轻用户体验
CN115053198A (zh) 用于控制进程的电子装置及其方法
CN109413256B (zh) 联系人信息处理方法、装置、存储介质及电子设备
US20220027009A1 (en) Electronic device for processing input event and method of operating same
US11747880B2 (en) Method and device for determining compensation for touch data on basis of operating mode of display
KR102130361B1 (ko) 시나리오에 따라 그래픽 처리 해상도를 변경하기 위한 방법 및 휴대용 전자 디바이스
CN112308947A (zh) 一种动画的生成方法、装置及存储介质
US20220053425A1 (en) Electronic device for filtering packet and method for operating same
US20200042268A1 (en) Electronic apparatus for controlling display of virtual input interface in environment of a plurality of output screens and operating method thereof
CN111007930A (zh) 温度控制方法、装置、存储介质及电子设备
US9594292B2 (en) Electronic device including a housing and a camera that is activated based on a posture and a grabbing form
CN108027673B (zh) 扩展用户触摸输入
CN115270907A (zh) 图片内容相似度分析方法、装置及存储介质
US9384574B2 (en) Image processing method and apparatus therefor
CN108521545B (zh) 基于增强现实的图像调整方法、装置、存储介质和电子设备

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20171117

Year of fee payment: 4

FPAY Annual fee payment

Payment date: 20181115

Year of fee payment: 5