(57)【特許請求の範囲】
【請求項１】
画像を表すデータを符号化して、デコーダが画像を再生できる出力データを作成する方法であって、
前記画像の少なくとも１つのプレーンの画像信号データであって、各々が複数の画素行及び画素列についてのデータを有する第一画素ブロックと第二画素ブロックとを含む画像信号データを入力するステップと、
第一画素ブロックに変換を行って第一係数を求めるステップと、
第一画素ブロックの解析に基づいて第一画像タイプを求めるステップと、
前記第一画像タイプの画像を表す係数を量子化するのに最適化された第一修正テーブルを求めるステップと、
前記第一画像タイプとは異なる基本画像タイプに変換を行うことによって得られる基本画像係数を量子化するのに最適化された精細量子化テーブルであって、前記第一修正テーブルとは異なる精細量子化テーブルを求めるステップと、
前記第一修正テーブルと前記精細量子化テーブルとの双方に基づいて前記第一係数を修正することによって第一修正係数を求めるステップと、
前記デコーダが前記画像を再生できる出力データであって、前記第一修正係数と前記精細量子化テーブルに関する情報とを示すデータを含むが、前記第一修正テーブルの情報は含まない出力データを生成するステップと、
を含むことを特徴とする方法。
【請求項２】
前記第一修正係数を得るステップが、
前記第一修正テーブルに基づいて第一係数を閾値処理して、第一閾値処理係数を得るステップと、
前記精細量子化テーブルに基づいて前記第一閾値処理係数を量子化するステップと、
を含むことを特徴とする請求項１記載の方法。
【請求項３】
前記変換が、離散コサイン変換であることを特徴とする請求項１又は請求項２記載の方法。
【請求項４】
前記精細量子化テーブルが、テキスト画像用に最適化された量子化テーブルであり、前記デコーダがＪＰＥＧ準拠デコーダであることを特徴とする請求項１又は請求項２記載の方法。
【請求項５】
前記第二画素ブロックに変換を行って、第一係数とは異なる第二係数を求めるステップと、
前記第二画素ブロックの解析に基づいて第一画像タイプ及び基本画像タイプのいずれとも異なる第二画像タイプを求めるステップと、
前記第二画像タイプの画像を表す係数を量子化するのに最適化された第二修正テーブルであって、前記第一修正テーブル及び前記精細量子化テーブルのいずれとも異なる第二修正テーブルを求めるステップと、
前記第二修正テーブルと前記精細量子化テーブルとの双方に基づいて前記第二係数を修正することによって第二修正係数を得るステップと、
を更に含み、前記出力データが、前記第二修正係数を示すデータを更に含むが、前記第二修正テーブルについて記載する情報は含まないことを特徴とする請求項１記載の方法。
【請求項６】
前記第一修正係数を求めるステップが、前記第一修正テーブルに基づいて第一係数を閾値処理することにより第一閾値処理係数を得るステップと、前記精細量子化テーブルに基づいて前記第一閾値処理係数を量子化するステップと、を含み、
前記第二修正係数を求めるステップが、前記第二修正テーブルに基づいて第二係数を閾値処理することにより第二閾値処理係数を求めるステップと、前記精細量子化テーブルに基づいて前記第二閾値処理係数を量子化するステップと、含む、請求項５記載の方法。
【請求項７】
前記第一画素ブロックの解析に基づいて第一画像タイプを求めるステップが、複数の画素行及び画素列についてのデータに対する空間領域解析によってそれら画素行と画素列とについてのテクスチャ値を得るステップを含むことを特徴とする請求項１記載の方法。
【請求項８】
前記第一画素ブロックの解析に基づいて第一画像タイプを求めるステップが、
複数の画素行及び画素列についてのデータに対する空間領域解析によってそれら画素行及び画素列とについてのテクスチャ値を得るステップと、
ヒストグラム値を計算することにより、それら画素行及び画素列について得られた前記テクスチャ値の数値的な分布を求めるステップと、
前記テクスチャ値の分布に基づいて第一画像タイプを決定するステップと、
を含むことを特徴とする請求項１記載の方法。
【請求項９】
画像を表す入力データ信号を符号化する装置であって、
前記画像の１プレーンのブロック状領域を示すデータを受け取り、これらデータに変換を行うことにより、前記領域を表すデータに対応する変換係数を得る変換モジュールと、
（１）前記変換モジュールによって得られた変換係数及び（２）前記領域を表すデータの空間領域解析のいずれか一方に基づいて、前記ブロック状領域を第一画像タイプであると特徴付けるセグメント化器と、
変換モジュールから変換係数を受け取り、（１）第一画像タイプを量子化するのに最適化された第一量子化テーブル及び（２）第一画像タイプとは異なる基本画像タイプを量子化するのに最適化された精細量子化テーブルの両方に基づいて前記変換係数を修正することによって修正係数を得る修正量子化器と、
量子化された係数を、前記精細量子化テーブルを表すが前記第一量子化テーブルは表さない情報と共に出力する出力モジュールと、
を備える装置。
【請求項１０】
前記セグメント化器が、前記領域を表すデータの空間領域解析に基づいて前記領域の画像タイプを特徴付ける請求項９記載の装置。
【請求項１１】
前記修正量子化器が、
前記変換モジュールから変換係数を受け取り、前記第一量子化テーブルに基づいて前記変換係数を閾値処理することによって、閾値処理係数を得る閾値処理器と、
この閾値処理器から閾値処理係数を受け取り、前記精細量子化テーブルに基づいて前記閾値処理係数を量子化することによって、量子化係数を生成する量子化モジュールと、
を備えることを特徴とする請求項９記載の装置。
【請求項１２】
前記セグメント化器が、前記領域を表すデータの空間領域解析に基づいて前記領域の画像タイプを特徴付ける請求項１１記載の装置。
【請求項１３】
前記精細量子化テーブルが、テキスト画像を量子化するのに最適化されていることを特徴とする請求項１１又は請求項１２記載の装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、文書画像を走査、表現、再生するデジタルシステムに関する。特に、本発明はＪＰＥＧシーケンシャルモードデータシンタックス（ｓｅｑｕｅｎｔｉａｌ  ｍｏｄｅ  ｄａｔａ  ｓｙｎｔａｘ）内での適応量子化に関する。詳しくは、本発明は、異なる画像タイプのブロックに画像をセグメント化する方法に関し、本方法を用いると、人間の視覚性質に基づく情報を顕著に失わずに、より効率的に画像を圧縮することができる。
【０００２】
【従来の技術】
ＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃ  Ｅｘｐｅｒｔ  Ｇｒｏｕｐ）アーキテクチャは、圧縮方法と見ることができ、多種多様なアプリケーションは、具体的な必要を満たす適切な圧縮システムをこの方法から規定することができる。ＪＰＥＧは、画素データの符号化および復号に係わるだけであり、データの解釈になると、ＪＰＥＧの範囲外であり、それは、ＪＰＥＧを用いるアプリケーション側に任されている。
【０００３】
ＪＰＥＧの仕様は、幾つかの部分から成っており、可逆および非可逆両符号化方法に対するプロトコルもこれらに含まれている。可逆圧縮アルゴリズムは、ハフマン（Ｈｕｆｆｍａｎ）符号出力段階を有する予測／適応モデルを用い、情報のロスがないものである。ＪＰＥＧ不可逆圧縮アルゴリズムは、本発明が最も関心するところである標準シーケンシャルモードを含めて、図１に示されるように幾つかの段階を順次に行っていく。これらの段階が組み合わせられることによって、主に連続階調の画像を圧縮しながらも、最初の忠実度（フィデリティ）を殆ど損なわない圧縮器が形成される。一般に本明細書では簡単化のため、形容詞として用いられる「ＪＰＥＧ」という語は、普通、ＪＰＥＧシーケンシャルモードデータシンタックスを意味する。すなわち、「ＪＰＥＧ＊＊」などの形の用語は、ＪＰＥＧシーケンシャルモードデータシンタックスに関する＊＊であることを示す。例えば「ＪＰＥＧ準拠」と言えば、ＪＰＥＧシーケンシャルモードデータシンタックスに準拠していることを意味する。
【０００４】
圧縮法の中心は、１つの画像の各画像プレーン（例えば、色差値または輝度値）に行われる離散コサイン変換（ＤＣＴ）である。単一プレーンの画像（例えば、グレイ画像）もあり、多レイヤすなわち多プレーンの画像（例えば、ＲＧＢまたはＣＭＹＫ方式画像）もあることは周知の通りである。従って、理解されなければならないのは、本明細書では「画像」が、時として多レイヤ画像の単一プレーンについて用いられているということである。例えば、どの画像面内でも８×８画素のブロックの６４個の値についてＤＣＴ演算を行うと、各々が６４個の直交波形成分の振幅を表す６４個の係数の集合が得られる。これらの係数全部で８×８画素ブロックの全６４個の画素に対する値を規定する。上記６４個の係数に逆ＤＣＴを行うと、８×８画素ブロックの元の６４個の値が再生される。
【０００５】
元の６４個の値でなくこれら６４個の係数を用いる利点は、これら係数の各々が、異なる空間周波数を示す直交波形の振幅を示すということである。滑らかなテクスチャのブロックは、画素と画素との間の変化が小さく、値がゼロである「高域周波数」ＤＣＴ係数が数多く生じ易い。例えば、同じ値を有する６４個の画素からなるブロックにＤＣＴ演算を行うと、値がゼロでない係数が１個と、値がゼロの係数が６３個得られる。更に、上記係数を空間周波数に従って並べると、値がゼロの係数が並んだ長い列が得られる。
【０００６】
ゼロの値が並んだ長い列を有するデータがあると、例えば、ハフマン（Ｈｕｆｆｍａｎ）タイプのエントロピー符号化を用いて大幅なデータ圧縮が可能となる。この理由で、（通常８×８の）画素ブロックにＤＣＴ演算を行う時、高い空間周波数に対する係数は、正確さを落として表すのが望ましい。これは、図２に示される量子化と呼ばれるプロセスで行われる。量子化は、基本的にはＤＣＴ係数の正確さを落とすプロセスである。正確さを落とすと言うことは極めて重要である。なぜなら、正確さが低いということは、大抵の場合、圧縮データのストリームのスループットがよくなることにつながるからである。ＪＰＥＧアルゴリズムがデータを効果的に圧縮する理由の一つは、ＤＣＴブロックの大量の係数が、量子化の際に丸められたり、切り捨てられたりしてゼロの値になるということである。
【０００７】
ＤＣＴ係数は、これを、量子化値と呼ばれるゼロでない正の整数で割り、商の小数点以下を切り捨て、すなわち丸めて、最も近い整数（量子化されたＤＣＴ係数）にすることによって量子化される。量子化されたＤＣＴ係数を再生（逆量子化）するには、デコーダは今度はこの量子化値を掛ける必要がある。正確さが、ある程度は量子化の際に失われるので、再生されたＤＣＴ係数は量子化前の値の近似値となる。
【０００８】
量子化の前に、ＤＣＴ係数は、以下の図１に示される周知のジグザグ走査シーケンスを用いて一次元ベクトルの形に並べられる。最も低い周波数成分は、ゼロとラベル付けされた係数で表され、ＤＣ（直流）成分である。残りの係数はＡＣ（交流）係数である。そして、それら残りの係数は、水平方向と垂直方向に左から右へ、上から下へと、それぞれ順番に配列され、後の方ほど高い周波数に対応する。ＤＣ係数は、一次元ＤＰＣＭ（差分パルス符号変調、Ｄｉｆｆｅｒｅｎｔｉａｌ  Ｐｕｌｓｅ  Ｃｏｄｅ  Ｍｏｄｕｌａｔｉｏｎ）技法を用いて符号化される。これは、現在のＤＣ係数を、その直前のブロックのＤＣ係数からの差に変換し、次いでエントロピー符号化を行うものである。ジグザグ走査のＡＣ係数は、各々がゼロでない係数で終わるゼロ係数のラン（ｒｕｎ）に分割される。次に、ハフマン符号が、ゼロ係数のランレングス（ｒｕｎ  ｌｅｎｇｔｈ）とその次のゼロでないＡＣ係数の大きさとの各々可能な組み合わせに割り当てられる。
【０００９】
【表１】
0004303818.tif 000002
画像の画像プレーンを圧縮するために、ＪＰＥＧのプロトコルを用いると、エンコーダは、８×８量子化テーブル（Ｑテーブル）をデコーダに送られるデータに埋め込むことが可能となる。このＱテーブルは、ＤＣＴ係数各個を量子化するための異なる値を含むことができるが、これらの値は、人間の視覚システムに基づく原理を用いて、再生画像に生じる知覚上の歪みを最小限に抑えるように選択されている。ＪＰＥＧシーケンシャルモードにおいて能力の最も低いレベルは、「ベースラインシステム」である。このシステムでは、ハードウェアの実装が最も単純にできることを目的としたものなので、各画像プレーンに対し、テーブルを１個だけ（ただし、画像プレーンが全部で何枚あろうとも最大で４個）データに埋め込み、デコーダへ伝送することができる。
【００１０】
典型的なＪＰＥＧベースラインシーケンシャル技術では、図１〜３に示されるように、ソース画像の８×８画素ブロックの画素値（ｐ00，ｐ01，．．．．．，ｐxy，．．．．．．，ｐ77）１０２を離散コサイン変換（ＤＣＴ）１０４Ｆにかける。得られたＤＣＴ係数は、上の表１に示されるようなＤＣＴ係数マトリックス（Ｓ00，Ｓ01，．．．．．，Ｓxy，．．．．．．，Ｓ77）１０4の形に並べられる。量子化処理１０８Ｆが、Ｑテーブル（Ｑ00，Ｑ01，．．．．．，Ｑxy，．．．．．．，Ｑ77）１０６を用いてＤＣＴ係数１０４に対して行われる。ここでは、各Ｓxyを対応するＱxyで割り、商の小数点以下を四捨五入して最も近い整数とすることによって量子化されたＤＣＴ係数（Ｓｑ00，Ｓｑ01，．．．．．，Ｓｑxy，．．．．．．，Ｓｑ77）１０８が得られる。量子化されたＤＣＴ係数１０８は、次いでハフマン符号テーブル１１２を用いてエントロピーエンコーダ１１０によって符号化され、得られた符号化（圧縮）されたデータ１１４は、伝送されたり、必要な時が来るまで記憶されたりする。必要な時には、符号化データは、復号され、逆量子化され、逆ＤＣＴにかけられ、ソース画像の８×８画素ブロック１０２（すなわちその近似）が再生される。
【００１１】
ＪＰＥＧ準拠の圧縮を行うステップは、図３に総括される。ステップＳ３０２で画像が走査され、画素群が８×８画素ブロックに纏められる。ステップＳ３０４で、離散コサイン変換（ＤＣＴ）がブロックに行われる。ステップＳ３０６でＤＣＴ係数が量子化され、ステップＳ３０８で画素ブロックの符号化が行われる。このプロセスを画像の全てのブロックに対して繰り返して行い、最終的に画像全体に対してＪＰＥＧ符号化が行われる。
【００１２】
ＪＰＥＧが最初に採用されたのは、ある画素から次の画素への変化がスムースな画素が多く含まれている写真を符号化するためであった。しかし、これは他の画像タイプ、例えば、画素と画素との間の変化が鋭いという特徴があるテキストにも使用することができる。より粗い量子化（すなわち、より大きい量子化値を用いる）を用いて、スムースな画素変化に特徴がある画像を圧縮し、なおかつ知覚される画像の品質を不当に劣化させないように改良を行うことができるが、その一方でテキストには精細な量子化が必要となる。従って、画像品質と圧縮との間の許容可能なバランスをとる最適な量子化Ｑテーブルとは、画像のタイプが異なれば異なるものである。
【００１３】
最適なＱテーブルは、画像タイプが変われば変わる。極めて鋭い画素値の変化を有する画像（例えば、テキスト画像）は、正確さの劣化に対する知覚上の許容度が極めて低い。例えば、ピクトリアル画像タイプに最適な粗い量子化Ｑテーブルを用いると、圧縮データを復号した時、画像には人間の目に知覚できるアーティファクトが含まれ易い。一方では、スムースに画素値が遷移する部分を有する他の画像タイプ、つまり極めて詳細な画像（ディテール画像。例えば、草原の写真）は、より大きな圧縮を行っても（これに対応して正確さは、より損なわれるが）、人間の目に知覚できるアーティファクトが現れない。
【００１４】
【発明が解決しようとする課題】
最適なＱテーブルは画像のタイプが異なれば（テキスト、ハーフトーン、ピクトリアル（写真等の連続階調あるいはそれに近い画像）、その他）異なるので、圧縮される画像のタイプに依存して異なるＱテーブルを選んでデコーダへ送ることができる。もっとも、多くのアプリケーション（例えば、コピー機やプリンタ）では、このオプションは、実装にかかるコストが加わるので望ましくはない。従って、例えば、大抵のコピー機では、コピーされる文書の画像タイプが何であっても、テキストに最適なＱテーブルを常に用い、出力されるコピーに人間の目で認識できるアーティファクトが生じるのを最小限に抑えている。しかし、コピー機に「画像タイプ」を選択する機能を付与し、コピーする画像のタイプをユーザ側でマニュアルで選択することができるようにすることも可能である。勿論、これとて、文書の実際の画像タイプを判別するのに、ユーザが常に正しいと仮定している。別の方法として、コピーされる文書各々の画像タイプを自動的に決定し、最適なＱテーブルを選択する手段を、コピー機や他の画像圧縮器に備えさせることも可能である。
【００１５】
しかし、文書が複数の異なる画像タイプから構成されている時は、そのような方式を実現するのは複雑である。典型的な文書は、テキスト（すなわち、鋭いエッジがある）領域とピクトリアル領域とを組み合わせたものを同じページに含むものである。例えば、文書に写真があって、その下に説明用のテキストの部分が含まれていることがある。文書が複数の画像タイプで構成され、しかも１個のＱテーブルをこれら全ての画像タイプ用に選択しなければならない場合は、テキストに最適なＱテーブルを選ぶべきであって、そうすれば画像全体に対して高認知品質が得られる。
【００１６】
従って、画像タイプが決められたブロックに対しては、その画像タイプに最適なＱテーブルを用いてＤＣＴ係数を量子化できるようにするのが有利であろう。これを行う一つの方法としては、その画像タイプに応じた異なるＱテーブルを用いて各ブロックを量子化し、そのテーブルをデコーダに渡すことであろう。そうすれば、各ブロックを最小の認知誤差で再生できる。また、このようなシステムは、各ブロックに用いられた量子化テーブルについてエンコーダから情報を受け取ることができる非標準型のデコーダを必要とする。しかし残念ながら、現在のＪＰＥＧ準拠のデコーダではこれができない。なぜなら、上記で説明された通り、ベースラインＪＰＥＧプロトコルでは、画像プレーン当たりＱテーブル１枚（画像当たりでは最大４枚まで）をデコーダに渡すことが可能にすぎないからである。従って、画像タイプが混在している文書に現行のシーケンシャルＪＰＥＧアルゴリズムを用いたのでは、圧縮画像のサイズと圧縮画像から再生することができる画像の品質とのバランスは良いものにならない。
【００１７】
適応量子化は、上手く実装されれば、所与の速度で得られる画像品質を顕著に改良することが可能である。適応量子化を用いる場合は、ある値をデコーダに渡すと、デコーダの方では、その値により、復号されたデータの逆量子化のために使用しているＱテーブルを修正する。最近、ＪＰＥＧ委員会は勧告Ｔ．８４を承認した。この勧告では、ある一つのスケーリングファクター（ｓｃａｌｉｎｇ  ｆａｃｔｏｒ）をデコーダに渡すことが可能となり、デコーダは、これを用いてＱテーブルの値を全て線形的にスケーリングする。業界では、この方法を実装する努力はそれほどはらってこなかったが、それは、１つのスケーリングファクターを用いて不当に画質を劣化させずに圧縮しようとしても、圧縮に関してそれほどの改善が達成できるものではないと理解していたからである。これは、線形的なスケーリングは高い周波数と低い周波数の双方の係数に等しい影響を与えるからである。しかし、知覚される画質は、高い周波数の係数についての変化の方が低い周波数の係数に対する変化よりも影響が少ないので、圧縮に関して顕著な改良を、知覚される画質を不当に劣化させずに行うには、低い周波数の係数に対する量子化ファクターよりも、高い周波数係数に対する量子化ファクターを大きくすることによってのみ達成できる。
【００１８】
【課題を解決するための手段】
本発明を用いると、エンコーダは、画像タイプに最適化された量子化テーブルを必要な数だけ実質的に用い、画像内の異なる画素ブロックの異なる画像タイプに基づく画像を符号化することが可能となる。この場合、適切な量子化テーブルの選択は、ＤＣＴ係数の解析、若しくは画素ブロック自体の空間領域での画素値変化の解析によって定まる。しかし、デコーダへ送られるテーブルの数は、ＪＰＥＧ「ベースライン」モデルに準拠しているので、標準ＪＰＥＧデコーダを画像再生に用いることができる。
【００１９】
本発明のより詳細な態様の一つでは、最初に、画素値の８×８ブロックが解析され、各ブロックが予め定義された異なる複数の画像タイプのうちのあるタイプであるか、あるいは別のタイプであるか、分類が行われる。この解析の際、そのような各ブロックの空間領域での生データ、または各ブロックの画素値の離散コサイン変換（ＤＣＴ）表現のいずれかが用いられる。次に、これら画像タイプが決定された各画素ブロックに対するＤＣＴ値が、非線形に閾値処理されたり、あるいは画素ブロック各個が示す画像タイプについて最適化された１セットのファクターで修正されたりして、１セットの修正されたＤＣＴ値が得られる。次に、この修正されたＤＣＴ値セットが、テキストタイプ画像について最適化されている量子化テーブルに従って量子化される。次に、このテーブルが、量子化されたＤＣＴ値と一緒に、標準ＪＰＥＧシーケンスモードデータシンタックスに準拠してデコーダへ送られる。このプロセスは、テキストタイプ画像ブロックを処理する際には、ＤＣＴ値の量子化前の閾値処理／修正処理をバイパスすることによって更に強化することができる。
【００２０】
テキストに最適化された量子化テーブルは、「精細」量子化テーブルと称されるテーブルの例である。しかし、より一般的には、精細量子化テーブルとは、比較的小さい量子化ファクターでできたテーブルを称する。
【００２１】
本発明は、画像を表すデータを符号化して、デコーダが画像を再生できる出力データを作成する方法であって、前記画像の少なくとも１つのプレーンの画像信号データであって、各々が複数の画素行及び画素列についてのデータを有する第一画素ブロックと第二画素ブロックとを含む画像信号データを入力するステップと、第一画素ブロックに変換を行って第一係数を求めるステップと、第一画素ブロックの解析に基づいて第一画像タイプを求めるステップと、前記第一画像タイプの画像を表す係数を量子化するのに最適化された第一修正テーブルを求めるステップと、前記第一画像タイプとは異なる基本画像タイプに変換を行うことによって得られる基本画像係数を量子化するのに最適化された精細量子化テーブルであって、前記第一修正テーブルとは異なる精細量子化テーブルを求めるステップと、前記第一修正テーブルと前記精細量子化テーブルとの双方に基づいて前記第一係数を修正することによって第一修正係数を求めるステップと、前記デコーダが前記画像を再生できる出力データであって、前記第一修正係数と前記精細量子化テーブルに関する情報とを示すデータを含むが、前記第一修正テーブルの情報は含まない出力データを生成するステップとを含むことを特徴とする。
【００２２】
また、本発明の好適な態様は、前記第一修正係数を得るステップが、前記第一修正テーブルに基づいて第一係数を閾値処理して、第一閾値処理係数を得るステップと、前記精細量子化テーブルに基づいて前記第一閾値処理係数を量子化するステップと、を含むことを特徴とする。
【００２３】
また、本発明の好適な態様は、前記第二画素ブロックに変換を行って、第一係数とは異なる第二係数を求めるステップと、前記第二画素ブロックの解析に基づいて第一画像タイプ及び基本画像タイプのいずれとも異なる第二画像タイプを求めるステップと、前記第二画像タイプの画像を表す係数を量子化するのに最適化された第二修正テーブルであって、前記第一修正テーブル及び前記精細量子化テーブルのいずれとも異なる第二修正テーブルを求めるステップと、前記第二修正テーブルと前記精細量子化テーブルとの双方に基づいて前記第二係数を修正することによって第二修正係数を得るステップと、  を更に含み、前記出力データが、前記第二修正係数を示すデータを更に含むが、前記第二修正テーブルについて記載する情報は含まないことを特徴とする。
【００２４】
また、本発明の好適な態様は、前記第一画素ブロックの解析に基づいて第一画像タイプを求めるステップが、複数の画素行及び画素列についてのデータに対する空間領域解析によってそれら画素行及び画素列とについてのテクスチャ値を得るステップと、ヒストグラム値を計算することにより、それら画素行及び画素列について得られた前記テクスチャ値の数値的な分布を求めるステップと、前記テクスチャ値の分布に基づいて第一画像タイプを決定するステップと、を含むことを特徴とする。
【００２５】
また、本発明に係る画像符号化装置は、画像の１プレーンのブロック状領域を示すデータを受け取り、これらデータに変換を行うことにより、前記領域を表すデータに対応する変換係数を得る変換モジュールと、（１）前記変換モジュールによって得られた変換係数及び（２）前記領域を表すデータの空間領域解析のいずれか一方に基づいて、前記ブロック状領域を第一画像タイプであると特徴付けるセグメント化器と、変換モジュールから変換係数を受け取り、（１）第一画像タイプを量子化するのに最適化された第一量子化テーブル及び（２）第一画像タイプとは異なる基本画像タイプを量子化するのに最適化された精細量子化テーブルの両方に基づいて前記変換係数を修正することによって修正係数を得る修正量子化器と、量子化された係数を、前記精細量子化テーブルを表すが前記第一量子化テーブルは表さない情報と共に出力する出力モジュールとを備える。
【００２６】
【発明の実施の形態】
以下に記載されるこの装置と方法は、処理コストと画像品質とが共に重要なリアルタイムデジタル文書システムに使用するのに好適であり、ベースラインシーケンシャルＤＣＴ符号化用の標準ＪＰＥＧ圧縮データシンタックス内でセグメント化と適応量子化を行う手順を提供する。本発明を用いて作成された圧縮データを復号するには、標準シーケンシャルＪＰＥＧデコーダを用いることができるので、適応量子化を復号処理に埋め込む必要はない。
【００２７】
以下に開示の本発明の態様は、画像を標準フォーマットにコンパクトに符号化し、オリジナルの画像のビジュアル品質を実質的に維持する低コストのシステムを提供するものであって、記憶または伝送用のどんなデジタル画像化システムにも適用できる。本発明は、画像処理装置、例えば、デジタルコピー機、マルチファンクション機（いわゆる複合機）、カラーファックス、インターネットファクス、文書記憶装置、スキャン装置などの記憶コストを低減し、伝送時間を短縮することができる。
【００２８】
上記の目的を達成するために、画素ブロックのテクスチャすなわち「煩雑さ（ｂｕｓｙｎｅｓｓ）」に基づいて、画像を複数の異なる画像タイプのブロックへとセグメント化する方法が本明細書に開示される。ＤＣＴ係数から生成される特徴に基づいて異なる画像タイプのブロックへと画像をセグメント化する方法も開示される。また、これらのセグメント化方法は、各画像タイプに対して、異なった、より適切な描画方法を用いることによって、プリンタ、コピー機などの再生画像品質を改良するのにも用いることができる。以下に記載のように、いずれのセグメント化方法も、具体的なアプリケーションの要求に応じ、ＪＰＥＧベースラインシーケンシャルデコーダに合わせたＤＣＴ係数適応量子化処理のために用いることも考えられる。
【００２９】
図４と図５は、本発明のセグメント化および適応量子化技術を用いるＪＰＥＧベースラインシーケンスモード準拠の圧縮スキームを示す。このセグメント化および量子化修正機能は、標準ＪＰＥＧエンコーダと一緒に用いることにより、強力な圧縮装置となり、テキストとピクトリアル（写真等の連続階調画像、又はそれに近い画像）との混合画像を含む文書を、以下に記載のように、高品質、高圧縮率のＪＰＥＧストリームまたはファイルに圧縮することができる。以下の説明は、画像の一つのプレーンだけに焦点を当てて簡略化したものであり、レイヤが複数ある画像の場合、その各レイヤのプレーンには実質的に同じ説明が当てはまることは、以下の説明からも理解されよう。
【００３０】
図４と図５を参照すると、本発明のＪＰＥＧ圧縮では、画素ブロック１０２に従来のＤＣＴ処理１０４Ｆを行い、ＤＣＴ係数（Ｓ00，Ｓ01，．．．．．，Ｓxy，．．．．．．，Ｓ77）１０4を得る。次に、以下に記載のように、画素ブロック１０２に適用した空間領域セグメント化技術またはＤＣＴ係数１０４に適用した周波数領域セグメント化技術のいずれかを用いて、セグメント化４０６Ｆを行う。次に、ＤＣＴ係数１０４には、修正量子化４０８Ｆが行われる。修正量子化４０８Ｆは、本態様では、セグメント化手順４０６Ｆの結果に従って選択または修正された画像タイプ依存量子化修正テーブル（Ｑ*テーブル）に基づいてＤＣＴ係数１０４の閾値処理４０７Ｆを行うことと、ＪＰＥＧデコーダへ送られる１つの量子化テーブル（Ｑテーブル）４０６（以下に記載の態様ではテキスト用に最適化されたＱテーブル（テキスト最適化Ｑテーブルと呼ぶ））を用いて、閾値処理されたＤＣＴ係数（Ｓ*00，Ｓ*01，．．．．．，Ｓ*xy，．．．．．．，Ｓ*77）５０７を量子化１０８Ｆすることから構成される。次いで、修正された量子化ＤＣＴ係数（Ｓｑ*00，Ｓｑ*01，．．．．．，Ｓｑ*xy，．．．．．．，Ｓｑ*77）５０８は、従来のやり方でハフマン符号テーブル１１２を用いてエントロピーエンコーダ１１０によって符号化される。その結果得られた符号化圧縮データ１１４は、伝送されたり、あるいは必要な時が来るまで記憶されたりする。
【００３１】
セグメント化は、周波数領域または空間領域のいずれでも行われる。セグメント機能４０６Ｆは、各８×８画素のブロックを画像タイプのカテゴリ、例えば、「ラインアート（線図：ｌｉｎｅａｒｔ）」（例えば、テキスト）または「ディテール（ｄｅｔａｉｌｅｄ）」（例えば、ハーフトーン）など、に分類する。空間領域のセグメント化は、ＤＣＴ係数から得られる特徴に基づいた周波数領域のセグメント化よりも正確ではあるが、計算が多い。以下では、空間領域のセグメント化を最初に説明し、周波数領域でのセグメント化はその後で説明する。画像をセグメント化する以下の方法（ルール）は、本発明の特定の態様に関するものである。これに関する他の変形も容易に考えることができ、これも本発明の範囲に含まれる。
【００３２】
画像タイプ別に画像の画素ブロックをセグメント化することは、各画像の画素ブロックをテクスチャ（空間領域における画素値の変化）で分類することによって行われる。この方法は、８×８画素の各ブロックの「煩雑さ」を識別するものであり。大変広い範囲の画像のクラスについて信頼性があり、しかも本方法の大部分はハードウエアに実装して低コストのリアルタイムセグメント化が実現できるほど単純である。
【００３３】
セグメント化器の仕事は、画素ブロックを画像タイプで分類することである。タグは、画像タイプを識別すなわち記述するためのものである。タグは、例えば、ブロックを名前、例えば「ラインアート」や「ディテール」などで、分類すなわち記述するラベルである。また、タグは、ブロックの煩雑さを記述する値または特徴セットでもよい。後者の方が前者より正確である。なぜなら、ブロックには、複数の画像タイプの部分が含まれ得るからである。タグ値が先験的（ア・プリオリ）に知られている画像セットを用いることによって、タグを計算するためのルールセットを作り出すことができる。ＪＰＥＧと互換性を持たせるために、そして計算と記憶とのコストを低減するために、入力画像の８×８画素のブロック全部に対して特徴を計算する。
【００３４】
テクスチャは、画像の基本的な性質であり、領域同士を区別するのに重要である。直感的に言えば、テクスチャとは、単に小さなスケールの柄であり、画像に対し、いくぶん「煩雑な」感じを与える模様である。フラット（ｆｌａｔ：平坦）領域は、実質的に特徴が無く、テクスチャ値が最も小さい。コントーン（ｃｏｎｔｏｎｅ：連続階調）領域は、ある画素から隣の画素までに値にスムースな変化がある領域であり、より高いテクスチャ値を有する。鋭い値の変化が繰り返すラインアート領域（例えば、テキスト）が、この次に来る。最後に、ディテール領域は、最高のテクスチャ値を有する。なぜなら、ハーフトーンすなわち誤差拡散ドット（すなわち例えば、草原の写真の一部）が存在するからである。領域群をテクスチャで区別する多様なアルゴリズムを本発明で用いることができる。以下に記載の方法では、隣接する画素同士の間での、閾値処理された二階差分を用いてテクスチャを決定する。
【００３５】
行テクスチャおよび列テクスチャは、図６に示されるように、それぞれ水平方向および垂直方向に沿って定義された一次元テクスチャである。空間セグメント化法の態様の一つでは、画像のｕ行ｖ列にある８×８画素のブロックに関するテクスチャヒストグラム（Ｈｉｓｔuv）が、行または列の煩雑さの指標を与える一次元の行テクスチャ関数と列テクスチャ関数（前者をＲＴ、後者をＣＴと称する）から得られる。次に、このヒストグラムを画像タイプタグ（Ｔuv）に対応づける。Ｔuvは、区間［０  １］の間のファジー数であり、ブロックの煩雑さの程度を示す画像タイプ識別情報である。次に、新しいＱ*テーブルをＴuvに基づいて作成すなわち選択する。ブロックの煩雑さＴuvは、Ｈｉｓｔuvのある関数として発生することができるが、テクスチャヒストグラム自体をＱ*テーブルを作成・選択するのに用いることもできる。
【００３６】
本明細書で議論される態様では、８画素の行または列に対するテクスチャヒストグラムに入る数は、０と１２の間の範囲である。実際上はテクスチャヒストグラムに入る数は、普通、偶数の整数であるから、ＲＴとＣＴ値を各々２で割り、小数点以下を切り捨てる。だから、この場合テクスチャヒストグラムに入る数は０と６の間の範囲である。こうすると、必要なレジスタの数が殆ど半分になる。図１４は、こうして得られた７値のテクスチャヒストグラム（Ｈｉｓｔuv）を、異なる複数の画像タイプを代表する８×８画素ブロックについて示したものである。
【００３７】
別の方法としては、ブロックの煩雑さＴuvは、画素ブロックの行テクスチャＲＴと列テクスチャＣＴの個々の関数として、例えば、これらを全部まとめて平均することなどにより、発生することができる。ヒストグラム法を使う態様を一つと、非ヒストグラム法を使う態様を一つとを以下に記載する。もっとも、以下に記載のアルゴリズムを変形した多くの異なる態様も実現することができる。
【００３８】
以下に記載の本発明の態様を参照するが、行テクスチャ関数と列テクスチャ関数は次のように定義される。ブロック中の１×Ｎ画素の行ｉの各々に対して、順に並んだ画素値ｐ（ｉ，０），ｐ（ｉ，１），．．．，ｐ（ｉ，ｊ），．．．、ｐ（ｉ，Ｎ−１）同士の差ｄr（ｉ，０），ｄr（ｉ，１），．．．，ｄr（ｉ，ｊ），．．．、ｄr（ｉ，Ｎ−２）がまず計算される。ここでｄr（ｉ，ｊ）は「ｐ（ｉ，ｊ＋１）−ｐ（ｉ，ｊ）」と定義される。各ｄr（ｉ，ｊ）は、図７に示されるように量子化され、これによりテクスチャ計算に対するバックグラウンドノイズの影響を低下させる。この量子化処理の出力であるｑr（ｉ，ｊ）は、−１、０、＋１のいずれかである。ｑr（ｉ，ｊ）は、ｄr（ｉ，ｊ）の値が−ｅ未満の時は−１、−ｅとｅとの間の時は０、＋ｅを超えるときは＋１である。パラメータｅは、テクスチャの計算において無視すべき画素間ノイズの尺度である。このようなバックグラウンドページノイズを無視しないと、画像全体が高テクスチャを有することになり、異なる領域同士を区別するテクスチャ関数の能力が著しく損なわれる。
【００３９】
行テクスチャ（ＲＴ）計算の最後のステップは、隣り合う値ｑr（ｉ，ｊ）同士の差の絶対値の総和を計算することである。すなわち、
【数１】
ＲＴ＝Σ｜ｑr（ｉ，ｊ＋１）−ｑr（ｉ，ｊ）｜
行テクスチャ値ＲＴが、画素ブロックの各行ｉについて計算され、同様に、列テクスチャ値ＣＴも画素ブロックの各列ｊについて計算される。ここで、
【数２】
ｄc（ｉ，ｊ）＝ｐ（ｉ＋１，ｊ）−ｐ（ｉ，ｊ）
ｄc（ｉ，ｊ）→ｑc（ｉ，ｊ）（量子化）
ＣＴ＝Σ｜ｑc（ｉ，ｊ＋１）−ｑc（ｉ，ｊ）｜
である。
【００４０】
このヒストグラム法に替わる方法として、全部で１６個のＲＴとＣＴテクスチャ値をブロックに対して平均し、この結果を（０から１までの値に）規格化することによって、画像のｕ行ｖ列における画素ブロックに対して一つのテクスチャ値Ｔuvを計算することができる。Ｔuvを決める二つの方法は、図８〜１１を参照して説明される。もっとも、本発明ではいずれの方法でも行うことができることを理解されたい。
【００４１】
さて、テクスチャ決定を図８を参照して説明する。ステップＳ８０２では、テクスチャ決定のためのヒストグラム法が用いられている場合、ブロックのヒストグラム配列Ｈ[]の７個の値が０に初期化される。ヒストグラム法が用いられていない場合は、全テクスチャ値のレジスタＴが０に初期化される。
【００４２】
ステップＳ８０４で、行インデックスｉが０に初期化される。ステップＳ８０６で、画素ブロックの行ｉに対する行テクスチャＲＴが、図９を参照して後に説明されるように計算される。ステップＳ８０８で、ヒストグラム法が用いられている場合Ｈ[ｔ]が増分される。ここで、ｔは行ｉの行テクスチャＲＴに対応する。この態様では、ヒストグラムＨ[]は、配列に７個の値が入り、最大行テクスチャＲＴが１２だから、行テクスチャＲＴを２で割って、答えの小数点以下を切り捨てて、すなわち、ｔ＝Int（ＲＴ／２）として、Ｈ[ｔ]を算出する。ヒストグラム法が用いられていない場合、ステップＳ８０８でブロックのテクスチャレジスタＴが、画素ブロック行ｉの行テクスチャＲＴだけ増加される。
【００４３】
ステップＳ８１０で、ｉがＮ−１未満である場合は、ｉがステップＳ８１２で増分され、プロセスはステップＳ８０６へ戻り、次の行ｉに対する行テクスチャＲＴを計算する。ステップＳ８１０でｉがＮ−１未満でない場合、これは、画素ブロック中の行全ての行テクスチャＲＴが計算されてしまい、その結果がヒストグラム配列又はブロックのテクスチャレジスタＴに反映されていることを意味する。この場合、プロセスはステップＳ８１４へ進み、列インデックスｊがゼロに初期化され、該画素ブロックに対する列テクスチャ値ＣＴの計算が開始される。次に、プロセスはステップＳ８１６へ進む。
【００４４】
ステップＳ８１６で、画素ブロックの列ｊに対する列テクスチャＣＴが、図１０を参照して後に説明されるように計算される。ステップＳ８１８でヒストグラム法が用いられている場合、Ｈ[ｔ]が増分される。ここでｔ＝Int（ＣＴ／２）である。ヒストグラム法が用いられていない場合、ステップＳ８１８でブロックのテクスチャレジスタＴが、画素ブロック列ｊの列テクスチャＣＴだけ増加される。
【００４５】
ステップＳ８２０で、ｊがＮ−１未満である場合は、ｊがステップＳ８２２で増分され、プロセスはステップＳ８１６へ戻り、次の列ｊに対する列テクスチャＲＴを計算する。ステップＳ８２０でｊがＮ−１未満でない場合は、全ての行テクスチャＲＴと列テクスチャＣＴとが計算され終わり、その結果がヒストグラム配列Ｈｉｓｔuv又はブロックテクスチャレジスタＴに総和されたことになるので、プロセスはステップＳ８２４へ進む。
【００４６】
ステップＳ８２４で、画像のｕ行ｖ列にある画素ブロックの「煩雑さ」タグＴuvが選択すなわち計算される。ヒストグラム法が用いられている場合、Ｔuvは、例えば、図１１を参照して後に説明されるように、全ブロックヒストグラムの関数として定義される。ヒストグラム法が用いられていない場合、煩雑さＴuvは、Ｔを１９２（ＲＴ及びＣＴの最大値（１２）と画素ブロック中の列と行の数の和（１６）との積）で割ることにより、０から１までの値に規格化される。
【００４７】
さて、本発明の態様の一つに従って、行に沿ってテクスチャを計算する方法を図９を参照して説明する。ステップＳ８３２で、行テクスチャ値ＲＴと列インデックスｊがゼロに初期化される（行インデックスｉは図８に示される呼出元ルーチンで設定されている）。ステップＳ８３４で、画素ブロック行ｉ中の隣接する画素値（列ｊ＋１とｊ）の間の画素値の差分ｄが計算される。
【００４８】
次に、画素値の差分ｄが次のように量子化される。ステップＳ８３６で、ｄがｅより大きい場合は、次にステップＳ８３８で、量子化された画素値差分ｑ（ｊ）が＋１に等しいと設定され、プロセスはステップＳ８４６へ進む。ｄがｅ以下の場合はプロセスはステップＳ８４０に続く。ステップＳ８４０で、画素値差分ｄ（ｊ）が−ｅより小さい場合は、次にステップＳ８４２で、量子化された画素値差分ｑ（ｊ）が−１に等しいと設定され、プロセスはステップＳ８４６へ進む。ステップＳ８４０で、画素値差分ｄ（ｊ）が−ｅより小さくない場合は、次にステップＳ８４４で量子化画素値差ｑ（ｊ）は０に等しいと設定される。量子化画素値差ｑ（ｊ）がステップＳ８３８、Ｓ８４２、またはＳ８４４で設定されてしまうと、プロセスはステップＳ８４６に移行する。
【００４９】
ステップＳ８４６でｊ＝０の場合、プロセスはステップＳ８５０へ進む。そうでない場合は、ステップＳ８４８で、行テクスチャ値ＲＴは、現在の量子化画素値差分ｑ（ｊ）とその前の量子化画素値差分ｑ（ｊ−１）との差の絶対値だけ増加される。次にプロセスはステップＳ８５０に続く。
【００５０】
ステップＳ８５０でｊがＮ−２を超えていない場合はｊはステップＳ８５２で一つ増分され、プロセスはステップＳ８３４へ戻り、ここで量子化画素値差分ｑ（ｊ）が行の次の画素に対して計算される。このプロセスは、ｊがステップＳ８５０でＮ−２以上となるまで、画素ブロックのその行全部について続く。これで、その行についての全テクスチャ値ＲＴが計算されたことになる。
【００５１】
列に沿ったテクスチャであるＣＴも、同じやり方で計算される。図１０を参照して、ステップＳ８６２で、列テクスチャ値ＣＴと行インデックスｉがゼロに初期化される（列インデックスｊは図８に示される呼出元ルーチンで設定されている）。ステップＳ８６４で画素ブロック列ｊ中の隣接する画素値（行ｉ＋１とｉ）の間の画素値の差分ｄが計算される。
【００５２】
次に画素値差分ｄが次のように量子化される。ステップＳ８６６で、ｄがｅより大きい場合、次にステップＳ８６８で、量子化された画素値差分ｑ（ｉ）が＋１に等しいと設定され、プロセスはステップＳ８７６へ進む。そうでない場合、プロセスはステップＳ８７０に続く。ステップＳ８７０で、画素値差分ｄ（ｉ）が−ｅより小さい場合は、次にステップＳ８７２で、量子化画素値差分ｑ（ｉ）が−１に等しいと設定され、プロセスはステップＳ８７６へ進む。ステップＳ８７０で、画素値差分ｄ（ｉ）が−ｅより小さくない場合は、次にステップＳ８７４で、量子化画素値差分ｑ（ｉ）は０に等しいと設定される。量子化された画素値差ｑ（ｉ）がステップＳ８６８、Ｓ８７２、またはＳ８７４で設定されてしまうと、プロセスはステップＳ８７６に移行する。
【００５３】
ステップＳ８７６でｉ＝０の場合、プロセスはステップＳ８８０へ進む。そうでない場合、ステップＳ８７８で、列テクスチャ値ＣＴは、現在の量子化画素値差分ｑ（ｉ）とその前の量子化画素値差分ｑ（ｉ−１）との差の絶対値だけ増加される。次にプロセスはステップＳ８８０に続く。
【００５４】
ステップＳ８８０でｉがＮ−２を超えていない場合はｉはステップＳ８８２で一つ増分され、プロセスはステップＳ８６４へ戻り、ここで量子化画素値差分ｑ（ｉ）が列の次の画素に対して計算される。このプロセスは、ｉがステップＳ８８０でＮ−２以上となるまで、画素ブロックの列全部について続く。これで、全テクスチャ値ＣＴがその列について計算されたことになる。
【００５５】
上に記載のＲＴとＣＴの関数は、それぞれ、行と列に沿った画素と画素との間の有意の変化を解析する。ある変化が有意であると認められるには、該変化が、ある閾値より大きく、かつ閾値処理された変化の直前の値とは異なる場合である。従って、一様な画素値、又は図１２に示されるように画素値が一定割合で増大または減少する行または列は、テクスチャ値ゼロとなる。対照的に、図１３に示されるように、交互にａ，ｂ，ａ，ｂ，ａ，ｂ，ａ，ｂと変化する画素値から構成される行または列は、｜ａ−ｂ｜＞ｅである限り、テクスチャ値最大となる。
【００５６】
上に定義したテクスチャ関数の性質の一つは、ｅの値に極めて鋭敏なことである。従って、ｅの設定値は、特定のスキャナで測定できるバックグラウンドのページノイズより僅かに大きい値とする必要がある。典型的なｅ値は、画素が取り得る値が０〜２５５とした場合、６〜１０の範囲である。
【００５７】
さて、ブロックに対するテクスチャヒストグラムＨｉｓｔuvに基づいて煩雑さＴuvを決定可能なアルゴリズムの一つを、図１１を参照して説明する。この実施例では、ステップＳ８９０においてヒストグラム配列の最初の三つの値（これらは可能な行テクスチャの中で最も低い値に対応する）の和が求められる。ステップＳ８９２で、和が８未満であると、ステップＳ８９３で、Ｔuvは、ブロックがディテール画像部分として分類すべきと示すように設定される。しかし、和が８以上であると、ステップＳ８９４で第二の和が計算され、今度はヒストグラム配列の最初の二つの値だけの和が求められ、プロセスはステップＳ８９６へ進む。この第二の和がステップＳ８９６で９より大きいと、ステップＳ８９７で、Ｔuvは、画像ブロックがラインアート部分として分類すべきと示すように設定される。この第二の和がステップＳ８９６で９以下であると、ステップＳ８９９で、Ｔuvは、画像ブロックがピクトリアルとして分類すべきと示すように設定される。
【００５８】
図１５は、本発明の空間領域セグメント化を用いて修正量子化を行う装置を示す。コンピュータ１１０６には、メモリ１１０８、離散コサイン変換モジュール（ＤＣＴＭ）１１１０、セグメント化器１１１２、１個以上の量子化テーブル１１１４、修正量子化器１１１６、ハフマン符号テーブル１１１８、エンコーダ１１２０、およびメモリ１１２２が備えられる。
【００５９】
スキャナ１１０４は、画像１１０２を走査し、これを８×８画素のブロックに分割する。デジタル化された走査データはコンピュータ１１０６のメモリ１１０８に伝送される。ＤＣＴＭ１１１０は該画素ブロックにＤＣＴ演算を行う。セグメント化器１１１２は、上に記載のように、空間領域セグメント化法を用い、メモリ１１０８に記憶された画素データに基づいて画素ブロックを分類する。
【００６０】
ブロックがセグメント化器１１１２によって画像タイプに分類された後に、修正量子化器１１１６が、画像タイプに基づいて選択または修正された量子化テーブル１１１４を用いて、ＤＣＴＭ１１１０からのＤＣＴ結果の閾値処理および／または量子化を行う。量子化が修正量子化器１１１６によって行われた後に、コンピュータ内蔵のエンコーダ１１２０が、ハフマン符号テーブル１１１８を用いて、画素ブロックデータを符号化し、結果を出力したり、メモリ１１２２に記憶したりする。
【００６１】
適応量子化に好ましいＱ*テーブルを選択するために画素ブロックを画像タイプで分類することは、画素ブロックのＤＣＴ係数の関数に基づく周波数領域セグメント化を用いても行うことができる。例えば、画素ブロックの分類は、低い周波数および高い周波数のＡＣ成分を示すＤＣＴ係数のそれぞれの大きさに基づいて行うことが可能である。本発明の態様においてこれを行う方法の一つを以下に記載する。
【００６２】
周波数領域セグメント化法を用いるこの態様では、第一に、閾値振幅ｋlowを超えるｎlow個の最も低域の周波数のＡＣ係数の数（Ｎlow）が決定され、それから閾値振幅ｋhighを超えるｎhigh個の最も高い周波数のＡＣ係数の数（Ｎhigh  ）が決定される。第二に、該ブロックが、Ｎlow（低い周波数ＡＣ成分で、有意に大きい成分の数）とＮhigh（高い周波数のＡＣ成分で、有意に大きい成分の数）との関数として分類される。ｎlow、ｎhigh、ｋlow、およびｋhighに対する適切な値を選択することによって、該ブロックを、幾つかの可能な画像タイプ領域、例えばラインアートまたはディテールなど、の一つとしてタグ付けすることができる。
【００６３】
［アルゴリズム１］
ステップ１．デコーダへ送るＱテーブルを定義し、
ステップ２．各８×８画素ブロックに対して修正量子化を行い、
ステップ２ａ．画素ブロックに対してＮlow（ｕ，ｖ）とＮhigh（ｕ，ｖ）の計算を行い、
ステップ２ｂ．Ｎlow（ｕ，ｖ）＞ｃlowかつＮhigh（ｕ，ｖ）＞ｃhighならば、Ｔuv＝ＴＡＧ1と設定し、そうでないならば、
ステップ２ｃ．Ｔuv＝ＴＡＧ2と設定し、
ステップ２ｄ．ＱテーブルとＴuvとの関数として８×８画素ブロックの修正量子化を行い、
ステップ２ｅ．画素ブロックのエントロピー符号化を行い、そして
ステップ３．画像中のブロック全部が処理されるまでステップ２を繰り返す。
【００６４】
上記のアルゴリズムは、画素ブロックを分類するのに用いることができる周波数領域セグメント化ルールの可能な一つを示す。この態様では、ラインアートタイプとディテールタイプとについてのみの、画像ブロックの分類が行われる。ＴＡＧ1とＴＡＧ2とは、０から１までのファジー数で、ブロックの煩雑さの程度を表す。ｕは該ブロックを含む画像の行のインデックスで、ｖは該ブロックを含む画像列のインデックスである。ｃlow、ｃhigh、ＴＡＧ1、ＴＡＧ2の値は、最良の結果を得るように経験的に選択することができる。以下の値は、このアルゴリズムを用いて成功した例に用いられたものである。ｋlow＝３１；ｋhigh＝３２；ｎlow＝３２；ｎhigh＝８；ｃlow＝５；ｃhigh＝２０；ＴＡＧ1＝ラインアート；ＴＡＧ2＝ディテール。
【００６５】
以下のアルゴリズムは、この方法の別の態様の一つを示すもので、各画素ブロックについて最大４個までの異なる画像タイプを識別する方法である。ｃlow1、ｃhigh1、ｃlow2、ｃhigh2、ＴＡＧ1、ＴＡＧ2、ＴＡＧ3、およびＴＡＧ4の値は、最良の結果を得るように経験的に選択することができる。
【００６６】
［アルゴリズム２］
ステップ１．デコーダへ送るＱテーブルを定義し、
ステップ２．各８×８画素ブロックに対して修正量子化を行い、
ステップ２ａ．画素ブロックに対してＮlow（ｕ，ｖ）とＮhigh（ｕ，ｖ）の計算を行い、
ステップ２ｂ．Ｎlow（ｕ，ｖ）＞ｃlow1かつＮhigh（ｕ，ｖ）＞ｃhigh1ならば、Ｔuv＝ＴＡＧ1と設定し、そうでない場合、
ステップ２ｃ．Ｎlow（ｕ，ｖ）＞ｃlow2かつＮhigh（ｕ，ｖ）＞ｃhigh2ならば、Ｔuv＝ＴＡＧ2と設定し、そうでない場合、
ステップ２ｄ．Ｎlow（ｕ，ｖ）＞ｃlow1かつＮhigh（ｕ，ｖ）＞ｃhigh2ならば、Ｔuv＝ＴＡＧ3と設定し、そうでないならば、
ステップ２ｅ．Ｔuv＝ＴＡＧ4と設定し、
ステップ２ｆ．ＱテーブルとＴuvとの関数として８×８画素ブロックの修正量子化を行い、
ステップ２ｇ．画素ブロックのエントロピー符号化を行い、そして
ステップ３．画像中のブロック全部が処理されるまでステップ２を繰り返す。
【００６７】
上記のアルゴリズムは、最大４個までだけの異なる画像タイプを認識するにすぎないが、他の態様では同様の方法を用いて、より細かく画像タイプを区別することができる。例えば、上記の二番目のアルゴリズムで、｛Ｎlow（ｕ，ｖ）＞ｃlow2かつＮhigh（ｕ，ｖ）＞ｃhigh1｝という場合に対しもう一つ別のタグ（ＴＡＧ）を定義することができる。他の態様では、別の値のｃlowとｃhighとを追加して定義することによって、更に別の画像タイプを識別することもできる。ｊ個の異なるｃlow値とｋ個の異なるｃhigh値とがあれば、このやり方で最大でｊ・ｋ＋１個の画像タイプの段階を識別できる。
【００６８】
この周波数領域セグメント化法を、上記のアルゴリズムを示している図１６と図１７とを参照して説明する。ステップＳ１２０２で、ＪＰＥＧデコーダへ伝送されるＱテーブルが定義される。ステップＳ１２０４で、「低い周波数」と考えられる最も低い周波数のＡＣ成分の数（ｎlow）が定義される。ステップＳ１２０６で、「高い周波数」と考えられる最も高いＡＣ成分の数（ｎhigh）が定義される。ステップＳ１２０８で、ＡＣ成分の低振幅の閾値（ｋlow）とＡＣ成分の高振幅の閾値（ｋhigh）とが定義される。ステップＳ１２０９で、低い周波数の閾値および高い周波数の閾値であるｃlow1、ｃhigh1、ｃlow2、ｃhigh2が定義される。
【００６９】
次に、プロセスは継続して、ブロック毎に画像タイプ（ＴＡＧ）が決定される。ステップＳ１２１０で，ｎlow個の最も低い周波数のＡＣ成分で、振幅がｋlowより大きいものの数（Ｎlow）が決定される。ステップＳ１２１２で，ｎhigh個の最も高い周波数のＡＣ成分で、振幅がｋhighより大きいものの数（Ｎhigh）が決定される。
【００７０】
ＮlowがステップＳ１２１４でｃlow1より大きい場合は、ＮhighがステップＳ１２１６でｃhigh1と比較される。ＮhighがステップＳ１２１６でｃhigh1より大きい場合は、ＴuvはステップＳ１２１８でＴＡＧ1と設定され、プロセスはステップ１２３２に続く。ＮlowがステップＳ１２１４でｃlow1より大きいと判ったが、ＮhighがステップＳ１２１６でｃhigh1より大きくないと判った場合は、ＮhighはステップＳ１２２０でｃhigh2と比較される。ＮhighがステップＳ１２２０でｃhigh2より大きいと判定された場合は、ＴuvはステップＳ１２２２でＴＡＧ3と設定され、プロセスはステップ１２３２に続く。
【００７１】
一方、ＮlowがステップＳ１２１４でｃlow1より大きくないと判った場合、あるいはステップＳ１２２０でｃhigh2より大きくないと判った場合は、プロセスはステップＳ１２２４へ続く。ＮlowがステップＳ１２２４でｃlow2より大きい場合はＮhighがステップＳ１２２６でｃhigh2と比較される。ＮhighがステップＳ１２２６でｃhigh2より大きいと判定された場合は、ＴuvはステップＳ１２２８でＴＡＧ2と等しいと設定される。一方、ＮlowがステップＳ１２２４でｃlow2より大きくないと判った場合、あるいはＮhighがステップＳ１２２６でｃhigh2より大きくないと判った場合は、ＴuvはステップＳ１２３０でＴＡＧ4と設定される。
【００７２】
Ｔuvに対する値がステップＳ１２１８、Ｓ１２２２、Ｓ１２２８、またはＳ１２３０で設定されてしまうと、プロセスはステップＳ１２３２に継続する。プロセスが、ステップＳ１２３２で画像の全てのブロックに対してまだ行われなかった場合は、プロセスはステップＳ１２１０へ戻り、ここで上記のセグメント化手順が繰り返され、画像の次のブロックに対して正しいＴuvを求める。プロセスが、ステップＳ１２３２で画像の全てのブロックに対して行われたと判定された場合は、プロセスは終了である。
【００７３】
図１８は、本発明の空間領域セグメント化を用いて修正量子化を行う装置を示す。コンピュータ１３０６には、メモリ１３０８、離散コサイン変換モジュール（ＤＣＴＭ）１３１０、セグメント化器１３１２、１以上の量子化テーブル１３１４、修正量子化器１３１６、ハフマン符号テーブル１３１８、エンコーダ１３２０、およびメモリ１３２２が備えられる。
【００７４】
スキャナ１３０４は、画像１３０２を走査し、これを８×８画素ブロックに分割する。デジタル化された走査データはコンピュータ１３０６のメモリ１３０８に伝送される。ＤＣＴＭ１３１０は該画素ブロックにＤＣＴを行う。セグメント化器１３１２は、上に記載のように、ＤＣＴＭ１３１０によって計算されたＤＣＴ係数に基づく周波数領域セグメント化を用いて、画素ブロックを分類する。
【００７５】
ブロックが画像タイプに分類された後では、修正量子化器１３１６が、上に記載のように、セグメント化器１３１２からの結果に基づいて選択または修正された量子化テーブル１３１４を用いて、ＤＣＴＭ１３１０から得られるＤＣＴ係数の閾値処理および／または量子化を行う。量子化が修正量子化器１３１６によって行われた後では、コンピュータ内蔵のエンコーダ１３２０が、ハフマン符号テーブル１３１８を用いて、画素ブロックデータを符号化し、結果を出力したり、メモリ１３２２に記憶したりする。
【００７６】
もう一度図４と図５を参照する。画素ブロックが画像タイプで分類された後では、そのブロックの画像タイプの分類に従って、そのブロックの量子化が最良になるように、修正量子化４０８Ｆが行われる。態様の一つでは、タグが、セグメント化関数４０６Ｆによって作成され、これによりＤＣＴ係数が量子化される。次いで、図５を参照すると、上記のように８×８画素ブロックに行われたＤＣＴ演算から得られるＤＣＴ係数が、Ｑ*テーブルを用いて閾値処理される。このＱ*テーブルは、画素ブロックに対して決定された画像タイプに依存して変わる。
【００７７】
適切な量子化修正テーブルは、Ｔuvに応じてルックアップテーブルから検索することができるし、あるいは量子化修正テーブルは、Ｔuvと、デコーダへ伝送されるＱテーブル４０６の係数との関数から作成することができる。例えば、Ｔuv＝０．９がディテール領域を示すとすれば、テキストについて最適化されたＱテーブル４０６の値を、上記関数によって非線形的に調整して、Ｑ*テーブル５０６の値を得るようにできる。このやり方で、セグメント化タグＴuvの関数として元のテーブルから新しいＱ*テーブルを作成することができる。
【００７８】
適切なＱ*テーブルを選択もしくは作成した後で、ＤＣＴ係数１０４をその修正量子化テーブルに基づいて閾値処理する。これは、ブロックの画像品質に寄与しない係数をゼロにしてしまう効果がある。強度の小さな係数は、粗い量子化が望ましい時にはゼロにされ、より精細な量子化Ｑテーブルだけがデコーダへ伝送される。Ｑ*テーブルは、セグメント化タグがラインアートタイプ（例えば、テキストタイプ）領域を示す場合には、元のＱテーブルと全く同一であることに留意されたい。
【００７９】
修正ＤＣＴ係数５０７を得た後では、これら係数を元のＱテーブル４０６によって量子化し、各Ｓ*xyを対応するＱxyで割り、その結果を最も近い整数に丸めることによって、量子化ＤＣＴ係数（Ｓｑ*00，Ｓｑ*01，．．．．．，Ｓｑ*xy，．．．．．．，Ｓｑ*77）５０８を得る。以下のアルゴリズムはこのプロセスを示す。
【００８０】
[アルゴリズム３]
Ｑ*xyを、ＱxyとＴuvとの関数として定義し（ここでＴuv＝セグメント化タグ）、
ＤＣＴ係数Ｓxyを、Ｓxy＜Ｑ*xyならばＳ*xy＝０、そうでなければＳ*xy＝Ｓxy、と閾値処理し、そして
Ｓ*xyを、Ｑテーブルを用いて量子化し、
Ｓｑ*xy＝Ｒｏｕｎｄ（Ｓ*xy／Ｑxy）とする（Ｒｏｕｎｄは丸め処理を表す）。
【００８１】
本発明の別の方法の態様では、Ｑ*テーブル５０６を閾値処理に用いるのではなく、デコーダに送られるＱテーブル４０６の代わりに、ＤＣＴ係数１０４の量子化にＱ*テーブル５０６を直接用いる。次に、得られた量子化係数Ｓｑ*xy各個に、Ｑ*テーブルの係数Ｑ*xyを対応するＱテーブルの係数Ｑxyで割って得られるスケーリングファクターを乗じる。以下のアルゴリズムは、この方法のプロセスを示す。
【００８２】
［アルゴリズム４］
Ｑ*xyを、Ｔuvとの関数として定義し（ここでＴuv＝セグメント化タグであり、Ｑ*xy  ≧Ｑxyとなるようにする）、そして
Ｓ*xyを、Ｑ*テーブルを用いて量子化し、Ｑテーブルに基づいてスケーリングし、
Ｓｑ*xy＝Ｒｏｕｎｄ｛Ｑ*xyＲｏｕｎｄ（Ｓxy／Ｑ*xy）／Ｑxy｝とする。
【００８３】
上記の量子化修正アルゴリズムの修正量子化処理を用いて圧縮を行う例を、図１９〜２１、図２２〜２６、図２７〜３１、および図３２〜３６を参照して以下に説明する。図１９は、テキストに最適化されたＱテーブルで、これがＪＰＥＧデコーダへ送られる。図２０に示すのは、ピクトリアルタイプの画像に適用された場合に、図１９のＱテーブルよりも高い圧縮率を実現し、再生されたＪＰＥＧ画像に人間の目に認識できる望ましくないアーティファクトが過度に形成されないようにできる量子化テーブルである。同様に、図２１に示すのは、ディテールタイプ画像領域（例えば、ハーフトーン）では、より一層高い圧縮率をもたらし、人間の目に認識できる望ましくないアーティファクトが過度に形成されないような量子化テーブルである。以下の例は、いかにしてディテール画像、ピクトリアル画像、およびテキスト画像が、それぞれ量子化され、ＪＰＥＧ符号化されるかを示す。
【００８４】
図２２は、ディテールタイプと分類された８×８ハーフトーン画素ブロックの生データのサンプルを示す。この画素ブロックにＤＣＴ演算を行うと、図２３に示されるＤＣＴ係数が、ブロックオーダーフォーマットで得られる。これは図２および図５のＳxy係数１０４に対応する。図２４は、ディテールタイプと分類された画素ブロックに対して最適化されたＱ*テーブルのサンプルを示す（図２１の値と同じ）。このＱ*テーブルの係数は、図５のＱ*xy係数５０６に対応する。
【００８５】
図５と図２５に示される閾値処理されたＤＣＴ係数のテーブル５０７は、この態様では閾値処理関数４０７Ｆにより、図２３のＤＣＴ係数Ｓxyの大きさが図２４の閾値処理用Ｑ*テーブル中の対応する閾値Ｑ*xy未満の場合に、それらＳxyをゼロに設定することによって作成される。例えば、図２３，２４，および２５を参照すると、閾値処理されたＤＣＴ係数Ｓ*30は、−３５である。なぜなら、閾値処理用Ｑ*テーブル中の係数Ｑ*30＝３３が、対応するＤＣＴデータ係数の大きさすなわち｜Ｓ30｜＝３５より大きくないからである。しかし、閾値処理されたＤＣＴ係数Ｓ*32は、ゼロである。なぜなら、閾値処理用Ｑ*テーブル中の係数Ｑ*32＝１０５が、対応するＤＣＴデータ係数の大きさ｜Ｓ32｜＝９４より大きいからである。
【００８６】
量子化処理１０８Ｆが、図５と１９に示されるテキスト最適化Ｑテーブル４０６を用いて、閾値処理されたＤＣＴテーブル５０７に対して行われ、この結果図５と図２６に示される量子化されたＤＣＴ係数５０８が得られる。量子化されたＤＣＴ係数Ｓｑ*10は、−８である。なぜなら、Ｓ*10／Ｑ10＝Ｒｏｕｎｄ  （−８１／１０）＝−８だからである。その結果、ＪＰＥＧ圧縮画像の復号において、復号により得られる係数は−８×１０＝−８０である。この態様では、画像タイプに鋭敏な閾値処理用Ｑ*テーブル５０６が閾値処理に用いられるが、復号に用いられるテキスト最適化Ｑテーブル４０６も、閾値処理された値を量子化するのに用いられる。
【００８７】
図２７〜３１は、本発明の同じ態様を、図２７に示されるピクトリアルタイプの画素ブロックに適用するサンプルを示す。この画素ブロックにＤＣＴ演算を行うと、図２８に示されるＤＣＴ係数が得られる。この場合、ピクトリアルとして分類される画素ブロックに対する閾値処理用Ｑ*テーブル５０６であって、図５，２０，および２９に示されるテーブルが、図２８のＤＣＴテーブルに適用され、図５と３０に示される、閾値処理されたＤＣＴ係数のテーブル５０７が得られる。この場合、得られた閾値処理後のＤＣＴ係数Ｓ*70はゼロである。なぜならＱ*70＝５９が｜Ｓ70｜＝２１より大きいからである。一方、図１９のテキスト最適化Ｑテーブルを用いた場合は、閾値処理されたＤＣＴ係数Ｓ*70は、−２１になったはずである。なぜなら、図１９でのＱ70＝１６は｜Ｓ70｜＝２１より大きくないからである。
【００８８】
最後に、得られた閾値処理後のＤＣＴ係数Ｓ*が、図５と図１９に示されるテキスト最適化Ｑテーブル４０６を用いて、量子化され、図５と図３１に示される量子化されたＤＣＴ係数５０８が得られる。この場合も、画像タイプに鋭敏な閾値処理用Ｑ*テーブル５０６が閾値処理に用いられるが、復号に用いられるテキスト最適化Ｑテーブル４０６も、閾値処理された値を量子化するのに用いられる。
【００８９】
最後に、図３２〜３６は、本発明のこの態様が、図３２に示されるテキストタイプの画素ブロックにどのように適用されるかを示す。この画素ブロックにＤＣＴ演算を行うと、図３３に示されるＤＣＴ係数が得られる。本発明の態様の一つでは、処理は前と同じように進めることができる。すなわち、図１，５， および３３に示されるＤＣＴ係数１０４を、テキスト用に最適化されたＱ*テーブル５０６を用いて、閾値処理することができる。該テーブルはこの場合、図１９に示されるＱテーブルと同一である。この処理により、図５と図３４に示される閾値処理後のＤＣＴ係数５０７が得られる。閾値処理されたＤＣＴ係数Ｓ*を、テキスト最適化Ｑテーブル４０６を用いて量子化すると、図５と図３５に示される、量子化されたＤＣＴ係数５０８が得られる。
【００９０】
ただし、図１９に示されるＱテーブル４０６は既にテキスト用に最適化されているので、量子化の前にテキストタイプＤＣＴ係数を閾値処理することは不必要であり、不利ですらあるとも考えられる。なぜなら画質に悪影響を与える恐れがあるからである。従って、最も精細な量子化値を要する画像タイプ（この場合、テキスト）を処理している時は、図２に示されるような閾値処理ステップは行わないで済ませてもよい。この場合、図１９のテキスト最適化Ｑテーブル１０６、４０６を、図３３の閾値処理されていないテキストＤＣＴ係数１０４を直接量子化するのに使えば、結果は、図３６の量子化ＤＣＴ係数１０８となる。
【００９１】
このように、この態様では、認知品質を過度に劣化させないで一層の圧縮化を行うことができる画像タイプの画素ブロックは、量子化の前に閾値処理が行われる。しかし、最も高精細な量子化値を要する画像タイプの画素ブロックは、閾値処理を行わないで量子化されるので、これら特定のブロックに対しては、処理は図１〜３に示される処理と同じである。
【００９２】
上記の本発明の態様の一つが、図３７に記載される。ステップＳ１８００で、すでにセグメント化が行われ、所与の画素ブロックに対する画像タイプタグＴuvが既に決定されているものとする。ステップＳ１８０２で、修正量子化モジュール４０８Ｆは、Ｔuvの示すのが、最高品質の処理を必要とする画像タイプ（例えば、テキストが可能な画像タイプの中に含まれる場合は、テキスト）であるかどうかをチェックする。そうならば、プロセスはステップＳ１８０８へ進む。
【００９３】
Ｔuvの示すのが、一層の圧縮を行うことができる画像タイプ（例えば、ピクトリアルまたはディテール）ならば、その画像タイプに対する適切な量子化修正テーブル（ Ｑ*テーブル）がステップＳ１８０４で選択される。ステップＳ１８０６で、画素ブロックのＤＣＴ係数が、選択されたＱ*テーブルを用いて閾値処理され、プロセスはステップＳ１８０８に続く。ステップＳ１８０８では、得られたＤＣＴ係数が、閾値処理の有無を問わず、最高品質の（例えば、テキストに最適化された）テーブルを用いて量子化され、デコーダへ伝送される。
【００９４】
表２に示すのは、上記の方法を４００〜６００ｄｐｉの幾つかの画像に適用したものである。比較のために、同一の量子化テーブル（Ｑテーブル）をエンコーダとデコーダとに用い、同様の解像度の画像のＪＰＥＧおよびＱＳＥＧ圧縮／伸張を行った。解像度が異なる画像は、異なるＱテーブルを用いて圧縮し、伸張した。なお、「ＱＳＥＧ」とは、本実施形態で行われる圧縮を称する。
【００９５】
【表２】
0004303818.tif 000003
上の表２から判るように、本発明による量子化修正法では、一般に圧縮率が格段に改良される。本方法の別の利点は、本実施形態の適応ＪＰＥＧ量子化法のＱ*テーブルが連続的に修正できるということである。各ブロックが異なる圧縮技術間で選択する有限のタグセットを作成する（これも取りうるオプションの一つではある）代わりに、本方法では、元のＱテーブルから新しいＱ*テーブルを各画素ブロックに対して個別に作成できる連続関数が提供される。
【００９６】
以上を総括すれば、本発明によって、デコーダへ新しい情報を更に伝送することなく圧縮率を改善できる適応量子化が達成される。本実施形態の量子化修正処理を用いれば、画像が画素ブロックにセグメント化され、各画素ブロックの画像タイプが個別に決定される。各画像ブロックのＤＣＴ係数は、量子化の前に修正することもできるし、あるいは決定された画像ブロックタイプに基づき、量子化修正テーブルを用いて量子化することもできる。こうすると、同じ量子化テーブルを用いて画像のブロック全てのＤＣＴ係数を直接量子化することによって得られた圧縮率よりも高い圧縮率を有するデータが（後続のエントロピー符号化の後）得られる。
【００９７】
得られた圧縮データは、それでも、デコーダへ送られる（画像プレーン当たり）１個の量子化テーブルを用いて、標準ＪＰＥＧベースラインデコーダで復号できる。量子化テーブルやＤＣＴ係数を圧縮の前にどのように修正したかに関する情報は、一切デコーダへ送る必要はない。従って、既存のＪＰＥＧデコーダは、多数の量子化テーブルをサポート不可能なベースラインシーケンシャルＪＰＥＧデコーダをも含めて、本発明に従って符号化された圧縮データを正確に伸張するのに用いることができる。
【００９８】
本発明に関し、上述のごとく具体的な態様を説明したが、当業者ならばこれに対して多くの別法や修正や変形ができることは明らかである。例えば、本発明はＪＰＥＧシーケンシャルモードに準拠しているけれども、ＪＰＥＧプログレッシブ符号化にも適用できる。更に例を挙げれば、本発明は、図１５と１８に示されるような、プログラムされた汎用コンピュータに組み入れることができる。しかし、本発明は、特定用途用のコンピュータ、プログラムされたマイクロプロセッサまたはマイクロコントローラおよび周辺ＩＣ部品、ＡＳＩＣまたは他のＩＣ、プログラマブルロジック装置、例えば、ＰＬＤ、ＰＬＡ、ＦＰＧＡまたはＰＡＬなどに組み入れることができる。一般には、図８〜１１、１６、１７、および３７に示されるフローチャートを組み入れることが可能な装置はどんなものでも本発明を用いることが可能である。
【００９９】
以上、本明細書に記載の発明の態様は、説明の目的でなされたものであり、限定的に解釈されるべきではない。特許請求の範囲に規定された本発明の範囲から逸脱せずに、多様な変形を行うことが可能である。
【図面の簡単な説明】
【図１】  ＪＰＥＧ準拠の技術を表す機能ブロック図である。
【図２】  ＪＰＥＧ準拠の符号化に対する量子化プロセスを示す図である。
【図３】  ＪＰＥＧ圧縮技術のフローチャートである。
【図４】  本発明の態様の一つのセグメント化および適応量子化技術を表す機能ブロック図である。
【図５】  本発明の態様の一つの量子化プロセスを示す図である。
【図６】  本発明の態様の一つのＮ×Ｎ画素ブロックに対するテクスチャ配列を示す図である。
【図７】  本発明の態様の一つの適応量子化に用いられる量子化関数を示す図である。
【図８】  本発明の態様の一つに従って全画素ブロックテクスチャと画素ブロックテクスチャヒストグラムを計算するプロセスを示す図である。
【図９】  図８のプロセスに用いられる行テクスチャ計算アルゴリズムを示す図である。
【図１０】  図８のプロセスに用いられる列テクスチャ計算アルゴリズムを示す図である。
【図１１】  画素ブロックテクスチャヒストグラムから画像タイプタグを得るアルゴリズムを示す図である。
【図１２】  画素値が単調増大する行がゼロテクスチャとなることを説明するための図である。
【図１３】  ａ，ｂと交互に変化するパターンが最大値テクスチャとなることを説明するための図である。
【図１４】  異なるテクスチャの８×８ブロックにおける典型的テクスチャヒストグラムを示す図である。
【図１５】  本発明の態様の一つの空間領域セグメント化を用いて修正量子化を行う装置を示す図である。
【図１６】  本発明の態様の一つである周波数領域セグメント化処理の一態様のアルゴリズムを示す図である。
【図１７】  本発明の態様の一つである周波数領域セグメント化処理の一態様のアルゴリズムを示す図である。
【図１８】  本発明の態様の一つの周波数領域セグメント化を用いて修正量子化を行う装置を示す図である。
【図１９】  本発明の態様の一つにおいてＪＰＥＧデコーダへ送られるテキスト最適量子化テーブルを示す図である。
【図２０】  本発明の態様の一つにおいて用いられるピクトリアルタイプ画像ブロック用量子化テーブルを示す図である。
【図２１】  本発明の態様の一つにおいて用いられるディテールタイプ画像ブロック用量子化テーブルを示す図である。
【図２２】  ある画像のディテールタイプの８×８画素ブロックの例を示す図である。
【図２３】  図２２の画素ブロックから求められたＤＣＴ係数を示す図である。
【図２４】  図２１の量子化テーブルを、本発明の一態様においてディテールタイプ画像ブロックに対する量子化修正テーブルとして用いた場合を示す図である。
【図２５】  図２１の量子化テーブルを、図２３のＤＣＴ係数を閾値処理するのに用いた時に得られるＤＣＴ係数を示す図である。
【図２６】  図１９の量子化テーブルを、図２５の閾値処理されたＤＣＴ係数を量子化するのに用いた時に得られる量子化ＤＣＴ係数を示す図である。
【図２７】  ある画像におけるピクトリアルタイプの８×８画素ブロックの例を示す図である。
【図２８】  図２７の画素ブロックから求められたＤＣＴ係数を示す図である。
【図２９】  ピクトリアルタイプ画像ブロックに対して本発明の一態様において量子化修正テーブルとして用いる図２０の量子化テーブルを示す図である。
【図３０】  図２０の量子化テーブルを、図２８のＤＣＴ係数を閾値処理するのに用いた時に得られる閾値処理されたＤＣＴ係数を示す図である。
【図３１】  図１９の量子化テーブルを、図３０の閾値処理されたＤＣＴ係数を量子化するのに用いた時に得られる量子化ＤＣＴ係数を示す図である。
【図３２】  ある画像におけるテキストタイプの８×８画素の例を示す図である。
【図３３】  図３２の画素ブロックから求められたＤＣＴ係数を示す図である。
【図３４】  図１９の量子化テーブルを、図３３のＤＣＴ係数を閾値処理するのに用いた時に得られる閾値処理されたＤＣＴ係数を示す図である。
【図３５】  図１９の量子化テーブルを、図３４の閾値処理されたＤＣＴ係数を量子化するのに用いた時に得られる量子化ＤＣＴ係数を示す図である。
【図３６】  図１９の量子化テーブルを、図３３の閾値処理されていないＤＣＴ係数を量子化するのに用いた時に得られる量子化ＤＣＴ係数を示す図である。
【図３７】  本発明の態様の一つであるＪＰＥＧ準拠の修正量子化技術を表すフローチャートである。
【符号の説明】
１０２  ８×８画素ブロック、１０４  ＤＣＴ（離散コサイン変換）係数、１０４Ｆ  ＤＣＴ処理、１０６，４０６  量子化テーブル、１０８  量子化ＤＣＴ係数、１０８Ｆ  量子化処理、１１０  エントロピーエンコーダ、１１２，１１１８  ハフマン符号テーブル、１１４  圧縮データ、４０６Ｆ  セグメント化処理、４０７Ｆ  閾値処理、４０８Ｆ  修正量子化処理、５０６  修正量子化テーブル、１１０２，１３０２  画像、１１０４，１３０４  スキャナ、１１０８，１１２２，１３０８，１３２２  メモリ、１１１０，１３１０  離散コサイン変換モジュール、１１１２，１３１２  セグメント化器、１１１４、１３１４  量子化テーブル、１１１６，１３１６  修正量子化器、１１２０，１３２０  エンコーダ。
【図１】
0004303818.tif 000004
【図２】
0004303818.tif 000005
【図３】
0004303818.tif 000006
【図４】
0004303818.tif 000007
【図５】
0004303818.tif 000008
【図６】
0004303818.tif 000009
【図７】
0004303818.tif 000010
【図８】
0004303818.tif 000011
【図９】
0004303818.tif 000012
【図１０】
0004303818.tif 000013
【図１１】
0004303818.tif 000014
【図１２】
0004303818.tif 000015
【図１３】
0004303818.tif 000016
【図１４】
0004303818.tif 000017
【図１５】
0004303818.tif 000018
【図１６】
0004303818.tif 000019
【図１７】
0004303818.tif 000020
【図１８】
0004303818.tif 000021
【図１９】
0004303818.tif 000022
【図２０】
0004303818.tif 000023
【図２１】
0004303818.tif 000024
【図２２】
0004303818.tif 000025
【図２３】
0004303818.tif 000026
【図２４】
0004303818.tif 000027
【図２５】
0004303818.tif 000028
【図２６】
0004303818.tif 000029
【図２７】
0004303818.tif 000030
【図２８】
0004303818.tif 000031
【図２９】
0004303818.tif 000032
【図３０】
0004303818.tif 000033
【図３１】
0004303818.tif 000034
【図３２】
0004303818.tif 000035
【図３３】
0004303818.tif 000036
【図３４】
0004303818.tif 000037
【図３５】
0004303818.tif 000038
【図３６】
0004303818.tif 000039
【図３７】
0004303818.tif 000040