(57)【要約】【課題】画像の劣化を防止しながら、効率の高い画像圧縮を行なうことができる画像符号化装置および画像復号装置を提供する。【解決手段】小領域ごとに異なる階調数を持ち得る入力画像をビットプレーンに分割して圧縮する画像符号化装置は、上位プレーンにおいてより隣接画素間の連続性が高まるように、符号化対象の小領域の階調数に応じて異なる画素値変換を各画素値に施しビットプレーンに分割するための画像変換手段と、画像変換手段による変換によって得られるビットプレーンごとに所定のエントロピー符号化を行なうための画像符号化手段とを含む。すべての小領域の階調数が等しい場合は、入力画像の全体を一つの小領域とみなし、小領域の数を１として画像を符号化する。【選択図】図３８
2006287944.tif 000002
【特許請求の範囲】
【請求項１】
小領域ごとに異なる階調数を持ち得る入力画像をビットプレーンに分割して圧縮する画像符号化装置であって、
上位プレーンにおいてより隣接画素間の連続性が高まるように、符号化対象の小領域の階調数に応じて異なる画素値変換を各画素値に施しビットプレーンに分割するための画像変換手段と、
前記画像変換手段による変換によって得られるビットプレーンごとに所定のエントロピー符号化を行なうための画像符号化手段とを含む、画像符号化装置。
【請求項２】
小領域ごとに異なる階調数を持ち得る入力画像をビットプレーンに分割して圧縮する画像符号化装置であって、
すべての小領域の階調数が等しいか否かを判定するための判定手段と、
前記判定手段によりすべての小領域の階調数が等しいと判定されたことに応答して、前記入力画像の全体を一つの小領域とみなし、小領域の数を１として画像を符号化するための第１の画像符号化手段と、
前記判定手段によりすべての小領域の階調数が等しいわけではないと判定されたことに応答して、前記入力画像の各小領域ごとに符号化するための第２の画像符号化手段とを含む、画像符号化装置。
【請求項３】
請求項１に記載の画像符号化装置によって符号化された画像データを入力するための入力手段と、
前記入力手段により入力された画像データに対して、請求項１に記載のエントロピー符号化に対応した復号を行なう復号手段と、
前記復号手段により復号された画像データに対して、請求項１に記載の画像変換手段に対応した逆変換を行なうための画像逆変換手段とを含む、画像復号装置。
【請求項４】
請求項２に記載の画像符号化装置によって符号化された画像データを復号するための画像復号装置であって、
前記画像符号化装置によって符号化された画像データに含まれる小領域の数がいくつかを判定するための判定手段と、
前記判定手段により判定された数の小領域に前記画像データを分割して復号するための復号手段とを含む、画像復号装置。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は画像の階調数を減少させることによりデータを圧縮するための画像減色装置、画像符号化装置およびそのように圧縮された画像を復号するための画像復号装置に関し、特に、減色後の画像の劣化を防止することができる画像減色装置、画像符号化装置および画像復号装置に関する。
【背景技術】
【０００２】
データ通信およびデータ保存を行なう場合、データ量を削減することが記憶領域を節約するために望ましい。特に画像データについては、そのデータ量が多いため、データ量を削減するさまざまな技術が工夫されている。データ量の削減を目的とした画像の符号化方式には、エントロピー符号化方式と呼ばれるものがある。エントロピー符号化方式には算術符号化およびハフマン符号化などの方式が知られている。
【０００３】
しかし、エントロピー符号化を施す前に、画像処理で画像データのデータ量自体を削減することがよく行なわれている。その代表的なものとして、多値画像を、使用目的に応じて十分な程度の階調数まで減色する方法がある。最も単純な方法は画像全体を共通の階調数まで減色することである。しかし、画像の属性は一般には全体で一様ではない。たとえば単純なテキスト画像であっても、単色の背景領域と、少なくとも２値以上の画素値が必要な文字領域とに分割される。そのため、全体を一様に減色すると、たとえば文字領域などが必要以上に減色されてしまい画像が劣化することがある。
【０００４】
こうした問題を解決するために、画像をブロックなどの小領域に分割し、それぞれの小領域ごとに異なる階調数に減色する技術が開発されてきた。そのような技術の一例が特開平６−３５０９８６号公報（特許文献１）に開示されている。この公報に開示された技術では、各小領域としてブロックをとり、ブロック内の近似誤差および統計量に基づいて、ブロックごとに階調数を決定している。
【０００５】
他の例は特開平５−５６２８２号公報（特許文献２）に開示されたものである。この技術は、同じくブロックごとに階調数を決定している。しかしこの場合には階調数が大きなブロックについては、その解像度を減少させている。このようにすることにより、各ブロックのデータ量が一定となる。
【特許文献１】特開平６−３５０９８６号公報
【特許文献２】特開平５−５６２８２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
画像の小領域ごとに階調数を設定する上に述べたような手法は、全体を一様に減色するよりも画像の劣化を防ぎながらデータ量を削減することができる。しかしその反面、上記のような手法は以下のような問題点も持っている。
【０００７】
第１の問題点は、小領域ごとの視覚的つながりが考慮されていないことである。そのような問題点を図５９および図６０を参照して説明する。なお以下の説明では、「小領域」とは、画像のあるブロックを指すものとする。
【０００８】
図５９に入力画像の例を示す。この入力画像は全体では２５６階調を有するものとする。この画像は、「１５０」という画素値を持つ星印領域１０１と、「１７５」という画素値を持つ矢印領域１０２および星印領域１０３と、「２５５」という画素値を持つ背景領域とを含んでいる。
【０００９】
今、各小領域ごとに、減色後の階調数として４階調または８階調のいずれかが選択されるものとする。４階調の場合には、例えば、減色後の画素値は０、８５、１７０、２５５のいずれかとなる。これは、階調数０から２５５の空間を均等に分割することによって得られる４つの階調である。同じく８階調の場合には、例えば、画素値は０、３６、７３、１０９、１４６、１８２、２１９、２５５のいずれかの値をとる。入力画像からの変換は、減色後の階調数が決定した後は、その階調数で可能な減色後の画素値で最も入力画像に近い値をとることによって行なう。
【００１０】
このようなロジックの下では、図５９に示す矢印領域１０２については、４階調で画素値「１７０」で表わされるのが妥当のように思われる。星印領域１０３についても同様である。しかし、星印領域１０１（画素値１５０）については、４階調で最も近い画素値は８５または１７０であるため、いずれを選択した場合であっても誤差が大きくなる。そのため、既存のロジックによれば星印領域１０１を含んだ小領域（図５９に示される分割した正方領域）について８階調が必要と判断される可能性がある。そうした場合の処理結果の一例を示すのが図６０である。
【００１１】
図６０を参照して、星印領域１０１については、８階調で、元の画素値１５０と比較的近い値である１４６が選択されている。そのため星印領域１０１については特に問題はない。しかし、矢印領域１０２のうち、星印領域１０１が存在する小領域と同じ小領域の中の部分は、８階調で元の画素値１７５と最も近い値、つまり１８２という画素値で表わされている。そのため、この部分は矢印領域１０２のその他の部分の「１７０」という画素値と異なる画素値を有することになる。こうして、図６０に示されるように、左下の小領域と他の小領域との境界に沿って、矢印領域１０２の中に段差が現われる。この段差は原画には存在していなかったものである。こうした現象が好ましくないことは言うまでもない。
【００１２】
このような現象は、従来の技術では小領域ごとの最適な減色階調数の判定が、小領域の中でほぼ閉じて行なわれるために生じる。
【００１３】
従来の技術のもう１つの問題点は、従来の技術では、各ブロックの最適な階調数の判定にあたって、図形的な特徴が考慮されていないことである。ブロック全体での誤差が同じであったとしても、図形的な特徴により画像の劣化が特に目立ちやすくなる場合がある。たとえば画像の比較的平坦な領域であれば誤差は目立ちにくい。それに対して直線、特に縦方向または横方向の線では、無理な減色をすると線のがたつきが生じやすく、見る者がそうした画像の劣化に気づきやすい。しかし従来の技術ではこのような問題点を十分に考慮しているとは言えなかった。
【００１４】
それゆえに本発明の目的は、画像の劣化を防止しながら、原画像の減色処理を行なうことができる画像減色装置およびそうした画像減色装置を用いることにより効率的に画像符号化が可能な画像符号化装置を提供することである。
【００１５】
本発明の他の目的は、小領域ごとに減色処理され、さらに符号化された画像データを復号することができる画像復号装置を提供することである。
【課題を解決するための手段】
【００１６】
この発明のある局面にかかる画像減色装置は、入力されたデジタル画像データの階調数を減少させて出力する画像減色装置であって、入力画像を予め定められた手法により小領域に分割するための分割手段と、各小領域ごとに、当該小領域に含まれる画像データに基づいて、当該小領域を適切に減色するための階調数を設定するための適応的減色手段とを含む。
【００１７】
好ましくは適応的減色手段は、入力画像中から予め定められた形状、たとえば直線を抽出するための抽出手段と、抽出手段による予め定められた形状の抽出結果に基づいて、入力画像中の予め定められた形状が存在する領域の階調数が、予め定められた形状の存在しない領域の階調数以上となるように、各小領域の階調数を設定するための手段とを含む。
【００１８】
さらに好ましくは、適応的減色手段は、異なる減色方法の下での、画像の少なくとも一部における背景画素および非背景画素のいずれか一方の分布を表わす指標を算出するための分布算出手段と、分布算出手段により算出された分布の比較結果に基づいて減色方法の適否を決定するための適否決定手段とを含む。
【００１９】
さらに好ましくは、分布算出手段は、入力画像中から予め定められた形状を抽出するための抽出手段と、異なる減色方法の下での、予め定められた形状の近傍の背景画素および非背景画素のいずれか一方の分布を検出するための画素分布検出手段とを含み、適否決定手段は、画素分布検出手段により検出された、第１の減色階調数とそれより少ない第２の減色階調数との下での、背景画素および非背景画素の分布を比較し、比較結果が予め定める条件を満足しているか否かに基づいて、第２の減色階調数の適否を判定するための手段を含む。
【００２０】
予め定める条件とは、第２の減色階調数の下での背景画素の数と、第１の減色階調回数の下での背景画素の数との差が一定以上であることでもよいし、第１の減色階調数の下での非背景画素の数と、第２の減色階調回数の下での非背景画素の数との差が一定以上であることでもよい。
【００２１】
適応的減色手段は、入力画像をラベリングするためのラベリング手段と、ラベリング手段の出力に基づき、共通なラベルを含む小領域に共通のラベルを付与するための小領域ラベリング手段とを含み、小領域ラベリング手段によって共通のラベルが付与された小領域には、共通の階調数を設定する構成でもよい。
【００２２】
適応的減色手段は、入力画像の小領域の境界をはさんで隣接する二つの画素が共通の画素値を持つ場合に、当該二つの画素が属する二つの小領域に共通のラベルを付与する小領域ラベリング手段とを含み、小領域ラベリング手段により共通のラベルが付与された小領域には、共通の階調数を設定する構成でもよい。
【００２３】
この発明の他の局面にかかる画像符号化装置は、入力されたデジタル画像データの階調数を減少させるための、請求項１〜請求項９のいずれかに記載の画像減色装置と、画像減色手段により減色された画像のエントロピー符号化を行なうための画像符号化手段とを含む。
【００２４】
この発明のさらに他の局面にかかる画像符号化装置は、小領域ごとに異なる階調数を持ち得る入力画像をビットプレーンに分割して圧縮する画像符号化装置であって、上位プレーンにおいてより隣接画素間の連続性が高まるように、符号化対象の小領域の階調数に応じて異なる変換を各画素値に施しビットプレーンに分割するための画像変換手段と、画像変換手段による変換によって得られるビットプレーンごとに所定のエントロピー符号化を行なうための画像符号化手段とを含む。
【００２５】
この発明の別の局面にかかる画像符号化装置は、小領域ごとに異なる階調数を持ち得る入力画像をビットプレーンに分割して圧縮する画像符号化装置であって、すべての小領域の階調数が等しいか否かを判定するための判定手段と、判定手段によりすべての小領域の階調数が等しいと判定されたことに応答して、入力画像の全体を一つの小領域とみなし、小領域の数を１として画像を符号化するための第１の画像符号化手段と、判定手段によりすべての小領域の階調数が等しいわけではないと判定されたことに応答して、入力画像の各小領域ごとに符号化するための第２の画像符号化手段とを含む。
【００２６】
この発明のさらに別の局面にかかる画像復号装置は、請求項１０に記載の画像符号化装置によって符号化された画像データを入力するための入力手段と、入力手段により入力された画像データに対して、請求項１０に記載のエントロピー符号化に対応した復号を行なう復号手段とを含む。
【００２７】
この発明のある局面にかかる画像減色装置は、請求項１１に記載の画像符号化装置によって符号化された画像データを入力するための入力手段と、入力手段により入力された画像データに対して、請求項１１に記載のエントロピー符号化に対応した復号を行なう復号手段と、復号手段により復号された画像データに対して、請求項１１に記載の画像変換手段に対応した逆変換を行なうための画像逆変換手段とを含む。
【００２８】
この発明のある局面にかかる画像減色装置は、請求項１２に記載の画像符号化装置によって符号化された画像データを復号するための画像復号装置であって、画像符号化手段によって符号化された画像データに含まれる小領域の数がいくつかを判定するための判定手段と、判定手段により判定された数の小領域に画像データを分割して復号するための復号手段とを含む。
【発明の効果】
【００２９】
以上のように本発明による画像減色装置は、小領域の間の繋がりを考慮して、小領域の減色後の階調数を決定する。そのため、色階調数の画素値の配置に制限を加えずに、視覚的に大きな影響を持つ小領域ごとの違いによる段差が起こりにくい画像の減色処理を行なうことができる。
【００３０】
また本発明に係る画像減色装置は、小領域中に線領域がある場合、小領域の減色階調数を大きくするような制御を行なう。そのため、がたつきなど線領域の劣化が目立たないように画像の減色処理を行なうことができる。
【００３１】
本発明に係る画像減色装置は、小領域中に含まれる文字の縦線、横線の周囲の過度の減色による劣化を実際に検出し、その結果に応じて適切な階調数での減色を行なう。無理な減色は行なわないので、特に文字に含まれる線部分の劣化が目立たないように画像の減色処理を行なうことができる。
【００３２】
また、本発明にかかる画像圧縮装置は、異なる階調数を持つ小領域を考慮して、減色後のビットプレーンの圧縮効果が高くなるように構成されている。そのため、より効率の高い画像圧縮を行なうことができる。
【００３３】
さらに、上の本発明に係る画像復号装置は、小領域の階調数がどれも等しいときには、一部の情報の復号をスキップするように構成した。そのため、従来と比較してさらに符号化効率の高い画像圧縮を行なうことができる。
【発明を実施するための最良の形態】
【００３４】
［第１の実施の形態］
以下、本発明の第１の実施の形態である画像減色装置の説明を行なう。なお以下の説明では、第１の実施の形態の説明に限らず、理解を容易にするために具体的なデータ構造および画像の階調数などの数値例を挙げる。しかしこれらは単に説明のための例にすぎず、本発明の技術的範囲を制限するようなものであると解すべきではない。
【００３５】
また本明細書では、小領域または画像の階調数とは、その小領域または画像で許されている画素値の種類の数をいうものとし、実際にその小領域または画像に何種類の画素値が現われるかをいうものではないものとする。たとえばある小領域で０〜７の画素値が許されている場合には、実際には３種類の値しか画素値として現われなくても、その小領域は８値領域と考える。
【００３６】
図１を参照して、この画像減色装置はスキャナなどの画像入力装置３０１と、画像入力装置３０１により入力された画像データを格納するための入力画像バッファ３０２と、入力画像バッファ３０２に格納された画像データに対し、小領域ごとに適切な必要最小限の階調数に減色する適応的減色処理を行なうための適応的減色器３０３と、適応的減色器３０３の出力する減色された画像データを格納するための減色画像バッファ３０４と、減色画像バッファ３０４に格納された画像データを、２５６階調の画像に変換して出力するための出力画像作成器３０５と、出力画像作成器３０５の出力する２５６階調の画像を格納するための出力画像バッファ３０６と、出力画像バッファ３０６に格納されたデータを表示または印刷するためのディスプレイまたはプリンタからなる画像出力装置３０７とを含む。
【００３７】
画像入力装置３０１としてここではスキャナを想定している。しかし画像入力装置としてはスキャナに限らず他の画像入力装置、たとえばデジタルカメラ、通信により受信した画像データを格納する記憶装置など、どのようなものであってもよい。
【００３８】
入力画像バッファ３０２は、各画素のデータ以外にも、横方向の画素数、縦方向の画素数、および階調数を格納するものとする。図２に入力画像バッファ３０２に格納される画像データのデータ構造を示す。図２を参照してこの画像データは、横方向画素数（ＬＸ）５０１と、縦方向画素数（ＬＹ）５０２と、階調数５０３と、画像データ５０４とを含む。この例では横方向画素数５０１、縦方向画素数５０２および階調数５０３はいずれも４バイトの整数データであるものとする。なお以下の説明では、特に断らない限り、整数とは４バイト整数を指すものとする。また画像データ５０４は、横方向画素数５０１×縦方向画素数５０２の数だけの画素を含み、１画素当り１バイト（８ビット）が割当てられるものとする。画像は２５６階調のグレイスケール画像であると仮定する。
【００３９】
なお、入力画像バッファ３０２に格納された画像データでは、背景領域の画素値は２５５に近い値を、非背景領域の画素値は０に近い値をそれぞれ持つものとする。なお減色画像バッファ３０４および出力画像バッファ３０６も入力画像バッファ３０２と同じデータ構造を持つものとする。
【００４０】
出力画像作成器３０５は、小領域階調数バッファ６１７（図３）および基準画素値テーブル６２２（図３）を参照して、小領域ごとに減色された、減色画像バッファ３０４の画像を２５６０階調に変換して出力画像バッファ３０６に出力する機能を有する。
【００４１】
図３を参照して、図１に示される適応的減色器３０３は、以下に述べるさまざまな構成要素を制御して適応的減色処理を行なうためのコントローラ６０１を含む。適応的減色器３０３はさらに、小領域情報生成器６０２と、小領域数レジスタ６０３と、小領域情報バッファ６０４と、画像２値化器６０５と、２値画像バッファ６０６と、線抽出器６０７と、線本数レジスタ６０８と、線情報バッファ６０９と、文字矩形情報抽出器６１０と、文字矩形数レジスタ６１１と、文字矩形情報バッファ６１２と、第１カウンタ６１３と、文字矩形減色器６１４と、文字矩形階調数バッファ６１５と、小領域減色器６１６と、小領域階調数バッファ６１７と、線領域階調数レジスタ６１８と、小領域階調数検証器６１９と、小領域単純減色器６２０と、画素値変換器６２１と、基準画素値テーブル６２２とを含む。
【００４２】
コントローラ６０１は、適応的減色器３０３の他の構成要素の制御ならびに他の各構成要素相互間および各構成要素と適応的減色器３０３の外部との間のデータ通信の制御を行なうためのものである。コントローラ６０１は、以下に説明する適応的減色器３０３の各構成要素の動作に常に関与している。しかし、記載の簡略化のために、理解に差し支えがないと思われる箇所ではコントローラ６０１については言及しないことがある。
【００４３】
文字矩形階調数バッファ６１５および小領域階調数バッファ６１７はそれぞれ整数配列である。これら２つのバッファ６１５および６１７のｉ番目の要素をそれぞれＲＬＢ［ｉ］、ＡＬＢ［ｉ］と書く。
【００４４】
小領域情報生成器６０２は、入力画像バッファ３０２に格納された画像データ（以下「原画像」と呼ぶ。）を分割するための情報を生成し、小領域の画像を小領域数レジスタ６０３に、各小領域の位置を含む各小領域に関する情報を小領域情報バッファ６０４に、それぞれ格納する機能を有する。
【００４５】
画像を小領域に分割する方法にはさまざまなものが考えられる。ここでは、画像を横８ピクセルおよび縦８ピクセルの正方形の小ブロックに分割する方法を用いる。
【００４６】
小領域情報バッファ６０４の構成例を図５に示す。図５を参照して、小領域情報バッファ６０４には、各小領域（ブロック）の左上隅のｘ座標およびｙ座標、ならびに右下隅のｘ座標およびｙ座標からなる組が、小領域の数だけ格納されている。一般には画像の横幅および縦幅は８の倍数とは限らない。そのため、画像の一部に半端な大きさのブロックができることがある。この実施の形態ではｘ方向の余りは、画像の左右端に横幅が８より小さなブロックを作ることにより吸収する。ｙ方向の余りは、画像の最下端に縦幅が８より小さなブロックを作ることで吸収する。
【００４７】
画像２値化器６０５は、入力画像バッファ３０２に格納された画像データから２値画像を生成して、２値画像バッファ６０６に格納する機能を有する。画像２値化器６０５は、以下に述べる２値化しきい値Ｔを用いて原画像データを２値化する。すなわち画像２値化器６０５は、原画像データのうち画素値が０以上、かつしきい値Ｔ未満の画素（非背景領域の画素）には、対応する２値化画像の画素値として０を割当てる。それ以外の画素（背景領域の画素）には、対応する２値化画像の画素値として２５５が割当てられる。
【００４８】
しきい値Ｔを求める方法として、ここでは「大津の方法」と呼ばれるものを用いる。この「大津の方法」については、高木、下田監修「画像解析ハンドブック」、東京大学出版会、５０２〜５０４頁に解説されている。
【００４９】
このように、画像データバッファ３０２に格納されている画像データから２値化画像を生成するのは、以降の処理で背景領域と非背景領域とを区別するのを容易にするためである。
【００５０】
２値画像バッファ６０６は、１画素当り１バイトとして２値化された画像データを格納する機能を有する。
【００５１】
線抽出器６０７は、２値画像バッファ６０６を参照して、非背景領域から横方向および縦方向の直線を抽出してその情報を線情報バッファ６０９に格納する機能を有する。このように直線に関する情報を抽出する手法としては、特許第３１００８２５号に記載のものなど、公知の技術を使用することができる。特に、この実施の形態にかかる線抽出器６０７は、横線および縦線を抽出する。このように抽出する直線を横線および縦線に限ったのは、従来の技術の項でも述べたとおり、縦方向または横方向の直線をなす画素について特別な処理を行なうことが、画像の劣化を防ぐ上で効果が大きいと考えられるためである。
【００５２】
線情報バッファ６０９が格納するデータ構造を、図５に示す。図５を参照して、線情報バッファ５０９は、線抽出器６０７により抽出された直線の外接長方形の左上隅Ｘ座標およびＹ座標ならびに右下隅Ｘ座標およびＹ座標を格納する。このように直線を外接長方形で近似できるのは、線抽出器６０７が抽出する直線が横方向および縦方向の直線であるためである。
【００５３】
文字矩形情報抽出器６１０は、２値画像バッファ６０６に格納された２値画像を参照して、非背景領域に属する画素からなる文字要素に外接する矩形の情報を抽出し、抽出された矩形の数を文字矩形数レジスタ６１１、座標情報を文字矩形情報バッファ６１２にそれぞれ格納する機能を有する。なおここで文字要素と呼んでいるのは、代表的には、非背景領域に属する画素がなす各連結領域である。そうした文字要素に外接する矩形を画像から抽出する技術は、たとえば特許第３０５８４８９号公報に開示されている。
【００５４】
文字矩形情報バッファ６１２のデータ構造を図６に示す。図６を参照して、文字矩形情報も、各文字要素の外接矩形の左上隅Ｘ座標およびＹ座標ならびに右下隅Ｘ座標およびＹ座標を含む。
【００５５】
文字矩形減色器６１４は、文字矩形情報抽出器６１０により抽出され、文字矩形情報バッファ６１２に格納された文字矩形につき、各矩形の最適な階調数を決定してその情報を文字矩形階調数バッファ６１５に格納する機能を有する。その詳細については後述する。
【００５６】
小領域減色器６１６は、各小領域のこの時点での最適な階調数を決定して、その情報を小領域階調数バッファ６１７に格納する機能を有する。この詳細についても後述する。
【００５７】
小領域階調数検証器６１９は、小領域階調数バッファ６１７の内容が整合しているかどうかを検証し、小領域階調数バッファ６１７の内容を書換える機能を有する。その詳細については後述する。
【００５８】
小領域単純減色器６２０は、入力画像バッファ３０２と小領域階調数バッファ６１７とを参照し、各小領域に属する各画素を減色して、減色画像バッファ３０４の対応する小領域に出力する機能を有する。その詳細については後述する。
【００５９】
基準画素値テーブル６２２は、各階調数に応じた画素値が参照できるテーブルである。
以下、図３に示した各構成要素を用いてコントローラ６０１が減色処理を行なう処理の制御構造について図４を参照して説明する。各ブロックでの処理内容の詳細については後述することとして、コントローラ６０１で行なわれる処理の全体の流れは図４に示されるとおりである。なおこの処理はすべてコントローラ６０１の制御によって行なわれるものであるが、以下の説明ではコントローラ６０１の制御について言及しないことがある。
【００６０】
まず小領域情報生成器６０２が、入力画像バッファ３０２に格納された原画像を分割するための情報を生成し、小領域の数を小領域数レジスタ６０３に格納する。また各小領域の位置を含む、各小領域に関する情報が小領域情報バッファ６００に格納される（Ｓ７０１）。
【００６１】
次に、画像２値化器６０５は、入力画像バッファ３０２に格納された画像データから２値画像を生成し、２値画像バッファ６０６に格納する（Ｓ７０２）。続いて線抽出器６０７が、２値画像バッファ６０６を参照して、非背景領域から横方向および縦方向の直線を抽出して、その内容を線情報バッファ６０９に格納する（Ｓ７０３）。
【００６２】
続いて文字矩形情報抽出器６１０が、２値画像バッファ６０６を参照して、非背景領域に属する画素からなる文字要素に外接する矩形の情報を抽出し、抽出された矩形の数を文字矩形数レジスタ６１１、座標情報を文字矩形情報バッファ６１２に、それぞれ格納する（Ｓ７０４）。文字矩形減色器６１４が、各矩形の最適な階調数を決定し、その情報を文字矩形階調数バッファ６１５に格納する（Ｓ７０５）。この詳細については後述する。小領域減色器６１６は、各小領域のこの時点での最適な階調数を決定して、その情報を小領域階調数バッファ６１７に格納する（Ｓ７０５Ａ）。この詳細については後述する。
【００６３】
コントローラ６０１は、文字矩形階調数バッファ６１５に格納されている矩形ごとの階調数の情報を参照して、小領域階調数バッファ６１７の内容を書換える（Ｓ７０６）。この詳細については後述する。コントローラ６０１はさらに、線情報バッファ６０９に格納されている線の情報を参照して、小領域階調数バッファ６１７の内容を書換える（Ｓ７０７）。この詳細についても後述する。
【００６４】
続いて小領域階調数検証器６１９が、小領域階調数バッファ６１７の内容の整合性がとれているかどうかを検証し、検証結果に従って小領域階調数バッファ６１７の内容を書換える（Ｓ７０８）。その詳細については後述する。さらに小領域単純減色器６２０が、入力画像バッファ３０２と小領域階調数バッファ６１７とを参照しながら、各小領域に属する各画素を減色して、減色画像バッファ３０４の対応する小領域に出力する（Ｓ７０９）。詳細については後述する。Ｓ７０９の処理が終了すると減色処理は終了である。
【００６５】
図４に示すＳ７０５において行なわれる処理の制御構造につき図７を参照して説明する。コントローラ６０１は、第１カウンタ６１３を０で初期化する（Ｓ１０６１）。カウンタ６１３の値を以下では「ｉ」と呼ぶ。
【００６６】
文字矩形減色器６１４が入力画像バッファ３０２および文字矩形情報バッファ６１２を参照し、ｉ番目の矩形に含まれる領域について、最適な階調数を決定する。決定された情報は文字矩形階調数バッファ６１５のｉ番目の要素に格納される（Ｓ１０６２）。文字矩形減色器６１４の動作については後述する。
【００６７】
続いてコントローラ６０１は第１カウンタ６１３の値ｉをインクリメントする（Ｓ１６０３）。第１カウンタ６１３の内容ｉと、文字矩形数レジスタ６１１の内容とが比較され（Ｓ１６０４）、等しければＳ７０４の処理を終了する。ｉと矩形数とが等しくなければ制御はＳ１６０２に戻る。
【００６８】
続いて図４に示されるＳ７０５Ａの処理の詳細について図８を参照して説明する。コントローラ６０１は、第１カウンタ６１３の値ｉを０で初期化する（Ｓ５２０１）。以下、第１カウンタ６１３の値をｉと呼ぶ。
【００６９】
続いて小領域減色器６１６が、入力画像バッファ３０２、小領域情報バッファ６０４を参照して、ｉ番目の小領域について、原画像と、減色後の誤差とが一定範囲になるような減色階調数を、予め定めた可能な減色階調数から求める。小領域減色器６１６はその減色階調数を小領域階調数バッファ６１７に出力する（Ｓ５２０２）。小領域階調数バッファ６１７は、小領域と１対１に対応するような整数配列である。小領域減色器６１６の動作については後述する。
【００７０】
続いてコントローラ６０１は、第１カウンタ６１３の値ｉをインクリメントする（Ｓ５２０３）。コントローラ６０１は、第１カウンタ６１３の値を小領域数レジスタ６０３の値と比較し（Ｓ５２０４）、等しければ処理を終了し、等しくなければ制御をＳ５２０２に戻す。
【００７１】
図４に示すＳ７０６において行なわれる処理の詳細について図９を参照して説明する。まずコントローラ６０１は、第１カウンタ６１３の値ｉを０で初期化する（Ｓ５３０１）。続いてコントローラ６０１は、第２カウンタ６１６の値を０で初期化する（Ｓ５３０２）。以下第２カウンタ６１６の値をｊと呼ぶ。
【００７２】
続いてコントローラ６０１は、文字矩形情報バッファ６１２と小領域情報バッファ６０４とを参照し、ｉ番目の矩形が、ｊ番目の小領域と重なっているかどうかを判定する（Ｓ５３０３）。両者が重なっていれば制御はＳ５３０４に進み、重なっていなければ制御はＳ５３０６に進む。小領域情報および矩形情報が、いずれもその左上の座標と右下の座標とで一意に定められている。したがってこのＳ５３０３のような判断はｉ番目の矩形と小領域との座標の比較で行なうことができる。
【００７３】
さらにコントローラ６０１は、文字矩形階調数バッファ６１５のｉ番目の要素の値と、小領域階調数バッファ６１７のｊ番目の要素の値とを比較する（Ｓ５３０４）。前者の方が大きければ制御はＳ５３０５に進み、そうでないときは制御はＳ５３０６に進む。
【００７４】
ステップＳ５３０５では、小領域階調数バッファ６１７のｊ番目の要素に、文字矩形階調数バッファ６１５のｉ番目の要素の値が代入される。
【００７５】
続いてＳ５３０６において、コントローラ６０１は第２カウンタ６１６の値を１だけインクリメントする（Ｓ５３０６）。そしてその値が小領域数レジスタ６０３の値と比較される（Ｓ５３０７）。両者が等しければ制御はＳ５３０８に進み、さもなければ制御はＳ５３０３に戻る。
【００７６】
ステップＳ５３０８では、コントローラ６０１は第１カウンタ６１３の値を１インクリメントする。そしてこのインクリメントされた第１カウンタ６１３の値を文字矩形数レジスタ６１１の値と比較する（Ｓ５３０９）。両者が等しければこの処理は終了し、等しくなければ制御はＳ５３０２に戻る。
【００７７】
続いて図４のＳ７０７の処理の内容について図１０を参照して説明する。なおこの処理の前に、予め線の領域に使用する減色階調数が定まっており、線領域階調数レジスタ６１８に既に格納されているものとする。
【００７８】
線領域階調数レジスタ６１８に格納される値に特に制限はない。しかし画像から線を抽出するのは、減色時にがたつきなどの劣化が目立たないように、他の領域より大きめの階調数を割当てるのが目的である。したがって減色後の階調数としては大きめの値をとることが望ましい。
【００７９】
この実施の形態の装置では線領域階調数レジスタ６１８には「８」が格納されているものとする。これは第２減色テーブル１１０３および減色テーブル１６０３に格納されている減色後の階調数の最大値と同じである。
【００８０】
図１０を参照して、コントローラ６０１は、第１カウンタ６１３の値ｉを０で初期化する（Ｓ５４０１）。続いて第２カウンタ６１６の値ｊを０で初期化する（Ｓ５４０２）。
【００８１】
コントローラ６０１は、線情報バッファ６０９と小領域情報バッファ６０４とを参照し、ｉ番目の矩形がｊ番目の小領域と重なっているかどうかを判定する（Ｓ５４０３）。両者が重なっていれば制御はＳ５４０４に進み、重なっていなければ制御はＳ５４０６に進む。
【００８２】
各線の情報は、その外接矩形の左上隅の座標と右下隅の座標とで一意に定まっている。したがってＳ５４０３の判定は、ｉ番目の矩形とｊ番目の線の座標の比較で容易に行なうことができる。
【００８３】
ｉ番目の線とｊ番目の小領域とが重なっている場合、ステップＳ５４０４においてコントローラ６０１は、線領域階調数レジスタ６１８の値と小領域階調数バッファ６１７のｊ番目の要素の値とを比較する（Ｓ５４０５）。前者の方が大きければ制御はＳ５４０５に進み、さもなければ制御はＳ５４０６に進む。
【００８４】
線領域階調数レジスタ６１８の値の方が小領域階調数バッファ６１７のｊ番目の要素の値よりも大きければ、ステップＳ５４０５において、小領域階調数バッファ６１７のｊ番目の要素に、線領域階調数レジスタ６１８の値が代入される（Ｓ５４０５）。
【００８５】
続いてコントローラ６０１は、第２カウンタ６１６の値ｊをインクリメントし（Ｓ５４０６）、第２カウンタ６１６の値ｊを小領域数レジスタ６１３の値と比較する（Ｓ５４０７）。両者が等しければ制御はＳ５４０８に進み、さもなければ制御はＳ５４０３に戻る。
【００８６】
Ｓ５４０８ではコントローラ６０１は第１カウンタ６１３の値ｉをインクリメントする。さらにＳ５４０９において、第１カウンタ６１３の値ｉが線本数レジスタ６０８の値と比較される（Ｓ５４０９）。両者が等しければ処理は終了し、等しくなければ制御はＳ５４０２に戻る。
【００８７】
続いて図４に示すＳ７０９の処理の詳細につき図１１を参照して説明する。コントローラ６０１は、第１カウンタ６１３の値ｉを０で初期化する（Ｓ５５０１）。
【００８８】
小領域単純減色器６２０が、入力画像バッファ３０２と小領域階調数バッファ６１７とを参照しつつ、ｉ番目の小領域に属する各画素を減色し、減色画像バッファ３０４の対応する画素に出力する（Ｓ５５０２）。画素値変換器６２１は、基準画素値テーブルを参照して、ｉ番目の小領域に対応する小領域階調数バッファ６１７のｉ番目の要素の値を参照して、基準画素値テーブル６２２に格納された基準画素値のうち最も近いものに小領域の各画素の値を減色する。
【００８９】
続いてコントローラ６０１は第１カウンタ６１３の値ｉをインクリメントし（Ｓ５５０３）、第１カウンタ６１３の値ｉと小領域数レジスタ６０３の値とを比較する（Ｓ５５０４）。両者が等しければ処理は終了し、さもなければ制御はＳ５５０２に戻る。
【００９０】
図１２に、図３に示される文字矩形減色器６１４の構成を示す。図１２を参照して、文字矩形減色器６１４は、コントローラ１１０１と、第１減色テーブル１１０２と、第２減色テーブル１１０３と、可能階調数レジスタ１１０４と、線抽出器１１０５と、線本数レジスタ１１０６と、線情報バッファ１１０７と、第１カウンタ１１０８と、第２カウンタ１１０９と、累積ヒストグラム生成器１１１０と、累積ヒストグラムバッファ１１１１と、テンポラリー線階調数バッファ１１１２とを含む。
【００９１】
コントローラ１１０１は、文字矩形減色器６１４の他の構成要素の制御、ならびに他の各構成要素相互間および各構成要素と文字矩形減色器６１４の外部との間のデータ通信の制御を行なうためのものである。コントローラ１１０１は、文字矩形減色器６１４の他の各構成要素の動作に常に関与している。しかし、説明の簡略化のために、以下においては理解に差し支えないと思われる範囲でコントローラ１１０１の関与については言及しないことがある。
【００９２】
第１減色テーブル１１０２は、文字矩形減色器６１４の出力として可能な階調数が予め格納されている整数配列である。文字矩形減色器６１４の出力は１以上であり、かつ原画像の階調数以下であることが要請される。原画像の階調数は、既に述べたように本実施の形態では２５６である。したがって文字矩形減色器６１４の出力は１以上２５６以下である。ただし、データ容量削減の見地からは、十分な画質が保てる範囲でなるべく小さな値であることが望ましい。
【００９３】
本実施の形態では、文字矩形減色器６１４の出力は１、２、４、８の４種類であるものとする。そしてこれらの値がこの順で第１減色テーブル１１０２に格納されているものとする。すなわち、第１減色テーブル１１０２は４つの要素を持つ。以後、第１減色テーブル１１０２のｊ番目の要素をＳ［ｊ］と表わすことがある。この記法を用いて第１減色テーブル１１０２の要素を表わせば、Ｓ［０］＝１、Ｓ［１］＝２、Ｓ［２］＝４、およびＳ［３］＝８である。
【００９４】
文字矩形減色器６１４の出力として可能な階調数は予め決定されており、可能階調数レジスタ１１０４に格納されている。この実施の形態では、可能階調数レジスタ１１０４に格納されている値は４である。以後の説明では、説明を一般化するために可能階調数レジスタ１１０４に格納されている値をｖとして説明する。本実施の形態はｖ＝４となる場合である。
【００９５】
第２減色テーブル１１００は、２次元配列である。その（ｊ，ｋ）要素は、ｊ階調に減色するときに、０から数えてｋ番目（ただしｊ＞ｋ）の階調に減色される、最小の原画像の画素値が予め格納されているものとする。以後、第２減色テーブル１１０３の（ｊ，ｋ）要素をＴ［ｊ］［ｋ］と書く。
【００９６】
原画像の画素値から減色後の画素値を決定するアルゴリズムは以下のようなものである。前提として、基準となる画素値（以下「基準画素値」と呼ぶ。）は以下のようにして決定される。まず、２５６階調を構成する画素値０〜２５５のうち、両端の０、２５５をそれぞれ基準画素値とする。残りの（減色後階調数−２）個の基準画素値を、両端の０および２５５を含めて、その間隔が均等になるように０〜２５５の間に配置する。各基準画素値に、小さな基準画素値から順に０、１、２、…と番号を付ける。そして基準画素値の分布が決定される。階調数が２値、４値、８値に対応する基準画素値の分布をそれぞれ図１３、図１４および図１５に示す。
【００９７】
図１３を参照して、２階調の場合には、基準画素値は上記の説明からわかるように０と２５５とからなる。原画像の画素値が０と２５５とのいずれに近いかによって、減色後の画素は０か１かの値をとる。
【００９８】
図１４を参照して、４階調の場合には、０と２５５以外に８５および１７０が基準画素値となる。原画像の画素が０、８５、１７０、２５５のいずれに最も近いかによって、減色後の画素は０〜３のいずれかの値をとる。
【００９９】
８階調の場合には、図１５に示されるように、０と２５５以外に、３６、７３、１０９、１４６、１８２、２１９も基準画素値となる。図１３および図１４の場合と同様に原画像の画素値がこれら基準画素値のいずれに最も近いかによって減色後の画素値に０〜７のいずれかの値が割り振られる。
【０１００】
なお、減色後の階調数、原画像の階調数および画素値によっては、上下の基準画素値との差の絶対値が同じになるような画素（上下の基準画素値のちょうど中間に位置する画素）が出現する可能性がある。そのような場合には、本実施の形態では常に低い方の基準画素値を採用するものとする。もちろんこの場合の画素値の決定方法は、矛盾がない範囲で予め取決めをしておけばどのような方法を採用してもよい。たとえば二つの基準画素値のうち、常に高い方の基準画素値を採用するなどの方法をとることもできる。
【０１０１】
このアルゴリズムの下では、原画像の階調数より小さなｊについて、ｊ階調に減色するときに、減色後の画素値が０から数えてｋ番目の画素値になるような最小の画素値が必ず存在する。ただしここでいう最小の画素値とは、実際の入力画像からとるのではなく、入力としてあり得る画素値すべてを想定した場合の、言わば計算上の値である。たとえば画像を２階調に減色するときには、０以上１２７以下の値を持つ画素は０番目の基準画素値０に近いと判定される。したがってＴ［２］［０］、すなわち第２減色テーブル１１０３の（２，０）番目の要素は０となる。また１２８以上２５５以下の値を持つ画素は１番目の基準画素値２５５に近いと判定される。したがって第２減色テーブル１１０３のＴ［２］［１］は１２８となる。
【０１０２】
同様に４階調に減少する場合を考えると、０以上４２以下の画素値は０番目の基準画素値０に、４３以上１２７以下の画素値は１番目の基準画素値８５に、１２８以上２１２以下の画素は２番目の基準画素値１７０に、２１３以上２５５以下の画素は３番目の基準画素値２５５に、それぞれ最も近いと判定される。したがってＴ［４］［０］＝０、Ｔ［４］［１］＝４３、Ｔ［４］［２］＝１２８、およびＴ［４］［３］＝２１３となる。
【０１０３】
同様の計算を８階調について行なえばＴ［４］［０］〜Ｔ［４］［７］の要素はそれぞれ０、１８、５５、９１、１２８、１６４、２００および２３７となる。もちろんここに挙げた数値はあくまでも一例であって本発明がこれに限定されるわけではない。
【０１０４】
以上の説明から、第２減色テーブル１１０３は２次元配列ではあるが、そこには不要な要素が多く含まれていることがわかる。すなわち、第１減色テーブル１１０２の要素となっていないようなｊに対応するＴ［ｊ］［ｋ］要素は不要である。またｊ，ｋに対応するＴ［ｊ］［ｋ］も不要である。本実施の形態では、このような不要な添え字の組合せに対応する第２減色テーブル１１０３の要素Ｔ［ｊ］には０が格納されているものとする。
【０１０５】
図１６を参照して、文字矩形減色器６１４のコントローラ１１０１が各構成要素を制御する処理の制御構造について説明する。以下の説明でも、コントローラ１１０１は常に関与しているが、説明の簡略化のためにコントローラ１１０１には言及しないことがある。
【０１０６】
まず、線抽出器１１０５が、２値画像バッファ６０６を参照して、現在処理対象となっている矩形領域から縦方向または横方向の直線を抽出して、その情報を線情報バッファ１１０７に格納する（Ｓ１２０１）。なお図３に示す線抽出器６０７と図１２に示す線抽出器１１０５との機能は似ており、そのため同じモジュールでこれらを兼用させることができる。ただし、線抽出器１１０５で取出すことが意図されているのは、一般的な意味での線ではなく、図１７および図１８に例が示されているような、文字中の横棒または縦棒である。そのため線抽出器１１０５が動作する際のパラメータ（線とみなすための最低の長さなど）は、図３に示す線抽出器６０７が動作する際のパラメータとは一般的には異なったものである。本実施の形態では、線抽出器１１０５では、図３の線抽出器６０７で用いた方法、すなわち特許第３１００８２５号公報に開示されているような技術を用いる。
【０１０７】
再び図１６を参照して、コントローラ１１０１は、第１カウンタ１１０８の値ｉを０に初期化する（Ｓ１２０２）。以下ｉは第１カウンタ１１０８の値を意味するものとする。
【０１０８】
累積ヒストグラム生成器１１１０が、ｉ番目の線の両側の帯状の領域の、画素値の累積ヒストグラムを生成し累積ヒストグラムバッファ１１１１に格納する（Ｓ１２０３）。ここで累積ヒストグラムと呼ぶのは、ｉ番目の線の両側の帯状領域について、各画素値ごとに、その画素値未満の画素数を集計したものである。累積ヒストグラムバッファ１１１１は、原画像で可能な画素値と１対１対応する整数配列である。すなわちこの例では原画像が２５６階調なので、累積ヒストグラムバッファ１１１１も２５６の要素からなる。以下、累積ヒストグラムバッファ１１１１のｍ番目の要素をＨ［ｍ］と表わすことがある。
【０１０９】
要するに、Ｈ［ｍ］とは、処理領域中で、ｍ未満の画素値を持つ画素の数である。したがってＨ［０］は、その領域の画素値分布に無関係に必ず０になる。画像の領域を指定すれば、そこに含まれる全画素からなる集合が１つ定まり、それについてこのような累積ヒストグラムを作成できるのは明らかである。当業者であれば累積ヒストグラム生成器１１１０の構成および動作を容易に理解し、実現させることができるであろう。
【０１１０】
図１９〜図２１を参照して、この累積ヒストグラムについて説明する。図１９を参照して、入力文字から抽出された横線１５０１の上側に帯状の領域１５０２を、下側に帯状の領域１５０３を、それぞれ想定する。帯状領域としては、ここでは線を上下に２ドットずつ（縦線の場合には左右に２ドットずつ）膨らませた領域から、当該線を除いた領域とする。
【０１１１】
図２０は、図１９と同じ入力画像を８値化した後の例である。この例では、７以外の画素値をとる非背景領域１５０４が得られるが、これは図１９に示される横線１５０１より太っている。これは、直線を抽出する際に用いられる２値化しきい値が、８値で非背景領域となるような、８値に減色したときに７以外の画素値となるような画素値の基準画素値２３７より通常かなり低いこと、またそのようにして得られた非背景領域から直線を抽出した時点でヒゲなどが一般に取れることなどが理由である。
【０１１２】
図２１には、同じ入力画像を４値化した例を示す。図２１に示される例では、３以外の画素値をとる非背景領域１５０５は、図２０に示される非背景領域１５０４に比べて痩せている。図１９に示される帯状領域１５０２および１５０３において、このように減色階調数を８（図２０）から４（図２１）に変化させたとき、８値減色時には非背景領域に属し、４値減色時には背景領域になる画素が多いときに、８階調の減色では劣化はそれほどないが、４階調では劣化が激しいとみなすのである。
【０１１３】
再び図１６を参照してコントローラ１１０１は、第２カウンタ１１０９の値ｊをｖ−１という値に初期化する（Ｓ１２０４）。現在の例ではｊ＝４−１＝３となる。
【０１１４】
続いてコントローラ１１０１は、第１減色テーブル１１０２、第２減色テーブル１１０３、可能階調数レジスタ１１０４、第２カウンタ１１０９、累積ヒストグラムバッファ１１１１を参照して、Ｈ［Ｔ［Ｓ［ｊ］］［Ｓ［ｊ］−１］］の値を取出し、Ｈ［Ｔ［Ｓ［ｖ］］［Ｓ［ｖ］−１］］と比較する（Ｓ１２０５）。両者の間に大きな差がなければ制御はＳ１２０６に進み、さもなければ第２カウンタ１１０９の値ｊをインクリメントし（Ｓ１２０８）、Ｓ１２０９に制御は進む。
【０１１５】
ここで行なわれる比較の物理的意味について説明する。Ｔ［Ｓ［ｖ］］［Ｓ［ｖ］−１］は、最大の減色後階調数Ｓ［ｖ］の下での、背景領域となるような画素値の減色前の最小値を示す。Ｓ［ｖ］は、最大の減色階調数、Ｓ［ｖ］−１は、そのような減色の下での、減色後の最大画素値を示しているからである。同様に、Ｔ［Ｓ［ｊ］］［Ｓ［ｊ］−１］は、ｊ番目の減色階調数Ｓ［ｊ］の下での、背景領域となるような画素値の減色前の最小値を示す。
【０１１６】
一般にＨ［ｍ］は、ｍ未満の画素値を持つ画素値の数なので、Ｈ［Ｔ［Ｓ［ｖ］］［Ｓ［ｖ］−１］］は、最大の階調数への減色の下では、背景領域にならない画素の数を示す。同様にＨ［Ｔ［Ｓ［ｊ］］［Ｓ［ｊ］−１］］は、ｊ番目の減色階調数での下で、背景領域にならない画素の数を示す。
【０１１７】
この２つの数に大きな差があるということは、Ｓ［ｖ］階調への減色では背景領域でなかったのに、ｊ＜ｖとなるようなあるｊについて、Ｓ［ｊ］階調への減色では背景領域になってしまう画素が多くあるということを意味する。このような判定を行なっている対象は、文字中の縦、横方向の直線の両側の帯領域である。したがってこれは、Ｓ［ｊ］階調への減色は、Ｓ［ｖ］階調への減色に比べて、文字を構成する線の劣化が著しいということを意味する。つまり、減色によるがたつきまたは痩せ細りが目立つということである。そこで、このような場合にはステップＳ１２０５において、その領域についてはこれ以上の減色はできないと判断し、それ以上の減色を止めるようにしたのである。
【０１１８】
再び図１６を参照して、ステップＳ１２０６では、コントローラ１１０１は第２カウンタ１１０９の値ｊをデクリメントし、ｊと０とを比較する（Ｓ１２０７）。ｊが０より小さければ制御はＳ１２０８に進み、さもなければ制御はＳ１２０５に戻る。
【０１１９】
第２カウンタ１１０９の値ｊが０より小さい場合、コントローラ１１０１は、第２カウンタ１１０９の値ｊをインクリメントし（Ｓ１２０８）、さらにテンポラリー線階調数バッファ１１１２のｉ番目の要素（以下ＴＬＢ［ｉ］）にＳ［ｊ］を代入する（Ｓ１２０９）。
【０１２０】
続いてコントローラ１１０１は第１カウンタ１１０８の値ｉをインクリメントし（Ｓ１２１０）、第１カウンタ１１０８の値ｉと線本数レジスタ１１０６の値とを比較する（Ｓ１２１１）。両者が等しければ制御はＳ１２１２に進み、さもなければ制御はＳ１２０３に戻る。
【０１２１】
第１カウンタ１１０８の値ｉと線本数レジスタ１１０６の値とが等しい場合、次に行なわれる処理はテンポラリー線階調数バッファ１１１２の最小の要素を取出す処理である。そのためにコントローラ１１０１は第２カウンタ１１０９の値ｊに、ＴＬＢ［０］の値を代入する（Ｓ１２１２）。コントローラ１１０１は、第１カウンタ１１０８の値ｉに１を代入する（Ｓ１２１３）。続いてコントローラ１１０１は、ｊとＴＬＢ［ｉ］（すなわちＳ［ｉ］）とを比較する（Ｓ１２１４）。ｊの方が大きければ制御はＳ１２１５に進み、さもなければ制御はＳ１２１６に進む。ｊの方が大きい場合には、第２カウンタ１１０９の値ｊにＴＬＢ［ｉ］を代入する（Ｓ１２１５）。
【０１２２】
続いてコントローラ１１０１は、第１カウンタ１１０８の値ｉをインクリメントし（Ｓ１２１６）、第１カウンタ１１０８の値ｉと線本数レジスタ１１０６の値とを比較する（Ｓ１２１７）。両者が等しければ制御はＳ１２１８に進み、さもなければ制御はＳ１２１４に戻る。
【０１２３】
第１カウンタ１１０８の値ｉと線本数レジスタ１１０６の値とが等しければ、コントローラ１１０１は文字矩形減色器６１４の出力として第２カウンタ１１０９の値を出力し（Ｓ１２１８）、処理を終了する。
【０１２４】
次に、図８に示したＳ５２０２で行なわれる小領域ｉの階調数決定処理を行なう小領域減色器６１６について説明する。図２２を参照して、小領域減色器６１６は、コントローラ１７０１と、可能階調数レジスタ１７０２と、減色テーブル１７０３と、第１カウンタ１７０４と、画素値変換器１７０５と、テンポラリー減色画像バッファ１７０６と、基準画素値テーブル１７０７とを含む。
【０１２５】
コントローラ１７０１は、小領域減色器６１６の他の各構成要素の制御および他の各構成要素間または各構成要素と小領域減色器６１６の外部との間のデータ通信の制御を行なうためのものである。コントローラ１７０１は小領域減色器６１６の他の各構成要素の動作に常に関与している。しかし、説明の簡略化のために、理解に差し支えない範囲でコントローラ１７０１の動作については以下で言及しないことがある。
【０１２６】
減色テーブル１７０３は、図１２に示す第２減色テーブル１１０３と同じ構造および内容を持っている。また、可能階調数レジスタ１７０２は、小領域減色器６１６の出力として可能な階調数を予め格納するためのものである。この階調数は予め決定されている。この例では、可能階調数レジスタ１７０２に格納されている値は、図１２に示す可能階調数レジスタ１１０４に格納されているものと同じ値「４」である。なお以下の説明では、可能階調数レジスタ１１０４に４以外の値が格納されている場合についても一般化するために、可能階調数レジスタ１７０２の値としてｖを用いる。
【０１２７】
画素値変換器１７０５は、基準画素値テーブル１７０７に格納された基準画素値に基づいて、画素値を２５６階調からＳ［ｉ］階調に変換する機能を有する。テンポラリー減色画像バッファ１７０６は、画素値変換器１７０５によって減色された後の画像を格納するためのものである。
【０１２８】
基準画素値テーブル１７０７は、図１２に示す第２減色テーブル１１０３と似た２次元配列である。ただし、その値は基準画素値である。以下基準画素値テーブル１７０７の２次元テーブルの（ｉｊ）成分をＵ［ｉ］［ｊ］と書く。
【０１２９】
コントローラ１７０１によって行なわれる処理の制御構造について図２３を参照して説明する。まずコントローラ１７０１は、第１カウンタ１７０４の値ｉをｖ−１に初期化する（Ｓ１８０１）。以下ｉは第１カウンタ１７０４の値を意味するものとする。続いてコントローラ１７０１は、入力画像バッファ３０２に格納されている原画像の、ｉおよび小領域情報バッファ６０４によって特定される処理領域を、画素値変換器１７０５を用いてＳ［ｉ］階調に減色し、テンポラリー減色画像バッファ１７０６に格納する（Ｓ１８０２）。
【０１３０】
画素値変換器１７０５による、２５６階調からＳ［ｉ］階調への変換方法として、ここでは図１２に示す第２減色テーブル１１０３に関する説明で述べたものと同様の手法を用いる。すなわち、基準画素値を元の色空間に均等に配置し、原画像の画素値がどの基準画素値に近いかによって、減色後の画素値が決定される。このための基準画素値として基準画素値テーブル１７０７に格納されている値が使用される。
【０１３１】
原画像が２５６階調であるという条件の下で、４階調に対応する部分について基準画素値テーブル１７０７の値を示すと次のとおりである。すなわち、Ｕ［４］［０］＝０、Ｕ［４］［１］＝８５、Ｕ［４］［２］＝１７０、Ｕ［４］［３］＝２５５である。
【０１３２】
なお基準画素値テーブル１７０７は２次元配列ではあるが、不要な要素を多く含んでいること、および省略し得る要素を含んでいることについては、図１２に示す第２減色テーブル１００３について既に述べたのと同様である。
【０１３３】
後の説明に備えて、ここで８階調について同様に基準画素値テーブル１７０７の値を示しておく。すなわちこの場合Ｕ［８］［０］〜Ｕ［８］［７］はそれぞれ、０、３６、７３、１０９、１４６、１８２、２１９および２５５である。
【０１３４】
再び図２３を参照して、コントローラ１７０１は、現在処理中の小領域に対応する、入力画像バッファ３０１の小領域の画素と、テンポラリー減色画像バッファ１７０６の小領域の画素の値との比較を行なう（Ｓ１８０３）。両者の差が大きければ原画像に比べて減色後の画像が大きく劣化しているものと判断して制御はＳ１８０５に進む。そうでない場合は制御はＳ１８０４に進む。
【０１３５】
Ｓ１８０３で行なわれる処理は、基本的には、対応する各画素同士の差の平均値を算出して、予め定めておいたしきい値と比較する処理である。しかし、テンポラリー減色画像バッファ１７０６の内容は、Ｓ［ｉ］階調に減色されている。そのため、このままでは２５６階調の原画像と意味のある比較が行なえない。そこで本実施の形態では、次のような方法を用いる。
【０１３６】
テンポラリー減色画像バッファ１７０６から取出した１つの画素の画素値をｗとする。この画素値ｗをＵ［Ｓ［ｉ］］［ｗ］に変換する。つまり画素値ｗを、減色に用いられた基準画素値に変換する。このように変換された値を、テンポラリー減色画像バッファ１７０６に格納されている画像の対応する画素と比較するのである。
【０１３７】
Ｓ１８０３で行なわれる判定の結果、入力画像バッファ３０１の小領域の画素と、テンポラリー減色画像バッファ１７０６の小領域の画素の値との差が予め定めたしきい値より小さい場合、コントローラ１７０１は、第１カウンタ１７０４の値ｉをデクリメントする（Ｓ１８０４）。そしてこの第１カウンタ１７０４の値ｉと０とを比較し（Ｓ１８０５）、ｉが０より小さければ制御はＳ１８０６に進み、そうでなければ制御はＳ１８０２に戻る。
【０１３８】
Ｓ１８０３で画像が大きく劣化したと判定された場合、およびＳ１８０５で第１カウンタ１７０４の値ｉが０より小さいと判定された場合、コントローラ１７０１は、小領域減色器６１６の出力としてＳ［ｉ＋１］を出力して処理を終了する（Ｓ１８０６）。
【０１３９】
図２４を参照して、図３に示す小領域階調数検証器６１９は、コントローラ２００１と、基準階調数レジスタ２００２と、画素値変換器２００３と、基準画素値テーブル２００４と、減色画像バッファ２００５と、第１カウンタ２００６と、第２カウンタ２００７と、ラベルバッファ２００８と、ラベル付替え器２００９と、小領域ラベルバッファ２０１０と、第３カウンタ２０１１とを含む。
【０１４０】
コントローラ２００１は、小領域階調数検証器６１９の他の各構成要素の制御および他の各構成要素相互間または各構成要素と小領域階調数検証器６１９の外部との間のデータ通信の制御を行なうためのものである。コントローラ２００１は、小領域階調数検証器６１９の他の各構成要素の動作に常に関与している。しかしここでは、説明の簡略化のために、理解に差し支えないと思われる範囲でコントローラ２００１の関与については言及しないことがある。
【０１４１】
減色画像バッファ２００５は、入力画像バッファ３０２（図１参照）と同じ横幅および縦幅を有し、かつ基準階調数レジスタ２００２で与えられる階調数を持つ画像バッファである。ラベルバッファ２００８は、減色画像バッファ２００５の各画素と１対１で対応する１次元整数配列である。ここで、減色画像バッファ２００５の各画素は、ラスタスキャンに従った順序で、ラベルバッファ２００８の各要素と対応するものとする。ラベルバッファ２００８のｉ番目の要素をＰＢ［ｉ］と書く。
【０１４２】
小領域ラベルバッファ２０１０は、以下の規則で小領域と１対１対応する１次元整数配列である。小領域ラベルバッファ２０１０のｋ番目の要素をＡＬＢ［ｋ］と書く。横方向にｊ番目、縦方向にｉ番目の小領域に対応する小領域ラベルバッファ２０１０の要素は次の式で与えられる。
【０１４３】
ＡＬＢ［ｉ×横方向の小領域数＋ｊ］
以下、小領域階調数検証器６１９の機能を実現するために、コントローラ２００１が行なう処理を図２５を参照して説明する。コントローラ２００１は、入力画像バッファ３０２の各画素を、基準階調数レジスタ２００２に格納されている階調数に画素値変換器２００３を用いて減色し、減色画像バッファ２００５に格納する（Ｓ２１０１）。ここでは、画素値変換器２００３は、図２２に示す画素値変換器１７０５と全く同一の動作を行なうものとする。また画素値変換器２００３が参照する基準画素値テーブル２００４も、図２２に示す基準画素値テーブル１７０７と全く同内容であるものとする。基準階調数レジスタ２００２に格納されている階調数は、予め定められた値であり、画質が良好となる階調数が想定されている。ここでは、基準階調数レジスタ２００２には、図１に示す線領域階調数レジスタ６１８の格納内容と同様、「８」が格納されているものとする。
【０１４４】
続いてコントローラ２００１は、ラベルバッファ２００８を初期化する（Ｓ２１０２）。この初期化の方法については後述する。
【０１４５】
コントローラ２００１はさらに、ラベルバッファ２０００の値を生成する（Ｓ２１０３）。ラベルバッファ２００８の値は、減色画像バッファ２００５に格納された画像の、いわゆる８連結の意味で隣接した画素のうち、同じ画素値を持った画素は共通の値を持つように生成される。この方法の詳細については後述する。
【０１４６】
続いてコントローラ２００１は、小領域ラベルバッファ２０１０を初期化する（Ｓ２１０４）。この方法の詳細についても後述する。
【０１４７】
さらにコントローラ２００１は、小領域ラベルバッファ２０１０の値を生成する（Ｓ２１０５）。小領域ラベルバッファ２０１０の値は、ラベルバッファ２０００の値が同じ画素を持つような２つの小領域には対応する小領域ラベルバッファ２０１０の要素に同じ値が入るように生成される。この方法の詳細については後述する。
【０１４８】
図２５に示すＳ２１０２で行なわれる処理について図２６を参照してより詳細に説明する。ラベルバッファの初期化処理ではコントローラ２００１は、第１カウンタ２００６の値ｉを０に初期化する（Ｓ２２０１）。以下第１カウンタ２００６の値をｉとする。
【０１４９】
続いてコントローラ２００１は、ラベルバッファ２０００のＬＢ［ｉ］の値をｉと初期化する（Ｓ２２０２）。さらにコントローラ２００１は、第１カウンタ２００６の値ｉをインクリメントし（Ｓ２２０３）、この第１カウンタ２００６の値ｉを、減色画像バッファ２００５の画素数（＝横幅×縦幅）と比較する（Ｓ２２０４）。両者が等しければ処理は終了し、さもなければ制御はＳ２２０２に戻る。
【０１５０】
図２５のＳ２１０３において行なわれるラベルバッファの値を生成する処理の詳細につき図２７を参照して説明する。図２７を参照して、コントローラ２００１は、第１カウンタ２００６の値ｉを０に初期化する（Ｓ２３０１）。以下第１カウンタ２００６の値をｉと呼ぶ。続いてコントローラ２００１は、第２カウンタ２００７の値ｊを０に初期化する（Ｓ２３０２）。以下、第２カウンタ２００７の値をｊとする。
【０１５１】
以下の説明では、減色画像バッファ２００５（図２４参照）において座標（ｊ，ｉ）に対応する画素を「着目画素」と呼ぶ。コントローラ２００１は、着目画素と、その左上の（ｊ−１，ｉ−１）という座標を持つ画素とが同じ画素値を持っているかどうかを検査する（Ｓ２３０３）。両者が同じ画素値を持っていれば制御はＳ２３０４に、そうでなければ制御はＳ２３０５に進む。
【０１５２】
Ｓ２３０４では、ラベル付け替え器２００９（図２４参照）を用いて、ラベルバッファ２００８（図２４参照）の書換を行なう（Ｓ２３０４）。ここでは、ラベルバッファ２００８の書換は以下のようにして行なわれる。すなわち、着目画素と、その左上の画素それぞれに対応するラベルバッファ２００８の要素ＬＢ［ｋ］，ＬＢ［ｍ］と、それまでにその両者のいずれかと同じ値を持っていた代表パターンラベルバッファ２００８のすべての要素とに、共通の値ｍｉｎ（ＬＢ［ｋ］，ＬＢ［ｍ］）を代入する。ここでｋ、ｍはそれぞれ以下の式によって得られる整数である。
【０１５３】
ｋ＝ｉ×画像の横幅＋ｊ
ｍ＝（ｉ−１）×画像の横幅＋（ｊ−１）
着目画素の左上の画素が存在しない場合には、Ｓ２３０３の条件は常に成り立たないものとする。すなわちｊ＜１またはｉ＜１の場合には、Ｓ２３０４の処理は行なわれない。
【０１５４】
次に、着目画素の左上の画素の代わりに、真上の画素についてＳ２３０５においてＳ２３０３と同じ判断を行なう。すなわち、コントローラ２００１は、着目画素と、その真上の（ｊ，ｉ−１）という座標を持つ画素とが同じ画素値を持っているかどうかを検査する（Ｓ２３０５）。もし両者が同じ画素値を持っていれば制御はＳ２３０６に、さもなければ制御はＳ２３０７に進む。
【０１５５】
ステップＳ２３０６では、ラベル付け替え器２００９を用いて、ラベルバッファ２００８の書換が行なわれる。ここではラベルバッファ２００８の書換は以下のようにして行なわれる。すなわち、着目画素と、その真上の画素それぞれに対応するラベルバッファ２００８の要素ＬＢ［ｋ］、ＬＢ［ｍ］と、それまでにその両者のいずれかと同じ値を持っていた代表パターンラベルバッファ２００８のすべての要素とに共通の値ｍｉｎ（ＬＢ［ｋ］，ＬＢ［ｍ］）を代入する。ただし、ｋ、ｍはそれぞれ以下の式によって得られる値である。
【０１５６】
ｋ＝ｉ×画像の横幅＋ｊ
ｍ＝（ｉ−１）×画像の横幅＋ｊ
着目画素の真上の画素が存在しない場合、すなわちｉ＜１の場合には、Ｓ２３０５における条件は常に成立しないと考える。
【０１５７】
次に、Ｓ２３０７において、着目画素の真上の画素の代わりに、右上の画素についてＳ２３０３、Ｓ２３０５と同じ判断を行なう。すなわち、コントローラ２００１は、着目画素と、その右上の（ｊ＋１，ｉ−１）という座標を持つ画素とが同じ画素値を持っているかどうかを検査して（ステップＳ２３０７）、同じ画素値を持っていれば制御はＳ２３０８に、さもなければ制御はＳ２３０９に進む。
【０１５８】
Ｓ２３０８では、ラベル付け替え器２００９を用いて、ラベルバッファ２００８の書換を行なう（Ｓ２３０８）。ここでは、ラベルバッファ２００８の書換は以下のようにして行なわれる。すなわち、着目画素と、その右上の画素それぞれに対応するラベルバッファ２００８の要素ＬＢ［ｋ］、ＬＢ［ｍ］と、それまでにその両者のいずれかと同じ値を持っていた代表パターンラベルバッファ２００８のすべての要素とに共通の値ｍｉｎ（ＬＢ［ｋ］、ＬＢ［ｍ］）を代入する。ただしここでｋ、ｍはそれぞれ以下の式に従って定められる整数である。
【０１５９】
ｋ＝ｉ×画像の横幅＋ｊ
ｍ＝（ｉ−１）×画像の横幅＋（ｊ＋１）
ここでも、着目画素の右上の画素が存在しない場合、すなわちｊ＝画像の横幅−１またはｉ＜１の場合には、ステップＳ２３０７の条件は常に成り立たないものとする。
【０１６０】
続いて、Ｓ２３０９において、着目画素の右上の画素の代わりに、左隣の画素についてＳ２３０７と同じ判断を行なう。すなわち、コントローラ２００１は、着目画素と、その左隣の（ｊ−１，ｉ）という座標を持つ画素とが同じ画素値を持っているかどうかを検査する（Ｓ２３０９）。もし両者が同じ画素値を持っていれば制御はＳ２３１０に、さもなければ制御はＳ２３１１に進む。
【０１６１】
Ｓ２３１０では、ラベル付け替え器２００９を用いて、ラベルバッファ２００８の書換処理を行なう（Ｓ２３１０）。ラベルバッファ２００８の書換は次のようにして行なわれる。すなわち、着目画素と、その左隣の画素それぞれに対応するラベルバッファ２００８の要素ＬＢ［ｋ］、ＬＢ［ｍ］と、それまでにその両者のいずれかと同じ値を持っていた代表パターンラベルバッファ２００８のすべての要素とに、共通の値ｍｉｎ（ＬＢ［ｋ］、ＬＢ［ｍ］）を代入する。ただしｋ、ｍはそれぞれ以下の式に従って計算される整数である。
【０１６２】
ｋ＝ｉ×画像の横幅＋ｊ
ｍ＝ｉ×画像の横幅＋（ｊ−１）
ここでは、着目画素の左隣の画素が存在しない場合、すなわちｊ＜１の場合には、Ｓ２１１３の条件は常に成り立たないものとする。
【０１６３】
Ｓ２３１０の処理の後、Ｓ２３１１ではコントローラ２００１は、代入カウンタ２００７の値ｊをインクリメントする。コントローラ２００１はさらに代入カウンタ２００７の値ｊを画像の横幅と比較し（Ｓ２３１２）、両者が等しければ制御はＳ２３１３に進み、さもなければ制御はＳ２３０３に戻る。
【０１６４】
Ｓ２３１２における判断の結果がＹＥＳであれば、コントローラ２００１は、第１カウンタ２００６の値ｉをインクリメントする（Ｓ２３１３）。そして、この第１カウンタ２００６の値ｉが画像の縦幅と等しいか否かについての判定を行なう（Ｓ２３１４）。両者が等しければ処理を終了し、さもなければ制御はＳ２３０２に戻る。
【０１６５】
以上の処理では、各着目画素についてその左上、真上、右上および左隣についてのみ連結関係が検査されている。右隣、左下、真下、右下についての連結関係は検査していない。しかしそれらに位置する画素との間の隣接関係については、そのそれぞれの隣接画素が着目画素となったときに処理されるので、図２７に示される処理によって８連結の意味での隣接画素同士の連結関係はすべて検査されるのである。
【０１６６】
この図２７に示される処理が終了した時点では、ラベルバッファ２００８（図２４参照）には、減色画像バッファ２００５（図２４）に格納されている画像を、値が同じで、隣接した画素に同じラベルをつけるという規則でラベリングした結果が入っている。ラベルバッファ２００８のこの時点での内容を、以下、「減色連結領域画像」と呼ぶ。またそれに含まれる連結領域をそれぞれ「減色連結領域」と呼ぶ。
【０１６７】
続いて、図２５のＳ２１０４に示される小領域ラベルバッファを初期化する処理について図２８を参照して詳細に説明する。まずコントローラ２００１は、図２４に示される第１カウンタ２００６の値ｉを０に初期化する（Ｓ２４０１）。以下第１カウンタ２００６の値をｉと呼ぶ。続いてコントローラ２００１は、小領域ラベルバッファ２１０の内容を、ＡＬＢ［ｉ］＝ｉとなるように初期化する（Ｓ２４０２）。
【０１６８】
続いてコントローラ２００１は、第１カウンタ２００６の値ｉをインクリメントする（Ｓ２４０３）。そしてこの第１カウンタ２００６の値ｉは、図３に示される小領域数レジスタ６００３の値と比較され（Ｓ２４０４）、両者が等しければ処理は終了し等しくなければ制御はＳ２４０２に戻る。
【０１６９】
次に、図２５のＳ２１０５において行なわれる小領域ラベルバッファの値を生成する処理の詳細につき図２９を参照して説明する。ここで行なわれるのは、小領域階調数バッファ６１７（図３）の内容が、減色連結領域画像に対して整合性がとれているかどうかを判定するための処理である。
【０１７０】
ここでいう「整合性」とは以下のような意味である。ある減色連結領域が、複数の小領域にわたっている場合を考える。そのような小領域が小領域階調数バッファ６１７の内容によって異なる階調数に減色された場合を考える。そうした場合、この階調数の違いによって、小領域の境界に、本来なかった段差ができる可能性がある。これは既に発明が解決しようとする課題の項において図５９および図６０を用いて既に説明した。ここで注意すべきは、こうした現象がもとの画像自体から生じたものではなく、あくまでも画像をブロック状の小領域に分割したことと、各小領域の階調数が異なっていることとから生じたものである。
【０１７１】
小領域階調数バッファ６１７の内容に従って単純に減色すると、このような事態が起きる場合がある。そこでそうした場合に小領域階調数バッファ６１７の内容は整合性がとれていないとみなすのである。
【０１７２】
このような事態は、すべての小領域の階調数を基準階調数レジスタ２００２の値と揃えればもちろん回避することはできる。しかし、そのような方式をとると、情報量が少ない小領域、たとえば図５９の右側で図形が存在しないような領域に、本来必要のない余分な階調数を割当てる必要が生じてしまう。したがってそうしたやり方をとることはできない。
【０１７３】
ここでの処理の目的は、同じ連結領域に属する画素は、小領域ごとの減色後も、多くの場合に同じ画素値を持つようにすることである。なお、異なる連結領域に属する画素については、図５９で示されるような減色画像バッファ２００５に格納されている画像で同じ画素値を持っている場合でも、小領域ごとの減色後も常に同じ画素値を持たせるようなことは意図されていない。たとえば、図５９では、同じ画素値を持っていた矢印状の領域１０２と星状の領域１０３とは、図６０に示される例では異なる画素値を有している。
【０１７４】
以下の処理では、同じ減色連結領域を共有した小領域に共通のラベルがつけられるものとする。ただしここでは、減色画像バッファで０、７のいずれかの画素値を持つ連結領域については、共有されていても無視する。というのは、画素値変換器２００３で使用した減色アルゴリズムのもとでは、このような両端の画素値は、２５６階調から４階調などのより低い階調数への減色では、やはり両端の画素値に移り、したがって２５６階調に復元して表示する際の画素値には影響がないためである。８階調に減色したときの０、７以外の画素値についてはこのようなことはいえないのは上に述べたとおりである。
【０１７５】
図２９を参照して、まずコントローラ２００１は、第１カウンタ２００６の値ｉを０に初期化する（Ｓ２５０１）。以下第１カウンタ２００６の値をｉで表わすものとする。続いてＳ２５０２においてコントローラ２００１は、第２カウンタ２００７の値ｊを０に初期化する。以下第２カウンタ２００７の値をｊと呼ぶ。
【０１７６】
このループでは、ｉは小領域の縦方向の番号を表わし、ｊは小領域の横方向の番号を表わす。以下の説明でＸ１およびＹ１を次のように定める。
【０１７７】
Ｘ１＝（画像の横幅＋７）／８
Ｙ１＝（画像の縦幅＋７）／８
容易にわかるように、Ｘ１、Ｙ１はそれぞれ、横方向の小領域数および縦方向の小領域数を表わす。またｋは次の式で与えられる整数である。
【０１７８】
ｋ＝ｉ×Ｘ１
以下の説明では、横から数えてｊ番目、縦から数えてｉ番目の小領域を小領域（ｊ，ｉ）と表わすものとする。コントローラ２００１は、第２カウンタ２００７の値ｊとＸ１−１とを比較する（Ｓ２５０３）。両者が等しければ制御はＳ２５１３に進み、さもなければ制御はＳ２５０４に進む。
【０１７９】
Ｓ２５０４ではコントローラ２００１は、小領域（ｊ，ｉ）と、小領域（ｊ＋１，ｉ）の境界のつながりを検査する（ステップＳ２５０４）。この２つの小領域が減色連結領域を共有していれば制御はＳ２５０５に、さもなければ制御はＳ２５０６に進む。ここでの判定方法については後述する。
【０１８０】
Ｓ２５０５では、ラベル付け替え器２００９を用いて小領域ラベルバッファ２０１０の書換処理が行なわれる。ここでは書換えは以下のようにして行なわれる。すなわち、小領域（ｊ，ｉ）と小領域（ｊ＋１，ｉ）とのそれぞれに対応する小領域ラベルバッファ２００８の要素ＡＬＢ［ｋ］、ＡＬＢ［ｋ＋１］と、それまでにその両者のいずれかと同じ値を持っていた代表パターンラベルバッファ２００８のすべての要素に対して、共通の値ｍｉｎ（ＡＬＢ［ｋ］、ＬＢ［ｋ＋１］）が代入される。
【０１８１】
続いてコントローラ２００１は、第１カウンタ２００６の値ｉとＹ１−１とを比較し（Ｓ２５０６）、両者が等しければ制御はＳ２５１３に進み、さもなければ制御はＳ２５０７に進む。これは、小領域の縦方向の番号ｉが縦方向の小領域数Ｙ１−１に等しいということは、それより下の小領域が存在しないということであるためである。
【０１８２】
Ｓ２５０７では、コントローラ２００１は、小領域（ｊ，ｉ）と、小領域（ｊ＋１，ｉ＋１）との境界のつながりを検査する（Ｓ２５０７）。この２つの小領域が減色連結領域を共有していれば制御はＳ２５０８に進み、さもなければ制御はＳ２５０９に進む。この判定方法については後述する。
【０１８３】
Ｓ２５０８では、ラベル付け替え器２００９を用いて、小領域ラベルバッファ２０１０の書換処理が行なわれる。ここでの書換は以下のように行なわれる。すなわち、小領域（ｊ，ｉ）と、小領域（ｊ＋１，ｉ＋１）とのそれぞれに対応する小領域ラベルバッファ２０１０の要素ＡＬＢ［ｋ］、ＡＬＢ［ｋ＋Ｘ１＋１］と、それまでにその両者のいずれかと同じ値を持っていた小領域ラベルバッファ２０１０のすべての要素とに、共通の値ｍｉｎ（ＡＬＢ［ｋ］、ＬＢ［ｋ＋Ｘ１＋１］）を代入する。
【０１８４】
Ｓ２５０９ではコントローラ２００１は、小領域（ｊ，ｉ）と、小領域（ｊ，ｉ＋１）との境界のつながりを検査し、この２つの小領域が減色連結領域を共有していれば制御はＳ２５０８に進み、さもなければ制御はＳ２５１０に進む。この判定方法については後述する。
【０１８５】
Ｓ２５１０ではラベル付け替え器２００９を用いて、小領域ラベルバッファ２０１０のラベルの書換処理が行なわれる。ここでは、小領域（ｊ，ｉ）と小領域（ｊ，ｉ＋１）とのそれぞれに対応する小領域ラベルバッファ２０１０のすべての要素とに、共通の値ｍｉｎ（ＡＬＢ［ｋ］、ＬＢ［ｋ＋Ｘ１］）を代入する。
【０１８６】
Ｓ２５１１では、コントローラ２００１は第２カウンタ２００７の値ｊをインクリメントする。さらにコントローラ２００１は第２カウンタ２００７の値ｊとＸ１とを比較し（Ｓ２５１２）、両者が等しければ制御はＳ２５１３に進み、さもなければ制御はＳ２５０３に戻る。
【０１８７】
Ｓ２５１３では、コントローラ２００１は第１カウンタ２００６の値ｉをインクリメントする。コントローラ２００１はさらに、第１カウンタ２００６の値ｉとＹ１とを比較し（Ｓ２５１４）、両者が等しければ処理を終了し、両者が等しくなければ制御はＳ２５０２に戻る。
【０１８８】
図２９のＳ２５０４において行なわれる判定処理の詳細につき、図３０を参照して説明する。まずコントローラ２００１は、第３カウンタ２０１１の値ｍを０に初期化する（Ｓ２６０１）。以下ｍとは、第３カウンタ２０１１の値を意味するものとする。また以下の説明においては、小領域（ｊ，ｉ）の左右端の列の、上から数えてｍ番目の画素を着目画素と呼ぶ。
【０１８９】
コントローラ２００１は、着目画素が０と等しいか否かを検査し（Ｓ２６０２）、両者が等しければ制御はＳ２６０７に進み、さもなければ制御はＳ２６０３に進む。Ｓ２６０３ではコントローラ２００１は、着目画素が７と等しいか否かを検査し、等しければ制御はＳ２６０７に進み、さもなければ制御はＳ２６０４に進む。
【０１９０】
Ｓ２６０４ではコントローラ２００１は、着目画素と、その右隣の画素のそれぞれに対応する、ラベルバッファ２００８の要素が同じ値を持つかどうかを判定する。すなわちコントローラ２００１は、着目画素と、小領域（ｊ＋１，ｉ）の最左端の列の、上から数えてｍ番目の画素のそれぞれ対応する、ラベルバッファ２００８の要素が同じ値を持つかどうかを判定する。両者が同じ値を持っていれば制御はＳ２６０９に進み、さもなければ制御はＳ２６０５に進む。
【０１９１】
Ｓ２６０５ではコントローラ２００１は、着目画素と、その右上の画素、つまり小領域（ｊ＋１，ｉ）の最左端の列の、上から数えてｍ−１番目の画素のそれぞれに対応する、ラベルバッファ２００８の要素が同じ値を持つかどうかを判定する（Ｓ２６０５）。両者が同じ値を持っていれば制御はＳ２６０９に進み、さもなければ制御はＳ２６０６に進む。ただしｍ＜１の場合は、Ｓ２６０５の条件は成り立たないものとする。
【０１９２】
Ｓ２６０６ではコントローラ２００１は、着目画素と、その右下の画素、つまり小領域（ｊ＋１，ｉ）の最左端の列の、上から数えてｍ＋１番目の画素のそれぞれに対応する、ラベルバッファ２００８の要素が同じ値を持つかどうかを判定する。両者が同じ値を持っていれば制御はＳ２６０９に進み、さもなければ制御はＳ２６０７に進む。ただしここでｍが小領域の高さと等しいときには、Ｓ２６０６の条件は成立しないものとする。
【０１９３】
Ｓ２６０７ではコントローラ２００１は、第３カウンタ２０１１の値ｍをインクリメントする。さらにコントローラ２００１は、第３カウンタ２０１１の値ｍと小領域の縦幅とを比較し（Ｓ２６０８）、等しければ制御はＳ２６１０に進み、さもなければ制御はＳ２６０２に戻る。
【０１９４】
Ｓ２６０４、Ｓ２６０５およびＳ２６０６における判定結果がＹＥＳであればコントローラ２００１は、２領域が減色連結領域を共有していると判断して（Ｓ２６０９）、処理は終了する。コントローラ２００１は、Ｓ２６０８における判断結果がＹＥＳの場合には、２領域が減色連結領域を共有していないと判断し（Ｓ２６１０）、処理を終了する。
【０１９５】
Ｓ２６０４〜Ｓ２６０６で用いられる条件の意味について以下に説明する。これらの判断では、２つの画素に対応するラベルバッファ２００８の要素が同じ値を持っているかどうかについての判定が行なわれている。両方の要素が同じ値を持っているということは、２つの画素が、同じ減色連結領域に属していることを示す。さらに、そのような２つの画素が異なる小領域に属していることは、それぞれが属する小領域が１つの減色連結領域を共有していることを示すのである。したがってＳ２６０４〜Ｓ２６０６における判定結果がＹＥＳであればＳ２６０９のように、２領域が減色連結領域を共有していると判断することができるのである。
【０１９６】
続いて、図２９のＳ２５０７において行なわれる判定処理の詳細につき図３１を参照して説明する。ここでの判定は、小領域（ｊ，ｉ）と、その右下の小領域（ｊ＋１，ｉ＋１）とが減色連結領域を共有しているか否か、ついてのものである。
【０１９７】
これら２００１はまず、着目画素が０と等しいか否かを検査する（Ｓ２７０１）。両者が等しければ制御はＳ２７０５に進み、さもなければ制御はＳ２７０２に進む。
【０１９８】
Ｓ２７０２ではコントローラ２００１は、着目画素が７と等しいか否かを検査する（Ｓ２７０２）。両者が等しければ制御はＳ２７０５に進み、さもなければ制御はＳ２７０３に進む。
【０１９９】
Ｓ２７０３ではコントローラ２００１は、小領域（ｊ，ｉ）の右下角の画素２９０１（以下「着目画素」と呼ぶ。）と、小領域（ｊ＋１，ｉ＋１）の左上角の画素のそれぞれに対応する、ラベルバッファ２００８の要素が同じ値を持つかどうかを判定する。もし両者が同じ値を持っていれば制御はＳ２７０４に進み、さもなければ制御はＳ２７０５に進む。
【０２００】
図３２に、着目画素２９０１、小領域（ｊ＋１，ｉ＋１）の左上角の画素２９０２、ブロック境界２９０３および２９０４をそれぞれ図示した。なお、図３２に示されているのが全体のごく一部であることはもちろんである。
【０２０１】
Ｓ２７０４ではコントローラ２００１は、２領域が減色連結領域を共有していると判断して処理を終了する。一方Ｓ２７０５ではコントローラ２００１は、２領域が減色連結領域を共有していないと判断して処理を終了する。
【０２０２】
Ｓ２７０３で用いられる条件は、Ｓ２６０４〜Ｓ２６０６で用いられた条件と同じであり、したがってそれらと同様の意味を有する。
【０２０３】
図２９のＳ２５１０において行なわれる小領域ラベルの書換処理の詳細につき、図３３を参照して説明する。まずコントローラ２００１は、第３カウンタ２０１１の値ｍを０に初期化する（Ｓ２８０１）。以下ｍは第３カウンタ２０１１の値を意味するものとする。また、以下の説明では小領域（ｊ，ｉ）の最下端のラインの、左から数えてｍ番目の画素を着目画素と呼ぶ。
【０２０４】
コントローラ２００１は、着目画素が０と等しいか否かを検査する（Ｓ２８０２）。両者が等しければ制御はＳ２８０７に進み、さもなければ制御はＳ２８０３に進む。同様にコントローラ２００１は、Ｓ２８０３において、着目画素が７と等しいか否かを検査する（Ｓ２８０３）。両者が等しければ制御はＳ２８０７に進み、さもなければ制御はＳ２８０４に進む。
【０２０５】
Ｓ２８０４ではコントローラ２００１は、着目画素と、その真下の画素、つまり小領域（ｊ，ｉ＋１）の最上端のラインの、左から数えてｍ番目の画素のそれぞれに対応する、ラベルバッファ２００８の要素が同じ値を持つかどうかを判定する。もし両者が同じ値を持っていれば制御はＳ２８０９に進み、さもなければ制御はＳ２８０５に進む。
【０２０６】
Ｓ２８０５ではコントローラ２００１は、着目画素と、その左下の画素、つまり小領域（ｊ，ｉ＋１）の最上端のラインの、左から数えてｍ−１番目の画素それぞれに対応する、ラベルバッファ２００８の要素が同じ値を持つかどうかを判定する。同じ値を持っていれば制御はＳ２８０９に進み、さもなければ制御はＳ２８０６に進む。このとき、ｍ＜１の場合は、Ｓ２８０５の条件は成立しないものとする。
【０２０７】
Ｓ２８０６ではコントローラ２００１は、着目画素と、その右下の画素、つまり小領域（ｊ，ｉ＋１）の最上端のラインの、左から数えてｍ＋１番目の画素それぞれに対応する、ラベルバッファ２００８の要素が同じ値を持つかどうかを判定する。もし両者が同じ値を持っていれば制御はＳ２８０９に進み、さもなければ制御はＳ２８０７に進む。ただし、ｍが小領域の横幅と等しいときには、Ｓ２８０６の条件は成立しないものとする。
【０２０８】
Ｓ２８０４〜Ｓ２８０６で用いられる条件の意味については、Ｓ２６０４〜Ｓ２６０６において用いられた条件と同様である。
【０２０９】
Ｓ２８０７ではコントローラ２００１は、第３カウンタ２０１１の値ｍをインクリメントする。さらにコントローラ２００１は、第３カウンタ２０１１の値ｍと小領域の横幅とを比較し（Ｓ２８０８）、両者が等しければ制御はＳ２８１０に進み、さもなければ制御はＳ２８０２に戻る。
【０２１０】
Ｓ２８０４、Ｓ２８０５またはＳ２８０６の判定結果がＹＥＳである場合には、コントローラ２００１はＳ２８０９で２領域が減色連結領域を共有していると判定し、処理を終了する。一方Ｓ２８０８での判定がＹＥＳとなった場合にはコントローラ２００１は、Ｓ２８１０で２領域が減色連結領域を共有していないと判定し処理を終了する。
【０２１１】
以上の第１の実施の形態の説明では、入力画像として２５６階調のグレイスケール画像を仮定し、１画素当たり１バイト（８ビット）を割当てるものとした。しかし本発明はそのような特定の値に限定されるわけではない。本実施の形態は他の階調数の画像に対しても実現可能であり、またグレイスケール画像に限らずカラー画像であってもよい。カラー画像の場合には、上に述べた減色をカラー成分ごとに行なうことができる。
【０２１２】
また上に述べた第１の実施の形態では、画像を小領域に分割する際に、横８ピクセル、縦８ピクセルのブロックに分割している。しかし小領域の分割例がこのようなものに限られるわけではないことはいうまでもない。この実施の形態と異なる分割方法をとった場合、図５に示されるような小領域情報バッファ６０４の構造も当然それに合わせて変わってくるものである。
【０２１３】
第１の実施の形態で述べたように画像を一定の大きさの格子に分割して小領域とする場合、実は縦のブロックの大きさ、横のブロックの大きさ以外は小領域情報バッファ６０４に格納する必要はない。ただしこの場合、標準的なブロックの大きさを格納しておく必要がある。この場合には、左端、下端の半端な大きさのブロックの大きさの有無および存在した場合の縦方向および横方向のサイズは、縦のブロックの大きさ、横のブロックの大きさと、画像全体の横幅および縦幅から算出し得るからである。また格子状の分割の場合には、横方向の小領域数、縦方向の小領域数がそれぞれ定義できるのであるから、それらの情報を小領域情報バッファ６０４に格納することも考えられる。
【０２１４】
原画像を格子状に分割している場合について説明した上のものと同じアルゴリズムが、全く異なる形状の小領域に元画像を分割している場合にも若干の修正をすることだけで対応できるのは明らかである。したがってその詳細についてはここでは特に述べないこととする。
【０２１５】
上で述べた第１の実施の形態において、画像２値化器６０５が画像を２値化する際のしきい値Ｔを求める方法として、「大津の方法」と呼ばれるものを用いている。このしきい値Ｔを求める方法としてはこれ以外の方法も種々存在している。それらの方法については、高木、下田監修「画像解析ハンドブック」、東京大学出版会、５０２〜５０４頁に解説されているのでそれらを参照されたい。
【０２１６】
なお、２値画像の格納方法として、ここでは、非背景領域と背景領域との値として０および２５５の組合せを用いた。しかし２値画像の格納方法がそのような値の組合せのみに限定されるわけではないことは明らかである。すなわち、２値画像の格納には、１画素当たり１ビットで足りることを利用して、２値画像バッファ６０６の容量を削減することも可能であるし、可逆圧縮技術を適用して２値画像バッファ６０６の容量を削減することも可能である。いずれにせよ上述した画像符号化装置の処理結果に何ら影響を及ぼすことではない。
【０２１７】
また上に説明した第１の実施の形態の装置では、線抽出器６０７が抽出する直線を、横線または縦線に限っている。しかしそれ以外の線についても線抽出器６０７で抽出することにしても全く差し支えはない。そのような画像からの一般の線要素の抽出方法については、前掲の「画像解析ハンドブック」、５６４〜５７３頁に解説されているのでそちらを参照されたい。なお、これらの手法は一般に、２値画像ではなく多値画像をその処理対象としている。したがってそうした手法を採用する場合には、線抽出器６０７が２値画像バッファ６０６を参照する代わりに、画像データバッファ３０２を参照するように変更すればよい。
【０２１８】
また上で述べた第１の実施の形態においては、抽出される直線が横線または縦線に限られている。そのため線情報バッファ６０９のデータ構造も図５に示されるようなものとなっている。しかし直線として、斜め線まで許容した場合にも同様のデータ構造で線情報を格納することが可能である。ただしこの場合、斜めの曲線をその外接平行四辺形で近似することとする。この場合のデータ構造の一例を図３４に示す。図３４に示す例では、斜め線の外接平行四辺形の４つの頂点の座標がすべて線情報バッファに格納される。
【０２１９】
曲線の表わし方としてはこの他にも種々考えられる。たとえば（中心線の始点座標、中心の長さ情報または中心線の終点情報、および直線の太さ情報）の組合せ、または（中心線の始点座標、中心線の長さ情報、中心線の角度の情報および直線の太さ情報）の組合せで表わすことも考えられる。いずれにしても図５、図３４に示したようなデータ構造と類似のデータ構造の必要な情報を格納することが可能である。
【０２２０】
今まで述べてきた直線の表わし方は、いわゆる「ベクトルデータ」としての表わし方であった。しかし直線の表わし方はこのような「ベクトルデータ」としての表わし方に限定されるわけではない。抽出された直線を、画像情報として表わす方法もある。この場合の線情報バッファ６０９のデータ構造の例としては、画像データバッファ３０２の構造と同じものが使用できる。この場合線の領域に含まれる画像には１、それ以外の画素には０という画素値を持たせればよい。このような表わし方は、それが最終のデータとして用いられる場合には、必要となる記憶領域の観点から、ベクトル化に分類される手法に比して効率はよくない。しかし、中間的な情報として用いる必要がある場合には、曲線以外の形状の線の情報も表現しやすいという利点がある。
【０２２１】
上に述べた説明では、たとえば第２減色テーブル１１０３の２次元配列が、不要な要素を多く含んでいることについて説明した。そしてその場合、不要な添え字の組合せに対応する第２減色テーブル１１０３の要素Ｔ［ｊ］には０が格納されているものとした。しかしもちろん、不要な添え字の組合せに対応する要素には０以外の任意の値を用いてもよい。また、第２減色テーブル１１０３を単なる２次元配列とは異なるデータ構造で実現することにより、このような不要な添え字の組合せに対応する要素を排除することができる。その場合には必要なメモリ容量を小さくすることが可能となる。さらに、第１の実施の形態で第２減色テーブル１１０３の要素Ｔ［ｊ］［０］はｊと無関係に必ず０となる。したがってこれら要素は最初から第２減色テーブル１１０３において省略することもできる。
【０２２２】
さらにまた上で述べた第１の実施の形態の装置では、図１２に示す線情報バッファ１１０７のデータ構造として、図３に示した線情報バッファ６０９と同様のものを用いた。しかしもちろん、線情報バッファ１１０７のデータ構造を線情報バッファ６０９のデータ構造と異なるものにしてもよいことはもちろんである。
【０２２３】
また上の第１の実施の形態の装置では、Ｓ１２０５の判定は、Ｓ［ｖ］階調への減色に比べて、Ｓ［ｊ−１］階調では背景領域になってしまう画素がしきい値以上あるか否か、ということを基準としてこれ以上の減色はできないと判断している。しかしこの判定の条件は上で説明したものに限定されるわけではない。たとえば、予め定められたしきい値で定まる範囲に２つの数の差の絶対値が収まっているか否かを判定の条件としてもよい。または、２つの数の比率が、１に近い予め定められた範囲内にあるか否かという条件を判定条件としてもよい。その他にも、さまざまなバリエーションを考えることができる。
【０２２４】
なお上の第１の実施の形態の装置では、線情報バッファ６０９のデータ構造に関連して、各線の情報が個別に取出せるものとして説明をした。しかし、仮に線情報バッファ６０９がそのような構造となっていなくても、各画素がいずれかの線に含まれているか否かが判定できる限りにおいて、Ｓ５４０１〜Ｓ５４０９（図１０）の処理を以下の処理に置き換えることで同じ目的を達成することができる。以下に述べる方法はたとえば、線情報バッファ６０９が画像データを格納するためのバッファとなっている場合に有効である。
【０２２５】
以下の説明では、線情報バッファ６０９が、画像データバッファ３０２に格納されてれているのと同じサイズを持ち、線に含まれる画素は１、それ以外の画素は０という画素値を持った画像データを格納しているものとする。
【０２２６】
図３５を参照して、コントローラ６０１は、まず第１カウンタ６１３の値ｉを０で初期化する（Ｓ５６０１）。以下ｉは第１カウンタ６１３の値を意味するものとする。続いてコントローラ６０１は、第２カウンタ６１６の値ｊを０で初期化する（Ｓ５６０２）。以下ｊは第２のカウンタ６１６の値を意味するものとする。
【０２２７】
続いてＳ５６０３ではコントローラ６０１は、線情報バッファ６０９の横方向にｊ番目、縦方向にｉ番目の要素が１であるか否かを判定する（Ｓ５６０３）。この画素の値が１であるときは制御Ｓ５６０４に進み、さもなければ制御はＳ５６０６に進む。
【０２２８】
Ｓ５６０４ではコントローラ６０１は、第１カウンタ６１３の値ｉ、第２カウンタ６０１６の値ｊ、および小領域情報バッファ６０４の内容を参照して、現在処理中の画素が含まれる小領域に対応する小領域階調数バッファ６１７の要素を取出し（以下これをｋ番目の要素とする）、線領域階調数レジスタ６１８の値と比較する。そして後者の方が大きければ制御はＳ５６０５に、さもなければ制御はＳ５６０６に進む。
【０２２９】
Ｓ５６０５ではコントローラ６０１は、小領域階調数バッファ６１７のｋ番目の要素に、線領域階調数レジスタ６１８の値を代入する。続いてＳ５６０６ではコントローラ６０１は、第２カウンタ６１６の値ｊをインクリメントし、続いて第２カウンタ６１６の値ｊを画像の横幅と比較する（Ｓ５６０７）。両者が等しければ制御はＳ５６０８に進み、さもなければ制御はＳ５６０３に戻る。
【０２３０】
Ｓ５６０８ではコントローラ６０１は、第１カウンタ６１３の値ｉをインクリメントする。続いてＳ５６０９でコントローラ６０１は、第１カウンタ６１３の値ｉを画像の縦幅と比較する。そして両者が等しければ処理を終了し、さもなければ制御はＳ５６０２に戻る。
【０２３１】
以上のようにすることにより、線情報バッファ６０９の内容が画像データである場合にも線に関する情報を取出すことができる。
【０２３２】
これまでの説明では、線抽出器６０７、文字矩形情報抽出器６１０は、２値画像が必要な場合には、２値画像バッファ６０６を参照することとしていた。しかし本実施の形態の装置はそのような実現方法のみに限定されるわけではない。たとえば、画像２値化器６０５として、しきい値だけを求めるようなものを用いることもできる。この場合には、線抽出器６０７、文字矩形情報抽出器６１０では、画像２値化器６０５によって求められたしきい値と、画像データバッファ３０２とを参照することによって、必要があるたびに背景領域に属する画素と非背景領域に属する画素とを識別することができる。そのような処理をすることによって、上で述べた第１の実施の形態における処理の同等の処理が行なえることは明らかである。
【０２３３】
また上の第１の実施の形態の装置では、着目画素と隣接する画素との間の連結関係を検査する際に、いわゆる８連結の意味での隣接画素を検査している。しかし本発明は８連結の意味での隣接画素に限定されるわけではない。たとえば隣接画素の定義として４連結の意味での隣接画素を採用することもできる。この場合には、各着目画素について、真上および左隣の画素を検査すればよい。この場合の処理は８連結の意味で上に説明した処理を簡略化すればよいことは明らかである。
【０２３４】
今、上で説明した第１の実施の形態では、たとえば図２５のＳ２１０５では、小領域階調数バッファ６１７の内容が、減色連結領域画像に対して整合性がとれているかどうかを判定していた。そして上の実施の形態では、ある減色連結領域が複数の小領域にわたっている場合に、そのような小領域が、小領域階調数バッファ６１７の内容によって異なる階調数に減色される場合があるという事態を避けるためのものであった。もちろんこのような事態は、すべての小領域の階調数を基準階調数レジスタ２００２の値と揃えれば回避することができる。しかし、そのような形をとると、情報量が少ない小領域、たとえば図５９の右側で図形が存在しないような領域に、本来必要のない余分な階調数を割当てる必要が生じてしまうという弊害が生ずる。
【０２３５】
また別の方法として、２５６階調への復元の際に、低い階調数を２５６階調に復元したときに得られる画素値は、高い階調数を２５６階調に復元したときに得られる画素値のサブセットにする、という方法も考えられる。これはたとえば、４階調を２５６階調に復元する際の画素値を０、７３、１８２、２５５とする、あるいは逆に、８階調を２５６階調に復元する際の画素値を０、３６、８５、１０９、１４６、１７０、２１９、２５５とする、などの方法である。いずれの方法にせよ２５６階調に復元する際の画素値が不均等に分布することになり、好ましくない。
【０２３６】
こうした問題を回避するための別の方法として、１つの減色連結領域がまたがっている小領域はすべて同じ階調数になるように、小領域階調数バッファ６１７の各要素を調整する処理を行なうことが挙げられる。
【０２３７】
なお、同じ減色連結領域に属する２つの画素も、減色連結領域を作成するのに用いた階調数と異なる階調数への減色を行なうと、２つの画素の減色後の画素値は一致しないことがある。
【０２３８】
たとえば、原画像で２００〜２３６の画素値を持つ画素を考える。これら画素は、すべて８階調への減色では２１９という基準画素値に近いと判定され、６という画素値に減色されるであろう。したがって、原画像で、２００〜２３６の範囲の画素値を持つ２つの画素は８階調への減色では、同一の減色連結領域に属することがあり得る。しかし、この２つの画素の一方が２１２以下の画素値を、もう一方が２１３以上の画素値を持つ場合には、４階調への減色では、前者は１７０という基準画素値に近いと判定されるために減色後の画素値は２、後者は２５５という基準画素値に近いと判定されるために減色後の画素値は３となる。したがって、４階調への減色後のこの２つの画素の画素値は一致しない。
【０２３９】
しかしながら、このような結果は原画像にもともと存在した画素値の大小関係に起因するものである。つまり原画像に本来存在しない小領域の境界に沿った段差ができるような、図６０に示されるような結果とは全く異なるものである。また、小領域に減色器６１６と組合せた形態では、小領域単位では原画像と大きく差があるような減色結果は起こり得ない。そのため各小領域の境界の問題以外では、減色によって視覚的に大きな問題が生じるおそれがないと考えられる。
【０２４０】
なお、図３０に示したＳ２６０４の条件判定では、ラベルバッファ２００８に格納された、減色連結領域の情報を用いた。しかしこの場合、ラベルバッファ２００８を用いずに、原色画像バッファ２００５の情報を用いて判定を行なっても同じことである。ただしこの場合、Ｓ２６０４の処理は以下のように変更される。
【０２４１】
すなわち、コントローラ２００１は、減色画像バッファ２００５の、着目画素と、その右隣の画素、つまり小領域（ｊ，ｉ）の最左端の列の、上から数えてｍ番目の画素が同じ値を持つかどうかを判定する。もし両者が同じ値を持っていれば制御はＳ２６０９に進み、さもなければ制御はＳ２６０５に進む。類似した処理を行なうステップＳ２６０５、Ｓ２７０３などについても同様である。
【０２４２】
このような形態でも、ラベルバッファ２００８を用いたのと同様の結果が得られるのは、次のような理由による。すなわち、減色画像バッファ２００５上で、２つの隣接する画素が同じ画素値を持っているということは、ラベルバッファ２００８の対応する要素が同じ値を持っているということを意味しているということであり、したがってＳ２６０４で行なわれている判定は、実は上に説明した代替案における判定方法と同じ効果を持つためである。
【０２４３】
以上のように本実施の形態による画像減色装置は、小領域の間の繋がりを考慮して、小領域の減色後の階調数を決定する。そのため、色階調数の画素値の配置に制限を加えずに、視覚的に大きな影響を持つ小領域ごとの違いによる段差が起こりにくい画像の減色処理を行なうことができる。
【０２４４】
また本実施の形態に係る画像減色装置は、小領域中に線領域がある場合、小領域の減色階調数を大きくするような制御を行なう。そのため、がたつきなど線領域の劣化が目立たないように画像の減色処理を行なうことができる。
【０２４５】
本実施の形態に係る画像減色装置は、小領域中に含まれる文字の縦線、横線の周囲の過度の減色による劣化を実際に検出し、その結果に応じて適切な階調数での減色を行なう。無理な減色は行なわないので、特に文字に含まれる線部分の劣化が目立たないように画像の減色処理を行なうことができる。
【０２４６】
［第２の実施の形態］
図３６を参照して、本発明の第２の実施の形態に係る画像符号化装置は、画像入力装置３００１、入力画像バッファ３００２、適応的減色器３００３、減色画像バッファ３００４、画像符号化器３００５、および符号化画像バッファ３００６を含む。画像入力装置３００１、入力画像バッファ３００２、適応的減色器３００３および減色画像バッファ３００４はそれぞれ、第１の実施の形態で説明した画像入力装置３０１、入力画像バッファ３００２、適応的減色器３０３および減色画像バッファ３０４と全く同じ構成および動作を持つ。したがってここではそれらについての詳細な説明は繰返さない。
【０２４７】
画像符号化器３００５は、減色画像バッファ３００４、小領域階調数バッファ６１７および小領域数レジスタ６０３を参照しながら、画像を符号化して符号化画像バッファ３００６に格納する機能を有する。
【０２４８】
符号化画像バッファ３００６に格納された符号化画像のフォーマットとしては、図３７に示されたものを仮定する。なお、この第２の実施の形態の説明においても、具体的なデータ構造、数値例は説明のための例に過ぎず、本発明の技術的範囲を制限するようなものではない。
【０２４９】
図３７を参照して、符号化画像バッファ３００６に格納された符号化画像は、画像の横ピクセル数３１０１、画像の縦ピクセル数３１０２、小領域数（ＡＣ）３１０３、各小領域の階調数の圧縮データのサイズ（ＳＡＣ）３１０４、各小領域の階調数の圧縮データのサイズ３１０５、各小領域左上隅Ｘ座標の圧縮データのサイズ（ＳＡＳＸ）３１０６、各小領域の左上隅Ｘ座標の圧縮データ３００７、各小領域左上隅Ｙ座標の圧縮データのサイズ（ＳＡＳＹ）３１０８、各小領域左上隅Ｙ座標の圧縮データ３１０９、各小領域右下隅座標の圧縮データのサイズ（ＳＡＥＸ）３１１０、各小領域の右下隅Ｘ座標の圧縮データ３０１１、各小領域右下隅Ｙ座標の圧縮データのサイズ（ＳＡＥＹ）３１１２、各小領域右下隅Ｙ座標の圧縮データ３１１３、ビットプレーン数（ＮＰ）３１１４、０番目のビットプレーンの圧縮データのサイズＳＰＳ［０］３１１５、０番目のビットプレーンの圧縮データの３１１６、…、（ＮＰ−１）番目のビットプレーンの圧縮データのサイズＳＰＳ［ＮＰ−１］３１１７、および（ＮＰ−１）番目のビットプレーンの圧縮データ３１１８を含む。
【０２５０】
図３７に示されるデータのうちデータ３１０１〜３１０４、３１０６、３１０８、３１１０、３１１２、３１１４、３１１５、３１１７はいずれも４バイトの整数である。
【０２５１】
図３８を参照して、画像符号化器３００５は、コントローラ３２０１、整数配列可逆圧縮器３１０２、テンポラリー整数配列バッファ３１０３、ビットプレーン分割器３２０４、ビットプレーンバッファ３２０５、ビットプレーン分割規則テーブル３２０６、画像可逆圧縮器３２０７、ビットプレーン数レジスタ３２０８、第１カウンタ３２０９およびテンポラリー小領域情報バッファ３２１０を含む。
【０２５２】
コントローラ３２０１は、画像符号化器３００５の他の各構成要素の制御および他の各構成要素間の、または各構成要素と画像符号化器３００５の外部との間のデータ通信の制御を行なうためのものである。コントローラ３２０１は画像符号化器３００５内の他の各構成要素の動作に常に関与している。しかし、説明を簡略化するために、理解に差し支えない範囲でコントローラ３２０１の関与については以下の説明では言及しないことがある。
【０２５３】
コントローラ３２０１は、図３９に示されるような制御構造を有する処理を行なうことにより上記した画像符号化器の機能を実現する。すなわち、コントローラ３２０１はまず、入力画像バッファ３００１から画像の横幅を取出し、符号化画像バッファ３００６の画像横幅のフィールド３１０１に書込む（Ｓ３３０１）。さらにコントローラ３２０１は、入力画像バッファ３００１から画像の縦幅を取出し、符号化画像バッファ３００６の、画像縦幅のフィールド３１０２に書込む（Ｓ３３０２）。さらにコントローラ３２０１は、小領域レジスタ６０３の内容を符号化画像バッファ３００６の小領域数のフィールド３１０３に書込む（Ｓ３３０３）。
【０２５４】
以後の説明では、小領域に対して、対応する小領域階調数バッファ６１７の要素が示している値を、その小領域階調数と呼ぶ。また、小領域階調数バッファ６１７のｉ番目の要素ＡＬＢ［ｉ］と表現する。
【０２５５】
コントローラ３２０１は、小領域階調数バッファ６１７の要素ＡＬＢ［］がすべて等しいか否かを判定する（Ｓ３３０４）。これらがすべて等しければ制御はＳ３３０５に進み、さもなければ制御はＳ３３０７に進む。
【０２５６】
Ｓ３３０５では、コントローラ３２０１は、小領域情報バッファ６０４の０番目の小領域の情報として、画像全体を１つの小領域とした小領域情報を書込む。続いてＳ３３０６ではコントローラ３２０１は、小領域数レジスタ６０３に１を設定する。
【０２５７】
Ｓ３３０４〜Ｓ３３０６の処理の意味は以下のようなものである。小領域の階調数がどれも同じであるときは、画像を小領域に分割する意味がない。したがってそのような場合には、画像全体を１つの小領域とすることで、処理を高速化することができる。この際、特別なフラグなどを用いずに小領域数が１であるという特殊なケースとして符号化データ上に表現することで、復号時には例外処理が不要になるという利点もある。
【０２５８】
Ｓ３３０７では整数配列可逆圧縮器３１０２が、小領域階調数バッファ６１７の、先頭から小領域数レジスタ６０３の値が示す個数の要素を可逆圧縮し、圧縮データの長さとともにそれぞれ符号化画像バッファ３００６がフィールド３００５、３００４に格納する。
【０２５９】
ここでは、整数配列可逆圧縮器３１０２が整数配列を圧縮する際の圧縮方式としては、ＬＺ７７方式を想定する。ＬＺ７７方式については、たとえば植松、「文書データ圧縮アルゴリズム入門」（ＣＱ出版社）１３１〜１４１頁に詳しく記載されている。ＬＺ７７方式については周知の方式であるので、ここではその詳細な説明は繰返さない。なおここで採用する可逆圧縮方式がＬＺ７７に限定されるわけではないことはもちろんである。
【０２６０】
Ｓ３３０８では、コントローラ３２０１は、小領域情報バッファ６０４の、各小領域の右上隅Ｘ座標に対応する要素を先頭から小領域数レジスタ６０３が示す個数だけ読取り、テンポラリー整数配列バッファ３１０３に格納する。続いて整数配列可逆圧縮器３１０２はテンポラリー整数配列バッファ３１０３の内容を可逆圧縮し、その圧縮データの長さとともにそれぞれ符号化画像バッファ３００６のフィールド３１０７、３１０６に格納する（Ｓ３３０９）。
【０２６１】
さらにコントローラ３２０１は、小領域情報バッファ６０４の、各小領域の右上隅Ｙ座標に対応する要素を先頭から小領域数レジスタ６０３が示す個数だけ読取り、テンポラリー整数配列バッファ３１０３に格納する（Ｓ３３１０）。続いてＳ３３１１で整数配列可逆圧縮器３１０２は、テンポラリー整数配列バッファ３１０３の内容を可逆圧縮し、その圧縮データの長さとともにそれぞれ符号化画像バッファ３００６のフィールド３１０９、３１０８に格納する。
【０２６２】
Ｓ３３１２ではコントローラ３２０１は、小領域情報バッファ６０４の、各小領域左上隅Ｘ座標に対応する要素を先頭から小領域数レジスタ６０３が示す個数だけ読取り、テンポラリー整数配列バッファ３１０３に格納する。Ｓ３３１３では、整数配列可逆圧縮器３１０２は、テンポラリー整数配列バッファ３１０３の内容を、可逆圧縮し、その圧縮データの長さとともにそれぞれ符号化画像バッファ３００６のフィールド３１１１、３１１０に格納する。
【０２６３】
Ｓ３３１４では、コントローラ３２０１は、小領域情報バッファ６０４の、各小領域の左下隅Ｙ座標に対応する要素を先頭から小領域数レジスタ６０３が示す個数だけ読取り、テンポラリー整数配列バッファ３１０３に格納する。Ｓ３３１５で整数配列可逆圧縮器３１０２は、テンポラリー整数配列バッファ３１０３の内容を可逆圧縮し、その圧縮データの長さとともにそれぞれ符号化画像バッファ３００６のフィールド３１１３、３１１２に格納する。
【０２６４】
Ｓ３３１６でビットプレーン分割器３２０４は、減色画像バッファ３００４に格納された画像を各小領域ごとにビットプレーンに分割し、ビットプレーンバッファ３２０５に格納する。Ｓ３３１７では、コントローラ３２０１は、符号化されるビットプレーンの数を符号化画像バッファ３００６のビットプレーン数のフィールド３１１３に書込む。この例の場合には、３がフィールド３１１３に書込まれる。この後画像可逆圧縮器３２０７が、ビットプレーンバッファ３２０５の内容をプレーンごとに圧縮し（Ｓ３３１８）処理を終了する。
【０２６５】
図３９のＳ３３０４の処理の詳細について図４０を参照して説明する。まずＳ３４０１でコントローラ３２０１は、第１カウンタ３２０９を１に初期化する。以下の説明ではｉは第１カウンタ３２０９の値を意味する。続くＳ３４０２でコントローラ３２０１はＡＬＢ［０］とＡＬＢ［ｉ］とを比較する（Ｓ３４０２）。両者が等しければ制御はＳ３４０３に、等しくなければ制御はＳ３４０６に進む。
【０２６６】
Ｓ３４０３では、コントローラ３２０１は、第１カウンタ３２０９の値ｉをインクリメントする。続いてＳ３４０４においてコントローラ３２０１は、第１カウンタ３２０９の値ｉを小領域数レジスタ６０３の内容と比較する（Ｓ３４０４）。両者が等しければ制御はＳ３４０５に進み、さもなければ制御はＳ３４０２に戻る。
【０２６７】
Ｓ３４０６ではコントローラ３２０１は、小領域階調数バッファ６１７の要素がすべて一致していないと判定して処理を終了する。一方Ｓ３４０５では、コントローラ３２０１は、小領域階調数バッファ６１７の要素がすべて等しいと判定して処理を終了する。
【０２６８】
図３９に示したＳ３３１６の処理の詳細について図４１を参照して説明する。Ｓ３５０１において、コントローラ３２０１は、第１カウンタ３２０９を０に初期化する（Ｓ３５０１）。
【０２６９】
Ｓ３５０２においてビットプレーン分割器３２０４は、小領域情報バッファ６０４から、ｉ番目の小領域の位置情報を読出してテンポラリー小領域情報バッファ３２１０にコピーする。ここでは、テンポラリー小領域情報バッファ３２１０は、小領域の右上隅のＸ座標およびＹ座標、ならびに右上隅のＸ座標およびＹ座標を格納できる４つ組の整数とする。続いてＳ３５０３でビットプレーン分割器３２０４は、ビットプレーン分割規則テーブル３２０６、テンポラリー小領域情報バッファ３２１０を参照し、ｉ番目の小領域をビットプレーンに分割し、ビットプレーンバッファ３２０５の対応する領域に書込む。ここで行なわれるビットプレーンへの分割の規則は、ビットプレーン分割規則テーブル３２０６で与えられる。その値の定め方については後述する。
【０２７０】
Ｓ３５０４でコントローラ３２０１は第１カウンタ３２０９の値ｉをインクリメントする。続いてコントローラ３２０１は、Ｓ３５０５において第１カウンタ３２０９の値ｉと小領域数レジスタ６０３の値とを比較する。もし両者が等しければ処理は終了する。さもなければ制御はＳ３５０２に戻る。
【０２７１】
図３９のＳ３３１８の処理の詳細について図４２を参照して説明する。コントローラ３２０１は、最初に第１カウンタ３２０９の値ｉを０に初期化する（Ｓ５００１）。以下ｉは第１カウンタ３２０９の値を意味するものとする。
【０２７２】
続いて画像可逆圧縮器３２０７は、ビットプレーンバッファ３２０５のｉ番目のプレーンのデータを可逆圧縮し、圧縮データの長さとともに符号化画像バッファ３００６に書込む（Ｓ５００２）。２値画像の可逆圧縮の手法としては、ここではＪＢＩＧ（Joint Bi-level Image Group）を仮定する。したがって画像可逆圧縮器３２０７の出力はＪＢＩＧデータとなる。なおＪＢＩＧについては、たとえば画像電子学会誌第２０巻第１号に詳しい。またＪＢＩＧ方式については既に広く使われている方式である。したがってここではその詳細な説明は行なわない。なおまたここで２値画像の圧縮方式としてどのような方法を用いるかは問題ではなく、ＪＢＩＧ以外の方法であってもよい。
【０２７３】
続いてＳ５００３においてコントローラ３２０１は、第１カウンタ３２０９の値ｉをインクリメントする。さらにコントローラ３２０１は、第１カウンタ３２０９の値ｉをビットプレーン数レジスタ３２０８と比較する（Ｓ５００４）。両者が等しければ処理は終了し、さもなければ制御はＳ５００２に戻る。
【０２７４】
図３８に示すビットプレーンバッファ３２０５は、出力画像バッファ３００６と等しいデータ構造およびサイズを持つバッファを３プレーン分集めたものである。後に説明するように、ビットプレーンバッファ３２０５の各プレーンのデータは２値画像である。したがって通常行なわれているように、１画素あたり１ビットを格納することなどにより、さらに効率的にデータを格納するようにしてもよい。なおビットプレーンバッファ３２０５の各プレーンには、最上位プレーンから０、１、２と番号が付けられているものとする。
【０２７５】
ビットプレーンバッファ３２０５が３プレーンからなるのは、小領域階調数バッファ６１７で示される小領域階調数の最大が８であり、８階調画像は３プレーンで表わされるためである。したがって小領域階調数バッファ６１７の内容によっては、プレーン数を変更する必要が生ずる。なおビットプレーン数レジスタ３２０８に、この最大のプレーン数の情報が予め格納されているものとする。
【０２７６】
図３８に示すビットプレーン分割規則テーブル３２０６は、２次元整数配列となっている。そのインデックスは、小領域階調数０〜８と画素値０〜７とである。ビットプレーン分割規則テーブル３２０６によって、画素値は、小領域の階調数によって異なった変換を受けてから、２進表現の各桁の値によって適切なビットプレーンに転換される。
【０２７７】
ビットプレーン分割規則テーブル３２０６のインデックスの１つである小領域階調数の範囲を０〜８としたのは、最大の階調数として８を仮定しているためである。また、画素値の範囲を０〜７としたのは、最大の画素値が最大の階調数−１となるためである。プレーン番号の範囲を０〜２としたのは、プレーン数が３であるためである。このような範囲は、ここに挙げたパラメータが変更されれば適宜変更されるべきものである。
【０２７８】
なおここで述べたビットプレーン分割規則テーブル３２０６のデータ構造は、説明をわかりやすくするためにある程度冗長な構造としたものである。たとえば、小領域階調数として２、４、８以外には、対応する要素は不要である。また、小領域階調数≦画素値となるような組合せは存在しない。さらに効率の高いデータ構造を考えることは当然可能であるが、ここでは理解を容易とするために上記したようなある程度の冗長さを含んだものを用いる。不要なビットプレーン分割規則テーブル３２０６の要素については、特に説明しない限り０が格納されているものとする。実際にはどのような値を設定してもそれらの値は使用されないので処理結果には影響しない。
【０２７９】
以下、ビットプレーン分割規則テーブル３２０６の各要素の値の定め方について説明する。最も簡単な方法は、図４３に示すように、画素値を２進法で表わし、各桁の０／１をそのまま各プレーンに対応させる方法である。この方法に対応するビットプレーン分割規則テーブル３２０６の構造は以下のとおりである。すなわち、ビットプレーン分割規則テーブル３２０６は、図４３に示す第１列をインデックスの１つである画素値としたとき、もう片方のインデックスの値にかかわらず、図４３の第２列に示されている対応する値が読出せるような構造とする。たとえば小領域階調数にかかわらず、画素値５に対応するプレーン番号０、１、２それぞれに対応するビットプレーン分割規則テーブル３２０６の要素は５となり、同じく画素値６に対応する要素は６となる。
【０２８０】
図４３の３列目以降は、ビットプレーンバッファ３２０５への展開後の値を説明する目的で示したものである。したがってビットプレーン分割規則テーブル３２０６には実際にはこれらの値は現われない。これは後に説明する図４４および図４５についても同様である。
【０２８１】
このようなビットプレーン分割規則テーブル３２０６の値の定め方を用いても、本発明の第２の実施の形態は動作する。しかしここでは、ビットプレーン分割規則テーブル３２０６の内容として以下の規則で定められるものを用いる。すなわち、小領域階調数が８である要素については図４３で、小領域階調数が４である要素については図４４で、小領域階調数が２である要素については図４５で与えられるものを用いる。
【０２８２】
このように定めるのは、特にテキスト画像またはそれに類する画像の効率的な符号化を目的としてのことである。テキスト画像の場合には、広い面積を背景領域が占めることが多い。その中でも、２値で表現できる小領域は特に背景領域が広い範囲を占める画像であると考えられる。すなわち、小領域階調数が異なっても、大半の小領域で、小領域階調数が２の小領域では１、小領域階調数が４の小領域では３、小領域階調数が８の領域では７と、画素が最も大きな値を持った領域、すなわち背景領域が大半を占めることが、少なくともテキスト画像では多いと考えられる。
【０２８３】
ところが、このように異なる小領域階調数を持つ小領域からなる画像を、図４３に示されている方法で小領域階調数にかかわりなくビットプレーンに展開すると、同じ背景領域でも各ビットプレーンの値が異なることがある。たとえば背景領域は、小領域階調数が８の小領域ではすべてのビットプレーンが１、小領域階調数が４の小領域では第１ビットプレーンは０、その他のビットプレーンでは１、小領域階調数が２の小領域では第３ビットプレーンは１、その他のビットプレーンは０となる。
【０２８４】
そのため、各ビットプレーンは、小領域階調数が異なる小領域ごとに、０と１とが混在したものになる。これは、第１の実施の形態で説明したような、表示時に起こる問題ではないが、第２の実施の形態のように、小領域ごとに適応的に階調数を変化させる技術を画像圧縮技術と組合せる場合に、圧縮効率を低下させるという問題として現われる。
【０２８５】
このような状況を改善するために、画素値の復元には、減色後の画素値だけでなく、各小領域の小領域階調数を用いることができることを利用して圧縮効率を高める。そのために、上に述べたように小領域階調数によってビットプレーンへの展開規則を変更するのである。したがって、各小領域の階調数の異なるものに対してビットプレーン分割規則を別々に持たせ、階調数の情報を用いてビットプレーンの圧縮率を向上させるように、減色後のビットプレーンの値の連続性を高めることができる。これが本実施の形態の装置における技術的に重要な点の１つである。
【０２８６】
これを比較的単純な例を参考にして説明する。図４６には、減色前の入力画像を示す。この画像は３９０１〜３９０６の小領域に分割されている。そして小領域３９０１、３９０２、３９０４、３９０５にまたがって文字画像３９０７が存在している。
【０２８７】
この例では、減色後に小領域３９０１、３９０２、３９０４、３９０５の階調数は８値と判定され、小領域３９０３、３９０６の階調数が２値と判定されているものとする。これは文字３９０７の存在から十分あり得ることである。また背景領域は８値領域では画素値が７、２値領域では画素値が１となっており、文字３９０７は画素値０を持っているものとする。
【０２８８】
図４６に示した例では、図４３に示した分割方法を用いると、２値では０、１としてビットプレーンに展開される。そのために、２値領域の最上位プレーン（０番目のプレーン）は常に０となる。これを図４７に示した。このため、最上位プレーンでは、小領域によって背景領域でも値が異なっており、値の分布の偏りを利用して圧縮を行なうエントロピー圧縮には不利である。
【０２８９】
このような場合に、図４４に示された方法で２値領域の値を変換することが考えられる。この場合には画素値として０または７としてビットプレーンに展開される。そのために２値領域の最上位プレーン（０番目のプレーン）は、２値でも背景領域では１となる。これを図４８に示した。このため、小領域ごとに異なる階調数が混在していたとしても、それによって圧縮効率を低下させることが少ない。
【０２９０】
図３６、図３７で定められるビットプレーン分割規則テーブル３２０６とは別の例として、小領域階調数が４である小領域に対しては図４９に示されるものを、小領域階調数が２である小領域に対しては図５０に示されるものを、それぞれ用いることも考えられる。これは、特に小領域階調数が８であるような小領域の数が少ない画像において有効である。ビットプレーン分割規則テーブル３２０６として、図４９および図５０に示されているものを用いた場合には、上位２プレーンで大半の小領域の画像が表現されているからである。
【０２９１】
これに対して、ビットプレーン分割規則テーブル３２０６として、図４４、図４５に示されているものを採用すると、利点もある。すなわち、小領域ごとに異なる階調数を持たせながら、最上位プレーンを復号するだけで画像の概略がわかるという機能を減色後の画像が持つことができるということである。これはこの場合、背景画像に対応する画素値については、小領域階調数に関係なく最上位プレーンに１が入っているためである。
【０２９２】
なお本実施の形態では多値画像をビットプレーンに分割して複数の２値画像として圧縮しているが、多値画像のまま圧縮しても差し支えない。また、小領域階調数バッファ６１７の、横方向の小領域数を横幅、縦方向小領域数を縦幅とする画像としてビットプレーンに分割して圧縮することもできる。
【０２９３】
上の第２の実施の形態で説明した画像圧縮装置は、異なる階調数を持つ小領域を考慮して、減色後のビットプレーンの圧縮効果が高くなるように構成されている。そのため、より効率の高い画像圧縮を行なうことができる。
【０２９４】
［第３の実施の形態］
以下に述べる本発明の第３の実施の形態に係る装置は、第２の実施の形態による画像符号化装置に対応する画像復号装置である。なお今までの説明と同様、以下の説明において用いる具体的なデータ構造または数値例は、説明のための例に過ぎず、本発明の技術的範囲をこれらに制限するような性質のものではない。
【０２９５】
図５１を参照して、この第３の実施の形態に係る画像復号装置は、符号化画像バッファ４２０１、画像復号器４２０２、出力画像バッファ４２０３および画像出力装置４２０４を含む。
【０２９６】
図５２を参照して、画像復号器４２０２は、コントローラ４３０１、整数配列復号器４３０２、テンポラリー整数配列バッファ４３０３、圧縮画像復号器４３０４、ビットプレーンバッファ４３０５、ビットプレーン統合器４３０６、ビットプレーン統合規則テーブル４３０７、小領域情報バッファ４３０８、小領域階調数バッファ４３０９、小領域数レジスタ４３１０、ビットプレーン数レジスタ４３１１、画像横幅レジスタ４３１２、画像縦幅レジスタ４３１３、第１カウンタ４３１４、減色画像バッファ４３１５、表示画像作成器４３１６、基準画素値テーブル４３１７とを含む。以下の説明では、小領域階調数バッファ４３０９のｉ番目の要素をＡＬＢ［ｉ］と表わすものとする。
【０２９７】
符号化画像バッファ４２０１は、第２の実施の形態の画像符号化装置を構成する符号化画像バッファ３００６と同一のデータ構造である。
【０２９８】
コントローラ４３０１は、画像復号器４２０２の他の各構成要素の制御および他の各構成要素相互間または各構成要素と画像復号器４２０２の外部との間のデータ通信の制御を行なうためのものである。コントローラ４３０１は画像復号器４２０２内の他の各構成要素の動作には常に関与している。しかし、説明の簡略化のために、以下の記載では理解に差し支えない限りコントローラ４３０１の動作については言及しないことがある。
【０２９９】
コントローラ４３０１が図５２に示される各構成要素を制御することにより、画像復号器４２０２としての機能を実現するための処理の制御構造を図５３以下を参照して説明する。まず、コントローラ４３０１は、符号化画像バッファ４２０１の画像横幅のフィールド３１０１の内容を画像横幅レジスタ４３１２にコピーする（Ｓ４５０１）。続いてコントローラ４３０１は、符号化画像バッファ４２０１の画像縦幅のフィールド３１０２の内容を画像縦幅レジスタ４３１３にコピーする（Ｓ４５０２）。さらにコントローラ４３０１は、符号化画像バッファ４２０１の小領域数のフィールド３１０３の内容を小領域数レジスタ４３１２にコピーする（Ｓ４５０３）。
【０３００】
整数配列復号器４３０２は、符号化画像バッファ４２０１のフィールド３２０４の値が示しているバイト数だけ、フィールド３１０５から符号化データを読込む。さらに整数配列復号器４３０２は、このように読込んだ符号化データを復号し、小領域階調数バッファ４３０９に書込む（Ｓ４５０４）。このとき整数配列復号器４３０２で行なわれるのは、第２の実施の形態の装置の整数配列可逆圧縮器３１０２による符号化に対する復号動作である。ここでは、第２の実施の形態で用いた例に従って圧縮アルゴリズムとしてはＬＺ７７を想定しているものとする。
【０３０１】
なお、ここに述べたとおり整数配列復号器４３０２が採用する復号動作のアルゴリズムは、第２の実施の形態の装置の整数配列可逆圧縮器３１０２において用いられた符号化アルゴリズムに対応するものである。したがって符号化アルゴリズムが変わればそれに従って整数配列復号器４３０２の採用する復号動作も変わる。
【０３０２】
整数配列復号器４３０２は、符号化画像バッファ４２０１のフィールド３１０６の値が示しているバイト数だけフィールド３１０７から符号化データを読込む。さらに整数配列復号器４３０２は読込んだ符号化データを復号し、テンポラリー整数配列バッファ４３０３に書込む（Ｓ４５０５）。
【０３０３】
コントローラ４３０１は、テンポラリー整数配列バッファ４３０３の内容を、小領域情報バッファ４３０８の、各小領域の左上Ｘ座標に対応する部分に書込む（Ｓ４５０６）。
【０３０４】
整数配列復号器４３０２は、符号化画像バッファ４２０１のフィールド３１０８の値が示しているバイト数だけ、フィールド３１０９から符号化データを読込む。整数配列復号器４３０２はこの符号化データを復号し、テンポラリー整数配列バッファ４３０３に書込む（Ｓ４５０７）。
【０３０５】
コントローラ４３０１は、テンポラリー整数配列バッファ４３０３の内容を、小領域情報バッファ４３０８の、各小領域の左上Ｙ座標に対応する部分に書込む（Ｓ４５０８）。
【０３０６】
整数配列復号器４３０２は、符号化画像バッファ４２０１のフィールド３１１０の値が示しているバイト数だけフィールド３１１１から符号化データを読込む。整数配列復号器４３０２は、この符号化データを復号し、テンポラリー整数配列バッファ４３０３に書込む（Ｓ４５０９）。
【０３０７】
コントローラ４３０１は、テンポラリー整数配列バッファ４３０３の内容を、小領域情報バッファ４３０８の各小領域の右下Ｘ座標に対応する部分に書込む（Ｓ４５１０）。整数配列復号器４３０２は、符号化画像バッファ４２０１のフィールド３１１２の値が示しているバイト数だけフィールド３１１３から符号化データを読込む。整数配列復号器４３０２は、読込んだ符号化データを復号し、テンポラリー整数配列バッファ４３０３に書込む（Ｓ４５１１）。
【０３０８】
コントローラ４３０１は、テンポラリー整数配列バッファ４３０３の内容を、小領域情報バッファ４３０８の、各小領域の右下Ｙ座標に対応する部分に書込む（Ｓ４５１２）。コントローラ４３０１は、符号化画像バッファ４２０１のフィールド３１１４の内容をビットプレーン数レジスタ４３１１にコピーする（Ｓ４５１３）。
【０３０９】
圧縮画像復号器４３０４が、符号化画像バッファ４２０１の画像を復号してビットプレーンバッファ４３０５に書込む（Ｓ４５１４）。なお、圧縮画像復号器４３０４が採用する復号動作のアルゴリズムは、第２の実施の形態の装置の画像可逆圧縮器３２０７において用いられた符号化アルゴリズムに対応するものである。したがって符号化アルゴリズムが変わればそれにしたがって圧縮画像復号器４３０４の採用する復号動作も変わる。
【０３１０】
ビットプレーン統合器４３０６は、ビットプレーンバッファ４３０５の画像を統合して８値画像に変換し、減色画像バッファ３５２１に格納する（Ｓ４５１５）。
【０３１１】
表示画像作成器４３１６は、小領域階調数バッファ６１７と基準画素値テーブル４３１７とを参照し、各小領域ごとに異なる階調数を持つ、減色画像バッファ４３１５の画像を２５６階調の画像に変換し、出力画像バッファ４２０３に出力する（Ｓ４５１６）。
【０３１２】
図５３に示すＳ４５１４で行なわれる処理についてその詳細を図５４を参照して説明する。コントローラ４３０１は、第１カウンタ４３１４を０に初期化する（Ｓ４６０１）。以下ｉは第１カウンタ４３１４の値を意味するものとする。
【０３１３】
圧縮画像復号器４３０４は、符号化画像バッファ４２０１のフィールド３１１５（または３１１７、３１１９、…）が示す長さだけ符号化データを読込んで復号し、ビットプレーンバッファ４３０５のｉ番目のプレーンに書込む（Ｓ４６０２）。
【０３１４】
コントローラ４３０１は第１カウンタ４３１４の値ｉをインクリメントする（Ｓ４６０３）。続いてコントローラ４３０１は、第１カウンタ４３１４の値ｉとビットプレーン数レジスタ４３１１とを比較し（Ｓ４６０４）、両者が等しければ処理は終了する。さもなければ制御はＳ４６０２に戻る。
【０３１５】
図５３のＳ４５１５に示されるビットプレーン統合処理の詳細につき図５５を参照して説明する。コントローラ４３０１は第１カウンタ４３１４の値を０に初期化する（Ｓ４６０５）。以下の説明ではｉは第１カウンタ４３１４の値を意味するものとする。
【０３１６】
ビットプレーン統合器４３０６は、第１カウンタ４３１４、ビットプレーン統合規則テーブル４３０７、小領域情報バッファ４３０８およびＡＬＢ［ｉ］を参照して、ｉ番目の小領域に対応するビットプレーンバッファ４３０５の内容を統合し、減色画像バッファ４３１５上の対応する小領域に格納する（Ｓ４６０６）。この場合のビットプレーン統合規則テーブル４３０７の内容については後述する。この各ビットプレーンの統合の規則を与えるのがビットプレーン統合規則テーブル４３０７である。
【０３１７】
ビットプレーン統合器４３０６は、Ｓ５１０２において、ビットプレーンの各画素を、画素値の２進表現と見なして多値画像に変換した後、画素値およびビットプレーン統合規則テーブル３５０７を参照して出力画素値に変換する。ビットプレーン統合規則テーブル４３０７の内容については後述する。
【０３１８】
コントローラ３５０１は、第１カウンタ４３１４の値ｉをインクリメントする（Ｓ４６０７）。続いてコントローラ３５０１は、第１カウンタ４３１４の値ｉと小領域数レジスタ３５１０の内容とを比較する（Ｓ４６０８）。両者が等しければ処理は終了し、等しくなければ制御はＳ４６０７に戻る。
【０３１９】
図５２に示すビットプレーン統合規則テーブル４３０７の内容は以下のとおりである。ビットプレーン統合規則テーブル４３０７は２次元整数配列となっている。そのインデックスは、小領域階調数０〜８と画素値０〜７とである。ビットプレーン統合規則テーブル４３０７によって、画素値は、小領域の階調数によって異なった変換を受ける。
【０３２０】
ここで用いられるビットプレーン統合規則テーブル４３０７は、発明の第２の実施の形態で用いられ、図４３〜図４５で説明したビットプレーン分割規則テーブル３２０６の態様を逆にしたものである。
【０３２１】
小領域階調数が８、４、２の場合をそれぞれ図５６、図５７および図５８に示す。図５６〜図５８の１列目〜３列目はそれぞれ、ビットプレーンバッファ４３０５の値と画素値との対応を説明する目的で示したものであり、ビットプレーン統合規則テーブル４３０７の一部をなすものではない。また図５７および図５８で、括弧の中に入れられた変換後画素値は、使われない入力画素値に対応するものであることを示す。
【０３２２】
以上のように、第３の実施の形態に係る画像復号装置は、小領域の階調数がどれも等しいときには、一部の情報の復号をスキップするように構成した。そのため、従来と比較してさらに符号化効率の高い画像圧縮を行なうことができる。
【０３２３】
以上説明した実施の形態に開示されている発明の構成を以下に列挙する。
（１）  入力されたデジタル画像データの階調数を減少させて出力する画像減色装置であって、
入力画像を予め定められた手法により小領域に分割するための分割手段と、
各前記小領域ごとに、当該小領域に含まれる画像データに基づいて、当該小領域を適切に減色するための階調数を設定するための適応的減色手段とを含む、画像減色装置。
【０３２４】
（２）  前記適応的減色手段は、
前記入力画像中から予め定められた形状を抽出するための抽出手段と、
前記抽出手段による前記予め定められた形状の抽出結果に基づいて、前記入力画像中の前記予め定められた形状が存在する領域の階調数が、前記予め定められた形状の存在しない領域の階調数以上となるように、各前記小領域の階調数を設定するための手段とを含む、（１）に記載の画像減色装置。
【０３２５】
（３）  前記予め定められた形状は直線である、（２）に記載の画像減色装置。
（４）  前記適応的減色手段は、
異なる減色方法の下での、前記画像の少なくとも一部における背景画素および非背景画素のいずれか一方の分布を表わす指標を算出するための分布算出手段と、
前記分布算出手段により算出された分布の比較結果に基づいて減色方法の適否を決定するための適否決定手段とを含む、（１）に記載の画像減色装置。
【０３２６】
（５）  前記分布算出手段は、
前記入力画像中から予め定められた形状を抽出するための抽出手段と、
異なる減色方法の下での、前記予め定められた形状の近傍の背景画素および非背景画素のいずれか一方の分布を検出するための画素分布検出手段とを含み、
前記適否決定手段は、
前記前記画素分布検出手段により検出された、第１の減色階調数とそれより少ない第２の減色階調数との下での、背景画素および非背景画素の分布を比較し、その比較結果が予め定める条件を満足しているか否かに基づいて、前記第２の減色階調数の適否を判定するための手段を含む、（４）に記載の画像減色装置。
【０３２７】
（６）  前記予め定める条件とは、前記第２の減色階調数の下での背景画素の数と、前記第１の減色階調回数の下での背景画素の数との差が一定以上であることである、（５）に記載の画像減色装置。
【０３２８】
（７）  前記予め定める条件とは、前記第１の減色階調数の下での非背景画素の数と、前記第２の減色階調回数の下での非背景画素の数との差が一定以上であることである、（５）に記載の画像減色装置。
【０３２９】
（８）  前記適応的減色手段は、
入力画像をラベリングするためのラベリング手段と、
前記ラベリング手段の出力に基づき、共通なラベルを含む小領域に共通のラベルを付与するための小領域ラベリング手段とを含み、
前記小領域ラベリング手段によって共通のラベルが付与された小領域には、共通の階調数を設定する、（１）に記載の画像減色装置。
【０３３０】
（９）  前記適応的減色手段は、
入力画像の小領域の境界をはさんで隣接する二つの画素が共通の画素値を持つ場合に、当該二つの画素が属する二つの小領域に共通のラベルを付与する小領域ラベリング手段とを含み、
前記小領域ラベリング手段により共通のラベルが付与された小領域には、共通の階調数を設定する、（１）に記載の画像減色装置。
【０３３１】
（１０）  入力されたデジタル画像データの階調数を減少させるための、（１）〜（９）のいずれかに記載の画像減色装置と、
前記画像減色手段により減色された画像のエントロピー符号化を行なうための画像符号化手段とを含む、画像符号化装置。
【０３３２】
（１１）  小領域ごとに異なる階調数を持ち得る入力画像をビットプレーンに分割して圧縮する画像符号化装置であって、
上位プレーンにおいてより隣接画素間の連続性が高まるように、符号化対象の小領域の階調数に応じて異なる変換を各画素値に施しビットプレーンに分割するための画像変換手段と、
前記画像変換手段による変換によって得られるビットプレーンごとに所定のエントロピー符号化を行なうための画像符号化手段とを含む、画像符号化装置。
【０３３３】
（１２）  小領域ごとに異なる階調数を持ち得る入力画像をビットプレーンに分割して圧縮する画像符号化装置であって、
すべての小領域の階調数が等しいか否かを判定するための判定手段と、
前記判定手段によりすべての小領域の階調数が等しいと判定されたことに応答して、前記入力画像の全体を一つの小領域とみなし、小領域の数を１として画像を符号化するための第１の画像符号化手段と、
前記判定手段によりすべての小領域の階調数が等しいわけではないと判定されたことに応答して、前記入力画像の各小領域ごとに符号化するための第２の画像符号化手段とを含む、画像符号化装置。
【０３３４】
（１３）  （１０）に記載の画像符号化装置によって符号化された画像データを入力するための入力手段と、
前記入力手段により入力された画像データに対して、前記（１０）に記載のエントロピー符号化に対応した復号を行なう復号手段とを含む、画像復号装置。
【０３３５】
（１４）  （１１）に記載の画像符号化装置によって符号化された画像データを入力するための入力手段と、
前記入力手段により入力された画像データに対して、前記（１１）に記載のエントロピー符号化に対応した復号を行なう復号手段と、
前記復号手段により復号された画像データに対して、（１１）に記載の画像変換手段に対応した逆変換を行なうための画像逆変換手段とを含む、画像復号装置。
【０３３６】
（１５）  （１２）に記載の画像符号化装置によって符号化された画像データを復号するための画像復号装置であって、
前記画像符号化手段によって符号化された画像データに含まれる小領域の数がいくつかを判定するための判定手段と、
前記判定手段により判定された数の小領域に前記画像データを分割して復号するための復号手段とを含む、画像復号装置。
【０３３７】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した実施の形態の説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【０３３８】
【図１】実施の形態１にかかる画像減色装置の概略構成を示す図である。
【図２】実施の形態１にかかる画像減色装置の入力画像バッファ３０２に格納される画像データのデータ構造を示す図である。
【図３】実施の形態１にかかる画像減色装置の適応的減色器の構成を示す図である。
【図４】画像減色装置で行なわれる処理の制御構造を示すフローチャートである。
【図５】実施の形態１にかかる画像減色装置の小領域情報バッファ６０４の構成例を示す図である。
【図６】実施の形態１にかかる画像減色装置の文字矩形情報バッファ６１２のデータ構造を示す図である。
【図７】図４に示すＳ７０５において行なわれる処理の制御構造を示す図である。
【図８】図４に示されるＳ７０５Ａにおいて行なわれる処理の制御構造を示す図である。
【図９】図４に示すＳ７０６において行なわれる処理の制御構造を示す図である。
【図１０】図４のＳ７０７において行なわれる処理の制御構造を示す図である。
【図１１】図４に示すＳ７０９において行なわれる処理の制御構造を示す図である。
【図１２】実施の形態１にかかる画像減色装置の適応的減色器の文字矩形減色器６１４の構成を示す図である。
【図１３】階調数が２値に対応する基準画素値の分布を示す図である。
【図１４】階調数が４値に対応する基準画素値の分布を示す図である。
【図１５】階調数が８値に対応する基準画素値の分布を示す図である。
【図１６】文字矩形減色器６１４のコントローラ１１０１が各構成要素を制御する処理の制御構造を示す図である。
【図１７】線抽出器１１０５で取出すことが意図されている文字の縦線を示す図である。
【図１８】線抽出器１１０５で取出すことが意図されている文字の横線を示す図である。
【図１９】累積ヒストグラムを求める処理を説明するための、横線とその上下の帯状領域とを示す図である。
【図２０】図１９に示す入力画像を８値化した後の例を示す図である。
【図２１】図１９に示す入力画像を４値化した後の例を示す図である。
【図２２】図８に示したＳ５２０２で行なわれる小領域ｉの階調数決定処理を行なう小領域減色器６１６の構成を示す図である。
【図２３】コントローラ１７０１によって行なわれる処理の制御構造を示す図である。
【図２４】図３に示した小領域階調数検証器６１９の構成を示す図である。
【図２５】コントローラ２００１が行なう処理の制御構造を示す図である。
【図２６】図２５に示すＳ２１０２で行なわれる処理の制御構造を示す図である。
【図２７】図２５のＳ２１０３において行なわれるラベルバッファの値を生成する処理の制御構造を示す図である。
【図２８】図２５のＳ２１０４に示される小領域ラベルバッファを初期化する処理の制御構造を示す図である。
【図２９】図２５のＳ２１０５において行なわれる小領域ラベルバッファの値を生成する処理の制御構造を示す図である。
【図３０】図２９のＳ２５０４において行なわれる判定処理の制御構造を示す図である。
【図３１】図２９のＳ２５０７において行なわれる判定処理の制御構造を示す図である。
【図３２】着目画素と隣接画素との間の関係を示す図である。
【図３３】図２９のＳ２５１０において行なわれる小領域ラベルの書換処理の制御構造を示す図である。
【図３４】線情報バッファ６０９のデータ構造の他の一例を示す図である。
【図３５】線情報バッファ６０９が画像データを格納するためのバッファとなっている場合にコントローラ６０１が行なう処理の制御構造を示す図である。
【図３６】第２の実施の形態に係る画像符号化装置の概略構造を示す図である。
【図３７】第２の実施の形態において符号化画像バッファ３００６に格納された符号化画像のフォーマットを示す図である。
【図３８】第２の実施の形態に係る画像符号化器３００５の概略構造を示す図である。
【図３９】画像符号化器３００５のコントローラ３２０１が行なう処理の制御構造を示す図である。
【図４０】図３９のＳ３３０４で行なわれる処理の制御構造を示す図である。
【図４１】図３９に示したＳ３３１６で行なわれる処理の制御構造を示す図である。
【図４２】図３９のＳ３３１８で行なわれる処理の制御構造を示す図である。
【図４３】ビットプレーン分割規則テーブル３２０６の各要素の値の定め方の一例を示す図である。
【図４４】ビットプレーン分割規則テーブル３２０６の各要素の値の定め方の他の一例を示す図である。
【図４５】ビットプレーン分割規則テーブル３２０６の各要素の値の定め方のさらに他の一例を示す図である。
【図４６】減色前の入力画像を示す図である。
【図４７】図４６に示された画像を、図４３に示した分割方法でビットプレーンに展開したときの減色画像を示す図である。
【図４８】図４６に示された画像を、図４８に示した分割方法でビットプレーンに展開したときの減色画像を示す図である。
【図４９】小領域階調数が４である小領域に対して適用されるビットプレーン分割規則テーブルの例を示す図である。
【図５０】小領域階調数が２である小領域に対して適用されるビットプレーン分割規則テーブルの例を示す図である。
【図５１】第３の実施の形態にかかる画像復号装置の概略構造を示す図である。
【図５２】図５１に示す画像復号器の概略構造を示す図である。
【図５３】第３の実施の形態にかかる装置のコントローラ４３０１が行なう処理の制御構造を示す図である。
【図５４】図５３に示すＳ４５１４で行なわれる処理の制御構造を示す図である。
【図５５】図５３のＳ４５１５に示されるビットプレーン統合処理の制御構造を示す図である。
【図５６】小領域階調数が８の場合のビットプレーン統合規則テーブル４３０７の構成を示す図である。
【図５７】小領域階調数が４の場合のビットプレーン統合規則テーブル４３０７の構成を示す図である。
【図５８】小領域階調数が２の場合のビットプレーン統合規則テーブル４３０７の構成を示す図である。
【図５９】従来技術の問題点を説明するための、入力画像を示す図である。
【図６０】従来技術による処理結果の一例を示す図である。
【符号の説明】
【０３３９】
３０１  画像入力装置、３０３  適応的減色器、３０４  減色画像バッファ、３０５  出力画像作成器、６０１  コントローラ、６０２  小領域情報生成器、６０５  画像２値化器、６０７  線抽出器、６１０  文字矩形情報抽出器、６１４  文字矩形減色器、６１６  小領域減色器、６１９  小領域階調数検証器、６２０  小領域減色器、６２１  画素器変換器。
【図１】
2006287944.tif 000003
【図２】
2006287944.tif 000004
【図３】
2006287944.tif 000005
【図４】
2006287944.tif 000006
【図５】
2006287944.tif 000007
【図６】
2006287944.tif 000008
【図７】
2006287944.tif 000009
【図８】
2006287944.tif 000010
【図９】
2006287944.tif 000011
【図１０】
2006287944.tif 000012
【図１１】
2006287944.tif 000013
【図１２】
2006287944.tif 000014
【図１３】
2006287944.tif 000015
【図１４】
2006287944.tif 000016
【図１５】
2006287944.tif 000017
【図１６】
2006287944.tif 000018
【図１７】
2006287944.tif 000019
【図１８】
2006287944.tif 000020
【図１９】
2006287944.tif 000021
【図２０】
2006287944.tif 000022
【図２１】
2006287944.tif 000023
【図２２】
2006287944.tif 000024
【図２３】
2006287944.tif 000025
【図２４】
2006287944.tif 000026
【図２５】
2006287944.tif 000027
【図２６】
2006287944.tif 000028
【図２７】
2006287944.tif 000029
【図２８】
2006287944.tif 000030
【図２９】
2006287944.tif 000031
【図３０】
2006287944.tif 000032
【図３１】
2006287944.tif 000033
【図３２】
2006287944.tif 000034
【図３３】
2006287944.tif 000035
【図３４】
2006287944.tif 000036
【図３５】
2006287944.tif 000037
【図３６】
2006287944.tif 000038
【図３７】
2006287944.tif 000039
【図３８】
2006287944.tif 000040
【図３９】
2006287944.tif 000041
【図４０】
2006287944.tif 000042
【図４１】
2006287944.tif 000043
【図４２】
2006287944.tif 000044
【図４３】
2006287944.tif 000045
【図４４】
2006287944.tif 000046
【図４５】
2006287944.tif 000047
【図４６】
2006287944.tif 000048
【図４７】
2006287944.tif 000049
【図４８】
2006287944.tif 000050
【図４９】
2006287944.tif 000051
【図５０】
2006287944.tif 000052
【図５１】
2006287944.tif 000053
【図５２】
2006287944.tif 000054
【図５３】
2006287944.tif 000055
【図５４】
2006287944.tif 000056
【図５５】
2006287944.tif 000057
【図５６】
2006287944.tif 000058
【図５７】
2006287944.tif 000059
【図５８】
2006287944.tif 000060
【図５９】
2006287944.tif 000061
【図６０】
2006287944.tif 000062