KR100261077B1 - 볼륨 렌더링 장치 및 이에 적합한 방법 - Google Patents

볼륨 렌더링 장치 및 이에 적합한 방법 Download PDF

Info

Publication number
KR100261077B1
KR100261077B1 KR1019960012939A KR19960012939A KR100261077B1 KR 100261077 B1 KR100261077 B1 KR 100261077B1 KR 1019960012939 A KR1019960012939 A KR 1019960012939A KR 19960012939 A KR19960012939 A KR 19960012939A KR 100261077 B1 KR100261077 B1 KR 100261077B1
Authority
KR
South Korea
Prior art keywords
ray
volume
data
sub
interpolation
Prior art date
Application number
KR1019960012939A
Other languages
English (en)
Other versions
KR970071296A (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 KR1019960012939A priority Critical patent/KR100261077B1/ko
Priority to JP9097480A priority patent/JP2926637B2/ja
Publication of KR970071296A publication Critical patent/KR970071296A/ko
Application granted granted Critical
Publication of KR100261077B1 publication Critical patent/KR100261077B1/ko

Links

Classifications

    • 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
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4007Scaling of whole images or parts thereof, e.g. expanding or contracting based on interpolation, e.g. bilinear interpolation

Landscapes

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

Abstract

병렬 처리 및 파이프라인 기법에 의한 새로운 벤더링 장치 및 이에 적합한 트리리니어 보간 방법이 개시된다.
본 발명에 따른 볼륨 렌더링 장치는 호스트 시스템에서 제공되는 분할된 복수의 서브 볼륨 데이터를 병렬 및 파이프라인 시퀀스에 의해 렌더링 처리하는 볼륨 렌더링 장치에 있어서, 호스트 시스템에서 다운로드된 각각의 서브 볼륨 데이터를 처리하는복수의 서브 볼륨 처리부 및 상기 서브 볼륨 처리부들에서 처리된 결과를 합성하여 출력하는 조합부를 포함한다.
본 발명에 따른 볼륨 데이터 세트의 랜더링 장치는 분할된 볼륨 데이터 세트를 각각 처리하는 서브 볼륨 처리부를 복수개 구비하고, 이들이 파이프라인 구조에 의해 동작하도록 함으로써 메모리 액세스의 병목현상을 저감시키는 효과가 있다.

Description

볼륨 렌더링 장치 및 이에 적합한 방법
제1도는 본 발명에 따른 볼륨 렌더링 장치의 바람직한 실시 예를 보이는 블록도이다.
제2도는 본 발명의 볼륨 렌더링 장치에 있어서 볼륨 데이터와 분할된 볼륨 데이터의 관계를 보이기 위한 도면이다.
제3도는 종래의 볼륨 렌더링 방법을 도식적으로 보이기 위한 도면이다.
제4도는 제1도에 도시된 SGM의 집합에 의해 구성된 볼륨 데이터 뱅크의 메모리 할당을 도식적으로 보이기 위한 도면이다.
제5도는 제1도에 도시된 SVM에 볼륨 데이터를 저장하는 순서를 도식적으로 보이기 위한 도면이다.
제6도는 스크린 상의 스캔라인에 의해 형성된 레이 플레인과 볼륨 데이터 세트의 관계를 도식적으로 보이기 위한 도면이다.
제7도는 레이 플레인의 경사도에 따른 셀 교차 상태를 도식적으로 보이기 위한 도면이다.
제8도는 레이 플레이 상의 레이 세그먼트를 도식적으로 보이기 위한 도면이다.
본 발명은 볼륨 데이터 세트(volume data set)의 렌더링(rendering)에 관한 것으로서 더욱 상세하게는 병렬 처리 및 파이프라인 기법에 의헤 메모리 액세스의 병목현상과 연산 처리의 병목현상을 저감시키는 새로운 볼륨 렌더링 장치 및 이에 적합한 트리리니어 보간 방법에 관한 것이다.
볼??퓸 렌더링을 통하여 처리되는 볼륨 데이터 세트들은 통상 3차원 공간상의 균일한 격자 구조로 형성된 스칼레 데이터(scalar data)들의 집합체이다. 볼륨 데이터 세트에는 의학용 인체 데이터를 비롯하여 화학 분자구조, 기상관측 데이터 등 여러 분야의 데이터 세트들이 포함되고 있으며 그 크기는 약 300Kbyte~300Mbyte에 달한다.
이러한 볼륨 데이터 세트의 랜더링은 표면화된 기본 요소(priitive)들의 렌더링을 통해 화면을 완성하는 다각형 렌더링(polygon rendering)과는 달리 볼륨 데이터 세트 자체가 렌더링을 위한 기본 요소로 사용되므로 연산의 양도 그만큼 많아지게 된다. 막대한 양의 볼륨 데이터를 처리하기 위해 큰 메모리 용량과 빠른 연산 속도를 지닌 고성능의 슈퍼 컴퓨터, 대규모의 병렬 처리 구조를 가지는 시스템, 또는 네트워크로 묶여진 많은 컴퓨터들이 사용되어져 왔다.
그러나 이렇게 큰 메모리 용량과 빠른 연산 속도를 지녔음에도 불구하고 범용의 시스템으로는 만족할 만한 처리 속도를 거두지 못하자 최근에는 볼륨 렌더링을 위한 전용의 시스템들이 개발되고 있다.
최근 소개되고 있는 볼륨 렌더링 전용의 시스템들에는 메모리 액세스의 병목현사을 해소하기 위해 소오스 볼륨 데이터 세트의 3배에 달하는 특수한 메모리를 사용허가 n3의 볼륨 사이즈의 데이터 처리를 위해 n개의 메모리 뱅크를 이용하여 처리하는 것, 연산 처리의 병목현상을 해소하기 위해 거대한 크기의 룩업테이블을 가지는 주문형 집적회로를 설치하는 것들이 있다.
이러한 전용의 시스템들은 메모리 액세스의 병목현상을 해결하기 위한 특별한 볼륨 메모리 혹은 초고밀도의 특수 주문형 집적회로의 제작을 전체로 개발되고 있기 때문에 많은 경비와 시간을 필요로 하거나 혹은 다음 세대의 칩 제작 기술을 기다려야 하는 문제점들이 있다.
본 발명은 적어도 상기의 문제점들의 일부를 해결하기 위하여 창출된 것으로서 병렬 처리 기법에 의해 메모리 액세스의 병목현상을 해소하고, 파이프라인 기법에 의해 연산 처리의 병목현상을 저감시키는 새로운 렌더링 장치를 제공하는 것을 그 목적으로 한다.
본 발명의 다른 목적은 상기의 렌더링이 장치에 적합한 렌더링 방법을 제공하는 것에 있다.
상기의 목적을 달성하는 본 발명에 따른 볼륨 렌더링 장치는
상기의 다른 목적을 달성하는 본 발명에 따른 볼륨 렌더링 방법은 이하 첨부된 도면을 참조하여 본 발명을 상세히 설명한다.
제1도는 본 발명에 따른 볼륨 렌더링 장치의 바람직한 실시예를 보이는 블록도이다. 제1도에 도시된 장치는 볼륨 데이터를 x,y 및 z축 방향으로 8개의 서브 볼륨 데이터로 분할하여 처리하는 예를 보이는 것이다.
제1도에 도시된 장치는 분할된 서브 볼륨 데이터의 각각을 처리하는 8개의 서브 볼륨 처리부(100 ~ 800), 서브 볼륨 처리부(100 ~ 800)에서 처리된 결과를 합성하여 출력하는 조합부(900)를 포함한다.
또한, 각 서브 볼륨 처리부는 시각 정보 처리 및 호스트 시스템(도시되지 않음)과의 인터페이스를 위한 시각 시스템 관리자(visual system manager; 이하 VSM이라 함)(110), 호스트 시스템에서 다운 로드된 서브 볼륨 데이터(voxel data)의 저장을 위한 서브 볼륨 메모리(sub-volume memory;이하 SVM이라 함(20), SVM(20)에 저장된 서브 볼륨 데이터로부터 레이 플레인 추출을 수행하는 레이 플레인 처리기(ray plane processor; 이하 RPP라 함)(30), RPP(30)에 의해 생성된 레이 플레인 데이터를 저장하는 레이 플레인 메모리(ray plane memory; 이하 RPM이라 함)(40), RPM(40)에 저장된 레이 플레인 데이터로부터 그 플레인 상에 존재하는 모든 레이(ray)와 일정 간격을 지닌 x,y,z 축과의 교차에 의해 발생하는 세그먼트 데이터(segment data)를 계산하는 레이 세그먼트 발생기(ray segment generator; 이하 RSG라 함)(50), RSG(50)에 의해 발생된 레이 세그먼트 데이터를 선입선출 버퍼(frist in first out buffer; 이하 F1F0라 함(60)을 통해 제공받아 그 레이 세그먼트 내의 정해진 샘플링 포인트의 데이터를 보간에 의해 구하는 레이 세그먼트 구성부(ray segment compositor; 이하 RSC이라함(70), RSC(70)의 결과값을 이용하여 세이딩 처리(shading operation) 및 합성 처리(composition operation)를 수행하는 레이 합성기(ray compositor; 이하 RC라 함)(80), 그리고 세이딩 및 합성 처리의 수행시 필요한 블투명도(opacity)를 저장하고 있는 룩업테이블(look-up table; 이하 LUT라 함)(90)을 포함한다.
제1도에 도시된 장치의 동작을 상세히 설명한다. 본 발명에 따른 볼륨 렌더링 장치는 각 서브 볼륨 처리부 상에서 파이프라인 처리 시퀀스를 유지하며 전체적으로 객체 단위의 병렬 처리 구조이다.
512×512×512크기의 볼륨 데이터를 처리하는 경우에 각기 256×256×256크기의 서브 볼륨 데이터를 처리하는 8개의 서브 볼륨 처리부를 사용한다.
제2도는 볼륨 데이터 세트와 서브 볼륨 데이터와의 관계를 도식적으로 보이기 위한 도면이다. 제2도에 도시된 바와 같이 512×512×512크기의 볼륨 데이터는 8개의 서브 볼륨 데이터로 분할되어 각각 정해진 8개의 서브 볼륨 처리부에 다운 로딩된다. 각 서브 볼륨 처리부는 입력받은 서브 볼륨 데이터를 처리하며, 처리된 결과는 후단의 합성부(900)에서 합성되어 최종적으로 화면상의 한 픽셀 값을 발생하게 된다.
볼륨 렌더링을 수행하기 위해 3차원 공간 내의 원 볼륨 데이터세트가 현재의 뷰(view)환경에 따라 2차원의 스크린 상에 투영되어져야 한다. 이를 위해 레이 캐스팅(ray casting)방법에서는 기본적으로 뷰포인트(view point)로부터 출발하는 각각의 뷰 레이(view ray)의 궤적상에서 볼륨 데이터 세트를 일정 간격으로 횡절(traverse)하면서 원 볼륨 데이터로부터 현재의 뷰 환경에 맞는 새로운 중간 데이터 세트(intermediate data set)를 발생한다. 이를 볼륨 재구성(volume reconstruction)이라 하며 보통 원 볼륨 데이터 세트의 3단계 선형 보간(tri-linear interpolation)을 이용하여 수행하고 있다.
제3도는 종래의 볼륨 재구성 방법을 도식적으로 보이기 위한 도면이다. 제3도에 도시된 종래의 볼륨 재구성 방법에 있어서는 임의의 레이 상에 있는 샘플링 포인트 s0의 값은 인접한 원 볼륨 데이터(original voxel data)를 이용하여 식(1)에 의해 구하고 있다.
((υ0(1.0-Dz)+υ4×Dz×(1.0-Du)+(υ2×(1.0-Dz)+υ6×Dz))×Dy)×(1.0-Dx))+((υ1(1.0-Dz)+υ5×Dz×(1.0-Du)+(υ3×(1.0-Dz)+υ7×Dz)×Dy)×Dx)
----(1)
식(1)에 보여지는 보간 방법은 3단계 보간 방법은 3단계 보간 방법이라고 하는 것으로서 많은 연산을 필요로 한다.
본 발명에서는 레이 캐스팅 방법에 의한 볼륨 렌더링 장치의 구현시 어려움을 주는 3단계 선형 보간을 서브 볼륨 처리부의 각 파이프라인 스텝에서 단순한 선형 보간으로 분배하여 산술 연산의 병목현상을 해소하도록 하였다.
레이 캐스팅 방법에 의한 볼륨 렌더링에서 스크린 상에 투영되는 하나의 스캔라인은 뷰잉 프로젝션의 방법(parallel 혹은 perspective)에 관계없이 3차원 공간 내에서 한 평면을 형성하며, 이 평면은 제6도에 도시된 바와 같이 볼륨 데이터 세트와 교차(intersection)된다.
본 발명에 따른 보간 방법은 다음의 스텝에 따라 진행된다.
첫 번째로는, 플레인 파라메터를 참조하여 볼류 데이터 세트와 교차하는 점(교차점)의 좌표를 구하고, 인접하는 두 개의 voxel data를 이용하여 교차점에서의 샘플링 값을 선형 보간에 의해 구한다.(y축 보간)
두 번째로는 플레인 상에 존재하는 각 뷰 레이 파라메터를 참조하여 레이와 교차하는 축상의 인접된 2점의 값을 이용하여 선형 보간을 행한다.(x축 보간)
첫 번째와 두 번째 과정의 수행 결과 제8도에 도시된 바와 같이 스크린 상의 스캔라인에 의해 형성된 플레인 상에 존재하는 모든 레이는 작은 레이 세그먼트로 분할되며 레이 세그먼트의 양 끝점은 결과적으로 original voxel data로부터의 쌍일차 선형 보간(bilinear interpolation)된 값을 갖게 된다.
세 번째로는 레이 샘플링 정보를 참조하여 두 번째 과정에서 계산된 레이 세그먼트 사이의 한 점을 선형 보간에 의해 계산한다.
세 번째 과정에 의해 결과된 레이 세그먼트 내의 보간 결과 값은 칼라 정보 및 불투명도를 계산하는 데 제공된다.
획득된 칼라 정보와 기울기 벡터(gradient vector)는 세이딩 처리에 제공되고, 마지막으로 불투명도를 참조하여 한 뷰 레이 상에서 샘플링/세이딩된 모든 점을 식(2)에 따라 합성한다.
colori+1=colori+colorc×opacityc×(1.0+opacityi)-----(2)
opacityi+1=opacityi+opacityc×(1.0-opacityi)
여기서, 기울기 벡터은 첫 번째 내지 세 번째 과정의 샘플링 값과 동일한 과정을 통하여 계사된다.
제1도에 도시된 장치에 있어서 VSM(10)은 호스트 시스템 인터페이스를 통하여 뷰 파라메터 변경에 따른 플레인 파라메터 및 뷰레이 파라메터, 및 뷰 샘플링 파라메터를 발생하여 각각 RPP(30), RSS(50), 및 RSS(70)에 제공하며, 분류 파라메터(classification parameter)변경에 따른 LUT(90)의 업데이트 기능을 갖는다.
본 발명에서 적용되고 있는 voxel gradient vector는 구하고자 하는 voxel 위치에서 각 축에 대응하는 인접된 2점을 이용하여 결정된다.
예를 들어 제4도에 도시된 voxel point v7에서의 gradient vector(G7x, G7y, G7z)는 각각 G7x=(v6-va)/2.0, G7y(v5-퓨)/2.0, G7z=(v3-vc)/2.0이 된다.
각 서브 볼륨 처리부는 기본적으로 n3/8 크기의 voxel data를 SVM(20)에 저장하고 있으나 제1도의 sub-volume #0을 처리하는 서브 볼륨 처리부는 각 축의 n/2 번째에 대응하는 voxel location에서의 기울기 벡터를 구하기 위하여 sub-volume #1, sub-volume #2, sub-volume #6에 있는 voxel data를 참조하여야 한다.
본 발명의 장치에서는 각 서브 볼륨 처리부간의 데이터 처리의 독립성을 보장하기 위해 인접 서브 볼륨 사이의 voxel data를 공유하도록 하여 각 서브 볼륨 처리부는 총 n3/8+3(n/2)2의 voxel 데이터를 저장할 수 있는 메모리 공간을 가진다.
따라서, 서브 볼륨 메모리 뱅크는 총 8개의 뱅크로 구성되며 각 voxel data의 뱅크 할당은 제4도에 표시된 숫자에 해당하는 메모리 뱅크로 할당되어 한 번의 메모리 액세스로 8개의 voxel data를 읽어 올 수 있게 된다. 여기서, 서브 볼륨 메모리는 다이내믹 RAM을 사용한다.
DRAM의 액세스 속도를 최대한 이용하기 위해서는 페이지 모드에 의한 연속 액세스를 하지 않으면 안된다. 이를 위해서 DRAM의 row(page)에 저장하여야 하는 voxel data는 RPP(30)가 보간된 레이플레인을 발생시킬 때 필요한 voxel data의 순서에 따라 저장하게 된다.
RPP(30)에서 보간된 레이 플레인을 형성하는 순서는 볼륨과 플레인이 교차되는 최외곽으로부터 볼륨의 중심까지 나선 형태로 처리하게 된다. 결국, DRAM의 voxel data 저장 순서는 제5도에 도시된 바와 같이 x-z평면상에 존재하는 원 볼륨 데이터 슬라이스를 외곽으로부터 시작하여 중심부에 도달하는 순서로 저장하게 된다.
이러한 x-z평면상의 나선 형태 저장 방법은 레이 플레인의 경사(slope)가 x-z평면에 근접할 경우 최대의 페이지 모드 액세스 효과를 나타내며, 레이 플레인의 경사가 y-z 및 x-y 평면에 근접할 경우에도 x 또는 y축의 한 축에 대해서 페이지 모드 액세스를 할 있게 한다.
RPP(30)는 SVM(20)으로부터 voxel data를 읽어 들여 레이 플레인과 볼륨이 교차하는 점의 샘플링 값을 origina voxel data를 이용하여 보간 방법에 의하여 구하는 기능을 수행한다. 볼륨 분류(volume classification) 및 세이딩 처리에 필요한 기울기 벡터도 교차점의 샘플링 값을 구하는 방법과 동일한 방법을 사용하여 계산한다.
RPP(30)는 볼륨과 레이 플레인이 교차하는 교차점의 샘플링 값을 계산하기 위해 VSM(10)으로부터 레이 플레인에 관한 파라메터(플레인 파라메터)를 입력받는다.
플레인 파라메터 중에는 각 축에 대한 레이 플레인의 경사값을 비교할 때 경사값이 가장 작은 축에 대한 정보, 이 축에 대한 나머지 축의 경사율(slope rate), 그리고 레이 플레인과 볼륨이 처음으로 교차하는 점(처리 시작점)에 대한 좌표가 포함된다.
즉, 제6도에 도시된 바와 같이 y축에 대한 레이 플레인의 경사값이 가장 작을 경우 RPP(30)는 VSM(10)으로부터 현재 처리되어 하는 레이 플레인의 중심 축은 Y축이라는 정보와 dy/dx, dy/dz, 처리 시작점(xs, ys, zs)을 입력받게 된다.
제9도는 제1도에 도시된 RPP의 상세한 구성을 보이는 블록도이다. 제9도에 도시된 장치는 레이 플레인 파라메터 및 voxel data 저장을 위한 레지스터 파일들(register file), 레이 플레인과 볼륨의 교차점을 발생시키는 좌표 발생기(coordinates generator), 4개의 선형 보간기(linear interpolator), 서브 볼륨 메모리와의 인터페이스를 위한 로직, 그리고 레이 플레인 메모리와의 인터페이스를 위한 로직들로 구성된다.
처리 시작점을 입력받은 RPP(30)는 최초로 SVM(20)로부터 12개의 voxel data를 입력한다. 제6도의 경우 처리 시작점의 좌표가 (xs, ys, zs)이므로 12개의 voxel data 좌표는(xs, ys-Dx, zs), (xs, ys+(1.0-Dx)zs)의 2개 좌표를 기준으로 하여 각 축 방향으로 +1.0, -1.0의 voxel 좌표가 된다. 입력된 voxel data는 4개의 보간기에 입력되어 처리 시작점(xs, ys, zs)에서의 보간된 기울기 벡터 및 샘플링 값의 계산에 사용된다.
제6도의 경우 처리 시작점 다음으로 처리되어야 하는 2개의 기준 voxel은 Vs0, Vs1이 된다. 이 경우 처리 시작점의 기준 voxel (xs, ys-Dx, zs), (xs, ys+(1.0-Dx), zs)와 Vs0, Vs1은 처리 시작점의 처리를 위하여 이미 RPP(30)내에 입력되어진 상태이므로 새로이 입력될 voxel data의 수는 8개가 된다.
새로 입력되어야 하는 8개의 voxel data는 서브 볼륨 데이터의 로딩시 서로 다른 8개의 메모리 뱅크에 저장되어 있으므로 한 번의 메모리 사이클로 액세스할 수 있으며, Vs0와 Vs1은 (xs, ys-Dx, zs)과 (xs, ys+(1.0-Dx), zs) 같이 메모리의 동일 페이지 내에 존재하므로 페이지 모드 액세스로 읽어 들일 수 있게 된다. 처리 시작점으로부터 다음 점의 좌표는 미리 저장되어 있는 dy/dx, dy/dz를 이용하여 계산한다.
RPM(40)은 RPP(30)에서 계산된 보간된 기울기 벡터 및 샘플링 값을 저장하는 곳이며, 한 레이 플레인에 대해 계산된 모든 결과가 저장된다.
제7도에서 레이 플레인 Ra, Rb, Rc와 볼륨 데이터 Y-Z 플레인 교차의 경우를 고려하면 레이 플레인 Ra와 Rc는 Z축 상의 voxel data 구간내에서 볼륨의 Z축 평면과 교차하지 않으나 레이 플레인 Rb는 voxel data V3과 Vb 구간 내에서 교차점 1을 발생시키고 있다.
이 경우 구간 Ca 사이의 레이 플레인 상에서 샘플링 포인트가 발생하면 샘플링 포인트의 샘플링 값은 voxel data vq, v3, va, vb에 의한 보간이 되어야 하고, 구간 Cb 사이의 레이 플레인 상에서는 voxel data v3, v1', vb, vc에 의한 계산이 되어야 한다.
결국 서브 볼륨의 크기가 n3일 경우 한 레이 플레인을 처리, 저장하기 위해서는 2n3개의 보간된 기울기 벡터 및 샘플링 값을 저장할 공간이 필요하며, RPP(30)와 RSG(50) 사이의 메모리 액세스 충돌을 해소하기 위해 4n2의 이중 버퍼(double buffer)로 구성된다.
RSG(50)는 RPP(30)로부터 계산되어 RPM(40)에 저장된 보간된 데이터 세트를 읽어 들여 레이 플레인 상에 존재하는 레이와 볼륨 데이터 세트격자 구조의 교차점에 대해 다시 한 번의 보간을 통해 제8도에 도시된 바와 같이 3차원 공간상의 한 레이를 여러 조각의 레이로 분할(segmentation)한다.
이 때 RSG(50)는 레이 분할에 필요한 각 렝의 파라메터(뷰 레이파라메터)를 VSM(10)에서 제공받는다. VSM(10)으로부터 입력되는 뷰 레이 파라메터에는 제8도에 도시된 바와 같이 처리되어야 하는 레이, 볼륨 데이터 세트의 처리 시작점(xs, ys, zs), 레이의 진행 방향에 대한 가장 큰 증가율을 지닌 축(z), 이 축의 증가율에 대하 나머지 축의 증가율(dy/dx, dy/dz)가 포함된다.
제8도에 도시된 레이 Rb의 경우는 제7도에 도시된 레이 Rb의 경우처럼 볼륨의 y평면을 교차하는 경우이다. 이 경우 RSG(50)는 2개의 세그먼트 값을 발생한다. 하나의 값은 제7도에서 voxel value v1, v3, va, vb에 의해 발생된 레이 플레인 내의 보간된 값을 이용하고, 다른 하나는 v3, v1', vb, vc에 의해 발생된 값을 이용한다.
RSG(50) 내에서 수행되는 모든 연산을 RPP(30)에 의해 발생된 기울기 벡터 및 voxel 셈플링 값을 이용한 선형 보간이다. 이에 따라 RSG(50)의 구조는 RPP(30)에서 외부 인터페이스 로직을 제외한 구조와 동일한 형태를 갖는다. 이렇게 발생된 데이터는 F1F0(60)를 통해 RSS(70)로 입력된다.
RSS(70)는 레이 세그먼트 양단의 데이터 즉 쌍일차의 선형 보간된 기울기 벡터 및 샘플링 값을 다시 선형 보간하여 샘플링할 위치의 기울기 벡터 및 샘플링 값을 구하게 된다.
RC(80)는 RSS(60)로부터 계산되고 출력되는 한 레이 상의 모든 샘플링 포인트의 기울기 벡터 및 보간된 샘플링 값을 이용하여 세이딩 동작을 수행하며, 수행된 결과는 식(2)에 따라 조합된다.
레이 상에서 샘플링된 샘플링 값 및 기울기 벡터의 크기는 LUT(90)의 color 및 opacity를 읽어 오는 데 사용된다. 이렇게 LUT(90)로부터 입력된 color는 제10도에 도시된 RC(80)내의 퐁 세이딩 로직(Phong shading logic)에 전달되어 세이딩 처리에 사용된다.
레이 상의 한 샘플링 포인트에 대한 세이딩 처리의 결과는 그 포인터에서의 opacity 값과 함께 조합 로직에 전달되어 조합 처리에 사용된다.
LUT(90)는 볼륨의 voxel value에 대한 color 및 opacity value를 저장하고 있으며 렌더링 프레임 단위로 그 값을 변경할 수 있도록 한다.
볼륨 분류를 위한 opacity 세트 업은 식(3)에 의거하여 계산, 저장된다.
if Ds??D(i)??De then a(i)=??G(i)??×[@e(D(i)-Ds)/(De-Ds))+@s(De-D(i))/De-Ds))]else a(i)=0
-----(3)
여기서 G(i)는 레이 상의 샘플링 포인트에서의 기울기 벡터이고, D(i)는 샘플링 포인트에서의 샘플링 값이고, @s는 Ds의 voxel value에 설정된 opacity의 경계값이고, @e는 De의 voxel value에 설정된 opacity의 경계값이다.
레이 캐스팅에 의한 볼륨 랜더링 전용 시스템의 구현시 가장 문제가 되는 것은 커다란 볼륨 메모리로부터 데이터를 읽어 올 때 발생하는 메모리 액세스의 병목현상과 볼륨 재구성시 치러야 하는 많은 연산량에 의한 연산처리의 병목현상이라 할 수 있다.
본 발명이 가지는 시스템과의 가장 큰 차이점은 볼륨 분할에 의한 객체 단위 병렬 처리 및 파이프라인 구조이다. 즉, 병렬 처리 기법에 의한 처리 단위별 볼륨 메모리의 분산은 메모리 액세스의 병목현상을 최소화하고, 파이프라인 기법에 의해 산술 연산의 부하를 볼륨 렌더링 시스템 전체에 걸쳐서 분산시킨 것이다.
특히, 파이프라인 구조에 의한 산술 연산의 분산을 고속의 시스템 구현시 필요한 주문형 집적회로의 제작을 쉽게 할 수 있게 하며, 볼륨 분할에 의한 병렬 처리 기법은 처리 단위간의 교통을 단절하여 처리부의 첨가에 따른 확장성을 보장하도록 하였다.
512×512×512의 볼륨 데이터 세트를 50㎒로 구동되는 8개의 서브 볼륨 처리부로 분할하여 처리할 경우 초당 3프레임의 렌더링 처리가 가능하다.
상술한 바와 같이 본 발명에 따른 볼륨 데이터 세트의 랜더링 장치는 분할된 볼륨 데이터 세트를 각각 처리하는 서브 볼륨 처리부를 복수개 구비하고, 이들이 파이프라인 구조에 의해 동작하도록 함으로써 메모리 액세스의 병목현상을 저감시키는 효과가 있다.
본 발명에 따른 볼륨 데이터 세트의 렌더링 방법은 볼륨 재구성에 필요한 3단계 보간 처리를 단계별로 실시하는 방법을 제공함으로써 연산 처리의 병목 현상을 저감시키는 효과가 있다.

