(57)【特許請求の範囲】
【請求項１】
入力画像を複数の画素を含むブロックに分割するブロック分割手段と、
前記ブロック分割手段によって分割されたブロック内に何種類の画素値があるかを示す特性値を判定する画像特性判定手段と、
前記入力画像に対して可変長符号化を行うランレングス符号化およびＡＤＣＴ符号化を含む可変長符号化手段と、
前記入力画像に対して固定長符号化を行う可逆符号化の固定長符号化手段と、
前記画像特性判定手段によって判定される前記特性値が第一しきい値以下のときに前記ランレングス符号化、第二しきい値よりも大のときに前記ＡＤＣＴ符号化の各可変長符号化手段を選択し、前記特性値が前記第一しきい値よりも大でかつ前記第二しきい値以下のときに前記固定長符号化手段を選択して前記入力画像に対する符号化を行うべく制御する制御手段と
を備えることを特徴とする画像符号化装置。
【請求項２】
請求項１記載の画像符号化装置においてさらに、
前記可変長符号化手段又は前記固定長符号化手段によって符号化された符号データに対して、その符号化を行った前記可変長符号化手段又は前記固定長符号化手段の識別情報を付加して出力する多重化手段
を備えることを特徴とする画像符号化装置。
【請求項３】
前記制御手段は、前記ＡＤＣＴ符号化手段において符号化された符号データのデータ量を所定のしきい値と比較する比較手段を有し、
前記特性値に基づいて前記ＡＤＣＴ符号化手段を選択した場合において、前記比較手段によって前記符号データのデータ量が前記しきい値よりも小さいと判定された場合には前記ＡＤＣＴ符号化手段を選択し、前記比較手段によって前記符号データのデータ量が前記しきい値よりも大きいと判定された場合には前記固定長符号化手段を選択する
ことを特徴とする請求項１又は２記載の画像符号化装置。
【請求項４】
前記制御手段は、前記特性値に基づいて前記ＡＤＣＴ符号化手段を選択した場合において、前記比較手段によって前記符号データのデータ量が前記しきい値よりも小さいと判定された場合には前記ＡＤＣＴ符号化手段において符号化された符号データを選択して出力し、前記比較手段によって前記符号データのデータ量が前記しきい値よりも大きいと判定された場合には前記固定長符号化手段において符号化された符号データを選択して出力する
ことを特徴とする請求項３記載の画像符号化装置。
【請求項５】
前記所定のしきい値は、予め設定した画像の目標最低符号化率から設定されるブロック毎の最大符号量である
ことを特徴とする請求項３記載の画像符号化装置。
【請求項６】
前記ＡＤＣＴ符号化手段は、直交変換符号化を行う
ことを特徴とする請求項１記載の画像符号化装置。
【請求項７】
前記固定長符号化手段が行う符号化は、ブロック全体を２値で表現するブロック内２値符号化およびブロック全体を４値で表現するブロック内４値符号化であり、
前記制御手段は、前記特性値が前記第一しきい値よりも大でかつ当該第一しきい値と前記第二しきい値の間の第三しきい値以下のときに前記ブロック内２値符号化を選択し、前記特性値が前記第三しきい値よりも大でかつ前記第二しきい値以下のときに前記ブロック内４値符号化を選択する
ことを特徴とする請求項１記載の画像符号化装置。
【請求項８】
前記制御手段は、前記ブロック内２値符号化および前記ブロック内４値符号化のうち、前記画像特性判定手段によって判定される前記特性値と同じ値の代表値を有する符号化を選択する
ことを特徴とする請求項７記載の画像符号化装置。
【請求項９】
入力画像をブロックに分割してブロック毎に何種類の画素値があるかを示す特性値を判定し、前記特性値が第一しきい値以下のときにランレングス符号化、第二しきい値よりも大のときにＡＤＣＴ符号化の各可変長符号化を使用し、前記特性値が前記第一しきい値よりも大でかつ前記第二しきい値以下のときに可逆符号化の固定長符号化を使用して符号化するとともに、その使用した符号化の種別を示す識別情報を付加して得られた符号データを復号化する画像復号化装置であって、
前記符号データから前記識別情報を抽出する抽出手段と、
前記識別情報が抽出された前記符号データを可変長復号化する可変長復号化手段と、
前記識別情報が抽出された前記符号データを固定長復号化する固定長復号化手段と、
前記抽出手段によって抽出された前記識別情報に基づいて前記可変長復号化手段および前記固定長復号化手段のいずれか一方を選択して前記識別情報が抽出された前記符号データに対する復号化を行うべく制御する制御手段と
を備えることを特徴とする画像復号化装置。
【請求項１０】
入力画像を複数の画素を含むブロックに分割してブロック毎に何種類の画素値があるかを示す特性値を判定し、前記特性値が第一しきい値以下のときにランレングス符号化、第二しきい値よりも大のときにＡＤＣＴ符号化の各可変長符号化を使用し、前記特性値が前記第一しきい値よりも大でかつ前記第二しきい値以下のときに可逆符号化の固定長符号化を使用して符号化するとともに、その使用した符号化の種別を示す識別情報を付加した符号データを出力する画像符号化装置と、
前記画像符号化装置から出力される符号データから前記識別情報を抽出し、その抽出した識別情報に対応する可変長復号化又は固定長復号化を使用して前記識別情報が抽出された前記符号データを復号化して復号データを出力する画像復号化装置と
を具備することを特徴とする画像処理装置。
【請求項１１】
入力画像を複数の画素を含むブロックに分割し、
その分割したブロック内に何種類の画素値があるかを示す特性値を判定し、
前記特性値が第一しきい値以下のときにランレングス符号化、第二しきい値よりも大のときにＡＤＣＴ符号化の各可変長符号化を使用し、前記特性値が前記第一しきい値よりも大でかつ前記第二しきい値以下のときに可逆符号化の固定長符号化を使用して前記入力画像に対する符号化を行う
ことを特徴とする画像符号化方法。
【請求項１２】
前記可変長符号化および前記固定長符号化のいずれか一方を使用して符号化された符号データに対して、その符号化を行った前記可変長符号化又は前記固定長符号化の識別情報を付加して出力する
ことを特徴とする請求項１１記載の画像符号化方法。
【請求項１３】
入力画像を複数の画素を含むブロックに分割してブロック毎に何種類の画素値があるかを示す特性値を判定し、前記特性値が第一しきい値以下のときにランレングス符号化、第二しきい値よりも大のときにＡＤＣＴ符号化の各可変長符号化を使用し、前記特性値が前記第一しきい値よりも大でかつ前記第二しきい値以下のときに可逆符号化の固定長符号化を使用して符号化するとともに、その使用した符号化の種別を示す識別情報を付加した符号データを復号化する画像復号化方法であって、
前記符号データから前記識別情報を抽出し、
その抽出した前記識別情報に基づいて可変長復号化および固定長復号化のいずれか一方を選択して前記識別情報が抽出された前記符号データに対する復号化を行う
ことを特徴とする画像復号化方法。
【請求項１４】
入力画像を複数の画素を含むブロックに分割してブロック毎に何種類の画素値があるかを示す特性値を判定し、前記特性値が第一しきい値以下のときにランレングス符号化、第二しきい値よりも大のときにＡＤＣＴ符号化の各可変長符号化を使用し、前記特性値が前記第一しきい値よりも大でかつ前記第二しきい値以下のときに可逆符号化の固定長符号化を使用して前記入力画像に対する符号化を行うとともに、その符号化を行った前記可変長符号化又は前記固定長符号化の識別情報を付加して符号データを出力する一方、
前記符号データから前記識別情報を抽出し、その抽出した前記識別情報に基づいて可変長復号化および固定長復号化のいずれか一方を選択して前記識別情報が抽出された前記符号データに対する復号化を行う
ことを特徴とする画像処理方法。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、画像符号化装置、画像復号化装置および画像処理装置、並びに画像符号化方法、画像復号化方法および画像処理方法に関する。
【０００２】
【従来の技術】
近年、原稿画像をスキャナ等の画像入力装置によって読み取り、この画像入力装置から出力される画像データをデジタル処理し、プリンタ等の画像出力装置から出力することにより、原稿のハードコピーを得るデジタル複写機が普及しつつある。デジタル複写機では、複数の画像データを複写機内部に蓄積し、原稿のソートや、ファイリング、ページ編集を行う電子ソーター機能、電子ＲＤＨ機能を持つことが必須である。これらの機能は、複写機内部にメモリやハードディスク等のデータ蓄積装置を備え、これに画像データを蓄積し、必要に応じて出力することによって実現される。
【０００３】
ところで、大量の画像データを蓄積するには、データ蓄積装置の蓄積容量を増加させることが必要であるが、蓄積容量の増加に応じて装置自体の規模やコストも増大する。これを回避するために画像データを符号化して蓄積する方法が種々提案されている。この符号化方法により、少ない蓄積容量のデータ蓄積装置で多量の画像データを蓄積することが可能となる。
【０００４】
また、画像出力装置として、レーザビームを用いたレーザービームプリンタがある。一般に、レーザービームプリンタへの画像出力の制御方法にはページ記述言語が用いられる。すなわち、プリンタが接続されたホストコンピュータは、その出力内容そのものをビットマップイメージ（ラスターイメージ）としてプリンタへ転送するのではなく、その出力内容の文字情報や画像情報を記述したページ記述言語の内容をプリンタへ転送する。
【０００５】
一方、プリンタはそのページ記述言語を受け取り、プリンタ内部においてその言語内容を解釈し、ページの画像データをビットマップイメージ（ラスターイメージ）として展開し、用紙の上にそのイメージを転写して出力する。これを実現するためには、プリンタはその内部に、ページ記述言語の内容を解釈する機能と画像データを展開するビットマップイメージを保持するメモリを持つことが必須となる。
【０００６】
このメモリの容量としては、例えばＡ３サイズを出力するモノクロプリンタの場合は、画像の出力解像度が４００ｄｐｉ、出力階調数が２５６階調であったならば３２Ｍｂｙｔｅもの容量が必要となる。さらに、カラープリンタの場合は、ＹＭＣＫの４色分の出力が必要となるため、そのメモリ容量も４倍の１２８Ｍｂｙｔｅとなる。このような大容量のメモリをプリンタ内部に保持することは、プリンタ自体の規模やコストなどを増加させることになる。
【０００７】
さらに、近年、出力画像の高画質化を実現するために、高解像度出力への要求がある。６００ｄｐｉから２４００ｄｐｉなどの高解像度の画像出力を実現するためには、プリンタ内部のメモリ容量も格段に増加してしまう。例えば、ＹＭＣＫ４００ｄｐｉでは１２８Ｍｂｙｔｅであったが、６００ｄｐｉでは２８８Ｍｂｙｔｅ、２４００ｄｐｉでは４６０８Ｍｂｙｔｅと莫大な量のメモリが必要となり、コスト的にも回路規模的にも非現実的なものとなってしまう。
【０００８】
これを回避するために、メモリ上の画像データを符号化して保持し、メモリ容量を削減する方法が考えられる。この方法により、少ない容量で多量の画像データを保持することが可能となる。
【０００９】
画像データを符号化してそのデータ容量を削減する場合、画像の再現階調数を削減し、画像を二値の状態で蓄積することが考えられる。しかしながら、再現階調数を削減した場合、最終的に得られる画像出力の画質が劣化する。そのため、高品質な画像を蓄積するには、画像を二値の状態で蓄積するよりも、画像を多値の状態で蓄積することが望ましい。この多値画像データを符号化するには数多くの方法が存在する。
【００１０】
ところで、デジタル複写機やプリンタで出力する一枚の原稿の中には、文字領域と写真領域が混在する場合が多い。また、プリンタの出力画像には、コンピュータで作成されたイメージ、即ちいわゆるコンピュータグラフィックス（以下、ＣＧと称す）と、スキャナから読み込まれた写真等の自然画像とが混在している原稿が多い。このＣＧと自然画像とは、各々に全く異なった画像特性を持っている。
【００１１】
例えば、ＣＧ領域は画素値の変化は一定であり、画素値変化が全く無く、フラットな背景領域を多く含んでいる。さらに、ＣＧ領域の中でも白黒二値しか存在しない文字領域や、画素値の変化が激しいグラデーション領域等も存在する。これに対して、自然画像領域はスキャナーでの読み込み時にノイズを含むことも多く、画像の背景、余白等のフラットに見える領域においても、画素値が細かく変動している場合が多い。
【００１２】
このように、ＣＧ領域と自然画像領域は各々異なった画像特性を持っている。そのため、このような混在画像の画像データを高品質にかつ有効に符号化するには、各々の画質特性に最適な符号化処理を行う必要がある。この要求に応えるためには、異なる画像特性を持つ領域が混在する画像データに対して、その画像データに応じてその領域毎に最適な符号化処理を選択し、符号化処理することが必要である。このような符号化方式は、適応型画像符号化方式、マルチモード符号化方式として数多く提案されている（例えば、特開平６−３２６８７５号公報参照）。
【００１３】
ＣＧ領域には、文字／線画等の高解像度が必要な画像を含む場合が多く、さらに均等な画素値変化を持つグラデーションの領域や、規則的配列を持つ画素値が連続する領域（例えば、ハッチング、ハーフトーン等）などが含まれる。そのため、このような画像領域は一般に、復号化画像の画質が劣化しない符号化方式が望ましい。例えば、ＭＭＲ，ＬＺＷ，ＪＢＩＧ等の可逆符号化方式である。
【００１４】
また、自然画像領域は写真等の解像度データよりも階調数データの方が必要な画像を含む場合が多いため、階調データが劣化しない符号化方式が望ましい。復号化後に画像が劣化しない、可逆符号化方式を自然画像領域に適用した場合、この領域は画素変化が激しく、エントロピーが高いため、可逆符号化方式では有効に符号化することはできない。そこで、自然画像領域には非可逆符号化方式を適用する。その中でも復号化後に階調データを保持できる方式が適している。例えば、カラーファックスの標準符号化方式として採用されたＪＰＥＧベースライン方式に代表されるＡＤＣＴ符号化方式等である。
【００１５】
【発明が解決しようとする課題】
ＣＧ領域と自然画像領域が混在する画像に対して、領域毎に最適な符号化方式を選択的に適応するマルチモード符号化方式において、従来は、ＣＧ領域の画質劣化を防ぐために、ＣＧ領域に対して可逆符号化を適応していた。この可逆符号化方式は、符号化対象画像の本質的情報量（エントロピー量）を符号化後にも保持し、この本質的情報量に応じてその符号化率は大きく変化し、符号化後の符号量もそれに応じて大きく変化する。つまり、簡単な画像であれば少ない符号量となり、複雑な画像であれば巨大な符号量となる。
【００１６】
可逆符号化方式は本質的情報を保存することで、符号化前と復号化後の画像データは完全に一致するが、本質的情報量が非常に大きい場合、可逆符号化における符号化率は最悪で１／１となり、最大符号量も元画像と同じデータ量となる。つまり、可逆符号化ではその符号化対象の画像によって全く符号化できなく、データ量が全く減らない可能性がある。
【００１７】
そのため、可逆符号化をＣＧ領域に適応したマルチモード符号化を実現する場合、そのデータを保持するための符号データ用のメモリ容量は元画像と同じ容量が必要となる。このマルチモード符号化において、すべての画像領域がＣＧ領域であると判定された場合には、理論的な最大符号量は元画像と同じサイズとなるため、用意する符号データ用メモリ容量は元画像と同じサイズとなる。
【００１８】
例えば、符号化対象となる画像の最大サイズがＡ３サイズでＹＭＣＫ６００ｄｐｉの画像を想定した場合、その元画像のデータ量は２８８Ｍｂｙｔｅとなるため、符号データ用のメモリ容量も２８８Ｍｂｙｔｅ分用意しておく必要がある。このような大容量のメモリを実装することはコスト面からも現実的ではなく、したがってメモリ容量削減の要求がある。
【００１９】
ＡＤＣＴ符号化は画像をブロックに分割し、ブロック毎にＤＣＴ変換を行い、そのＤＣＴ係数に対して量子化を行い、量子化されたＤＣＴ係数をハフマン符号化する。最終段のハフマン符号化は可変長符号化であり、ＡＤＣＴ符号化は非可逆可変長符号化と言える。つまり、可逆符号化と同様に符号化対象画像に応じて符号化率が変化し、その最低符号化率はＡＤＣＴ符号化では１／１となり、この点も上述の可逆符号化と同様である。
【００２０】
そのため、可逆符号化と同様に、用意する符号データ用のメモリ容量は、元画像と同じサイズのものが必要となり、大容量の符号メモリを実装する必要があった。
【００２１】
本発明は、上記課題に鑑みてなされたものであり、その目的とするところは、ＣＧと自然画像等の画像特性が大きく異なる領域が混在した画像であっても、効率的に符号化し、少ない符号データ用メモリ容量であっても、伸長画像の画質劣化を最小限に抑えて高品質な画像を得ることを可能とした画像符号化装置、画像復号化装置および画像処理装置、並びに画像符号化方法、画像復号化方法および画像処理方法を提供することにある。
【００２２】
【課題を解決するための手段】
本発明による画像符号化装置は、入力画像を複数の画素を含むブロックに分割するブロック分割手段と、このブロック分割手段によって分割されたブロック内に何種類の画素値があるかを示す特性値を判定する画像特性判定手段と、入力画像に対してランレングス符号化およびＡＤＣＴ符号化を含む可変長符号化を行う可変長符号化手段と、入力画像に対して固定長符号化を行う可逆符号化の固定長符号化手段と、画像特性判定手段によって判定される前記特性値が第一しきい値以下のときに前記ランレングス符号化、第二しきい値よりも大のときに前記ＡＤＣＴ符号化の各可変長符号化手段を選択し、前記特性値が前記第一しきい値よりも大でかつ前記第二しきい値以下のときに前記固定長符号化手段を選択して入力画像に対する符号化を行うべく制御する制御手段とを備える構成となっている。
【００２３】
上記構成の画像符号化装置において、先ずブロック分割手段では、入力画像を複数の画素を含むブロック、例えば８×８画素を１単位とするブロック画像に分割する。このブロック画像は画像特性判定手段に与えられ、ここでブロック画像についてブロック内に何種類の画素値があるかを示す特性値の解析が行われ、符号化に際してどの符号化方式が最適であるかの判定を行う。そして、制御手段では、ランレングス符号化およびＡＤＣＴ符号化を含む可変長符号化を行う可変長符号化手段と可逆符号化の固定長符号化手段のうち、最適と判定した符号化方式の符号化手段を選択し、その符号化手段にて符号化を行う。また、好ましくは、符号化した符号データに、符号化に使用した符号化方式の識別情報を付加して出力する。
【００２４】
本発明による画像復号化装置は、上記画像符号化装置から出力される符号データを復号化する画像復号化装置であって、この符号データから符号化方式の識別情報を抽出する抽出手段と、この識別情報が抽出された符号データを可変長復号化する可変長復号化手段と、上記識別情報が抽出された符号データを固定長復号化する固定長復号化手段と、抽出手段によって抽出された識別情報に基づいて可変長復号化手段および固定長復号化手段のいずれか一方を選択して識別情報が抽出された符号データに対する復号化を行うべく制御する制御手段とを備える構成となっている。
【００２５】
上記構成の画像復号化装置において、先ず抽出手段では、画像符号化装置から出力される符号データから、符号化の際に使用した符号化方式を特定する識別情報を抽出する。そして、制御手段では、可変長復号化手段および固定長復号化手段のうち、抽出した識別情報に対応する復号化方式の復号化手段を選択し、その復号化手段にて復号化を行う。
【００２６】
本発明による画像処理装置は、上記構成の画像符号化装置と、上記構成の画像復号化装置とを具備する。この画像処理装置において、画像符号化装置では、入力画像をブロックに分割してブロック毎にブロック内に何種類の画素値があるかを示す特性値を判定し、その判定結果に基づいて入力画像に対してランレングス符号化およびＡＤＣＴ符号化を含む可変長符号化を行う可変長符号化又は入力画像に対して固定長符号化を行う可逆符号化の固定長符号化を使用して符号化するとともに、その使用された符号化の種別を示す識別情報を付加して出力し、画像復号化装置では、この画像符号化装置から出力される符号データから上記識別情報を抽出し、この抽出された識別情報に対応する可変長復号化又は固定長復号化を選択して識別情報が抽出された符号データに対する復号化を行う。
【００２７】
本発明による画像符号化方法では、入力画像を複数の画素を含むブロックに分割し、その分割したブロック内に何種類の画素値があるかを示す特性値を判定し、その特性値が第一しきい値以下のときにランレングス符号化、第二しきい値よりも大のときにＡＤＣＴ符号化の各可変長符号化を使用し、前記特性値が前記第一しきい値よりも大でかつ前記第二しきい値以下のときに可逆符号化の固定長符号化を使用して入力画像に対する符号化を行う。また、好ましくは、前記可変長符号化および前記固定長符号化のいずれか一方を使用して符号化された符号データに対して、その符号化を行った可変長符号化又は固定長符号化の識別情報を付加する。
【００２８】
本発明による画像復号化方法では、上記画像符号化方法によって符号化された符号データから上記識別情報を抽出し、その抽出した識別情報に基づいて可変長復号化および固定長復号化のいずれか一方を選択して識別情報が抽出された符号データに対する復号化を行う。
【００２９】
本発明による画像処理方法では、入力画像を複数の画素を含むブロックに分割し、その分割したブロック毎に何種類の画素値があるかを示す特性値を判定し、その特性値が第一しきい値以下のときにランレングス符号化、第二しきい値よりも大のときにＡＤＣＴ符号化の各可変長符号化を使用し、前記特性値が前記第一しきい値よりも大でかつ前記第二しきい値以下のときに可逆符号化の固定長符号化を使用して入力画像に対する符号化を行うとともに、その符号化を行った可変長符号化又は固定長符号化の識別情報を付加して符号データを出力する一方、その符号データから上記識別情報を抽出し、その抽出した識別情報に基づいて可変長復号化および固定長復号化のいずれか一方を選択して識別情報が抽出された符号データに対する復号化を行う。
【００３０】
【発明の実施の形態】
以下、本発明の実施の形態について図面を参照して詳細に説明する。なお、以下の説明においては、入力画像の階調数が８ｂｉｔ／ｐｉｘｅｌのモノクロ画像に適用した場合について説明するが、本発明はこれに限定されるものではなく、ＲＧＢ画像の２４ｂｉｔ／ｐｉｘｅｌ、あるいはＹＭＣＫの３２ｂｉｔ／ｐｉｘｅｌのカラー画像に対しても同様に適用可能である。
【００３１】
図１は、本発明の第１実施形態に係る画像処理装置における画像符号化装置の構成例を示すブロック図である。
【００３２】
図１から明らかなように、第１実施形態に係る画像符号化装置１０は、画像入力装置１１、ラスター／ブロック変換回路１２、画像特性判定回路１３、ＡＤＣＴ符号化回路１４、ブロック内４値符号化回路１５、ブロック内２値符号化回路１６、ブロックランレングス符号化回路１７、切り替え回路１８および多値化回路１９を有する構成となっている。
【００３３】
上記構成の画像符号化装置１０において、画像入力装置１１はラスターイメージを受け取るインタフェースであり、外部インタフェースのように外部ネットワーク等から画像データを直接デジタルデータのラスターイメージとして受信したり、ポストスクリプトから生成されるラスターイメージを出力するプリンタコントローラからのラスターデータを受け取る。この画像入力装置１１から入力された画像データは、ラスター／ブロック変換回路１２に送られる。
【００３４】
ラスター／ブロック変換回路１２は、入力された画像データを例えば８×８画素を１単位とするブロック画像に分割して出力する。ここで、画像の幅が８の倍数でないときには、画像の端において８×８画素に満たない画素データが発生してしまう。この場合、ラスター／ブロック変換回路１２は、８×８画素になるようにダミーの画素を補って、８×８ブロックの画像データを出力する。このブロック画像の画像データは、画像特性判定回路１３に送られると同時に、４つの符号化回路１４〜１７に送られる。
【００３５】
画像特性判定回路１３は、ラスター／ブロック変換回路１２から出力されるブロック画像を受け取り、ブロック内の画素値の分布状態を参照して、入力されたブロック画像の画像特性を解析する。そして、その画像特性の解析結果に基づいて、入力されたブロック画像に対して、４つの符号化回路１４〜１７の各符号化方式のうちのどの符号化方式が最適であるかを判定し、その判定結果をタグ信号として出力する。
【００３６】
具体的には、画像特性を解析するために、画像特性判定回路１３はブロック毎に画像特性を示す特性値を算出し、この特性値の状態から画像特性を判定する。本実施形態では、特性値としてブロック内レベル数を用いる。このブロック内レベル数は８×８ブロック内に、何種類の値があるかを示す数値である。ブロック内レベル数の値は、そのブロック画像の画素値分布の複雑度を示す一つの指標であり、例えば画像データの背景領域にあるブロックなどのように、ブロックがすべて均一の値であったならば、ブロック内レベル数は１となる。
【００３７】
また、白地背景中に描かれた直線を含むブロックのように、ブロック内の値が二つ、即ち背景色と描画色の場合には、ブロック内レベル数は２となる。また、写真などのブロックの場合には、値が複雑に変化しているために、ブロック内レベル数の値は大きな値となる。この特性をブロック毎の画像特性の解析に利用する。ブロックのサイズが８×８であることから、ブロック内レベル数の最大値は６４である。
【００３８】
４つの符号化回路１４〜１７は、ラスター／ブロック変換回路１２から出力されるブロック画像を受け取り、各々独立にブロック画像の符号化処理を行う。これら４つの符号化回路１４〜１７のうち、符号化回路１４で用いられる符号化方式は、直交変換符号化方式の一種で、一般にＡＤＣＴ符号化方式と呼ばれるものであり、また符号化回路１５〜１７で用いられる各符号化方式はブロック内４値符号化方式、ブロック内２値符号化方式およびブロックランレングス符号化方式であり、一般にブロックトランケーション（ＢＴＣ）符号化方式と呼ばれる方式を改良したものである。
【００３９】
４つの符号化回路１４〜１７での符号化処理によって得られた符号データは、切り替え回路１８に送られる。切り替え回路１８は、これらの符号データを受け取り、画像特性判定回路１３からのタグ信号を受けて、このタグ信号に基づいて４つの符号データの中から１つを選択して多重化回路１９に送る。多重化回路１９は、選択された符号データとタグ信号を一つにまとめて最終的な符号データとして出力する。
【００４０】
ここで、上述した４つの符号化回路１４〜１７について説明する。先ず、ＡＤＣＴ符号化回路１４について説明する。このＡＤＣＴ符号化回路１４は、ＪＰＥＧベースライン方式に代表される符号化方式であり、入力された画像データの複雑度に応じて出力される符号データ量が変化する可変長符号化方式であり、また符号化パラメータの設定によりある程度、復号化画像の画質や符号化率を制御できる非可逆符号化方式である。
【００４１】
図２は、ＡＤＣＴ符号化回路１４の構成例を示すブロック図である。このＡＤＣＴ符号化回路１４での符号化に際しては、画像をブロックに分割し、そのブロック毎にＤＣＴ演算回路２１でＤＣＴ変換を行い、そのＤＣＴ係数に対して量子化テーブル２２を用いて量子化回路２３で量子化を行い、この量子化されたＤＣＴ係数をＶＬＣ回路２４でハフマン符号化する。
【００４２】
図３（ａ）にブロック画像の一例を、同図（ｂ）にＤＣＴ係数の一例を、同図（ｃ）に量子化後のＤＣＴ係数の一例を、同図（ｄ）に量子化テーブルの一例をそれぞれ示す。
【００４３】
次に、ブロック内４値符号化回路１５について説明する。このブロック内４値符号化回路１５は、ブロック全体を４値で表現する符号化方式であり、ブロックトランケーション符号化方式を改良したものである。該当ブロックのブロック内レベル数が４以下の場合には、その４値がブロックの代表値となる。すなわち、ブロック内レベル数が４以下の場合には、ブロック内４値で符号化されたブロックの復号化画像は、元画像と完全に一致し、可逆符号化と同じ効果をもたらす。ブロック内レベル数が５以上の場合は、最初に現れた４つの値をブロックの代表値として符号化する。
【００４４】
ブロック内４値符号化回路１５の符号データは、ブロックの代表値×４と、各画素がどちらかの代表値になるかを示す画素フラグとからなる。４つの代表値は各々８ｂｉｔで示される。また、画素フラグは各画素がどの代表値に割り当てられるかを示すために、画素毎に２ｂｉｔで示される。８×８ブロックの場合、画素フラグのデータ量は、
８×８×２ｂｉｔ＝１２８ｂｉｔ
となり、４個の代表値のデータ量は合計で
８×４＝３２ｂｉｔ
となる。
【００４５】
ゆえに、ブロック内４値符号化回路１５の符号データ量は、
１２８＋３２＝１６０ｂｉｔ
となるので、この符号化率は
１６０／（８×８×８）＝１／３．２
となる。
【００４６】
このブロック内４値符号化回路１５は、比較的高解像度の画質を必要とする、多くの画素値を含むブロック画像に適用される。例えば、自然画像とＣＧとを両方含むブロック画像や、複雑なＣＧ領域、複数の画素値を含むＣＧのエッジの領域などである。
【００４７】
次いで、ブロック内２値符号化回路１６について説明する。このブロック内２値符号化回路１６は、ブロック全体を２値で表現する符号化方式であり、ブロックトランケーション符号化を改良したものである。該当ブロックのブロック内レベル数が２以下の場合には、その２値がブロックの代表値となる。すなわち、ブロック内レベル数が２以下の場合には、ブロック内２値で符号化されたブロックの復号化画像は、元画像と完全に一致し、可逆符号化と同じ効果をもたらす。ブロック内レベル数が３以上の場合は、最初に現れた２つの値をブロックの代表値として符号化する。
【００４８】
ブロック内２値符号化回路１６の符号データは、ブロックの代表値×２と、各画素がどちらかの代表値になるかを示す画素フラグとからなる。２つの代表値は各々８ｂｉｔで示される。また、画素フラグは画素毎に１ｂｉｔで示すことが可能である。８×８ブロックの場合、画素フラグのデータ量は、
８×８×１ｂｉｔ＝６４ｂｉｔ
となり、代表値のデータ量は
８＋８＝１６ｂｉｔ
となる。
【００４９】
ゆえに、ブロック内２値符号化回路１６の符号データ量は、
６４＋１６＝８０ｂｉｔ
となるので、このモードの符号化率は
８０／（８×８×８）＝１／６．４
となる。
【００５０】
このブロック内２値符号化回路１６は、比較的高解像度の画質を必要とする、ブロック内に２値程度の画素値を含む領域に適用される。例えば、文字／線画等のエッジを含む領域や、ディザなどの網点を含む領域、ＣＧのグラデーションの領域などに適用される。
【００５１】
最後に、ブロックランレングス符号化回路１７について説明する。このブロックランレングス符号化回路１７は、ブロックトランケーション符号化方式を改良した符号化方式である。そのブロック内の全体の画素値が全く同じであり、かつ隣り合うブロック画像が全く同一である場合に、そのブロック全体を１値で表現し、そのブロックが連続する数（ランレングス）とでその連続するブロックを表現する。
【００５２】
該当ブロックに対して、ブロック内レベル数が１であった場合、同一のブロックが連続する数をカウントし、その連続数、即ちランレングスを符号として出力する。すなわち、ブロック内の画素値がすべて同一、つまりブロック内の値の種類の数が１であった場合、そのブロックの平均値はそのブロック内の画素値をそのまま示すことになるため、ブロック内の画素値が均一であった場合には、ブロックランレングス符号化されたブロックの復号化画像は元画像と完全に一致し、可逆符号化と同じ効果がある。
【００５３】
本実施形態では、ブロックランレングス符号化回路１７の符号データ量は、ブロック内の平均値を示す８ｂｉｔと、ランレングスを示す８ｂｉｔのデータを含有し、１６（＝８＋８）ｂｉｔとなる。ランレングスを示すビット数が８ｂｉｔであることから、ランレングスの最大量は２５６となる。
【００５４】
この符号化処理において、カウントしたランレングス数が２５６よりも大きい場合には、ランレングス符号化回路１７はランレングス数が２５６である符号データを出力し、続いてカウントしたランレングス数から２５６を減算した値を新たなランレングス数として符号を出力する。この場合、代表値の値は同値である。例えば、カウントしたランレングス数が５００だった場合、ランレングス数２５６の符号と、２４４（＝５００−２５６）の符号とを出力する。減算した新たなランレングス数が２５６よりも大きい場合には、繰り返しランレングス数２５６の符号を出力し、再び減算する処理を繰り返す。
【００５５】
このブロックランレングス符号化回路１７の符号化率は、ランレングスの値により変動する。ランレングスが大きいほど符号化率は高くなり、小さいほど符号化率は低くなる。ランレングスの値の最小値は１である。ランレングスの最小値１の場合の符号化率は、元のブロックのサイズが８×８画像であることから、
（８×８）／（８×８×８×１）＝１／３２
となるため、ブロックランレングス符号化回路１７の符号化率は１／３２以上となる。
【００５６】
このブロックランレングス符号化回路１７による符号化モードは、比較的高解像度の表現を必要としない、画像の背景領域等の均一な画素値が広い範囲に亘って連続する領域に適用される。
【００５７】
次に、画像特性判定回路１３における画像特性の判定論理について、図４に示す判定の論理フローチャートを用いて説明する。
【００５８】
最初に、ブロック毎に画像特性を示す特性値としてブロック内レベル数Ｃｎｕｍを算出する（ステップＳ１１）。次に、このブロック内レベル数Ｃｎｕｍを、当該レベル数に対する第１のしきい値ｔｈ１と比較する（ステップＳ１２）。そして、しきい値ｔｈ１以下の場合には、そのブロックに対してブロックランレングス符号化を適用する（ステップＳ１３）。第１のしきい値ｔｈ１としては、通常１を設定する。これは、ブロック内のレベル数が１、つまりブロックの画素値が均一の場合、そのブロックは背景領域など画素値の変化が無い画像領域にあると判定できるため、ブロックランレングス符号化を適用する。
【００５９】
ブロック内レベル数Ｃｎｕｍがしきい値ｔｈ１よりも大きい場合には、ブロック内レベル数Ｃｎｕｍを当該レベル数に対する第２のしきい値ｔｈ２と比較する（ステップＳ１４）。そして、しきい値ｔｈ２以下の場合には、ブロック内２値符号化を適用する（ステップＳ１５）。第２のしきい値ｔｈ２としては、通常２を設定する。これは、ブロック内のレベル数が２以下の場合、ブロック内２値符号化を適用すると可逆符号化となるからである。
【００６０】
ブロック内レベル数Ｃｎｕｍがしきい値ｔｈ２よりも大きい場合には、ブロック内レベル数Ｃｎｕｍを当該レベル数に対する第３のしきい値ｔｈ３と比較する（ステップＳ１６）。そして、しきい値ｔｈ３以下の場合には、ブロック内４値符号化を適用する（ステップＳ１７）。第３のしきい値ｔｈ３としては、通常４を設定する。これは、ブロック内のレベル数が４以下の場合、ブロック内４値符号化を適用すると可逆符号化となるからである。しきい値ｔｈ３よりも大きい場合には、そのブロックにＡＤＣＴ符号化を適用する。
【００６１】
以上の一連の処理により、８×８のブロック画像に対する符号化処理を、そのブロック画像の画像特性に基づいて、ブロックランレングス符号化、ブロック内２値符号化、ブロック内４値符号化およびＡＤＣＴ符号化の４つの符号化方式に振り分けることができる。
【００６２】
上記構成の本実施形態に係る画像符号化装置１０は、目標最低符号化率を設定することが可能である。ここに、目標最低符号化率とは、どのような画像データを符号化した場合でも、その符号化率が目標最低符号化率よりも悪い値にならないという設定値である。この目標最低符号化率の設定値は、符号化データを保持する記憶媒体の容量と元画像のデータ量から算出して設定することで、符号データが記憶媒体の容量から溢れることがないため、システムの動作に不具合を起こさず、システムの安定動作に貢献するものである。
【００６３】
また、本実施形態に係る画像符号化装置１０は、どのような画像データを符号化した場合でも、その符号化率は、設定した目標最低符号化率以上になる仕組みを備えている。以下に、その仕組みについて説明する。
【００６４】
図５は、切り替え回路１８の構成の一例を示すブロック図である。この切り替え回路１８は、４つの符号化回路１４〜１７からそれぞれ出力される４つの符号データを受け取るとともに、画像特性判定回路１３から出力されるタグ信号を受け取り、このタグ信号と目標最低符号化率の設定値に基づいて、４つの符号データの中から１つを選択して出力する。
【００６５】
以下に、符号データの選択の手順について述べる。なお、本実施形態においては、４つの符号化回路１４〜１７の各々の符号化率を、ＡＤＣＴ符号化が１／１〜、ブロック内４値符号化が１／３．２、ブロック内２値符号化が１／６．４、ブロックランレングス符号化が１／３２以上とする。
【００６６】
これらの符号化の中で、ブロック内２値符号化とブロック内４値符号化は入力画像によらず、符号化率が必ず一定となる固定長符号化である。ブロックランレングス符号化の符号化率は入力画像データに依存するが、その最低符号化率は１／３２であり、必ず１／３２以上の符号化率となる可変長符号化である。ＡＤＣＴ符号化の符号化率は、入力される画像データに大きく依存し、入力画像データが非常に複雑な場合は、その符号化率は１／１と、符号化できない状態、即ち符号化による符号量削減の効果がない状態もある。
【００６７】
入力された画像ブロックに対して、どの符号データを出力するかは画像特性判定回路１３からのタグ信号に基づいて選択されるが、画像特性判定回路１３において、画像全体がすべてＡＤＣＴ符号化に判定された場合、画像全体の符号化率が１／１と符号化できない状態になる可能性がある。そのため、切り替え回路１８は次のような機能を備えている。
【００６８】
図５から明らかなように、切り替え回路１８は、比較回路１８１、ｔｈａ（ブロック毎の最大符号量）設定回路１８２、セレクタ１８３，１８４および論理回路１８５を有する構成となっている。この切り替え回路１８において、ＡＤＣＴ符号化回路１４からの符号データは、比較回路１８１の一方の入力となる。比較回路１８１には、ｔｈａ設定回路１８２で設定されたブロック毎の最大符号量ｔｈａが他方の入力として与えられる。
【００６９】
ｔｈａ設定回路１８２では、予め設定した画像の目標最低符号化率ｔｈｃｒから、ブロック毎の最大符号量ｔｈａを設定する。比較回路１８１は、ＡＤＣＴ符号化回路１４の符号データ量とｔｈａ設定回路１８２で設定されたブロック毎の最大符号量ｔｈａとを比較し、その比較結果をセレクタ１８３および論理回路１８５に送る。セレクタ１８３は、ＡＤＣＴ符号化回路１４からの符号データとブロック内４値符号化回路１５からの符号データとを２入力とし、比較回路１８１の比較結果に基づいていずれか一方の符号データを選択して出力する。
【００７０】
セレクタ１８４は、セレクタ１８３で選択された符号データと、ブロック内４値符号化回路１５からの符号データと、ブロック内２値符号化回路１６からの符号データと、ブロックランレングス符号化回路１７からの符号データとを４入力とし、論理回路１８５から与えられるタグ信号に基づいていずれか１つの符号データを選択し、多重化回路１９へ出力する。論理回路１８５は、図１の画像特性判定回路１３から与えられるタグ信号を、比較回路１８１の比較結果に基づいてＡＴＣＴ符号化からブロック内４値符号化に変更してセレクタ１８４にその切り替え制御信号として供給する。
【００７１】
上記構成の切り替え回路１８において、比較回路１８１の比較結果が、ＡＤＣＴ符号データ量がブロック毎の最大符号量ｔｈａよりも小さい場合は、セレクタ１８３はＡＤＣＴ符号データを選択する。選択されたＡＤＣＴ符号データは、セレクタ１８４でさらに選択されて多重化回路１９へ出力される。
【００７２】
また、ＡＤＣＴ符号データ量がブロック毎の最大符号量ｔｈａよりも大きい場合は、セレクタ１８３はＡＤＣＴ符号データ以外の符号データを選択する。つまり、ＡＤＣＴ符号データの代わりに別の符号データを選択する。どの符号データを選択するかは、ブロック毎の最大符号量ｔｈａの設定、即ち予め設定された最低符号化率ｔｈｃｒの設定により異なる。
【００７３】
ｔｈｃｒ≧１／３．２の場合でかつ、ＡＤＣＴ符号データ量がブロック毎の最大符号量ｔｈａよりも大きい場合は、ＡＤＣＴ符号データの代わりにブロック内４値符号化の符号データを選択する。これにより、このブロック画像に対する符号化方式の選択結果が、画像特性判定回路１３の判定結果と異なるため、この選択結果を信号に反映させる必要がある。そのために、比較回路１８１の比較結果を論理回路１８５に送るようにしている。
【００７４】
論理回路１８５は、このブロックに対するタグ信号をＡＤＣＴ符号化からブロック内４値符号化に変更する。この機能により、ＡＤＣＴ符号化が選択されていても、符号化率が設定された目標最低符号化率よりも悪い場合には、符号化率が１／３．２の固定長符号化であるブロック内４値符号化の符号データが選択されるため、必ず目標最低符号化率以上となる。
【００７５】
１／６．４≦ｔｈｃｒ＜１／３．２の場合は、比較回路１８１とセレクタ１８３の動作とは関係なく、論理回路１８５において、タグ信号の内容を変更する。タグ信号において、ＡＤＣＴ符号化およびブロック内４値符号化に選択されている場合、これをブロック内２値符号化を選択するように変更する。これにより、入力画像はブロック内２値符号化か又はブロックランレングス符号化で符号化されることになる。ここで、ブロック内２値符号化は符号化率が１／６．４の固定長符号化であり、ブロックランレングス符号化は最低符号化率１／３２の可変長符号化であることから、目標最低符号化率ｔｈｃｒの設定値を満足することが可能となる。
【００７６】
ｔｈｃｒ＞１／６．４の場合も、比較回路１８１とセレクタ１８３の動作とは関係なく、論理回路１８５において、タグ信号を変更する。この場合はタグ信号をすべてブロックランレングス符号化を選択するように変更する。これにより、入力画像はすべてブロックランレングス符号化で符号化されることになる。ここで、ブロックランレングス符号化は最低符号化率１／３２の可変長符号化であることから、目標最低符号化率ｔｈｃｒの設定を満足することが可能となる。
【００７７】
以上の処理により、切り替え回路１８は、４つの符号化回路、即ちＡＤＣＴ符号化回路１４、ブロック内４値符号化回路１５、ブロック内２値符号化回路１６およびブロックランレングス符号化回路１７からの符号データを選択し、多重化回路１９に符号データとタグ信号を出力する。
【００７８】
多重化回路１９は、切り替え回路１８から出力される符号データとタグ信号を受け取り、符号データの先頭にタグ信号を埋め込み、一つの符号データとして出力する。多重化回路１９から出力されるタグ信号を含む符号データは、バッファメモリやハードディスクなどの記憶媒体に記憶／保存されたり、あるいは伝送系によって画像復号化装置へ伝送されることになる。
【００７９】
図６に、本実施形態における符号データのフォーマットを示す。図６に示すように、符号データはブロック毎に出力される。各ブロックの符号データの先頭に２ビットの符号データの種類を示すタグ信号が埋め込まれている。各符号データのフォーマットの詳細を図７に示す。
【００８０】
図７から明らかなように、ＡＤＣＴ符号化の符号フォーマットは、先頭にＡＤＣＴ符号化であることを示す２ビットのタグ、その後ろにＡＤＣＴの符号データが続く。ブロック内４値符号化の符号フォーマットは、ＡＤＣＴ符号化方式と同様に、先頭に符号化方式を示す２ビットのタグ、その後ろにブロック内４値符号化の符号データが続く。この符号データは先ず４つのブロック代表値のデータ、続いてブロック内の各画素がどの代表値に割り当てられるかを示す、画素毎に２ビットのインデックス番号が６４（＝８×８）個続く。
【００８１】
ブロック内２値符号化方式の符号フォーマットは、他の符号化方式と同様に、先頭に符号化方式を示す２ビットのタグ、その後ろに２つのブロック代表値のデータ、続いてブロック内の各画素がどの代表値に割り当てられるかを示す、画素毎に１ビットのインデックス番号が６４個続く。ブロックランレングス符号化方式の符号データは、他の符号化方式と同様に、先頭に符号化方式を示す２ビットのタグ、続いて１つのブロック代表値とランレングス数を示すデータが続く。
【００８２】
図８は、本発明の第１実施形態に係る画像処理装置における画像復号化装置の構成例を示すブロック図である。
【００８３】
図８から明らかなように、第１実施形態に係る画像復号化装置３０は、タグ抽出回路３１、切り替え回路３２、ＡＤＣＴ復号化回路３３、ブロック内４値復号化回路３４、ブロック内２値復号化回路３５、ブロックランレングス復号化回路３６、切り替え回路３７、ブロック／ラスター変換回路３８および画像出力装置３９を有する構成となっている。
【００８４】
上記構成の画像復号化装置３０において、タグ抽出回路３１は、バッファメモリやハードディスクなどの記憶媒体に記憶／保存されたり、あるいは画像符号化装置１０から伝送系によって伝送される符号データを入力とする。この符号データは、先述したようにブロック毎に構成されており、そのブロック毎の符号データの先頭に、その符号データがどの符号化方式により作成されたものであるかを示す２ビットのタグ信号が入っている。タグ抽出回路３１は、符号データからこのタグ信号を抽出し、タグ信号と残りの符号データとを分離して出力する。分離されたタグ信号は、切り替え回路３２および切り替え回路３７に供給される。
【００８５】
切り替え回路３２は、タグ抽出回路３１からタグ信号と、タグ信号抽出後の符号データを受け取り、この受け取った符号データを、同じくタグ抽出回路３１から送られたタグ信号に基づいて、符号データの出力先を４つの復号化回路、即ちＡＤＣＴ復号化回路３３、ブロック内４値復号化回路３４、ブロック内２値復号化回路３５およびブロックランレングス復号化回路３６の中から１つ選択して送り出す。
【００８６】
ＡＤＣＴ復号化回路３３、ブロック内４値復号化回路３４、ブロック内２値復号化回路３５又はブロックランレングス復号化回路３６は符号データを受け取ると、その符号データを復号してブロック画像を再現する。以下、各復号化回路について具体的に説明する。
【００８７】
先ず、ＡＤＣＴ復号化回路３３は、図９のブロック図に示すように、ＶＬＤ回路４１、逆量子化回路４２、量子化テーブル４３およびｉＤＣＴ演算回路４４を有する構成となっている。このＡＤＣＴ復号化回路３３において、ＶＬＤ回路４１はハフマン復号化処理を行い、入力される符号データを量子化後の周波数データに復元する。
【００８８】
逆量子化回路４２は、ＶＬＤ回路４１の出力である量子化後の周波数データを受け取り、逆量子化を行う。この逆量子化の際に使用される量子化テーブル４３には、符号化時に使用された量子化テーブルが用いられる。ｉＤＣＴ演算回路４４は、逆量子化回路４２から供給される周波数データをｉＤＣＴ変換してブロック画像に復元して出力する。
【００８９】
ブロック内４値復号化回路３４は、１６０ビットの符号データを受け取り、先頭の３２（＝８×４）ビットを４つのブロック代表値とする。ブロック代表値は各々８ビットで構成される。残りの１２８ビットを２ビットずつに分解し、１ブロックを構成する６４（＝８×８）画素の一つ一つに対応させ、各画素の位置に対応した代表値を示す２ビットのフラグとする。この画素毎のフラグを参照し、４つのブロック代表値から値を当てはめて、１ブロック分の画像データを出力する。
【００９０】
ブロック内２値復号化回路３５は、８０ビットの符号データを受け取り、このうち先頭の８ビットを１つ目のブロック代表値、次の８ビットを２つ目のブロック代表値とする。残りの６４ビットを１ビットずつに分解し、１ブロックを構成する６４（＝８×８）画素の一つ一つに対応させ、各画素の位置に対応した代表値を示すフラグとする。この画素毎のフラグを参照し、フラグが“０”ならば、その位置の画素には一つ目の代表値を当てはめ、フラグが“１”ならば二つ目の代表値を当てはめる。この作業を１ブロック分行い、１ブロック分の画像データを出力する。
【００９１】
ブロックランレングスで符号化されたデータを復号化する場合、ブロックランレングス復号化回路３６は１６ビットのデータを受け取り、先頭の８ビットのデータをブロックの代表値とし、残りの８ビットをランレングス数とする。復号化回路３６では、この代表値を８×８ブロック全体を塗りつぶしたブロックを、ランレングス数だけ繰り返して出力する。
【００９２】
切り替え回路３７は、タグ抽出回路３１から送られたタグ信号を受け取り、このタグ信号に基づいて、４つの復号化回路３３〜３６のうちのどの復号化回路から画像データを受け取るかを選択し、受け取ったブロック画像をブロック／ラスター変換回路３８へ送り出す。ブロック／ラスター変換回路３８は、切り替え回路３７から受け取ったブロック画像を元の一つのラスター画像データに変換し、画像出力装置３９へ送り出す。
【００９３】
画像出力装置３９としては、プリンター、プロッターなどの画像データを紙上に出力する装置、ディスプレイに画像を表示する装置、メモリ上に直接ラスター画像を出力する装置、あるいはネットワークに画像データを出力する装置などがある。
【００９４】
以上説明した第１実施形態に係る画像処理装置では、ラスター展開された画像データを画像符号化装置１０で受け取り、かつ画像符号化処理を施して符号データを出力する一方、この符号データを画像復号化装置３０で受け取り、画像復号化処理を施してラスター画像データを出力する際に、ＣＧと自然画像等の画像特性が大きく異なる画像領域が混在した画像であっても、効率的に符号化できる。また、少ない符号データ用メモリ容量であっても、目標最低符号化率を設定することにより、必ずそのメモリ容量以内に符号データを収めることを可能とした上で、高品質な復号化画像を得るとともに、比較的簡単な処理規模でハードウェアによる実現が可能となる。
【００９５】
図１０は、本発明の第２実施形態に係る画像処理装置における画像符号化装置の構成例を示すブロック図である。
【００９６】
図１０から明らかなように、第２実施形態に係る画像符号化装置５０は、画像入力装置５１、ラスター／ブロック変換回路５２、画像特性判定回路５３、適応ＡＤＣＴ符号化回路５４、ブロック内４値近似符号化回路５５、ブロック内２値近似符号化回路５６、ブロックランレングス符号化回路５７、切り替え回路５８および多値化回路５９を有する構成となっている。
【００９７】
上記構成の画像符号化装置５０において、画像入力装置５１はラスターイメージを受け取るインタフェースであり、外部インタフェースのように外部ネットワーク等から画像データを直接デジタルデータのラスターイメージとして受信したり、ポストスクリプトから生成されるラスターイメージを出力するプリンタコントローラからのラスターデータを受け取る。この画像入力装置５１から入力された画像データは、ラスター／ブロック変換回路５２に送られる。
【００９８】
ラスター／ブロック変換回路５２は、入力された画像データを例えば８×８画素を１単位とするブロック画像に分割して出力する。ここで、画像の幅が８の倍数でないときには、画像の端において８×８画素に満たない画素データが発生してしまう。この場合、ラスター／ブロック変換回路５２は、８×８画素になるようにダミーの画素を補って、８×８ブロックの画像データを出力する。このブロック画像の画像データは、画像特性判定回路５３に送られると同時に、４つの符号化回路５４〜５７に送られる。
【００９９】
画像特性判定回路５３は、ラスター／ブロック変換回路５２から出力されるブロック画像を受け取り、ブロック内の画素値の分布状態を参照して入力されたブロック画像の画像特性を解析する。ここで、ブロック内に含まれる画像特性は、例えばそのブロック画像が自然画像領域なのか、ＣＧ領域なのか、あるいはその両方を含む領域なのかなど、そのブロック画像の特徴を示す指標である。画像特性判定回路５３は、その画像特性の解析結果から、このブロック画像に対して、４つの符号化回路５４〜５７の各符号化方式のうちのどの符号化方式が最適であるかを判定し、その判定結果をタグ信号として出力する。
【０１００】
具体的には、画像特性を解析するために、画像特性判定回路５３はブロック毎に画像特性を示す特性値を算出し、この特性値の状態から画像特性を判定する。本実施形態では、特性値としてブロック内レベル数、ダイナミックレンジ、白黒反転回数、高濃度分布度数および低濃度分布度数を用いる。以下に、各特性値の内容について説明する。
【０１０１】
先ず、ブロック内レベル数は８×８ブロック内に、何種類の値があるかを示す数値である。ブロック内レベル数の値は、そのブロック画像の画素値分布の複雑度を示す一つの指標であり、例えば画像データの背景領域にあるブロックなどのように、ブロックがすべて均一の値であったならば、ブロック内レベル数は１となる。
【０１０２】
また、白地背景中に描かれた直線を含むブロックのように、ブロック内の値が二つ、即ち背景色と描画色の場合には、ブロック内レベル数は２となる。また、写真などのブロックの場合には、値が複雑に変化しているために、ブロック内レベル数の値は大きな値となる。この特性をブロック毎の画像特性の解析に利用する。ブロックのサイズが８×８であることから、ブロック内レベル数の最大値は６４である。
【０１０３】
高濃度分布度数および低濃度分布度数は、ブロック内の画素値のヒストグラム分布における高濃度域および低濃度域にある画素値の各々の個数である。高濃度分布度数および低濃度分布度数を求めるには、先ず、ブロック内の画素値のヒストグラム分布を求める。図１１に、そのヒストグラム分布を示す。このヒストグラム分布の最大値ｍａｘと最小値ｍｉｎの差分、即ち｜ｍａｘ−ｍｉｎ｜をＲとする。
【０１０４】
このヒストグラム分布の最大値付近と最小値付近のある範囲に存在する度数の合計値をそれぞれＵｎｕｍとＬｎｕｍとすると、ＵｎｕｍとＬｎｕｍを求める範囲を、差分Ｒの１／Ｎの範囲とする。Ｎは２以上の値であり、本実施形態では、Ｎ＝６〜８程度の値を用いる。その結果、ＵｎｕｍとＬｎｕｍの範囲は、それぞれ以下のようになる。
Ｕｎｕｍ：（ｍａｘ−Ｒ／Ｎ）≦ｘ≦ｍａｘ
Ｌｎｕｍ：ｍｉｎ≦ｘ≦（ｍｉｎ＋Ｒ／Ｎ）
【０１０５】
このＵｎｕｍを高濃度分布度数とし、Ｌｎｕｍを低濃度分布度数とする。高濃度分布度数Ｕｎｕｍが大きい場合には、そのブロック内の画素値の分布が高濃度付近に偏っている可能性がある。低濃度分布度数Ｌｎｕｍが大きい場合には、そのブロック内の画素値の分布が低濃度付近に偏っている可能性がある。高濃度分布度数Ｕｎｕｍおよび低濃度分布度数Ｌｎｕｍが共に大きい場合には、高濃度と低濃度に分布が偏っている可能性がある。このように、分布に偏りのあるブロックは、エッジを含んでいる可能性が大きい。このような特性を画像特性の解析に利用する。
【０１０６】
次に、本実施形態で求めるダイナミックレンジは、単なる最大値と最小値の差分の絶対値ではなく、ブロック内の画素値のヒストグラム分布における高濃度域の分布平均値と低濃度域の分布平均値の差分の絶対値である。図１１はその概念図である。
【０１０７】
高濃度域の分布平均値を求めるには、前述の高濃度分布度数Ｕｎｕｍを求めた後に、その度数が属する範囲内における平均値をＵｍｅａｎとし、低濃度域の分布平均値を求めるには、同様に低濃度分布度数Ｌｎｕｍを求めた後に、その度数が属する範囲内における平均値をＬｍｅａｎとする。このようにして求めた平均値ＵｍｅａｎとＬｍｅａｎを基にして、ダイナミックレンジの定義を下記の式とする。
ダイナミックレンジ＝｜Ｕｍｅａｎ−Ｌｍｅａｎ｜
【０１０８】
このダイナミックレンジの値が大きい場合には、そのブロック画像のコントラストが高く、文字／線画などのエッジ領域を含んでいる可能性がある。また、ダイナミックレンジの値が小さい場合には、そのブロック画像内の画素値の変化は緩やかであり、グラデーションや背景領域を含んでいる可能性がある。このような特性を画像特性の解析に利用する。
【０１０９】
白黒反転回数は、ブロック画像をブロック内の平均値で二値化し、その二値化画像を横方向および縦方向にそれぞれスキャンした際に、値が変化する点をカウントし、横方向のカウントの合計値と縦方向のカウントの合計値を加えた値である。図１２に、その概要を示す。図１２（ａ）は、ブロック画像を二値化した画像である。
【０１１０】
この二値化画像を図１２（ｂ）に示すように、縦方向にスキャンしていくと、最初の列のスキャンでは何も変化が無い。次の列をスキャンすると、１画素目から２画素目に変わるところで、背景を示す画素値から描画色を示す画素値に切り替わる点が存在する。この点を変化点と呼ぶ。同様にスキャンを進めると、３画素目から４画素目に切り替わるところで、描画色から背景色に切り替わる点が存在する。これも変化点とする。このようにして、列方向にスキャンを進めていくと、図１２（ｂ）に示すように、変化点を検出することができる。この変化点の個数をカウントする。
【０１１１】
次に、二値化画像を、図１２（ｃ）に示すように横方向にスキャンしていく。そして、縦方向のスキャンの場合と同様に変化点を検出し、その変化点の個数をカウントしていく。白黒反転回数は、この縦方向の変化点の個数の合計値と横方向の変化点の個数の合計値とを加えた値をとる。
【０１１２】
図１３（ａ）に、文字や線画のエッジを含むブロックを二値化した画像例を、同図（ｂ）に写真などの網点画像を二値化した画像例をそれぞれ示す。文字などのエッジ領域を含むブロックの白黒反転回数の値と、写真などの網点領域を含むブロックの白黒反転回数の値を比較すると、実験的には、エッジ領域の白黒反転回数の方が網点領域よりも少ない傾向がある。この特性をブロック毎の画像特性の解析に利用する。
【０１１３】
４つの符号化回路、即ち適応ＡＤＣＴ符号化回路５４、ブロック内４値近似符号化回路５５、ブロック内２値近似符号化回路５６およびブロックランレングス符号化回路５７は、ラスター／ブロック変換回路５２の出力であるブロック画像を受け取り、ブロック画像の符号化処理を行う。
【０１１４】
これらの符号化回路５４〜５７の中でブロック内４値近似符号化回路５５は、ブロック内の画素値の種類が４値以下の場合は可逆符号化となり、ブロック内２値近似符号化回路５６は同様に２値以下の場合は可逆符号化となる。また、ブロックランレングス符号化回路５７も１値の場合、即ちブロック内の画素値が均一の場合、可逆符号化となる。
【０１１５】
このブロック内の画素値の種類の値が、ある値以下の場合には可逆符号化となる特性と、前述のブロック画像の特性値を考慮して、このブロック画像に対して４つの符号化回路５４〜５７の各符号化方式のうち、どの符号化方式が最適であるかの判定が、画像特性判定回路５３において行われる。図１４は、その判定の論理フローチャートである。
【０１１６】
先ず最初に、前述のブロック毎の画像特性値を算出する（ステップＳ２１）。ここで、各画像特性値について、ブロック内レベル数（色数）をＣｎｕｍ、ダイナミックレンジをｒａｎｇｅ、白黒反転回数をＢＷｃｎｔ、高濃度分布度数をＵｎｕｍ、低濃度分布度数をＬｎｕｍとそれぞれ示すものとする。
【０１１７】
次に、ブロック内レベル数Ｃｎｕｍを当該レベル数に対するしきい値ｔｈ１と比較し（ステップＳ２２）、Ｃｎｕｍ≦ｔｈ１の場合には、ブロックランレングス符号化を設定する（ステップＳ２３）。しきい値ｔｈ１としては、通常１を設定する。これは、ブロック内のレベル数Ｃｎｕｍが１、つまりブロックの画素値が均一の場合、そのブロックは背景領域など画素値の変化が無い画像領域にあると判定できるため、ブロックランレングス符号化を適用する。ブロックランレングス符号化は、ブロック内レベル数Ｃｎｕｍが１以下のときには可逆符号化と同様の画質を得ることが可能である。
【０１１８】
Ｃｎｕｍ＞ｔｈ１の場合には、ダイナミックレンジｒａｎｇｅを当該ダイナミックレンジに対するしきい値ｐ１と比較し（ステップＳ２４）、ｒａｎｇｅ≦ｐ１の場合には、ステップＳ２３に移行してブロックランレングス符号化を設定する。これは、ブロックのダイナミックレンジｒａｎｇｅが小さい場合には、ブロック内のレベル数Ｃｎｕｍが多くてもブロックランレングス符号化を適用することを意味する。すなわち、ブロック内の画素値の変化が少ないブロックにはブロックランレングス符号化を適用することで、符号量を削減し、高符号化率を実現するものである。
【０１１９】
次に、ブロック内レベル数Ｃｎｕｍを当該レベル数に対するしきい値ｔｈ２と比較し（ステップＳ２５）、Ｃｎｕｍ≦ｔｈ２の場合には、ブロック内２値近似符号化を設定する（ステップＳ２６）。しきい値ｔｈ２としては、通常２を設定する。これは、ブロック内のレベル数Ｃｎｕｍが２以下の場合、ブロック内２値近似符号化を適用すると可逆符号化となるからである。
【０１２０】
Ｃｎｕｍ＞ｔｈ２の場合は、ダイナミックレンジｒａｎｇｅを当該ダイナミックレンジに対するしきい値ｐ２と比較し（ステップＳ２７）、ｒａｎｇｅ≦ｐ２の場合には、ステップＳ２６に移行してブロック内２値近似符号化を設定する。これは、ブロック内のダイナミックレンジｒａｎｇｅが非常に小さい場合には、ブロック内のレベル数Ｃｎｕｍが多くても、ブロック内２値近似符号化を適用することを意味する。
【０１２１】
次に、ブロック内レベル数Ｃｎｕｍを当該レベル数に対するしきい値ｔｈ３と比較し（ステップＳ２８）、Ｃｎｕｍ≦ｔｈ３の場合には、ブロック内４値近似符号化を設定する（ステップＳ２９）。しきい値ｔｈ３としては、通常４を設定する。これは、ブロック内のレベル数Ｃｎｕｍが４以下の場合、ブロック内４値近似符号化を適用すると可逆符号化となるからである。
【０１２２】
Ｃｎｕｍ＞ｔｈ３の場合は、白黒反転回数ＢＷｃｎｔを当該反転回数に対するしきい値ｐ５と比較し（ステップＳ３０）、ＢＷｃｎｔ≧ｐ５の場合には、そのブロックに適応ＡＤＣＴ符号化を適用する（ステップＳ３１）。また、ＢＷｃｎｔ＜ｐ５の場合には、ダイナミックレンジｒａｎｇｅをダイナミックレンジに対するしきい値ｐ３と比較し（ステップＳ３２）、ｒａｎｇｅ≦ｐ３の場合には、ステップＳ２９に移行してブロック内４値近似符号化を設定する。これは、ダイナミックレンジｒａｎｇｅが小さい場合には、ブロック内４値近似符号化を適用することを意味する。
【０１２３】
ｒａｎｇｅ＞ｐ３の場合は、高濃度分布度数Ｕｎｕｍを当該分布度数に対するしきい値ｐ４と比較し（ステップＳ３３）、Ｕｎｕｍ＞ｐ４の場合には、ステップＳ２９に移行してブロック内４値近似符号化を適用する。Ｕｎｕｍ≦ｐ４の場合には、低濃度分布度数Ｌｎｕｍを同じしきい値ｐ４と比較する（ステップＳ３４）。そして、Ｌｎｕｍ＞ｐ４の場合には、ステップＳ２９に移行してブロック内４値近似符号化を適用し、Ｌｎｕｍ≦ｐ４の場合には、ステップＳ３１に移行して適応ＡＤＣＴ符号化を適用する。
【０１２４】
上述した一連の判定処理により、８×８のブロック画像に対してそのブロック画像の画像特性に基づいて、４つの符号化方式のうちの１つ、即ちブロックランレングス符号化方式、ブロック内２値近似符号化方式、ブロック内４値近似符号化方式又は適応ＡＤＣＴ符号化方式が振り分けられる。
【０１２５】
４つの符号化回路５４〜５７は、ラスター／ブロック変換回路５２から出力されるブロック画像を受け取り、各々独立にブロック画像の符号化処理を行う。これら４つの符号化回路５４〜５７のうち、適応ＡＤＣＴ符号化回路５４で用いられる符号化方式は一般にＡＤＣＴ符号化方式と呼ばれる方式を改良したものであり、符号化回路１５〜１７で用いられ各符号化方式は一般にブロックトランケーション（ＢＴＣ）符号化方式と呼ばれる方式を改良したものである。以下に、各符号化回路について詳細に説明する。
【０１２６】
先ず、ＡＤＣＴ符号化回路５４について説明する。このＡＤＣＴ符号化回路５４は、ＪＰＥＧベースライン方式に代表される符号化方式であり、入力された画像データの複雑度に応じて出力される符号データ量が変化する可変長符号化方式であり、また符号化パラメータの設定によりある程度、復号化画像の画質や符号化率を制御できる非可逆符号化方式である。
【０１２７】
ＡＤＣＴ符号化は画像をブロックに分割し、ブロック毎にＤＣＴ変換を行い、そのＤＣＴ係数に対して量子化を行い、量子化されたＤＣＴ符号をハフマン符号化する。最終段のハフマン符号化は可変長符号化であり、ＡＤＣＴ符号化は非可逆可変長符号化と言える。
【０１２８】
つまり、可逆符号化と同様に符号化対象画像に応じて符号化率が変化し、その最低符号化率はＡＤＣＴ符号化では１／１となり、この点も上述の可逆符号化と同様である。そのため、可逆符号化と同様に、用意する符号データ用メモリ容量は元画像と同じサイズのものが必要となり、大容量の符号メモリを実装する必要があった。
【０１２９】
本実施形態に係る適応ＡＤＣＴ符号化は、ＡＤＣＴ符号化方式に２つの付加機能を追加した符号化方式である。付加機能の１つ目は適応量子化機能であり、二つ目の機能は符号量打ち切り機能である。
【０１３０】
これらの付加機能のうち、適応量子化機能は、復号化画像の高画質化を図ることを目的とする。入力されるブロック画像データの周波数特性を解析し、画像データの特性に最適な量子化テーブルを、予め用意した複数の量子化テーブルの中から選択することによって適応的な量子化を行う。
【０１３１】
一方、符号量打ち切り機能は、ブロック毎の最大符号量を制御することを目的とする。図１５は、符号量打ち切りの概念図である。ブロック毎の符号量をカウントし、予め指定した目標符号量と比較し、ブロック毎の符号量が目標符号量よりも大きかった場合に、符号データが目標符号量以下となるように、符号データを打ち切り、強制的にＥＯＢ(End Of Block)信号を発生させる。
【０１３２】
図１６は、適応ＡＤＣＴ符号化回路５４の構成例を示すブロック図である。図１６に示すように、適応ＡＤＣＴ符号化回路５４は、ＤＣＴ演算回路６１、ＤＣＴ係数解析回路６２、量子化テーブル６３-1，６３-2，６３-3、量子化テーブル選択回路６４、量子化回路６５、ＶＬＣ回路６６、符号量カウント回路６７、符号量比較回路６８、目標符号量設定回路６９、打ち切り信号発生回路７０および符号合成回路７１を有する構成となっている。
【０１３３】
上記構成の適応ＡＤＣＴ符号化回路５４において、ＤＣＴ演算回路６１はラスター／ブロック変換回路５２から出力されるブロック画像を入力とし、このブロック画像をＤＣＴ変換し、画像データを周波数データに変換する。ブロック画像の一例を図３（ａ）に、ＤＣＴ係数データの一例を図３（ｂ）にそれぞれ示す。この周波数データはＤＣＴ係数解析回路６２に送られる。
【０１３４】
ＤＣＴ係数解析回路６２では、画像データの周波数成分を解析し、このブロック画像に最適な量子化テーブルを複数の量子化テーブルの中から選択する。本実施形態では、３つの量子化テーブル６３-1，６３-2，６３-3を予め用意する。量子化テーブル６３-1はエッジを含む画像に最適化した量子化テーブルを、量子化テーブル６３-2は写真などの網点画像に最適化した量子化テーブルを、量子化テーブル６３-3は量子化幅が大きく、高符号化率となるような量子化テーブルをそれぞれ持つ。これらの量子化テーブルの一例を図１７（ａ），（ｂ），（ｃ）に示す。
【０１３５】
量子化テーブル選択回路６４は、ＤＣＴ係数解析回路６２での解析結果を参照して３つの量子化テーブル６３-1，６３-2，６３-3のうちの１つを選択する。量子化回路６５は、ＤＣＴ演算回路６１から出力される周波数データを受け取り、量子化テーブル選択回路６４で選択された量子化テーブル６３-1／６３-2／６３-3を用いて周波数データを量子化する。
【０１３６】
ＶＬＣ回路６６は、量子化された周波数データをハフマン符号化する。すなわち、ＶＬＣ回路６６は量子化された周波数データを、無意係数（値がゼロ）が連続する数（ゼロラン）と有意係数（ゼロ以外）とを組にして、一つの符号データを出力する。このような符号データが複数個で１ブロック分の符号データが構成される。
【０１３７】
符号量カウント回路６７は、ＶＬＣ回路６６から出力される前述の符号データを加算しながらカウントしていく。符号量比較回路６８は、符号量カウント回路６７でカウントされた符号量と、目標符号量設定回路６９で予め設定された目標符号量とを順次比較する。打ち切り信号発生回路７０は、符号量比較回路６８の比較結果に基づいて、前述した符号打ち切り機能を実現する。
【０１３８】
すなわち、符号量カウント回路６７でカウントされた符号量が目標符号量よりも多くなった際の符号量比較回路６８の比較結果に基づいて、ＶＬＣ回路６６から最後に出力された有意係数とゼロランの符号データを削除し、代わりにＥＯＢ信号を出力する。このＥＯＢ信号を出力することで、符号データを打ち切ることによる符号データの不整合を防止する。
【０１３９】
符号合成回路７１は、ＶＬＣ回路６６から出力される符号データに対して、ＤＣＴ係数解析回路６２から送られる、どの量子化テーブルを使用したかを示すタグ信号を付加し、最終的な符号データとして出力する。
【０１４０】
次に、ブロック内４値近似符号化回路５５について説明する。このブロック内４値近似符号化回路５５は、ブロック全体を４値で表現する符号化方式であり、ブロックトランケーション符号化方式を改良したものである。該当ブロックのブロック内レベル数が４以下の場合には、その４値がブロックの代表値となる。
【０１４１】
すなわち、ブロック内レベル数が４以下の場合には、ブロック内４値近似で符号化されたブロックの復号化画像は、元画像と完全に一致し、可逆符号化と同じ効果をもたらす。ブロック内レベル数が５以上の場合には、ブロック内の画素値を４値に近似して表現を行う。ブロック内の画素値を４値に近似して表現する方法としては、既存の限定色手法、例えばメディアンカット法等を適用することが可能である。
【０１４２】
ブロック内４値近似符号化回路５５の符号データは、ブロックの代表値×４と各画素がどちらかの代表値になるかを示す画素フラグからなる。４つの代表値は各々８ｂｉｔで示される。また、画素フラグは各画素がどの代表値に割り当てられるかを示すために、画素毎に２ｂｉｔで示される。８×８ブロックの場合、画素フラグのデータ量は、
８×８×２ｂｉｔ＝１２８ｂｉｔ
となり、４個の代表値のデータ量は合計で
８×４＝３２ｂｉｔ
となる。
【０１４３】
ゆえに、ブロック内４値近似符号化回路５５の符号データ量は、
１２８＋３２＝１６０ｂｉｔ
となるので、この符号化率は
１６０／（８×８×８）＝１／３．２
となる。
【０１４４】
このブロック内４値近似符号化回路５５は、比較的高解像度の画質を必要とする、多くの画素値を含むブロック画像に適用される。例えば、自然画像とＣＧとを両方含むブロック画像や、複雑なＣＧ領域、複数の画素値を含むＣＧのエッジの領域などである。
【０１４５】
次に、ブロック内２値近似符号化回路５６について説明する。このブロック内２値近似符号化回路５６は、ブロック全体を２値で表現する符号化方式であり、ブロックトランケーション符号化を改良したものである。該当ブロックのブロック内レベル数が２以下の場合には、その２値がブロックの代表値となる。
【０１４６】
すなわち、ブロック内レベル数が２以下の場合には、ブロック内２値で符号化されたブロックの復号化画像は、元画像と完全に一致し、可逆符号化と同じ効果をもたらす。ブロック内レベル数が３以上の場合には、ブロック内の画素値を２値に近似して表現を行う。ブロック内の画素値を２値に近似して表現する方法としては、ブロック内４値近似符号化回路５５と同様に、既存の限定色手法、例えばメディアンカット法等を適用することが可能である。
【０１４７】
ブロック内２値近似符号化回路５６の符号データは、ブロックの代表値×２と各画素がどちらかの代表値になるかを示す画素フラグからなる。２つの代表値は各々８ｂｉｔで示される。また、画素フラグは画素毎に１ｂｉｔで示すことが可能である。８×８ブロックの場合、画素フラグのデータ量は、
８×８×１ｂｉｔ＝６４ｂｉｔ
となり、代表値のデータ量は
８＋８＝１６ｂｉｔ
となる。
【０１４８】
ゆえに、ブロック内２値近似符号化回路５６の符号データ量は、
６４＋１６＝８０ｂｉｔ
となるので、このモードの符号化率は
８０／（８×８×８）＝１／６．４
となる。
【０１４９】
このブロック内２値近似符号化回路５６は、比較的高解像度の画質を必要とする、ブロック内に２値程度の画素値を含む領域に適用される。例えば、文字／線画等のエッジを含む領域や、ディザなどの網点を含む領域、ＣＧのグラデーションの領域などに適用される。
【０１５０】
最後に、ブロックランレングス符号化回路５７について説明する。このブロックランレングス符号化回路５７は、ブロックトランケーション符号化方式を改良した符号化方式であり、隣り合うブロック画像が全く同じか、あるいは非常に似通っており、さらにそのブロック内の全体の画素値が全く同じか、あるいは殆ど同じ場合に、そのブロック全体を１値で近似表現し、そのブロックが連続する数（ランレングス）とでその連続するブロックを表現する。
【０１５１】
そして、該当ブロックに対して、上述したブロック内１値近似処理を行った後に、同一のブロックが連続する数をカウントし、その連続数、ランレングスを符号として出力する。ブロック内を１値で近似処理するために、そのブロック内のすべての画像値の平均を求め、その平均値をそのブロックの代表値とする。すなわち、ブロック内の画素値がすべて同一、つまりブロック内レベル数が１であった場合、そのブロックの平均値はそのブロック内の画素値をそのまま示すことになるため、ブロック内の画素値が均一であった場合には、ブロックランレングス符号化されたブロックの復号化画像は元画像と完全に一致し、可逆符号化と同じ効果がある。
【０１５２】
本実施形態では、ブロックランレングス符号化回路５７の符号データ量は、ブロック内の平均値を示す８ｂｉｔと、ランレングスを示す８ｂｉｔのデータを含有し、１６（＝８＋８）ｂｉｔとなる。ランレングスを示すビット数が８ｂｉｔであることから、ランレングスの最大量は２５６となる。
【０１５３】
符号化処理において、カウントしたランレングス数が２５６よりも大きい場合には、ランレングス符号化回路５７はランレングス数が２５６である符号データを出力し、続いてカウントしたランレングス数から２５６を減算した値を新たなランレングス数として符号を出力する。この場合、代表値の値は同値である。例えば、カウントしたランレングス数が５００だった場合、ランレングス数２５６の符号と、２４４（＝５００−２５６）の符号とを出力する。減算した新たなランレングス数が２５６よりも大きい場合には、繰り返しランレングス数２５６の符号を出力し、再び減算する処理を繰り返す。
【０１５４】
このブロックランレングス符号化回路５７の符号化率は、ランレングスの値により変動する。ランレングスが大きいほど符号化率は高くなり、小さいほど符号化率は低くなる。ランレングスの値の最小値は１である。ランレングスの最小値１の場合の符号化率は、元のブロックのサイズが８×８画像であることから、
（８×８）／（８×８×８×１）＝１／３２
となるため、このブロックランレングス符号化回路１７の符号化率は１／３２以上となる。
【０１５５】
このブロックランレングス符号化回路５７による符号化モードは、比較的高解像度の表現を必要としない、画像の背景領域等の均一な画素値が広い範囲に亘って連続する領域に適用される。
【０１５６】
切り替え回路５８は、４つの符号化回路５４〜５７から出力される４つの符号データを受け取るとともに、画像特性判定回路５３から出力されるタグ信号を受け取り、タグ信号の結果により、４つの符号データのうちの１つを選択して多重化回路５９に出力する。
【０１５７】
多重化回路５９は、切り替え回路５８から出力される符号データと、画像特性判定回路５３から出力されるタグ信号とを受け取り、符号データの先頭にタグ信号を埋め込み、一つの符号データとして出力する。多重化回路５９から出力されるタグ信号を含む符号データは、バッファメモリやハードディスクなどの記憶媒体に記憶／保存されたり、あるいは伝送系によって画像復号化装置へ伝送されることになる。
【０１５８】
図１８に、本実施形態における符号データのフォーマットを示す。図１８に示すように、符号データはブロック毎に出力される。各ブロックの符号データの先頭に２ビットの符号データの種類を示すタグ信号が埋め込まれている。各符号データのフォーマットの詳細を図１９に示す。
【０１５９】
図１９から明らかなように、適応ＡＤＣＴ符号化の符号フォーマットは、先頭にＡＤＣＴ符号化であることを示す２ビットのタグ、次にどの量子化テーブルを用いたかを示すタグ、その後ろにＡＤＣＴの符号データが続く。ブロック内４値符号化の符号フォーマットは、適応ＡＤＣＴ符号化方式と同様に、先頭に符号化方式を示す２ビットのタグ、その後ろにブロック内４値符号化の符号データが続く。この符号データは先ず４つのブロック代表値のデータ、続いてブロック内の各画素がどの代表値に割り当てられるかを示す、画素毎に２ビットのインデックス番号が６４（＝８×８）個、合計で１２８ビットのデータが続く。
【０１６０】
ブロック内２値符号化方式の符号フォーマットは、他の符号化方式と同様に、先頭に符号化方式を示す２ビットのタグ、その後ろに２つのブロック代表値のデータ、続いてブロック内の各画素がどの代表値に割り当てられるかを示す、画素毎に１ビットのインデックス番号が６４個、合計で６４（＝６４×１）ビットのデータが続く。ブロックランレングス符号化方式の符号データは、他の符号化方式と同様に、先頭に符号化式を示す２ビットのタグ、続いて１つのブロック代表値とランレングス数を示すデータが続く。
【０１６１】
図２０は、本発明の第２実施形態に係る画像処理装置における画像復号化装置の構成例を示すブロック図である。
【０１６２】
図２０から明らかなように、第２実施形態に係る画像復号化装置８０は、タグ抽出回路８１、切り替え回路８２、適応ＡＤＣＴ復号化回路８３、ブロック内４値近似復号化回路８４、ブロック内２値近似復号化回路８５、ブロックランレングス復号化回路８６、切り替え回路８７、ブロック／ラスター変換回路８８および画像出力装置８９を有する構成となっている。
【０１６３】
上記構成の画像復号化装置８０において、タグ抽出回路８１は、バッファメモリやハードディスクなどの記憶媒体に記憶／保存されたり、あるいは画像符号化装置５０から伝送系によって伝送される符号データを入力とする。この符号データは、先述したようにブロック毎に構成されており、そのブロック毎の符号データの先頭に、その符号データがどの符号化方式により作成されたものであるかを示す２ビットのタグ信号が入っている。タグ抽出回路８１は、符号データからこのタグ信号を抽出し、タグ信号と残りの符号データとを分離して出力する。分離されたタグ信号は、切り替え回路８２および切り替え回路８７に供給される。
【０１６４】
切り替え回路８２は、タグ抽出回路８１からタグ信号と、タグ信号抽出後の符号データを受け取り、この受け取った符号データを、同じくタグ抽出回路８１から送られるタグ信号に基づいて、符号データの出力先を４つの復号化回路、即ち適応ＡＤＣＴ復号化回路８３、ブロック内４値近似復号化回路８４、ブロック内２値近似復号化回路８５およびブロックランレングス復号化回路８６の中から１つ選択して符号データを送り出す。
【０１６５】
適応ＡＤＣＴ復号化回路８３、ブロック内４値近似復号化回路８４、ブロック内２値近似復号化回路８５又はブロックランレングス復号化回路８６は符号データを受け取ると、その符号データを復号してブロック画像を再現する。以下、各復号化回路について具体的に説明する。
【０１６６】
先ず、適応ＡＤＣＴ復号化回路８３は、図２１のブロック図に示すように、符号抽出回路９１、ＶＬＤ回路９２、逆量子化回路９３、量子化テーブル９４-1，９４-2，９４-3、量子化テーブル選択回路９５およびｉＤＣＴ演算回路９６を有する構成となっている。このＡＤＣＴ復号化回路８３において、符号抽出回路９１は、入力される符号データから当該符号データの作成に使用された量子化テーブルを示すタグ信号を抽出する。符号抽出回路９１で抽出されたタグ信号は量子化テーブル選択回路９５に送られ、また抽出後の残りの符号データはＶＬＤ回路９２に送られる。
【０１６７】
ＶＬＤ回路９２はハフマン復号化処理を行い、符号データを量子化後の周波数データに復元する。逆量子化回路９３は、ＶＬＤ回路９２の出力である量子化後の周波数データを受け取り、逆量子化を行う。この逆量子化の際に使用される量子化テーブルには、符号抽出回路９１で抽出されたタグ信号に基づいて量子化テーブル選択回路９５で選択された量子化テーブル９４-1／９４-2／９４-3が用いられる。ｉＤＣＴ演算回路９６は、逆量子化回路９３から供給される周波数データをｉＤＣＴ変換してブロック画像に復元して出力する。
【０１６８】
ブロック内４値近似復号化回路８４は１６０ビットの符号データを受け取り、先頭の３２（＝８×４）ビットを４つのブロック代表値とする。ブロック代表値は各々８ビットで構成される。残りの１２８ビットを２ビットずつに分解し、１ブロックを構成する６４（＝８×８）画素の一つ一つに対応させ、各画素の位置に対応した代表値を示す２ビットのフラグとする。この画素毎のフラグを参照して４つのブロック代表値から値を当てはめて、１ブロック分の画像データを出力する。
【０１６９】
ブロック内２値近似復号化回路８５は、８０ビットの符号データを受け取り、このうち先頭の８ビットを１つ目のブロック代表値、次の８ビットを２つ目のブロック代表値とする。残りの６４ビットを１ビットずつに分解し、１ブロックを構成する６４（＝８×８）画素の一つ一つに対応させ、各画素の位置に対応した代表値を示すフラグとする。この画素毎のフラグを参照し、フラグが“０”ならば、その位置の画素には一つ目の代表値を当てはめ、フラグが“１”ならば二つ目の代表値を当てはめる。この作業を１ブロック分行い、１ブロック分の画像データを出力する。
【０１７０】
ブロックランレングスで符号化されたデータを復号化する場合、ブロックランレングス復号化回路８６は１６ビットのデータを受け取り、先頭の８ビットのデータをブロックの代表値とし、残りの８ビットをランレングス数とする。復号化回路８６では、この代表値を８×８ブロック全体を塗りつぶしたブロックを、ランレングス数だけ繰り返して出力する。
【０１７１】
切り替え回路８７は、タグ抽出回路８１から送られたタグ信号を受け取り、このタグ信号に基づいて、４つの復号化回路８３〜８６のうちのどの復号化回路から画像データを受け取るかを選択し、受け取ったブロック画像をブロック／ラスター変換回路８８へ送り出す。ブロック／ラスター変換回路８８は、切り替え回路８７から受け取ったブロック画像を、元の一つのラスター画像データに変換して画像出力装置８９へ送り出す。
【０１７２】
画像出力装置８９としては、プリンター、プロッターなどの画像データを紙上に出力する装置、ディスプレイに画像を表示する装置、メモリ上に直接ラスター画像を出力する装置、あるいはネットワークに画像データを出力する装置などがある。
【０１７３】
ここで、以上説明した第２実施形態に係る画像処理装置を用いて、入力される画像データに応じて符号化する処理の例について述べる。画像符号化装置５０を実際にシステムとして構成する場合、符号データを保持するために、メモリやハードディスクなどの記憶媒体を用意する必要がある。この記憶媒体に保持できるメモリ容量は無限ではなく、必ずハードウェアとしての制限がある。そのため、ある容量の記憶媒体を用意したとき、システムとしてその容量に符号データを収める必要がある。
【０１７４】
一例として、入力画像データとしてＡ４  ４００ｄｐｉの画素毎に８ビットのデータを持つ画像を想定し、記憶媒体として５Ｍｂｙｔｅのメモリを設定した場合の、本実施形態に係る画像処理装置の動作と設定を説明する。入力画像データはＡ４  ４００ｄｐｉ  ８ｂｉｔ／ｐｉｘｅｌであるので、画像全体で１６Ｍｂｙｔｅのデータ量となる。符号データを記憶するメモリの容量は５Ｍｂｙｔｅなので、入力画像データを符号化し、その符号量を必ず５Ｍｂｙｔｅ以下にする必要がある。つまり、最低符号化率を１／３．２（＝５／１６）を１００％実現する必要がある。
【０１７５】
４つの符号化回路５４〜５７の各々の符号化率は、ブロックランレングス符号化が１／３２以上、ブロック内２値近似符号化が１／６．４、ブロック内４値近似符号化が１／３．２、適応ＡＤＣＴ符号化が符号打ち切りの設定による、なので、画像全体での最低符号化率１／３．２を実現するためには、適応ＡＤＣＴ符号化の符号化率が必ず１／３．２以上である必要がある。そのために、適応ＡＤＣＴ符号化における符号打ち切りの設定を１／３．２に設定する。
【０１７６】
具体的には、ブロック画像は８×８画素で構成されるため、そのビット数は
８×８×８＝５１２ビット
になるため、この数の１／３．２となるビット数
５１２／３．２＝１６０ビット
に符号打ち切りの目標符号量を設定する。
【０１７７】
この設定により、適応ＡＤＣＴ符号化回路５４での符号化率は１／３．２以上になる。その結果、画像特性判定回路５３においてどの符号化回路を選択した場合でも、その符号化率は必ず１／３．２以上になり、画像全体でも符号化率は必ず１／３．２以上となる。これにより、画像全体での最低符号化率を１００％保証する。
【０１７８】
さらに、記憶媒体のメモリ容量を２．５Ｍｂｙｔｅとした場合の例を以下に述べる。この場合の画像全体の最低符号化率は１／６．４（＝２．５／１６）となる。この場合、ブロック内４値近似符号化方式の符号化１／３．２よりも最低符号化率の方が高いため、ブロック内４値近似符号化回路５５を選択しないようにする。同時に、適応ＡＤＣＴ符号化の符号打ち切りの目標符号量設定を８０（＝５１２／６．４）に設定する。画像特性判定回路５３によりブロック内４値近似符号化回路５５が選択された場合には、適応ＡＤＣＴ符号化を代わりに適用することで、画像全体での最低符号化率を１００％保証する。
【０１７９】
上述したように、本実施形態に係る画像処理装置においては、ラスター展開された画像データを受け取り、画像符号化装置５０で画像符号化処理を施して符号データを出力する一方、この符号データを画像復号化装置８０で受け取り、画像復号化処理を施してラスター画像データを出力する際に、ＣＧと自然画像等の画像特性が大きく異なる画像領域が混在した画像であっても、効率的に符号化し、少ない符号データ用メモリ容量であっても、高品質な復号化画像を得ることができる。また、高度な処理を多く含むことから、第１実施形態よりも処理規模は大きくなるものの、より高品質な復号化画像を得ることができる。
【０１８０】
【発明の効果】
以上説明したように、本発明によれば、入力画像をブロックに分割し、その分割したブロック内に何種類の画素値があるかを示す特性値を判定し、その特性値が第一しきい値以下のときにランレングス符号化、第二しきい値よりも大のときにＡＤＣＴ符号化の各可変長符号化を使用し、前記特性値が前記第一しきい値よりも大でかつ前記第二しきい値以下のときに可逆符号化の固定長符号化を使用して入力画像に対する符号化を行うようにしたことにより、ＣＧと自然画像等の画像特性が大きく異なる領域が混在した画像であっても、効率的に符号化し、またこれを効率的に復号化し、少ない符号データ用メモリ容量であっても、伸長画像の画質劣化を最小限に抑えた高品質な画像を得ることが可能となる。
【図面の簡単な説明】
【図１】  本発明の第１実施形態に係る画像符号化装置の構成例を示すブロック図である。
【図２】  第１実施形態に係るＡＤＣＴ符号化回路の構成例を示すブロック図である。
【図３】  第１実施形態に係るデータ例を示す図であり、（ａ）はブロック画像データ、（ｂ）はＤＣＴ係数データ、（ｃ）量子化後のＤＣＴ係数データ、（ｄ）は量子化テーブルをそれぞれ示している。
【図４】  第１実施形態に係る画像特性判定のフローチャートである。
【図５】  第１実施形態に係る切り替え回路の構成例を示すブロック図である。
【図６】  第１実施形態に係る符号データのフォーマット図である。
【図７】  第１実施形態に係る符号データのより詳細なフォーマット図である。
【図８】  本発明の第１実施形態に係る画像復号化装置の構成例を示すブロック図である。
【図９】  第１実施形態に係るＡＤＣＴ復号化回路の構成例を示すブロック図である。
【図１０】  本発明の第２実施形態に係る画像符号化装置の構成例を示すブロック図である。
【図１１】  第２実施形態に係る高／低濃度分布度数の概念図である。
【図１２】  第２実施形態に係る白黒反転回数の概念図である。
【図１３】  白黒反転回数例を示す図であり、（ａ）は文字や線画のエッジを含むブロックを二値化した画像例を、（ｂ）は写真などの網点画像を二値化した画像例をそれぞれ示している。
【図１４】  第２実施形態に係る画像特性判定のフローチャートである。
【図１５】  第２実施形態に係る適応ＡＤＣＴ符号化の符号打ち切りの概念図である。
【図１６】  第２実施形態に係る適応ＡＤＣＴ符号化回路の構成例を示すブロック図である。
【図１７】  第２実施形態に係る量子化テーブル例を示す図であり、（ａ）はエッジ用量子化テーブル例を、（ｂ）は網点用量子化テーブル例を、（ｃ）は高符号化率用量子化テーブル例をそれぞれ示している。
【図１８】  第２実施形態に係る符号データのフォーマット図である。
【図１９】  第２実施形態に係る符号データのより詳細なフォーマット図である。
【図２０】  本発明の第２実施形態に係る画像復号化装置の構成例を示すブロック図である。
【図２１】  第２実施形態に係る適応ＡＤＣＴ復号化回路の構成例を示すブロック図である。
【符号の説明】
１０，５０…画像符号化装置、１１，５１…画像入力装置、１３，５３…画像特性判定回路、１４…ＡＤＣＴ符号化回路、１５…ブロック内４値符号化回路、１６…ブロック内２値符号化回路、１７，５７…ブロックランレングス符号化回路、１９，５９…多重化回路、３０，８０…画像復号化装置、３１，８１…タグ抽出回路、３３…ＡＤＣＴ復号化回路、３４…ブロック内４値復号化回路、３５…ブロック内２値復号化回路、３６，８６…ブロックランレングス復号化回路、５４…適応ＡＤＣＴ符号化回路、５５…ブロック内４値近似符号化回路、５６…ブロック内２値近似符号化回路、８３…適応ＡＤＣＴ復号化回路、８４…ブロック内４値近似復号化回路、８５…ブロック内２値近似復号化回路
【図１】
0003843581.tif 000002
【図２】
0003843581.tif 000003
【図３】
0003843581.tif 000004
【図４】
0003843581.tif 000005
【図５】
0003843581.tif 000006
【図６】
0003843581.tif 000007
【図７】
0003843581.tif 000008
【図８】
0003843581.tif 000009
【図９】
0003843581.tif 000010
【図１０】
0003843581.tif 000011
【図１１】
0003843581.tif 000012
【図１２】
0003843581.tif 000013
【図１３】
0003843581.tif 000014
【図１４】
0003843581.tif 000015
【図１５】
0003843581.tif 000016
【図１６】
0003843581.tif 000017
【図１７】
0003843581.tif 000018
【図１８】
0003843581.tif 000019
【図１９】
0003843581.tif 000020
【図２０】
0003843581.tif 000021
【図２１】
0003843581.tif 000022