KR940001106B1 - 선폭보정방법 및 그 장치 - Google Patents

선폭보정방법 및 그 장치 Download PDF

Info

Publication number
KR940001106B1
KR940001106B1 KR1019900017939A KR900017939A KR940001106B1 KR 940001106 B1 KR940001106 B1 KR 940001106B1 KR 1019900017939 A KR1019900017939 A KR 1019900017939A KR 900017939 A KR900017939 A KR 900017939A KR 940001106 B1 KR940001106 B1 KR 940001106B1
Authority
KR
South Korea
Prior art keywords
data
character
coordinate
correction
line width
Prior art date
Application number
KR1019900017939A
Other languages
English (en)
Other versions
KR910010280A (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
Priority claimed from JP1290422A external-priority patent/JP2895529B2/ja
Priority claimed from JP2019052A external-priority patent/JPH03225394A/ja
Application filed by 가부시끼가이샤 히다찌세이사꾸쇼, 미다 가쓰시게, 가부시끼가이샤 히다찌 마이컴 시스템, 오야 유이찌로 filed Critical 가부시끼가이샤 히다찌세이사꾸쇼
Publication of KR910010280A publication Critical patent/KR910010280A/ko
Application granted granted Critical
Publication of KR940001106B1 publication Critical patent/KR940001106B1/ko

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Controls And Circuits For Display Device (AREA)

Abstract

내용 없음.

Description

선폭보정방법 및 그 장치
제1도는 본 발명의 문자발생장치를 설명하기 위한 기능 블럭도.
제2도(a),(b),(c)은 본 발명의 제1의 실시예의 보정플래그를 설명하기 위한 개략도.
제3도는 본 발명의 문자발생장치의 1실시예를 설명하기 위한 기능 블럭도.
제4도(a),(b),(c)는 본 발명의 1실시예의 구체적인 구성을 설명하기 위한 시스템 구성도, 아우트라인폰트 프로세서(25)의 블럭도, 아우트라인폰트 프로세서(25)의 동작을 설명하기 위한 타이밍도.
제5도는 제4도(a),(b)에 도시한 아우트라인폰트 프로세서(25)의 동작을 설명하기 위한 흐름도.
제6도는 본 발명의 선폭보정방법의 1실시예를 설명하기 위한 개념도.
제7도는 본 발명의 선폭보정방법의 1실시예의 선폭보정용 폰트 데이타구조를 도시한 개념도.
제8도(a),(b),(c)는 본 발명의 선폭보정방법의 1실시예의 동작을 설명하기 위한 메모리내의 데이타 구조를 도식적으로 도시한 개략도.
제9도(a),(b)는 본 발명의 선폭보정방법의 1실시예의 동작을 설명하기 위한 개략도.
제10도(a),(b),(c)는 본 발명의 선폭보정방법의 1실시예의 동작을 설명하기 위한 개략도.
제11도는 본 발명의 선폭보정방법의 1실시예의 동작을 설명하기 위한 개략도.
제12도는 본 발명의 선폭보정방법의 1실시예의 동작을 설명하기 위한 흐름도.
제13도는 본 발명의 선폭보정방법의 제2의 실시예를 설명하기 위한 개략도.
제14도는 본 발명의 선폭보정방법의 제2의 실시예에 사용되는 화소정보테이블의 구성예를 도시한 모식도.
제15도는 본 발명의 선폭보정방법의 제2의 실시예에서 문자의 윤곽좌표의 이동위치를 도시한 제1의 모식도.
제16도는 제15도의 이동위치좌표를 구하는 방법의 흐름도.
제17도는 본 발명의 선폭보정방법의 제2의 실시예에서 문자의 윤곽좌표의 이동위치를 도시한 제2의 모식도.
제18도는 제17도의 이동위치좌표를 구하는 방법의 흐름도.
제19도는 본 발명의 선폭보정방법의 제2의 실시예에서 이동거리를 설정하는 방법의 흐름도.
제20도(a),(b)는 본 발명의 선폭보정방법의 제2의 실시예에서 문자의 윤곽을 도시한 모식도.
제21도는 본 발명의 선폭보정방법의 제2의 실시예에서 문자를 빈틈없이 칠하는 대상으로서 윤곽선상의 점을 포함하지 않은 경우의 모식도.
* 도면의 주요부분에 대한 부호의 설명
1 : 문자폰트 데이타 2 : 선폭보정부
3 : 라인 또는 곡선발생부 4 : 빈틈없이 칠하는 유닛
5 : 확대축소 문자패턴 8 : 보정플래그
12 : 연산부 13 : 지정선폭 레지스터
20,21 : FIFO 25 : OFP
본 발명은 벡터형식으로 나타낸 문자의 윤곽데이타를 아핀변환에 의해 확대 또는 축소 연산한 후, 래스터 형식의 데이타로 변형해서 출력할 때의 선폭보정방법 및 그 장치에 관한 것이다.
최근 매우 세밀한 표시장치, 인쇄장치가 보급됨에 따라 벡터형식으로 나타낸 아우트라인 문자가 사용되고 있다. 이 아우트라인 문자는 문자의 윤곽을 나타내는 벡터데이타를 아핀변환 등의 변환을 주는 것에 의해 변형하고, 또 이 윤곽좌표데이타를 기본으로 윤곽내부를 빈틈없이 칠한 도트문자를 발생시키는 것에 의해 고품질의 문자를 출력한다.
이 방법에 있어서, 예를들면 비교적 작은 문자를 출력하기 위한 축소연산에서 연산 오차가 크게 되므로 축소 연산후, 문자의 품질저하를 방지하기 위해 세로 및 가로 방향의 선폭을 보정하는 처리가 필요하다. 이 선폭보정에 대해서 언급한 종래 기술로서는, 예를들면 일본국 특허 공개공보 소화62-272295호가 있다.
이 종래기술에서의 선폭보정방법에서는 1문자당의 모든 좌표변환이 종료한 후, 선폭보정을 실행하기 때문에 처리시간이 많이 걸린다는 결점이 있었다. 또, 선폭보정을 실행하기 위해서는 아핀변환된 데이타에서 선폭보정에 필요한 데이타를 추출하여 유지해 두는 것이 필요로 된다. 그 때문에 이 데이타를 축적하기 위한 비교적 큰 용량의 RAM등의 기억장치가 필요하였다. 그 때문에 또 선폭보정기능을 갖는 문자발생장치를 1개의 LSI로 하는 것은 곤란하였다.
그리고 또, 종래기술에서는 문자발생 또는 문자선폭보정시에 있어서, 사용되는 출력장치의 특성을 전혀 고려하고 있지 않으므로 같은 문자를 출력한 결과가 출력장치에 의해서 다르게 되고 만다는 문제가 있었다.
또한, 상술한 공지예 이외의 고품질의 문자발생에 대해서는, 예를들면 일본국 특허 공개공보 소화63-208898호 등이 있다.
본 발명의 목적은 선폭보정을 포함한 문자발생에 요하는 시간을 단축할 수 있는 선폭보정방법 및 그 장치를 제공하는 것이다.
본 발명의 다른 목적은 LSI화가 가능한 작은 회로규모로 선폭보정을 고속으로 실행할 수 있는 선폭보정방법 및 그 장치를 제공하는 것이다.
본 발명의 다른 목적은 각각의 출력장치의 특성을 고려해서 문자의 확대 축소시에도 고품질의 문자를 출력할 수 있는 문자보정방법 및 그 장치를 제공하는 것이다.
본 발명의 또다른 목적은 좌표변환, 선폭보정, 곡선보간등의 기능을 고속으로 실행할 수 있는 문자발생방법 및 그 장치를 제공하는 것이다.
상기 목적을 달성하기 위해 본 발명에서는 좌표변환을 실행하면서, 또는 곡선보간을 실행하면서 지정한 직선의 선폭을 지정한 선폭으로 보정하도록 한다. 좌표변환 또는 곡선보간을 실행하면서 지정한 직선의 선폭을 지정한 선폭으로 보정할때 수정되어야 할 좌표데이타에는 보정의 내용을 나타내는 보정플래그데이타가 부가된다. 그리고 이 보정플래그데이타에 따라 좌표데이타가 수정된다.
본 발명의 구성에 있어서는 좌표변환 또는 곡선보간을 실행하면서 선폭보정을 실행하는 것으로 좌표변환 또는 곡선보간된 1문자당의 데이타에서 선폭보정에 필요한 데이타를 추출하고, 이 데이타를 축적하는 대규모의 기억장치를 사용할 필요가 없다. 그 때문에 선폭보정기능을 갖는 문자발생장치 전체의 규모를 축소할 수가 있어 LSI화가 용이하게 된다. 또 보정플래그데이타에 따라 좌표데이타가 수정되는 것으로, 좌표변환된, 또는 곡선보간된 1문자당의 데이타에서 선폭보정에 필요한 데이타를 추출하는 등의 처리가 필요없게 되는 것으로 고속의 선폭보정을 실현할 수가 있다.
또, 본 발명에 있어서는 문자발생장치의 출력장치의 화소크기데이타에 따라 출력장치에 따른 선폭보정을 실행한다.
가장 적합하게는 좌표변환에 의해 축소된 문자를 얻을때 이 화소크기데이타를 사용해서 출력장치의 대략 1화소의 크기만큼 변환후의 문자의 굵기를 접게한 윤곽좌표데이타를 얻고, 이 윤곽좌표데이타에서 래스터 형식의 문자데이타를 얻는다. 즉, 본 발명에 있어서는 사용하는 특정한 출력장치의 화소크기에 따라서 문자의 굵기에 보정을 가하는 것에 의해 문자의 품질향상을 도모한다. 특히 문자를 축소할때 출력장치에 대응한 1화소만큼 문자의 굵기를 좁게한는 것에 의해 작은 문자를 출력할 때 원래의 문자보다 굵게 보인다는 문제점을 해결할 수 있다. 또한, 1화소만큼 좁게하는데는, 예를들면 문자의 대향하는 윤곽선을 각각 문자의 내부 방향으로 대략 1/2화소만큼 이동시킨다.
또한, 문자발생장치에 관해서 관련되는 본원의 출원인들의 출원으로서, 예를들면 다나까등의 "문자발생기", 1990년 1월 25일 출원한 미국특허출원 No. 07/470257이 있다.
이하 본 발명의 구성에 대해서 실시예와 함께 설명한다.
제1도는 본 발명을 적용한 문자발생장치의 블럭도이다. 또한, 본 장치는 이것에한정될 필요는 없고, 마이크로컴퓨터주변기기로서 LSI화한 단일체소자라도, 시스템화한 장치라도 좋다.
(1)은 벡터형식의 문자폰트데이타이고, (2)는 아핀변환, 곡선보간등의 좌표변환과 동시에 선폭보정을 실현하는 제어부, (3)은 라인 또는 곡선발생부, (4)는 (3)에서 발생한 윤곽문자의 내부를 빈틈없이 칠하는 유닛, (5)는 도트에 전개된 래스터 형식의 문자패턴이다.
제4도(a)에는 본 발명의 문자발생장치를 적용한 문자발생용 LSI, 아우트라인 폰트 프로세서(OFP)를 사용한 시스템구성의 1실시예를 도시한다. 시스템버스(33)은 어드레스버스(33-1), 데이타버스스(33-2), 제어버스스(33-3)으로 된다. 시스템버스(33)에는 호스트 CPU(26), 시스템메모리(27), 아우트라인 폰트메모리(28), DMA 컨트롤러(DMAC)(29), OFP(25), 페이지메모리 컨트롤러(30)이 접속되어 있다. 또, OFP(25)에는 페이지메모리 컨트롤러(30)이 접속되고, 페이지메모리 컨트롤러(30)에는 페이지메모리(31)이 접속되어 있다. 페이지메모리(31)에 프린터 또는 CRT 시스템(32)에 접속된다. 이 시스템은 주로 페이지프린터 컨트롤러나 CRT 시스템에 사용된다. 예를들면, OFP(25)는 호스트 CPU(26)에서의 신호에 의해 DMAC(29)를 거쳐서 아우트라인 폰트메모리(28)에서 아우트라인 폰트데이타인 좌표데이타를 받아, 비트맵데이타로 변환해서 페이지메모리 컨트롤러(30)를 거쳐서 페이지메모리(31)상에 라이트 한다.
제4도(b)에는 OFP(25)의 내부 블럭도가 도시되어 있다. 특히, 제한되지 않지만 동일 도면에서 실선으로 둘러싸인 각 회로블럭은 주지된 반도체집적회로 기술에 의해서 1개의 반도체칩 위에 형성되어 있다. 여기서 OFP(25)는 아핀변환블럭 및 선폭보정부(11)로 되는 블럭(16), 곡선보간블럭(17), 라인발생블럭(18), 빈틈없이 칠하는 Bit BLT(Bit Block Transfer) 블럭(19) FIFO(20),(21), 도트메모리(22), 호스트 인터페이스(23), 페이지메모리 인터페이스(24)로 구성된다. 호스트 인터페이스(23)의 내부에는 폰트입력 FIFO(15)가 있다. 내부데이타버스(14)는 시스템데이타버스(33-2)에 접속되어 있다. 또, 페이지메모리 인터페이스(24)에서는 페이지메모리 컨트롤러(30)에 접속되는 어드레스버스 PA1~PA24, 데이타버스 PD0~PD15, 제어버스(이외)가 출력된다.
이와 같이 본 실시예에서의 OFP(25)는 호스트 인터페이스, 페이지메모리 인터페이스 및 문자발생장치를 위한 블럭군의 3개로 분할구성된다. 특히 문자발생처리를 위한 블럭군은 좌표변환기능, 곡선보간기능, 라인발생기능, 빈틈없이 칠을 하는 것과 데이타전송기능의 4개의 블럭으로 분리되고, 선폭보정기능은 좌표변환블럭 또는 곡선보간블럭중에 들어간다.
또, 본 실시예에서는 아핀변환블럭(16)과 곡선보간블럭(17) 사이에 설치된 FIFO(20), 곡선보간블럭(17)과 라인발생블럭(18) 사이에 설치된 FIFO(21), 도트메모리(22) 및 내부데이타버스(14)등에 의해 다음에 상세하게 기술하는 바와 같이 4개의 기능블럭이 각각 독립적으로 동작하고, 파이프 라인처리가 가능하게 되어 있다. 또, 각 기능블럭에는 내부데이타버스(14)을 거쳐서 입력된 데이타를 그대로 출력하는 데이타전송모드도 마련되어 있다. 이 데이타전송모드의 설정을 실행하는데는 사용자가 각 기능블럭마다 마련된 모드 레지스터에 동작모드를 설정한다.
다음에 OFP(25)의 동작에 대해서 설명한다. 아우트라인 폰트메모리(28)에서 리드한 좌표데이타는 호스트 인터페이스(23)내의 폰트입력 FIFO에 일시적으로 저장된다. 아핀변환블럭(16)의 동작에는 아핀변환모드와 전송모드가 있고, 아핀변환모드는 제5도에 도시한 처리흐름을 갖는다. 아핀변환블럭(16)은 폰트입력 FIFO(15)에서 순차로 좌표데이타(x,y)을 리드하여 다음의 식(1)로 나타내는 아핀변환을 실행한다.
[수학식 1]
x'=ax+by+e
y'=cx+by+f …………………………………………(1)
(여기서 a,b,c,d는 아핀매트릭스데이타 정수 e,f는 정수)
이 아핀매트릭스데이타 정수 a,b,c,d 및 정수 e,f는 미리 계산하여 아핀변환블럭내의 정수 레지스터군(도시하지 않음)에 설정되어 있다.
제5도에 도시한 바와 같이 아핀변환블럭(16)에서는 폰트입력 FIFO(15)에서의 데이타가 좌표데이타인가 플래그데이타(다음에 설명하는 선폭보정플래그를 포함)인가를 판별한다(스텝 51). 문자 폰트데이타 즉 벡터 형식으로 나타낸 문자의 윤곽데이타는 좌표데이타나 보정플래그나 개시, 종료플래그등의 플래그데이타로 된다.
좌표데이타(x,y)에 대해서는 식(1)에 나타낸 아핀변환을 실행하고, 좌표데이타(x',y')를 출력한다(스텝 52). 이어서 아핀변환된 좌표데이타(x',y')가 1문자를 구성하는 좌표데이타의 루프의 1번째의 좌표데이타인가 아닌가를 판정한다(스텝 53). 여기서 루프라 함은 다음에 설명되는 제6도에 도시되어 있다.
1번째의 좌표데이타의 경우는 라인용 어드레스 계산을 실행한다(스텝 54). 각 스텝에서 각각 플래그데이타, 좌표데이타가 FIFO(20)에 라이트된다. 한편, 전송모드에서는 제5도중의 아핀변환 스텝 52가 없고, 입력된 좌표데이타(x,y)가 1문자를 구성하는 좌표데이타의 루프의 1번째의 좌표데이타의 경우 마찬가지로 라인용 어드레스 계산을 실행한다.
그런데 라인용 어드레스 계산이라 함은 라인발생블럭(18)이 좌표데이타를 받아, 좌표점 사이를 도트영상으로 라인인 발생할때 1문자를 구성하는 좌표데이타의 각 루프의 1번째의 좌표데이타가 저장되는 도트메모리의 어드레스를 아핀변환블럭(16)이 계산하는 것이다. 2번째 이후의 좌표데이타에서느 라인발생블럭(18)이 어드레스 관리를 실행한다.
또한 본 실시예에서 아핀변환블럭(16)은 선폭보정을 실행하기 위해 지정된 좌표데이타(x',y')에 대해서 수정을 실행하고, 수정된 좌표데이타(x',y')를 FIFO(20)에 출력한다. 이 선폭보정기능에 대해서는 다음에 상세히 기술한다. 또, 앞서도 기술한 바와 같이 이 선폭보정기능은 곡선보간블럭(17)에 있어도 좋다.
곡선보간블럭(17)은 FIFO(20)에 일시적으로 저장된 좌표데이타(x',y') 또는 (x",y")를 리드하고, 곡선데이타의 경우는 곡선을 나타내는 새로운 좌표데이타를 발생해서 FIFO(21)에 출력한다. 이 곡선보간블럭(17)에서는 베찌에르(Bezier) 곡선보간방법등의 일반적인 방법으로 4개의 좌표를 사용해서 원활한 곡선으로 되는 보간데이타를 발생한다.
라인발생블럭(18)은 FIFO(21)에 일시적으로 저장된 좌표데이타를 리드하여 좌표점 사이를 도트영상으로 라인을 발생하고, 문자의 윤곽을 만들어 비트맵데이타로서 도트메모리(22)에 라이트 한다. 이 라인발생의 방법으로서는, 예를들면 널리 알려진 브레젠함의 알고 리듬을 사용한다.
빈틈없이 칠하는 Bit BLT 블럭(19)는 도트메모리(22)에서 1문자마다 윤곽을 나타내는 비트맵데이타를 리드하여 윤곽내를 빈틈없이 칠하고, 페이지메모리 인터페이스(24)를 경유해서 페이지메모리(31)상에 비트맵데이타를 블럭전송하면서 라이트한다.
그런데 선폭보정기능을 설명하기 전에 제4도(b)에 도시한 문자발생처리에 대한 각 기능블럭의 파이프라인화에 대해서 설명한다. 이상은 설명에서 알 수 있는 바와 같이 각 기능블럭(16) 내지 (19)는 각각의 데이타를 주고받기 위해서 FIFO(20),(21) 또는 도트메모리(22)를 내장하고 있으므로 필요한 데이타가 FIFO(20),(21) 또는 도트메모리(22)내에 준비되어 있으면 각각 독립으로 동작할 수가 있다.
상기 OFP(25)에 의해 파이프라인처리로 문자열 "ABC"를 출력하는 처리를 제4도(c)를 사용해서 설명한다. 제4도(c)에서 장방형은 각 기능블럭이 동작하고 있는 시간을 나타낸다. 또한, 설명은 간단하게 하기 위해서 1문자 처리에 요하는 시간은 어느 기능블럭에서도 단위시간 T가 걸리는 것으로 한다. 종래의 문자발생장치에서는 각 기능블럭은 전단의 기능블럭의 처리가 종료한 후가 아니면 동작할 수가 없었기 때문에 12T의 처리시간이 걸리고 있었다. 본 실시예의 문자발생장치를 사용하면 전단위 기능블럭에서 차단에 필요한 데이타가 처리됨과 동시에 차단의 블럭의 처리가 개시된다. 차단에서 필요한 데이타라 함은 예를들면 곡선보간블럭(17)의 경우에는 1곡선을 나타내는 4좌표분의 데이타 또는 곡선 이외의 데이타(플래그데이타 및 직선데이타)에서는 1워드분이다. 또, 라인발생블럭(18)의 경우에는 1라인을 나타내는 2좌표분의 데이타이다. 단, 빈틈없이 칠하는 Bit BLT 블럭(19)는 라인발생블럭(18)이 1문자분의 모든 데이타를 처리한다. 따라서 문자열 "ABC"를 출력하는데 요하는 시간은 4T로 되어 종래의 문자발생장치의 3배의 처리성능이 얻어진다.
다음에 OFP(25)를 사용해서 문자보정을 실행하는 경우에 대해서 차례로 설명한다. 앞서 기술한 바와 같이 각 기능블럭(16),(17),(18),(19)는 본래의 기능 이외에 입력데이타를 가공하지 않고 그대로 출력하는 전송모드를 갖는다. 이들 각 기능블럭의 모드의 조합에 의해 여러가지의 문자보정을 취할 수 있다. 가장 기본적인 보정은 다음에 기술하는 바와 같이 아핀변환처리에 이어서 선폭보정부(11)에서 선폭보정을 실행하는 경우이다.
또, 사용자가 아핀변환블럭(16)만을 기동하고, 다른 3블럭을 전송모드에 설정한 경우를 생각한다. 이 경우 OFP(25)의 동작이 종료한 단계에서 페이지메모리 인터페이스(24)에 접속된 메모리상에는 아핀변환만 실행된 문자데이타가 출력된다. 사용자는 이 데이타를 사용해서 사용자의 독자적인 문자보정방법으로 문자데이타를 가공할 수도 있다.
계속해서 본 발명에 관한 선폭보정기능에 대해서 설명한다. 선폭보정이라 함은 문자의 수평선 및 수직선의 폭을 지정된 도트폭으로 보정하는 것이다. 선폭보정은 상술한 아핀변환모드 및 전송모드의 양쪽에 대해서 실행한다. 선폭보정은 보정플래그가 붙은 좌표데이타를 보정플래그의 정보에 따라 보정한다.
제2도(a),(b)는 문자폰트데이타를 도시한 것이다. 제2도(a)는 좌표데이타만의 데이타이고, 제2도(b)는 본 발명에 관한 보정플래그(8)을 부여한 데이타이다. 제2(c)에는 보정플래그(8)의 상세한 것을 도시한다. 제2도(c)에서 보정플래그(8)의 0비트 내지 7비트는 보정플래그의 번호로서, 이 번호는 문자를 구성하는 수평선의 번호에 대응한다. 8,9비트는 해당하는 좌표데이타가 다음에 설명하는 기준점, 수정점 또는 치환점을 나타내고 있다. 또 10 내지 15비트에 대해서는 각각 제2도(c)에 설명한 대로이다.
제3도는 제4도(b)의 선폭보정부(11)의 설명을 하기 위한 기능블럭이다. FIFO(20)에는 보정플래그(8)중의 번호(0~n)과 보정플래그(8)이 부가된 좌표데이타를 축적한다. (12)는 보정플래그의 정보에 따라 보정플래그가 부가된 좌표데이타를 수정하는 연산부이다. 지정선폭 레지스터(13)에는 선폭을 임의의 값으로 설정하기 위한 지정선폭을 세트한다.
다음에 제3도에 도시한 지정선폭 레지스터(13)을 사용한 선폭보정방법을 구체적인 사례를 들어서 상세히 기술한다.
제6도는 한자의 "日" 또는 숫자의 "8"이라는 문자를 예로해서 아우트라인 폰트를 모식적으로 작성한 도면이다. 실제로는 곡선등이 포함하고 있지만 여기서는 수평선 및 수직선으로 구성한다. 이 예에서는 3개의 수평선과 2개의 수직선으로 구성되어 있다. 설명을 간략화하기 위해 수평선만을 선폭수정하는 것으로 한다. 좌표데이타(x0,y0)~(x14,y14)는 아핀변환후의 좌표데이타이다. 수평선에는 번호,①,②를 부가한다. 이 번호는 앞서 설명한 바와 같이 제2도(c)의 보정플래그의 번호(1~n)으로 된다. 본 실시예에서는 이들 수평선을 모두 2도트로 되도록 선폭보정을 실행하는 것으로 한다.
선폭보정방법으로서 제9도(a)에 도시한 바와 같이 좌표점(xn,yn)의 수정은 다음의 좌표점(xn+1,yn+1)로 향해서 즉 벡터방향에 대해서 수직방향에만 실행하는 것으로 한다. 또, 제9도(b)에 도시한 바와 같이 수정된 좌표점(xn,yn)에서 다음의 좌표점(xn+1,yn+1)로 처리가 이행한 경우 수정된 좌표값이 계승된다. 즉, 좌표점(xn,yn)에서 yn이 yn"로 수정된 경우 다음의 좌표점(xn+1,yn+1)의 yn+1은 yn"가 그대로 계승되어서 yn"로 된다.
여기서 좌표점의 수정에는 수정과 수정된 좌표값을 보존해두고, 새로운 좌표점의 수정시에 보존해둔 좌표값으로 치환하는 치환이 있다. 제2도(c)의 8,9비트는 이 수정점, 치환점을 나타낸다. 제11도에 도시한 바와 같이 수평선 또는 수직선이 여러개의 좌표점으로 구성되어 있을 경우는 수정점과 치환점이 발생한다. 이것은 같은 수정처리를 반복하지 않기 위함이다.
제12도에 이상 기술한 선폭보정방법의 흐름도를 도시한다. 동일도면에서 선폭보정은 폰트입력 FIFO(15)문자폰트데이타를 리드하는 것으로 개시한다(스텝 120). 스텝 121에서 해당 데이타가 확장 식별자(제2도(c)의 12~15비트)에 의해서 선폭보정데이타인가 아닌가가 판별되고, YES인 경우 내용이 리드된다(스텝 122). 그리고 8,9비트의 데이타에 의해 기준점, 수정점, 치환점이 판별된다(스텝 123). 이 판정 결과에 따라 스텝 124,125,126에서 각각 기준점 처리, 수정점 처리, 치환점 처리가 실행된다.
스텝 124에서는 보정플래그의 0~7비트중의 번호를 번지로 해서 FIFO(20)에 보정의 대상으로 되는 좌표성분을 라이트한다. 또, 스텝 125에서는 보정플래그의 0~7비트중의 번호를 번지로 한 FIFO(20)의 데이타에 대하여 기준선폭 xC 또는 yC 분만 수정을 실행하여 FIFO(20)의 동일 번지로 되돌린다. 스텝 126에서는 보정의 대상으로 되는 좌표성분을 보정플래그중의 번호를 번지로 하는 FIFO(20)의 데이타로 치환한다. 스텝 124~126의 종료후는 계승스텝으로 이행하고, 1개전의 좌표의 x성분이 수정 또는 치환되어 있는 경우 그 좌표의 x성분이 보정의 대상으로 되는 좌표의 x성분이 계승된다. y성분에서도 마찬가지이다.
이상의 방법에 따라서 모든 수평선의 선폭을 지정선폭 레지스터(13)에 설정된 값(다음에서는 2비트로 설명한다)으로 하는 선폭보정을 실행하기 위해 보정플래그(8)을 부여한 데이타를 제6도의 루프 1, 루프 2, 루프 3의 순으로 가공한다. 수평선을 구성하는 좌표데이타라 함은 예를들면 수평선에서는 (x0,y0),(x1,y1),(x4,y4),(x5,y5), (x8,y8),(x9,y9)이고, 최초에 나타난 데이타가 기준점으로 된다.
즉, (x0,y0)이 기준점으로 되며, 다음의 데이타(x1,y1)로 향하는 선분이 기준선으로 되고, 이 선분의 벡터방향이 좌표축에 대해서 정방향이면 제2도(c)의 비트 11이, 0, 부의 방향이면 비트 11이 1로 된다. 이 방향은 수정점이 기준선에 대해서 어느쪽에 있는가를 판정하는데 사용된다. 이상의 처리를 실행한 후 좌표데이타(x0,y0)에는 제7도의 최상단에 도시한 보정플래그를 부가한다. 제6도의 (x1,y1)은 x축 방향으로 수정되는 것으로 이 수평선만의 선폭보정의 경우 어떠한 속성도 갖지 않는다(제7도 참조).
(x2,y2)는 수평선 ①의 기준선으로 된다. (x2,y2)에 대한 보정플래그는 기준선의 벡터방향이 부이므로 비트 11이 "1"로 된다. (x3,y3)은 (x1,y1)과 마찬가지로 속성을 갖지 않는다. (x4,y4)는 기준점(x0,y0)과 동일하며, 또한 기준점은 부동이므로 속성을 갖지 않는다.
다음에 같은 수평선에 대해서 2번째로 나타난 데이타(x8,y8)이 수정점으로 된다. (x5,y5)는 x축 방향으로 수정되는 점이므로 2번째로 나타나는 데이타는 아니다. 또 이 예에서는 나타나지 않지만 3번째 이후에 나타나는 데이타는 치환점으로 된다.
마찬가지로 해서 모든 좌표데이타에 대해서 관찰하면 수평선 ①에 대하여 (x11,y11)이 수정점으로 된다. 수평선 ②에 대해서는 (x6,y6)이 기준점으로 되고, (x13,y13)이 수정점으로 된다.
이상의 설명에서 선폭보정은 수평선만의 경우를 고려하였지만, 마찬가지로 해서 수직선에 대해서도 좌표데이타에 속성을 부가하면 수평, 수직선을 동시에 선폭보정할 수 있다. 이때 1개의 좌표데이타에는 수평선 선폭보정이나 수직선 선폭보정중 어느 한쪽의 속성밖에 부가되지 않는다.
제7도는 제6도의 좌표데이타에 대해서 속성을 갖는 좌표데이타에 그 속성을 보정플래그로 세트해서 부여한 선폭보정용 폰트데이타 구조이다. 여기서 800116은 루프 개시플래그, 800416은 1문자 종료플래그이다. 선폭보정부(11)은 이 선폭보정용 폰트데이타를 순차로 리드하면서 보정플래그에 따라 선폭보정을 실행한다.
제8도(a),(b),(c)는 제3도에 도시한 FIFO(20)에 저장되는 보정플래그의 번호와 그 좌표데이타를 나타내고 있다. 제8도(a)는 (x0,y0)에서 (x6,y6)까지 처리된 시점의 FIFO(20)의 상태이며, 보정플래그의 번호에 해당하는 기준점의 좌표값이 라이트 되어 있다. 이것은 보정플래그의 8,9비트의 내용이 "0"(기준점)에 따라서 처리된다. 제8도(b)는 (x8,y8)이 처리된 시점의 FIFO(20)의 상태이며, 보정플래그의 번호 및 8,9비트의 내용이 "1"(수정점), 10비트의 내용이 "1"(y좌표를 수정,치환) 11비트의 내용이 "0"(기준선 방향이 정)에 따라 번호번지의 y0이 y8"로 리라이트 된다. 여기서 기준점의 y0이 소거되지만 이것은 수정후 불필요하게 되며, 또 같은 번호의 치환점의 처리시에는리라이트된 y8"가 사용되기 때문이다. 제8도(c)는 모든 좌표데이타가 처리되었을때의 FIFO(20)의 상태이다.
FIFO(20)의 용량은 x,y의 수정점의 합계의 1/2로 되는 것을 알 수 있다. 이 예에서는 선폭보정이 되기 전부터 수평선및 ①은 2도트폭인 것으로 제6도에서 알 수 있는 바와 같이 y8"=y8,y11"=y11이다. 또, (x14,y14)에서는 앞의 수정점(x13,y13")의 y13"가 계승되어 y14"=y13"로 된다.
제10도(a),(b),(c)는 상술한 실시예의 선폭보정방법에 있어서, 제3도 및 제4도의 FIFO(20),(21)에 좌표데이타가 출력되는 순서를 도시한 것이다. 제10도(a)는 선폭보정을 실행하고, 입력된 좌표데이타 p1과 같은 순번으로 출력한다. 이때 좌표데이타 p1이 불필요한 데이타로서 남는 경우가 있다. 그래서 제10도(b)에 도시한 바와 같이 루프의 개시가 직선으로 시작하는 경우에는 좌표데이타 p1을 출력하지 않고, 좌표데이타 p2부터 출력하여 끝으로 좌표데이타 p6(=p2)을 출력하고, p2가 시점, 새로 p6을 종점으로 한다. 제10도(c)에 도시한 바와 같은 루프의 개시가 곡선발생용 제어데이타로 분리할 수 없는 일련의 데이타인 경우에는 좌표데이타 p1,p2,p3을 출력하지 않고, 좌표데이타 p4부터 출력하여 끝으로 좌표데이타 p2,p3,p9(=p4)를 출력하고, 좌표데이타 p4가 시점으로 되어 새로 p9가 종점으로 된다. 이것에 의해 품질이 양호한 루프가 발생한다.
이상 설명한 실시예의 문자발생장치에서는 선폭보정에 소비하고 있던 시간을 아핀변환 또는 곡선보간과 동시에 실행할 수 있으므로 처리시간의 단축이 가능하게 된다. 또, 수정점을 모두 메모리상에 축적할 필요가 없으므로 큰 메모리용량의 삭감이 가능하게 된다.
다음에 본 발명의 제2의 실시예에 대해서 설명한다. 제4도(a)에 도시한 출력장치(32)는 프린터나 CRT 시스템등 여러가지의 출력장치가 있지만, 출력장치의 특성을 전혀 고려하지 않으면, 같은 문자를 출력한 결과 출력이 다르게 된다. 이 출력이 다른 원인은 출력장치마다 출력의 기본단위인 1화소의 크기마다 출력의 기본단위인 1화소의 크기가 다르기 때문이다. 즉, 같은 해상도의 출력장치라도 1화소의 크기가 큰 출력장치에서는 문자가 굵게 보이며, 작은 출력장치에서는 문자가 가늘게 보인다. 그래서 본 실시예에서는 각 출력장치에 대해서의 1화소 크기데이타를 사용해서 출력장치에 따른 선폭보정을 자동적으로 실행한다. 특히 본 실시예의 특징은 아핀변환블럭에 있어서 축소문자를 얻는 변환을 실행하였을때 선폭보정부에서 출력장치의 대략 1화소의 크기만큼 문자의 굵기를 자동적으로 좁게 하는 처리를 실행하는 것이다. 본 실시예의 적합한 구성에 있어서는 변환후의 문자데이타를 출력하도록 지정된 장치의 1호소의 크기의 정보를 기억해 놓고, 이 기억된 정보를 기본으로 변환후의 문자의 선폭을 제13도에 도시한 바와 같이 소정의 값을 좁게하도록 선폭보정부를 구성한다. 이 선폭보정부는 문자의 대향하는 윤곽선을 각각 문자의 내부방향으로 대략 1/2화소만큼 이동시키도록 윤곽좌표데이타를 변경한다.
본 실시예의 시스템 구성은 제4도(a)에 도시한 것과 마찬가지이다. 발생된 비트맵데이타는 프린터 또는 CRT 시스템등의 출력장치(32)로 출력된다. 이 출력장치(32)의 1호소의 크기를 입력하는데는 다음과 같이 실행한다.
먼저, 1화소의 크기를 입력하는 제1의 방법은 이용자가 갖는 정보를 호스트 CPU(26)쪽에서 입력하는 방법이다. 즉, OFP(25)의 이용자가 출력장치(32)의 특성을 인식하여 화소크기를 입력한다. 제2의 방법은 시스템중에 제14도에 도시한 화소정보테이블(143)을 마련하는 방법이다. 제14도에서, 화소크기데이타(142)는 각 출력장치번호(141)에 대응해서 1화소의 수학적인 1좌표에 대한 크기를 나타낸다. 즉, 잉크의 번짐등이 클수록 화소크기데이타는 크게 된다. 몇종류의 출력장치중 어느 하나에 문자를 출력하는 경우 미리 각 출력장치의 출력장치번호(141)과 대응하는 화소크기데이타(142)를 화소정보테이블(143)에 마련해 둔다. 이것에 의해 OFP(25)는 선택된 출력장치에 따라서 화소크기를 화소정보테이블(143)에서 취득한다.
OFP(25)에서는 제4도(b)에 도시한 바와 같이 아핀변환블럭(16)이 문자축소의 문자형상변환을 실행한다. 그리고 선폭보정부(11)에서는 상술한 화소크기데이타를 기본으로 변환후 문자의 선폭보정을 실행한다. 선폭보정부(11)의 동작은 다음의 2개의 동작흐름으로 된다. 먼저, 첫째는 출력장치(32)의 화소크기데이타에 따라서 윤곽선의 법선방향으로 1/2화소만큼 윤곽선을 이동시키는 것에 의해 가는 문자를 출력시키는 방법이고, 둘째는 윤곽선의 경사에 의해 x,y중 어느 한쪽의 방향 또는 양쪽으로 좌표데이타를 이동시키는 것에 의해 가는 문자를 발생시키는 방법이다.
먼저, 제15도에 따라 첫째 방법에 대해서 설명한다. 출력장치(32)의 1화소가 반경 p의 원으로서, 문자를 구성하는 윤곽좌표(151)(x1,y1)을 윤곽선의 법선방향으로 1/2화소만큼 이동한 점(152)의 좌표를 (x1',y1')로 해서 새로운 문자윤곽정보로 하는 방법을 생각한다. 이때 제15도에 도시한 바와 같이 이동대상의 윤곽점의 앞의 점(153)의 좌표를 (x0,y0), 다음의 점(154)의 좌표를 (x2,y2)로 한다. 또, 이하 문자의 윤곽선의 방향에 대해서 문자의 굵기를 나타내는 방향은 반듯이 좌측에 있는 것으로 한다. 이 "좌측"자체에 특히 의미가 있는 뜻은 아니고, 좌측이던가 우측중 어느 한쪽에 고정하는 것에 의미가 있다.
이동후의 점의 좌표(x1',y1')를 구할때의 동작흐름도를 제16도에 도시한다.
먼저, (x0,y0)-(x1,y1)로 정해지는 직선에 대하여 법선방향으로 1/2화소만큼 이동시킨 직선(155)의 방정식을 구한다(스텝 161). 이 직선의 방정식은
이다.
다음에 (x1,y1)-(x2,y2)로 정해지는 직선에 대하여 법선방향으로 1/2화소만큼 이동시킨 직선(156)의 방정식을 구한다(스텝 162). 이것도 마찬가지로
이다.
또, 스텝 161 및 162에서 구한 2직선의 교점좌표를 구하여(스텝 163). 이 교점좌표(152)를 이동점(x1',y1')로 한다(스텝 164). 교점좌표는 2개의 연립방정식의 해답으로서 구해진다.
이상과 같은 동작을 문자로 구성하는 모든 윤곽좌표데이타에 실시하는 것에 의해 좌표점을 문자의 안쪽으로 이동할 수가 있다.
다음에 제17도에 따라 둘째방법에 대해서 설명한다. 이 방법에서는 윤곽선의 경사로 이동방향을 결정한다.
제17도에서 3개의 점으로 구성되는 2개의 선분(171),(172)의 경사를 정하는 끝점의 x방향, y방향의 편차를 각각
x0=x1-x0
y0=y1-y0
x1=x2-x1
y1=y2-y1
로 하고, 출력장치(32)의 1화소가 2px×2py의 장방향으로 한다. 이때 문자의 윤곽점(173)의 좌표(x1,y1)의 좌표이동위치(174)의 좌표(x1',y1')을 구하는 동작흐름을 제18도에 도시한다. 2개의 선분의 x방향의 편차x0 및x1이 모두 정방향이었던 경우에는(스텝 181). y1을 정의방향으로 py만큼 이동시킨다(스텝 182). 그렇지 않고 2개의 선분의 상기 편차가 모두 부였던 경우에는(스텝 183). y1을 부의방향으로 py만큼 이동시킨다(스텝 184).
또, 2개의 선분의 y방향의 편차y0 및y1이 모두 정방향이었던 경우에는(스텝 185). x1을 부의방향으로 px만큼 이동시킨다(스텝 186). 그렇지 않고 2개의 선분의 상기 편차가 모두 부였던 경우에는(스텝 187). x1을 정의방향으로 px만큼 이동시킨다(스텝 188). 이 동작에 의해 가상적으로 출력장치의 화소크기만큼 안쪽으로 좌표점을 이동시킬 수가 있다.
이상 기술한 바와 같이 장방형의 화소를 갖는 출력장치에서 문자를 90°회전시켜서 출력하는 경우에는 px와 py와 값을 미리 교환해 두고 마찬가지의 조작을 실행한다.
또, 출력장치의 1화소가 원형이었던 경우에는 윤곽선의 경사에 의해 이동량을 변화시키는 방법을 생각할 수 있다. 출력장치의 1화소가 변경 p의 원이었던 경우의 동작흐름을 제19도에 도시한다.
문자의 구성선으로서 다수 사용되고 있는 수평선 및 수직선의 이동량은 1/2화소분에 해당하는 p로 하고, 사선부는 평균 45로 간주하여로 한 경우의 동작흐름이다.
선분(171),(172)중 어느 하나가 수평선이라고 판단된 경우에는(스텝 191), y방향의 이동량을 p로 하고(스텝 192), 그렇지 않는 경우에는로 한다(스텝 193). 또, 선분(171),(172)중 어느 하나가 수직선이라고 판단된 경우에는(스텝 194), x방향의 이동량을 p로 하고(스텝 195), 그렇지 않는 경우에는로 한다(스텝 196).
이와 같이 해서 설정된 이동값에 따라 앞서 제18도에 도시한 동작을 실행하는 것에 의해 윤곽좌표의 이동이 실현된다.
이상 기술한 바와 같은 좌표 이동을 실행 했을때 이동전의 좌표의 윤곽선 전후 좌표에서의 상대위치관계와 이동후 좌표의 윤곽선 전후 좌표에서의 상대위치관계가 같지 않는 경우에는 이동전 좌표를 이동후 좌표로서 출력하도록 한다.
상술한 본 발명의 제2실시예의 변형예에 대해서 설명한다. 본 변형에서는 도트문자로 변환할때 윤곽선상의 점을 문자의 바깥쪽으로 판정하는 것에 의해 가는 문자를 발생한다.
제20도(a),(b)에 윤곽의 발생예를 도시한다.
종래의 직선 발생방법에서는 소수점 이하를 반올림한는 것에 의해 윤곽선을 통과하는 점을 윤곽선으로서 발생하고 있지만, 본 실시예에서는 제20도(a)에 도시한 바와 같이 윤곽선의 진행방향 좌측(선분 내부)이 빈틈없이 칠하는 방향(도면의 예에서는 y방향)의 부쪽인 경우에 좌표데이타를 계산할때 x,y데이타의 소수점 이하를 잘라 버리는 조작을 실행하여(201)로 나타낸 바와 같은 윤곽선을 발생시킨다. 역으로 선분의 진행방향의 좌측이 빈틈없이 칠하는 방향의 정의쪽인 경우에는 역으로 소수점 이하를 잘라 올리는 조작을 실행한다. 이것에 의해서 문자의 굵기를 정하는 대향 윤곽선이 서로 접근하게 된다. 이 윤곽선의 내부를 빈틈없이 칠하는 것에 의해 가는 문자가 발생한다.
또, 제20도(b)의 (202)와 같이 선분의 진행방향 좌측이 빈틈없이 칠하는 방향의 부쪽인 경우에 역으로 좌표데이타의 소수점 이하를 잘라 올리는 조작을 실행하면(정의쪽인 경우에는 잘라 버리는 조작을 실행) 굵은 문자를 발생시킬 수가 있다.
또한, 이 잘라 올림, 잘라 버림의 처리는 문자의 굵기를 결정하는 대향 윤곽선의 한쪽에만 적용하고, 다른쪽의 윤곽선은 종래대로 반올림을 실행하는 방법으로 할 수도 있다.
다음에 윤곽선상의 점을 문자의 바깥쪽으로 해서 그 점을 빈틈없이 칠하는 대상으로 하지않는 구체적인 방법을 제21도에 따라 설명한다.
먼저, 윤곽선상의 점을 정확하게 계산하여 소수점 좌표로 그 위치좌표를 저장한다. 이 위치좌표는 빈틈없이 칠하는 방법에 대해서 일정한 방향의 좌표, 예를들면 빈틈없이 칠하는 방향이 x방향이면 y방향, 빈틈없이 칠하는 방향이 y방향이면 x방향의 좌표의 소수점 이하를 0으로 해서 다른쪽의 좌표(소수점 좌표)를 산출한다. 도면의 예에서는 소수점 이하가 0인 y좌표에 대해서 1개의 x좌표가 대응하도록 산출하고 있다. 예를들면, y좌표가 yn이었을때의 x좌표를 소수점 좌표로 저장하는 경우 1문자분의 윤곽정보를 산출하여 그 x좌표를 대응하는 y좌표마다 저장해 간다.
이 1문자분의 윤곽정보가 제21도에 "ㆍ"으로 나타낸 정보였을때 yn라인상을 빈틈없이 칠한 경우를 생각한다. yn라인상을 x가 작은쪽부터 탐색하여 최소에 발견된 윤곽점을 빈틈없이 칠하는 개시점으로 한다. 다시 탐색을 계속해서 다음에 발견된 윤곽점을 빈틈없이 칠하는 종료점으로 한다. 이때 상기 개시점은 저장되어 있던 좌표데이타의 소수점 이하를 잘라 올리고, 종료점을 잘라 버린다.
이와 같이 해서 윤곽점을 정수화한 후 그 사이에 존재하는 점은 문자의 내부로서 출력한다.
또한, 굵은 문자를 출력할 때는 역으로 개시점좌표를 잘라버리고, 종료점좌표를 잘라올리는 것에 의해 윤곽선상의 점을 빈틈없이 칠하는 대상으로 하도록 하면 된다.
본 실시예에 의하면 소수점 이하의 버림과 올림을 판단하여 실행하는 것만으로 간단하게 고품질의 문자, 굵기를 강조한 문자가 함께 출력되어 소프트 웨어 규모의 경감을 도모할 수가 있다.
또, 고품질 문자에서는 레이저빔 프린더(LBP)등의 출력에 가장 적합하지만, 이와 같이 해서 출력된 문자를 포함하는 문서를 복사하면 문자가 가느므로 인쇄문자의 품질이 저하된다는 문제가 있지만 본 실시예는 이 문제를 해결할 수가 있다. 즉, LBP용의 고품질 문자의 발생 및 복사용의 문자의 발생을 용이하게 실행할 수가 있다.
다음에 이상 기술한 선폭보정방법을 사용한 문서인쇄장치의 1예를 기술한다. 제4도(a)의 출력장치(32)가 프린터라고 한다.
이 문서인쇄장치를 이용할때, 먼저 사용자는 호스트 CPU(26)을 사용해서 "통상인쇄"인가 "복사용 인쇄"인가를 선택한다. "통상인쇄"가 선택된 경우 OFP(25)는 윤곽선상의 점을 문자의 바깥쪽으로 인식해서 발생한 문자를 페이지메모리(31)상에 발생시킨다. "복사용 인쇄"가 선택된 경우 윤곽선상의 점을 문자의 아쪽으로 인식해서 발생한 굵은 문자를 페이지메모리(31)상에 발생시킨다. 이렇게 해서 발생한 문서데이타는 프린터(32)로 전송되어 인쇄된다.
이것에 의해 인쇄장치의 고정밀화에 따라서 인쇄문서를 복사할 때 가는 문자가 소실해서 품질이 저하한다는 문제를 해결할 수 있다.
이상 상세히 기술한 본 발명의 제2의 실시예에 의하면 특정한 출력장치의 특성에 따른 굵기의 문자를 출력할 수 있으므로 문자품질의 향상을 도모할 수 있다.
출력장치의 화소크기를 입력하는 수단을 갖는 것에 의해 여러가지의 출력장치에 대응할 수가 있다.
출력장치의 화소크기를 유지하고, 출력장치를 한정하는 수단을 갖는 것에 의해 이용자가 번잡한 처리를 실행하는 일없이 여러가지의 출력장치에 대응할 수가 있다.
좌표이동의 방향을 경사에 의해 X,Y방향에만 한정하는 것에 의해 보다 고속의 이동처리를 실행할 수가 있다.

Claims (12)

  1. 벡터형식으로 나타낸 문자의 윤곽데이타를 기본으로 래스터 형식으로 나타낸 문자데이타를 발생하는 문자발생장치에 있어서의 선폭보정방법에 있어서, 벡터형식으로 나타낸 문자의 윤곽데이타중의 좌표데이타를 좌표변환하는 좌표변환 스텝, 상기 좌표변환된 좌표데이타를 곡선보간하는 곡선보간 스텝, 상기 좌표변환 또는 곡선보간을 실행하면서 얻어진 동일 문자의 좌표데이타에 대해서 순차로 상기 문자의 지정한 부분을 지정한 선폭으로 보정하는 선폭보정 스텝 및 상기 보정된 좌표데이타에 따라 래스터 형식의 문자데이타를 발생하는 문자데이타발생 스텝을 포함하는 선폭보정방법.
  2. 제1항에 있어서, 상기 선폭보정 스텝에 있어서 보정되는 상기 좌표데이타에 보정의 내용을 나타내는 보정플래그데이타가 부가되어 있는 선폭보정방법.
  3. 제1항에 있어서, 상기 보정되는 좌표데이타는 하나전에 처리된 상기 좌표데이타가 보정되어 있던 경우, 상기 보정된 좌표데이타의 좌표값이 계승되는 선폭보정방법.
  4. 제1항에 있어서, 상기 좌표변환은 아핀변환인 선폭보정방법.
  5. 제1항에 있어서, 상기 곡선보간은 베찌에르 곡선보간인 선폭보정방법.
  6. 제1항에 있어서, 상기 선폭보정에 있어서 상기 보정되는 좌표데이타는 다음에 처리는 좌표데이타로 향하는 벡터의 방향에 대해서 수직방향으로만 보정되는 선폭보정방법.
  7. 벡터형식으로 나타낸 문자의 윤곽데이타를 기본으로 래스터 형식으로 나타낸 문자데이타를 발생하는 문자발생장치에 있어서, 벡터형식으로 나타낸 문자의 윤곽데이타를 좌표변환하는 좌표변환 수단, 상기 좌표변환 수단에 의해 좌표변환된 윤곽데이타를 곡선보간하는 곡선보간 수단, 상기 좌표변환 수단에 의해 순차로 좌표변환 되었거나 또는 상기 곡선보간 수단에 의해 순차로 곡선보간된 문자의 윤곽데이타에 대해서 상기 양쪽 수단의 실행과 동시에 상기 문자의 지정한 부분의 선폭을 지정한 값으로 보정하는 선폭보정 수단 및 상기 선폭보정 수단에 의해 보정된 윤곽데이타에 따라 래스터 형식의 문자데이타를 발생하는 문자데이타 발생수단을 포함하는 문자발생장치.
  8. 벡터형식으로 나타낸 문자의 윤곽좌표데이타를 좌표변환한 후 래스터 형식으로 나타낸 문자데이타를 발생해서 출력수단으로 출력하는 문자발생 시스템에 있어서, 문자의 윤곽좌표데이타를 아핀변환에 의해 좌표변환하는 좌표변환 수단, 상기 좌표변환 수단이 출력하는 윤곽좌표데이타를 곡선보간하는 곡선보간 수단, 상기 문자의 지정된 부분의 선폭을 변화시키기 위해, 상기 좌표변환 수단 또는 상기 곡선보간 수단이 출력하는 윤곽좌표데이타를 보정하는 보정수단, 상기 보정수단의 출력인 보정된 윤곽좌표데이타에 따라서 래스터 형식의 문자데이타를 발생하는 문자데이타 발생수단 및 상기 보정수단에 의한 보정량을 상기 출력수단의 1화소크기에 따라서 설정하는 설정수단을 포함하는 문자발생 시스템.
  9. 제8항에 있어서, 상기 좌표변환 수단, 상기 곡선보간 수단, 상기 보정수단 및 상기 문자데이타 발생수단은 하나의 반도체 칩상에 구성되어 있고, 또한 상기 반도체 칩상의 내부버스에 병렬로 접속되어 있는 문자발생 시스템.
  10. 제9항에 있어서, 상기 보정수단은 상기 설정수단에 의해 설정된 상기 보정량을 유지하는 유지수단을 갖는 문자발생 시스템.
  11. 제8항에 있어서, 상기 설정수단은 상기 출력수단의 종류에 대응한 상기 화소크기의 정보를 기억하는 테이블을 갖는 문자발생 시스템.
  12. 제8항에 있어서, 상기 설정수단은 상기 출력수단의 상기 화소크기를 입력하는 입력수단을 갖는 문자발생 시스템.
KR1019900017939A 1989-11-08 1990-11-07 선폭보정방법 및 그 장치 KR940001106B1 (ko)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
JP1290422A JP2895529B2 (ja) 1989-11-08 1989-11-08 文字発生方法および装置ならびに文書作成装置
JP1-290422 1989-11-08
JP2-19052 1990-01-31
JP2019052A JPH03225394A (ja) 1990-01-31 1990-01-31 文字発生装置

Publications (2)

Publication Number Publication Date
KR910010280A KR910010280A (ko) 1991-06-29
KR940001106B1 true KR940001106B1 (ko) 1994-02-14

Family

ID=26355847

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019900017939A KR940001106B1 (ko) 1989-11-08 1990-11-07 선폭보정방법 및 그 장치

Country Status (1)

Country Link
KR (1) KR940001106B1 (ko)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102445000B1 (ko) * 2015-11-09 2022-09-19 충북대학교 산학협력단 1바이트 문자만을 지원하는 국제 표준과 호환하는 가상 터미널 상에서 2바이트 문자 표시 방법 및 장치

Also Published As

Publication number Publication date
KR910010280A (ko) 1991-06-29

Similar Documents

Publication Publication Date Title
JP2836086B2 (ja) 文字パターンデータ発生装置
US6753862B1 (en) Outline smoothing method and system
JP3037854B2 (ja) 文字生成方法及びその装置
JP2634851B2 (ja) 画像処理装置
KR940001106B1 (ko) 선폭보정방법 및 그 장치
JP2952915B2 (ja) ドットパターンデータ発生装置
JP2674287B2 (ja) グラフィックマイクロコンピュータ
JP3029135B2 (ja) 文字処理装置及び方法
JP3215179B2 (ja) アウトラインフォントのヒンティング方法
JP2748787B2 (ja) 曲線発生装置
JP2861201B2 (ja) データ変換装置
JP3072756B2 (ja) 描画装置
JP3033152B2 (ja) アウトラインデータ処理装置
JPH06118935A (ja) 文字データ発生装置
JPH09305160A (ja) 文字生成装置
JP3055306B2 (ja) データ出力装置
JP3087511B2 (ja) データ変換装置
JP3057959B2 (ja) データ変換装置
JP3039214B2 (ja) データ変換装置
JPH056164A (ja) 文字処理装置
JP2896097B2 (ja) エレメント別に文字を構成したアウトラインフォントの塗りつぶし方法および装置
JPH03150594A (ja) 文字発生方法および装置ならびに文書作成装置
JPH0511737A (ja) アウトラインフオントの生成方法
JP2754579B2 (ja) データ変換装置
JP2001052187A (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: 20030212

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee