KR101800702B1 - 가속된 카메라 제어 알고리즘을 위한 플랫폼 아키텍쳐 - Google Patents

가속된 카메라 제어 알고리즘을 위한 플랫폼 아키텍쳐 Download PDF

Info

Publication number
KR101800702B1
KR101800702B1 KR1020167034470A KR20167034470A KR101800702B1 KR 101800702 B1 KR101800702 B1 KR 101800702B1 KR 1020167034470 A KR1020167034470 A KR 1020167034470A KR 20167034470 A KR20167034470 A KR 20167034470A KR 101800702 B1 KR101800702 B1 KR 101800702B1
Authority
KR
South Korea
Prior art keywords
frame
values
isp
camera
control parameter
Prior art date
Application number
KR1020167034470A
Other languages
English (en)
Other versions
KR20170002601A (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 KR20170002601A publication Critical patent/KR20170002601A/ko
Application granted granted Critical
Publication of KR101800702B1 publication Critical patent/KR101800702B1/ko

Links

Images

Classifications

    • H04N5/232
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/57Mechanical or electrical details of cameras or camera modules specially adapted for being embedded in other devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/60Control of cameras or camera modules
    • H04N23/66Remote control of cameras or camera parts, e.g. by remote control devices
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/70Circuitry for compensating brightness variation in the scene
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/70Circuitry for compensating brightness variation in the scene
    • H04N23/73Circuitry for compensating brightness variation in the scene by influencing the exposure time
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N23/00Cameras or camera modules comprising electronic image sensors; Control thereof
    • H04N23/80Camera processing pipelines; Components thereof
    • H04N5/2257
    • H04N5/2353

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Studio Devices (AREA)

Abstract

하드 실시간 및 소프트 실시간 파트에 걸친 제어 책임을 분배하는 카메라 제어 아키텍쳐 및 방법. 디지털 카메라 제어 알고리즘의 동작은, 카메라 모듈(CM) 및/또는 이미지 신호 프로세싱(ISP) 파이프라인을 포함하는 디바이스 플랫폼 내의 다양한 시스템 사이에서 타이밍 변동에 덜 민감하게 만들어질 수 있다. 제어 파라미터 값의 실시간 디스패치는 제어 파라미터 값을 생성하는 것을 담당하는 컨트롤러로부터 오프로드될 수도 있다. 완화된 타이밍 요건에 의해, 카메라 제어 알고리즘 라이브러리는, CM 및/또는 ISP로의 제어 파라미터 값의 디스패치의 관리를 담당하는 하위 레벨 하드웨어와 무관하게, 개발될 수도 있다.

Description

가속된 카메라 제어 알고리즘을 위한 플랫폼 아키텍쳐{PLATFORM ARCHITECTURE FOR ACCELERATED CAMERA CONTROL ALGORITHMS}
본 출원은, 2014년 7월 10일자로 출원된, 발명의 명칭이 "PLATFORM ARCHITECTURE FOR ACCELERATED CAMERA CONTROL ALGORITHMS"인 미국 특허 출원 제14/327,933호에 대한 우선권을 주장하는데, 상기 출원은 참조에 의해 그 전체가 통합된다.
디지털 카메라는 상업적 전자 미디어 디바이스 플랫폼에 종종 포함되는 컴포넌트이다. 디지털 카메라는, 이제, 웨어러블 폼팩터(wearable form factor)(예를 들면, 비디오 캡쳐 이어피스, 비디오 캡쳐 헤드셋, 비디오 캡쳐 안경, 등등)로 이용가능할 뿐만 아니라, 스마트폰, 태블릿 컴퓨터, 및 노트북 컴퓨터 등등 내에 내장된다. 카메라 모듈(예를 들면, 카메라 센서 및 광학장치(optics))에 의해 수집되는 이미지 데이터를, 재생 및/또는 디스플레이에 적합한 값으로 변환하는 것은, 디바이스 플랫폼에 의해 구현되는 카메라 제어 알고리즘(camera control algorithms; CCA)에 대해 도전 과제를 제기한다. 예시적인 CCA 알고리즘은, 오토 화이트 밸런싱(automatic white balancing; AWB), 자동 초점(automatic focus; AF), 및 자동 노출 제어(automatic exposure control; AEC)를 포함하는데, 이들은 종종 함께 "3A" 제어로 칭해진다. AEC 및 AF는 카메라 모듈 하드웨어(camera module hardware; CM)의 제어를 수반하고, AWB는 CM의 이미지 신호 프로세싱(image signal processing; ISP) 파이프라인 다운스트림의 제어를 수반한다. 예시적인 CM 제어 파라미터는 어퍼쳐 사이즈, 셔터 속도, 감광(neutral density; ND) 필터 제어, 플래시 전력, 아날로그 이득(analog gain; AG), 디지털 이득 (digital gain; DG)을 포함한다. 예시적인 ISP 제어 파라미터는, 화이트 밸런싱 이득, 렌즈 음영 보정(lens shading correction; LSC) 이득 및 노이즈 억제를 포함한다.
고품질의 비디오 및 프리뷰는, 휘도 또는 다른 유사한 비디오 품질 인자의 빠르고, 부드럽고, 플리커가 없는(flicker-free) 수렴(convergence)을 필요로 한다. 따라서, 비디오 카메라 기능에 대한 디바이스 플랫폼 유저의 경험은, CCA에 의한 최적의 파라미터의 결정뿐만 아니라, 프레임의 시퀀스에 걸친 파라미터의 동적 제어에 의존할 수도 있다. 프레임 시퀀스는 플랫폼의 프리뷰 스크린 화면에 "라이브"로 표시될 수도 있고/있거나, 레코딩된 비디오로서 인코딩되고 저장될 수도 있다. AEC의 예에서, AEC 계산을 수행하는 3A 컨트롤러가 CM에 의한 이미지 데이터 프레임의 수집과 동기하여 CM 파라미터 값을 동적으로 업데이트할 수 없는 경우, 디지털 카메라 스크린의 휘도에서의 플리커 또는 점프가 프리뷰 스크린 또는 레코딩된 비디오에서 유저에게 보일 수도 있다.
CM, 또는 이미지 신호 프로세서가 이용할 수 있게 만들어진 파라미터 값 업데이트의 빈도가, 주어진 프레임 레이트를 수용하기에 충분하지 않으면, 슬립(slip)이 발생한다. 예를 들면, 다음 번 이미지 데이터 프레임이 CM에 의해 노출되기 이전에, 센서에 영향을 줄 신규의 레지스터 설정에 대해 CM 레지스터가 적시에 업데이트되지 않는 경우 슬립이 존재할 수도 있다. CM 파라미터 값 업데이트의 타이밍은 통상적으로 노출에 의해 제한되는데, 그 이유는 AG 또는 DG와 같은 파라미터가 노출 시간에 후속하여 변경될 수도 있기 때문이다. 타이밍 슬립이 존재하면, 다수의 프레임은 실효된(stale) 레지스터 상태를 가지고 노출될 수도 있고, 레지스터가 증분적 노출 시간 수렴의 이익을 갖지 않고 후속하여 업데이트되는 경우, 작성된 제어 파라미터 값은, 비디오 품질이 겪게 되는 이미지 데이터에서의 충분히 급격한 변경을 야기할 수도 있다. 3A 컨트롤러와 CM 또는 ISP 사이에서 슬립을 방지하는 것은, 더 높은 프레임 레이트 및 더 낮은 CCA 프로세서 소비 전력 제한을 향한 경향과 함께, 더욱더 어려워지고 있다.
따라서, 예를 들면 비디오 품질을 향상시키고 그에 의해 카메라 기능의 성능을 향상시키기 위해서는, 가속된 CCA에 대응할 수 있는 플랫폼 아키텍쳐 및 기술이 유익할 것이다.
본원에서 설명되는 내용(material)은 첨부의 도면에서 제한으로서가 아닌 예로서 예시된다. 예시의 간략화 및 명확화를 위해, 도면에서 예시되는 엘리먼트는 반드시 동일 축척으로 묘사되지는 않는다. 예를 들면, 몇몇 엘리먼트의 치수는 명확화를 위해 다른 엘리먼트에 비해 과장될 수도 있다. 또한, 적절하다고 간주되는 경우, 도면 부호는 대응하는 또는 유사한 엘리먼트를 나타내기 위해 도면 사이에서 반복된다. 도면에서:
도 1a는, 하나 이상의 실시형태에 따른, 가속된 CCA에 대한 분산형 카메라 컨트롤러 아키텍쳐를 예시하는 블록도이다;
도 1b는, 실시형태에 따른, 복수의 파라미터 값을 포함하는 3A+ 출력을 예시하는 데이터 도면이다;
도 2는, 하나 이상의 실시형태에 따른, 분산형 카메라 제어 파라미터 값 생성 및 디스패치(dispatch)를 예시하는 흐름도이다;
도 3은, 하나 이상의 실시형태에 따른, 분산형 카메라 제어 파라미터 생성 및 CM 레지스터로의 디스패치를 예시하는 데이터 흐름도이다;
도 4는, 하나 이상의 실시형태에 따른, 가속된 CCA에 대한 분산형 카메라 컨트롤러 아키텍쳐를 갖는 디바이스 플랫폼의 시스템 도면이다;
도 5는, 하나 이상의 실시형태에 따른, 분산형 카메라 제어 파라미터 값 생성 및 디스패치를 예시하는 흐름도이다;
도 6은, 하나 이상의 실시형태에 따른, 제어 파라미터 디스패치 로직을 예시하는 블록도이다;
도 7은, 하나 이상의 실시형태에 따른, 분산형 카메라 컨트롤러 아키텍쳐를 활용하는 예시적인 시스템의 도면이다; 그리고
도 8은, 하나 이상의 실시형태에 따라 배치되는, 예시적인 모바일 핸드셋 플랫폼의 도면이다.
하나 이상의 실시형태가 동봉된 도면을 참조로 설명된다. 특정 구성 및 배치예가 상세히 묘사되고 논의되지만, 이것은 단지 예시적인 목적을 위해서만 행해진다는 것이 이해되어야 한다. 관련 기술분야에서 숙련된 자는, 본 설명의 취지와 범위를 벗어나지 않고도 다른 구성 및 배치가 활용될 수도 있다는 것을 인식할 것이다. 본원에서 설명되는 기술 및/또는 배치가, 본원에서 설명된 것 이외의 다양한 다른 시스템 및 애플리케이션에서 또한 활용될 수도 있다는 것이, 관련 기술분야에서 숙련된 자에게는 명백할 것이다.
하기의 상세한 설명에서는 첨부의 도면에 대한 참조가 이루어지는데, 첨부의 도면은 본원의 일부를 형성하며 예시적인 실시형태를 예시한다. 청구되는 주제의 범위를 벗어나지 않으면서 다른 실시형태가 활용될 수도 있고 구조적 및/또는 논리적 변경이 이루어질 수도 있다는 것이 이해되어야 한다. 따라서, 하기의 상세한 설명은 제한적인 의미로 간주되지 않아야 하고 청구된 주제의 범위는 전적으로 첨부의 청구범위 및 그 등가물에 의해 정의된다.
하기의 설명에서, 다수의 상세가 개시되지만, 그러나, 실시형태는 이들 특정 상세 없이도 실시될 수도 있다는 것이 기술 분야의 숙련된 자에게는 명백할 것이다. 널리 공지된 방법 및 디바이스는, 더 중요한 양태를 모호하게 하는 것을 방지하기 위해, 상세하게 도시되는 대신, 블록도의 형태로 도시된다. 본 명세서 전반에 걸친 "한 실시형태" 또는 "일 실시형태"에 대한 언급은, 실시형태와 연계하여 설명되는 특정 피쳐, 구조, 기능, 또는 특성이 적어도 하나의 실시형태에 포함된다는 것을 의미한다. 따라서, 본 명세서 전체에 걸친 여러 곳에서의 어구 "한 실시형태에서" 또는 "일 실시형태에서"의 출현은 반드시 동일한 실시형태를 지칭하고 있는 것은 않는다. 또한, 실시형태의 맥락에서 설명되는 특정 피쳐, 구조, 기능, 또는 특성은 하나 이상의 실시형태에서 임의의 적절한 방식으로 결합될 수도 있다. 예를 들면, 제1 실시형태는 제2 실시형태와, 두 실시형태와 관련되는 특정한 피쳐, 구조, 기능, 또는 특성이 상호 배타적이지 않은 모든 곳에서, 결합될 수도 있다.
예시적인 실시형태의 설명 및 첨부의 청구범위에서 사용되는 바와 같이, 단수 형태 "한(a)", "한(an)" 및 "그(the)"는, 문맥상 그렇지 않다고 명시적으로 나타내지 않는 한, 복수의 형태도 또한 포함하도록 의도된다. 본원에서 사용되는 바와 같은 용어 "및/또는"은 관련된 열거 아이템 중 하나 이상의 임의의 그리고 모든 가능한 조합을 가리키며 포괄한다는 것이 또한 이해될 것이다.
상세한 설명 전체에 걸쳐, 그리고 청구범위에서 사용되는 바와 같이, 용어 "~ 중 적어도 하나" 또는 "~ 중 하나 이상"에 의해 결합되는 아이템의 리스트는 열거된 아이템의 임의의 조합을 의미할 수 있다. 예를 들면, 어구 "A, B 또는 C 중 적어도 하나"는 A; B; C; A와 B; A와 C; B와 C; 또는 A, B와 C를 의미할 수 있다.
용어 "커플링된" 및 "연결된"은, 그들의 파생어와 함께, 컴포넌트 사이의 기능적 또는 구조적 관계를 설명하기 위해 본원에서 사용될 수도 있다. 이들 용어는 서로 동의어로서 의도된 것은 아니다는 것이 이해되어야 한다. 대신, 특정 실시형태에서, "연결되는"은, 2개 이상의 엘리먼트가 서로 물리적으로, 광학적으로, 또는 전기적으로 직접 접촉하고 있는 것을 나타내기 위해 사용될 수도 있다. "커플링된"은, 두 개 이상의 엘리먼트가 서로 직접적인 또는 간접적인(그들 사이에 다른 중간에 개재하는 엘리먼트를 가짐) 물리적, 광학적, 또는 전기적 접촉 상태에 있다는 것, 및/또는 두 개 이상의 엘리먼트가 서로(예를 들면, 인과 관계에 있는 것처럼) 협력하거나 또는 상호작용한다는 것을 나타내기 위해 사용될 수도 있다.
본원에서 제공되는 상세한 설명의 몇몇 부분은, 컴퓨터 메모리 내의 데이터 비트에 대한 동작의 심볼 표현 및 알고리즘의 관점에서 제공된다. 그렇지 않다고 명시적으로 언급되지 않는 한, 하기의 논의에서부터 명백한 바와 같이, 상세한 설명 전체에 걸쳐, "계산하는", "컴퓨팅", "결정하는", "추정하는", "저장하는", "수집하는", "디스플레이하는", 수신하는", "통합하는", "생성하는", "업데이트하는", 또는 등등과 같은 용어를 활용하는 논의는, 레지스터 및 메모리를 포함하는 컴퓨터 시스템의 회로부(circuitry) 내에서의 물리적(전자적) 양으로서 나타내어지는 데이터를, 컴퓨터 시스템 메모리 또는 레지스터 또는 다른 이러한 정보 저장, 송신 또는 디스플레이 디바이스 내에서의 물리적 양으로서 마찬가지로 나타내어지는 다른 데이터로 조작 및 변환하는 컴퓨터 시스템, 또는 유사한 전자 컴퓨팅 디바이스의 액션 및 프로세스를 가리킨다는 것을 알 수 있다.
하기의 상세한 설명이, 예를 들면, 시스템 온 칩(system-on-a-chip; SoC) 아키텍쳐와 같은 아키텍쳐에서 명백히 될 수도 있는 실시형태를 개시하지만, 본원에서 설명되는 기술 및/또는 배치의 구현예는 특정 아키텍쳐 및/또는 컴퓨팅 시스템에 제한되지 않으며, 유사한 목적을 위해 임의의 아키텍쳐 및/또는 컴퓨팅 시스템에 의해 구현될 수도 있다. 예를 들면, 다수의 집적 회로(integrated circuit; IC) 칩 및/또는 패키지, 및/또는 다양한 컴퓨팅 디바이스 및/또는 소비자 가전(consumer electronic; CE) 디바이스 예컨대 셋탑 박스, 스마트폰 등등을 활용하는 다양한 아키텍쳐는, 본원에서 설명되는 기술 및/또는 배치를 구현할 수도 있다. 또한, 하기의 설명이, 로직 구현예, 시스템 컴포넌트의 타입 및 상호관련성(interrelationship), 로직 구획/통합 선택 등등과 같은 다양한 특정 상세를 개시할 수도 있지만, 청구되는 주제는 이러한 특정 상세 없이 실시될 수도 있다. 또한, 예를 들면, 제어 구조 및 완전한 소프트웨어 명령어 시퀀스와 같은 몇몇 내용은 본원에서 개시되는 내용을 모호하게 하지 않기 위해 상세히 도시되지 않을 수도 있다.
본원에서 개시되는 내용의 소정의 부분은 하드웨어로, 예를 들면, 그래픽 프로세서의 논리 회로부로서 구현된다. 소정의 다른 부분은 하드웨어, 펌웨어, 소프트웨어, 또는 그 조합으로 구현될 수도 있다. 본원에서 개시되는 내용 중 적어도 일부는 또한, 머신 판독가능 매체 상에 저장되는 명령어로서 구현될 수도 있는데, 그 명령어는 하나 이상의 프로세서(그래픽 프로세서 및/또는 중앙 프로세서)에 의해 판독 및 실행될 수도 있다. 머신 판독가능 매체는 머신(예를 들면, 컴퓨팅 디바이스)에 의해 판독가능한 형태로 정보를 저장하거나 송신하기 위한 임의의 매체 및/또는 메커니즘을 포함할 수도 있다. 예를 들면, 머신 판독가능 매체는, 리드 온리 메모리(read only memory; ROM); 랜덤 액세스 메모리(random access memory; RAM); 자기 디스크 저장 매체; 광학적 저장 매체; 플래시 메모리 디바이스, 전기적, 광학적, 음향적, 또는 다른 유사한 비일시적 유형의(tangible) 매체를 포함할 수도 있다.
카메라 제어 책임을 하드 실시간(hard real-time) 및 소프트 실시간(soft real-time) 파트 사이에서 분배하는 하나 이상의 시스템, 장치, 방법, 및 컴퓨터 판독가능 매체가 하기에서 설명된다. 이 아키텍쳐에서, 디지털 카메라 제어 알고리즘의 동작은, 디지털 카메라 및/또는 이미지 신호 프로세싱 파이프라인을 포함하는 디바이스 플랫폼 내의 다양한 시스템 사이에서 타이밍 변동에 덜 민감하게 만들어질 수 있다. 하기에서 더 설명되는 바와 같이, 제어 파라미터 값의 실시간 디스패치는 제어 파라미터 값을 생성하는 것을 담당하는 컨트롤러로부터 오프로드될 수도 있다. 이 아키텍쳐는, 상이한 CCA 라이브러리의 통합을 보다 유연하게 하고 단순화하는 추가적인 이점을 갖는다. 완화된 타이밍 요건에 의해, 라이브러리는, CM 및/또는 ISP로의 제어 파라미터 값의 디스패치의 관리를 담당하는 하위 레벨 하드웨어와 무관하게, 개발될 수도 있다.
도 1a는, 하나 이상의 실시형태에 따른, 가속된 CCA에 대한 분산형 카메라 컨트롤러 아키텍쳐를 갖는 디바이스 플랫폼(100)을 예시하는 블록도이다. 디바이스 플랫폼(100)은 소프트 및 하드 실시간 도메인 사이에서 분산되는 카메라 컨트롤러 아키텍쳐를 활용한다. 예시적인 실시형태에서, 소프트 실시간(soft real-time; SRT) 카메라 컨트롤러(150)는 소프트 실시간 도메인에서 동작가능하다. SRT 카메라 컨트롤러(150)의 출력에 커플링되는 하드 실시간(hard real-time; HRT) 카메라 컨트롤러(160)는 하드 실시간 도메인에서 동작가능하다. 또한, 이미지 데이터 프레임(171)의 수집(예를 들면, 노출)을 담당하는 카메라 하드웨어 모듈(CM)(170), 및 이미지 데이터 프레임(171)의 프로세싱, 및 CCA 알고리즘으로의 입력으로서 활용되는 3A+ 통계치의 생성을 담당하는 이미지 신호 프로세서(ISP)(180)도 하드 실시간 도메인 내에 있다. 본원에서 사용되는 바와 같이, "카메라 컨트롤러"는 CM(170) 및 ISP(180) 중 적어도 하나의 동작의 적어도 하나의 양태를 제어한다. 본원에서 사용되는 바와 같이, "실시간" 카메라 컨트롤러는, 카메라 동작 또는 이미지 프로세싱과 관련되는 입력 데이터를 프로세싱하고, 카메라 하드웨어 또는 이미지 프로세싱 파이프라인의 동작에 적시에 영향을 끼치도록 카메라 동작 또는 이미지 프로세싱 제어와 관련되는 데이터를 충분히 빠르게 출력한다. 예시적인 실시형태에서, 카메라 컨트롤러는, 예시적인 AEC, AF, 및 AWB 실시형태를 참조로 하나 이상의 3A 제어 파라미터 값을 생성 및/또는 제공한다. 그러나, 카메라 컨트롤러 출력은 3A 제어로 제한될 필요는 없으며, 따라서, 예시적인 실시형태에 대해 하기에서 설명되는 바와 같이 누락된 데드라인의 영향을 경감하는 방식으로 생성되고 디스패치되는 값을 가질 수 있는 임의의 카메라 제어 파라미터가 동일한 원칙에 따라 프로세싱될 수도 있기 때문에, "3A+" 컨트롤러로서 간주될 수도 있다.
SRT 및 HRT 카메라 컨트롤러(150, 160)의 경우, "실시간"은, 프레임(171)이 노출되는 프레임 레이트(예를 들면, 30, 60, 120, 240, 480, 등등)의 함수이다. 플랫폼(100)에서, SRT 카메라 컨트롤러(150)는 "소프트"로 칭해지는데, 그 이유는 3A+ 출력(156)이 주어진 프레임에 대한 논리적 정확성을 강조하도록 그리고 3A+ 출력(156)이 목적지에서 (예를 들면, 다음 번 파라미터 업데이트 윈도우가 닫힌 이후 HRT 카메라 컨트롤러(160)에 의해) 늦게 수신되는 경우에 (예를 들면, 다음 번 노출된 프레임의) 품질에 대해 무시가능한 영향을 가지도록 설계되기 때문이다. SRT 카메라 컨트롤러(150)로부터의 각각의 출력 파라미터는 참조 프레임 번호(reference frame number)와 관련된다. 프레임에 대해 생성되는 입력(예를 들면, 3A+ 통계치)은, (예를 들면, 통계치가 결정된) 관련된 프레임의 표시와 함께, SRT 카메라 컨트롤러(150)로 제공된다. 참조 프레임 번호는, 이미 통과한 프레임에 대한 결과가 출력되지 않도록, 하드 실시간 컴포넌트와 동기하게 SRT 카메라 컨트롤러(150)를 유지한다. 그러므로, SRT 컨트롤러(150)가 프레임 N을 분석할 것이다는 것을 3A+ 통계치 입력이 나타내면, CCA는 대응하는 후속 목표 프레임에 대한 출력을 생성한다. 예를 들면, AEC 알고리즘은 프레임 N+1로 시작하는 결과를 출력할 것이다. 프레임 N에 대한 결과는, 프레임 N이 이미 노출되었기 때문에, 출력되지 않는다. 그러므로, SRT 컨트롤러(150)는, 온더플라이(on-the-fly)가 아닌 소정의 ISP 모드에서 목표 프레임 N에 대해 여전히 업데이트될 수도 있는 몇몇 ISP 파라미터 값에 대해 프레임 N으로 시작하는 파라미터 값을 생성할 수도 있다.
HRT 카메라 컨트롤러(160)는 "펌(firm)" 으로 칭해지는데, 그 이유는, 파라미터 업데이트가 반드시 발생해야 하는 시간 윈도우 밖에서 컨트롤러(160)로부터의 각각의 출력이 목적지에 도달하면 컨트롤러(160)로부터의 각각의 출력의 유용성이 상실되기 때문에, 출력(예를 들면, CM 파라미터 값(166) 및/또는 ISP 파라미터 값(167))의 타이밍이 상대적으로 더 중요하기 때문이다. 이 시간 윈도우는, 업데이트될 파라미터 및 CM(170)에 의해 활용되는 특정한 카메라 센서의 함수이다. 예를 들면, 노출 시간 파라미터는, 프레임의 마지막 로우(row)의 통합과 다음 프레임의 제1 로우의 통합 사이에 파라미터 업데이트 윈도우를 구비한다. 다른 CM 파라미터(예를 들면, AG 및 AD)에 상이한 시간 윈도우가 적용될 수도 있고, 고유의 파라미터 업데이트 윈도우가, ISP(180)의 적용의 함수로서, ISP 파라미터 값(167)에 또한 적용될 수도 있다.
도 1a에서 더 예시되는 바와 같이, SRT 카메라 컨트롤러(150)는 3A+ 출력(156)을 생성하기 위해 하나 이상의 카메라 제어 알고리즘(155)을 실행하는 논리 회로부를 포함한다. 논리 회로부가 프로그래밍 가능하거나 또는 고정될 수도 있지만, 예시적인 실시형태에서, SRT 컨트롤러(150)는 프로그래밍 가능한 논리 프로세서이고, 유익하게는, 유저 공간 및 커널 공간을 포함하는 오퍼레이팅 시스템을 인스턴스화하는 CPU이다. HRT 카메라 컨트롤러(160)는, 3A+ 출력을 수신하고, 하나 이상의 디스패치 알고리즘을 실행하고, CM(170) 및/또는 ISP(180)의 액션과 동기하여, 파라미터 값(예를 들면, CM 값(166), 또는 ISP 값(167))을 적절한 목적지로 출력하는 논리 회로부를 포함한다. HRT 컨트롤러(160) 로직 회로부는 프로그래밍 가능할 수도 있거나(예를 들면, 마이크로컨트롤러, 또는 스칼라 프로세서) 또는 고정될 수도 있다(예를 들면, 상태 머신).
하나의 3A+ 출력(156)은 하나 이상의 카메라 제어 파라미터 값(CM 값(166) 및/또는 ISP 값(167)), 또는 이러한 값의 전조(precursor)/표시(indication)를 포함한다. CM 값(166) 및/또는 ISP 값(167)은, 유익하게는, 복수의 프레임에 대해 추정될 수 있는 제어 파라미터 값이다. CM 값(166)은, 렌즈 모터 파라미터 및 플래시 제어 파라미터와 같은, 그러나 이들로 제한되지는 않는, CM(170)의 하드웨어와 관련되는 임의의 공지의 제어 파라미터에 대한 것일 수도 있다. ISP 값(167)은, 화이트 밸런스 이득, 렌즈 음영 보정 이득, 노이즈 억제 파라미터, 샤프닝 파라미터(sharpening parameter)와 같은, 그러나 이들로 제한되지는 않는, ISP(180)와 관련되는 임의의 공지의 제어 파라미터에 대한 것일 수도 있다. 예시적인 실시형태에서, HRT 카메라 컨트롤러(160)는, SRT 카메라 컨트롤러(150)로부터 수신되는 제어 파라미터를 버퍼링할 제어 파라미터 값 디스패치 로직을 포함한다. 버퍼링된 파라미터는, 출력 파라미터 값을 CM 레지스터에 기록하는 것과 프레임 수정과 관련되는 CM 액션(예를 들면, 프레임의 모든 로우에 대한, 로우 노출/통합, 로우 판독 출력(read out), 로우 리셋)에 의해 지시된 대로 이용가능한 파라미터 업데이트 윈도우 사이에서 슬립을 방지하기 위해, 각각의 값과 관련되는 프레임보다 앞서 충분히 큐잉되고(queued) 디스패칭된다. 유사한 큐잉이 ISP 파라미터 값에 대해 수행될 수도 있다. HRT 카메라 컨트롤러(160)가, 카메라 제어 파라미터의 디스패치 및/또는 큐잉을 관리하는 로직만을 갖는 것을 필요로 하기 때문에, 그것은, 제어 파라미터 값을 생성하는 것을 담당하는 SRT 카메라 컨트롤러(150)에 의해 구현되는 상위 레벨의 카메라 제어 알고리즘(들)과는 무관한 방식으로 효율적으로 구현될 수도 있다.
HRT 컨트롤러(160)가 제어 파라미터 값을 버퍼링하도록 인에이블되는 유익한 실시형태에서, 단일의 3A+ 출력(156)은, 제어 파라미터 값의 세트, 또는 값의 이러한 세트의 전조/표시를 포함한다. 세트에서의 값 중 적어도 하나는 예측되거나, 또는 추정되는데, 값은 앞선 프레임과 관련된다. 3A+ 출력(156)은 각각의 제어 파라미터에 대한 프레임 기반의 일련의 값을 포함할 수도 있다. 일련(series)은 미리 결정된 수의 연속하는 이미지 데이터 프레임에 걸치는 프레임 윈도우와 관련된다. 도 1b에서 예시되는 예시적인 실시형태에서, 극소의(atomic) 3A+ 출력(156)은, 참조 프레임 N과 관련되는 임의의 수의 파라미터(P 개)에 대한 제어 파라미터 값(예를 들면, 현재 프레임 노출/프로세싱, 또는 노출될/프로세싱될 다음 번 프레임, 등등)을 포함한다 극소의 3A+ 출력(156)은, 하나 이상의 예측된 제어 파라미터 값(예를 들면, 값 V1,N +1, V1,N + 2, ..., V1,N +M)을 더 포함하는데, 이들의 각각은, 참조 프레임보다 앞선 미리 결정된 수의 프레임이다(예를 들면 프레임 N+1, 프레임 N+2, 프레임 N+M). 따라서, 도 1b에서의 3A+ 출력(156)은, P 개의 제어 파라미터의 각각에 대한 N+M 개의 연속하는 프레임에 걸친 윈도우를 구비한다. SRT 카메라 컨트롤러와 프레임 레이트 사이의 최악의 경우의 슬립의 함수로서 M이 변할 수도 있지만, 예시적인 실시형태의 경우, M은 2와 10 사이에 있다.
다른 실시형태에서, SRT 컨트롤러(150)는 CM(170) 및 ISP(180) 중 어느 하나 또는 둘 다로부터 하나 이상의 SRT 입력(190)을 수신할 수도 있다. SRT 입력(190)은 예를 들면, 하기에서 더 설명되는 바와 같이, CCA에 대한 입력으로서 활용될 수도 있는 임베딩된 데이터, 이미지 통계치, 등등을 포함할 수도 있다.
다른 실시형태에서, 하나 이상의 피드백(191)이 SRT 컨트롤러(150)와 HRT 컨트롤러(160) 사이에 존재할 수도 있다. 피드백(191)은 HRT 컨트롤러(160)로부터 SRT 컨트롤러(150)로 다시 전달되는 임의의 데이터를 포함한다. 하나의 예시적인 실시형태에서, 피드백(191)은, 카메라 제어 파라미터의 버퍼링된 큐 내에서의 인덱스 위치의 표시를 포함한다. SRT 컨트롤러(150)는, 예를 들면, HRT 컨트롤러(160)에서의 언더플로우 상태를 방지하기 위해, CCA 호출을 개시하기 위한 또는 이러한 피드백(191)의 함수로서 CCA 실행의 우선 순위를 적어도 증가시키기 위한 로직을 포함할 수도 있다.
도 2는, 하나 이상의 실시형태에 따른, 분산형 제어 파라미터 값 생성 및 디스패치를 비롯한, 가속된 CCA 실행 프로세스(201)를 예시하는 흐름도이다. 도 2에서 예시되는 바와 같이, 방법(301)은, SRT 카메라 컨트롤러(150)에 의해 수행되는 소프트 실시간 동작(202), HRT 카메라 컨트롤러(160)에 의해 수행되는 하드 실시간 동작(203)으로 분할된다. 소프트 실시간 동작(202)은, 연속하는 카메라 제어 호출에 응답하여 그리고 또한 CCA를 실행하는 데 이용가능한 SRT 카메라 컨트롤러 대역폭의 함수로서, 제1(변수) 빈도에서 반복될 수도 있다. 소프트 실시간 동작(202)은 카메라 프레임 레이트에 의해 부과되는 데드라인에 무관하게 수행될 수도 있다. 하드 실시간 동작은, 프레임 레이트에 의해 부과되는 데드라인을 충족하는 카메라 프레임 레이트와 동기하여 제2 빈도에서 반복될 수도 있다.
한 실시형태에서, SRT 카메라 컨트롤러(150)는, 예를 들면, 입력, 예컨대 계산시 SRT 카메라 컨트롤러(150)가 이용할 수 있게 만들어지는 카메라 제어 통계치에 기초하여 결정되는 수렴 계획을 따르는 제어 파라미터 값을 추정하는 하나 이상의 알고리즘을 실행한다. 카메라 센서로부터의 각각의 프레임은 자기 고유의 참조 프레임 번호를 갖는다. 통상적으로, 이 번호는 또한, 관련된 원시 이미지 데이터에 앞서 센서로부터 출력되는 임베딩된 데이터에 포함되지만, 참조 프레임 번호는 또한, 센서로부터 데이터를 수신하는 입력 시스템에 의해 할당될 수 있다. 이들 통계치 및 관련 참조 프레임 입력은, 동작 205에서, 카메라 제어 호출에서 제공될 수도 있다. 동작 205에서 수신되는 호출에 응답하여, 카메라 제어 라이브러리는 동작 210에서 액세스된다. 제어 라이브러리는 주어진 제어 파라미터에 대한 수렴 계획을 명시할 수도 있는데, 수렴 계획은, 하나 이상의 파라미터 값이 초기 프레임과 최종 프레임 사이의 프레임 시퀀스에 걸쳐 초기 값과 최종 값 사이에서 어떻게 변조될 것인지를 정의한다. 예를 들면, 동작 210에서 결정되는 노출 수렴 계획을 통해, 연속하는 프레임의 시퀀스에 걸쳐 휘도에서의 부드러운 변화를 제공하는 AEC 알고리즘을 이용하여 목표 노출 파라미터, 또는 목표 총 노출이 결정될 수도 있다. 입력 파라미터 및 CCA 라이브러리 정보에 기초하여, 수렴 파라미터를 따르는 프레임 기반의 일련의 제어 파라미터 값이 동작 220에서 생성된다. 그 다음, 동작 220에서 결정되는 값의 모두 또는 일부는 3A+ 출력(156)으로서 HRT 카메라 컨트롤러(160)로 전송되고, 하나의 SRT 제어 루프 반복을 완성한다. 그 다음, SRT 제어 루프는 연속하는 3A+ 출력을 생성하도록 반복될 수도 있는데, 연속하는 3A+ 출력은 업데이트된 입력에 기초하여 재계산된다. SRT 컨트롤러(150)가 통상적으로는 매 프레임에서 수렴의 방향을 변경할 필요가 없기 때문에, 연속하는 반복은 유사한 값을 갖는 중첩하는 3A+ 출력을 생성할 수도 있다. 프레임 기반의 데드라인을 충족하는 부담이 없는 SRT 카메라 컨트롤러(150)에서, 가장 진보된 그리고 복잡한 장면 분석 및 CCA가 활용될 수도 있다. 또한, 수렴 계획에 기초하여 제어 값을 생성하는 데 필요로 되는 계산 시간은, 각각의 반복에서 생성되는 제어 값의 수와 비례적으로 확장할 필요는 없다. 일반적으로, 3A 코드가 잘 병렬화되지 않지만, 참조 프레임보다 앞선 다수의 프레임에 걸친 다수의 예측된 값의 생성에 걸쳐 병렬화하는 것은 가능할 수도 있다.
프로세스(201)는 HRT 컨트롤러(160)가 프레임 기반의 일련의 값을 수신하거나 또는 액세스하는 것으로 계속되는데, 그 값이 SRT 컨트롤러(150)에 의해 간헐적으로 출력되기 때문이다. HRT 컨트롤러(160)는, 신규의 제어 파라미터 값이 이용가능한지를 결정한다. 동작 250에서, 어떠한 신규의 파라미터 값도 이용가능하지 않은 경우, HRT 컨트롤러(160)에 의해 이전에 버퍼링된 3A+ 출력(156)으로부터의 값(Vi)은 CM(예를 들면, CM 제어 버스 컨트롤러) 또는 ISP로 출력된다. 3A+ 출력(156)이 다수의 값을 포함하는 예시적인 실시형태에서, 프레임 기반의 일련에서 연속하는 프레임과 관련되는 제어 파라미터 값을 순차적으로 제공하기 위해, HRT 디스패치 루프를 통해 HRT 컨트롤러(160)가 반복한다. HRT 동작(203)의 각각의 반복에서, 가장 신규의 이용가능한 제어 파라미터 값이 출력된다. 도 2에서 예시되는 예에서, HRT 카메라 컨트롤러(160)는, 3A+ 출력(156)으로서 수신되는 파라미터 값의 세트 내의 각각의 파라미터 값에 대해 증분되는 인덱스 i를 유지할 수도 있다. 그 다음, 동작 260에서, 제어 파라미터 값(Vi)이 출력된다. HRT 디스패치 루프는 프레임 레이트를 가지고 단계에서 반복하고, 각각의 반복에서 인덱스 i를 증분시키고 제어 파라미터 값(Vi+1)을 CM 또는 ISP로 출력한다. 동작 220에서 신규의 제어 파라미터 값을 수신한 것에 응답하여, 인덱스 i는 리셋된다. 버퍼링된 파라미터 값을 통해 반복하는 것 또는 신규의 수신된 파라미터 값을 출력하는 것과 관련되는 로직을 도 2가 예시하지만, 하나의 예시적인 구현예에서, HRT 컨트롤러(160)는, 예를 들면, 프레임 윈도우와 동일한 미리 결정된 수의 슬롯을 갖는 원형 파라미터 값 버퍼를 포함한다. 파라미터 버퍼에서의 각각의 슬롯은 프레임 번호(예를 들면, N) 및 관련 파라미터 값(예를 들면, VN) 쌍을 저장할 수도 있다. 신규의 파라미터 출력(160)의 수신시, 매치하는 프레임 번호와 관련되는 메모리 슬롯에 저장되어 있는 파라미터 값은 덮어쓰기 되고, 신규의(이전에는 존재하지 않은) 프레임 번호는, 이미 프로세싱된 프레임 번호를 덮어쓰기 할 것이다.
예시적인 실시형태에 따르면, HRT 동작(203)의 각각의 반복은, 목표 프레임의 수집 또는 프로세싱에 영향을 주기에 충분한 시간에서 제어 파라미터 값을 제공한다. 예를 들면, CM 제어 파라미터 값은, CM에서 구성되는 다음 번 블랭킹 공간 동안 카메라 제어 레지스터에 기록될 시간에 카메라 제어 버스로 출력된다. 시스템 동기화를 위해, 수직의 (프레임) 블랭킹 및 수평의 (라인) 블랭킹이 사용될 수도 있다. CM의 센서는, 어떤 미리 결정된 수직 블랭킹 및 수평 블랭킹 요건을 충족하도록 구성될 수도 있다. 수평 블랭킹은, 통상적으로, 픽셀 클록의 관점에서 정의되고, 수직 블랭킹은 로우 판독 시간의 관점에서 정의된다. 수평 또는 라인 블랭킹은, 입력 버퍼 오버런을 방지하기 위해, 다운스트림 컴포넌트, 예컨대 ISP에게, 유입하는 데이터를 핸들링하기에 충분한 시간을 제공하기 위해 사용될 수도 있다. 수직 블랭킹은, 수직 블랭킹이 더 길고, 프레임 레이트가 더 느리고, 최대 가능한 노출 시간이 더 길고, 그리고 다음 번 프레임의 판독 이전에 카메라 제어 알고리즘과 관련되는 계산을 수행하는 시간이 더 많은 경우에, 프레임 레이트를 제어하기 위해 사용될 수도 있다. 이러한 계산(예를 들면, 수렴 계획과 관련됨)을 수행하는 부담이 없는 HRT 카메라 컨트롤러(160)에서, 그리고 버퍼링된 제어 파라미터 값에서, 블랭킹 공간과 업데이트된 제어 파라미터 값의 기록 사이의 슬립은, 가속된 프레임 레이트(예를 들면, 60-480 fps)에서도 방지될 수 있다. 따라서, 프로세스(301)는 가속된 레이트에서도 높은 비디오 품질을 유지할 수도 있는데, 그 이유는, SRT 컨트롤러(150)가, 통상적으로는, 매 프레임에서 수렴의 방향을 변경할 필요가 없고, HRT 컨트롤러(160)와 CM(170)/ISP(180) 사이의 슬립이 방지될 수 있기 때문이다.
도 3은, 하나 이상의 실시형태에 따른, 카메라 제어 파라미터 값의 생성 및 CM 레지스터로의 디스패치를 예시하는 흐름도이다. 도 3은 또한, 주어진 프레임 레이트에서 동작하는 CM과 SRT 컨트롤러 사이의 엄격성을 변경하는 슬립이, CM과 동기하는 HRT 컨트롤러의 버퍼링 액션에 의해 어떻게 완화될 수도 있는지를 예시한다. CM의 맥락에서 설명되지만, 설명은 다양한 ISP 파라미터 값에 동등하게 적용 가능하다.
도 3에서 예시되는 바와 같이, M 개의 프레임에 걸친 고정된 프레임 윈도우와 관련되는 3A+ 출력은 네 번의 SRT 컨트롤러 루프 반복(L)의 각각에서 생성된다. 제1 반복에 대한 3A+ 출력(156)에 의해 커버되는 롤링 프레임 윈도우는, SRT 컨트롤러가 출력 데이터를 생성하는 레이트 및 SRT 컨트롤러로부터의 각각의 출력에서 추정되는 프레임의 수의 함수로서 변할 수도 있는 프레임의 수만큼, 제2 반복의 3A+ 출력과 중첩할 수도 있다. SRT 컨트롤러 반복 사이에서 수렴의 방향에 어떠한 변경도 없는 경우, 중첩된 프레임에 대응하는 3A+ 출력에서의 몇몇 파라미터 값은 반복에 걸쳐 실질적으로 동일할 수도 있다. 각각의 반복의 경우, 3A+ 출력은 참조 프레임(예를 들면, 프레임 N)과 관련되는 제1 값(예를 들면, VN)으로 시작하고 프레임 윈도우의 마지막 프레임(예를 들면, VN +M)과 관련되는 값으로 종료한다. 제1 HRT 디스패치 루프 반복(K=0)의 경우, 3A+ 출력(156)의 제1 인덱스 위치(i=1)에서의 파라미터 값(VN)은 SRT 컨트롤러로부터 수신되고 프레임 N에 대한 파라미터 업데이트 시간 윈도우 내에서 CM 레지스터(175)에 기록된다. SRT 컨트롤러는 다른 반복(L=1)을 실행하여, 3A+ 출력(356)을 생성하는데, 3A+ 출력(356)은, 반복(K=1) 동안 HRT 컨트롤러에 의해 수신될 시간에 HRT 컨트롤러로 다시 출력된다. 3A+ 출력(356)에서 VN+1로 시작하는 파라미터 값은 3A+ 출력(156)으로부터의 파라미터 값을 덮어쓰기 하고, VN +1은 프레임 N+1에 대한 파라미터 업데이트 시간 윈도우 내에서 CM 레지스터(175)에 기록된다. SRT 카메라 컨트롤러로부터의 업데이트가 프레임 N+1에 대한 CM 파라미터 업데이트 윈도우에 대해 시간적으로 맞았기 때문에, 출력 데이터(156)에서의 파라미터 값 VN +1 내지 VN +M은 CM 레지스터(175)에 절대 기록되지 않는다. 출력 데이터(356)에서의 파라미터 값 VN +1 내지 VN +M+1은, 예를 들면, 원형 버퍼의 슬롯에 유지된다. SRT 컨트롤러는 다른 반복(L=2)을 수행하여, 3A+ 출력(357)을 생성하는데, 3A+ 출력(357)은 HRT 컨트롤러로 출력되지만, 그러나 하나 이상의 타이밍 이슈 때문에, 다음 번 HRT 컨트롤러 반복(K=2)에서 활용될 데드라인까지 도달하지 않는다. 따라서, 3A+ 출력(356)의 다음 번 인덱스 위치(i=2)에서의 파라미터 값(VN + 2)은, 프레임 N+2의 파라미터 업데이트 시간 윈도우 내에서 CM 레지스터(175)로 기록된다. SRT 카메라 컨트롤러로부터의 업데이트가 프레임 N+1에 대한 CM 파라미터 업데이트 윈도우에 대해 시간적으로 맞지 않았기 때문에, 3A+ 출력(356)에서의 파라미터 값(VN + 1)은 이전에 결정된 수렴 계획에 더 의존한다. HRT 컨트롤러가 다음 번 반복(K=3)을 실행하는 경우, 3A+ 출력(357)의 제1 인덱스 위치(i=1)에서의 파라미터 값(VN + 3)은, 프레임 N+3에 대한 CM 파라미터 업데이트 윈도우 동안 CM 레지스터(175)에 기록된다. 따라서, 출력 데이터(356)에서의 파라미터 값 VN +3 내지 VN +M+1은 CM 레지스터(175)에 절대 기록되지 않는다. 출력 데이터(357)에서의 파라미터 값 VN +3 내지 VN +M+2는, 예를 들면, 원형 버퍼의 슬롯에 유지된다. HRT 컨트롤러가 다음 번 반복(K=4)을 실행하는 경우, 3A+ 출력(357)의 제2 인덱스 위치(i=2)에서의 파라미터 값(VN + 4)은, 프레임 N+3에 대한 CM 파라미터 업데이트 윈도우 동안 CM 레지스터(175)에 기록된다. 3A+ 출력(357)에서의 값은, 업데이트된 출력 데이터 세트가 SRT 컨트롤러로부터 수신될 때까지, 각각의 연속하는 프레임과 동기하여 (예를 들면, 프레임 기반의 FIFO 일련에서) 반복적으로 계속 팝핑된다(popped). 따라서, 3A+ 출력은, SRT 컨트롤러와 CM 사이의 최악의 경우의 슬립을 수용하도록 선택되는 프레임의 윈도우에 걸칠 수도 있다. 3A+ 출력은, 몇몇 개의 버퍼링된 파라미터 값이 이미 소비된 이후 발생하는 타이밍 슬립의 가능성을 수용하기 위한 약간의 마진을 가지고, 3A+ 출력에 의해 걸쳐지는 프레임의 수에 대한 프레임 레이트의 비율보다 더 많은 빈도에서 생성되어야 한다. 예를 들면:
Figure 112016120444129-pct00001
인데, 여기서, 마진은, 예를 들면, 1과 3A+ 출력 프레임 윈도우에서의 프레임의 수 사이에 있을 수도 있다.
공칭 동작 상태 동안, SRT 컨트롤러는, 각각의 출력 데이터 세트에서의 프레임의 수에 대한 프레임 레이트의 비율과 적어도 동일한 최소 빈도에서 3A+ 출력을 생성해야만 하고, SRT 컨트롤러 3A+ 출력에서의 프레임 기반의 일련의 값 중 제1 값만이 CM 레지스터로 또는 ISP로 디스패치될 것이다. 예를 들면, 과도한 장면 분석, 또는 컨트롤러가 일시적으로 (카메라 제어에 관련 없을 수도 있는) 다른 태스크로 부하를 받는 것으로 인해, SRT 컨트롤러 상에서 실행하는 CCA가 실행을 위해 더 많은 시간을 필요로 하는 경우, HRT 컨트롤러는, 3A+ 출력에서의 제1 값 이외의 것을 포함하는 버퍼링된 파라미터 값을 디스패치한다. 버퍼링된 값의 수가 주어진 프레임 레이트에 대해 충분한 상태에서는, HRT 컨트롤러는 모든 버퍼링된 파라미터 값에 걸쳐(M회 반복) 반복하지는 않을 것이고, HRT 컨트롤러와 CM 사이에 슬립을 유도하는 언더플로우 상태를 회피할 것이다. 따라서, 몇몇 실시형태에서, SRT 카메라 컨트롤러 출력에 포함되는 프레임의 수(M)는 프레임 레이트의 함수이다(예를 들면, 더 높은 프레임 레이트에서 M이 증가한다).
특히, 도 1 내지 도 3에서 예시되는 바와 같이 SRT와 HRT 카메라 컨트롤러 사이에 분산되는 카메라 제어 아키텍쳐 및 프로세싱을 통해, SRT 컨트롤러에 의해 구현되는 카메라 제어 알고리즘, 즉, SRT 컨트롤러에 의해 구현되는 임의의 소프트웨어는, CM 및 ISP 인터페이싱이 HRT 카메라 컨트롤러에 의해 더 추상화되기 때문에, 더 적은 임베딩된 프로그래밍을 필요로 한다. 상대적으로 정적인 HRT 컨트롤러 설계는, 3A+ 소프트웨어 라이브러리의 다수의 생성에 적합하게 남아 있을 주어진 플랫폼에서 구현될 수도 있다. 타이밍 및 요건이 SRT 컨트롤러 레벨에서 완화되기 때문에, 심지어 써드파티 라이브러리가 쉽게 통합될 수도 있다. 또한, 제어 파라미터 및/또는 가시적인 아티팩트의 느려진 수렴을 방지하기 위해, 심지어 높은 프레임 레이트에서도, 적시의 센서 레지스터 기록 및 ISP 파라미터 업데이트가 보장될 수 있다.
도 4는, 하나 이상의 실시형태에 따른, 가속된 CCA에 대한 분산형 카메라 컨트롤러 아키텍쳐를 활용하는 디바이스 플랫폼(400)의 시스템 도면이다. 도 4는 또한, 높은 프레임 레이트에 대해 적합한 가속 카메라 제어 아키텍쳐를 구현하기 위해 도 1 내지 도3에서 도입되는 SRT 및 HRT 카메라 컨트롤러 아키텍쳐가 디바이스 플랫폼의 다양한 다른 컴포넌트와 어떻게 통합될 수 있는지를 예시한다. 도 4는 또한, HRT 카메라 컨트롤러가 CM으로부터 출력되는 임베딩된 데이터를 어떻게 더 활용할 수도 있는지를 예시한다.
플랫폼(400)은 CM(170)을 포함한다. 예시적인 실시형태에서, CM(170)은 EEPROM(456), 렌즈 모터(457), 플래시 모듈(458), 및 카메라 센서(459)를 더 포함한다. 센서(459)는, 예를 들면, QXGA, WQXGA, 또는 QSXGA 포맷의 디지털 이미지 디바이스일 수도 있다. 카메라 센서(459)는 픽셀당 10비트, 또는 그 이상의 컬러 해상도를 제공할 수도 있고, 연속하는 비디오 프레임을 순차적으로(progressively) 캡쳐하도록 동작가능하다. 센서(459)는 170MHz, 또는 그 이상의 픽셀 주파수를 가질 수도 있다. 카메라 센서(459)는, RGB 베이어(Bayer) 컬러 필터, 아날로그 증폭기, A/D 변환기, 입사광을 원시 이미지 데이터에 대응하는 디지털 신호로 변환하는 다른 컴포넌트를 포함할 수도 있다. 센서(459)는, 픽셀이 프레임에 대해 선순차 양식으로 순차적으로 판독 출력되는 롤링 셔터 또는 전자 초점면 셔터 프로세스를 동작시키도록 제어될 수도 있다. CM(170)은, 예를 들면 8비트 어드레스를 갖는 카메라 제어 버스를 통해 주소지정가능한(addressable) 다수의 제어 레지스터(예를 들면, 16비트)를 구비할 수도 있다. CM(170)의 제어 레지스터는, 예를 들면, 카메라 제어 버스 컨트롤러(425)(예를 들면, I2C 컨트롤러)에 의해 제어되는 I2C 직렬 인터페이스를 통해 프로그래밍될 수도 있다.
CM(170)은 임베딩된 그리고 원시의 이미지 데이터(460)를 출력한다. 예시적인 실시형태에서, 임베딩된 데이터는 모바일 산업 프로세서 인터페이스(MIPI) 표준을 준수한다. 이 임베딩된 데이터는, 임베딩된 데이터가 관련되는 원시 이미지 데이터의 수집 동안 효과가 있는 CM 제어 파라미터(예를 들면, 노출 시간, 아날로그 이득, 디지털 이득, 등등과 같은 노출 파라미터)의 설명을 구비할 수도 있다. 임베딩된 그리고 원시의 이미지 데이터(460)는, CM(170)에 의해 활용되는 스트리밍 프로토콜, 예컨대 MIPI 또는 다른 입력 프로토콜을 지원하는 센서 수신기(155)로 전달된다. 센서 수신기(155)는 또한, 원시 이미지 데이터(472)를 하나 이상의 ISP(180)로 출력할 것이고 임베딩된 데이터(473)를 HRT 카메라 컨트롤러(160)로 전달할 것이다. 참조 프레임 번호를 포함할 수도 있는 임베딩된 데이터(471)는 또한, 임베딩된 데이터(471)가 CCA 입력으로서 SRT 컨트롤러(150)가 액세스할 수도 있도록, 메모리(280)로 출력된다.
ISP(180)는, CM(170)과 관련되는 수평 및/또는 수직 블랭킹 기간 동안 원시 이미지 데이터(472)를 수신 및 분석할 수도 있다. 원시 이미지 데이터 프로세싱 동안, ISP(180)는, 예를 들면, 노이즈 감소, 픽셀 선형화, 음영 보상 중 하나 이상을 수행할 수도 있다. ISP(180)는, 해상도 감소, 베이어 디모자이크, 및/또는 비네트 제거를 수행할 수도 있다. ISP(180)는 또한 이미지 통계치 정보를 계산할 수도 있다. 이미지 통계치는, 휘도/색차(chrominance) 값과 평균, 휘도/색차 고주파 및 텍스쳐 컨텐츠, 프레임별 모션 컨텐츠, 임의의 다른 컬러 컨텐츠 값, 디블로킹 제어(deblocking control)에 관한 픽쳐 통계 데이터(예를 들면, 디블로킹/넌디블로킹(non-deblocking)을 제어하는 정보), RGBS 그리드, 필터 응답 그리드, 및 RGB 히스토그램, 등등을 포함할 수도 있다. ISP(180)는 비디오 코덱, 예컨대 H.264/고급 비디오 코딩(Advanced Video Coding; AVC) 또는 고효율 비디오 코딩(High Efficiency Video Coding; HEVC), JPEG, 등등과 호환되는데, 이들은 YUV 데이터를 사후처리하기 위해 그리고 재구성된 이미지 데이터를 생성하기 위해 활용될 수도 있다. 재구성된 이미지 데이터 및 계산된 3A 통계치(474)는 메모리(280)(예를 들면, 더블 데이터 레이트(double data rate; DDR), 또는 다른 적절한 메모리)에 저장된다. 그 다음, 재구성된 이미지 데이터(485)는, 노출된 프레임의 몇몇 표현을 저장, 디스플레이, 또는 송신하기 위해, 스토리지, 디스플레이 파이프 라인 또는 송신 파이프라인(490) 중 하나 이상으로 판독 출력될 수도 있다.
데이터, 예컨대 3A 통계치 및 임베딩된 데이터(475)는, 예를 들면, 3A 제어 루프 반복 동안, 추가적인 분석을 위해 SRT 컨트롤러(150)에 의해 메모리(280)로부터 액세스될 수도 있다. 예시적인 실시형태에서, SRT 컨트롤러(150)는, 서버 공간 및 커널 공간을 포함하는 오퍼레이팅 시스템을 인스턴스화하는 중앙 프로세싱 유닛(central processing unit; CPU)에 의해 구현된다. SRT 컨트롤러(150)는 임의의 공지의 프로세서에 의해 구현될 수도 있고, 카메라 제어를 넘어서는 디바이스 플랫폼 내에서의 많은 기능을 구비할 수도 있다. CPU는, 디바이스 플랫폼의 메인 메모리(410)에 액세스하는 큰 벡터 프로세서일 수도 있다. 메인 메모리(410)는 하나 이상의 3A 라이브러리를 저장할 수도 있다. SRT 컨트롤러(150)는, 예를 들면, CM 추상화 레이어(410)를 통해 수신되는 3A 입력(477)에 기초하여, 실질적으로 상기에서 설명되는 바와 같은 카메라 제어 알고리즘(들)(155)을 실행할 것이다. CM 추상화 레이어(410)는, 인스턴스화되는 특정한 오퍼레이팅 시스템에 대해 구성되는 임의의 하드웨어 추상화 레이어일 수도 있다. CM 추상화 레이어(410)는, 예를 들면, 써드파티 3A 제어 알고리즘과 CM(170), 및/또는 HRT 컨트롤러(160), 및/또는 ISP(180) 사이의 호환성을 핸들링할 수도 있다. 하나의 예시적인 실시형태에서, CM 추상화 레이어(410)는 프레임 N-J에 대한 통계치에 대한 요청을 매핑하고 3A 통계치(475)를 3A 입력(477)으로서 CCA(155)에 리턴한다.
CCA(155)의 실행은 또한, CM 제어 파라미터 값을 생성하기 위해, 메인 메모리(410)에 저장된 자동 화이트 밸런스 라이브러리 또는 자동 노출 중 적어도 하나에 액세스하는 것을 수반할 수도 있다. 하나의 예시적인 AEC 실시형태에서, CCA(155)의 실행은, 프레임 N-J 통계치의 분석 이후에, 그러나 다음 번 프레임 N-J+1의 분석 이전에, 프레임 N 내지 프레임 N+M에 대한 노출 수렴 계획의 일부로서, 목표 총 노출 및 대응하는 프레임 수를 생성하는 노출 계산을 수행하는 것을 수반한다. 목표 총 노출은 CM 추상화 레이어(410)로 전달되는 3A 출력(156)에 포함된다. CM 추상화 레이어(410)는, CM(170)과 관련되는 3A 출력(156)에서의 값(예를 들면, 프레임 N 내지 프레임 N+M에 대한 목표 총 노출)을 CM 제어 파라미터 값(466)으로서 CM 드라이버(415)로 전달한다. 다른 실시형태에서, CCA(155)의 실행은, 프레임 N-J 통계치의 분석 이후에, 그러나 다음 번 프레임 N-J+1의 분석 이전에, 프레임 N 내지 프레임 N+M에 대한 화이트 밸런스 수렴 계획의 일부로서, 목표 이득 값 및 대응하는 프레임 번호를 생성하는 화이트 밸런스 이득 계산을 수행하는 것을 수반한다. 이득 값은 CM 추상화 레이어(410)로 전달되는 3A 출력(156)에 포함된다. CM 추상화 레이어(410)는 ISP(180)와 관련되는 3A 출력(156)에서의 값(예를 들면, 프레임 N 내지 프레임 N+M에 대한 이득 값)을 ISP 제어 파라미터 값(467)으로서 ISP 드라이버(416)로 전달한다.
CM 드라이버(415)는 CM 제어 파라미터 값(466)을 HRT 컨트롤러(160)로 전달한다. ISP 드라이버(416)는 마찬가지로 ISP 제어 파라미터 값(467)을 HRT 컨트롤러(160)로 전달한다. 예시적인 실시형태에서, HRT 컨트롤러(160)는 스칼라 프로세서에 의해 구현되고, CM 값(466), ISP 값(467)뿐만 아니라, 센서(473)로부터 전달되는 임베딩된 데이터(473)를 수신할 것이다. HRT 컨트롤러(160)는 CM 값(466)을 프레임 N 내지 프레임 N+M에 큐잉할 것이고, CM 파라미터 값(166)을 순차적으로 CM 버스 컨트롤러(425)에 디스패치할 것이다. CM 버스 컨트롤러(425)는, 다음 번 프레임(예를 들면, 프레임 N), 및 그 이후 연속하는 프레임(예를 들면, 프레임 N+1 내지 프레임 N+M), 등등을 노출시키는 것과 관련되는 CM(170)의 액션과 동기하여 CM 값(166)을 CM 레지스터에 기록한다. HRT 컨트롤러(160)는 또한, ISP 값(467)을 프레임 N 내지 프레임 N+M에 큐잉할 것이고, ISP 파라미터 값(167)을 ISP(180)로 순차적으로 디스패치할 것이다.
HRT 컨트롤러(160)가 임베딩된 데이터(473)를 프로세싱하도록 인에이블되는 예시적인 실시형태에서, HRT 컨트롤러(160)는 또한, 임베딩된 데이터(473)에 기초하여 적어도 하나의 ISP 파라미터 값을 수정하거나 또는 보충할 것이다. 일반적으로, HRT 컨트롤러(160)는 임의의 임베딩된 데이터 분석을 수행할 수도 있다. 임베딩된 데이터 분석이 통상적으로는 상당한 메모리 리소스를 필요로 하는 로직 또는 라이브러리에 대한 액세스를 필요로 하지 않으며, 예를 들면 상대적으로 적은 코드의 라인을 갖는 스칼라 프로세서(scalar processor; SP) 상에서 구현될 수도 있다. HRT 컨트롤러(160) 및 ISP(180)에 로컬인 보조(secondary) 제어 포인트는 상기에서 설명되는 HRT 제어 파라미터 값 디스패치 루프와 협력하여 작동할 수도 있다. 예를 들면, HRT 컨트롤러(160)는 ISP측 디지털 이득 업데이트의 시간을 엄격히 맞추기 위해, 임베딩된 데이터(473)에 대해 동작할 수도 있다. 이것은, 카메라 센서(459)가 충분히 작은 디지털 이득 스테핑(stepping)이 부족한 경우에, 및/또는 카메라 센서(459)가 CM 값(166)으로서 적시에 제공되는 노출 파라미터 값의 소비에서 변동을 야기하는 경우에, 특히 유용할 수도 있다. 하나의 예로서, 임베딩된 데이터(473)의 분석은, 프레임의 유효 총 노출을 노출 계획에 비교하는 것 및 그 프레임이 프로세싱을 개시하기 전에, ISP 파라미터, 예컨대 WB 이득을 수정하는 것에 의해 임의의 차이를 보상하는 것을 수반할 수도 있다. HRT 컨트롤러(160)가 디스패치를 위한 WB 이득을 ISP 값(167)으로서 큐잉한 다른 예에서, 그 값은 임베딩된 데이터 분석에 기초하여 수정될 수도 있다. 그러므로, HRT 컨트롤러(160)는, 임베딩된 데이터 분석에 기초한 로컬 HRT 제어 루프를, 3A 제어 알고리즘에 기초한 SRT 제어 루프와 통합할 수도 있다.
도 5는, 하나 이상의 실시형태에 따른, 플랫폼(401)에 의해 수행되는 분산형 카메라 제어 파라미터 값 생성 및 디스패치 프로세스(501)를 예시하는 흐름도이다. CM(170)은, 동작 505에서 수신되는 CM 제어 파라미터 값에 기초하여 몇몇 프레임 레이트에서 이미지 프레임의 시퀀스를 생성하기 위해, 각각의 동작 510에서 이미지 프레임을 노출시킨다. CM(170)은 동작 520에서 원시 이미지 데이터 프레임을 출력하고, ISP(180)는 동작 506에서 수신되는 ISP 파라미터 값에 기초하여 동작 515에서 이미지 데이터 프레임을 프로세싱한다. 그 다음, 도 5에서 예시되지는 않지만, 노출된 그리고 프로세싱된 이미지 데이터 프레임의 표현은 플랫폼(401)을 호스팅하는 디바이스에 의해 저장, 디스플레이 또는 송신될 수도 있다.
동작 530에서, 디지털 카메라 제어 알고리즘(예를 들면, AEC 알고리즘)에 대한 호출이 수신되고, 호출에 응답하여 자동 초점, 자동 노출, 또는 자동 화이트 밸런스 라이브러리 중 적어도 하나가 액세스된다. 동작 535에서, CM 제어 파라미터 값의 세트, 및/또는 ISP 파라미터 값의 세트는 CCA를 실행하는 결과로서 생성된다. 예시적인 실시형태에서, 각각의 세트는, 라이브러리 및 3A 통계치 및/또는 특정 프레임에 대해 동작 525에서 입력 데이터로서 수신되는 메타데이터에 기초하여 결정되는 프레임 기반의 일련의 값을 포함한다. 프레임 기반의 일련은, 프레임 레이트에서 CM(170)에 의해 노출될, 또는 노출된 미리 결정된 수의 연속하는 이미지 데이터 프레임(예를 들면, 프레임 N 내지 프레임 M)에 걸친 윈도우와 관련된다. 일 실시형태에서, 노출 수렴 계획에 기초하여, 각각의 동작 535에서, 미리 결정된 수의 연속하는 이미지 데이터 프레임에 걸쳐 제1 노출로부터 제2 노출로 수렴하는 노출 값의 세트가 생성된다.
도 5에서 더 예시되는 바와 같이, 동작 530에서 수신되는 각각의 호출에 응답하여 동작 535가 반복될 때마다 3A 파라미터 값이 생성된다. 도 5에서, 연속하는 동작 535 사이에서, 프레임 수집 동작(515)이 두 번 수행된다. 롤링 셔터 예에서, 프레임의 모든 로우에 대해 로우 통합, 로우 판독 출력, 및 로우 리셋이 두 번 연속하여 수행된다. 이와 같이, 3A 파라미터 값의 세트가, CM(170)의 프레임 레이트보다 더 작은 빈도(예를 들면, 프레임 레이트의 대략 1/2)에서 SRT 컨트롤러(150)에 의해, 적어도 일시적으로, 생성되고 있다. HRT 컨트롤러(160)를 언더플로우로부터 보호하고 CM(170)과의 슬립을 방지하기 위해, 적어도 두 개의 프레임의 가치의 3A 파라미터 데이터가 각각의 동작 540에서 HRT 컨트롤러(160)로 전달된다. 유익하게는, CM 제어 파라미터 값, 또는 ISP 파라미터 값의 세트는, 적어도, 세트의 각각의 프레임의 수에 대한 프레임 레이트의 비율보다 더 빈번하게 SRT 컨트롤러(150)에 의해 생성된다.
도 5에서 더 예시되는 바와 같이, 동작 540에서, HRT 컨트롤러(160)는 동작 535에서 간헐적으로 생성되는 ISP 파라미터 값 또는 CM 제어 파라미터 값의 세트에 액세스하거나 또는 그 세트를 수신한다. 동작 545에서, HRT 컨트롤러(160)는, 제1 일련의 값이 더 최근에 수신되었는지 또는 제2 일련의 값이 더 최근에 수신되었는지의 여부에 따라, SRT 컨트롤러(150)로부터 수신되는 파라미터 값의 제1 세트와 관련되는 제1 일련의 프레임에 대응하는 제어 파라미터 값과, SRT 컨트롤러(150)로부터 수신되는 파라미터 값의 제2 세트와 관련되는 제2 일련의 프레임에 대응하는 파라미터 값 중 하나를 선택한다. SRT 컨트롤러(150)와 CM(170) 및/또는 ISP(180) 사이의 타이밍 때문에, HRT 컨트롤러(160)는, 동작 505 및 506에서, 프레임 기반의 일련에서의 두 개의 연속하는 값을 CM(170)으로(예를 들면, 도 4의 카메라 버스 컨트롤러(425)로) 또는 ISP(180)로 순차적으로 제공한다. 각각의 동작 505 및 506은, 프레임 레이트에서 연속하는 프레임의 대응하는 쌍을 노출시키는 것과 관련되는 CM(170)의 액션과 동기한다. HRT 컨트롤러(160)는, 동작 505를, 한 번은 선택 동작(545) 이전에, 그리고 한 번은 선택 동작(545) 이후에 두 번 연속적으로 수행하는 것에 의해, 두 개의 상이한 프레임 기반의 일련의 3A 파라미터 값(즉, 두 개의 상이한 동작 535으로부터 유래함)으로부터의 제1 및 제2 값을 순차적으로 제공한다. 연속하는 동작 535 사이에서 수행되는 각각의 동작 505, 506에서, HRT 컨트롤러(160)는, 제어 파라미터 값의 다른 세트가 수신될 때까지, 가장 낮은 프레임 번호에서 시작하여 프레임 단위 기반으로 가장 최근에 수신된 3A 파라미터 값을 인덱싱하여, 카메라 제어 버스를 통해 CM(170)으로, 또는 ISP(180)로 값을 팝핑한다.
도 6은, 하나 이상의 실시형태에 따른, 제어 파라미터 디스패치 로직(165)을 더 예시하는 기능적 블록도이다. 도 6에서 나타내어지는 기능은, 하드웨어, 소프트웨어, 또는 통상의 지식을 가진 자에게 공지되어 있는 임의의 원형 버퍼 아키텍쳐와 같은 많은 대안예를 갖는 이 둘의 조합으로 구현될 수도 있다. 제어 파라미터 디스패치 로직(165)은, 제1 및 제2 FIFO 버퍼(601, 602)를 갖는 더블 버퍼를 구현한다. 멀티플렉서(multiplexer; MUX)(605)의 입력은 SRT 컨트롤러(150)의 출력에 커플링된다. MUX(605)는, 각각의 FIFO 버퍼(601, 602)로의 입력에 커플링되는 출력을 더 구비한다. FIFO 버퍼(601, 602)의 출력은 디멀티플렉서(demultiplexer; DMUX)(606)의 입력에 커플링된다. DMUX(606)는 CM 버스 컨트롤러(425)에 커플링되는 출력을 구비한다. MUX(605)에서 수신되는 제어 파라미터 값의 세트는, 선택 로직(603)에 의해 결정되는 선택 신호(s)에 따라 FIFO 버퍼(601 또는 602)에서 판독 입력된다(read in). 상보적 선택 신호(
Figure 112016120444129-pct00002
)는, 판독 입력에서 선택되지 않은 FIFO 버퍼(601, 602)로 판독 출력을 스위칭한다. 판독 입력 이벤트 사이에서, 제어 파라미터 값은, 본원의 다른 곳에서 설명되는 바와 같이, CM의 액션과 동기하여 선택된 FIFO 버퍼로부터 팝핑된다. 판독 입력에서, 선택된 버퍼(601, 602)는 플러싱되고 리필된다. ISP 제어 파라미터를 증분적으로 디스패치하기 위한 유사한 로직이 구현될 수도 있다.
도 7은, 실시형태에 따른, 예시적인 시스템(700)의 예시적인 도면이다. 시스템(700)은 모바일 디바이스일 수도 있지만, 시스템(700)은 이 맥락으로 제한되지 않는다. 예를 들면, 시스템(700)은 랩탑 컴퓨터, 울트라 랩탑 컴퓨터, 태블릿, 터치 패드, 휴대형 컴퓨터, 핸드헬드 컴퓨터, 팜탑 컴퓨터, 셀룰러 전화, 스마트 디바이스(예를 들면, 스마트폰, 스마트 태블릿 또는 모바일 텔레비전), 모바일 인터넷 디바이스(mobile internet device; MID), 메시징 디바이스, 데이터 통신 디바이스, 및 등등으로 통합될 수도 있다. 시스템(700)은 또한 인프라 디바이스(infrastructure device)일 수도 있다. 예를 들면, 시스템(700)은 대형 포맷의 텔레비전, 셋탑 박스, 데스크탑 컴퓨터, 또는 다른 가정용 또는 상업적 네트워크 디바이스 안으로 통합될 수도 있다.
시스템(700)은, 도 1 내지 도 6의 맥락에서 상기에서 설명되는 카메라 제어 플랫폼 중 임의의 것 및 다양한 카메라 제어 방법의 전체 또는 서브셋을 구현할 수도 있는 디바이스 플랫폼(702)을 포함한다. 다양한 예시적인 실시형태에서 CPU(715)는 카메라 제어 알고리즘을 실행한다. CPU(715)는, 예를 들면 본원의 다른 곳에서 설명되는 바와 같이, CM(170)과 비동기적으로 카메라 제어 파라미터 값의 세트를 간헐적으로 생성하기 위한 SRT 프로세서(150)를 구현하는 로직 회로부를 포함한다. 일 실시형태에서, CPU(715)는, AEC 알고리즘을 실행하는 SRT 프로세서(150)를 구현하고 카메라 모듈(170)을 제어하기 위한 프레임 기반의 일련의 노출 목표를 생성한다. 몇몇 실시형태에서, 하나 이상의 컴퓨터 판독가능 매체는 명령어를 저장할 수도 있는데, 명령어는 CPU(715)에 의한 실행시, 프로세서로 하여금 본원의 다른 곳에서 설명되는 3A+ 제어 알고리즘 중 하나 이상을 실행하게 한다. 다른 실시형태에서, 플랫폼(702)은, 본원의 다른 곳에서 설명되는 바와 같이, CM(170)과 비동기적으로 제어 파라미터 값을 디스패치하기 위한 HRT 프로세서(160)를 구현하는 로직 회로부를 포함하는 스칼라 프로세서(716)를 포함한다. 그 다음, CPU(715)에 의해 결정되는 그리고 스칼라 프로세서(716)에 의해 디스패치되는 제어 파라미터 값을 사용하여 CM(170)에 의해 노출되는 하나 이상의 이미지 데이터 프레임은 메모리(712)에 저장될 수도 있다.
실시형태에서, 디바이스 플랫폼(702)은 휴먼 인터페이스 디바이스(human interface device; HID)(720)에 커플링된다. 플랫폼(702)은 CM(170)을 이용하여 원시 이미지 데이터를 수집할 수도 있는데, 원시 이미지 데이터는 프로세싱되어 HID(720)로 출력된다. 하나 이상의 내비게이션 피쳐를 포함하는 내비게이션 컨트롤러(750)는, 예를 들면, 디바이스 플랫폼(702) 및/또는 HID(720)와 상호작용하기 위해 사용될 수도 있다. 실시형태에서, HID(720)는, 무선부(718) 및/또는 네트워크(760)를 통해 플랫폼(702)에 커플링되는 임의의 텔레비전 타입 모니터 또는 디스플레이를 포함할 수도 있다. 예를 들면, HID(720)는 컴퓨터 디스플레이 스크린, 터치 스크린 디스플레이, 비디오 모니터, 텔레비전형 디바이스 및/또는 텔레비전을 포함할 수도 있다.
하나 이상의 소프트웨어 애플리케이션(716)의 제어 하에서, 디바이스 플랫폼(702)은 HID(720) 상에 유저 인터페이스(722)를 디스플레이할 수도 있다. 컨트롤러(750)의 내비게이션 피쳐의 움직임은, 디스플레이 상에 디스플레이되는 포인터, 커서, 포커스 링, 또는 다른 시각적 표시자의 움직임에 의해 디스플레이(예를 들면, HID(720)) 상에서 복제될 수도 있다. 예를 들면, 소프트웨어 애플리케이션(716)의 제어 하에서, 내비게이션 컨트롤러(750) 상에 위치되는 내비게이션 피쳐는, 유저 인터페이스(722) 상에 디스플레이되는 가상의 내비게이션 피쳐로 매핑될 수도 있다.
실시형태에서, 디바이스 플랫폼(702)은, CM(170), 칩(705), 프로세서(715, 716), 메모리(712), 스토리지(711), 애플리케이션(716), 및/또는 무선부(718)의 임의의 조합을 포함할 수도 있다. 칩셋(705)은, 프로세서(715, 716), 메모리(712), 스토리지(711), 그래픽 서브시스템(715), 애플리케이션(716) 및/또는 무선부(718) 사이에서의 상호통신(intercommunication)을 제공할 수도 있다.
프로세서(715, 716) 중 하나 이상은, 하나 이상의 복합 명령어 세트 컴퓨터(Complex Instruction Set Computer; CISC) 또는 축소 명령어 세트 컴퓨터(Reduced Instruction Set Computer; RISC) 프로세서, x86 명령어 세트 호환 프로세서, 다중 코어, 또는 임의의 다른 마이크로프로세서 또는 중앙 프로세싱 유닛(central processing unit; CPU)으로서 구현될 수도 있다.
메모리(712)는, 랜덤 액세스 메모리(RAM), 다이나믹 랜덤 액세스 메모리(Dynamic Random Access Memory; DRAM), 스테틱 램(Static RAM; SRAM)과 같은 그러나 이들로 한정되지 않는 휘발성 메모리 디바이스로서 구현될 수도 있다.
스토리지(711)는, 자기 디스크 드라이브, 광학 디스크 드라이브, 테이프 드라이브, 내부 스토리지 디바이스, 부착형 스토리지 디바이스(attached storage device), 플래시 메모리, 배터리로 백업되는(battery backed-up) SDRAM(동기 DRAM), 및/또는 네트워크 액세스가능한 스토리지 디바이스와 같은 그러나 이들로 제한되지 않는 불휘발성 스토리지 디바이스로서 구현될 수도 있다.
무선부(718)는 다양하고 적절한 무선 통신 기술을 사용하여 신호를 송수신할 수 있는 하나 이상의 무선부를 포함할 수도 있다. 이러한 기술은 하나 이상의 무선 네트워크에 걸친 통신을 수반할 수도 있다. 예시적인 무선 네트워크는 무선 근거리 통신망(wireless local area network; WLAN), 무선 사설 네트워크(wireless personal area network; WPAN), 무선 거대 도시 통신망(wireless metropolitan area network; WMAN), 셀룰러 네트워크, 및 위성 네트워크를 포함한다. 이러한 네트워크에 걸친 통신에서, 무선부(618)는, 임의의 버전의 하나 이상의 적용가능한 표준에 따라 동작할 수도 있다.
다양한 실시형태에서, 시스템(700)은 무선 시스템, 유선 시스템, 또는 이 둘의 조합으로서 구현될 수도 있다. 무선 시스템으로 구현되는 경우, 시스템(700)은 무선 공유 매체를 통해 통신하기에 적합한 컴포넌트 및 인터페이스, 예컨대 하나 이상의 안테나, 송신기, 수신기, 트랜스시버, 증폭기, 필터, 제어 로직, 및 등등을 포함할 수도 있다. 무선 공유 매체의 예는 RF 스펙트럼 및 등등과 같은 무선 스펙트럼의 일부를 포함할 수도 있다. 유선 시스템으로서 구현되는 경우, 시스템(700)은 유선 통신 매체를 통해 통신하기에 적합한 컴포넌트 및 인터페이스, 예컨대 입/출력(input/output; I/O) 어댑터, I/O 어댑터를 대응하는 유선 통신 매체와 연결하기 위한 물리적 커넥터, 네트워크 인터페이스 카드(network interface card; NIC), 디스크 컨트롤러, 비디오 컨트롤러, 오디오 컨트롤러, 및 등등을 포함할 수도 있다. 유선 통신 매체의 예는, 와이어, 케이블, 금속 리드, 인쇄 회로 기판(printed circuit board; PCB), 백플레인(backplane), 스위치 패브릭, 반도체 재료, 연선 와이어(twisted-pair wire), 동축 케이블, 광섬유, 및 등등을 포함할 수도 있다.
본원에서 설명되는 바와 같은 가속된 CCA에 대한 분산형 카메라 컨트롤러 아키텍쳐 및 관련 가속된 CCA 프로세스는, 다양한 하드웨어 아키텍쳐, 셀 설계, 또는 "IP 코어"에서 구현될 수도 있다.
상기에서 설명되는 바와 같이, 시스템(700)은 다양한 물리적 스타일 또는 폼팩터에서 구체화될 수도 있다. 도 8은, 시스템(700)이 구체화될 수도 있는 모바일 핸드셋 디바이스(800)의 실시형태를 예시한다. 몇몇 실시형태에서, 예를 들면, 디바이스(800)는 무선 성능을 갖는 모바일 컴퓨팅 디바이스로서 구현된다. 모바일 컴퓨팅 디바이스는, 예를 들면, 하나 이상의 배터리와 같은 모바일 전원 또는 전원장치(supply) 및 프로세싱 시스템을 구비하는 임의의 디바이스를 지칭할 수도 있다.
모바일 컴퓨팅 디바이스의 예는, 퍼스널 컴퓨터(PC), 랩탑 컴퓨터, 울트라 랩탑 컴퓨터, 태블릿, 터치 패드, 휴대형 컴퓨터, 핸드헬드 컴퓨터, 팜탑 컴퓨터, 개인 휴대형 정보 단말(personal digital assistant; PDA), 셀룰러 전화, 셀룰러 전화/PDA의 조합, 텔레비전, 스마트 디바이스(예를 들면, 스마트폰, 스마트 태블릿 또는 스마트 텔레비전), 모바일 인터넷 디바이스(MID), 메시징 디바이스, 데이터 통신 디바이스, 및 등등을 포함할 수도 있다. 모바일 컴퓨팅 디바이스의 예는, 손목 컴퓨터(wrist computer), 손가락 컴퓨터(finger computer), 반지형 컴퓨터(ring computer), 아이글래스 컴퓨터(eyeglass computer), 벨트 클립 컴퓨터(belt-clip computer), 암밴드(arm-band) 컴퓨터, 신발 컴퓨터(shoe computer), 의류 컴퓨터(clothing computer), 및 다른 웨어러블 컴퓨터와 같은, 사람이 착용하도록 구성되는 컴퓨터 및/또는 매체 컴퓨터/송신 디바이스를 또한 포함할 수도 있다. 다양한 실시형태에서, 예를 들면, 모바일 컴퓨팅 디바이스는 컴퓨터 애플리케이션뿐만 아니라 음성 통신 및/또는 데이터 통신을 실행할 수 있는 스마트폰으로서 구현될 수도 있다. 예로서, 몇몇 실시형태가 스마트폰으로서 구현되는 모바일 컴퓨팅 디바이스를 통해 설명될 수도 있지만, 다른 실시형태는, 다른 무선 모바일 컴퓨팅 디바이스를 사용하여 또한 구현될 수도 있다는 것을 알 수도 있을 것이다. 실시형태는 이 맥락에서는 제한되지 않는다.
도 8에서 도시되는 바와 같이, 모바일 핸드셋 디바이스(800)는, 전면(801) 및 이면(802)을 갖는 하우징을 포함할 수도 있다. 디바이스(800)는, 디스플레이(804), 입/출력(I/O) 디바이스(806), 및 통합 안테나(808)를 포함한다. 디바이스(800)는 내비게이션 피쳐(712)를 또한 포함할 수도 있다. 디스플레이(804)는 모바일 컴퓨팅 디바이스에 대해 적절한 정보를 디스플레이하기 위한 임의의 적절한 디스플레이 유닛을 포함할 수도 있다. I/O 디바이스(806)는 모바일 컴퓨팅 디바이스로 정보를 입력하기 위한 임의의 적절한 I/O 디바이스를 포함할 수도 있다. I/O 디바이스(806)에 대한 예는 영숫자 키보드, 숫자 키패드, 터치 패드, 입력 키, 버튼, 스위치, 마이크, 스피커, 음성 인식 디바이스와 소프트웨어, 및 등등을 포함할 수도 있다. 정보는 또한, 마이크(도시되지 않음)를 통해 디바이스(800)로 입력될 수도 있거나, 또는 음성 인식 디바이스에 의해 디지털화될 수도 있다. 실시형태는 이 맥락에서는 제한되지 않는다. 적어도 이면(802)에는, 카메라(805)(예를 들면, 렌즈, 어퍼쳐, 및 이미징 센서를 포함함), 및 플래시(810)가 통합되는데, 이 둘은, 본원의 다른 곳에서 설명되는 바와 같이, CM의 컴포넌트일 수도 있다.
본원에서 설명되는 실시형태는, 하드웨어 엘리먼트, 소프트웨어 엘리먼트, 또는 양자의 조합을 사용하여 구현될 수도 있다. 하드웨어 엘리먼트 또는 모듈의 예는, 프로세서, 마이크로프로세서, 회로부, 회로 엘리먼트(예를 들면, 트랜지스터, 저항기, 커패시터, 인덕터, 및 등등), 집적 회로, 주문형 반도체(application specific integrated circuit; ASIC), 프로그래머블 로직 디바이스(programmable logic device; PLD), 디지털 신호 프로세서(digital signal processors; DSP), 필드 프로그래머블 게이트 어레이(field programmable gate array; FPGA), 로직 게이트, 레지스터, 반도체 디바이스, 칩, 마이크로칩, 칩셋, 및 등등을 포함할 수도 있다. 소프트웨어 엘리먼트 또는 모듈의 예는: 애플리케이션, 컴퓨터 프로그램, 애플리케이션 프로그램, 시스템 프로그램, 머신 프로그램, 오퍼레이팅 시스템 소프트웨어, 미들웨어, 펌웨어, 루틴, 서브루틴, 함수, 메소드, 프로시져, 소프트웨어 인터페이스, 애플리케이션 프로그래밍 인터페이스(application programming interface; API), 명령어 세트, 컴퓨팅 코드, 컴퓨터 코드, 코드 세그먼트, 컴퓨터 코드 세그먼트, 데이터 워드, 값, 심볼, 또는 이들의 임의의 조합을 포함한다. 실시형태가 하드웨어 엘리먼트를 사용하여 구현되는지 및/또는 소프트웨어 엘리먼트를 사용하여 구현되는지의 여부를 결정하는 것은: 소망의 계산 속도(computational rate), 전력 레벨, 열 내성, 프로세싱 싸이클 버짓(budget), 입력 데이터 레이트, 출력 데이터 레이트, 메모리 리소스, 데이터 버스 속도 및 다른 설계 또는 성능 제약사항과 같은, 그러나 이들로 제한되지는 않는, 설계의 선택을 위해 고려되는 임의의 다수의 인자에 따라 변할 수도 있다.
적어도 하나의 실시형태의 하나 이상의 양태는, 머신 판독가능 저장 매체 상에 저장되는 대표적인 명령어에 의해 구현될 수도 있다. 이러한 명령어는 머신에 의한 이러한 명령어의 실행 동안, 완전히 또는 적어도 부분적으로, 메인 메모리 내에 및/또는 프로세서 내에 존재할 수도 있는데, 그러면, 명령어를 저장하는 메인 메모리 및 프로세서 부분도 또한 머신 판독가능 저장 매체를 구성한다. 프로그래머블 로직 회로부는, 컴퓨터 판독가능 매체를 구현하는 프로세서에 의해 구성되는 레지스터, 상태 머신, 등등을 구비할 수도 있다. 이 때, 프로그래밍되는 이러한 로직 회로부는, 본원에서 설명되는 실시형태의 범위 내에 있는 시스템 안으로 물리적으로 변환된 것으로 이해될 수도 있다. 프로세서 내의 다양한 로직을 나타내는 명령어는, 머신에 의한 판독시, 또한, 머신으로 하여금, 본원에서 설명되는 아키텍쳐를 고수하는 로직을 제조하게 하고/하거나 본원에서 설명되는 기술을 수행하게 한다. 셀 설계, 또는 IP 코어로서 알려진 이러한 표현은, 유형의 머신 판독가능 매체 상에 저장될 수도 있고, 로직 또는 프로세서를 실제로 만드는 제조 머신으로 로딩하도록 다양한 고객 또는 제조 설비로 공급될 수도 있다.
본원에서 개시되는 소정의 피쳐가 실시형태를 참조로 설명되었지만, 이 설명은 제한적인 의미로 해석되도록 의도되지는 않는다. 그러므로, 본원에서 설명되는 구현예의 다양한 수정예뿐만 아니라, 본 개시가 속하는 기술분야의 숙련된 자에게 명백한 다른 구현예도, 본 개시의 취지와 범위 내에 놓이는 것으로 간주된다.
하기의 문단은 몇몇 예시적인 실시형태를 간략하게 설명한다.
하나 이상의 제1 실시형태에서, 디지털 카메라 제어 알고리즘을 통한 이미지 프로세싱을 위한 플랫폼은, 하나 이상의 카메라 하드웨어 모듈(CM)과 커플링하는 카메라 제어 버스를 포함한다. 플랫폼은, 하나 이상의 카메라 제어 알고리즘을 실행하는 것에 의해 카메라 제어 파라미터 값을 생성하는 로직 회로부를 포함하는 소프트 실시간(SRT) 카메라 컨트롤러를 더 포함한다. 플랫폼은, SRT 컨트롤러와 카메라 제어 버스 사이에 커플링되는 하드 실시간(HRT) 카메라 컨트롤러 - HRT 컨트롤러는 SRT 컨트롤러로부터 간헐적으로 제어 파라미터 값을 수신하는, 그리고, 연속하는 이미지 데이터 프레임을 노출시키는 것과 관련되는 CM의 액션과 동기하여, 제어 파라미터 값을 제어 버스에 출력하는 로직 회로부를 포함함 - 를 더 포함한다.
제1 실시형태의 향상에서, SRT 컨트롤러는 프레임 기반의 일련 - 프레임 기반의 일련의 CM 제어 파라미터 값은 프레임 레이트에서 CM에 의해 노출될 미리 결정된 수의 연속하는 이미지 데이터 프레임에 걸치는 윈도우와 관련됨 - 의 CM 제어 파라미터 값을 반복적으로 생성할 것이다. HRT 컨트롤러는, 프레임 레이트에서 연속하는 프레임의 대응하는 쌍을 노출시키는 것과 관련되는 CM의 액션과 동기하여, 프레임 기반의 일련의 CM 제어 파라미터 값 중 적어도 두 개의 연속하는 제어 파라미터 값을 제어 버스로 순차적으로 제공할 것이거나, 또는 프레임 레이트에서 연속하는 프레임의 대응하는 쌍을 노출시키는 것과 관련되는 CM의 액션과 동기하여, 프레임 기반의 일련의 CM 제어 파라미터 값 중 제1 값, 및 제2 프레임 기반의 일련의 CM 제어 파라미터 값 중 제2 값을 순차적으로 제공할 것이다.
바로 위의 실시형태의 향상에서, HRT 컨트롤러는, 제1 일련의 CM 제어 파라미터 값이 더 최근에 수신되었는지 또는 제2 일련의 CM 제어 파라미터 값이 더 최근에 수신되었는지의 여부에 따라, 버스 컨트롤러에게, 제1 일련의 CM 제어 파라미터 값 내의, 상기 윈도우 내의 프레임에 대응하는 제어 파라미터 값과, 제2 일련의 CM 제어 파라미터 값 내의, 프레임에 대응하는 제어 파라미터 값 중 하나를 선택하는 것에 의해 윈도우의 프레임과 관련되는 최신의 제어 파라미터 값을 제공할 것이다.
제1 실시형태의 향상에서, HRT 컨트롤러는 CM 제어 파라미터 값의 하나 이상의 세트 - 각각의 세트는 노출될 미리 결정된 수의 연속하는 이미지 데이터 프레임에 걸친 윈도우와 관련되는 프레임 기반의 일련의 CM 제어 파라미터 값을 포함함 - 를 SRT 컨트롤러로부터 수신하는 로직 회로부를 포함한다. HRT 컨트롤러는, 제어 파라미터 값의 제2 세트가 SRT 컨트롤러로부터 수신될 때까지, 프레임 단위 기반으로 제어 파라미터 값의 제1 세트 내의 값을 인덱싱하는 것에 의해, 제어 파라미터 값의 제1 세트로부터의 제어 파라미터 값을 버스 컨트롤러로 팝핑한다. HRT 컨트롤러는, 제어 파라미터 값의 다른 세트가 수신될 때까지, 제2 세트에서의 가장 낮은 프레임 번호와 관련되는 파라미터 값으로 시작하여 프레임 단위 기반으로 제2 세트에서의 값을 인덱싱하는 것에 의해, 제어 파라미터 값의 제2 세트로부터의 제어 파라미터 값을 팝핑하는 로직 회로부를 포함한다.
제1 실시형태의 향상에서, SRT 컨트롤러는 센서 노출 값의 세트 - 각각의 세트는 프레임 기반의 일련의 센서 노출 값을 포함함 - 를 반복적으로 생성할 것이다. 각각의 프레임 기반의 일련은 노출 값 수렴 계획과 관련되고 프레임 레이트에서 CM에 의해 노출될 미리 결정된 수의 연속하는 이미지 데이터 프레임에 걸친다. 노출 값 세트는 프레임 레이트와 비동기적으로 생성된다. HRT 컨트롤러는, 각각의 세트에서의 프레임의 수에 대한 프레임 레이트의 비율보다 더 빈번하게 SRT 컨트롤러로부터 노출 값의 세트를 수신할 것이다. HRT 컨트롤러는, 노출 값의 업데이트된 세트가 수신될 때까지, 프레임 단위 기반으로 값을 인덱싱하는 것에 의해, 프레임 레이트에서, 노출 값의 제1 세트로부터의 버스 컨트롤러로 순차적으로 팝핑할 것이다. HRT 컨트롤러는, 제어 파라미터 값의 세트가 다시 업데이트될 때까지, 업데이트된 세트에서의 가장 낮은 프레임 번호와 관련되는 노출 값에서 시작하여 프레임 단위 기반으로 값을 인덱싱하는 것에 의해, 프레임 레이트에서, 노출 값의 업데이트된 세트로부터의 노출 값을 버스 컨트롤러로 순차적으로 팝핑할 것이다.
제1 실시형태의 향상에서, 플랫폼은 HRT 컨트롤러에 커플링되는 이미지 신호 프로세서(ISP)를 더 포함한다. SRT 컨트롤러는 ISP 파라미터 값을 반복적으로 생성하는 로직 회로부를 더 포함한다. HRT 컨트롤러는 또한, SRT 컨트롤러와 ISP 사이에 커플링되고 SRT 컨트롤러로부터 ISP 파라미터 값을 간헐적으로 수신하는 로직 회로부를 더 포함한다. HRT 컨트롤러는, 연속하는 이미지 데이터 프레임을 프로세싱하는 것과 관련되는 ISP의 액션과 동기하여 ISP 파라미터 값을 ISP로 증분적으로 출력할 것이다.
바로 위의 실시형태의 향상에서, SRT 컨트롤러는 프레임 기반의 일련의 ISP 파라미터 값, 또는 그 표시를 생성할 것인데, 프레임 기반의 일련의 ISP 파라미터 값은 ISP에 의해 프로세싱될 미리 결정된 수의 연속하는 이미지 데이터 프레임에 걸치는 윈도우와 관련된다. HRT 컨트롤러는, 연속하는 프레임의 대응하는 쌍을 프로세싱하는 것과 관련되는 ISP의 액션과 동기하여, 프레임 기반의 일련의 ISP 파라미터 값 내의, 또는 그 표시로부터 유도되는 적어도 두 개의 연속하는 제어 파라미터 값을 ISP로 순차적으로 제공할 것이다.
상기 실시형태의 향상에서, 플랫폼은, HRT 컨트롤러와 하나 이상의 CM의 출력 사이에 커플링되는 이미지 데이터 수신기를 더 포함한다. 이미지 데이터 수신기는, 프레임에 대한 원시 이미지 데이터 및 원시 이미지 데이터의 수집 동안 효과가 있는 CM 제어 파라미터를 나타내는 임베딩된 데이터 둘 다를 수신하는 로직 회로부를 포함한다. 이미지 데이터 수신기는, 원시 이미지 데이터를 ISP로 그리고 임베딩된 데이터를 HRT 컨트롤러로 출력하는 로직 회로부를 포함한다. HRT 컨트롤러는 또한, 임베딩된 데이터에 기초하여 적어도 하나의 ISP 파라미터 값을 수정하거나 또는 보충할 것이다.
제1 실시형태의 향상에서, 플랫폼은, 프레임 레이트에서 이미지 데이터 프레임을 노출시키는 CM을 더 포함한다. 플랫폼은, CM 제어 파라미터 값을 생성하기 위해 SRT 컨트롤러에 의해 액세스되는 자동 노출 또는 자동 화이트 밸런스 라이브러리 중 적어도 하나를 저장하기 위해 SRT 컨트롤러에 커플링되는 메모리를 더 포함한다. 플랫폼은, 이미지 데이터 프레임을 프로세싱하기 위해 CM의 출력에 커플링되는 이미지 신호 프로세서(ISP)를 더 포함한다. 플랫폼은, 수집된 이미지 데이터 프레임의 표현을 디스플레이하거나 또는 저장하기 위해 ISP의 다운스트림에 커플링되는 디스플레이 디바이스 또는 스토리지 디바이스 중 적어도 하나를 더 포함한다.
하나 이상의 제2 실시형태에서, 디지털 카메라 제어 알고리즘을 통한 이미지 프로세싱의 컴퓨터 구현 방법은, 카메라 제어 알고리즘에 대한 호출을 수신하는 것을 포함한다. 방법은, 호출에 응답하여, 자동 초점, 자동 노출, 또는 자동 화이트 밸런스 라이브러리 중 적어도 하나에 액세스하는 것을 포함한다. 방법은, 카메라 하드웨어 모듈(CM) 제어 파라미터 값의 세트, 또는 이미지 신호 프로세싱(ISP) 파라미터 값의 세트 - 각각의 세트는 라이브러리에 기초하여 결정되는 프레임 기반의 일련의 값을 포함함 - 를 생성하는 것을 포함하는데, 프레임 기반의 일련의 값은, 프레임 레이트에서 CM에 의해 노출될, 또는 노출된 미리 결정된 수의 연속하는 이미지 데이터 프레임에 걸친 윈도우와 관련된다.
제2 실시형태의 향상에서, 생성하는 것은 수신되는 각각의 호출에 응답하여 반복되고, 결과적인 CM 제어 파라미터 값, 또는 ISP 파라미터 값의 세트는, 세트의 각각의 프레임의 수에 대한 프레임 레이트의 비율보다 더 빈번하게 생성된다.
제2 실시형태의 향상에서, 카메라 제어 알고리즘에 대한 호출을 수신하는 것은, 자동 노출 제어 알고리즘에 대한 호출을 수신하는 것을 더 포함한다. 카메라 하드웨어 모듈(CM) 제어 파라미터 값의 세트를 생성하는 것은, 목표 노출 파라미터 또는 목표 총 노출 중 적어도 하나를 비롯하여, 프레임의 시퀀스를 따라 휘도에서의 평탄한 변화(a smooth change)를 제공하기 위한 노출 수렴 계획을 결정하는 것, 및 노출 수렴 계획에 기초하여 미리 결정된 수의 연속하는 이미지 데이터 프레임에 걸쳐 제1 노출로부터 제2 노출로 수렴하는 노출 값의 세트를 생성하는 것을 더 포함한다.
제2 실시형태의 향상에서, 방법은, 카메라 하드웨어 모듈(CM) 제어 파라미터 값 또는 ISP 파라미터 값의 세트에 액세스하거나 또는 그 세트를 수신하는 것, 및, 연속하는 이미지 데이터 프레임을 노출시키는 것과 관련되는 CM의 액션과 동기하여, 제어 파라미터 값을 카메라 제어 버스로 또는 ISP 파라미터 값을 ISP로 출력하는 것을 포함한다.
바로 위의 실시형태의 향상에서, 방법은 CM 제어 파라미터 값, 또는 ISP 파라미터 값의 세트를 생성하는 것은, 프레임 기반의 일련의 값을 생성하는 것을 더 포함한다. 제어 파라미터 값을 카메라 제어 버스로 또는 ISP 파라미터 값을 ISP로 출력하는 것은, 프레임 레이트에서 연속하는 프레임의 대응하는 쌍을 노출시키는 것과 관련되는 CM의 액션과 동기하여, 프레임 기반의 일련의 값 중 두 개 이상의 연속하는 값을 카메라 제어 버스 컨트롤러 또는 ISP로 순차적으로 제공하는 것, 또는 프레임 레이트에서 연속하는 프레임의 대응하는 쌍을 노출시키는 것과 관련되는 CM의 액션과 동기하여, 프레임 기반의 일련의 값 중 제1 값, 및 제2 프레임 기반의 일련의 값 중 제2 값을 카메라 제어 버스 또는 ISP로 순차적으로 제공하는 것 중 적어도 하나를 더 포함한다.
상기 실시형태의 향상에서, 제어 파라미터 값을 카메라 제어 버스로 또는 ISP 파라미터 값을 ISP로 출력하는 것은, 제1 일련의 값이 더 최근에 수신되었는지 또는 제2 일련의 값이 더 최근에 수신되었는지의 여부에 따라, 제1 일련의 값 내의, 상기 윈도우에 대응하는 값과 제2 일련의 값 내의 프레임에 대응하는 값 중 하나를 선택하는 것에 의해, 윈도우의 프레임과 관련되는 최신의 값을 제어 버스 또는 ISP로 제공하는 것을 더 포함한다.
상기 실시형태의 향상에서, 제어 파라미터 값을 카메라 제어 버스로 또는 ISP 파라미터 값을 ISP로 출력하는 것은, 프레임 단위 기반으로 값을 인덱싱하는 것에 의해 제1 세트의 값으로부터 값을 카메라 제어 버스 컨트롤러로 또는 ISP로 팝핑하는 것, 제2 세트의 값을 수신하는 것, 및 다른 세트의 값이 수신될 때까지, 프레임 단위 기반으로 제2 세트의 최저 프레임 번호와 관련되는 값으로 시작하여 값을 인덱싱하는 것에 의해 제2 세트로부터의 값으로부터의 값을 팝핑하는 것을 더 포함한다.
제2 실시형태의 향상에서, 방법은, 자동 초점, 자동 노출, 또는 자동 화이트 밸런스 라이브러리 중 적어도 하나를 메모리 공간에 저장하는 것을 더 포함한다. 방법은, 수신된 CM 제어 파라미터 값에 기초하여 프레임 레이트에서 이미지 데이터 프레임을 노출시키는 것을 더 포함한다. 방법은, 수신된 ISP 파라미터 값에 기초하여 이미지 데이터 프레임을 프로세싱하는 것을 더 포함한다. 방법은, 수집된 이미지 데이터 프레임의 표현을 디스플레이하거나 또는 저장하는 것을 더 포함한다.
하나 이상의 제3 실시형태에서, 하나 이상의 컴퓨터 판독가능 저장 매체는, 프로세서에 의한 실행시, 프로세서로 하여금 방법을 수행하게 하는 명령어를 포함한다. 수행되는 방법은 카메라 제어 알고리즘에 대한 호출을 수신하는 것을 포함한다. 수행되는 방법은, 호출에 응답하여, 자동 초점, 자동 노출, 또는 자동 화이트 밸런스 라이브러리 중 적어도 하나에 액세스하는 것을 더 포함한다. 수행되는 방법은, 카메라 하드웨어 모듈(CM) 제어 파라미터 값의 세트, 또는 이미지 신호 프로세싱(ISP) 파라미터 값의 세트 - 각각의 세트는 라이브러리에 기초하여 결정되는 프레임 기반의 일련의 값을 포함함 - 를 생성하는 것을 더 포함하는데, 프레임 기반의 일련은, 프레임 레이트에서 CM에 의해 노출될, 또는 노출된 미리 결정된 수의 연속하는 이미지 데이터 프레임에 걸친 윈도우와 관련된다.
제3 실시형태의 향상에서, 매체는, 프로세서에 의한 실행시, 프로세서로 하여금 또한, 세트의 각각의 프레임의 수에 대한 프레임 레이트의 비율보다 더 빈번하게, CM 제어 파라미터 값, 또는 ISP 파라미터 값의 세트를 생성하게 하는, 저장된 명령어를 더 포함한다.
하나 이상의 제4 실시형태에서, 디지털 카메라 제어 알고리즘을 이용한 이미지 프로세싱의 컴퓨터 구현 방법은, 카메라 하드웨어 모듈(CM) 제어 파라미터 값 또는 ISP 파라미터 값의 세트에 액세스하거나 또는 그 세트를 수신하는 것을 포함하는데, 각각의 세트는, 프레임 레이트에서 CM에 의해 노출될, 또는 노출된 미리 결정된 수의 연속하는 이미지 데이터 프레임에 걸친 윈도우와 관련되는 프레임 기반의 일련의 값을 포함한다. 방법은, 연속하는 이미지 데이터 프레임을 노출시키는 것과 관련되는 CM의 액션과 동기하여, 제어 파라미터 값을 카메라 제어 버스로 또는 ISP 파라미터 값을 ISP로 출력하는 것을 포함한다.
제4 실시형태의 향상에서, 제어 파라미터 값을 카메라 제어 버스로 또는 ISP 파라미터 값을 ISP로 출력하는 것은, 프레임 레이트에서 연속하는 프레임의 대응하는 쌍을 노출시키는 것과 관련되는 CM의 액션과 동기하여, 프레임 기반의 일련에서의 두 개 이상의 연속하는 값을 카메라 제어 버스 또는 ISP로 순차적으로 제공하는 것, 또는 프레임 레이트에서 연속하는 프레임의 대응하는 쌍을 노출시키는 것과 관련되는 CM의 액션과 동기하여, 프레임 기반의 일련에서의 제1 값, 및 제2 프레임 기반의 일련에서의 제2 값을 카메라 제어 버스 또는 ISP로 순차적으로 제공하는 것 중 적어도 하나를 더 포함한다.
제4 실시형태의 향상에서, 제어 파라미터 값을 카메라 제어 버스로 또는 ISP 파라미터 값을 ISP로 출력하는 것은, 제1 일련이 더 최근에 수신되었는지 또는 제2 일련이 더 최근에 수신되었는지의 여부에 따라, 제1 일련의 프레임에 대응하는 값과 제2 일련의 프레임에 대응하는 값 중 하나를 선택하는 것에 의해, 윈도우의 프레임과 관련되는 최신의 값을 제어 버스 또는 ISP로 제공하는 것을 더 포함한다.
하나 이상의 제5 실시형태에서, 하나 이상의 컴퓨터 판독가능 저장 매체는, 프로세서에 의한 실행시, 프로세서로 하여금 방법을 수행하게 하는 명령어를 포함한다. 수행되는 방법은, 카메라 하드웨어 모듈(CM) 제어 파라미터 값 또는 ISP 파라미터 값의 세트에 액세스하는 것 또는 그 세트를 수신하는 것을 포함하는데, 각각의 세트는 프레임 레이트에서 CM에 의해 노출될, 또는 노출된 미리 결정된 수의 연속하는 이미지 데이터 프레임에 걸친 윈도우와 관련되는 프레임 기반의 일련의 값을 포함한다. 수행되는 방법은, 연속하는 이미지 데이터 프레임을 노출시키는 것과 관련되는 CM의 액션과 동기하여, 제어 파라미터 값을 카메라 제어 버스로 또는 ISP 파라미터 값을 ISP로 출력하는 것을 더 포함한다.
제5 실시형태의 향상에서, 매체는, 프로세서에 의한 실행시, 프로세서로 하여금 또한, 제1 일련의 값이 더 최근에 수신되었는지 또는 제2 일련의 값이 더 최근에 수신되었는지의 여부에 따라, 제1 일련의 프레임에 대응하는 값과 제2 일련의 프레임에 대응하는 값 중 하나를 선택하는 것에 의해, 윈도우의 프레임과 관련되는 최신의 값을 제어 버스 또는 ISP로 제공하는 것을 더 포함하는 방법을 수행하게 하는 저장된 명령어를 더 포함한다.
하나 이상의 제6 실시형태에서, 하나 이상의 컴퓨터 판독가능 저장 매체는, 프로세서에 의한 실행시, 프로세서로 하여금 제2 실시형태 중 임의의 하나를 수행하게 하는 명령어를 포함한다.
하나 이상의 제6 실시형태에서, 하나 이상의 컴퓨터 판독가능 저장 매체는, 프로세서에 의한 실행시, 프로세서로 하여금 제4 실시형태 중 임의의 하나를 수행하게 하는 명령어를 포함한다.
하나 이상의 제7 실시형태에서, 디지털 카메라 제어 알고리즘을 이용한 이미지 프로세싱을 위한 플랫폼은, 카메라 제어 알고리즘에 대한 호출을 수신하기 위한 입력 수단을 포함한다. 플랫폼은, 호출에 응답하여, 자동 초점, 자동 노출, 또는 자동 화이트 밸런스 라이브러리 중 적어도 하나에 액세스하기 위한, 입력 수단에 커플링되는 라이브러리 수단을 포함한다. 플랫폼은, 카메라 하드웨어 모듈(CM) 제어 파라미터 값의 세트, 또는 이미지 신호 프로세싱(ISP) 파라미터 값의 세트 - 각각의 세트는 라이브러리에 기초하여 결정되는 프레임 기반의 일련의 값을 포함함 - 를 생성하기 위한, 라이브러리 수단에 커플링되는 제1 카메라 제어 수단을 포함하는데, 프레임 기반의 일련은, 프레임 레이트에서 CM에 의해 노출될, 또는 노출된 미리 결정된 수의 연속하는 이미지 데이터 프레임에 걸친 윈도우와 관련된다.
하나 이상의 제7 실시형태의 향상에서, 플랫폼은, 카메라 하드웨어 모듈(CM) 제어 파라미터 값 또는 ISP 파라미터 값의 세트에 액세스하기 위한 또는 그 세트를 수신하기 위한, 제1 카메라 제어 수단에 커플링되는 제2 카메라 제어 수단을 더 포함한다. 제2 카메라 제어 수단은 또한, 연속하는 이미지 데이터 프레임을 노출시키는 것과 관련되는 CM의 액션과 동기하여, 제어 파라미터 값을 카메라 제어 버스로 또는 ISP 파라미터 값을 ISP로 출력한다.
하나 이상의 제8 실시형태에서, 디지털 카메라 제어 알고리즘을 이용한 이미지 프로세싱을 위한 플랫폼은, 카메라 하드웨어 모듈(CM) 제어 파라미터 값 또는 ISP 파라미터 값의 세트에 액세스하기 위한 또는 그 세트를 수신하기 위한 카메라 제어 수단을 포함하는데, 각각의 세트는, 프레임 레이트에서 CM에 의해 노출될, 또는 노출된 미리 결정된 수의 연속하는 이미지 데이터 프레임에 걸친 윈도우와 관련되는 프레임 기반의 일련의 값을 포함한다. 카메라 제어 수단은 또한, 연속하는 이미지 데이터 프레임을 노출시키는 것과 관련되는 CM의 액션과 동기하여, 제어 파라미터 값을 카메라 제어 버스로 또는 ISP 파라미터 값을 ISP로 출력한다.
제8 실시형태의 향상에서, 제어 파라미터 값을 카메라 제어 버스로 또는 ISP 파라미터 값을 ISP로 출력하는 것은, 프레임 레이트에서 연속하는 프레임의 대응하는 쌍을 노출시키는 것과 관련되는 CM의 액션과 동기하여, 프레임 기반의 일련의 값 중 두 개 이상의 연속하는 값을 카메라 제어 버스 또는 ISP로 순차적으로 제공하는 것, 또는 프레임 레이트에서 연속하는 프레임의 대응하는 쌍을 노출시키는 것과 관련되는 CM의 액션과 동기하여, 프레임 기반의 일련의 값 중 제1 값, 및 제2 프레임 기반의 일련의 값 중 제2 값을 카메라 제어 버스 또는 ISP로 순차적으로 제공하는 것 중 적어도 하나를 더 포함한다.
하나 이상의 제9 실시형태에서, 디지털 카메라 제어 알고리즘을 이용한 이미지 프로세싱을 위한 플랫폼은, 제2 실시형태 중 임의의 하나를 수행하는 수단을 포함한다.
하나 이상의 제10 실시형태에서, 디지털 카메라 제어 알고리즘을 이용한 이미지 프로세싱을 위한 플랫폼은, 제4 실시형태 중 임의의 하나를 수행하는 수단을 포함한다.
실시형태는 이렇게 설명된 예시적인 실시형태로 제한되지 않고, 첨부된 청구범위의 범위를 벗어나지 않으면서 수정 및 변경되어 실시될 수 있다는 것이 인식될 것이다. 예를 들면, 상기 실시형태는 피쳐의 특정 조합을 포함할 수도 있다. 그러나, 상기 예는 이와 관련하여 제한되지 않으며, 실시형태에서, 상기 예는 이러한 피쳐의 서브세트만을 담당하는(undertaking) 것, 이러한 피쳐의 상이한 순서를 담당하는 것, 이러한 피쳐의 상이한 조합을 담당하는 것, 및/또는 명시적으로 열거된 이들 피쳐 이외의 추가 피쳐를 담당하는 것을 포함할 수도 있다. 따라서, 범위는, 이러한 청구범위의 자격이 부여되는 균등물의 모든 범위와 함께, 첨부된 청구범위를 참조로 결정되어야 한다.

Claims (22)

  1. 디지털 카메라 제어 알고리즘을 이용한 이미지 프로세싱을 위한 플랫폼으로서,
    하나 이상의 카메라 하드웨어 모듈(camera hardware module; CM)과 커플링되는 카메라 제어 버스와,
    프레임 기반의 일련(series)의 CM 제어 파라미터 값을 생성하는 로직 회로부를 포함하는 소프트 실시간(soft real-time; SRT) 카메라 컨트롤러 - 상기 프레임 기반의 일련의 CM 제어 파라미터 값은 프레임 레이트에 따라 CM에 의해 노출될 미리 결정된 수의 연속하는 이미지 데이터 프레임에 걸치는 윈도우와 관련됨 - 와,
    상기 SRT 카메라 컨트롤러 및 상기 카메라 제어 버스 모두에 커플링되는 하드 실시간(hard real-time; HRT) 카메라 컨트롤러를 포함하고,
    상기 HRT 카메라 컨트롤러는,
    상기 SRT 카메라 컨트롤러로부터 간헐적으로 상기 제어 파라미터 값을 수신하고,
    연속하는 이미지 데이터 프레임을 노출시키는 것과 관련되는 CM의 액션과 동기하여, 상기 제어 파라미터 값을 상기 카메라 제어 버스로 출력하는
    로직 회로부를 포함하는
    이미지 프로세싱을 위한 플랫폼.
  2. 제1항에 있어서,
    상기 HRT 카메라 컨트롤러는,
    상기 프레임 레이트로 연속하는 프레임의 대응하는 쌍을 노출시키는 것과 관련되는 CM의 액션과 동기하여, 상기 프레임 기반의 일련의 CM 제어 파라미터 값 중 적어도 두 개의 연속하는 제어 파라미터 값을, 상기 제어 버스로 순차적으로 제공하거나,
    상기 프레임 레이트로 연속하는 프레임의 상기 대응하는 쌍을 노출시키는 것과 관련되는 상기 CM의 액션과 동기하여, 상기 프레임 기반의 일련의 CM 제어 파라미터 값 중 제1 값, 및 제2 프레임 기반의 일련의 CM 제어 파라미터 값 중 제2 값을 순차적으로 제공하는
    이미지 프로세싱을 위한 플랫폼.
  3. 제2항에 있어서,
    상기 HRT 카메라 컨트롤러는, 제1 일련의 CM 제어 파라미터 값이 더 최근에 수신되었는지 또는 제2 일련의 CM 제어 파라미터 값이 더 최근에 수신되었는지의 여부에 따라, 상기 제어 버스에게, 제1 일련의 CM 제어 파라미터 값 내의, 상기 윈도우 내의 프레임에 대응하는 제어 파라미터 값과, 제2 일련의 CM 제어 파라미터 값 내의, 상기 프레임에 대응하는 제어 파라미터 값 중 하나를 선택하는 것에 의해 상기 윈도우의 프레임과 관련되는 최신의 제어 파라미터 값을 제공하는
    이미지 프로세싱을 위한 플랫폼.
  4. 제1항에 있어서,
    상기 HRT 카메라 컨트롤러는,
    상기 SRT 카메라 컨트롤러로부터 CM 제어 파라미터 값을 수신하고,
    제어 파라미터 값의 제2 세트가 상기 SRT 카메라 컨트롤러로부터 수신될 때까지, 프레임 단위 기반으로 일련의 제어 파라미터 값을 인덱싱하는 것에 의해, 제어 파라미터 값을 상기 제어 버스로 팝핑하고(pop),
    제어 파라미터 값의 다른 세트가 수신될 때까지, 프레임 단위 기반으로 상기 값을 인덱싱하는 것에 의해, 제어 파라미터 값의 상기 제2 세트로부터의 제어 파라미터 값을 팝핑하는
    로직 회로부를 포함하는
    이미지 프로세싱을 위한 플랫폼.
  5. 제1항에 있어서,
    각각의 프레임 기반의 일련의 CM 제어 파라미터 값은 노출 값 수렴 계획(exposure value convergence plan)과 관련되고 프레임 레이트에 따라 CM에 의해 노출될 미리 결정된 수의 연속하는 이미지 데이터 프레임에 걸치고,
    노출 값 세트는 상기 프레임 레이트와 비동기적으로 생성되며,
    상기 HRT 카메라 컨트롤러는,
    각각의 세트에서의 프레임의 수에 대한 상기 프레임 레이트의 비율보다 더 빈번하게 상기 SRT 카메라 컨트롤러로부터 상기 노출 값의 세트를 수신하고,
    노출 값의 업데이트된 세트가 수신될 때까지, 프레임 단위 기반으로 노출 값을 인덱싱하는 것에 의해, 상기 프레임 레이트에서, 노출 값의 제1 세트로부터의 노출 값을 상기 제어 버스로 순차적으로 팝핑하고,
    제어 파라미터 값의 상기 세트가 다시 업데이트될 때까지, 프레임 단위 기반으로 노출 값을 인덱싱하는 것에 의해, 상기 프레임 레이트에서, 노출 값의 상기 업데이트된 세트로부터의 노출 값을 상기 제어 버스로 순차적으로 팝핑하는
    이미지 프로세싱을 위한 플랫폼.
  6. 제1항에 있어서,
    상기 HRT 카메라 컨트롤러에 커플링되는 이미지 신호 프로세서(ISP)를 더 포함하고,
    상기 SRT 카메라 컨트롤러는 ISP 파라미터 값을 반복적으로 생성하는 로직 회로부를 더 포함하고,
    상기 HRT 카메라 컨트롤러는 또한 상기 SRT 카메라 컨트롤러 및 상기 ISP 모두에 커플링되며, 상기 HRT 카메라 컨트롤러는
    상기 SRT 카메라 컨트롤러로부터 간헐적으로 상기 ISP 파라미터 값을 수신하고,
    연속하는 이미지 데이터 프레임을 프로세싱하는 것과 관련되는 상기 ISP의 액션과 동기하여, ISP 파라미터 값을 상기 ISP로 증분적으로 출력하는
    로직 회로부를 더 포함하는
    이미지 프로세싱을 위한 플랫폼.
  7. 제6항에 있어서,
    상기 SRT 카메라 컨트롤러는 프레임 기반의 일련의 ISP 파라미터 값, 또는 그 표시를 생성하고, 상기 프레임 기반의 일련의 ISP 파라미터 값은 상기 ISP에 의해 프로세싱될 미리 결정된 수의 연속하는 이미지 데이터 프레임에 걸치는 윈도우와 관련되고,
    상기 HRT 카메라 컨트롤러는, 연속하는 프레임의 대응하는 쌍을 프로세싱하는 것과 관련되는 상기 ISP의 액션과 동기하여, 상기 프레임 기반의 일련의 ISP 파라미터 값 내의, 또는 그 상기 표시로부터 유도되는 적어도 두 개의 연속하는 제어 파라미터 값을 상기 ISP로 순차적으로 제공하는
    이미지 프로세싱을 위한 플랫폼.
  8. 제6항에 있어서,
    하나 이상의 CM의 출력에, 그리고 상기 HRT 카메라 컨트롤러에 커플링되는 이미지 데이터 수신기를 더 포함하고,
    상기 이미지 데이터 수신기는,
    프레임에 대한 원시 이미지 데이터 및 상기 원시 이미지 데이터의 수집과 연관된 CM 제어 파라미터를 나타내는 임베딩된 데이터 둘 다를 수신하고,
    상기 원시 이미지 데이터를 상기 ISP로 그리고 상기 임베딩된 데이터를 상기 HRT 카메라 컨트롤러로 출력하는
    로직 회로부를 포함하고,
    상기 HRT 카메라 컨트롤러는 또한, 상기 임베딩된 데이터에 기초하여 적어도 하나의 ISP 파라미터 값을 수정하거나 또는 보충하는
    이미지 프로세싱을 위한 플랫폼.
  9. 제1항에 있어서,
    프레임 레이트에서 이미지 데이터 프레임을 노출시키는 상기 CM과,
    상기 CM 제어 파라미터 값을 생성하기 위해 상기 SRT 카메라 컨트롤러에 의해 액세스되는 자동 노출 또는 자동 화이트 밸런스 라이브러리 중 적어도 하나를 저장하기 위한, 상기 SRT 카메라 컨트롤러에 커플링되는 메모리와,
    상기 이미지 데이터 프레임을 프로세싱하기 위한, 상기 CM의 출력에 커플링되는 이미지 신호 프로세서(image signal processor; ISP)와,
    상기 노출된 이미지 데이터 프레임의 표현을 디스플레이하거나 또는 저장하기 위한, 상기 ISP의 다운스트림에 커플링되는 디스플레이 디바이스 또는 스토리지 디바이스 중 적어도 하나를 더 포함하는
    이미지 프로세싱을 위한 플랫폼.
  10. 디지털 카메라 제어 알고리즘을 이용하여 이미지 프로세싱하는 컴퓨터로 구현된 방법으로서,
    카메라 제어 알고리즘에 대한 호출을 수신하는 단계와,
    상기 호출에 응답하여, 자동 초점, 자동 노출, 또는 자동 화이트 밸런스 라이브러리 중 적어도 하나에 액세스하는 단계와,
    카메라 하드웨어 모듈(CM) 제어 파라미터 값의 세트, 또는 이미지 신호 프로세싱(ISP) 파라미터 값의 세트를 생성하는 단계 - 각각의 세트는 상기 라이브러리에 기초하여 결정되는 프레임 기반의 일련의 값을 포함함 - 를 포함하고,
    상기 프레임 기반의 일련의 값은, 프레임 레이트에 따라 CM에 의해 노출될, 또는 노출된 미리 결정된 수의 연속하는 이미지 데이터 프레임에 걸친 윈도우와 관련되는
    이미지 프로세싱하는 컴퓨터 구현 방법.
  11. 제10항에 있어서,
    상기 생성하는 단계는, 수신되는 각각의 호출에 응답하여 반복되고, 결과적인 CM 제어 파라미터 값, 또는 ISP 파라미터 값의 세트는, 상기 세트의 각각의 프레임의 수에 대한 상기 프레임 레이트의 비율보다 더 빈번하게 생성되는
    이미지 프로세싱하는 컴퓨터 구현 방법.
  12. 제10항에 있어서,
    디지털 카메라 제어 알고리즘에 대한 상기 호출을 수신하는 단계는, 자동 노출 제어 알고리즘에 대한 호출을 수신하는 단계를 더 포함하고,
    카메라 하드웨어 모듈(CM) 제어 파라미터 값의 상기 세트를 생성하는 단계는,
    프레임의 시퀀스를 따라 휘도에서의 평탄한 변화(a smooth change)를 제공하기 위해, 목표 노출 파라미터 또는 목표 총 노출 중 적어도 하나를 비롯한 노출 수렴 계획을 결정하는 단계와,
    상기 노출 수렴 계획에 기초하여 상기 미리 결정된 수의 연속하는 이미지 데이터 프레임에 걸쳐 제1 노출로부터 제2 노출로 수렴하는 노출 값의 세트를 생성하는 단계를 더 포함하는
    이미지 프로세싱하는 컴퓨터 구현 방법.
  13. 제10항에 있어서,
    카메라 하드웨어 모듈(CM) 제어 파라미터 값 또는 ISP 파라미터 값의 상기 세트에 액세스하거나 또는 상기 세트를 수신하는 단계와,
    연속하는 이미지 데이터 프레임을 노출시키는 것과 관련되는 CM의 액션과 동기하여, 상기 제어 파라미터 값을 카메라 제어 버스로 또는 상기 ISP 파라미터 값을 ISP로 출력하는 단계를 더 포함하는
    이미지 프로세싱하는 컴퓨터 구현 방법.
  14. 제13항에 있어서,
    CM 제어 파라미터 값, 또는 ISP 파라미터 값의 상기 세트를 생성하는 단계는, 프레임 기반의 일련의 값을 생성하는 단계를 더 포함하고,
    상기 제어 파라미터 값을 상기 카메라 제어 버스로 또는 상기 ISP 파라미터 값을 상기 ISP로 출력하는 단계는,
    상기 프레임 레이트에서 연속하는 프레임의 대응하는 쌍을 노출시키는 것과 관련되는 CM의 액션과 동기하여, 상기 프레임 기반의 일련의 값 중 두 개 이상의 연속하는 값을 상기 카메라 제어 버스 또는 ISP로 순차적으로 제공하는 단계; 또는
    상기 프레임 레이트에서 연속하는 프레임의 상기 대응하는 쌍을 노출시키는 것과 관련되는 상기 CM의 액션과 동기하여, 상기 프레임 기반의 일련의 값 중 제1 값, 및 제2 프레임 기반의 일련의 값 중 제2 값을, 상기 카메라 제어 버스 또는 ISP로 순차적으로 제공하는 단계 중 적어도 하나를 더 포함하는
    이미지 프로세싱하는 컴퓨터 구현 방법.
  15. 제13항에 있어서,
    상기 제어 파라미터 값을 상기 카메라 제어 버스로 또는 상기 ISP 파라미터 값을 상기 ISP로 출력하는 단계는, 제1 일련의 값이 더 최근에 수신되었는지 또는 제2 일련의 값이 더 최근에 수신되었는지의 여부에 따라, 상기 제1 일련의 값 내의, 상기 윈도우 내의 프레임에 대응하는 값과 상기 제2 일련의 값 내의 상기 프레임에 대응하는 값 중 하나를 선택하는 것에 의해, 상기 윈도우의 프레임과 관련되는 최신의 값을 상기 제어 버스 또는 상기 ISP로 제공하는 단계를 더 포함하는
    이미지 프로세싱하는 컴퓨터 구현 방법.
  16. 제13항에 있어서,
    상기 제어 파라미터 값을 상기 카메라 제어 버스로 또는 상기 ISP 파라미터 값을 상기 ISP로 출력하는 단계는,
    프레임 단위 기반으로 값을 인덱싱하는 것에 의해 제1 세트의 값으로부터 값을 상기 카메라 제어 버스로 또는 ISP로 팝핑하는 단계와,
    제2 세트의 값을 수신하는 단계와,
    다른 세트의 값이 수신될 때까지, 상기 제2 세트에서의 가장 낮은 프레임 번호와 관련되는 값으로 시작하여 프레임 단위 기반으로 값을 인덱싱하는 것에 의해 상기 제2 세트의 값으로부터의 값을 팝핑하는 단계를 더 포함하는
    이미지 프로세싱하는 컴퓨터 구현 방법.
  17. 제13항에 있어서,
    상기 자동 초점, 상기 자동 노출, 또는 상기 자동 화이트 밸런스 라이브러리 중 상기 적어도 하나를 메모리 공간에 저장하는 단계와,
    수신된 CM 제어 파라미터 값에 기초하여 상기 프레임 레이트에서 이미지 데이터 프레임을 노출시키는 단계와,
    수신된 ISP 파라미터 값에 기초하여 상기 이미지 데이터 프레임을 프로세싱하는 단계와,
    상기 노출된 이미지 데이터 프레임의 표현을 디스플레이하거나 또는 저장하는 단계를 더 포함하는
    이미지 프로세싱하는 컴퓨터 구현 방법.
  18. 프로세서에 의한 실행시, 상기 프로세서로 하여금 방법을 수행하게 하는 명령어가 저장된 하나 이상의 컴퓨터 판독가능 저장 매체로서,
    상기 방법은,
    디지털 카메라 제어 알고리즘에 대한 호출을 수신하는 것과,
    상기 호출을 수신하는 것에 응답하여, 자동 초점, 자동 노출, 또는 자동 화이트 밸런스 라이브러리 중 적어도 하나에 액세스하는 것과,
    카메라 하드웨어 모듈(CM) 제어 파라미터 값의 세트, 또는 이미지 신호 프로세싱(ISP) 파라미터 값의 세트를 생성하는 것 - 각각의 세트는 상기 라이브러리에 기초하여 결정되는 프레임 기반의 일련의 값을 포함하고,
    상기 프레임 기반의 일련의 값은, 프레임 레이트에서 CM에 의해 노출될, 또는 노출된 미리 결정된 수의 연속하는 이미지 데이터 프레임에 걸친 윈도우와 관련됨 - 을 포함하는
    컴퓨터 판독가능 저장 매체.
  19. 제18항에 있어서,
    상기 프로세서에 의한 실행시, 상기 프로세서로 하여금 또한, CM 제어 파라미터 값, 또는 ISP 파라미터 값의 세트를, 상기 세트의 각각의 프레임의 수에 대한 상기 프레임 레이트의 비율보다 더 빈번하게 생성하게 하는 명령어를 더 포함하는
    컴퓨터 판독가능 저장 매체.
  20. 디지털 카메라 제어 알고리즘을 이용하여 이미지 프로세싱하는 컴퓨터로 구현된 방법으로서,
    카메라 하드웨어 모듈(CM) 제어 파라미터 값 또는 ISP 파라미터 값의 세트에 액세스하거나 또는 CM 제어 파라미터 값 또는 ISP 파라미터 값의 세트를 수신하는 것 - 각각의 세트는, 프레임 레이트에서 CM에 의해 노출될, 또는 노출된 미리 결정된 수의 연속하는 이미지 데이터 프레임에 걸친 윈도우와 관련되는 프레임 기반의 일련의 값을 포함함 - 과,
    연속하는 이미지 데이터 프레임을 노출시키는 것과 관련되는 CM의 액션과 동기하여, 상기 CM 제어 파라미터 값을 카메라 제어 버스로 또는 상기 ISP 파라미터 값을 ISP로 출력하는 것을 포함하는
    이미지 프로세싱하는 컴퓨터 구현 방법.
  21. 제 20 항에 있어서,
    상기 CM 제어 파라미터 값을 상기 카메라 제어 버스로 또는 상기 ISP 파라미터 값을 ISP로 출력하는 것은,
    상기 프레임 레이트에서 연속하는 프레임의 대응하는 쌍을 노출시키는 것과 관련되는 CM의 액션과 동기하여, 상기 프레임 기반의 일련의 값 중 두 개 이상의 연속하는 값을 카메라 제어 버스 또는 ISP로 순차적으로 제공하는 것, 또는
    상기 프레임 레이트에서 연속하는 프레임의 대응하는 쌍을 노출시키는 것과 관련되는 상기 CM의 액션과 동기하여, 상기 프레임 기반의 일련의 값 중 제1 값, 및 제2 프레임 기반의 일련의 값 중 제2 값을 상기 카메라 제어 버스 또는 ISP로 순차적으로 제공하는 것 중 적어도 하나를 더 포함하는
    이미지 프로세싱하는 컴퓨터 구현 방법.
  22. 제 20 항에 있어서,
    상기 제어 파라미터 값을 상기 카메라 제어 버스로 또는 상기 ISP 파라미터 값을 상기 ISP로 출력하는 것은, 제1 일련의 값이 더 최근에 수신되었는지 또는 제2 일련의 값이 더 최근에 수신되었는지의 여부에 따라, 상기 제1 일련의 값 내의, 상기 윈도우 내의 프레임에 대응하는 값과 상기 제2 일련의 값 내의 상기 프레임에 대응하는 값 중 하나를 선택하는 것에 의해, 상기 윈도우의 프레임과 관련되는 최신의 값을 상기 제어 버스 또는 상기 ISP로 제공하는 것을 더 포함하는
    이미지 프로세싱하는 컴퓨터 구현 방법.
KR1020167034470A 2014-07-10 2015-05-19 가속된 카메라 제어 알고리즘을 위한 플랫폼 아키텍쳐 KR101800702B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/327,933 US9591195B2 (en) 2014-07-10 2014-07-10 Platform architecture for accelerated camera control algorithms
US14/327,933 2014-07-10
PCT/US2015/031588 WO2016007229A1 (en) 2014-07-10 2015-05-19 Platform architecture for accelerated camera control algorithms

Publications (2)

Publication Number Publication Date
KR20170002601A KR20170002601A (ko) 2017-01-06
KR101800702B1 true KR101800702B1 (ko) 2017-11-23

Family

ID=55064656

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167034470A KR101800702B1 (ko) 2014-07-10 2015-05-19 가속된 카메라 제어 알고리즘을 위한 플랫폼 아키텍쳐

Country Status (5)

Country Link
US (1) US9591195B2 (ko)
EP (1) EP3167606A4 (ko)
KR (1) KR101800702B1 (ko)
CN (1) CN106471797B (ko)
WO (1) WO2016007229A1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019156538A1 (ko) * 2018-02-12 2019-08-15 삼성전자 주식회사 카메라를 이용하여 획득한 이미지를 압축 처리하는 전자 장치 및 그 동작 방법

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10929945B2 (en) * 2017-07-28 2021-02-23 Google Llc Image capture devices featuring intelligent use of lightweight hardware-generated statistics
CN109655010B (zh) * 2018-10-31 2020-07-07 上海畅联智融通讯科技有限公司 一种相机动态网格化摄物测量的方法
CN110062161B (zh) * 2019-04-10 2021-06-25 Oppo广东移动通信有限公司 图像处理器、图像处理方法、拍摄装置和电子设备
CN110312141A (zh) * 2019-07-05 2019-10-08 杭州当虹科技股份有限公司 一种事件型互联网直播方法
CN113852762B (zh) * 2021-09-27 2022-07-26 荣耀终端有限公司 算法调用方法与算法调用装置
CN114640798B (zh) * 2022-05-09 2022-10-04 荣耀终端有限公司 图像处理方法、电子设备及计算机存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010050798A (ja) * 2008-08-22 2010-03-04 Sanyo Electric Co Ltd 電子カメラ

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6486915B2 (en) * 1999-04-20 2002-11-26 Intel Corporation Determining a final exposure setting automatically for a solid state camera without a separate light metering circuit
US20050253937A1 (en) * 2004-05-17 2005-11-17 Micron Technology, Inc. Real-time exposure control for automatic light control
JP2007116372A (ja) 2005-10-19 2007-05-10 Fujifilm Corp デジタルカメラ
US8681236B2 (en) * 2009-06-18 2014-03-25 Samsung Electronics Co., Ltd. Apparatus and method for reducing shutter lag of a digital camera
US8837576B2 (en) * 2009-11-06 2014-09-16 Qualcomm Incorporated Camera parameter-assisted video encoding
KR101590872B1 (ko) 2009-11-09 2016-02-02 삼성전자주식회사 카메라 시스템 및 이미지 형성 장치
US8531542B2 (en) * 2010-09-01 2013-09-10 Apple Inc. Techniques for acquiring and processing statistics data in an image signal processor
CN103109523B (zh) * 2010-09-14 2016-06-15 富士胶片株式会社 成像装置和成像方法
CN102131053A (zh) * 2011-01-12 2011-07-20 首都师范大学 一种适用于高速成像系统的数据采集、编码和存储方法
JP5978829B2 (ja) * 2011-09-14 2016-08-24 株式会社リコー 撮像素子の露光制御装置及び方法、並びに画像撮像装置
JP5904753B2 (ja) * 2011-10-17 2016-04-20 キヤノン株式会社 画像処理装置及び画像処理装置の制御方法
KR102053316B1 (ko) 2012-08-01 2020-01-08 삼성전자주식회사 디지털 촬영장치

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010050798A (ja) * 2008-08-22 2010-03-04 Sanyo Electric Co Ltd 電子カメラ

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2019156538A1 (ko) * 2018-02-12 2019-08-15 삼성전자 주식회사 카메라를 이용하여 획득한 이미지를 압축 처리하는 전자 장치 및 그 동작 방법
US11330227B2 (en) 2018-02-12 2022-05-10 Samsung Electronics Co., Ltd Electronic device for compressing image acquired by using camera, and operation method therefor

Also Published As

Publication number Publication date
CN106471797B (zh) 2020-01-31
EP3167606A1 (en) 2017-05-17
CN106471797A (zh) 2017-03-01
WO2016007229A1 (en) 2016-01-14
US20160014312A1 (en) 2016-01-14
KR20170002601A (ko) 2017-01-06
EP3167606A4 (en) 2018-03-07
US9591195B2 (en) 2017-03-07

Similar Documents

Publication Publication Date Title
KR101800702B1 (ko) 가속된 카메라 제어 알고리즘을 위한 플랫폼 아키텍쳐
CN106797451B (zh) 具有模型验证和管理的视觉对象跟踪系统
JP6472872B2 (ja) リアル・タイム・ビデオ要約
JP5942301B2 (ja) 自動露出制御のコンピュータ実装方法、自動露出制御を用いた画像処理のためのシステム、コンピュータ可読媒体を持つ物品、コンピュータ実装方法を実行させる複数の命令を含むプログラム、およびコンピュータ実装方法を実行する手段を備える装置
CN110177214B (zh) 图像处理器、图像处理方法、拍照装置及电子设备
CN107077313B (zh) 用于非媒体内容的远程显示的改进延迟和效率
US9131158B2 (en) Moving-image capturing apparatus and electronic zoom method for moving image
EP3213256A1 (en) Global matching of multiple images
CN115176455A (zh) 功率高效的动态电子图像稳定
KR102186383B1 (ko) 이미지를 처리하는 전자장치 및 방법
CN114827696A (zh) 一种跨设备的音视频数据同步播放的方法和电子设备
CN114390188A (zh) 一种图像处理方法和电子设备
CN114816686A (zh) 计算任务的处理方法、电子设备以及存储介质
US9374526B2 (en) Providing frame delay using a temporal filter
US11877048B2 (en) Camera initialization for reduced latency
TW202301266A (zh) 自動內容相關影像處理演算法選擇的方法及系統
CN114298889A (zh) 图像处理电路和图像处理方法
CN116012262B (zh) 一种图像处理方法、模型训练方法及电子设备
CN116664630B (zh) 一种图像处理方法和电子设备
CN117082295B (zh) 图像流处理方法、设备及存储介质
CN117678225A (zh) 用于实时指导编码的方法及设备
CN115767287B (zh) 图像处理方法与电子设备
WO2022228196A1 (zh) 一种视频处理方法及相关装置
CN115460343A (zh) 图像处理方法、设备及存储介质

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant