KR101711060B1 - 레이 캐스팅의 가속화 방법 및 장치 - Google Patents

레이 캐스팅의 가속화 방법 및 장치 Download PDF

Info

Publication number
KR101711060B1
KR101711060B1 KR1020150076450A KR20150076450A KR101711060B1 KR 101711060 B1 KR101711060 B1 KR 101711060B1 KR 1020150076450 A KR1020150076450 A KR 1020150076450A KR 20150076450 A KR20150076450 A KR 20150076450A KR 101711060 B1 KR101711060 B1 KR 101711060B1
Authority
KR
South Korea
Prior art keywords
ray
pixels
rays
volume
length information
Prior art date
Application number
KR1020150076450A
Other languages
English (en)
Other versions
KR20160140169A (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 KR1020150076450A priority Critical patent/KR101711060B1/ko
Priority to US15/168,988 priority patent/US10127710B2/en
Publication of KR20160140169A publication Critical patent/KR20160140169A/ko
Application granted granted Critical
Publication of KR101711060B1 publication Critical patent/KR101711060B1/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/08Volume rendering
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T15/003D [Three Dimensional] image rendering
    • G06T15/10Geometric effects
    • G06T15/40Hidden part removal
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/41Medical
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/52Parallel processing

Landscapes

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

Abstract

본 발명은 레이 캐스팅의 가속화 방법 및 장치에 관한 것으로서, 보다 상세하게는 볼륨 렌더링의 속도를 향상시킬 수 있는 레이 캐스팅의 가속화 방법 및 장치에 관한 것이다.
이러한 목적을 달성하기 위하여, 본 발명의 일 실시예에 따른 레이 캐스팅의 가속화 장치는 뷰 포인트에 대응하는 2차원 영상(scene)의 픽셀 각각에 레이 캐스팅(Ray-Casting)을 적용하기 위하여 상기 픽셀 각각에 대응하는 레이(ray) 각각이 유효한(effective) 볼륨과 교차하는 구간의 길이 정보를 계산하는 계산부, 상기 레이 각각이 상기 유효한 볼륨과 교차하는 길이 정보에 기초하여 상기 레이 각각을 정렬하는 정렬부, 상기 정렬된 레이 각각을 상기 정렬된 순서에 따라 병렬 멀티 프로세서 구조의 스레드(thread) 그룹에 할당하는 할당부, 및 상기 할당된 스레드 그룹이 상기 정렬된 레이 각각에 대한 레이 캐스팅을 실행하도록 상기 할당된 스레드 그룹에 제어 명령을 전달하는 실행 제어부를 포함할 수 있다.

Description

레이 캐스팅의 가속화 방법 및 장치 {ACCELERATION METHOD AND APPARATUS OF RAY-CASTING}
본 발명은 레이 캐스팅의 가속화 방법 및 장치에 관한 것으로서, 보다 상세하게는 볼륨 렌더링의 속도를 향상시킬 수 있는 레이 캐스팅의 가속화 방법 및 장치에 관한 것이다.
본 발명은 산업통신자원부 및 한국산업기술평가관리원의 로봇산업융합핵심기술개발사업의 일환으로 수행한 연구로부터 도출된 것이다[과제관리번호:10041618, 과제명: 방사선 피폭 저감 및 시술 정확도 향상을 위한 복부 및 흉부 1cm급 병소 생검 및 치료용 바늘 삽입형 영상중재시술 로봇시스템 개발].
일반적으로 3차원 의료영상 시스템은 의료 데이터를 다양한 기법을 사용하여 진단에 유용한 시각적 정보로 제공하는 것을 의미하며, 이때, 의료 데이터는 단층촬영장치 (CT: Computerized Tomography)나 자기공명장치 (MR: Magnetic Resonance) 등에서 얻어진 중첩된 단면 형태의 인체 장기 정보를 3차원 형태로 재구성한 것을 말한다.
최근 CT나 MR과 같은 의료영상 장비의 기술이 비약적으로 발전함에 따라 짧은 시간에 정교한 영상을 획득할 수 있게 되었다. 실제로 병원에서는 하나의 검사당 수백에서 수천 장의 영상이 생성되고 있다. 그런데 이러한 대량의 영상 정보는 유용한 진단 정보를 제공하지만, 기존의 2차원 영상을 읽는 방식처럼 한 장씩 판독하려면 많은 시간과 노력이 필요하다.
이러한 문제를 해결하기 위해 개발된 것이 3차원 의료영상 시스템이며, 이는 직접 볼륨 가시화(DVR: Direct Volume Rendering) 기법, 최대 휘소 투영(MIP: Maximum Intensity Projection) 가시화 기법, 다면 재구성(MPR: Multi Planar Reformatting) 기법 등을 이용하여 3차원 의료영상 데이터를 진단에 유용한 시각적 정보로 가시화하고 있다.
통상적인 3차원 의료영상 가시화 기법은, 시점, 시선 방향, 출력 영상을 담는 평면, 그리고 대상 객체로 이루어진 모델을 기반으로 이루어지며, 이는 도 1을 참조하여 설명할 수 있다.
도 1은 일반적인 3차원 가시화 방법을 설명하기 위한 도면이다. 도 1을 참조하면, 일반적인 3차원 가시화 방법의 경우, 출력 영상(2)의 한 픽셀과 시점(1)을 연결한 직선을 광선(Ray, 3)이라 부르는데, 이 광선(3)이 볼륨 데이터(5)를 관통하면서 각 지점을 샘플링하여 얻은 밀도에 여러 기법을 적용함으로써 최종 영상을 만들게 된다.
이때, 3차원 가시화 방법 중 하나인 최대 휘소 투영(MIP) 가시화 기법은 광선을 따라 진행하면서 최대 밀도를 찾는 방법을 말한다 그런데, MIP 기법은 밀도의 최대값만을 고려하여 영상을 가시화하기 때문에, 직접 볼륨 가시화(DVR)에 따른 영상과는 달리 깊이 정보가 손실되는 특징이 있어, 사용자가 관찰 방향을 수시로 변경하여 깊이를 추정해야 하는 단점이 있다.
이를 극복하기 위하여, 잦은 관찰 방향의 변화에 신속하게 대응할 수 있도록, 빠른 속도로 MIP 영상을 생성하려는 연구가 다양하게 진행되고 있다. 그 예로는 최종 출력 영상에 반영되지 않을 것으로 판단되는 의료 데이터의 불필요한 영역을 판단하여 계산을 건너뛰는 이른바 도약 기법이 존재한다.
그런데, 도약 기법은 화질에 영향을 주지 않고 최종 영상 생성을 가속화 할 수 있는 장점이 있지만, 불필요한 영역을 검출하는데 필요한 시간과 불필요한 영역 정보를 저장하는데 필요한 추가 메모리 용량을 고려하여야 하는 단점이 있다.
예를 들어, 의료영상을 구성하는 전체 데이터를 밀도 값에 대한 내림차순으로 정렬한 후 높은 값부터 가시화하는 방법은, 정렬 시간이 많이 소요되고 추가적인 메모리 소모량이 커지게 되는 문제가 있다.
한편, 한국등록특허 제10-1075014호 "병렬 광선투사법과 공간 도약을 이용한 엠아이피 가시화의 가속화 방법"에는 3차원 의료영상장비에 의해 촬영된 다수의 의료영상을 진단에 유용한 시각적 정보로 만드는 MIP 가시화를 가속화하는 방법에 관한 것으로서, 특히 광선 투사법과 블록 처리법을 병렬화한 후 광선값과 블록별 최대값을 비교하면서 블록을 이동하는 방식을 통해 전처리 시간을 줄임과 아울러, 범용 하드웨어만으로도 MIP 영상을 빠르게 얻을 수 있도록 한 광선 투사법을 이용한 MIP 가시화의 가속화 방법을 제시하고 있다.
상기 선행 기술은 다수의 복셀을 묶어 블록으로 만든 후, 블록별 밝기와 최대값을 구해, 현재 계산중인 ray에서 얻어진 최대값과 비교하여 블록단위로 도약하여 시간을 줄이는 것에 대한 발명이며, 하나의 ray에서 최대값을 구할 때 블록단위로 도약하여 ray 내에서의 계산량을 감소하는 데 목표를 두고 있을 뿐, 여러 개의 ray 들의 연산 순서에 대해서는 고려하지 않았다.
한국등록특허 제10-1075014호 (등록일: 2011.10.13)
본 발명은 레이 캐스팅의 가속화 방법 및 장치에 관한 것으로서, 보다 상세하게는 볼륨 렌더링의 속도를 향상시킬 수 있는 레이 캐스팅의 가속화 방법 및 장치를 제공하려는 것을 목적으로 한다.
본 발명은 그래픽 처리 장치(GPU, Graphics Processing Unit), 멀티 코어(multi-core) 또는 병렬 처리(parallel processing) 환경에서 레이 캐스팅을 이용한 렌더링 속도를 향상시킬 수 있는 기술을 제공하려는 것을 목적으로 한다.
본 발명은 유사한 연산 시간을 필요로 하는 레이들의 출력 픽셀 블록을 하나의 스레드(thread) 그룹에 할당하여 레이 캐스팅을 가속화하려는 것을 목적으로 한다.
본 발명은 CUDA(Compute Unified Device Architecture) 등의 GPGPU(General-Purpose computing on Graphics Processing Units, GPU 상의 범용 계산) 디바이스에서의 블록(block)별 작업 시간(work time)을 최소화하여 전체 작업 시간을 줄이려는 것을 목적으로 한다.
본 발명은 의료 영상 분야에서 적용 가능한 렌더링 기술을 제공하려는 것을 목적으로 한다.
이러한 목적을 달성하기 위하여 본 발명의 일 실시예에 따른 레이 캐스팅의 가속화 방법은 뷰 포인트에 대응하는 2차원 영상(scene)의 픽셀 각각에 레이 캐스팅(Ray-Casting)을 적용하기 위하여 상기 픽셀 각각에 대응하는 레이(ray) 각각이 유효한(effective) 볼륨과 교차하는 구간의 길이 정보를 계산하는 단계, 상기 레이 각각이 상기 유효한 볼륨과 교차하는 길이 정보에 기초하여 상기 레이 각각을 정렬하는 단계; 및 상기 정렬된 레이 각각을 상기 정렬된 순서에 따라 병렬 멀티 프로세서 구조의 스레드(thread) 그룹에 할당하는 단계를 포함할 수 있다.
또한, 본 발명의 방법은 상기 할당된 스레드 그룹에 의하여 상기 정렬된 레이 각각에 대한 레이 캐스팅을 실행하는 단계, 상기 정렬된 레이 각각에 대한 레이 캐스팅의 결과를 상기 2차원 영상의 픽셀들 중 상기 정렬된 레이 각각에 대응하는 픽셀 각각에 매핑하는 단계, 및 상기 매핑된 픽셀 영상을 조합하여 상기 2차원 영상을 생성하는 단계를 더 포함할 수 있다.
이때, 상기 레이 각각이 상기 유효한 볼륨과 교차하는 구간의 길이 정보를 계산하는 단계는 상기 레이 각각이 제1 방향에서 상기 유효한 볼륨과 교차하는 제1 교차점을 획득하는 단계, 상기 레이 각각이 제2 방향에서 상기 유효한 볼륨과 교차하는 제2 교차점을 획득하는 단계, 및 상기 레이 각각에 대하여 상기 제1 교차점과 상기 제2 교차점 간의 거리를 상기 길이 정보로서 생성하는 단계를 포함할 수 있다. 또한, 상기 레이 각각이 상기 유효한 볼륨과 교차하는 구간의 길이 정보를 계산하는 단계는 상기 레이 각각이 상기 유효한 볼륨 내에서 교차하는 유효한 복셀의 수를 카운트하는 단계, 및 상기 레이 각각에 대하여 카운트된 유효한 복셀의 수를 상기 길이 정보로서 생성하는 단계를 포함할 수 있으며, 또한, 상기 레이 각각이 교차하는 복셀들 중 밝기값이 기준 조건을 충족하는 복셀을 상기 유효한 볼륨으로서 생성하는 단계를 포함할 수 있다.
또한, 본 발명의 다른 실시예에 따른 레이 캐스팅의 가속화 방법은 전체 볼륨 데이터로부터 유효한(effective) 볼륨의 표면에 대한 정보를 수집하여 표면 모델(surface model)을 생성하는 단계, 뷰 포인트에 대응하는 2차원 영상(scene)의 픽셀 각각에 상기 표면 모델에 대한 레이 캐스팅(Ray-Casting)을 적용하기 위하여, 제1 방향과 제2 방향 각각에 대하여 상기 픽셀 각각의 상기 표면 모델에 대한 깊이 정보(depth information)를 획득하는 단계, 및 상기 제1 방향과 상기 제2 방향 각각에 대하여 획득된 상기 깊이 정보를 이용하여 레이 캐스팅을 적용하기 위한 상기 픽셀 각각의 유효 구간의 길이 정보를 계산하는 단계를 포함할 수 있다.
이때, 상기 표면 모델(surface model)을 생성하는 단계는 상기 전체 볼륨 데이터를 복수의 복셀들을 포함하는 다수의 블록들로 분할하는 단계, 상기 분할된 다수의 블록들 중 기준 조건을 충족하는 유효한 블록의 표면을 기준 방향 각각에 대하여 식별하는 단계, 및 상기 식별된 상기 유효한 블록의 표면에 대한 정보를 수집하여 상기 표면 모델(surface model)을 생성하는 단계를 포함할 수 있다.
또한, 상기 픽셀 각각의 유효 구간의 길이 정보를 계산하는 단계는 상기 제1 방향에 대하여 획득된 제1 깊이 정보, 상기 제2 방향에 대하여 획득된 제2 깊이 정보 및 상기 뷰 포인트에 의하여 결정되는 기준 길이를 반영하여 상기 픽셀 각각의 유효 구간의 길이 정보를 계산할 수 있으며, 이때, 상기 기준 길이는 전체 볼륨 데이터 내에서 상기 픽셀 각각이 위치하는 상대적 위치 정보와 상기 뷰 포인트를 반영하여 결정될 수 있다.
또한, 상기 픽셀 각각의 상기 표면 모델에 대한 깊이 정보를 획득하는 단계는 병렬적으로 연산이 가능한 다수의 멀티 프로세서 코어 각각에 상기 픽셀 각각을 할당함으로써 병렬적으로 실행될 수 있다.
한편, 본 발명의 일 실시예에 따른 레이 캐스팅의 가속화 장치는 뷰 포인트에 대응하는 2차원 영상(scene)의 픽셀 각각에 레이 캐스팅(Ray-Casting)을 적용하기 위하여 상기 픽셀 각각에 대응하는 레이(ray) 각각이 유효한(effective) 볼륨과 교차하는 구간의 길이 정보를 계산하는 계산부, 상기 레이 각각이 상기 유효한 볼륨과 교차하는 길이 정보에 기초하여 상기 레이 각각을 정렬하는 정렬부, 상기 정렬된 레이 각각을 상기 정렬된 순서에 따라 병렬 멀티 프로세서 구조의 스레드(thread) 그룹에 할당하는 할당부, 및 상기 할당된 스레드 그룹이 상기 정렬된 레이 각각에 대한 레이 캐스팅을 실행하도록 상기 할당된 스레드 그룹에 제어 명령을 전달하는 실행 제어부를 포함할 수 있다.
이때, 상기 계산부는 상기 레이 각각이 제1 방향에서 상기 유효한 볼륨과 교차하는 제1 교차점을 획득하고, 상기 레이 각각이 제2 방향에서 상기 유효한 볼륨과 교차하는 제2 교차점을 획득하며, 상기 레이 각각에 대하여 상기 제1 교차점과 상기 제2 교차점 간의 거리를 상기 길이 정보로서 생성할 수 있으며, 또한, 상기 계산부는 상기 레이 각각이 교차하는 복셀들 중 밝기값이 기준 조건을 충족하는 복셀을 상기 유효한 볼륨으로서 생성할 수 있다.
또한, 본 발명의 다른 실시예에 따른 레이 캐스팅의 가속화 장치는 전체 볼륨 데이터로부터 유효한(effective) 볼륨의 표면에 대한 정보를 수집하여 표면 모델(surface model)을 생성하는 표본 모델 생성부, 뷰 포인트에 대응하는 2차원 영상(scene)의 픽셀 각각에 상기 표면 모델에 대한 레이 캐스팅(Ray-Casting)을 적용하기 위하여, 제1 방향과 제2 방향 각각에 대하여 상기 픽셀 각각의 상기 표면 모델에 대한 깊이 정보(depth information)를 획득하는 획득부, 및 상기 제1 방향과 상기 제2 방향 각각에 대하여 획득된 상기 깊이 정보를 이용하여 레이 캐스팅을 적용하기 위한 상기 픽셀 각각의 유효 구간의 길이 정보를 계산하는 계산부를 포함할 수 있다.
본 발명은 레이 캐스팅의 가속화 방법 및 장치에 관한 것으로서, 보다 상세하게는 볼륨 렌더링의 속도를 향상시킬 수 있는 레이 캐스팅의 가속화 방법 및 장치를 제공할 수 있는 효과가 있다.
본 발명은 그래픽 처리 장치(GPU, Graphics Processing Unit), 멀티 코어(multi-core) 또는 병렬 처리(parallel processing) 환경에서 레이 캐스팅을 이용한 렌더링 속도를 향상시킬 수 있는 효과가 있다.
본 발명은 유사한 연산 시간을 필요로 하는 레이들의 출력 픽셀 블록을 하나의 스레드(thread) 그룹에 할당하여 레이 캐스팅을 가속화할 수 있는 효과가 있다.
본 발명은 CUDA(Compute Unified Device Architecture) 등의 GPGPU(General-Purpose computing on Graphics Processing Units, GPU 상의 범용 계산) 디바이스에서의 블록(block)별 작업 시간(work time)을 최소화하여 전체 작업 시간을 줄일 수 있는 효과가 있다.
본 발명은 뷰 포인트에 대응하는 2차원 영상(scene)의 픽셀 각각에 레이 캐스팅(Ray-Casting)을 적용하기 위하여 상기 픽셀 각각에 대응하는 레이(ray) 각각이 유효한(effective) 볼륨과 교차하는 구간의 길이 정보를 계산하고, 레이 각각이 상기 유효한 볼륨과 교차하는 길이 정보에 기초하여 상기 레이 각각을 정렬한 후, 상기 정렬된 레이 각각을 상기 정렬된 순서에 따라 병렬 멀티 프로세서 구조의 스레드(thread) 그룹에 할당함으로써, 렌더링 속도를 향상시킬 수 있는 효과가 있다.
본 발명은 전체 볼륨 데이터로부터 유효한(effective) 볼륨의 표면에 대한 정보를 수집하여 표면 모델(surface model)을 생성하고, 뷰 포인트에 대응하는 2차원 영상(scene)의 픽셀 각각에 상기 표면 모델에 대한 레이 캐스팅(Ray-Casting)을 적용하기 위하여, 제1 방향과 제2 방향 각각에 대하여 상기 픽셀 각각의 상기 표면 모델에 대한 깊이 정보(depth information)를 획득하며, 상기 제1 방향과 상기 제2 방향 각각에 대하여 획득된 상기 깊이 정보를 이용하여 레이 캐스팅을 적용하기 위한 상기 픽셀 각각의 유효 구간의 길이 정보를 계산함으로써, 레이 캐스팅 과정에서 투명한 영역을 보다 빠르게 건너뛰는 것이 가능하며, 이를 통해 고속의 렌더링이 가능한 효과가 있다.
본 발명은 의료 영상 분야에서 적용 가능한 렌더링 기술을 제공할 수 있는 효과가 있다.
도 1은 일반적인 3차원 가시화 방법을 설명하기 위한 도면이다.
도 2는 본 발명의 일 실시예에 따른 레이 캐스팅의 가속화 장치에 대한 전체 동작 흐름을 설명하기 위한 개념도이다.
도 3은 본 발명의 일 실시예에 따른 레이 캐스팅의 가속화 장치(300)에 대한 제1 도면이다.
도 4는 본 발명의 일 실시예에 따른 레이 캐스팅의 가속화 장치에 대한 제2 도면이다.
도 5는 본 발명의 일 실시예에 따른 레이 캐스팅의 가속화 장치에 대한 제3 도면이다.
도 6은 레이 캐스팅 개념을 설명하기 위한 제1 도면이다.
도 7은 레이 캐스팅 개념을 설명하기 위한 제2 도면이다.
도 8은 스레드 그룹의 실행 예를 나타낸 도면이다.
도 9는 종래 기술에 따라 스레드 그룹에 할당된 레이의 예를 나타낸 도면이다.
도 10은 본 발명의 일 실시예에 따라 레이가 스레드 그룹에 할당된 예를 타나낸 도면이다.
도 11은 본 발명의 일 실시예에 따른 표면 모델의 생성 예를 나타낸 도면이다.
도 12는 본 발명의 일 실시예에 따른 깊이 정보를 구하는 예를 나타낸 도면이다.
도 13은 본 발명의 일 실시예에 따른 레이 캐스팅의 가속화 방법에 대한 제1 동작 흐름도이다.
도 14는 본 발명의 다른 실시예에 따른 레이 캐스팅의 가속화 방법에 대한 제2 동작 흐름도이다.
이하, 본 발명의 바람직한 실시예를 첨부된 도면들을 참조하여 상세히 설명한다. 본 발명을 설명함에 있어, 관련된 공지 구성 또는 기능에 대한 구체적인 설명이 본 발명의 요지를 흐릴 수 있다고 판단되는 경우에는 그 상세한 설명은 생략하기로 한다. 또한 본 발명의 실시예들을 설명함에 있어 구체적인 수치는 실시예에 불과하다.
본 발명은 레이 캐스팅의 가속화 방법 및 장치에 관한 것으로서, 보다 상세하게는 그래픽 처리 장치(GPU, Graphics Processing Unit), 멀티 코어(multi-core) 또는 병렬 처리(parallel processing) 환경에서 레이 캐스팅(ray-casting)을 이용하여 렌더링(rendering) 속도를 향상시킬 수 있는 가속화 방법 및 장치에 관한 것이다. 우선, 도 2를 참조하여 본 발명의 가속화 장치에 대한 전체 동작 흐름을 간단히 설명하기로 한다.
도 2는 본 발명의 일 실시예에 따른 레이 캐스팅의 가속화 장치에 대한 전체 동작 흐름을 설명하기 위한 개념도이다.
도 2를 참조하면, 본 발명의 일 실시에에 따른 레이 캐스팅의 가속화 장치(200)는 프로세서(201)와 메모리(202)를 포함할 수 있다. 이때, 프로세서(201)에 의하여 처리된 데이터는 메모리(202)에 저장될 수 있으며, 또한, 프로세서(201)는 메모리(202)로부터 데이터를 수신하여 연산 처리할 수 있다.
그리고, 본 발명의 가속화 장치(200)는 병렬 통합처리 양식인 CUDA (Compute Unified Device Architecture), OpenCL 등을 이용하여 레이 캐스팅(ray-casting)을 구현할 수 있는데, 이를 위하여, 가속화 장치(200)는 프로세서(201)에서 처리된 데이터 또는 메모리(202)에 저장된 데이터를 GPU(210)로 보낼 수 있다. 이 후 CPU(미도시)는 처리할 명령어를 GPU(210)로 보낼 수 있으며, 이때, CUDA 라이브러리의 API 함수 등이 이용될 수 있다. 그리고 GPU(210) 내의 멀티프로세서(211)는 가속화 장치(200)로부터 수신한 데이터가 각 코어(212)에서 병렬로 처리되도록 제어할 수 있다.
이하에서는 본 발명에서 제안하는 레이 캐스팅의 가속화 장치(200)에 대한 보다 다양한 구성의 실시예들을 설명하기로 한다.
도 3은 본 발명의 일 실시예에 따른 레이 캐스팅의 가속화 장치(300)에 대한 제1 도면이다.
도 3을 참조하면, 본 발명의 일 실시예에 따른 레이 캐스팅의 가속화 장치(300)는 프로세서(310)를 포함할 수 있으며, 프로세서(310)는 계산부(320), 정렬부(330), 할당부(340) 및 실행 제어부(350)를 포함할 수 있다.
계산부(320)는 뷰 포인트(즉, 바라보는 방향)에 대응하는 2차원 영상(scene)의 픽셀 각각에 레이 캐스팅(Ray-Casting)을 적용하기 위하여 상기 픽셀 각각에 대응하는 레이(ray) 각각이 유효한(effective) 볼륨과 교차하는 구간의 길이 정보를 계산한다.
이때, 레이가 유효한 볼륨과 교차하는 구간의 길이 정보의 계산 방법으로는 두 가지가 있을 수 있으며, 첫번째 방법은 유효한 볼륨의 제1 방향과 제2 방향 각각에서 레이가 교차하는 교차점 간의 거리를 이용해 계산할 수 있으며, 두번째 방법은 레이가 유효한 볼륨 내에서 교차하는 유효한 복셀 수를 카운트함으로써 계산할 수 있다.
즉, 전자(첫번째 방법)의 경우, 계산부(320)는 상기 레이 각각이 제1 방향에서 상기 유효한 볼륨과 교차하는 제1 교차점을 획득하고, 상기 레이 각각이 제2 방향에서 상기 유효한 볼륨과 교차하는 제2 교차점을 획득하며, 상기 레이 각각에 대하여 상기 제1 교차점과 상기 제2 교차점 간의 거리를 상기 길이 정보로서 생성함으로써, 레이 각각이 유효한 볼륨과 교차하는 구간의 길이 정보를 계산할 수 있다.
이때, 제1 방향은 뷰 포인트에서 유효한 볼륨이 있는 방향으로 레이 캐스팅되는 순방향을 의미하고, 제2 방향은 제1 방향과 반대되는 역방향을 의미할 수 있다. 이때, 본 발명의 다른 실시예로는 제1 방향이 역방향, 제2 방향이 순방향일 수도 있다.
그리고, 후자(두번째 방법)의 경우, 계산부(320)는 상기 레이 각각이 상기 유효한 볼륨 내에서 교차하는 유효한 복셀의 수를 카운트하고, 상기 레이 각각에 대하여 카운트된 유효한 복셀의 수를 상기 길이 정보로서 생성함으로써, 레이 각각이 유효한 볼륨과 교차하는 구간의 길이 정보를 계산할 수 있다.
이하에서는 도 6 및 도 7을 참조하여, 본 발명의 이해를 더 돕기로 한다.
도 6은 레이 캐스팅 개념을 설명하기 위한 제1 도면이다.
도 6을 참조하면, 일반적으로, 광선 투사법이라고도 불리는 레이 캐스팅(ray-casting)은, 2차원 영상(scene)(11)의 각 픽셀(12)에서 전체 볼륨 데이터(13)의 방향으로 가상의 레이(14)가 발사된 후 레이(14)의 일정 간격 마다 샘플링한다. 이후 유효한 값을 가지는 볼륨(16)들과 교차하는 레이(14) 상의 각 샘플점(15) 마다 해당 볼륨(16)의 색상과 불투명도 값 등을 계산하고 누적함으로써, 해당 픽셀(12)의 색상 값을 결정하게 된다. 그런데, 상기와 같은 종래의 렌더링 방법은 각 샘플점에서 얻은 색상 정보를 최종 색상에 반영하기 위하여 누적 연산을 반복적으로 수행하기 때문에, 렌더링의 속도가 느리다는 단점이 있다.
이러한 문제를 극복하기 위하여, 본 발명의 가속화 장치(300)는 유효한 값을 가지는 볼륨(16)들과 교차하는 레이(14) 상의 각 샘플점(15) 마다 복셀 각각에 대해 색상 또는 불투명도 값을 계산하고, 누적 연산을 수행하는 종래의 과정을 수행할 필요 없이, 표면 모델(surface model)에 대한 깊이 정보(depth information)를 이용해 유효한 값을 가지는 복셀(16)들과 교차하는 구간의 길이 정보를 빠르게 계산(이때, 제1 지점과 제2 지점을 이용해 길이 정보를 획득할 수도 있고, 해당 구간에서 레이와 교차하는 복셀의 수를 카운팅한 정보를 이용해 길이 정보를 획득할 수도 있음)하고, 길이 정보에 기초하여 레이를 정렬 및 스레드 그룹에 할당함으로써, 레이 캐스팅 기반의 렌더링 속도를 가속화할 수 있다. 보다 자세한 설명은 이후에 설명하기로 한다.
한편, 도 6과 같은 종래의 레이 캐스팅의 경우에는 앞서 말한 바와 같이, 각 복셀마다 색상과 불투명도 값을 계산했기 때문에, 렌더링을 가속화하는 데에 한계가 있었다. 이에, 렌더링의 가속화를 위해서는 하나의 레이(ray)에 대한 계산량을 감소시키는 것이 필요하며, 이를 위해서는 유효한 복셀이 나타나지 않는 공간을 효율적으로 건너뛰는 것이 필요하다.
도 7은 레이 캐스팅 개념을 설명하기 위한 제2 도면이다.
도 7을 참조하면, 렌더링에서 볼륨 공간은 크게 렌더링 계산의 양에 유의미한 영향을 미치지 않는 건너뛰어도 좋은 공간(이는 비어있는 볼륨, 투명한 볼륨 등이 위치한 공간을 의미하는 것일 수 있음)과 렌더링 계산의 양에 유의미한 영향을 미치는 의미있는 공간(이는 유효한 볼륨, 불투명한 볼륨 등이 위치한 공간을 의미하는 것일 수 있음)으로 구분될 수 있다.
그리고, 일예로, 뷰 포인트(즉, 바라보는 방향)에 대응하는 2차원 영상(scene)(21)의 한 픽셀(22)에서 발사된 레이(24)가 볼륨 공간을 통과할 때에는 레이(24)의 발사 경로를 기반으로, 건너 뛰어도 좋은 구간(26)과 의미있는 구간(25)으로 구분될 수 있다. 이때, 의미있는 구간(25)은 레이(24)가 유효한 볼륨(23) 혹은 불투명한 볼륨과 교차하는 구간을 의미한다. 이를 통해 본 발명의 프로세서(310)는 계산부(320)를 통해 2차원 영상(21)의 각 픽셀 마다 발사된 레이 각각에 대하여 의미있는 구간의 길이 정보를 구하며, 이후 정렬부(330)를 통해 길이 정보에 기초하여 레이 각각을 정렬할 수 있다.
그리고, 도 7을 참조하면, 픽셀(22)에서 유효한 볼륨(23)의 방향으로 발사된 레이(24)의 방향은 제1 방향(순방향, 28)이라 하고, 상기 제1 방향과 반대되는 방향을 제2 방향(역방향, 30)이라 할 수 있다. 이때, 본 발명에서는 제1 방향(28)에서 발사된 레이가 유효한 볼륨(23)과 교차하는 지점을 제1 교차점(29)이라 하고, 제2 방향(30)에서 발사된 레이가 유효환 볼륨(23)과 교차하는 지점을 제2 교차점(31)이라 할 수 있다. 본 발명의 계산부(320)는 레이 각각에 대한 길이 정보를 구할 때, 제1 교차점(29)과 제2 교차점(31) 간의 거리를 이용해 구할 수도 있고, 또는, 레이가 유효한 볼륨(23) 내에서 교차하는 유효한 복셀 수를 카운트함으로써 계산할 수 있다.
그리고, 계산부(320)는 상기 레이 각각이 교차하는 복셀들 중 밝기값이 기준 조건을 충족하는 복셀을 상기 유효한 볼륨으로서 생성함으로써 레이의 길이 정보를 계산할 수 있다. 즉, 계산부(320)는 볼륨 공간에서 투명한 볼륨(비어있는 볼륨, 건너 뛰어도 좋은 볼륨)과 불투명한 볼륨(유효한 볼륨, 의미있는 볼륨)을 기준 조건에 따라 구분할 수 있고, OTF(Opacity Transfer Function)을 이용하여 의미 있는 볼륨 영역을 정의할 수 있다.
일예로, 밝기값이 레벨 1(가장 밝음)에서 레벨 10(가장 어두움)으로 구분되는 경우, 계산부(320)는 레벨 1 ~ 레벨 3에 해당하는 밝기의 볼륨을 투명 볼륨으로, 레벨 4 ~ 레벨 10에 해당하는 밝기의 볼륨을 불투명으로 구분한 후, 상기 불투명한 볼륨에 대한 복셀의 수를 카운트할 수도 있고, 또는 제1 방향과 제2 방향에서 발사된 레이 각각이 레벨 4 이상의 볼륨과 처음 교차하는 지점을 제1 교차점 및 제2 교차점함으로써 길이 정보를 구할 수 있다.
정렬부(330)는 계산부(320)에서 계산된 상기 레이 각각이 상기 유효한 볼륨과 교차하는 길이 정보에 기초하여 상기 레이 각각을 정렬(sorting)한다. 이때 정렬부(330)는 2차원 영상의 픽셀 각각에 대응하는 레이를 길이 정보가 긴 순으로, 혹은 길이 정보가 짧은 순으로 정렬할 수도 있다. 또한, 정렬부(330)는 레이에 대응하는 2차원 영상의 픽셀을 레이의 길이 정보가 긴 순으로, 혹은 길이 정보가 짧은 순으로 정렬할 수도 있다.
본 발명의 프로세서(310)는 필요에 따라 그룹핑부(미도시)를 더 포함할 수 있으며, 그룹핑부는 정렬부(330)에서 정렬된 레이, 또는 픽셀을 미리 설정된 규칙에 따라 그룹핑(grouping)할 수 있다.
이때, 그룹핑부는 정렬된 레이 또는 픽셀을 상위 순, 또는 하위 순으로 일정 개수 만큼 그룹핑할 수 있다. 또한, 레이의 길이 정보가 길다는 것은 상기 레이의 해당 픽셀을 렌더링할 때 연산 시간이 많이 걸림을 의미하므로, 그룹핑부는 유사한 연산 시간을 필요로 하는 레이들 또는 픽셀들 끼리 일정 개수 만큼 그룹핑할 수 있다.
할당부(340)는 정렬부(330)에서 정렬된 레이 각각을 상기 정렬된 순서에 따라 병렬 멀티 프로세서 구조의 스레드(thread) 그룹에 할당할 수 있다. 이때, 할당부(340)는 정렬된 레이 각각을 스레드 그룹에 할당할 수도 있고, 또한 일정 개수로 그룹핑된 레이 그룹을 스레드 그룹에 할당할 수도 있다.
도 8은 스레드 그룹의 실행 예를 나타낸 도면이다.
도 8을 참조하면, 렌더링 시 최종 출력 영상(800)은 복수의 스레드(thread) 그룹(810)으로 분할되어 있다고 할 수 있다. 이때, 스레드(thread)는 컴퓨터 프로그램 수행 시 프로세스 내부에 존재하는 수행 경로, 혹은 작업 스케줄러(Jop Scheduler)에 의해 시간을 배정 받아 CPU에서 작업할 수 있는 단위를 의미한다.
그리고, GPU 등 멀티코어에서 레이 캐스팅을 구현하거나, nVidia CUDA 등의 기술을 이용하여 레이 캐스팅을 구현하는 경우, 하나의 스레드는 하나의 레이를 계산하게 되며, 여러 개의 스레드가 그룹으로 동작하게 된다. 그리고, 그룹 내의 스레드는 동시에 실행되나, 한 그룹 내의 모든 스레드가 종료되어야 다음 그룹이 실행된다.
다시 말해, 복수의 스레드 그룹의 실행 순서(840)가 도 8과 같을 때, 제1 스레드 그룹(820)이 먼저 실행되며, 이 후 제1 스레드 그룹(820) 내의 모든 스레드가 종료되어야만 제2 스레드 그룹(820)이 실행된다. 이때, 제1 스레드 그룹(820) 내에는 복수의 스레드가 있을 수 있으며, 이때, 하나의 스레드(821)는 하나의 레이 또는 하나의 픽셀을 의미할 수 있다.
그리고, 앞서 말한 바와 같이, 복수의 스레드 그룹(810)은 제1 스레드 그룹(820) 내의 모든 스레드가 종료되어야만 다음 그룹인 제2 스레드 그룹(820)이 실행되는데, 이때, 한 스레드 그룹의 연산 시간은 해당 스레드 그룹 내에서 가장 긴 연산 시간을 소요하는 레이에 의하여 결정되므로, 한 스레드 그룹에 레이들를 어떻게 할당하느냐에 따라 전체 시간이 좌우된다.
그런데 종래에 레이 캐스팅 기반의 가속화 방법들은, 레이 캐스팅을 수행하면서 복셀 각각에 대해 색상 또는 불투명도 값을 계산해 나감에 따라, 복수의 레이가 한 스레드 그룹 내에 랜덤하게 할당되었다. 이에 따라, 종래 기술들은 전체 작업 시간(Total work time)을 고려하고 있지 않아, 렌더링 작업의 속도 향상에 한계가 있었다.
이하에서는 종래 기술과 본 발명의 기술에 의하여 레이가 스레드 그룹에 할당되는 예를 도 9 및 도 10을 참조하여 설명하기로 한다. 도 9 및 도 10에서 화살표의 길이는 해당 레이의 작업 시간을 나타낸다. 이때, 일예로 작업 시간(work time)의 단위는 밀리초(ms)일 수 있다. 그리고, 도 9 및 도 10의 예에서는 레이가 스레드 그룹에 할당된 예를 도시하고 있으나, 이에 한정된 것은 아니며, 다른 예에 따라서는 레이의 길이 정보를 포함한 픽셀을 이용하여 스레드 그룹에 할당할 수 있다.
도 9는 종래 기술에 의하여 레이가 스레드 그룹에 할당된 예를 나타낸 도면이고, 도 10은 본 발명의 일 실시예에 따라 레이가 스레드 그룹에 할당된 예를 타나낸 도면이다.
우선, 도 9를 참조하면, 일예로, 종래 기술에 의한 제1 스레드 그룹(900)에는 작업 시간이 60밀리초 소요되는 1 레이(901), 100밀리초 소요되는 2 레이(902), 10밀리초 소요되는 3 레이(903), 85밀리초 소요되는 4 레이(904)가 할당될 수 있다. 그리고, 제2 스레드 그룹(910)에는 작업 시간이 20밀리초 소요되는 5 레이(905), 40밀리초 소요되는 6 레이(906), 80밀리초 소요되는 7 레이(907), 38밀리초 소요되는 8 레이(908)가 할당될 수 있다.
따라서, 제1 스레드 그룹(900)의 작업 시간은 2 레이(902)에 의하여 100밀리초이고, 제2 스레드 그룹(910)의 작업 시간은 7 레이(907)에 의하여 80밀리초이므로, 이에 따라 종래의 할당 방법에 따른 전체 작업 시간(즉, 제1 스레드 그룹(900)과 제2 스레드 그룹(910)의 작업 시간의 합)이 180밀리초 소요된다.
한편, 도 9와 대비되는 본 발명에 의한 레이의 할당 예는 다음과 같다. 우선 본 발명의 일 실시예에 따른 정렬부(330)는 도 9와 같은 1 레이(901) 내지 8 레이(908)를 작업 시간이 오래 걸리는 순으로 정렬할 수 있다.
이때, 본 발명에서는 상기의 작업 시간으로서, 계산부(320)에 의하여 계산된 레이의 길이 정보를 고려하고 있다. 즉, 작업 시간은 제1 교차점과 제2 교차점 간의 거리를 기반으로 생성된 길이 정보에 대응될 수 있고, 또는 유효한 복셀 수의 카운팅 정보를 기반으로 생성된 길이 정보에 대응될 수 있다.
그리고, 계산부(320)에 의하여 레이가 정렬된 후, 본 발명의 할당부(340)는 정렬된 순서에 따라, 즉 작업 시간이 오래 걸리는 순서대로 레이들을 스레드 그룹 각각에 할당할 수 있다. 이때, 하나의 스레드 그룹에는 최대 4개의 레이가 할당될 수 있다.
따라서, 도 10을 참조하면, 일예로, 본 발명에 의한 제1 스레드 그룹(1000)에는 작업 시간이 오래 걸리는 순서대로(또는, 레이의 길이 정보가 긴 순서대로), 100밀리초 소요되는 2 레이(902), 85밀리초 소요되는 4 레이(904), 80밀리초 소요되는 7 레이(907), 60밀리초 소요되는 1 레이(901)가 할당될 수 있고, 제2 스레드 그룹(1010)에는 40밀리초 소요되는 6 레이(906), 38밀리초 소요되는 8 레이(908), 20밀리초 소요되는 5 레이(905), 10밀리초 소요되는 3 레이(903)가 할당될 수 있다.
따라서, 본 발명에 의한 제1 스레드 그룹(1000)의 작업 시간은 2 레이(902)에 의하여 100밀리초이고, 제2 스레드 그룹(1010)의 작업 시간은 6 레이(906)에 의하여 40밀리초이므로, 이에 따라 본 발명에 의한 전체 작업 시간이 140밀리초 소요된다.
이처럼, 본 발명의 할당 방법에 의한 전체 작업 시간(140밀리초)은 종래의 할당 방법에 의한 전체 작업 시간(180밀리초)에 비해 40밀리초 단축되었음을 알 수 있으며, 이는 종래 기술에 비해 본 발명이 단축된 시간(40밀리초) 만큼 레이 캐스팅을 가속화 할 수 있음을 의미한다.
또한, 도 10의 경우, 본 발명이 레이 각각이 스레드 그룹에 할당되는 예를 도시하였으나, 이에 한정된 것은 아니며, 다른 실시예로는 상기에 설명한 그룹핑부(미도시)에 의하여 일정 개수로 그룹핑된 레이 그룹을 스레드 그룹에 할당할 수도 있다. 예를 들어, 도 10의 경우, 정렬부(330)에서 각 레이들이 정렬된 이후에 그룹핑부는 2 레이(902)와 4 레이(904)를 제1 그룹으로 그룹핑하고, 7 레이(907)와 1 레이(901)를 제2 그릅으로 그룹핑 할 수 있다. 이후 할당부(340)는 제1 그룹과 제2 그룹을 제1 스레드 그룹(1000)에 할당할 수 있다.
그리고, 본 발명의 프로세서(310)는 계산부(320)에서 레이의 길이 정보를 계산할 때, 레이 캐스팅을 실제로 실행함으로써 계산하는 것이 아니라, 표면 모델(surface model)에 대한 깊이 정보(depth information)를 기반으로 보다 빠르게 레이의 길이 정보를 추정(estimate)함으로써 계산할 수 있다.
즉, 본 발명의 프로세서(310)는 우선 표면 모델에 대한 깊이 정보를 이용(이에 대한 설명은 이후에 더 자세히 설명하기로 한다)하여 계산부(320)에서 각 레이의 길이 정보를 추정(estimate)하여 계산할 수 있으며, 이후 추정된 레이의 길이 정보를 고려하여 정렬부(330)에서 각 레이들을 정렬할 수 있으며, 할당부(340)에 의하여 상기 정렬된 레이들을 스레드 그룹에 할당할 수 있다. 이후, 실행 제어부(350)는 할당부(340)에서 할당된 스레드 그룹이 상기 정렬된 레이 각각에 대한 레이 캐스팅을 실행하도록 상기 할당된 스레드 그룹에 제어 명령을 전달할 수 있다. 이후, 본 발명은 정렬된 레이 순서를 고려하여 GPU(혹은 CUDA)에서 레이 캐스팅이 실행될 수 있다.
또한, 본 발명의 프로세서(310)는 레이 캐스팅의 결과를 레이의 원래 위치 정보에 따라 각 필셀에 할당하여 2차원 영상을 생성할 수 있는데, 이를 위하여 매핑부(미도시) 및 영상 획득부(미도시)를 더 포함할 수 있다.
이때, 매핑부는 상기 정렬된 레이 각각에 대한 레이 캐스팅의 결과를 상기 2차원 영상의 픽셀들 중 상기 정렬된 레이 각각에 대응하는 픽셀 각각에 매핑할 수 있고, 영상 생성부는 상기 매핑부에서 매핑된 픽셀 영상을 조합하여 2차원 영상을 생성할 수 있다.
도 4는 본 발명의 일 실시예에 따른 레이 캐스팅의 가속화 장치에 대한 제2 도면이다.
도 4를 참조하면, 본 발명의 다른 실시예에 따른 레이 캐스팅의 가속화 장치(400)는 프로세서(410)를 포함할 수 있으며, 프로세서(410)는 표본 모델 생성부(420), 획득부(430) 및 계산부(440)를 포함할 수 있다. 도 4의 예는 제1 방향과 제2 방향, 즉 양방향을 이용하여 비어있는 볼륨을 빠르게 건너뛸 수 있는 기술에 대해 설명한다.
표본 모델 생성부(420)는 전체 볼륨 데이터로부터 유효한(effective) 볼륨의 표면에 대한 정보를 수집하여 표면 모델(surface model)을 생성한다. 여기서, 전체 볼륨 데이터는 유효한 볼륨과 비어있는 볼륨이 공존하는 전체 볼륨 공간의 데이터를 의미한다.
이때, 표본 모델 생성부(420)는 상기 전체 볼륨 데이터를 복수의 복셀들을 포함하는 다수의 블록들로 분할하고, 상기 분할된 다수의 블록들 중 기준 조건(이는 불투명도의 최대/최소 조건을 의미함)을 충족하는 유효한 블록의 표면을 기준 방향 각각에 대하여 식별(이는 x, y, z축 방향 각각, 즉 yz평면, xz 평면, xy 평면 각각의 식별을 의미함)하며, 이후 상기 식별된 상기 유효한 블록의 표면에 대한 정보를 수집하여 상기 표면 모델(surface model)을 생성할 수 있다.
이때 상기 기준 조건은 불투명도의 최대/최소 조건을 의미하는 것으로서, 이는 일예로 앞서 말한 바와 같이, 밝기값을 기반으로 불투명도의 최대/최소 조건이 설정될 수 있다. 즉, 예를 들어, 불투명도의 최소 조건이 레벨 4 이상의 밝기값이고, 불투명도의 최대 조건이 레벨 9 이하의 밝기값인 경우, 유효한 블록은 레벨 4 ~ 레벨 9에 해당하는 블록일 수 있다.
도 11은 본 발명의 일 실시예에 따른 표면 모델의 생성 예를 나타낸 도면이다.
도 11을 참조하면, 도 11은 z 축 방향으로 전체 볼륨 데이터(1100)를 바라본 xy 평면의 예를 나타낸다.
이때, 전체 볼륨 데이터(1100)는 다수의 블록들로 분할되어, 투명한 블록(1110)과 유효한 블록(1120)으로 구분될 수 있다. 이때, 유효한 블록(1120)은 유효한 볼륨이 위치해 있는 블록을 의미한다.
그리고, 표면 모델 생성부(420)는 기준 방향 각각에 대하여 유효한 블록의 표면을 식별함으로써 표면 모델을 생성할 수 있는데, 일예로, +x축 방향에서 유효한 블록의 표면을 식별할 경우에는 제1 표면들(1130, 1131, 1132)이 식별되고, -x축 방향에서 유효한 블록의 표면을 식별할 경우에는 제2 표면들(1140, 1141, 1142)이 식별되고, +y축 방향에서 유효한 블록의 표면을 식별할 경우에는 제3 표면들(1150, 1151, 1152, 1153)이 식별되고, -y축 방향에서 유효한 블록의 표면을 식별할 경우에는 제4 표면들(1160, 1161, 1162, 1163)이 식별될 수 있다. 또한, 마찬가지로 +z축과 -z축 방향에 대해서도 유효한 블록의 표면이 식별될 수 있다.
이때, 유효한 블록(1120)들 전부를 표면 모델로 만들면 전체 표면 모델의 크기가 너무 커지기 때문에, 본 발명의 표면 모델 생성부(420)는 도 11의 예와 같이 유효한 블록(1120)들의 가장자리(즉, 도면에서 굵은 테두리 선의 부분을 의미함)만 식별하여 표면 모델을 생성한다.
획득부(430)는 뷰 포인트(즉, 바라보는 방향)에 대응하는 2차원 영상(scene)의 픽셀 각각에 상기 표면 모델에 대한 레이 캐스팅(Ray-Casting)을 적용하기 위하여, 제1 방향(순방향)과 제2 방향(역방향) 각각에 대하여 상기 픽셀 각각의 상기 표면 모델에 대한 깊이 정보(depth information)를 획득한다. 이때, 깊이 정보는 전체 볼륨 데이터의 제1 방향 또는 제2 방향에서 유효한 볼륨이 위치한 곳까지의 3차원 상의 거리를 의미하는 것으로서, 획득부(430)는 제1 방향과 제2 방향 각각에 대하여 표면 렌더링(surface rendering)을 수행함으로써 제1 방향과 제2 방향 각각에 대한 깊이 정보를 획득할 수 있다.
그리고, 획득부(430)는 병렬적으로 연산이 가능한 다수의 멀티 프로세서 코어 각각에 상기 픽셀 각각을 할당함으로써 병렬적으로 실행될 수 있다. 즉, 획득부(430)는 하드웨어 가속을 통하여 표면 모델 생성부(420)에서 생성된 표면 모델로부터 각 픽셀의 깊이 정보를 획득할 수 있다.
이 후, 계산부(440)는 상기 제1 방향과 상기 제2 방향 각각에 대하여 획득된 상기 깊이 정보를 이용하여 레이 캐스팅을 적용하기 위한 상기 픽셀 각각의 유효 구간(즉, 불투명한 볼륨 구간)의 길이 정보를 계산한다.
이때, 계산부(440)는 제1 방향에 대하여 획득된 제1 깊이 정보, 상기 제2 방향에 대하여 획득된 제2 깊이 정보 및 상기 뷰 포인트에 의하여 결정되는 기준 길이를 반영하여 상기 픽셀 각각의 유효 구간의 길이 정보를 계산할 수 있다. 여기서, 상기 기준 길이는 전체 볼륨 데이터 내에서 상기 픽셀 각각이 위치하는 상대적 위치 정보와 상기 뷰 포인트를 반영하여 결정되는 것으로, 해당 픽셀에서 얻을 수 있는 최대 길이, 또는 전체 길이를 의미한다.
도 12는 본 발명의 일 실시예에 따른 깊이 정보를 구하는 예를 나타낸 도면이다.
도 12를 참조하면, 일예로, 전체 볼륨 데이터(1200)가 투명한 블록(1210)과 유효한 블록(1220)으로 구분되고, 2차원 영상의 어느 한 픽셀(1230)에 대한 레이의 진행 경로(1240)가 도 12와 같을 때, 제1 방향(1250)의 제1 깊이 정보(1251) 값은 제1 교차점(1252)까지의 거리를 통해 구할 수 있고, 제2 방향(1250)의 제2 깊이 정보(1261) 값은 제2 교차점(1262)까지의 거리를 통해 구할 수 있다. 그리고, 계산부(440)는 상기 픽셀(1230)에 해당하는 기준 거리(1270) 값에서 제1 깊이 정보(1251) 값과 상기 제2 깊이 정보(1261) 값을 뺄셈(subtraction)함으로써, 해당 픽셀(1230)에 대한 레이의 유효 구간의 길이 정보(1280)를 계산할 수 있다.
도 5는 본 발명의 일 실시예에 따른 레이 캐스팅의 가속화 장치에 대한 제3 도면이다.
도 5를 참조하면, 본 발명의 일 실시예에 따른 레이 캐스팅의 가속화 장치(500)는 프로세서(510)를 포함할 수 있으며, 상기 프로세서(510)는 표본 모델 생성부(520), 획득부(530), 계산부(540), 정렬부(550), 할당부(560) 및 실행 제어부(570)를 포함할 수 있다.
이때, 도 5의 표본 모델 생성부(520), 획득부(530), 계산부(540)는 도 4에 도시된 표본 모델 생성부(420), 획득부(430), 계산부(440)와 동일하며, 또한, 상기 계산부(540)를 포함한 정렬부(550), 할당부(560) 및 실행 제어부(570)는 도 3에 도시된 계산부(320), 정렬부(330), 할당부(340) 및 실행 제어부(350)와 동일하다. 즉, 도 5에 따른 레이 캐스팅의 가속화 장치(500)는 도 3에 도시된 구성과 도 4에 도시된 구성을 결합한 구성으로 이루어질 수 있으므로, 이하에서는 간단히 설명하기로 한다.
본 발명의 일 실시예에 따른 레이 캐스팅의 가속화 장치(500)는 표본 모델 생성부(520)에 의하여 전체 볼륨 데이터로부터 유효한(effective) 볼륨의 표면에 대한 정보를 수집하여 표면 모델(surface model)을 생성할 수 있고, 획득부(530)에 의하여 뷰 포인트에 대응하는 2차원 영상(scene)의 픽셀 각각에 상기 표면 모델에 대한 레이 캐스팅(Ray-Casting)을 적용하기 위하여, 제1 방향과 제2 방향 각각에 대하여 상기 픽셀 각각의 상기 표면 모델에 대한 깊이 정보(depth information)를 획득할 수 있으며, 계산부(540)에 의하여 상기 제1 방향과 상기 제2 방향 각각에 대하여 획득된 상기 깊이 정보를 이용하여 레이 캐스팅을 적용하기 위한 상기 픽셀 각각의 유효 구간의 길이 정보를 계산할 수 있다.
이때, 유효 구간의 길이 정보는 유효한 볼륨의 제1 방향과 제2 방향 각각에서 레이가 교차하는 교차점 간의 거리를 이용해 계산할 수도 있고, 또는 레이가 유효한 볼륨 내에서 교차하는 유효한 복셀 수를 카운트함으로써 계산할 수 있다. 이에 대한 설명은 상기에 자세히 설명했으므로 이하 생략하기로 한다.
그리고, 본 발명의 가속화 장치(500)는 계산부(540)에 의하여 픽셀 각각의 유효 구간의 길이 정보를 계산한 다음에, 정렬부(550)에 의하여 상기 레이 각각이 상기 유효한 볼륨과 교차하는 유효 구간의 길이 정보에 기초하여 상기 레이 각각을 정렬할 수 있고, 할당부(560)에 의하여 상기 정렬된 레이 각각을 상기 정렬된 순서에 따라 병렬 멀티 프로세서 구조의 스레드(thread) 그룹에 할당할 수 있으며, 실행 제어부(570)에 의하여 상기 할당된 스레드 그룹이 상기 정렬된 레이 각각에 대한 레이 캐스팅을 실행하도록 상기 할당된 스레드 그룹에 제어 명령을 전달할 수 있다.
그리고, 본 발명의 가속화 장치(500)에는 도 5에 도시되지는 않았으나, 상기 정렬된 레이 각각에 대한 레이 캐스팅의 결과를 상기 2차원 영상의 픽셀들 중 상기 정렬된 레이 각각에 대응하는 픽셀 각각에 매핑하는 매핑부(미도시)와, 상기 매핑된 픽셀 영상을 조합하여 상기 2차원 영상을 생성하는 영상 생성부(미도시)를 더 포함할 수 있다.
이하에서는 본 발명의 레이 캐스팅의 가속화 방법에 대한 동작 흐름에 대하여 설명하되, 상기에 자세히 설명된 내용을 기반으로 간단히 설명하기로 한다.
도 13은 본 발명의 일 실시예에 따른 레이 캐스팅의 가속화 방법에 대한 제1 동작 흐름도이다. 이는 도 3에 설명된 내용을 기반으로 간단히 설명하기로 한다.
도 13을 참조하면, 본 발명의 일 실시예에 따른 레이 캐스팅의 가속화 방법은 우선, 계산부(320)에 의하여, 뷰 포인트(바라보는 방향)에 대응하는 2차원 영상(scene)의 픽셀 각각에 레이 캐스팅(Ray-Casting)을 적용하기 위하여 상기 픽셀 각각에 대응하는 레이(ray) 각각이 유효한(effective) 볼륨과 교차하는 구간의 길이 정보를 계산할 수 있다(S1310).
이때, 계산부(320)는 레이 각각이 유효한 볼륨과 교차하는 구간의 길이 정보를, 유효한 볼륨의 제1 방향과 제2 방향 각각에서 레이가 교차하는 교차점 간의 거리를 이용해 계산할 수도 있고, 또는 레이가 유효한 볼륨 내에서 교차하는 유효한 복셀의 수를 카운트함으로써 계산할 수 있다.
또한, 이때 계산부(320)는 상기 레이 각각이 교차하는 복셀들 중 밝기값이 기준 조건을 충족하는 복셀을 상기 유효한 볼륨으로서 생성함으로써 레이의 길이 정보를 계산할 수 있다. 이에 대한 설명은 상기에 자세히 설명했으므로 이하 생략하기로 한다.
다음으로, 본 발명의 가속화 방법은 단계S1310에서 계산된 상기 레이 각각이 상기 유효한 볼륨과 교차하는 길이 정보에 기초하여 상기 레이 각각을 정렬부(330)를 통해 정렬할 수 있다(S1320). 이때, 정렬부(330)는 2차원 영상의 픽셀 각각에 대응하는 레이를 길이 정보가 긴 순으로, 혹은 길이 정보가 짧은 순으로 정렬할 수도 있다.
또한, 도면에 도시되지는 않았으나, 본 발명의 가속화 방법은 단계S1320 이후에, 그룹핑부(미도시)에 의하여 단계S1320에서 정렬된 레이를 미리 설정된 규칙에 따라 그룹핑(grouping)할 수도 있다. 이에 대한 설명은 상기에 설명했으므로 이하 생략하기로 한다.
다음으로, 본 발명의 가속화 방법은 할당부(340)에 의하여, 단계S1320에서 정렬된 레이 각각을 상기 정렬된 순서에 따라 병렬 멀티 프로세서 구조의 스레드(thread) 그룹에 할당할 수 있다(S1330). 이때, 할당부(340)는 정렬된 레이 각각을 스레드 그룹에 할당할 수도 있고, 또한 일정 개수로 그룹핑된 레이 그룹을 스레드 그룹에 할당할 수도 있다.
다음으로, 본 발명의 가속화 방법은 실행 제어부(350)에 의하여, 단계S1330에서 할당된 스레드 그룹이 상기 정렬된 레이 각각에 대한 레이 캐스팅을 실행하도록 상기 할당된 스레드 그룹에 제어 명령을 전달할 수 있다(S1340).
이후, 도 13에 도시되지는 않았지만, 본 발명의 가속화 방법은 단계S1340 이후에, 매핑부(미도시)에 의하여, 상기 정렬된 레이 각각에 대한 레이 캐스팅의 결과를 상기 2차원 영상의 픽셀들 중 상기 정렬된 레이 각각에 대응하는 픽셀 각각에 매핑하는 단계를 더 포함할 수 있다. 또한, 본 발명의 가속화 방법은 상기 매핑하는 단계 이후에, 영상 생성부(미도시)에 의하여, 상기 매핑된 픽셀 영상을 조합하여 상기 2차원 영상을 생성하는 단계를 더 포함할 수 있다.
도 14는 본 발명의 다른 실시예에 따른 레이 캐스팅의 가속화 방법에 대한 제2 동작 흐름도이다. 이는 도 4에 설명된 내용을 기반으로 간단히 설명하기로 한다.
본 발명의 다른 실시예에 따른 레이 캐스팅의 가속화 방법은 우선, 표본 모델 생성부(420)에 의하여, 전체 볼륨 데이터로부터 유효한(effective) 볼륨의 표면에 대한 정보를 수집함으로써 표면 모델(surface model)을 생성한다(S1410).
이때, 표본 모델 생성부(420)는 상기 전체 볼륨 데이터를 복수의 복셀들을 포함하는 다수의 블록들로 분할하고, 상기 분할된 다수의 블록들 중 기준 조건(이는 불투명도의 최대/최소 조건을 의미함)을 충족하는 유효한 블록의 표면을 기준 방향 각각에 대하여 식별하며, 이후 상기 식별된 상기 유효한 블록의 표면에 대한 정보를 수집하여 상기 표면 모델(surface model)을 생성할 수 있다.
다음으로, 본 발명의 가속화 방법은 뷰 포인트에 대응하는 2차원 영상(scene)의 픽셀 각각에 상기 표면 모델에 대한 레이 캐스팅(Ray-Casting)을 적용하기 위하여, 제1 방향과 제2 방향 각각에 대하여 상기 픽셀 각각의 상기 표면 모델에 대한 깊이 정보(depth information)를 획득부(430)에 의하여 획득할 수 있다(S1420).
이때, 깊이 정보는 전체 볼륨 데이터의 제1 방향 또는 제2 방향에서 유효한 볼륨이 위치한 곳까지의 3차원 상의 거리를 의미하는 것으로서, 획득부(430)는 제1 방향과 제2 방향 각각에 대하여 표면 렌더링(surface rendering)을 수행함으로써 제1 방향과 제2 방향 각각에 대한 깊이 정보를 획득할 수 있다.
다음으로, 본 발명의 가속화 방법은 계산부(440)에 의하여, 상기 제1 방향과 상기 제2 방향 각각에 대하여 획득된 상기 깊이 정보를 이용하여 레이 캐스팅을 적용하기 위한 상기 픽셀 각각의 유효 구간의 길이 정보를 계산할 수 있다(S1430).
이때, 계산부(440)는 제1 방향에 대하여 획득된 제1 깊이 정보, 상기 제2 방향에 대하여 획득된 제2 깊이 정보 및 상기 뷰 포인트에 의하여 결정되는 기준 길이를 반영하여 상기 픽셀 각각의 유효 구간의 길이 정보를 계산할 수 있다. 이에 대한 설명은 상기에 자세히 설명했으므로, 이하 생략하기로 한다.
그리고 도 14에는 도시되지 않았지만, 필요에 따라서는, 단계S1430 이후에 도 13의 단계1320 내지 단계S1340가 수행될 수 있다. 이에 대한 자세한 설명은 상기에 설명했으므로, 이하 생략하기로 한다.
이에 따라 본 발명의 가속화 장치 및 방법은 병렬 처리(parallel processing) 환경에서 레이 캐스팅을 이용한 렌더링 속도를 향상시킬 수 있는 효과가 있다.
본 발명의 일 실시 예에 따른 레이 캐스팅의 가속화 방법은 다양한 컴퓨터 수단을 통하여 수행될 수 있는 프로그램 명령 형태로 구현되어 컴퓨터 판독 가능 매체에 기록될 수 있다. 상기 컴퓨터 판독 가능 매체는 프로그램 명령, 데이터 파일, 데이터 구조 등을 단독으로 또는 조합하여 포함할 수 있다. 상기 매체에 기록되는 프로그램 명령은 본 발명을 위하여 특별히 설계되고 구성된 것들이거나 컴퓨터 소프트웨어 당업자에게 공지되어 사용 가능한 것일 수도 있다. 컴퓨터 판독 가능 기록 매체의 예에는 하드 디스크, 플로피 디스크 및 자기 테이프와 같은 자기 매체(magnetic media), CD-ROM, DVD와 같은 광기록 매체(optical media), 플롭티컬 디스크(floptical disk)와 같은 자기-광 매체(magneto-optical media), 및 롬(ROM), 램(RAM), 플래시 메모리 등과 같은 프로그램 명령을 저장하고 수행하도록 특별히 구성된 하드웨어 장치가 포함된다. 프로그램 명령의 예에는 컴파일러에 의해 만들어지는 것과 같은 기계어 코드뿐만 아니라 인터프리터 등을 사용해서 컴퓨터에 의해서 실행될 수 있는 고급 언어 코드를 포함한다. 상기된 하드웨어 장치는 본 발명의 동작을 수행하기 위해 하나 이상의 소프트웨어 모듈로서 작동하도록 구성될 수 있으며, 그 역도 마찬가지이다.
이상과 같이 본 발명에서는 구체적인 구성 요소 등과 같은 특정 사항들과 한정된 실시예 및 도면에 의해 설명되었으나 이는 본 발명의 보다 전반적인 이해를 돕기 위해서 제공된 것일 뿐, 본 발명은 상기의 실시예에 한정되는 것은 아니며, 본 발명이 속하는 분야에서 통상적인 지식을 가진 자라면 이러한 기재로부터 다양한 수정 및 변형이 가능하다.
따라서, 본 발명의 사상은 설명된 실시예에 국한되어 정해져서는 아니 되며, 후술하는 특허청구범위뿐 아니라 이 특허청구범위와 균등하거나 등가적 변형이 있는 모든 것들은 본 발명 사상의 범주에 속한다고 할 것이다.
200, 300, 400, 500: 레이 캐스팅의 가속화 장치
201, 310, 410, 510: 프로세서 320, 440, 540: 계산부
330, 550: 정렬부 340, 560: 할당부
350, 570: 실행 제어부 420, 520: 표본 모델 생성부
430, 530: 획득부

Claims (15)

  1. 뷰 포인트에 대응하는 2차원 영상(scene)의 픽셀 각각에 레이 캐스팅(Ray-Casting)을 적용하기 위하여 상기 픽셀 각각에 대응하는 레이(ray) 각각이 렌더링 계산의 양에 유의미한 영향을 미치는 유효한(effective) 볼륨과 교차하는 구간의 길이 정보를 계산하는 단계;
    상기 레이 각각이 상기 유효한 볼륨과 교차하는 길이 정보에 기초하여 상기 레이 각각을 정렬하는 단계; 및
    상기 정렬된 레이 각각을 상기 정렬된 순서에 따라 병렬 멀티 프로세서 구조의 스레드(thread) 그룹에 할당하는 단계;
    를 포함하는 레이 캐스팅의 가속화 방법.
  2. 제1항에 있어서,
    상기 할당된 스레드 그룹에 의하여 상기 정렬된 레이 각각에 대한 레이 캐스팅을 실행하는 단계;
    를 더 포함하는 레이 캐스팅의 가속화 방법.
  3. 제2항에 있어서,
    상기 정렬된 레이 각각에 대한 레이 캐스팅의 결과를 상기 2차원 영상의 픽셀들 중 상기 정렬된 레이 각각에 대응하는 픽셀 각각에 매핑하는 단계; 및
    상기 매핑된 픽셀 영상을 조합하여 상기 2차원 영상을 생성하는 단계;
    를 더 포함하는 레이 캐스팅의 가속화 방법.
  4. 제1항에 있어서,
    상기 레이 각각이 상기 유효한 볼륨과 교차하는 구간의 길이 정보를 계산하는 단계는
    상기 레이 각각이 제1 방향에서 상기 유효한 볼륨과 교차하는 제1 교차점을 획득하는 단계;
    상기 레이 각각이 제2 방향에서 상기 유효한 볼륨과 교차하는 제2 교차점을 획득하는 단계; 및
    상기 레이 각각에 대하여 상기 제1 교차점과 상기 제2 교차점 간의 거리를 상기 길이 정보로서 생성하는 단계
    를 포함하는 레이 캐스팅의 가속화 방법.
  5. 제1항에 있어서,
    상기 레이 각각이 상기 유효한 볼륨과 교차하는 구간의 길이 정보를 계산하는 단계는
    상기 레이 각각이 상기 유효한 볼륨 내에서 교차하는 제1 복셀의 수를 카운트하는 단계; 및
    상기 레이 각각에 대하여 상기 제1 복셀의 수를 상기 길이 정보로서 생성하는 단계
    를 포함하는 레이 캐스팅의 가속화 방법.
  6. 제1항에 있어서,
    상기 레이 각각이 상기 유효한 볼륨과 교차하는 구간의 길이 정보를 계산하는 단계는
    상기 레이 각각이 교차하는 복셀들 중 밝기값이 기준 조건을 충족하는 복셀을 상기 유효한 볼륨으로서 생성하는 단계;
    를 포함하는 레이 캐스팅의 가속화 방법.
  7. 전체 볼륨 데이터로부터 렌더링 계산의 양에 유의미한 영향을 미치는 유효한(effective) 볼륨의 표면에 대한 정보를 수집하여 표면 모델(surface model)을 생성하는 단계;
    뷰 포인트에 대응하는 2차원 영상(scene)의 픽셀 각각에 상기 표면 모델에 대한 레이 캐스팅(Ray-Casting)을 적용하기 위하여, 제1 방향과 제2 방향 각각에 대하여 상기 픽셀 각각의 상기 표면 모델에 대한 깊이 정보(depth information)를 획득하는 단계; 및
    상기 제1 방향과 상기 제2 방향 각각에 대하여 획득된 상기 깊이 정보를 이용하여 레이 캐스팅을 적용하기 위한 상기 픽셀 각각에서 발사된 레이가 상기 유효한 볼륨과 교차하는 제1 구간의 길이 정보를 계산하는 단계;
    를 포함하는 레이 캐스팅의 가속화 방법.
  8. 제7항에 있어서,
    상기 표면 모델(surface model)을 생성하는 단계는
    상기 전체 볼륨 데이터를 복수의 복셀들을 포함하는 다수의 블록들로 분할하는 단계;
    상기 분할된 다수의 블록들 중 기준 조건을 충족하는 유효한 블록의 표면을 기준 방향 각각에 대하여 식별하는 단계; 및
    상기 식별된 상기 유효한 블록의 표면에 대한 정보를 수집하여 상기 표면 모델(surface model)을 생성하는 단계;
    를 포함하는 레이 캐스팅의 가속화 방법.
  9. 제7항에 있어서,
    상기 픽셀 각각에 대하여 상기 제1 구간의 길이 정보를 계산하는 단계는
    상기 제1 방향에 대하여 획득된 제1 깊이 정보, 상기 제2 방향에 대하여 획득된 제2 깊이 정보 및 상기 뷰 포인트에 의하여 결정되는 기준 길이를 반영하여 상기 픽셀 각각에 대하여 상기 제1 구간의 길이 정보를 계산하는 것을 특징으로 하는 레이 캐스팅의 가속화 방법.
  10. 제9항에 있어서,
    상기 기준 길이는 전체 볼륨 데이터 내에서 상기 픽셀 각각이 위치하는 상대적 위치 정보와 상기 뷰 포인트를 반영하여 결정되는 것을 특징으로 하는 레이 캐스팅의 가속화 방법.
  11. 제7항에 있어서,
    상기 픽셀 각각의 상기 표면 모델에 대한 깊이 정보를 획득하는 단계는
    병렬적으로 연산이 가능한 다수의 멀티 프로세서 코어 각각에 상기 픽셀 각각을 할당함으로써 병렬적으로 실행되는 것을 특징으로 하는 레이 캐스팅의 가속화 방법.
  12. 뷰 포인트에 대응하는 2차원 영상(scene)의 픽셀 각각에 레이 캐스팅(Ray-Casting)을 적용하기 위하여 상기 픽셀 각각에 대응하는 레이(ray) 각각이 렌더링 계산의 양에 유의미한 영향을 미치는 유효한(effective) 볼륨과 교차하는 구간의 길이 정보를 계산하는 계산부;
    상기 레이 각각이 상기 유효한 볼륨과 교차하는 길이 정보에 기초하여 상기 레이 각각을 정렬하는 정렬부;
    상기 정렬된 레이 각각을 상기 정렬된 순서에 따라 병렬 멀티 프로세서 구조의 스레드(thread) 그룹에 할당하는 할당부; 및
    상기 할당된 스레드 그룹이 상기 정렬된 레이 각각에 대한 레이 캐스팅을 실행하도록 상기 할당된 스레드 그룹에 제어 명령을 전달하는 실행 제어부;
    를 포함하는 레이 캐스팅의 가속화 장치.
  13. 제12항에 있어서,
    상기 계산부는
    상기 레이 각각이 제1 방향에서 상기 유효한 볼륨과 교차하는 제1 교차점을 획득하고, 상기 레이 각각이 제2 방향에서 상기 유효한 볼륨과 교차하는 제2 교차점을 획득하며, 상기 레이 각각에 대하여 상기 제1 교차점과 상기 제2 교차점 간의 거리를 상기 길이 정보로서 생성하는 것
    을 특징으로 하는 레이 캐스팅의 가속화 장치.
  14. 제12항에 있어서,
    상기 계산부는
    상기 레이 각각이 교차하는 복셀들 중 밝기값이 기준 조건을 충족하는 복셀을 상기 유효한 볼륨으로서 생성하는 것
    을 특징으로 하는 레이 캐스팅의 가속화 장치.
  15. 전체 볼륨 데이터로부터 렌더링 계산의 양에 유의미한 영향을 미치는 유효한(effective) 볼륨의 표면에 대한 정보를 수집하여 표면 모델(surface model)을 생성하는 표본 모델 생성부;
    뷰 포인트에 대응하는 2차원 영상(scene)의 픽셀 각각에 상기 표면 모델에 대한 레이 캐스팅(Ray-Casting)을 적용하기 위하여, 제1 방향과 제2 방향 각각에 대하여 상기 픽셀 각각의 상기 표면 모델에 대한 깊이 정보(depth information)를 획득하는 획득부; 및
    상기 제1 방향과 상기 제2 방향 각각에 대하여 획득된 상기 깊이 정보를 이용하여 레이 캐스팅을 적용하기 위한 상기 픽셀 각각에서 발사된 레이가 상기 유효한 볼륨과 교차하는 제1 구간의 길이 정보를 계산하는 계산부;
    를 포함하는 레이 캐스팅의 가속화 장치.
KR1020150076450A 2015-05-29 2015-05-29 레이 캐스팅의 가속화 방법 및 장치 KR101711060B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1020150076450A KR101711060B1 (ko) 2015-05-29 2015-05-29 레이 캐스팅의 가속화 방법 및 장치
US15/168,988 US10127710B2 (en) 2015-05-29 2016-05-31 Processor and method for accelerating ray casting

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1020150076450A KR101711060B1 (ko) 2015-05-29 2015-05-29 레이 캐스팅의 가속화 방법 및 장치

Publications (2)

Publication Number Publication Date
KR20160140169A KR20160140169A (ko) 2016-12-07
KR101711060B1 true KR101711060B1 (ko) 2017-02-28

Family

ID=57398996

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020150076450A KR101711060B1 (ko) 2015-05-29 2015-05-29 레이 캐스팅의 가속화 방법 및 장치

Country Status (2)

Country Link
US (1) US10127710B2 (ko)
KR (1) KR101711060B1 (ko)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105115428B (zh) * 2015-04-24 2018-02-02 上海工程技术大学 面向辐对称电缆切面绝缘层厚度的并行图像测量方法
EP3424403B1 (en) * 2016-03-03 2024-04-24 Sony Group Corporation Medical image processing device, system, method, and program
US10650571B2 (en) 2016-03-25 2020-05-12 Outward, Inc. Adaptive virtual camera sensor
WO2018123801A1 (ja) * 2016-12-28 2018-07-05 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカ 三次元モデル配信方法、三次元モデル受信方法、三次元モデル配信装置及び三次元モデル受信装置
US10489877B2 (en) * 2017-04-24 2019-11-26 Intel Corporation Compute optimization mechanism
CN108470207A (zh) * 2018-03-28 2018-08-31 天津大学 一种人工鱼群算法的并行实现方法
CN109675321B (zh) * 2018-12-18 2022-02-15 网易(杭州)网络有限公司 游戏中同屏显示人数的控制方法和装置
US10991133B2 (en) * 2019-01-25 2021-04-27 Siemens Healthcare Gmbh Volume rendering from three-dimensional medical data using quantum computing
US11263800B2 (en) * 2019-12-27 2022-03-01 Intel Corporation Apparatus and method for quantized convergent direction-based ray sorting
US11250629B2 (en) * 2020-05-22 2022-02-15 Seek Xr, Llc Systems and methods for optimizing a model file
US11727535B2 (en) * 2021-01-14 2023-08-15 Nvidia Corporation Using intrinsic functions for shadow denoising in ray tracing applications
GB2607350B (en) * 2021-06-04 2023-12-13 Advanced Risc Mach Ltd Graphics processing

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010176663A (ja) 2009-01-28 2010-08-12 Internatl Business Mach Corp <Ibm> 変化する視野に基づいてフレーム間の光線追跡のアクセラレーション・データ構造体を更新する方法
JP2010259809A (ja) 2009-05-11 2010-11-18 Medison Co Ltd ボリュームデータをレンダリングする超音波システムおよび方法
KR101075014B1 (ko) 2010-09-30 2011-10-21 주식회사 레이 병렬 광선투사법과 공간 도약을 이용한 엠아이피 가시화의 가속화 방법

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100261278B1 (ko) 1997-12-05 2000-07-01 정선종 볼륨 데이터의 레이 캐스팅을 위한 피.에이.알.씨.알고리즘에서의 스캔 컨버팅 방법
US6313841B1 (en) * 1998-04-13 2001-11-06 Terarecon, Inc. Parallel volume rendering system with a resampling module for parallel and perspective projections
KR100674428B1 (ko) 2005-09-28 2007-01-25 연세대학교 산학협력단 계층적 자료구조의 결합을 이용하여 적응적으로 부하균형된 병렬 볼륨 렌더링 방법.
KR100656861B1 (ko) 2005-11-22 2006-12-14 주식회사 메디슨 볼륨 데이터를 렌더링하는 영상 처리 시스템 및 방법
US7830379B2 (en) * 2006-09-19 2010-11-09 Caustic Graphics, Inc. Architectures for parallelized intersection testing and shading for ray-tracing rendering
KR100767040B1 (ko) 2006-11-10 2007-10-15 인하대학교 산학협력단 볼륨 렌더링 방법
US8339391B2 (en) * 2007-07-27 2012-12-25 Siemens Medical Solutions Usa, Inc. Method and system for direct rendering of multi-volume data
US7912264B2 (en) 2007-08-03 2011-03-22 Siemens Medical Solutions Usa, Inc. Multi-volume rendering of single mode data in medical diagnostic imaging
KR101717695B1 (ko) 2008-09-25 2017-03-17 씨에이이 헬스케어 캐나다 인코포레이티드 의료 영상의 시뮬레이션
US8587588B2 (en) * 2009-08-18 2013-11-19 Dreamworks Animation Llc Ray-aggregation for ray-tracing during rendering of imagery
US8564617B2 (en) 2010-01-12 2013-10-22 International Business Machines Corporation Accelerated volume rendering
US9177416B2 (en) * 2010-03-22 2015-11-03 Microsoft Technology Licensing, Llc Space skipping for multi-dimensional image rendering
EP2648107B1 (en) 2012-04-05 2016-09-28 Siemens Healthcare GmbH Volume rendering on shared memory systems with multiple processors by optimizing cache reuse
KR101353303B1 (ko) * 2012-07-09 2014-01-22 삼성전자주식회사 그래픽 처리 유닛, 그래픽 처리 유닛을 갖춘 영상 처리 장치 및 그래픽 처리 유닛을 이용한 영상 처리 방법
KR101524085B1 (ko) 2013-01-04 2015-05-29 삼성메디슨 주식회사 의료 영상 제공 장치 및 방법
KR101666395B1 (ko) 2013-10-14 2016-10-14 한국전자통신연구원 멀티코어 환경에서 우선순위 기반의 실시간 운영체제의 태스크 스케줄링 방법
US8842117B1 (en) * 2014-02-13 2014-09-23 Raycast Systems, Inc. Computer hardware architecture and data structures for lookahead flags to support incoherent ray traversal
KR102175162B1 (ko) * 2014-03-24 2020-11-05 삼성전자주식회사 볼륨 렌더링 장치 및 그 동작방법

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010176663A (ja) 2009-01-28 2010-08-12 Internatl Business Mach Corp <Ibm> 変化する視野に基づいてフレーム間の光線追跡のアクセラレーション・データ構造体を更新する方法
JP2010259809A (ja) 2009-05-11 2010-11-18 Medison Co Ltd ボリュームデータをレンダリングする超音波システムおよび方法
KR101075014B1 (ko) 2010-09-30 2011-10-21 주식회사 레이 병렬 광선투사법과 공간 도약을 이용한 엠아이피 가시화의 가속화 방법

Also Published As

Publication number Publication date
US20160350960A1 (en) 2016-12-01
KR20160140169A (ko) 2016-12-07
US10127710B2 (en) 2018-11-13

Similar Documents

Publication Publication Date Title
KR101711060B1 (ko) 레이 캐스팅의 가속화 방법 및 장치
US7333107B2 (en) Volume rendering apparatus and process
KR102080851B1 (ko) 레이 추적의 스케쥴링을 위한 장치 및 방법
Schwarz et al. Fast parallel surface and solid voxelization on GPUs
US9842424B2 (en) Volume rendering using adaptive buckets
CN110458934B (zh) 用隐式几何体进行3d图形渲染
Wang et al. GPU-based offset surface computation using point samples
US20190340812A1 (en) Apparatus and method for hierarchical adaptive tessellation
Kainz et al. Ray casting of multiple volumetric datasets with polyhedral boundaries on manycore GPUs
WO2012158868A2 (en) Rendering tessellated geometry with motion and defocus blur
JP2009032122A (ja) 画像処理装置、画像処理方法およびプログラム
Young et al. GPU-accelerated generation and rendering of multi-level voxel representations of solid models
CN103871019B (zh) 用于处理路径图像以促进光栅化的方法和设备
US11854141B2 (en) Early release of resources in ray tracing hardware
US9978184B2 (en) Methods and apparatuses for marking target in 3D image
Mensmann et al. An advanced volume raycasting technique using GPU stream processing
US10026214B2 (en) Ray tracing apparatus and method
Shin et al. Acceleration techniques for cubic interpolation MIP volume rendering
KR102479395B1 (ko) 선호된 프리미티브 배치 비닝 및 분류를 갖는 하이브리드 렌더
KR101075014B1 (ko) 병렬 광선투사법과 공간 도약을 이용한 엠아이피 가시화의 가속화 방법
Nery et al. Massively parallel identification of intersection points for GPGPU ray tracing
Preto et al. Object identification in binary tomographic images using gpgpus
Inui et al. A comparison of two methods for geometric milling simulation accelerated by GPU
KR101540941B1 (ko) 병렬 쉬어 와프 분해를 이용한 볼륨 렌더링 방법
Lukac Hybrid visualization of sparse point-based data using gpgpu

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
FPAY Annual fee payment

Payment date: 20171026

Year of fee payment: 6