Claims (2)

  1. 호스트 시스템에서 제공되는 분할된 복수의 서브 볼륨 데이터를 병렬 및 파이프라인 시퀀스에 의해 랜더링 처리하는 볼륨 랜더링 장치에 있어서, 호스트 시스템에서 다운 로드된 각각의 서브 볼륨 데이터를 처리하는 복수의 서브 볼륨 처리부 및 상기 서브 볼륨 처리부들에서 처리된 결과를 합성하여 출력하는 조합부를 포함하며, 상기 서브 볼륨 처리부는 시각 정보 처리 및 호스트 시스템과의 인터페이스를 수행하는 시각 시스템 관리자, 호스트 시스템에서 다운 로드된 서브 볼륨 데이터(voxel data)의 저장을 위한 서브 볼륨 메모리, 상기 서브 볼륨 메모리에 저장된 서브 볼륨 데이터로부터 레이 플레인 추출을 수행하는 레이 플레인 처리기, 상기 레이 플레인 처리기에 의해 생성된 레이 플레인 데이터를 저장하는 레이 플레인 메모리, 상기 레이 플레인 메모리에 저장된 레이 플레인 데이터로부터 그 플레인 상에 존재하는 모든 레이와 일정 간격을 지닌 x, y, z 축과의 교차에 의해 발생하는 세그먼트 데이터를 계산하는 레이 세그먼트 발생기, 상기 레이 세그먼트 발생기에 의해 발생된 레이 세그먼트 데이터를 선입선출 하는 버퍼, 상기 버퍼를 통해 레이 세그먼트 데이터를 제공받아 그 레이세그먼트 내의 정해진 샘플링 포인트의 샘플링 값 및 경사도를 보간에 의해 구하는 레이 세그먼트 구성부, 상기 레이 세그먼트 구성부의 결과값을 이용하여 세이딩 처리 및 합성 처리를 수행하는 레이 합성기 및 상기 레이 합성기에서의 세이딩 및 합성 처리의 수행시 필요한 칼라 및 불투명도를 저장하는 룩업테이블을 포함함을 특징으로 하는 볼륨 렌더링 장치.
  2. 볼륨 렌더링 장치에서 트리리니어 보간 처리를 행하는 방법에 있어서, 스크린 상의 스캔라인에 의해 형성된 플레인과 볼륨과 교차하는 샘플링 점을 구하고, 그 점에서의 샘플링 값을 인접하는 두 개의 볼륨 데이터를 이용하여 선형 보간에 의해 구하는 제1보간 단계, 상기 제1보간 단계에 의해 결과된 샘플링 값에 대하여 상기 플레인 상에 존재하는 각 뷰 레이 파라메터를 참조하여 레이와 교차하는 축상의 인접된 2점의 값을 이용하여 선형 보간을 행하여 각 레이를 복수의 레이세그먼트로 분할하는 제2보간 단계 및 레이 샘플링 정보를 참조하여 제2보간 단계에서 결과된 레이 세그먼트 사이의 한 점을 선형 보간에 의해 산출하는 제3보간 단계를 포함하는 트리리니어 보간 방법.
