KR890003318B1 - Apparatus for processing character or pictorial image data - Google Patents

Apparatus for processing character or pictorial image data Download PDF

Info

Publication number
KR890003318B1
KR890003318B1 KR1019840001671A KR840001671A KR890003318B1 KR 890003318 B1 KR890003318 B1 KR 890003318B1 KR 1019840001671 A KR1019840001671 A KR 1019840001671A KR 840001671 A KR840001671 A KR 840001671A KR 890003318 B1 KR890003318 B1 KR 890003318B1
Authority
KR
South Korea
Prior art keywords
contour
point
vector
sample
section
Prior art date
Application number
KR1019840001671A
Other languages
Korean (ko)
Other versions
KR850003013A (en
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 KR850003013A publication Critical patent/KR850003013A/en
Application granted granted Critical
Publication of KR890003318B1 publication Critical patent/KR890003318B1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Controls And Circuits For Display Device (AREA)
  • Image Processing (AREA)
  • Character Discrimination (AREA)
  • Character Input (AREA)

Abstract

The outline of a character which is developed on X and Y coordinates is split into a number of blocks (P1, Pn) (where P1 and Pn are a start point and an end point of an arbitrary block respectively) each defined by a univalent function involving X as a variable. Block data are produced to specify the shape of each block, of which data is stored as the compressed data of one character to accomplish compression of the data. A memory is provided for storing the start point coordinates of a straight portion, and the start point coordinates of each sampling segment established on a curved portion, and the coefficient and the degree of the cubic polynomial which approximates each segment.

Description

문자 화상 데이타 처리 시스템Character image data processing system

제1도, 제2도는 종래의 윤곽법을 설명하는 도면.1 and 2 illustrate a conventional outline method.

제3도는 본 발명 시스템의 처리수순의 개요를 나타낸 플로차트.3 is a flowchart showing an outline of a processing procedure of the system of the present invention.

제4도는 본 발명 시스템을 실시한 구성의 개략을 나타낸 도면.4 is a view showing an outline of the configuration in which the present invention system is implemented.

제5도는 문자윤곽의 일례를 나타낸 도면.5 is a view showing an example of a character outline.

제6도는 제5도에 나타낸 문자의 윤곽을 복수의 블록으로 분할한 일례를 나타낸 도면.FIG. 6 is a diagram showing an example in which the outline of the character shown in FIG. 5 is divided into a plurality of blocks. FIG.

제7도는 직선근사를 설명하는 도면.7 is a diagram for explaining straight line approximation.

제8도는 직선부와 곡선부의 식별을 실현하는 구성의 일실시예를 나타낸 블록도.8 is a block diagram showing an embodiment of a configuration for realizing identification of straight portions and curved portions.

제9도는 제8도의 구성에 있어서의 처리과정의 주요부를 상세히 나타낸 도면.FIG. 9 is a view showing details of main parts of the process in the configuration of FIG. 8; FIG.

제10도는 직선부와 곡선부를 식별한 결과를 나타낸 도면.10 is a view showing a result of identifying a straight portion and a curved portion.

제11(a)도 ~ 제11(c)도는 각 윤곽점에 있어서의 경사의 산출방법을 설명하는 도면.11 (a) to 11 (c) are diagrams for explaining a method of calculating the inclination at each contour point.

제12도는 샘플구간의 설정과정을 나타낸 도면.12 is a diagram illustrating a process of setting a sample section.

제13(a)도, 제13(b)도는 샘플점을 설정한 상황을 나타낸 도면.FIG. 13 (a) and FIG. 13 (b) show a situation in which sample points are set.

제15도는 임의 1블록 데이타를 기억하는 포맷의 일례를 나타낸 도면.FIG. 15 shows an example of a format for storing arbitrary one block data. FIG.

제16도는 블록 데이타의 기억 방식을 설명하는 도면.Fig. 16 is a diagram explaining a storage method of block data.

제17도는 블록 데이타의 복원을 실시하는 구성의 일실시예를 나타낸 블록도.FIG. 17 is a block diagram showing an embodiment of a configuration for restoring block data. FIG.

제18도는 제17도의 동작을 나타낸 타이밍 차트이다.18 is a timing chart showing the operation of FIG.

* 도면의 주요부분에 대한 부호의 설명* Explanation of symbols for main parts of the drawings

1, 50, 90 : 문자의 윤곽 60 : 접속점 좌표 기억부1, 50, 90: outline of characters 60: connection point storage unit

61 : 직선부 식별 벡터 길이 설정부 62 : 곡선 분할점 식별 각도 설정부61: straight part identification vector length setting part 62: curve dividing point identification angle setting part

63 : 차접속점 좌표 레지스터 64 : 현접속점 좌표 레지스터63: difference connection point coordinate register 64: current connection point coordinate register

65 : 전접속점 좌표 레지스터 66 : 벡터길이 산출부65: all connection point coordinate register 66: vector length calculation unit

67 : 벡터간 각도 산출부 68 : 벡터길이비교부67: angle calculation unit between the vectors 68: vector length comparison unit

69 : 각도비교부 70 : 직선 부기억부69: angle comparison unit 70: straight line storage unit

71 : 곡선 부기억부 91 : n차 다항식의 근사곡선71: curve sub memory 91: approximation curve of the n-th order polynomial

120 : 압축 데이타 기억부 121 : 셀렉터120: compressed data storage section 121: selector

1, 122 : 배율기억부 123 : 디코더군1, 122: magnification memory unit 123: decoder group

124 : 셀렉터 125 : 1문자 기억부124: selector 125: 1-character memory

126 : 출력장치126: output device

본 발명은 문자나 화상(이하, 문자라 한다.)의 윤곽 형상을 기억함으로써 기억 데이타량을 압축하도록 한 문자 화상 데이타 처리시스템에 관한 것으로 구체적으로 문자의 윤곽을 직선부와 곡선부로 분류하고, 다시 이 곡선부상에 마련한 샘플점후보를 시행착오적으로 이동시켜서 이 압축된 데이타를 해독해서 문자상을 재생하도록한 문자 화상 데이타 처리시스템에 관한 것이다. 이 시행착오를 실시하느냐 여부 및 샘플점후보를 전후 어느방향으로 시동시킬 것인가등의 판단은 샘플 후보 구간내의 각 윤곽점마다 구해지는 편유량ε에 따라 결정된다. 그리고, 상기 곡선부의 시점에서 차례로 샘플 구간을 설정하여 곡선부를 복수의 샘플구간으로 분할하고, 여기서 구해진 직선부와 각 샘플 구간을 기억한다.The present invention relates to a character image data processing system which compresses the amount of stored data by storing the outline shape of a character or image (hereinafter referred to as a character). Specifically, the outline of a character is classified into a straight portion and a curved portion. The present invention relates to a character image data processing system in which sample point candidates provided on this curved portion are moved by trial and error to decipher the compressed data and reproduce a character image. The determination of whether or not this trial and error is carried out and in which direction the sample point candidate is to be started is determined depending on the amount of oil ε obtained for each contour point in the sample candidate section. Then, the sample sections are sequentially set at the point of view of the curve section, the curve section is divided into a plurality of sample sections, and the straight section and each sample section obtained here are stored.

문자를 도트 분해하여 구한 2값의 데이타가 극히 용장성이 높은 데이타임은 주지의 사실이다. 그래서, 종래 이 용장성을 경감하기 위하여 여러가지 데이타 압축 방식이 제안되어 왔다.It is well known that two-value data obtained by dot decomposition of characters is extremely redundant. Thus, various data compression schemes have been proposed in order to alleviate this redundancy.

문자의 형상을 윤곽으로 파악하고, 그 윤곽을 특정하는 데이타를 기억함으로써 데이타량의 압축을 도모하도록한 이른바 윤곽법이라 불리우는 데이타 압축방식도 그 하나이다.Another one is a data compression method called so-called contour method, in which the shape of a character is identified as an outline and the data amount is specified by storing the data specifying the outline.

이 윤곽법에 의한 압축 방식으로서는 제1도와 같은 직선(벡터)근사법이나, 제2도와 같은 n차 곡선 근사법이 이미 제안되어 있다.As the compression method by this contour method, the linear (vector) approximation method like FIG. 1 and the n-th order curve approximation method like FIG. 2 are already proposed.

제1도에 예시한 직선 근사법은 , JP 특개소 54-149522호 공보, JP 특개소 65-79154호 공보 등에 개시된 수법이다. 그 개요는, 점선으로 도시한 임의 문자의 윤곽(1)을 실선으로 도시한 벡터(2)의 집합으로 근사하고 각 벡터를 특정하는 정보 (시점위치, 길이 및 경사 , 혹은 수평· 수직방향 성분)를 부호화 데이타로 함으로써 데이타 압축을 가능토록 한것이다.The linear approximation method illustrated in FIG. 1 is a method disclosed in JP-A-54-149522, JP-A-65-79154, and the like. The outline is approximated by a set of vectors (2) showing the outline (1) of any character shown by a dotted line in a solid line and specifying each vector (viewpoint position, length and inclination, or horizontal and vertical components). By using as encoded data, data compression is enabled.

또, 제 2도에 예시한 n차 곡선 근사법은 본건 출원인의 JP 특개소 57-39963호로 알려져 있는 수법이다. 그 개요는 후술하는 바와같이 임의 문자의 윤곽상에 적절히 설정한 점 P군의 좌표를 기억함으로써 데이타량의 압축을 시도하는 동시에 , 임의 연속하는 (n+1)개의 점을 맺는 n차 곡선(3)에서 소망하는 윤곽을 근사하는 것이다. 또한 , 제2도는 n=2의 경우를 예시한 것이다.In addition, the n-th order curve approximation method illustrated in FIG. 2 is a method known from JP Patent Application No. 57-39963 of the present applicant. The outline is an n-th order curve (3) that attempts to compress the data amount by storing the coordinates of the point P group appropriately set on the outline of an arbitrary character as described later, and forms arbitrary (n + 1) points. Is to approximate the desired outline. 2 also illustrates the case of n = 2.

이들 윤곽법에 의한 데이타 압축방식은 그 압축 데이타를 해독하여 문자상을 재생할 때 보관처리나 발취처리 내지 벡터의 배율 변환처리를 실시함으로써, 여러가지 배율의 문자상이 재생할 수 있다는 특징을 지니고 있다.The data compression method by the outline method is characterized by reproducing the compressed data and reproducing the character image by carrying out the storage process, the extraction process or the vector magnification conversion process to reproduce the character image at various magnifications.

그러나 이들 종래 방식은, 예컨대, 제1도에 있어서의 각 벡터의 시점, 종점(P), 혹은 제 2도에서의 각 n차 곡선(3)의 접속점 Pc를 중심으로한 좌우의 각 접선의 경사각 δ이 어느 경우도 불연속적으로 되어 버리는 사실에도 명백한 바와 같이, 윤곽의 매끄러움(윤곽의 경사의 연속성)이 보증되지 않는다는 본질적은 결함을 가지고 있었다.However, these conventional methods are, for example, the inclination angle of the left and right tangent lines centering on the connection point Pc of each n-th order curve 3 in FIG. As apparent from the fact that δ becomes discontinuous in any case, there was an inherent defect that the smoothness of the contour (continuity of the inclination of the contour) is not guaranteed.

이에 대하여 일반적으로 문자의 윤곽은 직선적인 부분과 곡선적인 부분을 함께 가지고 있고, 또한 윤곽 자체가 연속하여 있을 뿐만 아니라 문자 화상의 교차부나 '삐침획'의 선단등의 특이한 점을 제외하고 보았을대 그 1차 도함수(윤곽의 경사)가 연속적으로 변화하는 특징을 가지고 있다.In general, the outline of a letter has both a straight line and a curved line, and the outline itself is not only continuous but also except for the unusual points such as the intersection of the letter image or the tip of the 'beep'. It has the characteristic that the first derivative (the slope of the contour) changes continuously.

따라서, 종래의 윤곽법에 의한 데이타 압축방식에서는 윤곽을 충실하게 특정한 압축데이타가 얻기 어려울 뿐만 아니라 그 데이타에 의거하여 재생한 문자상의 부자연스러움(경사의 불연속성)을 정확히 제거할수 없다는 문제점을 가지고 있었다.Therefore, the conventional data compression method has a problem that it is difficult to obtain specific compressed data faithfully to outlines, and it is not possible to accurately remove the unnaturalness (slope discontinuity) of characters reproduced on the basis of the data.

이와같은 문제를 해결하기 위하여 본건 출원인 JP 특개소 58-134745호의 방식을 이미 제안하였다.In order to solve such a problem, the method of the present applicant JP-A-58-134745 has already been proposed.

여기에서 개시한 데이타 압축 방식도 윤곽법의 일종인바, 아래와 같은 문제점이 있었다. 즉, (1)임의 1블록중의 모든 샘플구간을 한꺼번에 근사토록 하였기 때문에, 직선부와 곡선부가 접속하는 부분에서는 그 접속점에서 윤곽에서 벗어난 凹凸이 발생하기 쉽고, 또 본래 직선으로서 재현될 부분도 그 전후의 샘플구간의 근사곡선의 영향을 받아서 근사되므로 , 직선의 재현성이 뒤떨어져 버린다.The data compression method disclosed herein is also a kind of contouring method, and has the following problems. That is, since (1) all the sample intervals in any one block are approximated at once, it is easy to generate a deviation from the contour at the connection point at the portion where the linear portion and the curved portion are connected, and the portion to be reproduced as a straight line is also Since the approximation is affected by the approximate curve of the front and rear sample sections, the reproducibility of the straight line is inferior.

(2) 또, 이것을 회피하려면, 다시 많은 샘플점을 설정하고, 많은 다항식으로 분할하여 근사를 행하지 않으면 안되고, 그 때문에 데이타량이 증대해 버린다는 문제점이 명백해졌다.(2) In order to avoid this, it is evident that a large number of sample points must be set, divided into many polynomials, and approximated, thereby increasing the amount of data.

(3) 또한 , 임의 1블록중의 각 샘플구간을 한꺼번에 근사코저 하였기 때문에 샘플점이 신설되면 이것에 영향받아서 다른 샘플 구간의 근사곡선도 변화해 버린다는 문제점도 명백하게 되었다.(3) Also, since each sample section in any one block was approximated at once, it became apparent that the sample point would be affected by this and the approximate curve of other sample sections would also change.

(4) 그리고 샘플점이 신설될때마다 임의 1블록상의 모든 샘플구간에 대하여 각각 근사곡선을 다시 구하지 않으면 안되고, 더우기 부호화에 복잡한 연산을 요하기 때문에 구하는 데이타의 작성에 시간이 걸리는 문제점도 남아 있었다.(4) In addition, each time a sample point is established, an approximation curve has to be recalculated for all sample intervals on any one block, and furthermore, a complicated operation is required for encoding.

본 발명의 목적은 개량된 윤곽법에 의한 데이타 처리시스템을 제공하는 것이며, 본 발명의 또다른 목적은 압축데이타를 구함에 있어 연산 시간을 단축함과 아울러 윤곽을 충실하게 재생하는 압축 데이타가 얻어지는 문자 화상 데이타 처리시스템을 제공하는 것이며, 본 발명의 또다른 목적은 윤곽의 매끄러움을 충실히 재생하는 압축데이타를 기억함과 아울러, 충분히 높은 데이타 압축율을 얻을 수 있는 문자 화상 데이타 처리시스템을 제공하는데 있다.SUMMARY OF THE INVENTION An object of the present invention is to provide a data processing system by an improved contour method, and another object of the present invention is to obtain a compressed character that obtains compressed data that faithfully reproduces an outline while reducing computation time in obtaining compressed data. It is another object of the present invention to provide a character image data processing system that can store compressed data that faithfully reproduces the smoothness of outlines, and can obtain a sufficiently high data compression ratio.

본 발명 시스템의 처리 수준의 개요를 제3도에 도시한 순서도에 따라 설명한다.An outline of the processing level of the system of the present invention will be described according to the flowchart shown in FIG.

입력한 문자상은 x, y매트릭스상으로 도트 분해되고 (30), 이 도트 분해된 문자상의 윤곽을 추출한다(31). 추출된 윤곽은 윤곽과의 편위차가 허용오차 이하가 되는 벡터로 직선 근사한다(32). 직선근사된 윤곽은 벡터길 이에 따라서 직선부와 곡선부로 식별한다(33). 그리고 필요에 따라 인접하는 벡터의 교차각에 의거하여 상기 곡선부와 식별한 윤곽을 분할한다(34). 곡선부의 윤곽을 3차 다항식으로 곡선근사하기 위한 준비로서 윤곽을 형성하는 각 윤곽점에 있어서의 경사를 구한다(35). 그리고 곡선근사하는 구간내에 설정한 샘플후보구간의 시점, 종점의 좌표와 그 경사에 의하여 3차 다항식을 구한다. 그리고, 이 샘플부호 구간을 연장 또는 단축하면서, 이 구간을 근사하는 3차 다항식과 윤곽과의 편위량이 허용오차 이하로 수용되는 범위내에서 최장이 되는 샘플구간을 구하고 이 구간의 시점, 종점을 샘플점으로하여 결정해 간다.(36)The input character image is dot-separated into x and y matrices (30), and the outline of this dot-decomposed character is extracted (31). The extracted contour is approximated linearly with a vector whose deviation from the contour is less than or equal to the tolerance (32). The linearly approximated contour is identified as a straight line and a curved line according to the vector length (33). If necessary, the curved portion and the identified contour are divided based on the intersection angle of adjacent vectors (34). In preparation for curve approximation of the contour of the curved portion in the cubic polynomial, the inclination at each contour point forming the contour is obtained (35). The third-order polynomial is obtained from the start point, the end point coordinates, and the slope of the sample candidate section set in the curve approximation section. Then, while extending or shortening the sample code section, the sample section which is the longest within the range where the deviation between the third-order polynomial and the contour approximating this section is accommodated below the tolerance is obtained, and the start point and the end point of the section are sampled. We decide by point. (36)

이와같이 하여 차례로 샘플구간을 구하고, 각 샘플구간에 근사하는 3차 다항식이 구해지면, 필요에 따라 각 3차 다항식의 1차도함수를 구하고, 각 윤곽의 경사를 재차 산출한다(37). 그리고 새로 구한 각 윤곽점의 경사와 좌표에 따라 상기와 같이 샘플점을 결정하고 보다 윤곽에 충실한 3차 다항식을 산출한다.(38). 이와같이 하여 구한 상기직선샘플구간의 시점좌표 및 곡선부를 구성하는 각 곡선 샘플구간의 시점좌표와 상기 3차 다항식의 계수 및 차수를 코우드화하고(39), 다음에, 상기 코우드화한 데이타를 기억한다(40).In this way, when the sample intervals are obtained in order, and a third order polynomial approximating each sample interval is obtained, first order functions of the respective third order polynomials are obtained, and the slope of each contour is calculated again (37). The sample points are determined as described above according to the newly obtained slopes and coordinates of each contour point, and a third order polynomial faithful to the contour is calculated (38). The view coordinates of the linear sample section obtained as described above and the view coordinates of the respective curve sample sections constituting the curved portion and the coefficients and orders of the cubic polynomial (39) are then coded (39). Remember (40).

그리고, 기억된 문자윤곽의 압축 데이타는 , 복수의 디코더로 분산하여 해독하고(41), 해독결과에 따라 소망하는 문자 윤곽을 복원한다(42).The compressed data of the stored character outline is distributed and decoded by a plurality of decoders (41), and the desired character outline is restored (42) according to the decoding result.

다음에 본 발명 시스템을 실시한 구성의 개략을 제4도에 따라 설명한다.Next, the outline of the structure which implemented the system of this invention is demonstrated according to FIG.

(41)은 문자화상의 윤곽점 Qj의 위치를 기억하고 있는 윤곽점 기억수단, (42)는 문자 화상윤곽을 구성하고 있는 다수의 윤곽점 Qj중 임의의 윤곽점Qj 의 시점 Pi 및 종점 Pi + 1로 하는 벡터 Vi에 대하여, 이 벡터의 길이 및 이 벡터의 상기 윤곽점과의 편위량을 구함으로써, 상기 편위량이 소정의 허용치 이하에서, 그 길이 li가 최대가 되는 벡터 Vi를 구하는 벡터 산출수단, (43)은 상기 벡터 Vi의 길이 li와 미리 설정한 길이 1를 비교하는 제1의 비교수단, (44)는 상기 벡터 Vi와 이 벡터 Vi에 인접하는 벡터 Vi-1과의 교차각 θi과, 미리 설정한 각도 θ를 비교하는 제2의 비교수단.Reference numeral 41 denotes an outline point storage means for storing the position of the outline point Qj of the character image, and 42 denotes a start point Pi and an end point Pi + of an arbitrary outline point Qj among a plurality of outline points Qj constituting the character image contour. By calculating the deviation of the length of the vector and the contour point of the vector with respect to the vector Vi as 1, the vector calculation means for finding a vector Vi whose maximum length li is the maximum when the deviation amount is equal to or less than a predetermined allowable value. (43) is a first comparison means for comparing the length li of the vector Vi with a preset length 1, (44) is the intersection angle θi between the vector Vi and the vector Vi-1 adjacent to the vector Vi and And second comparing means for comparing the preset angle θ.

(45)는 상기 비교결과가가 li > L일때, 상기 벡터 Vi에 근사한 윤곽구간[Pi, Pi+1]을 직선부로 식별하고 ,또 상기 비교결과가 li

Figure kpo00001
k일때, 상기 윤곽구간[Pi, Pi+1]을 곡선부로 식별하고, 다음의 벡터에 대해서도 반복하여 상기 비교를 행하고 벡터 Vi + k 에서 li + k > L 가 될때 또는 θi + k < θ 가 될때 , 그때까지의 윤곽구간[Pi, Pi+k]을 하나의 연속한 곡선부로 식별하는 식별수단, (46)은 상기 곡선부의 윤곽구간[Pi, Pi+k]에 대하여 윤곽의 시점 Qj를 제1의 샘플점으로 하고 임의의 윤곽점 Qj +r 을 샘플점 후보로 하는 샘플후보구간[Qj , Qj+r]을 설정하고 이 샘플점 Qj와 샘플점 후보Qj+r의 좌표(xj, yj),(xj+r, yj+r)및 그 경사 tj, tj+r에 의거하여 상기 샘플 후보 구간[Qj,Qj+r]을 3차 다항식 f(x)으로 곡선 근사하는 곡선 근사수단, (47)은 이 3차 다항식 f(x)과 상기 샘플 후보 구간의 각 윤과점과의 편위량 ε산출수단.(45) identifies the contour section [Pi, Pi + 1] approximating the vector Vi as a straight line when the comparison result is li> L, and the comparison result is li
Figure kpo00001
When k, the contour section [Pi, Pi + 1] is identified as a curved portion, and the comparison is repeated for the next vector and when li + k> L in the vector Vi + k or θ i + k <θ. Identification means for identifying the contour section [Pi, Pi + k] up to that point as one continuous curved portion, and (46) firstly designating the starting point Qj of the contour with respect to the contour section [Pi, Pi + k] of the curved portion; Set the sample candidate section [Qj, Qj + r], which is a sample point of, and the arbitrary contour point Qj + r is a sample point candidate, and coordinates (xj, yj) of this sample point Qj and sample point candidate Qj + r, curve approximation means for curve approximating the sample candidate interval [Qj, Qj + r] with a cubic polynomial f (x) based on (xj + r, yj + r) and its slopes tj, tj + r, (47) Means for calculating the amount of deviation? Between the third polynomial f (x) and each lattice point of the sample candidate section.

(48)은 이 구해진 편위량 ε과 허용오차 △를 비교하는 제3의 비교수단, (49)는 상기 비교 결과에 따라 현재의 샘플점후보를 다음의 샘플점으로 하여 설정하는 동시에 이 새로 설정한 샘플점을 다음의 샘플 후보 구간의 시점으로 하여, 상기 하나의 연속된 곡선부와 식별한 윤곽구간[Pi,Pi+k]의 전부에 걸쳐 샘플구간을 차례로 설정해 가는 샘플 구간 설정 수단.(48) is the third comparison means for comparing the obtained deviation amount ε and the tolerance △, and (49) sets the current sample point candidate as the next sample point according to the comparison result, Sample interval setting means for sequentially setting the sample interval over the one continuous curved portion and all the identified contour intervals [Pi, Pi + k] with the sample point as the starting point of the next sample candidate interval.

(50)은 상기 직선부의 시점좌표와 곡선부에 설정한 각 샘플구간의 시점 좌표 및 각 샘플 구간을 근사시키는 3차 다항식의 계수와 차수를 기억하는 기억수단이다.Reference numeral 50 denotes storage means for storing the view coordinates of the linear section and the view coordinates of each sample section set in the curve section, and the coefficients and orders of the third order polynomial approximating each sample section.

다음에 각 부에 데이타 처리에 대하여 상세히 설명한다.Next, data processing is described in detail in each section.

[화상 입력(30)][Image input 30]

스캐너 장치등의 래스터 주사에 의하여 문자를 x, y매트릭스 상으로 도트 분해하여 이것으로 구해진 비트 패턴 데이타가 처리대상이 되는 문자 데이타로 된다.By raster scanning of a scanner device or the like, the characters are dot-decomposed onto the x and y matrices, and the bit pattern data obtained therefrom becomes character data to be processed.

[윤곽 추출(31)][Contour Extraction (31)]

분해한 문자 데이타에 대응하는 2값의 데이타가 x 또는 y방향에 있어서 『 0 』에서『 1 』,또는 『 1 』에서 『 0 』으로 변화하는 도트 위치(운곽점 Q)를 구하고, 이 구해진 윤곽점의 위치를 상기 윤곽점 기억수단(41)에 기억한다.The dot position (contour point Q) in which two-value data corresponding to the decomposed character data changes from "0" to "1" or "1" to "0" in the x or y direction is obtained. The position of the point is stored in the outline point storage means 41.

제5도는 이와같이 하여 구한 문자 윤곽의 1예를 제시한 도면이고, 『 な 』(나)로 발음하는 1문자가 예시되고 있다.FIG. 5 is a diagram showing one example of the character outline obtained in this way, and one character pronounced as "な" (b) is illustrated.

그런데 래스터 주사방식으로 문자상을 재생할 경우, 주사의 개시점에서 종료점까지의 사이에 래스터 상을 그린다. 따라서 Y축(래지스터주사방향)으로 평행하는 윤곽의 정보는 반드시 필요한 것은 아니다.However, when the character image is reproduced by the raster scanning method, the raster image is drawn between the start point and the end point of the scan. Therefore, the information of the contour parallel to the Y axis (register scanning direction) is not necessarily necessary.

제6도는 제5도에 도시한 윤고가중, Y축으로 평행한 부분을 생략한 것이다.FIG. 6 omits the portion of the yaw height and parallel to the Y axis shown in FIG.

도면중 『 0 』표는 개개의 윤곽의 시점과 종점이며, 이 『 0 』표 사이에 끼워진 좁은 공간이 생략부분이다.In the figure, the "0" table is the starting point and the end point of each outline, and the narrow space sandwiched between these "0" tables is omitted.

도면에서 명백한 바와같이, 이 시점과 종점간에 있어서 각 윤곽의 x좌표치는 단조롭게 증가 또는 감소하고 있다. 즉, x을 변수로하는 1가 함수(y)로 되어 있다.As is apparent from the figure, the x coordinate value of each contour is monotonously increasing or decreasing between this starting point and the end point. That is, 1 is a function y whose x is a variable.

따라서 제5도의 윤곽에 대하여, x좌표의 값이 단조롭게 증가 또는 감소하는 구간(블록 B1, B2, B3 ....)을 차례로 구해감으로써 제6도의 윤곽을 얻을 수 있다.Accordingly, the contour of FIG. 6 can be obtained by sequentially obtaining the sections (blocks B1, B2, B3 ....) where the value of the x coordinate monotonously increases or decreases with respect to the contour of FIG.

[직선 근사(32)][Linear approximation (32)]

제4도의 벡터 산출수단(42)에 있어서 윤곽과의 편위량의 소정의 허용 오차 이하의 그 길이 li가 최대가 되도록 설정한 다수의 벡터 Vi에 의하여 직선 근사를 행한다.In the vector calculation means 42 of FIG. 4, the linear approximation is performed by a plurality of vectors Vi which are set so that their length li, which is equal to or less than a predetermined tolerance of the amount of deviation from the contour, is maximized.

예컨대 제7도는 임의의 1블록[P1,Pn]에 있어서, 점선으로 표시한 윤곽(51)을 벡터Vi(단, i=1 ~n-1)의 집합으로 직선근사를 행한 것이다. 각 벡터의 Vi의 접속점 Pi(단, i=1 ~n)에 대응하는 윤곽점 Qj(단, j=1 ~m)의 좌표(xj, yj)를 제8도에 도시한 접속점 좌표 기억부(60)에 기억한다.For example, in FIG. 7, a straight line approximation is performed on a set of vectors Vi (where i = 1 to n-1) of the outline 51 indicated by a dotted line in any one block [P1, Pn]. Connection point coordinate storage unit (Fig. 8) shows coordinates (xj, yj) of contour point Qj (where j = 1 to m) corresponding to the connection point Pi (i = 1 to n) of Vi of each vector. Remember at 60).

[윤곽의 직선부와 곡선부의 식별(33)][Identification of straight and curved portions of the contour (33)]

전술한 바와같이, 일반적으로 문자의 윤곽형상은 직선적인 부분과 곡선적인 부분을 둘다 가지며 본건 출원인의 일본 특개소 58- 134745호에서는, 1블록중의 윤곽전체를 한꺼번에 근사시키려고 하였기 때문에 , 직선부와 곡선부가 접속하는 부분에 있어서는 그 접속점 근방에서 많은 샘플점을 설정하고, 많은 근사식으로 표현하지 않으면 안되고, 이 부분에에서의 데이타 량이 증대해 버리고, 압축률의 저하가 지적되겠금 되었다.As described above, in general, the outline of a character has both a linear portion and a curved portion, and in Japanese Patent Application Laid-open No. 58-134745 of the present applicant, since the entire outline in one block is about to be approximated at once, In the part where the curved portion connects, many sample points must be set near the connection point and expressed by a large number of approximation equations, and the amount of data in this part increases, indicating a decrease in the compression ratio.

그래서 본 발명은 상술한 직선근사에 의하여 구한 벡터의 길이 li에 따라 상기 벡터로 근사시킨 윤곽구간의 형상이 직선부인가 곡선부인가를 우선 식별하도록 하고, 그리고 직선부와 곡선부를 따로따로 처리함으로써 상기 문제점을 해소하도록 하고 복잡한 윤곽 형상을 지니는 문자라도 우수한 재생상을 얻을 수 있도록 하였다.Therefore, the present invention first identifies whether the shape of the contour section approximated by the vector according to the length li of the vector determined by the linear approximation is a straight portion or a curved portion, and separately processes the straight portion and the curved portion separately. In order to solve the problem, even a character having a complicated contour shape can obtain an excellent reproduction image.

제8도는 윤곽의 직선부와 곡선부의 식별을 실현한 구성의 1실시예를 보이는 블록도이고, 제9도는 제8도의 구성에 있어서의 처리과정의 주요부를 상세하게 나타내는 도면이다.FIG. 8 is a block diagram showing one embodiment of the configuration in which the straight portions and the curved portions of the contour are realized, and FIG. 9 is a diagram showing details of main parts of the process in the configuration of FIG.

이들 제8도 및 제9도는 제4도에 있어서의 벡터산출수단(42), 비교수단(43), (44) 및 식별수단(45)에 상당하는 것이다.8 and 9 correspond to the vector calculation means 42, the comparison means 43, 44, and the identification means 45 in FIG.

제8도에 있어서, (60)은 상기 직선근사(32)에 의하여 얻어진 접속점을 블록 단위로 기억하는 접속점 좌표기억부, (61)은 식별하는 벡터길이 L 을 미리 설정하는 직선부 식별 벡터 길이 설정부, (62)는 곡선을 분할하는 점을 식별하는 각도 θ를 미리 설정하는 곡선분할점 식별 길이 설정부, (63)은 i+1번째의 접속점 Pi+1의 좌표, 즉 접속점 Pi+1에 대응하는 윤곽점 Qj+S의 좌표(xj+S , yj+S)를 유지하기 위한 다음 접속점 좌표 레지스터, 동일하게 (64)는 i번째의 접속점 P에 대응하는 윤곽점Qj의 좌표(xj,yj)를 유지하기 위한 현 접속점좌표레지스터, (65) 는 i -1번째의 접속점 Pi -1에 대응하는 윤곽점Qj-u의 좌표(Xj-u,yj-u)를 유지하기 위한 전 접속점 좌표 레지스터, (66)은 상기 다음 접속점 좌표 레지스터(63)과 현 접속점 좌표레지스터(64) 및 전접속점 좌표 레지스터(65)의 각 좌표에서 접속점 Pi에서의 벡터간 각도 θi 를 산출하는 벡터간 각도 산출부, (68)은 직선부 식별 벡터 길이 설정부(61)에서 설정한 벡터길이 L와 상기 벡터 길이 산출부(66)에서 산출한 벡터 길이 li를 비교하는 벡터 길이 비교부, (69)는 상기 곡선 분할점 식별 각도 설정부(62)에서 설정한 각도 θ와 상기 벡터간 각도 산출부(67)에서 산출한 벡터간 각도 θi를 비교하는 각도비교부, (70)은 상기 벡터길이비교부(68)의 비교결과에 따라 직선부의 구간을 기억하는 직선부기억부이다. (71)은 상기 벡터 길이 비교부(68)의 비교결과, 또는 이 벡터길이비교부(68)과 각도 비교부(69)과의 비교결과에 따라 상기 곡선부의 구간을 기억하는 곡선부기억부이다.In Fig. 8, reference numeral 60 denotes a connection point storage unit for storing connection points obtained by the linear approximation 32 in units of blocks, and reference numeral 61 denotes a linear part identification vector length setting for presetting a vector length L for identifying. (62) is a curve dividing point identification length setting unit which sets in advance an angle θ for identifying a point for dividing the curve, and (63) is the coordinate of the i + 1th connection point Pi + 1, that is, the connection point Pi + 1. The next connection point coordinate register for retaining the coordinates (xj + S, yj + S) of the corresponding contour point Qj + S, where 64 is the coordinate (xj, yj of the contour point Qj corresponding to the i-th connection point P. The current connection point coordinate register for holding (), (65) is the previous connection point coordinate register for holding the coordinates (Xj-u, yj-u) of the contour point Qj-u corresponding to the i-1st connection point Pi-1. (66) denotes respective coordinates of the next connection point coordinate register 63, the current connection point coordinate register 64, and the previous connection point coordinate register 65; The inter-vector angle calculation unit (68) for calculating the inter-vector angle θ i at the connection point Pi at, is calculated by the vector length L set by the straight line identification vector length setting unit 61 and the vector length calculation unit 66. A vector length comparator, 69 for comparing vector lengths li, compares the angle θ set by the curve dividing point identification angle setting unit 62 with the angle θ i between vectors calculated by the angle calculation unit 67 between the vectors. The angle comparing unit 70 denotes a linear storage unit for storing sections of the linear unit according to the comparison result of the vector length comparing unit 68. Reference numeral 71 denotes a curve storage unit for storing the section of the curve in accordance with the comparison result of the vector length comparison unit 68 or the comparison result of the vector length comparison unit 68 and the angle comparison unit 69. .

다음에 동작에 대하여 설명한다. 우선, 직선부 식별 벡터 길이 설정부(61)에 벡터길이 L 를 곡선부분할점식별각도 설정부(62)에 각도 θ를 각각 설정한다. 다음에 접속점 좌표 기억부(60)에서 임의 블록[P1, Pn]의 시점 P1의 좌표를 다음 접속점 좌표 레지스터(63)로 보낸다. 이 시점에서는 현 접속점 좌표 레지스터(64)에는 아무것도 기억되어 있지 않으므로 후술하는 벡터 길이 산출부(66)에 있어서 벡터 길이를 구할수는 없다.Next, the operation will be described. First, the angle θ is set in the point identification angle setting part 62 to curve the vector length L in the linear part identification vector length setting part 61. Next, the connection point coordinate storage unit 60 sends the coordinates of the starting point P1 of the arbitrary blocks [P1, Pn] to the next connection point coordinate register 63. At this point in time, since nothing is stored in the current connection point coordinate register 64, the vector length calculation unit 66, which will be described later, cannot obtain the vector length.

다음 접속점 좌표 레지스터(63)에 기억된 접속점 좌표는 현 접속점 좌표 레지스터(64)로 전송되고, 다음 적속점 좌표 레지스터(63)에는 새로이 다음 접속점 P2의 좌표가 기억된다. 이후는 현 접속점 좌표 레지스터(63)에 기억하고 있는 접속점의 좌표를 현 접속점 좌표 레지스터(64)에 각각 시프트하고 다음 접속점 좌표 레지스터(63)에는 접속점 좌표 기억부(60)에서 다음 접속점의 좌표가 기억된다.The connection point coordinates stored in the next connection point coordinate register 63 are transferred to the current connection point coordinate register 64, and the coordinates of the next connection point P2 are newly stored in the next acceleration point coordinate register 63. Subsequently, the coordinates of the connection point stored in the current connection point coordinate register 63 are shifted to the current connection point coordinate register 64, respectively, and the coordinates of the next connection point are stored in the connection point coordinate storage unit 60 in the next connection point coordinate register 63. do.

벡터 길이 산출부(66)는 상기 다음 접속점 좌표 레지스터(63)의 i +1번째의 접속점 Pi+1의 좌표 (xj + S, yj+S)와 현 접속점 좌표 레지스터(64)의 i번째의 접속점 Pi의 좌표(xj, yi)에서 벡터 Vi와 길이

Figure kpo00002
를 산출한다. 산출한 길이 li는 벡터 길이 비교부(68)에서 상기 직선부 식별 벡터길이 설정부(610에서 미리 설정한 벡터 길이 L 와 비교한다.The vector length calculation unit 66 is the coordinate (xj + S, yj + S) of the i + 1th connection point Pi + 1 of the next connection point coordinate register 63 and the i-th connection point of the current connection point coordinate register 64. Vector Vi and length at the coordinates of Pi (xj, yi)
Figure kpo00002
To calculate. The calculated length li is compared with the vector length L previously set in the linear identification vector length setting unit 610 by the vector length comparison unit 68.

여기서 li>L 일 경우는 상기 벡터 Vi에 근사한 윤곽구간[Pi+Pi+1]을 직선부로 식별하고, 이 구간의 시점 좌표 및 종점 좌표를 하나의 직선부에 관한 정보로서 직선부기억부(70)에 기억한다.In the case of li> L, the contour section [Pi + Pi + 1] approximating to the vector Vi is identified by a straight line, and the start point and end point coordinates of the section are information about one straight line. Remember).

또, li

Figure kpo00003
L인 때는 윤곽구간[Pi+Pi+1]을 곡선부로 식별하고, 이 구간[Pi+Pi+1]의 시점 좌표 및 종점 좌표를 곡선부에 관한 정보로서, 곡선부기억부(71)에 기억한후, 다음의 구간[Pi+1Pi+2]도 곡선부이면 그때까지 곡선부로 식별해온 구간[Pi+Pi+2]을 연속한 하나의 곡선부로하고, 그 시점 좌표와 종점 좌표를 하나의 곡선부에 관한 정보로서 곡선 부기억부(71)에 기억한다.Again, li
Figure kpo00003
In the case of L, the contour section [Pi + Pi + 1] is identified by the curved portion, and the start coordinates and the end point coordinates of the section [Pi + Pi + 1] are stored in the curved portion storage portion 71 as information about the curved portion. After that, if the next section [Pi + 1Pi + 2] is also a curved section, the section [Pi + Pi + 2], which has been identified as a curved section until then, is one continuous curved section, and the starting point and end point coordinates are one curved line. The information stored in the curve is stored in the curve storage unit 71.

그리고, 또 다음의 윤곽구간의 직선부로 식별될 때까지 반복하여 상기 비교를 실시하고 벡터Vi+k에서 li + k > L가 될때, 이미 곡선부기억부(71)에 기억되어 있는 그때까지의 윤곽구간[Pi+Pi+k]에 대응한 시점 좌표와 종점좌표를 하나의 곡선부에 관한 정보로서 고정한다.Then, the above comparison is repeated until it is identified as the straight portion of the next contour section and when li + k> L in the vector Vi + k, the contour up to that point already stored in the curve storage unit 71 is obtained. The start point coordinates and the end point coordinates corresponding to the section [Pi + Pi + k] are fixed as information on one curved portion.

이상 기술한 바와같이 하나의 직선부에 관한 정보, 또는 하나의 곡선부에 관한 정보가 구해지면 다시 다음의 벡터에 대하여 상기와 동일한 식별을 반복 실시하고, 임의 1블록[Pi, Pi]을 구성하는 직선부와 곡선부의 데이타를 각 기억부(70), (71)에 보존한다. 이하 1문자를 구성하는 모드 블록에 대하여 식별을 실시한다.As described above, when information on one straight portion or information on one curved portion is obtained, the same identification is repeated for the next vector and constitutes one arbitrary block [Pi, Pi]. Data of the straight and curved portions is stored in the storage portions 70 and 71, respectively. The mode block constituting one character is identified below.

[윤곽의 분할(34)][Segmentation of the outline (34)

한편, 벡터간 각도 산출부(67)에서는 차 접속점 좌표 레지스터(63), 현 접속점 좌표 레지스터(64), 전 접속점 좌표 레지스터(65)에서 각각 접속점 Pi-1, Pi, Pi+1의 좌표(Xj-u, yj-u), (xj+S, yj+S)를 독출하고, 제7도에 도시하는 벡터간 각도(벡터 Vi과 서로 인접하는 벡터 Vi-1 의 교차각)θi를 산출한다. 산출한 벡터간 각도θi는 각도 비교부(69)에서, 상기 곡선 분할점 식별 각도 설정부(62)에 미리 설정한 각도 θ와 비교한다. 그리고 θi<θ인 경우, 곡선 분할 신호가 상기 각도 비교부(69)에서 곡선부기억부(71)로 공급된다.On the other hand, in the vector-to-vector angle calculation unit 67, the coordinates (Xj) of the connection points Pi-1, Pi, and Pi + 1 in the difference connection point coordinate register 63, the current connection point coordinate register 64, and the previous connection point coordinate register 65, respectively. -u, yj-u) and (xj + S, yj + S) are read out, and the angle between the vectors (crossing angle between the vector Vi and the vector Vi-1 adjacent to each other) θi shown in FIG. 7 is calculated. The calculated angle between the vectors θ i is compared with the angle θ set in the curve splitting point identification angle setting unit 62 in the angle comparison unit 69. And when θ i <θ, the curve division signal is supplied from the angle comparison section 69 to the curve storage unit 71.

본 발명의 실시에 있어서는 이 곡선 분할 신호에 다라 상기 곡선부기억부(71)를 동작시키든가 혹은 이 곡선 분할 신호를 무시할 것인가를 미리 지령해둔다. 곡선 분할 신호를 무시할 뜻이 지령되고 있을 경우, 상기 곡선 부기억부(71)는 먼저[윤곽의 직선부와 곡선부의 식별(33)]의 항에서 설명한 동작을 충실히 실행한다.In the practice of the present invention, the curve division signal 71 is operated in advance or whether the curve division signal is ignored in accordance with this curve division signal. When the command to ignore the curve division signal is instructed, the curve sub storage unit 71 faithfully executes the operation described in the section (identification 33 of the straight line portion and the curve portion of the outline).

다른 경우, 즉 곡선 분할 신호에 따라 상기 곡선부기억부(71)를 동작시키는 뜻을 지령하고 있는 상태에서 예컨대 벡터 Vi에서 곡선부가 연속하여 식별되고, 벡터 Vi+k에서 θi+1 <θ 로 될때 , 이 곡선 분할 신호가 곡선부기억부(71)에 공급된다. 곡선부기억부(71)는 상기 접속점 Pi+k 를 새로이 곡선 분할점으로 식별하고 이미 곡선부기억부(71)에 기억되고 있는 그때까지의 윤곽구간[Pi, Pi+k]에 대응한 시점 좌표와 종점 좌표를 하나의 곡선부에 관한 정보로서 고정한다.In other cases, i.e., when the curve portion is continuously identified in the vector Vi, for example, in the state instructing the operation of the curved portion storage portion 71 according to the curve division signal, and becomes θ i +1 <θ in the vector Vi + k. This curve division signal is supplied to the curve storage unit 71. The curve storage unit 71 identifies the connection point Pi + k as a curve dividing point newly and coordinates the viewpoint corresponding to the contour section [Pi, Pi + k] up to that point already stored in the curve storage unit 71. And end point coordinates are fixed as information about one curved portion.

그런데 상기한 분자 화상의 교차부나 『 삐침획』의 선단 등의 특이한 점은 통상 이 곡선 분할점으로서 식별되는 경우가 많다. 일본 특개소 58-134745호에서는 이 특이한 점의 근방에 많은 접속점이 존재하고 구하는 근사곡선의 처리에 시간이 걸렸으나, 상기 구한 이 곡선 분할점에서 윤곽을 분할하고, 그 전후에서 각각 별개의 곡선근사하므로 처리시간도 빠르고, 그위에 쉽게 근사 곡선을 구할수 있다.By the way, unusual points, such as the intersection part of the molecular image and the tip of the &quot; beep &quot;, are often identified as this curve dividing point. In Japanese Patent Application Laid-Open No. 58-134745, many connection points exist in the vicinity of this unusual point, and it takes time to process the approximation curve obtained, but the contour is divided at the curve division point obtained above, and each curve approximation before and after As a result, the processing time is fast, and an approximate curve can be easily obtained thereon.

제10도는 제6도에 도시한 윤곽에 대하여 상기한 [직선 근사(32)] ~[윤곽의 분할(34)]까지의 처리를 시행한 예를 나타낸다.FIG. 10 shows an example in which the processes from [linear approximation 32] to [division 34 of outlines] were performed on the outline shown in FIG.

도면에서, ○은 1블럭의 시점 및 종점, ▲는 [직선 근사와 곡선부의 식별(33)]에 의하여 얻어진 접속점, ●는 곡선 분할점이다.In the drawing, o is a starting point and end point of one block, o is a connection point obtained by [straight approximation and identification of a curved portion 33], and o is a curve dividing point.

또한, 도시되어 있는 두개의 곡선 분할점은 교차각 θn이 소정의 식별각 θ보다 작기 때문에 설정된 것이다.In addition, the two curve dividing points shown are set because the crossing angle θn is smaller than the predetermined identification angle θ.

[각 윤곽점의 경사 산출(35)][Calculation of Slope of Each Contour Point 35]

상기의 구한 곡선부의 윤곽 형상을 3차 다항식을 사용하여 근사시킬때에 이 3차 다항식은, 2점의 좌표치 및 경사가 결정되면 일의적으로 결정된다. 그럼으로 , 우선 윤곽상의 각 윤곽점에 있어서의 경사를 구하는 방법에 대하여 설명한다.When approximating the outline shape of the above-mentioned curved part using a cubic polynomial, this cubic polynomial is uniquely determined when the coordinate value and the inclination of two points are determined. Therefore, first, a method for obtaining the inclination at each contour point on the contour will be described.

본 설명의 실시예에서는 각 윤곽점에 있어서의 경사는 그 윤곽점의 전후의 윤곽점어 소정수만 추출하고 경사를 산출하는 윤곽점과, 추출한 각 윤곽점을 연결한 선분의 경사를 각각 구하고, 소망의 윤곽점에 있어서의 경사로서 사전에 산출하여 기억하도록 하였다.In the embodiment of the present description, the inclination of each contour point is obtained by extracting only a predetermined number of contour points before and after the contour point, and calculating the inclination of the contour point and the slope of the line segment connecting the extracted contour points, respectively. The inclination at the contour point was calculated in advance and stored.

다음에, 각 윤곽점에 있어서의 경사의 산출방법은 제11도에 도시한 곡선부의 예에 따라 설명한다.Next, the calculation method of the inclination at each contour point is demonstrated according to the example of the curve part shown in FIG.

우선, 첫째로 제11(a)도의 윤곽점Q1(곡선부의 시점)에 있어서의 경사 t1을 구하는 경우에 대하여 설명하면, 윤곽점Q1의 뒤에 존재하는 윤곽점을 임의수만 추출하여 윤곽점 Q1과 다른 윤곽점을 연결하는 선분의 경사를 산출하고, 이들의 각 선분의 경사에서 윤곽점Q1에 있어서의 경사 t1을 후술하는 식으로 산출한다.First, the case where the inclination t1 at the contour point Q1 (the start point of the curved portion) in FIG. 11 (a) is obtained will be explained. Only an arbitrary number of contour points existing behind the contour point Q1 are extracted to be different from the contour point Q1. The inclination of the line segments connecting the contour points is calculated, and the inclination t1 at the contour point Q1 is calculated from the inclination of each of these line segments in a manner described later.

예컨대, 경사를 구하려고 하는 윤곽점 Q1의 후측에 윤곽점을 2점 추출하여 경사를 구하는 경우는 우선, 선분

Figure kpo00004
의 경사 m12, 선분
Figure kpo00005
의 경사 m13을 구한다.For example, in the case where the contour point is extracted by extracting two contour points on the rear side of the contour point Q1 for which the slope is to be obtained, first, the segment
Figure kpo00004
Slope of m12, segment
Figure kpo00005
Find the slope of m13.

선분의 경사 m12는 2점의 좌표(x1, y1), (x2, y2)에서The slope m12 of the line segment is at two coordinates (x1, y1), (x2, y2)

Figure kpo00006
Figure kpo00006

으로 구할 수 있다. 또 경사 m13의 경우도 동일하게 구한다.You can get it by The same applies to the case of the slope m13.

각각 선분의 경사 m12, m13가 구해지면 윤곽점Q1에 있어서의 경사 t1은When the slopes m12 and m13 of the line segments are obtained, the slope t1 at the contour point Q1 is

Figure kpo00007
Figure kpo00007

에 의하여 구한다.Obtain by

다음에 제11(b)도에 따라 다음의 윤곽점 Q2에 있어서의 경사 t2를 구하는 경우에 대하여 설명한다.Next, the case where the inclination t2 at the next contour point Q2 is calculated | required according to FIG. 11 (b) is demonstrated.

이 경우는 윤곽점 Q2의 전후에 존재하는 윤곽점을 소정수만 추출하여 윤고가점 Q2에서 각 윤곽점을 연결한 선분의 경사를 각각 구하고, 윤곽점 Q2에 있어서의 경사 t2로 한다.In this case, only a predetermined number of contour points existing before and after contour point Q2 are extracted, and the inclinations of the line segments connecting the contour points at the height of contour point Q2 are obtained, respectively, to be the inclination t2 at contour point Q2.

예컨대 , 윤곽점을 앞뒤 2점 추출하여 경사를 구할 경우 윤곽점 Q에 있어서는 전측에서는 Q1의 1점 밖에 추출할 수 없으므로, 이 경우 앞뒤 1점을 추출함으로써, 경사 t2를 다음식에 구한다.For example, when the contour point is extracted two points front and back to obtain the inclination, only one point of Q1 can be extracted from the front side at the contour point Q. In this case, the slope t2 is obtained by the following equation by extracting one point front and back.

Figure kpo00008
Figure kpo00008

이와같이 지정한 수의 윤곽점이 존재하지 않을 경우는 지정 범위내에서 최대수의 윤곽점을 추출하여 경사를 구한다.If the specified number of contour points does not exist as described above, the slope is obtained by extracting the maximum number of contour points within the specified range.

다음에 제11(c)도와 같이 윤곽점 Q3에 있어서의 경사 t3를 구하는 경우에 대하여 설명한다. 이경우, 윤곽점 Q3에 있어서는 상기 소정수의 윤곽점이 앞뒤에 존재한다. 따라서 윤곽점 Q3와 다른 각 윤곽점을 연결하는 각 선분의 경사 m13, m23, m34, m35를 산출하여 윤곽점 Q3에 있어서의 경사 t3를,Next, the case where the inclination t3 at contour point Q3 is calculated | required like FIG. 11 (c) is demonstrated. In this case, in the contour point Q3, the predetermined number of contour points exist before and after. Therefore, the slopes m13, m23, m34, and m35 of each line segment connecting the contour point Q3 and the other contour points are calculated to calculate the slope t3 at the contour point Q3,

Figure kpo00009
Figure kpo00009

에서 구한다.Obtain from

이후 동일하게 하여 각 윤곽점에 있어서의 경사를 산출해 가는데, 곡선부의 종점 Qn, 또는 그에 인접하는 윤곽점 Qn-1에 있어서의 경사 tn, tn-1은 제11(a)도 및 제11(b)도에 도시한 시점 Q1 또는 그에 인접하는 윤곽점 Q2의 경사를 구하는 경우와 같이 산출한다.Then, in the same manner, the inclination at each contour point is calculated, and the inclinations tn and tn-1 at the end point Qn of the curved portion or the contour point Qn-1 adjacent thereto are shown in Figs. 11 (a) and 11 ( b) It calculates like the case where the inclination of the viewpoint Q1 shown in the figure, or the contour point Q2 adjacent to it is calculated | required.

이와같이, 각 윤곽점에 있어서의 경사의 산출은 그 윤곽점의 앞뒤에서 관계하고 있는 윤곽점을 소정수만 추출하여 행한다. 또 상술한 설명은 소정수=2일때의 예이다.In this way, the calculation of the inclination at each contour point is performed by extracting only a predetermined number of contour points related to the front and rear of the contour point. The above description is an example when the predetermined number = 2.

[샘플점의 결정(36)][Determination of Sample Point (36)]

이상과 같이 하여 곡선부를 구성하는 각 윤곽점에 있어서의 경사가 구해지면, 다음에 곡선부에 해당하는 윤곽상에 샘플구간을 설정한다.When the inclination at each contour point which comprises a curved part is calculated | required as mentioned above, a sample section is set on the outline corresponding to a curved part next.

이 샘플구간의 설정은 제4도에 있어서의 곡선근사수단(46), 편위량 산출수단(47), 비교수단(48), 샘플구간 설정수단(49)에 의해 실행된다.The sample section is set by the curve approximation means 46, the deviation amount calculating means 47, the comparing means 48, and the sample section setting means 49 in FIG.

제12도는 그 처리과정을 나타낸 도면이다. 그래서 먼저 샘플구간을 설정하기 위해, 후술하는 수순에 의해 순차 2개의 윤곽점 Qj, Qj+r을 선택한다(제13도 참조)12 is a view showing the process. So, first, two contour points Qj and Qj + r are selected in sequence according to the procedure described later in order to set the sample interval (see Fig. 13).

다음의 설명에서는 이들 2개의 윤곽점중, 앞쪽의 윤곽점 Qj를 샘플점이라고 하고, 뒷쪽의 윤곽점 Qj+r을 샘플점 후보라고 한다. 그리고, 이들 두점을 시점, 종점으로 하는 구간을 샘플후보구간[Qj, Qj+r]이라고 한다. 그리고 상기 샘플점 Qj는 초기 조건으로서 상기 곡선부의 시점에 설정하며, 샘플점 후보 Qj+r은 샘플점Qj에서 r개의 윤곽점만큼 떨어진 위치에 설정된다.In the following description, among these two contour points, the front contour point Qj is called a sample point, and the rear contour point Qj + r is called a sample point candidate. The section using these two points as the starting point and the ending point is called a sample candidate section [Qj, Qj + r]. The sample point Qj is set at the beginning of the curve portion as an initial condition, and the sample point candidate Qj + r is set at a position separated by r contour points from the sample point Qj.

그래서 먼저 이들 샘플점 Qj 및 샘플점후보 Qj+r의 좌표(xj, yj), (xj+r , yj+r), 및 그 경사 tj, tj+r에 의거하여, 이 2개점의 점을 통과하는 3차 다항식 f(x)의 계수와 치수를 구하고, 다시 상기 샘플후보구간[Qj, Qj+r]에 존재하는 모든 윤곽점과 상기 3차 다항식으로 구한 근사곡선과의 각 편위량 ε가 소정의 허용오차 △이하인지 아닌지를 비교함으로써, 상기 구해진 근사곡선의 타당성을 판단한다.So, first, based on the coordinates (xj, yj), (xj + r, yj + r) of these sample points Qj and sample point candidates Qj + r, and their slopes tj and tj + r, they pass through these two points. The coefficients and dimensions of the third-order polynomial f (x) are obtained, and each deviation amount ε between all contour points existing in the sample candidate intervals [Qj, Qj + r] and the approximation curve obtained by the third-order polynomial is predetermined. The validity of the obtained approximation curve is determined by comparing whether or not the tolerance is less than or equal to.

지금, 상기 샘플후보구간[Qj, Qj+r]의 모든 윤곽점에 있어서, ε

Figure kpo00010
Figure kpo00011
의 경우, 상기 구해진 근사곡선을 허용할 수 있는 것으로 판단한다. 그런데, 하나의 근사곡선에 의해 표현할 수 있는 구간이 길수록, 바꾸어 말하면 주어진 임의의 윤곽을 표현하는데 필요한 근사곡선의 수가 적을수록 데이타의 수가 적어져서 효율좋게 압축할 수 있다.Now, for all contour points of the sample candidate section [Qj, Qj + r], ε
Figure kpo00010
Figure kpo00011
In this case, it is determined that the obtained approximation curve can be tolerated. However, the longer the interval that can be expressed by one approximation curve, in other words, the smaller the number of approximation curves required to express a given arbitrary contour, the smaller the number of data and the more efficient the compression can be.

그래서 최초로 설정한 임의 윤곽점 Qj+r을 샘플점 후보로 하는 것으로 정해지는 샘플후보구간[Qj, Qj+r]에 대해, 상기와 같이 해서 구한 근사곡선과, 이 샘플후보구간[Qj, Qj+r]의 각 윤곽점과의 편위량ε를 산출하고, 허용오차 △와 비교한 결과 모두 ε

Figure kpo00012
△일때, 현재의 샘플점후보 Qj+r에 인접하는 윤곽점Qj+r+1을 새로운 샘플점후보로하여 상기 비교를 하고, 이후 비교 결과가 하나라도 ε>
Figure kpo00013
로 되기까지 샘플점후보를 순차 갱신하여 상기 비교를 반복하고, 윤곽점Qj+r+p에서 하나라도 ε>
Figure kpo00014
로 되었을때, 그 직전의 윤곽점 Qj+r+p-1을 제2의 샘플점으로 하여 샘플구간[Qj, Qj+ r+p-1]을 설정하고, 이 샘플구간[Qj, Qj+r+p-1]에 있어서의 근사곡선이 주어진 임의의 윤곽을 표현하는데 필요한 근사곡선의 하나로서 결정된다.Thus, for the sample candidate sections [Qj, Qj + r], which are determined to be the sample point candidates of the arbitrary contour point Qj + r set for the first time, the approximation curves obtained as described above, and the sample candidate sections [Qj, Qj +]. r] is calculated from each contour point of r], and is compared with the tolerance △.
Figure kpo00012
When Δ, the comparison is made using the contour point Qj + r + 1 adjacent to the current sample point candidate Qj + r as a new sample point candidate, after which any comparison result is ε>
Figure kpo00013
The above comparison is repeated by sequentially updating the sample point candidates until it becomes, and at least one of the contour points Qj + r + p is ε>
Figure kpo00014
Is set, the sample section [Qj, Qj + r + p-1] is set using the immediately preceding contour point Qj + r + p-1 as the second sample point, and this sample section [Qj, Qj + r + The approximation curve in p-1] is determined as one of the approximation curves required to express a given contour.

한편 최초에 설정한 임의 윤곽점 Qj+r을 샘플점후보로 하는 것으로 정해지는 샘플후보구간[Qj, Qj+r]에 대해 , 상기와 같이 해서 구한 근사곡선과, 이 샘플후보구간[Qj, Qj+r]의 각 윤곽점과의 편위량ε를 산출하고, 허용오차

Figure kpo00015
와 비교한 결과가 하나라고 ε>
Figure kpo00016
일때, 현재의 샘플점후보 Qj+r에 인접하는 윤곽점 Qj+r - 1을 새로운 샘플점 후보로서 상기 비교를 하고, 이후 비교결과가 모두 ε
Figure kpo00017
Figure kpo00018
되기까지 샘플점후보를 순차갱신하여 상기 비교를 반복하여, 윤곽점 Qj+r-p에서 모두ε
Figure kpo00019
Figure kpo00020
로 되었을때, 이 샘플점후보 Qj+r-p를 제2의 샘플점으로 하여 샘플구간[Qj, Qj+r-p]을 설정하고, 이 샘플구간[[Qj, Qj+r-p]에 있어서의 근사곡선이, 주어진 임의의 윤곽을 표현하는데 필요한 근사곡선의 하나로서 결정된다.On the other hand, the approximation curves obtained as described above with respect to the sample candidate sections [Qj, Qj + r], which are determined to be the sample point candidates, which are initially set to arbitrary contour points Qj + r, and the sample candidate sections [Qj, Qj]. calculate deviation ε with each contour point of + r]
Figure kpo00015
Compared with ε>
Figure kpo00016
, The contour point Qj + r−1 adjacent to the current sample point candidate Qj + r is compared as a new sample point candidate, and then the comparison results are all ε
Figure kpo00017
Figure kpo00018
The sample point candidates are sequentially updated until the comparison is repeated, and at the contour point Qj + rp, ε
Figure kpo00019
Figure kpo00020
When the sample point candidate Qj + rp is set as the second sample point, the sample interval [Qj, Qj + rp] is set, and the approximation curve in this sample interval [[Qj, Qj + rp] is It is determined as one of the approximation curves needed to represent a given contour.

이와같은 처리에 의해, 상기 편위량ε가 허용오차

Figure kpo00021
의 범위내에서, 최장으로 되는 샘플구간을 결정하면서, 윤곽을 샘플구간에서 분할해간다. 그리고, 이 샘플구간에 의해 결정하는 3차 다항식으로 윤곽이 근사해진다.By such a process, the deviation amount epsilon
Figure kpo00021
The contour is divided in the sample interval while determining the longest sample interval within the range of. The outline is approximated by a cubic polynomial determined by this sample interval.

다음에, 근사곡선의 산출과 편위량의 산출방법에 대해, 제13도에 의거하여 설명한다. 제13(a)도에 있어서, (90)은 윤곽, B는 윤곽(90)상의 윤곽점, (91)은 3차 다항식 f(x)의 근사곡선, (92)는 샘플후보구간[Qj, Qj+r]의 시점 Qj와 종점 Qj+r의 2점간을 이은 직선, (93)은 점 B에서 직선(92)에 내린 수직선, C는 근사곡선(91)과 수직선 (93)과의 교점, BA는 점 B에 있어서의 윤곽(90)과 근사곡선(91)과의 x방향에 있어서의 편위량εx, BC는 윤곽(90)과 근사곡선(91)과의 y방향에 있어서의 편위량 εy이다.Next, the calculation of the approximation curve and the calculation method of the amount of deviation are explained based on FIG. In Fig. 13 (a), reference numeral 90 denotes a contour, B denotes a contour point on the contour 90, 91 denotes an approximation curve of the cubic polynomial f (x), and 92 denotes a sample candidate interval [Qj, Qj + r] is a straight line connecting two points between the starting point Qj and the end point Qj + r, (93) is the vertical line lowered from the point B to the straight line 92, C is the intersection of the approximation curve 91 and the vertical line (93), BA is the amount of deflection εx in the x direction between the contour 90 and the approximation curve 91 at point B, and BC is the amount of deflection εy in the y direction between the contour 90 and the approximation curve 91. to be.

이미 산출한 시점 Qj 및 샘플점후보 Qj+r의 경사 tj, tj+r 과 좌표치(xj, yj), (xj+r, yj+r)을 하기 3차식에 대입한다.The slopes tj, tj + r, coordinate values (xj, yj), and (xj + r, yj + r) of the calculated time point Qj and sample point candidate Qj + r are substituted into the following three equations.

Figure kpo00022
Figure kpo00022

이상과 같이 근사곡선이 구해지면 이 근사곡선과 각 윤곽점과의 편위량ε를 각기 구한다.When the approximation curve is obtained as described above, the amount of deviation ε between the approximation curve and each contour point is obtained, respectively.

제13(b)도는 제13(a)에 있어서의 윤곽(90)과 근사곡선(91)과의 편위량 ε를 확대한 것이다. 도면에 있어서, 선분 Ca는 직선(92)에 평행이라고 가정하고, 직선(92)의 경사를 선분 CA의 경사 m으로 한다. 그리고, 도시한 바와같이, │m│> 1인 경우, 점 B와, 근사곡선(91)과의 X방향에 대한 편위량 εx를 구하면, 소망의 편위량 ε는FIG. 13 (b) enlarges the amount of deflection epsilon between the outline 90 and the approximation curve 91 in the thirteenth (a). In the figure, it is assumed that the line segment Ca is parallel to the straight line 92, and the inclination of the straight line 92 is the inclination m of the line segment CA. And, as shown, in the case of m 1>, when the deviation amount εx in the X direction between the point B and the approximation curve 91 is obtained, the desired deviation amount ε is

Figure kpo00023
Figure kpo00023

로 구할 수 잇다.Can be obtained as

그리고 도면에는 나타내지 않았지만 │m│

Figure kpo00024
1일 때는 마찬가지로And although not shown in the drawings
Figure kpo00024
When it is 1

Figure kpo00025
Figure kpo00025

에서 소망의 편위량ε를 구할 수 있다.The desired amount of deviation ε can be obtained from.

그리고, 상기 설명에서는 다음의 샘플후보구간[Qj, Qj+r+p]내에 있어서의 편위량ε가 허용오차를 넘었으면, 하나 앞의 샘플후보 Qj, Qj+p-1을 샘플점으로 하여 샘플구간을 결정하도록 하였다.In the above description, if the amount of deviation ε in the following sample candidate section [Qj, Qj + r + p] exceeds the tolerance, the sample candidate Qj and Qj + p-1 in advance is taken as the sample point. The interval was determined.

그러나 다른 실시예로서 허용오차를 넘었을 때, 그 시점에 있어서의 샘플점후보 Qj, Qj+p를 잠정적으로 기억해 두고, 다시 수점 앞으로 샘플점후보 구간으로 하였을때의 상기 편위량 ε의 평가를 해간다. 그리고, 샘플점후보를 수점 앞으로 한 샘플후보구간에 있어서 허용오차의 조건이 충족했을때는 , 이 후보구간이 새로운 샘플구간으로 수정되고, 또한 샘플점을 전진시키면서 상술한 평가처리를 반복해서 실행한다. 이와같은 앞서 읽기를 실시함으로써 샘플구간을 더욱 길게 할 수 있어서 데이타 압축물이 향상된다. 물론, 소정의 수점 앞에 이르러도 허용오차를 넘을 때, 상기 Qj+r+p-1을 샘플점으로 하여 샘플구간을 결정한다.However, in another embodiment, when the tolerance is exceeded, the sample point candidates Qj and Qj + p are temporarily stored at that time, and the deviation amount ε is evaluated when the sample point candidate section is several points forward. All. When the tolerance condition is satisfied in the sample candidate section up to several points from the sample point candidate, the candidate section is corrected to a new sample section, and the above-described evaluation process is repeatedly executed while advancing the sample point. By performing this read ahead, the sample interval can be made longer and the data compression product is improved. Of course, when the tolerance is reached even before a predetermined number of points, the sample interval is determined using Qj + r + p-1 as the sample point.

[각 윤곽점의 경사재산출(37)][Sloped Reproduction (37) of Each Contour Point]

상기 [각 윤곽점의 경사산출(35)]에서 구한 각 윤곽점의 경사를 구하는 윤곽점과, 그 윤곽점의 전후 소정수의 윤곽점을 이은 각 선분의 경사로부터 양자화하여 구하고 있기 때문에, 실제의 윤곽의 경사와는 다를 경우가 있다. 그래서 필요에 따라 더욱 윤곽을 충실하게 근사시키기 위해, 하기와 같이 경사를 재차 산출한다. 즉, 각 샘플구간에 있어서의 3차 다항식 f(x)의 1차도함수 f'(x)에서 구해지는 경사를, 이 샘플구간의 각 윤곽점에 있어서의 경사로 한다. 그리고, 본 발명의 실시예에서는 각 샘플구간이 결정된 다음, 미리 각 샘플구간의 각 윤곽점에 있어서의 모든 경사를 구하여 기억하도록 하였다.Since the contour point for obtaining the inclination of each contour point obtained by the [inclination calculation 35 of each contour point] and the predetermined number of contour points before and after the contour point are quantized and obtained from the inclination of each line segment, It may be different from the slope of the outline. Therefore, in order to approximate the outline more faithfully as necessary, the slope is calculated again as follows. That is, the inclination obtained by the first derivative function f '(x) of the cubic polynomial f (x) in each sample section is taken as the inclination at each contour point of this sample section. In the embodiment of the present invention, after each sample section is determined, all slopes at the contour points of each sample section are obtained and stored in advance.

[샘플점의 재결정][Recrystallization of Sample Point]

상기 [각 윤곽점의 경사 재산출(37)]에 의해 각 윤곽점에 있어서의 경사를 재차 산출했을 경우는 이 구해진 각 윤곽점에 있어서의 경사를 사용하여, 상기 [샘플점의 결정(36)]과 같은 처리를 하며, 재차 샘플점을 결정하면서 재차 결정한 샘플구간은 적게 할 수 있으므로, 데이타 압축률이 향상된다.When the inclination at each contour point is calculated again by the [inclination recalculation 37 of each contour point], the said [determination 36 of a sample point] is used using the inclination in each calculated contour point. ], And the sample interval determined again while reducing the sample point can be reduced, thereby improving the data compression rate.

상기 [각 윤곽점의 경사 재산출(37)]과 [샘플점의 재결정(38)]의 처리를 함으로써, 윤곽을 더욱 충실하게 근사시킬 수 있으며, 데이타 압축률도 향상되지만, 상기 처리를 실시함으로써 그만한 처리시간을 필요로 한다.By processing the above [recline recalculation 37 of each contour point] and [recrystallization of the sample point 38], the contour can be approximated more faithfully, and the data compression ratio is also improved. Requires processing time.

또 단순한 문자이면, 문자 윤곽을 충실하게 근사시키고 있으므로, 상기 처리는 필요로하지 않는다.Moreover, in the case of a simple character, since the outline of the character is approximated faithfully, the above processing is not necessary.

제14도는 제10도에 도시한 윤곽에 대해, 상기 [샘플점의 결정(36]~[샘플점의 재결정(38)]까지의 처리를 실시한 예를 나타낸다.FIG. 14 shows an example in which the processes from [decision 36 of sample point to recrystallization 38 of sample point] to the outline shown in FIG. 10 were performed.

제10도와 마찬가지로, ○는 1블록의 시점 및 종점, ▲는 접속점, ●는 곡선 분할점, ※는 직선부, 무표시는 곡선부를 나타내고 있으며

Figure kpo00026
가 새로 설정된 샘플점이다.As in FIG. 10, ○ denotes a start and end point of one block, ▲ denotes a connection point, ● denotes a curve dividing point, * denotes a linear portion, and a non-marked curve portion.
Figure kpo00026
Is the newly set sample point.

[코드화(39)] 및 [압축 데이타의 기억(40)][Encoding 39] and [Storage of Compressed Data 40]

제8도의 직선기억부(70)에 기억한 각 직선부를 샘플 구간으로 간주하고, 그 시점좌표를 코드화한다.Each linear part stored in the linear storage unit 70 of FIG. 8 is regarded as a sample section, and the viewpoint coordinates are encoded.

이어서 상기 [샘플점의 결정(36)]또는 [샘플점의 재결정(38)]에서 구한 곡선부에 있어서의 각 샘플구간의 시점좌표와, 3차 다항식f(x)로 표시되는 근사곡선의 각 계수 및 차수등을 각기 코드화한다.Subsequently, the viewpoint coordinates of each sample section in the curve section obtained by the above [Determine 36] or [Re-determine 38] of the sample point, and the angle of the approximation curve represented by the cubic polynomial f (x). Coefficients and orders are coded separately.

그리고 이들 코드화된 데이타를 제4도의 기억수단(50)에 기억함으로써, 윤곽에 충실한 압축데이타를 얻을 수 있다.By storing these coded data in the storage means 50 of FIG. 4, compressed data faithful to the contour can be obtained.

제15도는 이상과 같은 본 발명의 실시에 있어서 적용되는 , 임의 1블록의 데이타의 바람직한 포맷의 일례를 나타낸 도면이다.FIG. 15 is a diagram showing an example of a preferable format of any one block of data to be applied in the practice of the present invention as described above.

도면의 포맷에 있어서, 블록 헤더는 1블록의 종점의 좌표 및 1블록중에 존재하는 직선부와 곡선부의 샘플구간의 수를 기억하고, 세그멘트 헤더는 1샘플구간의 시점의 좌표, 및 3차 다항식 f(x)의 차수를 기억하고, 세그멘트 정보는 상기 차수에 의해 구해지는 3차 다항식 f(x)의 각 계수를 기억한 것이다. 그리고, 세그멘트헤더와 세그멘트 정보에 의해 구성된 샘플구간의 부호화 데이타가 상기 블록 헤더에 기억한 샘플구간의 수만큼 배열되어, 1블록의 윤곽형성을 특정하는 블록데이타를 구성한다.In the format of the drawing, the block header stores the coordinates of the end point of one block and the number of sample sections of the straight and curved portions existing in the one block, and the segment header contains the coordinates of the start point of the one sample section and the third order polynomial f. The order of (x) is stored, and the segment information stores the coefficients of the third order polynomial f (x) obtained by the order. The coded data of the sample section constituted by the segment header and the segment information is arranged by the number of sample sections stored in the block header to form block data for specifying the contour of one block.

다른 블록에 대해서도 같은 포맷으로 데이타가 구성되며, 전체로 1문자의 윤곽형상을 특정하는 압축데이타로 된다.The data is structured in the same format for the other blocks, and becomes compressed data that specifies the outline shape of one character as a whole.

다음에 상기 포맷에 의해 코드화된 각 블록데이타를 기억할때, 윤곽의 복원을 고속으로 할 경우에 대비하여, 블록단위로, 각 블록에 있어서의 해독처리시간이 긴 순서로, 예를들어 제4도의 기억수단(50)에 블록데이타를 기억방법에 대해 설명한다.Next, when storing the block data coded by the above format, the decoding processing time for each block is in the order of the longest block, for example in the case of making the restoration of the contour high speed. A storage method for storing block data in the storage means 50 will be described.

예를들어 제16(a)도는 문자 『 あ』의 각 블록(설명상, 각 블록에 1- 20의 번호를 붙였다)을 나타내는 도면이다. 그리고 해독에 요하는 시간이 긴것(예를 들면, X방향에 대해 각 블록의 시점과 종점의 거리가 긴것)으로 부터 순서대로 기억한다. 제16(a)도 예에 있어서, 1블록의 해독에 요하는 시간이 가장 긴것은, 블록(12)이며, 이하 블록(10), 블록(16)으로 이어지고 블록(3)이 가장 짧다.For example, FIG. 16 (a) is a diagram showing each block of the letter "A" (in the description, each block is numbered 1-20). The memory is stored in order from the long time required for decoding (for example, the distance between the start and end points of each block in the X direction is long). In the example of the sixteenth (a), the longest time required to decode one block is the block 12, which is followed by the block 10 and the block 16, and the block 3 is the shortest.

따라서, 이 예에 의해 최종적으로 구해지는 1문자분의 압축 데이타는 제16(b)도에 나타낸 바와같은 블록데이타의 집합으로서 기억된다.Therefore, the compressed data for one character finally obtained by this example is stored as a set of block data as shown in FIG. 16 (b).

[분산 디코더(41)][Distributed Decoder 41]

지금까지 기술해온 것은 윤곽을 특정하는 압축 데이타의 작성에 관한 것이었다.What has been described so far has been the creation of compressed data specifying contours.

다음에 원래의 윤곽을 복원하는 방법에 대해 설명한다.Next, a method of restoring the original outline will be described.

윤곽의 복원은 일반적으로는 다음과 같이 해서 한다. 먼저 블록 데이타 단위로 디코더에 블록데이타를 전송한다. 그리고 디코더로 이 블록테이타의 복원처리를 한다. 1블록데이타의 복원이 종료되면, 복원처리가 되어 있지 않은 블록데이타가 순차적으로 디코더에 전송된다. 이와같이해서 디코더로 1문자분의 블록데이타의 복원처리를 하여 압축데이타를 윤곽에 복원한다.In general, restoration of an outline is performed as follows. First, block data is transmitted to the decoder in block data units. The decoder then restores this block data. When the restoration of one block data is completed, block data that has not been restored is sequentially transmitted to the decoder. In this way, the decoder decompresses the block data for one character to restore the compressed data to the outline.

다음에 제16(b)도에 나타낸 바와같이 1문자분의 블록데이타를 해독에 요하는 시간이 긴것의 순서대로 기억한 압축 데이타의 경우에 대해 설명한다.Next, as shown in FIG. 16 (b), the case of the compressed data stored in the order of the long time required for decoding the block data for one character is explained.

여기서는 윤곽의 복원을 고속으로 하기 위해 ,1블록 마다의 상기 블록데이타를 복수의 디코더에 순차적으로 전송하여 처리를 하고, 처리가 끝난 디코더에서 다음의 블록데이타를 처리해 가는 실시예의 경우를 설명한다.In the following description, an embodiment in which the block data for each block is sequentially transmitted to a plurality of decoders for processing in order to restore the contour, and the next block data is processed by the processed decoder will be described.

다음에 제17도 및 제18도에 의거하여 설명한다. 제17도는 본 발명에 있어서의 윤곽복원을 하기 위한 일실시예를 나타낸 블록도이다.Next, a description will be given based on FIG. 17 and FIG. 18. Fig. 17 is a block diagram showing one embodiment for contour restoration in the present invention.

도면에 있어서, (120)은 각 블록데이타를 1블록의 해독에 요하는 시간이 긴 순서로 기억한 압축데이타 기억부, (제4도의 기억수단 50), (121)은 1블록데이타를 후술하는 디코더를 선택하여 전송하는 셀렉터 1, (122)는 별도 입력한 소망 배율을 기억하는 배율 기억부, (123)은 상기 블록데이타를 배율 해당의 윤곽으로 복원하는 n개의 디코더로 이루어진 디코더군, (124)는 상기 디코더군(123)중, 처리가 종료된 디코더를 선택하여, 해독해서 구한 윤곽 데이타를 후술하는 1문자 기억부(125)에 전송하는 셀렉터 2, (125)는 상기 셀렉터2 (124)에서 보내진 윤곽데이타를 기억하는 1문자 기억부, (126)은 상기 1문자 기억부(125)에 기억 완료한 1문자부의 윤곽 데이타에 의거하여, 문자를 인자 또는 표시 등을 하는 출력장치이다.In the figure, reference numeral 120 denotes a compressed data storage unit for storing each block data in the order of long time required for decoding one block, (storing means 50 in FIG. 4), and 121 denotes one block data to be described later. Selectors 1 and 122 for selecting and transmitting a decoder are a magnification storage unit for storing a desired magnification separately input, and 123 is a decoder group consisting of n decoders for restoring the block data to a contour corresponding to the magnification. Selector 2, 125 which selects a decoder which has been processed from the decoder group 123 and transmits the decoded outline data to the one-character memory unit 125 to be described later. The one-character memory unit 126, which stores the contour data sent by the user, is an output device for printing or displaying characters on the basis of the contour data of the one-character unit that has been stored in the one-character memory unit 125.

다음 동작에 대해 설명한다.The following operation is described.

압축데이타 기억부(120)에서 1블록의 해독에 요하는 시간이 긴 순서(예를 들면 제16도에 있어서, 블록12, 블록10, 블록16....의 순서)으로 셀렉터 1(121)에 전송한다. 셀렉터1(121)은 상기 전송된 블록데이타를 디코더군(123)의 디코더(1)에서 순서대로 디코더를 선택하여 전송을 한다.The selector 1 121 is arranged in the order in which the time required for decoding one block in the compressed data storage unit 120 is long (for example, in the order of blocks 12, 10, 16, ..., in FIG. 16). To transmit. The selector 1 121 selects and transmits the transmitted block data in order from the decoder 1 of the decoder group 123.

블록데이타의 전송이 종료한 디코더는 상기 블록데이타와 배율기억부(122)에 별도 기억한 소망배율 데이타에 의거하여 윤곽의 복원처리를 개시한다. 셀렉터2(124)는 복원처리가 완료된 디코더를 순차적으로 선택하여 복원한 윤곽 데이타를 1문자기억부(125)에 전송해 간다. 1블록분의 복원처리가 완료된 디코더는 셀렉터1(121)에 대해 블록데이타의 전송을 요구하고, 다음의 1블록분의 블록데이타가 전송된다.The decoder which has finished the transmission of the block data starts the reconstruction processing of the contour based on the block data and the desired magnification data stored separately in the magnification storage section 122. The selector 2 124 sequentially selects the decoders for which the restoration process has been completed, and transmits the deconstructed contour data to the one-character memory unit 125. The decoder, which has completed the restoration process for one block, requests the selector 1 121 to transmit block data, and the next block data for one block is transmitted.

제18도는 제17도에 나타난 각 디코더군(123)의 처리상태의 예를 나타낸 타이밍 차트이다.FIG. 18 is a timing chart showing an example of the processing status of each decoder group 123 shown in FIG.

도면에 있어서, T1은 셀렉터 1(121)에서 각 디코더에 블록데이타를 전송하는 시간, T2는 각 디코더가 해독한 윤곽 데이타를 셀렉터 2(124)를 통해 1문자기억부(125)에 전송하는 시간이며, T3는 각 디코더에 있어서의 블록데이타의 해독처리시간이다. 또 T4는 1문자분의 처리시간을 나타낸다.In the figure, T1 is a time for transmitting block data to each decoder in the selector 1 121, and T2 is a time for transmitting contour data decoded by each decoder to the one-character memory unit 125 through the selector 2 124. FIG. T3 is the decoding process time of block data in each decoder. T4 represents the processing time for one character.

디코더 1 ~ n으로 n블록부분의 블록데이타가 전송되어 처리가 개시되면, 다음에 n+1번째의 블록데이타는 처리시간이 가장 짧았던 디코더(이경우, 디코더3)에 전송되고 계속해서 처리를 해간다. 더구나 전송하는 각 블록데이타는 상술한 바와 같이 그 처리시간이 점차 짧아져 가는 순으로 배열되어 있으므로, 제18도에 도시한 바와 같이 각 디코더는 대략 동시에 처리를 종료하고 , 1문자분의 해독이 끝난다.When the block data of n block portions is transmitted to the decoders 1 to n and processing starts, the next n + 1 block data is transmitted to the decoder having the shortest processing time (in this case, decoder 3) and continues processing. . In addition, since each block data to be transmitted is arranged in order of decreasing processing time as described above, as shown in FIG. 18, each decoder ends processing at the same time, and decoding of one character is completed. .

즉 각 디코더는 균등하게 가동하여 블록데이타의 해독을 진행시키므로, 어느 하나의 디코더의 해독작업이 종료하기까지 다른 디코더가 장시간 기다리는 일없이, 다음 문자의 블록데이타의 해독을 개시하여, 1 ~ n의 디코더로 분산해서 n블록분의 데이타를 공급할 수 있어서 전체의 해독시간을 단축시킬 수 있다.That is, since each decoder operates evenly and proceeds to decode the block data, the decoder starts decoding the block data of the next character without waiting for another long time until the decoding operation of one decoder is completed. By distributing to the decoder and supplying n blocks of data, the entire decoding time can be shortened.

[윤곽의 복원(42)][Reconstruction of the outline (42)]

상술한 바와 같이 각 디코더에서 복원된 1블록의 윤곽 데이타는 1믄자기억부(125)에 기억된 1문자분의 윤곽데이타를, 예를들어 레이저빔 프린터, CRT사진식자기 또는 각종 표시장치 등의 출력장치(126)에 공급하여 소망의 문자가 복원된다.As described above, one block of contour data reconstructed by each decoder is used for the contour data of one character stored in the one-memory storage unit 125, for example, a laser beam printer, a CRT photographic magnet or various display devices. Supply to the output device 126, the desired character is restored.

이상 기술한 바와같이, 본 발명은 윤곽을 직선부와 곡선부로 식별을 하여, 직선부는 직선으로 나타내고, 곡선부는 곡선근사로 나타내도록 하였으므로 문자화상을 충실하게 재현할 수 있다. 또한 곡선부에 대해서는 가장 적절하게 곡선근사킬 수 있는 샘플 구간에서 순차적으로 구분해 가므로 적은 샘플점수로 충실하게 윤곽을 재현시킬 수 있다. 또한 각 샘플 구간을 곡선근사시키는 n차 다항식은 각 샘플 구간의 시점, 종점의 경사를 고려하여 이 샘플 구간별로 연산하므로, 복잡한 연산없이 고속으로 처리할 수 있다.As described above, according to the present invention, the contour is identified by the straight portion and the curved portion, the straight portion is represented by the straight line, and the curved portion is represented by the curve approximation, so that the character image can be faithfully reproduced. In addition, since the curve portion is sequentially divided in the sample section that can be most appropriately curved, the contour can be faithfully reproduced with a small sample score. In addition, the n-th order polynomial that curve-approximates each sample section is calculated for each sample section considering the inclination of the start point and the end point of each sample section, and thus can be processed at high speed without complicated calculation.

또 본 발명은 윤곽을 3차 다항식으로 근사시키고 있으므로, 종래의 벡터 근사방식의 결점이었던 고 배율변환했을 때의 문자 화상 품질의 열화를 해소할 수 있다.In addition, since the outline is approximated by a cubic polynomial, the deterioration of the character image quality at the time of high magnification conversion, which is a drawback of the conventional vector approximation method, can be eliminated.

이상 설명한 본 발명에 의한 문자 화상 데이타 처리시스템을, 800×800도트로 이루어진 명조체 히라가나 문자 『 あ』에 적용하여 검증한 결과, 소망 문자의 화상에 대한 허용오차를 1도트로 했을 경우, 1.21%의 데이타 압축률을 얻을 수 있었다.As a result of applying the character image data processing system according to the present invention described above to the famous Hiragana character "A" composed of 800 x 800 dots, when the tolerance for the image of the desired character is 1 dot, The data compression rate was obtained.

또, 상기 설명은 문자를 보호화하여 압축할 경우의 설명이지만 문자 이외의 각종 마크, 기호, 회화 등의 화상에 대해서도 같이 취급할 수 있음은 명확하다.In addition, although the above description is a description in the case of protecting and compressing characters, it is clear that various marks, symbols, pictures, and the like other than the characters can be handled in the same manner.

이상 본 발명에 의해 충분히 높은 압축률로 윤곽의 원활함을 충실하게 기억하는 데이타를 고속으로 얻을 수 있는 문자 화상 데이타 처리 시스템을 제공할 수 있다.According to the present invention, it is possible to provide a character image data processing system which can attain high speed data which faithfully stores the smoothness of the contour at a sufficiently high compression ratio.

Claims (1)

문자화상 윤곽을 특정하는 부호와 데이타를 기억하도록 구성된 문자화상 데이타 처리 시스템에 있어서, 문자화상 윤곽을 구성하고 있는 다수의 윤곽점 Qj의 어느 하나를 시점 Pi 및 종점 P+1으로 하는 벡터 Vi에 대해 , 이 벡터의 길이, 및 이 벡터와 상기 윤곽점의 편위량을 구함으로써, 상기 편위량이 소정의 허용치 이하이며, 그 길이 li가 최대로 되는 벡터 Vi를 구하는 벡터 산출수단(42)과 ; 상기 벡터 Vi의 길이 li와 미리 설정한 길이 L를 비교하는데 제 1비교수단(43)과 ; 상기 벡터 Vi와 이 벡터 Vi에 인접하는 벡터 Vi-l와의 교차각 θi과 미리 설정한 각도 θ를 비교하는 제2비교수단(44)과 ; 상기 비교결과가 li > L 일때, 상기 벡터 Vi에 근사한 윤곽구간[Pi, Pi+1]을 직선부로 식별하고, 또 상기 비교결과가 li
Figure kpo00027
L일때 상기 윤곽구간[Pi, Pi+1]을 곡선부로 식별하며, 다시
Figure kpo00028
일때 다음의 벡터에 대해 반복해서 상기 비교를 하고, 벡터 Vi+k에서 li+k>L로 되었을때, 또는 θi+k<θ로 되었을 때 그때까지의 윤곽구간[ Pi, Pi+k]를 하나의 연속된 곡선부로 식별하는 식별수단(45)과 ; 상기 직선부의 시점좌표와, 곡선부에 설정한 각 샘플구간의 시점좌표, 및 각 샘플구간을 근사한 3차 다항식의 계수와 차수를 기억하는 기억수단(50)을 구비하는 것을 특징으로 하는 문자화상 데이타 처리시스템.
In a character image data processing system configured to store code and data for specifying a character image contour, a vector Vi having one of a plurality of contour points Qj constituting the character image contour as the starting point Pi and the end point P + 1. Vector calculating means 42 for obtaining a vector Vi whose deviation amount is equal to or less than a predetermined allowable value and whose length li is maximum by obtaining the length of this vector and the deviation amount of this vector and the contour point; First comparing means 43 for comparing the length li of the vector Vi with a preset length L; Second comparison means (44) for comparing the intersection angle θi between the vector Vi and the vector Vi-l adjacent to the vector Vi and the preset angle θ; When the comparison result is li> L, the contour section [Pi, Pi + 1] approximating to the vector Vi is identified by a straight line, and the comparison result is li
Figure kpo00027
When L, the contour section [Pi, Pi + 1] is identified as a curved portion, and again
Figure kpo00028
When the above vector is repeated, the comparison is repeated. When the vector Vi + k becomes li + k> L, or when θi + k <θ, the contour section [Pi, Pi + k] until one Identification means (45) for identifying a continuous curved portion of the; And a storage means 50 for storing the viewpoint coordinates of the linear section, the viewpoint coordinates of each sample section set in the curve section, and coefficients and orders of the third order polynomial approximating each sample section. Processing system.
KR1019840001671A 1983-10-03 1984-03-30 Apparatus for processing character or pictorial image data KR890003318B1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP58-183071 1983-10-03
JP58183071A JPH0613212B2 (en) 1983-10-03 1983-10-03 Character image data processing method

Publications (2)

Publication Number Publication Date
KR850003013A KR850003013A (en) 1985-05-28
KR890003318B1 true KR890003318B1 (en) 1989-09-16

Family

ID=16129237

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1019840001671A KR890003318B1 (en) 1983-10-03 1984-03-30 Apparatus for processing character or pictorial image data

Country Status (2)

Country Link
JP (1) JPH0613212B2 (en)
KR (1) KR890003318B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8098247B2 (en) 2009-09-24 2012-01-17 Crucs Holdings, Llc Systems and methods for geometric data compression and encryption

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH0831959B2 (en) * 1985-12-18 1996-03-27 富士通株式会社 Image converter
JPS62274472A (en) * 1986-05-23 1987-11-28 Fujitsu Ltd Compression system for pattern data
JPS62296280A (en) * 1986-06-16 1987-12-23 Fujitsu Ltd Restoration and generation system for compressed data
ES2007960A6 (en) * 1988-07-12 1989-07-01 Ona Electro Erosion Two dimensional generating system for the geometry of a model using artificial vision
CA2105125C (en) * 1992-09-01 2000-04-18 Kazuo Toraichi Apparatus and method for inputting, compressing and outputting characters, illustrations, drawings and logomarks
US5623555A (en) * 1994-04-18 1997-04-22 Lucent Technologies Inc. Method and apparatus for handwriting decompression using estimated timing information
KR0181075B1 (en) * 1996-05-08 1999-04-01 배순훈 Adapted borderline coding method
JP2009175834A (en) * 2008-01-22 2009-08-06 Dainippon Printing Co Ltd Terminal and its program
JP2009175836A (en) * 2008-01-22 2009-08-06 Dainippon Printing Co Ltd Information processing device
JP5029963B2 (en) * 2008-01-30 2012-09-19 大日本印刷株式会社 Information processing device
JP5029962B2 (en) * 2008-01-30 2012-09-19 大日本印刷株式会社 Terminal device and program thereof
CN110007854A (en) * 2019-02-21 2019-07-12 湖南大唐先一科技有限公司 One kind being based on time series data compression method and system

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4199815A (en) * 1978-05-12 1980-04-22 Electra Corporation Typesetter character generating apparatus
JPS58134745A (en) * 1982-02-04 1983-08-11 Photo Composing Mach Mfg Co Ltd Compression system of letter and image data

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8098247B2 (en) 2009-09-24 2012-01-17 Crucs Holdings, Llc Systems and methods for geometric data compression and encryption

Also Published As

Publication number Publication date
JPS6075975A (en) 1985-04-30
KR850003013A (en) 1985-05-28
JPH0613212B2 (en) 1994-02-23

Similar Documents

Publication Publication Date Title
KR890003318B1 (en) Apparatus for processing character or pictorial image data
US4189711A (en) Multilevel processing of image signals
GB2147474A (en) Method of processing character or pictorial image data
US5483351A (en) Dilation of images without resolution conversion to compensate for printer characteristics
JP3031613B2 (en) Color / shade image input / output device and input / output method
JP3037383B2 (en) Image processing system and method
EP0811954B1 (en) Image editing apparatus and image editing method
JPH08275180A (en) Contour encoding device
JP2007151085A (en) Compression method of image data, expansion method, and their devices
US5644654A (en) Image processing apparatus capable of efficient coding of complex shape information
US5420942A (en) Methods and devices for self-correcting video compression
KR890003320B1 (en) Apparatus for processing character or pictorial image data
CN112118449B (en) Method and device for compressing and decompressing image
JPS6233948B2 (en)
KR890003316B1 (en) Apparatus for processing character or pictorial image data
KR890003317B1 (en) Apparatus for processing character or pictorial image data
KR890003319B1 (en) Apparatus for processing character or pictorial image data
JP2000059774A (en) Video encoding controller
JPS63249194A (en) Image data compression system
JPH0125072B2 (en)
JPH07193809A (en) Coding and decoding method for picture data
JPS58134746A (en) Compression system of letter and image data
JP2646479B2 (en) Communication device for character and graphics
KR900002811B1 (en) Method for compressing character or pictorial image data
EP0783230B1 (en) Transform coding of arbitrarily shaped image segments

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

Year of fee payment: 10

LAPS Lapse due to unpaid annual fee