KR20140099295A - 파이프라인 이미지 프로세싱 시퀀서 - Google Patents

파이프라인 이미지 프로세싱 시퀀서 Download PDF

Info

Publication number
KR20140099295A
KR20140099295A KR1020147017647A KR20147017647A KR20140099295A KR 20140099295 A KR20140099295 A KR 20140099295A KR 1020147017647 A KR1020147017647 A KR 1020147017647A KR 20147017647 A KR20147017647 A KR 20147017647A KR 20140099295 A KR20140099295 A KR 20140099295A
Authority
KR
South Korea
Prior art keywords
sequence
meet
process element
performance
sequencer
Prior art date
Application number
KR1020147017647A
Other languages
English (en)
Inventor
스콧 에이 크리그
Original Assignee
인텔 코포레이션
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 인텔 코포레이션 filed Critical 인텔 코포레이션
Publication of KR20140099295A publication Critical patent/KR20140099295A/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining

Landscapes

  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Power Sources (AREA)
  • Image Processing (AREA)
  • Advance Control (AREA)

Abstract

이미징 및 분석 프로세싱에 대해 최적의 전력 및 성능 정책 선택(performance policy choice)을 제공하기 위해, 몇 실시예에 따르면, 순차적으로 실행되는 프로세스 요소들로 형성된 실행 시퀀스들에 재사용가능하고 재구성가능한 전용 기능(dedicated function) 프로세스 요소들이 할당될 수 있다. 임의의 주어진 프로세스 요소는 시퀀스 성능 기준을 충족시키기 위해 임의의 주어진 실행 시퀀스 내에서 재구성될 수 있다. 그 다음, 복수의 시퀀스는 동시에 실행될 수 있다.

Description

파이프라인 이미지 프로세싱 시퀀서{PIPELINED IMAGE PROCESSING SEQUENCER}
본 출원은 일반적으로 이미지 프로세싱 및 분석을 위한 프로세싱 작업을 수행하는 것에 관련된다.
분석(Analytics)은 묘사된 객체에 대한 정보를 획득하기 위해 이미지 또는 이미지 프레임들로 형성된 비디오 시퀀스를 프로세싱하는 것을 수반한다. 비디오 분석은, 몇 가지 예를 들자면 감시(surveillance), 얼굴 인식, 비디오 검색을 포함하는 다양한 애플리케이션에서 흔히 사용된다.
비디오 분석 애플리케이션은 연산 및 메모리 집약적인 경향을 가지며, 몇 가지 경우, 고정된 기능의 하드웨어 블록들(fixed function hardware blocks)이 소프트웨어 컴포넌트들과 결합된다. 전형적으로, 몇 가지 예를 들자면 임계값, 고속 푸리에 변환, 히스토그램, 또는 공간 콘볼루션(spatial convolution)의 연산과 같은 항목들을 포함하는 공통적인 기능들은 수 차례 실행될 수 있다.
이미지 프로세싱은 분석 뿐만 아니라 카메라, 스캐너로부터의 화상 및 존재하는 이미지 또는 비디오 파일에 대한 강조(enhancement) 및 조정(adjustment)을 포함한다.
이미지 프로세싱에 있어서 연산 및 메모리 효율을 향상시킨다.
몇 실시예들에 따르면, 이미지 프로세싱을 위해, 재사용가능하고 재구성가능한 전용(dedicated) 기능 프로세싱 요소가 순차적으로 실행되는 프로세싱 요소들로 형성된 실행 시퀀스에 할당될 수 있다. 시퀀스 성능 기준(sequence performance metric)을 충족하기 위해 임의의 주어진 프로세싱 요소가 임의의 주어진 실행 시퀀스로 재구성될 수 있다.
실시예들에 따르면, 전용 기능 프로세스 요소를 실행 시퀀스에 할당하며 프로세스 요소를 시퀀스 성능 기준을 충족시키기 위해 재구성함으로써 이미지 프로세싱에 있어서 연산 및 메모리 효율을 향상시킬 수 있다.
몇 실시예들은 이하 도면들과 관련되어 설명된다.
도 1은 본 발명의 일 실시예의 개략적인 도시이다.
도 2는 일 실시예에 대한 흐름도이다.
도 3은 일 실시예에 따른 시스템의 도시이다.
도 4는 모바일 장치의 형태인 일 실시예의 도시이다.
몇 실시예들에 따르면, 이미지 프로세싱을 위해, 재사용가능하고 재구성가능한 전용(dedicated) 기능 프로세싱 요소가 순차적으로 실행되는 프로세싱 요소들로 형성된 실행 시퀀스에 할당될 수 있다. 시퀀스 성능 기준(sequence performance metric)을 충족하기 위해 임의의 주어진 프로세싱 요소가 임의의 주어진 실행 시퀀스로 재구성될 수 있다. 복수의 시퀀스는 동시에 실행될 수도 있다.
본 명세서에서, "프로세스 요소(process element)"는 특정 컴퓨팅 작업을 수행하는 소프트웨어 또는 하드웨어 모듈이 될 수 있다. 비디오 분석 애플리케이션에서 프로세스 요소의 예는 고속 푸리에 변환, 임계값, 모폴로지(morphology), 히스토그램, 공간 콘볼루션, 비색법(colorimetry), 룩업 테이블(lookup table), 형태 변환, 템플릿 매칭, 프로그래밍 가능한 단일 명령어 복수 데이터(programmable single instruction multiple data), 형상 팩터, 장면 통계(scene statistics) 및 3차원 와이어 프레임 메쉬를 포함한다.
실행 시퀀스는 순차적으로 실행되는 프로세스 요소의 체인(chain)이다.
프로세스 요소는 특정 기능에 요소가 전용되는 경우에도 재사용 가능하며 하나 이상의 실행 시퀀스들에서 동시에 또는 다른 시점에 재사용 가능할 수 있다. 프로세스 요소들은 특정 동작 조건 또는 디자인 제한을 성취하기 위해 런타임(run time) 시에 적용될 수 있도록 재구성가능하다. 구체적으로, 임의의 주어진 프로세스 요소는 해당 요소가 현재 위치한 특정 시퀀스와 연관된 성능 기준을 충족하기 위해 재구성될 수 있다.
성능 기준의 예로써, 주어진 시퀀스는 전력 소비 또는 전력 예산 목표를 가질 수 있다. 해당 시퀀스 내의 특정 프로세스 요소의 동작은 성능 기준을 충족하기 위해, 해당하는 특정 시퀀스만을 위해 변경될 수 있다.
다른 예로써, 개별적인 프로세스 요소의 성능은 시퀀스의 속도를 향상시키기 위해 변경될 수 있다. 예를 들어, 메모리 액세스를 위한 대역폭은 성능을 향상시키거나 전력 소비를 조절하기 위해 증가 또는 감소할 수 있다.
또 다른 예로써, 임의의 주어진 프로세스 요소의 특성 또는 동작은 원하는 동작 온도 범위를 성취하기 위해 변화할 수 있다. 예를 들어, 하드웨어 기반 프로세스 요소의 전압 또는 주파수는 온도 제한을 충족하기 위해 특정 시퀀스 내에서 변경될 수 있다.
또 다른 예로써, 주어진 프로세서 요소가 동작하는 속도(예를 들어, 초당 동작 수(operations in second))는 성능, 속도 또는 전력 소비의 목표를 성취하기 위해 변경 가능하다.
또 다른 예로써, 실행 시퀀스 또는 전체 시퀀스 내에서 임의의 주어진 프로세스 요소의 우선순위는 동작 속도와 같은 시퀀스 레벨 목표를 충족시키기 위해 변경될 수 있다. 구체적으로, 프로세스 요소 또는 시퀀스의 메모리 액세스 우선순위는 성능 기준을 성취하기 위해 변경될 수 있다.
도 1을 참조하면, 파이프라인 분석 시퀀서(pipeline analytics sequencer, 10)는 하나 이상의 시퀀스들 및 우선순위화된 버스 아비터(prioritized bus arbiter, 14)를 형성하는 복수의 재사용가능하고 재구성가능한 전용 기능 프로세스 요소(12)를 포함할 수 있다. 또한, 시퀀서(10)는 몇 개의 파이프라인 컨트롤러(16)를 포함하며, 이들은 일 실시예에서 별도의 하드웨어 컨트롤러일 수 있다. 파이프라인 분석 시퀀서(10)는 몇 개의 어드레스 가능한 버퍼(20)로 형성된 메모리(18)와 버스를 통해 통신할 수 있다. 일 실시예에서, 시퀀서는 범용 컴퓨터를 사용하여 하나 이상의 소프트웨어 프로세스들 또는 작업들로서 구현될 수 있으며, 그 기능은 소프트웨어가 사용되는 경우, 하드웨어가 사용되는 경우, 또는 이들 둘의 결합이 사용되는 경우 모두에 동일할 수 있다.
따라서, 프로세스 요소(12) 각각은 특정의 전용 기능을 수행하는 하드웨어 또는 소프트웨어 모듈 모두가 될 수 있다. 여전히, 각각의 프로세스 요소는 하나 이상의 실행 시퀀스 내에서 동시에 재사용될 수 있으며 자신의 동작 특성을 특정 시퀀스 동작 목표를 충족시키기 위해 적응시킬 수 있다.
몇 실시예들에서, 각 시퀀스는 파이프라인 컨트롤러(16)에 의해 제어되는 하나 이상의 프로세스 요소들로 형성될 수 있다. 따라서, 도 1에 도시된 것처럼, 일 실시예에서 파이프라인 컨트롤러(16)는 고속 푸리에 변환 요소(Fast Fourier Transform element, 12)로 형성된 단일 요소(12) 시퀀스를 제어한다. 유사하게, 파이프라인 컨트롤러(16a)는 고속 푸리에 변환 프로세스 요소(12)를 포함하는 세 개의 프로세스 요소(12)를 포함할 수 있다. 몇 가지 경우에 있어서, 파이프라인 컨트롤러(16) 및 파이프라인 컨트롤러(16a)는, 그들이 동일한 프로세스 요소(12)를 일부 사용함에도 불구하고, 병렬적으로 실행되는 시퀀스를 실행할 수 있다. 이를 위하여, 우선순위화된 버스 아비터(14)는 하나 이상의 동시 동작하는 시퀀스들에 의해 사용되는 프로세스 요소들 및 메모리 위치에 대한 분쟁 및 경합을 조정(arbitrate)한다.
시퀀서(10)는 다양한 방법을 사용하여 제어될 수 있다. 하나의 방법에 따르면, 시퀀서(10)는 확장 마크업 언어(XML) 명령어를 통신 링크 또는 버스를 통해 송수신하는 프로토콜에 의해 제어된다. 다른 실시예에 따르면, 시퀀서는 메모리 맵핑된 컨트롤 및 상태 레지스터(memory mapped control state register(CSR))에 의해 제어될 수 있다. 또 다른 실시예에서, 시퀀서는 CSR 포맷 또는 XML 포맷과 유사한 명령어 큐 또는 링 버퍼(ring buffer)에 의해 제어될 수 있다.
몇 실시예들에서, 각 실행 시퀀스는 고유의 식별자를 가진다. 또한, 시퀀스 내의 프로세스 요소의 실행의 순서는 각 프로세스 요소들에게 식별자를 할당하고 프로세스 요소 식별자의 순서화된 목록을 기록하는 것에 의해 판정될 수 있다.
일 실시예에서, 아비터(14)는 선도착 선처리(first come first served)의 조정 프로토콜을 집행(enforce)한다. 만약 두 개의 실행 시퀀스가 동일한 프로세스 요소를 사용하기 원하는 경우, 각각의 실행 시퀀스는 해당 프로세스 요소를 사용하기 위해 해당 프로세스 요소가 가용할 때까지 대기해야 할 것이다. 만약 프로세스 요소가 실행되고 있으면, 시퀀스는 정지(stall)하여 해당 프로세스가 실행을 완료하거나 에러 상태를 가질 때까지 대기할 수 있다. 그 다음, 시퀀스는 체인(chain) 내에서 모든 프로세스 요소들이 완료될 때까지 모든 프로세스 요소들을 실행하는 것을 지속할 수 있다.
컨트롤 및 상태 레지스터(CSR)를 사용하는 몇 실시예에서, 각 시퀀스는 체인 내의 각 프로세스 요소가 정확하게 실행되도록 하기 위해 컨트롤 및 상태 레지스터(CSR)를 프로그래밍할 책임을 가진다. 각 시퀀스는 필요한 경우 시퀀스 내의 각 프로세스 요소의 상태를 체크할 수 있다.
각 프로세스 요소는 입력 버퍼 및 출력 버퍼를 사용하도록 명령 및 상태 레지스터를 통해 프로그래밍될 수 있다. 이들 버퍼들은 임의의 종류의 메모리에 포함되어 있을 수 있다. 컨트롤은 컨트롤러 및 시퀀서를 구현하는 소프트웨어 및 소프트웨어로의 함수 호출을 사용하는 것에 의해 성취될 수 있다.
파이프라인 컨트롤러(12)는 프로세싱 요소를 예약할 수 있다. 예약된 경우, 다른 시퀀스들은 해당 프로세스 요소가 가용(free)될 때까지 해당 프로세스 요소를 사용하지 못한다. 일 실시예에 따르면, 프로세스 요소는 오직 이를 보유하고 있는 시퀀스(owning sequence)에 의해서만 가용화될 수 있다. 또한, 프로세스 요소들이 예약되지 않은 경우 시퀀스들 사이에서 프로세스 요소들이 공유될 수 있으므로, 시퀀스는 선도착 선처리의 조정 모델을 이용하여 예약 없이 프로세스 요소를 사용할 수 있다.
몇 실시예에서, 시퀀스 또는 프로세스 요소에는 미리 정의된 전압 및 주파수의 보정치(calibration)의 전력 상태가 할당될 수 있다. 예를 들어, 낮은 전력 상태는 감소된 클럭(clock) 및 전압 요건을 가질 수 있다. 각 프로세스 요소에 대해, 프로그래밍 가능한 전력 상태의 세트가 오프(off), 대기(standby), 낮음(low), 중간(medium), 높음(high)와 같은 프리셋(presets)으로서 사용 가능할 수 있다. 프로세스 요소가 사용되지 않는 경우, 시퀀스는 이를 오프시키거나 대기 모드로 변경할 수 있다. 그러면 해당 프로세스 요소는 주어진 전력 상태로 동작한다. 시퀀스에 할당된 전력 예산(power budget)은 주어진 성능 목표를 달성하기 위해 임의의 주어진 프로세스 요소의 전력 상태, 클럭 속도 또는 전압을 변경할 수 있다.
도 1에 도시된 실시예에서, 프로세스 요소는 버퍼(20)에 액세스하고, 버퍼는 입력을 처리하고 다른 버퍼(20)에게 출력을 제공할 수 있는 프로세스 요소(12)에 입력을 송신할 수 있다. 그러나, 동일영역 실행(execute-in-place)의 실시예와 같은 다른 경우에 있어서는, 출력은 입력을 제공한 동일한 버퍼에 반환될 수도 있다.
실시예에 따라 구현된 컨트롤 및 상태 레지스터 내에는 다수의 상이한 레지스터가 구현될 수 있다. 예를 들어, 시퀀스 마스터 컨트롤 및 상태 레지스터라고 불리우는 레지스터는, 리셋 상태 또는 기록 전용(write only) 상태, 오프 상태, 및 판독과 기록이 가능하며 시작 명령 및 정지 명령이 가능한 온 상태를 설정하는 특정 패턴의 비트들에 의해 구현되는 시퀀서 컨트롤을 가질 수 있다.
시퀀서 파이프라인 상태 레지스터라고 부를 수 있는 다른 레지스터, 각 시퀀스의 시작 및 정지를 제어한다. 시퀀스는 먼저 파이프라인 셋업 레지스터 다음으로 파이프라인 컨트롤 레지스터를 사용하여 설정된다. 시퀀서 파이프라인 상태 레지스터는 시작 또는 정지 지시자일 수 있다.
각 프로세스 요소는 입력 버퍼 어드레스, 입력 버퍼 크기, 출력 버퍼 어드레스, 출력 버퍼 크기, 컨트롤하는 시퀀스의 시퀀스 식별자, 전력 예산, 메모리 조정 우선순위, 고속 푸리에 변환 프로세스 요소에 대한 기수(radix), 및 임의의 주어진 프로세스 요소의 다른 파라미터들을 포함하는 다수의 상이한 단어들을 수신 가능한 셋업 레지스터(setup register)를 포함할 수 있다. 각 프로세서 요소에 대한 셋업 영역은 입력 및 출력 버퍼와 전력 예산 및 메모리 조정 우선순위를 포함하는 다른 파라미터들을 지정할 수 있다. 일 실시예에서, 프로세스 요소는 다양한 구조의 셋업 파라미터를 가질 수 있다.
각 프로세스 요소는 특정 프로세스 요소를 제어하는 시퀀스에 의해 제어될 수 있는 명령어 및 상태 레지스터(command and status register)를 또한 가질 수 있다. 특정 시퀀스는 프로세스 요소를 예약할 수 있으며 이로 인해 해당 시퀀스가 해당 프로세스 요소를 가용(free)하게 설정할 때까지 다른 시퀀스가 해당 프로세스 요소를 사용하지 못하게 할 수 있다. 이러한 레지스터는, 전력 상태, 출력 결과 코드, 리셋 지시자, 시작 및 정지 지시자, 및 프로세서 완료 비트, 퍼센티지 완료 비트, 메모리 동작 대기 비트(wait on memory operation bit), 성공 처리 비트(processing in progress bit) 및 다른 다양한 에러 비트를 포함하지만 이에 한정되지는 않는 상태 비트(status bit)와 같은 정보를 가지는 단어들을 포함할 수 있다.
각 프로세스 요소는 셋업 레지스터와 컨트롤 및 상태 레지스터를 가질 수 있으며, 각 시퀀스는 셋업 레지스터와 컨트롤 및 상태 레지스터를 가질 수 있다. 셋업 시퀀스 레지스터는 시퀀스 체인을 형성하는 프로세스 요소 식별자의 순차적 목록을 포함할 수 있다. 프로세스 요소들은 해당 체인에서 주어진 순서에 따른 시퀀스의 맥락에서 실행될 수 있다. 일 실시예에 따르면, 프로세스 요소들은 선도착 선처리에 기반한 조정(arbitration)을 사용하여 시퀀스들 사이에서 공유될 수 있다. 몇 실시예들에서, 시퀀스는 각 프로세스 요소들을 실제로 순서화(sequencing)하는 단순한 마이크로컨트롤러인 파이프라인 컨트롤러에 의해 실행될 수 있다. 프로세스 요소 완료 상태는 해당 프로세스 요소의 보유 시퀀스에게 송신되며 필요한 경우 해당 시퀀스에서 다른 프로세스 요소들을 시작하고 상태를 명령 및 상태 레지스터에 기록할 수 있다.
몇 실시예들에서, 시퀀스(22)는 소프트웨어, 펌웨어, 및/또는 파드웨어로 구현될 수 있다. 소프트웨어 및 펌웨어의 실시예에서, 시퀀스는 자기, 광학 또는 반도체 스토리지와 같은 비일시적(non-transitory) 컴퓨터 판독가능 매체 내에 저장된 컴퓨터 실행된 명령어에 의해 구현될 수 있다.
일 실시예에서, 시퀀스(22)는 특정 실행 시퀀스를 위해 프로세스 요소들을 할당하는 것에 의해 시작할 수 있다. 해당 시퀀스 내의 프로세스 요소들은 블록(26)에 지시된 것과 같은 성능 기준을 충족시키기 위해 재구성될 수 있다. 다음으로, 프로세스 요소들로 형성된 둘 이상의 시퀀스들은 블록(28)에 나타난 것처럼 동시 실행될 수 있다.
도 3은 시스템(700)의 실시예를 도시한다. 실시예들에 있어서, 시스템(700)은 미디어 시스템일 수 있으나, 시스템(700)을 이 맥락에서 한정하지는 않는다. 예를 들어, 시스템(700)은 개인용 컴퓨터(PC), 랩탑 컴퓨터, 울트라 랩탑 컴퓨터, 태블릿, 터치패드, 휴대용 컴퓨터, 핸드헬드 컴퓨터, 팜톱(palmtop) 컴퓨터, PDA(personal digital assistant), 휴대폰, 휴대폰/PDA의 결합, 텔레비전, 스마트 장치(예: 스마트폰, 스마트 태블릿, 또는 스마트 TV), 모바일 인터넷 장치(MID), 메시징 장치, 데이터 통신 장치 등에 통합될 수 있다.
실시예들에서, 시스템(700)은 디스플레이(720)에 결합된 플랫폼(702)을 포함한다. 플랫폼(702)은 컨텐츠 서비스 장치(730), 컨텐츠 전달 장치(740) 또는 다른 유사한 컨텐츠 소스 등과 같은 컨텐츠 장치로부터 컨텐츠를 수신할 수 있다. 하나 이상의 네비게이션 특징을 포함하는 네비게이션 컨트롤러(750)는 예를 들어 플랫폼(702) 및/또는 디스플레이(720)와 상호작용하기 위해 사용될 수 있다. 이들 컴포넌트 각각은 보다 상세히 후술하도록 한다.
실시예들에서, 플랫폼(702)은 칩셋(705), 프로세서(710), 메모리(712), 스토리지(714), 그래픽 서브시스템(715), 애플리케이션(716) 및/또는 라디오(718)의 임의의 조합을 포함 가능하다. 칩셋(705)은 프로세서(710), 메모리(712), 스토리지(714), 그래픽 서브시스템(715), 애플리케이션(716) 및/또는 라디오(718) 사이의 상호 통신을 제공할 수 있다. 예를 들어, 칩셋(705)은 스토리지(714)와의 상호 통신을 제공할 수 있는 스토리지 어댑터(미도시됨)를 포함할 수 있다.
프로세서(710)는 CISC(Complex Instruction Set Computer) 또는 RISC(Reduced Instruction Set Computer) 프로세서, x86 명령어 세트 호환가능 프로세서, 멀티코어, 또는 다른 임의의 마이크로프로세서 또는 중앙 처리 유닛(CPU)로서 구현 가능하다. 실시예들에서, 프로세서(710)는 듀얼 코어 프로세서(들), 듀얼 코어 모바일 프로세서(들) 등을 포함할 수 있다.
메모리(712)는 RAM, DRAM(Dynamic RAM) 또는 SRAM(Static RAM)과 같은 휘발성 메모리 장치로서 구현될 수 있으나 이에 대해 한정하지는 않는다.
저장소(714)는 자기 디스크 드라이브, 광학 디스크 드라이브, 테이프 드라이브, 내부 저장 장치, 부착 저장 장치, 플래시 메모리, 배터리 백업 SDRAM(synchronous DRAM), 및/또는 네트워크 액세스 가능 저장 장치와 같은 비휘발성 저장 장치를 포함할 수 있으나 이에 대해 한정하지는 않는다. 실시예들에서, 일례로 복수의 하드 드라이브가 포함된 경우 저장소(714)는 중요한 디지털 매체에 대한 저장소 성능 강호 보호를 증가시키기 위한 기술을 포함할 수 있다.
그래픽 서브시스템(715)은 디스플레이를 위해 정지 이미지 또는 동영상과 같은 이미지의 처리를 수행할 수 있다. 그래픽 서브시스템(714)은 예를 들어 그래픽 처리 유닛(GPU) 또는 시각 처리 유닛(VPU)일 수 있다. 아날로그 또는 디지털 인터페이스는 그래픽 서브시스템(715) 및 디스플레이(720)를 통신가능하게 결합시키기 위해 사용될 수 있다. 예를 들어, 인터페이스는 고화질(High Definition) 멀티미디어 인터페이스, 디스플레이포트(DisplayPort), 무선 HDMI 및/또는 무선 HD 컴플라이언트(Compliant) 기술 중 임의의 것일 수 있다. 그래픽 서브시스템(715)은 프로세서(710) 또는 칩셋(705)으로 통합될 수 있다. 그래픽 서브시스템(715)은 칩셋(705)에 통신가능하게 결합된 독립적인 카드(standalone card)일 수도 있다.
본 명세서에서 설명되는 그래픽 및/또는 비디오 처리 기술은 다양한 하드웨어 아키텍쳐로 구현될 수 있다. 예를 들어, 그래픽 및/또는 비디오 기능은 칩셋 내에 통합될 수 있다. 대안적으로, 별개의 그래픽 및/또는 비디오 처리 프로세서가 사용될 수 있다. 또 다른 실시예에서, 그래픽 및/또는 비디오 기능은 멀티코어 프로세서를 포함하는 범용 프로세서에 의해 구현될 수 있다. 또 다른 실시예에서, 이러한 기능은 소비자 전자 장치에서 구현될 수 있다.
라디오(718)는 다양한 적절한 무선 통신 기술을 이용하여 신호를 송수신할 능력을 갖는 하나 이상의 라디오를 포함할 수 있다. 이러한 기술은 하나 이상의 무선 네트워크를 통한 통신을 개입시킬 수 있다. 예시적인 무선 네트워크는 WLANs(wireless local area networks), WPANs(wireless personal area networks), WMANs(wireless metropolitan area networks), 셀룰러 네트워크, 및 위성 네트워크를 포함할 수 있으나 이에 대해 한정하지는 않는다. 이러한 네트워크를 통한 통신에 있어서, 라디오(718)는 임의의 버전을 가지는 하나 이상의 적용 가능한 표준에 따라 동작할 수 있다.
실시예들에서, 디스플레이(720)는 임의의 TV 타입 모니터 또는 디스플레이를 포함할 수 있다. 디스플레이(720)는 예를 들어, 컴퓨터 디스플레이 스크린, 터치 스크린 디스플레이, 비디오 모니터, TV 유사 장치, 및/또는 TV를 포함할 수 있다. 디스플레이(720)는 디지털 및/또는 아날로그일 수 있다. 실시예들에서, 디스플레이(720)는 홀로그래픽 디스플레이일 수 있다. 또한, 디스플레이(720)는 시각 프로젝션을 수신하는 투명 표면일 수 있다. 이러한 프로젝션은 다양한 형태의 정보, 이미지 및/또는 객체를 전달할 수 있다. 예를 들어, 이러한 프로젝션은 모바일 증강 현실(MAR) 애플리케이션의 시작적 오버레이(visual overlay)일 수 있다. 하나 이상의 소프트웨어 애플리케이션(716)의 제어 하에, 플랫폼(702)은 디스플레이(720) 상에 사용자 인터페이스(722)를 디스플레이할 수 있다.
실시예들에서, 컨텐츠 서비스 장치(들)(730)는 임의의 국가, 국제적, 및/또는 독립적 서비스에 의해 호스팅될 수 있으며 이에 따라 예를 들어 인터넷을 통해 플랫폼(702)에 액세스 가능하다. 컨텐츠 서비스 장치(들)(730)은 플랫폼(702) 및/또는 디스플레이(720)에 연결될 수 있다. 플랫폼(702) 및/또는 컨텐츠 서비스 장치(들)(730)은 네트워크(760)에 연결되어 미디어 정보를 네트워크(760)와 통신(예를 들어 송신 및/또는 수신)할 수 있다. 컨텐츠 전달 장치(들)(740)도 플랫폼(702) 및/또는 디스플레이(720)에 연결될 수 있다.
실시예들에서, 컨텐츠 서비스 장치(들)(730)는 케이블 TV 박스, 개인용 컴퓨터, 네트워크, 전화, 인터넷 가용 장치 또는 디지털 정보 및/또는 컨텐츠를 전달 가능한 어플라이언스, 및 컨텐츠를 일방(unidirectionally) 또는 양방(bidirectionally)으로 컨텐츠 제공자와 플랫폼(720) 및/또는 디스플레이(720) 사이에서 네트워크(760)를 통하거나 직접 통신할 수 있는 임의의 다른 유사한 장치를 포함할 수 있다. 컨텐츠가 네트워크(760)를 통해 시스템(700) 내의 임의의 컴포넌트와 컨텐츠 제공자 사이에서 일방 또는 양방으로 통신 가능하다는 것이 이해되어야 할 것이다. 컨텐츠의 예시는 비디오, 음악, 의학 또는 게임 정보 등을 포함하는 임의의 미디어 정보를 포함할 수 있다.
컨텐츠 서비스 장치(들)(730)는 미디어 정보, 디지털 정보 및/또는 다른 컨텐츠를 포함하는 케이블 TV 프로그래밍과 같은 컨텐츠를 수신한다. 컨텐츠 제공자의 예시는 임의의 케이블 또는 위성 TV 또는 라디오 또는 인터넷 컨텐츠 제공자를 포함할 수 있다. 제공된 예시들은 본 발명을 제한하고자 하는 의도를 가지지 않는다.
실시예들에서, 플랫폼(702)은 하나 이상의 네비게이션 특징을 가지는 네비게이션 컨트롤러(750)로부터 제어 신호를 수신한다. 컨트롤러(750)의 네비게이션 특징은 예를 들어 사용자 인터페이스(722)와 상호작용하기 위해 사용될 수 있다. 실시예들에서, 네비게이션 컨트롤러(750)는 사용자가 컴퓨터 내에 (예를 들어 연속적이고 다차원인) 공간 데이터를 입력 가능하게 하는 컴퓨터 하드웨어 컴포넌트(특히 인간 인터페이스 장치)가 될 수 있다. 그래픽 사용자 인터페이스(GUI)와 같은 다수의 시스템들은 및 TV 및 모니터들은 사용자로 하여금 물리적 제스처를 사용하여 컴퓨터 또는 TV로 데이터를 제공하거나 데이터를 제어할 수 있도록 할 수 있다.
컨트롤러(750)의 네비게이션 특징들의 움직임은 디스플레이 상에 디스플레이된 포인터, 커서, 포커스 링 또는 다른 시각적 지시자들의 움직임에 의해 디스플레이(예를 들어 디스플레이(720)) 상에 반영(echo)될 수 있다. 예를 들어, 소프트웨어 애플리케이션(716)의 제어 하에, 네비게이션 컨트롤러(750)에 위치한 네비게이션 특징들은 예를 들어 사용자 인터페이스(722)에 디스플레이된 가상 네비게이션 특징들에 맵핑될 수 있다. 실시예들에서, 컨트롤러(750)는 별개의 컴포넌트가 아닐 수 있으며 플랫폼(702) 및/또는 디스플레이(720)에 통합될 수 있다. 그러나, 실시예들은 본 명세서에서 도시되거나 설명된 구성 요소 또는 맥락에 한정되지는 않는다.
실시예들에서, 드라이버(미도시)들은 사용자로 하여금 최초의 부팅(initial boot-up) 이후에 버튼을 터치함으로써 TV와 같은 플랫폼(702)을 즉각 턴온 또는 턴오프시킬 수 있도록 하는 기술을 포함할 수 있다. 프로그램 로직은 플랫폼(720)이 턴오프되었을 때, 플랫폼(720)으로 하여금 컨텐츠를 미디어 어댑터, 다른 컨텐츠 서비스 장치(들)(730) 또는 컨텐츠 전달 장치(들)(740)로 스트리밍할 수 있도록 한다. 또한, 칩셋(705)은, 예를 들어 5.1 서라운드 사운드 오디오 및/또는 HD 7.1 서라운드 사운드 오디오에 대한 하드웨어 및/또는 소프트웨어 지원을 포함할 수 있다. 드라이버들은 통합 그래픽 플랫폼을 위한 그래픽 드라이버를 포함할 수 있다. 실시예들에서, 그래픽 드라이버는 주변 컴포넌트 상호 연결(PCI) 익스프레스 그래픽 카드를 포함할 수 있다.
다양한 실시예들에서, 시스템(700)에 도시된 임의의 하나 이상의 컴포넌트들은 통합될 수 있다. 예를 들어, 플랫폼(702)과 컨텐츠 서비스 장치(들)(730)이 통합되거나, 플랫폼(702)과 컨텐츠 전달 장치(들)(730)이 통합되거나, 플랫폼(702), 컨텐츠 서비스 장치(들)(730), 및 컨텐츠 전달 장치(들)(730)이 통합될 수 있다. 다양한 실시예들에서, 플랫폼(702) 및 디스플레이(720)는 통합 유닛일 수 있다. 일례로 디스플레이(720) 및 컨텐츠 서비스 장치(들)(730)이 통합되거나 디스플레이(720) 및 컨텐츠 전달 장치(들)(740)이 통합될 수도 있다. 이러한 예시들은 본 발명을 한정하고자 하는 의도를 가지지 않는다.
다양한 실시예들에서, 시스템(700)은 무선 시스템, 유선 시스템 또는 이들의 결합으로서 구현될 수 잇다. 무선 시스템으로 구현되는 경우, 시스템(700)은 하나 이상의 안테나, 송신기, 수신기, 트랜시버, 증폭기, 필터, 제어 로직 등과 같이 무선 공유 미디어를 통해 통신하기에 적절한 컴포넌트 및 인터페이스를 포함할 수 있다. 무선 공유 미디어의 예시는 RF 스펙트럼 등과 같은 무선 스펙트럼을 일부 포함할 수 있다. 유선 시스템으로서 구현된 경우, 시스템(700)은 하나 이상의 입출력(I/O) 어댑터, I/O 어댑터를 대응하는 유선 통신 매체와 연결하기 위한 물리적 커넥터, 네트워크 인터페이스 카드(NIC), 디스크 컨트롤러, 비디오 컨트롤러, 오디오 컨트롤러 등과 같이 유선 통신 미디어를 통해 통신하기에 적절한 컴포넌트 및 인터페이스를 포함할 수 있다. 유선 통신 미디어의 예시는 유선, 케이블, 금속 리드, 인쇄 회로 기판(PCB), 백플레인, 스위치 섬유, 반도체 재료, 트위스트 페어 와이어(twisted-pair wire), 동축 케이블, 광학 섬유 등을 포함할 수 있다.
플랫폼(702)은 정보를 통신하기 위한 하나 이상의 논리적 또는 물리적 채널을 설정할 수 있다. 이러한 정보는 미디어 정보 및 제어 정보를 포함할 수 있다. 미디어 정보는 사용자에게 의미 있는 컨텐츠를 나타내는 임의의 데이터를 가리킬 수 있다. 컨텐츠의 예시는 예를 들어 음성 대화, 비디오 컨퍼런스, 스트리밍 비디오, 전자 메일 메시지, 음성 메일 메시지, 영숫자 심벌, 그래픽, 이미지, 비디오, 텍스트 등으로부터의 데이터를 포함할 수 있다. 음성 대화로부터의 데이터는 예를 들어, 스피치 정보, 침묵 시간, 백그라운드 노이즈, 컴포트 노이즈, 톤 등이 될 수 있다. 컨트롤 데이터는 자동화 시스템을 위한 명령, 지시 또는 컨트롤 워드를 나타내는 임의의 데이터를 가리킬 수 있다. 예를 들어, 컨트롤 데이터는 시스템을 통해 미디어 정보를 라우팅하거나, 특정 노드로 하여금 미디어 정보를 미리 정해진 방식으로 처리하도록 지시하기 위해 사용될 수 있다. 그러나 실시예들은 도 2에 도시되거나 설명된 구성 요소 또는 맥락으로 한정되지 않는다.
전술한 바와 같이, 시스템(700)은 다양한 물리적 방식 또는 폼 팩터에 의해 구현될 수 있다. 도 3은 시스템(700)이 구현될 수 있는 스몰 폼 팩터 장치(800)의 실시예를 나타낸다. 실시예들에서, 예를 들어, 장치(800)는 무선 능력을 가지는 모바일 컴퓨팅 장치로서 구현될 수 있다. 일례로, 모바일 컴퓨팅 장치는 프로세싱 시스템 및 하나 이상의 배터리와 같은 모바일 전력 소스 또는 서플라이를 가지는 임의의 장치를 가리킬 수 있다.
전술한 바와 같이, 모바일 컴퓨팅 장치의 예시는 개인용 컴퓨터(PC), 랩탑 컴퓨터, 울트라 랩탑 컴퓨터, 태블릿, 터치 패드, 휴대용 컴퓨터, 핸드헬드 컴퓨터, 팜톱(palmtop) 컴퓨터, PDA, 휴대폰, 휴대폰/PDA의 조합, TV, 스마트 장치(예: 스마트 폰, 스마트 태블릿 또는 스마트 TV), 모바일 인터넷 장치(MID), 메시징 장치, 데이터 통신 장치 등을 포함할 수 있다.
모바일 컴퓨팅 장치의 예시는 개인에 의해 착용될 수 있는 컴퓨터, 예를 들어, 손목(wrist) 컴퓨터, 손가락 컴퓨터, 링 컴퓨터, 안경 컴퓨터, 벨트 클립(belt clip) 컴퓨터, 팔 밴드(arm-band) 컴퓨터, 신발 컴퓨터, 의복(clothing) 컴퓨터, 및 다른 웨어러블 컴퓨터들을 포함할 수 있다. 실시예들에서, 예를 들어, 모바일 컴퓨팅 장치는 컴퓨터 애플리케이션들 뿐만 아니라 음성 통신 및/또는 데이터 통신을 실행 가능한 스마트폰으로 구현될 수 있다. 비록 몇 실시예들이 예시를 위해 스마트폰으로서 구현된 모바일 컴퓨팅 장치로서 설명되었지만, 다른 무선 모바일 컴퓨팅 장치를 사용해 다른 실시예들이 구현될 수도 있음이 이해되어야 할 것이다. 실시예들은 이러한 맥락에서 한정되지 않는다.
도 4에 도시된 것처럼, 장치(800)는 하우징(802), 디스플레이(804), 입출력(I/O) 장치(806), 및 안테나(808)를 포함할 수 있다. 장치(800)는 또한 네비게이션 특징(812)을 포함할 수 있다. 디스플레이(804)는 모바일 컴퓨팅 장치에 적합하게 정보를 디스플레이하기 위한 임의의 적절한 디스플레이 유닛을 포함할 수 있다. 입출력 장치(806)는 모바일 컴퓨팅 장치 내로 정보를 입력하기에 적절한 임의의 입출력 장치를 포함할 수 있다. 입출력 장치(806)의 예시는 영숫자 키보드, 마이크로폰, 스피커, 음성 인식 장치 및 소프트웨어 등을 포함할 수 있다. 정보는 마이크로폰을 통해 장치(800)에 입력될 수도 있다. 이러한 정보는 음성 인식 장치에 의해 디지털화될 수 있다. 실시예들은 이러한 맥락에서 한정되지는 않는다.
다양한 실시예들은 하드웨어 구성 요소, 소프트웨어 구성 요소 및 이들의 조합을 사용해 구현될 수 있다. 하드웨어 구성 요소의 예시는 프로세서, 마이크로프로세서, 회로, 회로 구성요소(예: 트랜지스터, 저항, 커패시터, 인덕터 등), 집적 회로, 애플리케이션 특화 집적 회로(ASIC), 프로그래밍 가능 논리 장치(PLD), 디지털 신호 프로세서(DSP), 필드 프로그래밍 가능 게이트 어레이(FPGA), 논리 게이트, 저항, 반도체 장치, 칩, 마이크로칩, 칩셋 등을 포함할 수 있다. 소프트웨어의 예시는 소프트웨어 컴포넌트, 프로그램, 애플리케이션, 컴퓨터 프로그램, 애플리케이션 프로그램, 시스템 프로그램, 기계 프로그램, 운영 체제 소프트웨어, 미들웨어, 펌웨어, 소프트웨어 모듈, 루틴, 서브루틴, 함수, 메소드, 프로시저, 소프트웨어 인터페이스, 애플리케이션 프로그램 인터페이스(API), 명령어 세트, 컴퓨팅 코드, 컴퓨터 코드, 코드 세그먼트, 컴퓨터 코드 세그먼트, 워드, 값, 심벌 또는 이들의 임의의 조합을 포함할 수 있다. 실시예가 하드웨어 구성 요소 및/또는 소프트웨어 구성 요소를 사용하여 구현되는지 여부의 결정은 요구되는 연산 속도, 전력 레벨, 열 내성(heat tolerance), 프로세싱 사이클 예산, 입력 데이터 속도, 출력 데이터 속도, 메모리 리소스, 데이터 버스 속도 및 다른 디자인 또는 성능 제한 등 임의의 수의 요인들에 의해 좌우될 수 있다.
적어도 하나의 실시예의 하나 이상의 측면들은, 프로세서 내에서 다양한 로직을 나타내며 기계 판독가능 매체 상에 저장된 전형적인 명령어들에 의해 구현될 수 있으며, 이들 명령어들은 기계에 의해 판독되어 기계로 하여금 본 명세서에서 설명한 기술을 수행하기 위한 로직을 만들어낸다. "IP 코어(cores)"로 알려진 이러한 표현들은 유형의 기계 판독가능 매체 상에 저장될 수 있으며 다양한 고객 또는 제작 시설에 지원되어 전술한 로직 또는 프로세서를 실제로 만드는 제조 기계들 상에 로딩될 수 있다.
다양한 실시예들은 하드웨어 구성 요소, 소프트웨어 구성 요소 또는 이들의 조합을 사용하여 구현될 수 있다. 하드웨어 구성 요소의 예시는 프로세서, 마이크로프로세서, 회로, 회로 구성요소(예: 트랜지스터, 저항, 커패시터, 인덕터 등), 집적 회로, 애플리케이션 특화 집적 회로(ASIC), 프로그래밍 가능 논리 장치(PLD), 디지털 신호 프로세서(DSP), 필드 프로그래밍 가능 게이트 어레이(FPGA), 논리 게이트, 저항, 반도체 장치, 칩, 마이크로칩, 칩셋 등을 포함할 수 있다. 소프트웨어의 예시는 소프트웨어 컴포넌트, 프로그램, 애플리케이션, 컴퓨터 프로그램, 애플리케이션 프로그램, 시스템 프로그램, 기계 프로그램, 운영 체제 소프트웨어, 미들웨어, 펌웨어, 소프트웨어 모듈, 루틴, 서브루틴, 함수, 메소드, 프로시저, 소프트웨어 인터페이스, 애플리케이션 프로그램 인터페이스(API), 명령어 세트, 컴퓨팅 코드, 컴퓨터 코드, 코드 세그먼트, 컴퓨터 코드 세그먼트, 워드, 값, 심벌 또는 이들의 임의의 조합을 포함할 수 있다. 실시예가 하드웨어 구성 요소 및/또는 소프트웨어 구성 요소를 사용하여 구현되는지 여부의 결정은 요구되는 연산 속도, 전력 레벨, 열 내성(heat tolerance), 프로세싱 사이클 예산, 입력 데이터 속도, 출력 데이터 속도, 메모리 리소스, 데이터 버스 속도 및 다른 디자인 또는 성능 제한 등 임의의 수의 요인들에 의해 좌우될 수 있다.
적어도 하나의 실시예의 하나 이상의 측면들은, 프로세서 내에서 다양한 로직을 나타내며 기계 판독가능 매체 상에 저장된 전형적인 명령어들에 의해 구현될 수 있으며, 이들 명령어들은 기계에 의해 판독되어 기계로 하여금 본 명세서에서 설명한 기술을 수행하기 위한 로직을 만들어낸다. "IP 코어(cores)"로 알려진 이러한 표현들은 유형의 기계 판독가능 매체 상에 저장될 수 있으며 다양한 고객 또는 제작 시설에 지원되어 전술한 로직 또는 프로세서를 실제로 만드는 제조 기계들 상에 로딩될 수 있다.
본 명세서에서 설명된 그래픽 프로세싱 기술은 다양한 하드웨어 아키텍처에서 구현될 수 있다. 예를 들어, 그래픽 기능은 칩셋 내에 통합될 수 있다. 대안적으로, 별개의 그래픽 프로세서가 사용될 수 있다. 또 다른 실시예에서, 그래픽 기능은 멀티코어 프로세서를 포함하는 범용 프로세서에 의해 구현될 수 있다.
본 명세서에서 "일 실시예" 또는 "실시예"로서 기재된 예들은 실시예들과 연관지어 설명된 특정 특징, 구조 또는 특성이 본 발명 내에 포함되는 적어도 하나의 구현 예에 포함된다는 것을 나타낸다. 따라서, "일 실시예" 또는 "실시예"와 같은 구문은 반드시 동일한 실시예를 가리키는 것이 아니다. 또한, 이러한 특정 특징, 구조 및 특성이 전술된 특정 실시예와는 다른 적절한 형태로 도입될 수 있으며 이러한 형태들도 본 발명의 청구항의 범주에 포함될 수 있다.
비록 본 발명이 몇 개의 한정된 실시예로서 설명되었지만, 본 기술 분야의 통상적인 지식을 갖춘 자라면 이러한 실시예들로부터 다양한 변형 및 변경에 대해 인식할 수 있을 것이다. 본 발명의 본질과 범위 내에 포함되는 이와 같은 모든 변형 및 변경들이 첨부된 청구항들에 의해 포괄될 수 있도록 의도된다.
10: 파이프라인 분석 시퀀서 12: 프로세스 요소
14: 우선순위화된 버스 아비터 16, 16a: 파이프라인 컨트롤러
18: 메모리 20: 버퍼

Claims (30)

  1. 재사용 가능하고 재구성 가능한 전용 기능의 이미지 처리 프로세스 요소(process element)를 프로세스 요소들의 실행 시퀀스(execution sequence)에 할당하는 단계와,
    시퀀스 성능 기준(sequence performance metric)을 충족시키기 위해 시퀀스 내의 프로세스 요소를 재구성(reconfiguring)하는 단계와,
    복수의 시퀀스를 동시에(in parallel) 실행하는 단계를 포함하는
    방법.
  2. 제1항에 있어서,
    주어진 프로세스 요소를 동시에 실행되는 두 개의 시퀀스 내에서 사용하는 단계를 포함하는
    방법.
  3. 제1항에 있어서,
    상기 재구성하는 단계는 시퀀스 전력 예산(sequence power budget)을 충족시키기 위해 프로세스 요소를 변경하는 단계를 포함하는
    방법.
  4. 제3항에 있어서,
    상기 재구성하는 단계는 전력 소비를 조절하기 위해 메모리 대역폭을 조절하는 단계를 포함하는
    방법.
  5. 제1항에 있어서,
    온도 또는 성능 제어를 위해 프로세스 요소의 전압 또는 주파수 중 하나를 조절하는 단계를 포함하는
    방법.
  6. 제1항에 있어서,
    시퀀스 성능 기준을 충족시키기 위해 프로세스의 초당 동작(operations per second)을 조절하는 단계를 포함하는
    방법.
  7. 제1항에 있어서,
    시퀀스의 성능 기준 또는 버스 조정 기준(bus arbitration metric)을 충족시키기 위해 프로세스 요소의 우선순위를 조절하는 단계를 포함하는
    방법.
  8. 제1항에 있어서,
    성능 기준을 충족시키기 위해서 시퀀스 내 프로세스 요소의 동작 방식을 런타임 시에 변경하는 단계를 포함하는
    방법.
  9. 제1항에 있어서,
    시퀀스 성능 기준을 충족시키기 위해 프로세스 요소의 메모리 액세스 우선순위 레벨을 변경하는 단계를 포함하는
    방법.
  10. 제1항에 있어서,
    상기 재구성하는 단계는 상기 시퀀스 동안에 동적으로 구현되는
    방법.
  11. 명령어를 저장하는 비일시적(non-transitory) 컴퓨터 판독가능 매체로서,
    상기 명령어는 프로세서로 하여금
    재사용 가능하고 재구성 가능한 전용 기능의 이미지 처리 프로세스 요소를 프로세스 요소들의 실행 시퀀스에 할당하고,
    시퀀스 성능 기준을 충족시키기 위해 시퀀스 내의 프로세스 요소를 재구성하고,
    복수의 시퀀스를 동시에 실행하도록 하는
    컴퓨터 판독가능 매체.
  12. 제11항에 있어서,
    주어진 프로세스 요소를 동시에 실행되는 두 개의 시퀀스에서 사용하기 위한 명령어를 더 저장하는
    컴퓨터 판독가능 매체.
  13. 제11항에 있어서,
    시퀀스 전력 예산을 충족시키기 위해 프로세스 요소를 변경하기 위한 명령어를 더 저장하는
    컴퓨터 판독가능 매체.
  14. 제13항에 있어서,
    전력 소비를 조절하기 위해 메모리 대역폭을 조정하기 위한 명령어를 더 저장하는
    컴퓨터 판독가능 매체.
  15. 제11항에 있어서,
    온도 또는 성능을 제어하기 위해 프로세스 요소의 전압 또는 주파수 중 하나를 조절하기 위한 명령어를 더 저장하는
    컴퓨터 판독가능 매체.
  16. 제11항에 있어서,
    시퀀스 성능 기준을 충족시키기 위해 프로세서의 초당 동작을 조절하기 위한 명령어를 더 저장하는
    컴퓨터 판독가능 매체.
  17. 제11항에 있어서,
    시퀀스의 성능 기준 또는 버스 조정 기준을 충족시키기 위해 프로세스 요소의 우선순위를 조절하기 위한 명령어를 더 저장하는
    컴퓨터 판독가능 매체.
  18. 제11항에 있어서,
    성능 기준을 충족시키기 위해서 시퀀스 내 프로세스 요소의 동작 방식을 런타임 시에 변경하기 위한 명령어를 더 포함하는
    컴퓨터 판독가능 매체.
  19. 제11항에 있어서,
    시퀀스 성능 기준을 충족시키기 위해 프로세스 요소의 메모리 액세스 우선순위 레벨을 변경하기 위한 명령어를 더 포함하는
    컴퓨터 판독가능 매체.
  20. 제11항에 있어서,
    상기 시퀀스 동안에 재구성을 동적으로 구현하기 위한 명령어를 더 저장하는
    컴퓨터 판독가능 매체.
  21. 재사용 가능하고 재구성 가능한 전용 기능의 이미지 처리 프로세스 요소를 프로세스 요소들의 실행 시퀀스에 할당하고, 시퀀스 성능 기준을 충족시키기 위해 시퀀스 내의 프로세스 요소를 재구성하며, 복수의 시퀀스를 동시에 실행하기 위한 시퀀서(sequencer)와,
    상기 시퀀서에 연결된 메모리를 포함하는
    장치.
  22. 제21항에 있어서,
    상기 시퀀서는 동시에 실행되는 두 개의 시퀀스 내에서 주어진 프로세스 요소를 사용하는
    장치.
  23. 제21항에 있어서,
    상기 시퀀서는 시퀀스 전력 예산을 충족시키기 위해 프로세스 요소를 변경하는
    장치.
  24. 제23항에 있어서,
    상기 시퀀서는 전력 소비를 조절하기 위해 메모리 대역폭을 조절하는
    장치.
  25. 제21항에 있어서,
    상기 시퀀서는 온도 또는 성능 제어를 위해 프로세스 요소의 전압 또는 주파수 중 하나를 조절하는
    장치.
  26. 제21항에 있어서,
    상기 시퀀서는 시퀀스 성능 기준을 충족시키기 위해 프로세스의 초당 동작을 조절하는
    장치.
  27. 제21항에 있어서,
    상기 시퀀서는 시퀀스의 성능 기준 또는 버스 조정 기준을 충족시키기 위해 프로세스 요소의 우선순위를 조절하는
    장치.
  28. 제21항에 있어서,
    상기 시퀀서는 성능 기준을 충족시키기 위해서 시퀀스 내 프로세스 요소의 동작 방식을 런타임 시에 변경하는
    장치.
  29. 제21항에 있어서,
    상기 시퀀서는 시퀀스 성능 기준을 충족시키기 위해 프로세스 요소의 메모리 액세스 우선순위 레벨을 변경하는
    장치.
  30. 제21항에 있어서,
    무선 인터페이스를 포함하는
    장치.
KR1020147017647A 2011-12-28 2011-12-28 파이프라인 이미지 프로세싱 시퀀서 KR20140099295A (ko)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2011/067455 WO2013100923A1 (en) 2011-12-28 2011-12-28 Pipelined image processing sequencer

Publications (1)

Publication Number Publication Date
KR20140099295A true KR20140099295A (ko) 2014-08-11

Family

ID=48698167

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020147017647A KR20140099295A (ko) 2011-12-28 2011-12-28 파이프라인 이미지 프로세싱 시퀀서

Country Status (6)

Country Link
US (1) US20140063025A1 (ko)
EP (1) EP2801074A4 (ko)
JP (1) JP2015508528A (ko)
KR (1) KR20140099295A (ko)
CN (1) CN104067309A (ko)
WO (1) WO2013100923A1 (ko)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9569221B1 (en) * 2014-09-29 2017-02-14 Amazon Technologies, Inc. Dynamic selection of hardware processors for stream processing
CN105989352B (zh) 2015-03-06 2019-08-20 华为技术有限公司 图像识别加速器、终端设备及图像识别方法
JP6600077B2 (ja) 2016-03-24 2019-10-30 富士フイルム株式会社 画像処理装置、画像処理方法、及び画像処理プログラム
EP3611722A1 (en) 2018-08-13 2020-02-19 Axis AB Controller and method for reducing a peak power consumption of a video image processing pipeline

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6167330A (en) * 1998-05-08 2000-12-26 The United States Of America As Represented By The Secretary Of The Air Force Dynamic power management of systems
JP3033575B1 (ja) * 1999-02-17 2000-04-17 日本電気株式会社 画像処理装置
JP3450814B2 (ja) * 2000-09-26 2003-09-29 松下電器産業株式会社 情報処理装置
US20030026237A1 (en) * 2001-08-06 2003-02-06 Mohebbi Behzad Barjesteh Cellular base station architecture with soft partitioning
TW591611B (en) * 2002-03-01 2004-06-11 Mediatek Inc Method to control the integrated decoding unit to read the data in the merged memory device
JP4015898B2 (ja) * 2002-07-26 2007-11-28 松下電器産業株式会社 プログラム実行装置
JP2004310615A (ja) * 2003-04-09 2004-11-04 Sony Corp プログラム処理システム及びプログラム処理方法、並びにコンピュータ・プログラム
JP4613313B2 (ja) * 2005-04-01 2011-01-19 国立大学法人 東京大学 画像処理システムおよび画像処理プログラム
CN1928918B (zh) * 2005-10-14 2012-10-10 威盛电子股份有限公司 图形处理装置及于图形处理装置中执行着色操作的方法
US7426621B2 (en) * 2005-12-09 2008-09-16 Advanced Micro Devices, Inc. Memory access request arbitration
JP4521508B2 (ja) * 2006-02-03 2010-08-11 国立大学法人神戸大学 デジタルvlsi回路およびそれを組み込んだ画像処理システム
US8099583B2 (en) * 2006-08-23 2012-01-17 Axis Semiconductor, Inc. Method of and apparatus and architecture for real time signal processing by switch-controlled programmable processor configuring and flexible pipeline and parallel processing
US7940261B2 (en) * 2007-01-10 2011-05-10 Qualcomm Incorporated Automatic load balancing of a 3D graphics pipeline
US8141089B2 (en) * 2007-01-11 2012-03-20 International Business Machines Corporation Method and apparatus for reducing contention for computer system resources using soft locks
US8203564B2 (en) * 2007-02-16 2012-06-19 Qualcomm Incorporated Efficient 2-D and 3-D graphics processing
CN101216932B (zh) * 2008-01-03 2010-08-18 威盛电子股份有限公司 图形处理装置、单元与执行三角形配置、属性配置的方法
US9870629B2 (en) * 2008-06-20 2018-01-16 New Bis Safe Luxco S.À R.L Methods, apparatus and systems for data visualization and related applications
JP2010134743A (ja) * 2008-12-05 2010-06-17 Panasonic Corp 画像処理装置
JP2010198203A (ja) * 2009-02-24 2010-09-09 Fuji Xerox Co Ltd 情報処理装置及びプログラム
JP2011076513A (ja) * 2009-10-01 2011-04-14 Olympus Corp 分散処理システム
JP2011160424A (ja) * 2010-01-29 2011-08-18 Toshiba Corp 複合機
US8390433B2 (en) * 2010-04-09 2013-03-05 Eigent Technologies Inc. Method and system for low cost, power efficient, wireless transponder devices with enhanced functionality

Also Published As

Publication number Publication date
WO2013100923A1 (en) 2013-07-04
EP2801074A4 (en) 2016-03-16
CN104067309A (zh) 2014-09-24
US20140063025A1 (en) 2014-03-06
JP2015508528A (ja) 2015-03-19
EP2801074A1 (en) 2014-11-12

Similar Documents

Publication Publication Date Title
US9378181B2 (en) Scalable computing array
US9591358B2 (en) Media playback workload scheduler
US10241932B2 (en) Power saving method and apparatus for first in first out (FIFO) memories
JP6374038B2 (ja) ドローコールにわたる共有リソースデータコヒーレンシを確実にするための効率的なハードウェアメカニズム
JP5792337B2 (ja) グラフィクスのレンダリング中における電力消費の低減
KR101722413B1 (ko) 부하 라인 최적화를 위한 그래픽 전압 감소
TW201447571A (zh) 用於圖形處理單元的記憶體映射技術
KR20140099295A (ko) 파이프라인 이미지 프로세싱 시퀀서
KR102223446B1 (ko) 비특권 애플리케이션에 의한 그래픽 작업부하 실행의뢰
US10936766B2 (en) Techniques for parallel execution of RANSAC algorithm
US20150170315A1 (en) Controlling Frame Display Rate
JP5968463B2 (ja) データを別の記憶装置にコピーせずにデータソースによりバッファに格納されたデータを処理するためのポインタのスワッピング
TWI587694B (zh) 固定功能媒體裝置之先佔
US10168985B2 (en) Dynamic audio codec enumeration
US9705964B2 (en) Rendering multiple remote graphics applications
US20130326351A1 (en) Video Post-Processing on Platforms without an Interface to Handle the Video Post-Processing Request from a Video Player
WO2013180728A1 (en) Video post- processing on platforms without an interface to handle the video post-processing request from a video player

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
E601 Decision to refuse application