상술한 목적을 달성하기 위한 본 발명에 따르면, 3차원 초음파 데이터를 이용하여 대상체를 디스플레이하기 위한 장치가 제공되는데, 이 장치는, 인터페이스 장치로부터 기준 단면 정보를 수신하고, 상기 대상체의 원뿔 좌표로 된 3차원 데이터를 프로브 또는 3차원 데이터 저장 장치로부터 수신하며, 상기 대상체의 3차원 데이터가 초음파 영상으로서 디스플레이되는 영역이 직전의 디스플레이 영역과 다른지를 판단하기 위한 판단부, 상기 디스플레이 영역이 변화된 경우, 상기 디스플레이 영역을 계산하기 위한 디스플레이 영역 계산부, 상기 대상체를 나타내는 뷰(view)의 3차원 직교 좌표에 매칭되는 인덱스와, 상기 인덱스에 대응하는 직교 좌표와 원뿔 좌표간의 미리 계산된 좌표 변환값을 저장하기 위한 기하학적 룩업 테이블 저장부, 상기 대상체의 원뿔 좌표로 된 3차원 데이터를 상기 계산된 디스플레이 영역에 해당하는 직교 좌표로 변환하기 위하여 상기 기하학적 룩업 테이블 저장부로터 좌표 변환값을 검색하여 상기 대상체의 3차원 데이터를 스캔 변환하기 위한 스캔 변환부, 및 상기 스캔 변환된 3차원 데이터를 이용하여, 상기 기준 단면에 대하여 수직 방향으로의 다중 단면을 디스플레이하기 위하여 상기 스캔 변환된 3차원 데이터를 렌더링하기 위한 렌더링부를 포함한다.
또한, 본 발명에 따르면, 3차원 초음파 데이터를 이용하여 대상체를 디스플레이하기 위한 방법이 제공되는데, 이 방법은, 상기 대상체의 초음파 영상을 디스플레이하기 위한 화면의 3차원 직교 좌표에 매칭되는 인덱스와, 상기 인덱스에 대응하는 직교 좌표를 원뿔좌표로 변환하기 위한 연산의 결과값을 저장하는 단계, 인터페이스 장치로부터 기준 단면 정보를 수신하고, 상기 대상체의 원뿔 좌표로 된 3차원 데이터를 프로브 또는 3차원 데이터 저장 장치로부터 수신하며, 상기 대상체의 3차원 데이터가 초음파 영상으로서 디스플레이되는 영역이 직전의 디스플레이 영역과 다른지를 판단하는 단계, 상기 디스플레이 영역이 변화된 경우, 상기 디스플레이 영역을 계산하는 단계, 상기 대상체의 원뿔 좌표로 된 3차원 데이터를 상기 계산된 디스플레이 영역에 해당하는 직교 좌표로 변환하기 위하여 상기 기하학적 룩업 테이블 저장부로터 연산 결과값을 검색하여 상기 대상체의 3차원 데이터를 스캔 변환하는 단계, 및 상기 스캔변환된 3차원 데이터에 따른 상기 기준 단면에 대하여 수직 방향으로의 다중 단면 영상을 렌더링하는 단계를 포함한다.
또한, 본 발명에 따르면, 3차원 초음파 데이터를 이용하여 대상체의 단면을 디스플레이하기 위한 방법이 제공되는데, 이 방법은, 디스플레이할 대상체의 기준 단면을 결정하는 단계, 디스플레이할 상기 대상체의 3차원 초음파 데이터를 획득하는 단계, 상기 기준 단면을 디스플레이하는 단계, 보고자 하는 단면을 디스플레이하기 위하여, 상기 디스플레이된 기준 단면에 선(line)을 표시하는 단계, 및 상기 표시된 선의 수직 방향으로의 단면을 앤티에일리어싱 방법을 사용하여 렌더링하는 단계를 포함한다.
이와 같은 구성으로 인하여, 본 발명은 대상체의 다중 단면을 실시간으로 디스플레이할 수 있고, 대상체의 임의의 단면을 디스플레이할 수 있으며, 대상체가 없는 경우에도 미리 저장된 데이터를 이용하여 다중 단면 및 임의의 단면을 디스플레이할 수 있다.
이하, 첨부된 도면을 참조하여 본 발명의 실시예를 설명한다.
Ⅰ. 실시간 다중 단면 뷰
도 3a에는 본 발명의 일 실시예에 따른 실시간 초음파 진단 시스템(300)이 도시되어 있다. 도시된 바와 같이, 실시간 초음파 진단 시스템(300)은 프로브(301), 디스플레이 장치(303) 및 본체(302)를 포함한다. 프로브(301)는 디스플레이하고자 하는 대상체의 3차원 데이터를 획득하는데 쓰이는 것으로, 일반적으로 기구(mechanical arm)에 의해서 움직이거나 스테핑 모터(stepping motor)에 의해서 회전되는 기계적 스캐닝(scanning) 방식 또는 사용자가 직접 손으로 이동하여 스캔하는 핸드-프리 방식을 이용한다. 디스플레이 장치(303)는 모니터와 같이, 프로브(301)에 의해 획득된 데이터를 디스플레이하는 장치로서, 본 발명에 따른 3차원 영상을 사용자에게 디스플레이할 수 있는 것이라면 어떤 것이라도 상관없다. 본체(302)는 프로브(301)로부터 획득한 3차원 데이터를 디스플레이 장치(303)에서 디스플레이할 수 있도록 데이터를 처리하는데, 이러한 기능은 본체(302)가 포함하는 3차원 초음파 진단 시스템용 렌더링 장치에서 이루어진다. 이하, 3차원 초음파 진단 시스템용 렌더링 장치에 대하여 설명한다.
도 3b는 도 3a에서의 본체(302)에 포함되는 본 발명의 일 실시예에 따른 실시간 3차원 초음파 진단 시스템용 렌더링 장치의 구성 블록도를 도시한 것이다. 도시된 바와 같이, 실시간 3차원 초음파 진단 시스템용 렌더링 장치(310)는, 인터페이스 장치(318), 판단부(312), 디스플레이 영역 계산부(313), 스캔 변환부(314), 기하학적 룩업 테이블(Geometry Look-Up Table) 저장부(311), 렌더링 룩업 테이블 저장부(315), 렌더링부(316) 및 3차원 데이터 저장 장치(317)를 구비한다. 실시간 3차원 초음파 진단 시스템용 렌더링 장치(310)를 구성하는 각각의 구성요소를 상세히 설명하면 다음과 같다.
인터페이스 장치(318)는, 프로브(301)로부터 획득된 3차원 데이터를 어떻게 디스플레이하고 처리할 지를 명령하는 뷰 조작 명령어를 사용자로부터 입력받거나 자동으로 설정하여 적절히 변환한 후 출력하는 기능을 한다. 이러한 뷰 조작 명령어에는 보고자 하는 대상체의 기준 단면, 화면 레이아웃 및 디스플레이 영역 등에 관한 명령어가 있을 수 있는데, 이들 각각에 대한 인터페이스 장치(318)의 동작에 대하여 상술하면 다음과 같다.
인터페이스 장치(318)는 기준 단면에 관한 정보를 사용자로부터 입력 받아서, 이 기준 단면을 기준으로 그 법선 방향으로의, 기준 단면과 평행한 대상체의 복수의 단면 영상이 디스플레이 되도록 하는 명령어를 출력한다. 여기서, 기준 단면은, 예를 들면 상술한 A 단면, B 단면, C 단면에 해당하는 단면 중 사용자의 선택에 의해 결정되는 단면이다.
다음, 인터페이스 장치(318)는 화면 레이아웃에 관한 정보를 사용자로부터 입력 받아서, 이에 따라 단면 영상들이 디스플레이되도록 하는 명령어를 출력한다. 여기서, 화면 레이아웃은 디스플레이 장치(303)의 화면에 대상체의 단면 영상을 몇 개 나타낼 지에 관한 구조도인데, 디스플레이하고자 하는 대상체의 단면 영상의 개수에 따라 자동으로 결정될 수도 있다. 선택 가능한 레이아웃에는 1*1(디스플레이 장치의 수평 방향으로 1개의 단면 영상, 수직 방향으로 1개의 단면 영상), 2*1, 2*2, 3*2, 4*3, 6*4 등이 있을 수 있다.
끝으로, 인터페이스 장치(318)는 디스플레이 영역에 관한 정보를 사용자로부터 수신하여, 디스플레이 장치의 화면에 디스플레이 영역에 해당하는 영상만이 표시되도록 하는 명령어를 출력할 수 있다. 여기서, 디스플레이 영역은 디스플레이 장치의 화면에 디스플레이되는 대상체의 영상의 영역(크기)을 말하는데, 사용자가 인터페이스 장치(318)를 통하여 마우스 등으로 디스플레이 장치(303)에 직접 표시하거나 좌표 값을 입력함으로써 설정될 수 있다. 이러한 구성으로 인하여, 실질적으로 디스플레이되지 않는 영역에 대응하는 대상체의 3차원 초음파 데이터는 스캔 변환될 필요가 없으므로 데이터 처리 속도가 향상될 수 있는데, 이에 대해서는 후술한다.
판단부(312)는 인터페이스 장치(318)로부터의 디스플레이 영역에 관한 정보에 기초하여 디스플레이 영역이 변동되었는지를 판단하여, 프로브(301) 또는 3차원 데이터 저장 장치(317) 중 어디로부터 대상체의 3차원 데이터를 수신할 지를 판단한다. 상술하면, 프로브(301)가 대상체의 데이터를 획득하는 대로 대상체의 현재의 영상을 실시간으로 디스플레이할 것이 요구되면, 프로브(301)로부터 대상체의 3차원 데이터를 수신하고, 이미 저장되어 있는 데이터를 사용하여 가상적으로 스캔할 것이 요구되면, 후술할 3차원 데이터 저장 장치(317)로부터 대상체의 3차원 데이터를 수신한다.
디스플레이 영역은 사용자가 영역 크기를 확대하거나, 디스플레이된 3차원 영상을 회전, 이동 및 확대시키는 경우에 변동된다. 비록 디스플레이 영역이 변동되지 않았어도 대상체를 처음 스캔하는 경우에는 디스플레이 영역이 변동되었다고 판단할 수 있다. 도 3b에 도시된 바와 같이, 판단부(312)는 디스플레이 영역이 변동된 경우에는 대상체의 3차원 데이터 및 디스플레이 영역 등에 관한 정보를 디스플레이 영역 계산부(313)로 출력하고, 디스플레이 영역이 변동되지 않은 경우에는 렌더링 룩업 테이블 저장부(315)로 출력한다. 렌더링 룩업 테이블 저장부(315)로 출력하는 경우에 대해서는 후술한다.
디스플레이 영역 계산부(313)는, 디스플레이 영역에 관한 정보를 판단부(312)로부터 수신하여, 도 1에 도시된 뷰(101)와 같이 초음파 영상들(102 내지 105)이 실질적으로 디스플레이되는 디스플레이 영역 내의 x, y, z 직교 좌표들의 값을 계산한다. 한편, 디스플레이 영역 계산부(313)는 판단부(312)를 통하여 수신되는 대상체의 3차원 데이터에 대해서는 특별한 처리를 하지 않고 출력한다.
스캔 변환부(314)는, 원뿔 좌표로 된 대상체의 3차원 데이터와 디스플레이 영역 계산부(313)에서 계산된 디스플레이 영역 내의 x, y, z 직교 좌표들을 수신하여, 원뿔 좌표로 된 대상체의 3차원 데이터를 x, y, z 직교 좌표들을 기초로 직교 좌표로 된 데이터로 변환(스캔 변환)한다. 이렇게 데이터를 변환하는 이유는, 프로브(301)로부터 수신되는 3차원 초음파 데이터는 직교 좌표가 아니라 원뿔 좌표를 기준으로 하고 있고, 디스플레이 장치에 표시하기 위한 디스플레이 영역은 직교 좌표를 기준으로 하고 있기 때문이다. 그런데, 스캔 변환을 수행하기 위해서는, 후술하는 바와 같이 아크 탄젠트 연산과 같은 복잡한 수학 연산을 수행하여야 하는데, 대상체의 3차원 데이터가 입력될 때마다 이러한 연산을 수행하면, 그 연산에 많은 처리 시간이 소요되므로, 대상체를 실시간으로 디스플레이하지 못할 수 있다.
이러한 문제점을 해결하기 위하여, 본 발명은 디스플레이 장치 화면의 3차원 직교 좌표에 매칭되는 인덱스(index)와 각각의 인덱스에 대응하는 아크 탄젠트 연산 결과 값을 저장하는 기하학적 룩업 테이블을 생성하여 기하학적 룩업 테이블 저장부(311)에 저장한다. 이러한 구성에 의하면, 원뿔 좌표로 된 대상체의 3차원 데이터가 직교 좌표로 된 데이터로 빠르게 스캔 변환될 수 있어, 대상체가 실시간으로 디스플레이될 수 있다.
이하에서는 기하학적 룩업 테이블을 생성하는 프로세스를 설명하는데, 기하학적 룩업 테이블은 일반적으로 본 발명에 따른 방법 및 시스템이 프로브(301)로부터 대상체의 3차원 데이터를 수신하기 전에 미리 생성되어 있어야 한다.
도 4a는 원뿔 좌표계와 직교 좌표계 사이의 관계를 도시한 것이고, 도 4b는 도 4a에서 도시한 임의의 3차원 데이터를 Y-Z 직교 좌표로 도시한 것이며, 도 4c는 도 4a에 도시한 임의의 3차원 데이터를 X-R 직교 좌표에서 도시한 것이다. 여기서, X축, Y축 및 Z축은 대상체의 영상이 디스플레이 될 수 있는 3차원 직교 좌표계를 구성하는 축이며, R축은 3차원 초음파 영상이 획득되는 부분부터 X축에 직교되는 축이다.
이와 같이 직교 좌표의 3차원 데이터로 스캔 변환되는 원뿔 좌표로 된 3차원 데이터가 위치하는 정확한 원뿔 좌표 는 다음의 수학식 1의 관계로부터 얻어질 수 있다.
여기서, β는 프로브내의 스테핑 모터의 스윙(swing) 각도 범위인 스캔 뷰잉 각도(scan viewing angle)로서 0°~ 180°사이의 각도이고, σ는 프로브(301)로부터 스캐닝되는 2차원 영상의 폭(width) 각도 범위인 프로브 뷰잉 각도(probe viewing angle)로서 0°~ 180°사이의 각도이며, r는 초음파 영상이 획득되는 부분부터 초음파 영상내 임의의 3차원 데이터까지의 거리이며, a는 스캔 뷰잉 각도의 꼭지점에서 프로브 뷰잉 각도의 꼭지점까지의 거리이며, b는 프로브 뷰잉 각도의 꼭지점에서 3차원 초음파 영상이 획득되는 부분까지의 거리이다. 또한, x, y 및 z는 직교 좌표계의 X축, Y축 및 Z축상의 모든 값이다.
상기 수학식 1에서 원뿔 좌표의 β및 σ를 얻기 위해서는, 아크 탄젠트( 및 ) 연산이 수행되어야 한다. 상기 아크 탄젠트 수식에서 x, y 및 z는 디스플레이 장치의 화면의 좌표들에 대응하도록 설정된 값이며, R은 수학식 1에서와 같이 x, y 및 z로부터 계산된다. 다음의 표 1a 및 1b는, 사전 설정된, Y축상에 존재하는 임의의 y 좌표 4개와 Z축상에 존재하는 임의의 z 좌표 4개를 병렬 처리하여 4개의 R 값을 얻은 후, X축상에 존재하는 임의의 x 좌표 4개와 R 값을 병렬 처리하여 r을 계산하는 예를 개시하고 있다. 이렇게 x, y, z 및 R을 병렬 처리하면, 3차원 데이터의 스캔 변환 속도가 향상될 수 있다.
m1 = [y4, y3, y2, y1] |
m1에 y값 입력 |
m5 = m1 ×[y4, y3, y2, y1] |
m5는 y의 제곱 |
m2 = [z4, z3, z2, z1] |
m2에 z값 입력 |
m6 = m2 ×[z4, z3, z2, z1] |
m6는 z의 제곱 |
m7 = m5 + m6 |
m7는 y2 + z2 |
m3 = sqrt(m7) |
m3는 y2 + z2 의 제곱근 |
m8 = m3 - a |
m8는 [R4, R3, R2, R1] |
m0 = [x4, x3, x2, x1] |
m0에 x값 입력 |
m4 = m0 ×[x4, x3, x2, x1] |
m4는 x의 제곱 |
m5 = [R4, R3, R2, R1] |
m5에 R값 입력 |
m5 = m5 ×[R4, R3, R2, R1] |
m5는 R의 제곱 |
m9 = m4 + m5 |
m9는 x2 + R2 |
m10 = sqrt(m9) |
m10는 x2 + R2 의 제곱근 |
m11 = m10 - b |
m11는 [r4, r3, r2, r1] |
이와 같이, 영역 내의 x, y, z 좌표들 및 이에 대응하는 R 값으로부터 및 가 계산되며, 이들 계산된 아크 탄젠트 연산 결과 값에 (y/z) 및 (x/R)에 해당하는 인덱스를 부여함으로써 기하학적 룩업 테이블이 생성된다. 즉, 기하학적 룩업 테이블은
, , …, 에 해당하는 인덱스와
, , …, 에 해당하는 각도,
, , …, 에 해당하는 인덱스와
, , …, 에 해당하는 각도를 포함한다.
스캔 변환부(314)는, 상술한 바와 같은 프로세스로 미리 생성된 기하학적 룩업 테이블 저장부(311)를 이용하여, 수신된 디스플레이 영역의 3차원 직교 좌표에 매칭되는 인덱스와 그 인덱스에 대응하는 아크 탄젠트 연산 결과 값을 검색하고, 검색된 아크 탄젠트 연산 결과 값을 수학식 1에 적용함으로써, 디스플레이 영역의 3차원 직교 좌표 , , …, 에 대응하는 원뿔 좌표 , , …, 를 얻을 수 있다.
다음, 스캔 변환부(314)는 원뿔 좌표로 된 3차원 데이터를 직교 좌표로 된 데이터로 변환하고, 이렇게 변환된 3차원 데이터, 3차원 데이터가 위치하는 원뿔 좌표, 및 기하학적 룩업 테이블 저장부(311)로부터 검색된 인덱스를 출력한다.
이와 같이, 본 발명의 스캔 변환부(314)는 많은 처리 시간이 요구되는 아크 탄젠트 연산을 직접 수행하지 않고 기하학적 룩업 테이블 저장부(311)에 포함된 아크 탄젠트 연산 결과 값을 이용하여, 사전 설정된 x, y, z 및 R을 병렬 처리하여 대상체의 3차원 데이터가 위치하는 원뿔 좌표를 찾은 후에 이를 스캔 변환하기 때문에, 대상체의 원뿔 좌표로 된 3차원 데이터를 직교 좌표로 된 3차원 데이터로 스캔 변환하는 속도를 향상시킬 수 있다.
렌더링 룩업 테이블 저장부(315)는, 디스플레이 영역이 변동되었다고 판단부(312)에서 판단된 경우에는 스캔 변환부(314)로부터, 그렇지 않은 경우에는 판단부(312)로부터 데이터를 수신한다. 스캔 변환부(314)로부터 입력을 수신하는 경우에, 스캔 변환된 3차원 데이터, 인덱스 및 이에 대응하는 원뿔 좌표를 수신하고, 수신된 인덱스 및 원뿔 좌표를 포함하는 렌더링 룩업 테이블을 생성하여 저장한 후, 스캔 변환된 3차원 데이터를 출력한다. 이렇게 렌더링 룩업 테이블을 생성하고 저장하는 이유는, 디스플레이 영역이 변동되지 않는 경우에는 동일한 원뿔 좌표로 된 데이터가 동일한 직교 좌표로 된 데이터로 스캔 변환되므로, 동일한 스캔 변환을 다시 수행할 필요 없이 이미 스캔 변환한 결과를 저장해 두면, 초음파 진단 시스템의 데이터 처리 속도를 향상시킬 수 있기 때문이다.
한편, 디스플레이 영역이 변동되지 않아서 판단부(312)로부터 원뿔 좌표로 된 대상체의 3차원 데이터를 수신하는 경우에는, 기존의 디스플레이 영역에 대응하는 원뿔 좌표들을 렌더링 룩업 테이블로부터 검색하여, 이 원뿔 좌표들에 대응하는 3차원 직교 좌표 데이터를 출력한다.
좀 더 상세히 설명하면, 디스플레이 영역이 변동되지 않는 경우에는 디스플레이 영역의 3차원 직교 좌표로 스캔 변환되는 새로운 대상체에 대한 3차원 원뿔 데이터와 이전 대상체에 대한 3차원 원뿔 데이터가 위치하는 원뿔 좌표가 동일하다. 예를 들어, 제 1 대상체의 원뿔 좌표 에 위치하는 3차원 데이터와 제 2 대상체의 원뿔 좌표 에 위치하는 3차원 데이터는 동일한 3차원 직교 좌표 로 스캔 변환되므로, 대상체가 변경되더라도 디스플레이 영역의 3차원 직교 좌표에 매칭되는 인덱스는 동일하기 때문에, 디스플레이 영역 계산부(313) 및 스캔 변환부(314)를 거칠 필요가 없다.
반면에, 디스플레이된 영상을 계속하여 이동 또는 확대하는 경우와 같이, 디스플레이 영역이 자주 변경되는 작업을 하는 경우에는, 스캔 변환을 수행하는 것에 더불어 렌더링 룩업 테이블을 매번 생성하여 저장하는 것이 시스템에 더 큰 부하를 줄 수 있기 때문에, 렌더링 룩업 테이블 저장부(315)에 렌더링 룩업 테이블을 생성하지 않고 데이터를 스캔 변환부(314)로부터 렌더링부(316)로 직접 전송할 수도 있다.
렌더링부(316)는, 렌더링 룩업 테이블 저장부(315) 또는 스캔 변환부(314)로부터 수신된 대상체의 3차원 데이터를 이용하여, 인터페이스 장치(318)에 의해 선택된 레이아웃 수만큼 렌더링을 수행한다. 이렇게 하여, 렌더링부(316)는 수신한 3차원 데이터를 디스플레이 영역의 3차원 직교 좌표에 투영하여 대상체의 다중 단면 영상을 디스플레이할 수 있으며, 레이아웃의 단면 영상의 수가 너무 많아 디스플레이 장치의 한 화면을 넘어가는 경우에는 윈도우의 스크롤과 같은 기능을 사용하여 다음 단면의 영상이 보여지게 할 수 있다. 여기서 다중 단면은, 상술한 바와 같이 기준 단면을 기준으로 그 법선 방향으로의, 기준 단면과 평행한 대상체의 복수의 단면이다. 3차원 데이터를 렌더링하기 위한 프로세스는 통상적으로 사용되는 볼륨 렌더링 프로세스와 동일하게 수행되므로, 본 명세서에서는 이에 대한 상세한 설명은 생략한다.
디스플레이할 때에는, 기준 단면으로부터의 거리에 따라 다중 단면의 영상들을 디스플레이할 수 있고, 필요하다면 대상체의 표면으로부터의 절대 깊이에 따라 다중 단면의 영상들을 디스플레이할 수 있다. 또한 사용자는 상술한 인터페이스 장치를 사용하여 단면간의 거리를 설정할 수 있어서, 좀 더 세밀한 깊이에 대한 단면 영상들을 보며 진단에 활용할 수 있다.
도 5는 이러한 렌더링이 수행된 후 디스플레이된 다중 단면 영상을 도시한 것이다. 도 5에서 A, B ,C는 각각 상술한 A단면, B단면, C단면의 기준 단면을 의미하며, 사용자가 어떤 기준 단면을 선택하느냐에 따라 디스플레이되는 단면 영상들이 바뀌어 디스플레이된다. 또한, 도 5의 하단부에는 디스플레이된 영상을 처리할 수 있는 여러 가지 뷰 조작 명령어들이 도시되어 있는데, 사용자는 이러한 뷰 조작 명령어들을 사용하여 디스플레이된 영상에, 윈도우즈의 그림판에서 이미지를 편집하는 것과 마찬가지로, 디스플레이된 단면 영상을 확대, 축소, 삭제 또는 이동할 수 있다.
사용자는 디스플레이된 다중 단면 영상을 보면서 프로브를 움직이며 원하는 영상을 찾을 수 있다. 이 경우에는 상술한 바와 같은 데이터 처리 과정이 반복적으로 수행되어 대상체의 단면 영상이 실시간으로 디스플레이된다. 원하는 영상을 찾으면 실시간 상태를 멈추고 대상체의 3차원 데이터를 3차원 데이터 저장 장치(317)에 저장할 수 있는데, 이는 추후에 대상체가 없는 경우에도 저장된 데이터를 사용하여 대상체를 가상적으로 스캔하기 위함이다.
이와 같이 가상적으로 스캔하는 경우에는, 판단부(312)는 3차원 데이터 저장 장치(317)로부터 대상체의 3차원 데이터를 수신한다. 상술하면, 대상체의 데이터를 실시간으로 획득하여 대상체의 현재의 단면 영상을 디스플레이할 것이 요구되면, 판단부는 프로브(301)로부터 대상체의 3차원 데이터를 수신하고, 이미 저장되어 있는 데이터를 사용하여 대상체를 가상적으로 스캔할 것이 요구되면, 3차원 데이터 저장 장치(317)로부터 대상체의 3차원 데이터를 수신한다.
3차원 데이터 저장 장치(317)에는 휘발성 저장 장치 및/또는 비휘발성 저장 장치를 포함하여 다양한 장치가 있을 수 있다. 상술하면, 비휘발성 저장 장치는 ROM(read only memory), PROM(programmable read only memory), EPROM(electrically programmable read only memory), EEPROM(electrically erasable programmable read only memory)을 포함하지만, 이에 한정되지는 않는다. 휘발성 저장 장치는, 예를 들어 RAM(random access memory). SRAM(synchronous RAM), DRAM(dynamic RAM), SDRAM(synchronous DRAM), DDRSDRAM(double data rate SDRAM), 및 DRRAM(direct RAM bus), 자기 디스크 드라이브, 플로피 디스크 드라이브, 테이프 드라이브, 집 드라이브(Zip drive), 플래시 메모리 카드, 및/또는 메모리 스틱(memory stick), CD-ROM(compact disk ROM), CD-R drive(CD recordable drive), CD-RW drive(CD rewriteable drive) 및/또는 DVD ROM(digital versatile ROM drive)과 같은 장치를 포함하지만, 이에 한정되지는 않는다.
사용자는 저장된 3차원 데이터를 이용하여, 즉 가상 스캔을 통하여 상술한 다중 단면 영상를 디스플레이할 수 있다. 3차원 데이터 저장 장치(317)로부터 대상체의 3차원 데이터를 수신하여 처리하는 과정은 프로브(301)를 통하여 대상체의 3차원 데이터를 수신하여 처리하는 상술한 과정과 동일하므로, 상세한 설명은 생략한다.
3차원 데이터 저장 장치(317)를 통하여 대상체의 3차원 데이터를 수신하는 경우에, 디스플레이될 레이아웃의 수는 3차원 데이터를 획득할 때 사용했던 레이아웃의 수와 동일할 필요는 없다. 레이아웃의 수는 사용자가 보고자 하는 단면의 수를 의미하기 때문에, 사용자가 저장되어 있는 데이터와 다른 단면 또는 다른 깊이의 영상을 보고자 할 경우에는, 보간법(interpolation) 등을 사용하여 필요한 데이터를 생성하여 렌더링할 수 있다.
그리고, 후술하는 바와 같은 오블리크 단면 영상을 디스플레이된 영상에 적용할 수도 있으며, 최종 결과를 저장하여 다음 번 작업에서 사용할 수도 있다.
또한, 사용자는 이미 디스플레이된 초음파 영상들을 이동, 확대, 축소, 회전시키거나 초음파 영상들의 디스플레이 영역을 변동시킴으로써 변환된 초음파 영상들을 관찰하여 대상체에 대한 임상 정보를 얻을 수 있다.
다중 단면의 영상에서의 이동, 확대 또는 축소 등의 처리는 속도향상을 위하여 도 3b와 같은 처리과정을 거치지 않고 영상처리 기법을 통하여 수행될 수 있다.
이러한 방법으로 대상체를 디스플레이하면 얻을 수 이점에는 크게 네 가지가 있다.
첫째, 사용자는 대상체가 심장, 혈류 등과 같이 동적인 경우에도 본 발명의 다중 단면 영상을 사용하여 스캔 방향마다 다른 위치를 표현하는 단면 영상들의 집합을 한 번에 실시간으로 확인이 가능하므로 빠르고 정확하게 진단할 수 있다.
둘째, 사용자는 디스플레이되는 부분이 자신이 원하는 데이터인지를 보다 정확하게 판단할 수 있다. 초음파 진단기의 경우에는 손의 움직임으로 프로브를 이동시켜서 대상체를 스캔할 수 있는데, 이러한 손의 움직임으로 인해 정확하지 않은 위치를 스캔할 가능성이 있다. 그런데, 본 발명에 따르면, 사용자는 실시간 다중 단면 뷰를 통해 원하는 영상을 확인할 수 있고, 원하는 볼륨 데이터를 저장하여 스태틱 상태의 다중 단면 뷰에서 다시 여러 이미지 처리를 통해 진단할 수 있다.
셋째, 한번 스캔한 데이터를 3차원 데이터 저장 장치에 저장하고 있으므로, 추후에 대상체가 없는 경우에도 마치 대상체가 있는 것과 동일하게 다중 단면 영상을 디스플레이 할 수 있고, 후술하는 오블리큐 단면 영상을 디스플레이 할 수 있다.
넷째, 사용자는 디스플레이된 영상에 여러 가지 이미지 처리를 할 수 있고, 후술하는 오블리크 단면 뷰 기능을 수행할 수 있으므로, 원하는 영상을 보다 자유롭게 디스플레이할 수 있다.
Ⅱ. 오블리크 단면 뷰
종래의 초음파 진단기는, 도 1에 도시된 바와 같이 특정한 위치에서 3차원 데이터를 수직으로 자른 단면, 즉 A, B, C 단면만을 디스플레이하고, 디스플레이된 단면의 회전을 통해서 임의의 단면을 보여주므로 사용자가 원하는 단면을 자유롭게 디스플레이하지 못했다. 또한 종래의 방법은 각 위치마다 회전을 하다보면, 현재의 단면 위치를 알기가 어렵고, 원하는 단면을 찾기도 어렵다. 따라서 본 발명은 사용자가 기준 단면의 영상에서 직관적으로 원하는 단면을 만들 수 있도록 하는 오블리크 단면 뷰 기능을 제공한다.
본 발명에 따르면, 사용자는 기준 단면에 임의의 직선 또는 곡선을 표시하고, 이렇게 표시된 직선 또는 곡선으로부터 기준 단면의 법선 방향으로 연장된 평면 또는 곡면이, 본 발명에 따른 오블리크 단면 뷰 디스플레이 방법에 따라 최종적으로 디스플레이될 것이다.
이하, 도 6을 참조하여 본 발명의 실시예를 상세히 설명한다.
먼저, 단계 "601"에서 사용자는 상술한 대상체의 다중 단면 뷰를 보기 위하여 사용한 것과 동일한 방법으로 대상체의 실시간 다중 단면 뷰를 표시하거나, 예를 들면, 대상체의 A 단면, B 단면 또는 C 단면이 디스플레이 되도록 한 후, 이들 단면 중 하나를 기준 단면으로서 선택한다. 물론, 선택 가능한 단면 영상들은 상술한 실시간 방법이 아닌 종래의 3차원 데이터 획득 방법으로도 디스플레이될 수 있고, 저장 매체 등에 이미 저장되어 있는 3차원 데이터를 이용해서도 디스플레이될 수 있다.
다음, 단계 "602"에서 사용자는 임의의 선을 기준 단면에 직선으로 표시(라인 모드)할지 또는 곡선으로 표시(콘투어 모드)할지를 선택한다. 직선 및 곡선 중 하나를 선택하는 이유는 각각의 경우에 따라서 후술하는 앤티에일리어싱 방법에 차이가 있을 수 있기 때문이다.
사용자가 선택된 모드에 따라 기준 단면에 임의의 선을 표시하기 위하여, 예를 들면 컴퓨터의 마우스 버튼을 처음으로 누르면, 그 때의 마우스 포인터의 좌표가 버퍼에 저장된다(단계 "603"). 본 실시예는 마우스를 사용하여 임의의 선을 표시하는 경우를 가정하지만, 마우스 이외의 터치패드와 같은 다른 입력 장치도 사용될 수도 있다.
사용자가 마우스의 버튼을 누른 경우 초기에 사용자가 선택한 선의 형태가 직선이면 라인 처리 과정으로 진행하고, 곡선이면 마우스의 이동을 처리하는 과정으로 간다(단계 "604"). 이는 직선을 디스플레이하기 위해서는 마우스 포인터의 시작 좌표와 종료 좌표만 알면 되지만, 곡선을 디스플레이하기 위해서는 마우스 이동시의 모든 좌표를 알아야 하므로 처리 과정이 다르기 때문이다.
직선을 표시하는 라인 모드인 경우에는 마우스 업 이벤트(마우스의 클릭 버튼을 떼는 때에 발생하는 이벤트)가 발생할 때까지 대기하고, 곡선을 표시하는 콘투어 모드인 경우에는 마우스 이동시의 모든 좌표를 버퍼(이하, "오블리크 버퍼"라 함)에 계속하여 저장한다(단계 "605").
다음, 사용자가 마우스 이동을 멈추고 마우스를 떼는 때, 사용자가 화면에 표시한 임의의 선분이 디스플레이되어야 한다.
예를 들어, 상술한 단계 "601" 내지 "605"에 따르면, 사용자는 기준 단면으로서 A 단면을 선택한 후, 디스플레이된 A 단면에 보고자 하는 단면을 도 7(a)와 같이 표시한다. 도 7(a)에서, 시점은 사용자가 선을 그리기 시작하는 점이고, 종점은 이 선의 끝점이다. 이렇게 A 단면에 선을 표시하면, 도 7(a)의 우측에 도시된 바와 같이 빗금친 영역이 후술하는 앤티에일리어싱 처리를 거친 후 디스플레이된다. 도 7(b) 및 도 7(c)는 각각 B 단면, C 단면에 도 7(a)와 같은 작업을 수행한 것이며, 도 7(d)는 A 단면에 곡선을 표시한 경우를 도시한 것이다.
그런데, 사용자가 그리는 직선 또는 곡선은 어디까지나 모니터 화면에서 그리는 것이기 때문에 연속적으로 선이 그려지지 않는다. 또한 모니터 화면의 영상 정보는 2차원으로 배열된 점에 의해 전달되는데, 화면의 점의 개수가 적으면 들쑥날쑥한 계단 현상이 일어나 선이 매끄럽지 못할 수도 있다. 도 8(a)에 도시된 바와 같이, 기준 단면에 수평 방향으로의 직선을 표시하려고 해도, 에일리어싱 현상으로 인하여 사용자에게는 직선이 아닌 빗금친 부분들이 보일 수 있다. 도 8(b) 및 도 8(c)는 기준 단면에 수직 또는 기울어진 직선을 표시하려고 한 경우에, 에일리어싱이 생기는 경우를 나타낸 것이다. 이러한 문제점을 해결하기 위하여 각 점 사이에 배경 색과 중간 색조의 점을 추가하여 화면을 자연스럽게 표현하는 화면 처리 기술이 앤티에일리어싱 방법인데, 본 발명에서는 일반적인 앤티에일리어싱 방법 이외에, 선택적 앤티에일리어싱 방법을 사용할 수 있다.
선택적 앤티에일리어싱 방법이란 전체 선분 데이터에 앤티에일리어싱을 적용하는 것이 아니라, 정해진 규칙에 의해 에일리어싱이 생긴 데이터를 찾은 후, 그 데이터에 대해서만 앤티에일리어싱 처리를 한다는 것이다.
선택적 앤티에일리어싱 처리 방법은 선분의 기울기의 특성에 따라 나뉘어진다.
선분의 기울기를 d = △y/△x라 하자. 여기서 △x = Xmax - Xmin(Xmax는 선분의 최대 X 좌표, Xmin는 선분의 최소 X 좌표) 및 △y = Ymax - Ymin(Ymax는 선분의 최대 Y 좌표, Ymin는 선분의 최소 Y 좌표)이다.
선분의 기울기에는 세 가지 경우가 있을 수 있는데 각각 다음과 같다.
1) d ≒ 0 : △x가 △y 보다 매우 클 경우
2) d ≒ ∞: △y가 △x 보다 매우 클 경우
3) 0 < d < ∞: 기울기가 존재할 경우
1)의 경우에는 x축 성분만 존재하고 픽셀 좌표 y 값은 일정하다고 할 수 있다. 그러므로, 도 8(a)와 같이 각 좌표에서 y의 값이 이전 값과 비교했을 때 다를 경우에는 에일리어싱이 발생한 좌표라고 할 수 있다.
2)의 경우에는 y 축 성분만 존재고 픽셀 좌표 x 값은 일정하다고 할 수 있다. 그러므로, 도 8(b)와 같이 각 좌표에서 x의 값이 이전 값과 비교했을 때 다를 경우에는 에일리어싱이 발생한 좌표라고 할 수 있다.
3)의 경우에는 기울기가 존재하므로 도 8(c)와 같이 선분의 각 픽셀 좌표들이 서로 위치가 다른 경우 에일리어싱이 발생한 것이라고 할 수 있다.
마우스 이동이 끝나고 마우스를 뗐을 때 라인 모드인 경우에는 상술한 바와 같이 직선의 기울기를 계산하여, 앤티에일리어싱 방법을 자동으로 설정하는데 사용하고 콘투어 모드인 경우에는 모든 오블리크 버퍼에 있는 좌표들을 에일리어싱된 좌표로 설정한다. 다음, 라인 모드인 경우에는 처음과 끝의 좌표 사이의 데이터를 만들어 내기 위해 라인 내삽(interpolation) 계산을 수행한다(단계 "607"). 그 후, 좌표가 미리 계산한 기울기를 기준으로 하여 에일리어싱 좌표에 해당하는지 검사하여 에일리어싱 좌표를 검출하고, 보간된 좌표를 오블리크 버퍼에 저장한다.
다음, 앞에서 저장된 오블리크 버퍼의 좌표 수만큼 루프를 돌면서 렌더링 처리 과정을 수행한다(단계 "609").
각 좌표마다 깊이 방향으로 렌더링 처리 과정을 수행하면서 그 좌표가 에일리어싱된 좌표인지 검사한다.
이렇게 에일리어싱이 나타난 좌표에 대한 앤티에일리어싱 방법은 도 9처럼 각 스캔라인마다 렌더링을 진행하면서 에일리어싱되는 스캔라인을 렌더링하는 경우에 이전 스캔라인 값과 averaging 연산을 통해서 에일리어싱 현상을 제거한다. 즉, 이를 수식으로 표현하면 아래 식과 같이 표현할 수 있다.
Loop i = D0 ~ Dk-1
Si = (Spi + Sci)/2
D0 ~ Dk-1 : Depth index
Spi : Depth i번째의 이전 스캔라인 데이터
Sci : Depth i번째의 현재 스캔라인 데이터
Si : Depth i번째의 앤티에일리어싱된 데이터
즉, 단계 "611"에서, 만일 그 좌표가 에일리어싱된 좌표이면 그 깊이 방향의 전체 데이터에 대해서 앤티에일리어싱 처리 과정을 수행한다. 단계 "612"에서는, 단계 "609" 내지 단계 "611"이 끝난 데이터 값을 이미지 버퍼에 저장한다. 단계"613"에서, 오블리크 버퍼 수만큼 단계 "609" 내지 단계 "612"를 반복한다. 상기 단계들을 거치면 도 10과 같이 대상체의 오블리크 단면이 디스플레이될 것이다.
도 10(a) 및 10(b)는 A 단면 영상에 각각 직선 및 곡선을 표시한 후 그것의 수직 방향으로의 단면 영상이 디스플레이 된 것을 도시하고 있다.
상술한 오블리크 단면 영상을 이용하면, 기준 단면 영상 위에 임의의 직선이 자동으로 미리 그려져 있고, 그 직선에 수직인 단면 영상이 자동으로 디스플레이 되도록 하는 것도 가능하다. 상술하면, 도 10(c)에 도시된 바와 같이, 기준 단면, 예를 들어 A 단면에 직선이 표시되어 있어, 사용자가 어떤 키를 누르면 그 영상위의 직선이 돌아가게 되고, 그 직선의 수직 방향으로의 단면 영상이 디스플레이 되도록 할 수 있다.
상술한 실시예는 본 발명의 원리를 응용한 다양한 실시예의 일부를 나타낸 것에 지나지 않음을 이해해야 한다. 본 기술 분야에서 통상의 지식을 가진 자는 본 발명의 본질로부터 벗어남이 없이 여러 가지 변형이 가능함을 명백히 알 수 있을 것이다.