JPS6133231B2 - - Google Patents

Info

Publication number
JPS6133231B2
JPS6133231B2 JP54156967A JP15696779A JPS6133231B2 JP S6133231 B2 JPS6133231 B2 JP S6133231B2 JP 54156967 A JP54156967 A JP 54156967A JP 15696779 A JP15696779 A JP 15696779A JP S6133231 B2 JPS6133231 B2 JP S6133231B2
Authority
JP
Japan
Prior art keywords
contour
stroke
data
line
vector
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
Application number
JP54156967A
Other languages
Japanese (ja)
Other versions
JPS5579154A (en
Inventor
Guburyuu Buraun Kenesu
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.)
KONPYUGURAFUITSUKU CORP
Original Assignee
KONPYUGURAFUITSUKU CORP
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 KONPYUGURAFUITSUKU CORP filed Critical KONPYUGURAFUITSUKU CORP
Publication of JPS5579154A publication Critical patent/JPS5579154A/en
Publication of JPS6133231B2 publication Critical patent/JPS6133231B2/ja
Granted legal-status Critical Current

Links

Landscapes

  • Image Processing (AREA)

Description

【発明の詳細な説明】[Detailed description of the invention]

本発明は、写真植字に使用するための装置に関
し、さらに詳しくいうとCRT写真植字装置に使
用するためのフオント情報をコード化し、解読す
るのに使用される装置に関する。 写真植字装置は、新聞、ニユーステキスト(ニ
ユース本文)、案内広告資料、電話帳、部品リス
トおよびカタログのような広範囲の選択された植
字分野に対拠することが要求されることがしばし
ばある。この種の応用においては、写真植字装置
に普通多数の活字フオントが使用され、あるい
は、1つの装置で活字フオントを1つのジヨブか
ら他のジヨブに迅速に切り換えることが必要とさ
れよう。また、複写される活字フオントは、植字
形式に水平または垂直方向に、あるいは水平およ
び垂直両方向に割付けされる。 従来技術の写真植字機においては、解像管が植
字されるべき各活字フオントに対する関連するガ
ラスフオトグリツド(ガラス文字版)とともに使
用されよう。一形式の従来装置においては、フオ
ントグリツドはマスタ文字を含んであり、各文字
と関連する1組のコード化バーが文字の幅を表わ
す。この種の装置においては、フオントグリツド
から選択された記号の像が解像管のカソード上に
投影され、幅バーが感知され、関連する値がメモ
リ位置に記憶される。他方、入力ペーパテープに
より、行幅、ポイントサイズおよび行間のような
必要な印刷パラメータを表わす情報が提供され
る。コンピユータで形成されたテープまたは予め
正しいと認められた計数キーボード出力の場合、
すべての制御機能および命令は、入力テープから
読み取られる。 植字されるべき行が装置に読み取られるとき
(例えばペーパテープリーダにより)、行内の文字
が解像管グリツド上で選択的に走査される。文字
が走査されるとき、適当なメモリ位置からの文字
幅データが、ワード間データとともに、もし必要
ならば文字間データとともに処理され、計算が遂
行され、CRT変調制御信号が発生される。電子
的操作が、解像管から抽出される文字に対して入
力テープ制御下で遂行され、サイジング(サイズ
の決定)、オブリーキング(斜体化)、縮コンデン
ジング(圧縮)またはエキスパンデイング(伸
張)、あるいはボールドフエース(肉太化)効
果、その他のごとき活字の変化をもたらすことが
できる。最後に、陰極線管(CRT)のフアイバ
ーオプテイツクフエースプレートを介してCRT
の管面に、そして感光媒体上に文字が発生され
る。 従来の装置においては、必要とされるメモリ
は、装置が出力CRTに対して迅速に文字信号を
発生しうるようにするため極度に大きい。加え
て、この種の装置は、一般に、活字フオントの変
換が必要とされる場合には、手動的介入を必要と
する(例えば、比較的嵩高で脆弱なフオントグリ
ツトを取り替える形式の)。さらに、文字が植字
される度に、全処理ルーチン(すなわち、選択、
走査、処理)が、出力CRTに対する適当な文字
信号を発生するために遂行されねばならない。 他の従来の手法においては、デイジタルメモリ
を基本的に特定のフオントの全文字を表わす記憶
されたデイジタル信号のライブラリで予めロード
することにより、後者の問題が避けられることが
しばしばある。しかしながら、全1フオント、普
通約100の記号に対するフオントの記号信号を記
憶するに必要なメモリは極度に大である。さら
に、このような記憶されたフオント文字信号に対
する単なる信号の発生は、それ自体難しい仕事で
ある。 この種の従来装置に必要とされる記憶を減ずる
ために、フオント文字信号が記憶前にコード化さ
れることがしばしばあるが、このステツプは、装
置のコード化部分について複雑さを増し、また装
置の解読部分を必要とする。さらに、従来のコー
ド化技術は、文字扱者により選択される割付け、
ボールドフエース効果等に向けられる処理のごと
く、フオント文字信号の処理に厳しい制限を課し
ている。 したがつて、本発明の目的は、CRTに対する
写真植字制御信号を発生するための改良された装
置を提供することである。 本発明の他の目的は、植字されるべき像の表示
を効率的に発生し、かつ解読された表示を写真植
字装置の出力CRTに対する制御信号に変換する
ための改良された装置を提供することである。 本発明のさらに他の目的は、植字されるべき像
の表示を解読し、解読された表示を2直交方向に
独立的に割付けし、かつ割り付けされた解読され
た表示を、写真植字装置の出力CRTに対する制
御信号に変換する改良された装置を提供すること
である。 簡単に述べると、本発明は、写真植字に使用す
るための装置に向けられる。本発明の一側面にお
いては、活字フオントが走査され、その像を表わ
す文字ないし符号データが発生される。走査され
る原フオント情報は、文字カードでもよいし、あ
る他の従来形式でもよい。走査データは次いで第
1の予め定められた順序のステツプにしたがつて
コード化される。得られたコード化データは、例
えば磁気デイスクパツクのごとき記憶媒媒体上に
デイジタル形式で一時的に記憶される。本発明の
この側面にしたがえば、各々比較的コンパクトな
コード化形式の記憶されたフオントデータを含む
デイスクパツクライブラリが、多数の活字フオン
トに対して設定されよう。本発明のある形式にお
いては、デイスクパツクまたは他の媒体に記憶さ
れるコード化フオントデータがデイスクパツクに
記憶前暗号化され、あるいは代わりに、情報がデ
イスクパツクから抽出され、暗号化され、ついで
フロツピデイスクのようなある他の媒体上に記憶
されよう。本発明の後者の形式においては、暗号
化は、記憶されたフオント情報に対して防護の役
を果す。 本発明の他の側面にしたがえば、デイスクパツ
ク、あるいは代りにフロツピデイスクまたは他の
記憶媒体から取り出される記憶されたコード化フ
オントデータは、従来の態様で提供される植字さ
れるべき行を特定する文字選択制御信号と一緒に
装置のデコーダ部で処理されよう。最初、記憶さ
れたコード化フオントデータは、媒体から局部的
なデコーダメモリに読み込まれる。選択された文
字データは、次いで、第2の予定された順序のス
テツプにしたがつて解読される。解読された選択
された文字データは、次いでCRTに対するビデ
オ信号に変換される。コード化フオントデータが
暗号化形式で記憶される装置においては、対応す
るデータデクリプタが装置のデコーダ部の前端に
利用される。 第1のステツプシーケンス(コード化)と第2
のステツプシーケンス(解読)は関係づけられて
いて、解読シーケンスが、従来の写真植字装置の
出力CRTに対して、その出力CRTの動作のラス
タパターンの対応するストローク中ストローク信
号を発生するように遂行される。その結果、出力
CRTに対する再構成像を記憶するのに相当小形
のメモリしか必要とされない。 さらに、コード化シーケンスは、記憶されたコ
ード化データのフオーマツトが特定の順序で配列
されて、データが提示されるとき装置のデコーダ
部により利用されるように構成されている。この
結果、解読動作に対して、比較的少ない直線的な
いし簡単ななハードウエアおよびソフトウエアし
か必要とされない。従つて、装置のデコーダ部の
位置において必要とされるメモリは比較的小さ
い。何故ならば、記憶媒体におけるデータは順序
づけられた構成を有するので、処理のためにタグ
や他の識別部分を必要としないからである。 記憶されたコード化されたフオントデータは、
装置のデコーダ部により必要とされる態様に順序
づけられた形式であるから、関連するタグや類似
のものでデータ部分を識別して記憶データを再構
成する上で、装置のデコーダ部に比較的少ない処
理しか必要とされない。本発明のこのコード化法
の結果、装置のフオントデイジタル化ないしコー
ド化部は、比較的複雑であるが、デコーダ部は比
較的単純である。この結果、装置は、コード化デ
ータを発生する単一のコード化ステーシヨンと、
多数の遠隔の比較的廉価のデコーダステーシヨン
とで容易に構成できる。 さらに、ステツプのコード化シーケンスは、媒
体上のコード化データが次のような態様で、すな
わち、写真植字装置の出力CRT上に選択された
文字ないし符号の再現のための選択的割付けを行
なうように解読シーケンスが選択的に変更されう
るような態様で遂行される。この選択的割付け
は、2直交方向と無関係としうる。換言すれば、
操作者は、ある選択されたフアクタで水平方向に
割付けし、他の選択されたフアクタで垂直方向に
割付けを行なうように選択できよう。代わりに、
操作者は、水平および垂直両方向に1の割付けフ
アクタを選択できる。いずれの場合にも、割付け
された符号に対する出力CRT制御信号は、ラス
タパターンにおいて一定の空間的ストローク割合
すなわちピツチで提供される。このように、本発
明では、植字されるべき文字の全表示を含む
RAMの内容を割付けする従来の手法と異なり、
基本的に、輪郭縁部のベクトル表示を割付けす
る。また、文字の割付けは、一定のピツチを維持
しながら1より大または小となるように内挿的に
遂行される。 本発明にしたがえば、装置のデコーダ部に対す
る媒体上のフオント信号に対するフオーマツト
は、割付け形式か、あるいは最初にコード化され
たマスタに直接関係づけられるかのいずれかであ
る。しかしながら、割付けは装置のデコーダ部で
容易に遂行されうるから、本発明の好ましい形式
では、コード化文字を表わす単一形式の中間メモ
リが提供される。この後者の特徴は、媒体上にコ
ード化情報を記憶し、情報を解読し、所望の出力
シンボルをランダムアクセスメモリ(RAM)に
再構成し、次いでこの情報を処理して、割付け、
それに続いて割り付けされた符号を表わす得られ
た制御信号の読出しを行なう従来装置の技術と対
比される。本発明では、ORT上に文字を表示す
る前に符号の割付けを行なうことにより、従来装
置に比して解像度が改善されるのである。 本発明にしたがえば、1つの符号に対する全フ
イールドにわたり像変換点を1つの2進レベルか
ら他の2進レベルへと追つて輪郭を追つたコード
化を行なうことにより、コード化フオント文字な
いし符号信号が発生される。全輪郭は、像の一縁
から他縁へと単調的に増加することにより定めら
れ、そして結合点が必要に応じて設けられる。適
応性のあるコード化技術は、輪郭に対するコード
化点の数すなわちベクトルの数がコード化され
つゝある符号の輪郭の曲線の変化率に依存して変
化する場合、直線内挿法に基づく。 次に、好ましい具体例との関連において本発明
の概要を説明する。 本発明は、バツクグラウンドに対する目的物の
輪郭を表わすデータを発生する手段を含む。最
初、対象およびバツクグラウンドを含む像が、複
数の実質的に平行な線に沿つて走査される。対象
の輪郭点は、これらの走査線に沿つて識別され
る。黒白像を光学的に走査する場合、これらの輪
郭点は、走査線に沿う像の黒−白変換点および白
−黒変換点の座表を表わすことになる。走査が1
つの走査線から次の走査線に進行するにつれ、識
別された輪郭点の選択されたものが群に分けられ
るのであるが、これは、各群の輪郭点が対象の輪
郭要素を表わすようになされる。しかして、輪郭
要素は、走査線に対して垂直な方向に単調に延び
る対象の境界の一部として定義される。各群に対
してベクトルデータが発生されて記憶される。
こゝにベクトルデータは、関連する輪郭要素の部
分直線表示を形成する直線ベクトルを表わす。区
画的な直線表示の各直線部分に対応するベクトル
データは、走査線の方向におけるその部分の変化
(△Y)、およびその部分が延在する走査線の数
(△X)を表わす。好ましい具体例において、各
走査線は垂直(Y)方向に延びるように定めら
れ、隣接する走査線は水平(X)方向に1増分だ
け相互に変位される。 ベクトルデータは、像に対する1連のデータワ
ードとしてコード化され、記憶される。1連のデ
ータワードは、各輪郭要素のスタート位置を表わ
す少なくとも1つのワード、直線部分の△X値の
範囲および△X範囲値が有効である直線部分の数
を表わす少なくとも1つのワード、直線部分の各
△Y値の範囲および△Y範囲値が有効である直線
部分の数を表わす少なくとも1つの他のワード、
および直線部分に対する△Xおよび△Y値を表わ
す少なくとも1つのワードを含む。コード化され
たベクトルワードは、コンパイルされ、輪郭要素
の種々の部分の検出に関係づけられた予め定めら
れた順序で記憶される。 本発明は、上述のコード化コードワードのごと
き順番のコードワードシーケンスから、一連のス
トローク信号を発生する装置に向けられる。一連
のストローク信号は、バツクグラウンド上の対象
を含む像の実質的に平行な対応する一連の細長い
ストリツプの光学的特性を表わす。ストリツプ
は、上に定めた走査線方向に対応する方向に延び
る。コードワードは、対象の関連する輪郭要素に
沿つて輪郭点を接続する線分を表わす。こゝに、
輪郭要素は、像ストリツプに平行において単価関
数である輪郭部分として定義される。 一般的に述べるとコードワードは、線分の始
点、線分の始点および終点間の位置的変化、およ
び同じ範囲に対応する位置的変化を有する同じ輪
郭要素と関連する一連の線分の数を表わすデータ
を含む。 ストローク信号を発生する過程において、像の
種々のストリツプの各々は、現在ストリツプとし
て逐次識別される。各現在ストリツプに対して、
ベクトルジエネレータが、現在ストリツプに重な
る線分を表わすコードワードから誘導されるベク
トルデータを発生し記憶する。各線分に対するベ
クトルデータは次のものを表わす。すなわち、現
在ストリツプから次のストリツプまでのストリツ
プの方向における線分の位置(Y)の変化に対応
する比△Y/△X(2) 現在ストリツプにおける線
分の始点、および(3) その線分の比が変化しない
後続のストリツプの数である。記憶されたベクト
ルデータは、現在ストリツプにごとに、ストロー
ク信号の1つに変換される。 本発明の1具体例において、記憶されたベクト
ルデータは、現在ストリツプにおける各線分の位
置を識別し、対応するビデオストローク信号を2
進形式で発生することによりストローク信号に変
換される。しかして、ストローク信号は、時間関
数であり、現在ストリツプにおける線分の位置に
時間的に対応する点に2進レベル変換点を有す
る。以上、本発明の概要を第1の具体例との関連
において述べた。 本発明の他の具体例においては、ストローク信
号は、独立の水平および垂直割付けフアクタ(例
えばセツトサイズおよびポイントサイズ)により
割付けされた原像を表わすことができる。この具
体例においては、線分データワードは、現在スト
リツプに対して、この現在ストリツプに重なる各
線分に対するコードワードから発生されよう。各
線分に対する線分データワードは次のものを表わ
す。すなわち、(1) 関連するコードワードにした
がう線分の終点、(2) 線分の割付けされた長さ、
しかして割付けされた長さは、現在ストリツプに
垂直な方向における現在ストリツプからの線分の
長さに対応し、これが整数+端数値(K)に対応
するように第1の割付けフアクタにより割付けさ
れる、(3) その線分の始点および終点間の現在ス
トリツプに垂直な方向における位置変化の範囲お
よび同じ範囲に対応する位置変化を有する関連す
る輪郭要素の後続の逐次の線分の数、および(4)
線分の始点および終点間の現在ストリツプ方向に
おける位置変化の範囲および同じ範囲に対応する
位置変化を有する関連する輪郭要素の後続の逐次
の線分の数を表わす。 加えて、ベクトルデータ発生に際して、線分デ
ータワードは、位置変化部分が変わらない後続の
ストリツプをもたない線分について識別される。
識別された線分データワードは、次いで割付け長
さの大きい順に処理され、そして同じ割付け長さ
を有する識別された線分ワードは、現在ストリツ
プに沿う位置の高い順に(すなわち対応するスト
ロークに沿つて頂部から底部へ)処理される。 ベクトルデータは、線分データワードが識別さ
れるとき、順番の一連のその識別された線分デー
タワードから発生され更新される。各線分データ
ワードに対するベクトルワードは次のものを表わ
す。すなわち、(1) 変更された△Y/△X比、
こゝに△Y値は、△Yと第2の割付けフアクタと
の積に等しくなるように変更され、△X値は、△
Xと第1の割付けフアクタとの積に等しくなるよ
うに変更される、(2) 現在ストリツプにおける線
分の変更された始点、こゝに変更された始点は、
SVと第2割付けフアクタの積、プラス(1−
K)と変更された△Y/△Xの比との積に等し
い、および(3) 各ストリツプに対する位置変化が
変更されない変更された後続のストリツプの数、
しかしてこの変更された数は、K、プラス△Xと
第1割付けフアクタとの積に等しい、を表わす。
このようにして変更されたベクトルデータは、次
いで識別された線分データワードの順で記憶され
る。 第1図は本発明を採用した例示の装置10を示
す。装置10は、コード化部12とデコーダ部1
4を含む。部分12は、従来のスキヤナ20とデ
ジタル化器22を有する入力部16を含む。スキ
ヤナ20は、バツクグラウンド上の対象を、対象
を横切つて左から右(X方向)に進む実質的に平
行な線に沿つて頂部から底部(Y方向)に向つて
光学的に走査するように構成される。この具体例
においては、XおよびY方向は直交軸を表わし、
X方向は走査線方向に垂直であり、Y方向は走査
方向である。他の具体例においては、異なる走査
形態を容易に利用できる。この具体例において、
スキヤナ20は白いバツクグラウンド上に黒いア
ルフアベツト−数字符号を含む従来形式のフオン
トカードのような植字されるべき文字に対するマ
スタを光学的に走査するように構成される。他の
具体例においては、カードは、異なる形式の像を
含むことができる。しかして、像は、対象(光学
的反射性のごとき第1の検出可能な特性を有す
る)をバツクグラウンド(第2の検出可能な特性
を有する)上に有するものとしうる。例えば、フ
オントカードは、透明なフイルムバツクグラウン
ド上に黒インクの文字を有するものとし得、そし
てこの場合、光学的濃度が検出される。 デイジタル化器22は、スキヤナ20に応答し
てデイジタル信号を発生する。しかして、この場
合、各ビツトは、フオントカード上の走査され
つゝある符号内の要素領域を表わし、そして各ビ
ツトの2進値は、関連する要素の光学的特性を表
わす。デイジタル化器22は、要素データから、
像の第1および第2の検出可能な特性(例えば黒
および白)の変換点により特徴づけられる走査線
に沿う要素領域を表わす輪郭点データを発生し記
憶する。各要素に対する輪郭点データは、検出可
能な特性の変換が起こる要素のXおよびY位置を
表わす座表データを含む。かくして、デイジタル
化器22は、走査されつゝある像のバツクグラウ
ンドフイールド上の対象の輪郭(すなわち黒白お
よび白黒変換点)を表わす1組の輪郭点データを
発生する。 デイジタル化器22から発生される輪郭点デー
タはエンコーダ24に供給され、データはこゝで
コンパクトな形式にコード化され、そしてコード
化されたデータは次いで記憶のためメモリ26に
転送される。コード化行程は後で詳細に説明され
る。 デコーダ部14は、メモリ26または他の代り
の記憶媒体に記憶されたコード化輪郭点データを
受信する局部的メモリを含む。メモリ30に記憶
されたデータは、デコーダ32により必要に応じ
て取り出される。デコーダ32は、外部の文字セ
レクタ34およびセツトサイズ、ポイントサイズ
セレクタ36と一緒に動作する。文字セレクタ3
4は、植字されるべき1行の文字ないし符号を表
わすデータを発生する写真植字装置の従来の要素
としうる。例えば、植字されるべき本文がペーパ
テープ上にすでにコード化されている場合に使用
するためのTTYテープリーダが利用されよう。
セツトサイズ、ポイントサイズセレクタ36は操
作者制御装置であり、それにより、XおよびY方
向割付け制御信号が、所望のセツトサイズおよび
ポイントサイズに対して発生される。他の具体例
にあつては、例えば、セツトサイズおよびポイン
トサイズパラメータをペーパテープ上に含むこと
ができる。 それゆえ、デコーダ32により発生される信号
は、対応するフオントカードから発生されたよう
なセレクタ34により選択された文字の割付けさ
れたものである。このデータはベクトル−ストロ
ークコンバータ40に供給されるが、このコンバ
ータは、この割付けされたデータを、一定のスト
ロークレートを有するCRT表示装置に対するス
トローク・バイ・ストローク制御信号に適当な形
式に変換する。後者の制御信号は、デイジタル−
ビデオコンバータ、ないしCRTラインジエネレ
ータ42に供給され、従来形式の写真植字装置用
の出力CRTを駆動のため適当なビデオ信号に変
換される。 次に、コード化部およびその行程について説明
する。 種々のフオント符号は、部分12においてある
形式の輪郭コード化法を使つてコード化されるの
であるが、このコード化法にあつては、1つの属
性を共有する接続点が、処理のため全輪郭点デー
タから分離される。本コード化技術に関係する属
性は、白から黒への、または黒から白への変換点
すなわち像内の白のバツクグラウンド上に対する
黒の対象(例えば文字ないし符号)の縁部を実質
的に位置づける変換点である。 符号の従来の輪郭コード化法は、一般にゴシツ
ク文字に対して単一の輪郭を有する。例えば、第
2A図および第2B図に示されるように、ゴシツ
ク大文字「M」は、単一の輪郭(第2B図におい
て丸付き参照番号により指示される)を有する
ものとして定義されよう。これは、一本の線で全
形状を書くことができ、内部の「孔」がないから
である。これに対し、ゴシツク小文字「a」は2
つの輪郭を有し(第2B図の丸付き参照番号お
よびにより指示される)、一方は外縁を表わ
し、他方は内縁を表わす。このような輪郭の定義
の場合、符号は、各輪郭に対する一連の座表点と
して書くことができる。1点から隣接する点まで
の距離は普通小さいから、スタート値と一連の差
値を特定することにより圧縮を達成できる。しか
しながら、このコード化技術は、フオントコード
化の応用において実施するには相当高価である。
何故ならば、記憶された文字を表わす出力を表わ
す出力信号を発生する行程に進む前に、デコーダ
で文字全体を解読し記憶せねばならない。 シンボルを左から右に横切つて頂部−底部方向
走査を行なう本具体例にしたがえば、輪郭は、像
内を左から右に、すなわち走査線方向に垂直に単
調的に続くものとして定義される。他の具体例に
おいては、単調的に続く輪郭は、異なる走査方向
を定めることにより他の方向に定めることができ
る。第2C図に示されるような輪郭の定義の場
合、文字「M」は、2つの輪郭(第2C図の丸付
き参照番号およびで指示される)を有するも
のとして定義され、1つは頂縁を示し、他方は底
縁を示す。文字「e」は6つの輪郭(第2C図の
丸付き参照番号〜により指示される)を有す
るものとして定義される。 この輪郭定義法は、データがデコーダに供給さ
れる順序を変えるが、文字の輪郭を書くのに必要
とされるデータ点の数を変えないから、文字全体
を記憶しあるいは種々のデータワードと関連する
タグを要求するための大形のRAMを必要とする
ことなくストローク順の再構成が行なえ、しかも
なお、独立の水平および垂直割付けフアクタで文
字の割付けを行なうことを可能とするものであ
る。本形式の輪郭コード化の場合、垂直割付けは
単純である。種々の輪郭点は、水平基準線に関し
て定められる。解読の際、輪郭点は、出力ストロ
ーク中マスタサイズに対する出力サイズの比によ
り直接割付けされる。適当な丸み付けにより、出
力CRTの解像度内で正確な割付け点をうること
ができる。 水平割付けは、一定ストローク間隔を維持する
ため内挿法により提供される。例えば、64ポイン
トで1280ストローク幅の文字は、10ポイントで
200ストロークとなる。かくして、特定点がマス
タサイズで文字の左縁に位置づけられるとき、マ
スタサイズに対する出力サイズの比により割付け
すると、一般に、出力装置のストローク上にない
点を生ずることになる。険しい傾斜縁上に出力ス
トロークに「最も近い」割付け点を取ることは十
分でない。何故ならば、これは相当の歪となりう
るからである。それゆえ、本コード化法では、ス
トローク上の点が内挿法により発生される形式で
コード化データを供給する。 簡単にいうと、輪郭点データは一連のベクトル
に変換される。各ベクトルは、可変距離△Xに対
する曲線の傾斜を与える(△X、△Y)の対とし
てコード化された直線であり、微細な部分につい
ての極度に短かいベクトルと、一定傾斜領域に対
する長いベクトルを考慮に入れてある。ベクトル
の終値は、正確に原輪郭上あるように拘束され、
他方中間点は、実際の輪郭から若干ずらすことが
できる。これにより、ベクトルごとに誤差を累積
することなく長い一連のベクトルを確実に引き出
すことが出来る。何故ならば、各新しいベクトル
の始点は、輪郭の始点に対する△Y値を累積する
ことにより正確に知ることができるからである。 (△X、△Y)対内のデータのパターンを考察
するとさらにデータの圧縮が行なえる。一般に、
アルフアベツトおよび数字の植字の場合、△Xの
逐次の値は、特に△Xが小さい場合には互いに近
づく傾向がある。したがつて、(m、n)の形式
の新しい形式のコードワードが導入される。この
コードワードは、次の「m」コードが、すべてそ
の最上位ビツトに「n」を有することを特定する
ものである。このコードワードの追加は、各(△
X、△Y)対に対するビツト数を「n」のビツト
数だけ減ずる。この圧縮法は、△Yの順次の値に
も適用される。この場合、コードワードi,j
は、次の「i」コードがすべてその最上位ビツト
に対して「j」を有することを特定する。(m、
n)および(i、j)コードワードは、それぞれ
ラインコード(線コード)/ラインレンジ(線範
囲)(LC/LR)ワードおよびデルタコード/デ
ルタレンジ(DC/DR)ワードとして言及され
る。(△X、△Y)対に対する最下位ビツトは、
デルタ/ライン(D/L)ワードのごとく残りの
ライン値(L)およびデルタ値(D)としてコー
ド化される。 エンコーダ24は、要素26で記憶するように
順番のコードワード列を供給する。しかしてコー
ドワードデータは、始点、ラインレンジ、ライン
コード、デルタレンジ、デルタコードおよび残り
ラインおよびデルタ値の形式である。この具体例
において、このデータはすべて64ポイントマスタ
を表わすものである。何故ならば、他のサイズに
対する割付けおよびコード化点間の内挿はデコー
ダ部14で遂行されるからである。この点におけ
る重要な考察は、コード化行程で、部分14で遂
行されるべき解読行程の動作順序を予測している
ということである。この結果、コードは、デコー
ダ部14が必要とする順序でメモリ26がデータ
を記憶するように順番づけられており、それによ
りデコーダ部14内に必要とされるメモリは簡単
化される。種々の輪郭からの種々の形式のデータ
を挿入する仕方は、デコーダ部14が追加のフラ
グまたはその他の識別ビツトなしにデータを解釈
できるように一定の1組の配列条件にしたがう。 簡単にいうと、データを挿入する規則は下記の
ように集約できる。 1 データ項は、△X値が終了する順序で挿入さ
れる。 2 同じ走査線中に2以上の輪郭要素がデータ更
新データを必要とすれば、輪郭要素は、文字の
項部から距離が増す順に更新される。 3 輪郭要素を更新するために2以上のデータ項
が必要とされゝば、データ項は第1にLC/
LR、第2にDC/DR、そして第3にD/Lの
優先順序で挿入される。 4 輪郭要素の終りは、「0」値LC/LRワード
で報知される。 これらの第1の4つの規則は、輪郭を更新
し、終結させるに十分である。下記の規則は、
走査線に沿つて検出される新しい輪郭のスター
トおよび挿入を可能にする。 5 新たに識別される輪郭要素「新スタート」が
起こる走査線に対する最初の2つの項は、最上
の新スタート値およびその走査線で始まる輪郭
の数である。 6 すべての新スタートのD/Lワードに続くワ
ードは、走査線の最後のものを除き、このスト
ロークにおける次の新スタート値である。 7 走査線に対する最後の新スタートのD/Lワ
ードに続くワードは、輪郭要素更新を必要とす
る次の走査線に対する△X値である。これらの
最後の3つの規則を用いれば、既存のデータに
関して適正な順番に新スタート値を挿入し、次
いで各スタートの第1のベクトルを生成するよ
うに第1の4つの規則を適用できる。デコーダ
部の便宜上、新スタートが要求されるとき既存
の輪郭に「ブレーク点」をもたらしめる他の規
則がコード化行程に賦課される。これにより、
デコーダ部14は、整数始値を比較でき(順番
に挿入のため)、そして更新を必要とする輪郭
に関してこの比較を遂行すればよい。 定義により、文字は、すべて既存の輪郭が完
了するとき完了する。これは、例えば省略符号
………)のようなpi信号については不便とな
り、この場合には3つのドツトが単一の記号で
あることが希望される。これらの場合、ばらば
らの輪郭を結合するため、0幅の人工線がコー
ダにより生成される。この種の記号を受け入れ
るため、デコーダ部14は、1(または2)よ
り少ない要素幅であるものに対し、すなわち割
付けされたサイズで意味を失なつたものに対
し、1ストローク内の割付け値を監視する。意
味をもたないものを除去する同じ機構で、すべ
てのポイントサイズにおける0幅の人工線を除
去する。 輪郭中の垂直ジヤンプを受け入れるため、す
なわちサンプリングでジヤンプの底部で1つの
サンプルを、ジヤンプの底部で隣接するサンプ
ルを生成する場合、コード化行程は、最初、こ
れらのサンプルを有限の線により結合されたも
のとして処理する。しかしながら、これらの2
点間に出力ストロークを必要とする文字の後続
の割付けは、出力に見掛け上の傾斜をもたらす
ことがあるから、その場合、0距離において変
化を生ぜしめるためコード化オペレータでデー
タ基準を変更することになろう。厳格にいう
と、このため、このストロークに多数の値をも
つ輪郭を生じ、追加のコード化規則を必要とす
る。 8 規則2の適用において0線の更新は、更新と
して計数しない。 このコード化は、△X=0において変化を示
すため所望の輪郭を変更する。最初の8つの規
則はこの条件を適正に挿入する。この手法で
は、デコーダ部14は、多価輪郭が、多価条件
のすぐ右に位置する値に割り当てられることを
決定する。 他の2つのデコーダが文字コードを完成す
る。すなわち最初のものは、文字の全幅を表わ
し、第1のブラツクデータに対する距離、すな
わち文字の左位置を表わす。これらは次の規則
で定められる。 9 一連のコードワードの第1のワードは左位置
ワード(LB)である。 10 一連のコードワードの第2のワードは文字幅
ワード(W)である。 文字およびそのコードの例が以下の輪郭点コー
ド化の例に記載されている。これはまた、データ
のビツト形式のコードワードへのパツキングを示
すものでもある。 この例示的具体例に対するエンコーダ24は、
第3−1図に詳しい形式で示されている。エンコ
ーダ24は、メインフレームコンピユータ44
(DEC PDP−11/34、48Kワードのメモリをも
つ)、実行メモリ要素46(DEC RK05Fデイス
クパツク)およびプログラムデータメモリ要素4
8(DEC RK05Jデイスクパツク)を含む。メモ
リ要素46は、エンコーダ24の動作を制御する
ためのDEC RSX−11M、変形3.1実行プログラム
でプログラムされる。メモリ要素48は、入力部
16からの生輪郭点データを部分直線輪郭モデル
を表わす一連の点(すなわちベクトルデータ)に
変換する第1のMACRO−11プログラムでプログ
ラムされる。こゝで各線分は、予定された誤差規
準内における実際の輪郭に近似する。メモリ要素
48はまた、発生されるベクトルデータの記憶に
割り当てられた部分を含む。第2のMACRO−11
プログラムは、ベクトルデータを、要素26に記
憶のため順番のコードワード列へ変換するのを制
御する。 動作について説明すると、直線コード化に先立
ち、像に対するデータは、録郭に分離され、一連
の点として記憶される。メモリは2つのデイスク
フアイルである。EDGES、BIN;1として言及
される第1のフアイルは、一様なサイズのランダ
ムにアクセス可能な記録体のフアイルであり、各
記録体は、特定の輪郭と関連する最高64の点を含
む。PTRS.VAR;1として言及される第2のフ
アイルは、下記のデータに対するポインタを含む
可変長記録体のフアイルである。すなわちワード
#1は、この輪郭が最初に検出されたストローク
である。ワード#2は、記録体のバイト(ワード
X2)の総数である。ワード#3は、第1の活動
ストロークの輪郭値である。記録体の逐次の番号
は、この輪郭に割り当てられたEDGES.BIN;1
の記録体番号を指す。例えば、データ1、12、
406、2、4、5を含むRTRS.VAR;1の記録体
は、線1で始まる輪郭として解釈され、その記録
体に12バイトをもつ。輪郭は、406の値でスター
トし、フアイルEDGES.BIN;1の記録体2,4
および5に記憶された点より成る。輪郭の終端
は、フアイルEDGE.BIN;1の「データ点」であ
る0値により、あるいは輪郭が64ストローク幅の
正確な多数倍である場合、PTRS.VAR;1のリ
ストを終らせることにより示される。 輪郭データは、2つの主段階で処理される。段
階1では、複数連の点を輪郭データの直線化近似
値に変換する(点をベクトルに変換)。段階2で
は、これらのベクトルを、デコーダにとつて有用
な、したがつてラインレンジデータ、デルタレン
ジデータおよび新スタートコード化情報を抽出し
コード化するに有用なコードシーケンスに挿入す
る。 段階1の処理において、フアイルPTRS.
VAR;1の全内容はメモリに転送される。次い
で、2つの主段階が遂行される。最初、各輪郭
が、一時に1つずつメモリに記憶され、輪郭番号
に割り当てられる。輪郭の終りストロークは、輪
郭の始線および点の数から計算される。次いで、
始線および終線が他の輪郭始線の各々と比較さ
れ、考察下にある輪郭が活動中どの輪郭がスター
トするかを決定する。かゝる各他の輪郭に対し
て、そのストロークにおける考慮下にある輪郭の
値がすべての前の値と比較され、それにより新ス
タートの下にあるもつとも近い輪郭、あるいはそ
れがない場合には文字の底部輪郭及び輪郭番号を
見出す。実際には、これは新しい輪郭を挿入せし
めるためどの輪郭が強制的ブレークを必要とする
かを識別する。この第1の段階は、すべての輪郭
が強制的ブレークの候補として試験されたとき完
了する。 第2の段階は、実際のベクトル生成のため各輪
郭をメモリに記憶することである。これは、(1)一
連の点に残る点の数、(2)強制的ブレークに至る距
離(必要ならば)および(3)任意の最大(200)ス
トロークのうち最小となるものを試行的ベクトル
長として採用することにより遂行される。この試
行的ベクトル長の始点および終点の「Y」値が比
較され△Y値を与える。これは、1ストローク当
りの直線的変化を得るため試行長により分割され
る。次いで、デコーダ動作が、線分の始点におけ
る値プラス1/2単位の丸みづけ基準にこの傾斜値
を反復的に加えることにより模擬される。切り捨
てた総和が下記の規準で実際の走査されたデータ
に比較される。 A 誤差が1単位を越すものはない B 長さが25ストロークより大であれば、1単位
の誤差は3つより多く生じない。 C 長さが15ストロークより小であれば、1単位
の誤差は1つより多く生じない。 D 長さが15ないし24の間であれば、1単位の誤
差は2より多く生じない。 これらの規準が破られると、試行長は1ストロ
ーク減ぜられ、容認できる長さが見出されるまで
この行程が繰り返えされる。(限界的な場合は、
長さ1のベクトルにより接続される隣接する線で
あろう。)データは、2つのベクトルとして段階
2で記憶される。しかして、1つのベクトルは、
各輪郭に対するデータのスタートアドレスを指
し、第2のベクトルは、すべての輪郭に対してパ
ツクされたベクトルデータを含む。各輪郭は、そ
の始線および始値(第1の点のX、Y座表)、そ
れに続く輪郭のベクトル表示を表わす一連の(△
X、△Y)対により表わされる。 段階2の処理において、エンコーダ24は、64
ポイントにおいて以下に記載されるデコーダ32
の動作を実質的に倍化し、デコーダ32がデータ
を必要とする順序を予測する。各事項に対する要
求が予測されると、エンコーダ24はそのデータ
基準を分析し、その特定の事項を計算する。全輪
郭コードが処理されると、得られた一連のデータ
は、一連のデータのワード数の計数値とともにメ
モリ要素24に記憶される。 最近、エンコーダ24は、スキヤナ20により
走査される対象の輪郭要素を、デイジタル化器2
2により発生される種々の輪郭値対(X、Y)に
対して定める。 各輪郭要素は、走査される方向に垂直な方向に
単調に増加している。 一連のベクトルデータ対が各輪郭要素について
発生される。各ベクトルデータ対は、第1の値△
Xと第2の値△Yを有する。こゝに△Xおよび△
Y値は、それぞれ走査方向および走査方向に垂直
な方向において、関連する輪郭要素上の選択され
たベクトル始点と終点間の距離を表わす。ベクト
ル始点および終点は、始点および終点を接続する
直線線分上の任意の点と、始点および終点間にお
ける関連する輪郭要素上のもつとも近い点が予定
値以下となるように輪郭点データから選択され
る。 ベクトルデータ対は、走査された対象を表わす
順番のコードワード列を形成するようにコード化
される。この順番のコードワード列を形成する前
に、ベクトルデータ対は、新しい輪郭要素が走査
線の1つに沿つて始まるX値をまず識別し、次い
でその走査線に重なる選択された先に識別された
輪郭要素に対するベクトルデータ対△X、△Yを
変更することにより変更される。新しい輪郭要素
がその走査線上で識別される最後の輪郭要素であ
ると、選択された先に識別された輪郭要素は、そ
の同じ走査線上の新しい輪郭要素に隣接し、その
走査線に沿う新しい、輪郭要素に先行する輪郭要
素である。その他の場合、選択された先に識別さ
れた輪郭要素は、新しい輪郭要素に隣接し、その
新しい輪郭要素に続く輪郭要素である。先に識別
された輪郭要素のベクトルデータ対のベクトル終
点がその同じ「新スタート」走査線内にあれば、
変更段階は省略される。 このベクトルデータ対変更動作においては、選
択された先に識別された輪郭要素に対して、第1
の変更されたベクトルデータ対△X、△Yが発生
され、記憶される。しかして、第1の変更された
ベクトルデータ対は、新スタート走査線において
選択された先に識別された輪郭要素に対してXお
よびY値を表わすベクトル終点と、先に決定され
たベクトル始点を有する。さらに、選択された先
に識別された輪郭要素に対して第2の変更された
ベクトルデータ対△X、△Yが発生され、記憶さ
れる。しかして、第2の変更されたベクトルデー
タ対は、その新スタート走査線に対するXおよび
Y値を表わすベクトル始点と、先に決定されたベ
クトル終点を有する。これらの発生および初記憶
に続いて、第1および第2の変更されたベクトル
データ対が、選択された先に識別された輪郭要素
に対するベクトルデータ対に対する交替データと
してベクトルメモリに記憶される。 ベクトルデータ対変更動作に続いて、輪郭要素
(CE)値が発生され、記憶される。このCE値
は、被走査対象において識別される輪郭要素の番
号を表わす。各輪郭要素と関連して、対象の走査
中検出される輪郭要素に対して初XおよびY値を
表わすデータが記憶される。 これらの予備動作に続いて、順番のコードワー
ド列の形成および記憶の段階が始まる。最初、コ
ードワード列の第1の(位置)コードワードが発
生され、記憶される。第1コードワードは、走査
中第1の輪郭要素が検出された走査線のX値を表
わす。次に、第1の輪郭要素が検出された走査線
が現在走査線として識別される。次いで、前記現
在走査線に対するコードワード列が、次の段階を
遂行することにより発生され、記憶される。 1 現在走査線において検出される第1の新スタ
ート(NS)部分のY値を表わすSVワードを発
生し、記憶する。第1のNS部分は、現在走査
線に沿つて第1の期間に検出される第1の輪郭
要素の一部である。SV発生、記憶段階を遂行
するこの段階は、NS部分をもたない現在走査
線については省略される。 2 NSワードおよびNS値を発生、記憶する。NS
ワードおよびNS値は、現在走査線に沿つて第
1の期間に検出される輪郭要素のNS部分の数
を表わす。NSワードおよびNS値発生および記
憶段階は、NS部分をもたない走査線について
は省略される。 3 現在走査線において検出される現在要素の
NS部分および継続する(C)部分を逐次処理す
る。NS部分は、現在走査線に沿つて第1の期
間に検出される輪郭要素の部分、C部分は先行
の走査線において検出される輪郭要素の延長部
分である。NSおよびC部分処理は、現在走査
線に沿つてそれぞれの部分の検出の順序で遂行
される。現在走査線に対するNS部分の各処理
は、次の段階を含む。 (a) NS部分に対する第1のベクトルデータ対
と関連する△X値の予定数の上位ビツト
(LR)および△X値が対応して輪郭要素に対
するこれらの上位ビツトをもつたベクトルデ
ータ対の数(LC)を表わすLC/LRワード
を発生し記憶する。 (b) NS部分に対する第1のベクトルデータ対
と関連する△Y値の予定数の上位ビツト
(DR)および△Y値が対応する輪郭要素に対
してこれらの上位ビツトを有したベクトルデ
ータ対の数(DC)を表わすDC/DRワード
を発生し記憶する。 (c) 第1のベクトルデータ対と関連する△X値
の予定数の下位ビツト(L)および第1のベ
クトルデータ対と関連する△Y値の予定数の
下位ビツト(D)を表わすD/Lワードを発
生し記憶する。これによりLRおよびLは△
X値を完全に特定し、DRおよびDは△Y値
を完全に特定する。 (d) 現在走査線と、NS部分を含むベクトル対
のベクトル終点を含む走査線との間の走査線
の数を表わす第1の終了値Xexpを発生し、
記憶する。 (e) NS部分に対するLC/LRワードのLR部分
が1つのベクトルデータ対から次のベクトル
データ対への変化で変わる前に残存する輪郭
要素に対するベクトルデータの数を表わす第
2の終了値Mexpを発生し、記憶する。 (f) NS部分を含むデータ対から、該NS部分を
含む前記輪郭要素に対するDC/DRワードの
DR部分が、1つのベクトルデータ対から次
のベクトルデータ対への変化するデータ対ま
でのベクトルデータ対の数を表わす第3の終
了値Nexpを発生し記憶する。 (g) NS部分を含むデータ対から、NS部分を含
む輪郭要素の終端を含むデータ対までのベク
トルデータ対の数を表わす第4の終了値
Zexpを発生し記憶する。 (h) 記憶されたNS値を漸減する。 (i) NS値を0と比較し、NS値が0を越すとき
は、前記現在走査線に沿つて検出される次の
未処理のNS部分のY値を表わすSVワードを
発生し記憶することにより、そのNS部分の
処理を完了し、NS値が0に等しいときは、
NLワードを発生することによりNS部分に対
する処理を完了する。しかして、このNLワ
ードは、現在走査線とNS部分を含む次の走
査線間の走査線の数、そしてNS部分を含む
他の走査線がないときは基準(R)ワードを
表わす。 現在走査線に対するC部分の各処理は、次の
段階を含む。 (a) C部分を含む輪郭要素と関連されるベクト
ルデータに対する△X値が現在走査線におけ
る1つのベクトルデータ対から次のベクトル
データ対への変化で変化するときXexpを0
に等しくなるように更新し、その他の場合
は、C部分を含む輪郭要素と関連するベクト
ルデータ対に対する前記△X値が、1つのベ
クトルデータ対から他のベクトルデータ対へ
の変化で変化する前に現在走査線に続く走査
線の数を表わすようにXexpを更新する。 (b) 更新されたXexpを0と比較し、Xexpが0
を越すときは、現在走査線に対する前記C部
分の処理を終了し、Xexpが0に等しいとき
は、C部分を含むデータ対から、C部分を含
む輪郭要素の終点を含むデータ対までのベク
トルデータ対の数を表わすようにZexpを更
新する。 (c) 更新されたZexpを0と比較し、更新され
たZexpが0に等しいときは、輪郭要素に対
する終了(T)ワードを発生、記録し、前記
CE値を漸減することにより前記のC部分の
処理を完了し、Zexpが0を越すときは、C
部分を含む輪郭要素と関連するベクトルデー
タ対に対するLC/LRワードのLR部分が1
つのベクトルデータ対から次のベクトルデー
タ対への変化で変化する前に残るベクトルデ
ータ対の数を表わすようにMexpを更新し続
け、そして更新されたMexpを0と比較し、 Mexpが0に等しいときは、C部分に対す
る次のベクトルデータ対と関連する△X値の
予定数の上位ビツト(LR)および△X値が
それらの最上位ビツトを有するベクトルデー
タ対対の数(LC)を表わすLC/LRワード
を発生し、そしてMexpをLC値に等しくなる
ように更新し、 C部分と関連するベクトルデータ対に対す
るDC/DRワードのDR部分が、1つのベク
トルデータ対から次のベクトルデータ対への
変化で変わる前に残存するベクトルデータ対
の数を表わすようにNexpを更新し、そして
この更新されたNexpを0と比較し、そして Nexpが0に等しいときは、C部分に対す
る次のベクトルデータ対と関連する△Y値の
予定数の上位ビツト(DR)、およびその△Y
値がそれらの最上位ビツトを有するベクトル
データ対の数(DC)を表わすDC/DRワー
ドを発生し、そしてNexpをDC値に等しくな
るように更新する。 (d) C部分に対する次のベクトルデータ対とそ
れぞれ関連する△Xおよび△Y値の予定数の
下位ビツト(LおよびD)を表わすD/Lワ
ードを発生し、そして現在走査線から、C部
分を含む輪郭要素と関連するベクトルデータ
対に対する△X値が1つのベクトルデータ対
から他のベクトルデータ対への変化で変わる
までの走査線の数を表わすようにXexpを更
新する。 4 CE値を0と比較し、CE値が0を越すとき
は、現在走査線を、先行の現在走査線に続く次
のもつとも近い走査線となるように更新し、し
かして、このもつとも近い走査線は、先行の現
在走査線と同一または該走査線に続き、かつ処
理されたNSおよびC部分に対するXexp値によ
り限定される走査線を含む1組の走査線から選
択される、そして新しい現在走査線に対して段
階1に戻り、CE値が0に等しいときは、コー
ドワード列の発生および記憶を終了する。 次に輪郭点コード化剤について説明する。 第3−2図は、このコード化例のための任意の
符号である。符号は、X−Y座表格子に対して例
示された3つの部分A、BおよびCを有する。こ
の例においては、XおよびY上の単位目盛当り10
本の走査線がある。 本具体例のコード化部12は、各々第4A−4
G図に例示される7データ形式の1つの形式を有
する一連の11ビツトコードワードを発生する。第
4A−4G図において、種々のビツト位置に対す
る重み付けが、これらのコードワードの種々の部
分の最初および最後のビツト位置に対して括弧を
付して指示されている。 第4A図の「左方位置」(LB)ないし「対新ス
タート距離」(NL)コードワードは、1〜2047範
囲の11ビツト数である。このコードワードは、符
号が最初に検出される走査線の識別値、あるいは
次の新スタート輪郭要素が検出される走査線の識
別値を表わす。 第4B図の「幅」Wコードワードは、1〜127
の範囲の7ビツト数を表わす。このコードワード
は54ユニツト幅のエムに関する符号の幅を表わ
す。 第4C図の「始値」(SV)コードワードは、0
〜2047の範囲の11ビツト数である。「始値」は、
1本の走査線でかつその走鎖線の方向Yで測られ
た、コード化されるべき符号の最上部の水平「基
準線」からの距離としてコード化される。この距
離は、符号に対して正または負の数としうる。本
具体例において、基準線は、基準線より上の始値
がつねに1536より小さく、基準線より下の始値が
つねに512より小さくなるように位置づけられて
いる。この結果、SVコードは、基準線より上の
値を11ビツトの値として記憶し、基準線より下の
値を(値+1536)として記憶する。デコーダ部分
14は、上位2ビツト(BSB)を監止し、どのケ
ースが生じたかを決定し、符号および11ビツト値
に変換する。他の具体例においては、始値は、つ
ねに正であるように、エムの方形の底部より上の
値を記憶できよう。 第4D図のスタート数(NS)コードワード
は、1〜64の範囲の6ビツト数である。このコー
ドワードは、走査線中に識別される輪郭要素の数
を表わす。 第4E図のラインコード/ラインレンジ
(LC/LR)コードワードは、1の数LCおよびLR
である。右側の数(LR)は、1本の走査線にお
けるベクトルデータ対(すなわち部分直線部分)
と関連する△X値の上位3ビツトを表わす3ビツ
ト数である。左側の数(LC)は△X値がそのよ
うな上位3ビツトを有する輪郭要素に対する連続
ベクトルデータ対の数、すなわちLRにより決定
される範囲の△Xを有する同じ輪郭要素に対する
連続ベクトル対の数を表わす8ビツト数である。 同様に、第4F図の「デルタコード/デルタレ
ンジ」(DC/DR)は2つの数DCおよびDRを含
む。一般に、DRは、1走査線内の1つの輪郭要
素のベクトルデータ対と関連する△Y値の128お
よび64で重み付けされたビツトを表わす2ビツト
数であり、DCは、△Y値がLCにより決定される
連続ベクトルデータ対を表わす4ビツト数であ
る。他方、「デルタレンジ」コードは、デルタの
符号およびレンジを特定するのに6ビツトを必要
としよう。この場合レンジが有効であるコードの
数を特定するのに5ビツトのみを残す。コードの
数を最小にするため、例えば、多くのコードが複
雑な曲線におけるようにすべて小レンジを必要と
する場合、第4F図の3ビツト部分Xは、LCま
たはLR変数のいずれかに割り当てられ、コード
MSBが、変数ビツトXがコード数(DC)または
デルタレンジ(DR)のいずれとと関連づけられ
るかを表わすフラグを提供するところになろう。
この結果、DC/DRコードワードは、小数のコー
ドに対して大きなレンジを、多数のコードに対し
て小さなレンジを含むことができる。 第4G図の「デルタ/ライン」(D/L)コー
ドワードは、2つの数DおよびLを含む。Dは、
1本の走査線内の輪郭要素のベクトルデータ対と
関連する△Y値の下位6ビツトを表わす0〜63の
範囲の6ビツト数である。同様に、Lは輪郭要素
のベクトルデータ対と関連する△Xの下位5ビツ
トを表わす0〜31の範囲の5ビツト数である。 スキヤナが第3−2図の像を走査し、デイジタ
ル化器22が走査線に沿う光学的反射特性を表わ
す2進信号を発生すると、エンコーダ24はまず
輪郭縁点を識別し、この縁点を単調輪郭要素に割
り当て、輪郭要素に対してスタート座表およびベ
クトルデータ対(部分直線)を決定する。第3−
2図の符号に対するこの情報は第1表に掲げてあ
る。例示の目的で、第3−2図の輪郭要素は、1
〜8の番号が付してある。これらの輪郭要素は、
第3−2図の丸付き参照番号で識別される。
The present invention relates to apparatus for use in phototypesetting, and more particularly to apparatus used to encode and decode font information for use in CRT phototypesetting machines. Phototypesetting machines are often required to service a wide range of selected typesetting areas, such as newspapers, news text, classified advertising materials, telephone directories, parts lists and catalogs. In applications of this type, a large number of type fonts are typically used in a phototypesetting machine, or it may be necessary to rapidly switch type fonts from one job to another in one machine. Also, the type fonts to be reproduced may be laid out horizontally or vertically, or both horizontally and vertically, in typesetting format. In prior art phototypesetting machines, a resolution tube would be used with an associated glass photogrid for each type font to be typesetting. In one type of prior art system, the font grid includes a master character, with a set of coded bars associated with each character representing the width of the character. In this type of device, an image of a symbol selected from a font grid is projected onto the cathode of a resolution tube, a width bar is sensed, and the associated value is stored in a memory location. On the other hand, the input paper tape provides information representing the necessary printing parameters such as line width, point size and line spacing. In the case of computer generated tape or pre-approved counting keyboard output,
All control functions and instructions are read from the input tape. When a line to be typeset is read into the device (eg, by a paper tape reader), the characters within the line are selectively scanned onto the resolution tube grid. When a character is scanned, character width data from the appropriate memory location is processed along with interword data and intercharacter data if necessary to perform calculations and generate CRT modulation control signals. Electronic operations are performed under input tape control on the characters extracted from the resolution tube, such as sizing, oblique, condensing, or expanding. ), boldface effects, and other type changes. Finally, through the fiber optic face plate of the cathode ray tube (CRT)
Characters are generated on the surface of the tube and on the photosensitive medium. In conventional devices, the memory required is extremely large in order to allow the device to quickly generate character signals to the output CRT. In addition, devices of this type generally require manual intervention when type font conversion is required (eg, in the form of replacing relatively bulky and fragile font grits). Additionally, each time a character is typeset, a complete processing routine (i.e. selection,
scanning, processing) must be performed to generate the appropriate character signals for the output CRT. In other conventional approaches, the latter problem is often avoided by preloading the digital memory with a library of stored digital signals representing essentially all characters of a particular font. However, the memory required to store the font symbol signals for a full font, typically about 100 symbols, is extremely large. Moreover, the mere generation of signals for such stored font character signals is itself a difficult task. To reduce the storage required in conventional devices of this type, font character signals are often encoded before storage, but this step adds complexity to the encoding portion of the device and The deciphering part is required. Additionally, conventional encoding techniques require an assignment selected by the character handler;
Severe restrictions are placed on the processing of font character signals, such as processing directed towards boldface effects and the like. Accordingly, it is an object of the present invention to provide an improved apparatus for generating phototypesetting control signals for a CRT. It is another object of the present invention to provide an improved apparatus for efficiently generating a representation of an image to be typeset and for converting the decoded representation into control signals for the output CRT of a phototypesetting device. It is. Still another object of the invention is to decode the representations of an image to be typeset, to independently lay out the decoded representations in two orthogonal directions, and to output the laid out decoded representations to the output of a phototypesetting device. An object of the present invention is to provide an improved apparatus for converting control signals to a CRT. Briefly stated, the present invention is directed to an apparatus for use in phototypesetting. In one aspect of the invention, a type font is scanned and character or code data representing the image is generated. The original font information that is scanned may be a character card or some other conventional format. The scanned data is then encoded according to a first predetermined sequence of steps. The resulting coded data is temporarily stored in digital form on a storage medium, such as a magnetic disk pack. In accordance with this aspect of the invention, a disk pack library, each containing stored font data in a relatively compact encoded format, may be established for a large number of type fonts. In one form of the invention, coded font data stored on a disk pack or other medium is encrypted before being stored on the disk pack, or alternatively, the information is extracted from the disk pack, encrypted, and then stored on a floppy disk. may be stored on some other medium such as . In the latter form of the invention, encryption serves as a safeguard for the stored font information. In accordance with another aspect of the invention, stored coded font data retrieved from a disk pack, or alternatively a floppy disk or other storage medium, identifies the lines to be typeset provided in a conventional manner. It will be processed in the decoder section of the device together with the character selection control signal. Initially, stored coded font data is read from the medium into a local decoder memory. The selected character data is then decoded according to a second predetermined sequence of steps. The decoded selected character data is then converted to a video signal for a CRT. In devices where coded font data is stored in encrypted form, a corresponding data decryptor is utilized at the front end of the decoder section of the device. The first step sequence (coding) and the second
The step sequences (decoding) are related such that the decoding sequence is performed on an output CRT of a conventional phototypesetting device to generate a stroke-in-stroke signal corresponding to a raster pattern of movement of the output CRT. be done. As a result, the output
Only a fairly small memory is required to store the reconstructed image for the CRT. Furthermore, the encoding sequence is configured such that the format of the stored encoded data is arranged in a particular order for use by the decoder portion of the device when the data is presented. As a result, relatively little linear or simple hardware and software is required for the decoding operation. Therefore, the memory required at the decoder part of the device is relatively small. This is because the data in the storage medium has an ordered organization and does not require tags or other identifying parts for processing. The stored encoded font data is
Since the format is ordered in the manner required by the decoder section of the device, it requires relatively little effort on the decoder section of the device to identify data portions with associated tags or the like and reconstruct the stored data. Only processing is required. As a result of this encoding method of the invention, the font digitizing or encoding portion of the device is relatively complex, while the decoder portion is relatively simple. As a result, the apparatus includes a single coding station that generates coded data;
It can be easily configured with a large number of remote and relatively inexpensive decoder stations. Furthermore, the encoding sequence of steps is such that the encoded data on the medium is selectively allocated for reproduction of selected characters or symbols on the output CRT of the phototypesetting device. The decoding sequence is performed in such a manner that the decoding sequence can be selectively changed. This selective allocation may be independent of the two orthogonal directions. In other words,
The operator could choose to allocate horizontally with some selected factors and vertically with other selected factors. instead,
The operator can select one allocation factor in both the horizontal and vertical directions. In either case, the output CRT control signals for the assigned symbols are provided at a constant spatial stroke rate or pitch in a raster pattern. In this way, the present invention includes the entire representation of the characters to be typeset.
Unlike traditional methods of allocating RAM contents,
Basically, we allocate a vector representation of the contour edges. Furthermore, character allocation is performed in an interpolative manner so that the characters are larger or smaller than 1 while maintaining a constant pitch. In accordance with the invention, the format for the font signal on the medium to the decoder portion of the device is either mapped or directly related to the originally encoded master. However, since allocation can be easily accomplished in the decoder portion of the device, in a preferred form of the invention a single type of intermediate memory representing the coded characters is provided. This latter feature involves storing encoded information on a medium, decoding the information, reconstructing the desired output symbols into random access memory (RAM), and then processing this information to allocate,
This is contrasted with the technique of prior art devices, which is followed by reading out the resulting control signal representing the assigned code. In the present invention, by assigning codes before displaying characters on the ORT, resolution is improved compared to conventional devices. According to the invention, a coded font character or code is created by contour-based coding by following the image transformation points from one binary level to another over the entire field for a code. A signal is generated. The total contour is defined by increasing monotonically from one edge of the image to the other, and connection points are provided as necessary. Adaptive coding techniques are based on linear interpolation, where the number of coding points or vectors for a contour varies depending on the rate of change of the curve of the contour of the code being coded. Next, an overview of the invention will be described in connection with preferred embodiments. The invention includes means for generating data representative of the contour of an object relative to a background. Initially, an image containing the object and background is scanned along a plurality of substantially parallel lines. Contour points of interest are identified along these scan lines. When optically scanning a black and white image, these contour points represent the coordinates of the image's black-to-white and white-to-black conversion points along the scan line. 1 scan
As one scanline progresses from one scanline to the next, a selection of identified contour points are divided into groups such that each group of contour points represents a contour element of interest. Ru. A contour element is thus defined as a portion of the object boundary that extends monotonically in a direction perpendicular to the scan line. Vector data is generated and stored for each group.
The vector data here represents straight line vectors forming a partial straight line representation of the associated contour element. The vector data corresponding to each linear segment of the piecewise linear display represents the variation of that segment in scan line direction (ΔY) and the number of scan lines that the segment extends (ΔX). In a preferred embodiment, each scan line is defined to extend in the vertical (Y) direction, and adjacent scan lines are displaced from each other by one increment in the horizontal (X) direction. Vector data is encoded and stored as a series of data words for the image. The series of data words includes at least one word representing the starting position of each contour element, at least one word representing the range of ΔX values of the straight line segment and the number of straight line segments for which the ΔX range values are valid, the straight line segment. at least one other word representing the range of each ΔY value of and the number of straight line segments for which the ΔY range value is valid;
and at least one word representing ΔX and ΔY values for the straight line section. The encoded vector words are compiled and stored in a predetermined order related to the detection of various portions of the contour element. The present invention is directed to an apparatus for generating a sequence of stroke signals from an ordered codeword sequence such as the coded codewords described above. The series of stroke signals represents the optical properties of a corresponding series of substantially parallel elongated strips of the image containing the background object. The strips extend in a direction corresponding to the scan line direction defined above. A codeword represents a line segment connecting contour points along relevant contour elements of the object. Here,
A contour element is defined as a contour portion that is a unit cost function parallel to the image strip. Generally speaking, the codeword specifies the number of line segments in a series associated with the same contour element with the starting point of the line segment, the positional change between the start and end points of the line segment, and the positional change corresponding to the same extent. Contains the data it represents. In the process of generating the stroke signal, each of the various strips of the image is sequentially identified as the current strip. For each current strip,
A vector generator generates and stores vector data derived from code words representing line segments that currently overlap the strip. The vector data for each line segment represents the following: That is, the ratio △Y/△X corresponding to the change in the position (Y) of the line segment in the direction of the strip from the current strip to the next strip, (2) the starting point of the line segment in the current strip, and (3) the line segment. is the number of subsequent strips for which the ratio of The stored vector data is converted into one of the stroke signals for each current strip. In one embodiment of the present invention, the stored vector data identifies the position of each line segment in the current strip and the corresponding video stroke signal.
It is converted into a stroke signal by being generated in base format. Thus, the stroke signal is a function of time and has a binary level conversion point at a point that corresponds in time to the position of the line segment in the current strip. The outline of the present invention has been described above in relation to the first specific example. In other embodiments of the invention, the stroke signal may represent an original image that is laid out by independent horizontal and vertical layout factors (eg, set size and point size). In this embodiment, a line segment data word would be generated for the current strip from a code word for each line segment that overlaps the current strip. The line segment data word for each line segment represents: (1) the endpoint of the line segment according to the associated codeword; (2) the assigned length of the line segment;
The allocated length thus corresponds to the length of the line segment from the current strip in the direction perpendicular to the current strip, and is allocated by the first allocation factor such that this corresponds to an integer + fractional value (K). (3) the range of position change in the direction perpendicular to the current strip between the start and end points of that line segment and the number of subsequent successive line segments of the associated contour element with position changes corresponding to the same range; (Four)
It represents the range of position change in the current strip direction between the start and end points of a line segment and the number of subsequent successive line segments of the associated contour element with a position change corresponding to the same range. Additionally, during vector data generation, line segment data words are identified for line segments that do not have subsequent strips whose position change portions do not change.
The identified line segment data words are then processed in order of increasing allocated length, and the identified line segment words with the same allocated length are processed in order of increasing position along the current strip (i.e., along the corresponding stroke). from top to bottom). Vector data is generated and updated from an ordered series of identified line segment data words as the line segment data words are identified. The vector word for each line segment data word represents: That is, (1) changed △Y/△X ratio,
Here, the △Y value is changed to be equal to the product of △Y and the second allocation factor, and the △X value is changed to △
(2) the modified starting point of the line segment in the current strip, where the modified starting point is
Product of SV and second allocation factor, plus (1-
K) equal to the product of the ratio of modified ΔY/ΔX, and (3) the number of modified subsequent strips with no change in position for each strip;
The modified number of levers then represents K, which is equal to the product of ΔX and the first allocation factor.
The vector data thus modified is then stored in the order of the identified line segment data words. FIG. 1 depicts an exemplary apparatus 10 incorporating the present invention. The device 10 includes a coding section 12 and a decoder section 1.
Contains 4. Portion 12 includes an input section 16 having a conventional scanner 20 and a digitizer 22 . Scanner 20 is configured to optically scan an object on the background from top to bottom (Y direction) along substantially parallel lines running from left to right (X direction) across the object. It is composed of In this example, the X and Y directions represent orthogonal axes;
The X direction is perpendicular to the scanning line direction, and the Y direction is the scanning direction. In other implementations, different scan configurations can be readily utilized. In this specific example,
Scanner 20 is configured to optically scan a master for characters to be typeset, such as a conventional font card containing black alphanumeric symbols on a white background. In other embodiments, the card may include images of different types. Thus, the image may have an object (having a first detectable property, such as optical reflectivity) on a background (having a second detectable property). For example, a font card may have black ink letters on a clear film background, and in this case the optical density is detected. Digitizer 22 generates a digital signal in response to scanner 20. Thus, in this case each bit represents the area of the element within the code being scanned on the font card, and the binary value of each bit represents the optical properties of the associated element. The digitizer 22 converts the element data into
Contour point data is generated and stored representing a feature region along a scan line characterized by transformation points of first and second detectable characteristics (eg, black and white) of the image. The contour point data for each element includes coordinate data representing the X and Y position of the element at which the transformation of the detectable property occurs. Thus, digitizer 22 generates a set of contour point data representing the contour of the object (i.e., black-white and black-white conversion points) on the background field of the image being scanned. Contour point data generated from digitizer 22 is provided to encoder 24 where the data is encoded into a compact form and the encoded data is then transferred to memory 26 for storage. The encoding process will be explained in detail later. Decoder section 14 includes local memory that receives coded contour point data stored in memory 26 or other alternative storage medium. The data stored in memory 30 is retrieved by decoder 32 as needed. Decoder 32 operates in conjunction with external character selector 34 and set size, point size selector 36. Character selector 3
4 may be a conventional element of a phototypesetting device which generates data representing a line of characters or symbols to be typeset. For example, a TTY tape reader may be utilized for use when the text to be typeset is already encoded on paper tape.
Set size, point size selector 36 is an operator control device by which X and Y direction allocation control signals are generated for the desired set size and point size. In other embodiments, for example, set size and point size parameters may be included on the paper tape. The signal generated by decoder 32 is therefore an assignment of the character selected by selector 34 as generated from the corresponding font card. This data is provided to a vector-to-stroke converter 40 which converts this allocated data into a form suitable for stroke-by-stroke control signals for a CRT display having a constant stroke rate. The latter control signal is a digital
The video converter or CRT line generator 42 converts the video signal into a suitable video signal for driving an output CRT for a conventional type phototypesetting machine. Next, the encoding section and its process will be explained. The various font codes are encoded in part 12 using some form of contour encoding in which connection points that share one attribute are Separated from contour point data. Attributes related to the present encoding technique include the point of transition from white to black or from black to white, i.e. the edge of a black object (e.g. a character or symbol) relative to a white background in the image. It is a turning point to position. Traditional contour encoding methods for codes generally have a single contour for Gothic characters. For example, as shown in Figures 2A and 2B, the Gothic capital letter "M" may be defined as having a single outline (indicated by the circled reference numeral in Figure 2B). This is because the entire shape can be drawn with a single line and there are no internal "holes". On the other hand, the Gossik lowercase letter “a” is 2
It has two contours (indicated by the circled reference numerals and in FIG. 2B), one representing the outer edge and the other representing the inner edge. For such contour definitions, the code can be written as a series of locus points for each contour. Since the distance from one point to an adjacent point is usually small, compression can be achieved by identifying a starting value and a series of difference values. However, this encoding technique is quite expensive to implement in font encoding applications.
This is because the entire character must be decoded and stored in the decoder before proceeding to the step of generating an output signal representing the stored character. Following the present example of a top-to-bottom scan across the symbol from left to right, the contour is defined as continuing monotonically in the image from left to right, i.e. perpendicular to the scan line direction. Ru. In other embodiments, monotonically continuing contours can be defined in other directions by defining different scanning directions. In the case of contour definitions as shown in FIG. 2C, the letter "M" is defined as having two contours (indicated by the circled reference numbers and in FIG. 2C), one at the apical edge. , and the other shows the bottom edge. The letter "e" is defined as having six contours (indicated by the encircled reference numbers ~ in Figure 2C). This method of contour definition changes the order in which data is supplied to the decoder, but does not change the number of data points needed to outline the character, so it is possible to memorize the entire character or associate it with various data words. The stroke order can be reconfigured without the need for large amounts of RAM to request tags to be used, yet still allows for character allocation with independent horizontal and vertical allocation factors. For this type of contour coding, the vertical layout is simple. Various contour points are defined with respect to a horizontal reference line. During decoding, contour points are directly assigned by the ratio of the output size to the master size during the output stroke. With proper rounding, accurate allocation points can be obtained within the resolution of the output CRT. Horizontal layout is provided by interpolation to maintain constant stroke spacing. For example, a character with a stroke width of 1280 at 64 points is written at 10 points.
It will be 200 strokes. Thus, when a particular point is located on the left edge of a character at master size, allocation by the ratio of output size to master size will generally result in a point that is not on the stroke of the output device. Taking the "nearest" allocation point to the output stroke on a steeply sloped edge is not sufficient. This is because this can result in considerable distortion. Therefore, the present coding method supplies coded data in a form in which points on the stroke are generated by interpolation. Briefly, contour point data is converted into a series of vectors. Each vector is a straight line encoded as a pair (△X, △Y) that gives the slope of the curve for a variable distance △X, with extremely short vectors for minute parts and long vectors for constant slope regions. has been taken into consideration. The final value of the vector is constrained to lie exactly on the original contour,
On the other hand, the intermediate point can be slightly offset from the actual contour. This makes it possible to reliably extract a long series of vectors without accumulating errors for each vector. This is because the starting point of each new vector can be precisely known by accumulating the ΔY values for the starting point of the contour. Further data compression can be achieved by considering the pattern of data within the (ΔX, ΔY) pair. in general,
In the case of alphanumeric typesetting, successive values of ΔX tend to approach each other, especially when ΔX is small. Therefore, a new type of codeword of the form (m, n) is introduced. This codeword specifies that all subsequent "m" codes have an "n" in their most significant bit. Addition of this codeword is required for each (△
The number of bits for the pair (X, ΔY) is reduced by the number of bits "n". This compression method is also applied to sequential values of ΔY. In this case, the codeword i,j
specifies that the following ``i'' codes all have ``j'' for their most significant bit. (m,
The n) and (i,j) code words are referred to as line code/line range (LC/LR) words and delta code/delta range (DC/DR) words, respectively. The least significant bit for the (△X, △Y) pair is
The remaining line values (L) and delta values (D) are coded as delta/line (D/L) words. Encoder 24 provides an ordered sequence of codewords for storage in element 26. The codeword data is thus in the form of starting point, line range, line code, delta range, delta code and remaining lines and delta values. In this example, all of this data represents a 64 point master. This is because allocation to other sizes and interpolation between coding points are performed in the decoder section 14. An important consideration in this regard is that the encoding step predicts the order of operations of the decoding step to be performed in section 14. As a result, the codes are ordered such that memory 26 stores data in the order needed by decoder section 14, thereby simplifying the memory required within decoder section 14. The manner in which the various types of data from the various contours are inserted is subject to a fixed set of ordering conditions so that the decoder section 14 can interpret the data without additional flags or other identifying bits. Simply put, the rules for inserting data can be summarized as follows. 1 Data items are inserted in the order in which the ΔX values end. 2. If more than one contour element requires data update data in the same scan line, the contour elements are updated in order of increasing distance from the end of the character. 3. If more than one data item is required to update a contour element, the data item must first be LC/
They are inserted in the order of priority: LR, secondly DC/DR, and thirdly D/L. 4 The end of a contour element is signaled with a "0" value LC/LR word. These first four rules are sufficient to update and terminate the contour. The rules below are:
Allows the start and insertion of new contours detected along the scan line. 5. The first two terms for the scan line in which the newly identified contour element "new start" occurs are the top new start value and the number of contours starting at that scan line. 6 The word following every new start D/L word is the next new start value in this stroke, except the last one in the scan line. 7 The word following the last fresh start D/L word for a scan line is the ΔX value for the next scan line that requires contour element update. Using these last three rules, the first four rules can be applied to insert the new start values in the proper order with respect to the existing data and then generate the first vector for each start. For the convenience of the decoder section, other rules are imposed on the encoding process that can result in "break points" on existing contours when a new start is required. This results in
The decoder unit 14 can compare the integer starting values (for sequential insertion) and may perform this comparison for the contours that require updating. By definition, a character is complete when all existing outlines are complete. This becomes inconvenient for pi signals such as ellipses (...), in which case it is desired that the three dots be a single symbol. In these cases, zero-width artificial lines are generated by the coder to combine the disparate contours. In order to accept this type of symbol, the decoder unit 14 assigns an assigned value within one stroke to a symbol whose element width is less than 1 (or 2), that is, to a symbol whose assigned size has lost its meaning. Monitor. The same mechanism that removes meaningless ones removes zero-width artificial lines at all point sizes. To accommodate a vertical jump in the contour, i.e. when sampling produces one sample at the bottom of the jump and an adjacent sample at the bottom of the jump, the encoding process first connects these samples by a finite line. be treated as such. However, these two
Subsequent assignments of characters that require output strokes between points may result in an apparent slope in the output, in which case the data reference may be changed in the encoding operator to produce a change at zero distance. Would. Strictly speaking, this results in contours with multiple values for this stroke, requiring additional encoding rules. 8. In the application of Rule 2, updates to the 0 line do not count as updates. This encoding changes the desired contour to show a change at ΔX=0. The first eight rules insert this condition properly. In this approach, the decoder unit 14 determines that the multivalued contour is assigned to the value located immediately to the right of the multivalued condition. Two other decoders complete the character code. That is, the first one represents the full width of the character and represents the distance to the first black data, ie, the left position of the character. These are defined in the following rules. 9 The first word in the series of codewords is the left position word (LB). 10 The second word in the series of code words is the character width word (W). Examples of characters and their codes are given in the Contour Point Coding Examples below. This also indicates the packing of data into codewords in bit form. Encoder 24 for this illustrative example is:
It is shown in detailed form in Figure 3-1. The encoder 24 is a mainframe computer 44
(DEC PDP-11/34, with 48K words of memory), execution memory element 46 (DEC RK05F disk pack) and program data memory element 4
8 (DEC RK05J disk pack). Memory element 46 is programmed with a DEC RSX-11M, Variant 3.1 executable program to control the operation of encoder 24. Memory element 48 is programmed with a first MACRO-11 program that converts raw contour point data from input 16 into a series of points (i.e., vector data) representing a segmental straight contour model. Each line segment now approximates the actual contour within the predetermined error criteria. Memory element 48 also includes a portion allocated to storage of generated vector data. Second MACRO-11
The program controls the conversion of vector data into an ordered sequence of code words for storage in element 26. In operation, prior to linear encoding, the data for the image is separated into recording contours and stored as a series of points. The memory is two disk files. The first file, referred to as EDGES, BIN; 1, is a file of randomly accessible records of uniform size, each record containing up to 64 points associated with a particular contour. The second file, referred to as PTRS.VAR;1, is a variable length record file containing pointers to the following data. That is, word #1 is the stroke in which this contour was first detected. Word #2 is the recording byte (word
X2). Word #3 is the contour value of the first active stroke. The sequential number of the record is assigned to this contour EDGES.BIN; 1
Refers to the record number. For example, data 1, 12,
406, RTRS.VAR containing 2, 4, 5; A record of 1 is interpreted as a contour starting at line 1 and has 12 bytes in the record. The contour starts with a value of 406 and records 2, 4 in the file EDGES.BIN;1.
and the points stored in 5. The end of the contour is indicated by a ``data point'' value of 0 in the file EDGE.BIN;1, or by ending a list of PTRS.VAR;1 if the contour is an exact multiple of the 64 stroke width. It can be done. Contour data is processed in two main stages. In step 1, a series of points is converted into a linear approximation of contour data (converting points into vectors). Step 2 inserts these vectors into a code sequence useful to the decoder and thus useful for extracting and encoding line range data, delta range data and new start coding information. In step 1 of processing, the file PTRS.
The entire contents of VAR;1 are transferred to memory. Two main steps are then performed. Initially, each contour is stored in memory one at a time and assigned a contour number. The end stroke of the contour is calculated from the start line of the contour and the number of points. Then,
The start line and end line are compared with each of the other contour start lines to determine which contour starts during the active contour under consideration. For each such other contour, the value of the contour under consideration in that stroke is compared with all previous values, so that the closest contour below the new start, or in the absence of one, Find the bottom contour and contour number of the character. In practice, this identifies which contours require a forced break to allow a new contour to be inserted. This first stage is completed when all contours have been tested as candidates for forced breaks. The second step is to store each contour in memory for actual vector generation. This is a trial vector that calculates (1) the number of points remaining in the series, (2) the distance to a forced break (if necessary), and (3) the minimum of any maximum (200) strokes. This is accomplished by hiring a person as a head. The "Y" values at the beginning and end of this trial vector length are compared to give a ΔY value. This is divided by the trial length to obtain a linear change per stroke. The decoder operation is then simulated by iteratively adding this slope value to the value at the start of the line segment plus a rounding criterion of 1/2 units. The truncated sum is compared to the actual scanned data using the following criteria: A. There is no error of more than 1 unit. B. If the length is greater than 25 strokes, there will be no more than 3 errors of 1 unit. C If the length is less than 15 strokes, there will be no more than one error of one unit. D If the length is between 15 and 24, the error of 1 unit will not be more than 2. If these criteria are violated, the trial length is reduced by one stroke and the process is repeated until an acceptable length is found. (In marginal cases,
There will be adjacent lines connected by a vector of length 1. ) The data is stored in stage 2 as two vectors. However, one vector is
Points to the start address of the data for each contour, and the second vector contains packed vector data for all contours. Each contour consists of its starting line and opening price (X, Y coordinates of the first point), followed by a series of (△
X, ΔY) pair. In stage 2 processing, encoder 24 encodes 64
Decoder 32 described below at point
, and predicts the order in which the decoder 32 will need the data. Once the requirements for each item are predicted, encoder 24 analyzes the data criteria and calculates that particular item. Once the entire contour code has been processed, the resulting data series is stored in memory element 24 along with a count of the number of words in the data series. Recently, the encoder 24 has been configured to convert the contour elements of the object scanned by the scanner 20 into a digitizer 2
2 for various contour value pairs (X, Y) generated by Each contour element increases monotonically in the direction perpendicular to the direction being scanned. A series of vector data pairs is generated for each contour element. Each vector data pair has a first value △
X and a second value ΔY. Here △X and △
The Y value represents the distance between the selected vector start and end points on the associated contour element in the scan direction and the direction perpendicular to the scan direction, respectively. The vector start point and end point are selected from the contour point data so that any point on the straight line segment connecting the start point and end point and the closest point on the related contour element between the start point and end point are less than the predetermined value. Ru. The vector data pairs are encoded to form an ordered sequence of codewords representing the scanned object. Prior to forming this sequence of codewords, vector data pairs are first identified at which the new contour element begins along one of the scan lines, and then at the selected point that overlaps that scan line. It is changed by changing the vector data pair ΔX, ΔY for the contour elements. If a new contour element is the last contour element identified on that scanline, the selected previously identified contour element is adjacent to the new contour element on that same scanline, and the new contour element along that scanline It is a contour element that precedes a contour element. In other cases, the selected previously identified contour element is the contour element adjacent to and following the new contour element. If the vector endpoint of the previously identified contour element vector data pair is within that same "new start" scan line, then
The modification stage is omitted. In this vector data pair modification operation, the first
A modified vector data pair ΔX, ΔY is generated and stored. The first modified vector data pair thus includes a vector end point representing the X and Y values for the previously identified contour element selected in the new starting scan line and a previously determined vector start point. have Additionally, a second modified vector data pair ΔX, ΔY is generated and stored for the selected previously identified contour element. The second modified vector data pair thus has a vector start point representing the X and Y values for the new starting scan line and a previously determined vector end point. Following their generation and initial storage, the first and second modified vector data pairs are stored in the vector memory as replacement data for the vector data pair for the selected previously identified contour element. Following vector data pair modification operations, contour element (CE) values are generated and stored. This CE value represents the number of contour elements identified in the scanned object. Associated with each contour element is stored data representing the initial X and Y values for the contour element detected during scanning of the object. Following these preliminary operations, the stages of forming and storing sequential codeword sequences begin. Initially, the first (position) codeword of the codeword sequence is generated and stored. The first codeword represents the X value of the scan line in which the first contour element was detected during the scan. The scan line in which the first contour element was detected is then identified as the current scan line. Then, a codeword sequence for the current scan line is generated and stored by performing the following steps. 1 Generate and store an SV word representing the Y value of the first new start (NS) portion detected in the current scan line. The first NS portion is the portion of the first contour element detected during the first time period along the current scan line. This step of performing the SV generation and storage step is omitted for current scan lines that do not have an NS portion. 2 Generate and store NS words and NS values. N.S.
The word and NS value represent the number of NS portions of the contour element detected during the first period along the current scan line. The NS word and NS value generation and storage steps are omitted for scan lines that do not have an NS portion. 3 of the current element detected in the current scan line
Process the NS part and the continuing (C) part sequentially. The NS portion is the portion of the contour element detected in the first period along the current scan line, and the C portion is an extension of the contour element detected in the previous scan line. NS and C sub-processing is performed in the order of detection of the respective sections along the current scan line. Each processing of the NS portion for the current scan line includes the following steps. (a) The upper bits (LR) of the expected number of △X values associated with the first vector data pair for the NS part and the number of vector data pairs whose △X values correspond and have these upper bits for the contour elements. Generate and store an LC/LR word representing (LC). (b) The upper bits (DR) of the planned number of △Y values associated with the first vector data pair for the NS portion, and the vector data pair having these upper bits for the contour element to which the △Y values correspond. Generate and store a DC/DR word representing the number (DC). (c) D/representing the lower bit (L) of the expected number of ΔX values associated with the first vector data pair and the lower bit (D) of the expected number of ΔY values associated with the first vector data pair; Generate and store the L word. As a result, LR and L are △
It fully specifies the X value, and DR and D fully specifies the ΔY value. (d) generating a first end value Xexp representing the number of scanlines between the current scanline and the scanline containing the vector endpoint of the vector pair containing the NS portion;
Remember. (e) a second end value Mexp representing the number of vector data for the contour element remaining before the LR part of the LC/LR word for the NS part changes from one vector data pair to the next; occur and remember. (f) From the data pair containing the NS part, the DC/DR word for the contour element containing the NS part.
The DR portion generates and stores a third end value Nexp representing the number of vector data pairs changing from one vector data pair to the next vector data pair. (g) a fourth end value representing the number of vector data pairs from the data pair containing the NS portion to the data pair containing the end of the contour element containing the NS portion;
Generate and store Zexp. (h) Gradually decrease the stored NS value. (i) comparing the NS value with 0 and, if the NS value exceeds 0, generating and storing an SV word representing the Y value of the next unprocessed NS portion detected along said current scan line; completes the processing of the NS part, and when the NS value is equal to 0,
The processing for the NS portion is completed by generating the NL word. This NL word thus represents the number of scan lines between the current scan line and the next scan line containing the NS portion, and the reference (R) word if there is no other scan line containing the NS portion. Each processing of part C for the current scan line includes the following steps. (a) When the △X value for the vector data associated with the contour element including the C portion changes due to a change from one vector data pair to the next vector data pair in the current scan line, set Xexp to 0.
, and in other cases, before the ΔX value for the vector data pair associated with the contour element containing the C portion changes due to the change from one vector data pair to the other vector data pair. updates Xexp to represent the number of scanlines following the current scanline. (b) Compare the updated Xexp with 0 and find that Xexp is 0
If Xexp is equal to 0, vector data from the data pair containing the C part to the data pair containing the end point of the contour element containing the C part is Update Zexp to represent the number of pairs. (c) compare the updated Zexp with 0, and if the updated Zexp is equal to 0, generate and record a termination (T) word for the contour element;
Complete the processing of the C part above by gradually decreasing the CE value, and when Zexp exceeds 0, C
The LR part of the LC/LR word for the vector data pair associated with the contour element containing the part is 1
Continue to update Mexp to represent the number of vector data pairs remaining before changing from one vector data pair to the next, and compare the updated Mexp with 0, such that Mexp is equal to 0. LC represents the number of vector data pairs whose most significant bits are associated with the next vector data pair for part C (LR) and the number of vector data pairs (LC) in which the ΔX values have their most significant bits. /LR word and update Mexp to be equal to the LC value so that the DR part of the DC/DR word for the vector data pair associated with the C part is changed from one vector data pair to the next. Update Nexp to represent the number of vector data pairs remaining before changing with a change in , compare this updated Nexp with 0, and when Nexp is equal to 0, update the next vector data pair for the C part. The upper bit (DR) of the expected number of △Y values associated with the pair, and its △Y
Generate a DC/DR word whose value represents the number of vector data pairs (DC) with their most significant bit, and update Nexp to be equal to the DC value. (d) Generate a D/L word representing the predetermined number of lower bits (L and D) of the ΔX and ΔY values associated with the next vector data pair for the C portion, and from the current scan line, Xexp is updated to represent the number of scan lines before the ΔX value for the vector data pair associated with the contour element containing the vector data pair changes from one vector data pair to another. 4 Compare the CE value with 0, and if the CE value exceeds 0, update the current scan line to be the next closest scan line following the previous current scan line, and then The line is selected from a set of scanlines that includes scanlines that are the same as or follow the previous current scanline and are defined by the Xexp values for the processed NS and C portions, and the new current scanline. Returning to step 1 for the line, when the CE value is equal to 0, the generation and storage of the codeword sequence is terminated. Next, the contour point coding agent will be explained. Figure 3-2 is an arbitrary code for this coding example. The code has three parts A, B and C illustrated for an X-Y coordinate grid. In this example, 10 per unit division on X and Y
There is a scan line in the book. The coding units 12 of this specific example each have a 4th A-4
Generate a series of 11-bit code words having one of the seven data formats illustrated in Figure G. In Figures 4A-4G, the weightings for the various bit positions are indicated in parentheses for the first and last bit positions of the various portions of these codewords. The "Left Position" (LB) or "List to New Start" (NL) codeword of FIG. 4A is an 11-bit number ranging from 1 to 2047. This codeword represents the identification value of the scanline where the code is first detected or the identification value of the scanline where the next new start contour element is detected. The “width” W codeword in Figure 4B is 1 to 127.
represents a 7-bit number in the range . This codeword represents the width of the code for the 54 unit wide em. The “opening price” (SV) code word in Figure 4C is 0
It is an 11-bit number in the range ~2047. "Opening price" is
It is encoded as the distance from a horizontal "reference line" at the top of the code to be encoded, measured in one scan line and in the direction Y of the dash-dash line. This distance can be a positive or negative number with respect to the sign. In this specific example, the reference line is positioned such that the opening price above the reference line is always less than 1536, and the opening price below the reference line is always less than 512. As a result, in the SV code, values above the reference line are stored as 11-bit values, and values below the reference line are stored as (value+1536). The decoder section 14 monitors the most significant two bits (BSB), determines which case has occurred, and converts it to a sign and an 11-bit value. In other embodiments, the opening price could be stored as a value above the bottom of the Em square so that it is always positive. The starting number (NS) codeword of FIG. 4D is a 6-bit number ranging from 1 to 64. This codeword represents the number of contour elements identified in the scan line. The line code/line range (LC/LR) codewords in Figure 4E are the numbers LC and LR of 1.
It is. The number on the right (LR) is the vector data pair in one scan line (i.e. partial straight line part)
It is a 3-bit number representing the upper 3 bits of the ΔX value associated with . The number on the left (LC) is the number of consecutive vector data pairs for the contour element whose △X value has such upper 3 bits, i.e. the number of consecutive vector data pairs for the same contour element that has △X in the range determined by LR. is an 8-bit number representing Similarly, "Delta Code/Delta Range" (DC/DR) in Figure 4F includes two numbers DC and DR. In general, DR is a 2-bit number representing the 128 and 64 weighted bits of the ΔY value associated with the vector data pair of one contour element in one scan line, and DC is the 2-bit number representing the 128 and 64 weighted bits of the ΔY value associated with the vector data pair of one contour element in one scan line, and DC is It is a 4-bit number representing the continuous vector data pair to be determined. A "delta range" code, on the other hand, would require 6 bits to specify the sign and range of the delta. In this case, only 5 bits are left to specify the number of codes for which the range is valid. To minimize the number of codes, for example if many codes all require small ranges, such as in a complex curve, the 3-bit portion X in Figure 4F may be assigned to either the LC or LR variables. ,code
The MSB would provide a flag indicating whether the variable bit X is associated with code number (DC) or delta range (DR).
As a result, the DC/DR codeword can include a large range for a small number of codes and a small range for a large number of codes. The "delta/line" (D/L) codeword of FIG. 4G includes two numbers, D and L. D is
It is a 6-bit number in the range 0 to 63 representing the lower 6 bits of the ΔY value associated with the vector data pair of contour elements within one scan line. Similarly, L is a 5-bit number ranging from 0 to 31 representing the lower 5 bits of ΔX associated with the contour element vector data pair. As the scanner scans the image of FIG. 3-2 and the digitizer 22 generates a binary signal representative of the optical reflection characteristics along the scan line, the encoder 24 first identifies contour edge points; It is assigned to a monotone contour element, and a start coordinate and vector data pair (partial straight line) are determined for the contour element. 3rd-
This information for the symbols in Figure 2 is listed in Table 1. For illustrative purposes, the contour elements in Figure 3-2 are 1
They are numbered ~8. These contour elements are
Identified by the circled reference number in Figure 3-2.

【表】【table】

【表】 エンコーダ24は、新スタートが既存の輪郭の
適当なブレーク点で生ずるように上の輪郭の限界
を変更しなければならない。輪郭3および4は、
線50で輪郭1にブレーク点を必要とし、これは
すでに存在する。輪郭5および6は、輪郭2にブ
レーク点を必要とし、これは強制されねばならな
い。輪郭7および8は、線65で輪郭2にブレー
ク点を必要とし、そしてこれも強制されねばなら
ない。かくして、輪郭2は第2表で示される輪郭
2Aとして定められるように変更される。
The encoder 24 must change the limits of the upper contour so that the new start occurs at the appropriate break point of the existing contour. Contours 3 and 4 are
We need a break point on contour 1 at line 50, which already exists. Contours 5 and 6 require a break point on contour 2, which must be enforced. Contours 7 and 8 require a break point on contour 2 at line 65, and this must also be forced. Contour 2 is thus modified to be defined as contour 2A shown in Table 2.

【表】 エンコーダ24は、次いで輪郭データを処理
し、第3表に示される一連のコードワードを発生
される。この表には、表を続む便宜上、現在走査
線、輪郭要素番号およびコードワード形式が示さ
れている。エンコーダ24に発生される出力コー
ドワードに対応するタグはない。LBおよびBコ
ードワード値は、輪郭コード化に関係づけられな
いから、Xにより指示される。 1例として、エンコーダ24が走査線50に近
づくと、新スタートが必要とされる。したがつ
て、コードワード列は、輪郭3に対するSVワー
ドおよび4つの新スタートのコードを含む。輪郭
3は、ラインに関するすべての他のデータの先行
し、したがつて、コードは輪郭3に対するLC/
LRワード、DC/DRワードおよびD/Lワード
を含み、輪郭4に対するSVワードがそれに続
く。輪郭4は、なお他のすべての他のデータより
先行し、したがつてLC/LR、DC/DRおよび
D/Lワードを必要とし、輪郭5に対するSVワ
ードがそれに続く。輪郭5は、輪郭1および2の
後走査線50でスタートする。輪郭1は更新を必
要とするが、先行のラインレンジ値はなお有効で
あるから、DC/DRフードのみが更新を必要とす
る。したがつて、輪郭1に対するDC/DRおよび
D/Lワードが含まれる。輪郭2は更新を必要と
するが先行のデルタレンジ値はなお有効であるか
ら、ラインレンジ値のみが更新を必要とされる。
それゆえ、コードは、輪郭2に対するLC/LRお
よびD/Lワードを含む。輪郭5および6に対す
るスタートデータがこゝで含まれる。輪郭6に対
するD/Lに続いて、新スタートは存在しない。
それゆえ、新スタートを有する次の走査線までの
距離(15線)を与えるNLワードが含まれる。走
査線50に対する上述のデータは、すべて、第3
表の★印間のコードワードに示されている。
Table 3 Encoder 24 then processes the contour data and generates a series of codewords as shown in Table 3. The table shows the current scan line, contour element number, and codeword type for convenience in following the table. There is no tag corresponding to the output codeword generated by encoder 24. The LB and B codeword values are designated by X since they are not related to contour coding. As one example, when encoder 24 approaches scan line 50, a new start is required. The codeword sequence therefore includes the SV word for contour 3 and the four new start codes. Contour 3 precedes all other data for the line, so the code is LC/
It contains the LR word, DC/DR word and D/L word, followed by the SV word for contour 4. Contour 4 still precedes all other data and therefore requires the LC/LR, DC/DR and D/L words, followed by the SV word for contour 5. Contour 5 starts at scan line 50 after contours 1 and 2. Contour 1 requires an update, but only the DC/DR hood requires an update since the previous line range values are still valid. Therefore, the DC/DR and D/L words for contour 1 are included. Since contour 2 requires updating, but the previous delta range values are still valid, only the line range values need to be updated.
Therefore, the code includes LC/LR and D/L words for contour 2. The start data for contours 5 and 6 are included here. Following D/L for contour 6, there is no new start.
Therefore, the NL word is included, giving the distance (15 lines) to the next scan line with a new start. All of the above data for scan line 50 is
It is shown in the codeword between the ★ marks in the table.

【表】【table】

【表】 走査の方向に平行な直線の像輪郭要素例えば輪
郭要素3および4(第3−2図)を結ぶ輪郭要素
のコード化は、輪郭要素3および4の一連のコー
ドワードに内包される。輪郭要素3および4の場
合、走査がX=50に進行すると、白−黒変換がY
=−100で識別され、輪郭要素に対する新スター
トが決定される。走査線が進むにつれ、Y=−90
で黒−白変換が検出され、輪郭要素4に対する新
スタートが決定される。輪郭要素は、つねに走査
線に沿つて発生される(例えば、1および2、3
および4、5および6、および7および8)。輪
郭要素3および4の各々に対するコード化は、こ
れらの輪郭要素がX=90で終了するまで後続の走
査線中継続する。このコード化技術の場合、走査
線に関して傾斜されたすべての輪郭要素は輪郭要
素としてコード化される。 デコーダ部は、この一連のコードワードから傾
斜された輪郭要素(線分3および4を含む)を再
構成する。デコーダ部においては、Y方向に走査
される陰極線管(CRT)のビームの強度(ON/
OFF)を制御するため、2進ストローク信号が
発生される。走査(Y)方向に平行なコード化輪
郭要素は、走査線に沿つてコード化像の最初に遭
遇する輪郭要素と第2に遭遇する輪郭要素間にお
けるビーム強度の切換えによつて内在的に設定さ
れる。走査線50の場合、ストローク信号は、輪
郭要素3の白−黒変換に対応する状態の2進変化
と、輪郭要素4の黒−白変換に対応する状態の2
進変化を有する。 走査線に平行なコード化輪郭線分は、出力
CRTの単一のストロークで構成され、そしてこ
れらの線分の始点と終点は、ストローク信号の2
進変換点で決定される。走査線に関して傾斜され
たコード化輪郭要素は、逐次のストローク信号の
2進変換に応答して出力CRTの逐次のストロー
クで構成される。 次にデコーダ部および解続行程について説明す
る。 第5図は、コード化部12により発生される一
連の11ビツトコードワードを、出力CRTを駆動
するストロークバイストロークビデオ制御信号に
変換するデコーダ部14の詳細ブロツク図であ
る。デコーダ部14は、機能上、コードワードを
割付けられ順番に配列されたデータに変換する第
1の部分32と、割付けされ配列されたベクトル
データをストロークデータに変換するベクトル−
ストロークコンバータ部と、ストロークデータを
CRTを駆動するためのビデオ信号に変換するデ
イジタル−ビデオ変換部ないしラインジエネレー
タ部42に分けられる。 デコーダ32は、デコーダ制御回路60、メモ
リ制御回路62、輪郭ブレーク点記憶回路64、
加算器66、マルチプライヤ68および分割器7
0を含む。デコーダ32は、さらに入力の順番に
配列されたベクトルデータを受け取つてコンバー
タ40により要求されるデータを供給する順応性
のあるベクトル記憶バツフア72を含む。 ベクトル−ストロークコンバータ40は、制御
回路60、RAM92、合計回路94およびスト
ロークバツフア96を含む。概略的にいうと、コ
ンバータ40は、ベクトルデータにより提供され
るスタート値およびストローク当りの変化を使つ
て各輪郭に対して反復的累積を行なう。 ラインジエネレータ42は、ベクトル−ストロ
ークコンバータ40により(順番に)発生される
一連の点を記憶し、CRTオン/オフスイツチン
グ信号を発生する。記憶された点は、ビームオフ
でスタートしカウンタタイマ線が次の記憶された
点に整合するときビームの極性を連続的に変える
ことによりビデオに変換される。 次にベクトル解読について説明する。 メモリ制御回路62は、メモリアドレスカウン
タ、および文字セレクタ34(例えば従来の文字
コードを使用して)によりアドレスされるRAM
ポインタメモリを含む。制御回路62の出力は、
選択された文字の第1のバイトを記憶するフオン
トメモリ30のスタートアドレスである。このデ
ータは、1バイトずつ歩進されるメモリアドレス
カウンタに負荷される。メモリ制御回路62は、
デコーダ制御回路60からの要求に応答して、1
ワードまたは2ワード前進する。ワンシヨツトタ
イマは、デコーダ制御回路62に、データがメモ
リアクセス中無効であることを報知する。 概略的に説明すると、デコーダ32は、最初、
コード化されつゝある符号部分が識別された第1
の走査線に対応するストロークに対する1組のベ
クトルを発生する。後続のコードワードは、ベク
トルに対する値が終了するとき、すなわち先に発
生されたベクトルが新しいベクトルと置き代えら
れる水平位置にて、1組の既存のベクトルを変更
する基準を提供するのに使用される。この更新の
動作は、デコーダが1組のベクトル内のもつとも
短かいベクトルを識別し、ベクトルが終了する走
査線に対応する時点に長さの順でベクトルを処理
することを必要とする。この処理は、ポイントサ
イズおよびセツトサイズに対する割付けを含み、
部分40および42により遂行される内挿および
線発生処理のための正確なベクトルデータを生ず
る。 セツト−サイズ割付けの1つの影響として、順
番配列の問題が導入される。本具体例において、
マスタデータは、64ポイントでコード化され、
輪郭は、64ポイント複写においてブレーク点が生
ずる順序で更新される。しかし、もつと小さいサ
イズでは、この順序は内挿部40が新しいベクト
ルを必要とするのと必ずしも同じ順序ではない。
例えば、輪郭Aは、64ポイントデータにおいて線
Xで更新され、線X+Yで更新される輪郭Bより
も下にあるとしよう。コード化ではこれらを順序
A、Bで更新することになろう。しかしながら、
あるセツトサイズでは、XおよびX+Yが、ベク
トル延長のため、同じ整数値に割付けされ、それ
ゆえ同じ出力ストロークで終了することになろ
う。この場合、コンバータ部40は、順序B、A
でデータを必要としよう。デコーダ部32は、下
記の態様でこの違いを調整する。 最初、デコーダ32は、割付けされた数として
ベクトルの終点までの距離を記憶する。これは、
一般に、整数の線プラス端数の延長部である。例
えば、64ポイントの27線ベクトルは、10ポイント
で4−7/32の線で記憶され、64ポイントの26線
ベクトルは、10ポイントで4−1/16の線で配憶
されよう。最初整数部分を処理すると、デコーダ
32は、両ベクトルが4出力ストローク後更新を
必要とすることを予測する。次に端数を処理する
と、デコーダは、各輪郭を更新するために輪郭コ
ードが発生された順序を予測する。最後に、ベク
トルは、コンバータ40に対して順番に整理され
る。 コンバータ40に送られる所望のデータは、ベ
クトルのスタート値、単位線当りの変化、および
このデータで発生されうる線の数である。水平割
付けは、スタート値を割り付けることにおいて若
干の難しさがある。スタート値は、所望のポイン
トサイズに割付けされた64ポイントにおける値そ
のものでなく、一般に、出力ストローク間のどこ
かで正しくなるからである。輪郭が更新される
と、端数ストローク値はKで表わされる。そのと
き、出力ストロークと交叉するベクトル値を予測
するため、(1−K)×(単位の線当りの割付けさ
れた変化)の修正項が割付けされたスタート値に
加えられねばならない。この結果、割付されたス
タート値(SSV)は次のようになる。 SSV=(SV)(PT SZ/64)+(1−K) (△Y/△X)(PT SZ/SET SZ) こゝにPT SZは所望のポイントサイズであ
り、SET SZは所望のセツトサイズである。便宜
上、この端数ストローク内挿行程は、データをコ
ンバータ40に送る前にデコーダ32により遂行
される。 デコーダ制御回路60は、状態コントローラ
(SC)部102、アドレスフアインダ(AF)部
104、線領域コンパレータ−レジスタ(LF)
部106、端数領域コンパレータ−レジスタ
(FF)部108、新スタートカウンタ(NS
CTR)110およびブレーク点記憶ポインタ
(P)部112を含む。 状態コントローラ部102は、プログラマブル
状態レジスタ、ROM、マルチプレクサおよびプ
ログラマブル論理回路を含む。ROMは、種々の
状態に対してデコーダ32に必要とされる全制御
ビツトを用意する。各状態において、ROMから
のデータは状態レジスタ中にストロークされ、デ
コーダ32を制御するのに使用される。供給され
るブランチ変数および特定の現在状態ビツトに応
答してPLAにより設定される適当な論理状態に
より枝分れが行なわれる。 デコーダ制御回路60はまた、ブレーク点メモ
リ64の空位置を探すためのアドレスフアインダ
部104(以下でC−配列として言及される)を
含んでいる。この部分104は、RAM、アドレ
スカウンタおよびROMより成る。ROMは、回路
の動作を制御する。アドレスカウンタが、使用さ
れる位置に対応するRAM位置を選択していれ
ば、ROMがカウンタを可能化する。かくして、
アドレスは、未使用のアドレスが発見されるまで
装置の残部と無関係に繰り返えされる。デコーダ
32の動作がメモリ64のアドレスを必要とする
と、制御回路60はROMにフラグを発生する。
アドレスが利用可能であると、カウンタはそれを
供給し、適当なRAM位置がBUSYと書かれる。
要求されるときアドレスが利用できないときは、
ROMは、アドレスが利用可能となるまで制御回
路60を待たせる。ROMはまた、追つて詳細に
説明されるように、カウンタがクリーンアツプサ
イクルで消去されているときもフラグを供給され
る。この場合、全輪郭のアドレスがRAMアドレ
スに掛け合わされ、適当な位置がNOT BUSYと
書かれる。 線領域(LF)コンバータ−レジスタ部106
は、アキユムレータ66出力の「線(ライン)」
領域を0試験フラグとともに監視する。LFコン
パレータ−レジスタ106は、状態ビツトにより
可能化されると、データが0でなければレジスタ
の内容の小さい方すなわち線領域を記憶し、それ
により以下に記憶される可変MIを計算する。類
似の端数領域(FF)コンパレータレジスタ部1
08が「端数」領域を監視し、以下に記載する
KIを計算する。ブロツク106および108は
また、追加のレジスタを含み、以下に記載される
変数MおよびKを記憶する。 別個の新スタート(NS)カウンタ110は、
処理される新スタートの数を監視するために設け
られている。NS値はこのカウンタにロードさ
れ、そして該カウンタは、C−配列のアドレスが
新スタートに割り当てられる度に計数を行なう。
カウンタがその限界値に達すると、フラグが
PLAに対して発生され、もはや新スタートがな
いことを指示する。 デコーダ制御回路60は、さらに、ブレーク点
メモリ64に対するブレーク点メモリポインタ
(P)部112を含む。部分112は、アドレス
列、ベクトルスタート値Vの符号、単位の線当り
の変化値(デルタ)およびVの2つのMSBに加
えて、読取りアドレス、書込みアドレスおよび
「NC」機能のためのカウンタを含む。 第4表は、デコーダ制御回路60に対する制御
ビツトの割当てを示す。
[Table] The encoding of a straight image contour element parallel to the scanning direction, for example a contour element connecting contour elements 3 and 4 (Fig. 3-2), is included in a series of code words for contour elements 3 and 4. . For contour elements 3 and 4, as the scan progresses to X=50, the white-to-black transformation becomes Y
=-100 and a new start for the contour element is determined. As the scan line progresses, Y=-90
A black-to-white transformation is detected at , and a new start for contour element 4 is determined. Contour elements are always generated along the scan line (e.g. 1 and 2, 3
and 4, 5 and 6, and 7 and 8). Encoding for each of contour elements 3 and 4 continues during subsequent scan lines until these contour elements end at X=90. With this coding technique, all contour elements that are tilted with respect to the scan line are coded as contour elements. The decoder section reconstructs the tilted contour elements (including line segments 3 and 4) from this series of codewords. In the decoder section, the intensity of the cathode ray tube (CRT) beam scanned in the Y direction (ON/
OFF), a binary stroke signal is generated. The coded contour elements parallel to the scan (Y) direction are set intrinsically by switching the beam intensity between the first and second encountered contour elements of the coded image along the scan line. be done. For the scan line 50, the stroke signal consists of a binary change in state corresponding to a white-to-black transformation of contour element 3 and a binary change in state corresponding to a black-to-white transformation of contour element 4.
It has a progressive change. Coded contour segments parallel to the scan line are output
consists of a single stroke of the CRT, and the start and end points of these line segments are the two stroke signals of the stroke signal.
Determined by the base conversion point. Coded contour elements tilted with respect to the scan line are constructed of successive strokes of the output CRT in response to binary conversion of the successive stroke signals. Next, the decoder section and the decoding process will be explained. FIG. 5 is a detailed block diagram of the decoder section 14 which converts the series of 11-bit code words generated by the encoder section 12 into stroke-by-stroke video control signals that drive the output CRT. The decoder unit 14 functionally includes a first part 32 that converts code words into allocated and sequentially arranged data, and a vector part 32 that converts the allocated and arranged vector data into stroke data.
Stroke converter section and stroke data
It is divided into a digital-video conversion section or line generator section 42 that converts it into a video signal for driving a CRT. The decoder 32 includes a decoder control circuit 60, a memory control circuit 62, a contour break point storage circuit 64,
Adder 66, multiplier 68 and divider 7
Contains 0. Decoder 32 further includes a flexible vector storage buffer 72 that receives the input ordered vector data and provides the data required by converter 40. Vector-to-stroke converter 40 includes control circuit 60, RAM 92, summing circuit 94, and stroke buffer 96. Generally speaking, converter 40 performs an iterative accumulation for each contour using the starting value and change per stroke provided by the vector data. Line generator 42 stores the series of points generated (in sequence) by vector-to-stroke converter 40 and generates the CRT on/off switching signal. The stored points are converted to video by starting with the beam off and continuously changing the polarity of the beam when the counter timer line aligns with the next stored point. Next, vector decoding will be explained. Memory control circuit 62 includes a memory address counter and a RAM addressed by character selector 34 (e.g., using conventional character codes).
Contains pointer memory. The output of the control circuit 62 is
This is the starting address of font memory 30 that stores the first byte of the selected character. This data is loaded into a memory address counter that is incremented one byte at a time. The memory control circuit 62 is
1 in response to a request from decoder control circuit 60.
Move forward a word or two. The one-shot timer notifies decoder control circuit 62 that the data is invalid during memory access. Briefly, the decoder 32 initially
The first code part to be encoded is identified.
generate a set of vectors for the strokes corresponding to the scan lines of . Subsequent codewords are used to provide criteria for modifying a set of existing vectors when the values for the vectors end, i.e. at the horizontal position where the previously generated vector is replaced by the new vector. Ru. This updating operation requires the decoder to identify the shortest vector in the set of vectors and process the vectors in length order at the point in time that corresponds to the scan line where the vector ends. This process includes allocation to point sizes and set sizes;
Produces accurate vector data for the interpolation and line generation processing performed by sections 40 and 42. One effect of set-size allocation is the introduction of an ordering problem. In this specific example,
Master data is encoded with 64 points,
Contours are updated in the order in which break points occur in a 64-point copy. However, at smaller sizes, this order is not necessarily the same order in which the interpolator 40 needs new vectors.
For example, assume that contour A is updated with line X in the 64-point data and is below contour B, which is updated with line X+Y. Encoding would update these in order A, B. however,
For some set sizes, X and X+Y will be assigned the same integer value due to vector extension and will therefore end up with the same output stroke. In this case, the converter unit 40 converts the order B, A
Let's say we need data. The decoder unit 32 adjusts this difference in the following manner. Initially, the decoder 32 stores the distance to the end of the vector as an assigned number. this is,
In general, it is the extension of a line plus a fraction of an integer. For example, a 64-point 27-line vector would be stored as a 10-point 4-7/32 line, and a 64-point 26-line vector would be stored as a 10-point 4-1/16 line. When first processing the integer portion, decoder 32 predicts that both vectors require updating after four output strokes. Then, processing the fractions, the decoder predicts the order in which the contour codes were generated to update each contour. Finally, the vectors are organized in order for the converter 40. The desired data sent to converter 40 are the starting value of the vector, the change per unit line, and the number of lines that can be generated with this data. Horizontal allocation presents some difficulty in allocating starting values. This is because the starting value is not the exact value at the 64 points assigned to the desired point size, but will generally be correct somewhere during the output stroke. When the contour is updated, the fractional stroke value is represented by K. A correction term of (1-K) x (assigned change per unit line) must then be added to the assigned start value to predict the vector value that intersects the output stroke. As a result, the allocated start value (SSV) is as follows. SSV = (SV) (PT SZ/64) + (1-K) (△Y/△X) (PT SZ/SET SZ) Here, PT SZ is the desired point size and SET SZ is the desired set point size. It's the size. For convenience, this fractional stroke interpolation step is performed by decoder 32 before sending the data to converter 40. The decoder control circuit 60 includes a state controller (SC) section 102, an address finder (AF) section 104, and a line area comparator register (LF).
unit 106, fraction area comparator register (FF) unit 108, new start counter (NS
CTR) 110 and a break point storage pointer (P) section 112. State controller section 102 includes programmable state registers, ROM, multiplexers, and programmable logic circuits. The ROM provides all control bits needed by the decoder 32 for various conditions. In each state, data from the ROM is stroked into the state register and used to control the decoder 32. Branching is effected by appropriate logic states set by the PLA in response to branch variables supplied and specific current state bits. The decoder control circuit 60 also includes an address finder section 104 (hereinafter referred to as the C-array) for locating empty locations in the breakpoint memory 64. This portion 104 consists of RAM, address counter and ROM. ROM controls the operation of the circuit. If the address counter selects the RAM location that corresponds to the location being used, the ROM enables the counter. Thus,
Addresses are repeated independently through the rest of the device until an unused address is found. When an operation of decoder 32 requires an address in memory 64, control circuit 60 generates a flag in the ROM.
When an address is available, the counter supplies it and the appropriate RAM location is written BUSY.
If the address is not available when requested,
The ROM causes the control circuit 60 to wait until an address is available. The ROM is also provided with a flag when the counter is being cleared in a cleanup cycle, as will be explained in more detail below. In this case, the address of all contours is multiplied by the RAM address and the appropriate location is written as NOT BUSY. Line domain (LF) converter-register section 106
is the "line" of the accumulator 66 output.
Monitor area with 0 test flag. The LF comparator register 106, when enabled by the status bit, stores the minor or line area of the contents of the register if the data is not zero, thereby calculating the variable MI that is stored below. Similar fractional area (FF) comparator register section 1
08 monitors the "fraction" area and describes it below.
Calculate KI. Blocks 106 and 108 also include additional registers to store variables M and K, described below. A separate new start (NS) counter 110 is
Provided to monitor the number of new starts processed. The NS value is loaded into this counter, and the counter counts each time an address of the C-array is assigned to a new start.
When the counter reaches its limit value, the flag is set to
Generated against PLA to indicate that there is no longer a new start. Decoder control circuit 60 further includes a break point memory pointer (P) section 112 for break point memory 64 . Portion 112 contains the address string, the sign of the vector start value V, the unit line change value (delta) and the two MSBs of V, as well as counters for read address, write address and "NC" function. . Table 4 shows the control bit assignments for decoder control circuit 60.

【表】【table】

【表】【table】

【表】 輪郭ブレーク点記憶要素64は、64ポイントベ
クトル終値、ベクトル終値に対する割付けされた
整数及び端数値、ラインレンジおよびそれが有効
であるコードの残存数、デルタレンジおよびそれ
が有効であるコードの残存数、および解読行程と
関連する種々のフラグを表わす各輪郭に対する多
ビツトワードを記憶する。新しい輪郭がスタート
すると、多ビツトワードが適正な順序でこの配列
に挿入されねばならない。長い一連の多いビツト
ワードの整理を避けるために、正しい順序で配列
にアクセスするに必要とされる一連のアドレスを
記憶するポインタRAMが制御装置60に使用さ
れる。 大きさアキユムレータ66は、2つの値の大き
い方を見出し、その符号を出力に割り当てるよう
に構成される。2つの符号が異なれば小さい方の
オペランドは反転され、桁上げ入力と加算され、
その他の場合は値は加算される。例えば、 4+3=0100+0011=0111=7(符号転送 加
算) −4+3=0100+1100+1=0001=−1 (符号転送、3反転加算) 4+−3=0100+1100+1=0001=1 (符号転送、3反転、加算) −4+−3=0100+0011=0111=−7 (符号転送、加算) 本具体例においては、ベクトル始値Vまたは線
当りの変化値(デルタ)を含む項のみが負となり
うる。さらに、値の比較は、V+デルタの場合の
み必要とされ、そしてこれは、基準線の一側から
他側へ移動しよう。他の場合は、予め既知であ
る。 基準線>(V)(ポイントサイズ)/64 累積値>(1−K)修正フアクタ L〓M アキユムレータ66は2つの好都合な特徴を含
んでいる。第1は、(L−M)および(K+ライ
ン)(セツトサイズ/64)の結果を試験するため
の11のMSBについて0試験することであり、第
2は(L−M)を計算するとき、記憶された端数
を出力に乗算することである。本具体例では、最
初全ラインビツトを0に、端数ビツトを1にす
る。 値累積のための規則の分析はROMで行なわれ
るのであるが、このROMは、「値」および「デル
タ」の符号および両者の相対的大きさを、遂行さ
れるべき動作を特定するアキユムレータ制御領域
部分とともに監視する。ROM出力は、どのオペ
ランドが反転すべきか、もし必要ならば桁上げ入
力が必要かどうか、および出力の符号を特定す
る。 ベクトルの始値の計算においては、64ポイント
始値が割付けされ、基準線に加えられ、次いで
(1−K)(修正フアクタ)項が累積される。最後
に、得られた結果がベクトル−ストロークコンベ
ヤ40に転送される。コンバータ40における決
定を丸める必要を除くため、アキユムレータ66
は、ハードワイヤ接続値(基準線+0.5)を割付
けされた始値に加える。したがつて、コンバータ
40は、すべて1/2ドツトだけ高い値で機能し、
したがつてオフセツトされた値の切捨で真の丸み
づけ機能が行なわれる。 ベクトルバツフア72は、デコーダ32の情報
をコンバータ40に供給する。バツフア72は、
始値、線当りの変化、新ベクトルが必要とされる
までの線の数、どの輪郭が更新されつゝあるかを
指示するポインタ、および輪郭挿入削除行程と関
連される種々のフラグより成る各ベクトルに対す
る多ビツトワードを記憶する。データは、64ポイ
ントマスタに対して限定される順序でこの列に書
き込まれ、次いで出力サイズにおける内挿条件に
合うように整理されねばならない。この整理はイ
ンタポレータによりワードにアクセスすべき順序
を記憶する制御装置60の中の他のポインタ
RAMで遂行される。 第6〜15図は、デコーダ32の動作のフロー
チヤートである。 これらの図においては下記の符号が使用され
る。 符号の定義 L 輪郭ブレーク点までの割付けされた距離の整
数部分 F 輪郭ブレーク点までの割付けされた距離の端
数部分 M 全輪郭中の最小のL値 MI 更新すべきL−Mの0でない最小の差 C 輪郭ブレーク点データのRAM配列 P 任意の順序でCの内容を割出すポインタ
RAM R P、したがつてC、例えばC(P(R))を
アドレスするカウンタ W P、したがつてC例えばC(P(W))をア
ドレスするカウンタ Fl この輪郭がこのサイクルで更新されたこと
を指示するフラグ F2 新スタートがこのサイクルで起きたことを
指示するフラグ F3 新スタートが順番に処理されつゝあること
を指示するフラグ F4 この輪郭が計算において終了したことを指
示するフラグ SV 次のスタート値を保持するレジスタ NS まだ処理すべきスタートの数を保持するカ
ウンタ B 内挿のためのデータを記憶するためのバツフ
ア配列 BP 任意の順序でBの内容を割り出すポインタ
RAM N BおよびPにおける次の空位置の割出し ACC アキユムレータ出力レジスタ SS セツトサイズ PS ポイントサイズ LR ラインレンジ LC LRが有効であるコードの数 DR デルタレンジ DC DRが有効であるコードの数 MUL マルチプライヤ DIV 分割器 NL 64ポイントにおける次の新スタートまでの
距離コードワード 次にフローチヤートにしたがいデコーダ32の
動作について説明するが、最初、デコーダ32は
計算ループの真中にあり、次のベクトル更新まで
の出力ストロークの数を表わす変数MIを計算し
たものと仮定する。この時点に存在する輪郭の数
を表わす変数Wも計算されており、そして出力バ
ツフアBは、アドレス(N−1)に最後に書き込
まれた、第6図には、複種の変数がイニシヤライ
ズされている。このフローチヤートは、Rおよび
Wの処理を除き基本的に自明である。本具体例に
おいては、64×9のRAMが、C配列(第5図の
ブロツク64)に対するポインタとして働く。ワ
ードの半分は、現在計算サイクル中アクセスされ
るべきアドレスを指す。他の半分のワードは、次
のサイクルにおける一連のアドレスを指定するよ
うにこのサイクル中に順番を整理される。この機
能の変更は、先に使用されたWの関数としてRお
よびWをイニシヤライズすることにより表わされ
る。かくして、この具体例においては、同時に30
の輪郭しか活動下に置かれ得ないが、これは外国
文字セツトに対しては不十分であろう。30という
限定は、アドレス0/32を輪郭の次のスタートを
予測するデータへ割当てることならびにつねに同
数の輪郭を処理することの両条件から生ずる。他
の具体例においては、これらの制限は容易に緩和
される。 第7図は、0に向う更新までの出力ストローク
の数により指示される。このサイクル中に必要と
される新スタートについて試験するチヤートであ
る。もしも0になれば、フラグF2がセツトさ
れ、変数KIは、1.0から、出力ストロークとこの
データ基準における輪郭のスタート間の追加の端
数に減ぜられる。例示の装置は、最初のスタート
を127/128の端数で生ぜしめるようにオフセツト
することにより、すべてのスタートおよび更新を
出力ストローク間で生ぜしめる。整数セツトサイ
ズが与えられると、任意の整数ストロークを(セ
ツトサイズ/64)により割付けし、このオフセツ
トを加えることにより、0でない端数がもたらさ
れる。ハーフポイントの増分を受け入れることが
できる代りの装置では、同じ0でない端数を維持
するためこのオフセツトを255/256に変えなけれ
ばならない。端数を0でないように維持すること
により、更新サイクルに続く出力ストロークまで
新輪郭が存在しないことが保証される。 第8図は、どの輪郭がこの時点に更新を必要と
するかを見るために一時に1つずつ既存の輪郭を
試験するチヤートである。もしも1つが更新を要
求すると、C配列中のワードがフラグを付され、
出力B−配列(第5図のブロツク72)の位置が
それに割り当てられる。この位置のアドレスは、
後で処理のためC配列に記憶される。連動機構が
第7図に暗示されている。大出力サイズの場合、
ベクトルの更新は、実時間ストローク発生よりも
迅速に機械時間で進行し、バツフアを使用される
のを待つベクトルで充たす。したがつて、BNが
使用のために入手しうることを確認するため試験
が遂行され、もし入手できなければ、位置が得ら
れるまで更新機構は停止する。KIの計算は継続
し、更新事象までの最小距離を見つける。すべて
の既存の輪郭が試験されてしまうと、サイクルは
次の図に進行する。 第9図は、変数Kである最小の端数の記憶およ
び輪郭を通る次のパスに対する変数の再イニシヤ
ライズを示す。前のように、次のスタートまでの
距離についての最初のチエツクが行なわれる。こ
れが完全に終了すると、フラグF3がセツトさ
れ、最初のスタート値が、輪郭スタートの数とと
もに読み取られる。 この点まで集約すると、次の出力ベクトルの更
新を必要とする輪郭は、フラグがセツトされ、
各々ベクトルバツフアのアドレスに割り当てられ
た。制御論理装置により、データが64ポイントマ
スタに対してコード化された順序が識別された。
出力ベクトルの一部として新スタートが生ずる場
合は、フラグF2がセツトされた。さらに、もし
も新スタートが第1のベクトルの更新と一緒に必
要とされる場合には、フラグF3がセツトされ、
スタート値/およびスタート数データが報知され
た。デコーダ32はこゝで端数値を順にチエツク
し、64ポイントマスタコードからデータを抽出
し、全輪郭が少なくとも1出力ストロークを過ぎ
て延長されるまでベクトルの更新を計算する。 第10図は、輪郭の系統的更新を示すものであ
る。C配列のワードが、Lが0であるかどうかを
見るためにチエツクされる。もし0でないと、変
数MIが計算され、全輪郭を通るパスの後MIで次
の更新までの出力ストロークにおける最小距離を
表わすようになされる。本具体例は、この計算を
多くの多の計算と並列に遂行する。直列式の他の
具体例においては、この段階は、第7図の一部と
してX=0のブランチにおいて遂行される。Lが
0であると、FがKに比較される。FがKより小
さいと、この輪郭は無視される。この条件は、輪
郭が現在サイクルで終了したときしか生じない
が、この輪郭はポインタRAMから削除されな
い。もしもFがKより大きいと、変数KIは、最
小の残存端数を見出すように更新される。最後
に、FがKに等しいと、これはこの輪郭を更新す
る時点である。最初の段階は、この端数に新スタ
ートが必要とされるかどうかを決定するため、F
3をチエツクすることである。もしも必要でなけ
れば、この輪郭で、(第13図とともに以下で記
載される)計算サブルーチンを実行し、次の輪郭
に進行する。F3がセツトされ、輪郭値Vと新ス
タートSV間で比較がなされる。もしも輪郭が新
スタートよりも上にあると、比較サブルーチンが
実行され、制御は次の輪郭に移行する。しかしな
がら、輪郭が新スタートより下にあると、制御は
挿入サブルーチン(すぐ後で説明する)にパスす
る。このサブルーチンでは、VがSVより大きい
すべての新しい輪郭をスタートし、そしてサブル
ーチンの後に計算サブルーチンが現輪郭のために
実行され、制御は次の輪郭に移る。全輪郭がこの
端数について更新されたら、NCはもはや0より
大きくない。この後の最初のチエツクはフラグF
3についてである。F3がセツトされると、これ
は、スタートされるべき輪郭がなお残つているこ
とを指示する。この有効条件は、輪郭が全既存輪
郭の下でスタートするとき生ずる。この場合、挿
入サブルーチンですべての残りの新しい輪郭をス
タートする。このチエツクに続いてKIが1.0に比
較される。等しいときは、新スタートを含むすべ
ての既存の輪郭に対して0に等しくないことを意
味する。等しくない場合は、あるL値がなお0で
あることを意味し、そしてこれは第8図に戻るル
ープを形成する。その他の場合は、クリーンアツ
プルーチンが始まる。 第11図は、クリーンアツプルーチンを表わ
す。イニシヤライズ段階に続いて、F1がセツト
されるかどうかを見るため輪郭が一時に1つずつ
チエツクされる。F1のセツトは、この輪郭に対
して更新サイクルが遂行されたことを指示する。
F1がセツトされなければ、次の輪郭がチエツク
される。F1がセツトされゝば、最初の動作は、
ベクトルバツフアBを再整理することである。C
配列の各ワードは、この輪郭に割り当てられたア
ドレスNを特定するフイールドを含む。しかしな
がら、新スタートのため、ワードが内挿のための
適正な順序にないかも知れない。C配列の中の輪
郭は適正な順序にあるから、整理は減ぜられ
「N」フイールドをそれが現われる順序で記憶す
る。第6図に戻り、変数NIは、「N」値の最初の
値のセツトされた。これは、こゝで、BPポイン
タ配列に再配列されるポインタを記憶するための
インデツクスとして働く。フラグF1がこゝでク
リヤされる。次にフラグF4が処理される。これ
は、輪郭が終了されゝば計算サブルーチン中セツ
トされ、輪郭が延長されゝばクリヤされるフラグ
である。WからFを減ずると、Wの条件付き減分
となるが、これは、ループ中の次のパスで次の輪
郭に対するポインタをこの輪郭に対するポインタ
上に書き込ませ、後続のすべての処理からC配列
のこのワードを有効に除去する。 ループは、全輪郭が試験されてしまうので継続
し、次いでWの値がチエツクされる。それがなお
1または32であれば、ループ内のWの全増加が対
応する減少と一致していたのである。換言すれ
ば、全輪郭は終了し、プログラムは停止する。そ
の他の場合は、ループは第6図の再スタートに戻
り、Wは作用下の輪郭の数を計数し、セツト中の
Lの最小の既存値のプラグを付す。これは、仮定
されるスタート条件である。 残りの説明は、停止条件からプログラムループ
に移る。第12図はスタートルーチンを示す。最
初、装置は、CRTストロークジエネレータがブ
ランクストロークを生じており、解続プログラム
が待期中の状態にある。この状態は、各文字のス
タート時にも、文字セレクタ34から短かい主パ
ルスおよびスタートパルスを発生することにより
強制される。セレクタ34からの文字コードは、
選択された文字に対する第1のコードワードバイ
トのメモリにアドレスを供給するルツクアツプテ
ーブルを駆動する。このアドレスは、メモリアド
レスカウンタにロードされ、第1のワード−64ポ
イントにおいてストロークとして測られる文字の
左方位置を読み取るのに使用される。これは、セ
ツトサイズ/64と掛けられ、選択されたサイズに
おいて所望される数のブランクストロークに切り
捨てられ、そして次いで白線を生ずるためライン
ジエネレータに通される。次いで幅が読取りに利
用できる。アキユムレータレジスタは、線0、端
数127/128に対応するようにセツトされる。これ
は、最初のスタート前に距離としてC配列に記憶
される。変数KIは、最小の端数がこの値を有す
ることを指示するために127/128にセツトされ、
そしてポインタの0アドレスが0を指すようにセ
ツトされる。新スタートが必要とされることを指
示するためフラグF2がセツトされ、そして他の
変数が図示のごとくイニシヤライズされる。ルー
チンは、次いでイニシヤライズを完成するため第
9図に入り、輪郭挿入のため第10図に移り、そ
してプログラムが進行する。 フローチヤートは2つのサブルーチンを指示す
る。1つは、ベクトルの計算のためのものであ
り、他方は新スタート挿入のためのものである。
第13図および第14図は、先に定義された符号
を使用した計算ルーチンのフローチヤートであ
る。以下の段階において、セツトサイズまたはポ
イントサイズによる乗算は、単に各ビツトの大き
さを再解釈することにより割付け動作を完成させ
るために、64により同時の分割を伴なつてもよい
ことに留意されたい。 第1の段階は、有効ラインレンジが存在するか
どうかを見ることである。もしなければ、次のも
のが読み取られ、再び有効性についてチエツクさ
れる。この点における無効コードは、輪郭が終了
することを意味し、サブルーチンから出る前にイ
ンタポレータに対するフラグの設定を必要とす
る。有効ラインレンジの設定後、有効コードの計
数値は漸減され、有効デルタレンジを設定するた
め、同様のループが遂行される。残りの線および
デルタビツトをこゝで読み取ることができ、全ラ
インおよびデルタ対を生ずるためにレンジビツト
と結合できる。 次の段階は、ラインをセツトサイズに割付けし
Kを加え、C配列の適正なアドレスに結果を記憶
することである。このL値は、割付けされたベク
トル長が少なくとも1つの出力ストロークを越え
て延びるかどうかを見るためにチエツクされる。
もし越えていなければアキユムレータはVおよび
デルタを加え、ベクトルの終点にて64ポイント値
に達し、これを記憶する。この点で、ベクトルが
全く水平に進んだかどうかを見るためのチエツク
がなされる。真に垂直な縁部は、Oラインに限定
されたデルタを有しよう。垂直縁部が指示されゝ
ば、フローチヤートは直ちに他の計算サイクルに
進むようにループを戻り、その他の場合はKIは
更新され、サブルーチンは終了する。 ベクトルが少なくとも1つの出力ストロークを
越していると仮定すると、流れは第14図に移
り、可変MIを更新し、(ライン)×(セツトサイ
ズ)を分割器に転送し、(デルタ)×(ポイントサ
イズ)を計算し、それを分割器に転送し、そして
分割器を始動して、指示されるセツトおよびポイ
ントサイズにて単位ストローク当りの変化を発生
する。この間、マルチプライヤは、前のベクトル
の割付けされた終点を得るためVX(ポイントサ
イズ)を計算し、他方アキユムレータはVおよび
デルタを加算し、得られた値を記憶する。アキユ
ムレータは、次いで前のベクトルの割付けされた
終端に基準値を越え、内挿行程のため無符号の数
値をうる(値は、割付けが基準線を動かさないよ
うに基準線からの距離としてコード化される)。 マルチプライヤは、こゝで、64ポイントにおけ
るコード化ブレーク点から次の実際の出力ストロ
ークまでの距離すなわち(I−K)でストローク
当りの変化を割付けする。この断片的ストローク
修正値は、次いで前のベクトルの割付けされた終
点に加えられ、この線分上の最初の有効点に達す
る。線分Lの点の数、第1の点(ACC)、傾斜
(DIV)、輪郭アドレス(P(W))およびクリヤ
されたフラグF4は、こゝで、B(C(P
(W)))として符号的に指示されるこの輪郭に割
り当てられるバツフアドレスに記憶される。変数
P(W)は、インタポレータ40がデコーダ32
のメモリおよびポインタ系に類似のメモリおよび
ポインタ系を使用することができるようにするた
めに使用される。これで、計算サブルーチンが完
了する。 挿入サブルーチンは第15図に示される。 第1の段階は、C配列の未使用のアドレスを見
つけ、(例示の装置は、この目的のため32×1の
補助RAMを挿用した)そのアドレスをポインタ
に記憶することである。次いで、ワードが設定さ
れ、そして出力ベクトルバツフアのアドレスがワ
ードに割り当てられる。残つているスタートの数
は漸減され、そして計算サブルーチンがこの輪郭
に対するデータを発生するために実行される。次
いで、ポインタ書込みカウンタが漸減され、もつ
とも新しい既存の輪郭がポインタ内で移動する。
NSが0でなければ、新スタートが残り、次の新
スタート値が読み取られる。すべての既存の輪郭
が処理されてしまうと、これは、文字の底部にニ
ユーデータとして自動的に挿入され、その他の場
合には、次の新スタートが既存の輪郭の上になお
存在するか否かを見るために試験が遂行される。
もしも新スタートが存在すれば、挿入サイクルが
再び進行し、その他の場合はルーチンは終了す
る。すべてのスタートが処理されると、NSは0
となり、そしてこれはフラグF2およびF3をク
リヤする。次いで、新スタートまでの距離が読み
取られ、割付けされ、記憶され、サブルーチンか
ら出る前に適当にMIおよびKIを更新する。 次にベクトル−ビデオ変換について説明する。 ベクトルデータのビデオへの変換は、ベクトル
−ストロークコンバータ40およびラインジエネ
レータ42で遂行される。コンバータ40は、バ
ツフア72からベクトルデータを受け取る。この
ベクトルデータは、正しい出力サイズで割付けさ
れた始値およびストローク当りの変化の形式であ
る。コンバータ40は、正しく割付けされた変化
を各記憶された輪郭に順番に加え、得られたスト
ロークデータをラインジエネレータ42に転送す
ることにより、ベクトルデータをストロークバイ
ストロークデータに変換する。コンバータ40
は、ラインジエネレータ42に、バツフアスペー
スが得られゝば、1時に1線のストロークデータ
ずつラインジエネレータ42にロードし、そして
ワードを必要とするとき、ベクトルバツフアから
−必要ならば1つが書き込まれるのを待つて−ベ
クトルバツフアからワードを取る。 本具体例においては、ラインシエネレータ42
は実時間で機能するから、写真植字装置CRTの
アナログCRTランプ信号発生行程と連動され
る。ラインジエネレータ42は、ラインがコンバ
ータ40から完全にロードされるまで、CRTラ
ンプ信号をOFFに保持する。ランプ信号は、状
態により基準線に関するビーム位置を表わすカウ
ンタと一緒にスタートされる。カウンタ周波数
は、究極的に走査行程の関数である。 カウンタの状態は輪郭点と比較され、CRTビ
ームがターンオン、オフしてストロークを再構成
すべき時点を決定する。その間、ベクトル−スト
ロークコンバータ40は、他の線を他のバツフア
にロードする。ストロークの最後の輪郭はフラグ
が付されるから、輪郭がこの値に達したとき、ブ
ランキングサイクルが直ちに再開され、CRTの
ランプ信号がリセツトされ、水平位置は前進さ
れ、写真植字装置の文字幅カウンタが割り出され
る。 次にベクトル−ビデオ変換について詳細に説明
する。 ベクトル−ストロークコンバータ40は、第1
6図に詳細ブロツク図で示されており、RAM9
2、加算回路94およびストロークバツフア96
を含む。残りのブロツクは、デイジタル−ストロ
ークコントローラ130、マルチプレクサ13
2,134および135、レジスタ136,13
8,140および142、漸減回路144、コン
パレータ148、RAM150、および読取り、
書込みカウンタ152および154をそれぞれ含
む制御装置90を形成する。コンバータ40は、
D−Sコントローラ130の制御下でデコーダ3
2から受け取られる解読され順番に配列されたベ
クトルデータでストロークごとに各輪郭を再構成
する。しかして、D−Sコントローラは、第17
A−17E図に示されるフローチヤートにしたが
つて動作する。 各文字のスタート時に、コントローラの状態カ
ウンタは、状態14(第17A図参照)にロード
される。この状態において、コンバータ40は、
ブランクストロークカウンタ(ラインジエネレー
タ42の)が一杯となり左方位置ストロークの完
了を指示するまで待ち、そしてこのときデータ要
求(REQ DTA第16図)はデコーダ32に送ら
れる。この信号に応答して、新データは、MUX
134を介してポインタRAM132に、また
MUX132を介してデータRAM92にロードさ
れる。データは、(1)データをデータRAM92に
記憶するアドレスであるポインタワード(5ビツ
ト)、(2)輪郭に対する始値(16ビツト)、(3)1ライ
ン当りのデルタ(または変化)(20ビツト)、(4)ブ
レーク点までのライン数(8ビツト)より成る。
最後のワードがRAM92および150に記憶さ
れた後、状態カウンタは状態I5に漸増する。こ
のとき、「キープテーキング」フラグがチエツク
される。このフラグがセツトされると、次のデー
タの要求がデコーダ32に送られる。この行程
は、「キープテーキング」フラグがもはやセツト
されなくなるまで繰り返えされる。そのとき、状
態カウンタはIOにロードされ、変換行程は開始
の用意が整う(第17B図参照)。 状態IOにおいて、コントローラ130は、ラ
インジエネレータ42の用意が整うのを待つ。こ
の状態にて状態カウンタは状態I1に進む。この
時点にて、ポインタRAM150はラインの第1
の輪郭をアドレスする。現在値、1ライン当りの
デルダおよびライン数データが、保持レジスタ1
38および136にロードされる。現在値の11の
MSBも、さらに処理のため(後述のように)ラ
インジエネレータ42に送られる。現在値および
デルタ/ラインデータは、輪郭の次の値すなわち
新しい現在値を得るため回路94で一緒に加えら
れる。レジスタ136からのライン値は、回路1
44により漸減される。新しい現在値および新し
いライン値は、次いでデータRAM92に記憶さ
れ、古い値に置き代わる。コンバータ状態カウン
タは、輪郭の1つに対するライン値が0に等しく
なるまで状態I0およびI1間でジヤンプし続け
る。0に等しくなると、輪郭更新の要求がデコー
ダ32に送られ、コンバータ40の状態カウンタ
がI2にセツトされる(第17D図参照)。 状態I2において、コンバータ40は、デコー
ダ32からデータを受け入れる容易が整い、それ
を適当なRAMに記憶する。すべてのデータが記
憶された後、状態カウンタはI3に進む(第17
D図および第17E図参照)。 状態I3において、コンバータ40はフラグビ
ツト「キル」「キープテーキング」および「ニユ
ーインサート」をチエツクする。「キル」フラグ
は、処理中の輪郭が完了したことをコンバータ4
0に報知する。ポインタRAM150に対する書
込みアドレスカウンタ154は、次のラインに対
して再書込みされない。「キープテーキング」フ
ラグがセツトされると、コンバータ40は、状態
に戻つて古い輪郭カウンタがなお更新を必要と
することを検出することによりデコーダ32から
データを要求し続ける。 この行程は、「キープテーキングフラグ」がリ
セツトされるまで続く。「ニユーインサート」フ
ラグは、受信されたデータが新輪郭に対するもの
であることを報知する。この場合、ポインタ
RAM150に対する書込みアドレスカウンタ1
54のみが漸増される。全フラグが状態I3でチ
エツクされ、適当な機能が完了した後、状態カウ
ンタが状態I0に戻され、輪郭の処理を続ける。 コンバータ40は、垂直ストロークのすべての
点が処理された時点を決定する。ポインタRAM
150に対する読取りアドレスカウンタ152の
計数状態が、先行のストロークに対する書込みカ
ウンタの計数状態に等しくなると、そのデータラ
インは完了する。このフラグ(R=Wold)もラ
インジエネレータ42に送られる。 各垂直ストロークは同じ態様で処理されるが、
その際一連の状態は文字コードにより決定され
る。文字は、先行のラインに対する書込みアドレ
スカウンタ154が0になるとき完了する。 ラインジエネレータ42は、第18図に詳細に
示されており、LGコントローラ168、マルチ
プレクサ(MUX)170、ポイントサイズスタ
ートカウンタ174、ストロークカウンタ17
8、ブランキングカウンタ180、ブランキング
ROM184、コンパレータ186、レジスタ1
90、ビデオフリツプフロツプ192、MUXフ
リツプフロツプ196およびゲート198を含
む。この具体例において、出力信号SD、RD、
ACCおよびVIDEOは、コンピユグラフイツクコ
ーポレーシヨンにより製造されるビデオセツタ
用の表示装置のごとき従来のCRT写真植字装置
表示装置に供給されるように適合される。他の具
体例においては、他の形態を使用できる。ライン
ジエネレータ42は、コンパレータ40により提
供される一連のストロークデータワードを、LG
コントローラ168の制御下でビデオデータに変
換する。しかして、このコントローラは、第19
A−19Cのフローチヤートにしたがつて動作す
る。 この形態において、LGコントローラ168
は、最初状態PO(第19A図参照)にリセツト
される状態カウンタを含む。この状態において、
ラインジエネレータは、ロードされるべき予定数
のブランクストロークを待つ待期モードにある。
こゝでブランクストロークは、各文字の白い左手
縁部位置を表わす。ロード後、状態カウンタは状
態P4にジヤンプし、ブランクストロークをスタ
ートする。 ブランクストロークカウンタ178は、SDパ
ルスが存在する度に1漸増する(第19A図参
照)。ブランクストロークカウンタ178が一杯
となると、データ要求がコンバータ40に送ら
れ、状態カウンタは状態P7にロードされる。状
態7において、ラインジエネレータ42は、コン
バータ40のストロークバツフアRAMが1つの
ストロークに対するストロークデータでロードさ
れるのを待つ。1ストロークが出力CRT上に印
刷する用意が整うと、ストロークカウンタ178
は、印刷されるべきポイントサイズに対して必要
とされる基準線により決定される始値にプリセツ
トされ(カウンタ174により)、そしてコンバ
ータ40のストロークバツフアRAM96はリセ
ツトされるから、ストロークデータの最初の点が
その出力に現われる。ストロークカウンタ178
およびRAM99の出力は、次いでコンパレータ
186で比較される。一致が起こると、ビデオフ
リツプフロツプ192は切替えられ、RAM96
は次のデータ点を提供するように漸増される。フ
リツプフロツプ92は、CRTに対してビデオ信
号を供給する。上述の行程は、垂直ストロークの
各点(黒−白または白−黒変換点)に対して繰り
返えされる。垂直ストロークの最後の点は、
RAM96の白RAM部のWoldビツトから分る。
一致が起こるや、ブランキングが始まる(第19
B図および19C図参照)。 ブランキングが完了すると、ストロークデータ
の次のラインが処理される。文字の完了で、状態
カウンタはPOにリセツトされ、次の文字の開始
の用意が整うまで待期モードとしてブランクスト
ロークを印刷する。 SD、RDおよびACC信号を発生するのに使用さ
れるタイミング情報は、ブランキングROMに記
憶される。ブランキング中、ROMおよびストロ
ークカウンタ出力は、コンパレータ186で比較
される。一致が起こる度に、ROMアドレスが漸
増され、1またはそれ以上のパルスが更新され
る。この行程は、ブランキングが完了するまで繰
り返される。これは、CRT写真植字装置により
要求されるところにしたがつて、任意のパルス幅
および時間関係を可能ならしめる。 本発明は、特許請求の範囲から逸脱することな
く他の特定の形式で具体化できる。それゆえ、本
具体例は、すべての点で例示として考えられるべ
きものであり、特許請求の範囲において種々変更
をなしうるものである。
[Table] The contour break point storage element 64 stores the 64-point vector end value, the assigned integer and fractional value for the vector end value, the line range and the remaining number of codes for which it is valid, the delta range and the number of codes for which it is valid. A multi-bit word is stored for each contour representing the number remaining and various flags associated with the decoding process. When a new contour is started, multi-bit words must be inserted into this array in the proper order. To avoid organizing long sequences of large bitwords, a pointer RAM is used in controller 60 to store the sequence of addresses needed to access the array in the correct order. The magnitude accumulator 66 is configured to find the larger of two values and assign its sign to the output. If the two signs differ, the smaller operand is inverted and added with the carry input;
Otherwise, the values are added together. For example, 4 + 3 = 0100 + 0011 = 0111 = 7 (code transfer addition) -4 + 3 = 0100 + 1100 + 1 = 0001 = -1 (code transfer, 3 inversion addition) 4 + -3 = 0100 + 1100 + 1 = 0001 = 1 (code transfer, 3 inversion, addition) - 4+-3=0100+0011=0111=-7 (Sign transfer, addition) In this specific example, only the term containing the vector opening value V or the change value (delta) per line can be negative. Furthermore, a comparison of values is only needed for V+Delta, which would move from one side of the reference line to the other. Other cases are known in advance. Reference Line>(V)(Point Size)/64 Accumulation Value>(1-K) Correction Factor L〓M Accumulator 66 includes two advantageous features. The first is to test 0 on the 11 MSBs to test the result of (L-M) and (K+ lines) (set size/64), and the second is when calculating (L-M) , is to multiply the output by the stored fraction. In this specific example, all line bits are initially set to 0 and fractional bits are set to 1. The analysis of the rules for value accumulation takes place in the ROM, which determines the sign of the ``value'' and ``delta'' and their relative magnitudes in the accumulator control area, which specifies the operation to be performed. Monitor with parts. The ROM output specifies which operands should be inverted, whether a carry input is required if necessary, and the sign of the output. In calculating the opening value of the vector, the 64 point opening price is assigned, added to the baseline, and then the (1-K) (correction factor) term is accumulated. Finally, the obtained results are transferred to the vector-stroke conveyor 40. To eliminate the need for rounding decisions in converter 40, accumulator 66
adds the hardwired value (baseline + 0.5) to the assigned opening price. Therefore, converters 40 all operate 1/2 dot higher;
Truncation of the offset value therefore performs a true rounding function. Vector buffer 72 provides information from decoder 32 to converter 40 . Batsuhua 72 is
Each line consists of the opening price, the change per line, the number of lines until a new vector is needed, a pointer indicating which contour is being updated, and various flags associated with the contour insertion/deletion process. Stores multi-bit words for vectors. Data is written to this column in a limited order for the 64 point master and must then be organized to meet the interpolation requirements in the output size. This arrangement is accomplished by an interpolator that uses other pointers in the controller 60 to remember the order in which words should be accessed.
Performed in RAM. 6 to 15 are flowcharts of the operation of the decoder 32. The following symbols are used in these figures: Definition of code L Integer part of the assigned distance to the contour break point F Fractional part of the assigned distance to the contour break point M Minimum L value MI among all contours Minimum non-zero value of L-M to be updated Difference C RAM array of contour break point data P Pointer to find the contents of C in any order
RAM R P, hence the counter W which addresses C, e.g. C(P(R)) P, therefore the counter Fl which addresses C, e.g. C(P(W)) This contour was updated in this cycle Flag F2 indicates that a new start has occurred in this cycle Flag F3 indicates that new starts are being processed in sequence Flag F4 indicates that this contour has finished in the calculation Flag SV Next A register NS that holds the start value of B. A counter B that holds the number of starts that still need to be processed. A buffer array BP that stores data for interpolation. A pointer that determines the contents of B in any order.
RAM N Determine next empty position in B and P ACC Accumulator output register SS Set size PS Point size LR Line range LC Number of codes with LR valid DR Delta range DC Number of codes with DR valid MUL Multiplier DIV Divider NL Distance codeword to the next new start at 64 points Next, the operation of the decoder 32 will be explained according to the flowchart. Initially, the decoder 32 is in the middle of the calculation loop, and outputs until the next vector update. Assume that we have calculated a variable MI representing the number of strokes. A variable W representing the number of contours existing at this point has also been calculated, and the output buffer B is the one that was last written to address (N-1). There is. This flowchart is essentially self-explanatory except for the processing of R and W. In this example, a 64.times.9 RAM serves as a pointer to the C array (block 64 in FIG. 5). Half of the words point to addresses to be accessed during the current computation cycle. The other half of the words are reordered during this cycle to specify a series of addresses in the next cycle. This change in functionality is represented by initializing R and W as a function of the previously used W. Thus, in this specific example, 30
only the contours of the character can be activated, but this may be insufficient for foreign character sets. The limitation of 30 results from both the assignment of address 0/32 to data predicting the next start of a contour and the requirement to always process the same number of contours. In other embodiments, these limitations are easily relaxed. FIG. 7 is dictated by the number of output strokes to update toward zero. This is a chart to test the fresh start required during this cycle. If it does, flag F2 is set and variable KI is reduced from 1.0 to an additional fraction between the output stroke and the start of the contour in this data reference. The exemplary apparatus causes all starts and updates to occur between output strokes by offsetting the first start to occur by a fraction of 127/128. Given an integer set size, allocating any integer stroke by (set size/64) and adding this offset yields a non-zero fraction. An alternative device that can accept half-point increments would have to change this offset to 255/256 to maintain the same non-zero fraction. Keeping the fraction non-zero ensures that there are no new contours until the output stroke following the update cycle. FIG. 8 is a chart that tests existing contours one at a time to see which contours require updating at this point. If one requests an update, the word in the C array is flagged and
The location of the output B-array (block 72 in FIG. 5) is assigned to it. The address of this location is
Stored in C array for later processing. The interlocking mechanism is implied in FIG. For large output sizes,
Vector updates proceed faster in machine time than real-time stroke generation, filling buffers with vectors waiting to be used. Therefore, tests are performed to ensure that the BN is available for use, and if not, the update mechanism is halted until a location is obtained. The calculation of KI continues to find the minimum distance to the update event. Once all existing contours have been tested, the cycle proceeds to the next figure. FIG. 9 shows the storage of the smallest fraction, which is the variable K, and the re-initialization of the variable for the next pass through the contour. As before, an initial check is made as to the distance to the next start. When this is complete, flag F3 is set and the first start value is read along with the number of contour starts. Consolidating to this point, the contours that require the next output vector update are flagged and
Each is assigned an address in a vector buffer. The control logic identified the order in which the data was encoded to the 64 point master.
If a new start occurs as part of the output vector, flag F2 was set. Additionally, if a new start is required together with updating the first vector, flag F3 is set;
Start value/and start number data were announced. Decoder 32 now sequentially checks the fractional values, extracts data from the 64 point master code, and calculates vector updates until the entire contour has been extended past at least one output stroke. FIG. 10 shows the systematic updating of the contour. The words of the C array are checked to see if L is zero. If non-zero, a variable MI is computed to represent the minimum distance in the output stroke until the next update in MI after a pass through the entire contour. This specific example performs this calculation in parallel with many other calculations. In other serial embodiments, this step is performed in the X=0 branch as part of FIG. If L is 0, F is compared to K. If F is less than K, this contour is ignored. This condition only occurs when a contour is finished in the current cycle, but this contour is not deleted from the pointer RAM. If F is greater than K, the variable KI is updated to find the smallest remaining fraction. Finally, when F equals K, this is the time to update this contour. The first step is to determine whether this fraction requires a fresh start.
Check 3. If not needed, run the calculation subroutine (described below in conjunction with FIG. 13) on this contour and proceed to the next contour. F3 is set and a comparison is made between the contour value V and the new start SV. If the contour is above the new start, a comparison subroutine is executed and control passes to the next contour. However, if the contour is below the new start, control passes to the insert subroutine (described shortly). This subroutine starts all new contours where V is greater than SV, and after the subroutine a calculation subroutine is executed for the current contour and control passes to the next contour. Once the entire contour has been updated for this fraction, NC is no longer greater than 0. The first check after this is flag F
This is about 3. When F3 is set, this indicates that there are more contours left to start. This valid condition occurs when the contour starts below all existing contours. In this case, start all remaining new contours in the insert subroutine. Following this check, KI is compared to 1.0. Equal means not equal to 0 for all existing contours including new start. If not, it means that some L value is still 0, and this forms a loop back to FIG. Otherwise, the cleanup routine begins. FIG. 11 represents the cleanup routine. Following the initialization step, the contours are checked one at a time to see if F1 is set. A set of F1 indicates that an update cycle has been performed on this contour.
If F1 is not set, the next contour is checked. If F1 is set, the first action is
This is to rearrange the vector buffer B. C
Each word of the array contains a field specifying the address N assigned to this contour. However, due to the fresh start, the words may not be in the proper order for interpolation. Since the contours in the C array are in the proper order, the pruning is reduced to store the "N" fields in the order in which they appear. Returning to FIG. 6, the variable NI has been set to the first of the "N" values. This serves as an index for storing pointers that are now rearranged into the BP pointer array. Flag F1 is now cleared. Flag F4 is then processed. This is a flag that is set during the calculation subroutine when the contour is finished and cleared when the contour is extended. Subtracting F from W results in a conditional decrement of W, which causes the next pass in the loop to write a pointer to the next contour onto the pointer to this contour, and all subsequent processing to the C array. effectively remove this word. The loop continues as the entire contour has been tested and then the value of W is checked. If it were still 1 or 32, then every increase in W in the loop was matched by a corresponding decrease. In other words, the entire contour is finished and the program stops. Otherwise, the loop returns to the restart of FIG. 6, W counts the number of contours under operation, and plugs the smallest existing value of L in the set. This is the assumed starting condition. The remainder of the discussion moves from the stop condition to the program loop. FIG. 12 shows the start routine. Initially, the device is in a state where the CRT stroke generator is producing a blank stroke and the termination program is waiting. This condition is also forced at the start of each character by generating a short main pulse and start pulse from the character selector 34. The character code from selector 34 is
Drive a lookup table that provides the address in memory of the first codeword byte for the selected character. This address is loaded into a memory address counter and used to read the left position of the character measured as a stroke at the first word-64 point. This is multiplied by set size/64, truncated to the desired number of blank strokes at the selected size, and then passed through a line generator to produce the white line. The width is then available for reading. The accumulator register is set to correspond to line 0, fraction 127/128. This is stored as a distance in the C array before the first start. The variable KI is set to 127/128 to indicate that the smallest fraction has this value,
Then, the 0 address of the pointer is set to point to 0. Flag F2 is set to indicate that a new start is required and other variables are initialized as shown. The routine then enters FIG. 9 to complete the initialization, moves to FIG. 10 for contour insertion, and the program proceeds. The flowchart directs two subroutines. One is for vector calculation and the other is for new start insertion.
Figures 13 and 14 are flowcharts of calculation routines using the symbols defined above. Note that in the following steps, multiplication by a set size or point size may be accompanied by a simultaneous division by 64 to complete the allocation operation simply by reinterpreting the magnitude of each bit. . The first step is to see if a valid line range exists. If not, the next one is read and checked again for validity. An invalid code at this point means the contour is finished and requires setting a flag on the interpolator before exiting the subroutine. After setting the valid line range, the valid code count is gradually decremented and a similar loop is performed to set the valid delta range. The remaining line and delta bits can now be read and combined with the range bits to produce the entire line and delta pair. The next step is to allocate the lines to the set size, add K, and store the result at the appropriate address in the C array. This L value is checked to see if the allocated vector length extends beyond at least one output stroke.
If not, the accumulator adds V and delta to reach a 64 point value at the end of the vector and stores it. At this point a check is made to see if the vector has gone completely horizontal. A truly vertical edge would have a delta limited to the O-line. If a vertical edge is indicated, the flowchart immediately loops back to proceed to another calculation cycle, otherwise KI is updated and the subroutine ends. Assuming the vector exceeds at least one output stroke, flow moves to Figure 14, updates the variable MI, transfers (line) x (set size) to the divider, and (delta) x (points). size), transfers it to the divider, and starts the divider to produce a change per unit stroke at the indicated set and point size. During this time, the multiplier calculates VX (point size) to obtain the assigned endpoint of the previous vector, while the accumulator adds V and delta and stores the resulting value. The accumulator then crosses the reference value to the assigned end of the previous vector and obtains an unsigned number for the interpolation process (the value is coded as a distance from the reference line so that the assignment does not move the reference line). ). The multiplier now allocates the change per stroke in distance from the coded break point to the next actual output stroke at 64 points, or (I-K). This piecemeal stroke correction value is then added to the assigned endpoints of the previous vector to arrive at the first valid point on this line segment. The number of points of line segment L, first point (ACC), slope (DIV), contour address (P(W)) and cleared flag F4 are now B(C(P
(W))) is stored at the buffer address assigned to this contour, designated symbolically as (W))). The variable P(W) is determined by the interpolator 40 and the decoder 32.
is used to be able to use a memory and pointer system similar to the memory and pointer system of . This completes the calculation subroutine. The insert subroutine is shown in FIG. The first step is to find an unused address in the C array (the exemplary device inserted 32×1 auxiliary RAM for this purpose) and store that address in a pointer. The word is then set and the address of the output vector buffer is assigned to the word. The number of remaining starts is reduced and a calculation subroutine is executed to generate data for this contour. The pointer write counter is then decremented while a new existing contour is moved within the pointer.
If NS is not 0, the new start remains and the next new start value is read. Once all existing contours have been processed, this is automatically inserted as new data at the bottom of the character, and in other cases whether the next new start still exists on top of the existing contour or not. A test will be carried out to see if.
If a new start exists, the insert cycle proceeds again, otherwise the routine ends. When all starts are processed, NS is 0
and this clears flags F2 and F3. The distance to the new start is then read, allocated, and stored, updating MI and KI appropriately before exiting the subroutine. Next, vector-video conversion will be explained. Conversion of vector data to video is accomplished with a vector-to-stroke converter 40 and a line generator 42. Converter 40 receives vector data from buffer 72. This vector data is in the form of opening values and changes per stroke assigned with the correct output size. Converter 40 converts the vector data to stroke-by-stroke data by applying properly assigned changes to each stored contour in turn and forwarding the resulting stroke data to line generator 42 . converter 40
loads the stroke data of one line at a time into the line generator 42, if buffer space is available, and when a word is needed, from the vector buffer - 1 if necessary. Wait for a word to be written - take a word from the vector buffer. In this specific example, the line cierator 42
Since it functions in real time, it is linked to the analog CRT lamp signal generation process of the CRT phototypesetting device. Line generator 42 holds the CRT lamp signal OFF until the line is fully loaded from converter 40. The ramp signal is started along with a counter representing the beam position relative to the reference line depending on the state. Counter frequency is ultimately a function of scan stroke. The state of the counter is compared to the contour points to determine when the CRT beam should be turned on and off to reconstruct the stroke. Meanwhile, vector-to-stroke converter 40 loads other lines into other buffers. The last contour of the stroke is flagged, so when the contour reaches this value, the blanking cycle is immediately restarted, the CRT's lamp signal is reset, the horizontal position is advanced, and the phototypesetting device's character width is adjusted. A counter is calculated. Next, vector-video conversion will be explained in detail. The vector-stroke converter 40 has a first
The detailed block diagram is shown in Figure 6, and the RAM9
2. Addition circuit 94 and stroke buffer 96
including. The remaining blocks are a digital stroke controller 130, a multiplexer 13
2, 134 and 135, registers 136, 13
8, 140 and 142, decrement circuit 144, comparator 148, RAM 150, and read;
A controller 90 is formed that includes write counters 152 and 154, respectively. The converter 40 is
Decoder 3 under the control of D-S controller 130
Each contour is reconstructed stroke by stroke with the decoded and ordered vector data received from 2. Therefore, the D-S controller
It operates according to the flowchart shown in Figure A-17E. At the start of each character, the controller's state counter is loaded to state 14 (see Figure 17A). In this state, the converter 40
It waits until the blank stroke counter (of line generator 42) is full indicating completion of the left position stroke, at which time a data request (REQ DTA FIG. 16) is sent to decoder 32. In response to this signal, new data is sent to the MUX
134 to pointer RAM 132, and
Loaded into data RAM 92 via MUX 132. The data consists of (1) a pointer word (5 bits) that is the address at which the data is stored in data RAM 92, (2) the starting value for the contour (16 bits), and (3) a delta (or change) per line (20 bits). ), (4) The number of lines up to the break point (8 bits).
After the last word is stored in RAMs 92 and 150, the state counter increments to state I5. At this time, the "keep-taking" flag is checked. Once this flag is set, a request for the next data is sent to decoder 32. This process is repeated until the "keeptaking" flag is no longer set. The status counter is then loaded into IO and the conversion process is ready to begin (see Figure 17B). In state IO, controller 130 waits for line generator 42 to be ready. In this state, the state counter advances to state I1. At this point, pointer RAM 150 is pointing to the first point in the line.
Address the contour of. The current value, delta per line, and line number data are stored in holding register 1.
38 and 136. Current value of 11
The MSB is also sent to line generator 42 for further processing (as described below). The current value and delta/line data are added together in circuit 94 to obtain the next value or new current value of the contour. The line value from register 136 is
44. The new current value and new line value are then stored in data RAM 92 and replace the old values. The converter state counter continues to jump between states I0 and I1 until the line value for one of the contours equals zero. When equal to 0, a request for contour update is sent to decoder 32 and the state counter of converter 40 is set to I2 (see Figure 17D). In state I2, converter 40 is ready to accept data from decoder 32 and store it in the appropriate RAM. After all data is stored, the state counter advances to I3 (17th
(See Figure D and Figure 17E). In state I3, converter 40 checks flag bits ``KILL'', ``KEEPTAKING'', and ``NEW INSERT''. The "kill" flag indicates to converter 4 that the contour being processed has been completed.
Notify 0. Write address counter 154 for pointer RAM 150 is not rewritten for the next line. Once the "keep-taking" flag is set, converter 40 continues to request data from decoder 32 by returning to the state and detecting that the old contour counter still requires updating. This process continues until the "keep-taking flag" is reset. The "new insert" flag signals that the received data is for a new contour. In this case, the pointer
Write address counter 1 for RAM150
Only 54 are incremented. After all flags are checked in state I3 and the appropriate functions are completed, the state counter is returned to state I0 to continue processing the contour. Converter 40 determines when all points of the vertical stroke have been processed. pointer ram
When the count state of the read address counter 152 for 150 equals the count state of the write counter for the previous stroke, that data line is complete. This flag (R=Wold) is also sent to the line generator 42. Each vertical stroke is treated in the same manner, but
At that time, the series of states is determined by character codes. A character is complete when the write address counter 154 for the previous line reaches zero. The line generator 42 is shown in detail in FIG. 18, and includes an LG controller 168, a multiplexer (MUX) 170, a point size start counter 174, and a stroke counter 17.
8, blanking counter 180, blanking
ROM184, comparator 186, register 1
90, a video flip-flop 192, a MUX flip-flop 196 and a gate 198. In this specific example, the output signals SD, RD,
ACC and VIDEO are adapted to be supplied with conventional CRT phototypesetting machine displays, such as displays for video setters manufactured by Computer Graphics Corporation. In other embodiments, other configurations may be used. Line generator 42 converts the series of stroke data words provided by comparator 40 into LG
It is converted into video data under the control of controller 168. However, this controller
It operates according to the flow chart of A-19C. In this form, the LG controller 168
contains a state counter that is initially reset to state PO (see Figure 19A). In this state,
The line generator is in a wait mode waiting for a predetermined number of blank strokes to be loaded.
Here, the blank stroke represents the white left-hand edge position of each character. After loading, the state counter jumps to state P4 and starts a blank stroke. The blank stroke counter 178 increments by one each time an SD pulse is present (see FIG. 19A). When blank stroke counter 178 is full, a data request is sent to converter 40 and the state counter is loaded to state P7. In state 7, line generator 42 waits for the stroke buffer RAM of converter 40 to be loaded with stroke data for one stroke. When a stroke is ready to be printed on the output CRT, the stroke counter 178
is preset (by counter 174) to a starting value determined by the required reference line for the point size to be printed, and the stroke buffer RAM 96 of converter 40 is reset so that the initial value of the stroke data points appear in its output. Stroke counter 178
The outputs of RAM 99 and RAM 99 are then compared by comparator 186. When a match occurs, video flip-flop 192 is switched and RAM 96
is incremented to provide the next data point. Flip-flop 92 provides a video signal to the CRT. The above process is repeated for each point (black-to-white or white-to-black transition point) of the vertical stroke. The last point of the vertical stroke is
This can be determined from the Wold bit in the white RAM section of RAM96.
As soon as a match occurs, blanking begins (No. 19)
(See Figures B and 19C). Once blanking is complete, the next line of stroke data is processed. Upon completion of a character, the state counter is reset to PO and prints blank strokes in a waiting mode until the next character is ready to begin. The timing information used to generate the SD, RD and ACC signals is stored in blanking ROM. During blanking, the ROM and stroke counter outputs are compared at comparator 186. Each time a match occurs, the ROM address is incremented and one or more pulses are updated. This process is repeated until blanking is complete. This allows arbitrary pulse widths and time relationships as required by the CRT phototypesetting machine. The invention may be embodied in other specific forms without departing from the scope of the claims. Therefore, this specific example should be considered as an illustration in all respects, and various changes may be made within the scope of the claims.

【図面の簡単な説明】[Brief explanation of the drawing]

第1図は本発明の例示の具体例のブロツク図、
第2図はサンプル文字および輪郭の定義を示す線
図、第3−1図は第1図のエンコーダのブロツク
図、第3−2図は第1図の装置によりコード化さ
れる例示の符号を示す線図、第4図は第1図の装
置に対するコードワード形式を示す線図、第5図
は第1図の装置のデコーダ部の詳細ブロツク図、
第6図〜第15図は第5図のデコーダ部の動作を
表わすフローチヤート、第16図は第1図の装置
のベクトル−ストロークコンバータ部の詳細ブロ
ツク図、第17A図〜第17E図は第16図のベ
クトル−ストロークコンバータの動作を表わすフ
ローチヤート、第18図は第1図の装置のストロ
ーク−ビデオコンバータの詳細ブロツク図、第1
9A図〜第19C図は第18図のストローク−ビ
デオコンバータの動作を表わすフローチヤートを
示す。 12:コード化部、14:デコーダ部、16:
入力部、20:スキヤナ、22:デイジタル化
器、24:エンコーダ、26:メモリ、30:局
部メモリ、32:デコーダ、34:文字セレク
タ、36:セツトサイズ、ポイントサイズセレク
タ、40:ベクトル−ストロークコンバータ、4
2:デイジタル−ビデオコンバータ。
FIG. 1 is a block diagram of an exemplary embodiment of the invention;
2 is a diagram showing sample character and outline definitions; FIG. 3-1 is a block diagram of the encoder of FIG. 1; and FIG. 3-2 is an exemplary code encoded by the apparatus of FIG. 4 is a diagram showing the code word format for the device of FIG. 1; FIG. 5 is a detailed block diagram of the decoder section of the device of FIG. 1;
6 to 15 are flowcharts showing the operation of the decoder section in FIG. 5, FIG. 16 is a detailed block diagram of the vector-stroke converter section of the device in FIG. 1, and FIGS. 17A to 17E are 16 is a flowchart showing the operation of the vector-to-stroke converter; FIG. 18 is a detailed block diagram of the stroke-to-video converter of the device in FIG. 1;
9A to 19C show a flowchart representing the operation of the stroke-to-video converter of FIG. 18. 12: Encoding section, 14: Decoder section, 16:
Input section, 20: Scanner, 22: Digitizer, 24: Encoder, 26: Memory, 30: Local memory, 32: Decoder, 34: Character selector, 36: Set size, point size selector, 40: Vector-stroke converter ,4
2: Digital-video converter.

Claims (1)

【特許請求の範囲】 1 順番に配列された一連のコードワード(30
に記憶される)から一連のストローク信号を発生
する装置であつて、該一連のストローク信号が、
バツクグラウンド上の対象を含む像の対応する一
連の実質的に平行な細長いストリツプの検出可能
な特性を表わし、前記コードワードが前記対象の
関連する輪郭要素に沿う輪郭点を接続する線分を
表わし、該輪郭要素が前記ストリツプに垂直な方
向において単一の値を有し、そして前記コードワ
ードが、前記線分の始点、前記線分の始点と終点
間の位置的変化、および同じ範囲に対応する位置
的変化を有する同じ輪郭要素と関連する遂次の線
分の数を表わすデータを含む装置において、 前記像の各ストリツプを現在ストリツプとして
逐次識別する手段32と、 各現在ストリツプに対して動作し、前記現在ス
トリツプに重なる前記各線分に対して前記コード
ワードから、(a)前記現在ストリツプと次のストリ
ツプとの間で生ずる前記ストリツプの方向におけ
る前記線分の位置の変化に対応する比△Y/△X
と、(b)前記現在ストリツプにおける前記線分の始
点SVと、(c)各ストリツプに対する前記位置の変
化が変わらない後続のストリツプ(△X)の数と
を表わすベクトルデータを発生し記憶するベクト
ル発生手段32と、 各現在ストリツプに対して動作し、前記の記憶
されたベクトルデータを前記ストローク信号の1
つに変換するコンバータ手段40,42とを含む
一連のコードワードから一連のストローク信号を
発生する装置。 2 特許請求の範囲第1項に記載の装置におい
て、前記コンバータ手段40,42が、前記ベク
トルデータに応答して、前記現在ストリツプにお
ける各線分の位置を識別しかつ前記ストローク信
号を2進形式で発生する手段を含み、前記ストロ
ーク信号が時間関数であり、前記位置に対応する
時点に2進レベル変換点を有する、一連のコード
ワードから一連のストローク信号を発生する装
置。 3 特許請求の範囲第1項に記載の装置におい
て、前記ベクトル発生手段32が、 前記現在ストリツプに対して動作し、該現在ス
トリツプに重なる前記各線分に対して前記コード
ワードから、(a)前記の関連するコードワードにし
たがう前記線分に対する終点と、(b)前記現在スト
リツプに垂直な方向における現在ストリツプから
の前記線分の長さに対応しかつ第1の割付けフア
クタにより割付けされ、そして整数および端数値
(K)に対応する前記線分の割付けされた長さ
と、(c)前記線分の始点と終点間において生ずる前
記現在ストリツプに垂直な方向における位置的変
化の範囲、および同じ範囲において対応する位置
的変化を有する前記の関連する輪郭要素の後続の
逐次の線分の数と、(d)前記線分の前記始点および
終点間で生ずる前記現在ストリツプの方向におけ
る位置的変化の範囲、および同じ範囲において対
応する位置的変化を有する前記の関連する輪郭要
素の後続の逐次の線分の数とを表わす線分データ
ワードを発生する手段と、 前記の位置的変化が変わらない後続のストリツ
プをもたない線分データワードを識別する手段
と、 前記の識別された線分データワードを割付けさ
れた長さの増大する順で配列し、かつ同じ割付け
された長さを有する前記の識別された線分データ
ワードを、前記現在ストリツプに沿う位置の増大
する順で配列する手段と、 各ワードに対する前記ベクトルデータが、(a)△
Yと前記第2割付けフアクタの積に等しくなるよ
うに変更された△Y値、および△Xと前記第1割
付けフアクタの積に等しくなるように変更された
△X値の変更された比△Y/△Xと、(b)SVと第
2割付けフアクタの積プラス(1−K)および前
記の変更されたフアクタ△Y/△Xの積に等しい
変更された始点と、(c)Kプラス△Xおよび前記第
1割付けフアクタの積に等しい、各ストリツプに
対する位置的変化が変わらない後続のストリツプ
の変更された数とを表わすように、前記ベクトル
データを前記の識別された線分データワードの順
で発生し更新する手段と、 前記ベクトルデータを前記の識別された線分デ
ータワードの順で記憶する記憶手段と を含む一連のコードワードから一連のストローク
信号を発生する装置。 4 特許請求の範囲第3項記載の装置において、 前記変換手段40,42が、前記ベクトルデー
タに応答して、前記現在ストリツプにおける各線
分の位置を識別しかつ前記ストローク信号を2進
形で発生する手段を含み、前記ストローク信号が
時間関数であり、前記位置に対応する時点に2進
レベル変換点を有する、一連のコードワードから
一連のストローク信号を発生する装置。 5 特許請求の範囲第1項記載の装置において、
前記の順番に配列された一連のコードワードを発
生する手段とを備え、該手段が、 複数の実質的に平行な走査線に沿つて前記対象
およびバツクグランドを走査し、前記走査線に沿
う前記対象上の輪郭点を識別する手段20,22
と、 前記の識別された輪郭点の選択されたものを群
にまとめ、各群の輪郭点が、前記走査線に垂直な
方向に単調的に延びる前記対象の輪郭要素を表わ
すように群別する手段; 各群に対して、関連する輪郭要素の部分直線表
示を表わし、その各直線部分が前記走査線の方向
における前記部分の変化(△Y)および前記部分
が延びる走査線の数(△X)を表わすベクトルデ
ータを発生し記憶する手段;および (a)各群に対するスタート位置と、(b)前記直線部
分の各△X値の範囲および△Xが有効である前記
直線部分の数と、(c)前記直線部分の各△Y値の範
囲および△Yが有効である前記直線部分の数と、
(d)前記直線部分に対する△Xおよび△Y値とを表
わすワードとを含み、コードワードの順序が前記
△Xおよび△Y値に関係づけられた前記の一連の
コードワードを形成するため各群に対するベクト
ルデータをコード化し記憶する手段; を含むコード化および記憶手段(24および2
6)と を含む一連のコードワードから一連のストローク
信号を発生する装置。 6 特許請求の範囲第1項に記載の装置におい
て、前記の順番に配列された一連のコードワード
を発生する手段が、 選択された像を走査し、文字を表わす文字デー
タを発生する手段20,22と、 前記の一連のコードワードを発生するための予
定された一連のステツプにしたがつて前記文字デ
ータをコード化する手段24と を含み、前記ストローク信号発生装置が前記の一
連のストローク信号を発生するに要求されるコー
ドワードの順序を設定するように前記の予定され
た一連のステツプが前記の一連のデータワードの
順序に関係づけられた一連のコードワードから一
連のストローク信号を発生する装置。 7 特許請求の範囲第6項に記載の装置におい
て、前記ストローク信号発生装置が前記像の選択
的割付をなすようなストローク信号を発生するよ
うに前記の予定されたステツプが設定された、一
連のコードワードからストローク信号を発生する
装置。 8 特許請求の範囲第7項記載の装置において、
前記選択的割付けが2直交方向において独立的で
ある、一連のコードワードから一連のストローク
信号を発生する装置。
[Claims] 1. A series of code words (30
an apparatus for generating a series of stroke signals (stored in a memory), the series of stroke signals comprising:
representing a detectable characteristic of a corresponding series of substantially parallel elongated strips of an image containing an object on a background, said codeword representing line segments connecting contour points along relevant contour elements of said object; , the contour element has a single value in a direction perpendicular to the strip, and the codeword corresponds to the starting point of the line segment, a positional change between the starting point and the ending point of the line segment, and the same range. means 32 for successively identifying each strip of said image as a current strip; and operating on each current strip. and for each line segment overlapping the current strip, from the codeword: (a) a ratio Δ corresponding to the change in position of the line segment in the direction of the strip that occurs between the current strip and the next strip; Y/△X
(b) the starting point SV of the line segment in the current strip; and (c) the number of subsequent strips (ΔX) for which the change in position remains unchanged for each strip. generating means 32, operating for each current strip, convert said stored vector data into one of said stroke signals;
converter means 40, 42 for converting into a sequence of stroke signals from a sequence of code words. 2. The apparatus of claim 1, wherein said converter means 40, 42 are responsive to said vector data to identify the position of each line segment in said current strip and to convert said stroke signal in binary form. Apparatus for generating a sequence of stroke signals from a sequence of codewords, comprising means for generating, said stroke signal being a function of time and having binary level transition points at times corresponding to said positions. 3. The apparatus of claim 1, wherein said vector generating means 32 operates on said current strip, and for each said line segment overlapping said current strip, from said code word, (a) said (b) corresponds to the length of the line segment from the current strip in a direction perpendicular to the current strip and is allocated by a first allocation factor, and is an integer; and (c) the range of positional change in the direction perpendicular to the current strip that occurs between the start and end points of the line segment, and in the same range. (d) the extent of positional changes in the direction of the current strip occurring between the start and end points of the line segments; and a number of subsequent successive line segments of said associated contour element having a corresponding positional change in the same extent; means for arranging said identified line segment data words in order of increasing allocated length; and means for arranging said identified line segment data words in order of increasing allocated length; means for arranging the vector data words for each word in order of increasing position along said current strip;
A ΔY value modified to be equal to the product of Y and said second allocation factor, and a modified ratio ΔY of the ΔX value modified to be equal to the product of ΔX and said first assignment factor. /ΔX, (b) a modified starting point equal to the product of SV and the second allocation factor plus (1-K) and the modified factor ΔY/ΔX, and (c) K plus Δ The vector data is arranged in the order of the identified line segment data words such that an apparatus for generating a series of stroke signals from a series of code words, comprising: means for generating and updating the vector data in the order of the identified line segment data words; 4. The apparatus of claim 3, wherein said converting means 40, 42 are responsive to said vector data to identify the position of each line segment in said current strip and to generate said stroke signal in binary form. an apparatus for generating a series of stroke signals from a series of code words, said stroke signal being a function of time and having binary level transition points at times corresponding to said positions. 5. In the device according to claim 1,
means for generating said sequentially arranged series of codewords, said means scanning said object and background along a plurality of substantially parallel scan lines; Means 20, 22 for identifying contour points on the object
and grouping a selection of said identified contour points into groups such that each group of contour points represents a contour element of said object extending monotonically in a direction perpendicular to said scan line. means; for each group represents a partial linear representation of the associated contour element, each linear portion of which represents the change of said portion in the direction of said scan line (ΔY) and the number of scan lines over which said portion extends (ΔX ); and (a) the starting position for each group; and (b) the range of each ΔX value of said straight line segment and the number of said straight line segments for which ΔX is valid; (c) the range of each ΔY value of the straight line part and the number of the straight line parts for which ΔY is valid;
(d) words representing ΔX and ΔY values for said straight line portion, each group to form said sequence of codewords, the order of the codewords being related to said ΔX and ΔY values; means for encoding and storing vector data for; encoding and storing means (24 and 2);
6) A device for generating a series of stroke signals from a series of code words. 6. An apparatus according to claim 1, wherein the means for generating the sequence of codewords arranged in sequence comprises means 20 for scanning the selected image and generating character data representing the characters; 22; and means 24 for encoding said character data according to a predetermined sequence of steps for generating said sequence of code words, said stroke signal generating device generating said sequence of stroke signals. Apparatus for generating a series of stroke signals from a series of code words in which said predetermined series of steps are related to an order of said series of data words so as to establish an order of code words required to be generated. . 7. The apparatus of claim 6, wherein said scheduled steps are arranged such that said stroke signal generating device generates a stroke signal for selectively positioning said image. A device that generates a stroke signal from a code word. 8. In the device according to claim 7,
Apparatus for generating a sequence of stroke signals from a sequence of codewords, wherein said selective allocation is independent in two orthogonal directions.
JP15696779A 1978-12-05 1979-12-05 Method and device for photocomposition Granted JPS5579154A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US96663878A 1978-12-05 1978-12-05

Publications (2)

Publication Number Publication Date
JPS5579154A JPS5579154A (en) 1980-06-14
JPS6133231B2 true JPS6133231B2 (en) 1986-08-01

Family

ID=25511682

Family Applications (1)

Application Number Title Priority Date Filing Date
JP15696779A Granted JPS5579154A (en) 1978-12-05 1979-12-05 Method and device for photocomposition

Country Status (1)

Country Link
JP (1) JPS5579154A (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5739963A (en) * 1980-08-22 1982-03-05 Photo Composing Mach Mfg Co Ltd Memorizing method for character, figure and the like and photocomposing device
JPS58134746A (en) * 1982-02-04 1983-08-11 Photo Composing Mach Mfg Co Ltd Compression system of letter and image data
JPS58134745A (en) * 1982-02-04 1983-08-11 Photo Composing Mach Mfg Co Ltd Compression system of letter and image data

Also Published As

Publication number Publication date
JPS5579154A (en) 1980-06-14

Similar Documents

Publication Publication Date Title
US4338673A (en) Phototypesetting system and method
US4298945A (en) Character generating method and apparatus
EP0115584B1 (en) Image producing apparatus and methods of processing image-representing signals for use by such apparatus
US4199815A (en) Typesetter character generating apparatus
US4345245A (en) Method and apparatus for arranging segmented character groups in a digital typesetter
US4331955A (en) Method and apparatus for smoothing outlines
US4254468A (en) Typesetter character generating apparatus
US4581710A (en) Method of editing dot pattern data for character and/or image representations
US4785391A (en) Automated bitmap character generation from outlines
US4029947A (en) Character generating method and system
EP0030635A2 (en) Method and apparatus for generating complex characters
US5715473A (en) Method and apparatus to vary control points of an outline font to provide a set of variations for the outline font
US5028848A (en) Tile vector to raster conversion method
EP0534622A2 (en) Intelligent font rendering co-processor
GB2033307A (en) Digital typesetter
US6011566A (en) System and method to display raster images with negligible delay time and reduced memory requirements
USRE30679E (en) Character generating method and system
US4511893A (en) Method of storing images in the form of contours and photo-typesetting apparatus thereof
EP0095536B1 (en) The representation of character images in a compact form for computer storage
US5526474A (en) Image drawing with improved process for area ratio of pixel
US5450096A (en) Character generating method and apparatus
JPS6133231B2 (en)
JP2828592B2 (en) Kerning treatment method
JPH0562348B2 (en)
JPS63235986A (en) Character output device