KR930011770B1 - 고품질 패턴 발생장치 및 방법 - Google Patents

고품질 패턴 발생장치 및 방법 Download PDF

Info

Publication number
KR930011770B1
KR930011770B1 KR1019900004945A KR900004945A KR930011770B1 KR 930011770 B1 KR930011770 B1 KR 930011770B1 KR 1019900004945 A KR1019900004945 A KR 1019900004945A KR 900004945 A KR900004945 A KR 900004945A KR 930011770 B1 KR930011770 B1 KR 930011770B1
Authority
KR
South Korea
Prior art keywords
code
character
painting
point
pattern
Prior art date
Application number
KR1019900004945A
Other languages
English (en)
Other versions
KR900016908A (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 KR900016908A publication Critical patent/KR900016908A/ko
Application granted granted Critical
Publication of KR930011770B1 publication Critical patent/KR930011770B1/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
    • 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/22Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators characterised by the display of characters or indicia using display control signals derived from coded signals representing the characters or indicia, e.g. with a character-code memory
    • G09G5/24Generation of individual character patterns

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)
  • Controls And Circuits For Display Device (AREA)
  • Digital Computer Display Output (AREA)
  • Image Generation (AREA)

Abstract

내용 없음.

Description

고품질 패턴 발생장치 및 방법
제1a도 내지 제1d도는 종래 방식에 있어서 발생된 패턴을 설명하기 위한 도면.
제2a도 및 제2b도는 와인딩 넘버(WM)데이타를 설명하기 위한 도면.
제3도는 본 발명의 고품질 문자 패턴 발생장치의 일실시예를 나타낸 블록도.
제4도는 제3도는 나타낸 액세스 제어회로(22)의 블록구성도.
제5도는 제3도에 나타낸 WN 코드 결정 테이블(15)의 내용을 나타낸 도면.
제6도는 제3도에 나타낸 WN 코드 갱신(更新) 테이블(16)의 내용을 나타낸 도면.
제7도는 WN 코드의 결정률의 적용예를 설명하기 위한 도면.
제8도는 제3도에 나타낸 도장 처리 회로(18) 주변의 블록도.
제9도는 제3도에 나타낸 사상(寫像)부(14)의 동작을 설명하기 위한 플로우차트.
제10도는 제3도에 나타낸 도장 처리 회로의 동작을 나타낸 플루우차트.
제11a도 내지 제11d도는 WN 코드 갱신 처리의 모양을 나타낸 플로우차트.
제12도는 도장 처리 회로(18)에 의한 도장 처리의 모양을 나타낸 도면.
제13a도 및 제13b도는 가는 선을 포함하는 패턴을 축소했을 경우의 문제를 설명하기 위한 도면.
제14a도 및 제14b도는 제13a도 및 제13b도에 나타낸 문제를 해결하기 위한 DDA를 플로트 방식을 제13a도 및 제13b도에 대응시켜 설명하기 위한 도면.
제15도는 가능 횡선의 축선 패턴에 상기 DDA 플로트 방식을 적용했을 경우를 설명하기 위한 도면.
제16도는 문자 패턴과 WN 코드와의 관계의 일례를 나타낸 도면.
제17a도 및 제17b도는 제16도에 나타낸 문자 패턴을 1/3로 축소할 경우의 WN 코드의 변화 상태를 나타낸 도면.
제18도는 WN 코드 갱신을 생략할 경우의 패턴예를 나타낸 도면.
제19도는 1도트 첨예단을 갖는 패턴과 WN 코드와의 관계를 나타낸 도면.
* 도면의 주요부분에 대한 부호의 설명
10 : 콘트롤러 11 : 메모리
12 : 사이즈 변경부 13 : FIFO
14 : 사상부 14-1 : 사상 콘트롤러
14-2 : 결정부 14-3 : 갱신부
15 : WN 코드 결정 테이블 16 : 갱신 테이블
17 : WNPM 18 : 도장 처리 회로
19 : 라인 메모리 20 : 비트맵 메모리
21 : BITBLT 회로
본 발명은 패턴, 예를들어 문자 패턴을 정의하는 윤곽선에 따라 고품질 문자 패턴을 발생하는 방법 및 장치에 관한 것이다.
문자 패턴을 발생할 때, 먼저 윤곽을 그리고, 이어서 윤곽 내부를 도장(塗裝)하는 처리가 일반적으로 행해진다. 윤곽선으로 정의된 영역을 도장하는 방법으로서 다음에 기술하는 제1 내지 제3의 방법이 알려져 있다.
먼저 제1의 방식에서는 정의된 영역내의 지정된 점에서 순서대로 점을 이동하면서 각 점마다에 영역의 내부인지 외부인지가 판단되고, 영역의 내부에 있다고 판정되었을때 그 점에 대해 도장 처리가 실행된다. 이 방식은 퍼스널 컴퓨터 등에 있어서의 도형 처리에서 사용되는 것이며, 각 점마다의 판단 처리가 축차적으로 행해지기 때문에 처리 속도가 느린다고 하는 문제가 있다. 또 「영역의 연속성」을 기준으로 하고 있으므로, 일반적으로는 도장의 분기점에서 「복귀 처리」(back tracking)를 필요로 한다.
다음에 제2의 방식에서는 윤곽선이 그려진 비트맵 메모리를 소정 방향(도장 방향)으로 주사하며, 예를들어 홀수번째의 1점에서 짝수번째의 1의 점까지의 사이의 점이 1로 도장되는 방식(짝수-홀수(even-odd)방식의 도장)이며, 상기 「복귀 처리」를 필요로 하지 않는다. 짝수-홀수 방식은 가상선이 윤곽선을 가로지르는 회수를 카운트하고, 그 카운트치가 홀수일 경우, 그 점은 윤곽선의 내측에 있는 것으로 판단되며, 짝수일 경우, 그 점은 윤곽선의 외측에 있는 것으로 판단된다. 그러나, 제2방식에서는 패턴, 예를들어 문자 패턴이 첨예단의 도장 방향의 도트수가 1도트인 경우(이 첨예단을 1도트 첨예단이라고 정의함)에는 그 첨예단의 도트뿐만아니라, 그 도트이후의 도트열도 도장된다고 하는 결함이 있었다. 이 결함을 해소하기 위해서는 문자 패턴이 디자인시에 1 도트 첨예단(도장 방향과 직교하는 방향의 도트수가 1인 첨예단은 1도트 첨예단이라고 하지 않는다)이 발생하지 않도록 궁리하지 않으면 안되며, 번잡했었다. 1도트 첨예단을 필요로 할 경우에는 1도트 첨예단을 갖지 않는 문자 패턴을 도장 처리하여 발생시킨다음, 1도트 첨예단을 갖는 문자 패턴의 윤곽선을 겹쳐서 묘화(描畵)할 필요가 있었다.
또, 제2의 방식에서는 제1a도에 나타낸 바와같이 문자 패턴의 윤곽선이 겹치지 않는 경우라면 제1b도에 나타낸 것처럼 올바른 문자 패턴이 얻어지지만, 패턴 축소등 때문에 문자 패턴의 윤곽선이 동일 격자 라인상에서 겹쳐서 제1c도에 나타낸 것처럼 1도트 폭선으로 될 경우에는 제1d도에 나타낸 바와같은 잘못된 문자 패턴이 발생되는 문제도 있었다. 그리고, 제1b도와 제1d도에 있어서의 도장 방향은 Y방향(도면에 있어서 위부터 아래방향)이다.
제3의 방식은 adobe Systems사에 의해 개발된 페이지 기술(記述)언어인 포스트 스크립트(Post Script)에 사용되고 있는 논 제로 와인딩 넘버(non-zero winding number)방식에 의한 도장이다. 먼저, A와 B에 표시된 바와같이 무한원(無限遠)으로부터의 어떤 벡터, 여기서는 도장 방향을 나타내는 벡터 Rv에 대해 윤곽선의 묘화 방향이 좌측에서 우측 방향일 때, 와인딩 넘버(WN)는 +1되고, 윤곽선의 묘화 방향이 우측에서 좌측 방향일때, 와인딩 넘버(WN)는 -1이 된다. 얻어진 와인딩 넘버가 0이면 그 점은 윤곽선의 외측으로 판단되며, 0이 아니면 내측으로 판단된다. 이 제3의 방식에서는 먼저 문자의 윤곽을 구성하는 세그먼트마다 예를들어 시점의 Y좌표 따위의 어떤 기준으로 소트하여 리스트로 해 두는 처리가 행해진다. 그리고, FILL코맨드를 실행할때, 예를들어 X축에 평행인 주사 라인에서 위에서 밑으로 주사하는 프로그램 루프를 만들고, 그 루프 1회마다 X축에 평행인 주사 라인과 상기 리스트중의 세크먼트와의 교점을 모두 구하는 처리가 행해진다. 다음에, 교점의 X좌표의 순으로 그 세그먼트의 기술(記述)을 조사하여, 선이 어느쪽(위/아래)으로 그어져 있는지를 판단하여, 와인딩 넘버(이하, 데이타 WN이라고 함)를 구하고, 그것의 0이 아닌(non-zero)구간을 비트맵 메모리상에서 선을 긋는 처리가 행해진다. 제3의 방식에서는 이상의 처리가 상기 프로그램 루프에서 반복된다.
상기한 바와같이, 제3방식에서는 윤곽을 구성하는 라인마다 세그먼트 리스트를 조사할 필요가 있다. 이 때문에 세그먼트 리스트가 길어지는 한자 패턴 등의 복잡한 패턴의 경우에는 처리 시간이 매우 길어진다고 하는 문제가 있었다. 또, 상기 교점의 계산을 「윤곽선의 총도트수」정도 반복할 필요도 있었다. 상기한 바와같이, 종래는 짝수-홀수 방식의 도장에서는 1도트폭의 선이나 1도트의 첨예단을 갖는 문자 패턴을 바르게 발생시킬 수 없으며, 또 논 제로와인딩 넘버 방식에 의한 도장 처리에서는 고속 처리를 할 수 없다고 하는 문제가 있었다. 또한 상기 두 방식에서는 1점 단위의 도장 처리로 되기 때문에 이 점에서도 처리 속도의 저하를 초래하고 있었다.
그래서, 1점 단위의 처리 대신 예를들어 워드 단위로 도장 방향으로 도장 처리를 하는 것을 생각할 수 있다. 이 방식에 의하면 1점 단위의 도장 처리에 비해 처리의 고속화를 도모할 수 있게 된다. 그러나, 이 방식에서는 1워드의 처리때마다 라인을 전환하지 않으면 안되며, 대량의 데이타를 연속해서 처리하는데는 부접합하며, 더한층의 고속화를 도모하는데는 불충분하다. 더구나, 종래는 1문자씩의 문자 패턴을 대상으로 하는 도장 처리이며, 문자 패턴이 잘릴곳(통상은 문자 패턴 영역의 좌단과 우단의 도트 위치)이 비트맵 메모리에 있어서 효율이 좋은 다시 쓰는 단위의 잘린 곳(이른바 워드 경계)에 일치하지 않는 경우가 많으며, 따라서, 단순한 워드 처리로는 대처할 수 없기 때문에 고속화가 곤란해지고, 그 때문에 복잡한 하드웨어 등도 필요해지는 문제가 있다. 특히, 본문용 문자 등, 비교적 작은 문자를 다수 처리할 경우에는 1문자 단위의 도장 처리에서는 고속화는 곤란하다.
본 발명의 목적은 1도트폭의 선이나 1도트 첨예단을 갖는 문자 패턴을 올바르게 발생시킬 수 있으며, 또한 복잡한 문자 패턴이나 비교적 작은 문자 패턴도 고속으로 발생시킬 수 있는 방법과 장치를 제공하는 것이다.
본 발명의 제1의 특징에 의하면, 윤곽선군에 의하여 정의되는 문자 패턴을 고품질로 발생하기 위한 장치는 복수의 영역으로 분할되고 각 분할 영역이 와인딩 넘버(WN) 코드 데이타를 복수 문자분 격납하기 위한 코드 패턴 메모리 수단과; 입력되는 사상 개시 지시에 응답하고 점마다 결정되는 WN 코드로 상기 코드 패턴 메모리 수단의 분할 영역에 격납되어 있는 복수 문자군의 대응하는 점의 WN 코드를 갱신하면서, 패턴을 정의하는 입력되는 사이즈 변조 윤곽선군의 각각에 대하여 도장 방향과 직교하는 라인 방향의 연속한 N(N은 2 이상의 양의 정수)점을 단위로 상기 코드 패턴 메모리 수단에 사상하고, 사이즈 변조 윤곽선군의 사상을 종료할때, 사상 종료 응답을 발생하기 위한 사상 수단과; 입력되는 도장 지시에 응답하여 도트 패턴을 얻기 위하여 상기 코드 패턴 메모리 수단에서 독출된 WN 코드에 따라 사이즈 변조 윤곽선군에 의하여 정의되는 영역을 도장하기 위한 도장 수단과; 입력되는 패턴 발생 명령에 응답하여 사상 개시 지시를 상기 사상 수단에 출력하고 상기 사상 수단으로부터의 사상 종료에 응답하여 도장 개시 지시를 상기 도장 수단에 출력하기 위한 제어 수단을 포함하는 것을 특징으로 한다.
본 발명의 제2의 특징에 의하며, 윤곽선에 의해 정의되는 문자 패턴을 고품질로 발생하기 위한 방법은 (가) 와인딩 넘버 코드 패턴 메모리를 복수의 영역으로 분할하고 분할한 복수 영역의 적어도 하나의 와인딩 넘버(WN)코드 데이타를 복수 문자분 격납하는 단계와; (나) 상기 WN 코드 데이타가 기록되어 있는 영역외의 분할 영역으로부터 WN 코드 데이타를 독출하고 사이즈 변조 윤곽선에 의하여 정의되는 문자 패턴의 영역을 도장하는 단계와; 그리고 (다) 상기 단계 (가)와 단계 (나)를 병렬로 행하는 단계로 이루어진 컴퓨터 단계를 포함하는 것을 특징으로 한다.
본 발명에 의하면, 하나의 문자 패턴을 정의하는 몇개의 선도형에 대해, 각기 한번 추적하는 것만으로도 최종적으로는 모든 선도형을 배치한 상태에 있어서 각 점의 와인딩 넘버의 변화수 또는 변화 상태가 WN 코드로서 와인딩 넘버 코드 패턴 메모리(WNPM)(17)에서 구해진다. 이 WNPM(17)내용과 라인 메모리(19)의 기억내용으로부터, 각 점의 WN 데이타가 간단히, 더구나 N점을 단위로 단위로 병렬로 구해지므로, 도장에 의한 문자 패턴이 고속으로 발생할 수 있다.
WN 데이타를 구하는 조작은 라인 방향의 연속된 N점을 단위로 라인 방향에 순차적으로 행해지고, 하나의 라인이 종료하고 나서 다음의 라인으로 전환되므로, 상기 N의 값을 워드 어드레스가 라인 방향에 연속되는 비트맵 메모리의 워드 길이에 맞추는 것으로 WN 데이터에 의해 결정되는 도장 패턴 도트를 간단한 어드레스 제어로 N도트 단위로 비트맵 메모리에 고속으로 전송할 수 있게 된다.
또 상기 와인딩 넘버 코드에 의하면 하나의 점의 전후에서 패턴 축소 따위로 인해, 1증가 1감소가 겹쳐서 발생하는 것도 표시되므로, 이 상태를 부가하여 도장 데이타를 발생시킴으로써, 잘못된 도장이나 가는 선의 소실을 방지할 수 있다.
또한 WNPM(17)의 기억 영역을 복수의 분할 영역(BSi)으로 분할해서 사용하고, WN 코드 갱신 테이블에 의한 제2WN 코드 갱신 처리가 종료한 분할 영역을 대상으로, 도장 처리 회로의 도장 처리를 행하도록 하고 있으므로, 갱신 회로의 갱신 처리와 도장 회로의 도장 처리를 동시에 병행으로 행할 수 있고, 문자 패턴 발생의 더한층의 고속화를 도모할 수 있다. 또 하나의 문자 패턴의 일부가 그 문자구획 원점이 속하는 영역을 넘을 경우에는 이 영역외부분이 속하는 분할 영역이 액세스 제어회로내의 반가산 회로에 의해 제1레지스터가 지정하는 영역 대신에 지정되며, 올바른 위치를 대상으로 제2WN 코드의 갱신이 행해지므로, 인접하는 2개의 분할 영역에 걸친 하나의 문자 패턴에 대응하는 WN 코드 갱신이 효율적으로 행해진다.
상기 구성에 있어서는 예외적으로 큰 문자를 대상으로 할 경우를 제외하고 통상은 WNPM(17)의 1분할 영역에 복수 문자분의 WN 코드가 기억되며, 그 분할 영역의 복수 문자 패턴 영역을 합쳐서 하나로 한 큰 전송 영역으로서 취급되며, 복수 문자가 일괄해서 도장되어, 비트맵 메모리로의 전송이 행해진다.
비트맵 메모리로의 전송에 관해, 전송 영역(분할 영역)의 경계는 문자 패턴의 경계에 의해 결정되는 것은 아니며 비트맵 메모리의 고쳐쓰기 및 블록 전송에 편리한 위치(이 실시예에서는 2n워드경계)에 설정된다. 이 위치의 양측에 걸친 1문자의 문자 패턴에 대해서는 2회로 나누어 도장 및 블록 전송이 행해진다(제12도의 문자 E의 예).
이처럼, 문자 패턴을 2회로 나누어 도장할 수 있도록 논리적인 도장 처리의 방향은 블록 전송의 주전송 방향(라인 방향, 실시예에서는 수평 방향)에 대해 직각으로 되는 방향(실시예에서는 수직 방향)으로 취한다.
이상의 결과, 단순한 워드 단위의 처리로 끝나지 않기 때문에, 처리에 시간을 요할 가능성이 있는 블록 전송(bitblt 전송)의 양단 부분은 모든 문자 패턴의 각각의 양단에 생기는 것이 아니라 1라인분의 문자 패턴군중 가장 좌측의 문자 패턴의 좌단 및 가장 우측의 문자 패턴의 우단에만 생긴다. 라인의 내부의 전송은 모든 워드 단위의 단순한 기록으로 끝난다.
제3도는 본 발명이 적용되는 고품질 문자 패턴 발생 장치의 일실시예를 나타낸 블록 구성도이다. 제3도에 있어서, 문자 패턴 정의 데이타 메모리(11)는 표준 사이즈의 각 문자 패턴을 정의하는 패턴 정의 데이타를 격납한다. 문자 패턴은 하나의 패턴으로 이루어지며, 각 패턴은 최소한 하나의 부분 패턴으로 이루어진다. 각 패턴은 윤곽선에 의해 정의된다. 윤곽선은 직선 및/또는 곡선으로 이루어진다. 이 실시예에서는 각 윤곽선에 의해 정의되는 윤곽은 닫혀 있다. 윤곽 묘화의 방향은 상술한 포스트 스크립트로 정의되어 있듯이 좌측에 도장 영역을 보는 방향으로 나아가는 것으로 하고, 도장은 Y축방향이고, 이 예에서는 위에서 아래 방향으로 행해지는 것으로 한다. 단, 이 선택은 본질적인 것은 아니다. 예를들어 우측에 도장 영역을 보는 방향으로 윤곽을 묘화하고, 도장을 X축방향으로 하도록 변경하는 것도 가능하다.
패턴 정의 데이타에는 문자를 구성하는 패턴의 수를 나타내는 데이타와, 각 패턴을 구성하는 부분 패턴의 수, 즉 윤곽선의 수를 나타내는 윤곽선수 데이타 N와, 부분 패턴을 정의하는 윤곽선군의 각각을 나타내는 윤곽선 데이타가 격납되어 있다.
사이즈 변경부(12)는 입력되는 사이즈 변경 지시에 따라 메모리(11)에서 패턴 정의 데이타를 독출하고, 발생되는 문자 패턴이 사이즈 변경 지시에 따라 지정되는 사이즈가 되도록 독출된 패턴 정의 데이타를 확대/축소한다. 확대/축소된 패턴 정의 데이타는 선입선출(first-in firs-out : FIFO)버퍼(13)에 출력한다. FIFO(13)는 사이즈 변경부(12)로부터의 패턴 정의 데이타를 일시 격납한다.
사상부(14)는 콘트롤러(10)로부터의 사상 개시 지시에 응답하여 FIFO(13)로부터의 패턴 정의 데이타중의 윤곽선 데이타에 의해 결정되는 윤곽선을 윤곽점마다 WN 코드 패턴 메모리 WNPM(17)에 사상한다. 윤곽점이란 윤곽선과 사상되어야 할 좌표의 격자 라인과의 교점 또는 이 교점에 근사한 격자점이다. 각 윤곽점은 와인딩 넘버(WN)코드를 갖는다. 하나의 패턴에 대한 사상 처리가 종료되면 사상 종료 응답을 콘트롤러(10)에 출력한다. 사상부(14)는 사상 콘트롤러(14-1)와, 결정부(14-2)와 갱신부(14-3)로 이루어진다. 콘트롤러(14-1)는 콘트롤러(10)로부터의 지시에 따라 결정부(14-2)와 갱신부(14-3)의 동작을 제어한다. 결정부(14-2)는 사상 콘트롤러(14-1)로 부터의 지시에 따라, 각 윤곽점(대상점)의 WN 코드를 결정한다. 갱신부(14-3)는 결정부(14-2)에 의해 결정된 WN 코드에 따라 대상점의 WNPM(17)에 격납되어 있는 WN 코드를 갱신한다.
결정부(14-2)는 WN 코드를 결정하기 위한 결정 테이블(15)(제5도 참조)을 갖는다. 결정 테이블(15)은 대상점으로의 윤곽선 세그먼트의 입력 방향과 대상점으로부터의 출력 방향으로 대상점의 WN 코드를 출력한다. 결정부(14-2)는 콘트롤러(14-1)로부터의 결정지시에 응답하여, FIRO(13)으로부터의 윤곽선 데이타에 의거하여, 결정 테이블(15)을 참조하여, 대상점의 WN 코드(15)를 결정한다. WN 코드는 대상점의 와인딩 넘버 데이타 WN와, 대상점에 대해 도장 방향과 반대 방향의 인접한 점, 이 예에서는 대상점의 윗쪽에 인접하는 점의 데이타 WN와의 차분을 나타내는 코드이다.
다음에, WN 코드와 결정 테이블(15)에 대해 상세히 설명한다.
이 실시예에서는 WN 코드로서 다음의 8종이 준비된다. 제1의 WN 코드는 대상점의 데이타 WN와, 대상점의 윗쪽 인접점의 데이타 WN가 같은 것을 나타내는 0이며, 제2, 제3 및 제4의 WN 코드는 대상점의 데이타 WN가 윗쪽 인접점의 데이터 WN에 비해, 각기 1, 2, 3만큼 큰 것을 나타내는 +1, +2 및 +3이다. 제5도, 제6도 및 제7의 WN 코드는 대상점의 데이타 WN가 윗쪽 인접점의 데이타 WN와 비교하여 각기, 1, 2, 3만큼 작은 것을 나타내는 -1, -2, -3이다. 제8의 WN 코드는 도장 방향에 있어서의 윗쪽 인접점과, 아래 인접점의 데이타 WN는 같지만, 대상으로서의 데이타 WN가 위쪽 인접점 또는 아래 인접점의 데이타 WN와의 1만큼 다른 것을 나타내는 ±이다. 문자 패턴 발생 처리에 있어서, 이 실시예에서는 최대 3개까지의 윤곽의 겹침이 허용되므로, 상술한 바와같이 -3 내지 +3 및 ±의 8종의 WN 코드를 준비할 필요가 있다. 따라서 WN 코드는 3비트로 표현된다. 단, 결정 테이블(15)에서는 하나의 윤곽만을 대상으로 하기 때문에, 4종의 WN 코드(-1 내지 +1 및 ±)가 사용되는 것만으로 충분하다. 제5도는 WN 코드 결정 테이블(15)의 내용을 나타낸다. 제5도에 있어서, 흑도트 ·는 대상점을 나타내며, 이 흑도트로 향하는 화살표 →는 앞서의 대상점에서 현대상점으로의 윤곽선의 세그먼트 방향 즉 세그먼트 입력 방향을 나타내며, 이 흑도트에서 떨어지는 화살표 →는 현대상점에서 다음 대상점으로의 세그먼트의 방향 즉 세그먼트 출력 방향을 나타낸다. 세그먼트의 방향은 45도 단위로 양자화되고, 방향 코드라고 불리우는 8종으로 분류되어 있다. 사상부(14)는 결정된 2개의 방향 코드, 즉 세그먼트 입력 방향 코드 및 세그먼트 출력 방향 코드에 따라 제5도에 도시되는 결정 테이블(15)을 참조하여, WN 코드를 결정한다. 다음의 설명에서는 각도의 기준은 도장 방향 즉 Y방향으로 취해지고 있다(Y측 아래 방향으로 0도를 취하고, 반시계 방향으로 각도가 형성되는 것으로 한다).
1) 입력 방향 코드가 90도 방향을 나타내고 있을 경우에, 출력 방향 코드의 각도 θ가 0°
Figure kpo00002
θ
Figure kpo00003
180°를 나타내면 WN 코드로서 코드-(-1)가 결정된다. 225°
Figure kpo00004
θ
Figure kpo00005
270°를 나타내면 WN 코드로서 코드 ±가 결정되고, 315°
Figure kpo00006
θ
Figure kpo00007
360°를 나타내면 WN 코드로서 코드 0이 결정된다.
2) 입력 방향 코드가 135°방향을 나타내고 있을 경우에, 출력 방향 코드의 각도 θ가 0°
Figure kpo00008
θ
Figure kpo00009
180°를 나타내면 WN 코드로서 -(-1)이 결정되고, 225°
Figure kpo00010
θ
Figure kpo00011
315°를 나타내면 WN 코드로서 코드 ±가 결정되고, θ=360°를 나타내면 코드 0이 결정 된다.
3) 입력 방향 코드가 180°방향을 가리키고 있을 경우에, 출력 방향 코드의 각도 θ가 0°
Figure kpo00012
θ
Figure kpo00013
180°를 나타내면 WN 코드로서 0이 결정되고, 225°
Figure kpo00014
θ
Figure kpo00015
360°를 나타내면 WN 코드로서 코드 +가 결정된다.
4) 입력 방향 코드가 225°방향을 나타내고 있을 경우, 출력 방향 코드의 각도 θ가 θ=45°를 나타내면 WN 코드로서 코드 ±가 결정되며, 각도 θ가 90°
Figure kpo00016
θ
Figure kpo00017
180°를 나타내면 WN 코드로서 코드 0이 결정되고, 225°
Figure kpo00018
θ
Figure kpo00019
360°를 나타내면 WN 코드로서 코드 +가 결정된다.
5) 입력 방향 코드가 270°방향을 나타내고 있을 경우, 출력 방향 코드의 각도가 45°
Figure kpo00020
θ
Figure kpo00021
90°를 나타내면 WN 코드로서 코드 가 결정되고, 135°
Figure kpo00022
θ
Figure kpo00023
180°를 나타내면 WN 코드로서 코드 0이 결정되고 225°
Figure kpo00024
θ
Figure kpo00025
360°를 나타내면 WN 코드로서 코드 +가 결정된다.
6) 입력 방향 코드가 315°를 나타내고 있을 경우, 출력 방향 코드의 각도 θ가 45°
Figure kpo00026
θ
Figure kpo00027
135°를 나타내면 WN 코드로서 코드 ±가 결정되고, 각도 θ가 =180°를 나타내면 WN 코드로서 코드 0이 결정되며, 225°
Figure kpo00028
θ
Figure kpo00029
360°를 나타내면 WN 코드로서 코드 +가 결정된다.
7) 입력 방향 코드가 0°방향을 나타내고 있을 경우, 출력 방향 코드의 각도 θ가 0°
Figure kpo00030
θ
Figure kpo00031
180°를 나타내면 WN 코드 -가 결정되고, 225°
Figure kpo00032
θ
Figure kpo00033
360°를 나타내면 WN 코드 0이 결정된다.
8) 입력 방향 코드가 45°방향을 나타내고 있는 경우, 출력 방향 코드의 각도 θ가 45°
Figure kpo00034
θ
Figure kpo00035
180°를 나타내면, WN 코드로서 코드 -가 결정되고, 각도 θ가 =225°를 나타내면 WN 코드로서 코드 ±가 결정되며, 270°
Figure kpo00036
θ
Figure kpo00037
360°를 나타내면 WN 코드로서 코드 0이 결정된다.
이상의 설명에서 명백한 것처럼, 예를들어 제7도에 나타낸 바와같이 입력 방향 코드가 0°방향을 나타내고 있을 경우, 출력 방향 코드의 각도 θ가 0°θ
Figure kpo00038
180°일 경우에는 기호 0으로 표시되는 대상점의 바로 밑의 격자점은 윤곽혹 영역에서 벗어난다. 또, 대상점 자신은 상술한 바와같이 흑영역에 포함된다. 따라서 대상점에는 상술한 WN 코드의 정의에 따라, -가 결정된다.
이것에 대해, 출력 방향 코드의 각도 θ가 180°
Figure kpo00039
θ
Figure kpo00040
360°일 경우에는 대상점의 바로 밑의 격자점이 흑영역에 들어가고, 또 대상점의 바로 위의 격자점도 흑영역에 들어가므로 대상점의 전후에서 데이타 WN의 변화 가 없고, 상기와 같이 데이타 WN 0가 생성되게 된다. 그밖의 코드에 대해서도 상기의 예처럼 데이타 WN의 변화를 대상점과 그 직전 직후의 격자점에 대해 생각하면 용이하게 이해할 수 있다.
갱신부(14-3)는 갱신 테이블(16)(제6도)을 갖는다. 갱신부(14-3)는 사상 콘트롤러(14-1)로부터의 갱신 지시에 응답하여, 결정부(14-2)에서 결정된 대상점의 WN 코드와, WNPM(17)에 격납되어 있는 대상점의 WN 코드에 따라 갱신 테이블(16)을 참조하여 갱신된 WN 코드를 얻는다. 얻어진 WN 코드는 WNPM(17)의 대상점에 대응하는 위치에 기록된다. 이와 같이 해서 WNPM(17)에 격납되어 있는 WN 코드는 갱신된다.
제6도는 갱신테이블(16)의 내용을 나타낸다. 이 갱신 테이블(16)의 논리는 갱신된 WN 코드 =WNPM(17)으로 부터의 WN 코드 +결정된 WN 코드로 표시된다. 상기 식에 있어서의 연산률은 결정된 WN코드가 +, -일 경우에는, 갱신된 WN 코드를 얻기 위해 각기 WNPM(17)으로 부터의 WN 코드가 +1, -1되고, 그 결과가 0으로 되었을때는 ±로 된다. 또 결정된 WN 코드가 +일 경우에는 WNPM(17)으로부터의 WN 코드가 0이 아닌 한은 0으로서 취급되며, WNPM(17)으로부터의 WN 코드는 갱신되지 않는다. 이것에 대해, WNPM(17)으로부터의 WN 코드가 0일 경우에는 0+±→±로서 처리된다. 또 결정된 WN 코드가 0일 경우에는 WNPM(17)으로부터의 WN 코드 갱신은 불필요해진다. 그래서, 이 실시예에서는 결정된 WN 코드가 0일 경우에는 그것이 사상 콘트롤러(14-1)에 알려진다. 이때, 사상 콘트롤러(14-1)는 처리의 고속화를 위해 갱신 지시를 갱신부(14-3)에 출력하지 않는다. 따라서, 갱신부(14-3)는 동작하지 않으며, 갱신테이블(16)은 참조되지 않으며, 또한 WNPM(17)도 액세스되지 않는다. 제6도에는 설명의 편의상 생성된 WN 코드가 0일 경우의 갱신된 WN 코드도 표시되어 있지만, 실제로는 불필요하다. 그리고 제6도의 갱신 테이블에 있어서, 심벌*로 표시되어 있는 엔트리에 대응하는 조합은 3개의 윤곽의 중첩밖에 허용되지 않는 이 실시예에서는 존재하지 않는다.
와인딩넘버 코드 패턴 메모리(WNPM)(17)는 사상부(14)에 의해 결정된 3비트 구성의 WN 코드를 해당점(을 근사시키는 격자점)에 대응항 격납하기 위한 1 워드가 24비트의 WN 코드 패턴 메모리이다. WNPM(16)은 고속 RAM으로 구성되며, 그 메모리 영역은 2차원적으로 예를 들어 BS0 내지 BS3으로 4개의 같은 사이즈이 영역(이하, 버퍼 세그먼트라고 함)에 구분해서 사용되며, 하나의 버퍼 세그먼트 BSi(i=0 내지 3)에 WN 코드를 기록하는 것과 병행하여, 다른 영역 BSj(j=0 내지 3, 단 j=1)에서 이미 기록되어 있는 WN 코드를 꺼내어 도장 처리를 할 수 있도록 구성되어 있었다. WNPM은 1 머신 사이클에 2회의 액세스가 가능하며, 사이클 전반에서는 문자 패턴 윤곽 형성(WN 코드 기록)을 위한 액세스가 행해지며, 사이클 후반에서는 도장 처리를 위한 액세스(WN 코드 독출)가 행해진다. WNPM(17)은 1 머신 사이클에 2회 액세스 가능하며, 사이클 전반에서는 문자 패턴 윤곽 형성(WN 코드 기록)을 위한 액세스가 행해져서 사이클 후반에서는 도장 처리를 위한 액세스(WN 코드 독출)가 행해진다.
도장 처리 회로(18)은 WNPM(17)에 격납되어 있는 각점의 WN 코드를 근거로 한 도장 처리 회로이다. WNPM(17)은 취급 가능한 최대 사이즈의 문자로 2문자분의 WN 코드를 격납할 수 있도록 2개의 WN 코드 기억 영역(도시하지 않음)에 구분되고, 한쪽의 영역에 WN 코드를 기록하고 있는 기간, 도장 처리 회로(18)가 다른쪽의 영역에서 이미 기록되어 있는 WN 코드를 꺼내어 도장 처리를 할 수 있도록 구성되어 있다. 또 도장 처리 회로(18)는 WNPM(17)의 버퍼 세그먼트 BSi의 각 격자점 마다의 WN 코드를 라인 방향의 연속된 8점(도트)을 단위로 (24비트)라인 방향에 순차적으로 꺼내고, 이 8점분의 WN 코드 및 이 8점의 참조 라인 데이타(참조 W 넘버)를 근거로 대응하는 8격자점의 W 넘버를 생성하여 8점 단위의 도장을 하는 조작을 라인을 순서대로 전환하면서 실행하는 기능을 갖고 있다.
라인 메모리(19)(이하, LM 이라고 함)는 1워드가 16비트로 구성되어, 버퍼 세그먼트 BSi의 1 라인분의 참조 라인 데이타(1점분의 참조 라인 데이타의 구성 비트수는 2)를 기억한다. 비트맵 메모리(20)는 도장 처리 회로(18)의 도장 처리에 의해 생성되는 문자 패턴을 격납한다. 비트 블록 전송 회로(이하, BITBLT)(21)는 도장 처리 회로(18)에 의해 생성된 문자 패턴을 콘트롤러(10)로 부터의 세트업 데이타에 따라 비트맵 메모리(20)내의 지정 영역으로 고속 전송한다. BITBLT회로(21)는 도장 처리 회로(18)로 부터의 1 바이트 전송 레디신호 RDY에 따라 전송 동작을 하도록 구성되어 있다.
액세스 제어 회로(22)는 주로 WNPM(17)에 대한 액세스를 제어하기 위한 액세스 제어 회로이다. 회로(22)는 사상부(14)에서 생성된 WN 코드를 WNPM(17)에 기록하기 위한 어드레스, WNPM(17)에 기록되어 있는 WN 코드를 도장 처리 회로(18)에 독출하기 위한 어드레스를 생성한다. 상기 WNPM(7)에서 도장 처리 회로(18)에의 독출용의 어드레스의 일부는 LM(19)를 액세스하기 위한 어드레스로서 사용한다. 제4도는 액세스 제어 회로(22)의 블록 구성을 나타낸다.
제4도에 있어서, Y 어드레스 생성 회로(23)는 사상부(14)에 의해 생성된 WN 코드를 WNPM(17)에 기록하기 위한 도트 어드레스, 더 구체적으로 기술하면 WNPM(17)내의 WN 코드를 리드모디화이라이트(read modify write)에 의해 갱신하기 위한 어드레스의 상위 어드레스, 여기서는 라인 위치를 나타내는 Y 방향 어드레스를 생성한다. X 어드레스 생성 회로(24)는 역시 하위 어드레스, 여기서는 라인 방향의 격자점 위치를 나타내는 X 방향 도트 어드레스를 생성한다. Y 어드레스 생성 회로(25)는 WNPM(17)에 기록된 WN 코드를 8점(1 워드분) 단위로 도장 처리 회로(18)에 독출하기 위한 워드 어드레스의 상위 어드레스(Y 방향 어드레스)를 생성한다. X 어드레스 생성 회로(26)는 역시 하위 어드레스(X 방향 워드 어드레스)를 생성한다. 셀렉터(SEL)(27)는 Y 어드레스 생성 회로(23,25)로부터의 Y 어드레스(Y 방향 어드레스)의 어느 한쪽을 머신 사이클의 전반과 후반에서 전환하여 선택한다. 셀럭터(SEL)(28)는 X 어드레스 생성 회로(24)로부터의 X 어드레스(X 방향 도트 어드레스)의 하위 3비트를 제외한 나머지 어드레스(X 방향 워드 어드레스) 및 X 어드레스 생성 회로(26)로 부터의 X 어드레스(X 방향 워드 어드레스)의 어느 한쪽 머신 사이클의 전반과 후발에서 전환하여 선택한다. 설렉터(27)의 출력(Y 어드레스)과 셀렉터(28)의 출력 (X 어드레스)와의 연결된 정보는(Y 어드레스가 상위) WNPM(17)의 워드 어드레스를 나타낸다.
Y 어드레스 생성 회로(23)는 콘트롤러(10)에서 입력(61)에 주어지는 값을 Y 어드레스로서 유지하는 레지스터(62)로 이루어지며, Y 어드레스 생성 회로(25)는 값 0을 초기치로서 Y 어드레스를 생성하는 카운터(64)로 이루어진다. X 어드레스 생성 회로(24)는 콘트롤러(10)에서 공급되는 입력(64)의 값(갱신해야 할 점의 처리 대상 문자 구획내 X 어드레스) 및 입력(66)의 값(문자 원점의 증가분을 나타내는 도트 사이즈)의 어느 한쪽을 선택하는 셀렉터(6)와, 처리 대상 문자(선도형)의 문자 구획의 원점(문자 원점)의 버퍼 세그먼트 BSi내 X 어드레스를 유지하는 레지스터(68)와, 레지스터(68) 및 셀렉터(67)의 양출력을 가산하는 가산 회로(+)(69)를 갖고 있다.
X 어드레스 생성 회로(24)는 또한 콘트롤러(10)에서 공급되는 입력(70)의 값(x 방향 문자열의 선두 문자의 문자 원점의 X 어드레스의 상위 2비트를 제외한 나머지 어드레스) 및 가산 회로(69)의 출력의 어느 한쪽을 선택하여 레지스터(68)에 출력하는 셀렉터(71)와, 가산 회로(69)로부터의 캐리 출력을 입력(72)의 값(2비트의 버퍼 세그먼트 지정 데이타)에 가하는 2비트의 반가산 회로(73)을 갖고 있다. 반가산 회로(73)의 출력(2비트)과 가산 회로(69)의 출력과의 연결된 정보(반가산 회로(73)의 출력이 상위)는 갱신해야 할 점의 WNPM(17)내의 X 어드레스(X 방향 어드레스)를 나타낸다.
한편 X 어드레스 생성 회로(26)는 콘트롤러(10)에서 공급된 입력(74)의 값(도장 대상 X 방향 문자열의 선두 문자의 문자 원점이 위치하는 버퍼 세그먼트 BSi를 지정하는 2비트의 버퍼 세그먼트 지시 데이타)을 보유하는 2비트의 레지스터(75)와, 레지스터(75)로 표시되는 버퍼 세그멘트 BSi 내의 X 어드레스(X 방향 워드 어드레스)를 0에서 순서대로 생성하는 카운터(76)를 갖고 있다. 레지스터(75)의 출력(2비트)과 카운터(76)의 출력과의 연결된 정보(레지스터(75)의 출력이 상위)는 도장 처리를 위해 독출해야 할 워드(8점분의 WN 코드의 격납 영역)의 WNPM(17)내에 X 어드레스(X 방향 워드 어드레스)를 나타낸다. 또 카운터(76)의 출력은 LM(19)의 어드레스(워드 어드레스)를 나타낸다.
제8도는 도장 처리 회로(18) 주변의 블록 구성을 나타낸다.
디퍼렌셜 와인딩 넘버 레지스터(Differential Winding-number Register)(47)는 도장 처리를 위해 WNPM(17)에서 독출되는 워드 데이타, 즉 8점분의 WN 코드(24비트)를 유지한다. 선형 라인 와인딩 넘버 레지스터(Previous Line Winding nembe Register)(이하 PLWR 이라고 함)은 16비트로 구성되며, LM(19)에서 독출되는 워드 데이타 즉 8점분의 WN 코드(24비트)를 유지한다. 도장 회로(49)는 PWR(47)에 유지된 8점분의 WN 코드 및 PLWR(48)에 유지된 8점분의 참조 라인 데이타를 근거로, 8점분의 W 넘버(16비트)를 생산 출력하는 동시에 8점분의 도장 패턴(부분 문자 패턴)을 병행해서 출력하는 기능을 가지고 있다. 패턴 레지스터(이하, PR이라고 함)(50)는 도장 처리 회로(49)에서 출력되는 8점분의 도장 패턴을 유지하여 비트맵 메모리(20)에 공급하기 위한 8비트 레지스터이다. 버스 드라이버(51)는 도장 처리 회로(49)에서 출력되는 8점분의 W 넘버를 새로운 참조 라인 데이타로서 LM(19)에 송출한다. PR(50)에 도장 패턴이 유지되면, 제어 프로세서(10)에서 bitblt 회로(21)에 레디 신호 RDY(제3도)가 출력하도록 구성되어 있다.
다음에 본 발명의 고품질 패턴의 일실시예의 동작에 대해 사상부(14)에 의해 WN 코드 생성 및 갱신을 중심으로 제9도 및 제10도를 참조하여 설명한다.
제3도의 사이즈 변경부(12)는 문자 패턴 데이타 메모리에서 소망이 표준 사이즈의 문자 패턴을 정의하는 선도형 정보를 꺼내고, 이 꺼낸 선도형 정보가 소망의 문자 사이즈의 문자 패턴을 정의하도록 변경한다. 사이즈 변경부(12)는 변경후의 선도형 정보(변경의 필요가 없으면 꺼낸 선도형 정보)를 FIFO버퍼(13)에 기록한다. 여기까지의 동작은 종래부터 행해지고 있다.
사상부(41)는 FIFO버퍼(13)에 기록된 선도형 정보를 순서대로 꺼내고, 제9도의 스텝 S1에 나타낸 바와 같이 선도형의 개시점을 소정 분해능의 도트 격자점상에 사상(플로트)하고, 그 점을 P로서 내부 기억한다. 다음에, 사상부(41)는 스텝 S2에 있어서, 선도형을 따르는 방향으로 격자 라인에 대한 세그먼트상의 다음의 교점(또는 세그먼트를 근사시키는 격자점 열중의 다음의 점)을 구하고, 그 점을 현 주목점 P로 한다.
상기 교점을 근사시키는 격자점은 생성하는 문자 패턴을 구성하는 도트에 대응한다. 가는선을 포함하는 문자 패턴을 매우 강하게 축소하면, 통상의 수학적 처리에서는 그선을 나타내는 부분 문자 패턴이 서로 인접하는 격자점사이를 통과해 버려, 사상된 격자점의 데이타 WN 만을 사용하면 부분 패턴이 조각나거나, 격자 라인에 병행일 경우에는 완전히 지워져 버리는 일등이 있다. 제13a도는 축소된 격자점 간격과 같은 선폭의 문자 패턴의 일부인 흑사선(31), (31')과 생성하는 도트에 대응하는 격자를 나타낸다. 13a도에 있어서, 기호 ●는 선(31),(31′)간의 영역(흑영역)중에 있으며, 데이타 WN가 1인 격자점(즉 선(31), (31′)간에 포함되는 격자점)을 나타내며, 여기서는 4점 있다. 제13a도는 출력하는 문자 패턴의 도트 구성을 나타내며, 도트의 중심과 13a도의 격자점이 대응한다. 예를 들어 제13a도의 격자점 A, B, C와 제13b도에 나타낸 도트 중심 A′, B′, C′가 각기 대응한다. 명백한 것처럼, 제13a도에 있어서, W 넘버가 1인(기호 ●로 표시되는) 격자점에 대응하는 도트를 흑색으로 해서 출력하면, 제13b도처럼 선이 끊긴다. 상기 예는 문자 패턴 선폭이 격자점간과 같은 경우이지만, 강하게 축소되어 격자점 간격보다 좁아질 경우에는 상기 문제는 더욱 현저해진다.
여기서, 제3도의 사상부(14)에 적용되는 흑영역의 연속성을 유지하기 위한 방식에 대해 제14a도, 제14b도, 제15도를 참조하여 설명한다. 제14a도에는 제14a도와 같은 비스듬한 선도형의 일부(2개의 경계선 세그먼트(31, 31′)의 사이의 부분이 흑색인)가 표시되어 있으며, 이 선도형(의 경계선 31)을 부호 D로 표시되는 위치에서 좌측 아래 방향으로 추적하고 있는 것으로 한다.
제14a도의 예에서는 선(31)이 D 위치의 근방에서 y축에 병행인 선에 대해 이루는 각도(여기서는 선의 방향은 생각하지 않고, 따라서 0° 내지 90°의 범위에서 생각한다)보다도, x 축에 평행인 선에 대해 이루는 각도쪽이 크다. 이 경우에는 x 축에 평행이며 다음의 격자점을 지나는 선(격자 라인) E와 선도형(안의 선 31)과의 교점 F를 구하고, 점 F에 가장 가까운 격자점 G를 구하며, G 점도 흑영역(W 넘버가 1인 영역)에 포함되도록 영역 확장을 한다.
상기와 같이 확장되는 영역에 포함되는 점을 구하는 조작에는 DDA(Digital Differential Analyzer)기술, 그 중에서도 특히 Bresenham의 알고리즘이라고 불리우는 주지의 직선 묘과 알고리즘에 의해 직선을 유지하며 격자점상에 플로트하는 수법이 사용된다. 이 DDA 플로트 수법에 의하면 제14a도의 예에서는 선(31)과 x축에 평행인 격자점 라인과의 교점 대신, 화살표 →와 기호 ●로 나타낸 바와 같이 선(31)을 근사시키는 (플로트 대상)격자점이 8 연결의 관계를 유지하여 순차적으로 구해진다. 그점이 원래 흑영역에 포함되어 있을 경우와 마찬가지로, 흑영역외에 있는 경우에도, 그점을 흑영역에 포함케 한다. 즉 흑영역이 파선으로 도시되는 바와 같이 확장된다. 이상의 처리는, 선(31′)에 대하여도 동일하게(단, 여기서는 찾아가는 방향은 우측위방향) 행하여져, 선(31′)에 근사하게(플롯 대상 격자점)되나, 8 연결의 관계를 유지하여 순차 구하여진다. 제14a도에는 이와 같이 하여 구해진 격자점중, 경계선(31)에 대하여 확장된 영역에 포함되는 격자점이 기호 ▲로 표시되고, 경계선(31′)에 대하여 확장된 영역에 포함되는 격자점이 X 표로 표시되고 있다. 이상의 기호 ● 및 ▲으로 표시되는 각점에 대응하는 도트를 흑으로 출력하면, 제14b도에 도시하는 결과에서 X 표의 도트를 제거한 것으로 되고, 흑영역이 8 연결로 연속한다. 그리고, 제14b도의 결과는 (31′)에 대하여 처리할 때에 확장된 영역에 포함되는 도트(제14b도의 X 표)도 포함함으로, 서로 인접하는 흑도트가 4 연결의 관계로 되고 있으나, 항상 4 연결의 관계로 되고 있는 것은 아니다. 그러나, 아무리 선폭이 가늘게 되어 있어도 서로 인접하는 흑도트가 8 연결 관계를 유지하는 것은 상기한 주기으 DDA 플롯 수법에서 보증된다.
그런데, 한자 패턴 특히 횡선의 폭이 가는 명조체 문자 패턴을 강하게 축소하면, 제15도에 도시한대로 가로선을 나타내는 흑영역 H가 서로 인접하는 격자 라인 사이에 들어가는 일이 발생한다. 이 경우에는, 수학적으로 각 격자점의 데이타(WN)을 구하여 그것에 대응하는 도트 출력을 행하면, 상기의 횡선이 완전히 지워지고 만다. 그러나, 상기한 DDA 플롯 수법을 적용한다면, 흑영역(H)의 예컨대 상측 경계를 표현하는 선도형을 처리할때에, 흑영역(데이타(WN)이 1의 영역)이 제15도에 있어서 기호 ●로 표시되는 격자를 포함하도록 부호(I)로 표시하는 위치까지 확장됨으로, 문자 패턴중의 가는선은 소실되는 일은 없다.
사상부(14)는 스텝(S2)를 종료하면, 점(P)의 직전, 직후의 세그먼트의 방향을 구하여 45°단위의 방향으로 정규화하고, 각각 대응하는 방향 코드(이동 방향 코드)를 생성한다.
사상부(14)는 스텝(S2)를 종료하면, 점(P)의 직전, 직후의 세그먼트의 방향을 구하여 45°단위의 방향으로 정규화하고 각각 대응하는 방향 코드(이동 방향 코드)를 생성한다.
사상부(14)는 스텝(S3)을 종료하면, 스텝(S4)로 진행하고, 우선 스텝(S3)에서 생성한 2개의 방향 코드, 즉 점(P)의 직전의 세그먼트 부분의 이동 방향을 보이는 코드(선행 이동 방향 코드) 및 점(P)의 직후의 세그먼트 부분의 이동 방향을 보이는 코드(후속 이동 방향 코드)를 써서 제5도에 도시하는 코드 생성테이블(15)를 참조하면, 이 2개의 방향 코드가 가리키는 주목점의 전후의 세그먼트 부분의 이동 방향의 결합에서 정해지는 WN 코드를 생성한다.
사상부(14)는, WN 코드 결정 테이블(15)를 써서 상기한 WN 코드를 생성하면, WN 코드의 갱신 처리(스텝 S4)를 행한다. 이 WN 코드 갱신 처리에 대하여 새로운 문자열(예컨대 A, B, C…)의 선두 문자(A)부터 차례로 선도형 정보에 따라서 문자 패턴의 윤곽을 형성하는 경우를 예로 이하에 상술한다.
장치 전체를 제어하는 콘트롤러(10)는 사상부(14)에 의하여 새로운 행의 문자열의 윤곽 패턴을 형성하려고 하는 경우, 우선 액세스 제어 회로(22)내의 x 어드레스 생성 회로(24)의 입력(70)에, 상기 선두 문자의 문자원점의 비트맵 메모리(20)위의 x 어드레스(x 방향 도트 어드레스)중, 버퍼 세그먼트(BSi)의 x 방향 도트수(x 방향 사이즈) D에 대응하는 비트수의 하위 어드레스를 부여한다. 그리고, 제어 프로세서는, 입력(70)에 부여한 어드레스를 셀렉터(71)을 통하여 레지스터(68)에 세트시킨다. 레지스터(68)에 세트된 어드레스는, 상기 선두 문자(A)의 문자 원점의 WNPM(17)위의 x 어드레스 상위 2비트를 제외한 남은 어드레스, 즉 문자원점의 버퍼 세그먼트(예컨대 BSO)내 x 어드레스를 표시한다. 이것은, 비트맵 메모리(20)의 영역(2차원 영역)이 x 방향에 관하여는 WNPM(17)의 영역(2차원적으로 본 영역)의 x 방향 사이즈 4D(도트)를 단위로 구분하여 관리하는 것으로 한다. 콘트롤러(10)는 상기 선두 문자(A)의 문자원점에 대응하는 WNPM(17)내 버퍼 세그먼트 지정 데이타(여기서는 0)을 액세스 제어 회로(22)내의 x 어드레스 생성회로(24)의 입력(72)에 부여한다.
사상부(14)는 상기의 상태에 있어서, 예컨대 선두 문자(A)의 윤곽상의 점(P)에 근사하는 문자 구획내의 격자점(이하, 편의적으로 단지 점(P)로 표현한다)의 WN 코드 생성을 전술한 바와 같이 행하면, 이 점(P)의 해당 문자(문자 구획)내 Y 어드레스를, WNPM(17)의 Y 어드레스로서 액세스 제어 회로(22)내의 Y 어드레스 생성 회로(23)의 입력(61)에 부여하여, 레지스터(62)에 세트시킨다. 또 사상부(14)는, 점(P)의 해당 문자(문자 구획)내 x 어드레스를 x 어드레스 생성 회로(24)의 입력 (65)에 부여하고, 셀렉터(67)을 통하여 가산 회로(69)의 우측 입력에 공급시킨다. 이 가산 회로(69)의 좌측 입력에는 레지스터(68)에 세트된 어드레스(여기서는 문자 A의 문자원점의 버퍼 세그먼트 BSO내 x 어드레스)가 공급되고 있다.
가산 회로(69)는, 상기 양입력의 내용을 가산하고, 점(P)의 버퍼 세그먼트(BSO)내 x 어드레스를 생성한다. 이 가산 회로(69)의 가산 동작에 있어서 캐리가 출력되지 않았을 겨우에는, 입력(72)에 부여된 버퍼 세그먼트 지정 데이타(여기서는 BSO를 가리키는 0)가 반가산 회로(73)로부터 그대로 출력되어, 가산 회로(69)의 출력과 연결된다. 이 연결 정보는, 점(P)의 WNPM(17)내 x 어드레스(x 방향 도트 어드레스)를 가리킨다. 이 어드레스의 하위 3비트를 제외한 나머지 어드레스 즉 점(P)를 포함하는 동일 라인상의 연속하는 8점분의 워드를 가리키는 WNPM(17)내 x 방향 워드 어드레스는 셀렉터(28)에 공급되고, 머신 사이클의 전반에 있어서 셀렉터(28)에 의하여 선택된다. 이때, 레지스터(62)의 내용인 점(P)의 WNPM(17)내의 어드레스가 셀렉터(27)에 의하여 선택된다.
셀렉터(27, 28)에 의하여 선택된 Y 어드레스 x 어드레스는 연결되어서 WNPM(17)에 공급되고, 점(P)를 포함하는 8점분의 워드 데이타의 WNPM(17)내 어드레스 위치를 지정한다. 이에 따라 WNPM(17)에서 대응하는 워드 데이타(점(P)를 포함하는 8점분의 WN 코드)가 WNG(14)에 독출케 된다. 이 WNG(14)에는, X 어드레스 생성 회로(24)에서 출력되는 X 어드레스(X 방향 드트 어드레스)의 하위 3비트가 공급된다. 사상부(14)는 이 3비트가 나타내는 값에 응하여, WNPM(17)에서 독출된 워드 데이타에서 대응하는 도트 위치(점 P)의 WN 코드를 꺼내고, 이 WN 코드와 앞서 생성한 WN 코드를 이용하여 제6도에 도시하는 WN 코드 갱신 테이블(16)을 참조한다. 그리고, WNPM(17)의 모든 점에 있어서 WN 코드의 초기치는 0이다. 다음에 사상부(14)는, 점(P)에 대응하는 워드 데이타중의 WN 코드를, WN 코드 갱신 테이블(16)을 참조하여 얻어지는 WN 코드를 갱신하고, 이 갱신후의 워드 데이타를 WNPM(17)에 공급한다. 이 WNPM(17)에 공급된 워드 데이타는, WNPM(17)의 원래의 어드레스에 기록된다.
상기한 WN 코드 갱신 처리(스텝 S4)가 행해짐으로써, WNPM(17)의 버퍼 세그먼트(여기서는 BSO)의 내용은, 현재 처리중의 선도형의 현 세그먼트상의 점(P)까지의 각 점에 있어서의 WN 코드를 표시하도록 된다. 다음에, 상부(14)는 현재 처리중의 선도형의 최종점에 대한 WN 코드 갱신 처리가 종료했는지 여부를 조사하여, 종료하고 있지 않으면 스텝(S2)으로 되돌아 다음의 교점을 구하여 새로이 P로 하고, 이 점(P)에 대하여 스텝(S3, S4)를 다시 실행한다. 하나의 선도형의 최종점에 대한 처리가 종료하며, 사상부(14)는 이 선도형의 개시점에 대하여, 스텝(S3, S4)과 마찬가지의 처리를 행한다.
이와 같이 하여 하나의 선도형에 대한 처리가 모두 종료하면, 만약 하나의 문자 패턴이 복수의 선도형으로 정의되어 있고, 또한 처리전의 선도형이 남겨져 있으면, 사상부(14)는 남겨진 선도형에 대하여 상기한 처리를 되풀이 한다. 사상부(14)는, 하나의 문자(문자 패턴)에 관한 모든 선도형에 대한 처리가 종료하면, 즉 하나의 문자의 윤곽 패턴에 대응하는 WN 코드의 기록(갱신)처리가 종료하면, 그 사실을 콘트롤러(10)에 통지한다. 이결과, 콘트롤러(10)는 다음의 문자(여기서는 문자 B)에 관한 상기한 동일한 처리가 개시시킴에 있어, 다음의 동작을 행한다. 즉, 콘트롤러(10)는 액세스 제어 회로(22)내의 X 어드레스 생성 회로(24)의 입력(66)에, 문자원점의 증분(增分)을 가리키는 도트 사이즈(즉 동일행의 인접하는 문자의 문자원점의 도트 사이즈)를 부여하고, 이 도트 사이즈를 셀렉터(67)를 통하여 가산 회로(69)의 우측입력에 공급한다. 가산 회로(69)의 좌측 입력에는, 레지스터(68)의 출력인 현재의 문자원점(여기서는 문자(A)의 문자원점)의 버퍼 세그먼트(BSO)내 X 어드레스가 공급되고 있다. 가산 회로(69)는 상기 양입력의 내용을 가산하고, 다음의 문자(B)의 문자원점의 버퍼 세그먼트(BSO)내 X 어드레스를 생성한다. 이 새로운 문자원점 어드레스는, 셀렉터(71)을 통하여 레지스터(68)에 세트된다.
새로운 문자원점 어드레스가 레지스터(68)에 세트되면, 사상부(14)는 다음의 문자 B에 대하여 상기 한 문자 A의 경우와 동일한 처리를 행하고, 문자 B의 윤곽 패턴에 대응하는 WN 코드의 기록을 행한다. 이와 같이 하여, WNPM(17)의 버퍼 세그먼트(BSO)내에, 문자 A에 있어서 문자 B의 윤관 패턴에 대응하는 WN 코드가 기록되고, 다시 문자원점의 위치가 X의 증가 방향(여기서는 우방향으로 이동되면서, 후속의 문자 C, D의 윤곽패턴에 대응하는 WN 코드로 차례로 기록되어 간다. 이 상태를 제11a도에 도시한다.
다음에, 문자 D에 후속하는 문자 E의 윤곽 패턴에 대응하는 WN 코드의 기록이 개시되고, 문자 E의 기록 대상점(P)가 제11b도에 도시한대로 버퍼 세그먼트 경계(여기서는 BSO와 BSI와의 경계)를 넘었다고 하자. 이 현상은 버퍼 세그먼트(BSO)내의 문자원점이 다음의 버퍼 세그먼트(BSI)쪽에 접근하고, 또한 문자 E의 기록 대상점(P)의 문자 구획내 X 어드레스가 크게 된 경우에 발생한다. 이 경우, 가산 회로(69)에서 캐리가 출력된다. 그리고, 제11b도에 있어서 문자 E의 파선 부분은, WN 코드 기록(갱신)이 아직 행하여지지 않고 있는 윤곽을 가리킨다.
가산 회로(69)부터의 출력은 반가산 회로(73)의 우측 입력에 공급된다.
따라서, 반가산 회로(73)부터는, 입력(72)를 통하여 반가산 회로(73)의 좌측 입력에 공급되고 있는 버퍼 세그먼트(BS0)를 나타내는 데이타 0에 1이 가산된 값 1이 출력된다. 이 결과 콘트롤러가 의식하고 있는 버퍼 세그먼트(BS0)를 넘은 버퍼 세그먼트(BS1)로의 WN 코드 기록이 행하여 진다. 또, 문자(E)의 윤곽 패턴에 대응하는 WN 코드의 기록 처리에 있어서, 버퍼 세그먼트(BS0)를 넘어서 버퍼 세그먼트 BS1에 들어간 점(P)이, 역으로 버퍼 세그먼트(BS0)측으로 되돌아온 경우에는, 가산 회로(69)부터는 캐리가 출력되지 않기 때문에 반가산 회로(73)의 출력은 다시0로 되고, 버퍼세그먼트(BS0)로의 WN 코드 기록이 행하여진다.
이와같이, 이 실시예에 의하면 문자원점이 존재하는 버퍼 세그먼트(BS0, BS1)를 걸치는 문자(E)의 윤곽패턴에 대응하는 WN 코드 기록이 효율적으로 행하여진다. 이것은, 문자원점이 다른 버퍼 세그먼트에 있는 경우에도 마찬가지이다.
그리고, 문자원점에 버퍼 세그먼트(BS3)에 존재하는 상태에서 가산 회로(69)에서 캐리가 출력되었을 경우에는, 반가산 회로(73)의 출력은 0으로 되고, (BS3)과 (BS0)에 걸쳐서 WN 코드 기록이 행하여진다.
문자(E)의 윤곽 패턴에 대응하는 WN 코드의 기록 처리가 제11c도에 도시하는 대로 모두 종료되면, 콘트롤러(10)는 다음의 문자(여기서는 문자 F)에 관한 상기와 동일한 처리를 개시케 할 경우, 다음의 동작을 행한다. 즉, 콘트롤러(10)는, 액세스 제어 회로(22)내의 X 어드레스 생성 회로(24)의 입력(66)에, 문자원점의 증분을 표시하는 도트 사이즈를 부여하고, 이 도트 사이즈를 셀렉터(67)을 통하여 가산 회로(69)의 우측 입력에 공급한다. 가산 회로(69)는, 이 우측 입력에 공급되는 도트 사이즈를, 좌측 입력에 공급되는 문자(E)의 버퍼 세그먼트(BS0)내 X 어드레스에 가산한다. 이 경우 가산 회로(69)부터는, 캐리와, 다음의 문자(F)의 문자원점의 버퍼 세그먼트(여기서는 BS1)내 X 어드레스(문자원점 어드레스)가 출력된다. 이 새로운 문자원점 어드레스는, 셀렉터(71)을 통하여 레지스터(68)에 세트된다.
콘트롤러(10), 입력(66)에 문자원점의 증분을 표시하는 도트 사이즈를 부여하였을때에(즉 다음의 문자에 관한 WN 코드 처리 개시에 즈음하여), 가산 회로(69)로부터 캐리가 출력되면, 입력에 부여하고 있는 버퍼 세그먼트 지정 데이타(0)가 가리키는 버퍼 세그먼트(BS0)상에서의 WN 코드 갱신 처리가 종료한 것으로 판단한다. 이 경우, 콘트롤러는 다음의 버퍼 세그먼트인 BS1를 지정하는 데이타 1을 입력(72)에 부여하고, 사상부(14)에 의한 다음의 문자(F)이후의 문자열에 관한 BS1 상에서의 WN 코드 갱신 처리를 행하게 한다. 동시에 콘트롤러(10)는 WN 코드 갱신 처리가 종료한 버퍼 세그먼트(BS0)에 기록되어 있는 WN 코드를 이용한 도장 처리 회로(18)에 의한 도장 처리를 행하게 한다. 이 도장 처리에 대하여 제10도의 플로우차트를 참조하여 이하에 설명한다.
콘트롤러(10)는 스텝(S11)에 있어서, LM(19)의 내용을 0으로 클리어 한다. 다음에, 콘트롤러(10)는 스텝(S12)에 있어서, 버퍼 세그먼트(BS0)를 지정하는 버퍼 세그먼트 지정 데이타 0을 X 어드레스 생성 회로(26)내의 레지스터(75)에 입력(74)를 통하여 세트함과 동시에, X 어드레스 생성 회로(26)내의 카운터(76)에 초기치(0)을 세트한다. 또한 콘트롤러(10)는 스텝(S12)에 있어서, 카운터(64)에 초기치 0을 세트한다. 레지스터(75)의 출력(버퍼 세그먼트 지정 데이타) 및 카운터(76)의 출력(버퍼 세그먼트 X 방향 워드 어드레스)는 연결되어서 셀렉터(28)에 공급된다. 레지스터(75) 및 카운터(76)의 출력의 연결 정보는, 도장에 쓰이는 8점분의 WN 코드로부터 된 워드 데이타의 WNPM(17)내 X 어드레스(X 방향 워드 어드레스)를 표시하고 있으며, 머신 사이클의 후반에 있어서의 셀렉터(28)에 의하여 선택된다. 이때, 카운터(64)의 출력인 상기 워드의 WNPM내 Y 어드레스가 셀렉터(27)에 의하여 선택된다.
셀렉터(27, 28)에 의하여 선택된 Y 어드레스, X 어드레스는 연결되어서 WNPM(17)에 공급되고, 8점분의 워드 데이타의 WNPM(17)내 어드레스 위치(여기서는 버퍼 세그먼트 BS0에 있어서 선두 라인의 선두 워드 위치)를 지정한다. 이에 따라 지정된 WNPM(17)내 워드 위치로부터, 라인 방향(수평 방향)의 연속한 8점분의 WN 코드(24비트)가 독출되고, DWR(47)에 래치된다(스텝 S13). 카운터(76)의 출력(버퍼 세그먼트내 X 방향 워드 어드레스)는 LM(19)의 워드 위치의 지정에도 쓰여진다. 이에 따라, 상기 스텝(S13)에서는, 지정된 LM(19)내 워드 위치로부터 라인 방향의 연속한 8점분의 참조라인 데이타(16비트)가 독출되고, PLWR(48)에 래치된다.
DWR, PLWR(48)의 각 래치 내용(8점분의 WN 코드, 참조라인 데이타)은 도장 처리 회로(49)에 공급된다. 도장 처리 회로(49)는 제10도의 스텝(14)에 있어서 DWR+PLWR로 표시하는 바와같이 DWR(47), PLWR(48)의 각 래치 내용에 대하여, 대응점 마다의 가산 연산(2진수 연산)을 8점분 병렬로 행한다.
DWR(47)의 각 점마다의 래치 내용으로서는 -3 내지 +3의 외에 ±는, 상기의 가산 연산에 있어서는 영(0)으로서 취급된다. 상기 DWR+PLWR로 표시되는 8점분의 각 가산 연산 결과는 그 점의 W 넘버를 표시하고 있다. 도장 처리 회로(49)로서 생성된 8점분의 W 넘버(16비트)는, 다음의 라인(ARU 41의 내용 +1로 표시되는 라인)의 각 대응점(동일 x 좌표의 점)의 도장시에 참조하기 위한 새로운 참조 라인 데이타로서 버스 드라이버(51)를 통하여 LM(19)에 송출하고, 카운터(76)의 출력에 의하여 진전되는 LM(19)의 원래의 워드 위치에 기록된다. 이 LM(19)는, 문자 패턴 1라인분의 도트수 이상의 용량을 갖는 고속 RAM으로 구성된다. 최대 2인치각 정도의 문자까지를 최대600DPI(도트/인치)의 분해능으로 인쇄되는 시스텝에 적용하는 경우에는, 문자패턴의 가로방향 도트수는 1200이상 있으면 되고, 이 정도 용량의 LM(19)는, 시판되는 고속 SRAM(정적 RAM)의 1칩도 실현 가능하다. 또, LM(19)를 도장 처리 회로(18)과 함께 LSI화 할 수도 있다.
도장 처리 회로(49)는, 상기 DWR+PLWR로 표시되는 각 점마다의 가산 연산 결과 또는 DWR(47)의 각 점마다의 래치 내용을 조사하고, 적어도 한쪽이 0이 아닌 점에 대하여는 흑색 표시용의 논리 1의 도장 비트 데이터를 출력하고, 어느것이나 영(0)이 되는 점에 대하여는 색표시용의 논리 0의 도장 비트 데이터를 출력한다. 즉, 이 실시예에서는, DWR(17)에 래치된 동일 라인상의 8점분의 WN 코드중, 0을 표시하지 않은 WN 코드에 대응하는 점에 대하여는, 그 코드가 ±이더라도 혹 표시용의 논리1의 도장 비트 데이타를 출력하도록 하고 있다. 따라서, 윤곽선에 대응하는 위치의 도트 출력은 반드시 1로 되고, 가는 흑색선도 굽힘이 없이 표현할 수 있다. 또, 도장 대상점에 선행하는 라인상의 동일 X 좌표 위치의 점의 W 넘버(참조 라인 데이타)가 0으로, 도장 대상점의 W 넘버가 ±의 경우, 이 도장 대상점의 W 넘버는 0이 되더라도, 도장 비트 데이타를 1로 하도록 하고 있으므로, 1도트쪽 이하로 축소된 가는 흑색 선도 지워짐이 없이 표현할 수 있다.
스텝(S14)가 종료하면, 콘트롤러(10)는 스텝(S15)에 있어서 카운터(76)을 카운트업하여, 그런후에 스텝(S16)에 있어서 카운터(76)에서 캐리가 출력되었는지 여부를 조사한다. 만약에, 카운터(76)에서 캐리가 출력되어 있지 않으면, 스텝(S13)의 처리가 다시 실행된다. 한편, 카운터(76)에서 캐리가 출려되어 있으며, 콘트롤러(10)는 스텝(S18)에 있어서 카운터(64)를 카운트업하여 라인(WNPM(17)내 Y 어드레스)과 발생하는 문자의 높이를 보충하기 위해 필요한 도트(라이트) 예컨대 발생하는 문자의 문자 구획의 높이에 상당하는 도트수(EU)와의 대소를 비교한다. 만약 카운터(64)가 가리키는 값이(EU)보다도 작은 경우에는 스텝(S13)의 처리가 다시 실행된다. 이에 대하여 카운터(64)가 가리키는 값이(EU) 이상의 경우에는, 하나의 버퍼 세그먼트(여기서는 BS0)에 기록된 문자에 관한 도장 처리는 종료한다. 만약, 다음의 버퍼 세그먼트 BS1을 대상으로 하는 WN 코드 갱신 처리가 끝나고 있으면, 세그먼트(BS1)를 대상으로 상기(BS0)의 경우와 동일수순으로 도장 처리가 행하여진다. 이상의 도장 처리에서는 다음의 버퍼 세그먼트(BS1)와의 사이에 걸치는 문자(여기서는 E)에 대하여는, 버퍼 세그먼트(BS0)내의 부분만이 처리의 대상이 되고, BS1내의 문자에 대하여는 이 BS1를 대상으로 하는 도장 처리에 있어서 처리된다. 그리고, 세그먼트(BS1)를 대상으로 하는 경우, 레지스터(75)에는 1이 세트된다.
도장 처리 회로(49)에서 출력된 8점분의 도장 데이타(8비트)는 PR(50)을 통하여 비트맵 메모리(20)에 전송된다. 이때 도장처리 회로(18)에서 BITBLT 회로(21)에는 제12도에 도시한대로, 도장 처리 회로(18)의 도장 처리를 위하여 WN 코드 꺼내는 대상으로 되어 있는 WNPM(17)내의 버퍼 세그먼트에 대응하는 비트맵 메모리(20)상의 기록 개시 위치(Ps)의 좌표, 버퍼 세그먼트(여기서는 BS0)의 X 방향 워드수에 일치하는 X 방향 피치 (EL 바이트=D/8), Y 방향 피치(EU도트)등, 도장 처리 회로(18)에 있어서 8점 단위로 생성되는 도장 패턴을 비트맵 메모리(20)에 연속적으로 기록하는데 필요한 파라미터(세트업 데이타)가, 콘트롤러(10)에 의하여 도장 처리의 개시시에 세트된다.
BITBLT 회로(21)는, 도장 처리 회로(18)로부터 8점 단위로 출력되는 도장 패턴을 상기 도장 처리 회로(18)에 있어서의 WNPM(17)내 버퍼 세그먼트에서의 WN 코드 취출과 같은 순서로, 레디 신호 RDY에 따라 라인 방향으로 X 어드레스를 하나씩 증가하면서 비트맵 메모리(20)에 차례로 기록한다. bitblt 회로(21)는, EL 바이트의 기록(라인 방향을 EL 회의 기록)을 종료하며 Y 어드레스를 하나 증가하고, 또 X 어드레스를 기록 개시때와 동일치로 복귀하여 다시 라인 방향으로 도장 패턴을 8점 단위로 기록 동작을 반복한다.
상술한 버퍼 세그먼트 BS0 내지 WN 코드에 의거한 비트맵 메모리(20)에의 도장 패턴(여기서는 문자 A 내지 E의 문자 패턴)기록 동작과 병행하여 버퍼 세그먼트 BS1을 대상으로 하는 후속 문자 열(F 내지 J)으 WN 코드 갱신 처리가 상기한 BS0를 대상으로 하는 경우와 동일하게 행해진다. 이 모양을 제11d도에 도시한다. 제11d도는 제12도의 상태와 동일 시기의 WMPM(17)의 모양을 표시한다. 제11d도에 있어서 문자 J의 파선 부분은, WN 코드 기록(갱신)이 아직 행해지지 않은 윤곽을 나타낸다. 또 도장 처리가 행하여진 부분은 제12도에 있어서 검게 도장되어 있다.
세그먼트 BS1을 대상으로 하는 WN 코드 갱신 처리에 있어서는 입력 72에 데이타 1이 주어진다. 그리고 BS1을 대상으로 하는 WN 코드 갱신 처리가 종료하면 이후는 입력(72)의 데이타가 10, 11로 차례로 바뀌어져서 BS2, BS3을 대상으로 하는 WN 코드 갱신 처리가 행하여지고 그후는 입력 72의 데이타는 다시 0이 되어 BS0를 대상으로 하는 WN 코드 갱신 처리가 행해진다. 이와같이 본 실시예에 의하면, 하나의 행의 문자열에 관한 WN 코드 갱신 처리가 행하여진다. 이와같이 이 실시예에 의하면 하나의 행의 문자열에 관한 WM 코드 갱신 처리가 WNPM 17 내지 4개의 버퍼 세그먼트 BS0 내지 BS3를 차례로 전환 사용하여 실행된다. 이것은 도장 처리에 있어서도 동일하다. 하나의 행의 처리가 종료하면, 다음 행에 대하여 상기와 같은 처리가 행해진다.
이상의 도장 처리 방식에서는 하나의 버퍼 세그먼트의 대응하는 도장 패턴의 기록에 필요한 bitblt 회로(21)에의 세트업 데이타의 설정이 1회로 되기 때문에 bitblt 회로(21)를 이용한 비트맵 메모리(20)로의 고속 전송이 가능하게 된다. 이에 대하여 단순히 도장 방향(Y방향)으로 도장 패턴의 기록을 행하는 방식에서는 EU 라인분의 1바이트쪽의 도장 패턴의 기록이 행해질때마다 다음의 1바이트쪽의 EU 라인분의 도장 패턴의 기록에 필요한 새로운 세트업 데이타를 설정하지 않으면 안되고, EL의 값이 클 경우(최대 2인치각 정도의 문자까지를 최대 600DPI의 분해능으로 인쇄할 수 있는 시스텝으로 적용할 경우에는 150이상 필요하게 된다). 고속 전송이 극히 곤란하게 된다.
여기에서 도장 처리 회로(18)의 도장에 의하여 예컨대 제16도에 도시한 바와같이 문자 패턴(일부)를 1/3로 축소한 문자 패턴을 발생시키는 경우에 대하여 설명한다. 이 경우, 최초에 상측에 상측 윤곽선에 대하여 WN 코드가 발생하는 것으로 하면, 그때의 각 점 WNPM(17)내 WN 코드의 상태는 제17a도에 도시한 바와같다. 다음에 하측의 윤곽선에 대하여 WN 코드를 발생하고 WNPM(17)내의 WN 코드의 갱신을 행할 경우에는 축소의 결과 상측 윤곽선과 하측 윤곽선이 같은 도트상에서 겹치게 되므로, 제16도에 도시하는 문자 패턴의 1/3의 축소 패턴에 관한 각점의 WN 코드의 상태는 최종적으로 제17b도에 도시한 바와같이 된다. 제17b도의 상태를 기초로 상기 도장이 행해지므로써 결과적으로 1도트폭이 되는 선(제17b도에 있어서 ±가 그려진 선)이 정확하게 발생된다.
그런데 본 실시예에서는 제18도에 있어서 WN 코드가 기록되어 있지 않은 점 P5, P6과 같이, 동점에 인접하는 상측 및 하측의 어느점도 혹이 되는 점은 상기한 사상부(14)의 동작에 명백한 바와같이 WN 코드의 갱신 대상이 되지 않으므로, WNPM(17)에 대한 불필요한 억세스가 발생하지 않는다. 또 1도트 첨예단을 가지는 문자 패턴에서는, 그점 P7이 제19도에 도시하는 바와 같이 WN 코드 ±로 명시되므로 제17a도 제17b도로 표시되는 경우와 같이 정확한 도장이 가능하게 된다.
또한 상기 실시예에서는 WNPM(17)이 4개의 버퍼 세그먼트 BS0 내지 PS3로 분할하여 사용되는 것으로 설명하였으나 4개에 한정되는 것은 아니고 복수의 버퍼 세그먼트로 분할하여 사용되는 구성으로 되어 있으면 된다. 또 사용하는 문자 사이즈에 따라 분할수를 변화시킬 수 있고, 매우 큰 사이즈의 문자의 경우에는 예컨대 최소의 분할수 2로 하는 것도 가능하다. 다만, 분할수 2의 경우에는, 하나의 문자 패턴이 2개의 버퍼 세그먼트에 걸치는 것은 허용되지 않는다. 또 상기 실시예에서는 WNPN(17)을 억세스하기 위한 어드레스를 생성하는 억세스 제어 회로(22)를 독립적으로 설치한 경우에 대하여 설명하겠으나, 예컨대 회로(22) 내의 Y 어드레스 생성 회로(25) 및 X 어드레스 생성 회로(26)를 도장 처리 회로(18)에 설치하는 것도 가능하다.
WNPM(17)의 횡폭에 대응하는 도트수 이상으로 크게 하는 것은 비교적 쉽다. 이렇게 할때 라인의 우단-좌단도 워드 경계에 놓일 수 있는 일이 많다. 그경우 bitblt 전송을 사용하지 않고 이른바 DMA 전송만으로 상기의 모든 것을 실현할 수 있다. 즉 DMA 전송은 통상 1차원 어드레싱 밖에 할 수 없으므로 도장 처리가 행하여진 EL 바이트(제12도 참조)(이것은 즉 페이지 횡폭의 1/4)의 전송마다 DMA 제어기를 콘트롤러 또는 전용 하드웨어가 재설정하도록 구성하면 된다. 또 라인의 우단, 좌단을 워드 경계에 배치해 둘 수 없는 경우에는, 예컨대 소프트웨어로 처리하도록 하여, 상기와 같이 bitblt 전송 대신에 DMA 전송을 하도록 하여도 그렇게 성능을 저하시키지 않고 처리할 수 있다.

Claims (12)

  1. 윤곽선에 의해 정의되는 문자 패턴을 고품질로 발생하기 위한 장치에 있어서, 복수의 영역으로 분할되고 각 분할 영역이 와인딩 넘버(WN)코드 데이터를 복수 문자분 격납하기 위한 코드 패턴 메모리 수단과; 입력되는 사상 개시 지시에 응답하고 점마다 결정되는 WN 코드로 상기 코드 패턴 메모리 수단의 분할 영역에 격납되어 있는 복수 문자군의 대응하는 점의 WN 코드를 갱신하면서, 패턴을 정의하는 입력되는 사이즈 변조 윤곽선군의 각각에 대하여 도장 방향과 직교하는 라인 방향의 연속한 N(N은 2이상의 양의 정수)점을 단위로 상기 코드 패턴 메모리 수단에 사상하고, 사이즈 변조 윤곽선군의 사상을 종료할때, 사상 종료 응답을 발생하기 위한 사상 수단과; 입력되는 도장 지시에 응답하여 도트 패턴을 얻기 위하여 상기 코드 패턴 메모리 수단에서 독출된 WN 코드에 따라 사이즈 변조 윤곽선군에 의하여 정의되는 영역을 도장하기 도장 하기 위한 도장 수단과; 입력되는 패턴 발생 명령에 응답하여 사상 개시 지시를 상기 사상 수단에 출력하고 상기 사상 수단으로부터의 사상 종료에 응답하여 도장 개시 지시를 상기 도장 수단에 출력하기 위한 제어 수단을 구비하는 것을 특징으로 하는 장치.
  2. 제1항에 있어서, 상기 도장 수단에 의하여 생성되는 문자 패턴을 격납하여 비트맵 메모리 수단; 상기 도장 수단에 의하여 생성되는 도장 도트 패턴을 N(N은 2이상의 양의 정수)도트 단위로 상기 비트맵 메모리 수단으로 전송하는 수단을 추가로 구비하는 것을 특징으로 하는 장치.
  3. 제1항에 있어서, 상기 코드 패턴 메모리 수단의 분할 영역에 WN 코드 데이터를 기록하기 위한 `어드레스와, 이미 WN 코드가 기록된 영역에서 WN 코드 데이타를 상기 도장 수단으로 독출하기 위한 어드레스를 병렬적으로 생성하고, 상기 코드 패턴 메모리 수단에 공급하는 수단을 추가로 구비하는 것을 특징으로 하는 장치.
  4. 최소한 1개의 선도형에 의하여 문자 패턴을 정의하기 위한 선도형 정보를 받아 상기 선도형을 구성하는 세그먼트마다에 격자와의 각 교점 또는 상기 세그먼트를 근사시켜서 구성하는 각 격자점에 대하여 그 점의 앞뒤의 세그먼트 부분의 방향의 조합으로부터, 그점에 있어서의 와인딩 넘버의 변화 상태를 판별하고, 변화없음을 표시하는 제1의 값, 1증가를 표시하는 제2의 값, 1감소를 표시하는 제3의 값, 1증가와 1감소가 중첩하여 발생하는 것을 표시하는 제4의 값의 어느 하나를 와인딩 넘버 변화수 또는 변화 상태를 표시하는 제1와인딩 넘버 코드로서 생성하는 조작을 상기 선도형 정보로 표시된 선도형의 순서로, 또 그 선도형을 따라서 가는 방향으로 실시하는 코드 생성 수단과; 상기 문자 패턴을 정의하는 선도형에 관한 각점의 상기 와인딩 넘버 변화수 또는 변화 상태를 표시하는 제2와인딩 넘버 코드를 복수 문자군 격납하기 위한 기억 영역을 구비하고, 동영역이 선두 분할 영역 및 최종 분할 영역을 포함하는 논리적으로 일정한 열의 복수의 분할 영역으로 분할해서 사용되는 제1기억 수단과; 상기 코드 생성 수단의 처리 대상이 되는 상기선도형 정보에 의하여 정의되는 문자 패턴의 문자 구획의 원점이 속하는 상기 제1기억 수단내의 상기 분할 영역을 지정하는 제1지정 수단과; 상기 문자 구획 원점에 대응하는 상기 분할 영역내 위치를 지정하는 제2지정 수단과; 상기 제1 및 제2지정 수단의 내용 및 상기 코드 생성 수단에 의하여 생성된 상기 제1와인딩 넘버 코드에 대응하는 격자점에 대응하는 상기 제1기억 수단의 상기 분할 영역 및 이 영역내 위치를 지정하는 동시에 상기 문자 구획 원점에 대응하는 상기 분할 영역내 위치 및 상기 격자점의 문자 구획내 위치에 따라 동격자점에 대응하는 상기 제1기억 수단의 상기 분할 영역과 상기 문자 구획 원점이 속하는 상기 분할 영역이 상이하다는 것을 검출한 경우에는 상기 제1지정 수단을 대신하여 상기 격자점에 대응하는 상기 제1기억 수단의 상기 분할 영역을 지정하는 제3지정 수단과; 상기 제3지정 수단에 의하여 지정되는 상기 제1기억 수단내 위치의 상기 제2와인딩 넘버 코드를 상기 코드 생성 수단에 의하여 생성된 해당 격자점의 상기 제1와인딩 넘버 코드에 따라 갱신하는 갱신 처리를 하는 갱신 수단과, 상기 제1지정 수단이 지정하는 상기 분할 영역의 절환에 따라 상기 갱신 수단에 의한 갱신 처리가 이미 완료된 상기 제1기억 수단의 상기 분할 영역에 격납된 각 격자점마다의 상기 제2와인딩 넘버 코드를 라인 방향의 연속된 N점(N는 2이상의 양의 정수)을 단위로 라인 방향으로 차례로 취출하고 이 N점분의 제2와인딩 넘버 코드에 따라 대응되는 N 격자점의 와인딩 넘버를 생성하여 N점 단위의 도장을 실행하는 조작을 라인순으로 절환하면서 실행하는 도장 수단과 ; 이 도장 수단에 의하여 생성된 N 격자점의 와인딩 넘버를 이 도장 수단에 의한 다음의 라인의 도장시에 참조되는 참조 라인 데이타로서 기억하기 위한 제2기억 수단을 구비하는 것을 특징으로 하는 고품질 문자 패턴 발생 장치.
  5. 제4항에 있어서, 상기 제3지정 수단은 현재의 상기 문자 구획 원점에 대응하는 상기 분할 영역내 위치의 라인 방향 상대 좌표 및 상기 격자점의 문자 구획내 위치의 라인 방향 상대 좌표를 가산하여, 상기 격자점의 분할 영역내 위치의 라인 방향 상대 좌표를 산출하는 제1가산 회로를 구비하는데, 이 제1가산 회로의 캐리 출력에 따라서 상기 제1지정 수단이 지정하는 상기 분할 영역 및 상기 분할 영역의 다음의 분할 영역의 어느 한쪽을 지정하는 것을 특징으로 하는 장치.
  6. 제5항에 있어서, 상기 제1가산 회로는, 상기 문자 패턴의 절환시에 현재의 상기 문자 구획 원점에 문자 구획 원점의 증분을 가산하여 다음의 문자 패턴에 대응되는 다음의 문자 구획 원점의 상기 분할 영역내 위치를 산출하도록 구성되는 것을 특징으로 하는 장치.
  7. 제6항에 있어서, 상기 제1지정 수단은 상기 문자 패턴의 절환시에 상기 제1가산 회로로부터 캐리가 출력된 경우에는 지정 분할 영역을 다음의 분할 영역으로 절환하는 것을 특징으로 하는 장치.
  8. 상기 제1지정 수단은 상기 최종 분할 영역의 다음의 분할 영역이 상기 선두 분할 영역이 되도록 관리되는 수단을 구비하는 것을 특징으로 하는 장치.
  9. 제8항에 있어서, 상기 분할 영역의 라인 방향 사이즈가 2n 워드(1워드는 N비트)이고, 그 경계가 워드 경계에 일치되는 것을 특징으로 하는 장치.
  10. 제9항에 있어서, 상기 제3지정 수단은 상기 제1지정 수단에 의하여 지정되는 상기 분할 영역을 표시하는 정보와, 상기 격자점의 분할 영역내 위치의 라인 방향 상대 좌표 산출시의 상기 제1가산 회로의 캐리 출력을 가산하고, 상기 격자점에 대응되는 상기 분할 영역을 지정하는 정보를 출력하는 제2가산 회로를 구비하는 것을 특징으로 하는 장치.
  11. 윤곽선에 의해 정의되는 문자 패턴을 고품질로 발생하기 위한 방법에 있어서, (가) 와인딩 넘버 코드 패턴 메모리를 복수의 영역으로 분할하고 분할한 복수 영역의 적어도 하나의 와인딩 넘버(wn) 코드 데이타를 복수 문자분 격납하는 단계와; (나) 상기 WN 코드 데이타가 기록되어 있는 영역외의 분할 영역으로부터 WN 코드 데이타를 독출하고 사이즈 변조 윤곽선군에 의하여 정의되는 문자 패턴의 영역을 도장하는 단계와; 그리고 (다) 상기 단계 (가)와 단계 (나)를 병렬로 행하는 단계를 포함하는 것을 특징으로 하는 방법.
  12. 제11항에 있어서, 상기 도장의 스텝에 의하여 얻어지는 문자 패턴 도트를 N(N은 2이상의 양의 정수)도트 단위로 비트맵 메모리로 전송하는 것을 특징으로 하는 방법.
KR1019900004945A 1989-04-12 1990-04-11 고품질 패턴 발생장치 및 방법 KR930011770B1 (ko)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP1092493A JPH02270019A (ja) 1989-04-12 1989-04-12 高品質文字パターン発生方式
JP01-092493 1989-04-12

Publications (2)

Publication Number Publication Date
KR900016908A KR900016908A (ko) 1990-11-14
KR930011770B1 true KR930011770B1 (ko) 1993-12-20

Family

ID=14055825

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019900004945A KR930011770B1 (ko) 1989-04-12 1990-04-11 고품질 패턴 발생장치 및 방법

Country Status (5)

Country Link
US (1) US5475809A (ko)
EP (1) EP0392499B1 (ko)
JP (1) JPH02270019A (ko)
KR (1) KR930011770B1 (ko)
DE (1) DE69020218T2 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2918632B2 (ja) * 1990-06-11 1999-07-12 キヤノン株式会社 文字処理方法及び装置
JPH064655A (ja) * 1992-06-22 1994-01-14 Nippon Telegr & Teleph Corp <Ntt> 高速画像縮小変換装置
JP3483946B2 (ja) * 1994-08-19 2004-01-06 三菱電機株式会社 フォント処理装置及びフォント処理方法
US7715642B1 (en) * 1995-06-06 2010-05-11 Hewlett-Packard Development Company, L.P. Bitmap image compressing
US6409988B1 (en) 1999-07-01 2002-06-25 3-Dimensional Pharmaceuticals, Inc. Radiolabeled 1-aryl pyrazoles, the synthesis thereof and the use thereof as pest GABA receptor ligands
US6506784B1 (en) 1999-07-01 2003-01-14 3-Dimensional Pharmaceuticals, Inc. Use of 1,3-substituted pyrazol-5-yl sulfonates as pesticides
US20090035784A1 (en) * 2004-07-30 2009-02-05 Mount Sinai School Of Medicine Of New York University Npc1l1 and npc1l1 inhibitors and methods of use thereof
CN102877194B (zh) * 2012-09-29 2014-03-05 浙江三禾纺织机械有限公司 一种储纬器花型预知的控制***及其控制方法

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4298945A (en) * 1978-05-12 1981-11-03 Eltra Corporation Character generating method and apparatus
US4853971A (en) * 1985-03-18 1989-08-01 Dainippon Screen Mfg. Co., Ltd. Method and apparatus for processing image data
US4815009A (en) * 1987-04-21 1989-03-21 Xerox Corporation Algorithm for filling an image outline
US5053759A (en) * 1988-01-30 1991-10-01 Kabushiki Kaisha Toshiba Method of and apparatus for generating high-quality pattern

Also Published As

Publication number Publication date
DE69020218D1 (de) 1995-07-27
KR900016908A (ko) 1990-11-14
US5475809A (en) 1995-12-12
JPH02270019A (ja) 1990-11-05
EP0392499A2 (en) 1990-10-17
DE69020218T2 (de) 1995-11-02
EP0392499A3 (en) 1992-08-12
EP0392499B1 (en) 1995-06-21

Similar Documents

Publication Publication Date Title
US5016001A (en) Pattern data generating system
JP3375638B2 (ja) アンチ−アライアジング装置及び目的グリッドへの水平・垂直エッジの自動高速合わせの方法
CN105184837A (zh) 一种矢量多边形栅格化的算法及***
US4847789A (en) Method for hidden line removal
EP0592770B1 (en) Method for filling of interior pixels within a polygon
KR930011770B1 (ko) 고품질 패턴 발생장치 및 방법
KR101039132B1 (ko) 2차원 벡터 그래픽 처리를 위한 라스터라이저 및 그 방법
JP2681367B2 (ja) 図形処理方法及びその装置
US5920324A (en) Character pattern producing apparatus capable of producing character pattern having connected character elements
JPH0562348B2 (ko)
JP2770582B2 (ja) 図形塗潰し装置
EP0464794A2 (en) Painting pattern generation system and pattern painting method using the system
KR920008273B1 (ko) 고품질 패턴 발생 방법 및 장치
JP3034140B2 (ja) 文字生成方法及びその装置
JP2835056B2 (ja) 高品質文字パターン発生方式
US5428719A (en) Method and apparatus for generating high-quality pattern in accordance with an edge defining a character pattern
JPH07120427B2 (ja) グラフイツクス処理システム
KR920008981B1 (ko) 고품질 문자 패턴 발생장치
KR100719480B1 (ko) 고속의 안티알리아싱 처리 방법
JP2776793B2 (ja) 画像表示方法およびその表示装置
JPS60198690A (ja) 高速図形処理方式
JPH0723997B2 (ja) 文字・図形描画装置
JP2590327B2 (ja) 図面情報の管理方法
JP3139805B2 (ja) 画像処理方法及びその装置
JP2782904B2 (ja) 多角形塗りつぶし方式

Legal Events

Date Code Title Description
A201 Request for examination
E902 Notification of reason for refusal
G160 Decision to publish patent application
E701 Decision to grant or registration of patent right
GRNT Written decision to grant
FPAY Annual fee payment

Payment date: 19971226

Year of fee payment: 6

LAPS Lapse due to unpaid annual fee