JPS60154777A - イメージのランレングスデータからビットマップデータへの変換方法 - Google Patents
イメージのランレングスデータからビットマップデータへの変換方法Info
- Publication number
- JPS60154777A JPS60154777A JP59192756A JP19275684A JPS60154777A JP S60154777 A JPS60154777 A JP S60154777A JP 59192756 A JP59192756 A JP 59192756A JP 19275684 A JP19275684 A JP 19275684A JP S60154777 A JPS60154777 A JP S60154777A
- Authority
- JP
- Japan
- Prior art keywords
- run
- image
- row
- bits
- black
- 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.)
- Granted
Links
- 238000000034 method Methods 0.000 title claims description 35
- 238000006243 chemical reaction Methods 0.000 claims description 12
- 238000012545 processing Methods 0.000 description 15
- 238000012360 testing method Methods 0.000 description 7
- 238000007689 inspection Methods 0.000 description 4
- 238000006073 displacement reaction Methods 0.000 description 3
- 238000007796 conventional method Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 239000013598 vector Substances 0.000 description 2
- 241000283725 Bos Species 0.000 description 1
- 229920000297 Rayon Polymers 0.000 description 1
- 238000007630 basic procedure Methods 0.000 description 1
- 239000003795 chemical substances by application Substances 0.000 description 1
- 230000001186 cumulative effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 239000002964 rayon Substances 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M7/00—Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
- H03M7/30—Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
- H03M7/46—Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N1/00—Scanning, transmission or reproduction of documents or the like, e.g. facsimile transmission; Details thereof
- H04N1/41—Bandwidth or redundancy reduction
- H04N1/411—Bandwidth or redundancy reduction for the transmission or storage or reproduction of two-tone pictures, e.g. black and white pictures
- H04N1/413—Systems or arrangements allowing the picture to be reproduced without loss or modification of picture-information
- H04N1/419—Systems or arrangements allowing the picture to be reproduced without loss or modification of picture-information in which encoding of the length of a succession of picture-elements of the same value along a scanning line is the only encoding step
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Theoretical Computer Science (AREA)
- Image Processing (AREA)
Abstract
(57)【要約】本公報は電子出願前の出願データであるた
め要約のデータは記録されません。
め要約のデータは記録されません。
Description
【発明の詳細な説明】
〔産業上の利用分野〕
本発明はディジタル・イメージ処理方法、更に詳細に説
明すれば、イメージをラン終了すなわちラン長表示から
ビット・マツプに変換する方法に関する。
明すれば、イメージをラン終了すなわちラン長表示から
ビット・マツプに変換する方法に関する。
イメージを扱う方法はこれまでにも多数あるが、本発明
の方法についての教示または示唆は見当らない。
の方法についての教示または示唆は見当らない。
本発明の目的は、イメージを迅速にラン表示からビット
・マツプに変換することである。
・マツプに変換することである。
本発明が解決しようとする問題点は、次のステップを含
む方法によって解決される: イメージの複数のラン表示をバッファに記憶し;データ
のロー(横列、row)を初期設定し;前記ローで、ラ
ン表示の各々を画素表示に変換し; 前記ローの前記画素表示をBr憶し; 前記イメージをビット・マツプ表示に変換し終るまで、
残りのう/表示について、初期設定、変換および記憶の
ステップを反復実行する。
む方法によって解決される: イメージの複数のラン表示をバッファに記憶し;データ
のロー(横列、row)を初期設定し;前記ローで、ラ
ン表示の各々を画素表示に変換し; 前記ローの前記画素表示をBr憶し; 前記イメージをビット・マツプ表示に変換し終るまで、
残りのう/表示について、初期設定、変換および記憶の
ステップを反復実行する。
本発明の方法により、イメージは:
イメージの複数のラン表示をバッファに記憶し、データ
のローを初期設定し、索引表により、前記ローのラン表
示の各々を画素表示に変換し、前記ローの前記画素表示
を記憶し、前記イメージのビット・マツプ表示への変換
が終了するまで残シのラン表示について初期設定、変換
および記憶のステップを反復実行することにより、ラン
表示からビット・マツプに変換される。
のローを初期設定し、索引表により、前記ローのラン表
示の各々を画素表示に変換し、前記ローの前記画素表示
を記憶し、前記イメージのビット・マツプ表示への変換
が終了するまで残シのラン表示について初期設定、変換
および記憶のステップを反復実行することにより、ラン
表示からビット・マツプに変換される。
本発明による方法は、ラン終了すなわちラン長のベクト
ルの連続として表示された2進イメージ(イメージ・デ
ータのローの各々を1ベクトルとする)を迅速にビット
・イメージに変換する。゛ラン終了”(d、イメージの
左端からランの最後の画素(ベル)までの、ビット(す
なわち画素)の変位で表わす。′°ブラフ示”は、以下
の説明で、゛ラン長”およびパラノ終了”の意味を含む
ものとして使用する。
ルの連続として表示された2進イメージ(イメージ・デ
ータのローの各々を1ベクトルとする)を迅速にビット
・イメージに変換する。゛ラン終了”(d、イメージの
左端からランの最後の画素(ベル)までの、ビット(す
なわち画素)の変位で表わす。′°ブラフ示”は、以下
の説明で、゛ラン長”およびパラノ終了”の意味を含む
ものとして使用する。
本発明は下記の方法の組合せを使用し、従来の方法より
もかなり速く動作を実行する:(a) 入力データを適
切に変更し、ランを対で処理することにより、ロー終了
に達したかどうかを調べるための検査回数を、ランご表
の1回の検査から、ランの対ごとの1回の検査に減らす
。
もかなり速く動作を実行する:(a) 入力データを適
切に変更し、ランを対で処理することにより、ロー終了
に達したかどうかを調べるための検査回数を、ランご表
の1回の検査から、ランの対ごとの1回の検査に減らす
。
(b) ラン終了(ラン長)バッノァが出力イメージの
希望するローの長さよりも長いローを記述している場合
、適切なカラーのラン終了が正確かつ確実にイメージの
端で生じるように入力データを変更することにより、内
部ループ(後述)内で、ローの最後のランの検査と切詰
めを不要にする。
希望するローの長さよりも長いローを記述している場合
、適切なカラーのラン終了が正確かつ確実にイメージの
端で生じるように入力データを変更することにより、内
部ループ(後述)内で、ローの最後のランの検査と切詰
めを不要にする。
(c) ラン終了バッファで記述されたローよりも長い
ローの変換を試みないことを保証することにより、内部
ループ内での入力データの終了の検査を不要にする。
ローの変換を試みないことを保証することにより、内部
ループ内での入力データの終了の検査を不要にする。
(di 多くのプロセッサで使用可能な特定の命令を利
用して広い領域に白のバイト(または、長い黒のランに
出会った場合には黒のバイト)を書込むことにより、一
般に、2進イメージに含まれた0(白)の画素のみの広
い領域を利用する。
用して広い領域に白のバイト(または、長い黒のランに
出会った場合には黒のバイト)を書込むことにより、一
般に、2進イメージに含まれた0(白)の画素のみの広
い領域を利用する。
(el 迅速な表索引手順を用いてバイトに黒(°゛1
”)のビットを書込む。
”)のビットを書込む。
本発明による方法は、必要に応じ、符号化された入力イ
メージの一方または両方の端にあるデータを無視し、か
つ、出力イメージの一方または両方の端に黒まだは白の
画素を埋込み、または、出力イメージを書込むべき場所
から画素を取除く(バイト境界にない変換されたイメー
ジをよシ太きいイメージに挿入する)ことができるよう
に構築された汎用のアプリケーションヲ有スる。
メージの一方または両方の端にあるデータを無視し、か
つ、出力イメージの一方または両方の端に黒まだは白の
画素を埋込み、または、出力イメージを書込むべき場所
から画素を取除く(バイト境界にない変換されたイメー
ジをよシ太きいイメージに挿入する)ことができるよう
に構築された汎用のアプリケーションヲ有スる。
この方法は、ラン終了すなわちラン長からイメージを生
成するのに使用できる。下記の説明ではシン終了が供給
されているものと仮定する。ラン長の変換では、処理さ
れたラン長の累計が維持される。
成するのに使用できる。下記の説明ではシン終了が供給
されているものと仮定する。ラン長の変換では、処理さ
れたラン長の累計が維持される。
復元されたイメージを構成するビットは、8ビツトを1
バイトのパックで記憶し、ローの各々はバイト境界で開
始・終了するものと仮定する。ローは記憶装置に順次に
配列される−ことになっている。イメージは、あたかも
右端および(または)左端に、0捷たは1のビット、あ
るいは既に出力イメージに存在しているデータが埋込ま
れているかのように変換できるので、復元されたイメー
ジは、実際にはバイト境界で開始または終了しなくても
よい。また、適切な初期設定により、ローの開始および
(または)終了位置の画素を表わす符号化データをスキ
ップすることもできる。
バイトのパックで記憶し、ローの各々はバイト境界で開
始・終了するものと仮定する。ローは記憶装置に順次に
配列される−ことになっている。イメージは、あたかも
右端および(または)左端に、0捷たは1のビット、あ
るいは既に出力イメージに存在しているデータが埋込ま
れているかのように変換できるので、復元されたイメー
ジは、実際にはバイト境界で開始または終了しなくても
よい。また、適切な初期設定により、ローの開始および
(または)終了位置の画素を表わす符号化データをスキ
ップすることもできる。
第1表には、イメージ・データのラン表示の構成例を示
す。良好な実施例では、ローごとに半ワードの列を含む
ラン終了バッファを使用する。半ワード内の16ピツト
は、正の変位として32に丑での幅を有するイメージを
表わすのに適切である。各々のロー・バッファの最初の
半ワードは、シン終了データのバイト数とカウント(す
なわち、バッファ内の合計データ・バイト数)のだめの
2バイトとの和を表わす。ローの各々は、前記半ワード
、6個のOのラン終了、任意の数の白/黒のラン終了の
対、および最後の黒のラン終了に対する2つの追加コピ
ーで表示される。若し、イメージのローが黒のランで始
まるなら、対になる最初の白のラン終了は0に指定され
なければならない。
す。良好な実施例では、ローごとに半ワードの列を含む
ラン終了バッファを使用する。半ワード内の16ピツト
は、正の変位として32に丑での幅を有するイメージを
表わすのに適切である。各々のロー・バッファの最初の
半ワードは、シン終了データのバイト数とカウント(す
なわち、バッファ内の合計データ・バイト数)のだめの
2バイトとの和を表わす。ローの各々は、前記半ワード
、6個のOのラン終了、任意の数の白/黒のラン終了の
対、および最後の黒のラン終了に対する2つの追加コピ
ーで表示される。若し、イメージのローが黒のランで始
まるなら、対になる最初の白のラン終了は0に指定され
なければならない。
若し、イメージのローが白のランで終了するなら、対に
なる最後の黒のラン終了は、最後の白のラン終了と同じ
である。従って、実際には、最後のラン終了は6つのコ
ピーを生じることがある。例えば、若し、スキップまた
は埋込みが指定されず、かつ、6つのローの各々の出力
の大きさが32個の画素に指定されるなら、第1表のラ
ン表示は、○ V へ の 工(イ) 慇 い 0 0 0 0 0 P OO豐 第2表のビット・イメージに相当する。
なる最後の黒のラン終了は、最後の白のラン終了と同じ
である。従って、実際には、最後のラン終了は6つのコ
ピーを生じることがある。例えば、若し、スキップまた
は埋込みが指定されず、かつ、6つのローの各々の出力
の大きさが32個の画素に指定されるなら、第1表のラ
ン表示は、○ V へ の 工(イ) 慇 い 0 0 0 0 0 P OO豐 第2表のビット・イメージに相当する。
ラン終了バッファは、連続するイメージ・データのロー
を、ローの間に空白を介在させずに、順次に記憶する。
を、ローの間に空白を介在させずに、順次に記憶する。
イメージ・データのローをラン終了表示に変換する手順
は次のステップを含む。
は次のステップを含む。
(a) ラン終了バッファを変更することにより、ラン
終了バッファは、右端に埋込み画素を含み、かつ変換さ
れることになっているデータの終了に黒のラン終了を有
するようにローを記述する。ラン終了バッファが、変換
されるローよりも長いローを記述する場合には、入力さ
れたローが切詰められる。必要な画素数を変換するのに
十分なデータがラン終了バッファにない場合には、変換
する画素数を使用できる画素数に減らし、不足分は右端
のパッドによって補う。
終了バッファは、右端に埋込み画素を含み、かつ変換さ
れることになっているデータの終了に黒のラン終了を有
するようにローを記述する。ラン終了バッファが、変換
されるローよりも長いローを記述する場合には、入力さ
れたローが切詰められる。必要な画素数を変換するのに
十分なデータがラン終了バッファにない場合には、変換
する画素数を使用できる画素数に減らし、不足分は右端
のパッドによって補う。
(bl 出力ローを描く領域を消去する。
(c) 復元したイメージ・ローの端を越えた最初のビ
ットを含むバイトの値は、復元したイメージ・データと
ともに書込まれるビットを消去するようにマスクしてか
ら保管する。
ットを含むバイトの値は、復元したイメージ・データと
ともに書込まれるビットを消去するようにマスクしてか
ら保管する。
(d) 左端は、必要ならば、黒(°゛1°)のビット
を埋込む。白(0°)のビット、または先に存在する出
力イメージからのデータを埋込むには特別な処理は不要
である、というのは、これらのビットは最初に消去され
ているからである。
を埋込む。白(0°)のビット、または先に存在する出
力イメージからのデータを埋込むには特別な処理は不要
である、というのは、これらのビットは最初に消去され
ているからである。
(e) 左端で、符号化されたデータをスキップすべき
場合には、変換しようとし2ているデータに届ぐラン終
了が見つかるまで、ラン終了バッファの内容を進める。
場合には、変換しようとし2ているデータに届ぐラン終
了が見つかるまで、ラン終了バッファの内容を進める。
ラン終了が白のランの場合は、内部ループ(後述)の最
初に進む。ラン終了が黒のランの場合は、現に作成中の
バイトの非理込みビットの全部を1にセットし、内部ル
ープの、黒のランを処理する部分に進む。
初に進む。ラン終了が黒のランの場合は、現に作成中の
バイトの非理込みビットの全部を1にセットし、内部ル
ープの、黒のランを処理する部分に進む。
(fl 内部ループを用いて、最初のランが白で次のラ
ンが黒の、対のランを変換する。
ンが黒の、対のランを変換する。
(g) 復元したイメー、ン・ローの終了を越えた最初
のピノ)・を含むバイトは、ステップ(c)で保管され
た該バイトの値と、現に復元中のバ・イトとの論理和(
OR)と置換える。このように、復元されたローがバイ
ト境界で終了しない場合には、先に存在している出力イ
メージのデータと復元されたローとが、1つのバイトに
適切に組合わされる。
のピノ)・を含むバイトは、ステップ(c)で保管され
た該バイトの値と、現に復元中のバ・イトとの論理和(
OR)と置換える。このように、復元されたローがバイ
ト境界で終了しない場合には、先に存在している出力イ
メージのデータと復元されたローとが、1つのバイトに
適切に組合わされる。
変換アルゴリズム(後述)で用いる変数を下記に示す。
これらの変数の一部は第2図にも示されている。
BLACKEND : (アドレスINPT+Wにおい
て)現に処理中の黒のラン終 了 BUFLgN:ラン終了バッファの最初の単位−ラン終
了バッファ内の現在のロー のバイト数 CUM :現に作成中のイメージ・データのバイト DATEND :要求された全入力画素を処理し終った
ときに出力ローに収まった 画素数 E B LAK :最初のNビット(ただしNは指標)
を越えた全ビットを消去するのに 用いる索引表 ENDPT :後続の黒のラン終了がDATENDより
も少ない最後の白のラン終 了を指すポインタ: ENDPTで 始まる連続するラン終了をE N、D PTOlENDPT 1、EN、DP T2、ENDPT3、およびEN DPT4と呼ぶ。
て)現に処理中の黒のラン終 了 BUFLgN:ラン終了バッファの最初の単位−ラン終
了バッファ内の現在のロー のバイト数 CUM :現に作成中のイメージ・データのバイト DATEND :要求された全入力画素を処理し終った
ときに出力ローに収まった 画素数 E B LAK :最初のNビット(ただしNは指標)
を越えた全ビットを消去するのに 用いる索引表 ENDPT :後続の黒のラン終了がDATENDより
も少ない最後の白のラン終 了を指すポインタ: ENDPTで 始まる連続するラン終了をE N、D PTOlENDPT 1、EN、DP T2、ENDPT3、およびEN DPT4と呼ぶ。
INPT :ラン終了バッファを指すポインタLAST
:現在のCUMを書込むべきアドレスを指すポインタ LASTB : LASTによってアドレスを与えられ
ているバイト LF’TPAD:左端に挿入される埋込みビット数 NC0L :出力イメージのロー当りの画素数NEXT
LN :次のローのラン終了バッファを指すポインタ 0BUF :現在の出力イメージ・ローの最初(出力イ
メージ・バッファ)を指 すポインタ(バイト単位) P ニ一時ポインタ変数 PB :Pによってアドレスを与えられたバイト P A D COL OR:埋込みビットのカラー二白
、黒またはDND(後述)の表示 REND :出力イメージのラン終了のビット・アドレ
ス RTPAD:右端に挿入される埋込みビット数5BLA
K:最初のNビット(ただし、Nは指標)を越えた全ビ
ットを1にセラ トするのに用いる索引表 5TART:ラン終了を加えると、その結果が出力イメ
ージのラン終了のビット ・アドレスになるようなビット・ アドレス SVB :出力イメージの最初のビットを含むバイトを
書込む記憶領域 5VENDC後に使用するためBLACKENDを保管
する一時変数 W :ラン終了バッファのエレメントの幅(バイト単位
) WHITEEND:(アドレスINPTで)現に処理中
の白のラン終了 WID :出力イメージの幅(バイト単位)X ニ一時
変数 X5KIP:各ローの最初にスキップされるイメージ・
データのビット数 実施例の説明で、重要な変数は: CtJM、INPT、 ENDPT(イメージの右端を
記述するラン終了データを指すポインタ)、0BUP(
出力イメージを書込むべき場所を指すポインタ)、NC
0L(切詰められ、埋込まれた出力イメージローの画素
数)、DATEND(要求された全入力データを処理し
終ったときにラン終了バッファに収まっている画素数)
、S T A、 RT(ラン終了を加えると、その結果
が、ラン終了が生じることになっている記憶領域のビッ
ト・アドレスになるようなビット・アドレス)、X5K
IP(出力イメージの右端から省略すべき、ラン液了バ
ッファに表示されたビット数L LFTPAD、RTP
AD、および挿入される埋込みビットのカラーである。
:現在のCUMを書込むべきアドレスを指すポインタ LASTB : LASTによってアドレスを与えられ
ているバイト LF’TPAD:左端に挿入される埋込みビット数 NC0L :出力イメージのロー当りの画素数NEXT
LN :次のローのラン終了バッファを指すポインタ 0BUF :現在の出力イメージ・ローの最初(出力イ
メージ・バッファ)を指 すポインタ(バイト単位) P ニ一時ポインタ変数 PB :Pによってアドレスを与えられたバイト P A D COL OR:埋込みビットのカラー二白
、黒またはDND(後述)の表示 REND :出力イメージのラン終了のビット・アドレ
ス RTPAD:右端に挿入される埋込みビット数5BLA
K:最初のNビット(ただし、Nは指標)を越えた全ビ
ットを1にセラ トするのに用いる索引表 5TART:ラン終了を加えると、その結果が出力イメ
ージのラン終了のビット ・アドレスになるようなビット・ アドレス SVB :出力イメージの最初のビットを含むバイトを
書込む記憶領域 5VENDC後に使用するためBLACKENDを保管
する一時変数 W :ラン終了バッファのエレメントの幅(バイト単位
) WHITEEND:(アドレスINPTで)現に処理中
の白のラン終了 WID :出力イメージの幅(バイト単位)X ニ一時
変数 X5KIP:各ローの最初にスキップされるイメージ・
データのビット数 実施例の説明で、重要な変数は: CtJM、INPT、 ENDPT(イメージの右端を
記述するラン終了データを指すポインタ)、0BUP(
出力イメージを書込むべき場所を指すポインタ)、NC
0L(切詰められ、埋込まれた出力イメージローの画素
数)、DATEND(要求された全入力データを処理し
終ったときにラン終了バッファに収まっている画素数)
、S T A、 RT(ラン終了を加えると、その結果
が、ラン終了が生じることになっている記憶領域のビッ
ト・アドレスになるようなビット・アドレス)、X5K
IP(出力イメージの右端から省略すべき、ラン液了バ
ッファに表示されたビット数L LFTPAD、RTP
AD、および挿入される埋込みビットのカラーである。
埋込みビットを、先に存在している出力イメージから取
込むことになっている場合には、埋込みビットのカラー
は” D N D”と呼ばれる。従って、前にも述べた
ように、埋込みビットのカラーは白、黒またはDNDで
ある。
込むことになっている場合には、埋込みビットのカラー
は” D N D”と呼ばれる。従って、前にも述べた
ように、埋込みビットのカラーは白、黒またはDNDで
ある。
変換プロセスは、第6表に示す2つの索引表5BLAK
およびE B i、 A Kを使用する。これらの索引
表の各々は8つの項目を有し、項目ごとに、それぞれ指
標0〜7に対応する、バイト内の残りのビット数の可能
な値が16進数で示されている:第3表 S B LAKは、白のラン終了を越えるビットを1に
セットすることにより黒のランを開始するのに使われる
。EBLAKは、黒のラン終了を越える全ピントを消去
することにより、黒のシンを終了するのに使われる。若
し、バイトの下位ビットの全部がセットされているなら
、S B T、 A KO値を差引くことは、EBLA
Kの値とのAND(論理積)と同じ結果を生じるので、
5BLAKの索引表はどちらの用途にも使用できる。し
かしながら、EBLAKの索引表は初期設定の際に役立
ち、かつこれらの2つの索引表を記憶するのに必要な記
憶容量はあまり多くないので、本実施例では両方の索引
表を使用する。ちなみに、必要な場合には、(適切なビ
ット数だけ値FFを右シフトすることにより)SBLA
Kの値を計算できるので、索引表はどちらも無視できる
。これは特に、アルゴリズムが変更され、イメージ復元
単位(すなわち、CUMの大きさ)が1バイトよシも大
きい場合、実際的な方法である。
およびE B i、 A Kを使用する。これらの索引
表の各々は8つの項目を有し、項目ごとに、それぞれ指
標0〜7に対応する、バイト内の残りのビット数の可能
な値が16進数で示されている:第3表 S B LAKは、白のラン終了を越えるビットを1に
セットすることにより黒のランを開始するのに使われる
。EBLAKは、黒のラン終了を越える全ピントを消去
することにより、黒のシンを終了するのに使われる。若
し、バイトの下位ビットの全部がセットされているなら
、S B T、 A KO値を差引くことは、EBLA
Kの値とのAND(論理積)と同じ結果を生じるので、
5BLAKの索引表はどちらの用途にも使用できる。し
かしながら、EBLAKの索引表は初期設定の際に役立
ち、かつこれらの2つの索引表を記憶するのに必要な記
憶容量はあまり多くないので、本実施例では両方の索引
表を使用する。ちなみに、必要な場合には、(適切なビ
ット数だけ値FFを右シフトすることにより)SBLA
Kの値を計算できるので、索引表はどちらも無視できる
。これは特に、アルゴリズムが変更され、イメージ復元
単位(すなわち、CUMの大きさ)が1バイトよシも大
きい場合、実際的な方法である。
第2図(,1は、ラン終了バッファに書込まれたイメー
ジ・ローを示す。添字付きWおよびBは白および黒のラ
ン終了を示す。ラン終了バッファにある現在のローのデ
ータのバイト数BUFLENは次式によって与えられる
: BUF’LEN=2W(K+5 ) ローの最後のラン終了が白の場合はWK=BKとなる。
ジ・ローを示す。添字付きWおよびBは白および黒のラ
ン終了を示す。ラン終了バッファにある現在のローのデ
ータのバイト数BUFLENは次式によって与えられる
: BUF’LEN=2W(K+5 ) ローの最後のラン終了が白の場合はWK=BKとなる。
第2図(b)は、元のイメージ・ローの最初にスキップ
されるイメージ・データ(XSKIP)がある場合に、
復元されたイメージ−ローの左右の端に埋込みビットが
挿入されていることを表わす。
されるイメージ・データ(XSKIP)がある場合に、
復元されたイメージ−ローの左右の端に埋込みビットが
挿入されていることを表わす。
この場合、NC0L、LFTPAD、RTPADおよび
X5KIPはビット単位で指定されている。
X5KIPはビット単位で指定されている。
第3図は、ジン終了データの少なくとも1つのローを変
換するのに用いる基本的な手順を示す。
換するのに用いる基本的な手順を示す。
若し、パレドがDNDなら(ブロック160)、NC0
Lビツトのデータを復号し、これらのビットの最後のR
TPADを、先に存在している出力イメージから取込む
。すなわちNC0Lを(NCOL−RTPAD )に置
換え、RTPADを0にしたのち、NC0Lを復号する
(ブロック165)。
Lビツトのデータを復号し、これらのビットの最後のR
TPADを、先に存在している出力イメージから取込む
。すなわちNC0Lを(NCOL−RTPAD )に置
換え、RTPADを0にしたのち、NC0Lを復号する
(ブロック165)。
ループは、この調整を行なってからローを処理する。バ
ンドがDNDの場合、前述のようにRTPADを0にす
ることにより1つの経路を除く全経路でのDNDパッド
の検査を省略できるので、ローの初期設定が簡単になる
。
ンドがDNDの場合、前述のようにRTPADを0にす
ることにより1つの経路を除く全経路でのDNDパッド
の検査を省略できるので、ローの初期設定が簡単になる
。
ラン終了バッファを指すポインタと出力イメージ・バッ
ファを指すポインタとをセットアツプした後(ブロック
170)、ループが開始され、1回に1つのローが処理
される(ブロック175ン。
ファを指すポインタとをセットアツプした後(ブロック
170)、ループが開始され、1回に1つのローが処理
される(ブロック175ン。
INPTは処理中に変更されるので、最初に次のラン終
了バッファのアドレスを保管する。ローの初期設定を行
なった後、内部ループ(後述)を使ってラン終了データ
を画素に変換する。次いで、若し、変換すべきローが残
っているなら(ブロック180)、INPTは、次のラ
ン終了バッファを指すようにセットされ、0BUPは、
次の出力イメージのローを記憶すべき場所を指すように
増加される(ブロック185)。そして、制御はループ
の最初に戻る。
了バッファのアドレスを保管する。ローの初期設定を行
なった後、内部ループ(後述)を使ってラン終了データ
を画素に変換する。次いで、若し、変換すべきローが残
っているなら(ブロック180)、INPTは、次のラ
ン終了バッファを指すようにセットされ、0BUPは、
次の出力イメージのローを記憶すべき場所を指すように
増加される(ブロック185)。そして、制御はループ
の最初に戻る。
1つのバッファのラン終了データを復号する前に必要な
初期設定を第4A図〜第4D図に示す。
初期設定を第4A図〜第4D図に示す。
第4A図のブロック210で、ENDPTは、バッファ
の末尾を越えたバイトを指すようにセットされる。rN
PTは、バッファの長さを与える単位と、バッファの最
初の6つのOをスキップするように増分される。CU
Mは0にセントされる。
の末尾を越えたバイトを指すようにセットされる。rN
PTは、バッファの長さを与える単位と、バッファの最
初の6つのOをスキップするように増分される。CU
Mは0にセントされる。
次いで、5TARTは、ラン終了を5TARTに加える
と、出カバソファの、ランを終了するゼット・アドレス
を生じるようなビット・アドレスを含むようにセットさ
れる。DATENDは、ローの、ラン終了バッファによ
って、復号を中止するように記述されたビット変位にセ
ットされる。後に、RTPADO値はDATENDに加
えられ、ラン終了とDATENDとの比較により、ロー
の末尾に達したかどうかが表示される。
と、出カバソファの、ランを終了するゼット・アドレス
を生じるようなビット・アドレスを含むようにセットさ
れる。DATENDは、ローの、ラン終了バッファによ
って、復号を中止するように記述されたビット変位にセ
ットされる。後に、RTPADO値はDATENDに加
えられ、ラン終了とDATENDとの比較により、ロー
の末尾に達したかどうかが表示される。
次に、ENDPTは、後続の黒のラン終了がDATEN
Dよりも少ない最初の白のジン終了を指すように移動さ
れる。そのため、ENDPTを減小させ、ENDPT+
2Wが、最後の白のラン終了を指すようにする。次いで
、ブロック220で、(ENDPT+3WKある)最後
の黒のラン終了よりもDATENDが大きいかどうかを
判断する。
Dよりも少ない最初の白のジン終了を指すように移動さ
れる。そのため、ENDPTを減小させ、ENDPT+
2Wが、最後の白のラン終了を指すようにする。次いで
、ブロック220で、(ENDPT+3WKある)最後
の黒のラン終了よりもDATENDが大きいかどうかを
判断する。
若し、結果がノーなら、ブロック2ろ0.240で、E
NDPTを、後続の黒のラン終了がDATENDよシも
小さい白のラン終了を指すまで、1回毎に2つのジン終
了ずつ後退させる。その他の場合は、ラン終了バッファ
は、要求されたイメージを変換するのに必要な数よりも
少ない画素しか含まないローを表わす。従って、DAT
FJNDおよびRTPADをリセットし、すべての使用
可能なランを変換した後、埋込み用に指定されたカラー
の埋込みビットを追加された空白部分に書込む(ブロッ
ク250)。若し、バンドがDNDなら(ブロック26
0)、ローを処理するループの開始前に実行したのと全
く同様に、追加された埋込みビット数だけNC0Lを減
らし、RTPADを0にリセットする(ブロック270
)。(ラン終了バッファで長さの異なるローを変換する
ことがある場合は、NC0LおよびRTPADの値をル
ープ開始前の値に復元してから、追加されたローを処理
することが望ましい。さもなければ、変換されたローは
、前に変換された最も短かいローよりも多くの情報を含
むことができない。)この時点で、ENDPTは、(後
続の黒のラン終了がDATENDよりも小さい)最初の
白のラン終了を指していることに注目されたい。
NDPTを、後続の黒のラン終了がDATENDよシも
小さい白のラン終了を指すまで、1回毎に2つのジン終
了ずつ後退させる。その他の場合は、ラン終了バッファ
は、要求されたイメージを変換するのに必要な数よりも
少ない画素しか含まないローを表わす。従って、DAT
FJNDおよびRTPADをリセットし、すべての使用
可能なランを変換した後、埋込み用に指定されたカラー
の埋込みビットを追加された空白部分に書込む(ブロッ
ク250)。若し、バンドがDNDなら(ブロック26
0)、ローを処理するループの開始前に実行したのと全
く同様に、追加された埋込みビット数だけNC0Lを減
らし、RTPADを0にリセットする(ブロック270
)。(ラン終了バッファで長さの異なるローを変換する
ことがある場合は、NC0LおよびRTPADの値をル
ープ開始前の値に復元してから、追加されたローを処理
することが望ましい。さもなければ、変換されたローは
、前に変換された最も短かいローよりも多くの情報を含
むことができない。)この時点で、ENDPTは、(後
続の黒のラン終了がDATENDよりも小さい)最初の
白のラン終了を指していることに注目されたい。
ここで、変換されたデータの出力イメージの記憶領域を
消去し、ラン終了データを変更して、ラン終了を変換す
るループを正しく終了させることができる。この動作は
、RTPADが、[1(DNDパットの場合は常に真で
ある)、白、または黒の6つの場合に、別個に行なわれ
る。ブロック280で、RTPAD=Oの場合は、第4
B図に進み、その他の場合は、第4C図に進む。それぞ
れの動作の後、第4D図で別の処理が行なわれる。
消去し、ラン終了データを変更して、ラン終了を変換す
るループを正しく終了させることができる。この動作は
、RTPADが、[1(DNDパットの場合は常に真で
ある)、白、または黒の6つの場合に、別個に行なわれ
る。ブロック280で、RTPAD=Oの場合は、第4
B図に進み、その他の場合は、第4C図に進む。それぞ
れの動作の後、第4D図で別の処理が行なわれる。
前記の場合はどれも6つのラン終了の値を保管し、内部
ループ(後述ンが画素データを再現してから復元する。
ループ(後述ンが画素データを再現してから復元する。
ラン終了データの保管と復元はこのアルゴリズムでは不
要である。若し、呼出し機能がう/終了データの変更の
有無と無関係なら、該データの保管と復元は省略できる
。
要である。若し、呼出し機能がう/終了データの変更の
有無と無関係なら、該データの保管と復元は省略できる
。
この時点で、ENDPTは、(後続の黒のラン終了がD
ATENDよりも小さい)最初の白のラン終了を指すの
で、E N D P Tによって指示された最初の2つ
のラン終了は変更されない。ENDPT+2Wにおける
白のシン終了はDATENDよりも小さいかもしれない
し、そうでないかもしれない。E N D P ’r+
ろWにおける黒のラン終了はDATENDよりも太きい
か、寸たけ等しいに違いない。
ATENDよりも小さい)最初の白のラン終了を指すの
で、E N D P Tによって指示された最初の2つ
のラン終了は変更されない。ENDPT+2Wにおける
白のシン終了はDATENDよりも小さいかもしれない
し、そうでないかもしれない。E N D P ’r+
ろWにおける黒のラン終了はDATENDよりも太きい
か、寸たけ等しいに違いない。
第4B図は前述のように右端にパットがない場合の動作
を示す。最初に、ブロックろ00でEND P T +
2 Wで始まる6つのラン終了を保管する。
を示す。最初に、ブロックろ00でEND P T +
2 Wで始まる6つのラン終了を保管する。
次いで、ブロック610でENDPT+3Wで始丑る黒
のラン終了がDATF::ND、]:りも大きいかどう
かを判断する。若し、太きければ、ブロック620でラ
ン終了はDATENDにリセットされ(すなわち、ラン
終了バッファによって記述されたイメージ・ローが切詰
められ)、ブロックろ60で先行する白のランはDAT
ENDと比較され、若し、白のランが太きければ、ブロ
ック340でDATENDにリセットされる。以上の動
作で入力データに必要な変更は完了する。
のラン終了がDATF::ND、]:りも大きいかどう
かを判断する。若し、太きければ、ブロック620でラ
ン終了はDATENDにリセットされ(すなわち、ラン
終了バッファによって記述されたイメージ・ローが切詰
められ)、ブロックろ60で先行する白のランはDAT
ENDと比較され、若し、白のランが太きければ、ブロ
ック340でDATENDにリセットされる。以上の動
作で入力データに必要な変更は完了する。
ブロック350でパッドがDNDであるかどうかを判断
する。パッドがDNDであるかどうかにより出カバソフ
ァを十ン)・アップするのに必要な手順が少し異なる。
する。パッドがDNDであるかどうかにより出カバソフ
ァを十ン)・アップするのに必要な手順が少し異なる。
パッドがDNDではない場合、ブロック360で0BU
Fが指定したバイトの最初のビットから、NC0Lが指
定したピッ)・数たけOにする。この動作では、バイト
を必要な数だけ0にし、(消去される最後のビットの次
のピッ]・を含む)次のバイトを読取り、ビットを必要
な数だけマスクする。変更されたバイトは、元の場所お
よび保管領域に書込まれ、ローが変換された後に使用す
る。
Fが指定したバイトの最初のビットから、NC0Lが指
定したピッ)・数たけOにする。この動作では、バイト
を必要な数だけ0にし、(消去される最後のビットの次
のピッ]・を含む)次のバイトを読取り、ビットを必要
な数だけマスクする。変更されたバイトは、元の場所お
よび保管領域に書込まれ、ローが変換された後に使用す
る。
パッドがDNDの場合には、埋込みビットはそのまま残
っているはずであるから、N COr、 −(LFTP
AD+RTPAD )のピッ1−を消去するだけでよい
。消去されるビットを含む最初と最後のバイトに、保持
しなければならないビットを含んでいることがある。ブ
ロック570で、消去は、消去される最初のビットを含
むバイトのアドレスの指定により開始する。このバイト
はCUMに読込まれ、必要な数だけ下位ビットが消去さ
れる。
っているはずであるから、N COr、 −(LFTP
AD+RTPAD )のピッ1−を消去するだけでよい
。消去されるビットを含む最初と最後のバイトに、保持
しなければならないビットを含んでいることがある。ブ
ロック570で、消去は、消去される最初のビットを含
むバイトのアドレスの指定により開始する。このバイト
はCUMに読込まれ、必要な数だけ下位ビットが消去さ
れる。
CUMは、内部ループの最初の反復動作の開始で出力イ
メージに書込まれる。次いで、消去される最後のビット
を越えたビットを含むバイトのアドレスが指定される。
メージに書込まれる。次いで、消去される最後のビット
を越えたビットを含むバイトのアドレスが指定される。
ブロックろ80で、若し、このバイトがCUMに読込ま
れたバイトと同じバイトである(すなわち、実際に変換
するデータのローは非常に短かい)なら、ブロック39
0で、元のバイトを読取り、上位ビットを必要な数だけ
消去し、該バイトとCUMの論理和(OR)を(CUM
を変更せずに)実行する。その結果、該バイトの(変換
したデータを挿入することになっている)中央のビット
は消去され、上位および下位のビットはそのままである
。このバイトは、出力イメージの元の場所、および保管
領域に書込まれる。
れたバイトと同じバイトである(すなわち、実際に変換
するデータのローは非常に短かい)なら、ブロック39
0で、元のバイトを読取り、上位ビットを必要な数だけ
消去し、該バイトとCUMの論理和(OR)を(CUM
を変更せずに)実行する。その結果、該バイトの(変換
したデータを挿入することになっている)中央のビット
は消去され、上位および下位のビットはそのままである
。このバイトは、出力イメージの元の場所、および保管
領域に書込まれる。
若し、消去される最初のビットと、消去されるビットの
終了を越えた最初のビットとが別イ1めバイトにあるな
ら、フ゛ロック400で、2番目のバイトの上位のビッ
トを必要な数だけマスクし、その結果を出力イメージお
よび保管領域に書込む。
終了を越えた最初のビットとが別イ1めバイトにあるな
ら、フ゛ロック400で、2番目のバイトの上位のビッ
トを必要な数だけマスクし、その結果を出力イメージお
よび保管領域に書込む。
そして、ブロック410.420で、既に変更した2つ
のバイトの間にあるバイトを0にする。
のバイトの間にあるバイトを0にする。
第4C図は、パッドが白または黒の場合、記憶領域を消
去し、ラン終了バッファを変更するのに必要な動作を示
す。最初、ブロック500で、0BUF’が指定したバ
イトの最初のビットがら、NC0Lが指定したビット数
だけ0にする。RTPAD=0でパッドが非DNDであ
る場合のように、この動作では、バイトを必要な数だけ
0にし、(消去される最後のビットに続くビットを含む
)次のバイトを読取り、ビットを必要な数だけマスクす
る。変更されたバイトは、元の場所および保管領域に書
込まれる。
去し、ラン終了バッファを変更するのに必要な動作を示
す。最初、ブロック500で、0BUF’が指定したバ
イトの最初のビットがら、NC0Lが指定したビット数
だけ0にする。RTPAD=0でパッドが非DNDであ
る場合のように、この動作では、バイトを必要な数だけ
0にし、(消去される最後のビットに続くビットを含む
)次のバイトを読取り、ビットを必要な数だけマスクす
る。変更されたバイトは、元の場所および保管領域に書
込まれる。
ブロック510で、若し、パッドが白なら、ブロック5
20で、ENDPT+2Wにおける白のラン終了がDA
TENDよりも小さいかどうかを判断する。結果がイエ
スの場合は、ラン終了バッファは、黒のジンで終了する
ローを表わす。ブロック530で、ENDPTをWだけ
増加し、END P T + 2 Wが、変更されるデ
ータを指すようにし、次いで、E N D P T +
2 Wで始まる6つのラン終了を保管する。更に、ロ
ーの最後の黒のランを記述する黒のラン終了をDATE
ND (すなわち、パッドの最初)1で切詰め、次いで
、DATENDをR’TPADたけ増加して、出力口−
の右端の、ラン終了バッファによって表わされたイメー
ジ・ローにオフセットされたビットを生じさせる。この
新しいD A T E NDの値は後続の白と黒のラン
終了の代りに保管される。ブロック520で、若し、E
NDPT+2Wにおける白のラン終了がDATENDよ
りも小さくないなら、ローは白のランで終了する。ブロ
ック540で、ENDPT+2Wで始まる6つのラン終
了が保管される。
20で、ENDPT+2Wにおける白のラン終了がDA
TENDよりも小さいかどうかを判断する。結果がイエ
スの場合は、ラン終了バッファは、黒のジンで終了する
ローを表わす。ブロック530で、ENDPTをWだけ
増加し、END P T + 2 Wが、変更されるデ
ータを指すようにし、次いで、E N D P T +
2 Wで始まる6つのラン終了を保管する。更に、ロ
ーの最後の黒のランを記述する黒のラン終了をDATE
ND (すなわち、パッドの最初)1で切詰め、次いで
、DATENDをR’TPADたけ増加して、出力口−
の右端の、ラン終了バッファによって表わされたイメー
ジ・ローにオフセットされたビットを生じさせる。この
新しいD A T E NDの値は後続の白と黒のラン
終了の代りに保管される。ブロック520で、若し、E
NDPT+2Wにおける白のラン終了がDATENDよ
りも小さくないなら、ローは白のランで終了する。ブロ
ック540で、ENDPT+2Wで始まる6つのラン終
了が保管される。
そして、DATENDはRTPADだけ増加され、その
結果生じた値は最後の白のラン終了と後続の黒のラン終
了に取って代る。
結果生じた値は最後の白のラン終了と後続の黒のラン終
了に取って代る。
ブロック510で、若し、パッドが黒なら、ブロック5
50で、E N D P T −1−2Wで始まる6つ
のラン終了が保管される。次いで、ブロック560で、
ENDPT+2Wにおける白のランがDATENDより
も大きいかどうかを検査し、その結果がイエスの場合は
、ブロック570で、DATENDに置換えられる(白
のランはパッドの端まで切詰められる)。そうでない場
合は、処理は不要である。次に、ブロック580で、D
ATENDはRTPADだけ増加され、新しいDATE
NDの値は、E N D P T + 3 Wにおける
黒のラン終了に取って代る。
50で、E N D P T −1−2Wで始まる6つ
のラン終了が保管される。次いで、ブロック560で、
ENDPT+2Wにおける白のランがDATENDより
も大きいかどうかを検査し、その結果がイエスの場合は
、ブロック570で、DATENDに置換えられる(白
のランはパッドの端まで切詰められる)。そうでない場
合は、処理は不要である。次に、ブロック580で、D
ATENDはRTPADだけ増加され、新しいDATE
NDの値は、E N D P T + 3 Wにおける
黒のラン終了に取って代る。
以上で、すべての場合について、出力ハツファの消去お
よび入力バッファの変更は完了する。
よび入力バッファの変更は完了する。
第4D図は、残っている初期設定の手順を示す。
最初に、ブロック600で左端に黒のパッドを埋込むべ
きかどうかを判断する。(左端に白を埋込む場合、およ
びDNDの場合については、前に説明したとおりである
。)その結果がイエスの場合は、ブロック610で、若
し、LFTPADが0でないなら、ブロック620で、
一時変数Xの値”FF”(16進数)を、0BUF指定
のバイトに、必要な数(SRL LFTPAD 3)だ
け書込み、適切な数の上位ビットがセットされたバイト
をCUMにロードする。
きかどうかを判断する。(左端に白を埋込む場合、およ
びDNDの場合については、前に説明したとおりである
。)その結果がイエスの場合は、ブロック610で、若
し、LFTPADが0でないなら、ブロック620で、
一時変数Xの値”FF”(16進数)を、0BUF指定
のバイトに、必要な数(SRL LFTPAD 3)だ
け書込み、適切な数の上位ビットがセットされたバイト
をCUMにロードする。
次に、ブロック630で、場合のいかんを問わず、LA
ST (CUMを書込むべき、出力イメージにあるバイ
トを指すポインタ)がセットされ、左端のパッドに続く
最初のビットを含むバイトを指す。
ST (CUMを書込むべき、出力イメージにあるバイ
トを指すポインタ)がセットされ、左端のパッドに続く
最初のビットを含むバイトを指す。
次に、ラン終了バッファにある不要なデータをスキップ
する。ブロック640および650で、検査した最初の
黒のラン終了が、スキップすべき画素数よりも小さい限
り、INPTを増加して白と黒のランの対をスキップし
、次の黒のジン終了を検査する。X5KIPよりも大き
い黒のラン終了が見つかると、ブロック660で、先行
の白のラン終了を検査し、若し、この白のラン終了がX
5KI Pよりも小さくないなら、内部ループ(後述)
の最初のブロックに進む。若し、白のラン終了がX5K
IPよりも小さければ、変換されたイメージ・データは
黒のランで開始する。ブロック670で、左パッドの末
尾を越えたビットをすべて1にセットし、制御は、内部
ループの黒のランを処理する部分に移る。
する。ブロック640および650で、検査した最初の
黒のラン終了が、スキップすべき画素数よりも小さい限
り、INPTを増加して白と黒のランの対をスキップし
、次の黒のジン終了を検査する。X5KIPよりも大き
い黒のラン終了が見つかると、ブロック660で、先行
の白のラン終了を検査し、若し、この白のラン終了がX
5KI Pよりも小さくないなら、内部ループ(後述)
の最初のブロックに進む。若し、白のラン終了がX5K
IPよりも小さければ、変換されたイメージ・データは
黒のランで開始する。ブロック670で、左パッドの末
尾を越えたビットをすべて1にセットし、制御は、内部
ループの黒のランを処理する部分に移る。
第4E図は、変換プロセスで、1つの白のランおよび後
続する黒のランを処理する内部ループを示す。最初に、
ブロック700で、CUMが、出力イメージ内の適切な
場所に書込まれる。次に、変換中の白のジンに続く黒の
ランの最初のビットを含むバイト(同一バイトであるか
も知れない)が、出力イメージの特定の場所から読取ら
れ、変換中の、該バイトに現われなければならない白の
ランのビット数を用いて索引表を索引する。表索引の結
果はCUMに加えられ、白のランの末尾を越えた全ビッ
トを黒にセットする。(内部ループ開始時のCUMの書
込みは、読取られるバイトが、CUMを記憶しているア
ドレスと同じアドレスから生じる場合には省略できるが
、省略するための検査および分岐を行なっても、検査が
失敗する場合の方が多く、検査に必要な時間を失うなら
ば、節約される時間はごく僅かである。) 後続の黒のシンを処理するには、先ず、そのランが現に
構成されているバイト内で終了するかどうかを判断する
(ブロック720)。その結果がイエスなら、バイト内
の黒のランの終了前に現われるビット数を用いて索引表
を索引し、ラン終了を越えたビットをすべて消去するマ
スクを取出す(ブロック730)。次いで、黒のラン終
了とDATENDを比較することにより、ローの終了を
検査する(ブロック780)。若し、ローの末尾に達し
ているならループから抜出しくブロック790に進む)
、そうでない場合は、次の白のランの処理を反復する。
続する黒のランを処理する内部ループを示す。最初に、
ブロック700で、CUMが、出力イメージ内の適切な
場所に書込まれる。次に、変換中の白のジンに続く黒の
ランの最初のビットを含むバイト(同一バイトであるか
も知れない)が、出力イメージの特定の場所から読取ら
れ、変換中の、該バイトに現われなければならない白の
ランのビット数を用いて索引表を索引する。表索引の結
果はCUMに加えられ、白のランの末尾を越えた全ビッ
トを黒にセットする。(内部ループ開始時のCUMの書
込みは、読取られるバイトが、CUMを記憶しているア
ドレスと同じアドレスから生じる場合には省略できるが
、省略するための検査および分岐を行なっても、検査が
失敗する場合の方が多く、検査に必要な時間を失うなら
ば、節約される時間はごく僅かである。) 後続の黒のシンを処理するには、先ず、そのランが現に
構成されているバイト内で終了するかどうかを判断する
(ブロック720)。その結果がイエスなら、バイト内
の黒のランの終了前に現われるビット数を用いて索引表
を索引し、ラン終了を越えたビットをすべて消去するマ
スクを取出す(ブロック730)。次いで、黒のラン終
了とDATENDを比較することにより、ローの終了を
検査する(ブロック780)。若し、ローの末尾に達し
ているならループから抜出しくブロック790に進む)
、そうでない場合は、次の白のランの処理を反復する。
若し、黒のランが現在のバイト内で終了しないなら、現
在のバイトを、出力イメージ内のその固有の場所に書込
み(ブロック740)、う/の終了を越えた最初のビッ
トを含むバイトを得るのに必要な数のバイトに1を書込
み(ブロック760)、他の場合にマスクを取出した索
引表を用いて、ラン終了に達するのに必要な数の、1に
セットされたビットおよび残9のOにセットされたビッ
トを有するバイトを得る(ブロック770)。次イテ、
ローの終了を検査しくブロック780)、ローの末尾に
達している場合はループを抜出し、そうでない場合はル
ープを反復実行する。
在のバイトを、出力イメージ内のその固有の場所に書込
み(ブロック740)、う/の終了を越えた最初のビッ
トを含むバイトを得るのに必要な数のバイトに1を書込
み(ブロック760)、他の場合にマスクを取出した索
引表を用いて、ラン終了に達するのに必要な数の、1に
セットされたビットおよび残9のOにセットされたビッ
トを有するバイトを得る(ブロック770)。次イテ、
ローの終了を検査しくブロック780)、ローの末尾に
達している場合はループを抜出し、そうでない場合はル
ープを反復実行する。
内部ループを抜出した後、復元されたイメージ・ローの
末尾を越える最初のビットを含むバイトは、そのバイト
の、内部ループ開始前に保管された値と、現に復元され
ているバイトの値を論理和(OR)した結果に置換えら
れ、保管された6っのラン終了の値は、ENDPT+2
Wで始まるラン終了バッファに復元される(ブロック7
90)。
末尾を越える最初のビットを含むバイトは、そのバイト
の、内部ループ開始前に保管された値と、現に復元され
ているバイトの値を論理和(OR)した結果に置換えら
れ、保管された6っのラン終了の値は、ENDPT+2
Wで始まるラン終了バッファに復元される(ブロック7
90)。
基本的な変換アルゴリズムは数多くの変形を得5ことが
できる。例えば、変数X5KIP、LFTPADおよび
RTPADの組合せをDにすることによシ処理を簡略化
できる(XSKIPを0にすれば、ローの最初にラン終
了データをスキップするループが省略できる)。また、
入力ラン終了バッファに供給される精密なフォーマット
は、本発明の実施の細部にいくらか影響する。内部ルー
プの外側の動作の多くは、入力ラン終了バッファのフォ
ーマットおよび必要な出力データに関する仮定によって
制御される。内部ループは、これらの点とはあまシ関係
がない。内部ループの主要な相違点は、CUMの代りに
、大きさの単位が異なるイメージ・データを使用したシ
、イメージ・データを復元するのに別の手順(すなわち
、表索引の代るシフト手順)を使用することである。
できる。例えば、変数X5KIP、LFTPADおよび
RTPADの組合せをDにすることによシ処理を簡略化
できる(XSKIPを0にすれば、ローの最初にラン終
了データをスキップするループが省略できる)。また、
入力ラン終了バッファに供給される精密なフォーマット
は、本発明の実施の細部にいくらか影響する。内部ルー
プの外側の動作の多くは、入力ラン終了バッファのフォ
ーマットおよび必要な出力データに関する仮定によって
制御される。内部ループは、これらの点とはあまシ関係
がない。内部ループの主要な相違点は、CUMの代りに
、大きさの単位が異なるイメージ・データを使用したシ
、イメージ・データを復元するのに別の手順(すなわち
、表索引の代るシフト手順)を使用することである。
本発明の方法は下記の特性を有する:
(、) 処理開始前に出力ローを0にすることによシ、
これらのジンの処理中に、長い白のランのバイトを消去
しなくてもよい。代表的なイメージは全部が白の画素の
大きい領域を含むとともに、大抵のプロセッサでは、大
きい記憶領域の消去が最も効率的であるので、ループ開
始前にローを0にすることにより、ループ内で白のラン
を処理する複雑さが減小し、記憶領域の消去がより効率
的に行なわれる。
これらのジンの処理中に、長い白のランのバイトを消去
しなくてもよい。代表的なイメージは全部が白の画素の
大きい領域を含むとともに、大抵のプロセッサでは、大
きい記憶領域の消去が最も効率的であるので、ループ開
始前にローを0にすることにより、ループ内で白のラン
を処理する複雑さが減小し、記憶領域の消去がより効率
的に行なわれる。
(b) 入力データを調整してローの終了を記述するこ
とにより、ラン終了が復元中のイメージ・ローの終了点
を越えているかどうか、またはデータを使い果たしてい
るかどうかを調べるだめの、ランの各々の処理中に必要
とする特別の検査が取除かれるので、ランの処理が簡略
化され、よシ迅速な動作が可能になる。
とにより、ラン終了が復元中のイメージ・ローの終了点
を越えているかどうか、またはデータを使い果たしてい
るかどうかを調べるだめの、ランの各々の処理中に必要
とする特別の検査が取除かれるので、ランの処理が簡略
化され、よシ迅速な動作が可能になる。
(、J あらゆるローの終了点に黒のラン終了が存在す
るように入力データを調整することによシ、すべての白
のランのローの終了についての検査が取除かれる(すな
わち、ローの終了に要する検査回数が半分になる)ので
、必要な検査の量が減小し、迅速な動作が得られる。
るように入力データを調整することによシ、すべての白
のランのローの終了についての検査が取除かれる(すな
わち、ローの終了に要する検査回数が半分になる)ので
、必要な検査の量が減小し、迅速な動作が得られる。
(dJ ローを対で処理することによシ、どの処理時点
においても、現在作業中のランがどのカラーであるかが
分る。この情報は、(出力イメージはあらかじめ消去さ
れているので)白のバイトの処理を省略することによシ
、長い白のランを処理する際に利用できる。また、白と
黒のランの経路を別々にすることは、1つのカラーだけ
のロー終了検査に役立つ。
においても、現在作業中のランがどのカラーであるかが
分る。この情報は、(出力イメージはあらかじめ消去さ
れているので)白のバイトの処理を省略することによシ
、長い白のランを処理する際に利用できる。また、白と
黒のランの経路を別々にすることは、1つのカラーだけ
のロー終了検査に役立つ。
(、) 適切な初期設定によシ、本アルゴリズムによる
変換中に、入力イメージを切詰めたり、パッドを埋込む
ことができる。希望に応じて、あらかじめ出力イメージ
に存在するデータをパッドに使用できるので、バイト境
界で開始または終了しないローを有するイメージを、よ
り大きいイメージに挿入しても、挿入したイメージの周
りのデータを壊すことはない。この動作では、復元する
イメージの端のバイトと、あらかじめ存在しているデー
タとを論理和(OR)する。
変換中に、入力イメージを切詰めたり、パッドを埋込む
ことができる。希望に応じて、あらかじめ出力イメージ
に存在するデータをパッドに使用できるので、バイト境
界で開始または終了しないローを有するイメージを、よ
り大きいイメージに挿入しても、挿入したイメージの周
りのデータを壊すことはない。この動作では、復元する
イメージの端のバイトと、あらかじめ存在しているデー
タとを論理和(OR)する。
(f+ 復元中のイメージ・データのバイトに付加また
は除去する黒のビットの表索引は、復元するイメージの
迅速な計算を可能にする(黒のピントを生成する代替手
順は、16進値F F F F F F F Fの/フ
トを用い、計算機によって同等1だはそれ以」二の速さ
が得られる)。長い黒のランの場合、多くのプロセツサ
で使用可能な命令を利用して連続するバイトのフィール
ドの迅速な書込みが可能である。これらのファクタは迅
速なコードを得るのに役立つ。
は除去する黒のビットの表索引は、復元するイメージの
迅速な計算を可能にする(黒のピントを生成する代替手
順は、16進値F F F F F F F Fの/フ
トを用い、計算機によって同等1だはそれ以」二の速さ
が得られる)。長い黒のランの場合、多くのプロセツサ
で使用可能な命令を利用して連続するバイトのフィール
ドの迅速な書込みが可能である。これらのファクタは迅
速なコードを得るのに役立つ。
本発明を実施するプログラム(記載せず)では、イメー
ジはラン終了バッファから生成される。ローごとに、ラ
ン終了バッファには、−続きの半ワード:データ・バイ
ト数(カウントの2バイト、およびラン終了ごとの2バ
イト)、5個のO1白/黒の対のラン終了数、および最
後の黒のラン終了の2つの追加コピーを含む。
ジはラン終了バッファから生成される。ローごとに、ラ
ン終了バッファには、−続きの半ワード:データ・バイ
ト数(カウントの2バイト、およびラン終了ごとの2バ
イト)、5個のO1白/黒の対のラン終了数、および最
後の黒のラン終了の2つの追加コピーを含む。
索引表S B L A、 KおよびEBLAKは前述の
第5表に示すように初期設定されている。
第5表に示すように初期設定されている。
本発明の方法は、従来の方法よりも可成り速くイメージ
をシン表示からビット・マツプに変換できる。
をシン表示からビット・マツプに変換できる。
第1図は本発明の方法の流れ図、
第2図は本発明による変換フォーマットを示す図、
第6図は本発明による変換アルゴリズムを示す流れ図、
第4A図〜第4E図は本発明の方法に従ってローを初期
設定し、画素データを生成する流れ図である。 110・・・・イメージ記憶ステップ、120・・・・
データ・ロー初期化ステップ、160・・・・表示変換
ステップ、140・・・・画素表示記憶ステップ、15
0・・・・残りのランの有無検査ステップ。 出願人 インターナ7町灼し・ビン木ス・マンーンズ・
コーボレーンヨン復代理人 弁理士 篠 1) 文 雄 (a) (b) FIG、 2 FIG、 3 FIG、 4A 匣
設定し、画素データを生成する流れ図である。 110・・・・イメージ記憶ステップ、120・・・・
データ・ロー初期化ステップ、160・・・・表示変換
ステップ、140・・・・画素表示記憶ステップ、15
0・・・・残りのランの有無検査ステップ。 出願人 インターナ7町灼し・ビン木ス・マンーンズ・
コーボレーンヨン復代理人 弁理士 篠 1) 文 雄 (a) (b) FIG、 2 FIG、 3 FIG、 4A 匣
Claims (1)
- 【特許請求の範囲】 イメージをラン表示からビット・マツプに変換する方法
であって、 イメージの複数のラン表示をバッファに記憶し、データ
のローを初期設定し、 前記ローで、ラン表示の各々を画素表示に変換し、 前記ローの前記画素表示を記憶し、 前記イメージをビット・マツプ表示に変換し終るまで、
残シのラン表示について、上記の初期設定、変換および
記憶のステップを反復実行することを特徴とする、イメ
ージのラン表示からビット・マツプへの変換方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US567292 | 1983-12-30 | ||
| US06/567,292 US4596039A (en) | 1983-12-30 | 1983-12-30 | Method for converting an image from a run end or run length representation to a bit map |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS60154777A true JPS60154777A (ja) | 1985-08-14 |
| JPH0439830B2 JPH0439830B2 (ja) | 1992-06-30 |
Family
ID=24266557
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP59192756A Granted JPS60154777A (ja) | 1983-12-30 | 1984-09-17 | イメージのランレングスデータからビットマップデータへの変換方法 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US4596039A (ja) |
| EP (1) | EP0149121B1 (ja) |
| JP (1) | JPS60154777A (ja) |
| CA (1) | CA1220429A (ja) |
| DE (1) | DE3484135D1 (ja) |
Families Citing this family (30)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| DE3472324D1 (en) * | 1983-12-19 | 1988-07-28 | Studer Willi Ag | Method and apparatus for reproducing digitized signals, transmitted as digital signals in pulse form |
| US4885576A (en) | 1986-04-02 | 1989-12-05 | International Business Machines Corporation | Soft copy display of facsimile images |
| US4783834A (en) * | 1987-02-20 | 1988-11-08 | International Business Machines Corporation | System for creating transposed image data from a run end or run length representation of an image |
| JP2672521B2 (ja) * | 1987-09-21 | 1997-11-05 | 株式会社東芝 | 画像処理方法 |
| CA2058363C (en) * | 1991-12-23 | 1997-02-25 | Eric Labadie | Method for decoding compressed images |
| US5369405A (en) * | 1992-05-19 | 1994-11-29 | Goldstar Co., Ltd. | Coefficient generation apparatus for variable length decoder |
| US5510785A (en) * | 1993-03-19 | 1996-04-23 | Sony Corporation | Method of coding a digital signal, method of generating a coding table, coding apparatus and coding method |
| US5572207A (en) * | 1994-09-23 | 1996-11-05 | International Business Machines Corporation | Method and apparatus for numeric-to-string conversion |
| US6094453A (en) * | 1996-10-11 | 2000-07-25 | Digital Accelerator Corporation | Digital data compression with quad-tree coding of header file |
| US6786420B1 (en) | 1997-07-15 | 2004-09-07 | Silverbrook Research Pty. Ltd. | Data distribution mechanism in the form of ink dots on cards |
| US6618117B2 (en) | 1997-07-12 | 2003-09-09 | Silverbrook Research Pty Ltd | Image sensing apparatus including a microcontroller |
| US6803989B2 (en) | 1997-07-15 | 2004-10-12 | Silverbrook Research Pty Ltd | Image printing apparatus including a microcontroller |
| AUPO850597A0 (en) | 1997-08-11 | 1997-09-04 | Silverbrook Research Pty Ltd | Image processing method and apparatus (art01a) |
| AUPO802797A0 (en) | 1997-07-15 | 1997-08-07 | Silverbrook Research Pty Ltd | Image processing method and apparatus (ART54) |
| US20040119829A1 (en) | 1997-07-15 | 2004-06-24 | Silverbrook Research Pty Ltd | Printhead assembly for a print on demand digital camera system |
| US6624848B1 (en) | 1997-07-15 | 2003-09-23 | Silverbrook Research Pty Ltd | Cascading image modification using multiple digital cameras incorporating image processing |
| US6985207B2 (en) | 1997-07-15 | 2006-01-10 | Silverbrook Research Pty Ltd | Photographic prints having magnetically recordable media |
| US6690419B1 (en) | 1997-07-15 | 2004-02-10 | Silverbrook Research Pty Ltd | Utilising eye detection methods for image processing in a digital image camera |
| US6415054B1 (en) * | 1997-07-15 | 2002-07-02 | Silverbrook Research Pty Ltd. | Target detection for dot region alignment in optical storage systems using ink dots |
| US7110024B1 (en) | 1997-07-15 | 2006-09-19 | Silverbrook Research Pty Ltd | Digital camera system having motion deblurring means |
| US7705891B2 (en) | 1997-07-15 | 2010-04-27 | Silverbrook Research Pty Ltd | Correction of distortions in digital images |
| US6879341B1 (en) | 1997-07-15 | 2005-04-12 | Silverbrook Research Pty Ltd | Digital camera system containing a VLIW vector processor |
| KR19990025489A (ko) | 1997-09-12 | 1999-04-06 | 구본준 | 안티 퓨즈 및 그 형성 방법 |
| KR100249235B1 (ko) * | 1997-12-31 | 2000-03-15 | 구자홍 | 에이치디티브이 비디오 디코더 |
| AUPP702098A0 (en) | 1998-11-09 | 1998-12-03 | Silverbrook Research Pty Ltd | Image creation method and apparatus (ART73) |
| AUPQ056099A0 (en) | 1999-05-25 | 1999-06-17 | Silverbrook Research Pty Ltd | A method and apparatus (pprint01) |
| US6941019B1 (en) | 2000-05-10 | 2005-09-06 | International Business Machines Corporation | Reentry into compressed data |
| US7146053B1 (en) | 2000-05-10 | 2006-12-05 | International Business Machines Corporation | Reordering of compressed data |
| US20090228463A1 (en) * | 2008-03-10 | 2009-09-10 | Cramer Richard D | Method for Searching Compound Databases Using Topomeric Shape Descriptors and Pharmacophoric Features Identified by a Comparative Molecular Field Analysis (CoMFA) Utilizing Topomeric Alignment of Molecular Fragments |
| KR20160061172A (ko) * | 2014-11-21 | 2016-05-31 | 삼성전자주식회사 | 디코더, 상기 디코더를 포함하는 디코딩 시스템, 및 상기 디코더의 동작 방법 |
Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5836073A (ja) * | 1981-08-27 | 1983-03-02 | Kokusai Denshin Denwa Co Ltd <Kdd> | ペアラン符号化方式 |
Family Cites Families (5)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US4152697A (en) * | 1976-08-11 | 1979-05-01 | Xerox Corporation | Parallel run-length decoder |
| GB1598343A (en) * | 1977-04-04 | 1981-09-16 | Int Computers Ltd | Display systems |
| JPS53134340A (en) * | 1977-04-28 | 1978-11-22 | Ricoh Co Ltd | Run length coding system |
| JPS5610774A (en) * | 1979-07-09 | 1981-02-03 | Ricoh Co Ltd | Facsimile device |
| US4327379A (en) * | 1980-04-11 | 1982-04-27 | Xerox Corporation | Hardware implementation of 4-pixel code encoder |
-
1983
- 1983-12-30 US US06/567,292 patent/US4596039A/en not_active Expired - Lifetime
-
1984
- 1984-09-17 JP JP59192756A patent/JPS60154777A/ja active Granted
- 1984-11-15 CA CA000467898A patent/CA1220429A/en not_active Expired
- 1984-12-11 DE DE8484115008T patent/DE3484135D1/de not_active Expired - Lifetime
- 1984-12-11 EP EP84115008A patent/EP0149121B1/en not_active Expired
Patent Citations (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JPS5836073A (ja) * | 1981-08-27 | 1983-03-02 | Kokusai Denshin Denwa Co Ltd <Kdd> | ペアラン符号化方式 |
Also Published As
| Publication number | Publication date |
|---|---|
| EP0149121A2 (en) | 1985-07-24 |
| EP0149121B1 (en) | 1991-02-20 |
| JPH0439830B2 (ja) | 1992-06-30 |
| EP0149121A3 (en) | 1987-07-29 |
| DE3484135D1 (de) | 1991-03-28 |
| CA1220429A (en) | 1987-04-14 |
| US4596039A (en) | 1986-06-17 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPS60154777A (ja) | イメージのランレングスデータからビットマップデータへの変換方法 | |
| JPS60146326A (ja) | ビット・マップからラン表現へのイメージ変換方法 | |
| JPS60146367A (ja) | イメ−ジ回転方法 | |
| JPH0771185B2 (ja) | 画像データ変換方法 | |
| US4553171A (en) | Tile encoding in image printing | |
| KR100242863B1 (ko) | 화상데이터의 디코딩방법 및 그 디코딩회로 | |
| US20040218819A1 (en) | Method, apparatus and computer program product for image data compression and decompression capable of high-speed processing | |
| KR19980081853A (ko) | 그래픽 이미지 압축 및 복원 방법 | |
| CN108769697B (zh) | 基于时间交织流水线架构的jpeg-ls压缩系统及方法 | |
| AU613938B2 (en) | Video compression algorithm | |
| JP2004517527A (ja) | グラフィック画像符号化 | |
| US6373989B1 (en) | Iterated image transformation and decoding apparatus and method, and recording medium | |
| CN117834926B (zh) | 用于dna存储的图像编解码方法、系统、设备及可读存储介质 | |
| KR100823498B1 (ko) | 이미지 압축을 위한 방법 | |
| JP3813337B2 (ja) | 消失誤り訂正方法とその装置 | |
| JPH02186836A (ja) | ベクトル量子化器 | |
| KR0175256B1 (ko) | 디지털 비디오 디스크 플레이어의 부영상 데이타 복호 방법 및 그 장치 | |
| JP3858959B2 (ja) | 画像処理装置 | |
| CN119011857A (zh) | 一种适用于mcu的图片压缩解压方法及系统 | |
| JP3427586B2 (ja) | データ処理装置及び記憶装置 | |
| JP2798025B2 (ja) | 動画像符号化方法及び装置 | |
| US20020094126A1 (en) | Fractal image compression | |
| JPH1169169A (ja) | イメージデータ圧縮方法 | |
| JPS62141860A (ja) | デ−タ処理方式 | |
| JPS6128264B2 (ja) |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| LAPS | Cancellation because of no payment of annual fees |