KR101654053B1 - 메타데이터 저장 서브시스템의 작동 - Google Patents

메타데이터 저장 서브시스템의 작동 Download PDF

Info

Publication number
KR101654053B1
KR101654053B1 KR1020157030697A KR20157030697A KR101654053B1 KR 101654053 B1 KR101654053 B1 KR 101654053B1 KR 1020157030697 A KR1020157030697 A KR 1020157030697A KR 20157030697 A KR20157030697 A KR 20157030697A KR 101654053 B1 KR101654053 B1 KR 101654053B1
Authority
KR
South Korea
Prior art keywords
metadata
imaging device
command
camera
host
Prior art date
Application number
KR1020157030697A
Other languages
English (en)
Other versions
KR20150123977A (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 KR20150123977A publication Critical patent/KR20150123977A/ko
Application granted granted Critical
Publication of KR101654053B1 publication Critical patent/KR101654053B1/ko

Links

Images

Classifications

    • 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/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • G06F9/4413Plug-and-play [PnP]
    • G06F9/4415Self describing peripheral devices
    • H04N5/232
    • 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/002Specific input/output arrangements not covered by G06F3/01 - G06F3/16
    • G06F3/005Input arrangements through a video camera
    • H04N5/23216

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Computer Security & Cryptography (AREA)
  • Studio Devices (AREA)
  • Stored Programmes (AREA)
  • Image Input (AREA)
  • Devices For Executing Special Programs (AREA)

Abstract

본 발명은 메타데이터 저장 서브시스템을 작동시키는 기술을 제공한다. 이용가능한 메타데이터의 디렉토리가 생성되고, 메타데이터는 다양한 시스템 데이터 스토어에 저장된다. 메타데이터는 호스트 디바이스에 의해 요청된 바에 따라 검색되고, 메타데이터는 호스트 디바이스에 전송된다. 또한, 메타데이터는 실행된다.

Description

메타데이터 저장 서브시스템의 작동{ENABLING A METADATA STORAGE SUBSYSTEM}
본 발명은 일반적으로 카메라 커맨드 세트에 관한 것이다.
이미지 디바이스는 이미지 캡처를 위해 구성되는 센서 및 모듈과 같은 구성요소를 포함한다. 각 이미지 디바이스 내의 센서 및 모듈의 구성은 변할 수 있다. 각 이미지 디바이스는 구성에 상관없이 호스트 프로세서와 인터페이스할 것이다. 따라서, 호스트 프로세서는 상이하게 구성된 다양한 카메라와 인터페이스할 것이다.
이하의 상세한 설명에서는 다음 도면을 참조하여 특정 예시적 실시형태를 설명한다.
도 1은 실시형태에 따라 사용될 수 있는 호스트 디바이스의 블록도이다.
도 2는 실시형태에 따른 카메라의 블록도이다.
도 3은 실시형태에 따른, 카메라 커맨드를 번역하는 시스템의 블록도이다.
도 4는 실시형태에 따른, 카메라 서브시스템을 초기화하는 방법을 도시하는 처리 흐름도이다.
도 5는 실시형태에 따른, 카메라 커맨드를 번역하는 방법의 처리 흐름도이다.
도 6은 실시형태에 따른, 전송 메커니즘으로 하여금 겟 앤드 셋 아키텍처(Get and Set Architecture)에 기초하여 CCS 커맨드를 실행할 수 있게 하는 방법의 처리 흐름도이다.
도 7은 실시형태에 따른, 센서 및 모듈 특정 메타데이터를 저장하고 검색하는 것을 가능하게 하는 메타데이터 저장 서브시스템의 블록도이다.
도 8은 실시형태에 따른, 메타데이터 저장 서브시스템을 작동시키는 방법의 처리 흐름도이다.
도 9는 실시형태에 따른, 카메라 커맨드를 번역하는 코드를 저장하는 유형의 비일시적 컴퓨터 판독가능 매체를 도시하는 블록도이다.
도 10은 실시형태에 따른, 카메라 커맨드를 번역하는 예시적 시스템의 블록도이다.
도 11은 실시형태에 따른, 도 10의 시스템이 구현될 수 있는 작은 폼 팩터(form factor) 디바이스의 모식도이다.
본원에 개시된 실시형태는 다양한 이미지 디바이스 구성의 지원 및 인증(validation)을 위한 기술을 제공한다. 본 기술은 카메라를 사용하여 설명되지만, 임의의 이미지 디바이스가 사용될 수 있다. 또한, 본원에서 사용될 때, 이미지 디바이스는 스틸샷(still-shot) 카메라, 비디오 카메라, 스테레오스코픽 카메라, 적외선 카메라 등과 같은 것 또는 그들의 임의의 조합이 될 수 있다.
실시형태에서, 카메라 커맨드 세트(Camera Command Set: CCS)는, 카메라 센서 및 모듈을 포함하지만 이에 제한되지 않는 카메라 구성요소를 발견하고 제어하는 일반적 메커니즘을 제공한다. 이 커맨드는 호스트 프로세서로 하여금 임의의 카메라 구성요소와 인터페이스하고, 그것을 지원하고, 인증할 수 있도록 한다. 신규 커맨드 세트 및 소프트웨어에 대한 구형 카메라의 전방 호환성(forward compatibility)은 번역 기능을 사용하여 구현될 수 있다. 번역 기능은 복잡한 CCS 커맨드를 카메라가 실행할 수 있는 커맨드 또는 CSI-3 속성 겟/셋(Attribute Get/Set) 요청으로 번역할 수 있다. CSI-3 속성은 카메라 또는 호스트 디바이스의 동작을 제어하는데 사용될 수 있는 정보의 원자 단위(atomic unit)이다. 전송 메커니즘은 CSI-3 속성 겟/셋(Attribute Get/Set) 요청으로 번역된 커맨드를 실행하는데 사용될 수 있고, 센서 및 모듈 메타데이터는 메타데이터 서브시스템에 저장되고 그로부터 검색될 수 있다. 카메라 메타데이터는 카메라 센서, 모듈, 카메라를 사용하여 촬영된 이미지에 관한 정보를 포함하지만, 이에 제한되지 않는다. 또한 메타데이터 저장 시스템은 CSI-3용 데이터 블록 저장장치가 될 수도 있다.
이하의 설명 및 특허청구범위에서, "연결된" 및 "접속된"이란 용어가 그들의 파생어와 함께 사용될 수 있다. 이들 용어는 서로 유의어로서 의도된 것이 아님을 이해해야 한다. 오히려, 특정 실시형태에서, "접속된"은 두 개 이상의 소자가 서로 직접적인 물리적 또는 전기적 접촉 상태에 있음을 나타내기 위해 사용될 수 있다. "연결된"은 두 개 이상의 소자가 서로 직접적인 물리적 또는 전기적 접촉 상태에 있음을 의미할 수 있다. 그러나, "연결된"은 또한 두 개 이상의 소자가 서로 직접적으로 접촉하고 있지 않지만 서로 협력하거나 상호작용함을 의미할 수 있다.
몇몇 실시형태는 하드웨어, 펌웨어 및 소프트웨어 중 하나 또는 그들의 결합으로 구현될 수 있다. 몇몇 실시형태는 또한 머신 판독가능한 매체 상에 저장된 명령어로서 구현될 수 있으며, 명령어는 본원에 설명된 동작을 수행하도록 컴퓨팅 플랫폼에 의해 판독 및 실행될 수 있다. 머신 판독가능한 매체는 컴퓨터와 같은 머신에 의해 판독가능한 형태로 정보를 저장하거나 송신하는 임의의 메커니즘을 포함할 수 있다. 예컨대, 머신 판독가능한 매체는, 판독 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 자기 디스크 저장 매체, 광 저장 매체, 플래시 메모리 디바이스, 또는 전기, 광, 음향 또는 다른 형태의 전파된 신호, 특히, 예컨대, 반송파, 적외선 신호, 디지털 신호, 또는 신호를 송신 및/또는 수신하는 인터페이스를 포함할 수 있다.
실시형태는 구현예 또는 실시예이다. 본 명세서에서 "실시형태", " 일 실시형태", "몇몇 실시형태", "다양한 실시형태" 또는 "다른 실시형태"에 대한 언급은 그 실시형태와 관련하여 설명된 특정 특징, 구조 또는 특성이, 본 발명의 모든 실시형태는 아니지만 적어도 몇몇 실시형태에 포함된다는 것을 의미한다. "실시형태", "일 실시형태", 또는 "몇몇 실시형태"의 다양한 외형은 모두가 반드시 동일한 실시형태를 언급하는 것은 아니다. 특정 실시형태로부터의 소자 또는 측면은 다른 실시형태의 소자 또는 측면과 결합될 수 있다.
본원에서 설명되고 도시된 구성요소, 특징, 구조, 특성 등은 반드시 전부가 특정 실시형태 또는 실시형태들에 포함될 필요는 없다. 예컨대, 명세서에서 구성요소, 특징, 구조, 또는 특성이 포함"될 수 있다" 또는 포함"될 수도 있다"고 할 경우에, 그 특정 구성요소, 특징, 구조 또는 특성은 반드시 포함될 필요는 없다. 명세서 또는 특허청구범위에서 "단수"의 요소를 언급할 경우에, 그것은 그 요소가 단지 하나만 존재하는 것을 의미하지는 않는다. 명세서 또는 특허청구범위에서 "추가적" 소자를 언급할 경우에, 그것은 복수의 추가적 구성요소가 존재하는 것을 배제하지 않는다.
몇몇 실시형태는 특정 구현예를 참조하여 설명되었지만, 몇몇 실시형태에 따른 다른 구현예도 가능함을 유의해야 한다. 또한, 도면에 도시되고/되거나 본원에 설명된 회로 소자 또는 다른 특징의 배열 및/또는 순서는 도시되고 설명된 특정 방식으로 배열될 필요는 없다. 몇몇 실시형태에 따른 많은 다른 배열이 가능하다.
도면에 도시된 각각의 시스템에서, 몇몇 경우에 소자들은 표시된 소자들이 상이하고/하거나 유사할 수 있다는 것을 시사하기 위해 각각 동일한 참조 번호 또는 상이한 참조 번호를 가질 수 있다. 그러나, 소자는, 상이한 구현예를 가지고 본원에서 도시되거나 설명된 시스템 중 일부 또는 전부와 함께 동작할 정도로 충분히 융통성이 있다. 도면에 도시된 다양한 소자는 동일하거나 상이할 수 있다. 어떤 것을 제 1 소자로 칭하고 어떤 것을 제 2 소자로 칭할지는 임의적이다.
도 1은 실시형태에 따라 사용될 수 있는 호스트 디바이스(100)의 블록도이다. 호스트 디바이스(100)는 특히, 예컨대, 랩탑 컴퓨터, 데스크탑 컴퓨터, 태블릿 컴퓨터, 모바일 디바이스, 또는 서버가 될 수 있다. 또한, 호스트 디바이스(100)는 본원에 설명된 호스트 디바이스가 될 수 있다. 호스트 디바이스(100)는 저장된 명령어를 실행하도록 구성되는 CPU(central processing unit)(102) 및 CPU(102)에 의해 실행될 수 있는 명령어를 저장하는 메모리 디바이스(104)를 포함할 수 있다. CPU는 버스(106)에 의해 메모리 디바이스(104)에 연결될 수 있다. 또한, CPU(102)는 단일 코어 프로세서, 멀티코어 프로세서, 컴퓨팅 클러스터 또는 임의 개수의 다른 구성이 될 수 있다. 또한, 호스트 디바이스(100)는 복수의 CPU(102)를 포함할 수도 있다.
호스트 디바이스(100)는 또한 GPU(graphics processing unit)(108)를 포함할 수 있다. 도시된 것처럼, CPU(102)는 버스(106)를 통해 GPU(108)에 연결될 수 있다. GPU(108)는 호스트 디바이스(100) 내의 임의 개수의 그래픽 동작을 수행하도록 구성될 수 있다. 예컨대, GPU(108)는, 호스트 디바이스(100)의 사용자에게 표시될, 그래픽 이미지, 그래픽 프레임, 비디오 등을 렌더링하거나 조작하도록 구성될 수 있다. 몇몇 실시형태에서, GPU(108)는 복수의 그래픽 엔진(도시안됨)을 포함하고, 각 그래픽 엔진은 특정 그래픽 작업을 수행하거나 특정 유형의 작업 부하(workload)를 실행하도록 구성될 수 있다.
메모리 디바이스(104)는 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 플래시 메모리, 또는 임의의 다른 적합한 메모리 시스템을 포함할 수 있다. 예컨대, 메모리 디바이스(104)는 동적 랜덤 액세스 메모리(DRAM)를 포함할 수 있다. CPU(102)는, 버스(106)를 통해, 호스트 디바이스(100)를 디스플레이 디바이스(112)에 접속하도록 구성되는 디스플레이 인터페이스(110)에 링크될 수 있다. 디스플레이 디바이스(112)는 호스트 디바이스(100)의 내장 구성요소인 디스플레이 스크린을 포함할 수 있다. 디스플레이 디바이스(112)는 또한, 호스트 디바이스(100)에 외부에서 접속되는, 특히, 컴퓨터 모니터, 텔레비전, 또는 프로젝터를 포함할 수 있다.
CPU(102)는 또한, 버스(106)를 통해, 호스트 디바이스(100)를 하나 이상의 I/O 디바이스(116)에 접속하도록 구성된 입력/출력(I/O) 디바이스 인터페이스(114)에 접속될 수 있다. I/O 디바이스(116)는 예컨대, 키보드 및 포인팅 디바이스를 포함할 수 있으며, 여기서 포인팅 디바이스는 특히 터치패드 또는 터치스크린을 포함할 수 있다. I/O 디바이스(116)는 호스트 디바이스(100)의 내장 구성요소이거나 외부에서 호스트 디바이스(100)에 접속되는 디바이스가 될 수 있다.
CPU(102)는 또한 버스(106)를 통해 이미지 캡처 인터페이스(118)에 접속될 수 있다. 이미지 디바이스 인터페이스(118)는 호스트 디바이스(100)를 하나 이상의 이미지 디바이스(120)에 접속하도록 구성된다. 이미지 디바이스(120)는 스틸샷 카메라, 비디오 카메라, 또는 스틸샷 카메라와 비디오 카메라를 결합한 카메라가 될 수 있다. 또한, 이미지 디바이스(120)는 스테레오스코픽 카메라, 적외선 센서, SOC 카메라, ISP(Image Signal Processor), 브릿지 디바이스 등이 될 수 있다. 실시형태에서, 이미지 디바이스(120)는 호스트 디바이스(100)의 내장 구성요소이다. 또한, 실시형태에서, 이미지 디바이스(120)는 외부에서 호스트 디바이스(100)에 접속되는 디바이스이다.
실시형태에서, 임베디드(embeded) 프로세서 또는 시퀀서가 이미지 캡처 인터페이스(118) 내에 존재할 수 있다. 이미지 캡처 인터페이스(118) 내의 임베디드 프로세서 또는 시퀀서는 호스트 커맨드 번역을 제공하는데에 사용될 수 있다. 실시형태에서, 번역은, ISP 상에서, 또는 이미지 캡처 인터페이스(118) 내에 포함되거나 그에 연관된 분리된 프로세서 상에서 작동되는 코드를 사용하여 발생된다.
이미지 디바이스(120)는 이미지를 캡처하는데 사용되고, 하나 이상의 센서(122)를 포함한다. 실시예에서, 센서(122)는 이미지 텍스처 정보와 연관된 깊이 정보를 캡처하는데 사용되는 깊이 센서일 수 있다. 센서(122)는 또한 이미지 텍스처 정보를 캡처하는데 사용되는 이미지 센서일 수 있다. 더 나아가, 이미지 센서는 전하 결합 디바이스(charge-coupled device: CCD) 이미지 센서, 상보형 금속 산화물 반도체(CMOS) 이미지 센서, 시스템 온 칩(SOC) 이미지 센서, 광감지 박막 트랜지스터를 갖는 이미지 센서 또는 그들의 임의의 조합이 될 수 있다. 이미지 디바이스(120)는 또한 하나 이상의 모듈(124)을 포함한다. 모듈(124)은 이미지 디바이스의 다양한 구성요소를 동작시키는데 사용될 수 있다. 예컨대, 카메라는 버퍼, 렌즈 및 자동 초점 기능을 포함할 수 있으며, 이들 각각은 모듈(124)에 의해 작동될 수 있다.
메모리 디바이스(104)는 디바이스 드라이버(126)를 포함한다. 디바이스 드라이버(126)는 CPU(102) 또는 GPU(108)에 의해 실행되어 호스트 디바이스(100)가 이미지 디바이스(120)와 인터페이스하고, 이를 지원하고, 인증할 수 있도록 한다. 디바이스 드라이버(126)는 본원에서 설명되는 호스트 소프트웨어일 수 있다. 또한, 디바이스 드라이버(126)는 카메라 메타데이터에 액세스할 수 있다. 메타데이터는 메모리 디바이스(104), 이미지 디바이스(120), 저장 디바이스(128) 또는 임의의 다른 데이터 저장 위치에 저장될 수 있다.
저장 디바이스(128)는 하드 드라이브, 광 드라이브, 썸드라이브(thumbdrive), 드라이브들의 어레이 또는 그들의 임의의 조합과 같은 물리적 메모리이다. 저장 디바이스(128)는 또한 원격 저장 드라이브를 포함할 수 있다. 저장 디바이스(128)는 호스트 디바이스(100) 상에서 작동되도록 구성되는 임의 개수의 애플리케이션(130)을 포함한다. 호스트 디바이스(100)는 또한 네트워크 버스(106)를 통해 네트워크(134)에 접속되도록 구성되는 네트워크 인터페이스 제어기(NIC)(132)를 포함할 수 있다. 네트워크(134)는 특히, WAN(wide area network), LAN(local area network), 또는 인터넷이 될 수 있다.
실시형태에서, CPU(102)에 의해 실행되는 명령어는 호스트 커맨드 번역을 가능하게 하는데 사용될 수 있다. 또한, 실시형태에서, GPU(108)에 의해 실행되는 명령어는 호스트 커맨드 번역을 가능하게 하는데 사용될 수 있다. 따라서, CPU(102) 또는 GPU(108)는 이미지 디바이스(120)와 인터페이스하거나, 이를 지원하거나, 인증하는데 사용되는 호스트 프로세서가 될 수 있다. 또한, 디바이스 드라이버(126) 또는 애플리케이션(130)은 본원에서 설명되는 호스트 소프트웨어를 포함할 수 있다. 실시형태에서, CPU(102) 또는 GPU(108)는 본원에서 설명되는 전송 메커니즘 내에서 커맨드를 실행하는데에 사용될 수 있다. 또한, 실시형태에서, CPU(102) 또는 GPU(108)는 메타데이터 저장 서브시스템을 작동시킬 수 있다.
도 1의 블록도는 호스트 디바이스(100)가 도 1에 도시된 구성요소 전부를 포함하는 것을 나타내기 위해 의도된 것이 아니다. 또한, 호스트 디바이스(100)는 특정 구현의 세부사항에 의존하여 도 1에 도시되지 않은 임의 개수의 추가 구성요소를 포함할 수 있다.
CCS의 사용에 의해, 카메라 센서 및 모듈을 발견하고 제어하기 위한 일반적 메커니즘을 제공함으로써, 다양한 카메라 구성의 지원과 연관된 소프트웨어 및 통합 가격은 감소될 수 있지만, 센서 또는 모듈의 구현은 구속되지 않는다. 오히려, 임의의 센서 및 카메라 구성을 설명하는 표준화된 기술이 제공된다. CCS는 센서, 모듈 및 이미지 프로세서를 위한 필수 커맨드 및 선택적 커맨드를 모두 포함한다. 카메라 커맨드를 번역하는 것은, 다양한 카메라가 CCS를 원천적으로 지원하지 않는 경우에도, 하나의 포괄적 드라이버가 다양한 카메라 구성에 대한 지원을 제공할 수 있게 한다. 포괄적 드라이버의 사용은 상이한 카메라 구성에 연관된 구현 가격을 감소시킬 수 있다. 전송 메커니즘은 CSI-3(Camera Serial Interface 3) 속성 겟/셋(Attribute Get/Set) 아키텍처 내에서 커맨드를 실행하는데에 사용된다. 몇몇 커맨드는 센서의 가격 및 복잡성을 감소시키기 위해 센서의 외부에서 실행될 수 있다. 또한, 센서 외부의 커맨드를 실행하는 것은, CSI-2(Camera Serial Interface 2)형 센서와 같은 레거시 센서에 기초하여 카메라에 대한 지원을 제공한다. 실시형태에서, 튜닝 파라미터를 포함하는, 센서 및 모듈 특정 메타데이터를 저장하고 검색하는 기술이 제공된다.
CSI-2 및 CSI-3 표준은 MIPI(Mobile Industry Processor Interface) 연합(Alliance)에 의해 개발되었다. CSI-2 및 CSI-3 표준은 이미지 디바이스와 같은 카메라 서브시스템을 애플리케이션 프로세서와 같은 호스트 디바이스에 부착하기 위한 표준 인터페이스를 제공한다. 본원에서 설명된 기술은 임의의 MIPI CSI(Camera Serial Interface) 표준에 따라 개발된 카메라 서브시스템을 사용하여 구현될 수 있다. 또한, 실시형태에서, MIPI CPI(Camera Parallel Interface)에 따라 개발된 카메라 서브시스템이 또한 본 기술에 사용될 수 있다.
도 2는 실시형태에 따른 카메라(200)의 블록도이다. 전술된 것처럼, 카메라(200)는 이미지 디바이스(120)(도 1)와 같은 이미지 디바이스가 될 수 있다. 카메라(200)는 CSI-3 링크(202)에 부착된다. CSI-3 링크(202)는 CPU(102) 또는 GPU(108)(도 1)와 같은 호스트 프로세서와 카메라(200)의 통합을 위한 고속 직렬 인터페이스 프로토콜을 가능하게 한다. 실시형태에서, 호스트 프로세서는 모바일 단말 애플리케이션 내의 애플리케이션 프로세서가 될 수 있다.
카메라(200)는 이미지 소스(206)에 의해 표현되는 CSI-3 가상 채널(204) "상부의(above)" 임의의 처리 기능을 포함할 수 있다. 이미지 소스는 이미지 센서, 시스템 온 칩(SOC) 이미지 디바이스, 멀티칩 촬상 디바이스 모듈 또는 이미지 신호 프로세서(ISP)가 될 수 있다. 따라서, 카메라는 호스트 디바이스 상에 존재하는 추가 처리 기능을 포함할 수 있다. 그러나, 이들 잠재적 처리 기능은 CCS 동작에 필요한 것은 아니다.
CCS를 위해, 카메라는 도 3의 구성요소와 유사한 구성요소들로 구성된다고 가정된다. 그러나, 도시된 구성요소 전부가 필요한 것은 아니다. 특히, CCS는 하나의 센서(208) 및 하나 이상의 이미지 소스(206)를 사용할 수 있다. 실시형태에서, 센서(208)는 존재하지 않고, 다른 이미지 소스들이 사용될 수 있다. 예컨대, CCS는 ISP가 이미지 소스인 서브시스템에 적용될 수 있다. 렌즈(210), 조리개(212), 조명(214), 및 메타데이터 저장장치(216)을 포함하는 추가 서브시스템에 대한 지원은 선택적이다.
렌즈 서브시스템(210)은 광학적 줌 기능을 선택적으로 지원할 수 있는 표시된 시계(field of view)를 갖는 렌즈 그룹으로 모델링될 수 있다. 조리개 서브시스템(212)은, 최소 또는 최대 F-번호까지 조래개를 변경하기 위한 광학적 지원과 함께, 표시된 F-번호를 갖는 조리개로서 모델링된다. F-번호는, 렌즈 시스템의 앞면을 통해 볼 때, 물리적 구경 조리개(aperture stop)의 광학적 이미지의 직경에 대한 렌즈의 초점 길이의 비이다.
실시형태에서, 센서 서브시스템(208)은 이상적인 센서를 모델링한다. 이상적인 센서는 어떤 단순한 수학적 측정 함수에 선형이거나 선형이 되도록 설계된다. 그렇게 함으로써, 특정 값에 대해, 이상적 센서는 그 값이 측정될 때마다 동일한 출력을 생성한다. 타이밍, 이득, 및 다른 캡처 관련 파라미터를 포함하는, 카메라에 의해 생성된 임의의 이미지에 영향을 주는 설정들은 센서 서브시스템(208)의 일부이다. 또한, RAW 및 SoC 센서 역시 센서 서브시스템(208)에 사용될 수 있다. 또한, 실시형태에서, 센서 서브시스템(208)은 또한 HDR(High Dynamic Range) 및 다른 형태의 컴퓨터 이미징(다초점 평면 이미징(multi-focal-plane imaging) 등)과 같은 센서 동작을 포함할 수 있다.
이미지 소스(206)는 센서 서브시스템(208)의 출력을 취득하고 그것을 CSI-3 가상 채널(204)을 통한 전송을 위해 패키징한다. 이런 패키징은, 데이터가 포맷되어 전달될 수 있는 RAW 센서의 경우에서처럼 단순할 수도 있고, YUV 또는 JPEG 출력을 산출하는 것과 같은 함수 처리를 포함하면 복잡할 수도 있다. 각각의 이미지 소스(206)의 출력은, 호스트에 대해 이미지 데이터의 전송을 제공하는 CSI-3 가상 채널(204)에 의해 입력으로서 선택될 수 있다. CSI-3 가상 채널(204)은 동일한 데이터 소스에 의해 생성된 속성 및 이미지 패킷의 시퀀스를 나타낸다. 실시형태에서, CCS 이미지 소스(206)는 한가지 유형의 픽셀 데이터 및 임베디드 속성을 생성할 수 있다. CSI-3 가상 채널(204)은 이미지 데이터의 전송을 나타내고 관리하기 위해 사용되며, 이미지 소스(206)는 이미지 데이터의 생성 및 처리를 나타내고 관리한다. CSI-3 가상 채널과 이미지 소스(206) 사이에는 1 대 1 관계가 존재한다.
조명 서브시스템(214)은, 플래시, 비디오 램프(들), 레드-아이(red-eye) 축소 램프, 및 기록 표시등(record indicator light)을 포함하는, 카메라의 조명 제어기에 대한 제어를 제공한다. 카메라(200)는 조명 서브시스템(214)의 기능들의 임의의 조합을 선택적으로 지원할 수 있다. 또한, 메타데이터 저장 서브시스템은, 카메라 서브시스템(200)에 의해 저장된 비휘발성 데이터를 검색하고 선택적으로는 카메라 서브시스템(200)에 기록하는 소프트웨어에 대한 일반적 메커니즘을 제공한다. 메타데이터 저장장치는 모듈 식별 및 이미지 튜닝 파라미터를 저장할 수 있으며, 모듈에 의해 원천적으로 지원되는 것 이상의 CCS 기능을 가능하게 하는 임의의 번역된 코드를 저장할 수 있다. 또한, 메타데이터 저장장치 시스템은 CSI-3용 데이터 블록 저장장치가 될 수도 있다.
커맨드 전송 메커니즘(218)은, CSI-3 인터페이스를 포함하는 카메라 서브시스템(200)에, 원천적으로 지원되는 CCS 커맨드가 전송되도록 할 수 있다. CSI-2와 같은 다른 인터페이스는 커맨드 세트(Command Set)에 대한 대안적인 전송을 정의하고 구현할 수 있다. 커맨드 전송 메커니즘(218)은, 카메라 애플리케이션을 구성하고 제어하는데 사용된 모든 커맨드 및 CSI-3 속성(222)을 커맨드 전송 메커니즘(218)으로 전송할 수 있는 카메라용 구성 프로토콜(configuration protocol for camera: CPC)(220)에 액세스할 수 있다. 또한, 카메라 제어 인터페이스(camera control interface: CCI)(224)는 CSI-2 상호접속을 지원하는 CSI-2 데이터용 브릿지 기능을 제공하는데 사용될 수 있다.
많은 CCS 커맨드는, CSI-3 가상 채널(204)과 CCS 이미지 소스(206) 사이의 특정 오버랩와 함께, CSI-3 속성(222)에 영향을 주는 변경들을 초래할 수 있다. 예컨대, 셋 센서 표준 구성(Set_SensorStandardConfig()) 커맨드는 이미지 사이즈를 포함하는 센서 모드를 설정하는 것을 지원한다. CSI3_XSIZE, CSI3_XLEN, CSI3_YSIZE, CSI3_YLEN, 및 다른 CSI-3 속성과 같은 가상 채널 속성은, 구현될 경우, CCS 커맨드에 의해 설정된 현재의 카메라 구성을 정확하게 반영하는 값을 반환한다.
따라서, CSI-3 가상 채널 속성(Virtual Channel Attribues)은, CSI-3 준수 디바이스로부터 호스트로 이미지 및 관련 데이터를 전송하는데 사용된 파라미터를 제어하는데 사용된다. 이들 속성은, 각 프레임에 의해 전송된 임베디드(embeded) 메타데이터뿐만 아니라, 이미지 사이즈, 데이터 포맷, 및 에러 처리에 대한 제어를 포함한다. CCS 커맨드는 또한 사이즈, 포맷, 및 타이밍과 같은 동일한 이미지 품질들 중 다수를 제어한다. 센서에 의해 발행된 CCS 커맨드의 효과는, 특히, CCS 가상 채널 속성을 수정하는 것을 포함할 수 있다. 예컨대, CCS 커맨드는 Set_StandardConfig(1)가 될 수 있으며, 이것은 1920x1080의 해상도와 30의 초당 프레임 동작을 위해 센서를 가설적으로(hypothetically) 구성할 수 있다. 다음에, CSI-3_YSIZE 속성(Attribute)에 대한 CSI-3 Get은 1080을 반환할 수 있다. 다음에 CSI-3_YSIZE를 2000으로 변경하는 속성 세트(Attribute Set)가 발행되면, (2000의 YSIZE를 갖는) 현재의 구성이 이전에 설정된 CCS 상태와 불일치하더라도, Get_StandardConfig() CCS 커맨드는 여전히 "1"을 반환할 것이다.
센서 서브시스템(208) 및 이미지 소스 서브시스템(206)은 임의 개수의 구성을 사용하여 구현될 수 있다. 따라서, 호스트 소프트웨어가 센서 서브시스템(208)을 적절히 구성하는 것에 어려움이 있을 수 있다. CCS는 센서 서브시스템(208)을 적절히 구성하는 것을 돕는 센서 모드를 사용할 수 있다. 센서 모드는, 소프트웨어가 선택할 수 있는, 센서 벤더(vendor)에 의해 정의된 동작 구성들의 세트이다. 일반적으로, 카메라가 지원할 예상 용도를 나타내는, 특정 카메라에 대해 제공될 제한된 구성들의 세트가 존재할 것이다. 예컨대, 카메라는 8 메가픽셀 RAW10 스틸-최적화 모드, 1080p/30 비디오-최적화 MJPEG 모드, 및 QVGA YUV 프리뷰 모드에 대한 지원을 나타낼 수 있다.
CCS는 필요한 구성의 인덱스를 선택함으로써 필요한 동작 모드를 설정하는데 사용될 수 있는 센서 표준 구성(SensorStandardConfig()) 커맨드를 포함할 수 있다. 카메라는 적절한 타이밍 및 연관된 설정을 자체 구성할 것이다. 호스트 소프트웨어는 센서 서브시스템(208)에 의해 지원된 모드를 세분화하는 테이블을 검색하기 위해 정보 센서 표준 구성 커맨드(Info_SensorStandardConfig()) 커맨드를 사용할 수 있다. 센서 서브시스템(208)은 그 테이블에 열거된 모드에서 동작하는 것으로 제한되지 않는다. 카메라 서브시스템(200)의 추가 지식을 갖는 호스트 소프트웨어는, 추가 센서 기능을 노출시키기 위해 타이밍을 명확히 설정하도록 셋 센서 타이밍(Set_SensorTimings()) 커맨드와 같은 추가 커맨드를 사용할 수 있다.
도 3은 실시형태에 따른, 카메라 커맨드를 번역하는 시스템(300)의 블록도이다. CCS는 표준 메커니즘이 센서를 제어할 수 있게 하기 위해 사용된다. CCS에 대해 커맨드의 공통 세트가 정의된다. CCS는 원천적(native) 커맨드, 필수 커맨드, 선택적 커맨드로 분할될 수 있다. 커맨드는 카메라 서브시스템(200)과 같은 정의된 카메라 모델 상에서 동작한다.
원천적 커맨드는 호스트 번역 지원을 요구하지 않고 센서 서브시스템에 의해 직접 실행될 수 있는 커맨드이다. CCS 내의 임의의 커맨드는, 카메라 서브시스템이 자신이 원천적으로 그 커맨드를 수용하여 처리할 수 있음을 나타낼 수 있다는 점에서 원천적 커맨드가 될 수 있다. 따라서, CCS 지원을 요구하는 카메라 서브시스템은 모든 원천적 필수 커맨드에 대한 원천적 지원을 제공할 것이다.
CCS 지원을 요구하는 카메라 서브시스템은 또한 필수 커맨드를 지원할 것이지만, 그 지원은 본원에서 설명되는 호스트 기반 번역 설비를 사용하여 제공될 수 있다. 카메라 서브시스템은 모든 선택적 커맨드를 지원할 수 있다. 일반적으로 원천적 필수 커맨드는 CCS 기능을 식별하는데 필요한 단순한 커맨드이고, 필요할 경우, 커맨드 번역을 지원하는데 필요한 정보를 검색한다. 일단 번역 설비가 작동중이면, 다음에 후속 커맨드가 이 메커니즘을 통해 지원될 수 있다. 따라서, 호스트에 의해 번역된 커맨드는, CCS 커맨드에 기록된 호스트 소프트웨어에 의해 계속 동작하도록 전체 CCS 커맨드 세트를 원천적으로 지원하지 않는 카메라에 그러한 능력을 제공한다. 대부분의 커맨드는 번역을 통해 지원될 수 있지만, 소수의 원천적 명령 커맨드는 번역이 이루어지는 것을 필요로 할 때 센서에 의해 지원되어야 한다. 번역 설비는 실행 샌드박스(execution sandbox), 코드 저장장치, 및 코드를 편집하는 방법을 갖는 번역 엔진을 포함하지만, 이에 제한되지 않는다. 실시형태에서, 샌드박스에서 작동되는 코드의 출력은 CSI-3 속성 겟/셋(Attribute Get/Set) 트랜잭션이며, 이것은 다음에 센서 상에서 실행될 수 있다.
실시형태에서, 전송 메커니즘은 센서 서브시스템(208)(도 2)과 같은 센서 상에서의 커맨드의 실행을 제어하도록 정의된다. 전송 메커니즘은 도 2에 설명된 커맨드 전송 메커니즘(218)이 될 수 있다. 전송 메커니즘은 또한, 센서의 복잡성과 가격을 감소시키도록 몇몇 복잡한 커맨드를 호스트 디바이스 상에서 실행하고 더 간단한 커맨드 세트로 번역할 수 있는 메커니즘을 제공할 수 있다. 또한, 실시형태에서, 소프트웨어 및 제조상의 필요에 도움이 되도록 카메라 서브시스템으로부터 메타데이터가 검색될 수 있다.
CCS의 카메라 커맨드는 그 커맨드가 호출되는 방법을 요약하는 의사-코드 표현을 사용하는 것과 관련된다. 커맨드는 CSI-3 카메라가 지원을 제공할 수 있는 기술을 사용하여 설명될 수 있지만, 동일한 커맨드는, 다른 커맨드 전송 메커니즘 또는 소프트웨어 번역 지원을 사용하는, CSI-2와 같은 다른 카메라 서브시스템에 적용될 수도 있다.
각각의 커맨드는 지원될 수 있거나 지원될 수 없는 수 개의 변형을 가진다. 'Get_' 변형은 파라미터를 취하지 않고 데이터의 세트를 반환하고, 'Set_' 변형은 파라미터의 세트를 취하고 상태 코드를 반환한다. 'Info_' 변형은 소프트웨어가 특정 능력, 범위 및 이용가능한 옵션을 이해하는데 도움을 줄 수 있는 데이터의 일정 블록을 반환한다.
예컨대, 전술된 정보 센서 표준 구성 커맨드(Info_SensorStandardConfig()) 커맨드는 소프트웨어가 선택할 수 있는, 센서에 의해 지원된 모드 및 구성을 정의하는 데이터 테이블을 반환한다. 다음에 센서를 원하는 모드로 구성하기 위해, 소프트웨어는 셋 센서 표준 구성 커맨드(Set_SensorStandardConfig(Index)) 커맨드를 사용할 수 있는데, 이것은 단일 파라미터 인덱스를 입력으로 취하고 응답으로 상태 코드를 반환한다. 현재의 동작 모드는 겟 센서 표준 구성 커맨드(Get_SensorStandardConfig()) 커맨드를 사용하여 판독될 수 있는데, 이것은 입력 파라미터를 취하지 않고 현재의 활성 인덱스를 응답으로서 반환한다.
Get_/Set_/Info_ 구조는 CSI-3 속성 겟/셋(Attribute Get/Set) 아키텍처의 최상부에 적합하다. 또한, 이것은, 예컨대 Get_/Set_ 변형이 카메라에 의해 원천적으로 지원되도록 하는 지원뿐만 아니라, 지원된 커맨드의 세립적 표시(fine grained indication)를 가능하게 하는데, Info_ 변형은 커맨드 번역을 통해서만 지원된다.
CCS는 카메라에 대한 완전한 제어 세트를 제공하도록 의도되지만, 벤더 특정 커맨드 및 속성 겟/셋(Get/Set) 메커니즘과 같은 CCS에 의해 지원되는 것 이상의 제어를 가능하게 하기 위해 다른 메커니즘이 사용될 수 있다. 벤더 특정 커맨드는 CCS 아키텍처 내의 정의된 CCS 커맨드를 확장하는 기능을 제공하기 위해 사용될 수 있다. 이들 벤더 특정 커맨드는 커맨드 지원 아키텍처를 사용한다.
벤더 특정 커맨드에 추가하여, 소프트웨어는 본 명세서에서 정의된 커맨드 전송 아키텍처를 사용하여 쉽게 표현되거나 구현될 수 없는 기능을 제공하기 위해 CSI-3 명세(Specification)에 의해 정의된 속성 겟/셋(Attribute Get/Set) 메커니즘을 계속 사용할 수 있다. 벤더 특정 또는 직접적 속성 겟/셋(Attribute Get/Set) 커맨드가 사용되면, CCS에 의해 반환된 값에는 오류가 있을 수 있다. 따라서, 벤더 특정 커맨드 또는 속성 겟/셋(Attribute Get/Set) 메커니즘이 구현될 경우, CCS와의 잠재적 상호작용은 승인되어야 한다. 예컨대, 벤더 특정 커맨드가 표준 커맨드 세트에 의해 지원되지 않는 렌즈 셰이딩 수정(Lens Shading Correction) 메커니즘을 특정하기 위해 사용되면, 겟 렌즈 셰이딩(GetLensShading()) 커맨드는 오류 있는 데이터 또는 CCS에 의해 예측되는 것 이외의 데이터를 반환할 수 있다.
시스템(300)은 호스트 디바이스(302)를 포함할 수 있다. 호스트 디바이스(302)는 데스크탑, 랩탑, 터치패드, 퍼스널 컴퓨터, 모바일 전화 디바이스 등이 될 수 있다. 또한, 전술된 호스트 디바이스(100)(도 1)는 호스트 디바이스(302)가 될 수 있다. 호스트 디바이스(302)는 카메라 서브시스템(304)에 연결될 수 있다. 카메라 서브시스템(304)은 이미지 디바이스(120)(도 1) 또는 카메라 서브시스템(200)(도 2)이 될 수 있다. 전술된 것처럼, 카메라 서브시스템(304)은 CSI-3 링크를 통해 호스트 디바이스(302)에 연결될 수 있다. 카메라 서브시스템(304)은 또한 메타데이터 저장장치(306)를 포함할 수 있다. 메타데이터 저장장치(306)는 카메라 서브시스템(304)에의 데이터 저장 및 카메라 서브시스템(304)에 의해 저장된 데이터로부터의 검색을 위한 일반적 메커니즘을 제공할 수 있다. 메타데이터 저장장치(306)는 카메라 커맨드를 번역하기 위해 사용되는 번역 코드(308)를 저장할 수 있다. 또한, 메타데이터 저장장치(306)는 식별 및 이미지 튜닝 파라미터를 저장할 수 있다. 카메라 서브시스템(304)은 또한 CSI-3 속성을 포함할 수 있다. 실시형태에서, 속성은 카메라 서브시스템의 자원에 액세스하기 위해 사용될 수 있다. 또한, 실시형태에서, 속성은 이벤트를 검출하기 위해 사용될 수 있다. CSI-3 속성(310)은 번역 설비로부터 번역된 커맨드를 수신한다. 번역 설비는 번역 엔진(312)이 될 수 있다.
번역 엔진(312)은 카메라 서브시스템(304)의 외부에 위치할 수 있다. 예컨대, 번역 엔진(312)은 호스트 디바이스(302) 상에 위치할 수 있다. 다른 예에서, 번역 엔진(312)은 호스트 디바이스(302) 및 카메라 서브시스템(304) 모두의 외부에 있을 수도 있다. 또한, 번역 엔진(312)은 카메라 서브시스템(304)에 연결될 수 있다.
번역 엔진(312)은 입력되는 커맨드를 카메라 서브시스템(304)의 구성에 특정적인 이미지 커맨드로 번역할 수 있다. 특히, 번역 엔진(312)은 입력되는 커맨드를 카메라 서브시스템(304)이 처리할 수 있는 액세스로 번역할 수 있다. 예컨대, 번역 엔진(312)은 복잡한 입력 커맨드를 더 간단한 커맨드로 번역할 수 있다. 다른 예에서, 번역 엔진(312)은 입력 커맨드를 CSI-3 속성 겟-셋(Attribute Get-Set) 요청으로 번역할 수 있다.
커맨드를 번역하기 위해, 번역 엔진(312)은 번역 코드(308)를 사용할 수 있다. 번역 엔진은 카메라 서브시스템(304)의 메타데이터 저장장치(306)로부터 검색된 고 레벨 번역 코드(308)를 사용한다. 번역 코드(308)는 또한 카메라 서브시스템(304)의 외부에 저장될 수 있다. 특히, 번역 코드(308)는 플랫폼 저장장치(314) 내에 저장될 수 있다. 일 예에서, 플랫폼 저장장치(314)는 호스트 디바이스(302) 상에 포함될 수 있다. 다른 예에서, 플랫폼 저장장치(314)는 호스트 디바이스(302)와 카메라 서브시스템(304) 모두의 외부에 있을 수도 있다. 플랫폼 저장장치(314)는 호스트 디바이스(302)에 연결될 수 있다. 플랫폼 저장장치(314)는 임의 유형의 저장 매체일 수 있다. 예컨대, 플랫폼 저장장치(314)는 RAM 메모리, BIOS, 또는 디스크 드라이브일 수 있다. 번역 엔진이 번역 코드(308)의 위치를 찾고 액세스할 수 있도록, 번역 코드(308)는 호스트에게 익숙한 방식으로 저장될 수 있다. 번역 코드(308)는 또한 다른 플랫폼 저장장치 위치에 저장될 수 있다. 번역 코드가 저장되는 위치는 번역 코드 스토어로서 알려진다. 플랫폼의 필요에 따라, 호스트 소프트웨어는 적절한 코드 스토어로부터 코드를 검색하도록 설계될 것이다. 번역 엔진(308)은 코드를 실행하여 제공된 CCS 커맨드를 카메라 서브시스템이 실행할 수 있는 액세스로 번역하는데, 이것은 CSI-3 속성 겟/셋(Attribute Get/Set) PDU 패킷이 될 수 있다. CSI-3 속성 겟/셋(Attribute Get/Set) PDU 패킷은 카메라 서브시스템으로 전송되어 CCS 커맨드에 의해 요청된 행위가 유발되도록 할 수 있다.
번역 엔진(312)은 번역된 커맨드를 카메라 서브시스템(304)에 전송하도록 구성될 수 있다. 예컨대, 번역 엔진(312)은 번역된 커맨드를 CSI-3 속성(Attributes)(310)으로 전송할 수 있다. 번역 엔진(312)은 카메라 서브시스템(304)에 의해 원천적으로 지원되지 않는 커맨드만을 번역하도록 구성될 수 있다. 따라서, 카메라에 대한 모든 커맨드가 번역될 필요는 없다. 어떤 커맨드가 번역되어야 하는지를 결정하기 위해, 번역 엔진(308)은 먼저 카메라 서브시스템(304)에 대한 겟 CCS 지원(Get_CCSSupport()) 커맨드를 실행해야 한다. 실시형태에서, 유효한 CCS 지원 테이블이 반환되면, 번역 엔진(308)은 카메라 서브시스템(304)에 원천적으로 처리될 수 있는 커맨드를 직접 전달하기 위해 제공된 정보를 사용할 수 있다. 또한, 실시형태에서, 호스트에 의해 요구된 모든 커맨드가 원천적으로 지원될 수 있으면, 번역 엔진 또는 번역 코드 스토어에 대한 필요가 존재하지 않는다. 이런 식으로, 호스트 디바이스(302)는, 커맨드의 번역을 개시하기에 앞서, 카메라 서브시스템(304)이 그 커맨드를 처리할 수 있는지 여부를 판정하기 위해 카메라 서브시스템(304)에 액세스할 수 있다. 카메라 서브시스템(304)이 그 커맨드를 처리할 수 있으면, 호스트 디바이스(302)는 그 입력 커맨드를 직접 카메라 서브시스템(304)에 전송할 수 있다. 일 예에서, 커맨드는 번역 엔진(312)에 직접 입력될 수 있다. 다른 예에서, 커맨드는 호스트 디바이스(302)에 입력되고 다음에 번역 엔진(312)으로 전송될 수 있다.
번역 엔진(312)은 디바이스 드라이버(126)(도 1)와 같은 디바이스 드라이버 상에서 구현된 런타임 해석형 언어 샌드박스(a run-time interpreted language sandbox) 내에서 구현될 수 있다. 이런 식으로, 호스트 디바이스의 커널(kernel)은 번역 엔진(312)으로부터 방출될 수 있는 임의의 코드로부터 보호된다.
실시형태에서, RAW 센서에 대한 이미지 처리 커맨드와 같은, CCS 내의 몇몇 커맨드는, 선택적이거나 특정 카메라 서브시스템 또는 센서 서브시스템 구성에 적용될 수 없다. 호스트 소프트웨어에 지원된 커맨드의 예측가능한 세트를 제공하기 위해, 복수의 프로파일이 다양한 용도를 위해 사전 정의될 수 있다. 프로파일을 구현하기 위해, 카메라 서브시스템은, 전술된 것처럼 원천적 또는 번역된 지원을 통해, 표시된 커맨드에 대한 지원을 제공한다. 또한, 카메라는 임의의 다른 선택적 커맨드에 대한 지원을 제공할 수 있다. 예컨대, RAW 카메라로서 식별되는 카메라는 RAW 카메라 CCS 프로파일을 구현할 수 있다. 마찬가지로, SoC 카메라로서 식별되는 카메라 서브시스템은 SoC 카메라 CCS 프로파일을 구현할 수 있다.
도 4는 실시형태에 따른, 카메라 서브시스템을 초기화화는 방법(400)을 도시하는 처리 흐름도이다. 이 처리 흐름도는 호스트 디바이스(100)(도 1) 또는 호스트 디바이스(302)(도 3)와 같은 호스트 디바이스에 의해 이용될 수 있다.
블록(402)에서, 이미지 디바이스가 식별된다. 실시형태에서, 카메라를 식별하기 위해, 호스트 소프트웨어는 디바이스 종류, 제조자, 모델 번호, 일련 번호, 및 다른 정보를 식별하는 디바이스 속성을 판독할 수 있다. 예컨대, 호스트 디바이스 및 카메라가 UniPro 프로토콜에 따라 상호접속되는 경우, 호스트 디바이스는 카메라의 UniPro(Unified Protocol) DDB(device descriptor block) 물리적 계층(L1) 속성을 판독할 수 있다. UniPro 프로토콜은 시스템 내에서 디바이스들을 상호접속하는 표준을 특정한다. UniPro DDB는 디바이스를 식별하는데 사용될 수 있는 정보를 포함한다. 또한, 이미지 디바이스의 UniPro DDB L1 속성은, 링크의 대역폭 및 전력 용량과 같은, 이미지 디바이스와 호스트 디바이스 간의 링크를 정의하는데 사용될 수 있다. UniPro DDB L1 속성은 디바이스 종류, 제조자 식별자, 및 제품 식별자를 포함한다. 실시형태에서, CSI-3 속성은 디바이스 소분류와 같은 이미지 디바이스에 관한 정보를 결정하기 위해 판독될 수 있다.
실시형태에서, 카메라는 MIPI(Mobile Industry Processor Interface) CSI(Camera Serial Interface) 연합(Alliance)에 의한 명세에 따라 개발된 인터페이스를 사용하여 호스트 디바이스의 프로세서와 인터페이스한다. 예컨대, 카메라 직렬 인터페이스는 MIPI CSI-3 인터페이스이다. 실시형태에서, CSI는 데이터 및 클록 신호와의 단방향 차동 직렬 인터페이스인 데이터 전송 인터페이스를 포함한다. 호스트 디바이스는 CSI-3 속성을 사용하여 카메라의 소분류를 결정할 수 있다.
블록(404)에서, 이미지 디바이스가 CCS를 지원하는지 여부가 판정된다. CCS가 지원된다면, 처리 흐름은 블록(406)으로 계속된다. CCS가 지원되지 않으면, 처리 흐름은 블록(408)으로 계속된다. 이를 판정하기 위해, 호스트는 겟 CCS 지원(Get_CCSSupport()) 커맨드를 실행하고자 시도할 수 있다. 겟 CCS 지원(Get_CCSSupport()) 커맨드는 아래에 설명되는 전송 메커니즘을 사용하여 카메라에 의해 실행될 수 있다. 카메라로부터 반환된 값이 '0'이면, CCS는 지원되지 않는다.
실시형태에서, CCS가 지원되면, 호스트 디바이스는 카메라가 CCS를 원천적으로 지원하는지 여부를 판정할 수 있다. 예컨대, 호스트는 CSI-3 속성 또는 UniPro DDB L1 속성으로부터 획득된 데이터를 사용하여 정보 메타데이터 디렉토리(Info_MetadataDirectory()) 커맨드가 지원되는지 여부를 판정할 수 있다. 카메라가 CCS를 원천적으로 지원한다면, 카메라는 CCS 커맨드를 사용하기 시작할 수 있다.
카메라가 CCS를 원천적으로 지원하는 것이 아니라면, 호스트는 번역 코드 블로브(blob)가 이용가능한지 여부를 판정한다. 예컨대, 호스트는 번역 코드 블로브가 메타데이터 내에서 이용가능한지 여부를 판정할 수 있다.
블록(406)에서, 메타데이터 디렉토리가 존재하는지 여부가 판정된다. 메타데이터 디렉토리가 존재한다면, 처리 흐름은 블록(410)으로 계속된다. 메타데이터 디렉토리가 존재하지 않는다면, 처리 흐름은 블록(416)으로 계속된다.
블록(408)에서, 카메라를 지원하고 인증하기 위해 벤더 특정 소프트웨어가 사용된다. CCS가 지원되지 않으면, 처리는 종료되고 벤더 특정 흐름이 사용되어야 한다.
블록(410)에서, 메타데이터 디렉토리를 사용하여 번역 코드가 이용가능한지 여부가 판정된다. 메타데이터 디렉토리를 사용하여 번역 코드가 이용가능하다면, 처리 흐름은 블록(414)으로 계속된다. 메타데이터 디렉토리를 사용하여 번역 코드가 이용가능하지 않으면, 프로세서 흐름은 블록(412)으로 계속된다.
블록(412)에서, 번역 코드가 시스템 내의 어딘가에서 이용가능한지 여부가 판정된다. 실시형태에서, 번역 코드가 플랫폼 상의 어딘가에서 이용가능한지 여부가 판정된다. 번역 코드가 시스템 내에서 이용가능하지 않으면, 처리 흐름은 블록(408)으로 복귀한다. 번역 코드가 시스템 내에서 이용가능하다면, 처리 흐름은 블록(414)으로 계속된다.
블록(414)에서, 번역 코드가 로딩되고 실행된다. 따라서, 실시형태에서, 번역 코드 블로브가 이용가능하다면, 호스트는 그 블로브를 로딩하고 번역 엔진을 초기화한다. 번역 블로브가 로딩될 경우, 블로브는 런타임 해석형 언어 샌드박스 내에서 작동될 수 있다. 번역 엔진은 커맨드의 번역을 시작할 수 있다. 번역 코드 블로브가 이용가능하지 않으면, 호스트는 플랫폼 상의 어딘가에서 이용가능한 번역 코드 스토어가 존재하는지 여부를 플랫폼 특정 방식으로 판정할 수 있다. 이용가능한 번역 코드 스토어가 존재하면, 호스트는 그 번역 코드 스토어를 로딩하고 번역 엔진을 초기화할 수 있다. 다음에 번역 엔진은 CCS로부터의 커맨드를 카메라가 실행할 수 있는 커맨드로 번역하기 시작할 수 있다. 실시형태에서, 결과적으로 번역된 커맨드는 CSI-3 속성 겟/셋(Attribute Get/Set) PDU 패킷이고, 이것은 차례로 카메라 커맨드에 의해 요청된 행위를 유발하기 위해 카메라로 전송된다. 블록(416)에서, CCS 커맨드는 카메라를 지원하고, 제어하며, 인증하기 위해 사용된다.
도 5는 실시형태에 따른, 카메라 커맨드를 번역하는 방법(500)의 처리 흐름도이다. 전술된 것처럼, 커맨드는 도 4의 블록(414)에서 번역 코드를 실행함으로써 번역 엔진이 생성될 때 번역될 수 있다.
블록(502)에서, 번역 엔진을 형성하도록 코드 스토어로부터 번역 코드가 수신된다. 전술된 것처럼, 번역 코드 및 번역 엔진은 복잡한 CCS 커맨드를 카메라가 실행할 수 있는 커맨드 또는 CSI-3 속성 겟/셋(Attribute Get/Set) 요청으로 번역할 수 있게 하는 번역 설비를 형성한다. 번역 코드는 아래에 설명되는 것처럼 메타데이터 저장 서브시스템을 사용하여 저장될 수 있다. 블록(504)에서, 촬상 디바이스 커맨드가 번역 엔진에서 수신된다. 실시형태에서, 촬상 디바이스 커맨드는 디바이스 드라이버(126)(도 1)로부터 애플리케이션(130)(도 1)으로 전송된다.
블록(506)에서, 촬상 디바이스 커맨드는 번역 엔진을 사용하여 번역될 수 있다. 이런식으로, 호스트 디바이스는 CCS 커맨드를 촬상 디바이스가 처리할 수 있는 포맷으로 변환 또는 번역할 수 있다.
실시형태에서, 번역 엔진은 커맨드를 CSI-3 속성 겟/셋(Attribute Get/Set) 요청으로 번역할 수 있다. CSI-3 속성 겟/셋(Attribute Get/Set) 요청으로 번역된 커맨드를 실행하기 위해 전송 메커니즘이 사용될 수 있다. 블록(508)에서, 번역된 촬상 디바이스 커맨드는 번역된 촬상 디바이스 커맨드에 의해 요청된 행위를 유발하도록 촬상 디바이스로 전송된다.
CCS는 CSI-3 기반 촬상 디바이스 상에서 구현될 수 있다. 전술된 것처럼, 촬상 디바이스는 카메라 및 센서를 포함한다. 실시형태에서, CSI-3 촬상 디바이스는 CCS의 커맨드를 원천적으로 실행할 수 있으며, 그에 따라 호스트 디바이스와의 통합 문제를 완화시키며, 또한 소프트웨어 및 지원 가격을 감소시킨다. 또한, 실시형태에서, CCS 커맨드는 겟 앤드 겟 아키텍처(get and set architecture)에 기초한 전송 메커니즘을 사용하여 원천적으로 실행될 수 있다.
따라서, CSI-3 기반 카메라 상에서 원천적으로 실행되는 커맨드에 대한 전송은, CSI-3 표준에 의해 정의된 CPC(Configuration Protocol for Camera)에 의해 정의된 CSI-3 GET, SET, RESPONSE, 및 NOTIFY 트랜잭션 행위에 기초한다. CCS 커맨드의 Get_ 및 Set_ 변형은 CSI-3 GET 및 SET 트랜잭션에 대응한다. 또한, 커맨드의 Info_ 변형은, 보통 상이한 커맨드 식별자(ID)를 갖는, Get_ 변형의 더 긴 버전으로서 구현된다. Get_ 변형이 보통 반환하는 동적 제어 정보에 비해, 커맨드의 Info_ 변형의 정보는 상당히 더 클 수 있으며 보통 일정한 정보이다.
Get_ 또는 Set_ 변형의 커맨드 ID는 다음과 같은 식으로 CSI-3 속성(Attribute) ID에 매핑된다.
CSI-3_Attribute = 0x01000000 + (CMD_ID * 0x1000)
다수의 커맨드에 대해, 의사-코드 요약(abstraction)은 기본적으로 단지 Get/Set 프로세스인 것을 둘러싸는 얇은 래퍼(thin wrapper)임에 유의한다.
예컨대, 겟 커맨드 상태(Get-CommandStatus()) 커맨드는 0x010의 ID를 사용하여 (0x01000000 + (0x010*0x1000) = 0x01010000)에 대한 트랜잭션으로서 표현될 것이다. 이 어드레스는 패킷 데이터 유닛(PDU)의 AttributeID가 될 것이다. 또한, PDU는 4 바이트 전송을 나타내는 0의 XFSIZE, 및 GET을 나타내는 2의 PDU 유형(Type)을 가질 것이다. 이 PDU는 이어서 CSI-3 속성 패킷(Attribute Packet)으로 캡슐화되어 카메라로 전송될 것이다. 이어서, Status 값은 커맨드를 완료하는, 호스트에 대한 응답(Response) PDU로 반환될 것이다.
도 6은 실시형태에 따른, 전송 메커니즘으로 하여금 겟 앤드 셋 아키텍처(Get and Set Architecture)에 기초하여 CCS 커맨드를 실행할 수 있게 하는 방법(600)의 처리 흐름도이다.
블록(604)에서, 촬상 디바이스 내의 이미지 소스로부터 속성 값을 획득하기 위해 속성 식별에 기초하여 겟 프로토콜 데이터 유닛(PDU)이 호스트 디바이스로부터 촬상 디바이스에 전송될 수 있다. 겟 PDU는 CSI-3 속성 패킷(Attribute Packet)으로 캡슐화되고 다음에 촬상 디바이스로 전송될 수 있다. 실시형태에서, 촬상 디바이스의 센서는 겟 PDU가 호스트 디바이스로부터 촬상 디바이스로 전송될 경우에 커맨드를 실행할 수 있다. 또한, 실시형태에서, 촬상 디바이스의 센서는 겟 PDU가 차단없이 호스트 디바이스로부터 촬상 디바이스로 전송될 경우에 커맨드를 실행할 수 있다. 차단은 센서가 사용중일 경우의 커맨드의 지연된 실행을 의미한다. 예컨대, 몇몇 커맨드는 완료에 오랜 시간이 걸릴 수 있고, 카메라는 실행 시간 중에 커맨드를 처리할 수 없을 수 있다. 그러나, 카메라 모듈은 겟 PDU가 수신된 순서로 응답 PDU를 반환해야 한다. 카메라는 호스트를 지연시키고 커맨드 버퍼 오버플로우를 방지하기 위해 CPC C-포트에 의해 제공된 L4 흐름 제어를 사용할 수 있다.
예컨대, 커맨드의 Set_변형은 실행에 오랜 시간이 걸리고 차단을 유발할 수 있다. 이들 커맨드는 응답을 반환하지 않는다. 따라서, 호스트는 긴 커맨드의 실행이 완료되었을 때를 결정하기 위해 겟 커맨드 상태(Get_CommandStatus()) 커맨드를 사용할 수 있다. 커맨드 실행이 완료되고 센서가 준비될 때를 결정하기 위해 커맨드에 대한 응답이 호스트에 의해 사용될 수 있도록 겟 커맨드 상태(Get_CommandStatus()) 커맨드는 항상 차단없이 센서에 의해 처리되는 것이 바람직하다.
블록(606)에서, 응답 PDU는 커맨드의 실행을 완료하기 위해 촬상 디바이스로부터 호스트 디바이스로 전송될 수 있다. 응답 PDU는 촬상 디바이스 내의 이미지 소스로부터 획득된 속성 값을 포함할 수 있다.
실시형태에서, CSI-3 통지(Notify) PDU가 촬상 디바이스로부터 호스트 디바이스로 전송될 수 있다. 통지 PDU는 커맨드로부터의 속성 식별에 기초한 속성 값을 포함하지 않는다. 또한, 셋 PDU가 호스트 디바이스로부터 전송될 때, 셋 PDU는 커맨드로부터의 속성 식별에 기초하여 속성 값을 촬상 디바이스에 기록할 수 있다.
카메라 서브시스템은 또한 호스트 하드웨어 및 소프트웨어 처리로 하여금 카메라 세부사항을 식별하고, 카메라 특정 캘리브레이션(calibration) 및 튜닝 정보를 검색하고, 펌웨어 또는 다른 코드 스토어를 관리할 수 있게 하는 메타데이터 서브시스템을 포함할 수 있다. 따라서, 메타 데이터는 번역 코드, 캘리브레이션 데이터, 튜닝 데이터, 촬상 디바이스 펌웨어, 또는 그들의 임의의 조합 중 하나를 포함한다. 많은 구현에서, 다양한 메타데이터 부분은, 모듈 자체의 비휘발성 저장장치, 호스트 펌웨어, 및 호스트 OS 주요 저장장치를 포함하는, 다양한 시스템 데이터 스토어에 저장된다. 실시형태에서, 데이터는 또한 다양한 코드 스토어에 저장될 수 있다. 또한, 실시형태에서, 코드 스토어 및 데이터 스토어는 동일하다. 다양한 시스템 저장 제한 또는 가격 트레이드오프가 양호한 위치를 변경시킬 수 있기 때문에, 이들 다양한 스토어의 위치는 시스템마다 변할 수 있다. 메타데이터를 관리할 때의 위치 지정에 있어서 더 높은 레벨 소프트레벨의 작업을 단순화하기 위해, CCS는 메타데이터 저장 및 검색을 관리하는데 사용될 수 있는 선택적 커맨드 세트를 제공한다. 카메라가 모듈 상의 비휘발성 저장장치를 관리하기 위해 이들 커맨드의 원천적 버전을 실행할 수 있을 경우, 번역된 커맨드는 잠재적으로 다른 시스템 스토어에 대한 액세스도 역시 제공할 수 있다.
도 7은 실시형태에 따른, 센서 및 모듈 특정 메타데이터를 저장하고 검색하는 것을 가능하게 하는 메타데이터 저장 서브시스템(700)의 블록도이다. 실시형태에서, 메타데이터 저장 시스템은 CSI-3에 대한 데이터 블록 저장장치이다. 카메라 메타데이터는 블로브(blob)로 체계화(organize)되고, 블로브의 각각은 개별적으로 관리될 수 있다. 블로브는 데이터의 한 부분이다. 블로브의 예는 캘리브레이션 정보, 센서 펌웨어, 및 CCS를 지원하는 코드를 포함한다. 따라서, 전술된 번역 코드는 블로브이다. 이들 블로브는 시스템의 다양한 장소에 저장될 수 있으며, CCS 번역 코드가 각각의 블로브에 대한 액세스를 가질 경우, 그것은 이들 다양한 메타데이터 스토어를 소프트웨어에 대한 하나의 조화된 관점(coordinated view)으로 요약할 수 있다.
호스트 소프트웨어(702)는 메타데이터 디렉토리를 판독함으로써 이용가능한 블로브를 식별한다. 메타데이터 저장 커맨드(704)는 메타데이터 디렉토리에 대한 액세스를 제공한다. 호스트 소프트웨어(702)는 메타데이터 디렉토리를 판독하여, 존재하는 블로브의 유형, 시작 어드레스 및 길이, 및 액세스 속성을 결정한다. 블로브는 카메라 저장장치(706), 플랫폼 펌웨어(708), 또는 플랫폼 주요 저장장치(712) 중 어느 하나, 또는 그들의 임의의 조합에 존재할 수 있다.
특히, 메타데이터 디렉토리(MetadataDirectory()) 커맨드는 디렉토리에 대한 액세스를 제공한다. 정보 메타데이터(Info_MetadataDirectory()) 커맨드 변형은 디렉토리의 크기를 반환하며, 이것은 다음에 겟 메타데이터 디렉토리(Get_MetadataDirectory()) 커맨드 변형을 사용하여 페치(fetch)될 수 있다.
개별 블로브를 페치하기 위해, 두 단계의 처리가 호스트에 의해 사용된다. 먼저, 전송의 시작 어드레스를 나타내기 위해 셋 메타데이터(Set_Metadata()) 커맨드가 사용되고, 다음에 겟 메타데이터(Get_Metadata()) 커맨드는 메타데이터 블로브의 세그먼트를 전송한다. 개별 CSI-3 PDU는 한번에 4096 바이트까지 전송하도록 제한되므로, 4KB 제한보다 더 긴 메타데이터 블로브를 페치하기 위해 복수의 Set_/Get_ 시퀀스가 필요할 수 있다.
블로브의 시작 어드레스는, CSI-3 속성 매핑에 적합하도록 4의 배수가 되는 것 이외에, 임의의 특정 패턴을 따를 필요가 없다. 부착된 EEPROM을 사용하여 메타데이터 저장 커맨드를 원천적으로 구현하는 카메라가 저장 디바이스 내의 리터럴 어드레스(literal address)를 나타내는 어드레스를 사용할 경우, 번역된 메타데이터 커맨드는 메타데이터 블로브가 검색되어야 하는 데이터 스토어를 나타내기 위해 최상위 바이트를 사용할 수 있다.
도 8은 실시형태에 따른, 메타데이터 저장 서브시스템을 작동시키는 방법(800)의 처리 흐름도이다. 블록(802)에서, 이용가능한 메타데이터의 디렉토리가 생성되는데, 메타데이터는 다양한 시스템 데이터 스토어에 저장된다. 실시형태에서, 메타데이터는 카메라 커맨드 세트(CCS) 번역 코드 블록이며, 호스트 디바이스는 CCS 번역 코드 블록을 로딩하고 초기화한다. 블록(804)에서, 메타데이터는 호스트 디바이스에 의해 요청된 바에 따라 검색된다. 전술된 것처럼, 메타데이터를 검색하는 것은 메타데이터를 포함하는 데이터 전송의 시작 어드레스를 나타내는 커맨드를 실행하는 것을 포함한다. 실시형태에서, 시작 어드레스는 CSI-3 속성 매핑에 대응한다. 또한, 호스트 디바이스는 디렉토리를 판독하여, 촬상 디바이스 상에 있는 메타데이터의 유형, 메타데이터의 시작 어드레스 및 길이, 및 메타데이터의 액세스 속성을 결정한다. 블록(806)에서, 메타데이터는 호스트 디바이스로 전송된다. 블록(808)에서, 메타데이터는 실행된다.
도 4 내지 도 6 및 도 8의 처리 흐름도는 방법(400, 500, 600, 또는 800)의 단계들이 임의의 특정 순서로 실행되어야 한다거나 방법(400, 500, 600, 또는 800)의 단계들 전부가 모든 경우에 포함되어야 한다는 것을 나타내기 위해 의도된 것이 아니다. 또한, 특정 애플리케이션에 의존하여, 임의 개수의 추가 단계가 방법(400, 500, 600, 또는 800) 또는 그들의 임의의 조합에 포함될 수 있다.
도 9는 실시형태에 따른, 카메라 커맨드를 번역하는 코드를 저장하는 유형의 비일시적 컴퓨터 판독가능 매체(900)를 도시하는 블록도이다. 유형의 비일시적 머신 판독가능 매체는, 예컨대 컴퓨터와 같은 머신에 의해 판독가능한 형태로 정보를 저장하거나 전송하는 임의의 메커니즘을 포함할 수 있다. 예컨대, 머신 판독가능 매체는 판독 전용 메모리(ROM), 랜덤 액세스 메모리(RAM), 자기 디스크 저장 매체, 광 저장 매체, 및 플래시 메모리 디바이스를 포함할 수 있다. 유형의 비일시적 컴퓨터 판독가능 매체(900)는 컴퓨터 버스(904)를 통해 프로세서(902)에 의해 액세스될 수 있다. 또한, 유형의 비일시적 컴퓨터 판독가능 매체(900)는 본원에서 설명된 방법을 수행하도록 프로세서(902)에 지시하도록 구성된 코드를 포함할 수 있다.
본원에 설명된 다양한 소프트웨어 구성요소는 도 9에 표시된 유형의 비일시적 컴퓨터 판독가능 매체(900) 상에 저장될 수 있다. 저장 모듈(906)은 번역 엔진을 형성하도록 코드 스토어로부터 번역 코드를 수신하도록 구성된다. 또한, 번역 모듈(908)은 번역 엔진을 사용하여 촬상 디바이스 커맨드를 번역하도록 구성된다. 전송 모듈(910)은 번역된 촬상 디바이스 커맨드를 촬상 디바이스에 전송하여 번역된 촬상 디바이스 커맨드에 의해 요청된 행위를 유발할 수 있다.
도 9의 블록도는 유형의 비일시적 컴퓨터 판독가능 매체(900)가 도 9에 도시된 구성요소 전부를 포함해야 하는 것을 나타내도록 의도된 것이 아니다. 또한, 유형의 비일시적 컴퓨터 판독가능 매체(900)는, 특정 구현의 세부사항에 의존하여, 도 9에 도시되지 않은 임의 개수의 추가 구성요소를 포함할 수 있다.
도 10은 실시형태에 따른, 카메라 커맨드를 번역하는 예시적 시스템(1000)의 블록도이다. 도 1에 대해 설명된 것과 동일한 번호의 아이템들이 존재한다. 몇몇 실시형태에서, 시스템(1000)은 메타데이터 시스템이다. 또한, 시스템(1000)은 퍼스널 컴퓨터(PC), 랩탑 컴퓨터, 울트라-랩탑 컴퓨터, 태플릿, 터치 패드, 포터블 컴퓨터, 핸드헬드 컴퓨터, 팜탑 컴퓨터, PDA(personal digital assistant), 휴대 전화, 결합 휴대전화/PDA, 텔레비전, 스마트 디바이스(예컨대, 스마트폰, 스마트 태플릿 또는 스마트 텔레비전), MID(mobile internet device), 메시징 디바이스, 데이터 통신 디바이스 등에 통합될 수 있다.
다양한 실시형태에서, 시스템(1000)은 디스플레이(1004)에 연결된 플랫폼(1002)을 포함한다. 플랫폼(1002)은 콘텐츠 서비스 디바이스(들)(1006) 또는 콘텐츠 전달 디바이스(들)(1008), 또는 다른 유사한 콘텐츠 소스와 같은 콘텐츠 디바이스로부터 콘텐츠를 수신할 수 있다. 하나 이상의 네비게이션 기능을 포함하는 네비게이션 제어기(1010)는 예컨대 플랫폼(1002) 및/또는 디스플레이(1004)와 상호작용하기 위해 사용될 수 있다. 이들 구성요소의 각각은 이하에 더 상세히 설명된다.
플랫폼(1002)은 칩셋(1012), 중앙 처리 유닛(CPU)(102), 메모리 디바이스(104), 저장 디바이스(128), 그래픽 서브시스템(1014), 애플리케이션(130), 및 라디오(1016)의 임의의 조합을 포함할 수 있다. 칩셋(1012)은 CPU(102), 메모리 디바이스(104), 저장 디바이스(128), 그래픽 서브시스템(1014), 애플리케이션(130), 및 라디오(1016) 사이의 상호 통신을 제공할 수 있다. 예컨대, 칩셋(1012)은 저장 디바이스(128)와 상호 통신을 제공할 수 있는 저장 어댑터(도시안됨)을 포함할 수 있다.
프로세서(102)는 CISC(Complex Instruction Set Computer) 또는 RISC(Reducded Instruction Set Computer) 프로세서, x86 명령어(Instruction) 세트 호환가능 프로세서, 멀티-코어, 또는 임의의 다른 마이크로프로세서 또는 CPU(central processing unit)로서 구현될 수 있다. 몇몇 실시형태에서, 프로세서(102)는 듀얼-코어 프로세서(들), 듀얼-코어 모바일 프로세서(들) 등을 포함한다.
메모리 디바이스(104)는, RAM(Random Access Memory), DRAM(Dynamic Random Access Memory), 또는 SRAM(Static RAM)과 같은, 그러나 그에 제한되지 않는, 휘발성 메모리 디바이스로서 구현될 수 있다. 저장 디바이스(128)는, 자기 디스크 드라이브, 광 디스크 드라이브, 테이프 드라이브, 내부 저장 디바이스, 부착된 저장 디바이스, 플래시 메모리, 배터리 백업 SDRAM(synchronous DRAM), 및/또는 네트워크 액세스 가능한 저장 디바이스와 같은, 그러나 그에 제한되지 않는, 비휘발성 저장 디바이스로서 구현될 수 있다. 몇몇 실시형태에서, 저장 디바이스(128)는, 예컨대, 복수의 하드 드라이브가 포함될 때, 소중한 디지털 매체에 대한 저장 성능 강화된 보호를 증가시키는 기술을 포함한다.
그래픽 서브시스템(1014)은 디스플레이용 스틸(still) 또는 비디오와 같은 이미지의 처리를 수행할 것이다. 그래픽 서브시스템(1014)은 예컨대 GPU(108)와 같은 그래픽 처리 유닛(graphics processing unit: GPU), 또는 시각적 처리 유닛(visual processing unit: VPU)을 포함할 수 있다. 아날로그 또는 디지털 인터페이스는 그래픽 서브시스템(1014)과 디스플레이(1004)를 통신가능하게 연결하기 위해 사용될 수 있다. 예컨대, 인터페이스는 고해상도 멀티미디어 인터페이스(High-Definition Multimedia Interface), 디스플레이포트(DisplayPort), 무선 HDMI, 및/또는 무선 HD 준수 기술 중 임의의 것이 될 수 있다. 그래픽 서브시스템(1014)은 프로세서 또는 칩셋(1012)에 통합될 수 있다. 대안적으로, 그래픽 서브시스템(1014)은 칩셋(1012)과 통신 가능하게 연결된 독립형 카드가 될 수 있다.
본원에 설명된 그래픽 및/또는 비디오 처리 기술들은 다양한 하드웨어 아키텍처로 구현될 수 있다. 예컨대, 그래픽 및/또는 비디오 기능은 칩셋(1012) 내에 통합될 수 있다. 대안적으로, 별개의 그래픽 및/또는 비디오 프로세서가 사용될 수 있다. 다른 실시형태로서, 그래픽 및/또는 비디오 기능은, 멀티-코어 프로세서를 포함하는 범용 프로세서에 의해 구현될 수 있다. 또 다른 실시형태에서, 그 기능은 소비자 전자 디바이스로 구현될 수 있다.
라디오(1016)는 다양한 적합한 무선 통신 기술을 사용하여 신호를 송신하고 수신할 수 있는 하나 이상의 라디오를 포함할 수 있다. 그런 기술은 하나 이상의 무선 네트워크를 통한 통신을 수반할 수 있다. 예시적 무선 네트워크는 WLAN(wireless local area network), WPAN(wireless personal area network), WMAN(wireless metropolitan area network), 셀룰러 네트워크, 위성 네트워크 등을 포함한다. 그런 네트워크를 통한 통신 시에, 라디오(1016)는 임의 버전의 하나 이상의 해당하는 표준에 따라 동작할 수 있다.
디스플레이(1004)는 임의의 텔레비전형 모니터 또는 디스플레이를 포함할 수 있다. 예컨대, 디스플레이(1004)는 컴퓨터 디스플레이 스크린, 터치 스크린 디스플레이, 비디오 모니터, 텔레비전, 등을 포함할 수 있다. 디스플레이(1004)는 디지털 및/또는 아날로그 일 수 있다. 몇몇 실시형태에서, 디스플레이(1004)는 홀로그래픽 디스플레이이다. 또한, 디스플레이(1004)는 시각적 투사(projection)를 수신할 수 있는 투명한 표면일 수 있다. 그런 투사는 다양한 형태의 정보, 이미지, 오브젝트(objects), 등을 전달할 수 있다. 예컨대, 그런 투사는 MAR(mobile augmented reality) 애플리케이션에 대한 시각적 오버레이(overlay)일 수 있다. 하나 이상의 애플리케이션(130)의 제어 하에서, 플랫폼(1002)은 디스플레이(1004) 상에 사용자 인터페이스(1018)를 표시할 수 있다.
콘텐츠 서비스 디바이스(들)(1006)는 국내적, 국제적, 또는 독립 서비스에 의해 호스팅되고, 따라서, 예컨대 인터넷을 통해 플랫폼(1002)에 액세스될 수 있다. 콘텐츠 서비스 디바이스(들)(1006)는 플랫폼(1002) 및/또는 디스플레이(1004)에 연결될 수 있다. 플랫폼(1002) 및/또는 콘텐츠 서비스 디바이스(들)(1006)는 네트워크(134)에 연결되어 네트워크(134)와 미디어 정보를 통신(예컨대, 송신 및/또는 수신)할 수 있다. 콘텐츠 전달 디바이스(들)(1008)는 또한 플랫폼(1002) 및/또는 디스플레이(1004)에 연결될 수 있다.
콘텐츠 서비스 디바이스(들)(1006)는 케이블 텔레비전 박스, 퍼스널 컴퓨터, 네트워크, 전화, 또는 디지털 정보를 전달할 수 있는 인터넷-인에이블형(Internet-enabled) 디바이스를 포함할 수 있다. 또한, 콘텐츠 서비스 디바이스(들)(1006)는 콘텐츠 제공자와 플랫폼(1002) 또는 디스플레이(1004) 사이에, 네트워크(134)를 통하거나 직접적으로, 콘텐츠를 단방향 또는 양방향으로 통신할 수 있는 임의의 다른 유사한 디바이스들을 포함할 수 있다. 콘텐츠는 네트워크(134)를 통해 시스템(1000) 및 콘텐츠 제공자의 구성요소들 중 임의의 하나와 단방향으로 및/또는 양방향으로 통신될 수 있음이 인식될 수 있을 것이다. 콘텐츠의 예는, 예컨대, 비디오, 음악, 의학 및 게임 정보, 등을 포함하는 임의의 미디어 정보를 포함할 수 있다.
콘텐츠 서비스 디바이스(들)(1006)는, 미디어 정보, 디지털 정보, 또는 다른 콘텐츠를 포함하는 케이블 텔레비전 프로그래밍과 같은 콘텐츠를 수신할 수 있다. 콘텐츠 제공자의 예는, 특히, 임의의 케이블 또는 위성 텔레비전 또는 라디오 또는 인터넷 콘텐츠 제공자를 포함할 수 있다.
몇몇 실시형태에서, 플랫폼(1002)은 하나 이상의 네비게이션 기능을 포함하는 네비게이션 제어기(1010)로부터 제어 신호를 수신한다. 네비게이션 제어기(1010)의 네비게이션 기능은 예컨대 사용자 인터페이스(1018)와 상호작용하기 위해 사용될 수 있다. 네비게이션 제어기(1010)는 사용자로 하여금 컴퓨터에 공간적 (예컨대, 연속적이고 다 차원적) 데이터를 입력할 수 있게 하는 컴퓨터 하드웨어 구성요소(특히, 휴먼 인터페이스 디바이스)가 될 수 있는 포인팅 디바이스일 수 있다. GUI(graphic user interface), 텔레비전 및 모니터와 같은 많은 시스템은 사용자로 하여금 신체적 제스처를 사용하여 데이터를 제어하여 컴퓨터 또는 텔레비전에 제공할 수 있게 한다. 신체적 제스처는 얼굴 표정, 얼굴 움직임, 다양한 사지(limbs)의 움직임, 몸체 움직임, 바디 랭귀지, 또는 그들의 임의의 조합을 포함하지만, 그에 제한되지 않는다. 그런 신체적 제스처는 커맨드 또는 명령어로 인식되고 번역될 수 있다.
네비게이션 제어기(1010)의 네비게이션 피처의 움직임은 포인터, 커서, 포커스 링, 또는 디스플레이(1004) 상에 표시된 다른 시각적 표시자의 움직임에 의해 디스플레이(1004) 상에 반영될 수 있다. 예컨대, 애플리케이션(130)의 제어 하에서, 네비게이션 제어기(1010) 상에 위치한 네비게이션 피처는 사용자 인터페이스(1018) 상에 표시된 시각적 네비게이션 피처로 매핑될 수 있다. 몇몇 실시형태에서, 네비게이션 제어기(1010)는 분리된 구성요소가 아니라 오히려 플랫폼(1002) 및/또는 디스플레이(1004)에 통합될 수 있다.
시스템(1000)은, 예컨대, 작동될 때, 사용자가 초기 부팅 이후에 버튼의 터치를 사용하여 플랫폼(1002)을 즉시 턴 온 및 오프할 있게 하는 기술을 포함하는 드라이버(도시안됨)를 포함할 수 있다. 프로그램 로직은 플랫폼(1002)이 턴 "오프"될 때 플랫폼(1002)이 미디어 어댑터 또는 다른 콘텐츠 서비스 디바이스(들)(1006) 또는 콘텐츠 전달 디바이스(들)(1008)로 콘텐츠를 스트리밍할 수 있도록 허용할 수 있다. 또한, 칩셋(1012)은 예컨대 10.1 서라운드 사운드 오디오 및/또는 고 해상도 7.1 서라운드 사운드 오디오에 대한 하드웨어 및/또는 소프트웨어 지원을 포함할 수 있다. 드라이버는 집적된 그래픽 플랫폼을 위한 그래픽 드라이버를 포함할 수 있다. 몇몇 실시형태에서, 그래픽 드라이버는 PCIe(peripheral component interconnect express) 그래픽 카드를 포함한다.
다양한 실시형태에서, 시스템(1000) 내에 도시된 구성요소들 중 임의의 하나 이상은 통합될 수도 있다. 예컨대, 플랫폼(1002) 및 콘텐츠 서비스 디바이스(들)(1006)가 통합될 수도 있고, 플랫폼(1002) 및 콘텐츠 전달 디바이스(들)(1008)가 통합될 수 있고, 또는 플랫폼(1002), 콘텐츠 서비스 디바이스(들)(1006), 및 콘텐츠 전달 디바이스(들)(1008)이 통합될 수도 있다. 몇몇 실시형태에서, 플랫폼(1002) 및 디스플레이(1004)는 통합된 유닛이다. 예컨대, 디스플레이(1004) 및 콘텐츠 서비스 디바이스(들)(1006)가 통합될 수도 있고, 또는 디스플레이(1004) 및 콘텐츠 전달 디바이스(들)(1008)이 통합될 수도 있다.
시스템(1000)은 무선 시스템 또는 유선 시스템으로서 구현될 수 있다. 무선 시스템으로서 구현될 때, 시스템(1000)은, 하나 이상의 안테나, 송신기, 수신기, 송수신기, 증폭기, 필터, 제어 로직, 등과 같은, 무선 공유 매체를 통한 통신에 적합한 구성요소 및 인터페이스를 포함할 수 있다. 무선 공유 매체의 예는 RF 스펙트럼과 같은 무선 스펙트럼의 일부를 포함할 수 있다. 유선 시스템으로서 구현될 때, 시스템(1000)은 입출력(I/O) 어댑터, I/O 어댑터를 대응하는 유선 통신 매체에 접속하는 물리적 접속기, NIC(network interface card), 디스크 제어기, 비디오 제어기, 오디오 제어기, 등과 같은, 유선 통신 매체를 통한 통신에 적합한 구성요소 및 인터페이스를 포함할 수 있다. 유선 통신 매체의 예는 와이어, 케이블, 금속 리드(leads), PCB(printed circuit board), 백플레이트, 스위치 패브릭, 반도체 재료, 꼬임쌍선 와이어(twisted-pair wire), 동축 케이블, 광섬유, 등을 포함할 수 있다.
플랫폼(1002)은 정보를 통신하기 위해 하나 이상의 논리적 또는 물리적 채널을 설정할 수 있다. 정보는 미디어 정보 및 제어 정보를 포함할 수 있다. 미디어 정보는 사용자를 위해 의도된 콘텐츠를 표현하는 임의의 데이터를 나타낼 수 있다. 콘텐츠의 예는, 예컨대, 음성 대화로부터의 데이터, 영상회의, 스트리밍 비디오, 전자 메일(이메일) 메시지, 음성 메일 메시지, 알파뉴메릭 심벌, 그래픽, 이미지, 비디오, 텍스트, 등을 포함할 수 있다. 음성 대화로부터의 데이터는, 예컨대, 스피치 정보, 침묵 기간, 배경 잡음, 컴포트 노이즈(comfort noise), 톤, 등이 될 수 있다. 제어 정보는 자동화된 시스템을 위해 의도된 커맨드, 명령어 또는 제어 워드를 표현하는 임의의 데이터를 나타낼 수 있다. 예컨대, 제어 정보는 시스템을 통해 미디어 정보를 라우팅하거나, 사전 결정된 방식으로 미디어 정보를 처리할 것을 노드에 지시하기 위해 사용될 수 있다. 그러나, 실시형태는 도 10에 도시되거나 설명된 구성요소들 또는 맥락(context)에 제한되지 않는다.
도 11은 실시형태에 따른, 도 10의 시스템(1000)이 구현될 수 있는 작은 폼 팩터(form factor) 디바이스(1100)의 모식도이다. 도 10에 대해 설명된 것과 동일한 번호의 아이템이 존재한다. 몇몇 실시형태에서, 예컨대, 디바이스(1100)는 무선 기능을 갖는 모바일 컴퓨팅 디바이스로서 구현된다. 모바일 컴퓨팅 디바이스는, 예컨대 하나 이상의 배터리와 같은 모바일 전력 소스 또는 공급장치 및 프로세싱 시스템을 갖는 임의의 디바이스를 나타낼 수 있다.
전술된 것처럼, 모바일 컴퓨팅 디바이스의 예는 PC(personal computer), 랩탑 컴퓨터, 울트라-랩탑 컴퓨터, 태블릿, 터치 패드, 휴대용 컴퓨터, 핸드헬드 컴퓨터, 팜탑 컴퓨터, PDA(personal digital assistant), 셀룰러 전화, 결합 셀룰러 전화/PDA, 텔레비전, 스마트 디바이스(예컨대, 스마트폰, 스마트 태블릿 또는 스마트 텔레비전), MID(mobile internet device), 메시징 디바이스, 데이터 통신 디바이스, 등을 포함할 수 있다.
모바일 컴퓨팅 디바이스의 예는 또한, 손목 컴퓨터, 손가락 컴퓨터, 링 컴퓨터, 안경 컴퓨터, 벨트-클립 컴퓨터, 암-밴드 컴퓨터, 슈즈 컴퓨터, 의상 컴퓨터, 또는 임의의 다른 적합한 유형의 착용가능한 컴퓨터와 같은, 사람이 착용하도록 구성된 컴퓨터를 포함할 수 있다. 예컨대, 모바일 컴퓨팅 디바이스는, 음성 통신 및/또는 데이터 통신뿐만 아니라, 컴퓨터 애플리케이션을 실행할 수 있는 스마트폰으로서 구현될 수 있다. 몇몇 실시형태는 예컨대 스마트폰으로서 구현된 모바일 컴퓨팅 디바이스를 사용하여 설명될 수 있지만, 다른 실시형태는 다른 무선 모바일 컴퓨팅 디바이스를 사용하여 구현될 수 있음이 역시 인식될 수 있다.
도 11에 도시된 것처럼, 디바이스(1100)는 하우징(1102), 디스플레이(1104), 입출력(IO) 디바이스(1106), 및 안테나(1108)를 포함할 수 있다. 디바이스(1100)는 또한 네비게이션 기능(1110)을 포함할 수 있다. 디스플레이(1104)는 모바일 컴퓨팅 디바이스에 적합한 정보를 표시하기 위한 임의의 적합한 디스플레이 유닛을 포함할 수 있다. I/O 디바이스(1106)는 모바일 컴퓨팅 디바이스에 정보를 입력하기 위한 임의의 적합한 I/O 디바이스를 포함할 수 있다. 예컨대, I/O 디바이스(1106)는 알파뉴메릭 키보드, 숫자 키보드, 터치 패드, 입력 키, 버튼, 스위치, 라커(rocker) 스위치, 마이크로폰, 스피커, 음성 인식 디바이스 및 소프트웨어, 등을 포함할 수 있다. 정보는 또한 마이크로폰에 의해 디바이스(1100)에 입력될 수 있다. 그런 정보는 음성 인식 디바이스에 의해 디지털화될 수 있다. 또한, 디바이스(1100)는 하나 이상의 카메라를 포함할 수 있다. 카메라는 MIPI(Mobile Industry Processor Interface) 연합(Alliance)에 의해 개발된 표준에 따라 디바이스의 프로세서와 인터페이스할 수 있다.
실시예 1
촬상 디바이스 커맨드를 번역하는 장치가 본원에서 설명된다. 이 장치는 번역 엔진을 형성하기 위해 코드 스토어로부터 번역 코드를 검색하는 로직 및 상기 번역 엔진 내의 촬상 디바이스 커맨드를 수신하는 로직을 포함한다. 이 장치는 또한 상기 번역 엔진을 사용하여 상기 촬상 디바이스 커맨드를 번역하는 로직, 및 번역된 촬상 디바이스 커맨드에 의해 요청된 행위를 유발하도록, 상기 촬상 디바이스에 상기 번역된 촬상 디바이스 커맨드를 전송하는 로직을 포함한다.
이 장치는 또한 수신된 커맨드가 상기 촬상 디바이스에 의해 원천적으로 지원디는지 여부를 판정하는 로직을 포함할 수 있다. 상기 번역 코드는 상기 촬상 디바이스 커맨드를 번역하기 위해 실행될 수 있다. 상기 코드 스토어는 상기 촬상 디바이스 내에 위치할 수 있고, 또는 상기 코드 스토어는 호스트 디바이스에 연결된 플랫폼 저장장치 내에 위치할 수 있다. 상기 번역 엔진은 상기 촬상 디바이스로부터 원격에 위치할 수 있다. 또한, 상기 번역 엔진은 인터포저 디바이스 상에 위치할 수 있으며, 상기 코드 스토어는 인터포저 디바이스, 호스트 디바이스, 센서, 또는 그들의 임의의 조합 중 적어도 하나에 위치할 수 있다. 상기 번역 엔진은 촬상 디바이스 커맨드를 CSI-3 속성 겟/셋 커맨드(Attribute Get/Set commands)로 번역할 수 있다. 또한, 상기 번역 엔진은 촬상 디바이스 커맨드를 CSI-2 레지스터 판독/기록 커맨드로 번역할 수 있다. 상기 번역 엔진은 또한 상기 촬상 디바이스에 의해 원천적으로 지원되지 않는 커맨드를 번역할 수 있다.
실시예 2
촬상 디바이스 커맨드를 번역하는 시스템이 본원에서 설명된다. 이 시스템은 호스트 디바이스, 상기 호스트 디바이스에 연결된 촬상 디바이스, 및 번역 엔진을 포함하는데, 상기 번역 엔진은 코드 스토어로부터 획득된 코드를 사용하여 생성되고, 상기 번역 엔진은 촬상 디바이스 커맨드를 촬상 디바이스-특정 커맨드로 번역하도록 구성된다.
상기 호스트 디바이스는 랩탑 컴퓨터, 데스크탑 컴퓨터, 태블릿 컴퓨터, 모바일 디바이스, 또는 서버, 또는 그들의 임의의 조합이 될 수 있다. 또한, 상기 촬상 디바이스 내의 임베딩된 프로세서 또는 시퀀서는 촬상 디바이스 커맨드를 번역하기 위해 사용될 수 있다. 상기 코드 스토어는 상기 호스트 디바이스 내에 위치할 수 있다. 또한, 상기 코드 스토어는 상기 촬상 디바이스 내에 위치할 수 있다. 상기 코드 스토어는 또한 호스트 디바이스에 연결된 플랫폼 저장장치 내에 위치할 수 있다. 상기 번역 엔진은 상기 촬상 디바이스로부터 원격에 위치할 수 있다. 상기 번역 엔진은 또한 촬상 디바이스 커맨드를 CSI-3 속성 겟/셋 커맨드로 번역할 수 있다. 또한, 상기 번역 엔진은, 번역된 촬상 디바이스 커맨드에 의해 요청된 행위를 유발하도록, 상기 촬상 디바이스에 상기 번역된 촬상 디바이스 커맨드를 전송하도록 구성될 수 있다. 또한, 번역 엔진은 상기 촬상 디바이스에 의해 원천적으로 지원되지 않는 커맨드를 번역하도록 구성될 수 있다. 상기 번역 코드는 런타임 해석형 언어 샌드박스(run-time interpreted language sandbox) 내에서 실행될 수 있다. 상기 번역 엔진은 또한 상기 호스트 디바이스 상에 위치할 수 있다.
실시예 3
촬상 디바이스 커맨드를 번역하는 컴퓨터 실행가능한 명령어를 갖는 유형의 비일시적 컴퓨터 판독가능한 저장 매체가 본원에서 설명된다. 이 명령어는, 컴퓨터로 하여금, 번역 엔진을 형성하기 위해 코드 스토어로부터 번역 코드를 검색하게 하고, 입력 촬상 디바이스 커맨드를 수신하게 한다. 이 명령어는 또한, 컴퓨터로 하여금, 상기 입력 촬상 디바이스 커맨드를 촬상 디바이스-특정 커맨드로 번역하게 하고, 및 상기 촬상 디바이스-특정 커맨드를 상기 컴퓨터에 연결된 촬상 디바이스로 전송하게 하는데, 상기 입력 촬상 디바이스 커맨드는 번역 수단에 의해 번역된다. 상기 번역 수단은 번역 엔진일 수 있으며, 상기 번역 수단은 상기 촬상 디바이스로부터 원격에 위치할 수 있다.
실시예 4
겟 앤드 셋 아키텍처(get and set architecture)에 기초하여 전송 메커니즘 내에서 커맨드를 실행하는 장치가 본원에서 설명된다. 이 장치는, 상기 커맨드의 속성 식별을 추출하는 로직과, 촬상 디바이스 내의 이미지 소스로부터 속성 값을 획득하기 위해 상기 속성 식별에 기초하여 호스트 디바이스로부터 상기 촬상 디바이스로 겟(get) 프로토콜 데이터 유닛(protocol data unit: PDU)을 전송하는 로직을 포함한다. 이 장치는 또한, 상기 커맨드의 실행을 완료하도록 상기 촬상 디바이스로부터 상기 호스트 디바이스로 응답 PDU를 전송하는 로직을 포함한다.
상기 촬상 디바이스의 센서는 상기 겟 PDU가 상기 호스트 디바이스로부터 상기 촬상 디바이스로 전송될 때 상기 커맨드를 실행할 수 있다. 또한, 상기 촬상 디바이스의 센서는 상기 겟 PDU가 차단없이 상기 호스트 디바이스로부터 상기 촬상 디바이스로 전송될 때 상기 커맨드를 실행할 수 있다. 상기 겟 PDU는 CSI-3 속성 패킷 내에 캡슐화되어 상기 촬상 디바이스로 전송될 수 있다. 상기 응답 PDU는 상기 촬상 디바이스 내의 이미지 소스로부터 획득된 속성 값을 포함할 수 있다. 상기 이미지 소스는 이미지 센서, 시스템 온 칩(system on a chip: SOC) 촬상 디바이스, 멀티칩 촬상 디바이스 모듈 또는 이미지 신호 프로세서(image signal processor: ISP)가 될 수 있다. 이 장치는 또한 상기 촬상 디바이스로부터 상기 호스트 디바이스로 통지 PDU를 전송하는 로직을 포함할 수 있는데, 상기 통지 PDU는 상기 커맨드로부터의 속성 식별에 기초한 속성 값을 포함하지 않는다. 또한, 이 장치는 상기 호스트 디바이스로부터 셋(set) PDU를 전송하는 로직을 포함할 수 있는데, 상기 셋 PDU는 상기 커맨드로부터의 속성 식별에 기초하여 상기 촬상 디바이스에 속성 값을 기록한다.
실시예 5
겟 앤드 셋 아키텍처에 기초하여 전송 메커니즘 내에서 커맨드를 실행하는 시스템이 본원에서 설명된다. 이 시스템은, 호스트 디바이스와, 상기 호스트 디바이스에 연결된 촬상 디바이스를 포함하는데, 상기 호스트 디바이스로부터 상기 촬상 디바이스로 겟 프로토콜 데이터 유닛(PDU)이 전송되고, 상기 겟 PDU는 상기 촬상 디바이스의 이미지 소스로부터의 속성 값에 대한 요청을 포함하고, 상기 커맨드의 실행을 완료하도록 상기 촬상 디바이스로부터 상기 호스트 디바이스로 응답 PDU가 전송된다.
상기 호스트 디바이스의 센서는 상기 겟 PDU가 상기 호스트 디바이스로부터 상기 촬상 디바이스로 전송될 때 상기 커맨드를 실행할 수 있다. 상기 촬상 디바이스의 센서는 상기 겟 PDU가 차단없이 상기 호스트 디바이스로부터 상기 촬상 디바이스로 전송될 때 상기 커맨드를 실행할 수 있다. 이미지 소스는 RAW 촬상 디바이스 센서, 시스템 인 칩(system in a chip) 촬상 디바이스, 멀티칩 촬상 디바이스 모듈 또는 이미지 신호 프로세서가 될 수 있다. 상기 촬상 디바이스로부터 상기 호스트 디바이스로 통지 PDU가 전송될 수 있는데, 상기 통지 PDU는 상기 커맨드로부터의 속성 식별에 기초한 속성 값을 포함하지 않는다. 상기 촬상 디바이스로부터 상기 호스트 디바이스로 셋 PDU가 전송될 수 있는데, 상기 셋 PDU는 상기 커맨드로부터의 속성 식별에 기초하여 상기 촬상 디바이스에 대해 속성 값을 판독하거나 기록한다.
실시예 6
겟 앤드 셋 아키텍처에 기초하여 전송 메커니즘 내에서 커맨드를 실행하는 컴퓨터 실행가능한 명령어를 갖는 유형의 비일시적 컴퓨터 판독가능한 저장 매체가 본원에서 설명된다. 상기 명령어는 컴퓨터로 하여금, 상기 커맨드의 속성 식별을 추출하게 하고, 촬상 디바이스 내의 이미지 소스로부터 속성 값을 획득하기 위해 상기 속성 식별에 기초하여 호스트 디바이스로부터 상기 촬상 디바이스로 겟 프로토콜 데이터 유닛(PDU)을 전송하게 한다. 상기 명령어는 또한 컴퓨터로 하여금, 상기 커맨드의 실행을 완료하도록 상기 촬상 디바이스로부터 상기 호스트 디바이스로 응답 PDU를 전송하게 한다.
상기 겟 PDU는 CSI-3 속성 패킷 내에 캡슐화되어 상기 촬상 디바이스로 전송될 수 있다. 상기 응답 PDU는 상기 촬상 디바이스 내의 이미지 소스로부터 획득된 속성 값을 포함할 수 있다. 상기 이미지 소스는 RAW 촬상 디바이스 센서, 시스템 인 칩 촬상 디바이스, 멀티칩 촬상 디바이스 모듈 또는 이미지 신호 프로세서가 될 수 있다. 또한, 상기 촬상 디바이스로부터 상기 호스트 디바이스로 통지 PDU가 전송될 수 있는데, 상기 통지 PDU는 상기 커맨드로부터의 속성 식별에 기초한 속성 값을 포함하지 않는다. 또한, 상기 촬상 디바이스로부터 상기 호스트 디바이스로 셋 PDU가 전송되고, 상기 셋 PDU는 상기 커맨드로부터의 속성 식별에 기초하여 상기 촬상 디바이스에 속성 값을 기록한다.
실시예 7
메타데이터 저장 서브시스템을 작동시키는 장치가 본원에서 설명된다. 이 장치는 이용가능한 메타데이터의 디렉토리를 생성하는 로직―상기 메타데이터는 다양한 시스템 데이터 스토어에 저장됨―과, 호스트 디바이스에 의해 요청된 바에 따라 메타데이터를 검색하는 로직을 포함한다. 이 장치는 또한, 상기 메타데이터를 상기 호스트 디바이스에 전송하는 로직과, 상기 메타데이터를 실행하는 로직을 포함한다.
상기 메타데이터를 검색하는 로직은, 상기 메타데이터를 포함하는 데이터 전송의 시작 어드레스를 나타내는 커맨드를 실행하는 것을 포함한다. 상기 호스트 디바이스는 상기 촬상 디바이스 상에 있는 메타데이터의 유형, 상기 메타데이터의 시작 어드레스 및 길이, 및 상기 메타데이터의 액세스 속성을 결정하기 위해 상기 디렉토리를 판독할 수 있다. 상기 메타데이터는 번역 코드, 캘리브레이션(calibration) 데이터, 튜닝 데이터, 촬상 디바이스 펌웨어, 또는 그들의 임의의 조합 중 적어도 하나를 포함할 수 있다. 또한, 상기 메타데이터를 검색하는 로직은 상기 메타데이터를 포함하는 데이터 전송의 시작 어드레스를 나타내는 커맨드를 실행하는 것을 포함할 수 있고, 상기 시작 어드레스는 CSI-3 속성 매핑에 대응한다. 또한, 상기 메타데이터는 카메라 커맨드 세트(camera command set: CCS) 번역 코드 블록일 수 있으며, 상기 호스트 디바이스는 상기 CCS 번역 코드 블록을 로딩하고 초기화할 수 있다.
실시예 8
메타데이터 저장 서브시스템을 작동시키는 시스템이 본원에서 설명된다. 이 시스템은, 호스트 디바이스와, 상기 호스트 디바이스에 연결된 촬상 디바이스와, 메타데이터 서브시스템을 포함한다. 상기 메타데이터 서브시스템 내의 이용가능한 메타데이터의 디렉토리가 생성되고, 상기 메타데이터는 상기 호스트 디바이스에 의해 요청된 바에 따라 검색된다. 상기 메타데이터는 또한 상기 호스트 디바이스를 사용하여 전송되고 실행된다.
상기 메타데이터를 검색하는 것은 상기 메타데이터를 포함하는 데이터 전송의 시작 어드레스를 나타내는 커맨드를 실행하는 것을 포함한다. 상기 호스트 디바이스는 상기 촬상 디바이스 상에 저장된 메타데이터의 유형, 상기 메타데이터의 시작 어드레스 및 길이, 및 상기 메타데이터의 액세스 속성을 결정하기 위해 상기 디렉토리를 판독할 수 있다. 또한, 상기 메타데이터는 번역 코드, 캘리브레이션 데이터, 튜닝 데이터, 촬상 디바이스 펌웨어, 또는 그들의 임의의 조합 중 적어도 하나를 포함할 수 있다. 상기 메타데이터를 검색하는 것은 상기 메타데이터를 포함하는 데이터 전송의 시작 어드레스를 나타내는 커맨드를 실행하는 것을 포함할 수 있고, 상기 시작 어드레스는 CSI-3 속성 매핑에 대응한다. 상기 메타데이터는 CCS 번역 코드 블록일 수 있으며, 상기 호스트 디바이스는 상기 CCS 번역 코드 블록을 로딩하고 초기화할 수 있다.
실시예 9
메타데이터 저장 서브시스템을 작동시키는 컴퓨터 실행가능한 명령어를 갖는 유형의 비일시적 컴퓨터 판독가능한 저장 매체가 본원에서 설명된다. 상기 명령어는 컴퓨터로 하여금 이용가능한 메타데이터의 디렉토리를 생성하게 하는데, 상기 메타데이터는 다양한 시스템 데이터 스토어에 저장된다. 상기 명령어는 또한 컴퓨터로 하여금, 호스트 디바이스에 의해 요청된 바와 같이 메타데이터를 검색하게 하고, 상기 메타데이터를 호스트 디바이스에 전송하게 하고, 상기 메타데이터를 실행하게 한다.
상기 메타데이터를 검색하는 것은, 상기 메타데이터를 포함하는 데이터 전송의 시작 어드레스를 나타내는 커맨드를 실행하는 것을 포함한다. 상기 호스트 디바이스는 상기 촬상 디바이스 상에 있는 메타데이터의 유형, 상기 메타데이터의 시작 어드레스 및 길이, 및 상기 메타데이터의 액세스 속성을 결정하기 위해 상기 디렉토리를 판독할 수 있다. 또한, 상기 메타데이터는 번역 코드, 캘리브레이션 데이터, 튜닝 데이터, 촬상 디바이스 펌웨어, 또는 그들의 임의의 조합 중 적어도 하나를 포함할 수 있다. 또한, 상기 메타데이터를 검색하는 것은 상기 메타데이터를 포함하는 데이터 전송의 시작 어드레스를 나타내는 커맨드를 실행하는 것을 포함할 수 있고, 상기 시작 어드레스는 CSI-3 속성 매핑에 대응한다. 또한, 상기 메타데이터는 CCS 번역 코드 블록일 수 있으며, 상기 호스트 디바이스는 상기 CCS 번역 코드 블록을 로딩하고 초기화할 수 있다.
실시예 10
하나 이상의 촬상 디바이스 커맨드를 번역하는 방법이 본원에서 설명된다. 이 방법은, 번역 코드를 검색하는 단계와, 하나 이상의 촬상 디바이스 커맨드를 수신하는 단계를 포함한다. 이 방법은 또한, 상기 하나 이상의 촬상 디바이스 커맨드를 상기 촬상 디바이스가 처리할 수 있는 하나 이상의 액세스로 번역하도록, 상기 번역 코드를 실행하는 단계와, 상기 하나 이상의 촬상 디바이스 커맨드에 의해 요청된 행위를 유발하도록 상기 하나 이상의 액세스를 상기 촬상 디바이스에 전송하는 단계를 포함한다.
상기 촬상 디바이스는 카메라를 포함할 수 있으며, 상기 하나 이상의 촬상 디바이스 커맨드는 하나 이상의 카메라 커맨드를 포함할 수 있다. 또한, 이 방법은 호스트 디바이스에서 구현될 수 있다. 또한, 이 방법은 호스트 소프트웨어에서 구현될 수 있다. 상기 번역 코드는 고-레벨 번역 코드일 수 있다. 상기 번역 코드는 또한 상기 촬상 디바이스 내에 위치한 저장장치로부터 검색될 수 있다. 상기 촬상 디바이스 내에 위치한 저장장치는 메타데이터 저장장치일 수 있다. 상기 번역 코드는 상기 촬상 디바이스 외부의 저장장치로부터 검색될 수 있다. 또한, 상기 촬상 디바이스 외부의 저장장치는 플랫폼 저장장치일 수 있다. 또한, 상기 촬상 디바이스 외부의 저장장치는 메타데이터 저장장치일 수 있다.
상기 촬상 디바이스가 처리할 수 있는 하나 이상의 액세스는 CSI-3 속성 겟/셋 패킷을 포함할 수 있다. 또한, 더 복잡한 커맨드가 더 간단한 커맨드로 번역될 수 있다. 더 복잡한 커맨드는 또한 CSI-3 속성 겟/셋 요청으로 번역될 수 있다. 이 방법은 또한, 상기 수신된 커맨드가 상기 촬상 디바이스에 의해 원천적으로 지원되는 것인지 여부를 판정하는 단계를 포함할 수 있다. 상기 번역 코드는 인터포저 디바이스, 호스트 디바이스, 센서, 또는 그들의 임의의 조합 중 적어도 하나에 저장될 수 있다. 상기 하나 이상의 촬상 디바이스 커맨드는 CSI-3 속성 겟/셋 커맨드로 번역될 수 있다. 또한, 상기 하나 이상의 촬상 디바이스 커맨드는 CSI-2 레지스터 판독/기록 커맨드로 번역될 수 있다. 상기 하나 이상의 번역된 촬상 디바이스 커맨드는 또한 상기 촬상 디바이스에 의해 원천적으로 지원되지 않는 커맨드일 수 있다.
실시예 11
하나 이상의 촬상 디바이스 커맨드를 번역하는 장치가 본원에서 설명된다. 이 장치는, 번역 코드를 검색하고, 하나 이상의 촬상 디바이스 커맨드를 수신하고, 상기 하나 이상의 촬상 디바이스 커맨드를 상기 촬상 디바이스가 처리할 수 있는 하나 이상의 액세스로 번역하도록, 상기 번역 코드를 실행하고, 상기 하나 이상의 촬상 디바이스 커맨드에 의해 요청된 행위를 유발하도록 상기 하나 이상의 액세스를 상기 촬상 디바이스에 전송하는 번역 엔진을 포함한다.
상기 촬상 디바이스는 카메라를 포함할 수 있으며, 상기 하나 이상의 촬상 디바이스 커맨드는 하나 이상의 카메라 커맨드를 포함한다. 또한, 상기 번역 엔진은 호스트 디바이스 내에 포함될 수 있다. 또한, 상기 번역 엔진은 호스트 소프트웨어를 포함할 수 있다. 상기 번역 코드는 고-레벨 번역 코드일 수 있다. 또한, 상기 번역 엔진은 상기 촬상 디바이스 내에 위치한 저장장치로부터 상기 번역 코드를 검색할 수 있다. 상기 촬상 디바이스 내에 위치한 저장장치는 메타데이터 저장장치일 수 있다. 또한, 상기 번역 엔진은 상기 촬상 디바이스 외부의 저장장치로부터 상기 번역 코드를 검색할 수 있다. 또한, 상기 촬상 디바이스 외부의 저장장치는 플랫폼 저장장치일 수 있다. 또한, 상기 촬상 디바이스 외부의 저장장치는 메타데이터 저장장치일 수 있다.
상기 촬상 디바이스가 처리할 수 있는 하나 이상의 액세스는 CSI-3 속성 겟/셋 패킷을 포함할 수 있다. 또한, 상기 번역 엔진은 더 복잡한 커맨드를 더 간단한 커맨드로 번역할 수 있다. 상기 번역 엔진은 또한 더 복잡한 커맨드를 CSI-3 속성 겟/셋 요청으로 번역할 수 있다. 상기 번역 엔진은 상기 수신된 커맨드가 상기 촬상 디바이스에 의해 원천적으로 지원되는 것인지 여부를 판정할 수 있다. 상기 번역 코드는 인터포저 디바이스, 호스트 디바이스, 센서, 또는 그들의 임의의 조합 중 적어도 하나에 저장될 수 있다. 상기 번역 엔진은 상기 하나 이상의 촬상 디바이스 커맨드를 CSI-3 속성 겟/셋 커맨드로 번역할 수 있다. 또한, 상기 번역 엔진은 상기 하나 이상의 촬상 디바이스 커맨드를 CSI-2 레지스터 판독/기록 커맨드로 번역할 수 있다. 또한, 상기 하나 이상의 번역된 촬상 디바이스 커맨드는 상기 촬상 디바이스에 의해 원천적으로 지원되지 않는 커맨드일 수 있다. 또한, 상기 번역 엔진은 호스트 내에 포함될 수 있고, 상기 장치는 상기 촬상 디바이스를 더 포함한다. 상기 장치는 또한 상기 번역 코드를 저장하는 저장 디바이스를 포함할 수 있다.
실시예 12
장치가 본원에서 설명된다. 이 장치는, 촬상 디바이스가 처리할 수 있는 하나 이상의 액세스를 수신하고 하나 이상의 촬상 디바이스 커맨드에 의해 요청된 행위를 수행하는 촬상 디바이스를 포함하는데, 상기 하나 이상의 액세스는 상기 하나 이상의 촬상 디바이스 커맨드의 번역에 대응하고, 상기 번역은 번역 코드를 사용하여 구현된다.
상기 촬상 디바이스는 카메라를 포함할 수 있으며, 상기 하나 이상의 촬상 디바이스 커맨드는 하나 이상의 카메라 커맨드를 포함한다. 번역 엔진은 상기 하나 이상의 촬상 디바이스 커맨드를 상기 하나 이상의 액세스로 번역할 수 있다. 상기 번역 엔진은 호스트 소프트웨어를 포함할 수 있다. 또한, 상기 번역 코드는 고-레벨 번역 코드일 수 있다. 상기 번역 엔진은 상기 촬상 디바이스 내에 위치한 저장장치로부터 상기 번역 코드를 검색할 수 있다. 상기 촬상 디바이스는 또한 상기 번역 코드를 저장하는 저장장치를 포함할 수 있다. 상기 저장장치는 메타데이터 저장장치일 수 있다. 또한, 상기 번역 엔진은 상기 촬상 디바이스 외부의 저장장치로부터 상기 번역 코드를 검색할 수 있다. 또한, 상기 촬상 디바이스 외부의 저장장치는 플랫폼 저장장치일 수 있다. 또한, 상기 촬상 디바이스 외부의 저장장치는 메타데이터 저장장치일 수 있다.
상기 촬상 디바이스가 처리할 수 있는 하나 이상의 액세스는 CSI-3 속성 겟/셋 패킷을 포함할 수 있다. 상기 번역 엔진은 더 복잡한 커맨드를 더 간단한 커맨드로 번역할 수 있다. 또한, 상기 번역 엔진은 또한 더 복잡한 커맨드를 CSI-3 속성 겟/셋 요청으로 번역할 수 있다. 상기 번역 엔진은 또한 상기 수신된 커맨드가 상기 촬상 디바이스에 의해 원천적으로 지원되는 것인지 여부를 판정할 수 있다. 또한, 상기 번역 코드는 인터포저 디바이스, 호스트 디바이스, 센서, 또는 그들의 임의의 조합 중 적어도 하나에 저장될 수 있다. 상기 번역 엔진은 상기 하나 이상의 촬상 디바이스 커맨드를 CSI-3 속성 겟/셋 커맨드로 번역할 수 있다. 상기 번역 엔진은 또한 상기 하나 이상의 촬상 디바이스 커맨드를 CSI-2 레지스터 판독/기록 커맨드로 번역할 수 있다. 상기 하나 이상의 번역된 촬상 디바이스 커맨드는 상기 촬상 디바이스에 의해 원천적으로 지원되지 않는 커맨드일 수 있다. 또한, 상기 장치는 또한 상기 번역 코드를 저장하는 저장 디바이스를 포함할 수 있다.
실시예 13
컴퓨터 실행가능한 명령어를 갖는 유형의 비일시적 컴퓨터 판독가능한 저장 매체가 본원에서 설명된다. 이 명령어는, 컴퓨터로 하여금, 번역 코드를 검색하게 하고, 하나 이상의 촬상 디바이스 커맨드를 수신하게 한다. 이 명령어는 또한, 컴퓨터로 하여금, 상기 하나 이상의 촬상 디바이스 커맨드를 상기 촬상 디바이스가 처리할 수 있는 하나 이상의 액세스로 번역하도록, 상기 번역 코드를 실행하게 하며, 상기 하나 이상의 촬상 디바이스 커맨드에 의해 요청된 행위를 유발하도록 상기 하나 이상의 액세스를 상기 촬상 디바이스에 전송하게 한다.
상기 촬상 디바이스는 카메라를 포함할 수 있으며, 상기 하나 이상의 촬상 디바이스 커맨드는 하나 이상의 카메라 커맨드를 포함한다. 또한, 상기 번역 코드는 고-레벨 번역 코드일 수 있다. 상기 촬상 디바이스가 처리할 수 있는 하나 이상의 액세스는 CSI-3 속성 겟/셋 패킷을 포함할 수 있다. 또한, 더 복잡한 커맨드가 더 간단한 커맨드로 번역될 수 있다. 또한, 더 복잡한 커맨드는 또한 CSI-3 속성 겟/셋 요청으로 번역될 수 있다. 상기 명령어는 또한, 컴퓨터로 하여금, 상기 수신된 커맨드가 상기 촬상 디바이스에 의해 원천적으로 지원되는 것인지 여부를 판정하게 할 수 있다. 상기 명령어는 또한, 컴퓨터로 하여금, 상기 하나 이상의 촬상 디바이스 커맨드를 CSI-3 속성 겟/셋 커맨드로 번역하게 할 수 있다. 또한, 상기 명령어는, 컴퓨터로 하여금, 상기 하나 이상의 촬상 디바이스 커맨드를 CSI-2 레지스터 판독/기록 커맨드로 번역하게 할 수 있다.
상기 하나 이상의 번역된 촬상 디바이스 커맨드는 또한 상기 촬상 디바이스에 의해 원천적으로 지원되지 않는 커맨드일 수 있다. 상기 명령어는, 컴퓨터로 하여금, 하나 이상의 촬상 디바이스 커맨드를 촬상 디바이스가 처리할 수 있는 하나 이상의 액세스로 번역하게 할 수 있다. 상기 촬상 디바이스는 카메라를 포함할 수 있으며, 상기 하나 이상의 촬상 디바이스 커맨드는 하나 이상의 카메라 커맨드를 포함한다. 또한, 상기 촬상 디바이스가 처리할 수 있는 하나 이상의 액세스는 CSI-3 속성 겟/셋 패킷을 포함할 수 있다. 또한, 상기 명령어는, 컴퓨터로 하여금, 더 복잡한 커맨드를 더 간단한 커맨드로 번역하게 할 수 있다. 상기 명령어는 또한, 컴퓨터로 하여금, 더 복잡한 커맨드를 CSI-3 속성 겟/셋 요청으로 번역하게 할 수 있다. 또한, 상기 명령어는, 컴퓨터로 하여금, 상기 수신된 커맨드가 상기 촬상 디바이스에 의해 원천적으로 지원되는 것인지 여부를 판정하게 할 수 있다. 또한, 상기 명령어는, 컴퓨터로 하여금, 상기 하나 이상의 촬상 디바이스 커맨드를 CSI-3 속성 겟/셋 커맨드로 번역하게 할 수 있다. 또한, 상기 명령어는, 컴퓨터로 하여금, 상기 하나 이상의 촬상 디바이스 커맨드를 CSI-2 레지스터 판독/기록 커맨드로 번역하게 할 수 있다.
실시예 14
커맨드 전송을 사용하여 커맨드를 실행하는 장치가 본원에서 설명된다. 이 장치는 속성 패킷 내에 캡슐화되는 커맨드의 프로토콜 데이터 유닛을 캡슐화하는 제어기를 포함한다. 상기 제어기는 또한 캡슐화된 프로토콜 데이터 유닛을 촬상 디바이스로 전송하고, 상기 커맨드를 완료하기 위해 상기 촬상 디바이스로부터 응답 프로토콜 데이터 유닛으로 상태 값을 수신한다.
촬상 디바이스는 카메라를 포함할 수 있으며, 상기 커맨드는 카메라 커맨드일 수 있다. 또한, 상기 커맨드는 CSI-3 속성에 대응할 수 있다. 또한, 상기 프로토콜 데이터 유닛은 겟 프로토콜 데이터 유닛일 수 있다. 상기 장치는 호스트 디바이스를 포함할 수 있다. 또한, 상기 제어기는 상기 커맨드의 속성 식별을 추출할 수 있으며, 상기 제어기는 상기 속성 식별에 기초하여 상기 프로토콜 데이터 유닛을 전송할 수 있다. 상기 촬상 디바이스의 센서는 상기 프로토콜 데이터 유닛이 상기 촬상 디바이스에 전송될 때 상기 커맨드를 실행할 수 있다. 또한, 상기 촬상 디바이스의 센서는 상기 프로토콜 데이터 유닛이 차단없이 상기 촬상 디바이스로 전송될 때 상기 커맨드를 실행할 수 있다. 상기 제어기는 상기 프로토콜 데이터 유닛을 CSI-3 속성 패킷으로 캡슐화하여 그것을 상기 촬상 디바이스로 전송할 수 있다. 또한, 상기 응답 프로토콜 데이터 유닛은 상기 촬상 디바이스 내의 이미지 소스로부터 획득된 속성 값을 포함할 수 있다. 또한, 상기 제어기는 상기 이미지 디바이스의 이미지 소스로부터 속성 값을 획득할 수 있다. 상기 이미지 소스는 이미지 센서, SOC 촬상 디바이스, 멀티칩 촬상 디바이스 모듈 또는 ISP일 수 있다. 상기 제어기는 또한 상기 촬상 디바이스로부터 통지 프로토콜 데이터 유닛을 수신할 수 있는데, 상기 통지 프로토콜 데이터 유닛은 상기 커맨드로부터의 속성 식별에 기초한 속성 값을 포함하지 않는다. 또한, 상기 제어기는 셋 프로토콜 데이터 유닛을 상기 촬상 디바이스로 전송할 수 있는데, 상기 셋 프로토콜 데이터 유닛은 상기 커맨드로부터의 속성 식별에 기초하여 상기 촬상 디바이스에 속성 값을 기록하기 위한 것이다.
실시예 15
커맨드 전송을 사용하여 커맨드를 실행하는 촬상 디바이스가 본원에서 설명된다. 이 촬상 디바이스는, 속성 패킷 내에 캡슐화된 커맨드의 프로토콜 데이터 유닛을 수신하고 상기 커맨드를 완료하기 위해 프로토콜 데이터에 응답하여 상태 값을 반환하는 제어기를 포함한다.
상기 프로토콜 데이터 유닛은 호스트 디바이스로부터 검색될 수 있으며, 상기 응답 프로토콜 데이터 유닛은 상기 호스트 디바이스로 전송된다. 상기 촬상 디바이스는 카메라를 포함할 수 있으며, 상기 커맨드는 카메라 커맨드일 수 있다. 또한, 상기 커맨드는 CSI-3 속성에 대응할 수 있다. 수신된 프로토콜 데이터 유닛은 겟 프로토콜 데이터 유닛일 수 있다. 또한, 수신된 프로토콜 데이터 유닛은 상기 커맨드로부터 추출된 속성 식별에 기초할 수 있다. 상기 촬상 디바이스는 또한 상기 프로토콜 데이터 유닛이 수신될 때 상기 커맨드를 실행하는 센서를 포함할 수 있다. 또한, 상기 촬상 디바이스는 상기 프로토콜 데이터 유닛이 차단없이 수신될 때 상기 커맨드를 실행하는 센서를 포함할 수 있다. 또한, 상기 수신된 프로토콜 데이터 유닛은 CSI-3 속성 패킷으로 캡슐화될 수 있다. 상기 촬상 디바이스는 또한 이미지 소스를 포함할 수 있는데, 상기 응답 프로토콜 데이터 유닛은 상기 이미지 소스로부터 획득된 속성 값을 포함한다. 상기 이미지 소스는 이미지 센서, SOC 촬상 디바이스, 멀티칩 촬상 디바이스 모듈 또는 ISP일 수 있다. 상기 이미지 소스는 또한, RAW 촬상 디바이스 센서, 시스템 온 칩 촬상 디바이스, 멀티칩 촬상 디바이스 모듈 또는 이미지 신호 프로세서일 수 있다. 상기 제어기는 또한 통지 프로토콜 데이터 유닛을 전송할 수 있는데, 상기 통지 프로토콜 데이터 유닛은 상기 커맨드로부터의 속성 식별에 기초한 속성 값을 포함하지 않는다. 또한, 상기 제어기는 셋 프로토콜 데이터 유닛을 수신하고, 상기 커맨드로부터의 속성 식별에 기초한 속성 값을 기록할 수 있다.
실시예 16
커맨드 전송을 사용하여 커맨드를 실행하는 시스템이 본원에서 설명된다. 이 시스템은, 속성 패킷 내에 캡슐화되는 커맨드의 프로토콜 데이터 유닛을 캡슐화하고 캡슐화된 프로토콜 데이터 유닛을 전송하며, 상기 커맨드를 완료하기 위해 상기 촬상 디바이스로부터 응답 프로토콜 데이터 유닛으로 상태 값을 수신하는 제어기를 갖는 호스트를 포함한다. 이 시스템은 또한 촬상 디바이스를 포함하며, 상기 촬상 디바이스는, 상기 호스트로부터 상기 캡슐화된 프로토콜 데이터 유닛을 수신하고 상기 커맨드를 완료하기 위해 상기 응답 프로토콜 데이터 유닛으로 상기 호스트에 상태 값을 반환하는 다른 제어기를 포함한다.
촬상 디바이스는 카메라를 포함할 수 있으며, 상기 커맨드는 카메라 커맨드일 수 있다. 또한, 상기 커맨드는 CSI-3 속성에 대응할 수 있다. 상기 프로토콜 데이터 유닛은 겟 프로토콜 데이터 유닛일 수 있다. 또한, 상기 호스트 제어기는 상기 커맨드의 속성 식별을 추출하고, 상기 속성 식별에 기초하여 상기 프로토콜 데이터 유닛을 전송할 수 있다. 상기 촬상 디바이스는 또한 상기 프로토콜 데이터유닛이 상기 촬상 디바이스에 전송될 때 상기 커맨드를 실행하는 센서를 포함할 수 있다. 또한, 상기 촬상 디바이스는 상기 프로토콜 데이터 유닛이 차단없이 상기 촬상 디바이스로 전송될 때 상기 커맨드를 실행하는 센서를 포함할 수 있다. 상기 호스트 제어기는 상기 프로토콜 데이터 유닛을 CSI-3 속성 패킷으로 캡슐화하여 그것을 상기 촬상 디바이스로 전송할 수 있다. 상기 촬상 디바이스는 이미지 소스를 포함할 수 있는데, 상기 응답 프로토콜 데이터 유닛은 상기 이미지 소스로부터 획득된 속성 값을 포함한다. 또한, 상기 촬상 디바이스는 이미지 소스를 포함할 수 있으며, 상기 호스트 제어기는 상기 이미지 소스로부터 속성 값을 획득할 수 있다. 상기 이미지 소스는 이미지 센서, SOC 촬상 디바이스, 멀티칩 촬상 디바이스 모듈 또는 ISP일 수 있다. 상기 이미지 소스는 또한, RAW 촬상 디바이스 센서, 시스템 온 칩 촬상 디바이스, 멀티칩 촬상 디바이스 모듈 또는 이미지 신호 프로세서일 수 있다. 상기 이미지 디바이스의 제어기는 또한 통지 프로토콜 데이터 유닛을 상기 호스트로 전송할 수 있는데, 상기 통지 프로토콜 데이터 유닛은 상기 커맨드로부터의 속성 식별에 기초한 속성 값을 포함하지 않는다. 또한, 상기 호스트의 제어기는 셋 프로토콜 데이터 유닛을 상기 촬상 디바이스로 전송할 수 있는데, 상기 셋 프로토콜 데이터 유닛은 상기 커맨드로부터의 속성 식별에 기초하여 상기 촬상 디바이스에 속성 값을 기록하기 위한 것이다.
실시예 17
장치가 본원에서 설명된다. 이 장치는, 촬상 디바이스 메타데이터를 체계화하는 블로브 내에 포함된 이용가능한 블로브를 식별하고, 식별된 블로브에 응답하여 상기 촬상 디바이스 메타데이터를 체계화하는 블로브 내에 포함된 개별 블로브를 페치하고, 페치된 개별 블로브를 실행하는 호스트 제어기를 포함한다.
상기 촬상 디바이스 메타데이터는 카메라 메타데이터를 포함할 수 있다. 상기 호스트 제어기는 또한 이용가능한 메타데이터의 디렉토리를 생성할 수 있으며, 상기 메타데이터는 다양한 시스템 데이터 스토어에 저장될 수 있다. 상기 호스트 제어기는 또한 상기 촬상 디바이스 메타데이터를 검색할 수 있다. 또한, 상기 호스트 제어기는 상기 촬상 디바이스 메타데이터를 실행할 수 있다. 상기 촬상 디바이스 메타데이터의 검색은 상기 촬상 디바이스 메타데이터를 포함하는 데이터 전송의 시작 어드레스를 나타내는 커맨드를 실행하는 것을 포함할 수 있다. 또한, 상기 호스트 제어기는 촬상 디바이스 상에 있는 메타데이터의 유형, 상기 메타데이터의 시작 어드레스 및 길이, 상기 메타데이터의 액세스 속성을 결정하기 위해 디렉토리를 판독할 수 있다. 촬상 디바이스 메타데이터는 번역 코드, 캘리브레이션 데이터, 튜닝 데이터, 촬상 디바이스 펌웨어, 또는 그들의 임의의 조합 중 적어도 하나를 포함할 수 있다. 또한, 상기 촬상 디바이스 메타데이터의 검색은 상기 메타데이터를 포함하는 데이터 전송의 시작 어드레스를 나타내는 커맨드를 실행하는 것을 포함할 수 있으며, 상기 시작 어드레스는 CSI-3 속성 매핑에 대응할 수 있다. 상기 촬상 디바이스 메타데이터는 카메라 커맨드 세트 번역 코드 블록을 포함할 수 있으며, 상기 호스트 프로세서는 상기 카메라 커맨드 세트 번역 코드 블록을 로딩하고 초기화할 수 있다.
실시예 18
장치가 본원에서 설명된다. 이 장치는, 촬상 디바이스 메타데이터를 식별하고, 식별된 촬상 디바이스 메타데이터를 페치하고, 페치된 촬상 디바이스 메타데이터를 실행하는 호스트 제어기를 포함한다.
상기 촬상 디바이스 메타데이터는 카메라 메타데이터를 포함할 수 있다. 또한, 상기 호스트 제어기는 이용가능한 메타데이터의 디렉토리를 생성할 수 있는데, 상기 메타데이터는 다양한 시스템 데이터 스토어에 저장될 수 있다. 상기 호스트 제어기는 또한 상기 촬상 디바이스 메타데이터를 포함하는 데이터 전송의 시작 어드레스를 나타내는 커맨드를 실행함으로써 상기 촬상 디바이스 메타데이터를 페치할 수 있다. 또한, 상기 호스트 제어기는 촬상 디바이스 상에 있는 메타데이터의 유형, 상기 메타데이터의 시작 어드레스 및 길이, 상기 메타데이터의 액세스 속성을 결정하기 위해 디렉토리를 판독할 수 있다. 촬상 디바이스 메타데이터는 번역 코드, 캘리브레이션 데이터, 튜닝 데이터, 촬상 디바이스 펌웨어, 또는 그들의 임의의 조합 중 적어도 하나를 포함할 수 있다. 상기 호스트 제어기는 상기 메타데이터를 포함하는 데이터 전송의 시작 어드레스를 나타내는 커맨드를 실행함으로써 상기 촬상 디바이스 메타데이터를 페치할 수 있는데, 상기 시작 어드레스는 CSI-3 속성 매핑에 대응한다. 상기 촬상 디바이스 메타데이터는 카메라 커맨드 세트 번역 코드 블록을 포함할 수 있는데, 상기 호스트 프로세서는 상기 카메라 커맨드 세트 번역 코드 블록을 로딩하고 초기화한다.
본 발명은 다양한 수정 및 대안적 형태가 가능하며, 전술된 예시적 실시예들은 단지 예로써 제시된 것이다. 본 발명은 본원에 설명된 특정 실시예로 제한하기 위해 의도된 것이 아님이 이해되어야 한다. 사실, 본 발명은 첨부된 특허청구범위의 진정한 정신 및 범위에 속하는 모든 대안, 수정 및 등가물을 포함한다. 또한, 일 실시예로부터의 소자들 또는 특징들은 임의 개수의 다른 실시예와 결합되어 사용될 수 있다.
전술된 실시예들의 세부사항들은 하나 이상의 실시형태의 어디서든 사용될 수 있음이 이해되어야 한다. 예컨대, 전술된 컴퓨팅 디바이스, 장치 또는 시스템의 모든 선택적 특징은 본원에서 설명된 방법 또는 컴퓨터 판독가능한 매체에 대해 구현될 수도 있다. 또한, 본원에서는 실시형태들의 설명을 위해 흐름도 및/또는 상태도가 사용되었지만, 본 발명은 본원에서의 그런 도면 또는 대응하는 설명에 제한되지 않는다. 예컨대, 흐름은 각각이 도시된 박스 또는 상태를 통해 이동하거나 본원에서 도시되고 설명된 것과 정확히 동일한 순서로 이동할 필요가 없다.
본 발명은 본원에 나열된 특정 세부사항에 제한되지 않는다. 사실, 본 개시의 이익을 갖는 당업자는 본 발명의 범위내에서 전술된 설명 및 도면으로부터의 많은 다른 변형들이 이루어질 수 있음을 인식할 것이다. 따라서, 다음의 특허청구범위는 본 발명의 범위를 정의하는 임의의 수정을 포함하는 것이다.

Claims (18)

  1. 촬상 디바이스 메타데이터를 체계화하는(organize) 블로브(blobs)에 포함된 이용가능한 블로브를 식별하고, 상기 식별된 블로브에 응답하여 상기 촬상 디바이스 메타데이터를 체계화하는 블로브에 포함된 개별 블로브를 페치하고(fetch), 상기 페치된 개별 블로브를 실행하는 호스트 제어기를 포함하되,
    적어도 하나의 블로브는 카메라 커맨드 세트(Camera Command Set: CCS)를 지원하는 것이고,
    상기 CCS는, 상기 호스트 제어기로 하여금 임의의 카메라 구성과 인터페이스할 수 있게 하고 또한 상기 임의의 카메라 구성(configuration)을 지원하고 인증(validate)할 수 있게 하는
    장치.
  2. 제 1 항에 있어서,
    상기 촬상 디바이스 메타데이터는 카메라 메타데이터를 포함하는
    장치.
  3. 제 1 항에 있어서,
    상기 호스트 제어기는 또한 이용가능한 메타데이터의 디렉토리를 생성하고, 상기 메타데이터는 다양한 시스템 데이터 스토어에 저장되는
    장치.
  4. 제 1 항에 있어서,
    상기 호스트 제어기는 또한 상기 촬상 디바이스 메타데이터를 검색하는
    장치.
  5. 제 1 항에 있어서,
    상기 호스트 제어기는 또한 상기 촬상 디바이스 메타데이터를 실행하는
    장치.
  6. 제 4 항에 있어서,
    상기 촬상 디바이스 메타데이터의 검색은 상기 촬상 디바이스 메타데이터를 포함하는 데이터 전송의 시작 어드레스를 나타내는 커맨드를 실행하는 것을 포함하는
    장치.
  7. 제 1 항에 있어서,
    상기 호스트 제어기는 또한 촬상 디바이스 상에 있는 메타데이터의 유형, 상기 메타데이터의 시작 어드레스 및 길이, 상기 메타데이터의 액세스 속성을 결정하기 위해 디렉토리를 판독하는
    장치.
  8. 제 1 항에 있어서,
    상기 촬상 디바이스 메타데이터는, 번역 코드, 캘리브레이션 데이터, 튜닝 데이터, 촬상 디바이스 펌웨어, 또는 그들의 임의의 조합 중 적어도 하나를 포함하는
    장치.
  9. 제 4 항에 있어서,
    상기 촬상 디바이스 메타데이터의 검색은 상기 메타데이터를 포함하는 데이터 전송의 시작 어드레스를 나타내는 커맨드를 실행하는 것을 포함하고, 상기 시작 어드레스는 CSI-3 속성 매핑에 대응하는
    장치.
  10. 제 1 항에 있어서,
    상기 촬상 디바이스 메타데이터는 카메라 커맨드 세트 번역 코드 블록을 포함하고, 상기 호스트 제어기는 상기 카메라 커맨드 세트 번역 코드 블록을 로딩하고 초기화하는
    장치.
  11. 촬상 디바이스 메타데이터를 식별하고, 상기 식별된 촬상 디바이스 메타데이터를 페치하고, 상기 페치된 촬상 디바이스 메타데이터를 실행하는 호스트 제어기를 포함하되,
    카메라 커맨드 세트(Camera Command Set: CCS)는, 커맨드가 상기 메타데이터를 관리하는 것을 가능하게 하며, 상기 호스트 제어기로 하여금 임의의 카메라 구성과 인터페이스할 수 있게 하고 또한 상기 임의의 카메라 구성을 지원하고 인증(validate)할 수 있게 하는
    장치.
  12. 제 11 항에 있어서,
    상기 촬상 디바이스 메타데이터는 카메라 메타데이터를 포함하는
    장치.
  13. 제 11 항에 있어서,
    상기 호스트 제어기는 또한 이용가능한 메타데이터의 디렉토리를 생성하고, 상기 메타데이터는 다양한 시스템 데이터 스토어에 저장되는
    장치.
  14. 제 11 항에 있어서,
    상기 호스트 제어기는 또한 상기 촬상 디바이스 메타데이터를 포함하는 데이터 전송의 시작 어드레스를 나타내는 커맨드를 실행함으로써 상기 촬상 디바이스 메타데이터를 페치하는
    장치.
  15. 제 11 항에 있어서,
    상기 호스트 제어기는 또한 촬상 디바이스 상에 있는 메타데이터의 유형, 상기 메타데이터의 시작 어드레스 및 길이, 상기 메타데이터의 액세스 속성을 결정하기 위해 디렉토리를 판독하는
    장치.
  16. 제 11 항에 있어서,
    상기 촬상 디바이스 메타데이터는, 번역 코드, 캘리브레이션 데이터, 튜닝 데이터, 촬상 디바이스 펌웨어, 또는 그들의 임의의 조합 중 적어도 하나를 포함하는
    장치.
  17. 제 11 항에 있어서,
    상기 호스트 제어기는 상기 메타데이터를 포함하는 데이터 전송의 시작 어드레스를 나타내는 커맨드를 실행함으로써 상기 촬상 디바이스 메타데이터를 페치하고, 상기 시작 어드레스는 CSI-3 속성 매핑에 대응하는
    장치.
  18. 제 11 항에 있어서,
    상기 촬상 디바이스 메타데이터는 카메라 커맨드 세트 번역 코드 블록을 포함하고, 상기 호스트 제어기는 상기 카메라 커맨드 세트 번역 코드 블록을 로딩하고 초기화하는
    장치.
KR1020157030697A 2012-12-27 2013-06-19 메타데이터 저장 서브시스템의 작동 KR101654053B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/728,924 2012-12-27
US13/728,924 US9686460B2 (en) 2012-12-27 2012-12-27 Enabling a metadata storage subsystem
PCT/US2013/046465 WO2014105139A1 (en) 2012-12-27 2013-06-19 Enabling a metadata storage subsystem

Related Parent Applications (1)

Application Number Title Priority Date Filing Date
KR1020157013927A Division KR101691760B1 (ko) 2012-12-27 2013-06-19 메타데이터 저장 서브시스템의 작동

Publications (2)

Publication Number Publication Date
KR20150123977A KR20150123977A (ko) 2015-11-04
KR101654053B1 true KR101654053B1 (ko) 2016-09-05

Family

ID=51016777

Family Applications (2)

Application Number Title Priority Date Filing Date
KR1020157030697A KR101654053B1 (ko) 2012-12-27 2013-06-19 메타데이터 저장 서브시스템의 작동
KR1020157013927A KR101691760B1 (ko) 2012-12-27 2013-06-19 메타데이터 저장 서브시스템의 작동

Family Applications After (1)

Application Number Title Priority Date Filing Date
KR1020157013927A KR101691760B1 (ko) 2012-12-27 2013-06-19 메타데이터 저장 서브시스템의 작동

Country Status (6)

Country Link
US (2) US9686460B2 (ko)
EP (2) EP3086224A1 (ko)
JP (2) JP2016507796A (ko)
KR (2) KR101654053B1 (ko)
CN (2) CN104798065A (ko)
WO (1) WO2014105139A1 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9244694B2 (en) 2012-12-27 2016-01-26 Intel Corporation Executing a command within a transport mechanism based on a get and set architecture
US9686460B2 (en) 2012-12-27 2017-06-20 Intel Corporation Enabling a metadata storage subsystem
JP2015220693A (ja) * 2014-05-20 2015-12-07 キヤノン株式会社 撮像装置、撮像システム、及びそれらの制御方法、ならびにプログラム
EP3236668A1 (en) * 2016-04-18 2017-10-25 ABB Schweiz AG Method and system for reproducing an instrument`s calibration certificate
US20180027174A1 (en) * 2016-07-19 2018-01-25 Qualcomm Incorporated Signaling camera configuration changes using metadata defined for a camera command set
EP3445045A1 (en) * 2017-08-18 2019-02-20 NXP USA, Inc. Video device and method for embedded data capture on a virtual channel
KR20190020552A (ko) 2017-08-21 2019-03-04 (주)원지리정보 고해상도 위성영상 메타데이터를 이용한 영상변환 일괄처리방법
KR102391480B1 (ko) 2017-11-06 2022-04-29 삼성디스플레이 주식회사 디스플레이 구동 집적 회로 및 이를 포함하는 디스플레이 장치

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003230038A (ja) 2002-01-02 2003-08-15 Hewlett Packard Co <Hp> デジタルカメラのための代用品による遠隔制御システムおよび方法
JP2006222530A (ja) 2005-02-08 2006-08-24 Canon Inc デジタルカメラ

Family Cites Families (27)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3387466B2 (ja) 1999-03-19 2003-03-17 セイコーエプソン株式会社 データ通信装置
EP1249002B1 (en) 2000-01-13 2011-03-16 Digimarc Corporation Authenticating metadata and embedding metadata in watermarks of media signals
US6629104B1 (en) * 2000-11-22 2003-09-30 Eastman Kodak Company Method for adding personalized metadata to a collection of digital images
JP4236830B2 (ja) 2001-07-09 2009-03-11 株式会社ルネサステクノロジ アップロード機能付き記憶装置
GB2378275B (en) * 2001-07-31 2005-06-22 Hewlett Packard Co Distributed metadata processing system
US7929808B2 (en) 2001-10-30 2011-04-19 Hewlett-Packard Development Company, L.P. Systems and methods for generating digital images having image meta-data combined with the image data
US7433546B2 (en) 2004-10-25 2008-10-07 Apple Inc. Image scaling arrangement
US7164907B2 (en) * 2004-01-13 2007-01-16 Qualcomm Inc. Automated over the air plug-in device recognition and software driver download
JP2005260648A (ja) * 2004-03-12 2005-09-22 Matsushita Electric Ind Co Ltd 記録再生装置、およびその制御システム
JP2007208526A (ja) 2006-01-31 2007-08-16 Canon Inc 画像処理装置及びその制御方法
JP5170961B2 (ja) * 2006-02-01 2013-03-27 ソニー株式会社 画像処理システム、画像処理装置および方法、プログラム、並びに記録媒体
WO2007131132A2 (en) * 2006-05-03 2007-11-15 Voxant, Inc. System and method for collecting and distributing content
JP5037862B2 (ja) 2006-06-14 2012-10-03 キヤノン株式会社 情報処理装置及び方法、並びにプログラム
US20080033919A1 (en) * 2006-08-04 2008-02-07 Yan Arrouye Methods and systems for managing data
US8223796B2 (en) 2008-06-18 2012-07-17 Ati Technologies Ulc Graphics multi-media IC and method of its operation
US7990992B2 (en) 2008-06-19 2011-08-02 Nokia Corporation Electronically configurable interface
WO2010042703A2 (en) * 2008-10-09 2010-04-15 Hillcrest Laboratories, Inc. Methods and systems for analyzing parts of an electronic file
JP2011024097A (ja) * 2009-07-17 2011-02-03 Canon Inc 撮像装置、撮影処理方法及びプログラム
US8937930B2 (en) 2009-11-19 2015-01-20 Qualcomm, Incorporated Virtual peripheral hub device and system
US8896668B2 (en) * 2010-04-05 2014-11-25 Qualcomm Incorporated Combining data from multiple image sensors
US9001227B2 (en) * 2010-04-05 2015-04-07 Qualcomm Incorporated Combining data from multiple image sensors
US20110292221A1 (en) * 2010-05-26 2011-12-01 Micorsoft Corporation Automatic camera
US8823856B2 (en) * 2010-10-12 2014-09-02 Blackberry Limited Convergence feedback indicator, provided when taking a picture in a camera application
CA2819225A1 (en) 2010-11-29 2012-06-07 Mce-Sys Ltd Host device coupled to a usb peripheral and method of operating the same
US20130179402A1 (en) * 2012-01-09 2013-07-11 International Business Machines Corporation Defining and Detecting Bundle Information in Databases
US20140119463A1 (en) * 2012-10-29 2014-05-01 Texas Instruments Incorporated Scalable Multifunction Serial Link Interface
US9686460B2 (en) 2012-12-27 2017-06-20 Intel Corporation Enabling a metadata storage subsystem

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003230038A (ja) 2002-01-02 2003-08-15 Hewlett Packard Co <Hp> デジタルカメラのための代用品による遠隔制御システムおよび方法
JP2006222530A (ja) 2005-02-08 2006-08-24 Canon Inc デジタルカメラ

Also Published As

Publication number Publication date
US20140184817A1 (en) 2014-07-03
JP2016507796A (ja) 2016-03-10
KR20150079847A (ko) 2015-07-08
KR101691760B1 (ko) 2016-12-30
US9667849B2 (en) 2017-05-30
WO2014105139A1 (en) 2014-07-03
JP2016029583A (ja) 2016-03-03
US9686460B2 (en) 2017-06-20
US20140184828A1 (en) 2014-07-03
EP3086224A1 (en) 2016-10-26
CN105227850B (zh) 2019-04-19
EP2939140A4 (en) 2016-10-12
KR20150123977A (ko) 2015-11-04
CN105227850A (zh) 2016-01-06
EP2939140A1 (en) 2015-11-04
CN104798065A (zh) 2015-07-22

Similar Documents

Publication Publication Date Title
US9906713B2 (en) Camera command set host command translation
KR101654053B1 (ko) 메타데이터 저장 서브시스템의 작동
US9600296B2 (en) Executing a command within a transport mechanism based on a get and set architecture
US20190155485A1 (en) Electronic device and method for sharing image with external device using image link information
CN114945019A (zh) 数据传输方法、装置及存储介质

Legal Events

Date Code Title Description
A107 Divisional application of patent
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant