(57)【特許請求の範囲】
【請求項１】
画像を符号化し、該符号化した画像を含む固定長符号化データを出力する画像符号化装置であって、
処理対象画像を取得する入力手段と、
前記処理対象画像において、画素値が第１の閾値以上でありかつ第２の閾値以下である画素を対象画素とし、該対象画素の前記処理対象画像中における位置を示す位置情報を生成する生成手段と、
前記位置情報を可逆符号化して符号化位置データを生成する位置符号化手段と、
前記符号化位置データの情報量が第３の閾値以下の場合、前記処理対象画像から、第１の符号量を有する第１の符号化階調データを生成し、かつ前記第１の符号化階調データを復号して得られる画像中における前記対象画素の画素値を修正するために用いる画素値情報を生成する第１の階調符号化手段と、
前記符号化位置データの情報量が前記第３の閾値以下の場合、前記第１の符号化階調データと、前記画素値情報と、前記符号化位置データと、を含む固定長符号化データを出力する第１の出力手段と、
前記符号化位置データの情報量が前記第３の閾値を超える場合、前記処理対象画像から、第２の符号量を有する第２の符号化階調データを生成する第２の階調符号化手段と、
前記符号化位置データの情報量が前記第３の閾値を超える場合、前記第２の符号化階調データを含む固定長符号化データを出力する第２の出力手段とを備え、
前記第１及び前記第２の符号量は、前記固定長符号化データが所定の固定長となるように定められ、前記第２の符号量は前記第１の符号量よりも大きいことを特徴とする、画像符号化装置。
【請求項２】
第３の出力手段をさらに備え、
前記入力手段は、入力画像を取得し、当該入力画像を分割することによって複数の前記処理対象画像を取得し、
前記第３の出力手段は、それぞれの前記処理対象画像に対して前記第１又は第２の出力手段が出力した固定長符号化データの集合を、前記入力画像を符号化した結果として出力する
ことを特徴とする、請求項１に記載の画像符号化装置。
【請求項３】
前記第１の階調符号化手段は、
それぞれの前記対象画素の画素値から、該それぞれの前記対象画素の画素値を代表する画素値である第１の抽出画素値を求める手段と、
それぞれの前記対象画素の画素値の最大値及び最小値の差が第４の閾値以下の場合に、前記第１の抽出画素値を示す前記画素値情報を生成し、かつ前記処理対象画像から前記第１の符号化階調データを生成する手段と、
前記最大値及び最小値の差が前記第４の閾値よりも大きい場合に、前記対象画素ではないそれぞれの画素の画素値から、前記対象画素ではないそれぞれの画素の画素値を代表する画素値である第２の抽出画素値を求め、前記第１の抽出画素値と前記第２の抽出画素値との差を示す前記画素値情報を生成し、かつ前記処理対象画像中のそれぞれの前記対象画素の画素値から前記画素値情報が示す差を引いて得た画像に対して符号化を行うことにより前記第１の符号化階調データを生成する手段と
を備えることを特徴とする、請求項１又は２に記載の画像符号化装置。
【請求項４】
前記生成手段は、前記処理対象画像を構成する画素のうち、
座標が（２Ｍ，２Ｎ）である全ての画素（Ｍ，Ｎは０以上の整数）の画素値が同じであると判定した場合、
座標が（２Ｍ＋１，２Ｎ）である全ての画素の画素値が同じと判定した場合、
座標が（２Ｍ，２Ｎ＋１）である全ての画素の画素値が同じと判定した場合、
又は、座標が（２Ｍ＋１，２Ｎ＋１）である全ての画素の画素値が同じと判定した場合、
前記同じと判定された画素値を有する画素を前記対象画素とすることを特徴とする、請求項１乃至３の何れか１項に記載の画像符号化装置。
【請求項５】
前記生成手段は、
前記処理対象画像を構成する画素の画素値の範囲を複数の区間に分割した際に、区間内の画素値を有する画素が存在しない区間を無画素区間として特定する手段と、
前記範囲内において前記無画素区間が連続して並んでいる区間をグループ化し、それぞれのグループのうち、区間長が最大のグループを最大長区間として特定する手段と、
前記範囲内の最大画素値から前記最大長区間内の最大画素値を引いて得た第１の差分値と、前記最大長区間内の最小画素値から前記範囲内の最小画素値を引いた第２の差分値と、の大小を比較する手段と、
前記第１の差分値≧前記第２の差分値である場合に、前記最大長区間内の最小画素値から前記範囲内の最小画素値までの間の画素値を有する画素を前記対象画素とする手段と、
前記第１の差分値＜前記第２の差分値である場合に、前記最大長区間内の最大画素値から前記範囲内の最大画素値までの間の画素値を有する画素を前記対象画素とする手段と、
を備えることを特徴とする、請求項１乃至３の何れか１項に記載の画像符号化装置。
【請求項６】
画像を符号化し、該符号化した画像を含む固定長符号化データを出力するための画像符号化装置が行う方法であって、
処理対象画像を取得する入力工程と、
前記処理対象画像において、画素値が第１の閾値以上でありかつ第２の閾値以下である画素を対象画素とし、該対象画素の前記処理対象画像中における位置を示す位置情報を生成する生成工程と、
前記位置情報を可逆符号化して符号化位置データを生成する位置符号化工程と、
前記符号化位置データの情報量が第３の閾値以下の場合、前記処理対象画像から、第１の符号量を有する第１の符号化階調データを生成し、かつ前記第１の符号化階調データを復号して得られる画像中における前記対象画素の画素値を修正するために用いる画素値情報を生成する第１の階調符号化工程と、
前記符号化位置データの情報量が前記第３の閾値以下の場合、前記第１の符号化階調データと、前記画素値情報と、前記符号化位置データと、を含む固定長符号化データを出力する第１の出力工程と、
前記符号化位置データの情報量が前記第３の閾値を超える場合、前記処理対象画像から、第２の符号量を有する第２の符号化階調データを生成する第２の階調符号化工程と、
前記符号化位置データの情報量が前記第３の閾値を超える場合、前記第２の符号化階調データを含む固定長符号化データを出力する第２の出力工程とを備え、
前記第１及び前記第２の符号量は、前記固定長符号化データが所定の固定長となるように定められ、前記第２の符号量は前記第１の符号量よりも大きいことを特徴とする、画像符号化方法。
【請求項７】
コンピュータを、請求項１乃至５の何れか１項に記載の画像符号化装置が有する各手段として機能させるための、コンピュータプログラム。
【請求項８】
請求項７に記載のコンピュータプログラムを格納した、コンピュータが読み取り可能な記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像符号化技術に関する。
【背景技術】
【０００２】
従来より、画像を固定長符号化する方法には様々なものがあった。例えば特許文献１及び特許文献２には、文字や線のような高周波成分を表す解像情報と、その他の成分を表す階調情報とに画像データを分離し、それぞれの情報を符号化する方法が開示されている。また特許文献３には、画像を２値化し、それぞれの画素が何れの値を有するかを示す識別情報の情報量を所定のルールに従って減らすことにより、画像を固定長符号化する方法が開示されている。
【０００３】
一方で、符号化しようとする画像の特性により、最適な符号化方式は異なる。特に画像を複数のブロックに分割し、各ブロックに対して符号化を行う場合、同一の符号化方式を画像内の各ブロックに適用しても最適な結果は得られない。例えば特許文献１には、各画素を、大きい画素値を持つ画素群と、小さい画素値を持つ画素群とに分け、各画素群の平均画素値の差に応じて符号化処理を選択する技術が開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００８−２７８０４２号公報
【特許文献２】特開２００９−１７５０２号公報
【特許文献３】特開２００９−５０１７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
画像の特性に適した符号化を行うためには、様々な符号化処理の選択技術を開発することが求められる。特許文献１のような、各画素群の平均画素値の差に応じて符号化処理を選択する方法だけではなく、画像の他の特性に応じた符号化処理の選択方法を提供することにより、符号化処理の選択技術をより高度にすることができる。
【０００６】
本発明は、画像の特性に応じた、適切な符号化方法の選択技術を提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の目的を達成するために、例えば、本発明の画像符号化装置は以下の構成を備える。すなわち、
画像を符号化し、該符号化した画像を含む固定長符号化データを出力する画像符号化装置であって、
処理対象画像を取得する入力手段と、
前記処理対象画像において、画素値が第１の閾値以上でありかつ第２の閾値以下である画素を対象画素とし、該対象画素の前記処理対象画像中における位置を示す位置情報を生成する生成手段と、
前記位置情報を可逆符号化して符号化位置データを生成する位置符号化手段と、
前記符号化位置データの情報量が第３の閾値以下の場合、前記処理対象画像から、第１の符号量を有する第１の符号化階調データを生成し、かつ前記第１の符号化階調データを復号して得られる画像中における前記対象画素の画素値を修正するために用いる画素値情報を生成する第１の階調符号化手段と、
前記符号化位置データの情報量が前記第３の閾値以下の場合、前記第１の符号化階調データと、前記画素値情報と、前記符号化位置データと、を含む固定長符号化データを出力する第１の出力手段と、
前記符号化位置データの情報量が前記第３の閾値を超える場合、前記処理対象画像から、第２の符号量を有する第２の符号化階調データを生成する第２の階調符号化手段と、
前記符号化位置データの情報量が前記第３の閾値を超える場合、前記第２の符号化階調データを含む固定長符号化データを出力する第２の出力手段とを備え、
前記第１及び前記第２の符号量は、前記固定長符号化データが所定の固定長となるように定められ、前記第２の符号量は前記第１の符号量よりも大きいことを特徴とする。
【発明の効果】
【０００８】
画像の特性に応じて、適切な符号化方法を選択できる。
【図面の簡単な説明】
【０００９】
【図１】実施例１に係る画像符号化装置の一例を示すブロック図。
【図２】ステップＳ６０３の詳細を示すフローチャート。
【図３】半透明部分のパターンの一例を示す図。
【図４】画素値のヒストグラムの一例を示す図。
【図５】実施例１に係る固定長符号のフォーマットを示す図。
【図６】実施例１の処理に係るフローチャート。
【図７】実施例３に係るコンピュータの構成の一例を示すブロック図。
【発明を実施するための形態】
【００１０】
以下、本発明の実施例を図面に基づいて説明する。ただし、本発明の範囲は以下の実施例に限定されるものではない。
［実施例１］
図１は本実施例に係る画像符号化装置の一例を示すブロック図である。ブロック化部１０１は、入力画像を取得して、予め決められたサイズのブロックに分割する。以降、ブロックに分割された画像はブロック画像（処理対象画像）と呼ばれる。本実施例では説明のため、ブロック画像の各画素は１つの画素値を有するものとする。例えば、入力画像がＲＧＢ画像として入力された場合、Ｒプレーンのブロック画像、Ｇプレーンのブロック画像、及びＢプレーンのブロック画像が生成されてもよい。当業者には明らかなようにブロック画像はＲＧＢ画像であってもよいが、説明を簡単にするために詳細は省略される。本実施例ではブロックのサイズを１６×１６、画素値のデータ幅を８ビット、各ブロックに含まれる最大の画素値をＣｍａｘ、最小の画素値をＣｍｉｎとする。
【００１１】
抽出部１０２は、１つのブロック画像の各画素を、抽出画素と非抽出画素とに分離する（生成手段）。分離方法については後述する。そして、ブロック画像中（処理対象画像中）における抽出画素の位置を示す位置データを生成する。例えば位置データは、ブロック画像と同じサイズ、すなわち１６×１６画素の二値画像として生成されてもよい。この二値画像の画素値は、ブロック画像における対応する画素が抽出画素であれば「１」であればよく、ブロック画像における対応する画素が非抽出画素であれば「０」であればよい。本実施例では位置データを可逆符号化するため、抽出画素の位置は復号後にもよく保存される。
【００１２】
位置符号化部１０３は、抽出部１０２が生成した位置データを符号化する（位置符号化手段）。位置符号化部１０３は、位置データを可逆圧縮する符号化器であってもよい。位置符号化部１０３が行う符号化は、可変長符号化であってもよい。本実施例では位置符号化部１０３は２値のブロックデータを圧縮するため、例えばランレングス符号化やハフマン符号化など公知の符号化方法を用いることができる。さらに位置符号化部１０３は、生成された符号化位置データが所定の閾値を超えるか否かを判断することにより、二色化部１０４を用いて符号化を行うか、置換部１０５及び階調符号化部１０６を用いて符号化を行うかを決定する。この処理については後述される。
【００１３】
二色化部１０４は、ブロック画像に対して二色化を行い、二色化したブロック画像を符号化して符号化二色データ（第２の符号化階調データ）を生成する（第２の階調符号化手段）。置換部１０５は、抽出部１０２の処理結果に応じて、抽出画素の画素値を変更し、ブロック画像の高周波成分を抑圧した階調画像を生成する。これらの各部の処理については後述される。
【００１４】
階調符号化部１０６は、階調画像を符号化して符号化階調データ（第１の符号化階調データ）を生成する（第１の階調符号化手段）。階調符号化部１０６は多値のブロック画像を圧縮するため、例えばＪＰＥＧのような公知の直交変換を用いた符号化を行えばよい。出力部１０７は、位置符号化部１０３により生成された符号化位置データと、階調符号化部１０６により生成された符号化階調データを用いて、固定長符号化データ１０８を生成する（第２の出力手段）。また出力部１０９は、二色化部１０４により生成された二色化データ、又は階調符号化部１０６により生成された符号化階調データを用いて、固定長符号化データ１１０を生成する（第１の出力手段）。出力部１０７及び出力部１０９が出力した固定長符号化データ１０８及び固定長符号化データ１１０の集合は、非図示の出力部によって整列され、入力画像１００の符号化結果として出力される（第３の出力手段）。出力部１０７及び出力部１０９の処理については後述される。
【００１５】
ここで、本実施例において用いられる符号化方法について説明する。本実施例では、差分モード、置換モード、階調モード、二色化モードの４種類の符号化方法を用いる。しかしながら、一部の符号化方法は使われなくてもよい。例えば、二色化モードと階調モードのみを用いてもよい。以下で、各符号化方法を詳細に説明する。
【００１６】
（１）差分モード
データフォーマットを図５（Ａ）に示す。差分モードでの符号化データは、ヘッダと、抽出色データ（画素値情報）と、符号化位置データと、符号化階調データとを含む。このモードにおいて、置換部１０５が出力する階調画像は、ブロック画像に含まれる抽出画素の画素値から一定値を減算することにより得られる画像である。また、抽出色データはこの一定値を示す。この一定値は、抽出画素の代表的な画素値と、非抽出画素の代表的な画素値との差分であるのがよい。例えばこの一定値は、抽出画素の画素値の平均値と、非抽出画素の画素値の平均値との差分であればよい。この抽出色データは、符号化階調データを復号して得られる画像中における、抽出画素の画素値を修正するために用いられる。抽出色データは負の値を示してもよい。ヘッダは、このデータが差分モードで符号化されていることを示すことができる。
【００１７】
（２）置換モード
データフォーマットを図５（Ｂ）に示す。置換モードでの符号化データは、ヘッダと、抽出色データと、符号化位置データと、符号化階調データとを含む。このモードにおいて、置換部１０５が出力する階調画像は、ブロック画像に含まれる抽出画素の画素値を一定値とすることにより得られる画像である。この一定値は、非抽出画素の代表的な画素値、例えば平均値であってもよい。この抽出色データは、符号化階調データを復号して得られる画像中における、抽出画素の画素値を修正するために用いられる。置換モードにおいて抽出色データは、復号後の抽出画素の画素値を示す。抽出色データは抽出画素の代表的な画素値であればよく、例えば平均値であればよい。ヘッダは、このデータが置換モードで符号化されていることを示すことができる。
【００１８】
（３）階調モード
データフォーマットを図５（Ｃ）に示す。階調モードでの符号化データは、ヘッダと、圧縮階調データとを含む。このモードにおいて置換部１０５は、ブロック画像をそのまま階調画像として出力する。ヘッダは、このデータが階調モードで符号化されていることを示すことができる。
【００１９】
（４）二色化モード
データフォーマットを図５（Ｄ）に示す。二色化モードでの符号化データは、ヘッダと、符号化二色データとを含む。ヘッダは、このデータが二色化モードで符号化されていることを示すことができる。二色化及び符号化には既知の方法を用いることができる。例えば、特許文献３のような方法で符号化を行ってもよい。１つの例として符号化二色データは、各画素が２つの画素群のうちのどちらに含まれるかを示す位置情報と、それぞれの画素群に含まれる画素の復号後の画素値とを含んでもよい。
【００２０】
次に、本実施例における処理を図６のフローチャートを参照して説明する。ステップＳ６０１においてブロック化部１０１は、画像データ１００を取得する。ステップＳ６０２においてブロック化部１０１は、画像データ１００をブロック画像に分割する。ステップＳ６０３で抽出部１０２は、ブロック画像の各画素を抽出画素と非抽出画素とに分離する。例えば抽出部１０２は、抽出する画素の画素値の範囲の下限ＴＨ０（第１の閾値）と上限ＴＨ１（第２の閾値）（ただし、ＴＨ０≦ＴＨ１）とを決定する。そして抽出部１０２は、画素値がＴＨ０以上（第１の閾値以上）でありかつＴＨ１以下（第２の閾値以下）である画素を抽出画素（対象画素）として決定すればよい。
【００２１】
抽出部１０２による、抽出画素の画素値の範囲の決定方法の一例を、図２のフローチャートを参照して説明する。例えばＴＨ０がＣｍｉｎである場合にはＴＨ１以下の画素値を持つ画素が抽出画素となる。また、ＴＨ１がＣｍａｘである場合にはＴＨ０以上の画素値を持つ画素が抽出画素となる。ステップＳ２０１で抽出部１０２は、ブロック画像の各画素の画素値が同一であるかどうかを調べる。各画素値が同一である場合、すなわち各画素が同じ色である場合、抽出部１０２は全画素を抽出する。そこで、抽出部１０２は（ＴＨ０，ＴＨ１）＝（Ｃｍａｘ，Ｃｍａｘ）とする。
【００２２】
ブロック画像の各画素値が同一ではない場合、処理はステップＳ２０２に進む。ステップＳ２０２で抽出部１０２は、ブロック画像の各画素が持つ画素値が２種類であるか否かを判断する。画素値が２種類である場合、すなわちブロック画像が２色で構成されている場合には、抽出部１０２は、大きい方の画素値を有する画素を抽出画素とする。そこで抽出部１０２は、閾値（ＴＨ０，ＴＨ１）＝（Ｃｍａｘ，Ｃｍａｘ）とする。
【００２３】
画素値が２種類ではない場合、処理はステップＳ２０３に進む。ステップＳ２０３で抽出部１０２は、ブロック画像内に半透明部分が含まれているか否かを判定する。半透明部分とは図３に示されるような規則的なパターンである。例えば、描画アプリケーションにおいて半透明色を用いる場合に、このようなパターンが出現する。図３において、黒い画素は半透明にされた色を示す。通常、半透明にされた色は１色で構成される。一方、白い画素は背景部分を表す。図３のようなパターンが検出された場合には、半透明にされた色、すなわち図３における黒い画素、を抽出画素とする。
【００２４】
ステップＳ２０３における判定は、次のように行うことができる。例えば、座標（ｘ，ｙ）が（２Ｍ，２Ｎ）（ただしＭ，Ｎは０以上８未満の整数）である６４画素の画素値が全て同じ場合、抽出部１０２は（Ｃ０，Ｃ０）を閾値（ＴＨ０，ＴＨ１）とする。このとき、Ｃ０は座標（２Ｍ，２Ｎ）の画素値である。一方、座標（２Ｍ，２Ｎ）の全ての画素値が同じではない場合は、座標（２Ｍ＋１，２Ｎ）の全ての画素値が同じであれば、抽出部１０２は（Ｃ０，Ｃ０）を閾値（ＴＨ０，ＴＨ１）とする。このとき、Ｃ０は座標（２Ｍ＋１，２Ｎ）の画素値である。座標（２Ｍ＋１，２Ｎ）の全ての画素値が同じではなければ同様に、抽出部１０２は座標（２Ｍ，２Ｎ＋１）の画素の画素値が同じならその画素値を閾値とする。座標（２Ｍ，２Ｎ＋１）の画素の画素値も共通しない時は、座標（２Ｍ＋１，２Ｎ＋１）の画素の画素値が同じならその画素値を閾値とする。座標（２Ｍ＋１，２Ｎ＋１）の画素値も同じではないならば、処理はステップＳ２０４に進む。
【００２５】
ステップＳ２０４では抽出部１０２は、ブロック画像の画素値のヒストグラムを調べる。抽出部１０２が、ブロック画像における画素値の出現頻度が一様であると判断した時には、全画素を抽出画素とする。具体的な処理の一例を以下に示す。抽出部１０２は、各画素を画素値に応じて８つに分類する。すなわち、抽出部１０２は画素値が０以上３２未満である画素をグループ１、３２以上６４未満である画素をグループ２に分類し、以下同様に各画素をグループ３〜８に分類する。グループ８に属する画素の画素値は、２２４以上２５６未満である。この８つのグループのうち、画素が存在するグループの数が閾値（ＴＨ２）以上である場合、抽出部１０２は画素値の出現頻度が一様であると判断し、全画素を抽出画素とする。この場合、抽出部１０２は（Ｃｍｉｎ，Ｃｍａｘ）を（ＴＨ０，ＴＨ１）に設定すればよい。ＴＨ２の範囲は０以上８以下の値であるが、ＴＨ２は通常は７程度であればよい。
【００２６】
ステップＳ２０４で画素値の出現頻度が一様ではないと抽出部１０２が判断した場合、処理はステップＳ２０５に進む。ステップＳ２０５で抽出部１０２は、各画素を画素値の大きい画素と画素値の小さい画素とに分類し、一方を選択画素とする。具体的な処理の一例を以下に示す。抽出部１０２は、ステップＳ２０４と同様にブロック画像の各画素値のヒストグラムを調べる。この時、抽出部１０２は図４のように、ブロック画像を構成する画素の画素値の範囲を複数の領域、例えば３２の領域に分割し、各領域に含まれる画素値の出現頻度を調べる。すなわち、領域０の画素値は０以上８未満であり、領域１の画素値は８以上１６未満であり、以下同様に領域２〜領域３１に入る画素値も定められる。領域３１の画素値は、２４８以上２５６未満となる。
【００２７】
そして抽出部１０２は、領域内（区間内）の画素値を有する画素が存在しない領域（無画素区間）を特定し、連続する無画素区間をグループ化する。グループ化された領域のうち、領域０と領域３１とのいずれをも含まず、かつ区間長が最大の領域を、抽出部１０２は最長区間（最大長区間）として決定する。図４（Ａ）の例では、領域２０〜２３が最長区間である。領域２７〜３１の方が長いが、領域３１が含まれているので最長区間とはならない。
【００２８】
ここで、最長区間の画素値の範囲を（Ｌｍｉｎ，Ｌｍａｘ）とする。最長区間内（最大長区間内）の最小画素値がＬｍｉｎであり、最大画素値がＬｍａｘである。図４（Ａ）の例では、（１６０，１９１）が（Ｌｍｉｎ，Ｌｍａｘ）である。こうして抽出部１０２は、Ｌｍａｘよりも大きい画素値を有する画素と、Ｌｍｉｎよりも小さい画素値を有する画素とに、画素を分類する。一方で、最長区間が存在しない場合も考えられる。この場合抽出部１０２は、全画素を抽出画素とすればよい。具体的な例としては、抽出部１０２は（Ｃｍｉｎ，Ｃｍａｘ）を（ＴＨ０，ＴＨ１）に設定すればよい。
【００２９】
ステップＳ２０５において抽出部１０２は、ブロック画像中の画素が有する画素値の最大値と最小値との間（ブロック画像を構成する画素の画素値の範囲内）の区間を、複数の領域に分割してもよい。この場合、画素値が最大の領域又は画素値が最小の領域、例えば領域０又は領域３１には必ず画素が含まれる。したがってこれらの領域は最長区間に含まれないため、最も長い連続する領域を最長区間として決定すればよい。
【００３０】
ステップＳ２０６において抽出部１０２は、大きい画素値を有する画素と、小さい画素値を有する画素との、どちらを抽出画素とするかを決定する。具体的な例を以下に示す。抽出部１０２はまず、（Ｃｍａｘ−Ｌｍａｘ）（第１の差分値）と、（Ｌｍｉｎ−Ｃｍｉｎ）（第２の差分値）との大小を比較する。（Ｃｍａｘ−Ｌｍａｘ）の方が小さい時は、抽出部１０２は、大きい画素値を有する画素、すなわち画素値がＬｍａｘよりも大きい画素を抽出画素とする。この場合抽出部１０２は、（Ｌｍａｘ，Ｃｍａｘ）を（ＴＨ０，ＴＨ１）に設定すればよい。一方で（Ｌｍｉｎ−Ｃｍｉｎ）の方が小さい時は、抽出部１０２は、小さい画素値を有する画素、すなわち画素値がＬｍｉｎよりも小さい画素を抽出画素とすればよい。この場合抽出部１０２は、（Ｃｍｉｎ，Ｌｍｉｎ）を（ＴＨ０，ＴＨ１）に設定すればよい。
【００３１】
ステップＳ２０４及びＳ２０５において、領域又はグループ内に画素が存在するか否かを抽出部１０２は判断した。しかしながら、領域又はグループ内に存在する画素数が所定値よりも多いか否かを判断してもよい。以上のステップＳ２０１〜Ｓ２０６で、抽出部１０２は抽出画素の画素値の範囲（ＴＨ０，ＴＨ１）を決定することができる。抽出部１０２は、画素値がこの範囲に入る画素を抽出画素として、前述のような位置データを生成すればよい。
【００３２】
本実施例において抽出部１０２は、ステップＳ２０１〜Ｓ２０６の処理を行って抽出画素を決定するが、抽出画素の決定方法はこれに限られない。特に、ステップＳ２０１〜Ｓ２０６の全ての処理を行う必要はない。例えば、ステップＳ２０４の処理のみが行われてもよい。すなわち、抽出部１０２が共通の画素値Ｃ０を発見した場合には（Ｃ０，Ｃ０）を閾値（ＴＨ０，ＴＨ１）とし、それ以外の場合には全画素を抽出してもよい。
【００３３】
ステップＳ６０４において、位置符号化部１０３は、ステップＳ６０３で生成された位置データを前述のように符号化する。ステップＳ６０５において位置符号化部１０３は、ステップＳ６０４で生成された符号化位置データの情報量が、所定の閾値（ＴＨ４）（第３の閾値）を超えているか否かを判断する。符号化位置データの情報量が所定の閾値を超えている場合には、処理はステップＳ６０６に進み、二色化部１０４がブロック画像を符号化二色データに符号化する。すなわち、二色化モードでの符号化が行われる。符号化位置データの情報量が所定の閾値（ＴＨ４）以下（第３の閾値以下）の場合には、処理はステップＳ６０７に進む。
【００３４】
例えば抽出画素の配置が分散している場合など、位置データを符号化しても情報量が小さくならないことがある。このような場合、可逆符号化された位置データを含む出力符号化データが所定の固定長を超えてしまうかもしれない。本実施例ではこのような場合、二色化モードで符号化を行い、出力符号化データには位置データを含めない。例えば閾値ＴＨ４は、固定長符号量―（ヘッダデータ量＋抽出色データ量＋階調データ符号量の最小値）として定められることができる。例として、固定長符号量は２５６ビット、ヘッダデータ量は３ビット、抽出色データ量は９ビットとされる。また、ＤＣ成分が階調データに含まれるように、階調データ符号量の最小値は２０ビットとされる。すると、ＴＨ４は２２４となる。階調データの符号量が大きくなるように、例えば階調データにＡＣ成分も含まれるように、階調データ符号量の最小値はもっと大きくてもよい。
【００３５】
ステップＳ６０６で二色化部１０４は、二色化モードでブロック画像から符号化二色データ（第２の符号化階調データ）を生成する。二色化部１０４は、ブロック画像を第１の画素値及び第２の画素値に二値化する。例えば二色化部１０４は、ブロック内の画素を、大きい画素値を有する画素群と小さい画素値を有する画素群とに二分する。次に二色化部１０４はそれぞれの画素群についての代表的な画素値（例えば画素値の平均値）を求める。そして二色化部１０４は、それぞれの画素群についての代表的な画素値と、各画素がどちらの画素群に含まれるかを示す位置情報（二値情報）とを、符号化二色データとして出力する。このとき位置情報は圧縮されてもよい。
【００３６】
この際、例えば特許文献３のように、いくつかの画素について属する画素群を変更することにより、位置情報の情報量を削減することができる。この場合、二色化部１０４は抽出画素からなる群を、前述の大きい画素値を有する画素群又は小さい画素値を有する画素群としてもよい。またこの場合二色化部１０４は、例えば所定の規則に従って抽出画素を減らすことにより、抽出部１０２が生成した位置データの情報量を削減してもよい。こうして、出力される符号化二色データを固定長（第２の符号量）とすることができる。
【００３７】
ステップＳ６０７で置換部１０５は、ステップＳ６０３で求められたＴＨ１とＴＨ０との差が所定値以下であるか否かを判断する。ＴＨ１とＴＨ０との差が所定の閾値（ＴＨ３）以下（第４の閾値以下）である場合には、処理はステップＳ６０８に進み、置換モードでの符号化が行われる。ＴＨ１は抽出画素の最大画素値を示し、ＴＨ０は抽出画素の最小画素値を示す。従って、抽出画素の画素値が類似している場合に、ＴＨ１とＴＨ０との差が小さくなる。本実施例ではこの場合、抽出画素の画素値に近い１つの画素値を決定し、この抽出画素に代表的な画素値を抽出色データとする。復号時には、抽出色データによって示される画素値を、抽出画素の画素値とすればよい。本実施例において、抽出画素の最大画素値と最小画素値との差が所定の閾値以下である場合に、置換モードとして符号化を行ってもよい。
【００３８】
ステップＳ６０８で置換部１０５は、抽出画素の画素値に類似する画素値（第１の抽出画素値）を示す抽出色データを決定する。抽出色データが示す値は抽出画素の画素値に近い値（代表値）であれば何でもよく、例えば平均値であっても、中央値であっても、最頻値であっても、ＴＨ１とＴＨ０との平均であってもよい。さらには、抽出色データが示す値は、抽出画素の画素値の最大値であっても、最小値であってもよい。
【００３９】
閾値ＴＨ３は一定であってもよいが、置換部１０５が閾値ＴＨ３を決定してもよい。例えば入力画像がスキャナで読み取られている場合など、文字及び線の画素値がばらついている場合は、置換部１０５は閾値ＴＨ３の値を大きく設定すればよい。一方、例えば入力画像がＰＣで作成されている場合など、文字及び線の濃度が均一な場合は、置換部１０５は閾値ＴＨ３を小さく又は０に近い値に設定すればよい。ステップＳ６０９で置換部１０５は、適当な値で抽出画素の画素値を置換することにより階調画像を生成する。例えば置換部１０５は、非抽出画素の画素値の代表値（例えば平均値）を求め、この代表値で抽出画素の画素値を置換すればよい。ステップＳ６０９における処理は、ブロック画像の高周波成分を抑圧する。もっとも、ステップＳ６０９の処理は本発明に必須ではない。ステップＳ６０９の処理がなくても、抽出画素の位置を精度良く保存することは可能である。
【００４０】
ステップＳ６０７で置換部１０５が、ステップＳ６０３で求められたＴＨ１とＴＨ０との差が所定値以下ではないと判断した場合には、処理はステップＳ６１０に進む。ステップＳ６１０で置換部１０５は、ブロック画像の全画素が抽出画素であるか否かを判断する。例えば、Ｃｍｉｎ＝ＴＨ０かつＣｍａｘ＝ＴＨ１である場合は、ブロック画像の全画素は抽出画素である。ブロック画像の全画素が抽出画素である場合、処理はステップＳ６１１に進む。ステップＳ６１１で置換部１０５は、ブロック画像をそのまま階調画像として階調符号化部１０６に送る。そして階調符号化部１０６は、上述のように階調画像を符号化し、符号化階調データを出力部１０７に送る。
【００４１】
ステップＳ２０４又はステップＳ２０６で抽出部１０２が、ブロック画像における画素値の出現頻度が一様であると判断した場合には、ブロック画像の全画素が抽出画素となる。例えばＣＺＰ（Ｃｉｒｃｕｌａｒ  Ｚｏｎｅ  Ｐｌａｔｅ）のような高階調の入力画像は、局所的に複雑な形状を持つかもしれない。このような入力画像を処理する場合、複雑なブロック画像に対しては二色化モードが選択される可能性がある。二色化モードが選択されたブロック画像に隣り合うブロック画像に対して、抽出画素と非抽出画素とに分類することによる符号化を行うと、復号化後にブロックの境界での画質変化が目に付きやすくなるかもしれない。そこで、高階調画像のように画素値の出現頻度が一様である場合、ブロック画像に対しては階調モードでの圧縮を行う。
【００４２】
ブロック画像に非抽出画素が含まれている場合、処理はステップＳ６１０からステップＳ６１２に進む。この場合、差分モードでの符号化が行われる。ステップＳ６１２で置換部１０５は、適当な画素値を示す抽出色データを決定する。上述のように抽出色データは、抽出画素の画素値の代表値（例えば平均値）と、非抽出画素の画素値の代表値（例えば平均値）（第２の抽出画素値）との差分であってもよい。ステップＳ６１３で置換部１０５は、それぞれの抽出画素の画素値から、抽出色データが示す画素値を減算することにより、階調画像を生成する。この処理により、ブロック画像の高周波成分が抑圧される。
【００４３】
ステップＳ６１４で階調符号化部１０６は、ステップＳ６０９（置換モード）又はステップＳ６１３（差分モード）で生成された階調画像を、上述のように符号化する。ステップＳ６１５で出力部１０７は、固定長符号化されたデータ１０８を出力する。また、ステップＳ６１６で出力部１０９は、固定長符号化されたデータ１１０を出力する。
【００４４】
出力部１０７及び出力部１０９が出力する符号化データの例が、図５に示される。差分モードで符号化を行った場合には出力部１０７は、ヘッダと、ステップＳ６１２で決定された抽出色データと、ステップＳ６０４で生成された符号化位置データと、ステップＳ６１４で生成された符号化階調データとを一緒に出力する。置換モードで符号化を行った場合に出力部１０７は、ヘッダと、ステップＳ６０８で決定された抽出色データと、ステップＳ６０４で生成された符号化位置データと、ステップＳ６１４で生成された符号化階調データとを一緒に出力する。出力部１０７は、出力データが固定長となるように、符号化階調データを打ち切り、又は符号化階調データにビットを追加して所定の符号量（第１の符号量）とすることができる。もっとも、階調符号化部１０６が予めデータを打ち切り、又はビットを追加することによって、符号化階調データを所定の符号量とし、出力データを固定長としてもよい。
【００４５】
二色化モードで符号化を行った場合に出力部１０９は、ヘッダと、ステップＳ６０６で生成された符号化二色化データとを一緒に出力する。本実施例の二色化モードでは、出力データが固定長となるように符号化二色化データが生成されている。しかしながら、出力部１０７が出力データを固定長にしてもよい。階調モードで符号化を行った場合に出力部１０９は、ヘッダと、ステップＳ６１１で生成された符号化階調データとを一緒に出力する。出力部１０９は、出力データが固定長となるように、符号化階調データを打ち切り、又は符号化階調データにビットを追加することができる。もっとも、出力データが固定長となるように、階調符号化部１０６が予めデータを打ち切ってもよく、又はビットを追加してもよい。
【００４６】
本実施例に従えば、高解像なブロック画像に対しては二色化モードが選択されるだろう。また、はっきりした文字又は線を含むブロック画像に対しては置換モードが選択されるだろう。さらに、文字や線を含まないブロック画像に対しては階調モードが選択されるだろう。そして、その他のブロック画像に対しては差分モードが適用されるだろう。このように、それぞれのブロック画像に適した圧縮モードが選択され、符号化が行われることができる。
【００４７】
本実施例では４つの符号化モードから１つを選択する場合について説明した。しかしながら、３つ以下又は５つ以上の符号化モードから１つを選択することも可能である。例えば、二色化モードと階調モードとから符号化モードが選択されてもよい。また、二色化モードと差分モードと置換モードとから符号化モードが選択されてもよい。さらには、階調モードと差分モードとから符号化モードが選択されてもよい。この場合、ステップＳ６０６では二色化モードの代わりに階調モードで符号化が行われてもよい。これらの場合にも、本実施例のように、符号化位置データの情報量に従って選択が行われることができる。
【００４８】
本実施例では、符号化位置データの符号量が閾値以下の場合に、符号化位置データを含む固定長符号化データを出力する（差分モード、置換モード）。ただし、全ての画素が抽出画素である場合には、符号化位置データを固定長符号化データに含める必要はない（階調モード）。また、符号化位置データの符号量が閾値を超える場合には、出力される固定長符号化データに符号化位置データは含まれない（二色化モード）。本実施例の構成によれば、符号化位置データを固定長符号化データに含めると所定の固定長を超えてしまう場合に、符号化位置データを用いない符号化方法によって固定長符号化を行うことができる。また、符号化位置データを固定長符号化データに含める場合に、符号化階調データが小さくなりすぎることにより、画像が劣化することも防ぐことができる。
【００４９】
［実施例２］
本実施例では、階調符号化部１０６が階調画像の符号化を行う前に、階調画像を縮小する。本実施例の画像符号化装置は、実施例１と同様の、図１に示される構成を有する。本実施例に係る処理について、実施例１と異なる点を説明する。本実施例においては、ステップＳ６１４の前にステップＳ６５１で処理が行われる。ステップＳ６５１で縮小部１５１は、階調画像のサイズを１６×１６から８×８へと縮小する。どのような縮小方法が用いられてもよい。
【００５０】
例えば、２×２の４個の画素を１個の画素へと縮小する方法を用いることができる。差分モード又は階調モードの場合縮小部１５１は、４つの画素値の平均を縮小後の画素値とすればよい。置換モードの場合縮小部１５１は、位置データを参照し、非抽出画素の画素値の平均を縮小後の画素値とすればよい。４つの画素が全て抽出画素である場合はステップＳ６０９での処理のために各画素の画素値は共通であり、この共通の画素値を縮小後の画素値とすればよい。
【００５１】
文字及び線の解像情報は、輪郭及び形状を再現するために、高い解像度を有することがすることが概して重要である。しかしながら、背景部分を表す階調情報は、文字及び線ほどに高い解像度を必要としない。一方、階調画像を縮小することにより、階調画像のデータ量を容易に削減することができる。こうして、画質の低下を容易に知覚されることなく符号量を削減することができる。本実施例によれば、人間の視覚特性に合った符号化処理を行うことができる。
【００５２】
［実施例３］
本実施形態では、上述の各実施形態に係る処理をコンピュータにより行わせる。図７はコンピュータの基本構成を示す。このコンピュータにおいて上述の各実施例の機能を実行するためには、各機能をプログラムにより表現し、このコンピュータに読み込ませればよい。こうして、このコンピュータで上述の実施例の全ての機能を実現することができる。この場合、図７をはじめとする構成要素の各々は関数、若しくはＣＰＵが実行するサブルーチンで機能させればよい。また、コンピュータプログラムは通常、ＣＤ−ＲＯＭ等のコンピュータが読み取り可能な記憶媒体に格納されている。この記憶媒体を、コンピュータが有する読み取り装置（ＣＤ−ＲＯＭドライブ等）にセットし、システムにコピー若しくはインストールすることで実行可能になる。従って、係るコンピュータが読み取り可能な記憶媒体も本発明の範疇にあることは明らかである。
【００５３】
図７においてＣＰＵ７０１は、コンピュータ全体の動作をコントロールする。本実施例でプログラムは、ハードディスク又はＣＤ−ＲＯＭのような二次記憶７０３に格納されている。ＣＰＵ７０１は、ＲＡＭ等のメモリである一次記憶７０２にプログラムを読み込み、読み込まれたプログラムを実行する。入力デバイス７０４とはコンピュータに情報を入力するデバイスであって、例えばマウスやキーボード等がこれに該当する。出力デバイス７０５とはコンピュータが情報を出力するデバイスであって、モニタ及びプリンタを含む。読込デバイス７０６は、外部のデータを取得するためのデバイスであって、メモリカードリーダ及びネットワークカードを含む。バス７０８は、上述の各部を接続し、データのやりとりを可能とする。
【００５４】
［他の実施形態］
本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）をネットワーク又は各種記憶媒体を介してシステム或いは装置に供給する。そして、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムコードを読み出して実行する。この場合、そのプログラム、及び該プログラムを記憶した記憶媒体は本発明を構成することになる。
【図１】
0005457853.tif 000002
【図２】
0005457853.tif 000003
【図３】
0005457853.tif 000004
【図４】
0005457853.tif 000005
【図５】
0005457853.tif 000006
【図６】
0005457853.tif 000007
【図７】
0005457853.tif 000008