KR102072515B1 - 영상 처리 장치 및 방법 - Google Patents

영상 처리 장치 및 방법 Download PDF

Info

Publication number
KR102072515B1
KR102072515B1 KR1020120114806A KR20120114806A KR102072515B1 KR 102072515 B1 KR102072515 B1 KR 102072515B1 KR 1020120114806 A KR1020120114806 A KR 1020120114806A KR 20120114806 A KR20120114806 A KR 20120114806A KR 102072515 B1 KR102072515 B1 KR 102072515B1
Authority
KR
South Korea
Prior art keywords
local
index information
information
global
memory
Prior art date
Application number
KR1020120114806A
Other languages
English (en)
Other versions
KR20140048627A (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 삼성전자주식회사
Priority to KR1020120114806A priority Critical patent/KR102072515B1/ko
Priority to US13/871,385 priority patent/US9449423B2/en
Publication of KR20140048627A publication Critical patent/KR20140048627A/ko
Application granted granted Critical
Publication of KR102072515B1 publication Critical patent/KR102072515B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/06Ray-tracing

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)

Abstract

레이 트레이싱 방식의 3차원 영상을 처리하는 방법 및 장치에 관한 것으로, 일 측면에 있어서, 영상 처리 장치는 광선의 교차점 정보를 수신하면, 프리패치 테이블에서 상기 교차점 정보와 매칭되는 로컬 인덱스 정보가 있는지 탐색하고, 상기 교차점 정보와 매칭되는 로컬 인덱스 정보가 있으면, 상기 로컬 인덱스 정보에 기초하여 로컬 메모리에 저장된 렌더링 정보를 쉐이더로 전달할 수 있다.

Description

영상 처리 장치 및 방법{APPARATUS AND METHOD FOR IMAGE PROCESSING}
아래의 실시 예들은 레이 트레이싱 방식의 3차원 영상을 처리하는 방법 및 장치에 관한 것이다.
3차원 영상의 렌더링 기술은 3차원의 객체 데이터를 카메라 시점(view point)에서 보이는 영상으로 합성하는 기술이다.
렌더링 기술에는 3차원 객체를 화면에 투영(projection) 함으로써, 영상을 생성하는 래스터화(rasterization) 방식과 카메라 시점에서 영상의 각 픽셀을 향한 광선(ray)을 따라 입사하는 빛의 경로를 추적하여 영상을 생성하는 레이 트레이싱 방식이 있다.
레이 트레이싱 방식은 빛의 물리적 성질을 이용하는 점에서, 고품질 영상을 생성할 수 있지만, 상대적으로 연산량이 방대하여 고속으로 렌더링하기 어려운 점이 있다.
일 측면에 있어서, 영상 처리 장치는 광선의 교차점 정보를 수신하면, 프리패치 테이블에서 상기 교차점 정보와 매칭되는 로컬 인덱스 정보가 있는지 탐색하는 탐색부 및 상기 교차점 정보와 매칭되는 로컬 인덱스 정보가 있으면, 상기 로컬 인덱스 정보에 기초하여 로컬 메모리에 저장된 렌더링 정보를 쉐이더로 전달하는 제어부를 포함할 수 있다.
상기 탐색부는 상기 광선과 오브젝트의 폴리곤(polygon)이 교차하는 지점의 글로벌 인덱스 정보와 상기 프리패치 테이블에서 이미 매칭된 로컬 인덱스 정보가 있는지 탐색할 수 있다.
상기 제어부는 글로벌 인덱스 정보와 로컬 인덱스 정보가 매칭된 프리패치 테이블을 생성하는 테이블 생성부 및 상기 프리패치 테이블에 반영되지 않은 신규 글로벌 인덱스 정보와 상기 신규 글로벌 인덱스 정보와 매칭되는 신규 로컬 인덱스 정보를 상기 프리패치 테이블에 업데이트하는 테이블 업데이트부를 포함하고, 상기 로컬 인덱스 정보는 상기 글로벌 인덱스 정보에 기초하여 글로벌 메모리에서 프리패치 된 상기 렌더링 정보를 저장하는 로컬 메모리의 인덱스를 나타낼 수 있다.
상기 제어부는 폴리곤에 교차하는 광선 별로 매칭된 로컬 인덱스 정보들 및 상기 로컬 인덱스 정보들에 대응하는 로컬 메모리 주소들 중 적어도 하나를 포함하는 패킷을 생성하는 패킷 생성부를 포함할 수 있다.
상기 로컬 메모리는 상기 패킷 별로 글로벌 메모리로부터 상기 로컬 메모리의 로컬 메모리 주소로 프리패치 된 상기 렌더링 정보들을 포함할 수 있다.
상기 패킷의 사이즈는 로컬 메모리의 사이즈 및 상기 광선의 히트율(hit-rate)에 기초하여 결정될 수 있다.
상기 제어부는 상기 교차점 정보의 글로벌 인덱스 정보를 글로벌 메모리 주소로 변환하고, 상기 프리패치 테이블에 상기 글로벌 인덱스 정보와 매칭된 로컬 인덱스 정보를 로컬 메모리 주소로 변환하는 변환부 및 글로벌 메모리의 상기 글로벌 메모리 주소에 저장된 상기 렌더링 정보를 로컬 메모리의 상기 로컬 메모리 주소로 프리패치하는 프리패치부를 포함할 수 있다.
상기 프리패치 테이블의 사이즈는 로컬 메모리의 사이즈 및 상기 광선의 오브젝트의 폴리곤의 히트율에 기초하여 결정될 수 있다.
상기 제어부는 반복되는 글로벌 인덱스 정보의 패턴에 기초하여 패킷의 사이즈를 조절할 수 있다.
상기 로컬 메모리는 패킷 별로 로컬 인덱스 정보와 매칭된 프리미티브 정보 및 텍스처 정보를 포함할 수 있다.
상기 제어부는 상기 교차점 정보와 매칭되는 로컬 인덱스 정보가 있으면, 상기 로컬 인덱스 정보 및 상기 로컬 인덱스 정보에 대응하는 로컬 메모리 주소를 쉐이더로 전달할 수 있다.
일 측면에 있어서, 영상 처리 방법은 광선의 교차점 정보를 수신하면, 프리패치 테이블에서 상기 교차점 정보와 매칭되는 로컬 인덱스 정보가 있는지 탐색하는 단계 및 상기 교차점 정보와 매칭되는 로컬 인덱스 정보가 있으면, 상기 로컬 인덱스 정보에 기초하여 로컬 메모리에 저장된 렌더링 정보를 쉐이더로 전달하는 단계를 포함할 수 있다.
상기 탐색하는 단계는 상기 광선과 오브젝트의 폴리곤(polygon)이 교차하는 지점의 글로벌 인덱스 정보가 상기 프리패치 테이블에서 이미 상기 로컬 인덱스 정보와 매칭되어 있는지 탐색할 수 있다.
다른 일 측면에 있어서, 영상 처리 방법은 글로벌 인덱스 정보와 글로벌 메모리에서 프리패치 된 상기 렌더링 정보를 저장하는 로컬 메모리의 로컬 인덱스 정보가 매칭된 프리패치 테이블을 생성하는 단계 및 상기 프리패치 테이블에 반영되지 않은 신규 글로벌 인덱스 정보와 상기 신규 글로벌 인덱스 정보와 매칭되는 신규 로컬 인덱스 정보를 상기 프리패치 테이블에 업데이트하는 단계를 더 포함할 수 있다.
다른 일 측면에 있어서, 영상 처리 방법은 폴리곤에 교차하는 광선 별로 매칭된 로컬 인덱스 정보들을 포함하는 패킷을 생성하는 단계를 더 포함할 수 있다.
다른 일 측면에 있어서, 영상 처리 방법은 상기 교차점 정보의 글로벌 인덱스 정보를 글로벌 메모리 주소로 변환하고, 상기 프리패치 테이블에 상기 글로벌 인덱스 정보와 매칭된 로컬 인덱스 정보를 로컬 메모리 주소로 변환하는 단계 및 글로벌 메모리의 상기 글로벌 메모리 주소에 저장된 상기 렌더링 정보를 로컬 메모리의 상기 로컬 메모리 주소로 프리패치하는 단계를 더 포함할 수 있다.
도 1은 일 실시예에 따른 영상 처리 장치의 블록도이다.
도 2는 다른 일 실시예에 따른 영상 처리 장치의 블록도이다.
도 3은 일 실시예에 따른 영상 처리 장치의 패킷 단위로 프리패치 테이블을 이용하여, 렌더링 정보를 획득하는 과정을 나타낸 도면이다.
도 4 및 도 5는 일 실시예에 따른 영상 처리 장치의 동작을 설명하기 위한 도면이다.
도 6 및 도 7은 일 실시예에 따른 영상 처리 장치에서 반복되는 패턴을 나타낸 그래프이다.
도 8은 일 실시예에 따른 영상 처리 방법의 흐름도이다.
이하, 일 측에 따른 실시 예를 첨부된 도면을 참조하여 상세하게 설명한다.
레이 트레이싱(ray tracing) 방식에서는 렌더링의 대상이 되는 객체들을 공간적으로 분할한 가속 구조(Acceleration Structure)의 탐색(Traversal)과 광선-프리미티브 간의 교차 검사(Intersection Test)가 수행된다.
탐색 및 교차 검사의 프로세스는 레이 트레이싱 방식의 전체 프로세스에서 70% 이상의 연산과 90%이상의 메모리 대역폭을 점유하는 과정으로 실시간 처리를 위해서 전용 하드웨어로 처리하는 경우가 많다.
탐색 및 교차 검사를 통과한 광선은 교차점에서의 픽셀의 컬러를 계산하고, 교차점에서 발생하는 새로운 광선의 반사, 굴절, 투과 등의 정도를 계산하는 쉐이딩 프로세스 및 광선 재생성(ray generation)(이하, SRG(Shading and Ray Generation)이라 함)프로세스를 수행하게 된다.
교차점 정보를 바탕으로 SRG를 수행하기 위해서는 렌더링(rendering) 정보들이 필요하다. 렌더링 정보에는 컬러 정보, 텍스처(texture) 정보 등이 포함된다. 렌더링 정보들은 공유 메모리에 저장되는 것이 일반적이다. 공유 메모리로는 보통 SDRAM이 사용되는데, SDRAM 사용의 경우, 지연시간(latency)과 데이터 부하에 따른 프로세서의 스톨(stall) 현상이 발생할 수 있다.
도 1은 일 실시예에 따른 영상 처리 장치의 블록도이다.
도 1을 참조하면, 일 실시예에 따른 영상 처리 장치(110)는 탐색부(111), 제어부(113) 및 로컬 메모리(115)를 포함할 수 있다. 추가적으로 영상 처리 장치(110)는 교차점 추정부(120), 쉐이더(130) 및 글로벌 메모리(140)를 포함할 수 있다.
탐색부(111)는 광선의 교차점 정보를 수신하면, 프리패치 테이블에서 교차점 정보와 매칭되는 로컬 인덱스 정보가 있는지 탐색할 수 있다. 광선의 교차점 정보에는 교차하는 광선의 인덱스, 광선이 교차하는 픽셀의 정보 및 상기 픽셀의 글로벌 인덱스 정보가 포함될 수 있다. 교차점 정보는 교차점 추정부(120)에서 획득할 수 있다. 글로벌 인덱스 정보는 픽셀 별로 미리 설정된 픽셀의 인덱스를 의미한다.
교차점 추정부(120)는 탐색(Traversal) 및 광선-프리미티브 간의 교차 검사(Intersection Test)를 수행하여 교차점 정보를 획득할 수 있다. 교차점 추정부(120)는 레이 트레이싱 분야에서 일반적으로 사용되고 있는 탐색 및 교차 검사를 수행하여 교차점 정보를 획득할 수 있다.
프리패치 테이블은 교차점 정보와 로컬 인덱스 정보가 매칭된 테이블이다. 교차점 정보의 일 예로, 글로벌 인덱스 정보를 사용하여 설명하기로 한다. 글로벌 인덱스 정보는 제어부(113)에서 로컬 인덱스 정보로 변환될 수 있다. 탐색부(111)는 광선의 교차점 정보로부터 글로벌 인덱스 정보를 확인하고, 확인한 글로벌 인덱스 정보와 매칭되는 로컬 인덱스 정보가 프리패치 테이블에 저장되어 있는지 탐색할 수 있다.
제어부(113)는 교차점 정보와 매칭되는 로컬 인덱스 정보가 있으면, 로컬 인덱스 정보에 기초하여 로컬 메모리(115)에 저장된 렌더링 정보를 쉐이더(130)로 전달할 수 있다. 렌더링 정보는 컬러 정보, 텍스처(texture) 정보 등을 포함할 수 있다. 제어부(113)는 로컬 메모리(115)에 저장된 렌더링 정보를 쉐이더(130)로 전달함으로써, 글로벌 메모리(140)로의 액세스 없이 쉐이더(130)에 렌더링 정보를 전달할 수 있다. 따라서, 글로벌 메모리(140)로의 액세스로 인한 충돌 및 지연의 발생하지 않는다.
로컬 메모리(115)는 로컬 인덱스 정보에 대응하는 로컬 메모리 주소(address)에 렌더링 정보를 저장할 수 있다. 로컬 메모리(115)에 저장된 렌더링 정보는 글로벌 메모리(140)로부터 글로벌 인덱스 정보에 기초하여 로컬 메모리 주소로 프리패치 된 렌더링 정보이다. 로컬 메모리(115)는 프리패치 된 렌더링 정보를 주로 저장하는 내부 메모리일 수 있다. 예를 들면, 캐쉬(cache)가 이에 해당할 수 있다.
제어부(113)는 교차점 정보와 매칭되는 로컬 인덱스 정보가 없으면, 교차점 정보를 변환하여 새로운 로컬 인덱스 정보를 생성할 수 있다. 예를 들면, 제어부(113)는 글로벌 인덱스 정보를 로컬 인덱스 정보로 변환할 수 있다.
글로벌 메모리(140)는 글로벌 인덱스 정보에 대응하는 글로벌 메모리 주소(address)에 렌더링 정보를 저장할 수 있다. 글로벌 메모리(140)는 공유 메모리를 의미할 수 있다. 제어부(113)는 글로벌 인덱스 정보에 매칭되는 렌더링 정보를 프리패치하여, 로컬 메모리(115)에 로컬 인덱스 정보와 매칭하여 저장할 수 있다. 이때, 동일한 렌더링 정보를 나타내는 글로벌 인덱스 정보와 로컬 인덱스 정보가 프리패치 테이블에 매칭되어 저장될 수 있다. 즉, 제어부(113)는 동일한 렌더링 정보를 나타내는 글로벌 인덱스 정보와 로컬 인덱스 정보를 프리패치 테이블에 업데이트할 수 있다.
프리패치 테이블의 사이즈는 로컬 메모리(115)의 사이즈 및 광선과 오브젝트의 폴리곤(polygon)의 히트율(hit rate)에 기초하여 결정될 수 있다. 오브젝트는 렌더링의 대상이 되는 객체를 나타내며, 폴리곤은 오브젝트를 공간적으로 분할한 가속 구조(Acceleration Structure)의 가장 작은 단위를 나타낸다. 여기서, 히트율은 광선이 동일한 폴리곤과 교차할 확률을 의미할 수 있다. 보다 구체적으로, 로컬 메모리(115)에 저장된 동일한 정보를 제어부(113)에서 얼마나 자주 로딩하는지를 의미할 수 있다.
프리패치 테이블의 사이즈는 로컬 메모리(115)의 사이즈에 비례할 수 있고, 히트율에 반비례할 수 있다. 예를 들면, 로컬 메모리(115)의 사이즈가 커지면 프리패치 테이블의 사이즈도 커질 수 있고, 히트율이 커지면, 프리패치 테이블의 사이즈는 작아질 수 있다. 프리패치 테이블은 로컬 메모리(115)에 저장될 수 있다.
탐색부(111)는 광선과 오브젝트의 폴리곤(polygon)이 교차하는 지점의 글로벌 인덱스 정보와 프리패치 테이블에서 이미 매칭된 로컬 인덱스 정보가 있는지 탐색할 수 있다. 제어부(113)는 이미 매칭된 로컬 인덱스 정보가 있으면, 로컬 인덱스 정보에 기초하여 로컬 메모리(115)로부터 렌더링 정보를 획득하고, 쉐이터(130)로 전달할 수 있다.
로컬 메모리(115)는 패킷 별로 글로벌 메모리(140)로부터 로컬 메모리(115)의 로컬 메모리 주소로 프리패치 된 렌더링 정보들을 저장할 수 있다. 여기서 로컬 메모리 주소는 로컬 인덱스 정보로부터 변환될 수 있다.
제어부(113)는 소정 개수의 로컬 인덱스 정보를 그룹핑하여 패킷을 생성할 수 있다. 제어부(113)는 패킷 단위로 프리패치 된 렌더링 정보들을 로컬 메모리(115)에 저장시킬 수 있다.
패킷의 사이즈는 로컬 메모리(115)의 사이즈 및 광선의 히트율(hit-rate)에 기초하여 결정될 수 있다. 여기서, 광선의 히트율은 위에서 설명한 바와 동일하게 광선이 동일한 폴리곤과 교차할 확률을 의미할 수 있다.
로컬 메모리(115)는 패킷 별로 로컬 인덱스 정보와 매칭된 프리미티브 정보 및 텍스처 정보를 포함할 수 있다. 여기서 프리미티브 정보는 광선이 교차하는 객체의 기본 형태를 의미할 수 있다. 예를 들면, 폴리곤이 이에 해당할 수 있다.
교차점 추정부(120)는 탐색(Traversal) 및 광선-프리미티브 간의 교차 검사(Intersection Test)를 수행하여 교차점 정보를 획득할 수 있다.
쉐이더(130)는 제어부(113)로부터 로컬 메모리(115)에 저장된 렌더링 정보를 전달 받아, 쉐이딩 프로세스 및 광선 재생성(ray generation) 프로세스를 수행할 수 있다. 또는 쉐이더(130)는 제어부(113)로부터 렌더링 정보가 저장된 로컬 메모리(115)의 로컬 인덱스 정보를 전달 받고, 로컬 메모리(115)에 액세스하여 렌더링 정보를 획득할 수 있다. 쉐이더(130)는 획득한 렌더링 정보를 이용하여 쉐이딩 프로세스 및 광선 재생성 프로세스를 수행할 수 있다.
제어부(113)는 반복되는 글로벌 인덱스 정보의 패턴에 기초하여 패킷의 사이즈를 조절할 수 있다. 제어부(113)는 수신하는 교차점 정보의 글로벌 인덱스 정보로부터 반복되는 글로벌 인덱스 정보의 패턴을 검출할 수 있다. 제어부(113)는 검출한 패턴의 반복주기에 기초하여 패킷의 사이즈를 조절할 수 있다. 예를 들면, 제어부(113)는 검출한 패턴의 반복주기가 길면, 반복주기가 짧은 경우보다 패킷의 사이즈를 크게 할 수 있다.
제어부(113)는 교차점 정보와 매칭되는 로컬 인덱스 정보가 있으면, 로컬 인덱스 정보 및 로컬 인덱스 정보에 대응하는 로컬 메모리 주소를 쉐이더로 전달할 수 있다.
제어부(113)는 영상 처리 장치(110)의 전반적인 제어를 담당하고, 교차점 추정부(120), 탐색부(111) 및 쉐이더(130)의 기능을 수행할 수 있다. 도 1의 실시 예에서 이를 별도로 구성하여 도시한 것은 각 기능들을 구별하여 설명하기 위함이다. 따라서 실제로 제품을 구현하는 경우에 이들 모두를 제어부(113)에서 처리하도록 구성할 수도 있으며, 이들 중 일부만을 제어부(1130)에서 처리하도록 구성할 수도 있다.
도 2는 다른 일 실시예에 따른 영상 처리 장치의 블록도이다.
도 2를 참조하면, 일 실시예에 따른 영상 처리 장치는 탐색부(210), 제어부(220) 및 쉐이더(230)를 포함할 수 있다.
탐색부(210)는 광선의 교차점 정보를 수신하면, 프리패치 테이블에서 교차점 정보와 매칭되는 로컬 인덱스 정보가 있는지 탐색할 수 있다. 광선의 교차점 정보에는 교차하는 광선의 인덱스, 광선이 교차하는 픽셀의 정보 및 상기 픽셀의 글로벌 인덱스 정보가 포함될 수 있다.
프리패치 테이블은 교차점 정보와 로컬 인덱스 정보가 매칭된 테이블이다. 교차점 정보의 일 예로, 글로벌 인덱스 정보를 사용하여 설명하기로 한다. 글로벌 인덱스 정보는 변환부(224)에서 로컬 인덱스 정보로 변환될 수 있다. 탐색부(210)는 광선의 교차점 정보로부터 글로벌 인덱스 정보를 확인하고, 확인한 글로벌 인덱스 정보와 매칭되는 로컬 인덱스 정보가 프리패치 테이블에 저장되어 있는지 탐색할 수 있다.
제어부(220)는 교차점 정보와 매칭되는 로컬 인덱스 정보가 있으면, 로컬 인덱스 정보에 기초하여 로컬 메모리(226)에 저장된 렌더링 정보를 쉐이더(230)로 전달할 수 있다. 렌더링 정보는 컬러 정보, 텍스처(texture) 정보 등을 포함할 수 있다.
제어부(220)는 글로벌 인덱스 정보에 매칭할 로컬 인덱스 정보를 결정할 수 있다. 제어부(220)는 글로벌 메모리에서 글로벌 메모리 주소에 저장된 렌더링 정보를 프리패치하여 로컬 메모리(226)에서 저장할 로컬 메모리 주소를 결정할 수 있다. 글로벌 인덱스 정보는 글로벌 메모리 주소에 대응하고, 로컬 인덱스 정보는 로컬 메모리 주소에 대응한다.
프리패치 테이블에서 교차점 정보와 매칭되는 로컬 인덱스 정보가 탐색되지 않으면, 제어부(220)는 새로운 교차점 정보와 매칭할 로컬 인덱스 정보를 결정할 수 있다.
쉐이더(230)는 제어부(220)로부터 로컬 메모리(226)에 저장된 렌더링 정보를 전달 받아, 쉐이딩 프로세스 및 광선 재생성(ray generation) 프로세스를 수행할 수 있다. 또는 쉐이더(230)는 제어부(220)로부터 렌더링 정보가 저장된 로컬 메모리(226)의 로컬 인덱스 정보를 전달 받고, 로컬 메모리(226)에 액세스하여 렌더링 정보를 획득할 수 있다. 쉐이더(230)는 획득한 렌더링 정보를 이용하여 쉐이딩 프로세스 및 광선 재생성 프로세스를 수행할 수 있다.
제어부(220)는 테이블 생성부(221), 테이블 업데이트부(222), 패킷 생성부(223), 변환부(224), 프리패치부(225) 및 로컬 메모리(226)를 포함할 수 있다.
테이블 생성부(221)는 글로벌 인덱스 정보와 로컬 인덱스 정보가 매칭된 프리패치 테이블을 생성할 수 있다.
테이블 업데이트부(222)는 프리패치 테이블에 반영되지 않은 신규 글로벌 인덱스 정보와 신규 글로벌 인덱스 정보와 매칭되는 신규 로컬 인덱스 정보를 프리패치 테이블에 업데이트할 수 있다.
로컬 인덱스 정보는 글로벌 인덱스 정보에 기초하여 글로벌 메모리에서 프리패치 된 렌더링 정보를 저장하는 로컬 메모리(226)의 인덱스를 나타낸다.
패킷 생성부(223)는 폴리곤에 교차하는 광선 별로 매칭된 로컬 인덱스 정보들 및 로컬 인덱스 정보들에 대응하는 로컬 메모리 주소들 중 적어도 하나를 포함하는 패킷을 생성할 수 있다. 패킷 생성부(223)는 복수개의 로컬 인덱스 정보들을 그룹핑하여 패킷을 생성할 수 있다.
변환부(224)는 교차점 정보의 글로벌 인덱스 정보를 글로벌 메모리 주소로 변환하고, 프리패치 테이블에 글로벌 인덱스 정보와 매칭된 로컬 인덱스 정보를 로컬 메모리 주소로 변환할 수 있다. 변환부(224)는 글로벌 인덱스 정보를 입력 받으면, 기 설정된 기준에 기초하여 글로벌 메모리 주소로 변환할 수 있고, 로컬 인덱스 정보를 입력 받으면 기 설정된 기준에 기초하여 로컬 메모리 주소로 변환할 수 있다.
프리패치부(225)는 글로벌 메모리의 글로벌 메모리 주소에 저장된 렌더링 정보를 로컬 메모리(226)의 로컬 메모리 주소로 프리패치할 수 있다. 프리패치부(225)는 글로벌 메모리에서 글로벌 메모리 주소에 기초하여 렌더링 정보를 획득하고, 로컬 메모리(226)의 로컬 메모리 주소에 저장할 수 있다.
프리패치부(225)는 패킷 단위로 글로벌 메모리에 저장된 렌더링 정보를 로컬 메모리(226)로 프리패치할 수 있다. 프리패치부(225)는 패킷 별로 프리패치를 수행함으로써, 글로벌 메모리로부터 로컬 메모리(226)로 보다 빠르게 렌더링 정보를 저장시킬 수 있다.
로컬 메모리(226)는 패킷 별로 글로벌 메모리로부터 로컬 메모리(226)의 로컬 메모리 주소로 프리패치 된 렌더링 정보들을 저장할 수 있다.
패킷의 사이즈는 로컬 메모리(226)의 사이즈 및 광선의 히트율(hit-rate)에 기초하여 결정될 수 있다. 여기서, 히트율은 광선이 동일한 폴리곤과 교차할 확률을 의미할 수 있다. 보다 구체적으로, 히트율은 로컬 메모리(226)에 저장된 동일한 정보를 제어부(220)에서 얼마나 자주 로딩하는지를 의미할 수 있다.
도 3은 일 실시예에 따른 영상 처리 장치의 패킷 단위로 프리패치 테이블을 이용하여, 렌더링 정보를 획득하는 과정을 나타낸 도면이다.
도 3을 참조하면, 일 실시예에 따른 영상 처리 장치는 광선의 교차점 정보(310)를 추정할 수 있다. 교차점 정보(310)는 교차하는 광선에 대한 정보 및 교차하는 폴리곤의 글로벌 프리미티브 인덱스 정보를 포함할 수 있다. 글로벌 프리미티브 인덱스 정보는 글로벌 메모리에서 프리미티브 정보가 저장된 공간의 인덱스를 나타낸다. 예를 들면, 교차점 정보(310)의 HR-10(Hit Ray-10)은 교차하는 광선의 인덱스가 10임을 나타내고, GPI-02(Global Primitive Index)는 HR-10 광선이 교차하는 폴리곤의 글로벌 프리미티브 인덱스가 02임을 나타낸다.
프리패치 테이블(320)은 로컬 프리미티브 인덱스(Local Primitive Index, 이하 LPI)와 글로벌 프리미티브 인덱스(이하 GPI)가 매칭된 테이블이다. 프리패치 테이블(320)에서 GPI 00A 0087은 LPI 00에 매칭되어 있다. 일 예로, GPI-02에 00A 0087이 대응하는 경우를 가정하면, 영상 처리 장치는 00A 0087의 기계어를 GPI-02로 해석할 수 있다. 영상 처리 장치는 GPI-02에 매칭되는 LPI 00이 있음을 확인할 수 있다. 또한, GPI-93에 00A 0287이 대응하고, GPI-94에 00A 0380이 대응한다고 가정하면, 영상 처리 장치는 GPI-93이 LPI 01에 매칭되고, GPI-94가 LPI 02에 매칭됨을 확인할 수 있다.
영상 처리 장치는 LPI 00, LPI 01, LPI 02 세 개를 그룹핑하여 패킷(340)을 생성할 수 있다. 영상 처리 장치는 패킷(340) 단위로 LPI를 관리할 수 있다.
영상 처리 장치는 프리패치부(330)를 포함할 수 있는데, 프리패치부(330)는 패킷(340)에 포함된 LPI에 기초하여 글로벌 메모리(360)로부터 로컬 메모리(350)로 렌더링 정보를 프리패치할 수 있다. 프리패치부(330)는 패킷(340) 단위로 렌더링 정보를 프리패치할 수 있다. 프리패치부(330)는 패킷(340)의 LPI-00에 기초하여 프리패치 테이블(320)로부터 GPI 00A 0087를 확인하고, GPI 00A 0087로부터 변환한 글로벌 메모리 주소에 기초하여 글로벌 메모리(360)에서 렌더링 정보를 획득할 수 있다. 프리패치부(330)는 획득한 렌더링 정보를 LPI가 변환된 로컬 메모리의 주소에 저장할 수 있다.
LPI-00, LPI-01, LPI-02 에 대응하는 로컬 메모리 주소는 *{LPI 00}, *{LPI 01}, *{LPI 02}로 표시될 수 있다.
영상 처리 장치는 스트림(stream) 형태로 생성되는 교차점 정보에 기초하여, 쉐이딩 및 광선 재생성(이하 SRG(Shading and Ray Generation))프로세스에 필요한 데이터를 글로벌 메모리(360)에서 사전에 로딩하여 로컬 메모리(350)에 저장한다. 또한, 영상 처리 장치는 복수개의 LPI를 그룹핑하여 패킷화하는 작업을 수행할 수 있다.
영상 처리 장치는 SRG 프로세스의 연산에 적합한 길이로 패킷을 생성할 수 있다. 패킷은 복수개의 LPI를 어레이 형태로 조합하여 생성될 수 있다.
또한, 영상 처리 장치는 패킷에 저장된 인덱스로부터 프리패치 테이블(320)을 이용하여 글로벌 메모리 인덱스를 획득하고, 프리패치할 글로벌 메모리(360)에 저장된 데이터의 주소와 로컬 메모리(350)에 저장할 위치를 결정할 수 있다.
영상 처리 장치는 이미 로컬 메모리(350)에 저장되어 있는 데이터는 별도로 글로벌 메모리(360)로부터 복사하지 않고 로컬 메모리(350)의 데이터를 다시 활용할 수 있다.
패킷 단위로 구성된 데이터는 DMA(Direct Memory Access)방식으로 글로벌 메모리(360)로부터 로컬 메모리(350)로 복사될 수 있다. 프리패치 테이블(320)은 현재 로컬 메모리(360)에 프리패치된 데이터와 관련된 LPI와 GPI의 매칭을 나타낸다.
프리패치 테이블(320)은 SRG 프로세스의 연산에 필요한 데이터의 인덱스를 기준으로 저장할 수 있다.
영상 처리 장치는 교차점 광선의 글로벌 인덱스를 사용하여 글로벌 메모리 주소를 계산하기 전에 프리패치 테이블(320)을 참조하여 이미 로컬 메모리(350)에 필요한 렌더링 정보가 저장되어 있는지 확인할 수 있다.
영상 처리 장치는 로컬 메모리(350)에 이미 프리패치 되어있는 데이터에 대해서는 글로벌 메모리 주소를 계산하지 않고, 로컬 메모리(350)로부터 렌더링 정보를 획득하여 SRG 프로세스를 수행할 수 있다.
도 4 및 도 5는 일 실시예에 따른 영상 처리 장치의 동작을 설명하기 위한 도면이다.
도 4를 참조하면, 영상 처리 장치는 프리패치 된 데이터 패킷(430)을 쉐이딩 및 광선 재생성(이하 SRG(Shading and Ray Generation))프로세서에 전달할 수 있다.
도 4의 예는 SRG에 필요한 데이터인 프리미티브 데이터와 텍스처 데이터를 글로벌 메모리(440)로부터 로컬 메모리(470)로 프리패치 하는 경우이다.
글로벌 프리미티브 인덱스(Global Primitive Index, 이하 GPI)는 글로벌 메모리(440)에서 프리미티브 정보가 저장된 공간의 인덱스를 나타낸다. 글로벌 텍스처 인덱스(Global Texture Index, 이하 GTI)는 글로벌 메모리(440)에서 텍스처 정보가 저장된 공간의 인덱스를 나타낸다. 영상 처리 장치는 GPI 및 GTI를 이용하여 시스템적으로 접근 가능한 글로벌 메모리 주소를 계산할 수 있다.
예를 들면, 프리미티브 인덱스 번호가 01이면, data를 GPI-01-Data 라고 표현되고, 이 데이터가 저장된 실제 메모리 주소는 인덱스 GPI 01을 레퍼런스로 하여 계산되며, *GPI-01-Data 라고 표현될 수 있다
영상 처리 장치는 실제 메모리 주소를 기반으로 글로벌 메모리(440)에서 데이터를 로딩하여, 로컬 메모리(470) 영역의 GPI 01과 매칭되는 주소에 저장할 수 있다. 이때, 로컬 메모리(470) 영역의 프리미티브 인덱스를 LPI(Local Primitive Index)라고 한다. 또한, 로컬 메모리(470) 영역의 텍스처 인덱스는 LTI(Local Texture Index)라고 한다.
만약 프리미티브 인덱스 번호가 01이면, LPI-01 이라 표현되고, 이때의 로컬 메모리 주소는 *LPI-01이라고 표현될 수 있다. 만약 텍스쳐 인덱스 번호가 01이면, LTI-01 이라 표현되고, 이때의 로컬 메모리 주소는 *LTI-01이라고 표현될 수 있다.
프리패치 테이블은 글로벌 인덱스와 로컬 인덱스의 매칭을 나타낸다. 글로벌 인덱스에는 GPI, GTI가 포함되고, 로컬 인덱스에는 LPI, LTI가 포함될 수 있다.
예를 들면, GPI-01에 해당하는 데이터가 프리패치 되어 LPI-01에 해당하는 로컬 메모리(470) 영역에 저장되었다면, 프리패치 테이블에는 GPI-01 → LPI-01이라고 표시될 수 있다.
교차점 추정부(410)는 탐색(Traversal) 및 광선-프리미티브 간의 교차 검사(Intersection Test)를 수행하여 교차점 정보를 획득할 수 있다. 교차점 정보는 교차하는 광선에 대한 정보(HR) 및 교차하는 폴리곤의 글로벌 프리미티브 인덱스(GPI) 및 글로벌 텍스처 인덱스(GTI)를 포함할 수 있다.
교차점 추정부(410)는 스트림 형태로 교차점 정보를 제어부(420)로 전달할 수 있다.
제어부(420)는 패킷 생성부(421), 변환부(423) 및 탐색부(425)를 포함할 수 있다.
패킷 생성부(421)는 프리패치하려는 복수개의 광선에 대한 정보, GPI들, GTI들을 그룹핑하여 패킷(430)을 생성할 수 있다. 또한, 패킷 생성부(421)는 프리패치하려는 복수개의 광선에 대한 정보, LPI들, LTI들을 그룹핑하여 패킷(430)을 생성할 수 있다. 또한, 패킷 생성부(421)는 프리패치하려는 복수개의 광선에 대한 정보, LPI들, LTI들, LPI들 각각에 대응하는 로컬 메모리(470)의 주소, LTI들 각각에 대응하는 로컬 메모리(470)의 주소를 그룹핑하여 패킷(430)을 생성할 수 있다. 또한, 패킷 생성부(421)는 프리패치 한 복수개의 광선에 대한 정보, LPI들 각각에 대응하는 로컬 메모리(470)에 저장된 데이터, LTI들 각각에 대응하는 로컬 메모리(470)에 저장된 데이터를 그룹핑하여 패킷(430)을 생성할 수 있다.
변환부(423)는 GPI 및 GTI를 각각의 인덱스에 기초하여 글로벌 메모리의 주소로 변환할 수 있다. 변환 결과(450), 각각의 글로벌 메모리 주소는 *GPI-02-Data, *GTI-01-Data로 표시될 수 있다.
프리패치부(460)는 변환 결과(450)를 참조하여, 글로벌 메모리(440)로부터 프리미티브 데이터와 텍스처 데이터를 프리패치하여, 로컬 메모리(470)에 저장할 수 있다. 프리패치부(460)는 프리패치 테이블을 참조하여, 프리패치 한 데이터를 로컬 메모리(470)에 저장할 수 있다. 예를 들면, GPI-02는 LPI-00에 매칭되고, GTI-01은 LTI-00로 매칭되면, GPI-02-Data는 *LPI-00-Data에 저장되고, GTI-01-Data는 *LTI-00-Data에 저장될 수 있다.
탐색부(425)는 글로벌 인덱스를 수신하면, 프리패치 테이블에 매칭되는 로컬 인덱스가 있는지 탐색할 수 있다. 프리패치 테이블은 프리패치 한 데이터의 글로벌 인덱스 및 로컬 인덱스를 나타낸다. 탐색부(425)에서 로컬 인덱스가 탐색되면, 변환부(423)는 로컬 인덱스로부터 로컬 메모리 주소로 변환하고, 패킷 생성부(421)는 로컬 메모리 주소들을 다발로 그룹핑하여 패킷(430)을 생성할 수 있다. 패킷 생성부(421)는 로컬 메모리 주소에 저장된 데이터를 로딩하여 패킷(430)을 생성할 수도 있다.
도 5를 참조하면, 프리패치 테이블에는 글로벌 인덱스와 로컬 인덱스의 레퍼런스 주소가 매칭되어 있다.
이전의 패킷 처리를 위해 이미 프리패치된 데이터 GPI-02-Data, GPI-93-Data, GTI-01-Data, GTI-04-Data, GTI-02-Data는 로컬 메모리에 저장되어 있기 때문에 프리패치 테이블에는 GPI-02, GPI-93, GTI-01, GTI-04, GTI-02와 매칭되는 *LPI-00, *LPI-01, *LTI-00, *LTI-01, *LTI-02가 표시되어 있다.
이전의 패킷에서 처리되지 않은 데이터 GPI-94-Data, GPI-03-Data, GTI-96-Data는 프리패치 되지 않았으므로, 프리패치 이후에, 프리패치 테이블에 업데이트될 필요가 있다.
영상 처리 장치는 GPI-94, GPI-03, GTI-96과 매칭시킬 로컬 인덱스를 로컬 메모리에서 결정할 수 있다. 예를 들면, LPI-02, LPI-03, LTI-03으로 결정할 수 있다. 영상 처리 장치는 블록(510)의 GPI-94와 GPI-03를 *LPI-02와 *LPI-03를 매칭시켜 프리패치 테이블에 업데이트 할 수 있다. 또한, 영상 처리 장치는 블록(520)의 GTI-96과 *LTI-03을 매칭시켜 프리패치 테이블을 업데이트 할 수 있다.
영상 처리 장치는 교차점 추정부에서 전달되는 교차 광선의 스트림에 대해 일정한 길이를 갖는 그룹으로 패킷을 형성할 수 있다. 또한, 영상 처리 장치는 교차 광선의 스트림에 대해 차등화된 방법을 이용하여 패킷을 형성할 수 있다.
차등화된 방법에는 교차점 광선의 강도(ray strength), 레이 트레이싱에 따른 반복 깊이(recursion depth), 현재 프레임을 렌더링 하는데 필요한 시간, 시스템의 가용한 자원 중 적어도 하나가 포함될 수 있다.
영상 처리 장치는 차등화된 방법을 이용하여 패킷의 길이를 조절하거나, 교차하는 광선의 우선순위를 정하여, 우선순위에 따라 그룹핑 할 수 있다.
도 6 및 도 7은 일 실시예에 따른 영상 처리 장치에서 반복되는 패턴을 나타낸 그래프이다.
도 6은 선형(linear) 패턴의 예로, 글로벌 인덱스 450의 전후로 패턴(610) 및 패턴(620)이 주기적으로 반복되고 있다.
도 7은 스캐터(scatter) 패턴의 예로, 다양한 인덱스를 가지는 패턴이 주기적으로 반복되고 있다.
영상 처리 장치는 패턴의 반복을 감지하면, 글로벌 인덱스에 매칭되는 로컬 인덱스로부터 프리패치 된 로컬 메모리의 렌더링 정보를 획득하고, 쉐이딩 프로세스 및 광선 재생성(ray generation) 프로세스를 수행하는 쉐이더로 렌더링 정보를 전달할 수 있다.
도 8은 일 실시예에 따른 영상 처리 방법의 흐름도이다.
810단계에서, 영상 처리 장치는 광선의 교차점 정보를 수신할 수 있다.
820단계에서, 영상 처리 장치는 프리패치 테이블에서 교차점 정보와 매칭되는 로컬 인덱스 정보가 있는지 탐색할 수 있다. 영상 처리 장치는 광선과 오브젝트의 폴리곤(polygon)이 교차하는 지점의 글로벌 인덱스 정보가 프리패치 테이블에서 이미 상기 로컬 인덱스 정보와 매칭되어 있는지 탐색할 수있다.
830단계에서, 영상 처리 장치는 교차점 정보와 매칭되는 로컬 인덱스 정보가 있으면, 로컬 인덱스 정보에 기초하여 로컬 메모리에 저장된 렌더링 정보를 쉐이더로 전달할 수 있다. 영상 처리 장치는 로컬 인덱스 정보에 기초하여 로컬 메모리 주소를 계산할 수 있다. 영상 처리 장치는 로컬 메모리 주소를 쉐이더로 전달할 수도 있고, 로컬 메모리 주소에 저장된 렌더링 정보를 쉐이더로 전달할 수도 있다.
840단계에서, 영상 처리 장치는 교차점 정보와 매칭되는 로컬 인덱스 정보가 없으면, 글로벌 인덱스 정보와 글로벌 메모리에서 프리패치 된 렌더링 정보를 저장하는 로컬 메모리의 로컬 인덱스 정보가 매칭된 프리패치 테이블을 생성할 수 있다.
영상 처리 장치는 프리패치 테이블에 반영되지 않은 신규 글로벌 인덱스 정보와 신규 글로벌 인덱스 정보와 매칭되는 신규 로컬 인덱스 정보를 상기 프리패치 테이블에 업데이트할 수 있다.
850단계에서, 영상 처리 장치는 폴리곤에 교차하는 광선 별로 매칭된 로컬 인덱스 정보들을 포함하는 패킷을 생성할 수 있다. 패킷은 복수개의 로컬 인덱스 정보들을 포함할 수 있다. 또한, 패킷은 복수개의 로컬 메모리 주소들을 포함할 수도 있다. 또한, 패킷은 복수개의 로컬 메모리 주소들에 저장된 렌더링 정보들을 포함할 수도 있다.
860단계에서, 영상 처리 장치는 패킷 단위로 글로벌 메모리에 저장된 렌더링 정보를 로컬 메모리에 저장할 수 있다.
영상 처리 장치는 교차점 정보의 글로벌 인덱스 정보를 글로벌 메모리 주소로 변환하고, 프리패치 테이블에 상기 글로벌 인덱스 정보와 매칭된 로컬 인덱스 정보를 로컬 메모리 주소로 변환할 수 있다.
영상 처리 장치는 글로벌 메모리 주소에 저장된 렌더링 정보를 로컬 메모리의 로컬 메모리 주소로 프리패치 할 수 있다.
일 실시예에 따른 영상 처리 장치는 교차점 정보 및 프리패치 테이블을 이용하여 로컬 메모리에 프리패치된 데이터를 획득함으로써, 데이터 로드에 소요되는 시간을 줄일 수 있고, 데이터 로드의 지연으로 인한 프로세서의 스톨(stall)을 예방할 수 있다.
또한, 일 실시예에 따른 영상 처리 장치는 교차점 정보 및 프리패치 테이블을 이용하여 로컬 메모리에 프리패치된 데이터를 획득함으로써, 글로벌 메모리의 데이터 액세스가 집중되어, 액세스 충돌에 따른 전체 시스템의 성능 저하를 예방할 수 있다.
또한, 일 실시예에 따른 영상 처리 장치는 데이터 프리패치의 효율을 높이기 위해, 패킷을 생성하여 패킷 단위로 프리패치를 수행할 수 있다.
또한, 일 실시예에 따른 영상 처리 장치는 패킷 단위로 프리패치 된 데이터를 로컬 메모리에서 액세스함으로써, 데이터의 액세스 효율을 높일 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 실행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 실행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다.
그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (16)

  1. 광선과 오브젝트에 대한 교차점 정보가 수신되면, 프리패치 테이블에서 상기 교차점 정보와 매칭되는 로컬 인덱스 정보를 탐색하도록 구성되는 탐색부; 및
    상기 로컬 인덱스 정보가 상기 프리패치 테이블에 있는 경우, 상기 로컬 인덱스 정보에 기초하여 로컬 메모리에 저장된 렌더링 정보를 쉐이더로 전달하도록 구성되는 제어부를 포함하되,
    상기 로컬 메모리의 사이즈는 상기 광선과 상기 오브젝트 사이의 히트율(hit-rate)과 관련되는 영상 처리 장치.
  2. 제1항에 있어서,
    상기 탐색부는,
    상기 프리패치 테이블에서, 상기 광선과 오브젝트의 폴리곤(polygon)이 교차하는 지점의 글로벌 인덱스 정보와 이미 매칭된 로컬 인덱스 정보를 탐색하도록 구성되는 영상 처리 장치.
  3. 제1항에 있어서,
    상기 제어부는
    글로벌 인덱스 정보와 상기 로컬 인덱스 정보가 서로 매칭되도록 상기 프리패치 테이블을 생성하는 테이블 생성부; 및
    상기 프리패치 테이블에 반영되지 않은 신규 글로벌 인덱스 정보, 및 상기 신규 글로벌 인덱스 정보와 매칭되는 신규 로컬 인덱스 정보를 상기 프리패치 테이블에 업데이트하도록 구성되는 테이블 업데이트부를 포함하되,
    상기 로컬 인덱스 정보는 상기 글로벌 인덱스 정보에 기초하여 글로벌 메모리로부터 프리패치 된, 상기 렌더링 정보를 저장하도록 구성되는 상기 로컬 메모리의 인덱스를 나타내는 영상 처리 장치.
  4. 제1항에 있어서,
    상기 제어부는, 상기 오브젝트를 구성하는 폴리곤에 교차하는 광선 별로 매칭된 로컬 인덱스 정보들 및 상기 로컬 인덱스 정보들에 대응하는 로컬 메모리 주소들 중 적어도 하나를 포함하는 패킷을 생성하도록 구성되는 패킷 생성부를 포함하고,
    상기 로컬 메모리는 패킷 별로 글로벌 메모리로부터 상기 로컬 메모리에 프리패치 된 렌더링 정보들을 포함하되,
    상기 패킷의 사이즈는 상기 로컬 메모리의 상기 사이즈 및 상기 히트율, 또는 글로벌 인덱스 정보의 반복되는 패턴에 기초하여 결정되는 영상 처리 장치.
  5. 삭제
  6. 삭제
  7. 제1항에 있어서,
    상기 제어부는,
    상기 교차점 정보의 글로벌 인덱스 정보를 글로벌 메모리 주소로 변환하고, 상기 프리패치 테이블에 상기 글로벌 인덱스 정보와 매칭된 로컬 인덱스 정보를 로컬 메모리 주소로 변환하도록 구성되는 변환부; 및
    글로벌 메모리의 상기 글로벌 메모리 주소에 저장된 상기 렌더링 정보를 상기 로컬 메모리의 상기 로컬 메모리 주소로 프리패치하도록 구성되는 프리패치부를 포함하되,
    상기 프리패치 테이블의 사이즈는 상기 로컬 메모리의 상기 사이즈 및 상기 히트율에 기초하여 결정되도록 구성되는 영상 처리 장치.
  8. 삭제
  9. 삭제
  10. 제1항에 있어서,
    상기 로컬 메모리는
    패킷 별로 상기 로컬 인덱스 정보와 매칭된 프리미티브 정보 및 텍스처 정보를 저장하는 영상 처리 장치.
  11. 제1항에 있어서,
    상기 제어부는 상기 교차점 정보와 매칭되는 상기 로컬 인덱스 정보가 상기 프리패치 테이블에 있는 경우, 상기 로컬 인덱스 정보 및 상기 로컬 인덱스 정보에 대응하는 로컬 메모리 주소를 상기 쉐이더로 전달하도록 구성되는 영상 처리 장치.
  12. 광선과 오브젝트에 대한 교차점 정보가 수신되면, 프리패치 테이블에서 상기 교차점 정보와 매칭되는 로컬 인덱스 정보를 탐색하는 단계; 및
    상기 로컬 인덱스 정보가 상기 프리패치 테이블에 있는 경우, 상기 로컬 인덱스 정보에 기초하여, 로컬 메모리에 저장된 렌더링 정보를 쉐이더로 전달하는 단계를 포함하되,
    상기 프리패치 테이블의 사이즈는 상기 광선과 상기 오브젝트 사이의 히트율과 관련되는 영상 처리 방법.
  13. 삭제
  14. 제12항에 있어서,
    상기 로컬 메모리의 로컬 인덱스 정보가 글로벌 인덱스 정보와 서로 매칭되도록 프리패치 테이블을 생성하는 단계; 및
    상기 프리패치 테이블에 반영되지 않은 신규 글로벌 인덱스 정보, 및 상기 신규 글로벌 인덱스 정보와 매칭되는 신규 로컬 인덱스 정보를 상기 프리패치 테이블에 업데이트하는 단계를 더 포함하되,
    상기 로컬 메모리는 상기 글로벌 인덱스 정보, 및 글로벌 메모리로부터 프리패치 된 상기 렌더링 정보를 저장하도록 구성되는 영상 처리 방법.
  15. 삭제
  16. 제12항에 있어서,
    상기 교차점 정보의 글로벌 인덱스 정보를 글로벌 메모리 주소로 변환하고, 상기 프리패치 테이블에 상기 글로벌 인덱스 정보와 매칭된 로컬 인덱스 정보를 로컬 메모리 주소로 변환하는 단계; 및
    글로벌 메모리의 상기 글로벌 메모리 주소에 저장된 상기 렌더링 정보를 상기 로컬 메모리의 상기 로컬 메모리 주소로 프리패치하는 단계를 더 포함하는 영상 처리 방법.
