KR101353303B1 - 그래픽 처리 유닛, 그래픽 처리 유닛을 갖춘 영상 처리 장치 및 그래픽 처리 유닛을 이용한 영상 처리 방법 - Google Patents
그래픽 처리 유닛, 그래픽 처리 유닛을 갖춘 영상 처리 장치 및 그래픽 처리 유닛을 이용한 영상 처리 방법 Download PDFInfo
- Publication number
- KR101353303B1 KR101353303B1 KR1020120074741A KR20120074741A KR101353303B1 KR 101353303 B1 KR101353303 B1 KR 101353303B1 KR 1020120074741 A KR1020120074741 A KR 1020120074741A KR 20120074741 A KR20120074741 A KR 20120074741A KR 101353303 B1 KR101353303 B1 KR 101353303B1
- Authority
- KR
- South Korea
- Prior art keywords
- texture
- dimensional
- volume
- volume data
- unit
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T17/00—Three dimensional [3D] modelling, e.g. data description of 3D objects
- G06T17/10—Constructive solid geometry [CSG] using solid primitives, e.g. cylinders, cubes
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T11/00—2D [Two Dimensional] image generation
- G06T11/001—Texturing; Colouring; Generation of texture or colour
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/04—Texture mapping
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/08—Volume rendering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T15/00—3D [Three Dimensional] image rendering
- G06T15/50—Lighting effects
- G06T15/506—Illumination models
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Graphics (AREA)
- Geometry (AREA)
- Software Systems (AREA)
- Image Generation (AREA)
Abstract
볼륨 데이터를 슬라이싱한 복수의 2차원 슬라이스 또는 2차원 텍스쳐를 저장하는 텍스쳐 메모리; 2차원 텍스쳐로 2차원 텍스쳐 매핑을 수행하고, 복수의 2차원 슬라이스로 2차원 텍스쳐 샘플링을 수행하는 텍스쳐 매핑 유닛; 및 2차원 텍스쳐 샘플링의 샘플링값들을 이용하여 볼륨 렌더링을 수행하는 연산 프로세서를 포함함으로써, 3차원 텍스쳐 매핑 기능을 지원하지 않는 그래픽 처리 유닛에서 볼륨 렌더링을 수행하는 경우에도 렌더링 처리 속도를 향상시킬 수 있다.
Description
본 발명은 볼륨 데이터로부터 의미 있는 정보를 추출하여 가시화하는 볼륨 렌더링을 이용한 영상 처리에 관한 것이다.
볼륨 렌더링(volume rendering)은 3차원의 물체를 임의의 방향에서 바라보았을 때 입체감을 느끼게 하기 위해 2차원 투영 화면에 있는 픽셀(pixel) 각각의 색상(color)을 만들어주는 체계적인 기법이다. 볼륨 렌더링은 모든 물체가 3차원 복셀(voxel)로 이루어졌다고 가정하고, 이 복셀들이 화면의 픽셀에 어떠한 영향을 미치는 것인가를 판단하여 그 결과를 영상화에 고려하게 된다. 즉, 2차원 투영 평면의 한 픽셀의 색상을 계산하기 위해 해당하는 픽셀에 영향을 미치는 복셀을 모두 고려해야 한다. 볼륨 렌더링은 우리 눈에 보이지 않는 막 구조나 반투명한 영역들을 모델링(modeling)하고 가시화(visualization)하는데 유용하다는 장점을 가진다.
이러한 볼륨 렌더링은 크게 볼륨 데이터를 메시(mesh) 형태로 표현하는 표면 렌더링(surface rendering)과 볼륨 데이터를 메시 형태로 재구성하지 않고 직접 렌더링하는 직접 볼륨 렌더링(direct volume rendering)으로 나눌 수 있다. 직접 볼륨 렌더링 중 하나인 볼륨 광선 투사법(volume ray casting)은 고화질의 결과 영상을 생성할 수 있기 때문에 현재까지 가장 많이 사용되고 있다.
볼륨 광선 투사법에서는 시점(視點)과 디스플레이 화면의 한 픽셀을 연결한 직선을 광선이라 부르는데, 이 광선이 볼륨 데이터를 관통하면서 각 지점을 샘플링하여 얻은 밝기값에 여러 기법을 적용하여 최종 영상을 생성하게 된다.
볼륨 광선 투사법을 수행하고자 할 때에는 볼륨 데이터 내의 임의의 위치에 대한 샘플링이 필요한데, 최근 상용 그래픽 처리 장치(Graphics Processing Unit; GPU, 이하 GPU라 함)에서 지원하고 있는 3차원 텍스쳐 매핑(3D texture mapping) 기능을 이용하면 볼륨 데이터에 대한 샘플링을 보다 쉽게 처리할 수 있다.
개인용 컴퓨터(PC)용 그래픽 카드에 탑재되는 비교적 고사양의 GPU에서는 3차원 텍스쳐 매핑 기능이 OpenGL 등의 표준으로 지정되어 기본적으로 하드웨어/소프트웨어적으로 지원되지만, 모바일 기기용 그래픽 카드에 탑재되는 비교적 저사양의 GPU에서는 OpenGL ES 등의 약식 버전이 사용되어 3차원 텍스쳐 매핑 기능이 지원되지 않는 경우가 많다. GPU가 3차원 텍스쳐 매핑 기능을 지원하지 않는 경우에는 볼륨 데이터 내의 임의의 위치에 대한 샘플링 시 연산량이 많아져 렌더링 처리 속도(영상 처리 속도)가 매우 느려지는 문제점이 있다.
3차원 텍스쳐 매핑 기능은 지원하지 않고 2차원 텍스쳐 매핑 기능만을 지원하는 GPU(예: 모바일 기기용 그래픽 카드에 탑재되는 GPU)에서 볼륨 광선 투사법을 이용한 볼륨 렌더링을 수행하고자 할 때, GPU 내에 하드웨어적으로 구현된 2차원 텍스쳐 매핑 기능을 지원하는 텍스쳐 매핑 유닛을 이용하여 볼륨 광선 투사법에서 요구되는 볼륨 데이터에 대한 샘플링을 수행함으로써, 3차원 텍스쳐 매핑 기능을 지원하지 않는 GPU에서 볼륨 광선 투사법을 이용한 볼륨 렌더링을 수행하는 경우에도 렌더링 처리 속도를 향상시킬 수 있는 그래픽 처리 유닛, 그래픽 처리 유닛을 갖춘 영상 처리 장치 및 그래픽 처리 유닛을 이용한 영상 처리 방법을 제안하고자 한다.
이를 위해 본 발명의 일 측면에 따른 그래픽 처리 유닛은 볼륨 데이터를 슬라이싱한 복수의 2차원 슬라이스 또는 2차원 텍스쳐를 저장하는 텍스쳐 메모리; 2차원 텍스쳐로 2차원 텍스쳐 매핑을 수행하고, 복수의 2차원 슬라이스로 2차원 텍스쳐 샘플링을 수행하는 텍스쳐 매핑 유닛; 및 2차원 텍스쳐 샘플링의 샘플링값들을 이용하여 볼륨 렌더링을 수행하는 연산 프로세서를 포함한다.
또한 연산 프로세서는 볼륨 광선 투사법(volume ray casting)을 이용하여 볼륨 렌더링을 수행한다.
또한 복수의 2차원 슬라이스는 볼륨 데이터를 XY 평면, YZ평면 및 ZX 평면 중 어느 하나에 평행하게 슬라이싱하여 형성된다.
또한 복수의 2차원 슬라이스는 하나 또는 미리 설정된 개수의 2차원 슬라이스 아틀라스(2D slice atlas)로 형성되어 텍스쳐 메모리에 저장된다.
또한 연산 프로세서는 시점으로부터 디스플레이 화면의 각 픽셀을 향해 가상의 광선을 발사하여 샘플점의 위치를 산출하고, 샘플점의 위치가 볼륨 데이터의 복셀(voxel)의 위치와 일치하지 않으면 샘플점을 두 개의 2차원 슬라이스에 대응하는 샘플점에 인접한 두 개의 평면으로 사영(projection)시킨다.
또한 연산 프로세서는 두 개의 평면으로 사영된 두 점의 위치를 산출하여 텍스쳐 매핑 유닛에 전달한다.
또한 텍스쳐 매핑 유닛은 두 개의 평면으로 사영된 두 점에서의 밝기값(intensity)을 산출하고, 산출된 두 점에서의 밝기값을 연산 프로세서에 전달한다.
또한 연산 프로세서는 사영된 두 점에서의 밝기값에 대한 샘플점과 사영된 두 점 사이의 거리에 따른 선형 보간(linear interpolation)을 이용하여 샘플점에서의 밝기값을 산출한다.
또한 연산 프로세서는 산출된 샘플점에서의 밝기값을 누적하여 디스플레이 화면의 각 픽셀에 표시될 픽셀값을 산출한다.
또한 연산 프로세서는 디스플레이 화면의 모든 픽셀에 대해 가상의 광선을 발사하여 볼륨 렌더링을 수행한다.
본 발명의 다른 측면에 따른 그래픽 처리 유닛은 볼륨 데이터를 슬라이싱하여 형성한 복수의 2차원 슬라이스를 저장하는 텍스쳐 메모리; 2차원 텍스쳐 매핑 기능을 지원하며 복수의 2차원 슬라이스를 2차원 텍스쳐로 간주하여 2차원 텍스쳐 샘플링을 수행하는 텍스쳐 매핑 유닛; 및 복수의 2차원 슬라이스에 대해 볼륨 광선 투사법(volume ray casting)을 이용한 볼륨 렌더링을 수행하여 3차원 영상을 형성하되, 2차원 텍스쳐 샘플링의 수행 결과를 이용하여 볼륨 렌더링의 샘플링을 수행하는 연산 프로세서를 포함한다.
본 발명의 일 측면에 따른 그래픽 처리 유닛을 갖춘 영상 처리 장치는영상 데이터를 획득하는 영상 데이터 획득부; 영상 데이터를 이용하여 볼륨 데이터를 생성하는 볼륨 데이터 생성부; 볼륨 데이터를 슬라이싱하여 복수의 2차원 슬라이스로 분할하는 볼륨 데이터 슬라이싱부; 그래픽 연산을 수행하는 그래픽 처리 유닛을 포함하되, 그래픽 처리 유닛은: 복수의 2차원 슬라이스 또는 2차원 텍스쳐를 저장하는 텍스쳐 메모리; 2차원 텍스쳐로 2차원 텍스쳐 매핑을 수행하고, 복수의 2차원 슬라이스로 2차원 텍스쳐 샘플링을 수행하는 텍스쳐 매핑 유닛; 및 2차원 텍스쳐 샘플링의 샘플링값들을 이용하여 볼륨 렌더링을 수행하는 연산 프로세서로 이루어진다.
또한 연산 프로세서는 볼륨 광선 투사법(volume ray casting)을 이용하여 상기 볼륨 렌더링을 수행한다.
또한 볼륨 렌더링의 수행 결과 생성된 3차원 영상을 표시하는 디스플레이부를 더 포함한다.
또한 복수의 2차원 슬라이스에 대해 볼륨 렌더링을 수행하도록 그래픽 처리 유닛을 제어하고, 볼륨 렌더링의 수행 결과 생성된 3차원 영상을 화면에 표시하도록 디스플레이부를 제어하는 제어부를 더 포함한다.
또한 복수의 2차원 슬라이스는 하나 또는 미리 설정된 개수의 2차원 슬라이스 아틀라스(2D slice atlas)로 형성되어 텍스쳐 메모리에 저장된다.
본 발명의 다른 측면에 따른 그래픽 처리 유닛을 갖춘 영상 처리 장치는 초음파 신호를 대상체에 송신하고 대상체로부터 반사되는 초음파 에코 신호를 수신하여 초음파 영상 데이터를 획득하는 초음파 영상 데이터 획득부; 초음파 영상 데이터를 이용하여 볼륨 데이터를 생성하는 볼륨 데이터 생성부; 볼륨 데이터를 슬라이싱하여 복수의 2차원 슬라이스로 분할하는 볼륨 데이터 슬라이싱부; 그래픽 연산을 수행하는 그래픽 처리 유닛을 포함하되, 그래픽 처리 유닛은: 복수의 2차원 슬라이스 또는 2차원 텍스쳐를 저장하는 텍스쳐 메모리; 2차원 텍스쳐로 2차원 텍스쳐 매핑을 수행하고, 복수의 2차원 슬라이스로 2차원 텍스쳐 샘플링을 수행하는 텍스쳐 매핑 유닛; 및 2차원 텍스쳐 샘플링의 샘플링값들을 이용하여 볼륨 렌더링을 수행하는 연산 프로세서로 이루어진다.
본 발명의 일 측면에 따른 그래픽 처리 유닛을 이용한 영상 처리 방법은 텍스쳐 메모리, 2차원 텍스쳐 매핑 기능을 지원하는 텍스쳐 매핑 유닛 및 그래픽 연산을 처리하는 연산 프로세서를 포함하는 그래픽 처리 유닛을 이용한 영상 처리 방법에 있어서, 볼륨 데이터를 슬라이싱한 복수의 2차원 슬라이스를 텍스쳐 메모리에 저장하고; 텍스쳐 매핑 유닛은 복수의 2차원 슬라이스로 2차원 텍스쳐 샘플링을 수행하고; 연산 프로세서는 2차원 텍스쳐 샘플링의 샘플링값들을 이용하여 볼륨 렌더링을 수행한다.
또한 볼륨 렌더링은 볼륨 광선 투사법(volume ray casting)을 이용하여 수행된다.
제안된 그래픽 처리 유닛, 그래픽 처리 유닛을 갖춘 영상 처리 장치 및 그래픽 처리 유닛을 이용한 영상 처리 방법에 의하면, 3차원 텍스쳐 매핑 기능은 지원하지 않고 2차원 텍스쳐 매핑 기능만을 지원하는 GPU(예: 모바일 기기용 그래픽 카드에 탑재되는 GPU)에서 볼륨 광선 투사법을 이용한 볼륨 렌더링을 수행하고자 할 때, GPU 내에 하드웨어적으로 구현된 2차원 텍스쳐 매핑 기능을 지원하는 텍스쳐 매핑 유닛을 이용하여 볼륨 광선 투사법에서 요구되는 볼륨 데이터에 대한 샘플링을 수행함으로써, 3차원 텍스쳐 매핑 기능을 지원하지 않는 GPU에서 볼륨 광선 투사법을 이용한 볼륨 렌더링을 수행하는 경우에도 렌더링 처리 속도를 향상시킬 수 있다.
도 1은 볼륨 데이터의 구조를 설명하기 위한 도면이다.
도 2는 볼륨 광선 투사법의 개념을 설명하기 위한 도면이다.
도 3은 텍스쳐 매핑의 개념을 설명하기 위한 도면이다.
도 4는 볼륨 광선 투사법을 이용한 볼륨 렌더링 시 볼륨 데이터 내의 복셀의 위치와 일치하지 않는 임의의 샘플점에서의 밝기값을 산출하는 방식을 설명하기 위한 도면이다.
도 5는 본 발명의 실시예에 따른 그래픽 처리 유닛을 이용하여 볼륨 광선 투사법을 이용한 렌더링 시 볼륨 데이터 내의 복셀의 위치와 일치하지 않는 임의의 샘플점에서의 밝기값을 산출하는 방식을 설명하기 위한 도면이다.
도 6은 본 발명의 실시예에 따른 그래픽 처리 유닛을 갖춘 영상 처리 장치의 제어 블록도이다.
도 7은 도 6에 도시된 그래픽 처리 유닛의 구성도이다.
도 8은 도 7에 도시된 텍스쳐 메모리에 저장되는 슬라이싱된 볼륨 데이터(2차원 슬라이스)의 구조를 나타낸 도면이다.
도 9는 본 발명의 실시예에 따른 그래픽 처리 유닛을 이용한 영상 처리 방법을 도시한 흐름도이다.
도 2는 볼륨 광선 투사법의 개념을 설명하기 위한 도면이다.
도 3은 텍스쳐 매핑의 개념을 설명하기 위한 도면이다.
도 4는 볼륨 광선 투사법을 이용한 볼륨 렌더링 시 볼륨 데이터 내의 복셀의 위치와 일치하지 않는 임의의 샘플점에서의 밝기값을 산출하는 방식을 설명하기 위한 도면이다.
도 5는 본 발명의 실시예에 따른 그래픽 처리 유닛을 이용하여 볼륨 광선 투사법을 이용한 렌더링 시 볼륨 데이터 내의 복셀의 위치와 일치하지 않는 임의의 샘플점에서의 밝기값을 산출하는 방식을 설명하기 위한 도면이다.
도 6은 본 발명의 실시예에 따른 그래픽 처리 유닛을 갖춘 영상 처리 장치의 제어 블록도이다.
도 7은 도 6에 도시된 그래픽 처리 유닛의 구성도이다.
도 8은 도 7에 도시된 텍스쳐 메모리에 저장되는 슬라이싱된 볼륨 데이터(2차원 슬라이스)의 구조를 나타낸 도면이다.
도 9는 본 발명의 실시예에 따른 그래픽 처리 유닛을 이용한 영상 처리 방법을 도시한 흐름도이다.
이하에서는 첨부된 도면을 참조하여 본 발명의 실시예를 상세하게 설명하도록 한다.
도 1은 볼륨 데이터의 구조를 설명하기 위한 도면이다.
볼륨 데이터(volume data)는 3차원 물체의 표면을 표현하는 다각형 메시(polygonal mesh) 등과 같은 표면(surface) 기반 데이터와 일정한 공간을 격자(공간격자)로 나누어 각 격자의 꼭지점(복셀)에 그에 해당하는 값(위치, 색상, 밝기)으로 표현하는 기술로, 의학이나 과학 연산 분야에 널리 이용되며, 게임 또는 특수 효과 등에서는 안개를 표현하는데 많이 쓰인다.
도 1에 도시된 바와 같이, 볼륨 데이터(10)는 복셀(voxel, V)로 표현할 수 있으며, 8개의 복셀(V)로 구성되는 큐브(cube) 구조를 셀(cell, 11)이라 한다. 셀(11) 중에서 셀(11)을 구성하는 8개의 모든 복셀(V)이 투명한 경우를 투명 셀(transparent cell)이라고 하며, 8개의 모든 복셀(V)이 불투명한 경우를 불투명 셀(nontransparent cell)이라고 한다. 또한 셀(11)을 구성하는 8개의 복셀(V) 중 투명한 것과 불투명한 것이 모두 존재하는 셀을 반투명 셀(semi-transparent cell)이라고 한다.
도 2는 볼륨 광선 투사법의 개념을 설명하기 위한 도면이다.
볼륨 렌더링은 3차원 볼륨 데이터(10)를 2차원 디스플레이 화면 상에 보이도록 하는 과정인데, 결과 영상의 화질이 좋기 때문에 일반적으로 가장 많이 쓰이는 볼륨 렌더링 기법은 볼륨 광선 투사법(volume ray casting)이다.
도 2에 도시된 바와 같이, 볼륨 광선 투사법에서는 시점(21)으로부터 디스플레이 화면(22)의 각 픽셀(23)을 향해 발사된 광선(24)이 그 픽셀(23)을 통과하여 볼륨 데이터(10)를 향해 전진하는 것으로 가정되며, 이 광선(24)이 볼륨 데이터(10)를 관통하면서 샘플링(sampling)하여 획득한 복수의 밝기값을 누적하여 광선(24)이 통과한 디스플레이 화면(22)의 픽셀(23)에 표시될 최종적인 색상값을 산출한다. 여기서, 광선(24)의 발사는 디스플레이 화면(22)의 각 픽셀당 한 번 이루어지므로 볼륨 렌더링 시 디스플레이 화면(22)에 존재하는 총 픽셀 개수와 동일한 횟수의 광선 발사가 이루어지게 된다.
도 3은 텍스쳐 매핑의 개념을 설명하기 위한 도면이다.
텍스쳐 매핑(texture mapping)이란 표현하고자 하는 이미지나 물체의 사실감을 높이기 위해 그 표면에 원하는 무늬나 색을 입히는 작업을 말한다. 도 3은 테이블(31)의 표면에 2차원 텍스쳐(32)를 입혀서 디테일한 질감의 테이블(33)을 표현한 2차원 텍스쳐 매핑을 예시하고 있다. 텍스쳐 매핑에서, 텍스쳐로는 2차원 텍스쳐 뿐만 아니라 3차원 텍스쳐도 이용될 수 있다. 3차원 텍스쳐 매핑은 매핑 시 이용되는 텍스쳐의 종류가 2차원의 평면 이미지가 아닌 볼륨을 가지는 3차원 이미지라는 점에서만 2차원 텍스쳐 매핑과 차이가 있다.
이러한 텍스쳐 매핑을 수행하기 위해서는 텍스쳐 샘플링(texture sampling)이 필수적인데, 여기서 텍스쳐 샘플링이란 텍스쳐 내의 임의의 위치에 대한 밝기값(intensity)을 산출하는 것을 뜻한다. 이는 제한된 해상도의 텍스쳐를 임의의 크기의 표면에 매핑하기 위해서 반드시 필요한 기능이다. 이러한 텍스쳐 샘플링은 3차원 그래픽스에서 매우 많이 쓰이는 기능이므로 GPU에서 하드웨어적으로 구현되어 고속으로 처리된다.
전술한 바와 같이, 볼륨 광선 투사법을 이용하여 볼륨 렌더링을 수행하고자 할 때에는 볼륨 데이터에 대한 샘플링이 요구된다. 볼륨 데이터에서 적절한 복셀을 찾아오는 샘플링 과정은 매우 많은 시간을 필요로 하므로 이를 빠르게 처리하는 것은 주요한 해결 과제 중 하나였다.
그래픽스 하드웨어의 3차원 텍스쳐 매핑 기능은 선형 보간(linear interpolation) 또는 삼선형 보간(tri-linear interpolation)을 하드웨어적으로 매우 빠르게 처리할 수 있도록 해준다. 따라서, 3차원 텍스쳐 매핑 시 수행되는 3차원 텍스쳐 샘플링 기능을 이용하면 볼륨 광선 투사법을 이용한 볼륨 렌더링 시 요구되는 볼륨 데이터에 대한 샘플링을 보다 쉽게 처리할 수 있다. 3차원 텍스쳐 매핑을 이용한 볼륨 렌더링은 볼륨 데이터를 3차원 텍스쳐로 간주하고 하드웨어 텍스쳐 매핑을 통하여 샘플링을 매우 빠르게 처리하도록 한다. 즉, 볼륨 데이터를 3차원 텍스쳐로 간주하여 텍스쳐 메모리에 저장하고, 원하는 위치(설정 간격에 따른 샘플점의 위치)에 대한 밝기값을 요청하면 텍스쳐 매핑 유닛에서 3차원 텍스쳐 샘플링을 통해 원하는 값을 제공한다.
도 4는 볼륨 광선 투사법을 이용한 볼륨 렌더링 시 볼륨 데이터 내의 복셀의 위치와 일치하지 않는 임의의 샘플점에서의 밝기값을 산출하는 방식을 설명하기 위한 도면이다.
전술한 바와 같이, 개인용 컴퓨터(PC)용 그래픽 카드에 탑재되는 비교적 고사양의 GPU에서는 3차원 텍스쳐 매핑 기능이 기본적으로 하드웨어/소프트웨어적으로 지원되지만, 모바일 기기용 그래픽 카드에 탑재되는 비교적 저사양의 GPU에서는 3차원 텍스쳐 매핑 기능이 지원되지 않는 경우가 많다. 여기서, 볼륨 데이터(10) 내의 샘플링하고자 하는 점(샘플점, P)의 위치를 P(x, y, z)라 가정한다. 도 4에 도시된 바와 같이, GPU가 3차원 텍스쳐 매핑 기능을 지원하지 않는 경우에 볼륨 데이터(10) 내의 복셀(V)의 위치와 일치하지 않는 임의의 샘플점(P)에서의 밝기값을 산출하기 위해서는 샘플점(P)에 인접하는 8개의 복셀(V1~V8)의 위치에서의 밝기값을 볼륨 데이터(10)가 저장되어 있는 메모리로부터 읽어 와서 이에 대한 보간(interpolation)을 소프트웨어적으로 수행해야 한다. 하지만, 이러한 소프트웨어적인 방식으로 볼륨 데이터(10) 내의 임의의 위치에 대한 샘플링을 수행하는 경우에는 연산량이 많아져 렌더링 처리 속도가 매우 느려지는 문제점이 있다.
도 5는 본 발명의 실시예에 따른 그래픽 처리 유닛을 이용하여 볼륨 광선 투사법을 이용한 렌더링 시 볼륨 데이터 내의 복셀의 위치와 일치하지 않는 임의의 샘플점에서의 밝기값을 산출하는 방식을 설명하기 위한 도면이다.
전술한 바와 같이, 3차원 텍스쳐 매핑 기능이 지원되지 않는 플랫폼(platform, 예: 모바일 기기) 상에서 소프트웨어적인 방식으로 볼륨 데이터에 대한 샘플링을 수행하는 경우에는 연산량이 많아 렌더링 처리 속도가 매우 느려지는 문제점이 있다. 따라서, 본 발명의 실시예에서는 3차원 텍스쳐 매핑 기능은 지원하지 않고 2차원 텍스쳐 매핑 기능만을 지원하는 GPU(예: 모바일 기기용 그래픽 카드에 탑재되는 GPU)에서 볼륨 광선 투사법을 이용한 볼륨 렌더링을 수행하고자 할 때, GPU 내에 하드웨어적으로 구현된 2차원 텍스쳐 매핑 기능을 지원하는 텍스쳐 매핑 유닛을 이용하여 볼륨 광선 투사법에서 요구되는 볼륨 데이터에 대한 샘플링을 수행함으로써, 3차원 텍스쳐 매핑 기능을 지원하지 않는 GPU에서 볼륨 광선 투사법을 이용한 볼륨 렌더링을 수행하는 경우에도 렌더링 처리 속도를 향상시킬 수 있는 방안을 제안하고자 한다.
본 실시예에서는 볼륨 데이터(10) 내의 복셀(V)의 위치와 일치하지 않는 임의의 샘플점(P)의 위치를 P(x, y, z)라 하고, 볼륨 데이터가 XY 평면에 평행한 복수의 2차원 슬라이스(slice)로 이루어져 있다고 가정한다. 도 5는 볼륨 데이터(10)가 총 6개의 2차원 슬라이스(S1~S6)로 이루어져 있는 경우를 예시하고 있다. 여기서, 2차원 슬라이스(S1~S6)는 좌표 평면이 아닌 2차원으로 분할된 볼륨 데이터를 의미하며, 2차원 슬라이스(S1~S6)는 각 슬라이스(S1)(S2)(S3)(S4)(S5)(S6)에 포함되는 볼륨 데이터(10) 내 복셀(V)들의 위치에서의 밝기값의 데이터 구조라 할 수 있다. 여기서, 도 5에 도시된 평면(A1)(A2)(A3)(A4)(A5)(A6)은 각 2차원 슬라이스(S1)(S2)(S3)(S4)(S5)(S6)에 대응하는 평면이다.
샘플링하고자 하는 임의의 점 P에서의 밝기값을 산출하기 위해 먼저 점 P를 점 P의 가장 가까운 상측에 위치하는 2차원 슬라이스(S1)에 대응하는 평면(A1) 및 점 P의 가장 가까운 하측에 위치하는 2차원 슬라이스(S2)에 대응하는 평면(A2)으로 사영시킨다(projection). 이 때, 점 P의 가장 가까운 상측에 위치하는 2차원 슬라이스(S1)에 대응하는 평면(A1)으로 사영된 점을 점 P1이라 하고, 점 P의 가장 가까운 하측에 위치하는 2차원 슬라이스(S2)에 대응하는 평면(A2)으로 사영된 점을 점 P2라 한다. 여기서, 점 P1의 위치는 P1(x1, y1, z1), 점 P2의 위치는 P2(x2, y2, z2)라 한다. 다음으로, 2차원 슬라이스(S1)에 대응하는 평면(A1)에 위치하며 사영된 점 P1에 인접하는 4개의 복셀(V1~V4)의 위치에서의 밝기값을 2차원 슬라이스(S1)가 저장되어 있는 메모리로부터 읽어 와서 이에 대한 보간(interpolation)을 2차원 텍스쳐 매핑 기능을 지원하는 텍스쳐 매핑 유닛을 이용하여 하드웨어적으로 수행한다. 또한 2차원 슬라이스(S2)에 대응하는 평면(A2)에 위치하며 사영된 점 P2에 인접하는 4개의 복셀(V5~V8)의 위치에서의 밝기값을 2차원 슬라이스(S2)가 저장되어 있는 메모리로부터 읽어 와서 이에 대한 보간을 2차원 텍스쳐 매핑 기능을 지원하는 텍스쳐 매핑 유닛을 이용하여 하드웨어적으로 수행한다. 이후, 평면(A1)에 존재하는 4개의 복셀(V1~V4)의 위치에서의 밝기값들의 보간을 통해 산출된 점 P1의 위치에서의 밝기값을 a1이라 하고, 평면(A2)에 존재하는 4개의 복셀(V5~V8)의 위치에서의 밝기값들의 보간을 통해 산출된 점 P2의 위치에서의 밝기값을 a2이라 하면, 점 P에서의 밝기값 a는 a1과 a2에 대한 점 P와 점 P1 사이의 거리 d1 및 점 P와 점 P2 사이의 거리 d2에 따른 선형 보간(linear interpolation)을 통해 아래의 [수학식 1]을 이용하여 산출할 수 있다.
[수학식 1]
a=(d1*a2+d2*a1)/(d1+d2)
본 실시예에서는 2차원 슬라이스(S1)에 대응하는 평면(A1)으로 사영된 점 P1에서의 밝기값(a1)을 평면(A1)에 존재하는 점 P1에 인접하는 4개의 복셀(V1~V4)의 위치에서의 밝기값들의 보간을 통해 산출하는 과정 및 2차원 슬라이스(S2)에 대응하는 평면(A2)으로 사영된 점 P2에서의 밝기값(a2)를 평면(A2)에 존재하는 점 P2에 인접하는 4개의 복셀(V5~V8)의 위치에서의 밝기값들의 보간을 통해 산출하는 과정이 하드웨어(여기서는 2차원 텍스쳐 매핑 기능을 지원하는 텍스쳐 매핑 유닛)에 의해 가속이 되어 샘플링을 매우 빠른 속도로 처리할 수 있고 이로 인해 전체적으로 향상된 렌더링 성능을 얻을 수 있게 된다.
도 6은 본 발명의 실시예에 따른 그래픽 처리 유닛을 갖춘 영상 처리 장치의 제어 블록도이다. 본 실시예에서는 그래픽 처리 유닛을 갖춘 영상 처리 장치로서, 초음파 검사(Ultrasonography) 시 사용되는 초음파 영상 처리 장치를 예로 들어 설명하기로 한다.
도 6에 도시된 바와 같이, 본 발명의 실시예에 따른 그래픽 처리 유닛을 갖춘 영상 처리 장치의 일예인 초음파 영상 처리 장치(100)는 초음파 영상 데이터 획득부(110), 사용자 입력부(120), 저장부(130), 제어부(140), 볼륨 데이터 생성부(150), 볼륨 데이터 슬라이싱부(160), 그래픽 처리 유닛(GPU, 170) 및 디스플레이부(180)를 포함한다.
초음파 영상 데이터 획득부(110)는 초음파 신호를 대상체에 송신하고 대상체로부터 반사되는 초음파 신호(즉, 초음파 에코 신호)를 수신하여 초음파 영상 데이터를 획득한다.
사용자 입력부(120)는 사용자로부터 볼륨 광선 투사법을 이용한 렌더링 시 필요한 볼륨 데이터(10)에 대한 샘플링 간격, 볼륨 데이터(10)에 대한 광선 투사 방향(레이 캐스팅 방향) 등의 다수의 렌더링 설정 정보, 관심 영역(region of interest; ROI)의 크기 및 위치 정보를 포함하는 ROI 설정 정보 등을 입력받기 위한 것으로서, 컨트롤 패널(control panel), 마우스(mouse), 키보드(keyboard) 등의 입력 수단을 포함할 수 있다. 또한 사용자 입력부(120)는 정보의 입력을 위해 디스플레이부를 포함하거나, 후술하는 디스플레이부(180)와 통합될 수 있다.
저장부(130)는 사용자 입력부(120)를 통해 입력된 다수의 렌더링 설정 정보, ROI 설정 정보 및 GPU(170)에서 형성된 3차원 초음파 영상(렌더링 결과 영상) 정보 등을 저장한다.
제어부(140)는 초음파 영상 처리 장치(100)의 전반적인 동작을 제어하는 CPU(Central Processing Unit)로, 제어부(140)는 사용자 입력부(120)로부터 렌더링 설정 정보 및 ROI 설정 정보가 입력되면, GPU(170)에 제어 신호를 보내어 GPU(170)가 입력된 렌더링 설정 정보 및 ROI 설정 정보를 이용하여 볼륨 데이터(10)에 대한 렌더링(볼륨 광선 투사법을 이용한 볼륨 렌더링)을 수행하도록 제어한다. 또한 제어부(140)는 디스플레이부(180)에 제어 신호를 보내어 디스플레이부(180)로 하여금 GPU(170)에서 형성되어 저장부(130)에 저장된 3차원 초음파 영상을 표시하도록 제어한다. 아울러, 제어부(140)는 초음파 신호의 송수신, 볼륨 데이터의 생성 및 볼륨 데이터의 슬라이싱을 제어한다.
초음파 영상 처리 장치(100)의 제어부(CPU, 140)는 영상 처리 과정에서 초음파 영상 데이터 획득부(110), 볼륨 데이터 생성부(150), 볼륨 데이터 슬라이싱부(160), GPU(170) 및 디스플레이부(180)의 데이터 입출력만을 제어하므로, CPU(140)의 부하를 현저하게 감소시킬 수 있다.
볼륨 데이터 생성부(150)는 초음파 영상 데이터 획득부(110)로부터 제공되는 다수의 초음파 영상 데이터를 이용하여 밝기값(intensity)을 나타내는 다수의 복셀(voxel)로 이루어진 3차원의 볼륨 데이터(10)를 생성한다.
볼륨 데이터 슬라이싱부(160)는 3차원의 볼륨 데이터(10)를 슬라이싱하여 복수의 2차원 슬라이스(S1~S6)로 분할한다. 이 때, 볼륨 데이터 슬라이싱부(160)는 볼륨 데이터(10)를 XY 평면에 평행하게 슬라이싱하거나, YZ평면에 평행하게 슬라이싱하거나, 또는 ZX 평면에 평행하게 슬라이싱하여 복수의 2차원 슬라이스(S1~S6)를 형성할 수 있다.
그래픽 처리 유닛(GPU, 170)은 그래픽 연산을 수행하는 그래픽 칩셋(graphic chipset)으로서, 슬라이싱된 볼륨 데이터 즉, 복수의 2차원 슬라이스(S1~S6)를 볼륨 렌더링하여 디스플레이 화면의 픽셀에 표시될 최종적인 픽셀 데이터를 산출한다. 여기서, GPU(170)는 직접 볼륨 렌더링 중 가장 대표적인 방법인 볼륨 광선 투사법을 사용하여 복수의 2차원 슬라이스(S1~S6)에 대한 볼륨 렌더링을 수행한다. GPU(170)의 상세 구성 및 기능에 대해서는 이하 도 7과 관련된 부분에서 자세하게 설명하기로 한다.
디스플레이부(180)는 모니터 등으로 구현되어 GPU(170)를 통해 렌더링된 3차원 초음파 영상을 표시한다.
본 실시예에서는 그래픽 처리 유닛을 갖춘 영상 처리 장치로서 초음파 영상 처리 장치(100)를 예로 들어 설명하였으나, 본 발명의 기술적 사상은 초음파 영상 처리 장치 뿐만 아니라 볼륨 데이터에 대한 3차원 렌더링이 사용되는 전 분야에 확장 적용하는 것이 가능하다. 예를 들어, 컴퓨터 단층 촬영(Computer Tomography; CT) 및 자기 공명 영상(Magnetic Resonance Imaging; MRI) 등과 같은 의료 영상 분야의 영상 처리 장치에도 본 발명의 기술적 사상이 적용될 수 있음은 물론이다. 여기서, 그래픽 처리 유닛을 갖춘 영상 처리 장치가 CT 장치인 경우에는 CT 영상 데이터를 이용하여 볼륨 데이터를 생성하고, 그래픽 처리 유닛을 갖춘 영상 처리 장치가 MRI 장치인 경우에는 MRI 영상 데이터를 이용하여 볼륨 데이터를 생성하게 된다.
또한 초음파 검사, 컴퓨터 단층 촬영 및 자기 공명 영상 같은 의료 영상의 영상 처리 뿐만 아니라 안개 효과(fog effect) 등의 특수 효과가 사용되는 게임과 같은 엔터테인먼트 분야의 영상 처리 장치(예: PC)에도 본 발명의 기술적 사상이 적용될 수 있다. 여기서, 그래픽 처리 유닛을 갖춘 영상 처리 장치가 게임 분야의 영상 처리 장치인 경우에는 도 6에 도시된 구성 요소 중에서 (초음파) 영상 데이터 획득부(110)를 생략할 수 있고, 경우에 따라 볼륨 데이터 생성부(150)및 볼륨 데이터 슬라이싱부(160)까지도 생략하는 것이 가능하다(슬라이싱된 볼륨 데이터가 후술할 GPU 내 텍스쳐 메모리에 미리 저장되어 있음을 전제하는 경우).
도 7은 도 6에 도시된 그래픽 처리 유닛의 구성도이고, 도 8은 도 7에 도시된 텍스쳐 메모리에 저장되는 슬라이싱된 볼륨 데이터(2차원 슬라이스)의 구조를 나타낸 도면이다.
도 7에 도시된 바와 같이, 본 발명의 실시예에 따른 그래픽 처리 유닛(GPU, 170)은 연산 프로세서(172), 텍스쳐 매핑 유닛(174) 및 텍스쳐 메모리(176)를 포함한다.
연산 프로세서(172)는 사용자 입력부(120)로부터의 사용자 명령에 따라 볼륨 데이터에 대해, 좀 더 엄밀히 말하면 볼륨 데이터 슬라이싱부(160)에 의해 슬라이싱된 볼륨 데이터(즉, 2차원 슬라이스)에 대해 볼륨 광선 투사법을 이용한 볼륨 렌더링을 수행하여 3차원 영상을 형성한다. 여기서, 연산 프로세서(172)는 볼륨 데이터 생성부(150)에서 생성된 볼륨 데이터의 위치(좌표) 정보만을 제공받게 되며, 볼륨 데이터(10) 내 복셀(V)들의 위치에서의 밝기 정보는 2차원 슬라이스의 형태로 텍스쳐 메모리(176)에 저장된다.
따라서, 연산 프로세서(172)는 볼륨 데이터 생성부(150)에서 생성된 각 복셀에 그에 해당하는 위치, 색상, 밝기 정보를 포함하는 3차원 볼륨 데이터를 직접적으로 이용하여 렌더링을 수행하지 않고, 볼륨 데이터의 위치(좌표) 정보만을 이용하여 볼륨 렌더링 과정에서 요구되는 비교적 간단한 연산만을 수행하게 된다.
연산 프로세서(172)는 사용자 입력부(120)로부터 렌더링 설정 정보가 입력되면, 볼륨 데이터의 위치(좌표)에 대해 볼륨 광선 투사법을 이용한 렌더링을 수행하기 위한 광선 투사 시작점과 광선 주사 방향을 설정하고, 볼륨 데이터의 위치(좌표) 정보를 이용하여 샘플링하고자 하는 점들의 위치를 산출한다.
또한 연산 프로세서(172)는 사용자 입력부(120)로부터 ROI 설정 정보가 입력되면, 입력된 ROI 설정 정보에 따라 볼륨 데이터의 위치(좌표)에 대해 ROI를 설정하고, 설정된 ROI에 렌더링을 수행하여 ROI에 해당하는 3차원 영상을 형성한다.
연산 프로세서(172)는 볼륨 광선 투사법을 이용한 렌더링 시 샘플링하고자 하는 임의의 점 P에서의 밝기값을 산출하기 위해 즉, 샘플링을 수행하기 위해 사용자 입력부(120)를 통해 입력된 샘플링 간격 정보에 따라 샘플점 P의 위치 (x, y, z)를 산출한다. 이 때, 볼륨 데이터(10)는 볼륨 데이터 슬라이싱부(160)에 의해 XY 평면에 평행한 복수의 2차원 슬라이스(S1~S6)로 분할되어 텍스쳐 메모리(176)에 저장되어 있다고 가정한다. 연산 프로세서(172)는 산출된 샘플점 P의 위치가 볼륨 데이터(10) 내 복셀(V)의 위치와 일치하지 않는다고 판단되면 점 P를 점 P의 가장 가까운 상측에 위치하는 2차원 슬라이스(S1)에 대응하는 평면(A1) 및 점 P의 가장 가까운 하측에 위치하는 2차원 슬라이스(S2)에 대응하는 평면(A2)으로 사영시킨다(projection). 연산 프로세서(172)는 평면(A1)으로 사영된 점 P1의 위치(좌표) 및 평면(A2)로 사영된 점 P2의 위치(좌표)를 산출하고, 산출된 점 P1 및 P2의 위치(좌표) 정보를 텍스쳐 매핑 유닛(174)에 제공한다. 2차원 텍스쳐 매핑 기능을 지원하는 텍스쳐 매핑 유닛(174)은 텍스쳐 메모리(176)에 저장된 2차원 슬라이스 내 복셀의 위치에서의 밝기값을 참조하여 점 P1 및 점 P2의 위치에서의 밝기값을 산출한다.
연산 프로세서(172)는 텍스쳐 매핑 유닛(174)로부터 산출된 점 P1의 위치에서의 밝기값(a1) 및 점 P2의 위치에서의 밝기값(a2)를 제공 받고, 점 P에서의 밝기값 a는 a1과 a2에 대한 점 P와 점 P1 사이의 거리 d1 및 점 P와 점 P2 사이의 거리 d2에 따른 선형 보간(linear interpolation)을 통해 아래의 [수학식 1]을 이용하여 소프트웨어적으로 산출한다.
[수학식 1]
a=(d1*a2+d2*a1)/(d1+d2)
연산 프로세서(172)는 산출된 샘플점 P에서의 밝기값들을 누적(accumulation)하여 광선이 통과한 디스플레이 화면의 픽셀에 표시될 최종적인 색상값(픽셀값)을 산출한다. 연산 프로세서(172)는 디스플레이 화면의 모든 픽셀에 대한 광선 투사, 샘플링 및 누적(accumulation)이 완료되면 산출된 픽셀값들을 이용하여 최종적인 3차원 영상을 생성하고, 렌더링된 결과 영상을 제어부(140)로 전송한다.
텍스쳐 매핑 유닛(174)은 3차원 물체의 표면을 구성하는 각 폴리곤(polygon)에 텍스쳐를 입히는 텍스쳐 매핑을 수행한다. 여기서, 텍스쳐 매핑 유닛(174)은 3차원 물체의 표면에 2차원 텍스쳐를 매핑하는 2차원 텍스쳐 매핑 기능을 지원하며, GPU(170) 내에 하드웨어적으로 구현된다.
텍스쳐 매핑을 수행하는 경우에는 텍스쳐 내의 임의의 위치에서의 밝기값(intensity)을 산출하는 텍스쳐 샘플링이 필요하며, 텍스쳐 샘플링 시 선형 보간 또는 삼선형 보간이 사용된다. 그래픽스 하드웨어인 텍스쳐 매핑 유닛(174)의 2차원 텍스쳐 매핑 기능은 이러한 선형 보간 또는 삼선형 보간을 하드웨어적으로 매우 빠르게 처리할 수 있도록 해준다. 여기서, 2차원 텍스쳐 매핑 기능을 이용한 볼륨 렌더링은 먼저 볼륨 데이터를 슬라이싱하여 복수의 2차원 슬라이스로 분할하고, 분할된 2차원 슬라이스(슬라이싱된 볼륨 데이터)를 2차원 텍스쳐로 간주하여 하드웨어 텍스쳐 매핑을 수행함으로써 볼륨 렌더링 시의 샘플링을 매우 빠르게 처리할 수 있도록 한다.
텍스쳐 매핑 유닛(174)은 연산 프로세서(172)로부터 샘플링하고자 하는 점 P가 2차원 슬라이스에 대응하는 평면으로 사영된 점 P1 및 P2의 위치 정보가 제공되면, 점 P1 및 P2의 위치 정보와 매핑 공식을 이용하여 점 P1 및 P2의 위치에서의 밝기값을 산출한다.
즉, 텍스쳐 매핑 유닛(174)은 점 P1의 위치 정보(x1, y1, z1) 및 매핑 공식을 이용하여 점 P1에 인접하는 4개의 복셀(V1~V4)의 위치에서의 밝기값을 2차원 슬라이스(S1)가 저장되어 있는 텍스쳐 메모리(176)로부터 읽어 와서 이에 대한 보간을 수행하여 점 P1의 위치에서의 밝기값을 산출한다. 또한 텍스쳐 매핑 유닛(174)은 점 P2의 위치 정보(x2, y2, z2) 및 매핑 공식을 이용하여 점 P2에 인접하는 4개의 복셀(V5~V8)의 위치에서의 밝기값을 2차원 슬라이스(S2)가 저장되어 있는 텍스쳐 메모리(176)로부터 읽어 와서 이에 대한 보간을 수행하여 점 P2의 위치에서의 밝기값을 산출한다.
텍스쳐 매핑 유닛(174)은 하드웨어적으로 구현된 2차원 텍스쳐 매핑 기능을 이용하여 2차원 슬라이스(S1, S2)에 대응하는 평면으로 사영된 점 P1 및 P2에서의 밝기값을 산출한 후, 산출된 점 P1 및 P2에서의 밝기값을 연산 프로세서(172)에 제공한다.
텍스쳐 메모리(176)는 볼륨 데이터(10)를 슬라이싱하여 형성한 복수의 2차원 슬라이스(S1~S6) 또는 2차원 텍스쳐 매핑 수행 시 필요한 2차원 텍스쳐를 저장한다.
일반적으로, GPU를 이용하여 볼륨 광선 투사법에 의한 볼륨 렌더링을 수행하기 위해서는 전체 볼륨 데이터가 GPU 내의 텍스쳐 메모리 내에 저장되어 있어야 한다. GPU가 3차원 텍스쳐 기능을 지원하는 경우에는 렌더링의 대상이 되는 볼륨 데이터를 3차원 텍스쳐 메모리에 저장할 수 있다. 하지만, 본 발명의 실시예에서와 같이 GPU가 3차원 텍스쳐 매핑 기능은 지원하지 않고 2차원 텍스쳐 매핑 기능만을 지원하는 경우에는 2차원 텍스쳐 메모리만을 이용할 수 있기 때문에, 2차원 텍스쳐 메모리에 렌더링의 대상이 되는 볼륨 데이터 자체를 직접 저장할 수는 없고, 3차원의 볼륨 데이터를 슬라이싱하여 2차원의 슬라이스 형태로 분할한 후 2차원 텍스쳐 메모리에 저장하게 된다.
여기서, 각각의 2차원 슬라이스(S1)(S2)(S3)(S4)(S5)(S6)를 각각 하나의 텍스쳐 메모리(176)에 저장하는 경우, GPU(170)의 셰이더(shader)에서는 텍스쳐 메모리들의 배열에 대한 동적 색인(dynamic indexing)이 안 되기 때문에 매 샘플링 시마다 2차원 슬라이스(S1~S6) 개수 만큼의 조건문을 필요로 하는데, 이로 인해 프로그래밍 코드가 길어지고 연산량이 많아지는 문제점이 있다. 따라서, 본 실시예에서는 복수의 2차원 슬라이스(S1~S6)를 하나 또는 미리 설정된 개수(예: 2~3개)의 2차원 슬라이스 아틀라스(2D slice atlas)로 형성하여 하나 또는 미리 설정된 개수(예: 2~3개)의 텍스쳐 메모리(176)에 저장하는 방식을 이용한다. 이 경우 매핑 공식을 이용하여 동적 색인 없이도 쉽게 원하는 2차원 슬라이스(S1~S6)에 접근이 가능해진다.
예를 들어, 도 8의 (a)에 도시된 바와 같이, 볼륨 데이터(10)가 슬라이싱되어 총 6개의 2차원 슬라이스(S1~S6)로 분할된 경우에 이 6개의 2차원 슬라이스(S1~S6)를 도 8의 (b)에 도시된 바와 같이, 하나의 2차원 슬라이스 아틀라스(SA)로 형성하여 하나의 텍스쳐 메모리(176)에 저장하게 된다. 여기서, 도 8의 (a)에 도시된 각각의 2차원 슬라이스(S1)(S2)(S3)(S4)(S5)(S6)에 대응하는 각각의 평면(A1)(A2)(A3)(A4)(A5)(A6)은 총 36개(6*6=36)의 복셀(V)을 가지므로, 텍스쳐 메모리(176)에 저장되는 각각의 2차원 슬라이스(S1)(S2)(S3)(S4)(S5)(S6)는 36개의 복셀(V)의 위치에서의 밝기값을 갖게 된다.
도 9는 본 발명의 실시예에 따른 그래픽 처리 유닛을 이용한 영상 처리 방법을 도시한 흐름도이다.
본 발명의 실시예의 동작 설명을 위한 초기 조건으로서, 본 실시예에서 볼륨 데이터(10)에 대한 렌더링은 볼륨 광선 투사법(volume ray casting)을 이용하여 수행되며, 그래픽 처리 유닛(GPU, 170) 내 텍스쳐 메모리(176)에는 볼륨 렌더링의 대상이 되는 볼륨 데이터(10)를 슬라이싱하여 형성한 복수의 2차원 슬라이스(S1~S6)가 저장되어 있는 것을 전제한다.
먼저, GPU(170) 내의 연산 프로세서(172)는 시점(21)으로부터 디스플레이 화면(22)의 각 픽셀(23)을 향해 가상의 광선(24)을 발사한다(205).
다음으로, 연산 프로세서(172)는 볼륨 데이터(10)에 대한 샘플링을 수행하기 위해 미리 설정된 샘플링 간격 정보에 따라 샘플점(P)의 위치를 산출한다(210).
이후, 연산 프로세서(172)는 산출된 샘플점(P)의 위치와 볼륨 데이터(10)의 복셀(V)의 위치가 동일한지 여부를 판단한다(215). 산출된 샘플점(P)의 위치와 볼륨 데이터(10)의 복셀(V)의 위치가 동일한 것으로 판단되면(동작 215에서의 '예'), 연산 프로세서(172)는 텍스쳐 메모리(176)에서 복셀(V)의 위치에서의 밝기값을 읽어온 후(220) 동작 250으로 진행한다.
한편, 산출된 샘플점(P)의 위치와 볼륨 데이터(10)의 복셀(V)의 위치가 동일하지 않은 것으로 판단되면(동작 215에서의 '아니오'), 연산 프로세서(172)는 샘플점(P)을 두 개의 2차원 슬라이스에 대응하는 샘플점(P)에 인접한 두 개의 평면으로 사영시킨다(225). 예를 들어, 볼륨 데이터(10)가 XY 평면에 평행한 복수의 2차원 슬라이스(S1~S6)로 분할되어 텍스쳐 메모리(176)에 저장되어 있는 경우에연산프로세서(172)는 샘플점 P를 점 P의 가장 가까운 상측에 위치하는 2차원 슬라이스(S1)에 대응하는 평면(A1) 및 점 P의 가장 가까운 하측에 위치하는 2차원 슬라이스(S2)에 대응하는 평면(A2)으로 사영시킨다. 여기서, 평면(A1)으로 사영된 점을 P1이라 하고, 평면(A2)으로 사영된 점을 P2라 한다.
다음으로, 연산 프로세서(172)는 2차원 슬라이스(S1, S2)에 대응하는 평면(A1, A2)으로 사영된 두 점(P1, P2)의 위치를 산출하여 텍스쳐 매핑 유닛(174)에 전달한다(230).
이후, 텍스쳐 매핑 유닛(174)은 2차원 텍스쳐 매핑 기능을 이용하여 사영된 두 점(P1, P2)에서의 밝기값(a1, a2)을 산출한다(235).
다음으로, 텍스쳐 매핑 유닛(174)은 사영된 두 점(P1, P2)에서의 밝기값(a1, a2)을 연산 프로세서(172)에 전달한다(240).
이후, 연산 프로세서(172)는 사영된 두 점(P1, P2)에서의 밝기값(a1, a2)에 대한 샘플점(P)과 사영된 두 점(P1, P2) 사이의 거리(d1, d2)에 따른 선형 보간(linear interpolation)을 이용하여 샘플점(P)에서의 밝기값(a)을 산출한다(245).
다음으로, 연산 프로세서(172)는 산출된 샘플점(P)에서의 밝기값(a)을 누적한다(250).
이후, 연산 프로세서(172)는 디스플레이 화면(22)의 하나의 픽셀에 대한 광선 발사(샘플링 과정 포함)가 완료되었는가 여부를 판단한다(255). 디스플레이 화면(22)의 하나의 픽셀에 대한 광선 발사가 완료되지 않았다고 판단되면(동작 255에서의 '아니오') 연산 프로세서(172)는 동작 210으로 돌아가 다음 샘플점(P)의 위치를 산출한다.
한편, 디스플레이 화면(22)의 하나의 픽셀에 대한 광선 발사가 완료되었다고 판단되면(동작 255에서의 '예') 연산 프로세서(172)는 다시 디스플레이 화면(22)의 모든 픽셀에 대한 광선 발사(샘플링 과정 포함)가 완료되었는가 여부를 판단한다(260). 디스플레이 화면(22)의 모든 픽셀에 대한 광선 발사가 완료되지 않았다고 판단되면(동작 260에서의 '아니오') 연산 프로세서(172)는 동작 205로 돌아가 시점(21)으로부터 디스플레이 화면(22)의 다음 픽셀을 향해 가상의 광선(24)을 발사한다.
한편, 디스플레이 화면(22)의 모든 픽셀에 대한 광선 발사가 완료되었다고 판단되면(동작 260에서의 '예') 연산 프로세서(172)는 볼륨 데이터(10)에 대한 렌더링을 완료한다.
10 : 볼륨 데이터 V : 복셀(voxel)
11 : 셀(cell) S1~S6 : 2차원 슬라이스
SA : 2차원 슬라이스 아틀라스
100 : 초음파 영상 처리 장치 110 : 초음파 영상 데이터 획득부
120 : 사용자 입력부 130 : 저장부
140 : 제어부(CPU) 150 : 볼륨 데이터 생성부
160 : 볼륨 데이터 슬라이싱부 170 : 그래픽 처리 유닛(GPU)
172 : 연산 프로세서 174 : 텍스쳐 매핑 유닛
176 : 텍스쳐 메모리
11 : 셀(cell) S1~S6 : 2차원 슬라이스
SA : 2차원 슬라이스 아틀라스
100 : 초음파 영상 처리 장치 110 : 초음파 영상 데이터 획득부
120 : 사용자 입력부 130 : 저장부
140 : 제어부(CPU) 150 : 볼륨 데이터 생성부
160 : 볼륨 데이터 슬라이싱부 170 : 그래픽 처리 유닛(GPU)
172 : 연산 프로세서 174 : 텍스쳐 매핑 유닛
176 : 텍스쳐 메모리
Claims (19)
- 볼륨 데이터를 슬라이싱한 복수의 2차원 슬라이스를 저장하는 텍스쳐 메모리;
2차원 텍스쳐 매핑 기능을 지원하며 상기 복수의 2차원 슬라이스를 2차원 텍스쳐로 간주하여 2차원 텍스쳐 샘플링을 수행하는 텍스쳐 매핑 유닛; 및
상기 2차원 텍스쳐 샘플링의 샘플링값들을 이용하여 볼륨 렌더링을 수행하는 연산 프로세서를 포함하는 그래픽 처리 유닛. - 제 1 항에 있어서,
상기 연산 프로세서는 볼륨 광선 투사법(volume ray casting)을 이용하여 상기 볼륨 렌더링을 수행하는 그래픽 처리 유닛. - 제 2 항에 있어서,
상기 복수의 2차원 슬라이스는 상기 볼륨 데이터를 XY 평면, YZ평면 및 ZX 평면 중 어느 하나에 평행하게 슬라이싱하여 형성되는 그래픽 처리 유닛. - 제 3 항에 있어서,
상기 복수의 2차원 슬라이스는 하나 또는 미리 설정된 개수의 2차원 슬라이스 아틀라스(2D slice atlas)로 형성되어 상기 텍스쳐 메모리에 저장되는 그래픽 처리 유닛. - 제 3 항에 있어서,
상기 연산 프로세서는 시점으로부터 디스플레이 화면의 각 픽셀을 향해 가상의 광선을 발사하여 샘플점의 위치를 산출하고, 상기 샘플점의 위치가 상기 볼륨 데이터의 복셀(voxel)의 위치와 일치하지 않으면 상기 샘플점을 두 개의 2차원 슬라이스에 대응하는 상기 샘플점에 인접한 두 개의 평면으로 사영(projection)시키는 그래픽 처리 유닛. - 제 5 항에 있어서,
상기 연산 프로세서는 상기 두 개의 평면으로 사영된 두 점의 위치를 산출하여 상기 텍스쳐 매핑 유닛에 전달하는 그래픽 처리 유닛. - 제 6 항에 있어서,
상기 텍스쳐 매핑 유닛은 상기 두 개의 평면으로 사영된 두 점에서의 밝기값(intensity)을 산출하고, 산출된 상기 두 점에서의 밝기값을 상기 연산 프로세서에 전달하는 그래픽 처리 유닛. - 제 7 항에 있어서,
상기 연산 프로세서는 상기 사영된 두 점에서의 밝기값에 대한 상기 샘플점과 상기 사영된 두 점 사이의 거리에 따른 선형 보간(linear interpolation)을 이용하여 상기 샘플점에서의 밝기값을 산출하는 그래픽 처리 유닛. - 제 8 항에 있어서,
상기 연산 프로세서는 상기 산출된 샘플점에서의 밝기값을 누적하여 상기 디스플레이 화면의 상기 각 픽셀에 표시될 픽셀값을 산출하는 그래픽 처리 유닛. - 제 9 항에 있어서,
상기 연산 프로세서는 상기 디스플레이 화면의 모든 픽셀에 대해 상기 가상의 광선을 발사하여 상기 볼륨 렌더링을 수행하는 그래픽 처리 유닛. - 볼륨 데이터를 슬라이싱하여 형성한 복수의 2차원 슬라이스를 저장하는 텍스쳐 메모리;
2차원 텍스쳐 매핑 기능을 지원하며 상기 복수의 2차원 슬라이스를 2차원 텍스쳐로 간주하여 2차원 텍스쳐 샘플링을 수행하는 텍스쳐 매핑 유닛; 및
상기 복수의 2차원 슬라이스에 대해 볼륨 광선 투사법(volume ray casting)을 이용한 볼륨 렌더링을 수행하여 3차원 영상을 형성하되, 상기 2차원 텍스쳐 샘플링의 수행 결과를 이용하여 상기 볼륨 렌더링의 샘플링을 수행하는 연산 프로세서를 포함하는 그래픽 처리 유닛. - 영상 데이터를 획득하는 영상 데이터 획득부;
상기 영상 데이터를 이용하여 볼륨 데이터를 생성하는 볼륨 데이터 생성부;
상기 볼륨 데이터를 슬라이싱하여 복수의 2차원 슬라이스로 분할하는 볼륨 데이터 슬라이싱부;
그래픽 연산을 수행하는 그래픽 처리 유닛을 포함하되,
상기 그래픽 처리 유닛은:
상기 복수의 2차원 슬라이스를 저장하는 텍스쳐 메모리;
2차원 텍스쳐 매핑 기능을 지원하며 상기 복수의 2차원 슬라이스를 2차원 텍스쳐로 간주하여 2차원 텍스쳐 샘플링을 수행하는 텍스쳐 매핑 유닛; 및
상기 2차원 텍스쳐 샘플링의 샘플링값들을 이용하여 볼륨 렌더링을 수행하는 연산 프로세서로 이루어지는 그래픽 처리 유닛을 갖춘 영상 처리 장치. - 제 12 항에 있어서,
상기 연산 프로세서는 볼륨 광선 투사법(volume ray casting)을 이용하여 상기 볼륨 렌더링을 수행하는 그래픽 처리 유닛을 갖춘 영상 처리 장치. - 제 12 항에 있어서,
상기 볼륨 렌더링의 수행 결과 생성된 3차원 영상을 표시하는 디스플레이부를 더 포함하는 그래픽 처리 유닛을 갖춘 영상 처리 장치. - 제 14 항에 있어서,
상기 복수의 2차원 슬라이스에 대해 상기 볼륨 렌더링을 수행하도록 상기 그래픽 처리 유닛을 제어하고, 상기 볼륨 렌더링의 수행 결과 생성된 상기 3차원 영상을 화면에 표시하도록 상기 디스플레이부를 제어하는 제어부를 더 포함하는 그래픽 처리 유닛을 갖춘 영상 처리 장치. - 제 12 항에 있어서,
상기 복수의 2차원 슬라이스는 하나 또는 미리 설정된 개수의 2차원 슬라이스 아틀라스(2D slice atlas)로 형성되어 상기 텍스쳐 메모리에 저장되는 그래픽 처리 유닛을 갖춘 영상 처리 장치. - 초음파 신호를 대상체에 송신하고 대상체로부터 반사되는 초음파 에코 신호를 수신하여 초음파 영상 데이터를 획득하는 초음파 영상 데이터 획득부;
상기 초음파 영상 데이터를 이용하여 볼륨 데이터를 생성하는 볼륨 데이터 생성부;
상기 볼륨 데이터를 슬라이싱하여 복수의 2차원 슬라이스로 분할하는 볼륨 데이터 슬라이싱부;
그래픽 연산을 수행하는 그래픽 처리 유닛을 포함하되,
상기 그래픽 처리 유닛은:
상기 복수의 2차원 슬라이스를 저장하는 텍스쳐 메모리;
2차원 텍스쳐 매핑 기능을 지원하며 상기 복수의 2차원 슬라이스를 2차원 텍스쳐로 간주하여 2차원 텍스쳐 샘플링을 수행하는 텍스쳐 매핑 유닛; 및
상기 2차원 텍스쳐 샘플링의 샘플링값들을 이용하여 볼륨 렌더링을 수행하는 연산 프로세서로 이루어지는 그래픽 처리 유닛을 갖춘 영상 처리 장치. - 텍스쳐 메모리, 2차원 텍스쳐 매핑 기능을 지원하는 텍스쳐 매핑 유닛 및 그래픽 연산을 처리하는 연산 프로세서를 포함하는 그래픽 처리 유닛을 이용한 영상 처리 방법에 있어서,
볼륨 데이터를 슬라이싱한 복수의 2차원 슬라이스를 상기 텍스쳐 메모리에 저장하고;
상기 텍스쳐 매핑 유닛은 상기 복수의 2차원 슬라이스로 2차원 텍스쳐 샘플링을 수행하고;
상기 연산 프로세서는 상기 2차원 텍스쳐 샘플링의 샘플링값들을 이용하여 볼륨 렌더링을 수행하는 그래픽 처리 유닛을 이용한 영상 처리 방법. - 제 18 항에 있어서,
상기 볼륨 렌더링은 볼륨 광선 투사법(volume ray casting)을 이용하여 수행되는 그래픽 처리 유닛을 이용한 영상 처리 방법.
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120074741A KR101353303B1 (ko) | 2012-07-09 | 2012-07-09 | 그래픽 처리 유닛, 그래픽 처리 유닛을 갖춘 영상 처리 장치 및 그래픽 처리 유닛을 이용한 영상 처리 방법 |
US13/937,616 US20140015834A1 (en) | 2012-07-09 | 2013-07-09 | Graphics processing unit, image processing apparatus including graphics processing unit, and image processing method using graphics processing unit |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020120074741A KR101353303B1 (ko) | 2012-07-09 | 2012-07-09 | 그래픽 처리 유닛, 그래픽 처리 유닛을 갖춘 영상 처리 장치 및 그래픽 처리 유닛을 이용한 영상 처리 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20140007620A KR20140007620A (ko) | 2014-01-20 |
KR101353303B1 true KR101353303B1 (ko) | 2014-01-22 |
Family
ID=49913608
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020120074741A KR101353303B1 (ko) | 2012-07-09 | 2012-07-09 | 그래픽 처리 유닛, 그래픽 처리 유닛을 갖춘 영상 처리 장치 및 그래픽 처리 유닛을 이용한 영상 처리 방법 |
Country Status (2)
Country | Link |
---|---|
US (1) | US20140015834A1 (ko) |
KR (1) | KR101353303B1 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101651827B1 (ko) | 2015-02-26 | 2016-08-30 | 한밭대학교 산학협력단 | 파일 및 병렬 처리를 이용한 객체의 복셀화 방법 |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10169909B2 (en) * | 2014-08-07 | 2019-01-01 | Pixar | Generating a volumetric projection for an object |
CN104200510B (zh) * | 2014-08-22 | 2018-03-30 | 电子科技大学 | 基于目标cf的矢量量化压缩体绘制方法 |
KR101711060B1 (ko) * | 2015-05-29 | 2017-02-28 | 주식회사 코어라인소프트 | 레이 캐스팅의 가속화 방법 및 장치 |
US20180005432A1 (en) * | 2016-06-29 | 2018-01-04 | AR You Ready LTD. | Shading Using Multiple Texture Maps |
US11145111B2 (en) * | 2018-12-04 | 2021-10-12 | Intuitive Research And Technology Corporation | Volumetric slicer |
US11113868B2 (en) * | 2018-12-04 | 2021-09-07 | Intuitive Research And Technology Corporation | Rastered volume renderer and manipulator |
CN111369634B (zh) * | 2020-03-26 | 2023-05-30 | 苏州瑞立思科技有限公司 | 一种基于天气情况的图像压缩方法及装置 |
CN112190935A (zh) * | 2020-10-09 | 2021-01-08 | 网易(杭州)网络有限公司 | 动态体积云的渲染方法、装置及电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100138073A (ko) * | 2009-06-24 | 2010-12-31 | (주)에프엑스기어 | 유체 유동 렌더링 시스템 및 방법 |
KR101159162B1 (ko) | 2008-12-01 | 2012-06-26 | 한국전자통신연구원 | 측정 재질감을 지원하는 영상 생성 장치 및 방법 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7714855B2 (en) * | 2004-05-17 | 2010-05-11 | Siemens Medical Solutions Usa, Inc. | Volume rendering processing distribution in a graphics processing unit |
US8125480B2 (en) * | 2005-04-12 | 2012-02-28 | Siemens Medical Solutions Usa, Inc. | Flat texture volume rendering |
JP4588736B2 (ja) * | 2007-04-12 | 2010-12-01 | 富士フイルム株式会社 | 画像処理方法および装置並びにプログラム |
-
2012
- 2012-07-09 KR KR1020120074741A patent/KR101353303B1/ko not_active IP Right Cessation
-
2013
- 2013-07-09 US US13/937,616 patent/US20140015834A1/en not_active Abandoned
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101159162B1 (ko) | 2008-12-01 | 2012-06-26 | 한국전자통신연구원 | 측정 재질감을 지원하는 영상 생성 장치 및 방법 |
KR20100138073A (ko) * | 2009-06-24 | 2010-12-31 | (주)에프엑스기어 | 유체 유동 렌더링 시스템 및 방법 |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101651827B1 (ko) | 2015-02-26 | 2016-08-30 | 한밭대학교 산학협력단 | 파일 및 병렬 처리를 이용한 객체의 복셀화 방법 |
Also Published As
Publication number | Publication date |
---|---|
KR20140007620A (ko) | 2014-01-20 |
US20140015834A1 (en) | 2014-01-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101353303B1 (ko) | 그래픽 처리 유닛, 그래픽 처리 유닛을 갖춘 영상 처리 장치 및 그래픽 처리 유닛을 이용한 영상 처리 방법 | |
KR101923562B1 (ko) | 가변 렌더링 및 래스터화 파라미터 하에서 가변 뷰포트에 대하여 오브젝트를 효율적으로 리렌더링하는 방법 | |
US7714855B2 (en) | Volume rendering processing distribution in a graphics processing unit | |
KR101349171B1 (ko) | 3차원 그래픽 가속기 및 그것의 픽셀 분배 방법 | |
US9177414B2 (en) | Apparatus and method for rendering point cloud using voxel grid | |
CN1716317B (zh) | 滑动纹理的体绘制方法与*** | |
JP5866177B2 (ja) | 画像処理装置および画像処理方法 | |
JP4588736B2 (ja) | 画像処理方法および装置並びにプログラム | |
US20050237336A1 (en) | Method and system for multi-object volumetric data visualization | |
JP5974376B2 (ja) | 医用画像処理装置および画像処理方法 | |
EP1775685B1 (en) | Information processing device and program | |
JP4885042B2 (ja) | 画像処理方法および装置ならびにプログラム | |
US7893938B2 (en) | Rendering anatomical structures with their nearby surrounding area | |
US10192348B2 (en) | Method and apparatus for processing texture | |
KR20170025099A (ko) | 렌더링 방법 및 장치 | |
US7852335B2 (en) | Volume rendering processing distribution in a graphics processing unit | |
Kaufman et al. | A survey of architectures for volume rendering | |
JP5065740B2 (ja) | 画像処理方法および装置並びにプログラム | |
KR101227155B1 (ko) | 저해상도 그래픽 영상을 고해상도 그래픽 영상으로 실시간 변환하는 그래픽 영상 처리 장치 및 방법 | |
US20230274493A1 (en) | Direct volume rendering apparatus | |
Scheibel et al. | Attributed vertex clouds | |
Congote et al. | Volume ray casting in WebGL | |
Luo et al. | GPU-based multi-slice per pass algorithm in interactive volume illumination rendering | |
Gavrilov et al. | General implementation aspects of the GPU-based volume rendering algorithm | |
Gao et al. | Real-time hierarchical parallel rendering and display of light field images |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A201 | Request for examination | ||
A302 | Request for accelerated examination | ||
E902 | Notification of reason for refusal | ||
E701 | Decision to grant or registration of patent right | ||
GRNT | Written decision to grant | ||
LAPS | Lapse due to unpaid annual fee |