JPH0473667B2 - - Google Patents
Info
- Publication number
- JPH0473667B2 JPH0473667B2 JP59242570A JP24257084A JPH0473667B2 JP H0473667 B2 JPH0473667 B2 JP H0473667B2 JP 59242570 A JP59242570 A JP 59242570A JP 24257084 A JP24257084 A JP 24257084A JP H0473667 B2 JPH0473667 B2 JP H0473667B2
- Authority
- JP
- Japan
- Prior art keywords
- run
- bits
- unit
- string
- bit
- 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 - Lifetime
Links
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)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Image Processing (AREA)
- Digital Computer Display Output (AREA)
Description
〔産業上の利用分野〕
本発明はデイジタル・イメージ処理方法、更に
詳細に説明すれば、イメージをビツト・マツプ表
現からラン終了またはラン長表現に変換する方法
に関する。 〔従来技術〕 イメージを扱う方法はこれまでにも多数ある
が、本発明の方法についての教示または示唆は見
当らない。 〔発明が解決しようとする問題点〕 本発明の目的は、イメージを迅速にビツト・マ
ツプからラン終了またはラン長表現に変換するこ
とである。 〔問題点を解決するための手段〕 本発明が解決しようとする問題点は、次のステ
ツプの含む方法によつて解決される: ビツトマツプ中の第1の行(ライン)を索引表
のインデツクスとして使用し得る等しいビツト数
を持つユニツトに分割し、 (ロ) インデツクスとして使用されるユニツトを単
位として、第1のバイナリ値を先行ビツトとし
て有するユニツトにおける先行ビツトおよびこ
れに連続する上記第1のバイナリ値のビツトの
総数を索引可能な第1索引表を生成し、 (ハ) インデツクスとして使用されるユニツトを単
位として、第2のバイナリ値を先行ビツトとし
て有するユニツトにおける先行ビツトおよびこ
れに連続する上記第2のバイナリ値のビツトの
総数を索引可能な第2索引表を生成し、 (ニ) 上記イメージの第1行(ライン)をラン表現
に変換するステツプとして以下の(A)乃至(C)を実
行し、 (A) 上記第1行(ライン)の第1ビツト・スト
リングをラン表現に変換するステツプとし
て、 (a) 第1及びこれに連続するユニツトを上記
第1索引表に対するインデツクスとして用
いて、すべてのビツトが上記第1ストリン
グに属するビツトではないユニツトに到達
するまで、各ユニツトに含まれる先行ビツ
トの数を確定する、 (b) ラン表現バツフア中に上記第1ストリン
グのラン表現を記憶する、 (c) すべてのビツトが上記第1ストリングに
含まれるものではない上記ユニツト中の上
記第1ストリングに属する上記先行ビツト
を削除して、残りのイメージ・ビツトを先
行ビツト位置にシフトして、該ユニツトを
修正する、 (B) 上記第1行(ライン)の第2ビツト・スト
リングをラン表現に変換するステツプとし
て、 (d) 上記修正ユニツト及びこれに連続するユ
ニツトを上記第2索引表に対するインデツ
クスとして用いて、すべてのビツトが上記
第2ストリングに属するものではないユニ
ツトに到達するまでの各ユニツトに含まれ
る先行ビツトの数を確定する、 (e) ラン表現バツフア中に上記第2ストリン
グのラン表現を記憶する、 (f) すべてのビツトが上記第2ストリングに
含まれるものではない上記ユニツト中の上
記第2ストリングに属する上記先行ビツト
を削除して、残りのイメージ・ビツトを先
行ビツト位置にシフトして、該ユニツトを
修正する、 (C) 上記第1行(ライン)の全てのビツト・ス
トリングについて上記ラン表現バツフアにラ
ン表現での記憶が完了するまで、上記(A)及び
(B)のステツプを繰り返し、 (ホ) イメージの終端行まで連続する行について、
上記(イ)乃至(ニ)のステツプを繰り返す、 これらの方法に従つて変換を実行することによつ
て処理時間を短かくする。 〔作用〕 本発明の方法により、イメージは: イメージをビツト・マツプ表現として記憶し、
変換プロセスで使用するすべての変数を初期設定
し、連続するカラーのランの各々を表索引により
ラン終了に変換し、ラン終了の各々をカウント値
としてラン終了バツフアに書込み、連続するカラ
ーのランの各々の変換・書込みステツプをイメー
ジの終了まで反復実行することにより、ビツト・
マツプからラン終了またはラン長表現に変換され
る。 〔実施例〕 本発明による方法は、記憶領域にビツト・マツ
プとして表現された2進イメージ(8画素/バイ
ト)を、ラン終了すなわちラン長の一続きをベク
トル(イメージ・データのローごとに1ベクト
ル)に迅速に変換する。ラン終了は、イメージの
左端から各ランの最後の画素までの、ビツト(す
なわち画素)の変位を表わす。 本発明のアルゴリズムは、ラン長を表索引によ
つて見つける斬新な方法を用い、一般に2進イメ
ージに含まれている0(白)の画素のみの大きい
領域を利用し、ロー(横列、row)の右端での処
理を希にしか使われない経路表現を強制する技法
を使つて、イメージ・データのロー末尾の検査の
頻度を少なくするので、従来の方法よりもかなり
速い変換動作が得られる。 第1表および第2表は、2進イメージとそれに
対応する変換フオーマツトの例を示す。
詳細に説明すれば、イメージをビツト・マツプ表
現からラン終了またはラン長表現に変換する方法
に関する。 〔従来技術〕 イメージを扱う方法はこれまでにも多数ある
が、本発明の方法についての教示または示唆は見
当らない。 〔発明が解決しようとする問題点〕 本発明の目的は、イメージを迅速にビツト・マ
ツプからラン終了またはラン長表現に変換するこ
とである。 〔問題点を解決するための手段〕 本発明が解決しようとする問題点は、次のステ
ツプの含む方法によつて解決される: ビツトマツプ中の第1の行(ライン)を索引表
のインデツクスとして使用し得る等しいビツト数
を持つユニツトに分割し、 (ロ) インデツクスとして使用されるユニツトを単
位として、第1のバイナリ値を先行ビツトとし
て有するユニツトにおける先行ビツトおよびこ
れに連続する上記第1のバイナリ値のビツトの
総数を索引可能な第1索引表を生成し、 (ハ) インデツクスとして使用されるユニツトを単
位として、第2のバイナリ値を先行ビツトとし
て有するユニツトにおける先行ビツトおよびこ
れに連続する上記第2のバイナリ値のビツトの
総数を索引可能な第2索引表を生成し、 (ニ) 上記イメージの第1行(ライン)をラン表現
に変換するステツプとして以下の(A)乃至(C)を実
行し、 (A) 上記第1行(ライン)の第1ビツト・スト
リングをラン表現に変換するステツプとし
て、 (a) 第1及びこれに連続するユニツトを上記
第1索引表に対するインデツクスとして用
いて、すべてのビツトが上記第1ストリン
グに属するビツトではないユニツトに到達
するまで、各ユニツトに含まれる先行ビツ
トの数を確定する、 (b) ラン表現バツフア中に上記第1ストリン
グのラン表現を記憶する、 (c) すべてのビツトが上記第1ストリングに
含まれるものではない上記ユニツト中の上
記第1ストリングに属する上記先行ビツト
を削除して、残りのイメージ・ビツトを先
行ビツト位置にシフトして、該ユニツトを
修正する、 (B) 上記第1行(ライン)の第2ビツト・スト
リングをラン表現に変換するステツプとし
て、 (d) 上記修正ユニツト及びこれに連続するユ
ニツトを上記第2索引表に対するインデツ
クスとして用いて、すべてのビツトが上記
第2ストリングに属するものではないユニ
ツトに到達するまでの各ユニツトに含まれ
る先行ビツトの数を確定する、 (e) ラン表現バツフア中に上記第2ストリン
グのラン表現を記憶する、 (f) すべてのビツトが上記第2ストリングに
含まれるものではない上記ユニツト中の上
記第2ストリングに属する上記先行ビツト
を削除して、残りのイメージ・ビツトを先
行ビツト位置にシフトして、該ユニツトを
修正する、 (C) 上記第1行(ライン)の全てのビツト・ス
トリングについて上記ラン表現バツフアにラ
ン表現での記憶が完了するまで、上記(A)及び
(B)のステツプを繰り返し、 (ホ) イメージの終端行まで連続する行について、
上記(イ)乃至(ニ)のステツプを繰り返す、 これらの方法に従つて変換を実行することによつ
て処理時間を短かくする。 〔作用〕 本発明の方法により、イメージは: イメージをビツト・マツプ表現として記憶し、
変換プロセスで使用するすべての変数を初期設定
し、連続するカラーのランの各々を表索引により
ラン終了に変換し、ラン終了の各々をカウント値
としてラン終了バツフアに書込み、連続するカラ
ーのランの各々の変換・書込みステツプをイメー
ジの終了まで反復実行することにより、ビツト・
マツプからラン終了またはラン長表現に変換され
る。 〔実施例〕 本発明による方法は、記憶領域にビツト・マツ
プとして表現された2進イメージ(8画素/バイ
ト)を、ラン終了すなわちラン長の一続きをベク
トル(イメージ・データのローごとに1ベクト
ル)に迅速に変換する。ラン終了は、イメージの
左端から各ランの最後の画素までの、ビツト(す
なわち画素)の変位を表わす。 本発明のアルゴリズムは、ラン長を表索引によ
つて見つける斬新な方法を用い、一般に2進イメ
ージに含まれている0(白)の画素のみの大きい
領域を利用し、ロー(横列、row)の右端での処
理を希にしか使われない経路表現を強制する技法
を使つて、イメージ・データのロー末尾の検査の
頻度を少なくするので、従来の方法よりもかなり
速い変換動作が得られる。 第1表および第2表は、2進イメージとそれに
対応する変換フオーマツトの例を示す。
【表】
【表】
イメージを構成するビツトは、8ビツトを1バ
イトにパツトして記憶し、各ローの先頭と末尾は
バイト境界にあるものと仮定する。また、ローは
記憶領域に連続して配列されているものと仮定す
る。適切な初期設定によりローの先頭および(ま
たは)末尾のデータのスキツプが可能である。従
つて、ラン終了(ラン長)ベクトルで表わしたイ
メージはバイト境界で開始または終了しなくても
よい。イメージは、あたかもその右および(また
は)左の端に0または1ビツトのパツドを挿入し
たかのように変換することも可能である。 本発明の方法は、イメージを表わすラン終了ま
たはラン長を生成できる。ラン長を生成するに
は、現在のラン終了を含む変数を0にセツトして
から、各々の新しい値を計算すればよい。下記の
説明では、ラン終了を用いる。 本発明の良好な実施例では、ローごとに半ワー
ド列を含むラン終了バツフアを設ける。半ワード
の16ビツト(2バイト)は正の変位として32Kま
での幅を有するイメージを表わすのに適してい
る。ラン終了バツフアの各々の最初の半ワード
は、ラン終了データのバイト数とカウントの2バ
イトとの合計(すなわち、バツフア内の全デー
タ・バイト数)を表わす。最初の半ワードの後
に、3つの0のラン終了、複数の白・黒のラン終
了の対、そして最後の黒のラン終了の2つのコピ
ーが続く。若し、イメージ・ローが黒のランで始
まるなら、最初の白のラン終了は変位0に指定さ
れる。若し、イメージ・ローが白のランで終了す
るなら、最後の黒のラン終了は最後の白のラン終
了と同じ変位をとるので、実際には、最後のラン
終了の3つのコピーが生じる。前記第1表の2進
イメージの例は、スキツプもパツドも指定されな
い場合に、第2表に示すような3つのベクトルを
生じる。 変換アルゴリズムで用いる変数のリストを下記
に示す。その一部は第2図に使用されている。 BBITS:バイト内の先頭の、索引表から取出す
黒(1)のビツト数 BITCT:BYTEの処理済みのデータ・ビツト数 BYTE:現に処理中のイメージ・データのバイ
ト CT:現に書込まれた出力データが表わすビツト
数 IMGBYTE:IMGPTによりアドレスを指定され
たバイト IMGPT:入力イメージ・データを指すポインタ LFTPAD:左に挿入される埋込みビツト数 LIM:要求された全入力画素の処理が終了した
とき入力ローに生じた画素数 LINELEN:使用されるイメージ・データを含む
最初のバイトから、使用されないイメージ・デ
ータを含む最初のバイトまでのオフセツト NCOL:イメージのローごとに、出力バツフアに
表示される画素数 ORMASK:入力ローの末尾を越えた25〜32ビツ
トに“1”を書込むマスク P:入力イメージ・ローの末尾を越えた最初のビ
ツトを含むバイトを指すポインタ PADCOLOR:埋込みビツトの(白または黒の)
カラー表示 PWORD:4バイト単位の、Pによつてアドレス
を指定されたワード RC:出力バツフアの最初の単位(出力バツフア
内にある現在のローのデータ・バイト数を表わ
す) RL:索引されたラン終了の変数(出力バツフア
のRCに続く) RTPAD:右に挿入される埋込みビツト数 RUNCT:現に書込まれたラン終了データ・バイ
ト数 SVPWORD:PWORDが保管されている記憶領
域 W:RCおよびRLの個々の記憶要素の幅(バイト
単位) WBITS:バイト内の先頭の、索引表から取出す
白(0)のビツト数 X:一時変数 XSKIP:イメージ・データの各ローの先頭(左
端)でスキツプされるビツト数 本実施例の説明で特に重要な変数として: 現に検査中のイメージ・データのバイト
(BYTE)、イメージ・データの現在のローの処
理済みのビツト数(CT)、BITCT、切詰められ、
埋込まれたイメージ・ローの画素数(NCOL)、
LIM、各ローの左端でスキツプされる入力デー
タのビツト数(XSKIP)、LFTPADおよび
RTPAD、ならびに挿入される埋込みビツトのカ
ラー(白または黒)がある。スキツプも埋込みも
行なわれない簡単な場合には、LIMおよび
NCOLはどちらもイメージ・データのロー当りの
画素数に等しい。 本発明の方法は、1つのローのデータを一度に
処理する。ループに埋込んで複数のローを処理す
ることもできる。ローを処理する前に、第2図a
に示すように、一部の初期設定が行なわれる。最
初に、IMGPTおよびXSKIPを調整し、IMGPT
は、使用すべきデータを含む最初のバイトを指
し、XSKIPは、0〜7の範囲の値を得る。この
調整を行なうには、スキツプすべき8ビツトごと
に1バイトずつIMGPTを増加し、それに応じて
XSKIPを減少する(第2図aでは、NCOL、
LIM、LFTPAD、RTPADおよびXSKIPはビツ
ト単位で、LINELENはバイト単位で指定され、
PWORDは4バイト単位である。)。次に、使用す
るデータの最後のビツトの直後のビツトを含むバ
イトの、ローの先頭からのオフセツトは、必要な
入力ビツト数(NCOL−(LFTPAD+RTPAD))
にXSKIPを加えた結果をバイト数に変換する
(8で割る)ことにより得られ、その値は
LINELENに書込まれる。前記割算の余りは16進
値FFFFFFFFを論理的に右シフトするのに使用
し、ローの末尾に続くビツトを1にセツトするマ
スク(ORMASK)を生成する。LIMは、NCOL
とRTPADの差である。 第2図bは、イメージのビツト・マツプをラン
終了に変換し、ラン終了バツフアに書込む際のフ
オーマツトを示す。 Wは書込まれる要素の大きさ(バイト単位)を
示す。添字付きWおよびBは白および黒のラン終
了を表わす。現在のローのデータ・バイト数N
(最初の半ワード)は次式により計算される: N=2W(k+3) 最後の黒のロー終了BkはNCOLに等しい。 ローの最後のランが白の場合は、WkもNCOL
に等しい。 第3図は、イメージ・データの各ローの処理前
に実行する初期設定を示す。ブロツク200で、変
換するローの末尾の直後のビツトを最初のバイト
に含む4バイト・ワードPWORD(第2図a参照)
を、SVPWORDに保管し、記憶領域で、下記特
性を有するワードと置換える: (a) 符号化すべきイメージ・データのビツトがあ
る。 (b) これらのビツトの直後に、(あるとすれば)
完全に黒のビツトからなり、かつ黒のランの最
初のビツトを有する少なくとも1バイトの十分
な長さの黒のビツト列がある。 (c) この黒のビツト列に続いて少なくとも1つの
白のビツトがある。 このように、PWORDは黒のランを含み、長い
黒のラン(すなわち、ランの最初の画素を含まな
い黒の画素の、少なくとも1つのバイトを含むラ
ン)を処理する経路への進入を強制する。この経
路は、少なくとも9個の画素の黒のランに出会つ
た時にのみ進入でき、かつ、このようなランは代
表的なイメージでは割に希であるので、めつたに
使用されない。各ローの末尾でこの経路内に入る
ことを保証することにより、他のすべての経路で
ローの終了を検査しなくてもよい。大抵の場合、
これらの検査の省略により、動作が迅速になる。 次に、同じくブロツク200で、画素のカウンタ
CTをLFTPADに初期設定し(それによつて、適
切な数の埋込みビツトを符号化し)、最初の2つ
の0をラン終了バツフアに書込むとともに、イメ
ージ・データの最初のバイトを、BYTEにロー
ドし、スキツプすべきXSKIP画素をシフトアウ
トし、BITCTを、BYTE内の処理済みの画素数
を表わすようにセツトする。(若し、2バイト以
上を含むレジスタのような記憶素子内にBYTE
を保持しているなら、1ビツトでも含むバイトか
らデータをシフトするごとに、16進値000000FF
との論理積(AND)を実行することにより、こ
れらのビツトをマスク(消去)しなければならな
い。 続いて、入力データの左にパツドを挿入すべき
かどうかを決める(ブロツク210)。若し、挿入す
るパツドが白のビツトなら(ブロツク220)、ラン
終了バツフアに3番目の0を書込み(ブロツク
240)、内部ループ(第4図)の先頭の最初のラン
終了の書込ブロツク(260)をスキツプしてブロ
ツク270に進む。若し、挿入するパツドが黒のビ
ツトなら、ラン終了バツフアに3番目の0、続い
て、ローの最初の白のランがナルであることを示
す0を書込む(ブロツク230)。次に、イメージ・
データの最初のビツトが白か黒かを調べる(ブロ
ツク250)。黒の場合は、内部ループ(第4図)
の、黒のランを処理するブロツク260に進む。白
の場合は、内部ループの、黒のラン終了を書込む
部分を省略してブロツク340に進む。若し、左端
の埋込みを必要としなければ、CTは0であり、
内部ループに入る際、3番目の0としてラン終了
バツフアに書込まれる点に注目されたい。 第4図は、1つの白のランとそれに続く黒のラ
ンを処理する、変換プロセスの内部ループを示
す。内部ループは、反復動作で計算された黒(最
初の動作の場合は白)のラン終了を含むCTの値
の書込み(ブロツク260)で始まる。BYTEが0
しか含まなければ(ブロツク270)、(8−
BITCT)の値(BYTEに残つている未処理ビツ
ト数)をCTに加え、BITCTを0にセツトする
(ブロツク280)。そして、次のイメージ・データ
バイトが0のビツトしか含まないかどうかを検査
するループを開始する(ブロツク300)。0のビツ
トしか含まない場合は、CTに8を加え、イメー
ジ・データのアドレスを進め(ブロツク310)、次
のデータ・バイトを検査する(ブロツク300)。代
表的なイメージは白の画素の長いランを含むの
で、多くのプロセツサで使用可能な特殊な命令を
利用して、最初の非0バイトのバイト・フイール
ドを走査し、スキツプするバイト数が決まると、
CTはそのバイト数を8倍にした値だけ増加する
ことが望ましい。 最初のバイトが0であるかどうかにかかわら
ず、BYTEには少なくとも1つの黒のビツトを
含むバイトが得られる。白のランが終了した場所
を見つけるには、BYTEを使用してバイトごと
にバイト中の先頭の0のビツトの数を返す第1の
索引表(第5表)を索引する(ブロツク330)。こ
の値(X)はCTおよびBITCTにそれぞれ加えられ
る。ここで、白のランの終了位置を含んだCTが
書込まれ、BYTEは表索引によつて指示された
桁数だけ左シフトされる。この時点で、(黒と白
のラン終了はどちらも、このループの反復で書込
まれているので)ラン終了を書込む領域を指すポ
インタは、書込まれたランのデータ項目の2倍の
大きさだけ増加される。 ここで、黒のランの処理が可能である。
BYTEは少なくとも1つの先頭の黒のビツトを
有するバイトを含んでいる。黒のランがどこで終
了するかを見つけるには、BYTEを使用して、
バイトごとにバイト中の先頭の1のビツトの数を
返す第2の索引表(第6表)を索引する(ブロツ
ク340)。この値(X)はCTおよびBITCTに加えら
れ、BITEは指示された桁数だけ左シフトされ
る。 次に、BITCTが8に等しいかどうかを検査す
る(ブロツク350)。若し、等しくないなら、
BYTEには未処理の0のビツトがあるので、制
御はループの先頭(ブロツク260)に戻つて白の
ランを処理する。若し、BITCTが8に等しけれ
ば、元のデータ・バイトの全ビツトは処理済みで
ある。この場合、イメージ・データの次のバイト
が全1であるかどうかを検査する(ブロツク
360)。若し、全1なら、CTを8増加し、イメー
ジ・データを指すポインタを1増加し(ブロツク
370)、次いで、次のバイトも全1であるかどうか
を検査する(ブロツク380)。 このルーチンは、少なくとも1つの0のビツト
を含むバイトが見つかるまで反復実行される。0
のビツトを含むバイトが見つかると、(CTと
LIMを比較することにより)イメージ・データ
のローが終了したかどうかを検査し(ブロツク
390)、終了した場合は内部ループを抜け出る。 イメージ・データのローが終了していない場合
には、少なくとも1つの0のビツトを含むデー
タ・バイトがあり、入力データがまだ残つてい
る。この場合は、そのバイトをBYTEにロード
し、BYTEを使用して、第2の索引表を索引し、
先頭の1のビツトが何個含まれているかを調べる
(ブロツク400)。その値をBITCTにロードし、
CTをBITCTだけ増加する。BYTEは指示され
た桁数について左シフトされ、制御はループの先
頭(ブロツク260)に戻る。 内部ループから抜け出るとき、最後のラン終了
は、最後のランが白であつた場合にのみ書込まれ
る。最後のランのカラーは、必要ならば、記憶さ
れている最後の(白の)ラン終了とLIMとの比
較により、決定できる。すなわち、若し、両者が
等しければ、最後のランは白であつたことを意味
し、後続の黒のラン終了として、最後の白のラン
終了と等しい値をLIMに挿入する。若し、前記
比較で両者が等しくなければ、最後のランは黒で
あり、そのラン終了はLIMに含まれている。 第5図は、内部ループから抜出た後に実行され
る処理を示す。若し、右端に必要なパツトが存在
しないか(ブロツク410)、または黒であるなら
(ブロツク420)、黒のパツトは(あつたとしても)
LIMからNCOLまでのランを形成するので、最
後の黒のラン終了はNCOLによつて生じる。この
場合、NCOLの(黒のラン終了の)3つのコピー
を書込むだけでよい(ブロツク460)。若し、右の
パツドが白なら、最後に書込まれた(白の)ラン
終了を調べて、それが実際のイメージ・データ
(LIM)の末尾に及んでいるかどうかを判断する
(ブロツク430)。若し、末尾に及んでいるなら、
最後の白のラン終了は埋込みビツトを含む右端の
値(NCOL)と置換えられる(ブロツク450)。若
し、末尾に及んでいないなら、後続する黒のラン
終了は、イメージ・データの末尾の値(LIM)
と置換えられ、NCOLの白のラン終了がそれに続
いて書込まれる(ブロツク440)。処理はNCOLの
3つのコピーが書込まれるまで続く(ブロツク
460)。どの場合も、ラン終了データのバイト数が
書込まれ、内部ループからの抜出しを強制するよ
うに変更されたワードが復元される。そして、イ
メージの次のロー(若しあれば)が処理される。 基本的な変換アルゴリズムから多数の変形を得
ることができる。変数XSKIP、LFTPADおよび
RTPADのある組合せを0にすることにより、処
理は簡単になる。(例えば、RTPAD=0の場合、
変数LIM、NCOLを別個に持つ必要はない。こ
の場合、LIM=NCOLが常に成立するので、1
つの変数で間に合う。)出力のラン終了バツフア
に必要な精密なフオーマツトにより、本発明の実
施の細部はいくらか変更する。例えば、若し、出
力のラン終了バツフアの先頭の3つの0が除去さ
れれば、左に白のパツドがある場合、ラン終了バ
ツフアに3つの0を書込み、内部ループの先頭で
のCTの値の書込みをスキツプする特別の処理を
回避できる。この場合、CTは書込まれるが、そ
の情報は後に、ラン終了バツフアのデータ・バイ
ト数によつて書直される。 このアルゴリズムでは、ラン終了バツフアにあ
るデータ量を保管することは容易である。(バイ
ト・カウントというよりも)ラン終了数のカウン
トを書込むことも、または全く書込まないことも
可能である。このように、内部ループ外の動作の
大部分は、入力イメージについての仮定と、出力
データに必要なフオーマツトとにより制御され
る。内部ループはこれらの事項とは余り関係な
く、このループ内では主として、BYTEの変り
に使用されるイメージ・データの単位の大きさが
変更される。この単位は適切な大きさに決められ
るが、留意すべき点は、Nビツトの単位の場合、
WBITSおよびBBITSの索引表は2**N(2の
N乗)バイトを含むので、索引表に必要な記憶容
量という点から、大きい単位の使用は実際的では
ない。 本発明による方法は下記の特徴を有する: 右端に起こりそうもないラン(長い黒のラン)
の出現を強制することにより、起こりそうもない
ケースを扱う経路を除く全経路で、ローの末尾を
検査する必要性を取除く。それによつて、代表的
なイメージに必要な検査量が大幅に減少し、迅速
な動作が得られる。 適切な初期設定により、このアルゴリズムを用
いる交換の間に、入力イメージの切詰め・埋込み
が可能である。 黒と白のビツトを含むバイトに存在するラン部
分のラン終了の表索引は、ラン長の迅速な計算を
可能にする。長いランの場合、読込まれているバ
イトが単一の値(X‘00'またはX‘FF')である
かどうかの検査手順は、多くのプロセツサで使用
可能な、このような検査を連続バイト列で迅速に
実行する命令を利用するのに都合がよい。これら
の要素はどちらも迅速な動作を得るのに役立つ。 この機能は下記の入力を必要とする: (a) イメージ・データを指すポインタおよびラン
終了バツフアのスペースを指すポインタ (b) 変換されるイメージ・データのロー数 (c) 入力イメージの1つのローの先頭から次のロ
ーの先頭までの距離(バイト数) (d) 変数XSKIP、NCOL、LFTPADおよび
RTPADの値 (e) 使用される埋込みビツトのカラー 本発明の方法により、イメージの各ローはラン
終了に変換され、データ・バイト数(カウントの
2バイトとラン終了ごとの2バイトの和)、3つ
の0、複数の白・黒の対のラン終了、および最後
の黒のラン終了の2つの追加コピーから成る半ワ
ード列がラン終了バツフアに取込まれる。例え
ば、埋込みもスキツプも指定されない場合は、第
3表に示すイメージが、第4表に示す半ワード項
目に変換され、ラン終了バツフアに書込まれる。
イトにパツトして記憶し、各ローの先頭と末尾は
バイト境界にあるものと仮定する。また、ローは
記憶領域に連続して配列されているものと仮定す
る。適切な初期設定によりローの先頭および(ま
たは)末尾のデータのスキツプが可能である。従
つて、ラン終了(ラン長)ベクトルで表わしたイ
メージはバイト境界で開始または終了しなくても
よい。イメージは、あたかもその右および(また
は)左の端に0または1ビツトのパツドを挿入し
たかのように変換することも可能である。 本発明の方法は、イメージを表わすラン終了ま
たはラン長を生成できる。ラン長を生成するに
は、現在のラン終了を含む変数を0にセツトして
から、各々の新しい値を計算すればよい。下記の
説明では、ラン終了を用いる。 本発明の良好な実施例では、ローごとに半ワー
ド列を含むラン終了バツフアを設ける。半ワード
の16ビツト(2バイト)は正の変位として32Kま
での幅を有するイメージを表わすのに適してい
る。ラン終了バツフアの各々の最初の半ワード
は、ラン終了データのバイト数とカウントの2バ
イトとの合計(すなわち、バツフア内の全デー
タ・バイト数)を表わす。最初の半ワードの後
に、3つの0のラン終了、複数の白・黒のラン終
了の対、そして最後の黒のラン終了の2つのコピ
ーが続く。若し、イメージ・ローが黒のランで始
まるなら、最初の白のラン終了は変位0に指定さ
れる。若し、イメージ・ローが白のランで終了す
るなら、最後の黒のラン終了は最後の白のラン終
了と同じ変位をとるので、実際には、最後のラン
終了の3つのコピーが生じる。前記第1表の2進
イメージの例は、スキツプもパツドも指定されな
い場合に、第2表に示すような3つのベクトルを
生じる。 変換アルゴリズムで用いる変数のリストを下記
に示す。その一部は第2図に使用されている。 BBITS:バイト内の先頭の、索引表から取出す
黒(1)のビツト数 BITCT:BYTEの処理済みのデータ・ビツト数 BYTE:現に処理中のイメージ・データのバイ
ト CT:現に書込まれた出力データが表わすビツト
数 IMGBYTE:IMGPTによりアドレスを指定され
たバイト IMGPT:入力イメージ・データを指すポインタ LFTPAD:左に挿入される埋込みビツト数 LIM:要求された全入力画素の処理が終了した
とき入力ローに生じた画素数 LINELEN:使用されるイメージ・データを含む
最初のバイトから、使用されないイメージ・デ
ータを含む最初のバイトまでのオフセツト NCOL:イメージのローごとに、出力バツフアに
表示される画素数 ORMASK:入力ローの末尾を越えた25〜32ビツ
トに“1”を書込むマスク P:入力イメージ・ローの末尾を越えた最初のビ
ツトを含むバイトを指すポインタ PADCOLOR:埋込みビツトの(白または黒の)
カラー表示 PWORD:4バイト単位の、Pによつてアドレス
を指定されたワード RC:出力バツフアの最初の単位(出力バツフア
内にある現在のローのデータ・バイト数を表わ
す) RL:索引されたラン終了の変数(出力バツフア
のRCに続く) RTPAD:右に挿入される埋込みビツト数 RUNCT:現に書込まれたラン終了データ・バイ
ト数 SVPWORD:PWORDが保管されている記憶領
域 W:RCおよびRLの個々の記憶要素の幅(バイト
単位) WBITS:バイト内の先頭の、索引表から取出す
白(0)のビツト数 X:一時変数 XSKIP:イメージ・データの各ローの先頭(左
端)でスキツプされるビツト数 本実施例の説明で特に重要な変数として: 現に検査中のイメージ・データのバイト
(BYTE)、イメージ・データの現在のローの処
理済みのビツト数(CT)、BITCT、切詰められ、
埋込まれたイメージ・ローの画素数(NCOL)、
LIM、各ローの左端でスキツプされる入力デー
タのビツト数(XSKIP)、LFTPADおよび
RTPAD、ならびに挿入される埋込みビツトのカ
ラー(白または黒)がある。スキツプも埋込みも
行なわれない簡単な場合には、LIMおよび
NCOLはどちらもイメージ・データのロー当りの
画素数に等しい。 本発明の方法は、1つのローのデータを一度に
処理する。ループに埋込んで複数のローを処理す
ることもできる。ローを処理する前に、第2図a
に示すように、一部の初期設定が行なわれる。最
初に、IMGPTおよびXSKIPを調整し、IMGPT
は、使用すべきデータを含む最初のバイトを指
し、XSKIPは、0〜7の範囲の値を得る。この
調整を行なうには、スキツプすべき8ビツトごと
に1バイトずつIMGPTを増加し、それに応じて
XSKIPを減少する(第2図aでは、NCOL、
LIM、LFTPAD、RTPADおよびXSKIPはビツ
ト単位で、LINELENはバイト単位で指定され、
PWORDは4バイト単位である。)。次に、使用す
るデータの最後のビツトの直後のビツトを含むバ
イトの、ローの先頭からのオフセツトは、必要な
入力ビツト数(NCOL−(LFTPAD+RTPAD))
にXSKIPを加えた結果をバイト数に変換する
(8で割る)ことにより得られ、その値は
LINELENに書込まれる。前記割算の余りは16進
値FFFFFFFFを論理的に右シフトするのに使用
し、ローの末尾に続くビツトを1にセツトするマ
スク(ORMASK)を生成する。LIMは、NCOL
とRTPADの差である。 第2図bは、イメージのビツト・マツプをラン
終了に変換し、ラン終了バツフアに書込む際のフ
オーマツトを示す。 Wは書込まれる要素の大きさ(バイト単位)を
示す。添字付きWおよびBは白および黒のラン終
了を表わす。現在のローのデータ・バイト数N
(最初の半ワード)は次式により計算される: N=2W(k+3) 最後の黒のロー終了BkはNCOLに等しい。 ローの最後のランが白の場合は、WkもNCOL
に等しい。 第3図は、イメージ・データの各ローの処理前
に実行する初期設定を示す。ブロツク200で、変
換するローの末尾の直後のビツトを最初のバイト
に含む4バイト・ワードPWORD(第2図a参照)
を、SVPWORDに保管し、記憶領域で、下記特
性を有するワードと置換える: (a) 符号化すべきイメージ・データのビツトがあ
る。 (b) これらのビツトの直後に、(あるとすれば)
完全に黒のビツトからなり、かつ黒のランの最
初のビツトを有する少なくとも1バイトの十分
な長さの黒のビツト列がある。 (c) この黒のビツト列に続いて少なくとも1つの
白のビツトがある。 このように、PWORDは黒のランを含み、長い
黒のラン(すなわち、ランの最初の画素を含まな
い黒の画素の、少なくとも1つのバイトを含むラ
ン)を処理する経路への進入を強制する。この経
路は、少なくとも9個の画素の黒のランに出会つ
た時にのみ進入でき、かつ、このようなランは代
表的なイメージでは割に希であるので、めつたに
使用されない。各ローの末尾でこの経路内に入る
ことを保証することにより、他のすべての経路で
ローの終了を検査しなくてもよい。大抵の場合、
これらの検査の省略により、動作が迅速になる。 次に、同じくブロツク200で、画素のカウンタ
CTをLFTPADに初期設定し(それによつて、適
切な数の埋込みビツトを符号化し)、最初の2つ
の0をラン終了バツフアに書込むとともに、イメ
ージ・データの最初のバイトを、BYTEにロー
ドし、スキツプすべきXSKIP画素をシフトアウ
トし、BITCTを、BYTE内の処理済みの画素数
を表わすようにセツトする。(若し、2バイト以
上を含むレジスタのような記憶素子内にBYTE
を保持しているなら、1ビツトでも含むバイトか
らデータをシフトするごとに、16進値000000FF
との論理積(AND)を実行することにより、こ
れらのビツトをマスク(消去)しなければならな
い。 続いて、入力データの左にパツドを挿入すべき
かどうかを決める(ブロツク210)。若し、挿入す
るパツドが白のビツトなら(ブロツク220)、ラン
終了バツフアに3番目の0を書込み(ブロツク
240)、内部ループ(第4図)の先頭の最初のラン
終了の書込ブロツク(260)をスキツプしてブロ
ツク270に進む。若し、挿入するパツドが黒のビ
ツトなら、ラン終了バツフアに3番目の0、続い
て、ローの最初の白のランがナルであることを示
す0を書込む(ブロツク230)。次に、イメージ・
データの最初のビツトが白か黒かを調べる(ブロ
ツク250)。黒の場合は、内部ループ(第4図)
の、黒のランを処理するブロツク260に進む。白
の場合は、内部ループの、黒のラン終了を書込む
部分を省略してブロツク340に進む。若し、左端
の埋込みを必要としなければ、CTは0であり、
内部ループに入る際、3番目の0としてラン終了
バツフアに書込まれる点に注目されたい。 第4図は、1つの白のランとそれに続く黒のラ
ンを処理する、変換プロセスの内部ループを示
す。内部ループは、反復動作で計算された黒(最
初の動作の場合は白)のラン終了を含むCTの値
の書込み(ブロツク260)で始まる。BYTEが0
しか含まなければ(ブロツク270)、(8−
BITCT)の値(BYTEに残つている未処理ビツ
ト数)をCTに加え、BITCTを0にセツトする
(ブロツク280)。そして、次のイメージ・データ
バイトが0のビツトしか含まないかどうかを検査
するループを開始する(ブロツク300)。0のビツ
トしか含まない場合は、CTに8を加え、イメー
ジ・データのアドレスを進め(ブロツク310)、次
のデータ・バイトを検査する(ブロツク300)。代
表的なイメージは白の画素の長いランを含むの
で、多くのプロセツサで使用可能な特殊な命令を
利用して、最初の非0バイトのバイト・フイール
ドを走査し、スキツプするバイト数が決まると、
CTはそのバイト数を8倍にした値だけ増加する
ことが望ましい。 最初のバイトが0であるかどうかにかかわら
ず、BYTEには少なくとも1つの黒のビツトを
含むバイトが得られる。白のランが終了した場所
を見つけるには、BYTEを使用してバイトごと
にバイト中の先頭の0のビツトの数を返す第1の
索引表(第5表)を索引する(ブロツク330)。こ
の値(X)はCTおよびBITCTにそれぞれ加えられ
る。ここで、白のランの終了位置を含んだCTが
書込まれ、BYTEは表索引によつて指示された
桁数だけ左シフトされる。この時点で、(黒と白
のラン終了はどちらも、このループの反復で書込
まれているので)ラン終了を書込む領域を指すポ
インタは、書込まれたランのデータ項目の2倍の
大きさだけ増加される。 ここで、黒のランの処理が可能である。
BYTEは少なくとも1つの先頭の黒のビツトを
有するバイトを含んでいる。黒のランがどこで終
了するかを見つけるには、BYTEを使用して、
バイトごとにバイト中の先頭の1のビツトの数を
返す第2の索引表(第6表)を索引する(ブロツ
ク340)。この値(X)はCTおよびBITCTに加えら
れ、BITEは指示された桁数だけ左シフトされ
る。 次に、BITCTが8に等しいかどうかを検査す
る(ブロツク350)。若し、等しくないなら、
BYTEには未処理の0のビツトがあるので、制
御はループの先頭(ブロツク260)に戻つて白の
ランを処理する。若し、BITCTが8に等しけれ
ば、元のデータ・バイトの全ビツトは処理済みで
ある。この場合、イメージ・データの次のバイト
が全1であるかどうかを検査する(ブロツク
360)。若し、全1なら、CTを8増加し、イメー
ジ・データを指すポインタを1増加し(ブロツク
370)、次いで、次のバイトも全1であるかどうか
を検査する(ブロツク380)。 このルーチンは、少なくとも1つの0のビツト
を含むバイトが見つかるまで反復実行される。0
のビツトを含むバイトが見つかると、(CTと
LIMを比較することにより)イメージ・データ
のローが終了したかどうかを検査し(ブロツク
390)、終了した場合は内部ループを抜け出る。 イメージ・データのローが終了していない場合
には、少なくとも1つの0のビツトを含むデー
タ・バイトがあり、入力データがまだ残つてい
る。この場合は、そのバイトをBYTEにロード
し、BYTEを使用して、第2の索引表を索引し、
先頭の1のビツトが何個含まれているかを調べる
(ブロツク400)。その値をBITCTにロードし、
CTをBITCTだけ増加する。BYTEは指示され
た桁数について左シフトされ、制御はループの先
頭(ブロツク260)に戻る。 内部ループから抜け出るとき、最後のラン終了
は、最後のランが白であつた場合にのみ書込まれ
る。最後のランのカラーは、必要ならば、記憶さ
れている最後の(白の)ラン終了とLIMとの比
較により、決定できる。すなわち、若し、両者が
等しければ、最後のランは白であつたことを意味
し、後続の黒のラン終了として、最後の白のラン
終了と等しい値をLIMに挿入する。若し、前記
比較で両者が等しくなければ、最後のランは黒で
あり、そのラン終了はLIMに含まれている。 第5図は、内部ループから抜出た後に実行され
る処理を示す。若し、右端に必要なパツトが存在
しないか(ブロツク410)、または黒であるなら
(ブロツク420)、黒のパツトは(あつたとしても)
LIMからNCOLまでのランを形成するので、最
後の黒のラン終了はNCOLによつて生じる。この
場合、NCOLの(黒のラン終了の)3つのコピー
を書込むだけでよい(ブロツク460)。若し、右の
パツドが白なら、最後に書込まれた(白の)ラン
終了を調べて、それが実際のイメージ・データ
(LIM)の末尾に及んでいるかどうかを判断する
(ブロツク430)。若し、末尾に及んでいるなら、
最後の白のラン終了は埋込みビツトを含む右端の
値(NCOL)と置換えられる(ブロツク450)。若
し、末尾に及んでいないなら、後続する黒のラン
終了は、イメージ・データの末尾の値(LIM)
と置換えられ、NCOLの白のラン終了がそれに続
いて書込まれる(ブロツク440)。処理はNCOLの
3つのコピーが書込まれるまで続く(ブロツク
460)。どの場合も、ラン終了データのバイト数が
書込まれ、内部ループからの抜出しを強制するよ
うに変更されたワードが復元される。そして、イ
メージの次のロー(若しあれば)が処理される。 基本的な変換アルゴリズムから多数の変形を得
ることができる。変数XSKIP、LFTPADおよび
RTPADのある組合せを0にすることにより、処
理は簡単になる。(例えば、RTPAD=0の場合、
変数LIM、NCOLを別個に持つ必要はない。こ
の場合、LIM=NCOLが常に成立するので、1
つの変数で間に合う。)出力のラン終了バツフア
に必要な精密なフオーマツトにより、本発明の実
施の細部はいくらか変更する。例えば、若し、出
力のラン終了バツフアの先頭の3つの0が除去さ
れれば、左に白のパツドがある場合、ラン終了バ
ツフアに3つの0を書込み、内部ループの先頭で
のCTの値の書込みをスキツプする特別の処理を
回避できる。この場合、CTは書込まれるが、そ
の情報は後に、ラン終了バツフアのデータ・バイ
ト数によつて書直される。 このアルゴリズムでは、ラン終了バツフアにあ
るデータ量を保管することは容易である。(バイ
ト・カウントというよりも)ラン終了数のカウン
トを書込むことも、または全く書込まないことも
可能である。このように、内部ループ外の動作の
大部分は、入力イメージについての仮定と、出力
データに必要なフオーマツトとにより制御され
る。内部ループはこれらの事項とは余り関係な
く、このループ内では主として、BYTEの変り
に使用されるイメージ・データの単位の大きさが
変更される。この単位は適切な大きさに決められ
るが、留意すべき点は、Nビツトの単位の場合、
WBITSおよびBBITSの索引表は2**N(2の
N乗)バイトを含むので、索引表に必要な記憶容
量という点から、大きい単位の使用は実際的では
ない。 本発明による方法は下記の特徴を有する: 右端に起こりそうもないラン(長い黒のラン)
の出現を強制することにより、起こりそうもない
ケースを扱う経路を除く全経路で、ローの末尾を
検査する必要性を取除く。それによつて、代表的
なイメージに必要な検査量が大幅に減少し、迅速
な動作が得られる。 適切な初期設定により、このアルゴリズムを用
いる交換の間に、入力イメージの切詰め・埋込み
が可能である。 黒と白のビツトを含むバイトに存在するラン部
分のラン終了の表索引は、ラン長の迅速な計算を
可能にする。長いランの場合、読込まれているバ
イトが単一の値(X‘00'またはX‘FF')である
かどうかの検査手順は、多くのプロセツサで使用
可能な、このような検査を連続バイト列で迅速に
実行する命令を利用するのに都合がよい。これら
の要素はどちらも迅速な動作を得るのに役立つ。 この機能は下記の入力を必要とする: (a) イメージ・データを指すポインタおよびラン
終了バツフアのスペースを指すポインタ (b) 変換されるイメージ・データのロー数 (c) 入力イメージの1つのローの先頭から次のロ
ーの先頭までの距離(バイト数) (d) 変数XSKIP、NCOL、LFTPADおよび
RTPADの値 (e) 使用される埋込みビツトのカラー 本発明の方法により、イメージの各ローはラン
終了に変換され、データ・バイト数(カウントの
2バイトとラン終了ごとの2バイトの和)、3つ
の0、複数の白・黒の対のラン終了、および最後
の黒のラン終了の2つの追加コピーから成る半ワ
ード列がラン終了バツフアに取込まれる。例え
ば、埋込みもスキツプも指定されない場合は、第
3表に示すイメージが、第4表に示す半ワード項
目に変換され、ラン終了バツフアに書込まれる。
【表】
【表】
索引表WBITSおよびBBITSはそれぞれ第5表
および第6表に示す値に初期設定されている:
および第6表に示す値に初期設定されている:
【表】
本発明によれば従来よりも短時間でイメージを
ビツト・マツプからラン表現に変換できる。
ビツト・マツプからラン表現に変換できる。
第1図は本発明の方法の流れ図、第2図は本発
明による変換フオーマツトを示す図、第3図は本
発明の方法のロー初期設定プロセスを示す流れ
図、第4図は本発明の方法のラン対処理の流れ
図、第5図は本発明の方法のロー終了の処理の流
れ図である。 100……イメージ記憶ステツプ、110……
変数初期設定ステツプ、120……表現変換ステ
ツプ、130……ラン表現記憶ステツプ、140
……イメージ終了ステツプ。
明による変換フオーマツトを示す図、第3図は本
発明の方法のロー初期設定プロセスを示す流れ
図、第4図は本発明の方法のラン対処理の流れ
図、第5図は本発明の方法のロー終了の処理の流
れ図である。 100……イメージ記憶ステツプ、110……
変数初期設定ステツプ、120……表現変換ステ
ツプ、130……ラン表現記憶ステツプ、140
……イメージ終了ステツプ。
Claims (1)
- 【特許請求の範囲】 1 バイナリ値から構成されビツトマツプ表現に
よつて記憶されたイメージをラン表現に変換する
方法であつて、 (イ) 上記ビツトマツプ中の第1の行(ライン)を
索引表のインデツクスとして使用し得る等しい
ビツト数を持つユニツトに分割し、 (ロ) インデツクスとして使用されるユニツトを単
位として、第1のバイナリ値を先行ビツトとし
て有するユニツトにおける先行ビツトおよびこ
れに連続する上記第1のバイナリ値のビツトの
総数を索引可能な第1索引表を生成し、 (ハ) インデツクスとして使用されるユニツトを単
位として、第2のバイナリ値を先行ビツトとし
て有するユニツトにおける先行ビツトおよびこ
れに連続する上記第2のバイナリ値のビツトの
総数を索引可能な第2索引表を生成し、 (ニ) 上記イメージの第1行(ライン)をラン表現
に変換するステツプとして以下の(A)乃至(C)を実
行し、 (A) 上記第1行(ライン)の第1ビツト・スト
リングをラン表現に変換するステツプとし
て、 (a) 第1及びこれに連続するユニツトを上記
第1索引表に対するインデツクスとして用
いて、すべてのビツトが上記第1ストリン
グに属するビツトではないユニツトに到達
するまで、各ユニツトに含まれる先行ビツ
トの数を確定する、 (b) ラン表現バツフア中に上記第1ストリン
グのラン表現を記憶する、 (c) すべてのビツトが上記第1ストリングに
含まれるものではない上記ユニツト中の上
記第1ストリングに属する上記先行ビツト
を削除して、残りのイメージ・ビツトを先
行ビツト位置にシフトして、該ユニツトを
修正する、 (B) 上記第1行(ライン)の第2ビツト・スト
リングをラン表現に変換するステツプとし
て、 (d) 上記修正ユニツト及びこれに連続するユ
ニツトを上記第2索引表に対するインデツ
クスとして用いて、すべてのビツトが上記
第2ストリングに属するものではないユニ
ツトに到達するまでの各ユニツトに含まれ
る先行ビツトの数を確定する、 (e) ラン表現バツフア中に上記第2ストリン
グのラン表現を記憶する、 (f) すべてのビツトが上記第2ストリングに
含まれるものではない上記ユニツト中の上
記第2ストリングに属する上記先行ビツト
を削除して、残りのイメージ・ビツトを先
行ビツト位置にシフトして、該ユニツトを
修正する、 (C) 上記第1行(ライン)の全てのビツト・ス
トリングについて上記ラン表現バツフアにラ
ン表現での記憶が完了するまで、上記(A)及び
(B)のステツプを繰り返し、 (ホ) イメージの終端行まで連続する行について、
上記(イ)乃至(ニ)のステツプを繰り返すことを特徴
とする、ビツト・マツプからラン表現へのイメ
ージ変換方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US06/567,218 US4610027A (en) | 1983-12-30 | 1983-12-30 | Method for converting a bit map of an image to a run length or run end representation |
| US567218 | 1983-12-30 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JPS60146326A JPS60146326A (ja) | 1985-08-02 |
| JPH0473667B2 true JPH0473667B2 (ja) | 1992-11-24 |
Family
ID=24266234
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP59242570A Granted JPS60146326A (ja) | 1983-12-30 | 1984-11-19 | ビット・マップからラン表現へのイメージ変換方法 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US4610027A (ja) |
| EP (1) | EP0149122B1 (ja) |
| JP (1) | JPS60146326A (ja) |
| CA (1) | CA1232356A (ja) |
| DE (1) | DE3484136D1 (ja) |
Families Citing this family (24)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| EP0148413B1 (de) * | 1983-12-19 | 1988-06-22 | WILLI STUDER AG Fabrik für elektronische Apparate | Verfahren und Vorrichtung zur Wiedergabe von digitalisierten Signalen, die als binäre Signale in Form von Pulsen übertragen werden |
| JPS60198966A (ja) * | 1984-03-22 | 1985-10-08 | Fujitsu Ltd | 符号デ−タ処理方式 |
| US4646356A (en) * | 1984-06-29 | 1987-02-24 | International Business Machines Corporation | Method for converting a bit map of an image to a run length or run end representation |
| EP0212905B1 (en) * | 1985-08-08 | 1994-06-08 | Canon Kabushiki Kaisha | Decoding apparatus for image code |
| 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 |
| US4870498A (en) * | 1987-09-15 | 1989-09-26 | Printware, Inc. | Decompressing run-length-encoded to transition-encoded font image information in an image generator |
| JP2672521B2 (ja) * | 1987-09-21 | 1997-11-05 | 株式会社東芝 | 画像処理方法 |
| US4866784A (en) * | 1987-12-02 | 1989-09-12 | Eastman Kodak Company | Skew detector for digital image processing system |
| US4813056A (en) * | 1987-12-08 | 1989-03-14 | General Electric Company | Modified statistical coding of digital signals |
| US5095512A (en) * | 1988-10-24 | 1992-03-10 | Netexpress Systems, Inc. | Method and apparatus for manipulating image data employing an intermediate format |
| US5146221A (en) * | 1989-01-13 | 1992-09-08 | Stac, Inc. | Data compression apparatus and method |
| US5532694A (en) * | 1989-01-13 | 1996-07-02 | Stac Electronics, Inc. | Data compression apparatus and method using matching string searching and Huffman encoding |
| US5049880A (en) * | 1990-04-02 | 1991-09-17 | Tektronix, Inc. | Bit-wise run-length encoding for data compression |
| JPH05130434A (ja) * | 1991-10-31 | 1993-05-25 | Canon Inc | 画像圧縮装置 |
| JP2959916B2 (ja) * | 1992-10-28 | 1999-10-06 | 松下電器産業株式会社 | デジタル・ビデオ・コーダ用のバーサタイルなエスケープ・ラン・レベル・コーダ |
| US5363098A (en) * | 1993-10-25 | 1994-11-08 | Digital Equipment Corporation | Byte aligned data compression |
| JP2836467B2 (ja) * | 1993-12-16 | 1998-12-14 | 日本電気株式会社 | 2値シンボルの符号化・復号化回路 |
| GB2290430B (en) * | 1994-06-09 | 1998-08-05 | Screen Subtitling Systems Ltd | Subtitling video data |
| AU695626B2 (en) * | 1995-02-03 | 1998-08-20 | Koninklijke Philips Electronics N.V. | Video image colour encoding |
| 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 |
| DE10205546B4 (de) * | 2002-02-11 | 2006-01-12 | Nexpress Solutions Llc | Verfahren zur Datenkomprimierung von Bildmaskendaten |
| EP1988703A1 (en) * | 2007-05-02 | 2008-11-05 | TTPCOM Limited | Image transformation |
| CN101697116B (zh) * | 2009-10-27 | 2011-11-09 | 飞天诚信科技股份有限公司 | 数据变换方法及装置 |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3980809A (en) * | 1973-07-16 | 1976-09-14 | International Business Machines Corporation | Encoding logic for reduced bandwidth pictorial data transmission system |
| SE406407B (sv) * | 1975-11-25 | 1979-02-05 | Hell Rudolf Dr Ing Gmbh | Forfarande for digital loplengdkodning med redundansreduktion for overforande av binert kodade bildinformationer |
| 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 |
| US4386373A (en) * | 1980-07-18 | 1983-05-31 | Ricoh Company, Ltd. | Facsimile apparatus |
| JPS5761379A (en) * | 1980-09-30 | 1982-04-13 | Ricoh Co Ltd | Encoding or decoding device |
| KR850001657B1 (ko) * | 1981-03-06 | 1985-11-06 | 야마모도 다꾸마 | 영상(影像) 데이터 변환법 및 문자 코우드와 문자패턴 변환장치 |
| JPS57197961A (en) * | 1981-03-11 | 1982-12-04 | Fujitsu Ltd | Conversion system for image data |
| JPS5836073A (ja) * | 1981-08-27 | 1983-03-02 | Kokusai Denshin Denwa Co Ltd <Kdd> | ペアラン符号化方式 |
-
1983
- 1983-12-30 US US06/567,218 patent/US4610027A/en not_active Expired - Fee Related
-
1984
- 1984-11-19 JP JP59242570A patent/JPS60146326A/ja active Granted
- 1984-11-23 CA CA000468560A patent/CA1232356A/en not_active Expired
- 1984-12-11 DE DE8484115009T patent/DE3484136D1/de not_active Expired - Lifetime
- 1984-12-11 EP EP84115009A patent/EP0149122B1/en not_active Expired
Also Published As
| Publication number | Publication date |
|---|---|
| EP0149122B1 (en) | 1991-02-20 |
| EP0149122A3 (en) | 1987-07-15 |
| JPS60146326A (ja) | 1985-08-02 |
| US4610027A (en) | 1986-09-02 |
| EP0149122A2 (en) | 1985-07-24 |
| DE3484136D1 (de) | 1991-03-28 |
| CA1232356A (en) | 1988-02-02 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| JPH0473667B2 (ja) | ||
| EP0149121B1 (en) | A method for converting an image from a run end or run length representation to a bit map | |
| US4783834A (en) | System for creating transposed image data from a run end or run length representation of an image | |
| US5442350A (en) | Method and means providing static dictionary structures for compressing character data and expanding compressed data | |
| JPS60146368A (ja) | 2進イメ−ジ引伸し方法 | |
| JP4129242B2 (ja) | ビットストリーム・フォーマット、ならびにその読み取りおよび書き込み方法および装置 | |
| US12034463B2 (en) | Systems and methods for lossless compression of tabular numeric data | |
| JPH1132328A (ja) | 多値画像データにおけるデータ圧縮方法、データ圧縮装置および記録媒体 | |
| CN115550661B (zh) | 一种图像压缩方法、复原方法、计算设备及可读存储介质 | |
| JPH0434669A (ja) | 画像処理方式 | |
| CN119109463B (zh) | 一种地震数据压缩方法、解压方法和装置 | |
| JPH06217110A (ja) | 画像変換方法 | |
| CN115729464A (zh) | 通过数据压缩和解压缩实现fifo存储器容量提升的装置 | |
| JP3038233B2 (ja) | データ圧縮及び復元装置 | |
| US6608940B1 (en) | Lossless image compression | |
| US12073172B2 (en) | Encoded string processing | |
| JP2021051448A (ja) | 情報処理装置、疎行列格納方法及びプログラム | |
| JPS642970B2 (ja) | ||
| CN100574435C (zh) | 影像压缩方法 | |
| CN116320067A (zh) | 图像数据的传输方法、装置及计算机设备 | |
| CN114969791A (zh) | 一种数据加密方法、装置、计算机设备和存储介质 | |
| JPH0683573A (ja) | データ圧縮方式 | |
| HK40035309B (zh) | 动画数据编码、解码方法、装置、存储介质和计算机设备 | |
| Deen | The VICAR file format | |
| JPH10275105A (ja) | データ圧縮方法とデータ復元方法およびソートマージ処理装置とソートマージ処理方法およびこれら方法のプログラムを記録した媒体 |