KR1019960012939A 1996-04-25 1996-04-25 볼륨 렌더링 장치 및 이에 적합한 방법 KR100261077B1 (ko)

Priority Applications (2)

Application Number Priority Date Filing Date Title
KR1019960012939A KR100261077B1 (ko) 1996-04-25 1996-04-25 볼륨 렌더링 장치 및 이에 적합한 방법
JP9097480A JP2926637B2 (ja) 1996-04-25 1997-04-15 ボリュームレンダリング装置及びこれに好適な方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
KR1019960012939A KR100261077B1 (ko) 1996-04-25 1996-04-25 볼륨 렌더링 장치 및 이에 적합한 방법

Publications (2)

Publication Number Publication Date
KR970071296A KR970071296A (ko) 1997-11-07
KR100261077B1 true KR100261077B1 (ko) 2000-07-01

Family

ID=19456725

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019960012939A KR100261077B1 (ko) 1996-04-25 1996-04-25 볼륨 렌더링 장치 및 이에 적합한 방법

Country Status (2)

Country Link
JP (1) JP2926637B2 (ko)
KR (1) KR100261077B1 (ko)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100490885B1 (ko) * 2002-04-17 2005-05-19 중앙대학교 산학협력단 직각 교차 실린더를 이용한 영상기반 렌더링 방법
US8619859B2 (en) 2006-07-24 2013-12-31 Samsung Electronics Co., Ltd. Motion estimation apparatus and method and image encoding apparatus and method employing the same

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3763136B2 (ja) * 1996-12-27 2006-04-05 ソニー株式会社 描画方法および描画装置
JP2001022950A (ja) * 1999-05-20 2001-01-26 Mitsubishi Electric Inf Technol Center America Inc ボリュームレンダリンググラフィックボード
JP2001109904A (ja) * 1999-10-01 2001-04-20 Mitsubishi Electric Inf Technol Center America Inc ボリューム・レンダリング・システムにおけるボリューム・データ・セットのレンダリング方法
US20020190984A1 (en) * 1999-10-01 2002-12-19 Larry D. Seiler Voxel and sample pruning in a parallel pipelined volume rendering system
KR100392516B1 (ko) * 2001-01-02 2003-07-22 주식회사 인피니트테크놀로지 보간되지 않은 볼륨 데이터의 실시간 렌더링 방법
US7385607B2 (en) 2004-04-12 2008-06-10 Nvidia Corporation Scalable shader architecture
US20080232694A1 (en) * 2007-03-21 2008-09-25 Peter Sulatycke Fast imaging data classification method and apparatus
KR101334188B1 (ko) * 2011-11-25 2013-11-28 삼성전자주식회사 볼륨 데이터의 렌더링 장치 및 방법

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100490885B1 (ko) * 2002-04-17 2005-05-19 중앙대학교 산학협력단 직각 교차 실린더를 이용한 영상기반 렌더링 방법
US8619859B2 (en) 2006-07-24 2013-12-31 Samsung Electronics Co., Ltd. Motion estimation apparatus and method and image encoding apparatus and method employing the same

