KR100245820B1 - Z버퍼링을 지원하는 부동소수점 비교회로 - Google Patents

Z버퍼링을 지원하는 부동소수점 비교회로 Download PDF

Info

Publication number
KR100245820B1
KR100245820B1 KR1019970023410A KR19970023410A KR100245820B1 KR 100245820 B1 KR100245820 B1 KR 100245820B1 KR 1019970023410 A KR1019970023410 A KR 1019970023410A KR 19970023410 A KR19970023410 A KR 19970023410A KR 100245820 B1 KR100245820 B1 KR 100245820B1
Authority
KR
South Korea
Prior art keywords
value
floating point
exponent
point number
fractional
Prior art date
Application number
KR1019970023410A
Other languages
English (en)
Other versions
KR19980032154A (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 윤종용
Publication of KR19980032154A publication Critical patent/KR19980032154A/ko
Application granted granted Critical
Publication of KR100245820B1 publication Critical patent/KR100245820B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/02Comparing digital values
    • 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
    • G06T15/405Hidden part removal using Z-buffer

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Geometry (AREA)
  • Computer Graphics (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Image Generation (AREA)

Abstract

3차원대상이 농도데이타의 프레임으로 변환될때 각각의 디스플레이 픽셀에 대하여 단순한 깊이(즉, z)계산을 수행함으로써 비디오 프로세서가 비교회로가 감춰진 면을 제거하도록 하는 z버퍼링기구에 비교회로가 사용된다. 이 비교회로는 부동소수점수로 표현되는 한쌍의 z값을 비교하여 두 값중의 작은 값을 z버퍼내의 저장부로 되돌려 보낸다. z버퍼링의 동작속도를 향상시키기 위해 상기 비교회로는 두개의 부동소수점수의 각각의 부호와 지수 및 소수부 요소들을 개별적으로, 그리고 병렬로 비교한다. 상기 비교회로는 z버퍼링과 관계없는 부동소수점 분류기구에도 이용할 수 있다.

Description

Z버퍼링을 지원하는 부동소수점 비교회로
도 1A, 1B 및 1C 는 종래 기술에 의한 프레임버퍼와 이와 관련된 z버퍼를 도표로 나타낸 도면.
도 2 는 한쌍의 부동소수점수인 A와 B를 비교하여 이 둘 중의 작은 수를 되돌리는 비교회로(200)를 도시한 도면.
도 3 은 도 2 의 상태논리부(220)의 일실시예의 논리도.
도 4 는 도 2 의 선택논리회로(250)의 일실시예를 종래의 논리기호를 사용하여 도시한 논리도.
도 5 는 소정의 픽셀에 해당하는 데이트를 업데이트할 것인지를 결정하기 위한 일실시예에 사용되는 픽셀-업데이트 논리부(290)의 논리도.
도 6 은 도 2 의 선택논리회로(250)의 동작을 나타낸 흐름도.
[발명의상세한설명]
[발명의목적]
[발명이속하는기술분야및그분야의종래기술]
본 발명은 Z-버퍼링(buffering)을 지원하는 부동소수점(floating point) 비교회로에 관한 것이다.
최근의 디스플레이 모니터의 주를 이루는 것은 래스터장치(raster device)이다. 이 래스터장치는 디스플레이되는 영상을 2차원 픽셀어레이로 나타내는바, 각각의 픽셀은 영상의 해당좌표에 상응하는 농도값(intensity value)을 갖는다. 가장 단순화된 경우에 있어서, 상기 농도값은 이진수이므로 영상은 소정 좌표에서 묘사된 영상의 농도에 따라 검은색 또는 흰색의 2차원 픽셀어레이로 표현된다. 이러한 이진 디스플레이는 텍스트와 같은 높은 콘트라스트의 영상을 디스플레이하는데 유용하다. 보다 복잡은 영상은 가능한 농도값의 범위를 이용하여 디스플레이한다.
래스터디스플레이에 의해 디스플레이되는 광-강도값의 어레이를 일반적으로 "프레임"이라고 한다. 프레임은 래스터장치의 각각의 픽셀에 대하여 유일한 농도값 저장위치를 포함하는 프레임버퍼에 저장된다. 상기 저장된 농도값은 디스플레이의 픽셀들을 리프레쉬하는데 주기적으로 이용된다. 프레임버퍼는 비디오버퍼 또는 리프레쉬 버퍼라고 하기도 한다.
디스플레이 모니터는 예컨대, 선, 물체, 표면등과 같은 3차원 대상들을 공지의 변환기술을 이용하여 2차원 영상으로 변환시켜 디스플레이한다. 1개 이상의 이러한 대상을 디스플레이하는 경우에는 대상들사이에 오버랩이 종종 일어난다. 따라서, 오버랩되는 3차원 대상들을 2차원 디스플레이로 변환할때, 종래의 비디오 프로세서는 각 픽셀에 대하여 어느 대상이 앞의 것이며, 그에 따라 앞에 디스플레이되어야 하는지를 결정해야 한다. 디스플레이되지 않는 대상들은 일반적으로 "감춰진 면(hidden surface)"이라고 한다.
종래의 z-버퍼링은 3차원 대상이 농도데이타의 프레임으로 변환될때 비디오프로세서로 하여금 각각의 디스플레이 픽셀에 대하여 단순한 깊이계산을 수행함으로써 감춰진 면을 제거하도록 한다. 도 1A 는 프레임버퍼(100)와 이와 관련된 z-버퍼(110)를 도표로 나타낸 것이다. 프레임버퍼(100)는 8x8 픽셀디스플레이의 각각의 x-y좌표 (픽셀)에 대한 농도데이타를 포함하며, z-버퍼(110)는 각 픽셀에 대한 z(깊이)정보를 포함하고 있다. 도 1A 내지 1C 의 8x8버퍼(100,110)는 설명을 위해 도시된 것이며, 고해상도의 프레임들은 전형적으로 745,472 (1,024x728)개의 농도값 저장위치들을 포함한다.
도 1A 에서, 대상이 되는 영상이 없으므로 프레임버퍼(100)의 각 픽셀은 소정의 디폴트값(default value)으로 세트되고, 각각의 상응되는 z-버퍼는 디폴트값 8로 세트된다. 여기서, z값은 디스플레이되는 정보의 뷰어(viewer)에 가장 가까운 위치를 나타내는 0로부터 뷰어로부터 가장 먼 지점을 나타내는 8까지 확장되는 것으로 가정한다.
도 1B 를 참조하면, 정사각형(120)이 주사되어 픽셀데이타로 변환되어 프레임버퍼(100)에 저장되면, 이 정사각형(120)과 기준이 되는 어떠한 지점사이의 거리가 각 픽셀에 대해 계산되고, 이 거리에 z값이 할당된다. 이 예에 있어서는 5가 되는 상기 z값은 8(배경의 z값)보다 작기 때문에 정사각형(120)은 디스플레이되고 z-버퍼(110)는 업데이트되어 정사각형(120)과 관련된 z값을 포함하게 된다.
도 1C 는 또 다른 정사각형(130)을 나타낸 것이다. 정사각형(130)과 관련된 z값들은 모두 3개이다. 정사각형(130)과 관련된 z값이 정사각형(120) 또는 배경과 관련된 z값보다 작기 때문에 프레임버퍼(100)는 정사각형(130)에 해당되는 농도데이타로 업데이트되고, z버퍼(110)는 업데이트되어 정사각형(130)과 관련된 z정보를 포함하게 된다.
새로운 대상이 디스플레이될때마다 그 대상과 관련된 z값들은 프레임버퍼(100)내의 그 대상의 잠재적인 디스플레이위치와 관련된 z값과 비교된다. 디스플레이될 대상내의 하나 이상의 픽셀이 프레임버퍼(100)내의 해당위치의 해당 z값보다 작으면, 프레임버퍼(100)는 업데이트되어 픽셀과 관련된 농도값을 포함하게 되고, z버퍼(110)는 업데이트되어 새로운 z값을 포함하게 된다.
각각의 영상화된 대상의 각 픽셀에 대한 상기의 비교를 행함으로써 z버퍼(110)는 가장 작은 z값을 갖는 픽셀위치의 대상에 해당하는 각 픽셀에 대한 값을 유지한다. 리프레쉬버퍼(100)는 소정의 픽셀에 대한 가장 작은 z버퍼값을 갖는 대상의 농도를 포함한다. 보다 쉽게 설명하면, 프레임버퍼(100)내에 저장된 농도값은 영상이 물리적으로 구현될 경우 볼 수 있는 대상들만을 나타낸다.
종래의 z버퍼는 2차원으로 3차원 영상을 표현하는데 유효하다. 그러나, z버퍼 알고리즘은 매우 많은 z값 비교를 수행해야 한다. 이러한 비교에는 많은 시간이 소요되어 영상표시 과정을 지연시키게 된다.
도 1A 내지 1C 의 예는 3에서 8까지의 z버퍼값을 나타낸 것이다. 그러나, 모델링되는 장면의 복잡성에 대한 제한이 없기 때문에 이상적인 z버퍼값은 0에서 무한대의 범위내에 있어야 한다. 이러한 깊이 해상도는 불가능하나, z정보를 나타내는 종래의 부동소수점값(floating-point value)을 이용하여 근사화할 수 있다. 그러나, 부동소수점수들을 비교하는 과정은 시간을 많이 소요한다.
널리 채택되고 있는 IEEE 754 부동소수점 표준 (이하, "IEEE 표준"이라 한다)에 의하면, 부동소수점수는 부호와 지수 및 소수부(fraction)의 세부분으로 표현된다. 단일-정밀도(single-precision) 부동소수점수들은 부호를 위한 1비트와 지수를 위한 8비트 및 소수부를 위한 23비트를 포함한다. 부동소수점수의 표현에 대한 보다 상세한 정보는 IEEE 754 부동소수점 표준을 참조하라. 두개의 부동소수점수 A와 B의 감산에는 다음의 과정이 수반된다.
1. A와 B의 지수들을 비교한다.
2. A와 B의 지수가 같아지도록 A의 소수부를 쉬프트시킨다.
3. A의 쉬프트된 소수부로부터 B의 소수부를 뺀다.
4. A와 B의 차에 해당하는 소수부를 쉬프트시켜 이 차이가 IEEE표준에 의해 표현되도록 한다.
5. 상기 차를 반올림한다.
이러한 과정들은 파이프라인 부동소수점 프로세서(pipe-lined floating-point processor)의 각기 다른 단에서 수행된다.
그러나, 이러한 감산과정은 복잡하며 비교과정과 레지스터의 동작을 매우 많이 필요로 한다. 또한, 파이프라인 부동소수점 프로세서는 중간 결과만을 저장하고, 원래의 연산수(operand)는 저장하지 않는다. 예를 들어, A에서 B를 빼는 경우, 독립변수 A와 B는 제 1 및 제 2 파이프라인 레지스터에 각각 저장된 다음, 연산되고 그 결과는 제 3 파이프라인 레지스터에 저장된다. 그 사이에 제 1 및 제 2 파이프라인 레지스터는 새로운 데이타, 예컨대 연속되는 감산을 위한 새로운 한쌍의 z값인 C와 D로 업데이트된다. 이러한 이유로 종래의 감산 비교알고리즘은 결과를 결정하는데 여러개의 클럭주기를 필요로 할 뿐 아니라, 메모리내의 다른 위치로부터(즉, z버퍼로부터) 선택된 연산수를 다시 가져와야 한다.
z값들의 비교를 위하여 부동소수점 감산을 이용하는데 있어서의 복잡성과 초기값들중의 하나를 다시 가져와야 하는 필요성은 종래의 z버퍼링 기구를 지연시킨다. 그러므로 이러한 z버퍼링 기구는 바람직하지 못하다. 부동소수점 비교시의 느린 동작속도를 해결하기 위한 하나의 방법은 z버퍼값을 정수로서 저장하는 것이다. 예를 들면, Intel상의 i860 그래픽유니트는 z값을 16비트 또는 32비트 정수로서 저장한다. 정수값은 부동소수점값보다 훨씬 빠르게 비교된다. 따라서 상기한 i860은 두개의 z값중의 작은 값을 매우 빠르게 되돌린다. 그러나, 정수의 z값들의 비교와 관련된 속도를 향상시키면 깊이 해상도(depth resolution)가 감소하게 되는 문제가 발생한다. 그러므로, 깊이 해상도를 저하시키지 않으면서 빠르게 z값을 비교할 수 있는 것이 우수한 z버퍼링 기구일 것이다.
[발명이이루고자하는기술적과제]
본 발명은 한쌍의 부동소수점수를 빠르게 비교하고, 그 두 수중의 작은 수를 되돌리는 비교회로에 관한 것이다. 본 발명의 일실시예에 있어서, 부동소수점수들은 z버퍼링 기구에 이용되는 z값을 나타내는데 사용된다. 부동소수점 z값을 사용하면 정수의 z값을 사용하는 경우보다 높은 깊이 해상도가 제공된다.
z버퍼링 기구의 속도를 향상시키기 위해 상기 비교회로는 상기 두개의 부동소수점수들의 지수와 소수부 요소들을 각각, 그리고 병렬로 비교한다. 상기 비교회로는 상기 지수의 비교결과가 같을 경우, 각각의 소수부 요소의 비교만을 행하면 된다. 이러한 병렬비교는 종래의 정수비교와 동일한 속도로 행해지며, 부동소수점 z값을 사용하므로 매우 우수한 깊이 해상도가 제공된다. 따라서, 깊이 해상도를 저하시지 않으면서 z값을 빠르게 비교하는 수단에 대한 요구가 만족된다.
[발명의구성및작용]
본 발명은 한쌍의 부동소수점수를 비교하여 이 둘중의 작은 수 (또는 큰 수)를 되돌리는 방법 및 장치에 관한 것이다. 본 발명은 부동소수점수의 분류(sorting)에 적용될 수 있으나, 고속 z-버퍼링기구의 수행에 특히 유용하다. 종래 기술에 의한 부동소수점수의 z-버퍼 비교가 원래의 수를 되돌려보내지 않으면서 두 수들간의 차를 제공하거나 두 수들중의 작은 수를 확인시키는 배경부분을 상기하자. 상기의 원래의 수는 되돌려져야 하는데, 이 경우 많은 시간이 소요되게 된다. 이와 반대로, 본 발명의 비교회로(200)는 한쌍의 부동소수점수를 비교하며, 비교회로(200)는 이 두 수의 상대값들의 표시에 따라 두 수중의 작은 수를 제공한다. 따라서, 비교회로(200)는 부동소수점 z값의 높은 깊이해상도와 정수비교시의 속도를 갖는 z-버퍼기구가 구현되도록 한다.
도 2 는 한쌍의 부동소수점수 A와 B를 비교하여 두 값중의 작은 값 또는 큰 값을 선택적으로 되돌리는 비교회로(200)를 도시한 것이다. 부동소수점수 A와 B는 IEEE표준을 따르는 것으로, 부호와 지수(exp) 및 소수부(frac)요소들을 포함한다. 비교회로(200)는 부동소수점수 A와 B의 동일요소를 동시에 비교한다. 즉, A의 부호는 B의 부호와 비교하고, A의 지수(exp A)는 B의 지수(exp B)와 비교하며, A의 소수부(frac A)는 B의 소수부(frac B)와 비교한다.
감산회로(230)는 A와 B의 지수위치(expA, expB)를 각각 비교하여 어느 것이 큰가를 결정한다. 제 1 감산회로(240)는 A와 B의 소수부위치(fracA, fracB)를 각각 비교한다. 부동소수점수의 각 요소는 정수로 표시되므로 감산회로(230,140)는 부동소수점 감산에 의존하는 종래의 부동소수점수의 비교와 관련된 지연없이 비교의 결과를 표시한다. 본 발명의 일실시예에 있어서, 감산회로(230,240)는 Roney S. Wong에 의한 "Zero Detect For Binary Difference," (변리사 사건번호M-4159)에 기술된 형태의 것이 사용된다. 감산회로(230,240)는 당분야의 통상의 지식을 가지자에 의해 이해될 수 있는 다른 종래의 논리회로를 이용하여 구현할 수도 있다.
감산회로(230)는 출력라인(SignDiffExp)을 구비하는바, 이 출력라인은 논리1(즉, 3.3V)을 나타내는 신호를 제공함으로써 expA와 expB의 차의 부호가 음(-)일때 (논리1을 이용하여 음의 부호가 종래의 2의 보수의 넘버링 시스템(numbering system)과 일치함을 나타낸다) 논리회로(250)를 선택한다. 설명의 간략화를 위해 논리0와 논리1(각각 0와 3.3V)을 나타내는 신호를 논리0와 논리1이라고 하기로 한다.
감산회로(230)는 또한 라인(expA=expB)을 구비하는바, 이 라인은 지수부분 expA와 expB가 같을 경우, 논리회로(250)와 상태논리부(220)를 선택하도록 논리1을 제공한다. 감산회로(240)는 라인(SignDiffFrac)과 라인(fracA=fracB)을 구비하는바, 이 라인(SignDiffFrac)은 fracA와 fracB의 차의 부호가 음(-)일 경우 논리부(250)를 선택하도록 논리1을 제공하고, 라인(fracA=fracB)은 소수부 fracA와 fracB가 같을 경우 상태논리부(220)로 논리1을 제공한다.
감산회로(230,240)로부터의 출력신호와 더불어 선택논리회로(250)에는
1.A와 B의 각각의 부호값(signA, signB)과;
2.부동소수점 비교명령으로부터 디코딩된 MAX/MIN# 선택신호 ("#"는 액티브-로우(active-low)신호를 나타낸다); 및
3.A가 부정수(non-number)(ANAN)인지 B가 부정수(BNAN)인지를 나타내는 상태논리회로(220)로부터의 신호가 인가된다.
도 2 의 실시예는 A와 B중의 큰 수를 되돌리는 부동소수점 비교명령(VMAX)과 A와 B중의 작은 수를 되돌리는 비교명령(VMIN)을 지원한다. 명령(VMAX)은 논리1(즉, 3.3V)을 나타내는 신호를 터미널(MAX/MIN#)로 제공하며, 이에 따라 비교회로(200)는 A와 B중의 큰 수를 signC, expC, 및 fracC요소들로 표현되는 부동소수점수로서 출력한다. 명령(VMIN)은 터미널(MAX/MIN#)상으로 논리0을 제공하며, 이에 따라 비교회로(200)는 A와 B중의 작은 수를 출력하게 된다. 예를 들여, 논리1이 터미널(MAX/MIN#)로 인가되고, A가 B보다 크면, 선택논리회로(250)는 선택라인(SEL)으로 논리1을 출력한다. 선택라인(SEL)상의 논리1에 의해 멀리플렉서(260,270, 280)는 A의 여러가지 요소들(signA,expA,fracA)을 선택하여 이들을 부동소수점수C(즉, signC, expC 및 fracC요소들)로서 출력하게 된다.
A와 B를 비교하기 위해 상태논리회로(220)와 픽셀-업데이트 논리회로(290)가 반드시 필요하지는 않다. 그러나, 상태논리회로(220)는 비교회로(200)가 부정수를 처리하도록 인에이블한다(부정수는 일반적으로 "not-a-number"의 "NAN"으로 알려져 있다). 상태논리회로(220)는 또한 IEEE표준에 따를 경우에 요구되는 출력신호를 제공한다. 이 신호들은 논리1을 터미널(GT, LT 또는 EQ)에 제공함으로써 A가 B보다 큰지, 작은지 아니면 같은지를 나타낸다. 상태논리회로(220)는 또한 논리1을 터미널(UN)에 제공함으로써 A 또는 B가 NAN일 경우, A 또는 B가 요구되지 않음을 나타낸다.
도 3 은 도 2 의 상태논리회로(220)의 일실시예의 논리도이다. 도 3 의 여러 구성요소들은 당분야의 통상의 지식을 가진자에 의해 이해될 수 있는 종래의 논리기호들로 나타내었다. IEEE표준에 의하면, 무한대는 모두가 1인 지수(exp)비트들과 모두가 0인 소수부(frac)비트들로 표현되며, 부정수(NAN)는 모두가 1인 지수비트들과 논리1인 1개이상의 소수부비트들로 표현된다. 상태논리회로(220)는 A와 B의 요소들을 나타내는 입력신호를 인가받아서 이 신호들을 조합하여 A와 B중의 어느 하나 또는 양쪽 모두가 NAN인지, 양(+)의 무한대인지 아니면 음(-)의 무한대인지를 결정한다. 도 3 의 논리회로는 A가 NAN일때는 라인(ANAN)상에 논리1을 제공하고, A가 양의 무한대일 경우에는 라인(APOSINF)상에 논리1을 제공하며, A가 음의 무한대일 경우에는 라인(ANEGINF)상에 논리1을 제공한다. 이와 동일한 논리회로가 B에 관한 동일한 정보를 라인들(BNAN,BPOSINF,BNEGINF)상으로 각각 제공한다. 이 신호들은 라인들(A>B, expA=expB,fracA=fracB)상의 신호들에 따라 디코딩되어 터미널(GT,LT 또는 EQ)상으로 논리1을 제공함으로써 A가 B보다 큰지, 작은지 아니면 같은지를 나타내거나, 터미널(UN)상에 논리1을 제공함으로써 A와 B가 요구되지 않았음을 나타낸다.
도 4 는 도 2 의 선택논리회로(250)의 일실시예를 종래의 논리기호를 사용하여 나타낸 논리도이다. 선택논리회로(250)에는 다음의 것들이 인가된다.
1.상태논리(220)로부터의 라인(ANAN)상의 신호"비정수A"
2.라인(BNAN)상의 신호"비정수B"
3.라인(signA)상의 A의 부호
4.라인(signB)상의 B의 부호
5.expA와 expB의 차가 음인지 양인지를 나타내는 라인(SignDiffExp)상의 신호
6.fracA와 fracB의 차가 양인지 음인지를 나타내는 라인(SignDiffFrac)상의 신호
7.expA와 expB가 같은지를 나타내는 라인(expA=expB)상의 신호
8.비교회로(200)가 동작하는 모드(즉, 두개의 부동소수점수중의 최대수로 되돌아가거나 두 부동소수점수중의 최소수로 되돌아가는)를 나타내는 라인(MAX/MIN)상의 신호
도 2 와 3 과 관련하여 기술한 신호들은 논리적으로 조합되어 라인(A>B)상에 논리1을 제공함으로써 A가 B보다 크다는 것을 나타낸다. 그러면, 라인(SEL)상의 선택신호는 A와 B중 어느 것이 큰 수이고, 큰 수 또는 작은 수중의 어느것이 요구되는가에 따라 A 또는 B를 선택한다.
도 5 는 프레임버퍼내의 농도값으로서 나타낸 소정의 픽셀을 업데이트할 것인가를 결정하기 위한 일실시예에 사용되는 픽셀-업데이트 논리회로(290)의 논리도이다. 이 실시예에서, B는 프레임버퍼에 저장된 농도값에 해당되는 제 1 z값을 나타내며, A는 프레임버퍼내에서 상기 제 1 z값을 대체할 수 있는 새로운 농도값에 해당되는 제 2 z값이다. 새로운 픽셀데이타가 새로운 대상이 그 이전의 대상의 앞에 오는 것을 나타내면, 픽셀은 업데이트되어야 한다. 그렇지 않으면, 영상이 움직이지 않는다. 따라서, 픽셀-업데이트 논리회로(290)는 z-버퍼링기구의 동일한 데이타를 갖는 불필요하게 업데이트되는 픽셀데이타를 줄임으로써 시간을 절약한다.
상기 z-버퍼링기구가 최소의 해당 z값을 갖는 농도값을 디스플레이한다고 가정하면, 비교회로(200)는 제 1 z값과 제 2 z값중의 어느 것이 더 작은지를 결정한다. 그런 다음, 새로운 값이 작으면, 프레임과 z버퍼를 모두 업데이트하여 새로운 값들을 포함시킨다.
픽셀-업데이트논리회로(290)는 새로운 z값이 그 이전의 z값보다 크면 픽셀데이트를 교체하거나, 새로운 z값이 그 이전의 z값보다 작으면 픽셀데이타를 교체하는 z-버퍼링기구를 위해 동작한다. 제 1 예에 있어서, 터미널(MAX/MIN#)상의 논리1에 의해 터미널(UPDATE PIXEL)은 A가 B보다 크거나 A와 B가 같으면 (즉, 터미널GT 또는 EQ가 논리1을 출력하면) 논리1을 출력하게 된다. 제 2 예에 있어서, 터미널(MAX/MIN#)상의 논리0에 의해 터미널(UPDATE PIXEL)은 A가 B보다 작거나 A와 B가 같으면 (즉, 터미널 EQ 또는 LT가 논리1을 출력하면) 논리1을 출력하게 된다. 터미널(UPDATE PIXEL)상의 신호는 종래의 영상표시 엔진부(도시하지 않음)로 전송된다.
도 6 은 비교회로가 A와 B중의 작은 수를 출력하도록 구성될때 (즉, 라인(MAX/MIN#)상의 신호가 논리0일때) 선택논리회로(250)의 동작을 나타낸 흐름도이다. 이 흐름도는 설명을 위한 것으로, 선택논리회로(250)가 NAN을 어떻게 처리하는지, 또는 상태논리회로(220)와 픽셀-업데이트 논리회로(290)가 어떻게 IEEE표준에 따르는 출력신호들을 제공하는지는 설명해주지 않는다. 본 발명의 이러한 면은 도 2-5의 논리도를 통해 이해될 수 있을 것이다.
단계(300)에서 부동소수점수A와 B는 IEEE표준에 의해 제시되는 포맷으로 한쌍의 일반적인 32비트레지스터(310,315)에 저장된다. 이어서, 선택논리회로(250)는 A와 B의 부호(signA, signB)를 이용하여 A와 B중의 어느 하나 또는 양쪽 모두가 음수인지를 결정한다(단계320,325,330). A가 음수이고 B가 양수이면, A는 B보다 명백하게 작은 것이므로 선택논리회로(250)는 선택라인(SEL)을 통해 멀티플렉서(260,270,280)로 논리1을 출력한다. 계속해서, 비교회로(200)는 출력라인(signC)과 출력버스(expC,fracC)로 A를 나타내는 신호들을 출력한다. 선택논리회로(250)는 라인(A>B)을 통해 상태논리회로(220)로 A가 B보다 크지 않음을 나타내는 논리0를 출력한다. 라인(A>B)상의 신호는 상태논리(220)와 픽셀-업데이트논리(290)에 의해 디코딩되어 라인(UPDATE PIXEL)상으로 업데이트-픽셀신호를 제공한다. 업데이트-픽셀신호는 프레임버퍼(도시하지 않음)내에서 A로 표시되는 z값에 해당하는 농도데이타를 저장하기 위해 종래의 프레임버퍼 제어회로(도시하지 않음)에 명령을 내리는데 일반적으로 사용된다.
A가 양수이고 B가 음수이면, B는 A보다 명백하게 작은 것이므로 선택논리회로(250)는 각각의 멀티플렉서(260,270,280)로 논리0을 출력하며, 이에 따라 비교회로(200)는 B를 나타내는 신호를 출력한다. 선택논리회로(250)는 라인(A>B)상으로 논리0를 제공함으로써 상태논리회로(220)로 A가 B보다 크다는 것을 나타내는 신호를 출력하며, 이에 따라 영상표시 엔진은 프레임버퍼를 업데이트하지 않게 된다.
A와 B가 부호가 같으면, 비교회로(200)는 A와 B의 지수부분(expA와 expB)을 비교한다. A와 B가 모두 양수이면, 도 6 의 흐름은 단계(340)로 이동한다. 선택논리회로(250)는 expA와 expB의 값을 나타내는 신호를 라인(SignDiffExp)으로 인가받는다. A와 B가 양수이고, (expA-expB)가 0보다 작으면, A는 B보다 작다. 그러므로 선택논리회로(250)는 라인(SEL)상으로 논리1을 출력하며, 이로 인해 비교회로(200)는 A를 출력하게 된다. 선택논리회로(250)는 또한 라인(A>B)상으로 논리0를 출력할 것이다. (expA-expB)가 0보다 작지 않으면, 선택논리회로(250)는 (expA-expB)가 0보다 큰지를 결정한다(단계350). 0보다 크면, 더 큰 지수를 갖는 A가 B보다 큰 것이다. 선택논리회로(250)에 의해 비교회로(200)는 B를 출력하게 된다.
마지막으로, 지수A 또는 B가 다른쪽보다 크지 않으면 (즉, 두 지수가 같으면), 선택논리회로(250)는 A와 B의 소수부요소(fracA와 fracB)를 비교한다(단계360). A와 B의 부호와 지수가 같고, A의 소수부(fracA)가 B의 소수부(fracB)보다 크면, A가 B보다 크다. 따라서 비교회로(200)는 B를 출력한다. 마찬가지로, fracB가 fracA보다 크면, 비교회로(200)는 A를 출력한다.
단계(330)로 돌아가서 A와 B가 모두 음수이면, 상기 과정은 단계(370,380,390)로 이동한다. 이 단계들은 단계(340,350,360)과 마찬가지로 동작한다. 그러나, A와 B가 모두 음수이면, 상대적으로 큰 음수가 상대적으로 작은 음수보다 작은 것으로 간주된다. 예를 들어, -10은 -5보다 작은 것으로 간주된다.
도 6 에 나타낸 논리흐름은 설명을 위한 것이다. 바람직한 실시예에 있어서(도 4 를 참조), A와 B의 각각의 부호와 지수와 소수부요소들은 동시에 비교되어 적절한때에 결과를 제공한다. 또한, 다른 요소들의 상대적인 데이타값들로 인해 이러한 비교는 단일비트 부호에 대해 첫번째로 수행되고, 8비트 지수에 대해 두번째로 수행되고, 23비트 소수부에 대해 세번째로 수행된다. 그러므로, 비교를 수행하기 위해 충분한 정보가 얻어지자 마자 선택논리회로(250)가 적절한 신호들을 멀티플렉서(260,270,280)와 상태논리회로(220)로 출력하는 것이 바람직하다. 예를 들어, A가 음수이고 B가 양수이면, 비교회로(200)는 A와 B의 지수와 소수부요소들을 비교하기 위해 기다릴 필요가 없다.
본 발명을 특정의 바람직한 실시예에 관련하여 도시하고 설명하였지만, 이하의 특허청구의 범위에 의해 마련되는 본 발명의 정신이나 분야를 이탈하지 않는 한도내에서 본 발명이 다양하게 개조 및 변화될 수 있다는 것을 당 업계에서 통상의 지식을 가진 자는 용이하게 알 수 있다. 예를 들면,
1.비교회로(200)가 두개의 부동소수점수중의 작은 수를 되돌리도록 구성되었으나, 두 부동소수점수중의 큰 수를 되돌리도록 구성될 수도 있다.
2.본 발명에 의한 비교회로는 IEEE표준에 따르지 않는 부동소수점수들을 비교하는데 사용될 수 있다.
3.본 발명은 z-버퍼 비교와 관련하여 사용되는 것으로 제한되지 않으며, 부동소수점수 소팅 알고리즘과 같은 다른 영역에도 광범위하게 사용된다.
4.몇몇 실시예에 있어서 z값들은 양수로서만 표현되거나 음수로서만 표현된다. 따라서, 이들 실시예는 부호값들을 비교할 필요가 없다. 따라서, 본 발명의 특허청구의 범위의 사상은 상기 실시예에 제한되는 것이 아니다.

Claims (12)

  1. 소정의 디지털 비디오 데이터에 대한 3차원 대상을 농도 데이터의 프레임으로 변환할 경우에 각각의 디스플레이 픽셀에 대하여 제 1 지수 요소와 제 1 소수부 요소를 간는 제 1 부동 소수점 수와, 제 2 지수요소와 제 2 소수부 요소를 갖는 제 2 부동 소수점 수를 비교하기 위한 부동 소수점 수 비교회로에 있어서,
    상기 제 1 지수요소를 입력하도록 구성되는 제 1 지수 입력버스와, 상기 제 2 지수요소를 입력하도록 구성되는 제 2 주시 입력버스, 및 상기 제 1 지수요소와 제 2 지수요소의 상대 값들을 나타내는 출력신호를 제공하도록 구성되는 지수비교출력부를 구비한 지수 비교회로;
    상기 제 1 소수부 요소를 입력하도록 구성되는 제 1 소수부 입력버스와, 상기 제 2 소수부 요소를 입력하도록 구성되는 제 2 소숩 입력버스, 및 상기 제 1 소숩 요소와 제 2 소수부 요소의 상대 값들을 나타내는 출력신호를 제공하도록 구성되는 소수부 비교 출력부를 구비한 소수부 비교회로; 및
    상기 지수비교 출력부와 소수부 비교출력부에 연결되며, 상기 제 1 및 제 2지수 요소들의 상대 값들과 상기 제 1 및 제 2 소수부 요소들의 상대 값들에 기초하여 상기 제 1 및 제 2 부동 소수점 수중의 하나를 선택하도록 구성되는 선택 논리회로를 포함하는 것을 특징으로 하는 부동 소수점 수 비교회로.
  2. 제 1 항에 있어서,상기 선택 논리회로는;
    상기 제 1 및 제 2 부동 소수점 수들 중에서 작은 수를 선택하는 것을 특징으로 하는 부동 소수점 수 비교회로.
  3. 제 1 항에 있어서,
    상기 제 1 및 제 2 부동 소수점 수를 입력하여 제 1 및 제 2 부동 소수점 수중에서 적어도 하나가 무한대를 나타내는지 또는 부정수를 나타내는지를 결졍하는 검출회로가 더 포함되는 것을 특징으로 하는 부동 소수점 수 비교회로.
  4. 제 1 항에 있어서,
    상기 제 1부동 소수점 수가 제 1 부소 요소를 더 포함하고, 제 2 부동 소수점 수가 제 2 부호 요소를 더 포함하는 것을 특징으로 하는 부동 소수점 수 비교회로.
  5. 제 4항에 있어서, 상기 선택 논리회로는;
    상기 제 1 부호 요소가 인가되도록 구성되는 제 1 부호 입력부; 및
    재 2 부호 요소가 인가되도록 구성되는 제 2 부호 입력부를 포함하는 것을 특징으로 하는 부동 소수점 수 비교회로.
  6. 제 5 항에 있어서,
    상기 제 1 및 제 2 부동 소수점 수중의 선택된 하나와 동일한 부동 소수점 결과를 함계 출력하도록 구성되는 지수 요소 출력버스와 소수부 요소 출력버스가 더 포함되는 것을 특징으로 하는 부동 소수점 수 비교회로.
  7. 제 1 항에 있어서,
    상기 제 1 및 제 2 부동 소수점 수중의 선택된 하나와 동일한 부동 소수점 결과를 함께 출력하도록 구성되는 지수 요소 출력버스와 소수부 요소 출력버스가 더 포함되는 것을 특징으로 하는 부동 소수점 수 비교회로.
  8. 제 2 항에 있어서,
    상기 제 1 및 제 2 부동 소수점 수중의 더 큰 수가 z-버퍼에 저장될 경우에 업데이트 픽셀 신호를 출력하도록 구성된 픽셀-업데이트 논리회로가 더 포함되는 것을 특징으로 하는 부동 소수점 수 비교회로.
  9. 소정의 디지털 비디오 데이터에 대한 3차원 대상을 농도 데이터의 프레임으로 변환할 경우에 각각의 디스플레이 픽셀에 대하여 제 1 지수 값의 제 1 지수 요소와 제 1 소수부 값의 제 1 소수부요소를 갖는 제 1 부동 소수부 값의 제 2 소수부 요소를 갖는 제 2 부동 소수점 수로서 표현되는 제 2 z값 중에서 작은 값을 결정하는 방법에 있어서,
    상기 제 1 지수 값과 제 2 지수 값을 비교하여 제 1 지수 값이 제 2 지수 값보다 크면 제 2 부동 소수점 수를 출력하고, 제 1 지수 값이 제 2 지수 값보다 작으면 제 1 부동 소수점 수를 출력하는 단계; 및
    상기 두 경우에 해당되지 않으면, 상기 제 1 소수부 값과 제 2 소수부 값을 비교하여 제 1 소수부 값이 제 2 소수부 값보다 크면 제 2 부동 소수점 수를 출력하고, 제 1 소수부 값이 제 2 소수부 값보다 작으면 제 1 부동 소수점 수를 출력하는 단계를 포함하는 것을 특징으로 하는 디스플레이 픽셀에 대하여 제 1 부동 소수점 수로 표현되는 제 1 z값과 제 2 부동 소수점 수로 표현되는 제 2 z값 중에서 작은 값을 결정하는 방법.
  10. 제 9 항에 있어서,
    상기 제 1 부동 소수점 수가 제 1 부호요소를 포함하고, 제 2 부동 소수점 수가 제 2 부호요소를 포함하며;
    상기 방법이, 상기 제 1부호요소와 제 2 부호요소를 비교하여 제 1 부호요소가 양(+)의 값을 갖고 제 2 부호요소가 음(-)의 값을 가지면 제 2 부동 소수점 수를 출력하고, 제 1 부호요소가 음(-)의 값을 갖고 제 2 부호요소가 양(+)의 값을가지면 제 1 부동 소수점 수를 출력하며, 제 1 및 제 2 부호요소가 모두 양의 값을 가지면 지수 값의 비교를 행하는 단계를 더 포함하는 것을 특징으로 하는 디스플레이 픽셀에 대하여 제 1 부동 소수점 수로 표현되는 제 1 z값과 제 2 부동 소수점 수로 표현되는 제 2 z값 중에서 작은 값을 결정하는 방법.
  11. 소정의 디지털 비디오 데이터에 대한 3차원 대상을 농도 데이터의 프레임으로 변환할 경우에 각각의 디스플레이 픽셀에 대하여 제 1 지수 값의 제 1 지수 요소와 제 1 소수부 값의 제 1 소수부 요소를 갖는 제 1 부동 소수점 수로서 표현되는 제 1 z값과, 제 2 지수값의 제 2지수 요소와 제 2 소수부 값의 제 2 소수부 요소를 갖는 제 2 부동 소수점 수로서 표현되는 제 2 z값 중에서 큰 값을 결정하는 방법에 있어서,
    상기 제 1 지수 값과 제 2 지수 값을 비교하여 제 1 지수 값이 제 2 지수 값보다 작으면 제 2 부동 소수점 수를 출력하고, 제 1 지수 값이 제 2 지수 값보다 크면 제 1 부동 소수점 수를 출력하는 단계; 및
    상기 두 경우에 해당되지 않으면, 상기 제 1 소수부 값과 제 2 소수부 값을 비교하여 제 1 소수부 값이 제 2 소수부 값보다 작으면 제 2 부동 소수점 수를 출력하고, 제 1 소수부 값이 제 2 소수부 값보다 크면 제 1 부동 소수점 수를 출력하는 단계를 포함하는 것을 특징으로 하는 디스플레이 픽셀에 대하여 제 1 부동 소수점 수로 표현되는 제 1 z값과 제 2 부동 소수점 수로 표현되는 제 2 z값 중에서 큰 값을 결정하는 방법.
  12. 제 11 항에 있어서,
    상기 제 1 부동 소수점 수가 제 1 부호 요소를 포함하고, 제 2 부동 소수점 수가 제 2 부호 요소를 포함하며;
    상기 방법이, 상기 제 1부호 요소와 제 2 부호 요소를 비교하여 제 1 부호 요소가 양(+)의 값을 갖고 제 2 부호 요소가 음(-)의 값을 가지면 제 1 부동 소수점 수를 출력하고, 제 1 부호 요소가 음(-)의 값을 갖고 제 2 부호 요소가 양(+)의 값을 가지면 제 2 부동 소수점 수를 출력하며, 제 1 및 제 2 부호 요소가 모두 양의 값을 가지면 지수 값의 비교를 행하는 단계를 더 포함하는 것을 특징으로 하는 디스플레이 픽셀에 대하여 제 1 부동 소수점 수로 표현되는 제 1 z값과 제 2 부동 소수점 수로 표현되는 제 2 z값 중에서 큰 값을 결정하는 방법.
KR1019970023410A 1996-10-18 1997-06-05 Z버퍼링을 지원하는 부동소수점 비교회로 KR100245820B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US73386396A 1996-10-18 1996-10-18
US8/733,863 1996-10-18

Publications (2)

Publication Number Publication Date
KR19980032154A KR19980032154A (ko) 1998-07-25
KR100245820B1 true KR100245820B1 (ko) 2000-03-02

Family

ID=24949418

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970023410A KR100245820B1 (ko) 1996-10-18 1997-06-05 Z버퍼링을 지원하는 부동소수점 비교회로

Country Status (1)

Country Link
KR (1) KR100245820B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102032787B1 (ko) 2019-01-25 2019-10-17 주식회사 에이스지오 지반조사용 관입 시험장치

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102075488B1 (ko) 2018-10-24 2020-02-10 유동기 수산물에 대한 식별자 표시 장치

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102032787B1 (ko) 2019-01-25 2019-10-17 주식회사 에이스지오 지반조사용 관입 시험장치

Also Published As

Publication number Publication date
KR19980032154A (ko) 1998-07-25

Similar Documents

Publication Publication Date Title
JP3023685B2 (ja) 画像表示データ処理装置
US5778250A (en) Method and apparatus for dynamically adjusting the number of stages of a multiple stage pipeline
JP2854866B2 (ja) イメージ処理システム及びその画素データの処理法
US20020002666A1 (en) Conditional operand selection using mask operations
US6166743A (en) Method and system for improved z-test during image rendering
US4799105A (en) Modified technique for suppression of flicker in interlaced video images
JPH0381886A (ja) 隠れ面処理装置
US5428724A (en) Method and apparatus for providing transparency in an object based rasterized image
US5931945A (en) Graphic system for masking multiple non-contiguous bytes having decode logic to selectively activate each of the control lines based on the mask register bits
US7310103B2 (en) Pipelined 2D viewport clip circuit
US6279099B1 (en) Central processing unit with integrated graphics functions
US4956801A (en) Matrix arithmetic circuit for processing matrix transformation operations
JPH0269075A (ja) 画像情報符号化復号化装置
KR100245820B1 (ko) Z버퍼링을 지원하는 부동소수점 비교회로
JP2000155561A (ja) 階調変換回路および画像表示装置
JP2004062765A (ja) クリッピング装置
JP3459759B2 (ja) 算術復号化装置
US4945497A (en) Method and apparatus for translating rectilinear information into scan line information for display by a computer system
JP4275790B2 (ja) 図形選別ユニット及び図形描画装置
JP2766478B2 (ja) 画像処理システム
CN114647467B (zh) 水印更新方法、装置、系统及存储介质
JP3159431B2 (ja) 画像処理システム
KR100464253B1 (ko) 모니터링기기의영상경계치검출장치
KR200341661Y1 (ko) 입력 이미지 데이터의 일부 비트를 줄이고 출력시 이를복원하는 장치
JPH06214754A (ja) 四捨五入演算回路及びこれを有する画像処理装置

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: 20121130

Year of fee payment: 14

FPAY Annual fee payment

Payment date: 20131129

Year of fee payment: 15

LAPS Lapse due to unpaid annual fee