(57)【特許請求の範囲】
【請求項１】
１画素が複数ビットで表わされる多値の画像データを符号化する画像符号化装置であって、
複数画素で構成されるブロックを単位に画像データを入力する入力手段と、
着目ブロック内の画素値の平均値ＡＶＥを算出し、算出した前記平均値ＡＶＥ以下の値を持つ画素群を第１グループ、前記平均値ＡＶＥよりも大きい値を持つ画素群を第２グループとしたとき、前記第１グループ、前記第２グループのそれぞれの画素値の平均値を、前記着目ブロックの代表画素値Ｃ０、Ｃ１として抽出する抽出手段と、
前記着目ブロック内の各画素が前記代表画素値Ｃ０、Ｃ１のいずれに属するかを示すための２値の識別情報を生成する識別情報生成手段と、
前記代表画素値Ｃ０、Ｃ１の予め設定された一方の画素値の最下位ビット、及び、前記代表画素値Ｃ０、Ｃ１それぞれの最下位ビットを除くＣ０’、Ｃ１’のデータを生成する生成手段と、
前記一方の画素値の最下位ビット、前記Ｃ０’、Ｃ１’、及び、前記識別情報をまとめて前記着目ブロックの符号化データを生成し、出力する出力手段とを備え、
前記出力手段は、前記代表画素値Ｃ０、Ｃ１の他方の代表画素値の最下位ビットの値に応じて、前記符号化データに配置する前記Ｃ０’、Ｃ１’の順番を、Ｃ０’、Ｃ１’、又は、Ｃ１’、Ｃ０’のいずれかにして出力することを特徴とする画像符号化装置。
【請求項２】
前記抽出手段は、前記着目ブロック内の全画素の画素値が同一であった場合、前記画素値を一方の代表画素値として決定し、他方の代表画素値として前記一方の代表画素値と異なるダミーの値を抽出することを特徴とする請求項１に記載の画像符号化装置。
【請求項３】
前記ブロックは８ｍ×８ｎ（ｍ、ｎは１以上の整数）画素で構成され、前記出力手段が出力する符号化データのビット数をＬ−１ビットと定義したとき、
更に、
前記着目ブロック内の８×８画素のサブブロックを単位にＪＰＥＧ符号化をｍ×ｎ回行なうことで、ＪＰＥＧ符号化データを生成し、１つのサブブロックのＪＰＥＧ符号化データをＬ／（ｍ×ｎ）−１ビット、それ以外のサブブロックのＪＰＥＧ符号化データをＬ／（ｍ×ｎ）ビットの固定長にすることで、前記着目ブロックからＬ−１ビットのＪＰＥＧ符号化データを生成するＪＰＥＧ符号化手段と、
前記出力手段が出力する符号化データと、前記ＪＰＥＧ符号化手段で生成されたＪＰＥＧ符号化データのいずれか一方を選択すると共に、選択した符号化データがいずれの符号化データであるかを示す１ビットの符号化種別情報に後続して、選択した符号化データを出力する選択手段と
を備えることを特徴とする請求項１又は２に記載の画像符号化装置。
【請求項４】
前記選択手段は、
前記代表画素値Ｃ１とＣ０との差と、予め設定された閾値とを比較し、前記差が前記閾値以下であった場合、前記ＪＰＥＧ符号化手段で生成された符号化データを選択し、前記差が前記閾値より大きい場合に前記出力手段が出力する符号化データを選択することを特徴とする請求項３に記載の画像符号化装置。
【請求項５】
前記選択手段は、
前記ＪＰＥＧ符号化手段で生成される符号化データを復号した結果の画像と、符号化前の前記着目ブロックの画像の各画素間の画素値の差分の合計である誤差Ｄ１を算出し、
前記出力手段から出力される符号化データを復号した結果の画像と、符号化前の前記着目ブロックの画像の各画素間の画素値の差分の合計である誤差Ｄ２を算出し、
Ｄ２≦Ｄ１
の関係にあるとき、前記出力手段が出力する符号化データを選択し、
Ｄ２＞Ｄ１の関係にあるとき、前記ＪＰＥＧ符号化手段で生成された符号化データを選択する
ことを特徴とする請求項３に記載の画像符号化装置。
【請求項６】
１画素が複数ビットで表わされる多値の画像データを符号化する画像符号化装置の制御方法であって、
入力手段が、複数画素で構成されるブロックを単位に画像データを入力する入力工程と、
抽出手段が、着目ブロック内の画素値の平均値ＡＶＥを算出し、算出した前記平均値ＡＶＥ以下の値を持つ画素群を第１グループ、前記平均値ＡＶＥよりも大きい値を持つ画素群を第２グループとしたとき、前記第１グループ、前記第２グループのそれぞれの画素値の平均値を、前記着目ブロックの代表画素値Ｃ０、Ｃ１として抽出する抽出工程と、
識別情報生成手段が、前記着目ブロック内の各画素が前記代表画素値Ｃ０、Ｃ１のいずれに属するかを示すための２値の識別情報を生成する識別情報生成工程と、
生成手段が、前記代表画素値Ｃ０、Ｃ１の予め設定された一方の代表画素値の最下位ビット、及び、前記代表画素値Ｃ０、Ｃ１それぞれの最下位ビットを除くＣ０’、Ｃ１’のデータを生成する生成工程と、
出力手段が、前記一方の画素値の最下位ビット、前記Ｃ０’、Ｃ１’、及び、前記識別情報をまとめて前記着目ブロックの符号化データを生成し、出力する出力工程とを備え、
前記出力工程は、前記代表画素値Ｃ０、Ｃ１の他方の代表画素値の最下位ビットの値に応じて、前記符号化データに配置する前記Ｃ０’、Ｃ１’の順番を、Ｃ０’、Ｃ１’、又は、Ｃ１’、Ｃ０’のいずれかにして出力することを特徴とする画像符号化装置の制御方法。
【請求項７】
コンピュータが読み込み実行することで、前記コンピュータを、請求項１乃至５のいずれか１項に記載の各手段として機能させることを特徴とするコンピュータプログラム。
【請求項８】
請求項１に記載の画像符号化装置で生成された符号化データを、復号する画像復号装置であって、
１ブロック分の符号化データを単位に入力する入力手段と、
入力した符号化データ中の予め設定された位置から、１ビットのデータ、及び、ブロックの代表画素値Ｃ０、Ｃ１の最下位ビットを除いたデータＶ０，Ｖ１、及び、ブロック内の各画素が前記代表画素値Ｃ０、Ｃ１のいずれに属するのかを示す識別情報を抽出する抽出手段と、
前記データＶ０とＶ１とを比較することで決まる前記データＶ０、Ｖ１の一方の最下位ビットに、前記１ビットのデータを追加することで、前記代表画素値Ｃ０、Ｃ１の一方の代表画素値を復元し、
前記データＶ０とＶ１の値の大小の並び順に従って、前記代表画素値Ｃ０、Ｃ１の他方の代表画素値を復元する代表画素値復元手段と、
前記識別情報の値に従って、前記代表画素値復元手段で復元された代表画素値Ｃ０、Ｃ１のいずれか一方を選択し、出力することで、複数の画素で構成されるブロックの画像を復元する画像復元手段と
を備えることを特徴とする画像復号装置。
【請求項９】
請求項１に記載の画像符号化装置で生成された符号化データを、復号する画像復号装置の制御方法であって、
入力手段が、１ブロック分の符号化データを単位に入力する入力工程と、
抽出手段が、入力した符号化データ中の予め設定された位置から、１ビットのデータ、及び、ブロックの代表画素値Ｃ０、Ｃ１の最下位ビットを除いたデータＶ０，Ｖ１、及び、ブロック内の各画素が前記代表画素値Ｃ０、Ｃ１のいずれに属するのかを示す識別情報を抽出する抽出工程と、
復元手段が、前記データＶ０とＶ１とを比較することで決まる前記データＶ０、Ｖ１の一方の最下位ビットに、前記１ビットのデータを追加することで、前記代表画素値Ｃ０、Ｃ１の一方の代表画素値を復元し、
前記データＶ０とＶ１の値の大小の並び順に従って、前記代表画素値Ｃ０、Ｃ１の他方の代表画素値を復元する代表画素値復元工程と、
画像復元手段が、前記識別情報の値に従って、前記代表画素値復元工程で復元された代表画素値Ｃ０、Ｃ１のいずれか一方を選択し、出力することで、複数の画素で構成されるブロックの画像を復元する画像復元工程と
を備えることを特徴とする画像復号装置の制御方法。
【請求項１０】
コンピュータが読み込み実行することで、前記コンピュータを請求項８に記載の各手段として機能させることを特徴とするコンピュータプログラム。
【請求項１１】
請求項７又は請求項１０に記載のコンピュータプログラムを格納したことを特徴とするコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像の符号化、復号技術に関するものである。
【背景技術】
【０００２】
従来、分割されたブロック画像に対して符号化処理を実行するものとしては、直交変換を用いた圧縮技術が一般的であった。直交変換を用いた符号化は自然画像に対しては有効な圧縮方法であるが、他方、文字や線画などの含まれる画像に対しては、画像の高周波成分が失われることを原因としてモスキートノイズやブロック歪が起こり、良好な結果を得られないことが知られていた。このような問題を解決するため、文字や線画の描かれた画像など、階調性よりも解像度が重要な画像に関して、ブロック画像内の画素を二色で近似することで解像度を保持しようとする二色化処理が提案されていた（例えば特許文献１）。この特許文献１には、ブロック内の画像が２つの色からなる画像と見なし、その２つの色を表わすデータと、各画素がいずれの色に対応するのかを識別する識別データを生成し、１つにパッキングし、符号化データとして出力する技術が開示されている。
【特許文献１】特開平０５−０５６２８２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところで、文字線画の場合、その画像を背景色と文字線画が示す色に２分し、その２つの色データと、各画素がいずれに属するのかを示す識別情報を生成することで、解像度が維持された符号化データを生成することが可能になる。１画素が８ビットであり、ｍ×ｎ画素のブロック単位に符号化することを想定すると、その符号化データは、２つの色データを表わす１６ビット＋識別情報を表わすｍ×ｎビットのデータ量となる。
【０００４】
本発明は、１ブロックの符号化データを更に少ないビット数に符号化することで、画像全体に対する符号化データ量を更に少なくする技術を提供しようとするものである。
【０００５】
また、他の発明は、上記作用効果に加えて、１ブロックの符号化データのサイズを８の整数倍のビット数、すなわち、電子機器やコンピュータプログラムでアクセスするのに都合の良い１バイトの整数倍の符号化データを生成する技術も提案する。
【課題を解決するための手段】
【０００６】
上記課題を解決するため、例えば本発明の画像符号化装置は以下の構成を備える。すなわち、
１画素が複数ビットで表わされる多値の画像データを符号化する画像符号化装置であって、
複数画素で構成されるブロックを単位に画像データを入力する入力手段と、
着目ブロック内の画素値の平均値ＡＶＥを算出し、算出した前記平均値ＡＶＥ以下の値を持つ画素群を第１グループ、前記平均値ＡＶＥよりも大きい値を持つ画素群を第２グループとしたとき、前記第１グループ、前記第２グループのそれぞれの画素値の平均値を、前記着目ブロックの代表画素値Ｃ０、Ｃ１として抽出する抽出手段と、
前記着目ブロック内の各画素が前記代表画素値Ｃ０、Ｃ１のいずれに属するかを示すための２値の識別情報を生成する識別情報生成手段と、
前記代表画素値Ｃ０、Ｃ１の予め設定された一方の画素値の最下位ビット、及び、前記代表画素値Ｃ０、Ｃ１それぞれの最下位ビットを除くＣ０’、Ｃ１’のデータを生成する生成手段と、
前記一方の画素値の最下位ビット、前記Ｃ０’、Ｃ１’、及び、前記識別情報をまとめて前記着目ブロックの符号化データを生成し、出力する出力手段とを備え、
前記出力手段は、前記代表画素値Ｃ０、Ｃ１の他方の代表画素値の最下位ビットの値に応じて、前記符号化データに配置する前記Ｃ０’、Ｃ１’の順番を、Ｃ０’、Ｃ１’、又は、Ｃ１’、Ｃ０’のいずれかにして出力することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、１ブロックの符号化データを更に少ないビット数に符号化することで、画像全体に対する符号化データ量を更に少なくすることが可能になる。
【０００８】
また、他の発明によれば、上記作用効果に加えて、１ブロックの符号化データのサイズを８の整数倍のビット数、すなわち、電子機器やコンピュータプログラムでアクセスするのに都合の良い１バイトの整数倍の符号化データを生成することが可能になる。
【発明を実施するための最良の形態】
【０００９】
以下、添付図面に従って本発明に係る実施形態を詳細に説明する。
【００１０】
なお、実施形態では、１画素が複数ビットで表わされる多値画像データ中の８ｍ×８ｎ画素（ｍ、ｎは１以上の整数）で構成されるブロックを単位に符号化する例を説明する。また、１画素は８ビット（２５６階調）のグレイスケールであるものとして説明する。そして、実施形態では、１ブロック分の符号化データを、固定長Ｌビット（Ｌ＝１６＋８ｍ×８ｎ）として生成する。なお、カラー画像の場合、複数の色成分を有する。カラー画像の場合には、各成分毎に、上記の固定長の符号化データを生成すればよい。
【００１１】
図１は実施形態における画像符号化装置のブロック構成図である。本装置は、ブロック化部１０１、２色抽出部１０２、２色符号化部１０３、多値符号化部１０４、及びセレクタ１０５を有する。
【００１２】
ブロック化部１０１は、符号化対象の画像データから８ｍ×８ｎ画素で構成される部分画像データ（以下、ブロックデータという）を入力する。なお、符号化対象の画像データの発生源は、イメージスキャナであるものとして説明するが、非圧縮の画像データを格納した記憶装置でも構わず、その種類は問わない。なお、説明を簡単なものとするため、以下では、ブロックのサイズを８×８画素（ｍ＝ｎ＝１）として説明する。従って、以下の説明における１ブロックの符号化データの固定長は１６＋８×８＝８０ビットとなる。詳細は以下の説明から明らかにするが、固定長８０ビットの先頭の１ビットは、符号化の種類を示すデータである。それ故、残りの７９ビットが１ブロックの符号化データを格納する容量となる。
【００１３】
２色抽出部１０２は、入力したブロックデータから２つの代表色（もしくは代表値）Ｃ０、Ｃ１を抽出する。具体的には、２色抽出部１０２は、ブロック内の各画素の値の平均値ＡＶＥを算出する。そして、算出した平均値ＡＶＥ以下の画素値を持つ画素群（第１グループ）と、平均値よりも大きな画素値を持つ画素群（第２グループ）に分類する。そして、２色抽出部１０２は、第１グループに属する各画素の平均値を算出し、それを代表色Ｃ０として決定する。また、同様に、２色抽出部１０２は、第２グループに属する各画素の平均値を算出し、それを代表色Ｃ１として決定する。そして、２色抽出部１０２は、決定した代表色Ｃ０、Ｃ１と、平均値ＡＶＥを２色符号化部１０３に出力する。
【００１４】
また、２色抽出部１０２は、代表色Ｃ０、Ｃ１の差Ｄ（＝Ｃ１−Ｃ０）と予め設定された閾値Ｔｈ（Ｔｈ＞１）とを比較し、その比較結果を判定信号（１ビット）として、２色符号化部１０３、多値符号化部１０４、及び、セレクタ部１０５に出力する。ここで、Ｄ＞Ｔｈであるとき判定信号は“１”、Ｄ≦Ｔｈの場合には判定信号は“０”とする。
【００１５】
２色符号化部１０３は、判定信号が“１”の場合に符号化処理を行なう。一方、多値符号化部１０４は判定信号が“０”の場合に符号化処理を行なう。そして、セレクタ１０５は、判定信号が“１”の場合には、２色符号化部１０３で生成された符号化データを選択して出力し、判定信号が“０”の場合には多値符号化部１０４で生成された符号化データを選択し、出力する。なお、セレクタ１０５は判定信号に応じて、いずれか一方の符号化データを選択するので、２つの符号化部は、判定信号とは無関係に符号化処理を行なっても構わない。
【００１６】
多値符号化部１０４は、公知の非可逆のＪＰＥＧ符号化を利用するものとした。すなわち、多値符号化部１０４は、ＤＣＴ変換、量子化、エントロピー符号化（直流成分、交流成分の順に符号化するものとする）を行なう。
【００１７】
実施形態では、１ブロック分の符号化データを固定長“８０”ビットにする例を説明している。本実施形態では、符号化の種類は２種類であるので、符号化データがいずれの種類の符号化データであるかを示す必要がある。それ故、多値符号化部１０４は、生成した符号化データが多値符号化部１０４によって生成されたことを示す符号化種別情報（１ビット）を付加し、それに後続して７９ビットの符号化データを出力する。
【００１８】
ここで、注目する点は、多値符号化部１０４で生成された符号化データをセレクタ１０５が選択するのは、判定信号が“０”の場合である。すなわち、着目ブロック内の各画素の代表色Ｃ０、Ｃ１の差Ｄが閾値以下（Ｄ≦Ｔｈ）の場合である。Ｄ≦Ｔｈであるのは、着目ブロック内には、文字線画等の高周波成分が含まれない、或いは少ないことを示している。従って、ＤＣＴ変換による交流（ＡＣ）成分の各変換係数は小さな値となり、且つ、量子化処理によってほとんどのＤＣＴ変換係数が“０”に量子化されることを意味する。それ故、多値符号化部１０４からの符号化データのデータ量が十分に小さいと言える。
【００１９】
実際の符号化データ量は、閾値Ｔｈの値に応じて変動する。しかしながら、閾値Ｔｈを或る程度以下の値にするのであれば、多値符号化部１０４からの符号化データが選択される場合、その符号化データのデータ量は、固定長以内とすることが可能である。なお、符号化データ量は何ビットになるかは実際に符号化処理を行なわないとわからない。そこで、多値符号化部１０４は、生成した符号化データのビット数が７９ビットに満たない場合にはダミーのビットを符号化データに後続して付加する。
【００２０】
また、仮に、多値符号化部１０４からの符号化データが７９ビットを超えた場合には、多値符号化部１０４は、先頭から７９ビットまでを符号化結果として出力する。７９ビットよりも後のデータは破棄されるが、そもそもそのような事態になることは希であり、あったとしても高周波成分のデータであるので、画質に与える影響は小さい。
【００２１】
次に実施形態における２色符号化部１０３を説明する。図２は、２色符号化部１０３のブロック構成図である。２色符号化部１０３は、比較部２０１、パック部２０２で構成される。
【００２２】
比較部２０１は、ブロック化部１０１からのブロックデータをラスタースキャンし、１画素単位に入力する。そして、比較部２０１は、入力した着目画素値と、２色抽出部１０２からの平均値ＡＶＥと比較し、着目画素値がその平均値以下である場合に“０”、着目画素値がその平均値より大きい場合に“１”の２値の信号をパック部２０２に出力する。要するに、比較部２０１は、各画素が、先に示した２色抽出部１０２における第１グループに属するのか、第２グループに属するのかを識別する識別情報（２値）を生成する識別情報生成部として機能する。以降、この比較部２０１が生成するデータを識別情報という。実施形態の場合、１ブロックは８×８画素としているので、識別情報は全部で８×８＝６４ビットとなる。
【００２３】
パック部２０２は、代表色Ｃ０、Ｃ１と、識別情報を結合し、出力する。但し、代表色Ｃ０、Ｃ１は共に８ビットであるので、単純に結合してしまうと、８×２＋６４＝８０ビットとなってしまい、符号化種別を示す１ビットを除く７９ビットに納めることができない。
【００２４】
そこで、本実施形態におけるパック部２０２は以下に示すようにして、２色Ｃ０、Ｃ１を１５ビットで表わすようにした。なお、既に説明したように、Ｃ０＜Ｃ１の関係にある点に注意されたい。また、代表色Ｃ０の最下位ビット（ビット０）を除くビット１乃至７で表わされる値をＣ０’、代表色Ｃ１の最下位ビット（ビット０）を除くビット１乃至７で表わされる値をＣ１’と表現する。Ｃ０’（Ｃ１’も同様）は、Ｃ０を下位方向に１ビットシフトした後、そのビット０乃至６を用いれば簡単に生成することができる。即ち、“＋”をビット結合を表すとすると、データの並びは以下のようになる。
・代表色Ｃ１のビット０が“０”の場合：
代表色Ｃ０のビット０＋Ｃ０’＋Ｃ１’
・代表色Ｃ１のビット０が“１”の場合：
代表色Ｃ０のビット０＋Ｃ１’＋Ｃ０’
【００２５】
図３（ａ），（ｂ）は、符号化種別情報（１ビット）と、識別情報（６４ビット）を含めた２色符号化部１０３の符号化データのデータ構造を示している。復号処理の詳細は後述するが、このデータから代表色Ｃ０、Ｃ１それぞれの８ビットのデータを復元できる。符号化データ中の、７ビットで表わされる２つの代表色の最初の値をデータＶ０、その次のデータＶ１としたとき、仮にＶ０＜Ｖ１であったとする。この場合、その符号化データ中の代表色はＣ０、Ｃ１の順番であり、図３（ａ）のケースであることが一義的に決まる。つまり、７ビットの代表色Ｃ１を１ビットだけ左（上位）にシフトし、その最下位ビット（ＬＳＢ）に“０”を設定（追加）することで、元の８ビットの代表色Ｃ１を復元できる。また、代表色Ｃ０は単純に、１ビット分だけ左シフトし、そのＬＳＢに、符号化データの２ビット目（Ｃ０のビット０）を格納すれば復元できる。
【００２６】
また、Ｖ０＞Ｖ１である場合、その符号化データ中の７ビットで表わされる代表色はＣ１、Ｃ０の順番であり、図３（ｂ）のケースであることが一義的に決まる。つまり、７ビットの代表色Ｃ１を１ビットだけ左（上位）にシフトし、そのＬＳＢに“１”を設定（追加）することで、元の８ビットの代表色Ｃ１を復元できる。また、代表色Ｃ０は単純に、１ビット分だけ左シフトし、そのＬＳＢに、符号化データの２ビット目（Ｃ０のビット０）を格納すれば復元できる。
【００２７】
上記のように、データＶ０，Ｖ１の大小比較と、その大小の並びに従って、２つの代表色復元が可能になる。
【００２８】
なお、代表色Ｃ０が偶数の値（最下位ビットが０の場合）であり、代表色Ｃ１がＣ０より“１”だけ大きい場合（最下位ビットが１の場合）に限って、Ｖ０＝Ｖ１となる。換言すれば、Ｖ０＝Ｖ１となるのは、代表色Ｃ０が偶数の値であり、代表色Ｃ１がＣ０より“１”だけ大きい場合のみと言える。かかる状況は、符号化データの２番目のビット（Ｃ０のビット０）が“０”であり、Ｖ０＝Ｖ１となる場合のみであるので、Ｖ０（又はＶ１）を上位方向に１ビットシフトし、最下位ビットに０をセットしたものがＣ０と特定できる。また、Ｃ１はＣ０に“１”を加算すれば得られる。
【００２９】
また、実施形態では、２色符号化部１０３が生成する符号化データのデータ構造が図３（ａ），（ｂ）のいずれかであるとした。しかしながら、これによって本発明が限定されるものではない。例えば、識別情報（６４ビット）、｛Ｃ０’、Ｃ１’｝、代表色の一方の最下位ビットの順番でも構わない。要は、符号化装置側と復号装置側で共通の配置のデータ構造となるようにすればよい。
【００３０】
以上説明したように本実施形態における２色符号化部１０３は、２つの代表色を表わす１６ビット、識別情報を表わす６４ビットをパックした際、１６＋６４ビットではなく、それより１ビット少ない符号化データを生成することが可能になる。昨今のイメージスキャナやデジタルカメラの解像度は高くなる一方であるので、必然、その中に含まれるブロック数は増える一方である。従って、１ブロックにつき１ビットを減らすことは、画像全体の符号化データ量を大幅に減らすことを意味する。
【００３１】
また、実施形態における多値符号化部１０４を除く構成で符号化装置を構成するのであれば、１画素が８ビット、１ブロックが８ｍ×８ｎである必要はなく、１ブロックが複数画素であればよい。当然、符号化種別情報も不要となることも容易に理解できるであろう。
【００３２】
また、上記実施形態の如く、２色符号化部１０３と多値符号化部１０４を混在して、１画素８ビットの画像データを８×８画素のブロック単位に符号化する場合、１ブロックの画像を固定長８０ビットの符号化データを生成することが可能になる。また、１ブロックのデータが８の整数倍、すなわち、バイトの整数倍で表わされるので、アクセス効率も高くなることも約束されることになる。
【００３３】
なお、上記実施形態では、モノクロ多値画像を例にしたが、カラー画像に適用しても良い。カラー画像、例えば、Ｒ、Ｇ、Ｂの３成分が各８ビットで表わされる場合、各成分毎に上記実施形態の処理を行なえばよい。
【００３４】
また、実施形態では、符号化種別情報は、各符号化部が生成するものとして説明したが、セレクタ１０５が、２色抽出部からの情報に基づき、符号化種別情報を付加するようにしても構わない。
【００３５】
次に、実施形態における画像復号装置について説明する。図４は実施形態における画像復号装置のブロック構成図である。本装置は、符号化種別判定部３０１、２色復号部３０２、多値復号部３０３、及び、セレクタ部３０４を有する。
【００３６】
符号化種別判定部３０１は、８０ビットの符号化データの先頭の１ビット（符号化種別情報）が“０”であるか“１”であるか判定する。換言すれば、符号化種別判定部３０１は、着目符号化データが２色符号化部１０３、多値符号化部１０４のいずれによって生成された符号化データであるのかを判定する。符号化種別判定部３０１は、その判定結果を制御信号として、２色復号部３０２、多値復号部３０３、及び、セレクタ部３０４に出力する。
【００３７】
２色復号部３０２は、符号化種別判定部３０１からの制御信号が２色符号化部１０３で符号化されていることを示す場合に、着目符号化データが２色符号化データであるものとして復号する。
【００３８】
この２色復号部３０２は、入力した符号化データが図３（ａ）、（ｂ）のいずれかであるかを判定する。すなわち、７ビットで表わされる２つの代表色の値を比較し、図３（ａ），（ｂ）のいずれのタイプであるかを判定し、８ビットの代表色Ｃ０、Ｃ１を復元する。この復元のアルゴリズムは先に説明した通りである。そして、後続する６４ビットの識別情報がラスタースキャン順に並んでいるものとし、個々の識別情報が“０”の画素位置に対しては代表色Ｃ０をその画素値として出力する。そして、識別情報が“１”の画素位置に対しては代表色Ｃ１をその画素値として出力する。これを６４ビットについて行なうことで、８×８画素の画像データを復元する。
【００３９】
一方、多値復号部３０３は、符号化種別判定部３０１からの制御信号が多値符号化部１０４で符号化されていることを示す場合に、着目符号化データが多値符号化データであるものとしてＪＰＥＧ復号する。復号処理は、エントロピー復号、逆量子化、逆ＤＣＴ変換の順に行われる。このとき、符号化種別情報を除く７９ビットを順にエントロピー復号した結果、ＥＯＢ（End Of Block）が検出できた場合には、ＥＯＢ以降のデータはダミーとして無視する。また、エントロピー復号処理でＥＯＢが検出できなかった場合には、不足する個数の量子化後のＤＣＴ係数は“０”であるものとして、復号処理を続ける。
【００４０】
セレクタ部３０４は、符号化種別判定部３０１からの制御信号が２色符号化部１０３で符号化されていることを示す場合には、２色復号部３０２からの８×８画素のデータを選択し、出力する。一方、符号化種別判定部３０１からの制御信号が多値符号化部１０４で符号化されていることを示す場合には、多値復号部３０３からの８×８画素のデータを選択し、出力する。これを繰り返すことで、画像復元（復号）が行われる。
【００４１】
以上説明したように本実施形態の２色復号部は、１５＋６４ビットを単位に入力し、
そこから２つの代表色Ｃ０、Ｃ１を決定し、８×８画素の１ブロックの符号化データを復元できる。
【００４２】
なお、２色復号部を単独で備える復号装置の場合、１ブロックの符号化データは７９ビットで良い。すなわち、一般論で言えば、１画素がＭビットで表わされ、ｍ×ｎ画素ブロックの符号化データの場合、１ブロックの符号化データのデータ量（データ長）は２Ｍ−１＋ｍ×ｎビットとなる。
【００４３】
また、本実施形態によれば、先に説明した符号化装置で生成された多値符号化データ、２色符号化データが混在した符号化データを復号することも可能になる。
【００４４】
なお、１ブロックの符号化データのデータ長を８の整数倍にするのであれば、１ブロックのサイズは８ｎ×８ｍ画素で良い。また、１ブロックのサイズが８ｎ×８ｍの場合の固定符号長をＬとしたとする。多値符号化部１０４は、そのブロック内に８×８画素のサブブロックがｎ×ｍ個存在するものとして、８×８画素についてＪＰＥＧ符号化をｍ×ｎ回行なう。このとき、１つのサブブロックのＪＰＥＧ符号化データについては、Ｌ／（ｍ×ｎ）−１、それ以外のサブブロックのＪＰＥＧ符号化データについてはＬ／（ｍ×ｎ）の固定長になるようにすればよい。
【００４５】
また、実施形態では、符号化種別情報の後に、色Ｃ０のビット０を格納したが、色Ｃ１のビット０を格納しても構わない。この場合、色Ｃ０のビット０の値に応じて、色Ｃ０、Ｃ１の順番を決定すればよい。
【００４６】
＜変形例の説明＞
上記実施形態と同様の処理を、コンピュータプログラムによって実現する例を以下に説明する。コンピュータプログラムは、例えばパーソナルコンピュータで良く、そのハードウェア資源はＣＰＵ、ＲＯＭ、ＲＡＭ、ＨＤＤ、表示装置（表示制御部）、及び、画像入力装置（イメージスキャナ）で構成すれば良く、その説明は不要であろう。そこで、以下では、符号化、復号を行なうアプリケーションプログラムによる処理手順を図面に従って説明する。
【００４７】
先ず、ＣＰＵが実行するアプリケーションプログラムにおける符号化の処理手順を図５のフローチャートに従って説明する。なお、このアプリケーションプログラムは、ハードディスク装置等の記憶媒体に格納されているものであり、ＯＳ（オペレーティングシステム）の制御下で、ＲＡＭにロードされ実行されるものである。また、符号化対象の画像データの発生源は特に問わないが、イメージスキャナであるものとして説明し、符号化結果はハードディスクにファイルとして保存するものとして説明する。
【００４８】
先ず、ステップＳ１にて、符号化対象の画像データを１ブロック分（８×８画素）を入力する。次いで、ステップＳ２にて、入力したブロック内の画素の平均値ＡＶＥを算出する。そして、その平均値ＡＶＥ以下の値を持つ画素群の平均値を代表色Ｃ０、平均値ＡＶＥを超える値を持つ画素群の平均値を代表色Ｃ１として算出する。このとき、ブロック内の全画素が同一の画素値である場合、Ｃ０＝Ｃ１となる。
【００４９】
ステップＳ３では、「Ｃ１−Ｃ０」が閾値Ｔｈより大きいか否かを判定する。「Ｃ１−Ｃ０」が閾値Ｔｈ以下であると判定した場合、すなわち、着目ブロックに高周波成分が少ないと判断した場合、処理はステップＳ４に進む。このステップＳ４では、多値符号化（ＪＰＥＧ符号化）を行ない、先頭に多値符号化されたことを示す１ビットのデータを付加し、それに後続する７９ビットの符号化データを生成する。この後、ステップＳ５にて、生成された固定長８０ビットの符号化データ（多値符号化データ）を出力する。
【００５０】
一方、ステップＳ３では、「Ｃ１−Ｃ０」が閾値Ｔｈより大きいと判定した場合、着目ブロックには文字線画が含まれると判定できる。そこで、ステップＳ６に進み、２色符号化処理を行なう。すなわち、２色符号化されたことを示す１ビットのデータ、色Ｃ０のビット０、そして、色Ｃ１のビット０の値に応じた順番で色Ｃ０、Ｃ１の上位７ビットを生成する。そして、先のステップＳ２で算出した平均値ＡＶＥとブロック内の各画素値とを比較し、各画素が２つのグループのいずれに属するのかを示す識別情報を生成する。そして、これらのデータをまとめ、図３（ａ）又は図３（ｂ）のデータを構築する。
【００５１】
この後、ステップＳ７にて、構築したデータを出力する。
【００５２】
ステップＳ５又はステップＳ７の処理を終えると、処理はステップＳ８に進み、全ブロックの符号化処理が完了したか否かを判定する。未完であると判定した場合には、ステップＳ１以降の処理を繰り返す。
【００５３】
こうして、ステップＳ８にて、全ブロックの符号化処理が完了したと判断した場合、符号化処理を終了する。
【００５４】
次に、ＣＰＵが実行するアプリケーションプログラムにおける復号処理を説明する。ここでは、ハードディスクに格納された圧縮符号化データファイル（既にユーザがＧＵＩを介して選択しているものとする）を復号し、表示する例を説明する。復号結果を表示するわけであるから、復号した画像データの出力先は、表示制御部が有するビデオメモリとなる。
【００５５】
先ず、ステップＳ１１で、１ブロック分の符号化データ（固定長８０ビット）を符号化データファイルからＲＡＭ内に入力する。次いで、ステップＳ１２にて、その先頭の１ビットの符号化種別情報が“０”か“１”かを判定する。すなわち、入力した符号化データが２色符号化データであるか、多値符号化データであるかを判定する。
【００５６】
多値符号化データであると判定した場合には、ステップＳ１３に処理を進め、ＪＰＥＧ復号処理を行なう。このＪＰＥＧ復号処理は、公知のエントロピー復号、逆量子化、逆ＤＣＴ変換の順に行われる。ただし、符号化種別情報を除く７９ビットを順にエントロピー復号した結果、ＥＯＢは検出できた場合には、ＥＯＢ以降のデータはダミーとして無視する。また、エントロピー復号処理でＥＯＢが検出できなかった場合には、不足する個数の量子化後のＤＣＴ係数は“０”であるものとして、復号処理を続ける。こうして、８×８画素のブロック画像データが復号されると、ステップＳ１４にて、そのブロック画像データを出力する。
【００５７】
一方、入力した符号化データが２色符号化データであると判定した場合、処理はステップＳ１５に進み。このステップＳ１５では、入力した符号化データが図３（ａ）、（ｂ）のいずれかであるかを判定する。すなわち、７ビットで表わされる２つの代表色の値を比較し、図３（ａ），（ｂ）のいずれのタイプであるかを判定し、８ビットの代表色Ｃ０、Ｃ１を復元する。そして、後続する６４ビットの識別情報がラスタースキャン順に並んでいるものとし、個々の識別情報が“０”の画素位置に対しては代表色Ｃ０をその画素値として置き換える。そして、識別情報が“１”の画素位置に対しては代表色Ｃ１をその画素値として置き換える。これを６４ビットについて行なうことで、８×８画素の画像データを復元する。この後、ステップＳ１６にて、復元した８×８画素の画像データを出力する。
【００５８】
ステップＳ１４、又は、ステップＳ１６の処理を終えると、処理はステップＳ１７に進み、全ブロックの復号処理を完了したか否かを判定する。未完であると判定した場合には、ステップＳ１１以降の処理を繰り返す。
【００５９】
以上説明したように先に説明した符号化及び復号処理を、コンピュータプログラムによっても実現できるようになり、同様の作用効果を奏することが可能になる。
【００６０】
＜第２の実施形態＞
上記第１の実施形態、及び、その変形例では、２つの符号化データのいずれかを選択するための基準を、代表色Ｃ０、Ｃ１の差が閾値Ｔｈ以下であるか否かに従うものとしたが、これによって本発明が限定されるものではない。
【００６１】
例えば、一旦、２色符号化データを復号した結果とオリジナルの８×８画素の画像データとの誤差と、多値符号化データを復号した結果とオリジナルの８×８画素の画像データとの誤差を求める。そして、２つの誤差の小さい方を出力対象の符号化データとして決定しても構わない。より詳しく説明すると次の通りである。
【００６２】
オリジナル（符号化前）の８×８画素の各画素値Ｘ（ｉ，ｊ）（ｉ，ｊ＝０、１，２，…７）と定義する。また、２色符号化データを復号して得られた８×８画素の各画素値をＹ（ｉ，ｊ）、多値符号化データを復号した８×８画素の各画素値をＺ（ｉ，ｊ)と定義する。そして、セレクタ部１０５は、次式に従って誤差Ｄ１、誤差Ｄ２を算出する。
Ｄ１＝Σ｜Ｘ（ｉ，ｊ）−Ｙ（ｉ，ｊ）｜
Ｄ２＝Σ｜Ｘ（ｉ，ｊ）−Ｚ（ｉ，ｊ）｜
なお、｜ｐ｜は値ｐの絶対値を示し、Σはｉ，ｊ＝０，１、…７の合算を示している。また、画素間の差の絶対値を求めるのではなく、次式のように画素間の差を２乗和を求めても構わない。
Ｄ１＝Σ｛Ｘ（ｉ，ｊ）−Ｙ（ｉ，ｊ）｝^2
Ｄ２＝Σ｛Ｘ（ｉ，ｊ）−Ｚ（ｉ，ｊ）｝^2
（Ｐ^2は、Ｐの２乗を示す）
【００６３】
いずれの場合であっても、セレクタ部１０５は、Ｄ１≦Ｄ２を満たす場合、２色符号化データを選択し、Ｄ１＞Ｄ２の場合には多値符号化データを選択する。
【００６４】
また、２色抽出部１０２は、着目ブロック内の全画素値が同一であった場合、２色抽出部１０２は２つの代表色Ｃ０、Ｃ１のうち、一方を実在する色とする。そして、もう一方を、ダミーデータとする。そして、その中央値をＡＶＥとして２色符号化部１０３に出力すればよい。一例を挙げるなら、次の通りである。
【００６５】
今、着目ブロック内の全画素の値が仮に“２５５”であったとする。この場合、２色抽出部１０２は、Ｃ０＝２５５（実在する色）、Ｃ１＝０（ダミーデータ）、その中央値の“１２８”をＡＶＥとして２色符号化部１０３に出力する。２色符号化部１０３は、図３の構成によって、全画素の識別情報を“１”として決定することになるだけであり、何等矛盾は生じない。
【００６６】
以上説明したように本第２の実施形態に従えば、第１の実施形態の作用効果に加えて、より正確にオリジナル画像に近似する画像を復号可能な符号化データを生成することが可能になる。
【００６７】
なお、本第２の実施形態における復号装置は、第１の実施形態と同じであるので、その説明は省略する。また、本第２の実施形態に相当する機能を、先に説明した第１の実施形態の変形例と同様に、コンピュータプログラムによって実現できることは明らかである。
【００６８】
通常、コンピュータプログラムは、ＣＤ−ＲＯＭ等のコンピュータ可読記憶媒体に格納され、それをコンピュータが有する読取り装置（ＣＤ−ＲＯＭドライブ等）にセットし、システムにコピーもしくはインストールすることで実行可能になる。従って、このようなコンピュータ可読記憶媒体も本発明の範疇にあることも明らかである。
【図面の簡単な説明】
【００６９】
【図１】実施形態における画像符号化装置のブロック構成図である。
【図２】図１における２色符号化部のブロック構成図である。
【図３】２色符号化部が生成する符号化データのデータ構造を示す図である。
【図４】実施形態における画像復号装置のブロック構成図である。
【図５】符号化処理手順を示すフローチャートである。
【図６】復号処理手順を示すフローチャートである。
【図１】
0004971881.tif 000002
【図２】
0004971881.tif 000003
【図３】
0004971881.tif 000004
【図４】
0004971881.tif 000005
【図５】
0004971881.tif 000006
【図６】
0004971881.tif 000007