KR1020120114806A 2012-10-16 2012-10-16 영상 처리 장치 및 방법 KR102072515B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020120114806A KR102072515B1 (ko) 2012-10-16 2012-10-16 영상 처리 장치 및 방법
US13/871,385 US9449423B2 (en) 2012-10-16 2013-04-26 Apparatus and method for image processing

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020120114806A KR102072515B1 (ko) 2012-10-16 2012-10-16 영상 처리 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20140048627A KR20140048627A (ko) 2014-04-24
KR102072515B1 true KR102072515B1 (ko) 2020-02-03

Family

ID=50474945

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020120114806A KR102072515B1 (ko) 2012-10-16 2012-10-16 영상 처리 장치 및 방법

Country Status (2)

Country Link
US (1) US9449423B2 (ko)
KR (1) KR102072515B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20160071774A (ko) * 2014-12-12 2016-06-22 삼성전자주식회사 영상 처리를 위한 영상 처리 장치, 방법 및 기록 매체
US10580189B2 (en) * 2016-09-16 2020-03-03 Intel Corporation Apparatus and method for optimized ray tracing

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080088619A1 (en) * 2006-10-17 2008-04-17 Robert Allen Shearer Branch Prediction for Acceleration Data Structure Traversal
KR100889602B1 (ko) 2006-12-05 2009-03-20 한국전자통신연구원 광선 추적을 위한 광선-삼각형 충돌 처리 방법 및 장치
US8237711B2 (en) 2007-11-19 2012-08-07 Caustic Graphics, Inc. Tracing of shader-generated ray groups using coupled intersection testing
US9483864B2 (en) 2008-12-05 2016-11-01 International Business Machines Corporation System and method for photorealistic imaging using ambient occlusion
KR101004110B1 (ko) 2009-05-28 2010-12-27 주식회사 실리콘아츠 레이 트레이싱 코어 및 이를 포함하는 레이 트레이싱 칩
KR101705072B1 (ko) 2010-09-28 2017-02-09 삼성전자주식회사 영상 처리 장치 및 방법
KR101705581B1 (ko) * 2010-09-30 2017-02-22 삼성전자주식회사 데이터 처리 장치 및 방법

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
블로그, 인터넷: <URL: http://recipes.egloos.com/5232056> (2010.01.24.)*