Also Published As

Publication number Publication date
JPH1069547A (ja) 1998-03-10
JP2926637B2 (ja) 1999-07-28
KR970071296A (ko) 1997-11-07

Similar Documents

Publication Publication Date Title
USRE42638E1 (en) Resample and composite engine for real-time volume rendering
US4694404A (en) High-speed image generation of complex solid objects using octree encoding
Mueller et al. High-quality splatting on rectilinear grids with efficient culling of occluded voxels
US5946000A (en) Memory construct using a LIFO stack and a FIFO queue
Deering et al. The triangle processor and normal vector shader: a VLSI system for high performance graphics
JP4158006B2 (ja) ボリュームデータ集合・レンダリング装置およびその方法、ボリューム・グラフィックス・システム
US5448686A (en) Multi-resolution graphic representation employing at least one simplified model for interactive visualization applications
US5448690A (en) Image processing system enabling real-time output of image signal based on polygon image information
JP2000348202A (ja) ボクセルを有するボリューム・データ・セットのずらし−ワープ・レンダリング方法、ボリューム・データ・セットのレンダリング装置
GB2259432A (en) Three dimensional graphics processing
KR100261077B1 (ko) 볼륨 렌더링 장치 및 이에 적합한 방법
Ma et al. Massively parallel software rendering for visualizing large-scale data sets
Wan et al. High performance presence-accelerated ray casting
Meißner et al. Volume Visualization and Volume Rendering Techniques.
Tong et al. Efficiently rendering large volume data using texture mapping hardware
Kähler et al. Texture-based volume rendering of adaptive mesh refinement data
Kim et al. Fast volume rendering with interactive classification
Dzik et al. Representing surfaces with voxels
Guennebaud et al. Dynamic surfel set refinement for high-quality rendering
KR100392516B1 (ko) 보간되지 않은 볼륨 데이터의 실시간 렌더링 방법
WO2002050776A1 (en) Real-time volume rendering
Stolte et al. Robust hierarchical voxel models for representation and interactive visualization of implicit surfaces in spherical coordinates
Yagel Classification and survey of algorithms for volume viewing
EP0549189B1 (en) Solid model generation by span method using dividing cubes
Yagel Volume viewing algorithms: Survey

Legal Events

Date Code Title Description
A201 Request for examination
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 20080328

Year of fee payment: 9

LAPS Lapse due to unpaid annual fee