KR930000693B1 - 패턴 데이터 발생장치 - Google Patents

패턴 데이터 발생장치 Download PDF

Info

Publication number
KR930000693B1
KR930000693B1 KR1019890013283A KR890013283A KR930000693B1 KR 930000693 B1 KR930000693 B1 KR 930000693B1 KR 1019890013283 A KR1019890013283 A KR 1019890013283A KR 890013283 A KR890013283 A KR 890013283A KR 930000693 B1 KR930000693 B1 KR 930000693B1
Authority
KR
South Korea
Prior art keywords
point
data
memory
pattern
pattern data
Prior art date
Application number
KR1019890013283A
Other languages
English (en)
Other versions
KR900005343A (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 KR900005343A publication Critical patent/KR900005343A/ko
Application granted granted Critical
Publication of KR930000693B1 publication Critical patent/KR930000693B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/40Extraction of image or video features
    • G06V10/46Descriptors for shape, contour or point-related descriptors, e.g. scale invariant feature transform [SIFT] or bags of words [BoW]; Salient regional features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T11/002D [Two Dimensional] image generation
    • G06T11/20Drawing from basic elements, e.g. lines or circles
    • G06T11/203Drawing of straight lines or curves
    • 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
    • G09G5/39Control of the bit-mapped memory
    • G09G5/393Arrangements for updating the contents of the bit-mapped memory

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Image Generation (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

내용 없음.

Description

패턴 데이터 발생장치
제1도는 본 발명에 따른 패턴데이터발생장치의 개략적인 구성을 나타낸 블럭도.
제2도는 제1도에 나타낸 패턴데이터발생장치를 이용해서 패턴데이터를 발생시키는 동작을 설명하기 위한 도면.
제3도는 본 발명의 1실시예에 따른 장치전체의 구성을 나타낸 블럭도.
제4도는 제3도에 나타낸 1실시예를 설명하기 위한 플로우챠트.
제5도는 곡선 및 메모리에 대한 기억상태를 나타낸 도면.
제6도는 1실시예에 대한 데이터를 나타낸 도면.
제7도는 1실시예를 설명하기 위한 플로우챠트.
제8도는 제7도의 플로우챠트를 이용한 경우 곡선 및 메모리에 대한 기억상태를 나타낸 도면.
제9도 및 제10도는 각각 1실시예를 설명하기 위한 도면.
제11도 내지 제14도는 각각 1실시예장치의 각 부분을 구체적 또는 상세히 나타낸 도면.
제15도는 1실시예 장치에서 생성되는 문자패턴의 구체례를 나타낸 도면.
제16도 및 제17도는 각각 종래의 도포처리를 설명하기 위한 도면이다.
* 도면의 주요부분에 대한 부호의 설명
11-1 : 베지에발생부(Bezier 發生部) 11-2 : 직선발생부
12-1,12-2 : 메모리부 13 : dx-cy 버스
14 : 프로세서 15 : 데이터버스
16 : 시스템메모리부
[산업상의 이용분야]
본 발명은 2차원 비트맵상에서 경게데이터가 정의된 임의의 폐도형에 대한 도포를 수행하는 패턴데이터를 발생시키는 패턴데이터발생장치에 관한 것이다.
[종래의 기술및 그 문제점]
전자출판등에 있어서, 문자의 확대와 축소 및 회전을 용이하게 하기 위해 문자정보로서 아우트라인데이터(이하, 아우트라인·폰트로도 칭함)를 준비해 두고, 이를 이용해서 문자를 표시할 경우 비트맵상에 도포된 패턴으로서 전개할 필요가 있는바, 일반적으로 아우트라인의 데이터는 1개 또는 복수의 폐곡선의 데이터로 이루어지면서 각각은 직선 및 3차곡선등의 곡선으로 이루어진다.
종래 문자패턴발생은 소프트웨어처리에 의해 수행되었고, 패턴의 도포에는 다각형의 스캔변환을 이용하였는 바, 이하 종래의 스캔변환에 의한 도포처리를 제16도 및 제17도를 이용해서 설명한다.
제16도 중 참주부로 71은 스캔변환을 수행하는 구형영역 (矩形領域)이고, 72~ 77은 각각 경계의 다각형의 정점, 78~83는 각각 다각형의 변, 84는 하나의 스캔라인으로, 종래의 패턴데이터발생은 다음과 같은 수순을 거치게 된다.
ⓛ 곡선의 세그먼트를 복수의 직선으로 분해해서 폐곡선을 하나의 다각형으로 만든다.
② 다각형 스캔변환에 의해 폐곡선으로 둘러쌓인 폐도형내의 도포를 수행한다.
또 종래 다각형스캔변환에 의한 폐도형내의 도포는 다음과 같은 수순을 거친다.
① 먼저 제16도중 1개의 스캔라인(91)에 대해 다각형의 변과의 교점(P0,P1 ,P2,P3)을 구하고, 이들을 스캔방향의 좌표치의 순번으로 소트시킨다.
② 교점이 점의 끝점, 즉 다각형의 정점인 경우는 다각형이 이어진 쪽에 따른 처리를 수행한다. 예컨대 제17도(a)의 경우 정점(A)은 통상 교점과 동일하게 취급하고, 또 제17도(b)의 경우 정점(A,B)중 한쪽을 교점으로서 취급하며, 또 제17도(c)의 경우에는 정점(D)을 교점으로서 취급한다.
③ 소트된 교점은 2개씩 쌍으로 해서 그 쌍을 양단으로 하는 선분(제16도 중 선분 (84,85))을 그린다.
따라서 종래에는 소트등의 소프트웨어처리에 시간이 걸려 고속으로 도포를 수행할 수 없었고, 하드웨어도 곤란하였다. 또 선분을 그릴 경우 상기 수순에서 설명한 바와같이 정점에 대해서는 특별한 처리가 필요로 되고, 또 경계를 정의하는 곡선의 1점마다의 변화를 프로세서에 의해 소프트웨어적으로, 또는 DDA등의 하드웨어에 의해 생성한 경우에도 스캔변환으로는 1점마다의 변화는 1개의 선분으로서 취급하지 않을 수 없기 때문에 취급해야할 데이터량이 방대해지게 된다.
따라서 상기한 바와 같이 종래에는 폐도형의 도포 패턴을 고속으로 발생시킬 수 없다는 결점이 있었다.
[발명의 목적]
본 발명은 상기한 점을 감안해서 발명된 것으로, 도포패턴을 고속으로 발생시킬 수 있는 패턴데이터발생 장치를 제공함에 그 목적이 있다.
[발명의 구성]
상기 목적을 달성하기 위한 본 발명은, 아우트라인데이터를 래스터화하고, 이 래스터화된 아우트라인의 데이터를 각각 +1,-1,0 중 어느하나의 값을 취해 x,y좌표에 대한 변화량 dx,dy으로서 순차발생시키는 dx,dy 발생수단과, 스캔라인단위의 도포기능을 갖춘 메모리부 및, 상기 dx,dy 발생수단에서 발생된 변화량(dx,dy)을 전송하는 전용데이터버스를 구비한 것을 특징으로 한다.
[작용]
상기화 같이 구성된 본 발명에 있어서, 제1도는 본 발명에 따른 패턴데이터발생장치의 개략적인 구성을 나타낸 블럭도로서, 본 장치는 아우트라인을 래스터화(raster 化)해서 (dx,dy)의 데이터를 발생시키는 전용의 하드웨어(1-1,1-2,…,1-n)와, 도포를 위한 메모리부(2),(dx,dy)의 데이터를 효율적으로 전송하기 위한 전용의 dx-dy버스(3) 및, 전체를 제어하는 프로세서(4)로 구성되어 있다.
이 패턴데이터발생장치에서는 제 1 단계로서 도포를 수행할 패턴이 몇개의 폐곡선으로 분할되고, 또 각 폐곡선의 외곽의 래스터화가 수행되며, 제2단계로서 메모리부 (2)를 이용한 도포가 수행된다.
제 1 단계에서는 제2도에 나타낸 바와 같이 분할된 1개의 폐곡선상의 1점(출발점)의 좌표(x0,y0)와, 래스터화된 외곽을 표시하는 x,y좌표에 대한 변화량 (dx,dy)의 열(列)[(dx0,dy0), (dx1,dy1), …, (dxm-1,dym-1)(단, m은 폐곡선상의 점의 수)]이 전용의 하드웨어(1-1,1-2,…, 1-n)을 이용해서 생성된다. 또 이들 하드웨어(1-1,1-2,…, 1-n)는 폐곡선을 구성하는 부분곡선(이하, 이를 세그먼트로 칭함)의 종류에 따라 선택적으로 사용되는 바, 여기서 생성되는 데이터(dxi,dyi)는 다음과 같은 조건을 만족한다.
Figure kpo00001
제2단계에서는 제1단계에서 발생된 1개의 폐곡선상의 출발점의 좌표가 메모리부(2)의 x,y 어드레스·레지스터에 초기치로서 세트된 후 변화량 (dx,dy)에 따라 x,y 어드레스·레지스터가 다음과 같이 갱신된다.
Figure kpo00002
또 메모리부(2)에 설치된 비트맵메모리의 대응하는 비트위치에 도포에 필요한 데이터가 기록되고, 이 데이터에 기초해서 라인단위의 도포가 수행된다.
이와 같은 장치를 이용해서 패턴데이터의 발생은 다음과 같이 이루어진다.
① 먼저 폐곡선마다 메모리(2)의 x,y어드레스·레지스터에 초기치가 세트되고, 다음에 폐곡선의 세그먼트마다 프로세서(4)는 곡선의 종류에 따라 전용의 하드웨어 (1-1,1-2,…1-n)중 하나를 선택해서 그 곡선을 그리기 위한 파라메터를 그 하드웨어에 설정해서 기동신호를 전송하며, 이 하드웨어는 기동신호를 인가 받으면 미리 설정된 파라메터에 따라 곡선을 래스터화하고, (dx,dy)의 데이터를 발생시켜 dx-dy 버스(3)에 출력한다. 메모리부(2) dx-dy 버스(3)로 부터 (dx,dy)의 데이터를 순차취입해서 비트맵메모리에 도포하기 위한 데이터를 기록한다.
② 패턴에 포함한 전체 폐곡선에 대해 상기 수순이 종료된 후 프로세서(4)는 메모리부(2)에 도포를 기동하는 신호를 전송함으로써 상기 메모리부(2)는 ⓛ에서 생성된 도포의 데이터를 본리대로 해서 도포를 수행한다.
[실시예]
이하, 예시도면을 참조해서 본 발명에 따른 실시예를 상세히 설명한다.
제3도는 본 발명에 따른 패턴데이터발생장치를 아우트라인·폰트의 도포를 수행해서 실시한 경우의 전체구성을 나타낸 블럭도로서, 도면중 참조부호11-1은 베지에곡선(Bezier 曲 線)을 발생시키는 베지에발생부, 11-2는 직선을 발생시키는 직선발생부, 12-1 및 12-2는 각각 도포를 위한 메모리부, 13은 dx-dy 버스,14는 제어용프로세서, 15는 데이터버스, 16은 시스템메모리부이다. 즉, 본 실시예장치에서는 아우트라인·폰트의 래스터화를 위한 전용하드웨어로서 베지에발생부(11-1)와 직선발생부 (12-2)가 설치되어 있고, 또 후술하는 2중 버퍼를 위해 도포용 메모리부가 2개 설치되어 있다.
이와 같은 하드웨어를 사용해서 패턴데이터를 생성할 경우의 수순은 다음과 같다.
① 몇개로 분할된 폐곡선중 패턴데이터를 발생시킬 1개의 폐곡선의 출발점이 한쪽의 메모리부(12-1)에 세트된다.
② 상기 폐곡선의 세그먼트마다 곡선의 종류에 따라 베지에발생부(11-1) 및 직선발생부(11-2)가 선택되어 직선이면 직선발생부(11-2)에 파라메터가 세트되어 기동된다. 기동후 베지에발생부(11-1)또는 직선 발생부(2)에 있어서, 미리 설정된 파라메터에 따라 곡선의 래스터화가 수행되어 (dx,dy)의 데이터가 생성된다.
③ 이 데이터(dx,dy)는 메모리부 (12-1,12-2)에 공급되고, 이들 메모리부 (12-1,12-2)에서 소정의 알고리즘에 따라 경계상의 각 점의 데이터가 생성된다. 다음에 메모리부에서 미리 생성된 각 점의 데이터{d(x,y)}와 ″1″레벨의 배타적논리합을 취한 결과가 비트맵메모리(이하, 간단하게 메모리로 칭함)에 순차 기록된다. 즉 비트맵메모리에는
d(x,y)← d(x,y)
Figure kpo00003
“1” …………… (3)
과 같은 데이터가 기록된다.
상기 ①,②,③ 이 아우트라인의 전체 폐곡선에 대해 반복된다.
④ 메모리부 (12-1)에서 도포에 대한 기동이 되어 도포처리가 수행된다.
⑤ 메모리부(12-1)에서 얻어진 패턴이 데이터버스(15)를 통해 독출되어 시스템메모리부(16)에 격납됨과 더불어, 이것과 병행해서 다음 패턴의 생성이 메모리부 (12-2)를 이용해서 수행된다. 즉, 이 실시예장치에서는 2개의 메모리부(12-1,12-2)를 이용해서 교대로 패턴데이터의 생성과 독출이 수행되는 것으로, 즉 시스템메모리부(16)에 대해 2중 버퍼링동작이 수행된다.
상기 메모리부 (12-1,12-2)에서는 베지에발생부(11-1) 및 직선발생부 (11 -2)에서 발생되는 각 좌표점의 데이터(dx,dy)를 기초로 제4도의 플로우챠트에서 나타낸 와 같은 알고리즘에 따라 각 좌표점의 데이터{d(x,y)}가 발생된다. 또 메모리에 각 좌표점의 데이터가 기록되는 경우 상기와 같이 각 좌표 (x,y)에 대응한 데이터{d(x, y)}와“ 1”의 배타적논리합을 갖춘 결과가 기록된다.
제4도의 플로우챠트에서는, 먼저 단계 S1(이하, 간단히 S로 칭함)에서 (dx,dy)가 인가되고, 이어 S2에서 미리 유지되어 있던 최신의 dyn의 값이 판단되어 -1이면 S3으로 진행하고, 0이면 S4로 진행하며, +1이면 S5로 진행한다.
이어 S3에서는 dy의 값이 판단되어 -1이면 S6으로 진행하고, 0이면 S7로 진행하며, +1 이면 S8로 진행된다. S6에서는 좌표(x,y)에 점이 찍히고, 그 후 S9에서 좌표(x,y)가 갱신되며, 또 다음 S10에서 최신의 (dx,dy)의 값이 (dxn,dyn)으로서 유지되어 원래의 S1으로 돌아간다.
상기 S7 및 S8에서는 각각 우회전하는가의 여부가 판단되는데, 이 우회전은 (dx,dy)의 벡터가 (dxn,dyn)의 벡터에 대해 오른쪽으로 굽어져 있는 것을 의미한다. 예컨대 제5도(a)에 나타낸 바와 같이 오른쪽 방향이 x의 +방향, 아래쪽 방향이 y의 +방향인 표계를 이용하면, 다음 식으로 주어지는 t의 값이 0보다 큰 경우(t〉0)에는 우회전, t의 값이 0보다 작은 경우 (t〈0)에는 좌회전, t의 값이 0인 경우(t=0)에는 직진 또는 후진을 의미한다.
t=dxn·dy - dyn·dx  …………… (4)
상기 S7 및 S8의 각각에서 우회전하지 않는 것으로 판단된 경우 각 좌표에는 점이 찍히지 않고, 상기 S9로 진행하게 된다. 한편 S7에서 우회전으로 판단된다면 상기 S6에서 좌표(x,y)에 점이 찍히게 되고, 그후 S9로 진행한다. 또 S8에서 우회전으로 판단되지 않으면 다음의 S11에서 먼저 좌표 (x,y)에 점이 찍히고, 다음의 S12에서 좌표 (x+1,y)에 점이 찍히며, 다음에 상기 S9로 진행한다.
S4에서는 우회전인가의 여부가 판단되어 우회전이면 상기와 마찬가지로 점이 찍히지 않고, 다음의 S13으로 진행하게 되는데, 이 S13에서는 dy의 값이 판단되어 -1이면 상기 S6에서 좌표(x,y)에 점이 찍히고, +1이면 S14에서 좌표 (x+1,y)에 점이 찍힌 다음 S9로 진행하게 된다.
S5에서는 dy의 값이 판단되어 -1이면 S15로 진행하고, 0이면 S16으로 각각 진행되며, +1이면 상기 S14로 진행해서 좌표 (x+1,y)에 점이 찍히게 되는데, 상기 S15및 S16에서는 각각 우회전인가의 여부가 판단되어 각각에서 우회전이 아닌것으로 판단되면 점은 찍히지 않고 상기 S9로 진행하게 된다. 한편 S15에서 우회전으로 판단되면, S11에서 먼저 좌표(x,y)에 점이 찍히고, 또 S12에 좌표 (x+1,y)에 점이 찍힌 다. 또 S16에서 우회전으로 판단되면 S14로 진행해서 좌표 (x+1,y)에 점이 찍힌다.
다음에 상기 수순에 따라 실제로 제5도(a)에 나타낸 바와 같은 폐곡선을 경계로 하는 패턴의 도포를 수행하는 경우를 설명한다. 또 개시점으로서 제15도(a)에 나타낸 폐곡선의 1개의 정점(p11)이 선택되는 것으로 한다.
먼저, 이 정점(p11)에 대응한 제15도(b)의 메모리의 점(11)에는 데이터가 기록되지 않고 원래의“0”인 상태로 된다.
다음에 다각형의 점(p12)에 대한 다음 점(p13)으로의 어긋남인 (dx,dy) =(0,-1)이 인가되는데, 이때 앞의 점(p12)으로 부터의 어긋남(dxn,dyn)=(+1,-1)이다. 이때 dyn이 -1이고, dy=-1이기 때문에 S6에서 (x,y)의 좌표, 즉 이 점(p12)에 대응한 제5도(b)의 메모리의 점(q12)에 대해“1”과의 배타적 논리합의 결과인 “1”이 기록된다.
다음에 점(p13)에 대해 다음의 점(p14)으로의 어긋남인 (dx,dy)=(+1,0)이 인가되는데, 이 경우 dyn=-1,dy=0이면서 우회전이기 때문에 S6에서 (x,y)의 좌표, 즉 상기 점(p13)에 대응한 제5도(b)의 메모리의 점 (q13)에“1”이 기록된다.
다음에 제(p14)에 대해 다음의 점(p15)으로의 어긋남인 (dx,dy)=(+1,+1)이 인가되는데, 이 경우 dyn=0이면서 우회전이 고=+1이기 때문에 S14에서 (x+1,y)의 좌표 즉, 상기 점 (p14)에 대해 1점만 우방향으로 어긋난 제5도(b)에 나타낸 메모리의 점(q14)에 “1”이 기록된다.
다음에 점(p15)에 대해 다음의 점(p16)으로의 어긋남인 (dx,dy)=(+1,-1)이 인가되는데, 이 경우 dyn=+1, dy=-1 이면서 우회전이 아니기 때문에 이 점(p15)에 대해 점은 찍히지 않는다.
다음에 점(p16)에 대해 다음의 점(p17)으로의 어긋남인 (dx,dy)=(+1,+1)이 인가되는데, 이 경우 dyn=-1, dy=+1이면서 우회전이기 때문에 먼저 S11에서 (x,y)의 좌표 즉, 점(p16)에 대응한 제5도(b)에 나타낸 메모리의 점(q16A)에 대해 “1”이 기록되고 다음의 S12에서 (x+1,y)의 좌표 즉, 점(p16)에 대해 우방향으로 1점만큼 어긋난 제5도의(b)에 나타낸 메모리의 점(q16B)에 “1”이 기록된다.
다음에 점(p17)에 대해 다음의 점(p18)으로의 어긋남인 (dx,dy)=(0,+1)이 인가되는데, 이 경우 dyn=+1, dy=+1이기 때문에 S14에서 (x+1,y)의 좌표 즉, 점(p17)에 대해 1점만 우방향으로 어긋난 제5도(b)에 나타낸 메모리의 점(q17)에 “1”이 기록된다. 또 점(p18), 점(p19)에 대해서도 상기한 경우와 마찬가지로 상기 양 점(p18,p19)에 대해 각각 1점만 우방향으로 어긋난 제15도(b)에 나타낸 메모리의 점(q18,q19)에 각각 “1”이 기록된다.
다음에 점(p20)에 대해 다음의 점(p21)으로의 어긋남인 (dx,dy)=(-1,0)가 인가되는데, 이 경우 dyn=+1, dy=0이면서 우회전이기 때문에 S14에서 (x+1, y)의 좌표, 즉 점(p20)에 대해 1점만 우방향으로 어긋난 제5도(b)에 나타낸 메모리의 점(q20)에 “1”이 기록된다.
다음에 점(p21)에 대해 다음의 점(p22)으로의 어긋남인 (dx,dy)=(-1,0)가 인가되는데, 이 경우 dyn=+1, dy=0이면서 우회전이 아니고 수평이기 때문에 이 점(p21)에 대해 점은 찍히지 않게 된다.
다음에 점(p22)에 대해 점(p23)으로의 어긋남인 (dx,dy)=(-1,-1)이 인가되는데, 이 경우 dyn=-1,dy=-1이기 때문에 S6에서 (x,y)의 좌표 즉, 이점(p22)에 대응한 제5도(b)에 나타난 메로리의 점(q22)에 “1”이 기록된다.
다음에 점(p23)에 대해 다음의 점(기시점(p11))으로의 어긋남인(dx,dy)=(-1,-1)이 인가되는데, 이 경우에도 점(p22)의 경우와 마찬가지로 점(p23)에 대응한 제5도(b)에 나타난 메모리의 점(q23)에 “1”이 기록된다.
이에따라 개시점 (p11)으로 돌아가게 되어 최후의 (dxn,dyn)의 값은 (-1,-1)이고, 최초의 (dx,dy)는 (+1,-1)이기 때문에 dyn=-1,dy=-1로 되고 , S6에서 (x,y)의 좌표 즉, 이 개시점(p11)에 대응한 제5도(b)에 나타난 메모리의 점(q11)에 처음으로 “1”이 기록된다.
이와같이 해서 스캔방향에 따라 도포된 선분의 전체에 관해 각 선분의 2개의 끝점 중 한쪽에는 그 자체의 점, 다른 쪽에는 스캔방향으로 1점만 어긋난 점이 메모리에 기록된다. 이후로 제5도(b)에 나타난 바와같은 데이터를 이용해서 다음과 같은 연산이 수행되어 그 연산결과가 메모리에 기록된다.
dO´← do
d1´← d0´
Figure kpo00004
d1
- }...............................(5)
-
d(w-1)´←d(w-2)´
Figure kpo00005
d(w-1)
이 연산은 지금 1개의 스캔라인이 제6도(a)에 나타낸 바와 같이 b0 ,b1, …b(w-1)인 w비트의 점으로 이루어지는 경우, 연산후의 b0´에는 제6도(a)의 b0인 “0”이 그대로 기록된다. 다음에 연산후의 b1´에는 제6도(a)에 나타낸 b0와 b1의 배타적 오아의 결과가 기록되는데, 이 경우 b0=b1=″0″이므로 연산후의 b1´에는 ″0″이 기록된다. 또 연산후의 b2에는 제6도(a)의 b0,b1,b2의 배타적 논리합의 결과가 기록되는데 ,이 경우 b0=b1=″0″, b2=″1″이므로 연산후의 b2´에는 ″1″이 기록된다. 이하 마찬가지의 연산이 수행되어 제6도(b)에 나타낸 바와같은 데이터가 얻어진다. 그리고 이와같은 연산이 상기 제5도(b)의 모든 스캔라인에 대해 수행되는 결과, 제5도(a)에 대해 입력도형에 대해 제5도(c)와 같은 패턴데이터가 얻어진다. 이 패턴데이터를 이용해서 표시를 수행하면 상기 제5도(a)의 폐곡선을 경계로 하는 패턴의 영역이 도포된 도형이 정확히 표시되게 된다.
이와같이 상기 실시예에서는 전용의 하드웨어를 이용해서 도포처리가 수행된 패턴데이터를 발생시키도록 하고 있기 때문에 종래와 같은 소트처리가 불필요하게 되어 고속으로 처리를 수행할 수 있게 된다.
다음에 상기 실시예의 변형례에 대해 설명한다. 상기 설명에서 폐곡선으로 둘러 쌓인 영역이 도포된 패턴 데이터를 생성하는 경우에 대해 설명 했지만, 이것은 제5도 (d)에 나타낸 바와같이 영역의 외측이 도포된 패턴데이터를 생성시킬 수도 있다. 이경우에는 상기(5)식에 따른 연산대신 하기의 연산을 상기 제5도(b)의 데이터에 대해 각 스캔라인 마다 실행하면 된다.
dO´← do
Figure kpo00006
″1″
d1´← d0´
Figure kpo00007
d1
- }.................................(6)
-
-
d(w-1)´←d(w-2)´
Figure kpo00008
d(w-1)
상기 설명에서 폐곡선이 우회전 함으로써 발생되는 경우에 대해 설명했지만, 우회전에 의해 발생되는 경우 1점마다의 처리에 제4도 대힌 제7도에 나타낸 알고리즘을 이용하면 된다.
또 상기 설명에서 폐곡선으로 둘러 쌓인 영역의 도포를 수행하는 경우, 경계를 포함해서 수행하는 경우에 대해 설명했지만, 경계를 포함하지 않고 도포를 수행할 수도있다. 이 경우 우회전에 경계에 대해서는 1점마다의 처리에 제7도의 플루우챠트로 나타낸 바와같은 알고리즘을 이용하고, 좌회점의 경계에 대해서는 1점마다의 처리에 제4도의 플로우챠트에 나타낸 바와같은 알고리즘을 이용하면 된다. 이 경우 제5도(a)와 같은 경계데이터에 대해, 먼저 제5도(e)에 나타낸 바와같은 데이터가 얻어지고, 제5도(e)의 데이터에 대해 상기(5)식에 따른 연산을 각 스캔라인마다 실행하면 제5도(f)에 나타낸 바와같은 패턴데이터가 얻어진다.
또 상기 실시예에 의하면 제8도(a)에 나타낸 바와같은 경계데이터에 대해서도 올바르게 도포를 수행할 수 있는 바, 즉 이 경우 1개의 스캔라인(21)에 주시하면, 이 스캔라인(21)은 경계와 4개의 교점(22~25)을 갖추고 있고, 여기서 2개의 교점 (23,24)은 스캔방향에 인접하여 있고 도포를 수행할 경우에는 교점(22,25)을 연결하는 선분을 도포하면 된다. 이 경우 상기 수순에 의해 교점(22~25)에 대해 메모리에는 제8도(b)에 나타낸 바와같이 점(32,33,34)이 기록된다. 이때 점(33)에 대해서는 2회 기록이 수행되기 때문에 이 점(33)은 ″0″으로 되고, 스캔라인(21)상에는 점(32,34)의 2점에 ″1″이 기록된다. 이 결과 최종적으로 제8도(c)에 나타낸 바와같이 경계를 포함하는 영역이 도포된 정확한 패턴데이터가 얻어지게 된다.
한편 상기 실시예장치에서 사용되는 베지에발생부(11-1)는 다음과 같은 원리로 상기 데이터(dx,dy)를 발생시키는 바, 일반적으로 좌표가 파라메터(t)의 3차원 함수로서 표시되는 제9도에 나타낸 바와같은 곡선p(t)은 다음과 같이 표시될 수 있다.
p(t)p0*(1-t)3+p1*3t(1-t)2+p2*3t2(1-t)-p3*t3
(단, 0≤t≤1) ...............................(7)
이와같은 곡선은 베지에곡선으로 불리워 지는 바, p0(x0,y0), p1(x1,y1), p2(x2,y2), p3(x3,y3)를 이 베지에곡선의 참조점으로 칭한다. 이와같은 베지에곡선은 문장의 아우트라인·폰트의 곡선세그먼트를 표시하는데 적절하게 이용되고 있다.
또 상기 베지에곡선{p(t)}을 제10도에 나타낸 바와같이 파라메터(t)의 값이 ½의 점에서 2개로 나눠질때, 그 양쪽의 부분도 베지에곡선으로서 상기(7)식과 같이 표시되고, 각각의 참조점(Qi,Pi)은 다음 식으로 주어진다.
Q0=P0
Q1=(P0+P1)/2 }.....................(8)
Q2=(P0+2P1+P2)/4
Q3=(P0+3P1+3P2+P3)/8
R0=R3
R1=(P1+2P2+P3)/4 }...............................(9)
R2=(P2+P3)/2
R3=P3
제11도는 상기 베지에발생부(11-1)의 구체적인 구성을 나타낸 블럭도로서, 이 베지에발생부는 미리 주어진 곡선{p(t)}의 각 참조점(P0,P1,P2,P3)의 각각의 x,y좌표치를 유지하는 x레지스터(41)와, y레지스터(42), 상기(7)식에 따라 베지에곡선 {p(t)}을 2분할해서 2쌍의 새로운 참조점(Qi,Ri)을 생성하는 어드저스트부 (43,44 : adjuSt 部), 양 어드저스트부(43,44)에서 생성된 2쌍의 새로운 참조점(Qi,Ri)중 한쪽의 x,y좌표치의 각각을 유지하는 x스택(45), y스택(46) 및, 분할된 베지에곡선이 충분히 작고 (dx,dy)의 1스텝으로 치확되는가를 판정하는 판정부(47)로 구성되어 있다. 또 x좌표의 어드저스트부(43)는 제12도에 나타낸 바와같이 각각 가산기와 1비트시프트회로로 이루어지고, 2입력(a,b)의 평균가산치(a,b)/2를 얻은 6개의 평균치회로(48)로 구성되어 있다. 이와같이 설정되어 기동이 되면 베지에곡선의 (dx,dy)를 순차 발생시켜 상기 dx-dy버스 (13)에 출력한다.
한편 상기 직선발생부(11-2)는 DDA(Differential Digital Analyzer)등으로 구성되어 있고, 브레센햄(Bresenham)의 알고리즘을 기초로 직선의 (dx,dy)를 순차 발생시켜 상기 dx-dy버스(13)에 출력한다.
상기 메모리부(12-1,12-2)는 각가 제13도에 나타낸 바와같은 구성되어 있는 바, 즉 양 메모리부(12-1,12-2)에는 A면 및 B면의 메모리셀어레이(51,52)와, 행디코더(53,54), 열디코더(55), 메모리셀어레이(51,52)의 감지증폭기, 1/0게이트 회로 (56,57), 도포를 위한 스캔용캐치/논리회로(58), dx-dy버스(13)로 부터 입력되는 (dx,dy)의 값을 유지하는 레지스터(59), 1개의 폐곡선의 출발점의 (dx,dy)의 값을 유지하는 레지스터(60), 하나전의 (dx,dy)의 값을 유지하는 레지스터(61), x 및 y 카운터(62,63), 상기 제4도 또는 제7도의 플로우챠트에서 나타낸 알고리즘에 따라 도포를 하기 위한 데이터를 상기 메모리셀어레이(51,52)에 기록하는가를 결정하는 묘화제어부(64 : 描畵制御部) 및 메모리셀어레이(51,52)의 내용을 데이터버스(15)에 출력 또는 데이터버스(15)상의 데이터를 메모리셀어레이(51,52)에 입력하기 위한 I/0버퍼 (65,66)로 구성되어 있다.
이와같이 구성된 메모리부는 다음과 같은 기능을 갖는다.
①dx-dy-버스(13)로 부터(dx,dy)의 값을 순차취입해서 A면메모리셀어레이 (51)에는 완전한 경계에 따른 데이터를 기록하고, B면메모리셀어레이(52)에는 도포에 필요한 데이터를 기록한다.
②스캔용래치/논리회로(58)를 이용해서 도포를 수행하고, 도포된 패턴을 B면메모리셀어레이(52)에서 생성한다.
③ B면메모리셀어레이(52)에 생성된 패턴을 데이터버스(15)에 출력한다.
제14도는 상기 제13도의 메모리부에 설치된 스캔용 래치/논리회로(58)의 상세한 구성을 나타낸 회로도로서, 상기 회로는 1비트분이 1비트래치회로(67)와, 이 래치회로(67)의 출력과 상기 B면메모리셀어레이(52)로 부터의 출력이 공급되어 그 출력이 래치회로(67)에 귀환되는 배타적 논리합회로(68) 및, 상기 래치회로(67)의 출력과 상기 A면메모리셀어레이(51)로 부터의 출력이 공급되어 그 출력이 B면 메모리셀어레이 (52)에 공급되는 논리합회로(69)로 구성되어 있다.
그런데 상기와같이 구성된 본 발명의 실시예에 따른 패턴 데이터 발생장치를 사용함으로써 도포패턴의 생성이 하드웨어화되어 고속으로 패턴을 생성할 수 있게 되는바, 시뮬레이션에 의하면 제15도에 나타낸 바와같이 문자(夢)의 도표패턴을 1000도트×1000도트의 정밀도로 생성하는 경우에도 1085μsec의 시간으로 실행할 수 있었고, 100도트×100도트의 정밀도로 생성하는 경우에는 107μsec의 시간으로 실행할 수 있었다. 이 처리시간은 종래의 소프트웨어에 의한 처리에 비해 현저하게 고속화되어 있는 것을 알수 있다.
또 상기 실시예의 패턴데이터발생장치에서는 dx-dy버스를 설치함으로써 임의의 곡선에 따라 전용의 하드웨어를 부가할 수 있고, 또 곡선 세그먼트의 일부를 프로세서를 이용해서 발생시킬 수 있는 등, 발생시키는 패턴의 유연성이 증가된다는 큰 효과도 얻을 수 있다.
[발명의 효과]
상기한 바와같이 본 발명에 의하면, 도포패턴을 고속으로 발생시킬 수 있는 패턴데이터발생장치를 제공함에 그 목적이 있다.

Claims (3)

  1. 아우트라인데이터를 기초로 내부가 도포된 패턴을 발행시키는 패턴데이터발생장치에 있어서, 아우트라인데이터를 래스터화한 다음 래스터화된 아우트라인의 데이터를 각각 +1,-1,0중 어느하나의 값을 취하게 되는 x,y좌표에 대한 변화량(dx,dy)으로서 순차발생시키는 dx,dy발생수단(1-1~1-n)과, 스캔라인 단위의 도포기능을 갖춘 메모리부(2) 및, 상기 dx,dy발생수단(1-1~1-n)에서 발생된 변화량(dx,dy)을 전송하는 전용 데이터버스(3)를 구비하여 구성된 것을 특징으로 하는 패턴데이터발생장치.
  2. 제1항에 있어서, 상기 dx,dy발생수단(1-1~1-n)이 베지에 곡선발생기(11-1)와 직선발생기(11-2)로 이루어진 것을 특징으로 하는 패턴데이터발생장치.
  3. 제1항에 있어서, 상기 메모리부(2)는 2개가 설치되어 있으면서 이 2개의 메모리부(12-1,12-2)를 이용해서 패턴데이터의 발생과 발생된 패턴데이터의 독출을 병렬로 수행하도록 구성된것을 특징으로 하는 패턴데이터발생장치.
KR1019890013283A 1988-09-14 1989-09-12 패턴 데이터 발생장치 KR930000693B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP63-230963 1988-09-14
JP23096388 1988-09-14

Publications (2)

Publication Number Publication Date
KR900005343A KR900005343A (ko) 1990-04-14
KR930000693B1 true KR930000693B1 (ko) 1993-01-29

Family

ID=16916063

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019890013283A KR930000693B1 (ko) 1988-09-14 1989-09-12 패턴 데이터 발생장치

Country Status (2)

Country Link
EP (1) EP0359255A3 (ko)
KR (1) KR930000693B1 (ko)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100945739B1 (ko) * 2009-08-24 2010-03-05 엠진 (주) 베지에 곡선 생성 장치 및 그 방법

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH02176879A (ja) * 1988-12-28 1990-07-10 Toshiba Corp パラメータ曲線発生器
US5381521A (en) * 1993-05-14 1995-01-10 Microsoft Corporation System and method of rendering curves
KR100474543B1 (ko) * 1998-06-30 2005-05-27 주식회사 하이닉스반도체 반도체소자의 제조방법
CN110163975B (zh) * 2019-05-24 2023-04-14 武汉轻工大学 空间直线的绘制方法、装置、设备及存储介质

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
NL8300872A (nl) * 1983-03-10 1984-10-01 Philips Nv Multiprocessor-rekenmachinesysteem voor het tot een gekleurde afbeelding verwerken van in een hierarchische datastruktuur gedefinieerde objekt-elementen.
FR2594980A1 (fr) * 1986-02-21 1987-08-28 Gen Electric Processeur de visualisation pour un systeme de visualisation graphique

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100945739B1 (ko) * 2009-08-24 2010-03-05 엠진 (주) 베지에 곡선 생성 장치 및 그 방법

Also Published As

Publication number Publication date
EP0359255A2 (en) 1990-03-21
EP0359255A3 (en) 1992-01-02
KR900005343A (ko) 1990-04-14

Similar Documents

Publication Publication Date Title
KR970003327B1 (ko) 패턴데이터 생성시스템
US4679041A (en) High speed Z-buffer with dynamic random access memory
GB2226479A (en) Method and apparatus for fractional double buffering
JPS63198174A (ja) 図形処理装置
US5422991A (en) Parallel vector generator and triangle generator incorporating same
KR930000693B1 (ko) 패턴 데이터 발생장치
US5029106A (en) Pattern data generating system
JPS6016634B2 (ja) デイスプレイ装置における図形発生方式
JP2899838B2 (ja) 記憶装置
JP2630843B2 (ja) 直線描画方法及び装置
JPH02168361A (ja) 座標データを発生するパターンデータ発生装置及びプロセッサ
JP2605609B2 (ja) ドット表示処理装置
JP2782904B2 (ja) 多角形塗りつぶし方式
JP2773458B2 (ja) ベクトル制御装置
JPH0486961A (ja) 塗りつぶしパターン発生装置および発生方法
JP2689815B2 (ja) ベクトルフォント塗り潰し情報発生装置
JP2000242802A (ja) 図形処理装置
JP2551322B2 (ja) 画像再生方法および装置
JPH05127662A (ja) 情報機器の表示装置
JPS6368985A (ja) 面ぬり方式
JPH07296176A (ja) 多角形塗りつぶし情報出力方式
JPH0683976A (ja) 文字塗り潰し装置
JPH04331988A (ja) ストローク文字生成装置
Fulton An experience with plasma panels
JPH0528399B2 (ko)

Legal Events

Date Code Title Description
A201 Request for examination
G160 Decision to publish patent application
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
LAPS Lapse due to unpaid annual fee