Also Published As

Publication number Publication date
US20140104271A1 (en) 2014-04-17
US9449423B2 (en) 2016-09-20
KR20140048627A (ko) 2014-04-24

Similar Documents

Publication Publication Date Title
KR101705581B1 (ko) 데이터 처리 장치 및 방법
KR102080851B1 (ko) 레이 추적의 스케쥴링을 위한 장치 및 방법
KR101545039B1 (ko) 광선 추적법을 이용하는 렌더링 시스템 및 방법
JP6336727B2 (ja) 並列パイプラインを用いるグラフィック処理方法及び装置
US7864174B2 (en) Methods and systems for reducing the number of rays passed between processing elements in a distributed ray tracing system
KR100924122B1 (ko) 픽셀 단위 처리 요소 기반의 광선 추적 장치 및 방법
US9483864B2 (en) System and method for photorealistic imaging using ambient occlusion
KR102161749B1 (ko) 화상의 렌더링을 위하여 광선 추적을 수행하는 방법 및 장치.
US10019830B2 (en) Method and apparatus for rendering same regions of multi frames
KR101511281B1 (ko) 레이 트레이싱 고속화 방법 및 장치
US9355491B2 (en) Ray tracing apparatus and method
KR20160011485A (ko) 데이터 프로세싱 방법 및 장치
KR20150046643A (ko) 레이 트레이싱 시스템에서의 가속 구조 생성 장치 및 그 생성 방법
KR101705072B1 (ko) 영상 처리 장치 및 방법
KR20150039493A (ko) 레이 트레이싱 처리 장치 및 방법
KR102072515B1 (ko) 영상 처리 장치 및 방법
US9779537B2 (en) Method and apparatus for ray tracing
JP2015225673A (ja) レイトレーシング・システムでの加速構造探索装置及び加速構造探索方法
KR20150034062A (ko) 동일한 그룹의 데이터를 라우팅하는 방법 및 장치, 렌더링 유닛을 재구성하는 방법 및 장치
KR20090064155A (ko) 광선 집합을 이용한 병렬 광선 추적 방법 및 시스템
KR102051903B1 (ko) 공간 가속 구조 탐색 장치 및 방법
KR102261257B1 (ko) 장치들 간의 대역폭을 줄이는 레이 트레이싱 장치 및 방법
KR102261250B1 (ko) 장치들 간의 대역폭을 줄이는 레이 트레이싱 장치 및 방법
US20150186288A1 (en) Apparatus and method of operating cache memory
KR20160115016A (ko) 레이 트레이싱 장치 및 방법

Legal Events

Date Code Title Description
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant