(57)【特許請求の範囲】
【請求項１】
バイナリイメージ信号の規則的なアレイとして表されるバイナリ入力イメージを圧縮するように、イメージ処理システム内で動作する方法であって、
（Ａ）同じ状態を有する複数のバイナリイメージ信号の、二次元の直交的に形成された領域と前記直交的に形成された領域を包囲する境界とを識別するために、
（１）前記バイナリ入力イメージにおける第１の画素の状態を識別する段階と、
（２）（ａ）現在の画素の位置を、前記第１の画素と前記現在の画素とによって境界を画している方形内の画素が前記第１の画素と同じ状態でなくなるまで、前記バイナリ入力イメージの対角線状に移動させ、次いで（ｂ）前記現在の画素の位置を、前記境界を画している方形に囲われている全ての画素が前記第１の画素と同じ状態であるように対角線状に戻って移動させる段階とによって、前記二次元の直交的に形成された領域を識別する段階と、
（Ｂ）前記直交的に形成された領域のサイズを決定する段階と、
（Ｃ）前記直交的に形成された領域の状態およびサイズをディジタルデータワードとしてエンコードする段階と、
（Ｄ）前記エンコードされた形状およびサイズを表す前記ディジタルデータワードを圧縮メモリ内に格納する段階と、
（Ｅ）前記バイナリ入力イメージ内に存在するバイナリイメージ信号の、複数の直交的に形成された領域の各々について前記諸段階を繰り返す段階と
から成ることを特徴とする方法。
【請求項２】
バイナリイメージ信号の規則的なアレイとして表されるバイナリ入力イメージを圧縮するように、イメージ処理システム内で動作する方法であって、
（Ａ）同じ状態を有する複数のバイナリイメージ信号の、二次元の直交的に形成された領域と前記直交的に形成された領域を包囲する境界とを識別するために、
（１）前記バイナリ入力イメージにおける第１の画素の状態を識別する段階と、
（２）（ａ）現在の画素の位置を、前記領域にある各画素が前記第１の画素と同じ状態を有している限り、前記第１の画素の現在の行において１列ずつ移動させ、（ｂ）前記現在の画素の位置を、該現在の画素が異なる状態の画素に到達したとき、前記現在の行において前記第１の画素と同じ状態を持つ、以前の画素まで戻し、（ｃ）前記現在の画素の位置を、前記第１の画素の位置と前記現在の画素の位置とによって定められる、境界を画する領域内に囲われている画素が前記第１の画素の状態と異なるまで、列方向に移動させ、（ｄ）前記現在の画素位置を、前記境界を画する領域内に囲われている全ての画素が前記第１の画素と同じ状態を有する最後の画素まで列方向に戻るように移動させる段階とによって、前記二次元の直交的に形成された領域を識別する段階と、
（Ｂ）前記直交的に形成された領域のサイズを決定する段階と、
（Ｃ）前記直交的に形成された領域の状態およびサイズをディジタルデータワードとしてエンコードする段階と、
（Ｄ）前記エンコードされた形状およびサイズを表す前記ディジタルデータワードを圧縮メモリ内に格納する段階と、
（Ｅ）前記バイナリ入力イメージ内に存在するバイナリイメージ信号の、複数の直交的に形成された領域の各々について前記諸段階を繰り返す段階と
から成ることを特徴とする方法。
【請求項３】
バイナリイメージ信号の規則的なアレイとして表されるバイナリ入力イメージを圧縮するように、イメージ処理システム内で動作する方法であって、
（Ａ）同じ状態を有する複数のバイナリイメージ信号の、二次元の直交的に形成された領域と前記直交的に形成された領域を包囲する境界とを識別するために、
（１）前記バイナリ入力イメージにおける第１の画素の状態を識別する段階と、
（２）（ａ）現在の画素の位置を、前記領域にある各画素が前記第１の画素と同じ状態を有している限り、前記第１の画素の現在の列において１行ずつ移動させ、（ｂ）前記現在の画素の位置を、該現在の画素が異なる状態の画素に到達したとき、前記現在の列において前記第１の画素と同じ状態を持つ、以前の画素まで戻し、（ｃ）前記現在の画素の位置を、前記第１の画素の位置と前記現在の画素の位置とによって定められる、境界を画する領域内に囲われている画素が前記第１の画素の状態と異なるまで、行方向に移動させ、（ｄ）前記現在の画素位置を、前記境界を画する領域内に囲われている全ての画素が前記第１の画素と同じ状態を有する最後の画素まで行方向に戻るように移動させる段階とによって、前記二次元の直交的に形成された領域を識別する段階と、
（Ｂ）前記直交的に形成された領域のサイズを決定する段階と、
（Ｃ）前記直交的に形成された領域の状態およびサイズをディジタルデータワードとしてエンコードする段階と、
（Ｄ）前記エンコードされた形状およびサイズを表す前記ディジタルデータワードを圧縮メモリ内に格納する段階と、
（Ｅ）  前記バイナリ入力イメージ内に存在するバイナリイメージ信号の、複数の直交的に形成された領域の各々について前記諸段階を繰り返す段階と
から成ることを特徴とする方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、一般的にはバイナリイメージの圧縮に関し、より詳しく述べれば高解像度で格納または伝送されるバイナリイメージの無損失事前圧縮に関する。
【０００２】
【従来の技術】
本発明は、高解像度で格納または伝送されるバイナリイメージの無損失事前圧縮に関する。より詳しく述べれば、本発明は面積をベースとする圧縮技術を使用し、この技術は高解像度でビット複製されたイメージに適する。この技術は、ある共通するカラーの規則的な大きさのイメージ領域を探索し、それらの面積をコード化して表現する。本発明が使用するこの圧縮技術によれば、高解像度イメージを生成した元のビットマップバイナリイメージの無損失圧縮によって典型的に得られるイメージサイズに近いイメージサイズに高解像度イメージを圧縮して格納するか、または伝送することができる。この技術は、バイナリイメージに最も適しているが、個々のビットの各面（プレーン）をバイナリイメージとして処理することによって、多重ビット／画素グレイスケールイメージに適用することができる。
【０００３】
多くのディジタル印刷アーキテクチャ（プリンタ、複写機、及び多機能機械を含む）では、事前照合（丁合い）された( precollated ) イメージを広帯域幅でアクセスして印刷できるように、これらのイメージをメモリ内に格納する必要がある。これは、イメージを「オンザフライ」で構成／照合（丁合い）する公知の技術と対照的である（この従来技術は、印刷速度が遅くなる傾向があるか、または高速ハードウェアを必要とする）。しかしながら、イメージビットマップをメモリ（電子事前照合（丁合い）メモリ（ＥＰＣ））内に格納することに伴う欠点が存在する。主たる欠点は、中程度の解像度のイメージを格納するのでさえ、メモリのサイズを大きくしなければならないことである。例えば、300 スポット／インチ（ｓｐｉ）のフルページバイナリイメージビットマップは、約 1.05 メガバイト（ＭＢ）のメモリを必要とする。解像度がより高いプリンタの場合には、問題は悪化する。 1200 ｓｐｉプリンタは、同じイメージをより高解像度で格納するために 16.83  ＭＢを必要とする。従って、ディジタルプリンタの解像度が増すにつれて、事前照合メモリに関する要求を低下させるように、圧縮技術を改良する要望が絶えず存在している。
【０００４】
1992年９月１日付の Nakamura の米国特許第５，１４４，６８２号は、文字またはワードに対応する面積を分離する方法および装置を開示している。この発明はその中に、元の原稿のデータをその原稿の文字線に対応する方向に圧縮する圧縮処理区分と、そのイメージデータを格納するための圧縮イメージバッファ（リングバッファ）とを含んでいる。圧縮区分は、論理ＯＲ演算を遂行して比例圧縮を達成する。またスレッショルディング及びシンニング( thinning )圧縮方法も開示されている。接続された画素の面積は、輪郭追尾動作によって決定される（４−５欄、および図４）。最小の主および副走査アドレスの頂点、および最大の主および副走査アドレスの別の対向する頂点を有する矩形面積が抽出される。しかしながら、この面積は、単に圧縮されたイメージ内の面積を表しているに過ぎない（６欄、１−７行）。
【０００５】
1993年４月20日付の Chevion  らの米国特許第５，２０４，７５６号には、バイナリイメージの圧縮および圧縮解除方法が記載されている。この発明は、直近のバイナリイメージの評価に基づいて、損失の多い圧縮技術および無損失圧縮技術を使用して可変圧縮比を達成している。イメージを相互に排他的なセグメント（例えば、イメージまたはテキストセグメント）に分割することによってイメージを評価した後、そのイメージセグメントの型に基づいて、ラスタをベースとする圧縮技術が選択される。この選択（圧縮比によって決定される）は、元のテキストイメージ内の黒または白間隔の相対幅として特徴付けられる測定基準( metrics ) によっても影響を受ける。
【０００６】
1994年11月８日付の Shou らの米国特許第５，３６３，２０５号は、イメージのサイズを連続的に減少させて圧縮されたイメージを形成するイメージ圧縮方法を開示している。詳しく述べれば、２×２の畳み込み（コンボリューション）をその平均密度の画素によって表すことによって、グレイスケールイメージが連続的に減少される。
【０００７】
1994年７月の O'Reilly & Assoc., J. Murray および W. van Ryper の “Encyclopedia of Graphic File Formats" の 125-171ページには、公知のいろいろなデータ圧縮方式の詳細が記載されている。
【０００８】
1988年11月１日に出版された（ Cornell University, Computer Science Department ) D. Moitra  の “Finding a Minimal Cover for Binary Images : An Optimal Parallel Algorithm"  には、あるバイナリイメージをカバーする最大方形の最小集合を決定するアルゴリズムが開示されている。
【０００９】
【課題を解決するための手段】
本発明によれば、バイナリ入力イメージを圧縮するためにイメージ処理システム内で動作する方法が提供され、バイナリ入力イメージはバイナリイメージ信号の規則的なアレイとして表現されている。本発明の方法は：１つの共通の状態を有する複数のバイナリイメージ信号の、直交的に成形された二次元領域を識別する段階と：上記直交的に成形された領域のサイズを決定する段階と：上記直交的に成形された領域の状態およびサイズをディジタルデータワードとしてエンコードする段階と：上記エンコードされた形状およびサイズを表す上記ディジタルデータワードを圧縮メモリ内に格納する段階と：上記バイナリ入力イメージ内に存在するバイナリイメージ信号の複数の各直交的に成形された領域毎に上記諸段階を繰り返す段階と：から成ることを特徴とする。
【００１０】
本発明の一つの面は、イメージの格納および伝送のようなイメージ処理における基本的な問題に対処する。この問題は従来から認識されており、いろいろな圧縮技術が使用されてきている。しかしながら、これらの技術は典型的にラスタをベースとするものである。
【００１１】
この面は、ラスタをベースとする技術に伴う制約を除去する技術を発見したことにも基づいている。ここに使用した技術は二次元であり、高解像度イメージをある共通カラーすなわちバイナリ状態の直交ブロックに分割し、次いでこのイメージをＮビット（Ｎは、２の累乗）を有する一連のデータワード（各ワードは、直交ブロックのカラー／状態およびサイズを表すために複数のビットを含む）として記録することによって、上記イメージ情報をエンコードしている。
【００１２】
ここに説明する技術は、他のアプローチと比較した時に、この技術がイメージ処理システム（例えば、ディジタルプリンタに関連するシステム）内に大きい事前照合（丁合い）メモリの使用を殆ど不要にしているので有利である。さらにこの技術は、イメージを伝送する前にイメージを圧縮するのにも使用できる。本発明の事前圧縮および事前圧縮解除技術は、それらがビットマップイメージを効率的に圧縮し、圧縮解除することができるので有利である。さらに、本発明の基礎をなすこれらの技術は、他の無損失圧縮技術と組合わせて使用して本発明によって達成される圧縮比をさらに改善することができる。本発明の結果として、ディジタルプリンタ内の事前照合（丁合い）メモリのサイズを縮小する、すなわちその中に格納されるイメージの数を増加させることが可能である。
【００１３】
【発明の実施の形態】
本明細書において使用する「データ」とは、情報を指示するか、または情報を含む物理的信号のことである。データの項目（アイテム）が複数の考え得る代替の１つを指示できる場合には、データの項目は複数の「値」の１つを有する。例えば、データのバイナリ項目（「ビット」ともいう）は、「１」および「０」、または「オン」および「オフ」、または「高」および「低」、または「黒」および「白」と互換的に呼ばれる２つの値の１つを有する。
【００１４】
「データ」という用語は、どのような物理的形状ででも存在するデータを含み、また一時的な、または格納されるかまたは伝送されるデータを含む。例えば、データは電磁的な、または他の伝送される信号として、または電子、磁気、または他の形状で格納される信号として存在することができる。
【００１５】
「メモリ回路」または「メモリ」は、データを格納することができる何等かの回路であり、ローカルおよび遠隔メモリ、および入力／出力デバイスを含むことができる。それらの例は、半導体ＲＯＭ、ＲＡＭ、およびそれらがアクセスできるデータ記憶媒体を有する記憶媒体アクセスデバイスを含む。
【００１６】
「データ処理システム」は、データを処理する物理的システムである。「データプロセッサ」または「プロセッサ」は、データを処理することができる何等かの構成要素またはシステムであり、１つまたはそれ以上の中央処理ユニット、または他の処理構成要素を含むことができる。プロセッサは、それが人による同時の制御には無関係に演算または機能を遂行する時、演算または機能を、「自動的に」遂行する。「処理ユニット」は、別のプロセッサ内の構成要素であるプロセッサである。
【００１７】
バイナリ（２進）数は、２の累乗の和として表すことができる。バイナリ数内の各ビットは、和の中の２の特定の「べき」の存否を指示する。従って、バイナリ数の「最上位ビット」または「ＭＳＢ」は、２の最大の「べき」の存否を指示し、「最下位ビット」または「ＬＳＢ」は２の最小「べき」の存否を指示する。因習的に、バイナリ数のビットはＭＳＢからＬＳＢＡへの順番に、またはその逆に順序付けられる。本明細書に使用している「左」および「左へ」は、独断的に順番内でＭＳＢへ向かう方向をいい、「右」および「右へ」は、独断的に順番内でＬＳＢへ向かう方向をいう。
【００１８】
「イメージ」は、物理的な光のパターンである。イメージは、文字、ワード、およびテキスト、並びにグラフィックスのような他の特色を含むことができる。テキストは、文書のページのイメージのような１つまたはそれ以上のイメージの集合内に含まれることができる。イメージは、各々が、それ自体イメージである「セグメント」に分割することができる。イメージのセグメントは、イメージ全体以下のどのようなサイズであることもできる。
【００１９】
「画素」は、所与のシステムにおいてイメージが分割される最小のセグメントである。データの各項目がある値を与えるようなイメージを限定するアレイにおいては、ある位置のカラーを指示する各値を「画素値」またはイメージ信号と呼ぶことができる。各画素値は、あるイメージの「バイナリ形状」の、グレイスケール値はあるイメージの「グレイスケール形状」の、またはカラー空間座標の集合はあるイメージの「カラー座標形状」のビットであり、カラー座標形状は各々あるイメージを限定する二次元アレイである。
【００２０】
「イメージ入力端末」（ＩＩＴ）は、イメージを受けて、そのイメージのあるバージョンを限定するデータの項目を供給できるデバイスである。「スキャナ」は、走査動作によって（例えば、文書を走査することによって）イメージを受けるイメージ入力デバイスである。
【００２１】
「イメージ出力端末」（ＩＯＴ）は、あるイメージを限定するデバイスの項目を受けて、そのイメージを出力として供給できるデバイスである。「表示装置」は、人が見ることができる形状で出力イメージを供給するイメージ出力デバイスである。表示装置によって提示される可視パターンが「表示されたイメージ」または単に「イメージ」である。
【００２２】
図１に示すデータ流れ図は、印刷前のイメージの処理に関連するさまざまな動作である。図示のディジタル印刷例では、始めに 300ｓｐｉ（すなわち、主および副走査方向において 300ｓｐｉの解像度）バイナリビットマップイメージ２０がイメージスケーリング動作２２へ印加され、そこでビットマップ複製されるかまたは同じようにスケールされ、ビットマップはＩＯＴ（イメージ出力端末）の解像度で描写されて最終的にＩＯＴ上に供給される。図示の目的から、この例ではスケーリングは４×（＝４倍）になっている。従ってスケーリング動作の出力は、1200ｓｐｉ解像度のビットマップ２４で示されている高解像度（入力解像度より高い）である。当分野に精通していれば理解できるように、1200ｓｐｉ解像度イメージは、低解像度（例えば、240 ｓｐｉ、300 ｓｐｉ、400 ｓｐｉ、および600 ｓｐｉ）に対して共通整数スケーリング比を与える能力があり、これらの全てを高解像度で印刷し、表示しまたは処理できるので好ましい。次に、ビットマップ２４は、２６において、本発明に従って無損失事前圧縮動作がなされ、その出力は一連のバイナリ信号、またはバイナリ信号のストリームとして図示されているビットストリーム２８になる。このビットストリームは圧縮動作３０へ供給され、事前照合（丁合い）メモリ（例えば、ディスク３４）内に格納される前に複数の無損失圧縮アルゴリズムの何れか１つに従ってさらに圧縮される（ディスク記憶デバイス３４上に格納された圧縮データ記録３２として図示）。１つまたはそれ以上の圧縮イメージを格納するのに十分な容量の何等かのメモリデバイスを、事前照合（丁合い）メモリに使用できることも理解されよう。
【００２３】
図２は、図１において格納された圧縮データを、圧縮解除して印刷するプロセスを示している。詳しく述べれば、先ず圧縮データ３２が事前照合メモリ３４から検索される。次に、図１の圧縮動作３０と矛盾しない手法で圧縮解除するように動作的に設計された圧縮解除動作４０が圧縮データを圧縮解除し、イメージ圧縮および圧縮解除の分野においては公知の手法でバイナリビットストリーム４２を発生させる。次いで、このビットストリーム４２は事前圧縮解除動作４４へ供給され、そこでビットストリーム信号は翻訳またはデコードされてビットマップイメージ４６を表すバイナリイメージ信号が再生される。ビットマップイメージ４６は、図１のイメージ２４の解像度に等しい高解像度を有し、その正確な複製である。次いでビットマップイメージはＩＯＴプリプロセッサ４８へ転送され、そこでマーキングエンジン５０を制御するビデオデータ信号を発生するようにさらに処理される。ビデオデータ信号の受信に応答して、マーキングエンジン５０は高解像度のイメージ４６の出力プリント５２を発生する。
【００２４】
以上に本発明の実施例の一般的な動作を説明したが、図１の事前圧縮動作２６に関連するさまざまな段階の説明に注目されたい。図３および本欄の最後に表２〜表７として添付するプログラムリストに示すソフトウェアを参照する。この流れ図は、バイナリイメージのための事前圧縮動作の一般的な段階を含んでいる。ここではバイナリイメージに関して説明するが、本発明は個々のビットの各面をバイナリイメージとして処理することによって多重ビット／画素グレイスケールイメージにも適用できる。詳しく述べれば、事前圧縮動作はビットマップイメージ信号を検索することから開始される（段階７０）。この動作に固有なものは、イメージに関連する走査線当たりの画素の数及び走査線の数（イメージの水平および垂直ディメンション）を知ることである。このデータは、通常はイメージヘッダまたはイメージデータ集合内に埋め込まれている。検索されたイメージデータの若干または全ては、以後の段階中にプロセッサによってアクセスできるようにメモリバッファ内に格納することが好ましい。この特定の例の場合、以下の説明から明白になるように、イメージバンドバッファのサイズが 128  走査線であるものとする。
【００２５】
段階７２において、格納されたイメージデータは左上隅（画素０，０）から始まる分析を受け、共通バイナリ状態を有する画素の直交領域が識別される。本明細書で使用する直交領域という用語は、イメージのセグメントが矩形または方形であり、これらのセグメントの境界または側がイメージ内の画素行または列に整列するものであることを意味している。イメージの直交領域が識別されると、段階７４はその領域のサイズを決定する。すなわち、段階７４はその領域の共通の隅（例えば、直交領域の左上隅）から、その領域の垂直および水平の広がりを決定する。これらの２つの値は領域のサイズとして使用され、後述する段階７６において共通バイナリ状態と共に、直交領域を表すデータワードにエンコードされる。領域のサイズは複数の測定基準（例えば、点、パイカ）を使用して測定できることは明白であるが、好ましい例においては複数の画素が測定基準として使用される。従って、水平及び垂直の測度はそれぞれ画素の行および列に沿う画素の数を反映している。さらに図４に示す好ましい例では、直交領域を表すために方形を使用し、事前圧縮動作によって達成される圧縮比をさらに最適化している。また、ビット複製された高解像度イメージ（例えば、ビット倍化(bit doubling)によって準備されるイメージ）では、共通バイナリ状態の複数の方形領域が自動的に作成されることにも注目されたい。
【００２６】
少しの間図４を参照する。図４は、大きいイメージの左上隅に大きい黒の画素領域９２を含むイメージセグメント９０の例を示すものであり、これからセグメントが選択されている。図示のように、セグメントは複数の方形領域（Ａ−Ｉ）に分割されている。詳しく述べれば、いろいろな領域が（プロセッサによって遂行される命令に従って）図３の段階７２によって決定される。共通バイナリ状態領域の識別を達成するのに適するコードは本欄最後の添付プログラムリスト（表２〜表７参照）に記載されている。
【００２７】
図３に戻って、ある領域を記述するエンコードされたデータワードは次のフォーマットで生成される。
0003781843.tif 000002
ここに、Ｘは共通画素状態を表し、７ビット値Ｙは方形のサイズ・マイナス１（Ｙ＝サイズ−１）を表している。方形のサイズ・マイナス１を特定するのに７ビットを使用しているのは、先にバンドバッファを独断的に 128本の走査線であると想定したことに関係付けているのである。上に示したデータワードのサイズは８ビットにしか過ぎないが、サイズをどのような特定数のビットにも制限する意図がないことは理解されよう。さらに、データワードのサイズは使用するハードウェア機器に依存し、入力または出力メモリバッファ内に保持できるイメージ走査線またはラスタの数は、直交領域の最大サイズに、従ってデータワードのサイズに専用される。従って、データワードサイズの選択は、本発明を実現するハードウェアシステムと、より大きい領域を表す付加的なビットの必要性とによって決定される。矩形状の直交領域を使用して本発明を実現しようとすれば付加的な測定データ（第２のｎビット値）が必要であり、または方形のサイズが２n を超えるものとすればより多くのビットを必要とすることも理解されよう。
【００２８】
段階７６においてエンコードされたデータワードは、これらの全ての領域のある記録またはリストの形状のエントリとしてメモリ内に格納される。この格納は、データワードを緩衝（バッファ）しながらイメージ全体を事前圧縮することができるように一時的であることが好ましい。格納段階７８の後に、事前圧縮中のイメージ内に何等かのグループ化されていない画素が残っているか否かを決定する試験が実行される。詳しく述べれば、この試験は、次の直交領域の左上隅がバイナリ入力イメージの水平および垂直ディメンションを超えているか否かを決定する。付録に示されているように、この「試験」はループ動作を使用して実現することができる。もしイメージバンドバッファ内のイメージの終わりに到達していなければ、段階７２において次の直交領域の処理が続けられる。一方、バンドバッファ内に収容されたイメージについての事前圧縮が完了すると、イメージデータの次のバンドバッファが処理のために読み出される。ある点において全イメージの事前圧縮が完了し、図１に関して先に説明したようにさらなる圧縮のためにデータは転送できるようになる。
【００２９】
段階７６が完了すると、図４に示すイメージセグメントのために以下に示すものに似た直交領域のリストが生成される（Ｙが７ビット値であるものとし、入力バッファは２7 走査線までのデータを格納できるものとする）。
0003781843.tif 000003
【００３０】
前述したように、得られるリストは所定数のビットを有するデータワードからなる。上に示したように、リストは直交領域を順番に表すように（好ましくは、領域内の第１の画素に遭遇するように左から右へ、上から下へ）順序付けられている。例えば、図４において領域Ｆは領域Ｄの左に現れているが、領域Ｄは第１のラスタまたは走査線の部分である左上隅内に画素を有しているので、リスト内では高めに配置される。このように限定されたリストは、データワード規模で分割可能なビットのストリームとして出力され、あたかもそれがビットマップを表しているかのように公知の技術によってさらに無損失圧縮することができる。
【００３１】
以上に一般的な例によって本発明の動作を説明したが、次に、本発明の特定の用途であるデータ処理システムを説明する。図５にデータプロセッサ１０２を基礎とするイメージ処理システム１００を示す。データプロセッサ１０２は、ソフトウェアプロダクト１０４（図５に示すような構成要素を含むシステムにおいて使用可能な製造の物品）に関連するコードを実行するのに適するどのようなデバイスであっても差し支えない。ソフトウェアプロダクト１０４は、アクセスデバイス１０８がアクセス可能な記憶媒体１０６を含む。記憶媒体１０６は例えば、図示したディスケットのような磁気媒体、ＣＤ  ＲＯＭのような光媒体、またはデバイスを格納する他の適切な何等かの媒体であることができる。記憶媒体１０６は、アクセスデバイス１０８が（バス１１０または類似接続を介して）デバイスプロセッサ１０２へ供給可能なデータを格納する。プロセッサ１０２は、メモリ１１４にアクセスできるように接続されている。メモリ１１４は、プロセッサ１０２が実行できる命令を表すデータを格納しているプログラムメモリ（ＲＯＭおよびＲＡＭ）、またはプロセッサ１０２が命令を実行するのにアクセスできるデータを格納しているデータメモリまたは事前照合メモリ（ＲＡＭ）を含むことができる。
【００３２】
プロセッサ１０２は、イメージを限定するデータをイメージ入力回路１１６から受けるようにも接続されている。イメージ入力回路１１６は、イメージ入力端末（ＩＩＴ）１１８を（バス１１０を介して）プロセッサ１０２へ接続する。ページイメージデータは、スキャナ１１８ａから、ファクシミリ（ファックス）マシン１１８ｂから、ネットワーク１１８ｃ（ローカルエリアネットワーク、またはイメージを限定するデータ伝送できる他のネットワークであることができる）から、または他の対話式イメージングデバイスから入手することができる。記憶媒体１０６の他に、ソフトウェアプロダクト１０４は、図３および４に示してあるような動作および付録に示すソフトウェアを遂行するためにプロセッサ１０２が実行できるコード命令１２０をも含む。命令１２０を実行する際にプロセッサ１０２は、上述した事前圧縮および圧縮を行うためにイメージ入力回路１１６からのイメージデータを使用する。イメージデータ１２２は、ＩＩＴ  １１８から受けてアレイデータとして事前照合メモリ１１４内に格納することができる。さらに、アレイデータ１２２は、ＩＩＴから受けた入力イメージを限定するデータを操作することによって入手することができ、任意の特定時点に単一のアレイデータ（１２２）よりも多くをメモリ１１４内に維持することができる。プロセッサ１０２はその後の圧縮のために、イメージデータを使用して無損失、事前圧縮されたイメージ信号のビットストリームを発生する。
【００３３】
プロセッサ１０２は、イメージを限定するデータをイメージ出力回路１２４へ供給できるようにも接続されている。例えばソフトウェアプロダクト１０４は、出力イメージを限定する先に事前圧縮されたイメージデータを圧縮解除するために、または後述するように、図１１に示すような事前圧縮解除ハードウェアの動作を制御するためにプロセッサ１０２が実行可能な命令を表すデータを含んでいる。圧縮解除／事前圧縮解除動作の結果として得られた出力イメージデータはイメージ出力回路１２４へ供給することができ、またファックスマシン１２６ａ、プリンタ１２６ｂ、表示装置１２６ｃ、またはネットワーク１２６ｄへ供給して例えば図５に示すイメージを発生させることができる。
【００３４】
上述した事前圧縮動作を、図６に誇張して示すバイナリイメージセグメントの事前圧縮の例に関して図６、７、および８を参照して説明する。図６は、図７のメモリセグメント１５０内に表されているビットマップデータを絵画的に示している。図７では、黒（斜線付き）画素を表すのにバイナリ「１」を使用し、白（無マーク）画素を表すのにバイナリ「０」を使用している。イメージデータ（バンド）バッファが最大８走査線を格納できるものとすれば（例えば、Ｙmax ＝８＝２3 ）、メモリセグメント１５０内に格納されるイメージデータは２つの８走査線区分１５２、１５４と、部分的な区分１５６とに分割され、各区分は、処理のために最終的に合計８ラスタを含んでいる。次いでイメージの左上（０，０）画素（黒画素）から開始して画素の状態をノートし、全ての隣接黒画素を識別して第１の共通画素領域１６０を決定する。次に、少なくとも第１のラスタに沿って水平方向に移動し、残りの画素データについてこのプロセスを繰り返して画素領域１６２乃至１７６を発生させる。第１の共通画素領域（領域１６０）に戻って、３×３領域のエンコードされた表現は 10000010 であり、ＭＳＢの「１」は黒画素を示しており、そして７つのＬＳＢ「0000010 」は方形領域・マイナス１のサイズを示している。イメージセグメント１５０の頂部に沿う処理領域１６０−１７６によって以下のビットストリーム（８ビットデータワードに配列）が得られる。
10000010 00000001 00000001 00000001 00000001 00000001 00000001 10000010
00000000
【００３５】
イメージセグメント１５０をさらに処理すると、図８のビットマップメモリ表現に重なって残りの領域の識別が得られる。８走査線バッファに制約すると、本質的に、２つの走査線１８０と１８２に沿って自然の領域境界がもたらされることが理解されよう。図９のヒストグラムは、上例に従って識別された領域サイズの相対的な頻度と、本発明の事前圧縮の面とを示している。さらに、以下のデータは、事前圧縮動作により達成することができる圧縮の量を示すことに関連している。すなわち、このデータは図６〜８に示す 20 × 20 イメージセグメントの例のために準備されたものである。
【００３６】
【表１】
0003781843.tif 000004
【００３７】
上記表１に示されているバイト数は、共通 2048 バイトのイメージデータのヘッダを含んでいることに注意されたい。例えば、バイナリパックファイル 20 × 20 の値 2098 は 2048 プラス（ 20 × 20 ）／８＝ 2098 の和からなり、事前圧縮出力ファイル（バンドバッファサイズ＝８走査線）の値 2178 は 2048 プラス 130（ 130  は例示イメージ内に見出される方形の数）の和である。
【００３８】
バンドバッファ内の共通画素状態を有する方形を識別するのに、多くの技術、または「規則」を使用できることは理解されよう。詳しく述べれば、付録にソフトウェアコードによって表されている実施例は、一連の段階として表されている以下の列規模での規則を使用している。
【００３９】
方形
（ａ）境界を画している方形内の全ての画素が、最初の画素と異なるまで下方および右方へ対角線状に移動させ、次いで
（ｂ）境界を画している方形に囲われている全ての画素が、今度は最初の画素と同じ状態であるように上方および左方へ対角線状に戻って移動させ、これで方形集合を限定させる。
【００４０】
代わりに、共通画素状態を有する直交領域を識別するために多くの他の技術を使用することもできる。これらは、
(i)   列方向
（ａ）その領域に付加される各画素が最初の画素と同じ状態を有している限り、最初の画素の現在の行に沿って右列規模で移動させ、
（ｂ）異なる状態の画素に到達した時に、それをその領域に含ませないが、最初の状態と同じ状態を有する行内の最後の画素まで戻し、次いで
（ｃ）最初の画素および現在の画素によって境界を画されている矩形領域内に囲われている全ての画素が、最初の画素と同じでなくなるまでその列に沿って行規模で下方へ移動させ、次いで
（ｄ）境界を画している矩形領域内に囲われている全ての画素が、最初の画素と同じ状態を有するように行規模で最後の画素まで戻して移動させ、これで列規模の集合を限定する。
(ii)  行方向
（ａ）付加された画素が最初の画素と同じ状態を有している限り、最初の画素の現在の列に沿って行規模で下方へ移動させ、
（ｂ）異なる状態の画素に到達した時に、それをその領域に含ませないが、最初の状態と同じ状態を有する列内の最後の画素まで戻し、次いで
（ｃ）境界を画している矩形領域内に囲われている全ての画素が、最初の画素と同じでなくなるまで現在の行に沿って列規模で右方へ移動させ、次いで
（ｄ）最初の画素および現在の画素によって境界を画されている境界内に囲われている全ての画素が、最初の画素と同じ状態を有するように最後の画素まで戻して移動させ、これで行規模の集合を限定する。
(iii) (i) と(ii)の組合わせ
境界を画されている領域は、それが最初の画素と同じ状態の全ての囲われた画素を有する境界を画されている矩形領域をもたらす限り、(i) と(ii)の何等かの重み付き組合わせとして限定することもできる。
【００４１】
以上に、本発明に関連する事前圧縮動作を詳細に説明したが、事前圧縮されたデータを圧縮解除する（事前圧縮解除という）プロセスにも注目されたい。事前圧縮解除動作に関連する一般的な段階は、本質的には上述した事前圧縮動作の逆であることは明白であるが、図１０の流れ図に示す諸段階は図１１に示すハードウェア例によって達成することが好ましい。図１０を図１１と共に参照する。最初の段階では、ポピュレート( populate )バッファブロック２３０がライン２３２から受信する入力データまたはビットストリームは、図２の無損失圧縮解除動作４０によって生成されたものとしている。従って、段階２００は先ず少なくとも１つのデータワードを受信する。次に段階２０２はデータワードをパーズし、段階２０４Ａは、共通領域（ＭＳＢ）の画素状態を決定し、段階２０４Ｂは領域（ＬＳＢ）のサイズを決定する（図１１には、アドレスの変化を表す「Δアドレス」として示されている）。この決定がなされると、ライン２３４上のポピュレートバッファブロック２３０の画素値出力は、段階２０６Ａにおいて共通領域の「幅」にセットされる。同様に、段階２０６Ｂにおいてブロック２３０は、画素値を書き込むアドレスを初期化する。初期化されると、段階２０８において、ポピュレートバッファブロック２３０内のプログラマブルカウントダウンカウンタ（図示してない）を共通領域の幅にプログラムすることができる。事前圧縮解除プロセスの二次元面を処理するために、付加的なカウンタを使用できることは理解されよう。しかしながら、説明を簡略化するために、これらの面は単に繰り返し段階２１６の形状で示してあるに過ぎない。
【００４２】
次に、段階２１２によってカウンタが０に到達したと決定されるまで、段階２１０において、画素値を複数のメモリアドレスの少なくとも１つ内に配置することによって、メモリ書き込みプロセスが開始される。出力メモリ２３８は、読み出し動作及び書き込み動作が同じアドレスを使用していない限り、入力ライン２３４上の格納用データを受信しながら、書き込みデータを出力ライン２４０へ出力できるデュアルポートメモリであることが好ましい。メモリ２３８は、市販されているダイレクトメモリアクセスデバイスによって可能化される公知のブロックメモリ転送の１つを使用してアクセスすることができることも理解されよう。従って、プロセッサがさらに介在することなく、出現する必要数の画素値を連続するメモリアドレスに書き込むことができる。ある走査線について画素値が書き込まれてしまうとその走査線の終わりが検出され、それ以上の画素値データが第１の走査線へ書き込まれることはないが、デュアルポートメモリ内の第１の走査線帯域の付加的な走査線に対する処理は続けられる。特定のＩＯＴに関連付けられたイメージの出力水平および垂直ディメンションは固定されており、予め知られていることに注目されたい。これにより、ある走査線の終わりに到達したことを容易に検出できるのである。この点において、出力読み出し可能化ライン２４２がセットされ、デュアルポートメモリの第１の走査線帯域内に有効バイナリデータが存在していることを出力バッファ２４４に知らせる。図１１に示し、説明しているさまざまなハードウェアブロックは、図５のイメージ出力回路１２４の一部として、または同図に示されているＩＯＴの１つに関連付けられたインタフェース回路として含まれることが好ましい。さらに、当分野に精通していれば、説明しているハードウェア回路が、それらの動作を可能化するいろいろなタイミングおよび制御信号をも含んでいることは理解されよう。よく知られているこれらの信号は、好ましい例の説明からは省略した。
【００４３】
事前圧縮解除動作の一部の例を、図１２に絵画的に示してある。図１２ではメモリまたはバンドバッファ（ＡおよびＢ）のサイズが４走査線であるものとし、区分Ａの４走査線帯域がポピュレートされると、各共通領域２８０は画素毎に、およびラスタ毎に連続して出力される。同時に、ポピュレートバッファブロックは区分Ｂを埋め始める。一方のバンド区分をポピュレートするために受信する必要があるデータよりは、転送されるデータの方がかなり多いから、出力／読み出し動作の前にポピュレート動作は常に完了している。従って、ＡバンドとＢバンドとの間のスイッチングを調整し、バンドバッファによって制限されたポピュレートおよび出力動作を「同期」させるための制御論理は不可欠である。
【００４４】
要約すれば、本発明は格納される、または伝送される高解像度バイナリイメージを無損失事前圧縮する方法および装置である。より詳しく述べれば、本発明は高解像度ビット複製されたイメージに特に適した、面積をベースとする事前圧縮／事前圧縮解除技術を使用する。この技術は、共通カラーまたはバイナリ状態の規則正しいサイズのイメージ領域を探索し、それらの面積をコード化して表現する。本発明が使用したこの圧縮技術によれば、高解像度イメージを圧縮し、高解像度イメージが生成された元のビットマップバイナリイメージの無損失圧縮によって典型的に得られるイメージのサイズに近いイメージサイズで格納したり、または伝送することができる。
【００４５】
事前圧縮動作に関連するプログラムリスト以下の表２〜表７に示す。
【表２】
0003781843.tif 000005
【表３】
0003781843.tif 000006
【表４】
0003781843.tif 000007
【表５】
0003781843.tif 000008
【表６】
0003781843.tif 000009
【表７】
0003781843.tif 000010
【表８】
0003781843.tif 000011
【図面の簡単な説明】
【図１】イメージの事前照合（丁合い）に従って遂行される、本発明の事前圧縮面を含む動作を示すデータ流れ図である。
【図２】事前照合されたイメージの処理に従って遂行される、圧縮解除動作を含むさまざまな動作を示すデータ流れ図である。
【図３】図１に示す事前圧縮動作の諸段階を示す流れ図である。
【図４】本発明の１つの面に従って直交領域に分割されたイメージセグメントの例を示す図である。
【図５】本発明の実施例として適当なイメージ処理システムの例の回路図である。
【図６】バイナリビットマップイメージのあるセグメントの絵画的表現の図である。
【図７】本発明による処理の一つの段階のバイナリイメージデータを示す図である。
【図８】本発明による処理の別の段階のバイナリイメージデータを示す図である。
【図９】本発明により図７にイメージを処理した結果を示すグラフである。
【図１０】図２に示す事前圧縮解除動作の諸段階を示す流れ図である。
【図１１】図１０に示す事前圧縮解除動作を遂行するハードウェア回路のブロック線図である。
【図１２】ポピュレーション中の、図１０のデュアルポートメモリバンドバッファ内に格納される事前圧縮解除データの一部を示す図である。
【符号の説明】
２０  バイナリビットマップイメージ
２２  イメージスケーリング動作
２４  ビットマップ
２６  無損失事前圧縮動作
２８  ビットストリーム
３０  圧縮動作
３２  圧縮データ記録
３４  ディスク記憶デバイス
４０  圧縮解除動作
４２  バイナリビットストリーム
４４  事前圧縮解除動作
４６  ビットマップイメージ
４８  ＩＯＴプリプロセッサ
５０  マーキングエンジン
５２  出力プリント
９０  イメージセグメント
９２  黒画素領域
１００  イメージ処理システム
１０２  データプロセッサ
１０４  ソフトウェアプロダクト
１０６  記憶デバイス
１０８  アクセスデバイス
１１０  バス
１１４  メモリ
１１６  イメージ入力回路
１１８  イメージ入力端末（ＩＩＴ）
１２０  コード命令
１２２  イメージデータ
１２４  イメージ出力回路
１５０  メモリセグメント
１６０−１７６  画素領域
２３０  ポピュレートバッファ
２３８  出力メモリ
２４４  出力バッファ
２８０  共通領域
【図１】
0003781843.tif 000012
【図２】
0003781843.tif 000013
【図３】
0003781843.tif 000014
【図４】
0003781843.tif 000015
【図５】
0003781843.tif 000016
【図６】
0003781843.tif 000017
【図７】
0003781843.tif 000018
【図８】
0003781843.tif 000019
【図９】
0003781843.tif 000020
【図１０】
0003781843.tif 000021
【図１１】
0003781843.tif 000022
【図１２】
0003781843.tif 000023