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

영상 처리 장치 및 방법 Download PDF

Info

Publication number
KR102282896B1
KR102282896B1 KR1020140187323A KR20140187323A KR102282896B1 KR 102282896 B1 KR102282896 B1 KR 102282896B1 KR 1020140187323 A KR1020140187323 A KR 1020140187323A KR 20140187323 A KR20140187323 A KR 20140187323A KR 102282896 B1 KR102282896 B1 KR 102282896B1
Authority
KR
South Korea
Prior art keywords
gather
ray
condition
data structure
photon
Prior art date
Application number
KR1020140187323A
Other languages
English (en)
Other versions
KR20160076803A (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 KR1020140187323A priority Critical patent/KR102282896B1/ko
Priority to US14/979,162 priority patent/US9922444B2/en
Publication of KR20160076803A publication Critical patent/KR20160076803A/ko
Application granted granted Critical
Publication of KR102282896B1 publication Critical patent/KR102282896B1/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/50Lighting effects
    • G06T15/506Illumination models

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Graphics (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Generation (AREA)
  • Apparatus For Radiation Diagnosis (AREA)

Abstract

영상 처리 장치가 제공된다. 영상 처리 장치는 포톤 맵핑에 연관되는 복수 개의 게더 레이를 계층적으로 클러스터링 할 수 있다. 상기 계층적인 클러스터링에 의해 생성된 데이터 구조에서, 제1 게더 레이에 대한 포톤 게더링 결과가 미리 지정된 제1 조건을 만족하지 못하는 경우, 영상 처리 장치는 상기 제1 게더 레이를 이웃 게더 레이인 제2 게더 레이와 연관시켜 적응적으로 포톤 게더링 결과를 공유시킬 수 있다.

Description

영상 처리 장치 및 방법{IMAGE PROCESSING APPARATUS AND METHOD}
영상 처리 분야에 연관되며, 보다 특정하게는 포톤 맵핑(photon mapping) 기법의 영상 렌더링 분야에 연관된다.
포톤 맵핑 기법은 실사 고화질 렌더링 방법으로 사용되고 있다. 포톤 맵핑을 이용하면 스펙큘러(specular), 디퓨즈(diffuse), 코스틱스(caustics), 간접 조명 등 다양한 표현이 가능하다. 그런데, 포톤 맵핑 기법에서는 레이(ray)를 트레이싱하는 연산양이 크다. 따라서, 실시간 고화실 렌더링을 구현하기 위해 연산양을 줄이면서도 렌더링 품질을 개선하는 것이 요구된다.
일측에 따르면, 렌더링 시점으로부터의 게더 레이 트레이싱(gather ray tracing)으로 생성되는 복수 개의 게더 레이(gather rays)를 계층적으로 클러스터한 데이터 구조(data structure wherein the gather rays are clustered hierarchically)를 저장하는 메모리; 및 상기 복수 개의 게더 레이 중 제1 게더 레이에 대한 포톤 게더링(photon gathering) 결과가 제1 조건을 만족하지 못하는 경우, 상기 데이터 구조에서 상기 제1 게더 레이와 연관되는 제2 게더 레이에 대한 포톤 게더링 결과를 상기 제1 게더 레이에 대한 포톤 게더링에 병합하는 처리부를 포함하는 영상 처리 장치가 제공된다. 일실시예에 따르면 상기 데이터 구조는, 상기 복수 개의 게더 레이들을 각각의 특성 정보 간의 유사성에 따라 클러스터하고 계층적 연결 관계를 설정하여 생성된다. 여기서 상기 특성 정보는, 각각의 게더 레이에 대응하는 오브젝트 포인트의 3차원 위치, 상기 오브젝트 포인트의 법선 방향, 상기 오브젝트 포인트에 대응하는 BRDF (Bidirectional reflectance distribution function) 중 적어도 하나를 포함할 수 있다. 그리고 상기 제2 게더 레이는 상기 병합에 의해 상기 제1 조건이 만족되도록 하는 적어도 하나의 이웃한 게더 레이를 포함할 수 있다.
일실시예에 따르면 상기 제1 조건은 상기 제1 게더 레이에 대한 포톤 게더링 결과와, 상기 데이터 구조에서 상기 제1 게더 레이와 이웃한 이웃 게더 레이의 포톤 게더링 결과의 차이가 제1 임계치 이하일 때 만족되는 조건이다. 그리고 상기 제1 게더 레이에 대한 포톤 게더링 결과가 제2 조건을 만족하지 못하는 경우, 상기 처리부는 상기 제2 조건이 만족되도록 상기 데이터 구조를 업데이트 할 수 있다. 예시적으로, 그러나 한정되지 않게, 상기 제2 조건은 상기 제1 게더 레이에 대한 포톤 게더링 결과와, 상기 데이터 구조에서 상기 제1 게더 레이와 이웃한 이웃 게더 레이의 포톤 게더링 결과의 차이가 제2 임계치 이하일 때 만족되는 조건일 수 있다. 여기서 상기 제2 임계치는 상기 제1 임계치보다 큰 값이다.
다른 일측에 따르면, 렌더링 시점으로부터의 게더 레이 트레이싱으로 생성되는 복수 개의 게더 레이를 특성 정보 간의 유사성에 따라 클러스터하고 계층적 연결 관계를 설정하여 생성한 데이터 구조를 저장하는 메모리; 및 상기 복수 개의 게더 레이 중 제1 게더 레이에 대한 포톤 게더링 결과가 제1 조건을 만족하지 못하는 경우, 상기 데이터 구조에서 상기 제1 게더 레이의 상위 계층에 있는 부모 노드 중 상기 제1 조건을 만족하도록 하는 대표 노드를 결정하는 처리부를 포함하는 영상 처리 장치가 제공된다. 일실시예에 따르면 상기 대표 노드는 상기 대표 노드에 연관되는 리프 노드(leaf node)들에 대응하는 게더 레이들 간에 포톤 게더링을 공유하는 경우 상기 제1 조건이 만족되도록 하는 노드이다. 그리고 상기 제1 조건은 상기 제1 게더 레이에 대한 포톤 게더링 결과와, 상기 데이터 구조에서 상기 제1 게더 레이와 이웃한 이웃 게더 레이의 포톤 게더링 결과의 차이가 제1 임계치 이하일 때 만족되는 조건일 수 있다.
일실시예에 따르면 상기 제1 게더 레이에 대한 포톤 게더링 결과가 제2 조건을 만족하지 못하는 경우, 상기 처리부는 상기 제2 조건이 만족되도록 상기 데이터 구조를 업데이트 한다. 여기서 상기 제2 조건은 상기 제1 게더 레이에 대한 포톤 게더링 결과와, 상기 데이터 구조에서 상기 제1 게더 레이와 이웃한 이웃 게더 레이의 포톤 게더링 결과의 차이가 제2 임계치 이하이면 만족되는 조건일 수 있다. 상기 제2 임계치는 상기 제1 임계치보다 큰 값이다.
또 다른 일측에 따르면, 적어도 하나의 프로세서를 포함하는 영상 처리 장치의 영상 처리 방법이 제공된다. 여기서 상기 방법은: 렌더링 시점으로부터의 게더 레이 트레이싱을 수행하여 생성되는 복수 개의 게더 레이를 계층적으로 클러스터한 데이터 구조를 생성하는 단계; 및 상기 복수 개의 게더 레이 중 제1 게더 레이에 대한 포톤 게더링 결과가 제1 조건을 만족하지 못하는 경우, 상기 데이터 구조에서 상기 제1 게더 레이의 적어도 하나의 이웃 게더 레이인 제2 게더 레이를 상기 제1 게더 레이와 연관시키는 단계를 포함할 수 있다. 여기서 상기 연관시키는 단계는, 상기 데이터 구조에서 상기 제1 게더 레이의 상위 계층에 있는 부모 노드 중 상기 제1 조건을 만족하도록 하는 대표 노드를 결정하는 단계; 및 상기 대표 노드에 연관되는 리프 노드들에 대응하는 게더 레이들 간에 포톤 게더링을 공유시키도록 설정하는 단계를 포함할 수 있다.
예시적으로, 그러나 한정되지 않게, 상기 제1 조건은 상기 제1 게더 레이에 대한 포톤 게더링 결과와, 상기 데이터 구조에서 상기 제1 게더 레이와 이웃한 이웃 게더 레이의 포톤 게더링 결과의 차이가 제1 임계치 이하일 것이다. 이 실시예에서 상기 방법은, 상기 제1 게더 레이에 대한 포톤 게더링 결과가 제2 조건을 만족하지 못하는 경우 상기 제2 조건이 만족되도록 상기 데이터 구조를 업데이트 하는 단계를 더 포함할 수 있다.
도 1은 일실시예에 따른 영상 처리 장치를 도시한 블록도이다.
도 2는 3D 모델에 대한 포톤 레이 트레이싱 과정을 설명하기 위한 도면이다.
도 3은 게더 레이 트레이싱 과정을 설명하기 위한 도면이다.
도 4는 일실시예에 따른 데이터 구조를 도시한다.
도 5a 내지 5b는 게더 레이 간의 포톤 공유를 설명하기 위한 도면이다.
도 6은 일실시예에 따른 영상 처리 방법을 도시한 흐름도이다.
도 7은 일실시예에 따른 대표 노드 선정 과정을 도시하는 세부 흐름도이다.
이하에서, 실시예들을 첨부된 도면을 참조하여 상세하게 설명한다. 그러나, 권리범위는 이러한 실시예들에 의해 제한되거나 한정되지 않는다. 각 도면에 제시된 동일한 참조 부호는 동일한 부재를 나타낸다. 아래 설명에서 사용되는 용어는, 연관되는 기술 분야에서 일반적이고 보편적인 것으로 선택되었으나, 기술의 발달 및/또는 변화, 관례, 기술자의 선호 등에 따라 다른 용어가 있을 수 있다. 따라서, 아래 설명에서 사용되는 용어는 기술적 사상을 한정하는 것으로 이해되어서는 안 되며, 실시예들을 설명하기 위한 예시적 용어로 이해되어야 한다. 또한 특정한 경우는 출원인이 임의로 선정한 용어도 있으며, 이 경우 해당되는 설명 부분에서 상세한 그 의미를 기재할 것이다. 따라서 아래 설명에서 사용되는 용어는 단순한 용어의 명칭이 아닌 그 용어가 가지는 의미와 명세서 전반에 걸친 내용을 토대로 이해되어야 한다.
도 1은 일실시예에 따른 영상 처리 장치를 도시한 블록도이다. 장치(100)는 메모리(110) 및 처리부(120)를 포함한다. 포톤 맵핑 기법 수행을 위해, 게더 레이 트레이싱을 수행하고 측정 포인트들을 결정하면, 이 측정 포인트들 및/또는 게더 레이들은 계층적 데이터 구조로 생성된다(be built). 예시적으로 데이터 구조는 트리(tree) 구조일 수 있다. 이 데이터 구조에서 게더 레이들(또는 측정 포인트들)은 각각의 특성 정보 간의 유사성에 따라 클러스터되고 계층적으로 연관지어 진다(be associated hierarchically). 예시적으로 상기 특성 정보는, 각각의 게더 레이에 대응하는 오브젝트 포인트의 3차원 위치, 상기 오브젝트 포인트의 법선 방향, 상기 오브젝트 포인트에 대응하는 BRDF (Bidirectional reflectance distribution function) 중 적어도 하나를 포함할 수 있다. 데이터 구조에 대해서는 도 4를 참조하여 상세히 후술할 것이다. 메모리(110)는 이 데이터 구조를 적어도 일시적으로 저장하여 처리부(120) 및/또는 렌더러(미도시)에 제공할 수 있다.
처리부(120)는 복수 개의 게더 레이 중 제1 게더 레이에 대한 포톤 게더링(photon gathering) 결과가 제1 조건을 만족하지 못하면, 상기 데이터 구조에서 상기 제1 게더 레이를 제2 게더 레이와 연관시킬 수 있다. 이것은, 제1 게더 레이 (또는 그에 대응하는 제1 측정 포인트)를 제2 게더 레이(또는 그에 대응하는 제2 측정 포인트)와 서로 포톤을 공유시키는 것으로 이해될 수 있다. 다시 말해, 제1 게더 레이가 제2 게더 레이와 병합되는 경우, 각자의 포톤 게더링 결과는 서로에게 공유된다. 보다 상세히 후술하겠지만, 상기 제1 조건은 상기 제1 게더 레이에 대한 포톤 게더링 결과와, 상기 데이터 구조에서 상기 제1 게더 레이와 이웃한 이웃 게더 레이의 포톤 게더링 결과의 차이가 제1 임계치 이하일 때 만족되는 조건일 수 있다.
한편, 상기 제1 조건이 만족되지 않는 경우 게더 레이의 병합 대신 상기 데이터 구조의 리빌드(rebuild)가 수행될 수도 있다. 이러한 리빌드 또는 업데이트는 상기 제1 게더 레이에 대한 포톤 게더링 결과가 제2 조건을 만족하지 못하는 경우에 발생할 수 있다. 예시적으로, 그러나 한정되지 않게, 상기 제2 조건은 상기 제1 게더 레이에 대한 포톤 게더링 결과와, 상기 데이터 구조에서 상기 제1 게더 레이와 이웃한 이웃 게더 레이의 포톤 게더링 결과의 차이가 제2 임계치 이하일 때 만족되는 조건일 수 있다. 여기서 상기 제2 임계치는 상기 제1 임계치보다 큰 값이다. 도 2 이하를 참조하여 실시예들을 구체적으로 설명한다.
도 2는 3D 모델에 대한 포톤 레이 트레이싱 과정을 설명하기 위한 도면이다. 통상적으로 포톤 맵핑은 2 패스(2-Pass)로 수행되는데, 그 중 하나의 패스는 포톤 트레이싱 과정으로, 도시된 바와 같이 광원(210)으로부터 포톤들을 출발시켜서 3D 공간의 신(scene)에 분포시키는(distribute) 과정에 대응한다. 포톤들(231, 232, 233, 234, 235, 236, 237, 238 및 239 등)이 여러 진행 경로들(211, 212, 213, 214, 215 및 216)을 통해 분포되는 것이 확인 된다. 이러한 포톤의 분포 또는 포톤 트레이싱 과정에서 빛의 물리적인 진행인 반사 (경로 212, 213 등), 굴절 (경로 214 등)이 반영된다.
그리고 상기 2 패스 중 다른 하나의 패스는 게더 레이 트레이싱이라고 하는데, 영상을 렌더링할 시점(240)으로부터의 레이 트레이싱을 통해 포톤에 의한 칼라 값을 측정할 측정 포인트(measure point)를 찾는 것이다. 찾아진 측정 포인트들은 오브젝트 포인트들에서 시점 칼라 값 계산에 필요한 부분들에 대응하는데, 이 측정 포인트들에 대한 포톤들의 칼라 값 영향을 누적하여 시점에서의 칼라 값이 결정됨으로써 포톤 맵핑 기법에 의한 렌더링이 완료된다. 일반적으로 많이 사용되는 프로그래시브 포톤 맵핑(progressive photon mapping: PPM)의 경우, 먼저 시점(240)으로부터 레이 트레이싱을 수행하여 측정 포인트(measure point)를 찾는다. 그리고 도시된 바와 같이 포톤 트레이싱(photon tracing or distributing photons)을 통해 측정 포인트 주변의 포톤들을 모아(gather) 측정한다. 실시예에 따르면 포톤을 분포시키는 과정에서 렌더 결과가 노이지(noisy)하다면 분포되는 포톤의 수를 늘리는 대신 측정 포인트들 간에 포톤을 공유(share)하는 과정이 수행된다. 이 과정을 도 3 내지 도 5b를 통하여 상세히 설명한다.
도 3은 게더 레이 트레이싱 과정을 설명하기 위한 도면이다. 렌더링 시점(340)에 대응하는 영상의 각 픽셀로부터 출발한 레이들(361, 362, 363 등)을 트레이싱하면 오브젝트와 충돌이 되는 측정 포인트들(measurement point)(371, 372, 373)이 결정될 수 있다. 렌더링 과정에서는 이 측정 포인트들 각각에서 포톤이 수집된다(gathered). 여기서 포톤이 수집된다는 것은 광원(310)에서 분포되어(distributed from light source 310) 측정 포인트(이를 테면 371)에 도달하는 것으로 식별되는 포톤들 각각에 의한 칼라 값이 계산되고 누적된다는 것으로 이해될 수 있다. 측정 포인트(371)을 고려한다면 광원(310)으로부터 오브젝트(350)을 통과하여 포인트(371)에 도달한 포톤들, 다른 진행 경로(미도시)를 거쳐 반사되거나 굴절되어 포인트(371))에 도달한 포톤들 각각에 대한 칼라 값 영향이 계산되고 누적될 것이다.
일실시예에 따르면 이 게더 레이들(361, 362, 363 등) 및/또는 이들에 연관되는 측정 포인트들(371, 372, 373)이 계층적 데이터구조로 생성되어 관리된다(be built and managed as a hierarchical data structure). 이전의 통상적인 포톤 맵핑 기법에서는 측정 포인트들에서 포톤을 수집한 결과에 따른 영상이 노이지하면(noisy) 분포(distribute)시키는 포톤의 개수를 증가시켰다. 그러나 이렇게 포톤 분포를 증가시키는 과정이 신의 특성이나 측정 포인트에 대한 고려 없이 수행되기 때문에 경우에 따라는 불필요한 포톤의 분포(redundant distributing of photons)로 인한 연산양 증가도 있었다. 실시예에 따르면 분포시키는 포톤의 수를 증가시키는 것에 대신하여 및/또는 이를 보완하여 일부 측정 포인트들을 하나로 묶어서 포톤을 공유(share photons)하게 한다. 어떠한 측정 포인트 간에 포톤이 공유되는지를 계층적 데이터 구조로 미리 설정하여 두며, 이 내용이 도 4를 참조하여 설명된다.
도 4는 일실시예에 따른 데이터 구조를 도시한다. 데이터 구조는 렌더링 과정에서 생성되어(be built) 일시적으로 또는 지속적으로 메모리에 저장될 수 있으며, 실시예들에 따른 포톤 맵핑에 이용된다. 예시적으로, 그러나 한정되지 않게, 리프 노드들(411, 412, 413, 414, 415, 416, 417 및 418)은 게더 레이 트레이싱 과정에서 식별되는 게더 레이들 및/또는 게더 레이들의 측정 포인트들에 대응할 수 있다. 어느 한 게더 레이에 대해 측정 포인트는 식별 및 특정될 수 있으므로, 리프 노드가 게더 레이나 측정 포인트 중 어느 쪽이든 합리적이다. 따라서 실시예들을 설명하는 과정에서 리프 노드가 게더 레이 또는 측정 포인트 중 어느 한 가지인 것을 전제하여 설명하더라도 다른 쪽의 예를 배제하는 것은 아니다.
일실시예에 따르면 게더 레이 (또는 측정 포인트)에 대응하는 리프 노드들(411, 412, 413, 414, 415, 416, 417 및 418)은 측정 포인트 및/또는 게더 레이의 특성 정보에 따라 서로 클러스터링 된다. 클러스터링은 리프 노드들을 같은 부모 노드(parent node)로 연관시키는 것으로 이해될 수 있다. 도시된 데이터 구조에서, 리프 노드들 각각이, 특성 정보의 유사성에 따라 부모 노드들(421, 422, 423 및 424)로 연관되었고, 이 부모 노드들은 다시 조부모 노드들(grandparent nodes 431, 432)로 연관되었다. 이들은 루트 노드(441)에 의해 연관된다.
예시적으로, 그러나 한정되지 않게 상기 특성 정보는 측정 포인트들 간의 3차원 위치(position), 법선 방향(normal), 텍스처(texture), BRDF (Bidirectional reflectance distribution function) 중 적어도 하나를 포함할 수 있다. 게더 레이가 서로 인접하더라도 대응하는 측정 포인트의 3차원 위치가 매우 다르다면 서로 다른 오브젝트에 대응할 수 있어서 포톤을 공유하기에 부적절할 수 있다. 따라서 이러한 데이터 구조에 의해 서로 포톤을 공유할 수 있는 관계가 식별된다.
일실시예에 따르면 게더 레이 트레이싱을 통해 도시된 데이터 구조가 생성되고, 포톤 분포(photon distribution) 및 포톤 게더링이 수행된 결과에 대해 에러 메트릭(error metric)을 수행한다. 이를테면, 포톤 게더링(photon gathering) 결과로 칼라 값들이 생성된 후에 서로 이웃한 리프 노드들(411 및 412) 간의 칼라 값 차이를 비교한다. 이들 리프 노드들은 서로 인접하고 텍스처(texture)와 BRDF 등이 비슷한 포인트이므로 포톤 맵핑 후 칼라 값 차이가 크지 않은 것이 합리적이다. 따라서 이들 사이의 칼라 값 차이가 제1 임계치(threshold) 이하일 조건(제1 조건)을 만족하지 못한다면 이들 리프 노드들에 분포된 포톤이 충분하지 못하여 결과가 노이지한 것으로 이해될 수 있다. 이러한 경우, 일실시예에 따른 영상 처리 장치는 리프 노드들(411 및 412)을 별도로 구분하지 않고 이들을 대표할 수 있는 부모 노드(421)을 대표 노드(representative node)로 결정한다. 부모 노드(421)에 속하는 리프 노드들(411 및 412) 전체에 분포된 포톤들을 이들 각각에 연관된 게더 레이에 모두 연관시킨다. 그리고 칼라 값을 게더 레이들 양쪽 모두에 공유한다. 만약 부모 노드(421)를 대표 노드로 결정하더라도 상기 제1 조건을 만족하지 못하면 다시 계층적인 탐색을 통해 조부모 노드(431)를 대표 노드로 결정하였을 것이다. 도시된 노드(432)는 그렇게 하여 리프 노드들(415, 416, 417 및 418)의 대표 노드로 결정된 것이다. 경우에 따라 리프 노드들 단에서 이러한 병합(merging or sharing photons) 없이 제1 조건이 만족되는 경우는 리프 노드들(413, 414) 자체가 대표 노드로 취급되는 것이다.
그런데, 경우에 따라서는 도시된 데이터 구조 자체가 업데이트 되어야 하는 경우가 있다. 예를 들어 두 개의 리프 노드들에 대한 칼라 값 차이가 제2 임계치 이하일 조건(제2 조건)을 만족하지 못한다면 데이터 구조에서 두 리프 노드는 같은 부모로 묶이지 않아야 하는 것일 수 있다. 여기서 제2 임계치는 상기 제1 임계치보다 훨씬 큰 값일 수 있다. 특성 정보에 따라 서로 인접하고 유사한 것으로 분류된 측정 포인트들 또는 게더 레이들이 실제로는 서로 다른 오브젝트이거나 방향이 전혀 다른 등으로 칼라 값이 다르다면, 이것은 분포된 포톤이 부족해서 생기는 노이즈라기 보다는 측정 포인트 자체의 칼라 값이 다른 것일 확률이 크기 때문이다. 따라서 이러한 경우는 데이터 구조의 업데이트가 필요하므로 특성 정보를 다시 분석하여 한 쪽의 리프 노드를 분리하여 다른 부모 노드로 옮길 수 있다. 상기한 에러 메트릭의 수행을 도 5a와 도 5b를 함께 참조하여 설명한다.
도 5a 내지 5b는 게더 레이 간의 포톤 공유를 설명하기 위한 도면이다. 기존의 포톤 맵핑 기법에 의하면 측정 포인트들(371, 372 및 373)에서 수집된(gathered) 포톤의 수에 관계 없이, 측정 포인트 기준으로 동일한 반경(radius)의 포톤을 수집하여 이용하였다. 그러나 실시예들에 따르면 수집되는 포톤의 수가 적은 측정 포인트들(372 및 373)을 병합하는 수퍼 포인트(530)가 결정될 수 있다. 측정 포인트의 관점에서는 복수 개의 측정 포인트들(372 및 373)이 병합되는 것인데, 도 4를 다시 참조하면 리프 노드들(411 및 412)를 대표하는 상위 계층의 대표 노드(421)이 생성되는 것으로 이해될 수 있다. 다시 말해, 리프 노드들(411 및 412) 각각을 측정 포인트들(372 및 373)에 대응시켜서 이해할 수 있다. 이러한 판단에서 상기 제1 조건에 의한 에러 메트릭이 수행될 수 있다. 에러 메트릭에 대해 상기한 예에 따르면, 측정 포인트(372)에서 수집된 포톤(511)에 의한 칼라 값과, 측정 포인트(373)에서 수집된 포톤들(521, 522)에 의한 칼라 값의 차이가 제1 임계치보다 크면 측정 포인트들(372 및 373)이 병합될 수 있다. 측정 포인트(371)의 경우 포톤 수가 충분히 분포되었기 때문에 노이지하지 않고 따라서 주변 포인트들과의 칼라 값 차이가 제1 임계치 미만일 수 있다. 그러면 측정 포인트(371)는 다른 포인트와 병합되지 않을 수 있다. 다시 말해, 측정 포인트(371)는 도 4에 도시된 리프 노드(413)에 대응할 수 있다.
한편, 포톤의 수집 결과 형성되는 칼라 값 차이가 아니라 각 측정 포인트에 분포된 포톤의 개수가 일정 개수 이상이 되도록 측정 포인트들을 병합하는 실시예도 가능하다. 다만, 경우에 따라서는 포톤의 수가 많지 않더라도 결과가 노이지하지 않아 그러한 처리를 하지 않는 것이 오히려 렌더링 품질에 도움이 될 수도 있다. 측정 포인트들을 많이 병합할수록, 다시 말해 도 4에서 대표 노드가 상위 계층의 노드로 선정될수록 렌더링 결과의 노이즈는 개선되나 값의 바이어스(bias) 문제가 있을 수 있다. 따라서 각 측정 포인트 마다 수집되는 포톤의 개수가 일정 기준 이상이 되도록 포인트 또는 게더 레이를 병합하는 것보다 결과 칼라 특성을 가지고 판단하는 것이 도움이 될 수 있다.
도 6은 일실시예에 따른 영상 처리 방법을 도시한 흐름도이다. 먼저 게더 레이 트레이싱을 수행해(610), 측정 포인트들을 결정(또는 탐색)한다. 측정 포인트가 결정되면 단계(620)에서 측정 포인트들 및/또는 게더 레이들에 대해 데이터 구조를 생성(build a data structure)한다. 이 데이터 구조는 계층화된 구조일 수 있다. 예시적으로 데이터 구조는 트리(tree) 구조일 수 있다. 데이터 구조에 대한 설명은 도 4를 참조하여 설명한 바와 같다.
그리고 단계(630)에서 포톤 트레이싱을 수행하는데, 이 과정에서 포톤 분포(photon distribution)이 수행되고 칼라 값이 결정될 수 있다. 첫 번째의 수행(the first iteration)은 최종 렌더 결과가 아닐 수 있다. 그리고 단계(640)에서 각 게더 레이 및/또는 각 측정 포인트들에서의 칼라 값을 주변 칼라 값과 비교하여 상술한 에러 메트릭을 수행한다. 이터래이티브한 수행을 통해 도 4에서 도시된 데이터 구조에서 최적의 대표 노드들 (도 4에서 검정색으로 표시된 노드들)이 결정된다. 그리고 이 대표 노드들을 통하여 도 5에서 설명한 바와 같이 측정 포인트들 간의 포톤 공유 및 병합에 의해 렌더링이 수행된다. 경우에 따라 이웃하는 측정 포인트 간의 칼라 값 차이가 너무 크다면 트리 업데이트(tree update or rebuild)를 수행할 수 있다. 이 과정과 관련하여 도 7을 참조하여 더 설명한다.
도 7은 일실시예에 따른 대표 노드 선정 과정을 도시하는 세부 흐름도이다. 단계(630)에서 이 전 이터래이션이 수행되면 이제 측정 포인트들에 대해 제1 조건을 만족하는 지의 여부가 판단된다(710). 도 4를 참조하여 설명한 바와 같이, 이 제1 조건은 이웃하는 노드들 사이의 게더된 포톤들에 의한 칼라 값 차이가 제1 임계치 이하일 조건일 수 있다. 제1 조건을 만족하지 못한다면 리프 노드들에 분포된 포톤이 충분하지 못하여 결과가 노이지한 것일 수 있으므로 노드 병합 또는 트리 구조의 리빌드가 수행될 수 있다. 단계(710)에서 제1 조건이 만족된다면 그 노드들은 노이지하지 않은 것으로 그 리프 노드들 자체에만 분포된 포톤들을 이용할 수 있으며, 단계(730)에서 리프 노드들 자체가 대표 노드로 될 수 있다.
다시 제1 조건이 만족되지 않는 경우로 돌아가 설명한다. 단계(720)에서 제2 조건의 만족 여부가 판단되는데, 도 4를 참조하여 설명한 바와 같이 이 제2 조건은 트리 리빌드를 수행해야 하는 경우를 고려한 과정이다. 이웃하는 노드들 사이의 칼라 값 차이가 제2 임계치 - 제2 임계치는 제1 임계치보다 큰 값임 - 이하일 조건(제2 조건)을 만족하지 못한다면 이 이웃하는 노드들은 서로 같은 부모로 묶이지 않아야 하는 것일 수 있다. 따라서, 이 경우는 트리 리빌드가 수행되기 위해 단계(620)으로 돌아갈 수 있다. 제2 조건은 만족되는 경우라면 단계(720)에서 단계(730)으로 진행할 것이다. 이상의 실시예들에 따라, 계층적으로 연관되는 측정 포인트 및/또는 게더 레이들 간에, 분포된 포톤(distributed photon)을 적응적으로 공유하는 것이 설명되었다. 이러한 과정에 의해 추가적인 포톤 추가 및 트레이싱 과정 없이도 포톤 맵핑의 품질이 크게 개선될 수 있다. 나아가, 이러한 실시예들 때문에 추가되는 연산양은 포톤을 추가적으로 분포시키는 것에 비해 작으므로 연산 자원의 효율적 활용에도 유리하다.
이상에서 설명된 실시예들은 하드웨어 구성요소, 소프트웨어 구성요소, 및/또는 하드웨어 구성요소 및 소프트웨어 구성요소의 조합으로 구현될 수 있다. 예를 들어, 실시예들에서 설명된 장치, 방법 및 구성요소는, 예를 들어, 프로세서, 콘트롤러, ALU(arithmetic logic unit), 디지털 신호 프로세서(digital signal processor), 마이크로컴퓨터, FPGA(field programmable gate array), PLU(programmable logic unit), 마이크로프로세서, 또는 명령(instruction)을 실행하고 응답할 수 있는 다른 어떠한 장치와 같이, 하나 이상의 범용 컴퓨터 또는 특수 목적 컴퓨터를 이용하여 구현될 수 있다. 처리 장치는 운영 체제(OS) 및 상기 운영 체제 상에서 수행되는 하나 이상의 소프트웨어 애플리케이션을 수행할 수 있다. 또한, 처리 장치는 소프트웨어의 실행에 응답하여, 데이터를 접근, 저장, 조작, 처리 및 생성할 수도 있다. 이해의 편의를 위하여, 처리 장치는 하나가 사용되는 것으로 설명된 경우도 있지만, 해당 기술분야에서 통상의 지식을 가진 자는, 처리 장치가 복수 개의 처리 요소(processing element) 및/또는 복수 유형의 처리 요소를 포함할 수 있음을 알 수 있다. 예를 들어, 처리 장치는 복수 개의 프로세서 또는 하나의 프로세서 및 하나의 콘트롤러를 포함할 수 있다. 또한, 병렬 프로세서(parallel processor)와 같은, 다른 처리 구성(processing configuration)도 가능하다.
소프트웨어는 컴퓨터 프로그램(computer program), 코드(code), 명령(instruction), 또는 이들 중 하나 이상의 조합을 포함할 수 있으며, 원하는 대로 동작하도록 처리 장치를 구성하거나 독립적으로 또는 결합적으로(collectively) 처리 장치를 명령할 수 있다. 소프트웨어 및/또는 데이터는, 처리 장치에 의하여 해석되거나 처리 장치에 명령 또는 데이터를 제공하기 위하여, 어떤 유형의 기계, 구성요소(component), 물리적 장치, 가상 장치(virtual equipment), 컴퓨터 저장 매체 또는 장치, 또는 전송되는 신호 파(signal wave)에 영구적으로, 또는 일시적으로 구체화(embody)될 수 있다. 소프트웨어는 네트워크로 연결된 컴퓨터 시스템 상에 분산되어서, 분산된 방법으로 저장되거나 실행될 수도 있다. 소프트웨어 및 데이터는 하나 이상의 컴퓨터 판독 가능 기록 매체에 저장될 수 있다.
실시예에 따른 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 실시예를 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 실시예의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 실시예들이 비록 한정된 실시예와 도면에 의해 설명되었으나, 해당 기술분야에서 통상의 지식을 가진 자라면 상기의 기재로부터 다양한 수정 및 변형이 가능하다. 예를 들어, 설명된 기술들이 설명된 방법과 다른 순서로 수행되거나, 및/또는 설명된 시스템, 구조, 장치, 회로 등의 구성요소들이 설명된 방법과 다른 형태로 결합 또는 조합되거나, 다른 구성요소 또는 균등물에 의하여 대치되거나 치환되더라도 적절한 결과가 달성될 수 있다. 그러므로, 다른 구현들, 다른 실시예들 및 특허청구범위와 균등한 것들도 후술하는 특허청구범위의 범위에 속한다.

Claims (17)

  1. 렌더링 시점으로부터의 게더 레이 트레이싱으로 생성되는 복수 개의 게더 레이를 각각의 특성 정보 간의 유사성에 따라 클러스터하고 계층적 연결 관계를 설정하여 생성한 데이터 구조를 저장하는 메모리; 및
    상기 복수 개의 게더 레이 중 제1 게더 레이에 대한 포톤 게더링 결과가 제1 조건을 만족하지 못하는 경우, 상기 데이터 구조에서 상기 제1 게더 레이와 연관되는 제2 게더 레이에 대한 포톤 게더링 결과를 상기 제1 게더 레이에 대한 포톤 게더링에 병합하는 처리부
    를 포함하고,
    상기 제1 조건은 상기 제1 게더 레이에 대한 포톤 게더링 결과와, 상기 데이터 구조에서 상기 제1 게더 레이와 이웃한 이웃 게더 레이의 포톤 게더링 결과의 차이가 제1 임계치 이하인
    영상 처리 장치.
  2. 삭제
  3. 제1항에 있어서,
    상기 특성 정보는, 각각의 게더 레이에 대응하는 오브젝트 포인트의 3차원 위치, 상기 오브젝트 포인트의 법선 방향, 상기 오브젝트 포인트에 대응하는 BRDF (Bidirectional reflectance distribution function) 중 적어도 하나를 포함하는 영상 처리 장치.
  4. 제1항에 있어서,
    상기 제2 게더 레이는 상기 병합에 의해 상기 제1 조건이 만족되도록 하는 적어도 하나의 이웃한 게더 레이를 포함하는 영상 처리 장치.
  5. 삭제
  6. 제1항에 있어서,
    상기 제1 게더 레이에 대한 포톤 게더링 결과가 제2 조건을 만족하지 못하는 경우, 상기 처리부는 상기 제2 조건이 만족되도록 상기 데이터 구조를 업데이트 하는 영상 처리 장치.
  7. 제6항에 있어서,
    상기 제2 조건은 상기 제1 게더 레이에 대한 포톤 게더링 결과와, 상기 데이터 구조에서 상기 제1 게더 레이와 이웃한 이웃 게더 레이의 포톤 게더링 결과의 차이가 제2 임계치 이하인 것 - 상기 제2 임계치는 상기 제1 임계치보다 큼 - 인 영상 처리 장치.
  8. 렌더링 시점으로부터의 게더 레이 트레이싱으로 생성되는 복수 개의 게더 레이를, 특성 정보 간의 유사성에 따라 클러스터하고 계층적 연결 관계를 설정하여 생성한 데이터 구조를 저장하는 메모리; 및
    상기 복수 개의 게더 레이 중 제1 게더 레이에 대한 포톤 게더링 결과가 제1 조건을 만족하지 못하는 경우, 상기 데이터 구조에서 상기 제1 게더 레이의 상위 계층에 있는 부모 노드 중 상기 제1 조건을 만족하도록 하는 대표 노드를 결정하는 처리부
    를 포함하고,
    상기 제1 조건은 상기 제1 게더 레이에 대한 포톤 게더링 결과와, 상기 데이터 구조에서 상기 제1 게더 레이와 이웃한 이웃 게더 레이의 포톤 게더링 결과의 차이가 제1 임계치 이하인
    영상 처리 장치.
  9. 제8항에 있어서,
    상기 대표 노드는 상기 대표 노드에 연관되는 리프 노드들에 대응하는 게더 레이들 간에 포톤 게더링을 공유하는 경우 상기 제1 조건이 만족되도록 하는 노드인 영상 처리 장치.
  10. 삭제
  11. 제8항에 있어서,
    상기 제1 게더 레이에 대한 포톤 게더링 결과가 제2 조건을 만족하지 못하는 경우, 상기 처리부는 상기 제2 조건이 만족되도록 상기 데이터 구조를 업데이트 하는 영상 처리 장치.
  12. 제11항에 있어서,
    상기 제2 조건은 상기 제1 게더 레이에 대한 포톤 게더링 결과와, 상기 데이터 구조에서 상기 제1 게더 레이와 이웃한 이웃 게더 레이의 포톤 게더링 결과의 차이가 제2 임계치 이하인 것 - 상기 제2 임계치는 상기 제1 임계치보다 큼 - 인 영상 처리 장치.
  13. 적어도 하나의 프로세서를 포함하는 영상 처리 장치의 영상 처리 방법에 있어서, 상기 방법은:
    렌더링 시점으로부터의 게더 레이 트레이싱을 수행하여 생성되는 복수 개의 게더 레이를 각각의 특성 정보 간의 유사성에 따라 클러스터하고 계층적 연결 관계를 설정하여 생성한 데이터 구조를 생성하는 단계; 및
    상기 복수 개의 게더 레이 중 제1 게더 레이에 대한 포톤 게더링 결과가 제1 조건을 만족하지 못하는 경우, 상기 데이터 구조에서 상기 제1 게더 레이의 적어도 하나의 이웃 게더 레이인 제2 게더 레이를 상기 제1 게더 레이와 연관시키는 단계
    를 포함하고,
    상기 제1 조건은 상기 제1 게더 레이에 대한 포톤 게더링 결과와, 상기 데이터 구조에서 상기 제1 게더 레이와 이웃한 이웃 게더 레이의 포톤 게더링 결과의 차이가 제1 임계치 이하인
    영상 처리 방법.
  14. 제13항에 있어서,
    상기 연관시키는 단계는,
    상기 데이터 구조에서 상기 제1 게더 레이의 상위 계층에 있는 부모 노드 중 상기 제1 조건을 만족하도록 하는 대표 노드를 결정하는 단계; 및
    상기 대표 노드에 연관되는 리프 노드들에 대응하는 게더 레이들 간에 포톤 게더링을 공유시키도록 설정하는 단계
    를 포함하는 영상 처리 방법.
  15. 삭제
  16. 제13항에 있어서,
    상기 제1 게더 레이에 대한 포톤 게더링 결과가 제2 조건을 만족하지 못하는 경우, 상기 제2 조건이 만족되도록 상기 데이터 구조를 업데이트 하는 단계
    를 더 포함하는 영상 처리 방법.
  17. 제13항, 제14항 및 제16항 중 어느 한 항의 영상 처리 방법을 상기 영상 처리 장치가 수행하도록 하는 프로그램을 수록한 컴퓨터 판독 가능한 기록매체.
KR1020140187323A 2014-12-23 2014-12-23 영상 처리 장치 및 방법 KR102282896B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020140187323A KR102282896B1 (ko) 2014-12-23 2014-12-23 영상 처리 장치 및 방법
US14/979,162 US9922444B2 (en) 2014-12-23 2015-12-22 Image processing apparatus and method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020140187323A KR102282896B1 (ko) 2014-12-23 2014-12-23 영상 처리 장치 및 방법

Publications (2)

Publication Number Publication Date
KR20160076803A KR20160076803A (ko) 2016-07-01
KR102282896B1 true KR102282896B1 (ko) 2021-07-29

Family

ID=56164844

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020140187323A KR102282896B1 (ko) 2014-12-23 2014-12-23 영상 처리 장치 및 방법

Country Status (2)

Country Link
US (1) US9922444B2 (ko)
KR (1) KR102282896B1 (ko)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11341110B2 (en) * 2016-03-21 2022-05-24 Imagination Technologies Limited Hierarchy merging
CN106251394B (zh) * 2016-07-14 2018-11-30 山东大学 一种基于光子映射的分布式全局光照计算方法

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7990380B2 (en) 2004-09-30 2011-08-02 Intel Corporation Diffuse photon map decomposition for parallelization of global illumination algorithm
US7864174B2 (en) * 2006-08-24 2011-01-04 International Business Machines Corporation Methods and systems for reducing the number of rays passed between processing elements in a distributed ray tracing system
US20080143720A1 (en) * 2006-12-13 2008-06-19 Autodesk, Inc. Method for rendering global illumination on a graphics processing unit
WO2009117691A2 (en) 2008-03-21 2009-09-24 Caustic Graphics, Inc Architectures for parallelized intersection testing and shading for ray-tracing rendering
US7937245B2 (en) 2008-04-02 2011-05-03 Dreamworks Animation Llc Rendering of subsurface scattering effects in translucent objects
KR101475779B1 (ko) * 2008-06-02 2014-12-23 삼성전자주식회사 3d 영상 처리 방법
US8928658B2 (en) 2008-09-30 2015-01-06 Microsoft Corporation Photon mapping on graphics hardware using kd-trees
US8619078B2 (en) 2010-05-21 2013-12-31 International Business Machines Corporation Parallelized ray tracing
KR101030352B1 (ko) 2010-07-30 2011-04-20 인하대학교 산학협력단 포톤 탐사법을 이용한 개선된 점진적 포톤 매핑 방법
US9053140B2 (en) * 2012-02-03 2015-06-09 Apple Inc. Enhanced B-trees with record merging
KR102110819B1 (ko) * 2013-05-08 2020-05-15 삼성전자주식회사 영상 처리 장치 및 방법

Also Published As

Publication number Publication date
US9922444B2 (en) 2018-03-20
KR20160076803A (ko) 2016-07-01
US20160189418A1 (en) 2016-06-30

Similar Documents

Publication Publication Date Title
US11861786B2 (en) Determining lighting information for rendering a scene in computer graphics using illumination point sampling
EP3435336B1 (en) Hybrid hierarchy for ray tracing
TWI546770B (zh) 圖形處理單元中3d加速結構之完全並列原地建構
WO2020098531A1 (zh) 对象的加载方法和装置、存储介质、电子装置
US9619921B2 (en) Method and apparatus for performing ray tracing for rendering image
JP7184503B2 (ja) 光線バンドルの光線に対する差分データを決定する方法及びグラフィックス処理ユニット
US20180330190A1 (en) Anomaly detection using non-target clustering
US10083264B1 (en) Systems and methods for implicit surface modeling
KR102282896B1 (ko) 영상 처리 장치 및 방법
CN115423993A (zh) 一种基于三维gis的分层分户单体化方法及系统
US10719982B2 (en) Surface extrction method, apparatus, and non-transitory computer readable storage medium thereof
US8878848B2 (en) Method and device for snapping normals to create fair 3D surfaces from edge curves
KR102039244B1 (ko) 반딧불 알고리즘을 이용한 데이터 클러스터링 방법 및 시스템
US20150084957A1 (en) Method and apparatus for routing data and reconfiguring rendering unit
KR102209526B1 (ko) 병렬 연산을 통한 단백질-리간드 상호 작용 분석 방법 및 장치
US20130293543A1 (en) Image processing apparatus and method
KR20120050642A (ko) 초기 클러스터링을 사용한 병합식 계층적 클러스터링 방법 및 장치
KR102570584B1 (ko) Bvh 트리를 구성하기 위한 방법 및 시스템
US20240233243A1 (en) Determining lighting information for rendering a scene in computer graphics using illumination point sampling
KR102220158B1 (ko) 연결 그래프(Connected graph)에서 정점(Vertex) 랜덤 위치 초기화와 간선길이 바이너리 서치를 활용한 실시간 간선길이 보정 및 시각화 방법 및 시스템
US11487781B2 (en) Visualizing sparse multi-dimensional data
CN117576344A (zh) 三维网格模型的生成方法及装置、设备、存储介质

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