JP3155595B2 - Encoding method and apparatus - Google Patents

Encoding method and apparatus

Info

Publication number
JP3155595B2
JP3155595B2 JP01079092A JP1079092A JP3155595B2 JP 3155595 B2 JP3155595 B2 JP 3155595B2 JP 01079092 A JP01079092 A JP 01079092A JP 1079092 A JP1079092 A JP 1079092A JP 3155595 B2 JP3155595 B2 JP 3155595B2
Authority
JP
Japan
Prior art keywords
edge
data
encoding
scanning line
case
Prior art date
Legal status (The legal status 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 status listed.)
Expired - Fee Related
Application number
JP01079092A
Other languages
Japanese (ja)
Other versions
JPH05205069A (en
Inventor
昭宏 片山
良弘 石田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP01079092A priority Critical patent/JP3155595B2/en
Priority to DE69332918T priority patent/DE69332918D1/en
Priority to EP93100949A priority patent/EP0552791B1/en
Publication of JPH05205069A publication Critical patent/JPH05205069A/en
Priority to US08/377,509 priority patent/US5748777A/en
Application granted granted Critical
Publication of JP3155595B2 publication Critical patent/JP3155595B2/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/20Contour coding, e.g. using detection of edges

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)
  • Image Processing (AREA)
  • Image Generation (AREA)

Description

【発明の詳細な説明】DETAILED DESCRIPTION OF THE INVENTION

【0001】[0001]

【産業上の利用分野】本発明は符号化方法及びその装置
に係り、詳しくは複数の線要素でもって構成された閉輪
郭データから直接、例えばファクシミリ用の符号データ
を生成する符号化方法及びその装置に関するものであ
る。
BACKGROUND OF THE INVENTION 1. Field of the Invention The present invention relates to an encoding method and apparatus, and more particularly, to an encoding method for directly generating, for example, facsimile code data from closed contour data composed of a plurality of line elements, and a method thereof. It concerns the device.

【0002】[0002]

【従来の技術】この種の画像処理装置においては、画像
データの閉領域内部を塗り潰すことは基本的な画像処理
機能の1つであり、これまで種々の塗り潰し方法が提案
されている。最も基本的な方法は、ソフトウェアによっ
てランダム・アクセス・メモリ(RAM)の各画素ライ
ン毎に塗り潰し範囲を逐一指定し、指定された範囲のラ
イン画素を塗り潰すものである。
2. Description of the Related Art In this type of image processing apparatus, filling an inside of a closed area of image data is one of basic image processing functions, and various filling methods have been proposed. The most basic method is to specify a filling range one by one for each pixel line of a random access memory (RAM) by software, and fill the line pixels in the specified range.

【0003】このような方法の代表例としては、文献
「Fundamentals of Interactive Computer Graphics 」
(J.D.FOLEY/A/VAN DAN共著 1982年Addison - Wesley刊
pp.456〜460)に記載されている技術がある。
[0003] A typical example of such a method is described in the document "Fundamentals of Interactive Computer Graphics".
(JDFOLEY / A / VAN DAN co-authored in 1982 Addison-Wesley
pp. 456 to 460).

【0004】この方法を簡単に説明すると以下に示す通
りである。
[0004] This method is briefly described below.

【0005】頂点データ列で与えられた図2に示す様な
閉図形F1において、この図形を構成する各稜線エッジ
e1〜e10についてそれぞれ図4で示すパケットデー
タを生成し、これらを図5で示すエッジテーブル(E
T)の形にまとめる。このとき、X軸に水平なエッジを
除き、水平でないエッジのみに対してパケットデータを
作成する。エッジテーブル(ET)は、画像メモリが格
納し得る走査線ラスタ数に等しいだけのポインタパケッ
トテーブルAy0〜Ayn(画像が第0ラスタから第n
ラスタまでのn+1ラスタから成る場合)を有してい
る。そして、各稜線エッジe1〜e10の中でX軸に対
して水平でないものに対して、y座標値が小さい方の端
点のy座標値に対応したポインタパケットテーブルに、
それらそれぞれのエッジのパケットデータをリスト構造
で接続する。複数のパケットが同じポインタパケットか
らリスト構造をなす場合には、それぞれのパケット内の
y座標値が小さい方の端点のxの値(xmin )で昇順に
ソートしてリスト構造を形成する。対応するエッジパケ
ットのないポインタパケットには、その旨を示すマーカ
ーコード“λ”を格納する。また、各稜線のy座標方向
の極小値あるいは極大でない場合には、図形要素内外判
定での誤判定を引き起こさないために、本来のy座標値
より1走査分だけ該稜線に沿って進んだ位置をもってy
座標値の小さい方の端点としてエッジテーブル(ET)
を生成する。図2では、e3の端点B,e9の端点I,
e8の端点Gがこれに該当する。
In a closed figure F1 shown in FIG. 2 given by a vertex data sequence, packet data shown in FIG. 4 is generated for each of the edge lines e1 to e10 constituting the figure, and these are shown in FIG. Edge table (E
T). At this time, the packet data is created only for the non-horizontal edges except for the edges horizontal to the X-axis. The edge table (ET) has pointer packet tables Ay0 to Ayn (images from the 0th raster to the nth raster
(N + 1 rasters up to a raster). Then, for each of the ridge line edges e1 to e10 that are not horizontal to the X axis, a pointer packet table corresponding to the y coordinate value of the end point having the smaller y coordinate value is set as follows:
The packet data of each edge is connected in a list structure. When a plurality of packets form a list structure from the same pointer packet, the list structure is formed in ascending order by the x value (x min ) of the end point having the smaller y coordinate value in each packet. A marker code “λ” indicating this is stored in a pointer packet having no corresponding edge packet. If the ridgeline is not at the minimum value or the maximum value in the y-coordinate direction, the position advanced along the ridgeline by one scan from the original y-coordinate value so as not to cause an erroneous determination in the graphic element inside / outside determination. With y
Edge table (ET) as the end point with the smaller coordinate value
Generate In FIG. 2, the end point B of e3, the end point I of e9,
The end point G of e8 corresponds to this.

【0006】それぞれの稜線エッジに対応する各エッジ
パケットAe1〜Ae10には、対応する稜線エッジe
1〜e10のy座標が大きい方の端点のyの値(ymax
e1〜ymax e10)とy座標が小さい方の端点のxの
値(xmin e1〜xmin e10)と、y座標値が1だけ
増加したときのx座標値の増分(Δxe1〜Δxe1
0)と、y座標が小さい方の端点のy座標値が共通する
稜線のエッジパケットをx座標値の小さいものから昇べ
きにつなげるポインタ(Pe1〜Pe10)とが格納さ
れている。尚、ポインタPe1〜Pe10における
“λ”は、これ以上結ぶエッジパケットがないことを意
味している(図5)。
Each edge packet Ae1 to Ae10 corresponding to each ridge edge has a corresponding ridge edge e
The value of y at the end point of the larger y coordinate of 1 to e10 (y max
e1~y max e10) and the value of x of the end points towards the y-coordinate is smaller (x min e1~x min e10), increment the x-coordinate value when the y-coordinate value is increased by 1 (Δxe1~Δxe1
0) and pointers (Pe1 to Pe10) for connecting the edge packets of the ridge line having the same y coordinate value of the end point with the smaller y coordinate in ascending order from the one with the smaller x coordinate value. Note that “λ” in the pointers Pe1 to Pe10 means that there are no more edge packets connected (FIG. 5).

【0007】なお、x方向は走査線方向(図示で右方
向)に一致し、y方向は走査線のインクリメント方向
(図示で下方向)に一致している。
The x direction coincides with the scanning line direction (right direction in the drawing), and the y direction coincides with the scanning line increment direction (down direction in the drawing).

【0008】このようにして作成されたエッジテーブル
(ET)を利用して、塗り潰し処理を実行する。まず、
エッジテーブル(ET)にエッジパケットを有する最少
のy座標値に走査線y座標値をセットする。次いで、そ
の走査線y座標値についてエッジパケットを結び、アク
ティブエッジテーブル(AET)(図6参照)を空に初
期化する。
Using the edge table (ET) created in this way, a filling process is executed. First,
The scan line y coordinate value is set to the minimum y coordinate value having an edge packet in the edge table (ET). Next, an edge packet is connected to the y-coordinate value of the scanning line, and an active edge table (AET) (see FIG. 6) is initialized to empty.

【0009】これ以降、アクティブエッジテーブル(A
ET)及びエッジテーブル(ET)が共に空になるま
で、以下の処理を繰り返す。 (1)アクティブエッジテーブル(AET)のx座標値
(xmin )でのソート順を保ちながら、そのときのエッ
ジテーブル(ET)の情報とアクティブエッジテーブル
(AET)との情報を併合して、走査線y座標値にかか
るエッジパケットを結ぶ新たなアクティブエッジテーブ
ル(AET)を作成する。 (2)アクティブエッジテーブル(AET)のx座標値
(xmin )が小さい方から2個ずつを対として、その間
を図形要素内の塗り潰し区間とし、その区間内の塗り潰
しを実行する。 (3)走査線y座標値をy座標が大きい方の端点のyの
値(ymax )とするエッジパケットを次の走査線におけ
る動作のためにアクティブエッジテーブル(AET)か
ら削除する。 (4)アクティブエッジテーブル(AET)に残ってい
るエッジパケットについて、次の走査線における動作の
ために増分データ(Δx)を利用して、x座標値(x
min )を更新する。即ち、(xmin +Δx)をもって、
新しくxmin とし直す。 (5)かかるx座標値(xmin )の更新後、x座標値
(xmin )に基づいてソーティングし直す。 (6)走査線y座標をインクリメントして(1)の処理
に戻る。
Thereafter, the active edge table (A
The following processing is repeated until both the ET) and the edge table (ET) become empty. (1) While maintaining the sort order at the x coordinate value (x min ) of the active edge table (AET), the information of the edge table (ET) at that time and the information of the active edge table (AET) are merged, A new active edge table (AET) that connects the edge packets related to the scanning line y coordinate value is created. (2) Two pairs each having the smallest x-coordinate value (x min ) of the active edge table (AET) are set as a pair, the interval between them is defined as a filled section in the graphic element, and the filling in the section is executed. (3) The edge packet whose y-coordinate value of the scanning line is the y value (y max ) of the end point with the larger y-coordinate is deleted from the active edge table (AET) for the operation on the next scanning line. (4) For the edge packet remaining in the active edge table (AET), the x coordinate value (x
min ). That is, with (x min + Δx),
Newly set x min . (5) Such x-coordinate values (x min) after updating, re-sorted based on the x coordinate value (x min). (6) The scan line y coordinate is incremented, and the process returns to (1).

【0010】この様にして、塗り潰しが実行される。こ
こで、図6は走査線y座標値が“14”の場合の図2に
示す図形F1に関するアクティブエッジテーブル(AE
T)である。また、図7は同じく各走査線y座標値(0
〜19)に亙ってのアクティブエッジテーブル(AE
T)の状態の推移を示したものである。
[0010] In this manner, the filling is performed. Here, FIG. 6 shows an active edge table (AE) for the graphic F1 shown in FIG. 2 when the scanning line y coordinate value is "14".
T). FIG. 7 also shows the y coordinate values (0
To the active edge table (AE)
12 shows the transition of the state of T).

【0011】この他にも、ハードウェアにより高速に塗
り潰しを行うために種々の手法が提案されている。
In addition, various techniques have been proposed for performing filling at high speed by hardware.

【0012】この種の方法は、図形の輪郭を定める画素
のみを画像メモリ上に描画した後、この画像メモリをラ
スタ走査し、走査線上の奇数番目の輪郭線ドットで塗り
潰しを開始し、偶数番目の輪郭線ドットで塗り潰しを終
了する(以降、奇偶反転法と呼ぶ)ものである。
In this type of method, after only pixels that define the outline of a figure are drawn on an image memory, this image memory is raster-scanned, filling is started with odd-numbered outline dots on a scanning line, and even-numbered outline dots are started. (The odd / even reversal method).

【0013】しかし、このような奇偶反転法を用いる場
合は、単純に輪郭の描画を行うと、図8のL1,L2,
L3,L4,L5のように、塗り潰されるべきではない
部分が塗り潰され、塗り潰されるべき部分が塗り潰され
ない(ラインL3の破線部分)という問題があった。
However, in the case of using such an odd-even inversion method, simply drawing an outline results in L1, L2, L2 in FIG.
There is a problem in that a portion that should not be painted, such as L3, L4, and L5, is painted, and a portion that should be painted is not painted (the broken line portion of the line L3).

【0014】これをふまえて、輪郭描画に規則を設定し
て、改善を計る提案もなされている。例えば、特公平1
−54752号公報は、下記の5つの規則に従った輪郭
画素の書き込みを開示している。
In view of the above, there has been proposed a method of setting a rule for contour drawing to measure an improvement. For example, Tokuhei 1
Japanese Patent No. 54752 discloses the writing of contour pixels according to the following five rules.

【0015】規則1:水平な線セグメントは書かない。Rule 1: Do not write horizontal line segments.

【0016】規則2:各線セグメントは各ライン当り1
画素で表す。
Rule 2: Each line segment is 1 per line
Expressed in pixels.

【0017】規則3:各線ベクトルの始点は書かない。Rule 3: The starting point of each line vector is not written.

【0018】規則4:輪郭線画素はこの画素を書込もう
としているメモリ・アドレスに記憶されている画素デー
タとの排他的論理和を取って、その結果を書き込む。
Rule 4: The contour line pixel performs an exclusive OR operation with the pixel data stored at the memory address where the pixel is to be written, and writes the result.

【0019】規則5:各線セグメントは上から下または
下から上への一方向で指定する。
Rule 5: Each line segment is specified in one direction from top to bottom or bottom to top.

【0020】上述した規則の内、規則1は図8のライン
L2やL4のように水平な輪郭線部分に含まれる輪郭画
素P1〜P2やP4〜P3によって1ラインに奇数個の
輪郭画素が生じるのを防止している。
Of the above-mentioned rules, rule 1 is that an odd number of contour pixels are generated in one line by contour pixels P1 to P2 and P4 to P3 included in a horizontal contour line like lines L2 and L4 in FIG. Is prevented.

【0021】規則2は線セグメントの角度に関係なく、
常に1ライン当り1画素で輪郭線を表すためのものであ
る。
Rule 2 states that regardless of the angle of the line segment,
This is for always representing the outline with one pixel per line.

【0022】規則3は上向きまたは下向きの頂点を除去
するものである。規則5に従って例えば上から下への一
方向で線セグメントを指定するものとすれば、規則3は
図8の上向きの頂点の輪郭線画素P5およびP6を除去
する。
Rule 3 is to remove an upward or downward vertex. If line segments are specified according to rule 5, for example, in one direction from top to bottom, rule 3 removes the contour pixels P5 and P6 of the upward vertices in FIG.

【0023】規則4及び規則5は、規則3によって処理
される頂点と反対向きの頂点の輪郭線画素(この例では
P7)を除去するものである。
Rules 4 and 5 remove the contour pixels (P7 in this example) at the vertices opposite to the vertices processed by Rule 3.

【0024】[0024]

【発明が解決しようとする課題】しかしながら上記従来
例では、輪郭データから中塗りを行うアルゴリズムは示
されているが、輪郭線データから直接、伝送用の符号デ
ータを生成するアルゴリズムは示されていない。上記従
来例をそのまま適用しようとすれば、輪郭線で囲まれる
領域の中塗りを行ってドットデータに展開し、その後に
これを走査して符号データを生成しなければならず、処
理が煩雑である。
However, in the above-mentioned conventional example, an algorithm for performing intermediate coating from contour data is shown, but an algorithm for directly generating transmission code data from contour data is not shown. . If the above conventional example is to be applied as it is, it is necessary to paint the area surrounded by the outline and develop it into dot data, and then scan this to generate code data, which makes the processing complicated. is there.

【0025】本発明は従来技術に鑑みなされたものであ
り、輪郭線データから一旦ドットデータに展開すること
なく符号データを得ることのできる符号化方法及びその
装置を提供しようとするものである。
The present invention has been made in view of the prior art, and it is an object of the present invention to provide an encoding method and apparatus capable of obtaining encoded data without first expanding dot data from contour data.

【0026】[0026]

【課題を解決するための手段】上記目的を達成するため
に本発明の符号化方法は以下のような工程を備える。即
ち、輪郭の頂点座標を含むベクトルデータを入力する入
力工程と、前記ベクトルデータの各頂点座標同士を接続
するエッジと、前記ベクトルデータの座標軸のいずれか
一方に平行な走査線との交点座標を求める交点検出工程
と、前記交点検出工程で検出された交点座標に基づいて
前記走査線毎に白ラン、黒ランの長さを表わす符号化デ
ータを作成する符号化工程とを有し、前記符号化工程で
は前記ベクトルデータに基づく輪郭を表すドットデータ
に展開することなく前記符号化データを作成することを
特徴とする。
To achieve the above object, the encoding method of the present invention comprises the following steps. That is, an input step of inputting vector data including the vertex coordinates of the contour, an edge connecting the vertex coordinates of the vector data, and an intersection coordinate of a scanning line parallel to any one of the coordinate axes of the vector data. An intersection detection step to determine, and an encoding step of creating encoded data representing the length of a white run or a black run for each of the scanning lines based on the intersection coordinates detected in the intersection detection step. In the converting step, the encoded data is created without being developed into dot data representing an outline based on the vector data.

【0027】上記目的を達成するために本発明の符号化
装置は以下のような構成を備える。即ち、輪郭の頂点座
標を含むベクトルデータを入力する入力手段と、前記ベ
クトルデータの各頂点座標同士を接続するエッジと、前
記ベクトルデータの座標軸のいずれか一方に平行な走査
線との交点座標を求める交点検出手段と、前記交点検出
手段により検出された交点座標に基づいて前記走査線毎
に白ラン、黒ランの長さを表わす符号化データを作成す
る符号化手段とを有し、前記符号化手段は前記ベクトル
データに基づく輪郭を表すドットデータに展開すること
なく前記符号化データを作成することを特徴とする。
In order to achieve the above object, the coding apparatus of the present invention has the following configuration. That is, input means for inputting vector data including vertex coordinates of the contour, an edge connecting each vertex coordinate of the vector data, and an intersection coordinate of a scanning line parallel to one of the coordinate axes of the vector data are obtained. An intersection detecting means to be obtained, and encoding means for creating encoded data representing the length of a white run or a black run for each scanning line based on the intersection coordinates detected by the intersection detecting means, The encoding means creates the encoded data without expanding the dot data representing the contour based on the vector data.

【0028】[0028]

【作用】以上の構成において、輪郭の頂点座標を含むベ
クトルデータを入力し、そのベクトルデータの各頂点座
標同士を接続するエッジと、そのベクトルデータの座標
軸のいずれか一方に平行な走査線との交点座標を求め、
その検出された交点座標に基づいて走査線毎に白ラン、
黒ランの長さを表わす符号化データを作成することによ
り、ベクトルデータに基づく輪郭を表すドットデータに
展開することなく符号化データを作成するように動作す
る。
In the above arrangement, vector data including the vertex coordinates of the contour is input, and the edge connecting the vertex coordinates of the vector data and the scanning line parallel to one of the coordinate axes of the vector data are determined. Find the intersection coordinates,
White run for each scanning line based on the detected intersection coordinates,
By generating the encoded data representing the length of the black run, the operation is performed so as to create the encoded data without developing the dot data representing the contour based on the vector data.

【0029】[0029]

【実施例】以下、添付図面を参照して本発明の好適な実
施例を詳細に説明する。 <動作概要の説明>先ず、実施例における動作概要を簡
単に説明する。
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS Preferred embodiments of the present invention will be described below in detail with reference to the accompanying drawings. <Description of Operation Outline> First, an operation outline in the embodiment will be briefly described.

【0030】本実施例では、図形の輪郭として、所定方
向に方向付けられた輪郭を用いる。即ち、図3に示すよ
うに、扱う図形の輪郭を全て時計の回転方向(以下、右
回り)に連なるアウトラインベクトル(線要素)の集ま
り、もしくは、扱う図形の輪郭を全て反時計回りの回転
方向(以下、左回り)に連なるアウトラインベクトルの
集まりとして表す。ここで、時計の回転方向に連なるア
ウトラインベクトルとは、そのアウトラインベクトルの
右側を塗り潰すと該当図形が塗り潰されることを意味す
ると考えて良い(図9)。また、反時計の回転方向に連
なるアウトラインベクトルとは、そのアウトラインベク
トルの左側を塗り潰すと該当図形が塗り潰されるもので
ある(図10)。
In this embodiment, a contour oriented in a predetermined direction is used as a contour of a figure. That is, as shown in FIG. 3, a collection of outline vectors (line elements) connected to the clock in the clockwise direction (hereinafter, clockwise) as shown in FIG. (Hereinafter, counterclockwise). Here, an outline vector that continues in the clockwise direction may be considered to mean that if the right side of the outline vector is painted, the corresponding figure is painted (FIG. 9). An outline vector connected in the counterclockwise rotation direction is a figure which is painted when the left side of the outline vector is painted (FIG. 10).

【0031】さて本実施例では、各アウトラインベクト
ルの向き及び傾斜を判断し、かつ又、各アウトラインベ
クトルの直前のアウトラインベクトルの向き及び傾斜、
及び直後のアウトラインベクトルの向き及び傾斜によっ
て、該当ベクトルの各端点及び両端点以外のベクトル上
の端点を閉区間をなす境界点の判定に用いるか否かを判
定する。しかる後に、各走査毎に該走査線と交差する奇
数番目の境界判定用エッジから偶数番目の境界判定用エ
ッジまでを黒ラン長として計算し、偶数番目から奇数番
目を白ラン長として計算して、符号データを出力する。 <装置構成の説明>図1は、本実施例の符号化装置をフ
ァクシミリ装置に適用した例を示すブロック図である。
図中、101は装置全体を制御する制御部、102は原
稿画像を光電的に読取って入力する読取部、103はア
ウトラインベクトルデータで文書データ等を記憶してい
る輪郭データファイルである。104は操作部で、オペ
レータにより操作されて原稿画像の送信指示等が入力さ
れる。105は表示部で、オペレータへの各種メッセー
ジや機器の状態等を表示する。106は、例えば感熱法
や電子写真法等により受信画像或いは読取部102で読
み取った原稿画像等を記録する記録部である。107は
画像データの変調或いは復調を行うモデム、108は通
信網制御回路(NCU)である。
In this embodiment, the direction and inclination of each outline vector are determined, and the direction and inclination of the outline vector immediately before each outline vector are determined.
Then, based on the direction and inclination of the outline vector immediately after, it is determined whether or not the endpoints on the vector other than the endpoints and the endpoints of the corresponding vector are used for determining the boundary points forming a closed section. Thereafter, for each scan, from the odd-numbered boundary determination edge intersecting the scan line to the even-numbered boundary determination edge is calculated as a black run length, and the even to odd numbers are calculated as white run lengths. , And outputs encoded data. <Description of Apparatus Configuration> FIG. 1 is a block diagram showing an example in which the encoding apparatus according to the present embodiment is applied to a facsimile apparatus.
In the figure, 101 is a control unit for controlling the entire apparatus, 102 is a reading unit for reading and inputting a document image photoelectrically, and 103 is an outline data file storing document data as outline vector data. An operation unit 104 is operated by an operator to input a document image transmission instruction and the like. A display unit 105 displays various messages to the operator, device status, and the like. A recording unit 106 records a received image or a document image read by the reading unit 102 by, for example, a thermal method or an electrophotographic method. Reference numeral 107 denotes a modem for modulating or demodulating image data, and reference numeral 108 denotes a communication network control circuit (NCU).

【0032】次に制御部101の構成を説明すると、1
11はROM112に記憶された制御プログラムに従っ
て全体の制御を行うマイクロプロセッサ等のCPU、1
12はCPU111の制御プログラムや各種データを記
憶しているROM、113はCPU111のワークエリ
アとして使用されると共に各種データを記憶しているR
AMである。114はバッファメモリで、読取部102
で読み取った画像データ或いは輪郭データファイル10
3より読出したアウトラインベクトルデータを記憶して
いる。115は読取部で読み取った原稿画像データを符
号化すると共に、本実施例の特徴であるアウトラインベ
クトルデータより符号化データを作成する符号化部であ
る。116は復号化部で、受信した符号化データを復号
して画像データを作成している。117は送受信バッフ
ァで、送信する符号化された画像データ或いは受信した
符号化画像データを記憶する。尚、以下の説明では、読
取部で読み取った画像データを符号化して送信する処理
は公知であるので、輪郭データに基づいて符号化する処
理について説明する。
Next, the configuration of the control unit 101 will be described.
Reference numeral 11 denotes a CPU such as a microprocessor for performing overall control according to a control program stored in a ROM 112;
A ROM 12 stores a control program of the CPU 111 and various data. An R 113 is used as a work area of the CPU 111 and stores various data.
AM. Reference numeral 114 denotes a buffer memory,
Data or contour data file 10 read by
3 is stored. Reference numeral 115 denotes an encoding unit that encodes the document image data read by the reading unit and creates encoded data from outline vector data, which is a feature of the present embodiment. A decoding unit 116 decodes the received encoded data to create image data. A transmission / reception buffer 117 stores encoded image data to be transmitted or received encoded image data. In the following description, since the process of encoding and transmitting image data read by the reading unit is known, the process of encoding based on contour data will be described.

【0033】輪郭データファイル103に記憶された輪
郭データは、図11に示すように、対象とする画像内に
含まれている閉ループの数を示すデータ(N)と、各閉
ループを構成する頂点の数(L)を示すデータ群、及び
それら各頂点の座標値(x,y)とで構成される。ただ
し、各閉ループにおける各頂点は、それぞれの閉ループ
上で予め方向づけられた順番に従って隣合う頂点の関係
を維持したままのデータの集まりとして表現される。
As shown in FIG. 11, the contour data stored in the contour data file 103 includes data (N) indicating the number of closed loops included in the target image, and vertexes of each closed loop. It is composed of a data group indicating the number (L) and the coordinate values (x, y) of each vertex. However, each vertex in each closed loop is expressed as a collection of data while maintaining the relationship between adjacent vertices in a predetermined order on each closed loop.

【0034】先に説明したように本実施例では、輪郭デ
ータを所定方向に並んだデータの集まりとしてとらえて
いる。例えば、図3に示したのは、右回りアウトライン
データの例で、その輪郭データは図12に示した如くに
なる。図12において、図3の図形F1のアウトライン
は、A→B→C→D→E→F→G→H→I→J→Aの順
にA点を開始点として右まわりに一巡する点列として表
現されている。図12では、閉ループの数(N)が
“1”、頂点の数(L)は“10”であり、その後に各
頂点の座標値が続いている。
As described above, in this embodiment, the outline data is regarded as a group of data arranged in a predetermined direction. For example, FIG. 3 shows an example of clockwise outline data, and the outline data is as shown in FIG. In FIG. 12, the outline of the graphic F1 in FIG. 3 is a point sequence starting from point A in the order of A → B → C → D → E → F → G → H → I → J → A. Is expressed. In FIG. 12, the number (N) of closed loops is “1”, the number (L) of vertices is “10”, and the coordinate value of each vertex follows.

【0035】以下、本実施例では、図3に示すように座
標の原点(0,0)は画像の左上隅にあるものとし、主
走査方向(右方向)をx軸に、副走査方向(縦方向)を
y軸として説明する。また、アウトラインは、右回りの
データ表現をとるものとして説明を進める。尚、各閉ル
ープ内の始点はループ上の任意の点でよい。 <主処理の説明>図13は本実施例のファクシミリ装置
におけるCPU111の動作処理手順を示すフローチャ
ートで、以下にそれを説明する。
In the present embodiment, as shown in FIG. 3, the origin (0, 0) of the coordinates is assumed to be at the upper left corner of the image, the main scanning direction (right direction) is set on the x-axis, and the sub-scanning direction ( The vertical direction is described as the y-axis. The outline will be described assuming clockwise data expression. The starting point in each closed loop may be any point on the loop. <Description of Main Processing> FIG. 13 is a flowchart showing the operation processing procedure of the CPU 111 in the facsimile apparatus of the present embodiment, which will be described below.

【0036】ステップS1でその処理を開始するとステ
ップS2へ進み、操作部104より輪郭データのファク
シミリ送信指示が入力されたかをみる。送信指示が入力
されるとステップS3に進み、輪郭データファイル10
3より輪郭データを入力してバッファメモリ104に記
憶する。尚、ここで輪郭データとは、前述したように図
11に示す形式で表現されたアウトラインベクトルデー
タ群である。次にステップS4に進み、図21に示した
規則に従って、前述した図4に示すデータ形式で、各エ
ッジに対するデータを作成し、図5に示した形式のエッ
ジテーブル(ET)を作成して、ステップS5へ進む。
尚、ステップS4のエッジテーブル作成処理の詳細は詳
しく後述する。
When the processing is started in step S1, the flow advances to step S2 to check whether or not a facsimile transmission instruction of the outline data is input from the operation unit 104. When the transmission instruction is input, the process proceeds to step S3, where the contour data file 10
3 and stores the data in the buffer memory 104. Here, the outline data is an outline vector data group expressed in the format shown in FIG. 11 as described above. Next, in step S4, data for each edge is created in the data format shown in FIG. 4 according to the rule shown in FIG. 21, and an edge table (ET) in the format shown in FIG. Proceed to step S5.
The details of the edge table creation processing in step S4 will be described later in detail.

【0037】次にステップS5では注目する走査線位置
をページ内の先頭の走査線位置にセットする。即ち、y
=0の走査線位置とする。また、前述の図6に示したよ
うにアクティブエッジポインタ領域を確保する。そして
ステップS6へ進み、注目走査位置における、前述の図
6の如き形式のアクティブエッジテーブル(AET)を
生成する。これに基づき、ステップS7において、白ラ
ン,黒ランのラン長を計算し、それぞれのラン長に応じ
たハフマン符号を出力する。このステップS7の処理内
容も詳しく後述する。
Next, in step S5, the scanning line position of interest is set to the first scanning line position in the page. That is, y
= 0 scanning line position. Also, an active edge pointer area is secured as shown in FIG. Then, the process proceeds to step S6, where an active edge table (AET) of the format as shown in FIG. Based on this, in step S7, the run lengths of the white run and the black run are calculated, and a Huffman code corresponding to each run length is output. The processing content of this step S7 will be described later in detail.

【0038】次にステップS8に進み、注目する走査線
位置を1ライン進める。即ち、それまでy=iの走査位
置を注目していたなら、y=i+1とする。そして、ス
テップS9へ進み、ページ内の最終走査線位置までの処
理が終了したか否かを判定する。最終走査線位置まで終
了している場合はステップS10へ進んで一連の処理を
終了する。ステップS10で最終走査線位置までは終了
していない場合はステップS6へ戻り、次ラインの処理
を続ける。尚、この最終走査線か否かの判定は、図示せ
ぬルーチンにおいて、描画しようとするページ内に含ま
れる走査線数を予め記憶しておき、この走査線数と現在
の注目走査線位置とを比較することにより判定する。 <エッジテーブル作成処理の説明>次に図14を参照し
て、図13のステップS4のエッジテーブル(ET)作
成処理の詳細を説明する。尚、このエッジテーブルはR
AM113内に作成される。
Next, the flow advances to step S8 to advance the target scanning line position by one line. That is, if the scanning position of y = i has been noticed, y = i + 1 is set. Then, the process proceeds to step S9, and it is determined whether the processing up to the last scanning line position in the page has been completed. If the processing has been completed up to the last scanning line position, the process proceeds to step S10, and a series of processing ends. If the processing has not been completed up to the last scanning line position in step S10, the process returns to step S6, and the processing of the next line is continued. The determination as to whether or not this is the last scanning line is made by storing the number of scanning lines included in the page to be drawn in advance in a routine (not shown), and determining the number of scanning lines and the current scanning line position of interest. Are determined by comparing. <Description of Edge Table Creation Processing> Next, with reference to FIG. 14, details of the edge table (ET) creation processing in step S4 of FIG. 13 will be described. This edge table is R
It is created in the AM 113.

【0039】このエッジテーブルの作成処理を開始する
とステップS51へ進み、エッジテーブル(ET)の初
期化を行う。即ち、図15に示すように、生成しようと
しているページ内に含まれる走査線(ここでは、y=0
〜NまでのN+1ライン)分のアドレスポインタ(以
下、ポインタパケットとも呼ぶ)領域Ay0〜AyNを
RAM113上に確保し、その各領域に参照データは存
在しないことを示すマーカー値“λ”を格納する。次に
ステップS52では、図11に示される形式で与えられ
るアウトラインデータの閉ループ数(N)を参照し、ス
テップS53に進む。ステップS53では、この閉ルー
プ数(N)が“0”よりも大きな値であるか否かを調
べ、0よりも大きな値でなければ、即ち、閉ループが存
在しない時はステップS68へ進み、その一連の処理を
終えてメイン処理に復帰する。一方、閉ループが存在す
る時はステップS54へ進む。
When the process of creating the edge table is started, the process proceeds to step S51, where the edge table (ET) is initialized. That is, as shown in FIG. 15, a scanning line (here, y = 0) included in the page to be generated
Address pointer (hereinafter also referred to as pointer packet) areas Ay0 to AyN for (N + 1 lines from N to N) are secured in the RAM 113, and a marker value “λ” indicating that no reference data exists is stored in each area. . Next, in step S52, the process proceeds to step S53 with reference to the closed loop number (N) of the outline data given in the format shown in FIG. In step S53, it is determined whether or not the number of closed loops (N) is greater than "0". If the number is not greater than 0, that is, if there is no closed loop, the process proceeds to step S68. And returns to the main process. On the other hand, when a closed loop exists, the process proceeds to step S54.

【0040】このステップS54では、図11で与えら
れるアウトラインデータの各ループ内頂点数テーブルの
内、第0ループ内の頂点数を格納してある位置にループ
内頂点数テーブルポインタを初期化してステップS55
へ進む。ステップS55では、ループ内頂点数テーブル
ポインタにより指示される位置のループ内頂点数データ
を参照してステップS56へ進み、ループ内の頂点数が
“2”以上であればステップS57へ進む。
In step S54, a loop vertex count table pointer is initialized to a position where the vertex count in the zeroth loop is stored in the loop vertex count table of the outline data given in FIG. S55
Proceed to. In step S55, the process proceeds to step S56 with reference to the in-loop vertex number data at the position indicated by the in-loop vertex number table pointer. If the number of vertices in the loop is equal to or more than "2", the process proceeds to step S57.

【0041】ステップS57では、該当ループの最終頂
点を始点として、最初の頂点を終点とするエッジを現エ
ッジ(注目エッジ)とみなし、このエッジの向きとxの
増分を算出する。即ち、今当該エッジの始点座標を(x
start ,ystart )、終点座標を(xend ,yend )と
する時、ystart =yend の時、エッジの向きはX軸に
対して水平であるためx座標の増分は算出しない。また
start =yend の時、xstart >xend ならば左向き
エッジとし、xstart <xend ならば右向きエッジとす
る。また、この時、xstart =xend であれば、始点と
終点が一致している一点のみのエッジを意味し、その前
もしくは後のエッジの一部となっているか孤立点のいず
れかである。このようなエッジは図11で示されるデー
タを形成する際に、輪郭を構成するエッジの頂点列か
ら、あらかじめ除去されているものとする。
In step S57, the edge having the last vertex of the loop as the start point and the first vertex as the end point is regarded as the current edge (edge of interest), and the direction of this edge and the increment of x are calculated. In other words, the start point coordinates of the edge are set to (x
start , y start ), and the end point coordinates are (x end , y end ). When y start = y end , the edge direction is horizontal with respect to the X axis, so that the x coordinate increment is not calculated. Also, when y start = y end, the edge is a left-facing edge if x start > x end and a right-facing edge if x start <x end . Also, at this time, if x start = x end , it means only one edge where the start point and the end point are coincident, and it is either a part of the previous or subsequent edge or an isolated point . It is assumed that such an edge has been removed in advance from the vertex sequence of the edge constituting the contour when forming the data shown in FIG.

【0042】ystart >yend の時は、エッジの向きを
上向きと判定し、xの増分は(xst art −xend )/
(ystart −yend )で算出する。
When y start > y end , the direction of the edge is determined to be upward, and the increment of x is (x st art -x end ) /
(Y start −y end ).

【0043】ystart <yend の時は、エッジの向きを
下向きと判定し、xの増分は(xen d −xstart )/
(yend −ystart )で算出する。
[0043] y start <When y end The the orientation of the edge determined to downward increment of x (x en d -x start) /
(Y end −y start ).

【0044】こうしてステップS57の現エッジデータ
の作成処理を終えるとステップS58へ進み、当該ルー
プの最初の頂点(第0頂点)を始点として、次の頂点
(第1頂点)を終点とするエッジを次エッジ(注目エッ
ジに対して輪郭ループ上の次に接続しているエッジ、即
ち注目エッジの終点を始点とするエッジ)とし、このエ
ッジの向きとxの増分をステップS57と同様に求め
る。このステップS58の処理を終えるとステップS5
9へ進み、注目する頂点座標テーブルポインタを図11
に示す当該ループの第0頂点座標のデータが格納されて
いるアドレス値に設定してステップS60へ進む。
After the current edge data creation processing in step S57 is completed, the process proceeds to step S58, in which the edge having the first vertex (the 0th vertex) of the loop as the start point and the next vertex (the first vertex) as the end point is determined. The next edge (the next edge on the contour loop with respect to the target edge, that is, the edge starting from the end point of the target edge) is determined, and the direction of this edge and the increment of x are obtained in the same manner as in step S57. When the processing of step S58 is completed, step S5
9 and move the noted vertex coordinate table pointer to the position shown in FIG.
Is set to the address value at which the data of the 0th vertex coordinate of the loop is stored, and the process proceeds to step S60.

【0045】ステップS60では、この時点の直前にお
ける現エッジデータ(現エッジの向き及びxの増分)を
もって、前エッジ(注目エッジに対して輪郭ループ上、
その直前に接続しているエッジ、即ち、注目エッジの始
点を終点とするエッジ)データとする。そして、ステッ
プS61へ進み、この時点の直前における次エッジデー
タ(次エッジの向き及びxの増分)をもって現エッジデ
ータとする。次にステップS62へ進み、次エッジデー
タ(次エッジの向き及びxの増分)をステップS57と
同様に求める。この時、次エッジの始点は現エッジの終
点であり、次エッジの終点はもちろん現エッジの終点に
対して、ループ上の次の頂点である。これらは、注目す
る頂点位置の次の頂点位置、及び次の次の頂点位置のデ
ータを参照することにより得られるが、この時点での注
目する頂点位置が、該ループの最終頂点にある時は、次
エッジとは該当ループの第0頂点が始点となり、第1頂
点が終点となる。また、注目する頂点位置が、該ループ
の最終頂点の直前の頂点にある時には、最終頂点が始点
となり、第0頂点が終点となる様に制御を行っている。
In step S60, the current edge data (the direction of the current edge and the increment of x) immediately before this point is used as the previous edge (on the contour loop with respect to the target edge).
The edge connected immediately before, that is, the edge having the start point of the target edge as the end point) data. Then, the process proceeds to step S61, and the next edge data (the direction of the next edge and the increment of x) immediately before this point is set as the current edge data. Next, the process proceeds to step S62, and next edge data (direction of the next edge and increment of x) is obtained in the same manner as in step S57. At this time, the start point of the next edge is the end point of the current edge, and the end point of the next edge is, of course, the next vertex on the loop with respect to the end point of the current edge. These are obtained by referring to the data of the next vertex position of the target vertex position and the data of the next next vertex position. When the target vertex position at this time is at the final vertex of the loop, , The next edge means that the 0th vertex of the loop is the start point and the 1st vertex is the end point. When the target vertex position is located at the vertex immediately before the final vertex of the loop, control is performed such that the final vertex is the start point and the zeroth vertex is the end point.

【0046】ステップS62の処理を終えるとステップ
S63に進み、この時点における前エッジデータ、現エ
ッジデータ及び次エッジデータを基に、現エッジデータ
に関して、前述の図4に示した形態のパケットデータを
作成する。そして、該パケットデータをエッジテーブル
内に追加してエッジテーブルを更新する。この処理の内
容は図16及び図17を参照して詳しく後述する。こう
してエッジテーブルの更新処理を終了するとステップS
64へ進み、注目する頂点座標テーブルポインタの値を
更新し、ループ上の次の頂点の座標テーブルの位置とす
る。そしてステップS65で当該ループ内の全エッジ分
の処理が完了したか否かを判定し、完了していればステ
ップS66へ進み、そうでなければステップS60へ戻
って、次のエッジに対する一連の処理を続ける。全エッ
ジ分の処理が完了したか否かは、例えば各ループ毎に、
このステップS65を通過した回数をカウントしてお
き、その回数が当該ループ内に含まれる頂点の数を越え
たか否かで判定することができる。
When the process of step S62 is completed, the process proceeds to step S63, and based on the previous edge data, the current edge data, and the next edge data at this point, the packet data in the form shown in FIG. create. Then, the packet data is added to the edge table to update the edge table. The contents of this processing will be described later in detail with reference to FIGS. When the update processing of the edge table is completed in this manner, step S
Proceeding to 64, the value of the noted vertex coordinate table pointer is updated to be the position of the next vertex coordinate table on the loop. Then, in step S65, it is determined whether or not processing for all edges in the loop has been completed. If completed, the process proceeds to step S66; otherwise, the process returns to step S60 to perform a series of processes for the next edge. Continue. Whether or not processing for all edges has been completed is determined, for example, for each loop,
The number of times of passing through step S65 is counted, and it can be determined whether or not the number of times has exceeded the number of vertices included in the loop.

【0047】ステップS66では、ループ内頂点数テー
ブルポインタを次のループのデータを保持する位置に更
新してステップS67へ進む。ステップS67では、当
該輪郭データ内に含まれる全てのループに対して一連の
処理が完了したか否かを判定し、完了していればステッ
プS68へ進み、そうでなければステップS55へ戻っ
て次のループに対する一連の処理を続ける。尚、この全
ループの処理を完了したか否かの判定は、例えばこのス
テップS67を通過した回数をカウントしておき、その
回数が当該輪郭データ内に含まれるループの数を越えた
か否かで判定することができる。ステップS68では、
エッジテーブル(ET)作成の処理を終了してメインル
ーチンへ戻る。 <エッジテーブル更新処理の説明>以下、図14のステ
ップS63のエッジテーブルの更新処理を図16及び図
17のフローチャート及び図21を参照して説明する。
ステップS63においては、現エッジ,前エッジ及び次
エッジの向きとxの増分を用いて処理を進める。現エッ
ジに対する図4に示した形態のパケットデータを作成す
る際に、その生成規則を図21に示した。
In step S66, the in-loop vertex number table pointer is updated to a position for holding the data of the next loop, and the flow advances to step S67. In step S67, it is determined whether or not a series of processes has been completed for all loops included in the contour data. If completed, the process proceeds to step S68; otherwise, the process returns to step S55 and returns to step S55. A series of processing for the loop of is continued. The determination as to whether or not the processing of all the loops has been completed is made, for example, by counting the number of passes through step S67 and determining whether the number of times has exceeded the number of loops included in the contour data. Can be determined. In step S68,
The process of creating the edge table (ET) ends, and the process returns to the main routine. <Description of Edge Table Update Processing> Hereinafter, the edge table update processing in step S63 in FIG. 14 will be described with reference to the flowcharts in FIGS. 16 and 17 and FIG.
In step S63, the process proceeds using the directions of the current edge, the previous edge and the next edge, and the increment of x. FIG. 21 shows rules for generating the packet data of the form shown in FIG. 4 for the current edge.

【0048】まず、現エッジが水平エッジ、即ち、現エ
ッジの向きが左向きであるか又は右向きである場合は、
このエッジに対してはパケットデータは生成せず、エッ
ジテーブルも更新しない。従って、図21には表記して
いない。現エッジが上向き、もしくは下向きの時には、
前エッジデータの内容によって始1〜始10及び終1〜
終10の場合に分けて考える。図21において、始点の
状態の欄には現エッジを実線矢印で、前エッジを破線矢
印で、矢印の向きはそれぞれのエッジの向きを示し、各
エッジの斜線で示される側が、黒データ領域であること
を示している。また、終点の状態欄には現エッジデータ
を実線矢印で、次エッジを破線矢印で、矢印の向きはそ
れぞれのエッジの向きを示し、各エッジの斜線で示され
る側が黒データ領域であることを示している。
First, if the current edge is a horizontal edge, that is, the direction of the current edge is leftward or rightward,
No packet data is generated for this edge, and the edge table is not updated. Therefore, they are not shown in FIG. When the current edge is upward or downward,
Start 1 to Start 10 and End 1 to 1 depending on the contents of the front edge data
Consider the last 10 cases separately. In FIG. 21, in the column of the state of the starting point, the current edge is indicated by a solid arrow, the front edge is indicated by a broken arrow, and the direction of the arrow indicates the direction of each edge. It indicates that there is. In the end point status column, the current edge data is indicated by a solid arrow, the next edge is indicated by a dashed arrow, the direction of the arrow indicates the direction of each edge, and the shaded side of each edge is a black data area. Is shown.

【0049】まず、現エッジの始点の取扱いに注目し、
現エッジが上向きである場合(始1〜始5)を説明す
る。前エッジも上向きの場合(ケース始1)は、現エッ
ジの始点は実際よりも一走査線だけエッジに沿って終点
に移動した点にあるとして、パケットデータを作成す
る。前エッジが下向きの場合は、前エッジの終点、即
ち、現エッジの始点が閉図形の凹頂点になる時(ケース
始2)なら、始点はやはり実際よりも一走査線だけエッ
ジに沿って終点に移動した点にあるとしてパケットデー
タを作成する。閉図形の凸頂点になる時(ケース始3)
は、始点は実際の位置の点そのものとして、パケットデ
ータを作成する。尚、ケース始2か、ケース始3かの判
別は、現エッジのx増分と、前エッジのx増分との大小
関係を比較することで可能である。即ち、前エッジのx
増分をΔxpre 、現エッジのx増分をΔxnow とすると
Δxpre >Δxnow の場合はケース始2であり、Δx
pre <Δx now の場合は、ケース始3である。但し、Δ
pre =Δxnow の場合は、ケース始3であると判定す
ることにする。前エッジが左向きの場合(ケース始4)
は、現エッジの始点は、実際の位置の点そのものとして
パケットデータを作成し、前エッジが右向きの場合(ケ
ース始5)は、現エッジの始点は実際よりも一走査線だ
け現エッジに沿って終点に移動した点にあるとしてパケ
ットデータを作成する。
First, paying attention to the handling of the starting point of the current edge,
The case where the current edge is upward (start 1 to start 5) will be described.
You. If the front edge is also upward (case 1), the current edge
The start point of the edge is one scan line more than the actual end point along the edge
Create packet data at the point where
You. If the front edge is downward, the end point of the front edge
When the starting point of the current edge is the concave vertex of the closed figure (case
In the case of start 2), the start point is still one scan line deeper than it actually is.
Packet data at the point where
Create data. When it becomes a convex vertex of a closed figure (case start 3)
Means that the starting point is the actual position
Create data. It should be noted that the case start 2 or case start 3
Another is the magnitude of the x increment of the current edge and the x increment of the previous edge.
This is possible by comparing the relationships. That is, x of the leading edge
Increment by Δxpre , X increment of current edge to Δxnow Then
Δxpre > Δxnow Is case 2 and Δx
pre <Δx now In the case of, the start of the case is 3. Where Δ
xpre = Δxnow In the case of, it is determined that it is case start 3.
I will do it. When the front edge is facing left (case start 4)
Means that the starting point of the current edge is
When packet data is created, and the leading edge is
5), the starting point of the current edge is one scan line
The point that has moved to the end point along the
Create cut data.

【0050】次に、現エッジが下向きである場合(始6
〜始10)をみると、前エッジが上向きの場合は前エッ
ジの終点、即ち、現エッジの始点が閉図形の凸頂点にな
る(ケース始6)なら、始点は実際の位置の点そのもの
としてパケットデータを作成する。一方、現エッジの始
点が閉図形の凹頂点になる時(ケース始7)は、その始
点は実際よりも一走査線だけ現エッジに沿って終点側に
移動した点にあるとしてパケットデータを作成する。前
エッジが下向きの場合(ケース始8)及び右向きの場合
(ケース始10)には、始点は実際の位置の点そのもの
としてパケットデータを作成する。又、前エッジが左向
きの場合(ケース始9)には、始点は実際よりも一走査
分だけエッジに沿って終点側に移動した点にあるとして
パケットデータを生成する。ここで、ケース始6か、ケ
ース始7かの判別は、現エッジのx増分Δxnow と前エ
ッジのx増分Δxpre との大小関係を比較することで可
能である。即ち、Δxpre <Δxnow の場合はケース始
6であり、Δxpre <Δx now の場合はケース始7であ
る。尚、Δxpre =Δxnow の場合はケース始6である
と判定することにする。
Next, when the current edge is downward (start 6)
10), if the front edge is upward, the front edge
The end point of the edge, that is, the start point of the current edge, becomes the convex vertex of the closed figure.
(Case start 6), the starting point is the actual position point itself
To create packet data. On the other hand, the beginning of the current edge
When a point becomes a concave vertex of a closed figure (case 7),
The point is one scan line closer to the end point along the current edge than it is.
Create packet data assuming that it is at the moved point. Previous
Edge is downward (case start 8) and right
In (Case Start 10), the start point is the actual position point itself
To create packet data. Also, the front edge is to the left
Start point (case start 9), the starting point is one scan
At the point moved to the end point along the edge
Generate packet data. Here, case start 6
The start edge 7 is determined by the x increment Δx of the current edge.now And before d
X increment xpre By comparing the magnitude relationship with
Noh. That is, Δxpre <Δxnow In case of
6, Δxpre <Δx now Is case 7
You. Note that Δxpre = Δxnow Is case start 6
Is determined.

【0051】次に、現エッジの終点の取扱いに注目して
説明する。
Next, a description will be given focusing on the handling of the end point of the current edge.

【0052】先ず、現エッジが上向きである場合(終1
〜終5)を説明する。次エッジも上向きの場合(ケース
終1)は、現エッジの終点は実際の点そのものとしてパ
ケットデータを作成する。次エッジが下向きの場合は、
次エッジの始点、即ち、現エッジの終点が閉図形の凹頂
点になる時(ケース終3)には、現エッジの終点は実際
の位置よりも一走査線だけ現エッジに沿って始点側に戻
った点にあるとしてパケットデータを作成する。一方、
閉図形の凸頂点になる時(ケース終2)には、現エッジ
の終点は実際の位置の点そのものとして、パケットデー
タを作成する。次エッジが左向きの場合(ケース終4)
には現エッジの終点は実際の位置よりも一走査線だけエ
ッジに沿って始点に戻った点にあるとして、パケットデ
ータを作成する。次エッジが右向きの場合(ケース終
5)には、現エッジの終点は実際の位置の点そのものと
してパケットデータを作成する。ここで、ケース終2
か、ケース終3かの判別は、現エッジのx増分Δxnow
と、次エッジのx増分Δxpostpostとの大小関係を比
較することで可能である。即ち、Δxnow <Δxpost
場合はケース終2であり、Δxnow >Δxpostの場合は
ケース終3である。但し、Δxnow =Δxpostの場合
は、ケース終2であると判定することにする。
First, when the current edge is upward (final 1)
5) will be described. If the next edge is also upward (case end 1), packet data is created with the end point of the current edge being the actual point itself. If the next edge is down,
When the start point of the next edge, that is, the end point of the current edge becomes a concave vertex of the closed figure (case end 3), the end point of the current edge is shifted by one scanning line from the actual position to the start point side along the current edge. Create packet data assuming that it is at the return point. on the other hand,
When it becomes a convex vertex of the closed figure (case end 2), the packet data is created with the end point of the current edge being the actual position point itself. When the next edge is to the left (end of case 4)
The packet data is created on the assumption that the end point of the current edge is located at a point which has returned to the start point along the edge by one scanning line from the actual position. When the next edge is rightward (case end 5), the packet data is created with the end point of the current edge being the actual position itself. Here, Case 2
Or the end of case 3 is determined by the x increment Δx now of the current edge.
This can be done by comparing the magnitude relationship between x post and the next edge x increment Δx post x post . That is, case Δx now <Δx post is case end 2, and case Δx now > Δx post is case end 3. However, in the case of Δx now = Δx post , it is determined that case end 2 is reached.

【0053】次に、現エッジが下向きである場合(終6
〜終10)について説明する。次エッジが上向きの場合
は次エッジの始点、即ち、現エッジの終点が閉図形の凸
頂点になる時(ケース終6)には、現エッジの終点は実
際の位置の点そのものとしてパケットデータを作成す
る。又、閉図形の凹頂点になる時(ケース終7)には、
現エッジの終点は実際の位置よりも一走査線だけエッジ
に沿って始点側に戻った点にあるとしてパケットデータ
を作成する。更に、次エッジが下向きの場合(ケース終
8)には、現エッジの終点は実際の位置の点そのものと
してパケットデータを作成する。又、次エッジが右向き
の場合(ケース終10)には、現エッジの終点は実際の
位置よりも一走査線だけ現エッジに沿って戻った位置に
あるとしてパケットデータを作成する。ここで、ケース
終6か、ケース終7かの判別は、現エッジのx増分Δx
now と次エッジのx増分Δxpostとの大小関係を比較す
ることで可能である。即ち、Δxnow <Δxpostの場合
はケース終6であり、Δxno w >Δxpostの場合はケー
ス終7である。Δxnow =Δxpostの場合は、ケース終
6であると判定することにする。
Next, when the current edge is downward (final 6)
-End 10) will be described. When the next edge is upward, when the start point of the next edge, that is, the end point of the current edge is a convex vertex of a closed figure (case end 6), the end point of the current edge is the packet data as the actual position point itself. create. When it becomes a concave vertex of a closed figure (case end 7),
The packet data is generated on the assumption that the end point of the current edge is located at a point returned to the start point side along the edge by one scanning line from the actual position. Further, when the next edge is downward (case end 8), the packet data is created with the end point of the current edge being the actual position point itself. If the next edge is rightward (end of case 10), packet data is created on the assumption that the end point of the current edge is one scan line back from the actual position along the current edge. Here, whether the end of the case is 6 or the end of the case 7 is determined by the x increment Δx of the current edge.
This can be done by comparing the magnitude relationship between now and the next edge x increment Δx post . In other words, Δx now <in the case of Δx post is a case end 6, Δx no w> in the case of Δx post is the case end 7. In the case of Δx now = Δx post , it is determined that case end 6 is reached.

【0054】以上の生成規則に従って、図4に示した形
態のパケットデータが現エッジに対して生成される。
According to the above generation rules, packet data in the form shown in FIG. 4 is generated for the current edge.

【0055】以上説明した処理が図14のステップS6
3で行われることになるが、結局CPU111は図16
及び図17に示すフローチャートに従って処理すること
になる。
The processing described above is performed in step S6 of FIG.
3, but the CPU 111 ends up with FIG.
The processing is performed according to the flowchart shown in FIG.

【0056】先ず、ステップS63にて、その一連の処
理を開始すると、ステップS631へ進む。この時、入
力データとしては、図14のステップS60で更新され
た前エッジデータ(前エッジの向き、及びx増分Δx
pre )と、ステップS61で更新された現エッジデータ
(現エッジの始点と終点の座標値(それぞれ
(xstart,ystart ),(xend ,yend )とす
る)、向き及びx増分Δxnow )、及びステップS62
で作成された次エッジデータ(次エッジの向き及びx増
分Δxpo st)がある。ステップS631では、現エッジ
データの向きが水平か否か(即ち、右向きもしくは左向
きのいずれかであるかどうか)を判定し、水平であれば
ステップS644へ進み、その一連の処理を終えて本処
理をコールした次のステップ(図14のステップS6
4)へ戻る。
First, when the series of processing is started in step S63, the flow advances to step S631. At this time, as the input data, the front edge data (the direction of the front edge and the x increment Δx
pre ), the current edge data updated in step S61 (the coordinate values of the start and end points of the current edge (respectively (x start , y start ), (x end , y end )), the direction, and the x increment Δx now ) And step S62
In a next edge data created (orientation and x increment [Delta] x po st follows the edge). In step S631, it is determined whether or not the direction of the current edge data is horizontal (that is, whether it is rightward or leftward). If horizontal, the process proceeds to step S644, and a series of processes is completed to complete this process. Next step (step S6 in FIG. 14)
Return to 4).

【0057】ステップS631で水平でなければステッ
プS632へ進み、現エッジの向きは上向きか否かを判
定し、上向きであればステップS633へ進んで、以下
上向きエッジ用のパケットデータの生成を行っていく。
一方、上向きでなければ(下向きエッジならば)ステッ
プS645へ進んで、以下、下向きエッジ用のパケット
データの生成を行っていく。
If it is not horizontal in step S631, the flow advances to step S632 to determine whether or not the current edge is upward. If it is upward, the flow advances to step S633 to generate packet data for the upward edge. Go.
On the other hand, if it is not upward (if it is a downward edge), the process proceeds to step S645, and thereafter, generation of packet data for the downward edge is performed.

【0058】現エッジが上向きエッジであると判断して
ステップS633に進むと、図4に示す形態のエッジパ
ケットを一旦そのまま作成する。即ち、ymax =y
start ,xmin =xend ,Δx=Δxnow として作成
し、ポインタには、ここでは“λ”(接続先がないこと
を示すマーカ)を持たせておく。加えて、ステップS6
33において、このエッジパケットをETに登録する際
に、該エッジパケットがどのポインタパケットに接続す
べきデータかを示す値ymin も設定する。ここではy
min =yend と設定する。ここでymax とは、現エッジ
の両端点(始点と終点)において、y座標の大きい方の
端点のyの値であり、xmin とymin のそれぞれは、y
座標の小さい方の端点の座標値のxの値とyの値を意味
する。xの増分Δxとは、現エッジ上の点が現エッジに
沿って、y座標の小さい方から大きい方へ向けて移動す
る際の一走査線当りのx座標の変化分を意味している。
実施例では、x座標の正の向きを右向き、y座標の正の
向きを下向きに想定しているので、上述の如く、y
max ,xmin ,Δx,ymin が設定される。こうしてス
テップS633の処理を終えるとステップS634へ進
む。
It is determined that the current edge is an upward edge.
In step S633, the edge pattern of the form shown in FIG.
Create a blanket once. That is, ymax = Y
start , Xmin = Xend , Δx = Δxnow Created as
In this case, the pointer indicates "λ" (there is no connection
). In addition, step S6
33, when registering this edge packet in ET
The edge packet connects to which pointer packet.
Value y indicating whether it should be datamin Also set. Where y
min = Yend Set as Where ymax Is the current edge
At both end points (start point and end point) of
The value of the endpoint y, xmin And ymin Is y
Means the x and y values of the coordinate value of the smaller end point of the coordinates
I do. x increment Δx means that a point on the current edge is
Move along the y-coordinate from smaller to larger
Means the change in x-coordinate per scanning line.
In the embodiment, the positive direction of the x coordinate is rightward, and the positive direction of the y coordinate is
Since the direction is assumed to be downward, as described above, y
max , Xmin , Δx, ymin Is set. In this way
When the process of step S633 is completed, the process proceeds to step S634.
No.

【0059】ステップS634では、前エッジが下向き
か否かを判定し、下向きであればステップS635へ進
み、そうでなければステップS636へ進む。ステップ
S635では、現エッジの始点がケース始2に該当する
のか、ケース始3に該当するのかを先に説明した方法で
判定し、ケース始2に該当する場合はステップS637
に進み、ymax を“1”減らす。そうでない場合はステ
ップS638へ進む。また、ステップS636では現エ
ッジの始点がケース始4に該当するか否か(即ち、ケー
ス始1またはケース始5に該当するのか)を判定し、ケ
ース始4に該当する場合はステップS638へ進み、そ
うでなければステップS637へ進み、ymax を“1”
減らす、即ち、上向きエッジの始点を一走査線分つめ
る。ステップS637の処理を終えると、ステップS6
38へ進む。これで現エッジが上向きの場合の始点に対
する処理が終了する。
In step S634, it is determined whether or not the front edge is downward. If it is downward, the flow advances to step S635; otherwise, the flow advances to step S636. In step S635, it is determined whether the start point of the current edge corresponds to case start 2 or case start 3 by the method described above. If the start point of the current edge corresponds to case start 2, the process proceeds to step S637.
And decrease y max by “1”. If not, the process proceeds to step S638. In step S636, it is determined whether the start point of the current edge corresponds to case start 4 (ie, whether it corresponds to case start 1 or case start 5), and if it corresponds to case start 4, the process proceeds to step S638. Otherwise, the process advances to step S637 to set y max to “1”.
That is, the starting point of the upward edge is reduced by one scanning line. When the processing of step S637 is completed, step S6
Proceed to 38. This ends the processing for the start point when the current edge is upward.

【0060】次にステップS638では、次エッジが下
向きか否かを判定し、下向きであればステップS639
へ進み、そうでなければステップS640へ進む。ステ
ップS639では、現エッジの終点がケース終2に該当
するのか、ケース終3に該当するのかを前述の方法に基
づいて判定し、ケース終2に該当する場合はステップS
643に進み、そうでない場合(ケース終3)はステッ
プS641へ進む。ステップS640では次エッジの向
きが左向きか、即ち、現エッジの終点がケース終4に該
当するか否か(ケース終1或いはケース終5)を判定
し、ケース終4に該当する場合はステップS641へ進
み、xmin をΔxだけ増やす。即ち、上向きエッジの終
点を一走査線分つめたとして、そのx座標値を修正して
いる。一方、そうでない場合はステップS640からス
テップS643に進み、パケットデータをETに登録す
る。ステップS641の処理を終えるとステップS64
2へ進み、ymin を“1”だけ増やす、即ち、上向きエ
ッジの終点を一走査分つめたとして、その終点のy座標
値を修正している。ステップS642の処理を終えると
ステップS643へ進む。
Next, in step S638, it is determined whether or not the next edge is downward, and if it is downward, step S639 is performed.
The process proceeds to step S640 otherwise. In step S639, it is determined whether the end point of the current edge corresponds to case end 2 or case end 3 based on the above-described method.
Proceed to 643; otherwise (case end 3), proceed to step S641. In step S640, it is determined whether the direction of the next edge is to the left, that is, whether the end point of the current edge corresponds to case end 4 (case end 1 or case end 5), and if it corresponds to case end 4, it is determined in step S641. And increase x min by Δx. That is, assuming that the end point of the upward edge is narrowed by one scanning line, the x coordinate value is corrected. If not, the process advances from step S640 to step S643 to register the packet data in the ET. When the process of step S641 is completed, step S64
Proceeding to 2, the y min is increased by "1", that is, the end point of the upward edge is reduced by one scan, and the y coordinate value of the end point is corrected. Upon completion of the process in the step S642, the process proceeds to a step S643.

【0061】一方、ステップS632において、現エッ
ジは上向きではない、即ち、下向きのエッジであると判
定された場合を説明する。
On the other hand, a case will be described in which it is determined in step S632 that the current edge is not upward, that is, it is a downward edge.

【0062】この場合、処理は図17のステップS64
5へ進み、図4に示す形態のエッジパケットを一旦その
まま生成する。即ち、ymax =yend ,xmin =x
start ,Δx=Δxnow として作成し、ポインタは、こ
こでは“λ”(接続がないことを示すマーカ)を持たせ
ておく。加えて、ymin =ystart と設定する。次のス
テップS646では、前エッジは上向きか否かを判定
し、上向きであればステップS647へ進み、そうでな
ければステップS648へ進む。
In this case, the process proceeds to step S64 in FIG.
The process then proceeds to 5 and once generates an edge packet of the form shown in FIG. That is, y max = y end , x min = x
start , Δx = Δx now , and the pointer has “λ” (a marker indicating that there is no connection) here. In addition, set y min = y start . In the next step S646, it is determined whether or not the front edge is upward. If it is upward, the flow advances to step S647; otherwise, the flow advances to step S648.

【0063】ステップS647では、現エッジの始点が
ケース始6に該当するのか、ケース始7に該当するのか
を前述の方法で判定する。ケース始6に該当する場合
(凸部の頂点)にはステップS651に進み、ケース始
7に該当する場合(凹部の頂点)にはステップS649
へ進む。ステップS648では現エッジの始点がケース
始9に該当するのか否か(即ち、ケース始8又はケース
始10に該当するのか)を判定し、ケース始9に該当す
る場合(前エッジが左向きの時)はステップS649に
進んでxmin をΔxだけ増やす、即ち、下向きのエッジ
の指定を一走査線分つめたとして、そのx座標値を修正
している。このステップS649の処理を終えるとステ
ップS650へ進み、ymin を“1”増やす、即ち、下
向きエッジの始点を一走査分つめたとして、その値を修
正している。これで現エッジの始点に対する処理が終了
する。
In step S647, it is determined whether the start point of the current edge corresponds to case start 6 or case start 7 by the above-described method. If it corresponds to the case start 6 (vertex of the convex portion), the process proceeds to step S651, and if it corresponds to the case start 7 (vertex of the concave portion), the process proceeds to step S649.
Proceed to. In step S648, it is determined whether or not the start point of the current edge corresponds to case start 9 (that is, whether it corresponds to case start 8 or case start 10), and if it corresponds to case start 9 (when the front edge is to the left) ) Proceeds to step S649 to increase x min by Δx, that is, assuming that the designation of the downward edge is reduced by one scanning line, and the x coordinate value is corrected. Upon completion of the process in step S649, the process proceeds to step S650, in which y min is increased by "1", that is, the value is corrected on the assumption that the start point of the downward edge is reduced by one scan. This completes the processing for the start point of the current edge.

【0064】ステップS650の処理を終えるとステッ
プS651へ進み、次エッジが上向きか否かを判定し、
上向きであればステップS652へ進み、そうでなけれ
ばステップS653へ進む。ステップS652では、現
エッジの終点がケース終6に該当するのか、ケース終7
に該当するのかを前述の方法で判定する。そして、ケー
ス終6に該当する場合は図16のステップS643へ進
み、ケース終7に該当する場合はステップS654へ進
む。また、ステップS653では、現エッジの終点がケ
ース終9に該当するのか否か(即ち、ケース終8又はケ
ース終10のいずれかに該当するのか)を判定し、ケー
ス終9に該当する場合はステップS643へ進み、そう
でない場合(ケース終8又はケース終10の時)にはス
テップS654へ進んで、ymax を“1”減らす、即
ち、下向きエッジの終点を一走査線分つめる。こうして
ステップS654に処理を終えると、ステップS643
へ進む。
Upon completion of the process in step S650, the flow advances to step S651 to determine whether the next edge is upward.
If it is upward, the process proceeds to step S652; otherwise, the process proceeds to step S653. In step S652, whether the end point of the current edge corresponds to case end 6 or case end 7
Is determined by the above-described method. Then, if it corresponds to case end 6, the process proceeds to step S643 in FIG. 16, and if it corresponds to case end 7, the process proceeds to step S654. In step S653, it is determined whether or not the end point of the current edge corresponds to case end 9 (that is, whether it corresponds to case end 8 or case end 10). Proceed to step S643; otherwise (case end 8 or case end 10), proceed to step S654 to decrease y max by "1", that is, reduce the end point of the downward edge by one scanning line. When the process ends in step S654, the process proceeds to step S643.
Proceed to.

【0065】以上で、現エッジが上向き及び下向きの場
合のそれぞれにおいて、現エッジに対するエッジパケッ
トが図21に記された規則に従って生成される。
As described above, in each of the cases where the current edge is upward and downward, an edge packet for the current edge is generated in accordance with the rule shown in FIG.

【0066】さて、ステップS643では、以上で生成
されたエッジパケットをエッジテーブル(ET)に追加
登録する。即ち、エッジテーブル内のy=ymin に相当
するポインタパケットAyymin につながるエッジパケ
ットのリスト接続に現エッジのエッジパケットを追加す
る。まず、現エッジのエッジパケットを保持する領域を
RAM113上に確保する。次にポインタパケットAy
min の値を吟味して、その値がまだ“λ”であれば、
現エッジのエッジパケットを保持する領域のアドレスに
書き換えて、現エッジのエッジパケットはポインタパケ
ットにリスト接続される。ポインタパケットAyymin
の値が既にある“λ”以外の値をもつ場合には、既にリ
スト接続されている何個かのエッジパケットが存在して
いるので、これらのエッジパケットのxmin の値が、ポ
インタパケット側から見て昇順になるように、現エッジ
のエッジパケットを該リスト接続されているエッジパケ
ット列に挿入する。これは、挿入される直前のパケット
のポインタの値を、現エッジのエッジパケットのポイン
タ部にコピーし、直前のパケットのポインタ部の現エッ
ジのエッジパケットのアドレス値に書き換えることで実
現する。かくして、ステップS643の処理を終えると
ステップS644に進み、エッジテーブル更新の一連の
処理を終えて、本処理をコールした上位のルーチンに戻
る。 <注目走査線輪郭の生成処理の説明>次に、図13にお
けるステップS6の“注目走査線輪郭の生成処理”につ
いて説明する。尚、その時点でのアクティブエッジテー
ブル(AET)を用いて以下に示す手順に従って処理が
進行することになる。
In step S643, the edge packet generated above is additionally registered in the edge table (ET). That is, to add edge packet in the current edge list connection edge packet leading to pointer packet Ayy min corresponding to y = y min in the edge table. First, an area for holding the edge packet of the current edge is secured on the RAM 113. Next, the pointer packet Ay
Examine the value of y min and if the value is still “λ”,
The edge packet of the current edge is rewritten to the address of the area holding the edge packet of the current edge, and is connected to the pointer packet in a list. Pointer packet Ayy min
Has a value other than the existing “λ”, there are some edge packets already connected in a list, and the value of x min of these edge packets is The edge packet of the current edge is inserted into the list-connected edge packet sequence so as to be in ascending order as viewed from the side. This is realized by copying the value of the pointer of the packet immediately before insertion into the pointer portion of the edge packet of the current edge and rewriting the address value of the edge packet of the current edge in the pointer portion of the previous packet. Thus, when the process of step S643 is completed, the process proceeds to step S644, where a series of processes for updating the edge table is completed, and the process returns to the upper routine that called this process. <Explanation of Processing for Generating Contour of Interest Scanning Line> Next, the “generation processing for the contour of interest scanning line” in step S6 in FIG. 13 will be described. The processing proceeds according to the following procedure using the active edge table (AET) at that time.

【0067】尚、このアクティブエッジテーブル(AE
T)は、ステップS5において初期化され、最初は空の
状態(マーカ“λ”が書かれた状態)になっているもの
である。以降、一旦処理を終了して、ステップS7へ進
んでも、アクティブエッジテーブルの状態は次にステッ
プS6に再度入るまで保持される。 (1)アクティブエッジテーブル(AET)のx座標値
(xmin )でのソート順を保ちながら、そのときのエッ
ジテーブル(ET)の情報とアクティブエッジテーブル
(AET)との情報とを併合して、走査線y座標値にか
かるエッジパケットを結ぶ新たなアクティブエッジテー
ブル(AET)を作成する。 (2)アクティブエッジテーブル(AET)のx座標値
(xmin )が小さい方からアクセスして、以下のように
処理を進める。
The active edge table (AE)
T) is initialized in step S5, and is initially empty (the state where the marker “λ” is written). Thereafter, even if the process is once terminated and the process proceeds to step S7, the state of the active edge table is held until the process returns to step S6 again. (1) While maintaining the sort order at the x coordinate value (x min ) of the active edge table (AET), the information of the edge table (ET) at that time and the information of the active edge table (AET) are merged. , A new active edge table (AET) connecting the edge packets related to the scanning line y coordinate value is created. (2) Access is made from the smaller x coordinate value (x min ) of the active edge table (AET), and the process proceeds as follows.

【0068】話をわかりやすくするために、以下に示す
ように記号の定義を行なう。
To make the story easier to understand, the symbols are defined as follows.

【0069】xsize :入力画像の主走査方向の画素数 n :AETに登録されているエッジパケットの数 (n=0はAETが空であることを表わす) xmin(i):AETに登録されているi番目(xmin の小
さい方から数える)のエッジパケットのxmin の値。i
は0からn+1までの値をとる。 但し、i=0のときxmin(0)=−1 i=n+1のときXmin(n+1)=xsizeとする。
X size : number of pixels of the input image in the main scanning direction n: number of edge packets registered in the AET (n = 0 indicates that the AET is empty) x min (i) : registered in the AET X min value of the i-th (counted from the smaller of x min ) edge packet being processed . i
Takes a value from 0 to n + 1. However, when i = 0, x min (0) = −1, and when i = n + 1, X min (n + 1) = x size .

【0070】このとき、各ラン長(RL(i) ,i=0,
…,n)は、 RL(i) =xtmp(i+1)−xtmp(i) xtmp(i)= xmin(i) (iが奇数の時) 又は、xtmp(i)= xmin(i)+1 (iが偶数の時) となる。
At this time, each run length (RL (i), i = 0,
.., N) is RL (i) = x tmp (i + 1) −x tmp (i) x tmp (i) = x min (i) (when i is an odd number) or x tmp (i) = x min (i) +1 (when i is an even number).

【0071】また、iが偶数のときのRL(i)は白ラ
ン長を表わし、iが奇数のときはRL(i)は黒ラン長
を表わす。
When i is an even number, RL (i) represents a white run length, and when i is an odd number, RL (i) represents a black run length.

【0072】各ラン長が得られると、それに対応したハ
フマンコードが出力される。但し、RL(n)=0の場
合は符号を出力せず、そのRL(n)の符号の後にEO
L(エンドオブライン)符号を付加して、そのラインの
符号出力を終了する。但し、そのラインの総符号長が規
定のビット数より少ない場合は、その規定ビット数にな
るまでRL(n)符号とEOL符号の間にフィルビット
“0”を挿入する。図18に、白ラン及び黒ラン長に対
応するハフマン符号を示す。 (3)注目走査線のy座標値をy座標が大きい方の端点
のyの値(ymax )とするエッジパケットを、次の走査
線における動作のためにアクティブエッジテーブル(A
ET)から削除する。 (4)アクティブエッジテーブル(AET)に残ってい
るエッジパケットについて、次の走査線における動作の
ために増分データ(Δx)を利用して、x座標値を更新
する。即ち、(xmin +Δx)をもって新しくxmin
し直す。 (5)かかるx座標値(xmin )の更新後、x座標値
(xmin )に基づいてソーティングし直す。
When each run length is obtained, the corresponding Huffman code is output. However, when RL (n) = 0, no code is output, and EO is added after the code of RL (n).
The L (end of line) code is added, and the code output for that line is terminated. However, if the total code length of the line is smaller than the prescribed number of bits, fill bits “0” are inserted between the RL (n) code and the EOL code until the prescribed number of bits is reached. FIG. 18 shows Huffman codes corresponding to white run and black run lengths. (3) An edge packet in which the y coordinate value of the target scanning line is set to the y value (y max ) of the end point having the larger y coordinate is converted into an active edge table (A) for the operation in the next scanning line.
ET). (4) For the edge packet remaining in the active edge table (AET), the x coordinate value is updated using the incremental data (Δx) for the operation in the next scanning line. That is, (x min + Δx) is newly set as x min . (5) Such x-coordinate values (x min) after updating, re-sorted based on the x coordinate value (x min).

【0073】このソーティングの終了後、ステップS8
で注目走査線を次の走査線位置に更新し、ステップS9
で1ページの処理が全て終了したか否かを判定する。終
了していなければステップS6に移る。終了であればE
OP(エンドオブページ)を示す符号を出力して処理を
終了する。
After the sorting is completed, step S8
To update the scanning line of interest to the next scanning line position, and step S9
It is determined whether or not the processing of one page has been completed. If not completed, the process moves to step S6. E if finished
A code indicating OP (end of page) is output, and the process ends.

【0074】図3に対して、本実施例によって得られた
エッジテーブルを図19に示す。即ち、図3の図形F1
に関して、エッジe10は上向きエッジであり、前エッ
ジe9も上向きエッジ、次エッジe1は下向きエッジで
あるから、エッジe10の始点は図21に示すケース始
1に該当し、終点はケース終2に該当している。従っ
て、e10:ymax =8,xmin =7,Δx=−1,y
min =3となる。
FIG. 19 shows an edge table obtained by this embodiment in contrast to FIG. That is, FIG.
, The edge e10 is an upward edge, the front edge e9 is also an upward edge, and the next edge e1 is a downward edge. Therefore, the start point of the edge e10 corresponds to the case start 1 and the end point corresponds to the case end 2 shown in FIG. are doing. Therefore, e10: y max = 8, x min = 7, Δx = −1, y
min = 3.

【0075】以下、同様にエッジe1は下向きエッジで
あり、始点はケース始6、終点はケース終10に該当し
ているため、e1:ymax =5,xmin =7,Δx=
1,y min =3となる。
Hereinafter, similarly, the edge e1 is a downward edge.
Yes, the start point corresponds to case start 6, and the end point corresponds to case end 10.
E1: ymax = 5, xmin = 7, Δx =
1, y min = 3.

【0076】また、エッジe2は水平エッジであるか
ら、エッジパケットは生成されない。次に、エッジe3
は下向きエッジであり、始点はケース始10,終点はケ
ース終9に該当しているため、e3:ymax =15,x
min =19,Δx=0,ymin=6となる。
Since the edge e2 is a horizontal edge, no edge packet is generated. Next, the edge e3
Is a downward edge, and the start point corresponds to the case start 10 and the end point corresponds to the case end 9, so that e3: y max = 15, x
min = 19, Δx = 0, y min = 6.

【0077】次のエッジe4は水平エッジであるから、
エッジパケットデータは生成されない。更に、エッジe
5は上向きエッジであり、始点はケース始4,終点はケ
ース終3に該当しているため、e5:ymax =15,x
min =15,Δx=1,ymi n =14となる。
Since the next edge e4 is a horizontal edge,
No edge packet data is generated. Further, the edge e
5 is an upward edge, and the start point corresponds to the case start 4 and the end point corresponds to the case end 3, so e5: y max = 15, x
min = 15, a Δx = 1, y mi n = 14.

【0078】次に、エッジe6は下向きエッジであり、
始点はケース始7,終点ケース終9に該当し、e6:y
max =16,xmin =13,Δx=−1,ymin =14
となる。
Next, the edge e6 is a downward edge,
The start point corresponds to the case start 7 and the end point case end 9, and e6: y
max = 16, x min = 13, Δx = −1, y min = 14
Becomes

【0079】又、e7は水平エッジであるから、エッジ
パケットは生成されない。
Since e7 is a horizontal edge, no edge packet is generated.

【0080】次に、エッジe8は下向きエッジであり、
始点はケース始9,終点ケース終6に該当しているの
で、e8:ymax =18,xmin =7,Δx=−1,y
min =17となる。
Next, the edge e8 is a downward edge,
Since the start point corresponds to case start 9 and end point case end 6, e8: y max = 18, x min = 7, Δx = −1, y
min = 17.

【0081】更に、エッジe9は上向きエッジであり、
始点はケース始3,終点ケース終1に該当しているの
で、e9:ymax =18,xmin =1,Δx=5/9,
min=9となる。
Further, the edge e9 is an upward edge,
Since the start point corresponds to case start 3 and end point case end 1, e9: y max = 18, x min = 1, Δx = 5/9,
y min = 9.

【0082】以上をエッジテーブルにまとめると、図1
9に示す如くとなる。この図19に基づき、アクティブ
エッジテーブル(AET)を生成し、注目走査線をy=
0より順次1つずつ増やしていった際のAETの変化の
様子が図20に示されている。
The above is summarized in an edge table.
As shown in FIG. An active edge table (AET) is generated based on FIG.
FIG. 20 shows how the AET changes when the AET is sequentially increased one by one from zero.

【0083】また、以上の議論において、ymax 及びy
min は非負の整数値として扱っている。また、xmin
びΔxに関しては、使用に際して十分な精度をもつ実数
データ(即ち、小数部の情報を有する)として扱ってい
る。但し、走査線を次のラインに更新するときのx座標
は、計算では直前のエッジのx座標に算出したΔxを加
えた値となるが、メモリ上での画素は整数位置にしかと
れない。従って、Δxを足し込んで小数点以下からキャ
リィが発生したときに実際のx座標を変化させている。 <第2実施例>前記第1実施例においては、エッジパケ
ットデータからMH符号を構成する方法及び装置につい
て説明した。ここでは、エッジパケットデータからMR
符号を構成する方法について説明する。現在用いられて
いるMR符号の構成については、吹抜敬彦著「FAX,
OAのための画像信号処理」日刊工業新聞社発行の79
ページからから83ページにかけて説明がなされてい
る。本方式と従来の方式の違いは、本方式の場合はエッ
ジパケットデータから変化画素を見つけるのに対し、従
来は画像を走査して逐次変化画素を見つけるかの点にあ
る。従って、変化画素を見つけてしまえば、あとは従来
法と同様に処理できるので、ここではエッジパケットか
ら変化画素を見つける方法について説明する。ここで、
変化画素とは同一走査線において前の画素の色と異なる
色に変化した画素をいう。
In the above discussion, y max and y
min is treated as a non-negative integer value. Further, x min and Δx are handled as real number data (that is, having information of a decimal part) having sufficient accuracy in use. However, the x coordinate when updating the scanning line to the next line is a value obtained by adding the calculated Δx to the x coordinate of the immediately preceding edge in the calculation, but the pixel on the memory can only be located at an integer position. Therefore, the actual x coordinate is changed when Δx is added and a carry occurs below the decimal point. <Second Embodiment> In the first embodiment, the method and the apparatus for forming the MH code from the edge packet data have been described. Here, from the edge packet data, the MR
A method of configuring the code will be described. For the structure of the MR code currently used, see “FAX,
Image Signal Processing for OA ”79 published by Nikkan Kogyo Shimbun
The explanation is given from page to page 83. The difference between the present method and the conventional method is that, in the case of the present method, a changed pixel is found from edge packet data, whereas in the conventional method, an image is scanned to find sequentially changed pixels. Therefore, once a changed pixel is found, the subsequent processing can be performed in the same manner as in the conventional method. Here, a method of finding a changed pixel from an edge packet will be described. here,
A changed pixel is a pixel that has changed to a color different from the color of the previous pixel on the same scanning line.

【0084】MR方式は2次元の相関を用いて符号化す
るため、アクティブ・エッジ・テーブル(AET)も、
注目走査線に対するAET(CUR)とその一つ前の走
査線(参照走査線)用のAET(BEF)の2つが必要
となる。MR符号化処理の説明の前に、5種類の変化画
素について定義する。
Since the MR method encodes using two-dimensional correlation, the active edge table (AET) is also
Two AETs (CUR) for the target scanning line and an AET (BEF) for the preceding scanning line (reference scanning line) are required. Before describing the MR encoding process, five types of changed pixels are defined.

【0085】a0 :注目走査線上における参照変化画素
あるいは開始変化画素。その位置は直前の符号化モード
で定められる。注目走査線の開始(左端)では、a0
第1画素の直前(左)に仮想的に置いた画素とする。
A 0 : Reference change pixel or start change pixel on the target scanning line. Its position is determined by the immediately preceding encoding mode. At the start (left end) of the target scanning line, a 0 is a pixel virtually placed immediately before (left) the first pixel.

【0086】a1 :注目走査線のa0 の右にある次の変
化画素。この画素はa0 と反対の色を有し、その次に符
号化すべき変化画素である。
A 1 : The next changed pixel to the right of a 0 of the target scanning line. This pixel has the opposite color to a 0 and is the next changed pixel to be coded.

【0087】a2 :注目走査線のa1 のさらに右にある
次の変化画素。
A 2 : The next changed pixel which is further to the right of a 1 of the target scanning line.

【0088】b1 :参照走査線にあって、開始変化画素
0 の右にある次の変化画素。a1と同じ色を有する。
B 1 : The next change pixel on the reference scanning line to the right of the start change pixel a 0 . having the same color as a 1.

【0089】b2 :参照走査線にあって、b1 の右にあ
る次の変化画素。
B 2 : the next change pixel on the reference scanning line to the right of b 1 .

【0090】もし、a0 以外のa1 ,a2 ,b1 ,b2
がないときには、これらはそれぞれの走査線の最後(右
端)の画素の直後(右)に仮想的に考えた画素とする。
If a 1 , a 2 , b 1 , b 2 other than a 0
When there are no pixels, these are assumed to be pixels virtually considered immediately (right) immediately after the last (right end) pixel of each scanning line.

【0091】次に、3つのモードを図22を参照して下
記のように定義する。 パスモード:これは「b2 がa1 の左に位置する場
合」と定義する。 垂直モード:a11 の相対的位置で符号化する。a
1 がb1 の左右のいずれにあるかにより、VL (a1
1 )あるいはVR (a11 )と定義する。a11
は、0,±1,±2,±3までであり、これ以上は水平
モードで表わす。 水平モード:上記の場合と、符号化の開始の場合を併
せ、H+M(a01 )+M(a12 )と表わす。こ
こで、M(・)は各々その色とラン長を表わすMH符号
語である。各モードの符号語を図23に示す。また、T
は次の走査線が1次元符号化のときT=1,2次元のと
きT=0とする。
Next, three modes are defined as follows with reference to FIG. Path Mode: This is defined as "if b 2 is located to the left of a 1". Vertical mode: coding is performed at the relative position of a 1 b 1 . a
The one is in any of the left and right b 1, V L (a 1 b
1 ) or V R (a 1 b 1 ). a 1 b 1
Are up to 0, ± 1, ± 2, ± 3, and above are expressed in horizontal mode. Horizontal mode: represents the case of the above combination in the case of starting the coding, H + M (a 0 a 1) + M and (a 1 a 2). Here, M (•) is an MH codeword representing the color and run length, respectively. FIG. 23 shows code words in each mode. Also, T
Is T = 1 and T = 0 when the next scanning line is one-dimensional encoding and one-dimensional encoding.

【0092】図24のフローチャートを参照して、処理
を説明する。
The processing will be described with reference to the flowchart in FIG.

【0093】ステップS701〜S704については、
図13のS1〜S4と同じなので説明を省略する。ステ
ップS705において、参照走査線用アクティブエッジ
テーブルAET(BEF)と注目走査線用アクティブエ
ッジテーブルAET(CUR)を初期化し、注目走査線
位置をページ内の先頭の走査線位置にセットする。ステ
ップS706では、注目走査線位置における図6に示す
ような形式のAETを生成する。但し、AET(CU
R)が空でない場合は、これに注目走査線位置のエッジ
バケットを加え、xmin の小さい順にソートしてAET
(CUR)を生成する。
Steps S701 to S704 are described below.
The description is omitted because it is the same as S1 to S4 in FIG. In step S705, the reference scan line active edge table AET (BEF) and the target scan line active edge table AET (CUR) are initialized, and the target scan line position is set to the first scan line position in the page. In step S706, an AET in the format as shown in FIG. 6 at the target scanning line position is generated. However, AET (CU
If R) is not empty, the edge bucket at the scan line position of interest is added to this, and the AET is sorted in ascending order of x min.
(CUR).

【0094】ステップS707において、AET(BE
F)とAET(CUR)を用いて5種の変化画素位置a
0 ,a1 ,a2 ,b1 ,b2 を決定し、これらの位置関
係から3つのモードのどれかを決定し、図23のように
対応する符号を出力する。ステップS707について
は、後に後述する。ステップS707の処理の終了後、
ステップS708に進み、ここで、AET(BEF)に
AET(CUR)の内容をコピーする。そして、前述の
第1の実施例中でも行っていた処理、注目走査線の番号
とymax の値が同じエッジバケットをAET(CUR)
から削除する。ステップS709において、注目走査線
を次の走査線に移す。ステップS710では、以上の処
理がページ内の最後の走査線まで行われたかどうかを判
断し、行われていなければステップS706へ、行われ
ていれば終了する。
In step S707, AET (BE
F) and five types of changed pixel positions a using AET (CUR)
0 , a 1 , a 2 , b 1 , and b 2 are determined, one of the three modes is determined from the positional relationship between them, and the corresponding code is output as shown in FIG. Step S707 will be described later. After the processing of step S707 ends,
Proceeding to step S708, the contents of the AET (CUR) are copied to the AET (BEF). Then, the processing performed in the first embodiment described above, the edge bucket having the same value of the target scanning line number and the value of y max is set to the AET (CUR).
Remove from. In step S709, the target scanning line is moved to the next scanning line. In step S710, it is determined whether or not the above processing has been performed up to the last scanning line in the page. If the processing has not been performed, the process proceeds to step S706. If the processing has been performed, the process ends.

【0095】図25はステップS707の変化画素位置
の検出及び符号出力処理を示すフローチャートである。
ここでは、従来のMR符号化との対応をとりやすくする
ために、図2の如く定義していた座標(0,0)の位置
を(1,1)に変更する。これにともなって、エッジテ
ーブルもymax ,xmin の値にそれぞれ“1”ずつ加算
されたものとなる。
FIG. 25 is a flowchart showing the process of detecting a changed pixel position and outputting a code in step S707.
Here, the position of the coordinates (0, 0) defined as shown in FIG. 2 is changed to (1, 1) in order to facilitate correspondence with the conventional MR coding. Accordingly, the edge table is also obtained by adding "1" to the values of y max and x min respectively.

【0096】まず、ステップS721において、a0
(a0P,a0C)=(0,0)にセットして、ステップS
722で、a1 =(a1P,a1C)を検出する。尚、ここ
でa 1 は前述した通り、注目走査線のa0 の右にある次
の変化画素である。但し、x min cur(i),xmin
bef(j)はそれぞれ注目走査線に対応するアクティ
ブエッジテーブルのi番目のエッジバケットのxmin
値と、参照走査線に対応するアクティブエッジテーブル
のj番目のエッジバケットのxmin の値を示している。
First, in step S721, a0 =
(A0P, a0C) = (0,0) and step S
At 722, a1 = (A1P, a1C) detect. In addition, here
And a 1 Is, as described above, a of the target scanning line.0 Next to the right of
Are changed pixels. Where x min cur (i), xmin 
bef (j) is the activity corresponding to the target scanning line.
X of the i-th edge bucket in the edge tablemin of
Active edge table corresponding to values and reference scan lines
X of the j th edge bucket ofmin Are shown.

【0097】また、a0 ,a1 ,a2 ,b1 ,b2 のデ
ータ構造は、図26に示すように画素位置を示す領域2
60(xP )と、その位置の画素の色を示す領域261
(xC )とから構成されている。この場合、アクティブ
エッジテーブル中のj番目のエッジパケットで示される
画素の色は、iが奇数のとき黒、偶数のとき白であるた
め、画素の色の代わりに奇数か偶数かを示すフラグにし
てもよい。また、a0P,a0Cはそれぞれa0 の画素位
置、偶数か奇数かを示すフラグを示している。a 1P,a
1C,a2P,a2C,b1P,b1C,b2P,b2Cも同様であ
る。
Also, a0 , A1 , ATwo , B1 , BTwo No
The data structure is, as shown in FIG.
60 (xP) and an area 261 indicating the color of the pixel at that position
(XC). In this case, active
Indicated by the j-th edge packet in the edge table
The pixel color is black when i is odd and white when i is even.
Therefore, instead of the pixel color, set a flag indicating whether the pixel is odd or even.
You may. Also, a0P, a0C is a0 Pixel position
And a flag indicating whether the number is even or odd. a 1P, a
1C, aTwoP, aTwoC, b1P, b1C, bTwoP, bTwoSame for C
You.

【0098】ここで、CP[x(i) ]、CC(i) を以下
の様に定義する。
Here, CP [x (i)] and CC (i) are defined as follows.

【0099】 CP[X(i) ]=x(i) iが奇数のとき x(i) +1 iが偶数のとき CC(i) =1 iが奇数のとき =0 iが偶数のとき このとき、a0P<CP[xmin cur(i) かつ、a0C≠
CC(i) となる最小のi=i0 に対して、a1 =(a
1P,a1C)とすると、 a1P=CP[xmin cur(i0)] a1C=CC(i0) となる。もし、i0 が存在しなければa1P=Xsize
1,a1C=0にセットする。
CP [X (i)] = x (i) When i is an odd number x (i) +1 When i is an even number CC (i) = 1 When i is an odd number = 0 When i is an even number At this time , A 0 P <CP [x min cur (i) and a 0 C}
For the minimum i = i 0 that results in CC (i), a 1 = (a
1 P, When a 1 C), the a 1 P = CP [x min cur (i 0)] a 1 C = CC (i 0). If i 0 does not exist, a 1 P = X size +
1, set a 1 C = 0.

【0100】次に、ステップS723において、b1
(b1P,b1C),b2 =(b2P,b 2C)の検出を行う。
Next, in step S723, b1 =
(B1P, b1C), bTwo = (BTwoP, b TwoPerform C) detection.

【0101】b1 =(b1P,b1C)に対しては、CP
[xmin bef(i)>a0Pで、かつCC(i)=a1C
となる最小のi=i1 に対して、 b1P=CP[xmin bef(i1)] b1C=CC(i) また、b2 =(b2P,b2C)に対しては、CP[xmin
bef(i) ]>b1Pとなる最小のi=i2 に対して b2P=CP[xmin bef(i2)] b2C=CC(i) と決定できる。但し、i1 ,i2 が存在しなければb1P
=b2P=Xsize+1,b 1C=b2C=0にセットする。
B1 = (B1P, b1For C), CP
[Xmin bef (i)> a0P and CC (i) = a1C
Minimum i = i1 For b1P = CP [xmin bef (i1)] B1C = CC (i) and bTwo = (BTwoP, bTwoFor C), CP [xmin 
bef (i)]> b1The minimum i = i that is PTwo Against bTwoP = CP [xmin bef (iTwo)] BTwoIt can be determined that C = CC (i). Where i1 , ITwo B does not exist1P
= BTwoP = Xsize+1, b 1C = bTwoSet C = 0.

【0102】a0 ,a1 ,b1 ,b2 が決定されたらス
テップS725に進み、b2P<a1か否かの判定が行わ
れる。そうであればステップS726に進み、パスモー
ドの符号(図23参照)が出力され、ステップS727
において、a0Pにb2Pの値がセットされる。この時、a
0Cの値は、 CP[xmin cur(i) ]≦b2P<CP[xmin cur
(i+1) ] を満たすi=i3 を検出し、a0C=CC(i3 )にセッ
トする。この後、ステップS723に戻る。
When a 0 , a 1 , b 1 , and b 2 are determined, the flow advances to step S725 to determine whether b 2 P <a 1 . If so, the flow advances to step S726 to output the code of the pass mode (see FIG. 23), and the flow advances to step S727.
, The value of b 2 P is set in a 0 P. At this time, a
The value of 0 C is: CP [x min cur (i)] ≦ b 2 P <CP [x min cur
(i + 1)] detects the i = i 3 satisfying, is set to a 0 C = CC (i 3 ). Thereafter, the process returns to step S723.

【0103】一方ステップS725における判定が「N
o」ならばステップS728に進み、|a1P−b1P|≦
3か否かの判定が行われる。この条件が満足する時はス
テップS729に進み、垂直モードの符号が出力され
る。a0 の値はa0P=a1P,a 0C=a1Cがセットされて
ステップS726に移る。
On the other hand, if the determination in step S725 is "N
o ”, the process proceeds to step S728, and | a1P-b1P | ≦
It is determined whether the number is three or not. When this condition is satisfied,
Proceeding to step S729, the vertical mode code is output.
You. a0 Is a0P = a1P, a 0C = a1C is set
It moves to step S726.

【0104】また、ステップS728の判定が「No」
であればステップS731に進んでa2 の検出動作に入
る。ステップS731では、CP[xmin cur(i) ]
>a 1Pである最小のi=i4 に対して、a2 の値をセッ
トする。このi4 が存在しなければa2P=xsize+1,
2C=0にセットする。その後、ステップS732に進
み、a0P=0の判定が行われ、a0P=0であればステッ
プS733に進んで、a1P,a0Pの値を“1”だけデク
リメントする。一方、ステップS732でa0P=0でな
い時はステップS734に進み、ここで水平モードの符
号を出力する。その後、ステップS735において、a
0P=a2P,a0C=a2CにセットしてステップS736に
入る。ここで、a0P=xsize+1かどうかの判定が行わ
れ、そうであればステップS737に進んで処理を終了
し、そうでなければステップS722に戻り、前述した
処理を実行する。
Further, the determination in step S728 is "No".
If so, the flow advances to step S731 to set aTwo Enter detection operation
You. In step S731, CP [xmin cur (i)]
> A 1The smallest i = i that is PFour For aTwo Set the value of
To This iFour If does not exist aTwoP = xsize+1,
aTwoSet C = 0. Thereafter, the process proceeds to step S732.
See, a0A determination is made that P = 0 and a0If P = 0,
Proceeding to step S733,1P, a0Decrease the value of P by "1"
To reset. On the other hand, in step S732, a0P = 0
If not, the process proceeds to step S734, where the horizontal mode
Output a signal. Thereafter, in step S735, a
0P = aTwoP, a0C = aTwoSet to C and go to step S736
enter. Where a0P = xsizeDetermines whether it is +1
If so, the process proceeds to step S737 to end the process.
Otherwise, the process returns to step S722, and
Execute the process.

【0105】以上の様に符号化部分を構成することによ
り、アクティブエッジテーブルから直接符号化コードが
生成できるので、一旦アウトラインベクトルデータより
ドットデータに変換する作業が不要となり、処理が簡単
になる。
By configuring the coding portion as described above, a coding code can be directly generated from the active edge table, so that there is no need to temporarily convert outline vector data into dot data, thereby simplifying the processing.

【0106】尚、第2実施例で述べた方法は、厳密には
MMR方式に対応している。現在用いられているMR方
式に対応するには、Kファクタを導入し、数ラインに1
ライン、MH符号化を行えばよい。これは、第1実施
例,第2実施例の2つを合わせれば容易に構成できる。
The method described in the second embodiment is strictly compatible with the MMR method. To cope with the MR method currently used, a K-factor is introduced, and 1
Line and MH coding may be performed. This can be easily configured by combining the first embodiment and the second embodiment.

【0107】また、算術符号等、画素単位に符号化する
方式においては、アクティブエッジテーブルの偶数番目
のエッジパケットのxmin に“1”を加えた値で示され
る画素から次の奇数番目のエッジパケットのxmin から
1を引いた値で示される画素までを白として逐次符号化
し、奇数番目のエッジパケットのxmin で示される画素
から次の偶数番目のエッジパケットのxmin で示される
画素までを黒として符号化すればよい。 <第3の実施例の説明>前記第1の実施例において、図
21に示したエッジパケットの生成規則中、ケース始1
とケース終1、及びケース始8とケース終8の各組に対
しては、次のように規則を変更してもよい。
In a method of encoding in pixel units such as an arithmetic code, a next odd-numbered edge from a pixel indicated by a value obtained by adding “1” to x min of an even-numbered edge packet in the active edge table is used. from x min packets to the pixel indicated by the value obtained by subtracting 1 sequentially encoded as a white, from the pixel represented by x min of the odd-numbered edge packet to the pixel represented by x min of the next even-numbered edge packet May be encoded as black. <Description of Third Embodiment> In the first embodiment, in the edge packet generation rule shown in FIG.
The rules may be changed as follows for each set of と and 終 1, and 始 8 and 終 8.

【0108】即ち、ケース始1:現エッジの始点は、
“つめないでそのまま”として、かつケース終1:現エ
ッジの終点は“一走査線だけつめる”とする。
That is, case start 1: the start point of the current edge is
It is assumed that it is “as it is without packing”, and the case end 1: the end point of the current edge is “to pack one scanning line”.

【0109】又、ケース始8:現エッジの始点は、“一
走査線だけつめる”として、かつ、ケース終8:現エッ
ジの終点は、“つめないでそのまま”とする。
[0109] Case start 8: The start point of the current edge is "one scan line", and case end 8: the end point of the current edge is "no change".

【0110】また、図16及び図17に示した処理の流
れも、これらに合わせて、ケース始1に対してはステッ
プS636、ケース終1に対してはステップS640
が、その規則の変更に応じて変更されることは容易に理
解できる。また、ケース始8に対してはステップS64
8が、ケース終8に対してはステップS653が変更さ
れることも容易に理解できる。
The flow of the processing shown in FIGS. 16 and 17 also corresponds to these steps in step S636 for the first case and step S640 for the first case.
However, it can be easily understood that it is changed according to the change of the rule. Step S64 is performed for case start 8.
It can also be easily understood that the step S653 is changed for the case end 8 for the case end 8.

【0111】以上の変更は、上向き同士又は下向き同士
の連続する2つのアウトラインエッジに共有されている
頂点は、その頂点を終点とするエッジ上の点としてのみ
処理されるか、或いは、その頂点を始点とするエッジ上
の点としてのみ処理されるかのいずれでもよいことを暗
示し、双方のエッジ上の点として処理されたり、いずれ
のエッジ上の点でもないとして処理されることがなけれ
ば、いずれでもよいことを意味していると考える事がで
きる。 <第4の実施例の説明>又、第1の実施例では、アウト
ラインは右回りのデータ表現をとるものとして説明した
が、本発明はこれに限るものではなく、左回りのデータ
表現をとる場合にも対応可能である。左回りのデータ表
現時には、エッジパケットの生成規則を図27に示した
ものを用いればよい。この場合も、現エッジと前エッジ
の向き及び傾斜の程度から現エッジの始点の取扱いを判
断し、現エッジと次エッジの向き及び傾斜の程度から現
エッジの終点の取り扱いを判断してゆく。左回りのデー
タ表現のエッジパケットの生成規則に従ったエッジテー
ブル更新の処理の流れも、前述の図16及び図17と略
同様であり、ステップS636,S640,S648,
S653の“Y”,“N”が全て反対になるだけの違い
である。 <第5の実施例の説明>前述の第1の実施例に対し、第
3の実施例で説明した変形と同様に、第4の実施例での
図27の規則においても、ケース始11とケース終1
1、及びケース始18とケース終18がそれぞれ組み合
わされて、ケース始11:現エッジの始点は、“一走査
線だけつめる”として、かつケース終11:現エッジの
終点は“つめないでそのまま”としてもよいし、ケース
始18:現エッジの始点は、“つめないでそのまま”と
して、かつ、ケース終18:“一走査線だけつめる”と
してもよい。 <第6の実施例の説明>前記実施例では、座標の原点は
画像の左上にあるとして説明したが、これに限るもので
はない。即ち、原点の位置及び、座標の向きに応じて前
記説明中での向きの判定法や、ymax ,ymin ,x
min ,Δx等の扱いを変更すれば、同様の処理が可能で
あることはもちろんである。 <第7の実施例の説明>前記実施例においては、一転の
みエッジ、即ち始点と終点が一致しているエッジ(点エ
ッジ)は、図11で示されるデータを形成する際に、輪
郭を構成エッジの頂点列から予め除去されているものと
して説明したが、本発明はこれに限るものではない。即
ち、エッジデータの吟味時に、点エッジのデータは無視
して前述の処理を続行してもよい。図14の処理では、
ステップS57の現エッジデータ作成、ステップS58
の次エッジデータ作成、及びS62の次エッジデータの
作成手順において、処理中のエッジが点エッジであれ
ば、すぐ次の頂点データをさらに読み込んで、新たに
(xend ,yend )として、処理を続ければよい。この
とき、読みとばした頂点の数に応じて、注目頂点の位置
の更新や処理隅の頂点数のカウント等を調整すればよい
のである。かくして、エッジテーブルの作成中に点エッ
ジの除去を行うことももちろん可能である。 <第8の実施例の説明>エッジテーブルの構成は、前述
の構成に限るものではない。即ち、ポインタパケットを
図28に示す様な2次元のリスト構造をもったデータ形
成としてもよい。ポインタパケットは、そのポインタパ
ケットからリスト接続されるエッジパケットのエッジの
y座標の小さい方の端点のy座標値(ymin )(これ
は、このポインタパケットから順に複数のエッジパケッ
トがリスト接続される場合も、それら複数のエッジのy
min は全て等しい値であることに注目)を保持する項
と、y座標値を昇順に見た場合に、リスト接続されるエ
ッジパケットを有するポインタパケットの中で次に来る
ポインタパケットへのポインタの項と、そのポインタパ
ケットに接続されるエッジパケットへのポインタ項より
構成されている。
The above change is that a vertex shared by two consecutive outline edges that are directed upward or downward is processed only as a point on an edge ending at the vertex, or the vertex is It implies that it may be processed only as a point on the edge that is the starting point, and unless it is processed as a point on both edges or not as a point on either edge, It can be considered that this means that either is acceptable. <Explanation of Fourth Embodiment> In the first embodiment, the outline has been described as taking the clockwise data representation. However, the present invention is not limited to this, and takes the counterclockwise data representation. It is possible to deal with the case. When expressing counterclockwise data, the rule for generating an edge packet shown in FIG. 27 may be used. In this case as well, the handling of the starting point of the current edge is determined based on the direction and the degree of inclination of the current edge and the previous edge, and the handling of the end point of the current edge is determined based on the direction and the degree of inclination of the current edge and the next edge. The flow of the process of updating the edge table according to the generation rule of the edge packet expressing the counterclockwise data is also substantially the same as that in FIGS. 16 and 17 described above, and steps S636, S640, S648,
The only difference is that “Y” and “N” in S653 are all opposite. <Description of Fifth Embodiment> In the same manner as the modification described in the third embodiment, the case of the fourth embodiment is different from the first embodiment in the rule of FIG. Case end 1
1, and the case start 18 and the case end 18 are respectively combined, and the case start 11: the start point of the current edge is set to "clamp one scan line", and the case end 11: the end point of the current edge is set to "no change" Or the case start 18: the starting point of the current edge may be "as is without clogging", and the case end 18: "only one scanning line may be clogged". <Explanation of the Sixth Embodiment> In the above embodiment, the origin of the coordinates is described as being at the upper left of the image, but the present invention is not limited to this. That is, the position of the origin and the determination method and the orientation of in the description according to the direction of the coordinates, y max, ymin, x
Of course, the same processing can be performed by changing the handling of min , Δx, and the like. <Explanation of the Seventh Embodiment> In the above-described embodiment, only one-turn edges, that is, edges (point edges) whose start point and end point coincide with each other, form a contour when forming the data shown in FIG. Although it has been described that the edge has been removed from the vertex sequence of the edge, the present invention is not limited to this. That is, when examining the edge data, the data of the point edge may be ignored and the above-described processing may be continued. In the processing of FIG.
Creation of current edge data in step S57, step S58
In the next edge data creation procedure of step S62 and the next edge data creation procedure of step S62, if the edge being processed is a point edge, the next vertex data is further read in, and the data is newly processed as (x end , y end ). Should be continued. At this time, the updating of the position of the target vertex, the counting of the number of vertices at the processing corner, and the like may be adjusted according to the number of skipped vertices. Thus, it is of course possible to remove point edges during the creation of the edge table. <Description of Eighth Embodiment> The configuration of the edge table is not limited to the configuration described above. That is, the pointer packet may be formed into data having a two-dimensional list structure as shown in FIG. The pointer packet has a y-coordinate value (y min ) of the smaller end point of the y-coordinate of the edge of the edge packet connected in a list from the pointer packet (a plurality of edge packets are connected in a list in order from the pointer packet) In some cases, the y
min are all equal values), and when the y-coordinate value is viewed in ascending order, the pointer to the next pointer packet among the pointer packets having the edge packets connected in a list is And a pointer term to an edge packet connected to the pointer packet.

【0112】図28の形式をもったポインタパケットを
もった構成したエッジテーブルの例が図29である。図
29は、図3で与えられるアウトライン図形に対して構
成されるエッジテーブルである。この様に、2次元のリ
スト構造をもったエッジテーブルも、前述の実施例とほ
ぼ同様の手順で構成が可能であるが、ポインタパケット
領域があらかじめ画像の走査線本数分確保されているの
ではなく、エッジパケットが一つ生成されるたび毎に、
既存のポインタパケットの中に該当エッジパケットの表
すエッジのymin を保持するものがあるか否かを判定す
る。そして、あればそのポインタパケットでなるエッジ
パケットのリスト列に、該当エッジパケットを追加し、
なければ新たなポインタパケットを生成して、そのポイ
ンタパケットにymin を格納し、該当エッジパケットリ
スト接続した上で、新たに生成ポインタパケットをy
min の順で、ポインタパケット列のリスト接続に追加・
挿入しておくという操作を行うようになっている。
FIG. 29 shows an example of an edge table configured with pointer packets having the format shown in FIG. FIG. 29 is an edge table configured for the outline graphic given in FIG. As described above, an edge table having a two-dimensional list structure can be configured in substantially the same procedure as in the above-described embodiment. However, if the pointer packet area is previously secured for the number of scanning lines of an image, No, every time one edge packet is generated,
It is determined whether or not there is an existing pointer packet that holds y min of the edge represented by the corresponding edge packet. Then, if there is, the corresponding edge packet is added to the list of edge packets consisting of the pointer packet,
If not, a new pointer packet is generated, y min is stored in the pointer packet, the relevant edge packet list is connected, and the newly generated pointer packet is changed to y.
Add to the list connection of the pointer packet sequence in the order of min
The operation of inserting it is performed.

【0113】この様なエッジテーブルを用いての、アク
ティブエッジテーブルの生成も前述第1の実施例と同様
である。
The generation of the active edge table using such an edge table is the same as that of the first embodiment.

【0114】この様な2次元構造をもったリスト構造を
採用すれば、画像の走査線本数のポインタパケット領域
を用意する必要はなくなり、特に扱う画像が大サイズの
ものであればあるほど、エッジテーブルに要するランダ
ムメモリ領域が少量で済ませられるという特有の効果を
生む。
By adopting the list structure having such a two-dimensional structure, it is not necessary to prepare a pointer packet area for the number of scanning lines of an image. This produces a unique effect that a small amount of random memory area is required for the table.

【0115】尚、本発明は複数の機器から構成されるシ
ステムに適用しても、1つの機器からなる装置に適用し
ても良い。また、本発明はシステム或は装置に、本発明
を実施するプログラムを供給することによって達成され
る場合にも適用できることは言うまでもない。
The present invention may be applied to a system composed of a plurality of devices or an apparatus composed of one device. Needless to say, the present invention can also be applied to a case where the present invention is achieved by supplying a program for implementing the present invention to a system or an apparatus.

【0116】以上に述べた様に線要素の連続する一方向
における注目線要素とその前後に隣接するそれぞれの線
要素との接続関係に基づいて、主走査から見たときの輪
郭線データを生成し、輪郭線データから送出すべき符号
を生成することにより、処理の高速化及び簡素化が図れ
る。
As described above, contour line data as viewed from the main scan is generated based on the connection relationship between the line element of interest in one continuous direction of the line elements and the line elements adjacent before and after the line element. By generating codes to be transmitted from the contour data, the processing can be speeded up and simplified.

【0117】[0117]

【発明の効果】以上説明したように本発明によれば、閉
輪郭を表わすベクトルデータから符号データを生成する
際、簡素な構成で高速な処理を行うことが可能となる。
As described above, according to the present invention, when code data is generated from vector data representing a closed contour, high-speed processing can be performed with a simple configuration.

【図面の簡単な説明】[Brief description of the drawings]

【図1】実施例の符号化装置をファクシミリ装置に適用
した概略構成を示すブロック図である。
FIG. 1 is a block diagram illustrating a schematic configuration in which an encoding device according to an embodiment is applied to a facsimile device.

【図2】アウトライン図形データの一例を示す図であ
る。
FIG. 2 is a diagram illustrating an example of outline graphic data.

【図3】実施例で用いる右回りアウトライン図形データ
の例を示す図である。
FIG. 3 is a diagram illustrating an example of clockwise outline graphic data used in the embodiment.

【図4】エッジパケットデータのデータ構成を示す図で
ある。
FIG. 4 is a diagram showing a data configuration of edge packet data.

【図5】従来法による図2のアウトライン図形データの
エッジテーブル(ET)の説明図である。
5 is an explanatory diagram of an edge table (ET) of the outline graphic data of FIG. 2 according to a conventional method.

【図6】従来法における図2のアウトライン図形データ
のアクティブエッジテーブル(AET)の説明図であ
る。
6 is an explanatory diagram of an active edge table (AET) of the outline graphic data of FIG. 2 in a conventional method.

【図7】従来法による図2のアウトライン図形データの
アクティブエッジテーブル(AET)の推移を説明する
ための図である。
7 is a diagram for explaining transition of an active edge table (AET) of the outline graphic data of FIG. 2 according to a conventional method.

【図8】奇偶反転法に内在する問題を説明するための図
である。
FIG. 8 is a diagram for explaining a problem inherent in the odd-even inversion method.

【図9】右回りアウトライン閉図形の内部領域を説明す
る図である。
FIG. 9 is a diagram illustrating an internal region of a clockwise outline closed figure.

【図10】左回りアウトライン閉図形の内部領域を説明
する図である。
FIG. 10 is a diagram illustrating an internal region of a left-handed outline closed figure.

【図11】アウトライン図形の座標列形式の輪郭データ
を示す図である。
FIG. 11 is a diagram showing outline data in the form of a coordinate string of an outline figure.

【図12】図3のアウトライン図形データの座標列形式
の輪郭データを説明した図である。
12 is a diagram illustrating outline data in the form of a coordinate sequence of the outline graphic data of FIG. 3;

【図13】第1の実施例におけるファクシミリ装置の符
号化動作を示すフローチャートである。
FIG. 13 is a flowchart showing an encoding operation of the facsimile apparatus in the first embodiment.

【図14】第1の実施例におけるエッジテーブル(E
T)の生成手順を示すフローチャートである。
FIG. 14 shows an edge table (E) in the first embodiment.
12 is a flowchart illustrating a generation procedure of T).

【図15】初期化されたアドレスポインタ領域を示す図
である。
FIG. 15 is a diagram showing an initialized address pointer area.

【図16】FIG. 16

【図17】第1の実施例におけるパケットデータの生成
及びエッジテーブルの更新の手順を示すフローチャート
である。
FIG. 17 is a flowchart illustrating a procedure for generating packet data and updating an edge table in the first embodiment.

【図18】モデファイド・ハフマン(MH)コードを説
明するための図である。
FIG. 18 is a diagram for explaining a modified Huffman (MH) code.

【図19】図3のアウトライン図形データに基づくエッ
ジテーブル(ET)の説明図である。
FIG. 19 is an explanatory diagram of an edge table (ET) based on the outline graphic data of FIG. 3;

【図20】図3のアウトライン図形データアクティブエ
ッジテーブル(AET)の推移を説明するための図であ
る。
FIG. 20 is a diagram for explaining transition of the outline graphic data active edge table (AET) of FIG. 3;

【図21】第1の実施例における右回りアウトラインに
対するパケットデータ生成規則を示す図である。
FIG. 21 is a diagram illustrating a packet data generation rule for a clockwise outline in the first embodiment.

【図22】MR方式における変化画素の定義を説明する
ための図である。
FIG. 22 is a diagram for explaining the definition of a changing pixel in the MR method.

【図23】MR符号化の符号化を説明するための図であ
る。
FIG. 23 is a diagram for describing encoding of MR encoding.

【図24】第2実施例のファクシミリ装置における符号
化処理の流れを示すフローチャートである。
FIG. 24 is a flowchart showing a flow of an encoding process in the facsimile apparatus of the second embodiment.

【図25】図24のステップS707における符号出力
処理のフローチャートである。
FIG. 25 is a flowchart of a code output process in step S707 of FIG. 24.

【図26】第2の実施例における変化画素のデータ構造
を示す図である。
FIG. 26 is a diagram showing a data structure of a changed pixel in the second embodiment.

【図27】他の実施例における左回りアウトラインに対
するパケットデータ生成規則を示す図である。
FIG. 27 is a diagram illustrating a packet data generation rule for a left-handed outline according to another embodiment.

【図28】他の実施例におけるポインタパケットデータ
のデータ構造を説明するための図である。
FIG. 28 is a diagram illustrating a data structure of pointer packet data in another embodiment.

【図29】他の実施例における図3のアウトライン図形
データのエッジテーブル(ET)の説明図である。
FIG. 29 is an explanatory diagram of an edge table (ET) of the outline graphic data of FIG. 3 in another embodiment.

【符号の説明】[Explanation of symbols]

101 制御部 103 輪郭データファイル 104 操作部 111 CPU 112 ROM 113 RAM 114 バッファメモリ 115 符号化部 116 復号化部 117 送受信バッファ 101 control unit 103 contour data file 104 operation unit 111 CPU 112 ROM 113 RAM 114 buffer memory 115 encoding unit 116 decoding unit 117 transmission / reception buffer

───────────────────────────────────────────────────── フロントページの続き (56)参考文献 電子通信学会論文誌、Vol63−D、 No.10、(1980)、p899−906、星野 肇夫他、「ランレングスにより簡易画像 の彩色法」 (58)調査した分野(Int.Cl.7,DB名) G06T 11/40 200 G06T 9/00 H04N 1/41 ──────────────────────────────────────────────────続 き Continuation of the front page (56) References IEICE Transactions, Vol 63-D, No. 10, (1980), pp. 899-906, H. Hoshino, et al., "Coloring method for simple images by run length" (58) Fields investigated (Int. Cl. 7 , DB name) G06T 11/40 200 G06T 9/00 H04N 1/41

Claims (6)

(57)【特許請求の範囲】(57) [Claims] 【請求項1】 輪郭の頂点座標を含むベクトルデータを
入力する入力手段と、 前記ベクトルデータの各頂点座標同士を接続するエッジ
と、前記ベクトルデータの座標軸のいずれか一方に平行
な走査線との交点座標を求める交点検出手段と、 前記交点検出手段により検出された交点座標に基づいて
前記走査線毎に白ラン、黒ランの長さを表わす符号化デ
ータを作成する符号化手段とを有し、 前記符号化手段は前記ベクトルデータに基づく輪郭を表
すドットデータに展開することなく前記符号化データを
作成することを特徴とする符号化装置。
1. Vector data including vertex coordinates of a contour is
Input means for inputting, and an edge connecting each vertex coordinate of the vector data
And parallel to one of the coordinate axes of the vector data.
Based on intersection coordinates detected by the intersection detection means for obtaining intersection coordinates with the scanning line.
Coded data representing the length of white run and black run for each scanning line
Encoding means for creating data , wherein the encoding means displays contours based on the vector data.
The encoded data can be converted to
An encoding device characterized by being created.
【請求項2】 前記交点検出手段は、各エッジを表わす
エッジデータを含むエッジテーブルを作成し、前記エッ
ジテーブルに基づき注目走査線位置と前記エッジとの交
点を示すデータを含むアクティブエッジテーブルを作成
して交点座標を求めることを特徴とする請求項1に記載
の符号化装置。
2. The intersection detecting means represents each edge.
Create an edge table containing edge data, and
The intersection between the position of the scanning line of interest and the edge
Create an active edge table containing data indicating points
2. The intersection coordinates are obtained by calculating
Encoding device.
【請求項3】 前記符号化手段により作成された符号化
データを送信する送信手段と、 受信した符号化データを画像データに復号化する復号化
手段と、 前記復号化手段により復号された画像データを記録する
記録手段と、 を更に有することを特徴とする請求項1に記載の符号化
装置。
3. The encoding created by said encoding means.
Transmitting means for transmitting data, and decoding for decoding received encoded data into image data
Means for recording image data decoded by the decoding means
2. The encoding apparatus according to claim 1, further comprising: a recording unit .
apparatus.
【請求項4】 輪郭の頂点座標を含むベクトルデータを
入力する入力工程と、 前記ベクトルデータの各頂点座標同士を接続するエッジ
と、前記ベクトルデータの座標軸のいずれか一方に平行
な走査線との交点座標を求める交点検出工程と、 前記交点検出工程で検出された交点座標に基づいて前記
走査線毎に白ラン、黒ランの長さを表わす符号化データ
を作成する符号化工程とを有し、 前記符号化工程では前記ベクトルデータに基づく輪郭を
表すドットデータに展開することなく前記符号化データ
を作成することを特徴とする符号化方法。
4. Vector data including vertex coordinates of a contour is
An input step of inputting, and an edge connecting each vertex coordinate of the vector data
And parallel to one of the coordinate axes of the vector data.
An intersection detection step of obtaining intersection coordinates with a scanning line, and the intersection coordinates detected in the intersection detection step.
Coded data representing the length of white run and black run for each scanning line
Encoding step of creating a contour based on the vector data in the encoding step.
The encoded data without expanding the dot data to represent
An encoding method characterized by creating.
【請求項5】 前記交点検出工程は、各エッジを表わす
エッジデータを含む エッジテーブルを作成し、前記エッ
ジテーブルに基づき注目走査線位置と前記エッジとの交
点を示すデータを含むアクティブエッジテーブルを作成
して交点座標を求めることを特徴とする請求項4に記載
の符号化方法。
5. The method according to claim 1, wherein the intersection detecting step represents each edge.
Create an edge table containing edge data, and
The intersection between the position of the scanning line of interest and the edge
Create an active edge table containing data indicating points
5. The intersection coordinates are obtained by performing
Encoding method.
【請求項6】 前記符号化工程で作成された符号化デー
タを送信する送信工程と、 受信した符号化データを画像データに復号化する復号化
工程と、 前記復号化工程で復号された画像データを記録する記録
工程と、 を更に有することを特徴とする請求項4に記載の符号化
方法。
6. The encoded data created in said encoding step.
And a decoding step of decoding received encoded data into image data.
Recording that records and processes the image data decoded by said decoding step
5. The encoding according to claim 4, further comprising:
Method.
JP01079092A 1992-01-24 1992-01-24 Encoding method and apparatus Expired - Fee Related JP3155595B2 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
JP01079092A JP3155595B2 (en) 1992-01-24 1992-01-24 Encoding method and apparatus
DE69332918T DE69332918D1 (en) 1992-01-24 1993-01-22 Device and method for extracting edge data and for encoding image data with this edge data
EP93100949A EP0552791B1 (en) 1992-01-24 1993-01-22 Apparatus and method for extracting outline data and encoding image data using the outline data
US08/377,509 US5748777A (en) 1992-01-24 1995-01-24 Apparatus and method for extracting outline data and encoding image data using the outline data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP01079092A JP3155595B2 (en) 1992-01-24 1992-01-24 Encoding method and apparatus

Publications (2)

Publication Number Publication Date
JPH05205069A JPH05205069A (en) 1993-08-13
JP3155595B2 true JP3155595B2 (en) 2001-04-09

Family

ID=11760140

Family Applications (1)

Application Number Title Priority Date Filing Date
JP01079092A Expired - Fee Related JP3155595B2 (en) 1992-01-24 1992-01-24 Encoding method and apparatus

Country Status (1)

Country Link
JP (1) JP3155595B2 (en)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11887222B2 (en) * 2021-11-12 2024-01-30 Rockwell Collins, Inc. Conversion of filled areas to run length encoded vectors
US12002369B2 (en) 2021-11-12 2024-06-04 Rockwell Collins, Inc. Graphical user interface (GUI) for selection and display of enroute charts in an avionics chart display system
US11842429B2 (en) 2021-11-12 2023-12-12 Rockwell Collins, Inc. System and method for machine code subroutine creation and execution with indeterminate addresses
US11748923B2 (en) 2021-11-12 2023-09-05 Rockwell Collins, Inc. System and method for providing more readable font characters in size adjusting avionics charts
US11854110B2 (en) 2021-11-12 2023-12-26 Rockwell Collins, Inc. System and method for determining geographic information of airport terminal chart and converting graphical image file to hardware directives for display unit
US11954770B2 (en) 2021-11-12 2024-04-09 Rockwell Collins, Inc. System and method for recreating graphical image using character recognition to reduce storage space
US11915389B2 (en) 2021-11-12 2024-02-27 Rockwell Collins, Inc. System and method for recreating image with repeating patterns of graphical image file to reduce storage space

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
電子通信学会論文誌、Vol63−D、No.10、(1980)、p899−906、星野肇夫他、「ランレングスにより簡易画像の彩色法」

Also Published As

Publication number Publication date
JPH05205069A (en) 1993-08-13

Similar Documents

Publication Publication Date Title
JP2806961B2 (en) Image coding method
EP0667018B1 (en) Polygon rasterization
US6753860B2 (en) Tile-based digital differential analyzer rasterization
JPH0719297B2 (en) Graphic display processing system and method
US5043711A (en) Representation of polygons defined by non-zero winding numbers
US5748777A (en) Apparatus and method for extracting outline data and encoding image data using the outline data
EP0279156A2 (en) Apparatus and method for vectorization of incoming scanned image data
EP0200885B1 (en) Method and apparatus for processing image data
EP0522877B1 (en) Image processing
JP3155595B2 (en) Encoding method and apparatus
EP0344686B1 (en) Clipping process and processor
US6025851A (en) Envolvent approximation using accurate slope information
US5014331A (en) Method of detecting an internal point within a closed area
US5317650A (en) Determination of the arc length of a curve
Shima et al. A high‐speed rotation method for binary images based on coordinate operation of run data
JP3266905B2 (en) Graphic processing unit
Šrámek Fast ray-tracing of rectilinear volume data
JP2819961B2 (en) Printing control device
JPH0520466A (en) Method and device for processing picture
JPH0520467A (en) Method and device for processing picture
JP3212873B2 (en) Tone image generation method
JP3843794B2 (en) Graphic processing device
JP3211591B2 (en) Image processing device
JP3037504B2 (en) Image processing method and apparatus
JPH0520468A (en) Method and device for processing picture

Legal Events

Date Code Title Description
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20010109

LAPS Cancellation because of no payment of annual fees