KR100266930B1 - 다각형등의도형을묘화하는방법및표시제어장치 - Google Patents

다각형등의도형을묘화하는방법및표시제어장치 Download PDF

Info

Publication number
KR100266930B1
KR100266930B1 KR1019970005519A KR19970005519A KR100266930B1 KR 100266930 B1 KR100266930 B1 KR 100266930B1 KR 1019970005519 A KR1019970005519 A KR 1019970005519A KR 19970005519 A KR19970005519 A KR 19970005519A KR 100266930 B1 KR100266930 B1 KR 100266930B1
Authority
KR
South Korea
Prior art keywords
pixel
bit
data
raster scan
bit data
Prior art date
Application number
KR1019970005519A
Other languages
English (en)
Other versions
KR19980018034A (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 KR19980018034A publication Critical patent/KR19980018034A/ko
Application granted granted Critical
Publication of KR100266930B1 publication Critical patent/KR100266930B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/36Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of a graphic pattern, e.g. using an all-points-addressable [APA] memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/40Filling a planar surface by adding surface attributes, e.g. colour or texture

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Image Generation (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Digital Computer Display Output (AREA)

Abstract

본 발명은 다각형 등의 평면 기하학 도형의 내부를 고속으로 결정하여 도형을 묘화하는 방법 및 이 방법을 실현하는 표시 제어 장치를 제공하는 것으로서, 2 진 데이터로 도형을 묘화함과 동시에, 래스터 주사 방향으로 비트를 반전시켜 도형의 내부를 도포함으로써, 고속의 도형 묘화 처리가 가능하다.

Description

다각형 등의 도형을 묘화하는 방법 및 표시 제어 장치{METHOD OF DRAWING FIGURE SUCH AS POLYGON AND DISPLAY CONTROL DEVICE}
본 발명은, 다각형 등의 도형을 묘화하는 도형 묘화 방법 및 그 장치에 관한 것으로, 특히, 묘화해야 할 도형의 내부를 판정하여, 다각형 영역의 내부를 색칠(도포)하는 도형 묘화 방법 및 그 방법을 실행하는 그래픽 액셀러레이터 보드(accelerator board) 등의 표시 제어 장치에 관한 것이다.
소프트웨어를 이용하여 구현되는 종래의 도형 묘화 방법에 있어서는, 각 화소가 다각형 등의 윤곽을 가지는 도형의 내부에 속하는지 여부의 판정 처리 및 그와 같은 다각형 영역을 도포하는 처리에 많은 부담이 있었다.
상술하면, 종래의 소프트웨어에 의한 도형 묘화 방법은
(1) 우선, 도형의 윤곽을 묘화하는 과정,
(2) 스크린상의 각 점이 도형의 윤곽 내부에 속하는지를 판정하는 과정 및
(3) 각 점(화소)에 대해서 도형을 묘화할 것인지 여부를 판정하는 과정으로 되어 있었다.
또한, 각 점(화소)에 대해 도형을 묘화할 경우에는, 색정보를 포함한 데이터가 처리의 대상이 된다.
도 9(a)∼9(c)는, 상기한 바와 같은 종래의 소프트웨어에 의한 도형 묘화 처리 방법을 도시한 도면이다. 이 방법에 따르면, 도 9(a)에 도시한 바와 같이, 6 개의 정점(vertex)(즉, 1∼6)을 순차적으로 접속하는 선분(line segment)을 그림으로써 도형의 윤곽이 형성된다.
다음에, 도 9(b)에 도시한 바와 같이, 도형의 윤곽 내부에 위치한 점(444)이 사전에 결정된 색으로 도포된다. 이 때, 점(444)에 대한 도포 처리는 점(444)이 다각형의 윤곽을 형성하는 각 선분의 내부에 속하는지 여부를 판정하면서 행해진다. 상술하면, 도포 처리의 판정 과정은 다음과 같다. 우선, 하나의 점(444)이 정점(1)과 정점(2)을 접속하는 직선의 내부에 있는지 여부, 정점(2)과 정점(3)을 접속하는 직선의 내부에 있는지 여부, 정점(3)과 정점(4)을 접속하는 직선의 내부에 속하는지 여부, 정점(4)과 정점(5)을 접속하는 직선의 내부에 속하는지 여부, 정점(5)과 정점(6)을 접속하는 직선의 내부에 속하는지 여부, 최종적으로, 정점(6)과 정점(1)을 접속하는 직선의 내부에 속하는지 여부를 순차적으로 판정한다. 그 후, 도형의 내부에 속한다고 판정될 경우, 점(444)은 소정의 색으로 도포된다.
각 점이 도형의 윤곽의 내부 또는 외부에 속하는가를 판정하는 하나의 방법으로서는, 예를 들면 다각형의 윤곽을 나타내는 데이터(예를 들면, x좌표, y좌표)로부터 두 개의 점(A, B)의 x좌표 또는 y좌표를 선택하고, 각 점의 x좌표 또는 y좌표가 선택된 두 점의 x좌표 또는 y좌표의 사이에 있는지를 판정하고, 만일 이들 두 개의 좌표 사이에 있으면, 그 점이 다각형 윤곽의 내부에 속한다고 간주하여, 그 점이 다각형 윤곽의 내부에 속하는지 여부를 결론지을 수 있을 때까지, 나머지 선분의 각각의 선택된 두 개의 점에 대하여 상기한 과정을 반복한다. 그 결과, 도 9(c)에 도시된 바와 같이, 내부가 도포된 도형을 얻을 수 있다.
그 후, 도 10에 도시한 바와 같이, CPU의 계산에 의해 구해진 도형 묘화 데이터는 표시 콘트롤러(114)로부터의 기록 신호에 동기하여 2 차원 배열된 도형 데이터를 기억 축적하기 위한 메모리 장치(111)(이하, "프레임 메모리"라고 칭함)에 기록된다.
프레임 메모리(111)에 기록된 도형 데이터는, 표시 콘트롤러(114)에 의해 내부에서 RGB 신호로 변환 처리된다. 변화된 RGB 신호는 표시 모니터(113)에 영상 신호로서 전송되어, 모니터(113)상에 도형으로서 표시된다.
상기에 설명한 바와 같이, 종래의 도형 묘화 방법에서는, 도형의 윤곽을 그리고, 각 점이 도형의 윤곽 내부에 속하는가를 판정하여 소정의 색으로 내부를 도포하고, 각 화소 단위로 데이터를 프레임 메모리에 기록하는 등의 다수의 처리 과정이 필요하기 때문에, 종래의 묘화 방법에서는 도형의 표시 속도를 고속으로 하는데 어려움이 있다는 문제점이 있었다.
따라서, 본 발명의 목적은 다각형 등의 윤곽을 갖는 도형의 내부를 고속으로 결정하는 방법 및 이 방법을 실현하는 표시 제어 장치를 제공하는 것이다.
도 1은 본 발명의 실시예 1에 따른 표시 제어 장치의 구성을 도시한 블럭도,
도 2는 도 1에 도시한 표시 제어 장치에 의해 색칠된 다각형의 예를 도시한 도면,
도 3은 시작 어드레스 이하의 화소의 1 비트 데이터가 반전되어 있는, 도 2에 도시한 래스터 주사 라인(521)상의 복수 화소의 1 비트 데이터를 도시한 도면,
도 4는 시작 어드레스 이후의 1 화소의 비트 데이터가 재차 반전되어 있는, 도 2에 도시한 래스터 주사 라인(521)상의 복수 화소의 1 비트 데이터를 도시한 도면,
도 5는 본 발명의 실시예 2에 따른 표시 제어 장치의 레지스터 회로의 구성을 도시한 블럭도,
도 6은 시작 어드레스로부터 최종 어드레스보다 하나 작은 어드레스까지 화소 데이터가 반전되어 있는, 도 2에 도시한 바와 같은 래스터 주사 라인(521)상의 복수 화소의 1 비트 데이터를 도시한 도면,
도 7은 2 세트의 시작 어드레스 및 최종 어드레스를 이용할 필요가 있는 다각형의 예를 도시한 도면,
도 8은 도 5에 도시한 실시예 2의 레지스터 회로의 한 변형예를 도시한 블럭도,
도 9는 종래의 소프트웨어에 의한 묘화 처리 방법을 도시한 도면,
도 10은 도 9에 도시한 종래의 묘화 처리 방법을 이용한 표시 제어 장치의 구성을 도시한 블럭도.
도면의 주요 부분에 대한 부호의 설명
11, 12, 13 : 버스 101 : CPU
102 : 레지스터 회로 103 : 작업 메모리
104 : 메모리 제어 장치 105 : 래치 회로
106 : 인버터 107 : 선택 회로
108 : 래치 회로 109 : 스위칭 블럭
110 : 비트 확장기 111 : 프레임 메모리
112 : 표시 출력 장치 113 : 디스플레이 모니터
상기 목적을 달성하기 위해, 본 발명에 기재한 청구항 1에 따르면, 다각형 등의 윤곽을 가지는 도형의 내부를 결정하는 방법으로서, 복수의 래스터 주사 라인의 각각을 주사하여, 도형의 윤곽의 일부를 구성하는 선분을 형성하는 것으로 간주할 수 있는 적어도 하나의 화소를 탐색하여, 그 화소의 1 비트 데이터 및 래스터 주사 방향으로 상기 화소의 배후에 배열된 화소들의 1 비트 데이터를 반전시키고, 이들 화소의 반전된 1 비트 데이터를 상기 단일 비트 플레인의 상기 복수의 메모리 비트 중에서 대응하는 메모리 비트에 순차적으로 기록하고, 복수의 래스터 주사 라인의 각각을 다시 주사하여, 도형의 윤곽의 일부를 구성하는 다른 선분을 형성하는 것으로 간주할 수 있는 적어도 하나의 다른 화소를 탐색하여, 이미 반전되어 있는 경우를 제외하고, 그 화소의 1 비트 데이터를 반전시키고, 래스터 주사 방향으로 그 화소의 배후에 배열된 화소의 1 비트 데이터를 더 반전시키고, 이들 화소의 반전된 1 비트 데이터를 단일 비트 플레인의 복수의 메모리 비트 중에서 대응하는 메모리 비트에 순차적으로 기록하는 것이다.
또, 본 발명에 기재한 청구항 2에 따르면, 다각형 등의 윤곽을 가지는 도형의 내부를 판정하는 도형 묘화 방법으로서, 복수의 래스터 주사 라인의 각각을 주사하여, 도형의 윤곽의 내부에 속하는 것으로 간주할 수 있는 적어도 하나의 연속 화소열을 탐색하여, 화소열의 선단부에 속하는 화소를 지정하는 시작 어드레스 및 상기 화소열의 후단부에 속하는 화소의 바로 뒤에 위치하는 화소를 지정하는 최종 어드레스를 구하고, 각 화소를 지정하는 어드레스와 시작 어드레스 및 최종 어드레스를 서로 비교함으로써, 복수의 래스터 주사 라인의 각각의 각 화소의 1 비트 데이터를 반전시킬 것인지 여부를 결정하고, 화소열에 포함된 각 화소의 반전된 1 비트 데이터를 단일 비트 플레인의 복수의 메모리 비트 중 대응하는 메모리 비트에 기록하는 과정을 포함한다.
또한, 본 발명에 기재한 청구항 3에 따른 표시 제어 장치는 각 화소가 다각형 등의 윤곽을 가지는 도형의 내부에 속하는지 여부를 나타내는 1 비트의 데이터를 각각 저장하는 복수의 메모리 비트를 적어도 포함하는 작업 메모리와, 복수의 래스터 주사 라인의 각각을 주사하여, 도형의 윤곽의 일부를 구성하는 선분을 구성하는 것으로 간주할 수 있는 적어도 하나의 화소를 탐색하여, 도형의 내부를 결정하는 비트 반전을 제어하기 위한 제어 신호를 발생하는 제어 수단과, 작업 메모리로부터 순차적으로 송신되는 각 화소의 1 비트 데이터를 수신하고, 1 비트의 화소 데이터를 반전하여, 제어 수단으로부터의 제어 신호에 응답하여 본래의 1 비트 데이터와 반전된 1 비트 데이터 중에서 어느 하나를 선택하여, 선택된 데이터를 출력하는 선택 수단과, 선택 수단으로부터의 선택된 데이터를 작업 메모리의 복수의 메모리 비트 중 대응하는 메모리 비트에 기록하는 기록 수단을 포함한다.
이하, 본 발명의 바람직한 실시예를 첨부한 도면을 참조하여 설명한다.
(실시예 1)
도 1은 본 발명의 실시예 1에 따른 표시 제어 장치의 개략적인 구성을 도시한 블럭도이다. 이 표시 제어 장치는 소프트웨어 프로그램 등을 실행하는 CPU(101), 버스(11, 12)를 경유하여 CPU(101)에 전기적으로 접속되는 레지스터 회로(102), 레지스터 회로(102)의 출력이 접속되고, 래치 회로(105) 및 인버터(106)의 출력을 수신함과 동시에, 입력된 신호 중 어느 하나를 선택하거나 또는 어느 것도 선택하지 않는 선택 회로(107), 선택 회로(107)의 출력을 래치하는 래치 회로(108), 도형의 내부를 판정해야 하는, 2 차원 배열의 도형 데이터(즉, 단일 비트 플레인(bit plane) 또는 맵(map))를 기억하기 위한 복수의 메모리 비트로 이루어진 작업 메모리(work memory)(103), 작업 메모리(103)에 기억되는 데이터에 색정보 등을 부가하는 비트 확장기(110), 비트 확장기(110)에 의해 비트 확장된 도형 데이터를 유지하는 프레임 메모리(111), 작업 메모리(103)에 입출력하는 데이터를 제어하는 쌍방향 스위칭 블럭(109), CPU로부터의 제어 신호에 응답하여 작업 메모리(103) 및 프레임 메모리(111)를 제어하는 메모리 제어 장치(104) 및 프레임 메모리(111)에 기억된 데이터를 모니터(113)로 전송될 신호로 변환하는 표시 출력 장치(112)로 구성된다. 모니터(113)가 표시 출력 장치(112)에 의해 변환된 신호를 수신할 경우, 모니터(113)는 스크린상에 도형을 표시한다.
이하, 본 발명의 실시예에 따른 표시 제어 장치의 작동에 대하여 설명한다. 도 2(a)∼2(g)는, 도 9(a)∼9(c)를 참조하여 종래 기술의 도형 묘화 방법에서 설명한 것과 같은 도형을 그리고, 소정의 색으로 도형을 도포하는 과정을 설명하기 위한 도면이다. 도 2(b)에 있어서, 수직 방향으로 배열되어 있는 숫자(520, 521, …, 531, …)는 각각 수평 방향으로 배열된 복수의 화소를 포함하는 행(row)의 좌표(즉, 화소의 y좌표)를 나타내고, 수평 방향으로 배열되어 있는 숫자(540, 541, 542, …, 555, …)는 각각 수직 방향으로 배열된 복수의 화소를 포함하는 열의 좌표(즉, 화소의 x좌표)를 나타낸다. 도 2(a)∼2(g)에 도시한 예에 있어서, 묘화할 도형의 각 정점의 좌표는 (540, 520), (544, 525), (542, 531), (553, 531), (551, 525) 및 (553, 520)이다. 각 정점을 연결하는 각 선분은 도 2(a)에 도시한 바와 같이 선분(51, 52 ,53, 54, 55 및 56)이다. 예를 들면, 선분(51)은 정점의 화소(540, 520)와 정점의 화소(544, 525)를 연결하는 직선으로서 정의된다. 또한, 선분(51)은 이들 정점과 함께 화소(541, 521), (542, 522), (543, 523), (544, 524)에 의해 근사화될 수 있다. 마찬가지로, 다른 각 선분을 형성하고 있다고 간주될 수 있는 화소가 탐색된다. 여기서, 도 2(a)에 도시한 바와 같이, 각 선분에 대하여 결정된 화소가 반드시 각 선분상에 존재하지 않는 것이 이해될 수 있을 것이다.
먼저, 다각형 등의 도형의 내부를 판정하는 방법에 대하여 설명한다. 이 방법의 순서는 다음과 같다.
(1) 그의 내부가 사전에 결정된 색으로 도포될 다각형의 윤곽을 구성하는 한 선분을 형성하고 있다고 간주되는 각 화소 및 래스터 주사 방향으로 선분의 배후에 배열되는 각 화소 중에서, 선분의 양 단부에 위치하는 2 개의 화소(즉, 2 개의 정점) 중 1 개의 화소와 동일한 래스터 주사 라인상에 있는 화소를 제외한 1 비트 데이터가, 각 화소가 다각형의 내측에 있는지 여부에 대해 판정하지 않고 반전된다. 이 비트 반전은 선분을 포함한 래스터 주사 라인의 각각에 대하여, 도 2(a)∼2(g)에 도시한 바와 같이 왼쪽에서 오른쪽으로, 또 선분의 한쪽 단부에서 다른쪽 단부로 래스터를 가로질러 순차적으로 실행된다. 그러나, 이 과정에서, 선분의 양단부에 위치한 화소가 다른 래스터 주사 라인상에 있을 경우에는, 선분의 다른 단부에 위치한 화소와 동일한 래스터 주사 라인상의 화소에 대해서는 비트 반전이 행해지지 않는다. 또한, 이미 비트 반전된(물론, 최초의 비트 반전 이전에 모든 화소가 비트 반전되어 있는 것은 아니다) 선분상의 화소는 재차 비트 반전되지는 않는다.
(2) 마찬가지로, 상기한 과정 (1)의 대상이었던 선분의 다른 단부를 통해서, 이 선분에 접속되어 있는 인접하는 선분에 대하여 비트 반전이 행해진다. 상술하면, 한쪽 단부가 최초의 선분과 공유되는 인접 선분을 형성하는 것으로 간주할 수 있는 각 화소들의 1 비트 데이터 및 래스터 주사 방향으로 인접 선분의 배후에 배열되는 각 화소의 1 비트 데이터가 반전된다. 단, 대상 선분(target line segment)의 양 단부가 상이한 래스터 주사 라인상에 있을 경우에는, 대상 선분의 다른 단부와 동일한 래스터 주사 라인상의 화소 및 이미 비트 반전된 선분상에 위치한 화소는 제외된다.
나머지 각 선분에 대해서도 과정 (2)에 의해 비트 반전이 계속하여 행해진다.
도 2(a)∼2(g)에 도시한 예에서는, 도 2(b)에 도시한 바와 같이, 우선, 선분(51)의 한 단부에 위치한 정점(544, 525)과 동일한 래스터 주사 라인상에 위치한 화소를 제외하고는, 선분(51)상의 화소 및 선분(51)의 배후에서 래스터 주사 방향으로 주사되는 화소의 각각에 대하여 비트 반전이 행해진다. 물론, 다각형의 내부를 판정하기 위한 비트 반전이 행해지기 전에, 도 1에 도시한 작업 메모리(103)의 복수의 메모리 비트는 초기화되어, 모든 화소의 1 비트 데이터는 예를 들면 "0"으로 설정된다. 비트 반전된 각 화소는 도 2(b)에 도시한 바와 같이, 대각선 방향으로 경사진 동그라미에 의해 표시되어 있다. 따라서, 선분(51)을 부분적으로 포함한 각 래스터 주사 라인상에 위치한 복수의 화소가 순차적으로 주사되고, 2 진의 "0" 및 대응하는 화소의 1 비트 데이터가 반전된 것을 나타내는 2 진의 "1"로 이루어지는 일련의 2 진 데이터가 작업 메모리(103)의 대응하는 메모리 비트에 순차적으로 기록된다.
도 3은, 도 2(a)∼2(g)에 도시한 예에서 작업 메모리(103)에 순차적으로 저장된 y 좌표(521)로 표시된 래스터 주사 라인상의 화소의 데이터를 나타내는 개념도이다. 또한, 래스터 주사 라인상에 위치하는 일련의 화소 중에서 최초로 비트 반전되는 화소의 x좌표를 "시작 어드레스"라고 칭한다. 도 3에 있어서, 검은 점은 비트 반전된 화소를 나타내고, 흰 점은 비트 반전되지 않은 화소를 나타낸다. 도 3에 도시한 바와 같이, 선분(51)에 대한 래스터 주사 라인(521)의 시작 어드레스는 「541」이고, 이 시작 어드레스에 위치한 1 비트의 화소 데이터 및 그 이후에 래스터 주사 방향으로 주사되는 화소는 전부 반전되어 있음을 알 수 있을 것이다. 여기서, 「데이터의 반전」은 도형을 하나의 색으로 도포하는데 이용되는 데이터를 설정하는 것을 의미하는 것으로, 반드시 문자상의 「반전」을 의미하는 것은 아니라는 것을 기술해 두는 바이다.
다음으로, 도 2(c)에 도시한 바와 같이, 선분(52)상의 한 단부인 정점(542, 531)과 동일한 래스터 주사 라인상의 화소를 제외하고는, 선분(52)상의 화소 및 선분(52) 배후에서 래스터 주사 방향으로 배열된 각 화소에 대하여 비트 반전이 실행된다. 또한, 도 2(d)에 도시한 바와 같이, 선분(53)상의 화소 및 선분(53) 배후에서 래스터 주사 방향으로 배열된 각 화소에 대하여 비트 반전이 실행된다. 이 경우, 정점(542, 531)의 화소 및 정점(542, 531)의 배후에서 동일한 래스터 주사 라인상에 배열된 모든 화소의 1 비트 데이터가 반전된다. 다음으로, 도 2(e)에 도시한 바와 같이, 선분(54)의 배후에서 래스터 주사 방향으로 배열된 각 화소에 대하여 비트 반전이 실행된다. 따라서, 래스터 주사 방향으로 선분(54)의 배후에 배열되는 화소(즉, 다각형의 윤곽의 외측에 위치하는 화소)의 1 비트 데이터가 재차 반전됨으로써, 다각형의 하반부가 완성된다. 또한, 도 2(f)에 도시한 바와 같이, 선분(55)의 배후에 래스터 주사 방향으로 배열된 각 화소에 대하여 비트 반전이 행해된다. 도 4를 참조하면, 몇 개의 화소 데이터가 재차 반전된, y좌표(521)로 표시된 래스터 주사 라인상의 화소 데이터를 도시한 도면이다. 도면에 도시한 바와 같이, 시작 어드레스 "554" 이하의 화소 데이터가 재차 반전되고, 작업 메모리(103)에 순차적으로 기록된다. 이렇게 하여, 선분(55)의 배후에서 래스터 주사 방향으로 배열된 화소 데이터(즉, 다각형의 윤곽의 외측에 위치한 화소)는 재차 반전된다.
또한, 도 2(g)에 도시한 바와 같이, 선분(56)의 배후에서 래스터 주사 방향으로 배열되고, 이전에 반전된 각 화소에 대하여 비트 반전이 실행된다. 이 경우, 정점(553, 520)의 배후에서 동일한 래스터 주사 라인상에 배열된 모든 화소의 1 비트 데이터가 반전된다. 그 결과, 다각형이 완성되고, 다각형의 내부를 소정의 색으로 도포하기 위한 준비가 완료된다. 즉, 일련의 직선(51∼56)에 의해서 둘러싸인 기하학 도형은, 경계선을 가지는 다각형내의 모든 화소를 적당한 코드(이 경우는 2 진수 "1")가 되도록 작업 메모리내에 설정함으로써 구현된다.
이와 같이 해서, 도 2(g)에 도시한 바와 같이, 다각형의 내부를 나타내는 단일 비트 플레인이 생성되고, 도 1에 도시한 작업 메모리(103)에 저장된다. 따라서, 모니터가 N×M 개의 래스터를 가질 경우, 작업 메모리(103)는 적어도 N×M 개의 메모리 비트의 데이터 영역을 필요로 한다. 이러한 작업 메모리(103)의 크기는 사용할 모니터의 래스터 사이즈에 따라 변경될 수 있다. 또한, 프레임 메모리(111)의 데이터 폭 및 용량은 모니터의 래스터 사이즈, 이용가능한 색의 수 등에 따라 변경될 수 있다. 따라서, 보다 효과적이고 최적화된 도형 묘화, 도포 처리가 가능하다.
전술한 바와 같이, 종래의 소프트웨어를 이용하여 도형의 내·외부를 판정하는 복잡한 처리는, 래스터 주사 방향으로 윤곽 부분 이하의 화소 데이터를 반전시키는 과정으로서 단순화될 수 있으므로, 하드웨어에 의해서도 대부분의 판정 처리를 실현할 수 있게 된다.
또한, 상기한 과정으로부터, 윤곽을 묘화하거나, 각 화소가 도형의 내부에 속하는지 여부를 판정/도포하는 처리는 동일한 과정을 반복함으로써 실현되어, 판정 및 도형 묘화를 위한 단계의 수를 대폭적으로 줄일 수 있음을 알 수 있다.
도형 내부에 있는 모든 화소의 1 비트 데이터가 반전되어 있는 단일 비트 플레인이 작업 메모리(103)에 저장된 후, 작업 메모리(103)에 기억된 2 차원 어레이의 도형 데이터에 색정보 등을 부가하는 비트 확장이 행해진다. 작업 메모리(103)로부터 판독된 각 화소의 데이터에, 그 데이터가 반전되어 있는지 여부에 따른 색정보가 부가되어 프레임 메모리(111)에 저장된다.
색정보가 부가된 데이터의 정보량이 상당히 많기 때문에, 이러한 대량의 데이터를 처리하기 위해서는 비례하는 데이터 처리 시간을 필요로 한다. 따라서, 도형의 형상만을 처리할 때에 색정보가 이용되는 경우는 적으므로, 색정보가 없는 2 차원 도형 데이터 그대로 고속으로 데이터를 처리하여, 상기한 단일 비트 플레인이 구해진 후에 색정보를 데이터 어레이에 부가하는 것은 아주 효율적이다.
이하, 지금까지 설명한 도형 묘화 방법을 이용하는, 도 1에 도시한 표시 제어 장치의 동작에 대해서 설명한다.
우선, 다각형 등의 도형의 내부를 나타내는 작업 메모리(103)의 단일 비트 플레인을 초기화하기 위해, CPU(101)는 메모리 제어 장치(104)를 이용하여 2 차원 어레이의 도형 데이터의 초기값(예를 들면, 복수의 2 진값 "0"으로 이루어진 매트릭스)을 작업 메모리(103)에 기록한다. 그 후, CPU(101)는 각 래스터 주사 라인을 주사함과 동시에, 만일 도형의 윤곽의 일부를 구성하는 적어도 한 선분의 일부가 각 래스터 주사 라인에 포함될 경우, 도 3에 도시한 바와 같이, 최초로 비트 반전되는 화소의 x좌표를 나타내는 시작 어드레스를 산출하여, 버스(11)를 통하여 레지스터 회로(102)에 전송한다. 만약, CPU(101)가 시작 어드레스를 구할 수 없는 경우에는, 각 래스터 주사 라인의 최종 비트의 어드레스보다 큰 디폴트 어드레스(default adress)를 레지스터 회로(102)에 송출한다. 도 2(a)∼2(g)에 도시한 예에서는, CPU(101)는 x좌표 "556"을 디폴트 어드레스로서 전송한다. 이 경우, CPU(101)는 레지스터 회로(102)에 시작 어드레스를 송신함과 동시에, 작업 메모리(103)에 저장된 2 차원 그래픽 데이터로부터 대응하는 데이터를 판독하기 위한 제어 신호를 메모리 제어 장치(104)에 전송한다. 작업 메모리(103)에 저장된 단일 비트 플레인의 각 행의 복수의 1 비트 데이터의 초기값은, 그의 출력신호가 래치 회로(105)로 전송되도록 제어되는 쌍방향 스위칭 블럭(109)에 의해 순차적으로 판독되고, 그의 출력은 래치 회로(105)에 순차적으로 래치된다. 래치 회로(105)에 의해 래치된 각 데이터는 선택 회로(107)의 제 1 입력으로서 입력된다. 선택 회로(107)의 제 2 입력 데이터는 제 1 입력의 반전으로 한다. 즉, 제 1 입력이 반전되지 않은 1 비트 데이터(예를 들면, 대응하는 화소가 하나의 색으로 도포되어 있지 않음을 나타내는 2 진 데이터 "0")일 경우, 제 2 입력은 반전된 1 비트 데이터(예를 들면, 대응하는 화소가 전부 도포되었음을 나타내는 2 진 데이터 "1")가 된다. 레지스터 회로(102)의 출력은 선택 회로(107)의 제어 단자에 접속되어 있고, 레지스터 회로(102)로부터 출력되는 제어 신호는 선택 회로(107)의 출력을 제어하여, 제 1 입력 또는 제 2 입력 중 하나를 선택하여 선택 회로(107)에 출력한다. 선택 회로(107)의 선택동작은 도형 묘화 동작과 동일하다. 레지스터 회로(102)는 버스 (11)를 통하여 인가된 시작 어드레스와 버스(12)를 통하여 인가된 비트 반전 처리의 대상인 래스터 주사 라인상의 일 화소의 x좌표를 나타내는 어드레스와 비교한다. 그 후, 일 화소의 어드레스가 시작 어드레스와 동일할 경우, 하이 레벨의 제어 신호를 발생하여 선택 회로(107)에 송신한다. 하이 레벨의 제어 신호를 수신한 선택 회로(107)는 제 1 입력 선택에서 제 2 입력 선택으로 스위칭한다. 동일한 래스터를 주사하는 동안에, 선택 회로(107)는 현재의 선택 동작을 계속 유지한다. 상술하면, 동일한 래스터 주사 라인상의 시작 어드레스에 의해 지정된 화소 이하의 모든 화소의 1 비트 데이터는 반전된다. 또한, 각 래스터 주사 라인의 주사를 개시할 때에는, 선택 회로(107)는 제 1 입력을 선택하도록 리세트된다.
도 2(b)에 도시한 바와 같이, 선분(51)에 대하여 반전이 행해질 경우, 각 래스터 주사 라인을 주사하는데 이용된 어드레스가 레지스터 회로(102)에 기억된 시작 어드레스가 될 때까지, 선택 회로(107)는 제 1 입력을 선택하여 출력한다. 도 2(b)∼2(d)의 경우, 각각의 흰 동그라미는 제 1 입력이 선택된 것을 나타내고 있다. 한편, 각 래스터 주사 라인을 주사하는데 이용된 어드레스가 레지스터 회로(102)에 기억된 시작 어드레스로 되면, 선택 회로(107)는 제 2 입력을 선택하여 출력한다. 그 후, 상기한 바와 같이, CPU가 다음 래스터 주사 라인을 주사하기 시작할 때까지, 선택 회로(107)는 그 선택 동작을 유지한다. 도 2(b)∼2(d)의 경우, 사선으로 칠해진 동그라미는 제 2 입력이 선택 회로에 의해서 선택되었음을 나타낸다. 선택 회로(107)에 의한 선택 출력은 래치 회로(108) 및 쌍방향 스위칭 블럭(109)을 경유해, 메모리 제어 장치(104)가 출력하는 기록 제어 신호(즉, write 신호)에 동기하여, 작업 메모리(103)의 대응하는 메모리 비트에 다시 기록된다.
CPU가 최저 위치에 있는 래스터 주사 라인을 모두 주사하면, 도 2(e)∼2(g)에 도시한 바와 같이, 최저 래스터 주사 라인으로부터 최상의 래스터 주사 라인까지 다시 주사하기 시작한다. 최상의 래스터 주사 라인으로부터 최하의 래스터 주사 라인으로의 주사와 마찬가지로, 작업 메모리(103)에 저장된 단일 비트 플레인의 각 행으로부터의 복수의 1 비트 데이터가, 인가된 제어 신호에 따라 전송 방향이 스위칭되는 쌍방향 스위칭 블럭(109)에 의해 순차적으로 판독되고, 그 후, 이를 경유하여 래치 회로(105)에 의해 순차적으로 래치된다. 래치 회로(105)에 의해 래치된 각 데이터는 선택 회로(107)에 제 1 입력으로서 입력된다. 또, 선택 회로(107)의 제 2 입력으로서는 제 1 입력의 반전 신호로 한다. 최상의 래스터 주사 라인으로부터 최하의 래스터 주사 라인으로의 주사와 다른 주사 방법을 이용하여, CPU(101)는 각 래스터 주사 라인의 시작 어드레스를 구한다. 상술하면, 래치 회로(105)로부터의 제 1 입력이 어떤 선분상에 있다고 간주되는 화소의 이미 반전된 1 비트 데이터일 경우, CPU(101)는 선택 회로(107)가 반전 입력(즉, 제 2 입력)을 선택하지 못하도록 제어한다. 따라서, CPU(101)는 각 래스터 주사 라인을 주사하여, 다음의 비트 반전의 목표로 되는 선분상에 있다고 추정되는 화소를 탐색하여, 화소의 1 비트 데이터가 이미 반전되어 있을 경우에는, 화소의 어드레스에 1을 가산하여 래스터 주사 라인의 시작 어드레스를 발생한다. 도 2(e)의 예에서는, CPU(101)는 y좌표(531∼526)로 표시되는 래스터 주사 라인에 대하여 시작 어드레스(554, 554, 553, 553, 553 및 552)를 생성하고, 이들 어드레스에 의해 지정된 화소 및 화소의 래스터 주사 방향으로 상기 화소의 배후에 배열된 화소의 1 비트 데이터가 재차 반전된다.
각 래스터 주사 라인에 대하여 시작 어드레스를 생성하는 대신에, 비트 반전 해야 하는 일련의 화소 중에서 최초로 비트 반전해야 하는 화소를 처리할 경우와 그 비트 반전해야 할 일련의 화소 중에서 최후 화소(즉, 우측에 위치한 화소)의 다음의 화소를 처리할 경우에, CPU(101)는 예를 들면 하이 레벨의 제어 신호를 선택 회로(107)에 공급하도록 구성하여도 좋다. 각 래스터 주사 동안에, CPU로부터의 하이 레벨의 제어 신호가 선택 회로(107)에 입력되면, 선택 회로(107)는 제 1 입력 선택 대신에 제 2 입력을 선택한다. 그 후, 동일한 래스터 주사 라인을 주사하는 동안, 선택 회로(107)는 현재의 선택 동작을 유지한다. 또한, 각 래스터 주사 라인을 주사하기 시작할 때에, 선택 회로(107)는 제 1 입력을 선택하도록 리세트된다.
이렇게 하여, 각 1 화소당 하나의 메모리 비트를 갖는 단일 비트 플레인으로 구성되는 도형 데이터가 작업 메모리(103)에 전개되어 있을 경우, 도형 묘화 명령 등에 의해 지정되는 색정보를 부가하기 위해, 메모리 제어 장치(104)로부터의 판독 제어 신호(즉, READ 신호)에 동기하여 비트 확장기(110)에 보내진다. 비트 확장기(110)는 각 화소의 1 비트 데이터를 확장함으로써, 각 화소당 8 비트, 16 비트, … 등의 데이터를 얻어, 해당 1 비트의 화소 데이터에 색정보를 부가한다. 이 비트 확장된 데이터(즉, 색정보가 부가되어 있는 화소 데이터)는 메모리 제어 장치(104)로부터의 기록 신호와 동기하여 시작 어드레스로부터 래스터 주사 순서대로 프레임 메모리(111)에 기록된다.
표시 출력 제어 장치(112)는, 프레임 메모리(111)에 기억된 색정보를 가지는 도형 데이터를 3 원색(적, 녹, 청, 즉 RGB)의 아날로그 신호로 변환한다. 그 후, RGB 신호는 출력 모니터(113)에 출력되어, 예를 들면 소정의 색으로 전부 도포된 도형이 모니터의 스크린상에 표시된다.
(실시예 2)
다음으로, 본 발명의 실시예 2에 따른 표시 제어 장치에 대하여 설명한다. 실시예 2에 따르면, CPU(101)는 실시예 1에서 설명한 바와 같은 시작 어드레스에 부가하여, 다각형 등의 도형의 내부에 있는 화소열의 후단에 위치한 화소(즉, 우측에 위치한 화소)의 다음 화소 어드레스를 나타내는 최종 어드레스를 생성하도록 구성되어 있다. 이하에 서술되는 것으로부터, 보다 고속으로 도형을 묘화할 수 있음을 알 수 있을 것이다.
본 발명의 실시예 2에 따른 레지스터 회로(102)는 실시예 1의 레지스터 회로와 상이하게 구성되어 있다. 도 5에 도시한 바와 같이, 레지스터 회로(102)는 버스(11, 12, 13)를 경유하여 소프트웨어 프로그램 등을 실행하는 CPU에 전기적으로 접속되어 있다. 버스(11)는 CPU(101)가 각 래스터 주사 라인에 대하여 적어도 하나의 시작 어드레스를 전송하기 위해 사용되고, 버스(13)는 CPU(101)가 각 래스터 주사 라인에 대하여 적어도 하나의 최종 어드레스를 전송하기 위해 사용되며, 이 대신에 최종 어드레스는 버스(11)를 통하여 레지스터에 전송되어도 좋다. 비트 반전의 목표로 되는 화소를 지정하는 어드레스는 CPU(101)에 의해 버스(12)를 통하여 레지스터 회로(102)에 전송된다.
실시예 2에 따른 그 밖의 구성, 구성 요소간의 접속 관계 및 기본적 동작은 실시예 1과 동일하다. 예를 들면, 작업 메모리(103), 비트 확장기(110) 및 프레임 메모리(111)간의 데이터 전송, 또는 디지털 데이터의 RGB 신호로의 변환 등은 실시예 1과 마찬가지로 행해지므로, 동일한 동작 부분에 대해서는 설명을 생략하고, 상이한 부분에 대해서만 이하 설명한다.
먼저, 비트 반전의 과정에 대하여 설명한다. 각 과정은 다음과 같다.
(1) 각 래스터 주사 라인에 대하여, CPU(101)는 최초로 반전될 화소(즉, 도형의 내부에 있는 화소열의 선단(즉, 좌측에 위치한 화소)의 화소 어드레스(즉, x좌표)를 나타내는 시작 어드레스를 발생한다. 만약, CPU가 각 래스터 주사 라인에 대하여 그와 같은 좌측 화소를 발견하지 못한 경우에는, 시작 어드레스를 각 래스터 주사 라인의 마지막 화소의 어드레스보다 큰 디폴트 어드레스(예를 들면, 556)로 설정한다. 또한, 각 래스터 주사 라인에 대하여, CPU(101)는 도형의 내부에 있는 상기 화소열의 후단(즉, 우측에 위치한 화소) 화소의 다음 화소의 어드레스를 나타내는 최종 어드레스를 생성한다. 시작·최종 어드레스의 각각은 각 래스터 주사 라인을 주사하고, 도형의 윤곽을 부분적으로 구성하는 선분상에 있다고 추정되는 화소를 탐색함으로써 구할 수 있다. 예를 들면, 가장 먼저 발견되고 하나의 선분상에 있다고 간주될 수 있는 화소의 x좌표는 시작 어드레스가 된다. 동일한 래스터 주사상의 다른 선분상에 있다고 간주되는 다음에 발견된 다른 화소의 x좌표에 1을 더한 것이 최종 어드레스가 된다. 따라서, 래스터 주사마다, 시작 어드레스로부터 최종 어드레스보다 1 만큼 작은 어드레스까지의 범위내의 어드레스에 의해 지정되는 화소열의 모든 1 비트 데이터가 반전된다. 도 6을 참조하면, 도 2(a)∼2(g)에 도시한 예와 동일한 도형을 본 실시예에 따른 방법으로 처리한 경우의 y좌표(521)로 표시되는 래스터 주사 라인상의 화소 데이터를 나타내는 개념도가 도시되어 있다. 이와 같이, 시작 어드레스로부터 최종 어드레스보다 1 만큼 작은 어드레스까지의 복수 화소의 1 비트 데이터가 반전된다. 또한, 도 7에 도시한 바와 같은 다각형의 경우, 래스터 주사 라인(523)에 대하여 2 개의 시작 어드레스와 2 개의 최종 어드레스가 구해진다.
(2) 과정 (1)은 최상의 래스터 주사 라인으로부터 최하의 래스터 주사 라인까지 각 래스터 주사 라인에 대하여 반복된다.
이하, 상기한 과정을 보다 구체적으로 설명한다. 본 실시예에 따르면, 필요에 따라서 각 래스터 주사에 대하여 최종 어드레스가 설정될 수 있다. 이것은, 실시예 1에서 각 래스터 주사 라인을 2 회 주사함으로써 실행되는, 모든 선분에 대한 비트 반전 조작을 각 래스터 주사 라인마다 단 1 번씩 주사되도록 작동한다.
실시예 1에 따르면, 예를 들면, 도 2(a)∼2(g)에 도시한 예의 경우, 래스터 주사 라인(521)에 대하여, 선분(51)(시작 어드레스"541")과 선분(55)(시작 어드레스"554")에서 2 회 반전 조작이 행해지고 있음을 알 수 있을 것이다. 도 2(b)에 도시한 바와 같이, 첫 번째 반전 동안에, 제 1 시작 어드레스 "541"로부터 최종 어드레스 "555"까지가 반전되어 있다. 그리고, 시간을 달리하여 두 번째 반전이 행해지고, 도 2(f)에 도시한 바와 같이, 제 2 시작 어드레스 "554"로부터 최종 어드레스 "555"까지가 반전되어 있다. 여기서, 래스터 주사 라인에 대하여 2 회로 분리되어 비트 반전이 행해지는 것에 주목하길 바란다. 따라서, 첫 번째 비트 반전 조작에서, 도 4에 도시된 제 2 시작 어드레스 "554" 이후를 반전되지 않도록 조작하면, 단 1 번의 반전 조작으로 원하는 결과를 얻을 수 있다는 것을 알 수 있다.
따라서, 도 6에 도시한 바와 같이, 소망 결과를 얻도록 시작 어드레스와 최종 어드레스를 설정하였다. 본 발명의 실시예 2에 따르면, 시작 어드레스를 설정하고 시작 어드레스와 비트 반전의 목표인 화소를 지정하는 어드레스를 서로 비교하는 메카니즘에 부가하여, 최종 어드레스를 설정하고, 이 최종 어드레스와 비트 반전의 목표인 화소를 지정하는 어드레스를 비교하는 메카니즘이 레지스터 회로(102)내에 설치되어 있으며, 레지스터에 공급된 어드레스와 시작 어드레스를 비교함으로써 선택 회로(107)를 제어하는 것과 마찬가지로, 최종 어드레스에 대해서도 레지스터에 인가된 어드레스와 최종 어드레스를 비교함으로써 선택 회로(107)를 제어하도록 구성되어 있다. 처리되어야 할 화소를 지정하는 어드레스가 최종 어드레스 이후인 경우에는, 선택 회로(107)가 "반전되지 않은 데이터"를 선택적으로 출력하도록 한다. 이와 같이 해서 얻어진 도형 데이터는 비트 확장되어 모니터의 스크린상에 표시된다.
도 5에 도시한 바와 같이, 레지스터 회로(102)는 CPU에 의해 인가된 시작 어드레스를 유지하는 회로(1020), CPU에 의해 인가된 최종 어드레스를 유지하는 회로(1021), 비트 반전 처리의 대상이 되는 화소를 지정하는 어드레스가 시작 어드레스와 동일한지에 대해 판정하고, 또한, 지정된 어드레스가 최종 어드레스와 동일한지를 판정하는 회로(1022)를 구비하고 있다. 판정 회로(1022)는 지정된 어드레스가 시작 어드레스 또는 최종 어드레스와 같을 경우에, 선택 회로(107)에 하이 레벨의 제어 신호를 출력한다. 지정된 어드레스가 시작 어드레스가 될 경우, 선택 회로(107)는 레지스터(102)로부터 하이 레벨의 제어 신호를 수신한 후, 제 1 입력 대신에 제 2 입력을 선택한다. 그 후, 하이 레벨의 제어 신호를 다시 수신할 때까지, 선택 회로(107)는 현재의 선택 동작을 유지한다. 또한, 지정된 어드레스가 최종 어드레스가 될 경우에는, 선택 회로(107)는 레지스터(102)로부터 하이 레벨의 제어 신호를 수신한 후, 제 2 입력 대신에 제 1 입력을 선택한다. 그 후, 하이 레벨의 제어 신호를 다시 수신할 때까지, 선택 회로(107)는 현재의 선택 동작을 유지한다. 또한, 각 래스터 주사 라인을 주사하기 시작할 때에, 선택 회로(107)는 제 1 입력을 선택하도록 리세트된다.
한편, 이 대신에 도 8에 도시한 바와 같이, 레지스터 회로(102)는 FIFO 제어회로(1023)와 토글 회로(toggle circuit)(1024)를 구비하고 있고, 비트 반전 처리의 대상이 되는 화소를 지정하는 어드레스가 레지스터에 세트된 시작 어드레스 또는 최종 어드레스 중 어느 하나의 어드레스와 일치할 때마다 선택 회로(107)에 제어 신호를 발생하도록 구성할 수도 있다.
전술한 바와 같이, 종래의 소프트웨어로 구현되는, 각 화소가 다각형 등의 도형의 내부에 속하는지 여부를 판정하는 복잡한 판정 과정은, 도형의 윤곽 및 래스터 주사 방향으로의 윤곽 배후에 주사되는 화소의 1 비트 데이터를 반전시키는 단순한 처리 과정을 통해서 구현할 수 있다. 또한, 처리될 도형이 복수의 윤곽 부분을 가질 경우에도, 비트 반전 처리는 각 래스터 주사 라인마다에 대해 윤곽 부분마다 비트 반전을 행함으로써 완결될 수 있다.
다음으로, 전술한 도형 묘화 방법을 이용하여, 본 발명의 실시예 2에 따른 표시 제어 장치의 작동에 대하여 설명한다.
우선, 다각형 등의 도형의 내부를 나타내는 작업 메모리(103)내의 단일 비트 플레인을 초기화하기 위해, CPU(101)는 메모리 제어 장치(104)를 통하여 2 차원 어레이의 그래픽 데이터의 초기값(예를 들면, 복수의 2 진값 "0"으로 이루어진 매트릭스)을 작업 메모리(103)에 기록한다. CPU(101)는 각 래스터 주사 라인을 주사하고, 만약 도형의 윤곽의 일부를 구성하는 적어도 하나의 선분이 각 래스터 주사상에 부분적으로 있을 경우, 도 6에 도시한 바와 같이, 비트 반전해야 할 일련의 화소의 선단에 위치한 화소의 x좌표를 나타내는 시작 어드레스를 산출하여, 버스(11)를 통해서 시작 어드레스를 레지스터 회로(102)에 전송한다. 마찬가지로, CPU(101)는 반전해야 할 화소열의 다른 단부, 즉 후단에 위치하는 화소의 어드레스에 1을 가산하여 최종 어드레스를 산출하여, 버스(13)를 통해 레지스터 회로(102)에 전송한다. 만약, CPU(101)가 시작 어드레스를 구할 수 없는 경우에는, 각 래스터 주사 라인의 최종 화소의 어드레스보다 큰 디폴트 어드레스를 레지스터 회로(102)에 공급한다. 도 2(a)∼2(g)에 도시한 예와 동일한 도형을 실시예 2에 따른 방법으로 처리했을 경우, 각 래스터 주사 라인에 대하여 시작 어드레스 및 최종 어드레스가 발견되지 않으면, CPU(101)는 x좌표(556)를 디폴트 시작 및 최종 어드레스로서 송부한다. CPU(101)는 레지스터 회로(102)에 시작 어드레스를 전송함과 동시에, 작업 메모리(103)에 저장되어 있는 2 차원 그래픽 데이터로부터 대응하는 데이터를 판독하기 위한 제어 신호를 메모리 제어 장치(104)에 공급한다. 작업 메모리(103)에 저장된 단일 비트 플레인의 각 행의 복수의 1 비트 데이터의 초기값은, 제어 신호에 의해 전송 방향이 래치 회로(105) 측으로 스위칭된 쌍방향 스위칭 블럭(109)에 의해 순차적으로 판독되고, 이를 경유하여 래치 회로(105)에 의해 순차적으로 래치된다. 래치 회로(105)에 의해 래치된 각 데이터는 선택 회로(107)의 제 1 입력으로서 입력된다. 선택 회로(107)의 제 2 입력은, 제 1 입력의 반전 신호를 그 입력으로 한다. 상술하면, 제 1 입력이 반전되지 않은 1 비트 데이터(예를 들면, 대응하는 화소가 전부 도포되지 않음을 나타내는 2 진 데이터 "0")일 경우, 제 2 입력은 반전된 1 비트 데이터(예를 들면, 대응하는 화소가 전부 도포되어 있음을 나타내는 2 진 데이터 "1")가 된다. 레지스터 회로(102)의 출력은 선택 회로(107)의 출력을 제어한다. 선택 회로(107)는 레지스터 회로(102)의 출력 신호에 응답하여, 제 1 입력 또는 제 2 입력을 선택하여 선택된 하나의 데이터를 출력한다. 여기서, 선택 회로(107)의 선택 동작은 표시 제어 장치의 도형 묘화 동작과 동일한 것에 주목하길 바란다.
도 6으로부터 명백한 바와 같이, 각 래스터 주사 라인의 주사에 이용된 어드레스가 레지스터 회로(102)에 기억된 각 래스터 주사 라인의 시작 어드레스가 될 때까지, 선택 회로(107)는 그의 제 1 입력에 인가된 래치 회로(105)로부터의 1 비트 데이터를 선택하여 출력한다. 도 6에 있어서, 시작 어드레스(541)에 의해 지정된 점 앞에 위치한 흰 동그라미는 선택 회로(107)에 의해 제 1 입력이 선택되었음을 나타낸다. 한편, 각 래스터 주사 라인의 주사에 이용된 어드레스가 레지스터 회로(102)에 기억된 시작 어드레스가 될 경우에는, 선택 회로(107)는 그의 제 2 입력에 인가된 인버터(106)로부터의 반전된 1 비트 데이터를 선택하여 출력한다. 도 6에 있어서, 사선으로 색칠된 동그라미는 선택 회로(107)에 의해 제 2 입력이 선택되어, 대응하는 화소 데이터가 비트 반전되어 있음을 나타낸다.
다음으로, 각 래스터 주사 라인의 주사에 이용된 어드레스가 레지스터 회로(102)에 기억된 최종 어드레스가 될 경우, 선택 회로(107)는 그의 제 1 입력에 공급된 래치 회로(105)로부터의 1 비트 데이터를 재차 선택하여 출력한다. 도 6에서, 최종 어드레스(554) 이후의 흰 동그라미는 선택 회로(107)에 의해 제 1 입력이 선택되었음을 나타낸다.
선택 회로(107)로부터의 선택된 출력은 래치 회로(108) 및 쌍방향 스위칭 블럭(109)을 경유하여, 메모리 제어 장치(104)로부터 출력되는 기록 제어 신호(즉, WRITE 신호)와 동기하여 작업 메모리(103)의 대응하는 메모리 비트에 재차 기록된다.
각 래스터 주사 라인에 대하여 비트 반전이 행해진 후, 실시예 1과 마찬가지로, 작업 메모리(103)에 저장된 모든 1 비트 데이터에 대하여 비트 확장기(110)에 의해 비트 확장되어, 모니터(113)의 스크린상에 도형이 표시된다.
이상과 같이, 청구항 1에 기재된 발명에 따르면, 도형의 내부의 판정 및 도형의 색정보를 부가하지 않고, 1 비트/픽셀로 데이터를 처리한 다음, 래스터 주사 방향으로 도형의 윤곽 부분마다 도형 데이터를 반전하면, 도형의 윤곽의 내부인지 외부인지 판정할 필요가 없으므로, 도형을 고속으로 묘화할 수 있다.
또한, 청구항 2에 기재된 발명에 따르면, 래스터 주사 방향에서 도형의 윤곽 부분에 대응한 시작 어드레스 및 최종 어드레스를 설정하여, 1 회의 래스터 주사로 도형을 묘화할 수 있어, 고속의 도형 묘화가 가능하다.
또한, 청구항 3에 기재된 발명에 따르면, 래스터 주사 방향에 도형의 윤곽 부분마다 도형 데이터를 반전하면 도형의 내부인지 외부인지 여부를 판정할 필요가 없어지므로, 도형을 고속으로 묘화할 수 있다.

Claims (3)

  1. 다각형 등의 윤곽을 가지는 도형의 내부를 결정하는 도형 묘화 방법에 있어서,
    각각이 각 화소의 1 비트의 데이터를 저장하는 복수의 메모리 비트로 이루어진 단일 비트 플레인을 초기화하는 단계와,
    복수의 래스터 주사 라인의 각각을 주사해, 상기 도형의 윤곽의 일부를 구성하는 선분을 형성한다고 볼 수 있는 적어도 하나의 화소를 탐색하여, 상기 화소의 1 비트 데이터 및 상기 화소의 배후의 래스터 주사 방향으로 배열된 화소의 1 비트 데이터를 반전시키는 단계와,
    상기 화소의 반전된 1 비트 데이터를 상기 단일 비트 플레인의 상기 복수의 메모리 비트 중 대응하는 메모리 비트에 기록하는 단계와,
    상기 복수의 래스터 주사 라인의 각각을 다시 주사해, 상기 도형 윤곽의 일부를 구성하는 다른 선분을 형성한다고 볼 수 있는 적어도 하나의 다른 화소를 탐색하여, 이미 반전되어 있는 경우를 제외하고, 상기 다른 화소의 1 비트 데이터를 반전시키고, 또한, 상기 다른 화소의 배후의 래스터 주사 방향으로 배열된 화소의 1 비트 데이터를 반전시키는 단계와,
    상기 화소의 반전된 1 비트 데이터를 상기 단일 비트 플레인의 상기 복수의 메모리 비트 중 대응하는 메모리 비트에 기록하는 단계를 포함하되,
    상기 제 1 및 제 2 주사 단계 중 하나는 상기 도형 윤곽의 일부를 구성하는 선분을 형성한다고 볼 수 있는 화소를 지정하는 시작 어드레스를 획득하는 단계와, 상기 각각의 래스터 주사 라인상의 각 화소의 1 비트 데이터가 각각의 화소를 지정하는 어드레스와 상기 시작 어드레스 간의 비교에 따라 반전되는지 여부를 결정하는 단계를 포함하는 도형 묘화 방법.
  2. 다각형 등의 윤곽을 가지는 도형의 내부를 결정하는 도형 묘화 방법에 있어서,
    각각이 각 화소의 1 비트 데이터를 저장하는 복수의 메모리 비트로 이루어진 단일 비트 플레인을 초기화하는 단계와,
    복수의 래스터 주사 라인의 각각을 주사해, 상기 도형의 윤곽의 내부에 있다고 볼 수 있는 적어도 1 개의 연속 화소열을 탐색하여, 상기 화소열에 포함되는 각 화소의 1 비트 데이터를 반전시키는 단계와,
    상기 화소열에 포함되는 각 화소의 상기 반전된 1 비트 데이터를 상기 단일 비트 플레인의 상기 복수의 메모리 비트 중 대응하는 메모리 비트에 기록하는 단계를 포함하되,
    상기 주사 및 탐색 단계는 상기 래스터 주사의 방향에서 상기 화소열의 선단부의 화소를 지정하는 시작 어드레스 및 상기 화소열의 후단부의 화소의 바로 뒤의 화소를 지정하는 최종 어드레스를 획득하는 단계와, 각 화소를 지정하는 어드레스와 상기 시작 및 최종 어드레스 간의 비교에 따라, 상기 복수의 래스터 주사 라인의 각 화소의 1 비트 데이터를 반전시킬 것인지 여부를 결정하는 단계를 포함하는 도형 묘화 방법.
  3. 표시 제어 장치에 있어서,
    각 화소가 다각형 등의 윤곽을 가지는 도형의 내부에 있는지 여부를 나타내는 1 비트의 데이터를 각각 저장하는 적어도 복수의 메모리 비트를 포함하는 작업 메모리 수단과,
    복수의 래스터 주사 라인 각각을 주사해, 상기 도형의 윤곽의 일부를 구성하는 선분을 형성한다고 볼 수 있는 적어도 하나의 화소를 탐색하여, 상기 도형의 내부를 결정하는 비트 반전을 제어하기 위한 제어 신호를 생성하는 제어 수단과,
    상기 작업 메모리 수단으로부터 순차적으로 송신되는 각 화소의 1 비트 데이터를 수신하고, 이 1 비트 데이터를 반전하여, 상기 제어 수단으로부터의 제어 신호에 따라, 본래의 1 비트 데이터와 상기 반전된 1 비트 데이터 중 어느 하나를 선택하여, 선택된 데이터를 출력하는 선택 수단과,
    상기 선택 수단으로부터 선택된 데이터를 상기 작업 메모리 수단의 복수의 메모리 비트 중 대응하는 메모리 비트에 기록하는 기록 수단을 포함하되,
    상기 제어 수단은 상기 복수의 래스터 주사 라인을 2 회 주사하고, 제 2 주사에서, 상기 복수의 래스터 주사 라인의 각각에 대해, 상기 제 1 주사의 대상인 상기 선분과는 다른, 상기 도형의 윤곽의 일부를 구성하는 다른 선분을 형성한다고 볼 수 있는 적어도 하나의 화소를 탐색하고, 상기 제어 신호를 생성하여 상기 선택 수단으로 전달하는 표시 제어 장치.
KR1019970005519A 1996-08-09 1997-02-24 다각형등의도형을묘화하는방법및표시제어장치 KR100266930B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP8211515A JPH1055166A (ja) 1996-08-09 1996-08-09 多角形塗りつぶしアクセラレータ
JP96-211515 1996-08-09

Publications (2)

Publication Number Publication Date
KR19980018034A KR19980018034A (ko) 1998-06-05
KR100266930B1 true KR100266930B1 (ko) 2000-09-15

Family

ID=16607199

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019970005519A KR100266930B1 (ko) 1996-08-09 1997-02-24 다각형등의도형을묘화하는방법및표시제어장치

Country Status (4)

Country Link
US (1) US5910807A (ko)
JP (1) JPH1055166A (ko)
KR (1) KR100266930B1 (ko)
CN (1) CN1173666A (ko)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6952215B1 (en) * 1999-03-31 2005-10-04 International Business Machines Corporation Method and system for graphics rendering using captured graphics hardware instructions
JP4712365B2 (ja) * 2004-08-13 2011-06-29 ルネサスエレクトロニクス株式会社 不揮発性半導体記憶装置および半導体記憶装置
US20100182334A1 (en) * 2009-01-22 2010-07-22 Global Graphics Software Limited Method and system for improved display of sampled data differences
US8085584B1 (en) * 2009-11-30 2011-12-27 Micron Technology, Inc. Memory to store user-configurable data polarity
EP4009280A4 (en) * 2019-09-12 2023-05-03 Nippon Telegraph And Telephone Corporation PREPROCESSING DEVICE, DETERMINATION SYSTEM, PREPROCESSING METHOD AND PREPROCESSING PROGRAM

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6042475B2 (ja) * 1977-12-13 1985-09-21 三菱電機株式会社 デイスプレイ装置
JPS553069A (en) * 1978-06-23 1980-01-10 Seiko Instr & Electronics Ltd Plane picture generating system for display device
JPS5510656A (en) * 1978-07-07 1980-01-25 Nec Corp Method and device for painting out pattern
JPS5971093A (ja) * 1982-10-18 1984-04-21 株式会社日立製作所 塗潰し図形発生装置
US4646076A (en) * 1983-04-27 1987-02-24 Sperry Corporation Method and apparatus for high speed graphics fill
JPS61249175A (ja) * 1985-04-24 1986-11-06 インタ−ナショナル ビジネス マシ−ンズ コ−ポレ−ション 図形処理装置
JPS6299876A (ja) * 1985-10-25 1987-05-09 Toshiba Corp 多角形の塗りつぶし方式
JPS62192878A (ja) * 1986-02-20 1987-08-24 Nippon Gakki Seizo Kk 多角形の塗りつぶし方法
JPH02211522A (ja) * 1989-02-10 1990-08-22 Mitsubishi Electric Corp 図形表示装置
JPH0573693A (ja) * 1991-09-17 1993-03-26 Fujitsu Ltd 輪郭塗り潰し方式

Also Published As

Publication number Publication date
KR19980018034A (ko) 1998-06-05
US5910807A (en) 1999-06-08
JPH1055166A (ja) 1998-02-24
CN1173666A (zh) 1998-02-18

Similar Documents

Publication Publication Date Title
US4763119A (en) Image processing system for area filling of graphics
US4648045A (en) High speed memory and processor system for raster display
JPH0695273B2 (ja) デイスプレイ制御装置
US4613852A (en) Display apparatus
US4849747A (en) Display data transfer control apparatus applicable for display unit
JPH0323918B2 (ko)
EP0307019A2 (en) Apparatus for modifying pixel data stored in a random access memory
JPH07120426B2 (ja) 表示発生装置
US4616220A (en) Graphics display comparator for multiple bit plane graphics controller
JP2578170B2 (ja) 画像表示装置
US5969727A (en) Method and system for displaying static and moving images on a display device
KR100266930B1 (ko) 다각형등의도형을묘화하는방법및표시제어장치
JP3285930B2 (ja) 画像処理装置
EP0062669B1 (en) Graphic and textual image generator for a raster scan display
KR0125276B1 (ko) 영상 윤곽 검출장치
JPH0421196B2 (ko)
US6211885B1 (en) Apparatus for outputting an image in which data of points on texture pattern are mapped to data of dots on display plane
JP3107382B2 (ja) 合成画像の表示装置およびハッチング回路
US5825371A (en) Graphics controller including a sub-memory
JP3252359B2 (ja) 画像処理装置
JP2820068B2 (ja) 画像データ合成表示装置
JP2959574B2 (ja) 画像処理装置
KR0155919B1 (ko) 그래픽 가속기에서 화소데이타 처리방법 및 그 장치
JP2710350B2 (ja) 画像処理装置および画像処理装置の画像処理方法
JPH10214077A (ja) 合成描画データの生成方法および合成描画装置

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
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