KR102188613B1 - 컴퓨터―비전 애플리케이션들을 위한 적응형 데이터 경로 - Google Patents
컴퓨터―비전 애플리케이션들을 위한 적응형 데이터 경로 Download PDFInfo
- Publication number
- KR102188613B1 KR102188613B1 KR1020157027143A KR20157027143A KR102188613B1 KR 102188613 B1 KR102188613 B1 KR 102188613B1 KR 1020157027143 A KR1020157027143 A KR 1020157027143A KR 20157027143 A KR20157027143 A KR 20157027143A KR 102188613 B1 KR102188613 B1 KR 102188613B1
- Authority
- KR
- South Korea
- Prior art keywords
- image
- data path
- command
- providing
- application
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T1/00—General purpose image data processing
- G06T1/20—Processor architectures; Processor configuration, e.g. pipelining
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/60—Control of cameras or camera modules
- H04N23/617—Upgrading or updating of programs or applications for camera control
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/002—Specific input/output arrangements not covered by G06F3/01 - G06F3/16
- G06F3/005—Input arrangements through a video camera
-
- H04N5/23225—
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Human Computer Interaction (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Signal Processing (AREA)
- Studio Devices (AREA)
- Image Processing (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
본 발명의 실시예들은 컴퓨터-비전 애플리케이션들을 위한 적응형 데이터 경로를 제공한다. 본원에 제공된 기술들을 사용하여, 데이터 경로는 필요한 데이터를 제공하기 위해 컴퓨터-비전 애플리케이션의 필요성들에 대해 적응될 수 있다. 데이터 경로는 하나 이상의 센서들로부터의 이미지 데이터에 하나 이상의 필터들을 적용함으로써 적응될 수 있다. 일부 실시예들은 컴퓨터-비전 애플리케이션으로부터의 커맨드들을 해석할 수 있는 특수화된 명령-기반, 인-라인 프로세서를 포함하는 컴퓨터-비전 프로세싱 유닛을 사용할 수 있다.
Description
[0001] 모바일 폰들, 카메라들 및 다른 전자 디바이스들은 종종 비디오 또는 스틸 이미지 캡처와 같은 이미징 애플리케이션들을 위한 이미징 데이터를 캡처하고 프로세싱하기 위해 이미징 코어를 사용한다. 이미징 코어는, 데이터가 이미지 센서(예를 들면, 카메라)로부터 범용 프로세서와 같은 애플리케이션 프로세싱 유닛 및/또는 디스플레이로 흐를 수 있는 데이터 경로를 제공하는 하드웨어 및/또는 소프트웨어 컴포넌트들의 콜렉션을 포함한다. 많은 전자 디바이스들에서, 이미징 코어는 또한 컴퓨터-비전 애플리케이션들("기계-비전 애플리케이션들"로서 또한 알려짐)을 위해 사용된다.
[0002] 본 발명의 실시예들은 컴퓨터-비전 애플리케이션들을 위한 적응형 데이터 경로를 제공한다. 본원에 제공된 기술들을 사용하여, 데이터 경로는 데이터를 제공하기 위해 컴퓨터-비전 애플리케이션에 적응될 수 있다. 데이터 경로는 하나 이상의 센서들로부터의 이미지 데이터에 하나 이상의 필터들을 적용함으로써 적응될 수 있다. 일부 실시예들은, 컴퓨터-비전 애플리케이션으로부터의 커맨드들을 해석할 수 있는 특수화된 명령 기반, 인-라인 프로세서를 포함하는 컴퓨터-비전 프로세싱 유닛을 사용할 수 있다.
[0003] 본 개시에 따른, 컴퓨터-비전 애플리케이션들을 위한 적응형 데이터 경로를 제공하기 위한 예시적인 장치는, 애플리케이션 프로세싱 유닛 및 애플리케이션 프로세싱 유닛으로부터 별개로 프로그래밍 가능하고, 이미지 센서 모듈 및 애플리케이션 프로세싱 유닛에 통신 가능하게 커플링된 프로세싱 유닛을 포함한다. 프로세싱 유닛은 이미지 센서 모듈로부터 제 1 이미지를 수신하고, 애플리케이션 프로세싱 유닛에 의해 실행되는 제 1 컴퓨터-비전 애플리케이션에 기초하여, 복수의 이미지 프로세싱 기능들로부터 이미지 프로세싱 기능들의 제 1 서브세트를 선택하고, 이미지 프로세싱 기능들의 제 1 서브세트를 사용하여 제 1 이미지를 프로세싱하도록 구성된다.
[0004] 본 개시에 따른, 컴퓨터-비전 애플리케이션들을 위한 적응형 데이터 경로를 제공하기 위한 예시적인 방법은, 제 1 이미지를 수신하는 단계, 애플리케이션 프로세싱 유닛에 의해 실행되는 제 1 컴퓨터-비전 애플리케이션에 기초하여, 복수의 이미지 프로세싱 기능들로부터 이미지 프로세싱 기능들의 제 1 서브세트를 선택하는 단계, 및 이미지 프로세싱 기능들의 제 1 서브세트를 사용하여 제 1 이미지를 프로세싱하는 단계를 포함한다. 프로세싱하는 단계는 애플리케이션 프로세싱 유닛으로부터 분리된 유닛에서 발생한다.
[0005] 본 개시에 따른, 컴퓨터-비전 애플리케이션들을 위한 적응형 데이터 경로를 제공하기 위한 예시적인 프로세서는 제 1 이미지를 수신하기 위한 수단, 애플리케이션 프로세싱 유닛에 의해 실행되는 제 1 컴퓨터-비전 애플리케이션에 기초하여, 복수의 이미지 프로세싱 기능들로부터 이미지 프로세싱 기능들의 제 1 서브세트를 선택하기 위한 수단, 및 이미지 프로세싱 기능들의 제 1 서브세트를 사용하여 제 1 이미지를 프로세싱하기 위한 수단을 포함한다. 제 1 이미지를 프로세싱하기 위한 수단은 애플리케이션 프로세싱 유닛으로부터 분리된다.
[0006] 본 개시에 따른 예시적인 비일시적인 컴퓨터-판독 가능 매체는 명령들로 인코딩되고, 명령들은, 실행될 때, 프로세싱 유닛으로 하여금 제 1 이미지를 수신하는 동작, 애플리케이션 프로세싱 유닛에 의해 실행되는 제 1 컴퓨터-비전 애플리케이션에 기초하여, 복수의 이미지 프로세싱 기능들로부터 이미지 프로세싱 기능들의 제 1 서브세트를 선택하는 동작, 및 이미지 프로세싱 기능들의 제 1 서브세트를 사용하여 제 1 이미지를 프로세싱하는 동작을 포함하는 동작들을 수행하게 한다.
[0007] 설명에 따른 예시적인 방법은 광학 센서에 의해 캡처된 이미지로부터 유도된 정보를 이미지 신호 프로세서에서 수신하는 단계, 및 출력을 위한 데이터의 표시자를 이미지 신호 프로세서에서 수신하는 단계를 포함한다. 상기 방법은 수신된 표시자에 기초하여 수신된 정보를 프로세싱하는 단계 및 프로세싱된 정보를 출력하는 단계를 더 포함한다.
[0008] 상기 방법은 다음의 특징들 중 하나 이상을 포함할 수 있다. 출력을 위한 데이터의 표시자는 데이터가 생성되는 애플리케이션 또는 데이터가 생성되는 애플리케이션의 타입의 표시를 포함할 수 있다. 출력을 위한 데이터의 표시자는 요청된 데이터의 타입의 표시를 포함할 수 있다. 프로세싱은 수신된 정보의 양 또는 타입을 감소시키는 것 및/또는 수신된 정보와 원하는 특징들을 비교하는 것 및 원하는 특징들과 관련되지 않는 수신된 정보의 부분들을 제거하는 것을 포함할 수 있다. 부가적으로 또는 대안적으로, 프로세싱은 수신된 정보와 공지된 정보를 비교하는 것을 포함할 수 있고, 프로세싱된 정보를 출력하는 것은, 수신된 정보가 공지된 정보와 상이할 때, 경보를 출력하는 것을 포함할 수 있다. 프로세싱은 수신된 정보로부터의 출력을 위한 데이터를 식별 또는 생성하는 것을 포함할 수 있고, 프로세싱된 정보를 출력하는 것은, 데이터가 생성되거나 식별될 때에만 다른 유닛을 웨이크 업하는 것(예를 들면, 신호, 커맨드 등을 전송함으로써 다른 유닛으로 하여금 저전력 상태를 탈출하게 함)을 포함할 수 있다. 다른 유닛은 애플리케이션 프로세서일 수 있다.
[0009] 본 개시에 따른 다른 예시적인 방법은 출력 센서로부터 정보를 이미지 신호 프로세서에서 수신하는 단계, 및 컴퓨터-비전 애플리케이션, 컴퓨터-비전 애플리케이션의 타입 또는 컴퓨터-비전 애플리케이션의 상태의 식별을 이미지 신호 프로세서에서 수신하는 단계를 포함할 수 있다. 상기 방법은 식별에 기초하여 이미지 신호 프로세서의 컴퓨터-비전 모듈을 선택하는 단계, 및 선택된 컴퓨터-비전 모듈을 통해 이미지 신호 프로세서에서 정보를 프로세싱하는 단계를 더 포함할 수 있다.
[0010] 본 개시에 따른 또 다른 예시적인 방법은 광학 센서에 의해 캡처된 이미지로부터 유도된 정보를 이미지 신호 프로세서에서 수신하는 단계, 수신된 정보를 프로세싱하는 단계, 및 프로세싱된 정보를 소비할 애플리케이션 또는 애플리케이션 상태에 기초하여 프로세싱된 정보를 이미지 신호 프로세서로부터 애플리케이션 프로세서로 출력하는 단계를 포함할 수 있다.
[0011] 상기 방법은 다음의 특징들 중 하나 이상을 포함할 수 있다. 프로세싱되는 정보의 타입 또는 양은 애플리케이션 또는 애플리케이션 상태에 의존할 수 있다. 애플리케이션은 컴퓨터-비전 애플리케이션을 포함할 수 있다. 프로세싱된 정보는 애플리케이션에 의한 추가의 프로세싱을 위한 픽셀 데이터를 포함하고 및/또는 애플리케이션 프로세서를 인터럽트 또는 웨이크업할 수 있다. 애플리케이션 프로세서는, 이미지 신호 프로세서가 수신된 정보를 프로세싱하는 동안에, 수면하게 (예를 들면, 저전력 상태에서) 될 수 있다. 상기 방법은 애플리케이션 또는 애플리케이션 상태에 기초하여 이미지 신호 프로세서 내의 데이터 경로를 선택하는 단계를 더 포함하고, 프로세싱하는 단계는 선택된 데이터 경로를 사용하여 수신된 정보를 프로세싱하는 것을 포함한다.
[0012] 본원에 설명된 물품들 및/또는 기술들은 다음의 능력들뿐만 아니라 언급되지 않은 다른 능력들 중 하나 이상을 제공할 수 있다. 기술들은 데이터 경로를 컴퓨터-비전 애플리케이션들에 적응시킴으로써 증가된 효율을 제공할 수 있고, 이로써 프로세싱 오버헤드를 감소시킨다. 또한, 컴퓨터-비전 기능을 애플리케이션 프로세싱 유닛으로부터 데이터 경로로 오프로딩함으로써, 애플리케이션 프로세싱 유닛은, 데이터 경로가 오프로딩된 기능들을 수행하는 동안에 저전력 동작 모드에 진입할 수 있고, 추가로 전력 및 프로세싱 요구들을 감소시킨다. 이들 및 다른 실시예들은, 자신의 이점들 및 특징들 중 많은 것과 함께, 아래의 텍스트 및 첨부된 도면들과 관련하여 더 상세히 설명된다.
[0013] 도 1은 일 실시예에 따른, 디바이스의 특정 컴포넌트들을 예시한 간략한 블록도이다.
[0014] 도 2는 일 실시예에 따른, 데이터를 센서 모듈로부터 컴퓨터-비전 애플리케이션들 및 서비스들에 제공하기 위한 데이터 경로를 예시한 기능적 블록도이다.
[0015] 도 3은 일 실시예에 따른, 컴퓨터-비전 특수화 모듈의 이용 가능한 필터들의 세트의 도면이다.
[0016] 도 4는 도 3의 컴퓨터-비전 특수화 모듈의 컴포넌트들이 데이터 경로의 상이한 기능적 부분들로 그룹화될 수 있는 방법을 예시한 블록도이다.
[0017] 도 5a 및 도 5b는 컴퓨터-비전 특수화 모듈이 컴퓨터-비전 애플리케이션들 및 서비스들의 필요성에 기초하여 데이터 경로를 적응적으로 조절하는 상이한 필터 체인들을 사용할 수 있는 방법을 예시한 도면들이다.
[0018] 도 6은 일 실시예에 따른, 데이터의 상이한 세그먼트들에 대한 데이터 포트들을 제공하기 위해 데이터 스위칭을 사용하는 데이터 경로의 예시이다.
[0019] 도 7은 일 실시예에 따른, 컴퓨터-비전 애플리케이션들을 위한 적응형 데이터 경로를 제공하기 위한 방법의 실시예를 예시한다.
[0014] 도 2는 일 실시예에 따른, 데이터를 센서 모듈로부터 컴퓨터-비전 애플리케이션들 및 서비스들에 제공하기 위한 데이터 경로를 예시한 기능적 블록도이다.
[0015] 도 3은 일 실시예에 따른, 컴퓨터-비전 특수화 모듈의 이용 가능한 필터들의 세트의 도면이다.
[0016] 도 4는 도 3의 컴퓨터-비전 특수화 모듈의 컴포넌트들이 데이터 경로의 상이한 기능적 부분들로 그룹화될 수 있는 방법을 예시한 블록도이다.
[0017] 도 5a 및 도 5b는 컴퓨터-비전 특수화 모듈이 컴퓨터-비전 애플리케이션들 및 서비스들의 필요성에 기초하여 데이터 경로를 적응적으로 조절하는 상이한 필터 체인들을 사용할 수 있는 방법을 예시한 도면들이다.
[0018] 도 6은 일 실시예에 따른, 데이터의 상이한 세그먼트들에 대한 데이터 포트들을 제공하기 위해 데이터 스위칭을 사용하는 데이터 경로의 예시이다.
[0019] 도 7은 일 실시예에 따른, 컴퓨터-비전 애플리케이션들을 위한 적응형 데이터 경로를 제공하기 위한 방법의 실시예를 예시한다.
[0020] 다음의 설명은 도면들을 참조하여 제공되며, 도면들에서 동일한 참조 번호들은 전체에 걸쳐 동일한 엘리먼트들을 지칭하는데 사용된다. 하나 이상의 기술들의 다양한 세부사항들이 본원에 설명되지만, 다른 기술들이 또한 가능하다. 일부 경우들에서, 다양한 기술들의 설명을 용이하게 하기 위해 구조들 및 디바이스들은 블록도 형태로 도시된다.
[0021] 모바일 폰들, 태블릿들, 카메라들 등과 같은 모바일 디바이스들은 종종, 비디오 또는 스틸 이미지 캡처와 같은 이미징 애플리케이션들을 위한 이미징 데이터를 캡처하고 프로세싱할 때, 이미징 코어를 사용한다. 이미징 애플리케이션들을 실행하기 위해, 모바일 디바이스들은 통상적으로 이미지 캡처를 허용하는 하나 이상의 센서들, 이미징 데이터를 센서(들)로부터 플랫폼으로 인도하는 데이터 경로(하드웨어 및/또는 소프트웨어로 구현됨), 및 일부 프로세싱을 포함한다. 모바일 디바이스들이 역사적으로 이미징 애플리케이션들에 사용되었기 때문에, 모바일 디바이스들은 일반적으로 이미징 애플리케이션들을 위해 주로 구성된 데이터 경로를 갖는 이미징 코어를 포함한다.
[0022] 그러나, 많은 모바일 디바이스들은 이제 부가적으로 컴퓨터-비전 애플리케이션들을 실행할 수 있다. 카메라- 및 캠코더-관련 기능들을 처리하는 제한된 수의 애플리케이션들을 통상적으로 포함하는 이미징 애플리케이션들과 대조적으로, 컴퓨터-비전 애플리케이션들은 매우 다양한 애플리케이션들을 포함하여 동일하게 넓은 스펙트럼의 기능을 제공할 수 있다. 예를 들면, 컴퓨터-비전 애플리케이션들은 다음의 기능들 중 하나 이상을 제공할 수 있다.
1. 광의 변동의 검출,
2. 시청 장면의 변동의 검출,
3. 시각적 물체 검출,
4. 시각적 물체 특징 검출(예를 들면, 시각적 물체의 컬러들, 근접도, 모션 등),
5. 물체 추적, 및/또는
6. 플랫폼 안정성 검출.
일부 컴퓨터-비전 애플리케이션들은 이러한 기능들 이외에 또는 이에 대한 대안으로서 다른 기능들을 제공할 수 있다. 실제로, 모바일 디바이스들의 감지 및 프로세싱 능력들이 계속해서 성장하기 때문에, 부가적인 기능들이 부상할 가능성이 있을 것이다.
[0023] 그러한 컴퓨터-비전 애플리케이션들에 대한 충분한 데이터 경로를 제공하는데 있어서, 모바일 디바이스는 상대적으로 큰 양의 프로세싱을 요구하는 활성 상태들과, 상대적으로 적은 양의 프로세싱을 요구하는 상태들 사이에서 동작을 스위칭할 수 있다. 낮은 프로세싱 상태들은, 예를 들면, 컴퓨터-비전 애플리케이션들이 상대적으로 높은 양들의 프로세싱을 요구할 데이터 경로로부터 관심있는 특징들을 수신하지 않는 상태들이다. 배터리 전력공급되는 모바일 디바이스들에서, 높은 및 낮은 프로세싱 상태들 둘 모두의 효율적인 실행은 더 긴 배터리 수명을 제공할 수 있다. 그러나, 이전에 언급된 바와 같이, 모바일 디바이스들에 대한 이미징 코어는 통상적으로 이미징 애플리케이션들에 유리한 기능을 갖는 고정된 데이터 경로를 갖고, 그 데이터 경로는, 예를 들면, 높은 해상도들로 및/또는 높은 프레임 레이트들로 이미지들을 제공하도록 구성된다. 따라서, 모바일 디바이스가 컴퓨터-비전 애플리케이션들에 대해 높은 및 낮은 프로세싱 상태들 둘 모두를 효율적으로 실행하도록 허용할 수 있는 데이터 경로를 제공하는 것보다는, 통상적인 모바일 디바이스들은 종종 필요한 것보다 훨씬 더 많은 오버헤드를 갖는 데이터 경로들을 제공할 것이다. 부가적으로, 통상적인 모바일 디바이스들의 데이터 경로들이 종종 컴퓨터-비전 애플리케이션들에 의해 필요로 되는 필터링을 제공하지 않을 것이기 때문에, 이러한 필터링 중 많은 것이 일반적인 애플리케이션 프로세싱 유닛 상에서 발생한다. 이것은 전자 디바이스의 배터리 수명뿐만 아니라 사용자의 경험 품질(QOE)에 불리하게 영향을 줄 수 있다. 본원에 개시된 실시예들은, 컴퓨터-비전 애플리케이션들에 의존하여, 애플리케이션 프로세싱 유닛으로부터 데이터 경로로 컴퓨터-비전 애플리케이션들에 대한 필터들을 오프로딩하고, 상이한 데이터(및 상이한 타입들의 데이터)를 애플리케이션 프로세싱 유닛에 제공하여, 컴퓨터-비전 애플리케이션들의 요건들을 조절할 수 있는 컴퓨터-비전 애플리케이션들을 위한 적응형 데이터 경로를 제공한다. 이것은 궁극적으로 증가된 배터리 수명 및/또는 QOE를 제공한다.
[0024] 도 1은 일 실시예에 따른, 컴퓨터-비전 애플리케이션들을 위한 적응형 데이터 경로를 갖는 디바이스(100)의 특정 컴포넌트들을 예시한 블록도이다. 컴포넌트들은 센서(들)(115), 센서 제어기(117), 애플리케이션 프로세싱 유닛(130), 그래픽 프로세싱 유닛(140), 디스플레이(170), 디스플레이 제어기(160), 메모리 서브시스템(150) 및 컴퓨터-비전 프로세싱 유닛(120)을 포함할 수 있다. 디바이스(100)는 통신 인터페이스, 사용자 인터페이스 및 그 이상과 같이 도시되지 않은 다양한 부가적인 컴포넌트들을 포함할 수 있다. 본원에 제공된 다른 도면들과 같이, 도 1은 다양한 컴포넌트들의 일반화된 예시만을 제공하도록 의도되고, 다양한 컴포넌트들 중 임의의 것 또는 전부는 적절한 경우에 사용될 수 있다. 상이한 실시예들은 도시된 컴포넌트들 중 임의의 것을 부가, 생략, 대체, 결합 및/또는 분할할 수 있다. 당업자는 많은 변경들을 인지할 것이다.
[0025] 일부 실시예들에서, 디바이스(100)는 모바일 디바이스를 포함한다. 예를 들면, 디바이스(100)는 모바일 폰, 태블릿, 개인용 미디어 플레이어, 휴대용 게임 시스템, 디지털 카메라, 캠코더 등을 포함할 수 있다. 본원에 제공된 기술들이 일부 실시예들에서 전력 절약들 및/또는 감소된 레이턴시와 같은 다른 이점들을 제공하기 위해 모바일 디바이스들 상에서 사용될 수 있지만, 디바이스(100)가 이에 제한되지 않는다는 것이 유의될 수 있다. 즉, 실시예들은 디바이스들(100)을 포함할 수 있고, 모바일을 고려하지 않을 수 있다. 예를 들면, 텔레비전은 이미징 애플리케이션들(예를 들면, 비디오 회의 애플리케이션)을 위한 데이터 경로 및 기계-비전(예를 들면, 제스처 제어 애플리케이션)을 위한 데이터 경로를 포함할 수 있다. 게임 시스템은 이미징 애플리케이션들(예를 들면, 게임 내 비디오 채트)을 위한 데이터 경로 및 기계-비전(예를 들면, 제스처 및/또는 신체 제어)을 위한 데이터 경로를 포함할 수 있다. 비-모바일 디바이스들을 수반하는 다른 실시예들이 고려된다.
[0026] 센서(들)(115)는 디바이스(100)의 기능에 따라 다양한 센서들 중 하나 이상을 포함할 수 있다. 이것은 카메라 또는 캠코더 기능들과 연관되지 않은 센서들을 포함할 수 있다. 센서(들)는, 예를 들면, 적외선(IR) 및/또는 근처 IR을 검출하기 위한 센서(들), 상이한 비색법(colorimetry)을 결정하기 위한 센서(들), 깊이(예를 들면, 비행 시간, 구조형 광 등)를 결정하기 위한 센서(들)뿐만 아니라 하나 이상의 카메라들(예를 들면, 입체 카메라들, 정면 및/또는 후면 카메라들 등) 및/또는 다른 이미징 센서(들)를 포함할 수 있다.
[0027] 센서 제어기(117)는 센서(들)(115)와의 인터페이스를 제공할 수 있다. 센서 제어기(117)는 애플리케이션 프로세싱 유닛(130) 및/또는 컴퓨터-비전 프로세싱 유닛(120)과 같은 다른 컴포넌트들로부터의 입력에 기초하여 센서(들)(115)를 제어할 수 있다. 일부 실시예들에서, 센서 제어기(117)는, 예를 들면, 도중-밸런스(while-balance) 제어, 노출 제어, 포커스 제어, 비닝(binning) & 스킵 제어, 2D/3D 윈도우잉/박싱 및/또는 다른 기능들을 제공할 수 있다. 센서(들)(115) 및/또는 센서 제어기(117)는 디바이스(100)의 이미지 센서 모듈(110)의 적어도 일부를 형성할 수 있다.
[0028] 애플리케이션 프로세싱 유닛(130)은, 제한없이, 하나 이상의 범용 프로세서들, 하나 이상의 특수 목적 프로세서들(가령, 디지털 신호 프로세서들, 그래픽 가속화 프로세서들 등) 및/또는 다른 프로세싱 구조를 포함할 수 있고, 이들은 메모리 서브시스템(150)에 저장될 수 있는 컴퓨터-비전 및 다른 소프트웨어 애플리케이션들을 실행하도록 구성될 수 있다. 일부 실시예들에서, 애플리케이션 프로세싱 유닛(130)은 하나 이상의 코어들로 구성된 애플리케이션 또는 "앱들" 프로세서를 포함한다.
[0029] 메모리 서브시스템(150)은 애플리케이션 및/또는 시스템 저장을 제공하는 하나 이상의 비일시적인 컴퓨터-판독 가능 저장 매체들을 포함할 수 있다. 그러한 저장 디바이스들은 디스크 드라이브, 드라이브 어레이, 광학 저장 디바이스, 고체-상태 저장 디바이스, 가령, 랜덤 액세스 메모리(RAM) 및/또는 판독-전용 메모리(ROM)를 포함할 수 있고, 이들은 프로그래밍 가능하고, 플래시-업데이트 가능하고 기타 등등일 수 있다. 그러한 저장 디바이스들은, 제한없이, 다양한 파일 시스템들, 데이터베이스 구조들 등을 포함하는 임의의 적절한 데이터 저장소들을 구현하도록 구성될 수 있다.
[0030] 소프트웨어 엘리먼트들은, 하나 이상의 비일시적인 컴퓨터-판독 가능 저장 매체들 상에 임베딩되는 명령들로서 메모리 서브시스템에 포함될 수 있다. 그러한 소프트웨어 엘리먼트들은 운영 시스템, 디바이스 드라이버들, 실행 가능 라이브러리들 및/또는 하나 이상의 애플리케이션 프로그램들과 같은 다른 코드를 포함할 수 있고, 이들은 애플리케이션 프로세싱 유닛(130), 컴퓨터-비전 프로세싱 유닛(120) 및/또는 다른 컴포넌트들로 하여금, 본원에 설명된 실시예들에 의해 제공된 방법들(또는 그의 부분들)을 구현하게 하고 및/또는 시스템들을 구성하게 하도록 설계될 수 있다. 단지 예로서, 도 7에 관련하여 설명된 방법을 비롯하여, 본원에 설명된 하나 이상의 절차들은 컴퓨터-비전 프로세싱 유닛(120) 및/또는 애플리케이션 프로세싱 유닛(130)에 의해 실행 가능한 코드 및/또는 명령들로서 구현될 수 있다.
[0031] 그래픽 프로세싱 유닛(140) 및 디스플레이 제어기(160)는, 애플리케이션 프로세싱 유닛(130)에 의해 실행되는 애플리케이션(들)에 따라 디스플레이(170) 상에 하나 이상의 이미지들을 보여주는데 사용될 수 있다. 비디오 또는 스틸 이미지 캡처와 같은 이미징 애플리케이션들이 통상적으로 이미지들을 디스플레이하고, 따라서 디스플레이(170), 디스플레이 제어기(160) 및/또는 그래픽 프로세싱 유닛(140)의 사용을 요구한다는 것이 유의될 수 있다. 반면에, 많은 컴퓨터-비전 애플리케이션들은 이러한 컴포넌트들을 전혀 사용할 필요가 없을 수 있다. 따라서, 디바이스(100)의 이러한 컴포넌트들은 애플리케이션 프로세싱 유닛(130)에 의해 실행되는 컴퓨터-비전 애플리케이션들을 적응시키기 위해 데이터 경로에 포함되거나 데이터 경로로부터 배제될 수 있다.
[0032] 컴퓨터-비전 프로세싱 유닛(120)은 적응형 데이터 경로를 센서(들)(115)로부터 애플리케이션 프로세싱 유닛(130)으로 제공하기 위한 하드웨어 및/또는 소프트웨어 서브컴포넌트들을 포함할 수 있다. 이것은, 예를 들면, VFE(video front end), ISP(image-signal processor), DSP(digital-signal processor) 및/또는 애플리케이션 프로세싱 유닛으로부터 별개로 프로그래밍 가능한 다른 프로세싱 유닛을 포함할 수 있다. 선택적으로, 컴퓨터-비전 프로세싱 유닛(120)은 메모리 서브시스템(150)으로부터 판독하고 및/또는 메모리 서브시스템(150)에 기록할 수 있다. 일부 실시예들에서, 컴퓨터-비전 프로세싱 유닛(120)은 애플리케이션 프로세싱 유닛(130)에 의해 실행되는 컴퓨터-비전 애플리케이션에 기초하여 동적으로 프로그래밍될 수 있다. 따라서, 컴퓨터-비전 프로세싱 유닛(120)은 메모리 서브시스템(150) 및/또는 컴퓨터-비전 프로세싱 유닛(120) 내부의 메모리(메모리 서브시스템(150)에 관련하여 앞서 설명된 특징들과 유사한 특징들을 포함할 수 있음)에 저장된 애플리케이션들을 실행할 수 있다. 일부 실시예들에서, 컴퓨터-비전 프로세싱 유닛(120) 내부의 메모리의 크기 및/또는 컴퓨터-비전 애플리케이션의 필요성에 의존하여, 컴퓨터-비전 프로세싱 유닛(120)은 메모리 서브시스템(150)의 사용 없이 적응형 데이터 경로를 제공할 수 있고, 이로써, 메모리 서브시스템(150)이 애플리케이션 프로세싱 유닛(130)에 부가하여 낮은 전력 모드에 진입하는 것을 가능하게 한다.
[0033] 일 실시예에서, 컴퓨터-비전 프로세싱 유닛(120)은 컴퓨터-비전 애플리케이션들을 위한 다양한 필터들을 구현하도록 적응된 특수화된 명령-기반, 인-라인 프로세서를 포함할 수 있다. 이로써, 컴퓨터-비전 애플리케이션들은, 일부 실시예들에서 해석 엔진을 사용할 필요 없이, 필요로 되는 필터(들)를 구현하기 위한 명령들을 호출할 수 있다. 다시 말해서, 컴퓨터-비전 프로세싱 유닛(120)에 의해 구현되는 필터들은, 컴퓨터-비전 애플리케이션에 필요한 필터(들)를 식별하기 위해, 특수화된 명령-기반, 인-라인 프로세서에 의해 실시간으로 번역되는 해석 언어에 관련된 표준화된 명령-기반 커맨드들의 세트에 대응할 수 있다.
[0034] 컴퓨터-비전 애플리케이션들을 위한 적응형 데이터 경로를 위한 본원에 제공된 기술들은 애플리케이션 계층에서 제어되는 프로그래밍 가능성을 가능하게 할 수 있다. 즉, 애플리케이션 프로세싱 유닛(130)에 의해 실행되는 컴퓨터-비전 애플리케이션은 일부 실시예들에서 언제라도 명령들 및/또는 다른 정보를 컴퓨터-비전 프로세싱 유닛(120)에 제공할 수 있다. 그러한 기능은 애플리케이션에 더 많은 전력을 승인하여, 컴퓨터-비전 데이터가 사용되는 컨텍스트의 어떠한 부가적인 지식 없이도, 컴퓨터-비전 데이터를 효율적인 방식으로 제공하는 동적으로 프로그래밍 가능한 컴퓨터-비전 프로세싱 유닛(120)을 허용한다. 컴퓨터-비전 애플리케이션은 컨텍스트를 결정하고, 이에 따라 명령들을 컴퓨터-비전 프로세싱 유닛(120)에 제공할 수 있다. 앞서 표시된 바와 같이, 실시예들은, 해석 엔진을 사용할 필요없이, 컴퓨터-비전 애플리케이션들이 원하는 필터(들)를 구현하기 위한 명령들을 호출하도록 허용할 수 있다.
[0035] 특정 요건들에 따라 도 1에 도시된 컴포넌트들에 대해 실질적인 변동들이 이루어질 수 있다는 것이 당업자들에게 명백할 것이다. 예를 들면, 앞서 설명들에 부가하여 또는 이에 대한 대안으로서, 맞춤화된 하드웨어가 또한 사용되고 및/또는 특정 엘리먼트들이 하드웨어, 소프트웨어 또는 둘 모두로 구현될 수 있다. 또한, 다른 디바이스들 및/또는 센서들에 대한 접속이 사용될 수 있다.
[0036] 도 2는 일 실시예에 따른, 데이터를 센서 모듈(210)로부터 컴퓨터-비전 애플리케이션들 및 서비스들(240)로 제공하는 데이터 경로(200)를 예시한 기능적 블록도이다. 데이터 경로(200)는 도 1의 디바이스(100)의 하나 이상의 컴포넌트들 및/또는 유사한 수단에 의해 실행될 수 있다. 센서 모듈(210) 및 컴퓨터-비전 애플리케이션 및 서비스들(240) 이외에, 데이터 경로(200)는 코어 데이터 경로(220) 및 컴퓨터-비전 특수화 모듈(230)을 포함할 수 있다. 다른 실시예들은 상이한 컴포넌트를 유사한 기능적 방식으로 사용함으로써 도시된 실시예로부터 변동할 수 있다. 당업자는 많은 변동들을 인지할 것이다.
[0037] 센서 모듈(210)은, 도 1의 이미지 센서 모듈(110) 및/또는 유사한 수단과 같이 센서 데이터를 출력하는 센서들 및/또는 다른 컴포넌트들을 포함할 수 있다. 디바이스(100)의 기능 및/또는 센서 모듈(210)의 센서(들)의 능력들에 따라, 센서 모듈로부터의 데이터가 변동할 수 있다. 이어서, 센서 모듈(210)로부터의 데이터는 코어 데이터 경로(220)로 전달된다.
[0038] 코어 데이터 경로(220)의 기능은 센서 모듈(210)과 컴퓨터-비전 특수화 모듈(230) 사이에 인터페이스를 제공할 수 있다. 이것은 일부 실시예들에 따라, 센서 모듈(210)의 특수 센서 데이터를 수용하고 균일한 방식으로 데이터를 출력하도록 적응될 수 있다. 또한, 코어 데이터 경로(220)는, 예를 들면, 디바이스(100)에 의해 실행 가능한 이미징 애플리케이션들, 컴퓨터-비전 애플리케이션들 및/또는 다른 공통의 애플리케이션들에 사용되는 특정 필터들을 사용하여, 센서 모듈(210)의 데이터의 일부 초기 프로세싱을 수행할 수 있다. 그러한 필터들은, 예를 들면, 조명, 컬러, 노출, 포커스 등을 위한 최적화 필터들을 포함할 수 있다. 코어 데이터 경로(220)는 도 1의 컴퓨터-비전 프로세싱 유닛(120) 및/또는 이미지 센서 모듈(110)뿐만 아니라 하나 이상의 중간 컴포넌트들(미도시) 및/또는 유사한 수단의 부분들에 의해 구현될 수 있다. 일부 실시예들에서, 코어 데이터 경로(220)는 비디오 프론트 엔드(VFE)에 의해 적어도 부분적으로 구현될 수 있다.
[0039] 컴퓨터-비전 특수화 모듈(230)은, 도 1의 컴퓨터-비전 프로세싱 유닛(120) 및/또는 메모리 서브시스템(150)에 의해 실행될 수 있는 데이터 경로(200)의 적응 가능한 컴포넌트를 포함한다. 컴퓨터-비전 특수화 모듈(230)은 컴퓨터-비전 애플리케이션들 및 서비스들(240)에 대한 입력을 결정하고, 이에 따라 데이터 경로를 적응시키도록 구성되고, 이로써 센서 모듈(210)로부터 컴퓨터-비전 애플리케이션들 및 서비스들(240)에 대한 입력으로의 데이터를 적응시킨다. 예를 들면, 컴퓨터-비전 특수화 모듈(230)은 컴퓨터-비전 애플리케이션들 및 서비스들(240) 중 하나 이상의 요건 또는 필요성에 기초하여 또는 컴퓨터-비전 애플리케이션들 및 서비스들(240) 또는 그의 인터페이스로부터의 명령에 기초하여 입력을 결정할 수 있다. 특히, 컴퓨터-비전 특수화 모듈(230)은 코어 데이터 경로(220)를 통해 센서 모듈(210)로부터 이미지(또는 다른 데이터)를 수신하고, 컴퓨터-비전 애플리케이션들 및 서비스들(240)의 필요성들에 기초하여 이용 가능한 이미지 프로세싱 기능들(또한 본원에서 "필터들"로 지칭됨)의 적어도 서브세트를 사용하여 이미지를 프로세싱할 수 있다. 일부 실시예들에서, 컴퓨터-비전 특수화 모듈(230) 또는 그의 기능의 부분들은 ISP에 의해 구현된다.
[0040] 컴퓨터-비전 애플리케이션들 및 서비스들(240)은 도 1의 애플리케이션 프로세싱 유닛(130) 및/또는 메모리 서브시스템(150), 및/또는 유사한 수단에 의해 실행될 수 있다. 아래에 더 상세히 논의되는 바와 같이, 컴퓨터-비전 애플리케이션들 및 서비스들(240)은, 컴퓨터-비전 특수화 모듈(230)에 기준(이미지, 커맨드 등)을 제공함으로써 원하는 데이터 또는 정보의 표시를 컴퓨터-비전 특수화 모듈(230)에 제공할 수 있다. 이전에 개시된 바와 같이, 컴퓨터-비전 애플리케이션들(및 그의 필요성들)은 실질적으로 애플리케이션에 따라 변동할 수 있다. 컴퓨터-비전 애플리케이션들 및 서비스들(240)이, 본원에 설명된 바와 같이, 하나 이상의 컴퓨터-비전 애플리케이션들 및/또는 컴퓨터-비전 서비스들을 포함할 수 있다는 것이 이해될 것이다. 다수의 컴퓨터-비전 애플리케이션들 및/또는 서비스들이 많은 필요성들 갖는 경우에, 컴퓨터-비전 특수화 모듈(230)은 일부 실시예들에서 다수의 컴퓨터-비전 애플리케이션들 및/또는 서비스들 전부의 필요성들을 서빙하기 위한 최적의 데이터 경로를 제공할 수 있다.
[0041] 도 3은 일 실시예에 따른, 컴퓨터-비전 특수화 모듈(230)의 이용 가능한 필터들(315-355)의 세트를 예시한다. 일부 실시예들에서, 필터들은 하드웨어로 적어도 부분적으로 구현되어, 소프트웨어에서 단독으로 실행되는 것보다 더 빠르고, 더 효율적인 필터링을 제공한다. 또한, 컴퓨터-비전 애플리케이션들 및 서비스들(240) 및/또는 애플리케이션 프로세싱 유닛(130) 대신에 컴퓨터-비전 특수화 모듈(230) 내의 그러한 필터들의 구현은 일부 실시예들에서 프로세싱 속도를 증가시키고 및/또는 전력 소비를 감소시킬 수 있다. 도 3이 코어 데이터 경로(220)로부터 수신되는 입력(310)으로부터, 컴퓨터-비전 애플리케이션들 및 서비스들(240)에 제공되는 출력(375)으로의 특정 데이터 경로를 특정 순서로 제공하는 것으로 필터들을 예시하지만, 순서는 애플리케이션에 따라 변경될 수 있다. 또한, 필터들은 애플리케이션에 따라 부가, 생략, 대체, 결합 및/또는 분할될 수 있다. 또한, 일부 실시예들에서 컴퓨터-비전 특수화 모듈(230)에서 다른 필터들의 사용을 필요로 하지 않고서, 주어진 기능 또는 프로세스에 사용하기 위해, 필터들 중 임의의 하나 이상이 선택될 수 있다.
[0042] 필요성들을 표시하기 위해, 컴퓨터-비전 애플리케이션들 및 서비스들(240)은 입력(365)을 통해 기준(360)을 제공할 수 있다. 애플리케이션에 따라, 기준은, 예를 들면, 기준 이미지일 수 있다. 기준은, 부가적으로 또는 대안적으로, 이미지에 관한 정보(예를 들면, 이미지에 대한 컬러 분포를 제공하는 히스토그램)를 포함할 수 있다. 선택적으로, 기준은, 특정 프로토콜 및/또는 명령 세트를 고수할 수 있는 컴퓨터-비전 애플리케이션들 및 서비스들(240)로부터의 커맨드 또는 명령들의 세트를 포함할 수 있다. 일부 경우들에서, 기준은, 컴퓨터-비전 애플리케이션들 및 서비스들(240)로부터 기준을 수신하는 것 이외에 또는 이에 대한 대안으로서 코어 데이터 경로(220)로부터 직접적으로 컴퓨터-비전 특수화 모듈(230)에 의해 획득될 수 있다. 일단 기준이 획득되면, 컴퓨터-비전 특수화 모듈(230)은 이것을 메모리에 저장할 수 있다.
[0043] 동적 뷰 선택부(325)는 후속 프로세싱을 위해 특정 뷰를 선택하도록 구성될 수 있다. 특히, 컴퓨터-비전 애플리케이션에 따라, 다수의 이미지 센서들에 의해(예를 들면, 입체 이미징을 위해 적어도 2 개에서) 시야가 샘플링될 수 있다. 이로써, 몇몇의 이미지 센서들로부터의 시야는 컴퓨터-비전에 요구되는 프로세싱을 최소화하도록 동적으로 조절될 수 있다. 일 예에서, 손-제스처 인식은 손을 추적할 수 있고, 손의 이미지는 다수의 이미지 센서들에 의해 캡처된다. 동적 뷰 선택부(325)는, 복수의 이미지들로부터, 손 추적을 위한 최상의 이미지를 선택할 수 있다. 다른 예에서, 동적 뷰 선택부(325)는, 예를 들면, 증강 현실(AR) 애플리케이션에서 사용하기 위해, 기준 마커(fiducial marker)를 추적하고 기준 마커의 최상의 뷰(예를 들면, 기준 마커에 가장 수직임)를 갖는 이미지를 선택할 수 있다. 이것은 프로세싱하기 위한 이미지들의 양을 감소시킴으로써 후속 프로세싱을 감소시키는 것을 도울 수 있다.
[0044] 뷰 좁히기부(315) 뷰 로컬화부(320)는 애플리케이션이 관심을 갖지 않는 이미지의 부분들을 제거하도록 구성될 수 있다. 예를 들면, 특정 컴퓨터-비전 애플리케이션은, 2-메가픽셀 이미지의 하나의 사분면(quadrant)에 배치된 특정 물체에 관심을 가질 수 있다. 그러한 경우에, 이미지의 일부분만(예를 들면, 500,000 픽셀들)이 프로세싱되고, 컴퓨터-비전 애플리케이션들 및 서비스들(240)로 전달될 필요가 있을 것이다. 따라서, 컴퓨터-비전 특수화 모듈(230)은, 예를 들면, 이미지의 관련 부분을 분리하고 및/또는 물체를 나타내는 픽셀들 및/또는 라인들의 수를 추정하기 위해 뷰 좁히기부(315)를 사용하도록 적응될 수 있다. 컴퓨터-비전 애플리케이션들 및 서비스들(240)의 필요성들이 변하기 때문에(예를 들면, 특정 컴퓨터-비전 애플리케이션이 상이한 상태에 진입하고 및/또는 다른 컴퓨터-비전 애플리케이션이 실행됨), 컴퓨터-비전 특수화 모듈(230)은 이에 따라 적응할 수 있다. 따라서, 컴퓨터-비전 특수화 모듈(230)은 상이한 시간들에서 상이한 해상도들을 제공하기 위해 뷰 좁히기부(315) 및/또는 뷰 로컬화부(320)를 사용할 수 있다.
[0045] 가변 각도 회전부(345)는 이미지를 캡처하는 센서에 관련하여 이미지 및/또는 이미지 내의 물체를 회전시키도록 구성될 수 있다. 예를 들면, 컴퓨터-비전 애플리케이션은, 직사각형이 센서에 대해 특정 배향일 때에만, 이미지 내의 직사각형을 식별할 수 있다. 이미지 배향을 조절하기 위한 알고리즘들을 실행하도록(예를 들면, 애플리케이션 프로세싱 유닛(130) 상에서 알고리즘들을 실행함) 컴퓨터-비전 애플리케이션에 강제하는 것보다는, 컴퓨터-비전 특수화 모듈(230)은 가변 각도 회전부(345)를 사용하여 이미지의 전부 또는 일부를 회전시키도록 데이터 경로를 적응시킬 수 있다.
[0046] 컬러 변환부(350), 컬러 필터링 & 마스킹부(330) 및 히스토그램 분석부(335)는, 예를 들면, 컴퓨터-비전 애플리케이션들 및 서비스들(240)이 컬러-인식 및/또는 조작을 위한 필요성을 나타낼 때, 데이터 경로에서 구현될 수 있다.
[0047] 프레임-드롭 제어부(340)는 컴퓨터-비전 애플리케이션들 및 서비스들(240)로 전달되는 이미지들(프레임들)의 양을 감소시키도록 구성될 수 있고, 이로써 대역폭 및 전력 필요성들을 감소시킨다. 예를 들면, 일단 프로그래밍되면, 센서 모듈(210)의 센서는 초 당 특정 양의 프레임들을 전달할 수 있다. 그러나, 이러한 양이 컴퓨터-비전 애플리케이션들 및 서비스들(240)이 필요로 하는 것보다 더 크면, 데이터 경로는 프레임-드롭 제어부(340)를 사용하여 임의의 과도한 프레임들을 드롭하도록 구성될 수 있다.
[0048] 장면 변화 검출 & 모션 추정부(355)는, 센서 입력에서 변화가 발생하는지를 결정하도록 구성될 수 있다. 변화는, 예를 들면, 과거 이미지와 현재 이미지를 비교함으로써 결정될 수 있다. 이전에 표시된 바와 같이, 과거 이미지는 기준(360)으로서 유지되고, 데이터 경로로부터 리트리브(retrieve)되거나, 입력(365)을 통해 컴퓨터-비전 애플리케이션들 및 서비스들(240)로부터 수신될 수 있다.
[0049] 도 3에 예시되지 않지만, 컴퓨터-비전 특수화 모듈(230)은 또한 특징들을 식별 및/또는 출력하도록 구성된 하나 이상의 필터들 및/또는 엘리먼트들 또는 특징들을 추적하고 및/또는 그의 위치를 출력하도록 구성된 하나 이상의 모듈들을 포함할 수 있다. 예를 들면, 컴퓨터-비전 특수화 모듈(230)은 SIFT(Scale Invariant Feature Transform), PhonySIFT, SURF(Speeded-up Robust Features) 및/또는 FAST(Features from Accelerated Segment Test) 코너 검출기와 같이, 이미지로부터 특징들을 추출하도록 구성된 하나 이상의 기능들을 포함할 수 있다. 또한, 기능들은 스펙트럼 특징들 또는 특성들을 계산하기 위한 하나 이상의 기능들을 포함할 수 있다.
[0050] 컴퓨터-비전 특수화 모듈(230)은 또한 컴퓨터-비전 인터럽트 프로세서(370)를 포함할 수 있다. 컴퓨터-비전 인터럽트 프로세서(370)를 통해, 컴퓨터-비전 특수화 모듈(230)은, 컴퓨터-비전 애플리케이션들 및 서비스들(240)(예를 들면, 애플리케이션 프로세싱 유닛(130) 및/또는 메모리 서브시스템(150))을 실행하는 기본적인 하드웨어가 저전력(예를 들면, "대기") 모드에 진입하도록 허용할 수 있다. 트리거링 이벤트가 발생하였다고 컴퓨터-비전 특수화 모듈(230)이 결정할 때, 컴퓨터-비전 특수화 모듈(230)은, 기본적인 하드웨어가 저전력 모드에서 탈출하게 하기 위한 인터럽트를 기본적인 하드웨어에 제공하기 위해 컴퓨터-비전 인터럽트 프로세서(370)를 사용할 수 있다.
[0051] 다른 필터들과 결합될 때, 컴퓨터-비전 인터럽트 프로세서(370)는, 컴퓨터-비전 애플리케이션들 및 서비스들(240)을 실행하는 기본적인 하드웨어로부터 프로세싱을 더 적거나 아예 요구하지 않고서, 컴퓨터-비전 특수화 모듈(230)이 데이터 경로에서 다양한 기능들을 수행하도록 허용할 수 있다. 예를 들면, 컴퓨터-비전 애플리케이션들 및 서비스들(240)은, 디바이스(100)가 카메라를 통해 영역을 모니터링하고 디바이스(100)가 모니터링되는 영역에서 변화를 검출한 경우에 경보를 울리는 보안 애플리케이션을 포함할 수 있다. 배터리 전력을 보존하기 위해, 컴퓨터-비전 애플리케이션들 및 서비스들(240)을 실행하는 기본적인 하드웨어(예를 들면, 애플리케이션 프로세싱 유닛(130) 및/또는 메모리 서브시스템(150))는, 컴퓨터-비전 특수화 모듈(230)이 센서 입력과 모니터링되는 영역의 기준 이미지를 비교하기 위해 장면 변화 검출 & 모션 추정부(355)를 사용하는 동안에, 대기 모드에 진입할 수 있다. 장면 변화 검출 & 모션 추정부(355)가 모니터링되는 영역에서 변화가 존재한다(예를 들면, 누군가 또는 무엇인가가 카메라에 의해 보여지는 장면에 진입함)고 결정하면, 장면 변화 검출 & 모션 추정부(355)는 컴퓨터-비전 인터럽트 프로세서(370)에 통지할 수 있다. 컴퓨터-비전 인터럽트 프로세서(370)는, 차례로, 컴퓨터-비전 애플리케이션들 및 서비스들(240)을 실행하는 기본적인 하드웨어에 대한 인터럽트를 생성할 수 있고, 이어서 인터럽트는 보안 애플리케이션으로 하여금 경보를 울리게 할 수 있다. 컴퓨터-비전 인터럽트 프로세서(370) 및 장면 변화 검출 & 모션 추정부(355)를 이러한 방식으로 데이터 경로에 제공함으로써, 컴퓨터-비전 애플리케이션들 및 서비스들(240)에서보다, 디바이스(100)는, 컴퓨터-비전 애플리케이션들 및 서비스들(240)을 실행하는 기본적인 하드웨어에 의한 불필요한 프로세싱 없이 보안 애플리케이션을 효율적인 방식으로 실행할 수 있다.
[0052] 도 4는, 컴퓨터-비전 특수화 모듈(230)의 컴포넌트들이 컴퓨터-비전 애플리케이션들 및 서비스들(240)에 대한 데이터 경로의 상이한 기능적 부분들로 그룹화될 수 있는 방법을 예시한 블록도(400)이다. 예를 들면, 컴포넌트들은 다음의 기능적 부분들: 입력 계층(420), 프리미티브 인식부(430) 및 구조 인식부(440)로 그룹화될 수 있다. 컴퓨터-비전 특수화 모듈(230)에 포함되지 않는 데이터 경로(예를 들면, 코어 데이터 경로(220)에 포함됨)의 양상들은 또한 원하는 기능에 따라 입력 계층(420), 프리미티브 인식부(430) 및/또는 구조 인식부(440)의 기능에 기여할 수 있다. 즉, 코어 데이터 경로(220)는, 입력 계층(420), 프리미티브 인식부(430) 및/또는 구조 인식부(440)의 어떠한 부분들이 이미 수행될 수 있었는지에 대한 입력(310)을 제공할 수 있다.
[0053] 입력 계층(420)은, 후속 컴퓨터-비전 프로세싱 블록들에서 요구되는 프로세싱을 잠재적으로 감소시키면서, 센서 모듈(210)로부터의 데이터를 도입하는 데이터 경로의 일부를 포함한다. 그렇게 하기 위해, 입력 계층(420)은, 예를 들면, 컬러 변환부(350), 컬러 필터링 및 마스킹부(330), 동적 뷰 선택부(325), 뷰 로컬화부(320), 뷰 좁히기부(315), 가변 각도 회전부(345), 컬러 변환부(350), 컬러 필터링 & 마스킹부(330) 및/또는 프레임-드롭 제어부(340) 등을 포함하는 하나 이상의 이미지 프로세싱 필터들로 구성될 수 있다. 부가적으로 또는 대안적으로, 입력 계층(420)은 환경 조명, 컬러, 노출 및/또는 포커스를 최적화하는 이미지-프로세싱 필터들뿐만 아니라 특징 추출을 위해 구성된 필터들 및/또는 다른 필터들을 제공할 수 있다.
[0054] 데이터 경로의 프리미티브 인식부(430) 부분은 컴퓨터-비전 애플리케이션들 및 서비스들(240)의 필요성들에 기초하여 구성될 수 있다. 이것은 특정 특징들이 센서 모듈(210)로부터의 데이터에 존재하는지를 결정하는 것을 포함할 수 있다. 예를 들면, 컴퓨터-비전 애플리케이션들 및 서비스들(240)이 손 제스처 인식부를 포함하면, 프리미티브 인식부(430)는 손을 인식하도록 구성될 수 있다. 특정 컬러들에 관심을 갖는 애플리케이션들에 대해, 프리미티브 인식부(430)는, 하나 이상의 컬러들이 존재하는지를 결정하기 위해 센서 모듈(210)로부터의 데이터의 비색법을 조사하도록 구성될 수 있다. 이러한 기능을 제공하기 위해, 프리미티브 인식부(430)는, 예를 들면, 뷰 로컬화부(320) 및/또는 뷰 좁히기부(315) 등을 포함하는 하나 이상의 이미지-프로세싱 필터들로 구성될 수 있다. 부가적으로 또는 대안적으로, 프리미티브 인식부(430)는 세그멘테이션, 자세 검출을 포함하는 이미지-프로세싱 필터들 및/또는 다른 필터들로 구성될 수 있다.
[0055] 구조 인식부(440)는 시간에 걸쳐 센서 모듈(210)로부터의 데이터에서 특징들을 추적하고 구조들을 정의하도록 구성될 수 있고, 이것은 또한 컴퓨터-비전 애플리케이션들 및 서비스들(240)의 필요성들에 기초할 수 있다. 데이터 내의 특징들은 에지들, 코너들, SIFT(scale-invariant feature transform) 등과 같은 식별 가능한 특징들을 포함할 수 있다. 추적된 특징들에 의해 정의된 구조들은, 예를 들면, 심볼들 및/또는 비전 제스처들을 포함할 수 있다. 이러한 기능을 제공하고 및/또는 프리미티브 및/또는 구조 인식 프로세싱 블록들에서 요구된 프로세싱을 잠재적으로 감소시키기 위해, 구조 인식부(440)는, 예를 들면, 장면 변화 검출 & 모션 추정부(355), 프레임-드롭 제어부(340), 히스토그램 분석부(335) 등을 포함하는 하나 이상의 이미지-프로세싱 필터들로 구성될 수 있다. 부가적으로 또는 대안적으로, 구조 인식부(440)는 추적부, 예측부, 제스처 검출부 및/또는 다른 필터들을 포함하는 이미지-프로세싱 필터들로 구성될 수 있다. 추적된 특징들은 구조 인식부를 요청 및/또는 소비하는 애플리케이션의 필요성들에 따라 변동할 수 있다. 제스처-기반 애플리케이션은, 예를 들면, 제스처들을 결정하기 위해 손의 추적을 요구할 수 있다. 반면에, 컨텍스트-인식 애플리케이션 또는 증강 현실 애플리케이션은 물체 인식을 위해 다양한 물체들 중 임의의 것을 추적할 수 있다.
[0056] 도 5a 및 도 5b는 컴퓨터-비전 특수화 모듈이 컴퓨터-비전 애플리케이션들 및 서비스들(240)의 필요성들에 기초하여 데이터 경로(200)를 적응적으로 조절하는 상이한 필터 체인들을 사용할 수 있는 방법의 예들을 제공한다. 도 5a에서, 컴퓨터-비전 특수화 모듈(230)은, 출력(375)을 컴퓨터-비전 애플리케이션들 및 서비스들(240)에 제공하기 위해 히스토그램 분석부(335), 장면 변화 검출 & 모션 추정부(355) 및 컴퓨터-비전 인터럽트 프로세서(370)를 포함하는 필터 체인을 사용함으로써 데이터 경로를 보안 애플리케이션으로 적응시킨다. 도 5b에서, 컴퓨터-비전 특수화 모듈(230)이 뷰 좁히기부(315), 가변 각도 회전부(345) 및 프레임-드롭 제어부(340)를 포함하는 필터 체인을 사용함으로써 물체 인식을 위한 컴퓨터-비전 애플리케이션의 필요성들을 만족시키기 위해 데이터 경로를 적응시키는 데이터 경로(200)가 예시된다. 도 5a 및 도 5b 둘 모두에 도시된 예들에 제공된 필터 체인들이 3 개의 필터들을 포함하지만, 컴퓨터-비전 특수화 모듈(230)이 컴퓨터-비전 애플리케이션들 및 서비스들(240)의 필요성들에 기초하여 더 크거나 작은 양의 필터들을 포함할 수 있다는 것이 유의될 수 있다.
[0057] 컴퓨터-비전 특수화 모듈(230)에 의해 사용되는 각각의 필터에 대한 파라미터들은 또한 컴퓨터-비전 애플리케이션들 및 서비스들(240)의 필요성들에 따라 변동할 수 있다. 예를 들면, 뷰 좁히기부(315)는 제 1 애플리케이션에 대해 이미지의 상부-우측 사분면, 및 제 2 애플리케이션에 대해 이미지의 하부-좌측 사분면을 제공하도록 정의될 수 있다. 또한, 컴퓨터-비전 특수화 모듈(230)은 단일 애플리케이션의 변하는 필요성들에 따라 필터들 및 그들의 파라미터들을 적응시킬 수 있다. 따라서, 컴퓨터-비전 특수화 모듈(230)은 상이한 컴퓨터-비전 애플리케이션들을 위한 데이터 경로뿐만 아니라 특정 컴퓨터-비전 애플리케이션의 상이한 상태들 및/또는 필요성들을 적응시킬 수 있다.
[0058] 도 3에 도시된 필터들에 부가하여, 실시예들은 데이터의 상이한 세그먼트들에 대한 데이터 포트들을 제공하기 위해 데이터 스위칭을 사용할 수 있다. 이러한 기능의 예가 도 6에 예시된다. 여기서, 임의의 다른 필터(들)(610)(가령, 도 3에 관련하여 설명된 필터들(315-355))에 부가하여, 컴퓨터-비전 특수화 모듈(230)은, 다중 뷰-포트 데이터 스위치(620)가 데이터를 상이한 포트들(630)로 분리하는 필터 체인을 사용할 수 있다. 다중 뷰-포트 데이터 스위치(620)를 통해, 데이터 경로(200)는, 이미지들이 별개의 센서들에 의해 촬영된 것처럼, 단일 이미지로부터의 데이터를 별개의 서브-이미지 출력들로 분리할 수 있다. 예를 들면, 컴퓨터-비전 애플리케이션들 및 서비스들(240) 내의 안면-인식 컴퓨터-비전 애플리케이션에서, 컴퓨터-비전 특수화 모듈(230)은 4 명의 사람들의 안면들의 이미지로부터 각각의 안면의 별개의 이미지들을 추출하기 위해 필터(들)(610) 및 다중 뷰-포트 데이터 스위치(620)를 사용할 수 있고, 여기서 각각의 이미지에 대한 데이터는 대응하는 뷰잉 포트(630)를 갖는다. 안면-인식 컴퓨터-비전 애플리케이션은 각각의 포트(630)로부터의 데이터를 사용하고, 각각의 포트(630)로부터 안면 인식을 별개로 수행할 수 있다.
[0059] 이러한 방식의 데이터 스위칭은 또한, 도 1의 메모리 서브시스템(150)을 포함할 수 있는 디바이스의 시스템 메모리(640)에서 데이터가 태깅되는 방법을 용이하게 할 수 있다. 데이터 태깅은, 다수의 센서들이 정보를 데이터 경로(200)에 제공하는 디바이스들에 특히 유용할 수 있다. 도 6에 도시된 바와 같이, 실시예들은 컴퓨터-비전 특수화 모듈(230)의 다중 뷰-포트 데이터 스위치(620)가 각각의 데이터 포트(630)의 데이터를 태깅하고 시스템 메모리(640)에 기록하도록 허용하도록 구성될 수 있다. 다중 뷰-포트 데이터 스위치(620)는, 시스템 메모리(640) 내의 페이징이 감소되고 이로써 레이턴시 및 전력 소비를 감소시키도록 데이터를 정렬하도록 구성될 수 있다.
[0060] 도 7은 컴퓨터-비전 애플리케이션들에 대한 적응형 데이터 경로를 제공하기 위한 방법(700)의 실시예를 예시한다. 상기 방법은, 예를 들면, 도 1의 컴퓨터-비전 프로세싱 유닛(120)과 같은 컴퓨터-비전 프로세싱 유닛에 의해 수행될 수 있다. 따라서, 방법(700)의 각각의 단계를 수행하기 위한 수단은 본원에 설명된 하드웨어 및/또는 소프트웨어 컴포넌트들을 포함할 수 있다. 일 실시예에서, 방법(700)은 특수화된 명령-기반, 인-라인 프로세서에 의해 수행될 수 있다. 또한, 디바이스의 메모리 서브시스템 및/또는 컴퓨터-비전 프로세싱 유닛 내부의 메모리는 디바이스 및/또는 컴퓨터-비전 프로세싱 유닛으로 하여금 방법(700)의 단계들 중 하나 이상을 수행하게 하기 위한 명령들로 인코딩될 수 있다.
[0061] 블록(710)에서, 제 1 이미지가 수신된다. 이미지는 이미지 센서 모듈의 하나 이상의 센서(들), 예를 들면, 센서(들)(115)로부터 수신될 수 있다. 일부 실시예들에서, 이미지가, 예를 들면, 코어 데이터 경로에 의해 수신되기 전에, 이미지에 대해 일부 예비 필터링이 발생할 수 있다.
[0062] 블록(720)에서, 이미지 프로세싱 기능들 또는 필터들 중 제 1 서브세트는 애플리케이션 프로세싱 유닛에 의해 실행되는 제 1 컴퓨터-비전 애플리케이션에 기초하여 선택된다. 제 1 서브세트는 제 1 이미지의 프로세싱에 사용될 수 있는 복수의 이미지 프로세싱 기능들로부터 선택된다. 이전에 표시된 바와 같이, 이미지 프로세싱 기능들의 제 1 서브세트를 선택하는 것은 애플리케이션 프로세싱 유닛, 예를 들면, 애플리케이션 프로세싱 유닛(130)에 의해 실행되는 컴퓨터-비전 애플리케이션에 의해 제공된 입력에 기초할 수 있다. 입력은, 예를 들면, 기준 이미지일 수 있다. 방법(700)이 특수화된 컴퓨터-비전 프로세싱 유닛에 의해 수행되는 경우에, 입력은 별개의 해석 엔진 없이 컴퓨터-비전 프로세싱 유닛에 의해 해석되는 명령-기반 커맨드일 수 있다. 입력은 컴퓨터-비전 애플리케이션에 의해 애플리케이션 계층에서 생성되는 명령을 포함할 수 있다. 부가적으로 또는 대안적으로, 컴퓨터-비전 프로세싱 유닛(및/또는 방법(700)을 구현하는 다른 하드웨어 및/또는 소프트웨어)은 선택된 이미지 프로세싱 기능들을 구현하도록, 입력에 기초하여, 동적으로 프로그래밍될 수 있다. 필터들 또는 기능들은 필터들(315-355) 또는 본원에 예시 또는 설명되지 않은 다른 필터들 중 임의의 것을 포함할 수 있다.
[0063] 블록(730)에서, 제 1 이미지는 이미지 프로세싱 기능들의 제 1 서브세트를 사용하여 프로세싱된다. 원하는 기능 및/또는 컴퓨터-비전 애플리케이션의 필요성들에 따라, 애플리케이션 프로세싱 유닛 및/또는 메모리 서브시스템 중 어느 하나 또는 둘 모두로 하여금 저전력 모드를 탈출하게 하기 위한 인터럽트 또는 다른 출력이 애플리케이션 프로세싱 유닛 및/또는 메모리 서브시스템에 제공될 수 있다. 일부 경우들에서, 제 1 이미지로부터의 복수의 서브-이미지 출력들은, 가령, 도 6에 관련하여 이전에 설명된 바와 같이, 다중 뷰-포트 데이터 스위치가 단일 이미지로부터 별개의 서브-이미지들을 분리하는데 사용될 때, 제공될 수 있다.
[0064] 선택적인 블록들(740-760)은 제 2 컴퓨터-비전 애플리케이션에 관련하여 데이터 경로의 적응 가능성을 예시한다. 블록(740)에서, 제 2 이미지는, 예를 들면, 센서(들)(115)로부터 수신된다. 블록(750)에서, 이미지 프로세싱 기능들의 제 2 서브세트는 애플리케이션 프로세싱 유닛에 의해 실행되는 제 2 컴퓨터-비전 애플리케이션에 기초하여, 예를 들면, 기능들(315-355) 또는 다른 기능들로부터 선택된다. 여기서, 예를 들면, 제 2 컴퓨터-비전 애플리케이션의 필요성들은 제 1 컴퓨터-비전 애플리케이션의 필요성들로부터 변동할 수 있고, 따라서 도 5a 및 도 5b에 관련하여 앞서 예시된 바와 같이, 이미지 프로세싱 기능들의 제 2 서브세트의 선택을 발생시킨다. 그러나, 이전에 설명된 바와 같이, 데이터 경로는 애플리케이션 프로세싱 유닛에 의해 실행되는 상이한 컴퓨터-비전 애플리케이션들에 기초하여 사용되는 이미지 프로세싱 기능들 및/또는 각각의 이미지 프로세싱 기능의 파라미터들을 변경할 뿐만 아니라, 특정 컴퓨터-비전 애플리케이션의 상태에 기초하여 사용되는 이미지 프로세싱 기능들 및/또는 각각의 이미지 프로세싱 기능의 파라미터들을 변경할 수 있다. 블록(760)에서, 제 2 이미지는 이미지 프로세싱 기능들의 제 2 서브세트를 사용하여 프로세싱된다.
[0065] 도 7에 예시된 특정 단계들이 컴퓨터-비전 애플리케이션들에 대한 적응형 데이터 경로를 제공하기 위한 예시적인 방법을 예시한다는 것이 인지되어야 한다. 대안적인 실시예들은 도시된 실시예들에 대한 변경들을 포함할 수 있다. 또한, 부가적인 특징들은 특정 애플리케이션들에 따라 부가 또는 제거될 수 있다. 당업자는 많은 변동들, 수정들 및 대안들을 인지할 것이다.
[0066] 본원에 논의된 방법들, 시스템들, 및 디바이스들은 예들이다. 다양한 실시예들은 적절할 때 다양한 절차들 또는 컴포넌트들을 생략, 대체, 또는 부가할 수 있다. 예를 들어, 특정한 실시예들에 대해 설명된 특징들은 다양한 다른 실시예들에서 결합될 수 있다. 실시예들의 상이한 양상들 및 엘리먼트들은 유사한 방식으로 결합될 수 있다. 본원에 제공된 도면들의 다양한 컴포넌트들은 하드웨어 및/또는 소프트웨어에서 구현될 수 있다. 또한, 기술이 진보하며, 따라서, 엘리먼트들 중 많은 엘리먼트들은 본 개시의 범위를 그러한 특정 예들로 제한하지 않는 예들이다.
[0067] 특정한 세부사항들이, 실시예들의 완전한 이해를 제공하기 위해 설명부에서 제시되었다. 그러나, 실시예들은 이들 특정한 세부사항들 없이 실시될 수 있다. 예를 들어, 잘 알려진 회로들, 프로세스들, 알고리즘들, 구조들, 및 기술들은 실시예들을 모호하게 하는 것을 회피하기 위해 불필요한 세부사항 없이 도시된다. 이러한 설명은 단지 예시적인 실시예들을 제공할 뿐이며, 본 발명의 범위, 적용가능성, 또는 구성들을 제한하도록 의도되지 않는다. 오히려, 실시예들의 이전 설명은, 본 발명의 실시예들을 구현하는 것을 가능하게 하는 설명을 당업자들에게 제공할 것이다. 본 발명의 사상 또는 범위를 벗어나지 않으면서 다양한 변화들이 엘리먼트들의 기능 및 어레인지먼트에서 행해질 수 있다.
[0068] 수 개의 실시예들을 설명했지만, 다양한 변형들, 대안적인 구조들, 및 등가물들이 본 개시의 사상을 벗어나지 않으면서 사용될 수 있다. 예를 들어, 상기 엘리먼트들은 단지 더 큰 시스템의 컴포넌트일 수 있으며, 여기서, 다른 규칙들은 본 발명의 애플리케이션에 우선할 수 있거나 그렇지 않으면 본 발명의 애플리케이션을 변경시킬 수 있다. 또한, 다수의 단계들은, 상기 엘리먼트들이 고려되기 전에, 그 동안, 또는 그 이후에 착수될 수 있다. 따라서, 위의 설명은 본 개시의 범위를 제한하지 않는다.
Claims (32)
- 적응형 데이터 경로를 제공하기 위한 장치로서,
애플리케이션 프로세서; 및
상기 애플리케이션 프로세서와는 별개로 프로그래밍 가능하고, 그리고 이미지 센서 모듈 및 상기 애플리케이션 프로세서에 통신 가능하게 커플링된, 프로세서를 포함하고,
상기 프로세서는:
상기 애플리케이션 프로세서에 의해 실행되는 애플리케이션에 기초하여, 상기 애플리케이션 프로세서로부터 복수의 명령-기반 커맨드들을 수신하고;
상기 이미지 센서 모듈로부터 복수의 이미지들 각각에 대응하는 데이터를 수신하고; 그리고
상기 복수의 명령-기반 커맨드들의 각각의 명령-기반 커맨드에 대해:
상기 명령-기반 커맨드에 기초하여, 복수의 이미지 프로세싱 기능들로부터 이미지 프로세싱 기능들의 서브세트를 선택하고 ― 상기 프로세서는 상기 선택된 이미지 프로세싱 기능들의 서브세트를 구현하도록 동적으로 프로그래밍됨 ―; 그리고
상기 선택된 이미지 프로세싱 기능들의 서브세트를 사용하여 상기 복수의 이미지들의 이미지에 대응하는 데이터를 프로세싱하도록
구성되는,
적응형 데이터 경로를 제공하기 위한 장치. - 제 1 항에 있어서,
상기 프로세서는 추가로:
상기 이미지 센서 모듈로부터 새로운 이미지에 대응하는 데이터를 수신하고; 그리고
상기 복수의 이미지 프로세싱 기능들로부터 이미지 프로세싱 기능들의 새로운 서브세트를 선택하고 ― 상기 이미지 프로세싱 기능들의 새로운 서브세트는 새로운 명령-기반 커맨드에 기초함 ―; 그리고
상기 이미지 프로세싱 기능들의 새로운 서브세트를 사용하여 상기 새로운 이미지에 대응하는 데이터를 프로세싱하도록
구성되는,
적응형 데이터 경로를 제공하기 위한 장치. - 제 1 항에 있어서,
상기 복수의 명령-기반 커맨드들 중 적어도 하나의 명령-기반 커맨드는 컴퓨터-비전 애플리케이션에 의해 생성되는 명령을 포함하는,
적응형 데이터 경로를 제공하기 위한 장치. - 제 1 항에 있어서,
상기 복수의 명령-기반 커맨드들 중 적어도 하나의 명령-기반 커맨드는 상기 장치의 애플리케이션 계층에서 생성되는 명령을 포함하는,
적응형 데이터 경로를 제공하기 위한 장치. - 제 1 항에 있어서,
상기 프로세서는 상기 프로세서에 의해 유지되는 기준 이미지에 기초하여 상기 복수의 이미지들 중 적어도 하나의 이미지에 대응하는 데이터를 프로세싱하도록 구성되는,
적응형 데이터 경로를 제공하기 위한 장치. - 제 1 항에 있어서,
메모리 서브시스템을 더 포함하고,
상기 프로세서는 상기 애플리케이션 프로세서 또는 상기 메모리 서브시스템 중 어느 하나 또는 둘 모두로 하여금 저전력 모드를 빠져나오게 하는 출력을 제공하도록 구성되는,
적응형 데이터 경로를 제공하기 위한 장치. - 제 1 항에 있어서,
상기 프로세서는 상기 복수의 이미지들 중 적어도 하나의 이미지에 대응하는 데이터로부터 복수의 서브-이미지 출력들을 제공하도록 구성되는,
적응형 데이터 경로를 제공하기 위한 장치. - 제 1 항에 있어서,
상기 프로세서는 이미지 신호 프로세서를 포함하는,
적응형 데이터 경로를 제공하기 위한 장치. - 제 1 항에 있어서,
상기 프로세서는 제 1 데이터 경로를 통해 상기 애플리케이션 프로세서로부터 상기 복수의 명령-기반 커맨드들을 수신하도록 구성되고, 그리고 상기 프로세서는 제 2 데이터 경로를 통해 상기 이미지 센서 모듈로부터 상기 복수의 이미지들 각각에 대응하는 데이터를 수신하도록 구성되는,
적응형 데이터 경로를 제공하기 위한 장치. - 제 9 항에 있어서,
상기 프로세서는 상기 제 1 데이터 경로를 통해 상기 애플리케이션 프로세서에 상기 프로세싱된 데이터를 송신하도록 구성되는,
적응형 데이터 경로를 제공하기 위한 장치. - 제 10 항에 있어서,
상기 프로세서는 이미지 신호 프로세서를 포함하는,
적응형 데이터 경로를 제공하기 위한 장치. - 제 10 항에 있어서,
상기 프로세싱된 데이터는:
광의 변동(variance)의 검출,
시청 장면의 변동의 검출,
시각적 물체 검출,
시각적 물체 특징 검출,
물체 추적, 또는
플랫폼 안정성 검출, 또는
이들의 임의의 조합
의 표시를 포함하는,
적응형 데이터 경로를 제공하기 위한 장치. - 제 9 항에 있어서,
상기 프로세서는 상기 제 2 데이터 경로를 통해 상기 이미지 센서 모듈과 직접 통신하는,
적응형 데이터 경로를 제공하기 위한 장치. - 적응형 데이터 경로를 제공하기 위한 방법으로서,
애플리케이션 프로세싱 유닛에 의해 실행되는 애플리케이션에 기초하여, 상기 애플리케이션 프로세싱 유닛으로부터 복수의 명령-기반 커맨드들을 수신하는 단계;
복수의 이미지들 각각에 대응하는 데이터를 수신하는 단계; 및
상기 복수의 명령-기반 커맨드들의 각각의 명령-기반 커맨드에 대해:
상기 명령-기반 커맨드에 기초하여, 복수의 이미지 프로세싱 기능들로부터 이미지 프로세싱 기능들의 서브세트를 선택하고; 그리고
상기 애플리케이션 프로세싱 유닛과는 별개인 프로세싱 유닛을 이용하여, 상기 선택된 이미지 프로세싱 기능들의 서브세트를 사용하여 상기 복수의 이미지들의 이미지에 대응하는 데이터를 프로세싱하도록 ― 상기 프로세싱 유닛은 상기 선택된 이미지 프로세싱 기능들의 서브세트를 구현하도록 동적으로 프로그래밍됨 ―
상기 프로세싱 유닛을 사용하는 단계를 포함하는,
적응형 데이터 경로를 제공하기 위한 방법. - 제 14 항에 있어서,
새로운 이미지에 대응하는 데이터를 수신하는 단계;
상기 복수의 이미지 프로세싱 기능들로부터 이미지 프로세싱 기능들의 새로운 서브세트를 선택하는 단계 ― 상기 이미지 프로세싱 기능들의 새로운 서브세트는 새로운 명령-기반 커맨드에 기초함 ―; 및
상기 이미지 프로세싱 기능들의 새로운 서브세트를 사용하여 상기 새로운 이미지에 대응하는 데이터를 프로세싱하는 단계를 더 포함하는,
적응형 데이터 경로를 제공하기 위한 방법. - 제 14 항에 있어서,
상기 복수의 명령-기반 커맨드들 중 적어도 하나의 명령-기반 커맨드는 컴퓨터-비전 애플리케이션에 의해 생성되는 명령을 포함하는,
적응형 데이터 경로를 제공하기 위한 방법. - 제 14 항에 있어서,
기준 이미지를 유지하는 단계를 더 포함하고,
상기 복수의 이미지들 중 적어도 하나의 이미지에 대응하는 데이터를 프로세싱하는 것은 상기 기준 이미지에 기초하는,
적응형 데이터 경로를 제공하기 위한 방법. - 제 14 항에 있어서,
상기 애플리케이션 프로세싱 유닛 또는 메모리 서브시스템 중 어느 하나 또는 둘 모두로 하여금 저전력 모드를 빠져나오게 하는 출력을 제공하는 단계를 더 포함하는,
적응형 데이터 경로를 제공하기 위한 방법. - 제 14 항에 있어서,
상기 복수의 이미지들 중 적어도 하나의 이미지에 대응하는 데이터로부터 복수의 서브-이미지 출력들을 제공하는 단계를 더 포함하는,
적응형 데이터 경로를 제공하기 위한 방법. - 제 14 항에 있어서,
상기 복수의 이미지들 중 적어도 하나의 이미지를 프로세싱하는 것은 이미지 신호 프로세서를 사용하여 수행되는,
적응형 데이터 경로를 제공하기 위한 방법. - 제 14 항에 있어서,
상기 프로세싱 유닛은 제 1 데이터 경로를 통해 상기 애플리케이션 프로세싱 유닛으로부터 상기 복수의 명령-기반 커맨드들을 수신하고, 상기 방법은, 상기 프로세싱 유닛에서, 제 2 데이터 경로를 통해 이미지 센서 모듈로부터 상기 복수의 이미지들 각각에 대응하는 데이터를 수신하는 단계를 더 포함하는,
적응형 데이터 경로를 제공하기 위한 방법. - 제 21 항에 있어서,
상기 제 1 데이터 경로를 통해 상기 프로세싱 유닛으로부터 상기 애플리케이션 프로세싱 유닛에 상기 프로세싱된 데이터를 송신하는 단계를 더 포함하는,
적응형 데이터 경로를 제공하기 위한 방법. - 제 22 항에 있어서,
상기 프로세싱 유닛은 이미지 신호 프로세서를 포함하는,
적응형 데이터 경로를 제공하기 위한 방법. - 제 22 항에 있어서,
상기 프로세싱된 데이터는:
광의 변동의 검출,
시청 장면의 변동의 검출,
시각적 물체 검출,
시각적 물체 특징 검출,
물체 추적, 또는
플랫폼 안정성 검출, 또는
이들의 임의의 조합
의 표시를 포함하는,
적응형 데이터 경로를 제공하기 위한 방법. - 제 22 항에 있어서,
상기 프로세싱 유닛은 상기 제 2 데이터 경로를 통해 상기 이미지 센서 모듈과 직접 통신하는,
적응형 데이터 경로를 제공하기 위한 방법. - 적응형 데이터 경로를 제공하기 위한 장치로서,
애플리케이션 프로세싱 유닛에 의해 실행되는 애플리케이션에 기초하여, 상기 애플리케이션 프로세싱 유닛으로부터 제 1 명령-기반 커맨드 및 제 2 명령-기반 커맨드를 수신하기 위한 수단;
제 1 이미지 및 제 2 이미지 각각에 대응하는 데이터를 수신하기 위한 수단;
상기 제 1 명령-기반 커맨드에 기초하여, 복수의 이미지 프로세싱 기능들로부터 이미지 프로세싱 기능들의 제 1 서브세트를 선택하고, 그리고
상기 제 2 명령-기반 커맨드에 기초하여, 상기 복수의 이미지 프로세싱 기능들로부터 이미지 프로세싱 기능들의 제 2 서브세트를 선택하기 위한
수단; 및
상기 이미지 프로세싱 기능들의 제 1 서브세트를 사용하여 상기 제 1 이미지에 대응하는 데이터를 그리고 상기 이미지 프로세싱 기능들의 제 2 서브세트를 사용하여 상기 제 2 이미지에 대응하는 데이터를 프로세싱하기 위한 수단을 포함하고,
상기 프로세싱하기 위한 수단은 상기 애플리케이션 프로세싱 유닛과는 별개이고 그리고 상기 이미지 프로세싱 기능들의 제 1 및 제 2 서브세트들 각각을 구현하도록 동적으로 프로그래밍 가능하고; 그리고
상기 이미지 프로세싱 기능들의 제 2 서브세트는 상기 이미지 프로세싱 기능들의 제 1 서브세트와 상이한,
적응형 데이터 경로를 제공하기 위한 장치. - 제 26 항에 있어서,
제 3 이미지에 대응하는 데이터를 수신하기 위한 수단;
상기 복수의 이미지 프로세싱 기능들로부터 이미지 프로세싱 기능들의 제 3 서브세트를 선택하기 위한 수단 ― 상기 이미지 프로세싱 기능들의 제 3 서브세트는:
제 3 명령-기반 커맨드에 기초하고; 그리고
상기 이미지 프로세싱 기능들의 제 1 및 제 2 서브세트들과 상이함 ―; 및
상기 이미지 프로세싱 기능들의 제 3 서브세트를 사용하여 상기 제 3 이미지에 대응하는 데이터를 프로세싱하기 위한 수단을 포함하는,
적응형 데이터 경로를 제공하기 위한 장치. - 제 26 항에 있어서,
상기 제 1 명령-기반 커맨드는 컴퓨터-비전 애플리케이션에 의해 생성되는 명령을 포함하는,
적응형 데이터 경로를 제공하기 위한 장치. - 제 26 항에 있어서,
기준 이미지를 유지하기 위한 수단을 더 포함하고,
상기 제 1 이미지에 대응하는 데이터를 프로세싱하기 위한 수단은 상기 기준 이미지에 기초하여 상기 제 1 이미지를 프로세싱하도록 구성되는,
적응형 데이터 경로를 제공하기 위한 장치. - 제 26 항에 있어서,
상기 애플리케이션 프로세싱 유닛 또는 메모리 서브시스템 중 어느 하나 또는 둘 모두로 하여금 저전력 모드를 빠져나오게 하는 출력을 제공하기 위한 수단을 더 포함하는,
적응형 데이터 경로를 제공하기 위한 장치. - 제 26 항에 있어서,
상기 제 1 이미지에 대응하는 데이터로부터 복수의 서브-이미지 출력들을 제공하기 위한 수단을 더 포함하는,
적응형 데이터 경로를 제공하기 위한 장치. - 명령들로 인코딩된 비-일시적 컴퓨터-판독가능 저장 매체로서,
상기 명령들은, 실행될 때, 프로세싱 유닛으로 하여금 동작들을 수행하게 하도록 동작하고, 상기 동작들은:
애플리케이션 프로세싱 유닛에 의해 실행되는 애플리케이션에 기초하여, 상기 애플리케이션 프로세싱 유닛으로부터 복수의 명령-기반 커맨드들을 수신하는 것;
복수의 이미지들 각각에 대응하는 데이터를 수신하는 것; 및
상기 복수의 명령-기반 커맨드들의 각각의 명령-기반 커맨드에 대해:
상기 명령-기반 커맨드에 기초하여, 복수의 이미지 프로세싱 기능들로부터 이미지 프로세싱 기능들의 서브세트를 선택하는 것;
상기 애플리케이션 프로세싱 유닛과는 별개인 프로세싱 유닛으로 하여금 상기 선택된 이미지 프로세싱 기능들의 서브세트를 구현하도록 동적으로 프로그래밍되게 하는 것; 및
상기 선택된 이미지 프로세싱 기능들의 서브세트를 사용하여, 상기 애플리케이션 프로세싱 유닛과는 별개인 상기 프로세싱 유닛을 이용하여 이미지에 대응하는 데이터를 프로세싱하는 것
을 포함하는,
비-일시적 컴퓨터-판독가능 저장 매체.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US13/797,580 US9052740B2 (en) | 2013-03-12 | 2013-03-12 | Adaptive data path for computer-vision applications |
US13/797,580 | 2013-03-12 | ||
PCT/US2014/018943 WO2014158635A1 (en) | 2013-03-12 | 2014-02-27 | Adaptive data path for computer-vision applications |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20150126888A KR20150126888A (ko) | 2015-11-13 |
KR102188613B1 true KR102188613B1 (ko) | 2020-12-08 |
Family
ID=50487106
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020157027143A KR102188613B1 (ko) | 2013-03-12 | 2014-02-27 | 컴퓨터―비전 애플리케이션들을 위한 적응형 데이터 경로 |
Country Status (7)
Country | Link |
---|---|
US (2) | US9052740B2 (ko) |
EP (1) | EP2973386B1 (ko) |
JP (1) | JP6706198B2 (ko) |
KR (1) | KR102188613B1 (ko) |
CN (1) | CN105190685B (ko) |
BR (1) | BR112015022860A2 (ko) |
WO (1) | WO2014158635A1 (ko) |
Families Citing this family (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9052740B2 (en) * | 2013-03-12 | 2015-06-09 | Qualcomm Incorporated | Adaptive data path for computer-vision applications |
KR102037283B1 (ko) * | 2013-06-18 | 2019-10-28 | 삼성전자주식회사 | 이미지 센서, 이미지 신호 프로세서 및 이들을 포함하는 전자 장치 |
US9659380B1 (en) * | 2016-01-07 | 2017-05-23 | International Business Machines Corporation | Object position tracking using motion estimation |
US10782796B2 (en) * | 2016-11-16 | 2020-09-22 | Magic Leap, Inc. | Mixed reality system with reduced power rendering |
CN110168565B (zh) * | 2017-01-23 | 2024-01-05 | 高通股份有限公司 | 低功率虹膜扫描初始化 |
EP3571626A1 (en) * | 2017-01-23 | 2019-11-27 | Qualcomm Incorporated | Single-processor computer vision hardware control and application execution |
US10742834B2 (en) * | 2017-07-28 | 2020-08-11 | Advanced Micro Devices, Inc. | Buffer management for plug-in architectures in computation graph structures |
KR20190106251A (ko) | 2018-03-08 | 2019-09-18 | 삼성전자주식회사 | 이미지 센서와 연결된 인터페이스 및 복수의 프로세서들간에 연결된 인터페이스를 포함하는 전자 장치 |
JP7403279B2 (ja) * | 2019-10-31 | 2023-12-22 | キヤノン株式会社 | 画像処理装置および画像処理方法 |
JP6885640B1 (ja) * | 2020-10-01 | 2021-06-16 | 株式会社ラムダシステムズ | 画像処理装置 |
US20220314492A1 (en) * | 2021-04-05 | 2022-10-06 | Sysdyne Technologies LLC | Concrete mixer truck drum rotation measurement using camera |
US11783453B2 (en) * | 2021-06-10 | 2023-10-10 | Bank Of America Corporation | Adapting image noise removal model based on device capabilities |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120320070A1 (en) * | 2011-06-20 | 2012-12-20 | Qualcomm Incorporated | Memory sharing in graphics processing unit |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1093668C (zh) * | 1997-05-20 | 2002-10-30 | 致伸实业股份有限公司 | 计算机图像处理系统 |
JP3532781B2 (ja) * | 1999-02-12 | 2004-05-31 | 株式会社メガチップス | 画像入力装置の画像処理回路 |
US7327396B2 (en) | 2002-04-10 | 2008-02-05 | National Instruments Corporation | Smart camera with a plurality of slots for modular expansion capability through a variety of function modules connected to the smart camera |
US7256788B1 (en) * | 2002-06-11 | 2007-08-14 | Nvidia Corporation | Graphics power savings system and method |
JP2004104347A (ja) * | 2002-09-06 | 2004-04-02 | Ricoh Co Ltd | 画像処理装置、画像処理方法、プログラム及び記録媒体 |
JP2004213423A (ja) * | 2003-01-06 | 2004-07-29 | Sony Corp | 情報処理装置及び方法、並びに情報処理プログラム |
US7453506B2 (en) * | 2003-08-25 | 2008-11-18 | Fujifilm Corporation | Digital camera having a specified portion preview section |
TWI300159B (en) | 2004-12-24 | 2008-08-21 | Sony Taiwan Ltd | Camera system |
JP2007053691A (ja) | 2005-08-19 | 2007-03-01 | Micron Technol Inc | サブlsbを用いた拡張デジタルデータ路構造 |
JP4442644B2 (ja) * | 2007-06-15 | 2010-03-31 | 株式会社デンソー | パイプライン演算装置 |
JP5059551B2 (ja) * | 2007-10-31 | 2012-10-24 | 株式会社デンソー | 車両の乗員検出装置 |
JP2010068190A (ja) * | 2008-09-10 | 2010-03-25 | Nikon Corp | デジタルカメラ、画像処理装置およびデジタルカメラシステム |
US8868925B2 (en) * | 2008-12-09 | 2014-10-21 | Nvidia Corporation | Method and apparatus for the secure processing of confidential content within a virtual machine of a processor |
JP2010282429A (ja) * | 2009-06-04 | 2010-12-16 | Canon Inc | 画像処理装置及びその制御方法 |
KR20110133699A (ko) * | 2010-06-07 | 2011-12-14 | 삼성전자주식회사 | 휴대용 단말기의 이미지 획득 장치 및 방법 |
US8488031B2 (en) | 2011-01-14 | 2013-07-16 | DigitalOptics Corporation Europe Limited | Chromatic noise reduction method and apparatus |
US9052740B2 (en) | 2013-03-12 | 2015-06-09 | Qualcomm Incorporated | Adaptive data path for computer-vision applications |
-
2013
- 2013-03-12 US US13/797,580 patent/US9052740B2/en active Active
-
2014
- 2014-02-27 EP EP14717531.9A patent/EP2973386B1/en active Active
- 2014-02-27 BR BR112015022860A patent/BR112015022860A2/pt not_active IP Right Cessation
- 2014-02-27 CN CN201480012145.1A patent/CN105190685B/zh active Active
- 2014-02-27 WO PCT/US2014/018943 patent/WO2014158635A1/en active Application Filing
- 2014-02-27 KR KR1020157027143A patent/KR102188613B1/ko active IP Right Grant
- 2014-02-27 JP JP2016500456A patent/JP6706198B2/ja active Active
-
2015
- 2015-04-21 US US14/691,903 patent/US9549120B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120320070A1 (en) * | 2011-06-20 | 2012-12-20 | Qualcomm Incorporated | Memory sharing in graphics processing unit |
Also Published As
Publication number | Publication date |
---|---|
EP2973386A1 (en) | 2016-01-20 |
CN105190685B (zh) | 2018-10-26 |
EP2973386B1 (en) | 2018-12-05 |
US20150229839A1 (en) | 2015-08-13 |
US20140267790A1 (en) | 2014-09-18 |
BR112015022860A2 (pt) | 2017-07-18 |
US9052740B2 (en) | 2015-06-09 |
KR20150126888A (ko) | 2015-11-13 |
WO2014158635A1 (en) | 2014-10-02 |
JP6706198B2 (ja) | 2020-06-03 |
JP2016515260A (ja) | 2016-05-26 |
US9549120B2 (en) | 2017-01-17 |
CN105190685A (zh) | 2015-12-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102188613B1 (ko) | 컴퓨터―비전 애플리케이션들을 위한 적응형 데이터 경로 | |
US11102398B2 (en) | Distributing processing for imaging processing | |
JP7266672B2 (ja) | 画像処理方法および画像処理装置、ならびにデバイス | |
EP4154511A1 (en) | Maintaining fixed sizes for target objects in frames | |
US10021381B2 (en) | Camera pose estimation | |
KR101548834B1 (ko) | 클라우드 보조 증강 현실을 위한 적응적 프레임워크 | |
EP3038056A1 (en) | Method and system for processing video content | |
WO2018102880A1 (en) | Systems and methods for replacing faces in videos | |
WO2012093381A1 (en) | Camera assembly with an integrated content analyzer | |
CN111880711B (zh) | 显示控制方法、装置、电子设备及存储介质 | |
US8798369B2 (en) | Apparatus and method for estimating the number of objects included in an image | |
CN111880640B (zh) | 屏幕控制方法、装置、电子设备及存储介质 | |
US20220345628A1 (en) | Method for image processing, electronic device, and storage medium | |
EP4416919A1 (en) | Region of interest capture for electronic devices | |
CN108492266B (zh) | 图像处理方法、装置、存储介质及电子设备 | |
CN108259767B (zh) | 图像处理方法、装置、存储介质及电子设备 | |
US20220414830A1 (en) | Method and apparatus for improved object detection | |
CN108495038B (zh) | 图像处理方法、装置、存储介质及电子设备 | |
JP2017204280A (ja) | ビデオフレームを選択する方法、システム及び装置 | |
US20220408008A1 (en) | High-dynamic-range detecting system | |
US12073611B2 (en) | Apparatus and methods for object detection using machine learning processes | |
CN118043859A (zh) | 高效视觉感知 | |
JP2010278916A (ja) | 情報処理装置、撮像装置及び制御方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant |