(57)【要約】【課題】  自然画像などの符号化効率を維持しつつ、ＣＧ画像や、色数の少ない画像等の、頻度分布に偏りのある画像データに対しても圧縮率で可逆符号化する。【解決手段】  信号線２０６からはラスタ順に画素データが入力される。バッファ２０１には、既に符号化済みの位置の画素データを記憶する。色数判定部１０１は、着目画素の近傍の既符号化された複数の画素位置の色数を計数する。近傍一致情報符号化部１０２は、色数が所定数以下の場合、着目画素と同じ色の画素が近傍画素ａ，ｂ，ｃに存在するか否か、存在する場合にはその近傍画素位置を特定するベクトル情報を生成し、符号化する。符号生成部１０５は、着目画素と同じ色の近傍画素が存在しない場合、ベクトル情報の符号語に続けて、着目画素の各成分データを非圧縮状態で出力する。また、色数が所定数を超える場合には、成分予測符号化部１０３からの符号語を出力する。【選択図】  図１
2006246062.tif 000002
【特許請求の範囲】
【請求項１】
１画素が複数の色成分データで構成されている画像データを、可逆符号化する画像符号化装置であって、
入力した着目画素データを構成する複数の色成分データそれぞれについて、前記着目画素の近傍の、符号化済みの画素の色成分データを参照して予測値を求め、予測符号化データを生成する予測符号化手段と、
前記着目画素の近傍にあって、符号化済み画素位置にある複数の画素データ間に含まれる色数を計数し、色数情報を生成する色数計数手段と、
前記着目画素データと、前記着目画素の近傍にあって符号化済み画素位置にある複数の画素データどうしとを比較し、着目画素と同じ色の近傍画素が存在するか否か、及び、存在する場合には着目画素に対する該当近傍画素の相対位置を特定するベクトル情報を生成するベクトル情報生成手段と、
前記ベクトル情報を符号化するベクトル情報符号化手段と、
前記色数計数手段より得られた色数情報、及び、前記ベクトル情報生成手段で得られたベクトル情報に基づき、前記予測符号化手段、前記ベクトル情報符号化手段で得られた符号化データから出力用の符号化データを生成する符号化データ生成手段とを備え、
当該符号化データ生成手段は、
（ａ）前記色数情報で示される色数が所定閾値以下で、且つ、前記ベクトル情報が着目画素と同じ色を持つ近傍画素の存在を示す場合、前記ベクトル情報符号化手段で生成された符号化データを、着目画素の符号化データとして出力し、
（ｂ）前記色数計数手段で計数された色数が所定閾値以下で、且つ、前記ベクトル情報が着目画素と同じ色を持つ近傍画素の非存在を示す場合、前記ベクトル情報符号化手段で生成された符号化データと着目画素データの非圧縮データを、着目画素の符号化データとして出力し、
（ｃ）前記色数計数手段で計数された色数が所定閾値を超える場合、前記予測符号化手段で生成された予測符号化データを、着目画素の符号化データとして出力する
ことを特徴とする画像符号化装置。
【請求項２】
更に、符号化済みの画素から同一色の画素の連続が予想される場合に、所定の符号化済み画素と同一色を持つ後続入力画素の数を計数し、計測した連続数の符号化データを出力するランレングス符号化手段と、
該ランレングス符号化手段で同一色の画素の連続性の符号化データが生成されるタイミングで、当該ランレングス符号化手段からの符号化データを選択して出力し、符号化済みの画素からの画素の連続が予想されない場合には、前記符号化データ生成手段からの符号化データを選択し、出力する制御手段と
を備えることを特徴とする請求項１に記載の画像符号化装置。
【請求項３】
前記ベクトル情報生成手段は、前記色数計数手段で得られた色数情報で示される色数に応じたベクトル情報を生成し、
前記ベクトル情報符号化手段は、前記色数情報で示される色数毎に想定される確率分布に応じて構成された符号を用いて、前記ベクトル情報の符号語を生成することを特徴とする請求項１に記載の画像符号化装置。
【請求項４】
前記着目画素の近傍の符号化済み画素位置にある複数の画素データ間で、着目色成分における最上位ビットから下位ビットに向かう共通なビット数ｎを算出する算出手段と、
算出された着目画素の上位ｎビットと、符号化済み画素位置にある特定の画素データの上位ｎビットとを比較し、両者が一致するか否かを判定し、１ビットの判定情報を出力する判定手段と、
該判定手段からの判定情報が一致することを示す場合、着目画素データの上位ｎビットを除去した下位ビットデータを、判定情報が不一致であることを示す場合には着目画素データの全ビットデータを、前記判定情報に後続して出力する共通ビット除去手段とを備え、
前記符号化データ生成手段の処理（ｂ）における非圧縮データとして、前記共通ビット除去手段で生成されたデータを利用することを特徴とする請求項１に記載の画像符号化装置。
【請求項５】
１画素が複数の色成分データで構成されている画像データを、可逆符号化する画像符号化装置の制御方法であって、
入力した着目画素データを構成する複数の色成分データそれぞれについて、前記着目画素の近傍の、符号化済みの画素の色成分データを参照して予測値を求め、予測符号化データを生成する予測符号化工程と、
前記着目画素の近傍にあって、符号化済み画素位置にある複数の画素データ間に含まれる色数を計数し、色数情報を生成する色数計数工程と、
前記着目画素データと、前記着目画素の近傍にあって符号化済み画素位置にある複数の画素データどうしとを比較し、着目画素と同じ色の近傍画素が存在するか否か、及び、存在する場合には着目画素に対する該当近傍画素の相対位置を特定するベクトル情報を生成するベクトル情報生成工程と、
前記ベクトル情報を符号化するベクトル情報符号化工程と、
前記色数計数工程より得られた色数情報、及び、前記ベクトル情報生成工程で得られたベクトル情報に基づき、前記予測符号化工程、前記ベクトル情報符号化工程で得られた符号化データから出力用の符号化データを生成する符号化データ生成工程とを備え、
当該符号化データ生成工程は、
（ａ）前記色数情報で示される色数が所定閾値以下で、且つ、前記ベクトル情報が着目画素と同じ色を持つ近傍画素の存在を示す場合、前記ベクトル情報符号化工程で生成された符号化データを、着目画素の符号化データとして出力し、
（ｂ）前記色数計数工程で計数された色数が所定閾値以下で、且つ、前記ベクトル情報が着目画素と同じ色を持つ近傍画素の非存在を示す場合、前記ベクトル情報符号化工程で生成された符号化データと着目画素データの非圧縮データを、着目画素の符号化データとして出力し、
（ｃ）前記色数計数工程で計数された色数が所定閾値を超える場合、前記予測符号化工程で生成された予測符号化データを、着目画素の符号化データとして出力する
ことを特徴とする画像符号化装置の制御方法。
【請求項６】
コンピュータが読込み実行することで、１画素が複数の色成分データで構成されている画像データを、可逆符号化する画像符号化装置として機能するコンピュータプログラムであって、
入力した着目画素データを構成する複数の色成分データそれぞれについて、前記着目画素の近傍の、符号化済みの画素の色成分データを参照して予測値を求め、予測符号化データを生成する予測符号化手段と、
前記着目画素の近傍にあって、符号化済み画素位置にある複数の画素データ間に含まれる色数を計数し、色数情報を生成する色数計数手段と、
前記着目画素データと、前記着目画素の近傍にあって符号化済み画素位置にある複数の画素データどうしとを比較し、着目画素と同じ色の近傍画素が存在するか否か、及び、存在する場合には着目画素に対する該当近傍画素の相対位置を特定するベクトル情報を生成するベクトル情報生成手段と、
前記ベクトル情報を符号化するベクトル情報符号化手段と、
前記色数計数手段より得られた色数情報、及び、前記ベクトル情報生成手段で得られたベクトル情報に基づき、前記予測符号化手段、前記ベクトル情報符号化手段で得られた符号化データから出力用の符号化データを生成する符号化データ生成手段として機能し、
当該符号化データ生成手段は、
（ａ）前記色数情報で示される色数が所定閾値以下で、且つ、前記ベクトル情報が着目画素と同じ色を持つ近傍画素の存在を示す場合、前記ベクトル情報符号化手段で生成された符号化データを、着目画素の符号化データとして出力し、
（ｂ）前記色数計数手段で計数された色数が所定閾値以下で、且つ、前記ベクトル情報が着目画素と同じ色を持つ近傍画素の非存在を示す場合、前記ベクトル情報符号化手段で生成された符号化データと着目画素データの非圧縮データを、着目画素の符号化データとして出力し、
（ｃ）前記色数計数手段で計数された色数が所定閾値を超える場合、前記予測符号化手段で生成された予測符号化データを、着目画素の符号化データとして出力する
ことを特徴とするコンピュータプログラム。
【請求項７】
請求項６に記載のコンピュータプログラムを格納したことを特徴とするコンピュータ可読記憶媒体。
【請求項８】
１画素が複数の色成分データで構成され、符号化された符号化画像データを復号する画像復号装置であって、
入力した着目画素データの近傍の、復号済みの画素の色成分データを参照して予測値を求め、予測符号化データを復号する予測復号手段と、
前記着目画素の近傍にあって、復号済み画素位置にある複数の画素データ間に含まれる色数を計数し、色数情報を生成する色数計数手段と、
該色数計数手段で得られた色数情報による色数が所定数を超えることを示す場合、着目画素の符号化データは予測符号化データであるとして、前記予測復号手段によって得られた復号結果を、着目画素の復号データとして出力する第１の復号データ出力手段と、
前記色数計数手段で得られた色数情報による色数が所定数以下の場合、着目画素の符号化データは、ベクトル情報であると判定し、当該ベクトル情報を復号するベクトル情報復号手段と、
該ベクトル情報復号手段で得られたベクトル情報が、着目画素と同じ色を持つ、近傍の復号済み画素位置を示す場合、該当する位置の復号済み画素データを選択し、着目画素の復号データとして出力する第２の復号データ出力手段と、
該ベクトル情報復号手段で得られたベクトル情報が、着目画素と同じ色を持つ近傍の画素位置が存在しないことを示す場合、後続して入力されるデータは、着目画素の非圧縮データであるものとして出力する第３の復号データ出力手段と
を備えることを特徴とする画像復号装置。
【請求項９】
更に、復号済みの画素から同一色を持つ画素の連続が予想される場合に、入力した符号化データをランレングス符号化データであるものとし、所定の復号済み画素と同一色を持つ画素の連続数を復号し、所定の復号済みの画素データを、復号した連続数だけ出力するランレングス復号手段と、
該ランレングス復号手段で画素データを出力中は、前記第１、第２、第３の復号データ出力手段からの出力を無効とし、前記ランレングス復号手段による復号した全画素データの出力した直後のタイミングで、前記第１、第２、第３の復号データ出力手段からのからの出力を有効にする制御手段と
を備えることを特徴とする請求項８に記載の画像復号装置。
【請求項１０】
前記ベクトル情報復号手段は、前記色数計数手段で得られた色数情報で示される色数毎に想定される確率分布に応じて構成された符号を用いてベクトル情報を復号することを特徴とする請求項８に記載の画像復号装置。
【請求項１１】
１画素が複数の色成分データで構成され、符号化された符号化画像データを復号する画像復号装置の制御方法であって、
入力した着目画素データの近傍の、復号済みの画素の色成分データを参照して予測値を求め、予測符号化データを復号する予測復号工程と、
前記着目画素の近傍にあって、復号済み画素位置にある複数の画素データ間に含まれる色数を計数し、色数情報を生成する色数計数工程と、
該色数計数工程で得られた色数情報による色数が所定数を超えることを示す場合、着目画素の符号化データは予測符号化データであるとして、前記予測復号工程によって得られた復号結果を、着目画素の復号データとして出力する第１の復号データ出力工程と、
前記色数計数工程で得られた色数情報による色数が所定数以下の場合、着目画素の符号化データは、ベクトル情報であると判定し、当該ベクトル情報を復号するベクトル情報復号工程と、
該ベクトル情報復号工程で得られたベクトル情報が、着目画素と同じ色を持つ、近傍の復号済み画素位置を示す場合、該当する位置の復号済み画素データを選択し、着目画素の復号データとして出力する第２の復号データ出力工程と、
該ベクトル情報復号工程で得られたベクトル情報が、着目画素と同じ色を持つ近傍の画素位置が存在しないことを示す場合、後続して入力されるデータは、着目画素の非圧縮データであるものとして出力する第３の復号データ出力工程と
を備えることを特徴とする画像復号装置。
【請求項１２】
コンピュータが読込み実行することで、１画素が複数の色成分データで構成され、符号化された符号化画像データを復号する画像復号装置として機能するコンピュータプログラムであって、
入力した着目画素データの近傍の、復号済みの画素の色成分データを参照して予測値を求め、予測符号化データを復号する予測復号手段と、
前記着目画素の近傍にあって、復号済み画素位置にある複数の画素データ間に含まれる色数を計数し、色数情報を生成する色数計数手段と、
該色数計数手段で得られた色数情報による色数が所定数を超えることを示す場合、着目画素の符号化データは予測符号化データであるとして、前記予測復号手段によって得られた復号結果を、着目画素の復号データとして出力する第１の復号データ出力手段と、
前記色数計数手段で得られた色数情報による色数が所定数以下の場合、着目画素の符号化データは、ベクトル情報であると判定し、当該ベクトル情報を復号するベクトル情報復号手段と、
該ベクトル情報復号手段で得られたベクトル情報が、着目画素と同じ色を持つ、近傍の復号済み画素位置を示す場合、該当する位置の復号済み画素データを選択し、着目画素の復号データとして出力する第２の復号データ出力手段と、
該ベクトル情報復号手段で得られたベクトル情報が、着目画素と同じ色を持つ近傍の画素位置が存在しないことを示す場合、後続して入力されるデータは、着目画素の非圧縮データであるものとして出力する第３の復号データ出力手段
として機能することを特徴とするコンピュータプログラム。
【請求項１３】
請求項１２に記載のコンピュータプログラムを格納したことを特徴とするコンピュータ可読記憶媒体。
【請求項１４】
１画素が複数の色成分データで構成されている画像データを、可逆符号化する画像符号化装置であって、
入力した着目画素データを構成する複数の色成分データそれぞれについて、前記着目画素の近傍の、符号化済みの画素の色成分データを参照して予測値を求め、予測符号化データを生成する予測符号化手段と、
前記着目画素の近傍にあって、符号化済み画素位置にある複数の画素データ間に含まれる色数を計数し、色数情報を生成する色数計数手段と、
前記着目画素データと、前記着目画素の近傍にあって符号化済み画素位置にある複数の画素データどうしとを比較し、着目画素と同じ色の近傍画素が存在するか否か、及び、存在する場合には着目画素に対する該当近傍画素の相対位置を特定するベクトル情報を生成するベクトル情報生成手段と、
前記ベクトル情報を符号化するベクトル情報符号化手段と、
前記着目画素の近傍にあって、符号化済み画素位置にある複数の画素間の差分値を求め、当該差分値が所定閾値以上であるか否かを判定情報を出力する差分値演算手段と、
前記色数計数手段で計数された色数情報と、前記差分値演算手段で得られた判定情報に基づき、前記ベクトル情報符号化手段、前記予測符号化手段のいずれかを選択する選択手段と
を備えることを特徴とする画像符号化装置。
【請求項１５】
更に、符号化済みの画素から同一色の画素の連続が予想される場合に、所定の符号化済み画素と同一色をもつ後続入力画素の数を計数し、計測した連続数の符号化データを出力するランレングス符号化手段と、
該ランレングス符号化手段で同一色の画素の連続性の符号化データが生成されるタイミングで、当該ランレングス符号化手段からの符号化データを選択して出力し、符号化済みの画素からの画素の連続が予想されない場合には、前記選択手段で選択された符号化手段からの出力を有効にする制御手段と
を備えることを特徴とする請求項１４に記載の画像符号化装置。
【請求項１６】
前記選択手段は、
ｉ）前記色数が第１の閾値以下である、
ｉｉ）前記色数が前記第１の閾値より大きい第２の閾値以下であり、且つ、前記差分演算手段による判定情報が前記所定閾値以上である、
の条件ｉ、ｉｉのいずれかを満たす場合、前記ベクトル情報符号化手段を選択し、
前記条件ｉ，ｉｉのいずれも満たさない場合には、前記予測符号化手段を選択する
ことを特徴とする請求項１４に記載の画像符号化装置。
【請求項１７】
前記ベクトル情報符号化手段は、
（ａ）前記色数情報で示される色数が所定閾値以下で、且つ、前記ベクトル情報が着目画素と同じ色を持つ近傍画素の存在を示す場合、前記ベクトル情報符号化手段で生成された符号化データを、着目画素の符号化データとして出力し、
（ｂ）前記色数計数手段で計数された色数が所定閾値以下で、且つ、前記ベクトル情報が着目画素と同じ色を持つ近傍画素の非存在を示す場合、前記ベクトル情報符号化手段で生成された符号化データと着目画素データの非圧縮データを、着目画素の符号化データとして出力する
ことを特徴とする請求項１４に記載の画像符号化装置。
【請求項１８】
１画素が複数の色成分データで構成されている画像データを、可逆符号化する画像符号化装置の制御方法であって、
入力した着目画素データを構成する複数の色成分データそれぞれについて、前記着目画素の近傍の、符号化済みの画素の色成分データを参照して予測値を求め、予測符号化データを生成する予測符号化工程と、
前記着目画素の近傍にあって、符号化済み画素位置にある複数の画素データ間に含まれる色数を計数し、色数情報を生成する色数計数工程と、
前記着目画素データと、前記着目画素の近傍にあって符号化済み画素位置にある複数の画素データどうしとを比較し、着目画素と同じ色の近傍画素が存在するか否か、及び、存在する場合には着目画素に対する該当近傍画素の相対位置を特定するベクトル情報を生成するベクトル情報生成工程と、
前記ベクトル情報を符号化するベクトル情報符号化工程と、
前記着目画素の近傍にあって、符号化済み画素位置にある複数の画素間の差分値を求め、当該差分値が所定閾値以上であるか否かを判定情報を出力する差分値演算工程と、
前記色数計数工程で計数された色数情報と、前記差分値演算工程で得られた判定情報に基づき、前記ベクトル情報符号化工程、前記予測符号化工程のいずれかを選択する選択工程と
を備えることを特徴とする画像符号化装置の制御方法。
【請求項１９】
コンピュータが読込み実行することで、１画素が複数の色成分データで構成されている画像データを、可逆符号化する画像符号化装置として機能するコンピュータプログラムであって、
入力した着目画素データを構成する複数の色成分データそれぞれについて、前記着目画素の近傍の、符号化済みの画素の色成分データを参照して予測値を求め、予測符号化データを生成する予測符号化手段と、
前記着目画素の近傍にあって、符号化済み画素位置にある複数の画素データ間に含まれる色数を計数し、色数情報を生成する色数計数手段と、
前記着目画素データと、前記着目画素の近傍にあって符号化済み画素位置にある複数の画素データどうしとを比較し、着目画素と同じ色の近傍画素が存在するか否か、及び、存在する場合には着目画素に対する該当近傍画素の相対位置を特定するベクトル情報を生成するベクトル情報生成手段と、
前記ベクトル情報を符号化するベクトル情報符号化手段と、
前記着目画素の近傍にあって、符号化済み画素位置にある複数の画素間の差分値を求め、当該差分値が所定閾値以上であるか否かを判定情報を出力する差分値演算手段と、
前記色数計数手段で計数された色数情報と、前記差分値演算手段で得られた判定情報に基づき、前記ベクトル情報符号化手段、前記予測符号化手段のいずれかを選択する選択手段
として機能することを特徴とするコンピュータプログラム。
【請求項２０】
請求項１９に記載のコンピュータプログラムを格納したことを特徴とするコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像の符号化または／および復号を行う画像処理装置、及びそれらの制御方法、並びにコンピュータプログラム及びコンピュータ可読媒体に関するものである。
【背景技術】
【０００２】
従来より、画像の可逆符号化、復号を行う画像処理装置を構成する一手法として予測符号化をベースとするものがある。予測符号化装置は、画像データを予測変換によって予測誤差へと変換する系列変換部と、系列変換部から出力される予測誤差を、ハフマン符号化等のエントロピー符号化を用いて、より冗長性の少ない符号化データへと変換するエントロピー符号化部とによって構成されるのが一般的である。
【０００３】
ISOとITU−Tから国際標準の静止画像符号化方式として勧告されるJPEG（ITU-T T.81 ｜ ISO/IEC10918-1）では、Independent Functionとして予測符号化をベースとした可逆符号化方式が規定されている。以下、これをＪＰＥＧ可逆符号化モードと呼ぶ。ＪＰＥＧ可逆符号化モードでは、近傍画素から着目画素の値を予測する方法として７つの予測式を規定しており、画像に応じて予測方法を選択できるようになっている。
【０００４】
図２に従来の画像処理装置のブロック図を示す。同図は上述のＪＰＥＧ可逆符号化モードにより画像を可逆圧縮する装置の一例である。同図に於いて、２０１はバッファ、２０２は成分値予測部、２０３は減算器、２０４はハフマンテーブル用メモリ、２０５は予測誤差符号化部、２０９は符号列形成部、２０６，２０７，２０８は信号線である。
【０００５】
ハフマンテーブル用メモリ２０４には予測誤差符号化部２０５において使用されるハフマンテーブルが格納される。ここでは、図６に示すハフマンテーブルが格納されているものとする。
【０００６】
同図を用いて従来の画像処理装置により、ＲＧＢ各成分が８ビットで表現されたカラー画像を符号化する処理の流れを説明する。
【０００７】
まず、信号線２０８から成分値予測部２０２において用いる予測方法を選択する予測選択信号ｍが入力される。予測選択信号ｍは０〜７までの整数値であり、それぞれに異なる予測式が対応付けられる。使用される予測式と予測選択信号ｍの対応は図４の通りである。なお、予測選択信号ｍが０の場合には予測式なしとなっているが、これは予測変換を行わず、各成分をそのまま符号化することを意味する。図中、の記号ｐ，ａ，ｂ，ｃについては後述する。
【０００８】
次に、信号線２０６から画像データが順に入力される。画素データの入力順序はラスタースキャン順とし、各画素でＲ，Ｇ，Ｂの順番で成分データが入力されるものとする。Ｒ，Ｇ，Ｂをそれぞれ成分番号０，１，２と定義し、画像の左上隅を座標（０，０）として水平右方向画素位置ｘ、垂直下方向画素位置ｙにある画素の成分番号Ｃの値をＰ（ｘ，ｙ，Ｃ）と表すこととする。例えば、位置（ｘ、ｙ）＝（３，４）である画素が（Ｒ，Ｇ，Ｂ）＝（２５５，１２８，０）という値を持つ場合、Ｐ（３，４，０）＝２５５、Ｐ（３，４，１）＝１２８、Ｐ（３，４，２）＝０と表現する。
【０００９】
バッファ２０１は信号線２０６から入力される画像データを２ライン分格納する。
【００１０】
成分値予測部２０２はバッファ２０１から着目する画素の成分値ｘ＝Ｐ（ｘ，ｙ，Ｃ）について直前の画素の同一成分の値ａ＝Ｐ（ｘ−１，ｙ，Ｃ）、１ライン前の画素の同一成分の値ｂ＝Ｐ（ｘ，ｙ−１、Ｃ）、および斜め左上の画素の同一成分の値ｃ＝Ｐ（ｘ−１，ｙ−１，Ｃ）を取り出し、予測方式選択信号ｍに従って予測値ｐを生成する。着目する画素の成分値ｘとａ，ｂ，ｃの位置関係を図３に示す。なお、着目画素が画像の端部（最上位ライン、左端）に位置する場合、ａ，ｂ，ｃは存在しないので、これらａ，ｂ，ｃは“０”と見なして処理を行なう。なお、画像データの入力順は、先に説明した通りであるので、画素ａ、ｂ、ｃそれぞれの位置は、既に符号化済みの画素位置となる。
【００１１】
減算器２０３は符号化対象となる成分値ｘと予測値ｐとの差分値を求め、予測誤差ｅとして出力する。
【００１２】
予測誤差符号化部２０５は、まず、減算器２０３から入力される予測誤差ｅを複数のグループに分類して、グループ番号ＳＳＳＳと、グループごとに定められるビット長の付加ビットを生成する。図５に予測誤差ｅとグループ番号ＳＳＳＳの関係を示す。付加ビットはグループ内で予測誤差を特定するための情報であり、ビット長はグループ番号SSSSで与えられる。なお、ＳＳＳＳ＝１６である場合には例外的にビット長は０である（但し、各成分の精度が８ビットである場合にはＳＳＳＳ＝１６は発生しない）。予測誤差ｅが正であるならば予測誤差ｅの下位ＳＳＳＳビットが付加ビットとなり、負である場合にはｅ−１の下位ＳＳＳＳビットが付加ビットとなる。付加ビットの最上位ビットは予測誤差ｅが正であれば１、負であれば０でなる。符号化処理は、まず、メモリ２０４に格納されているハフマンテーブルを参照して、グループ番号SSSSに対応する符号化データを出力し、ＳＳＳＳが０または１６でない場合には続いてグループ番号により定まるビット長で付加ビットを出力するという順序で行われる。
【００１３】
符号列形成部２０９は信号線２０８を介して入力される予測選択信号ｍや、画像の水平方向／垂直方向の画素数、画素を構成する成分の数、各成分の精度などの付加情報と、予測誤差符号化部２０５から出力される符号化データから、ＪＰＥＧの規格書に準拠したフォーマットの符号列を形成し、信号線２０７に出力する。
【００１４】
上述の従来方式による画像処理装置で、ＣＧ画像や限定色画像等、各成分の輝度の頻度分布に偏りのある様な画像データを符号化する場合には、上述した系列変換後の予測誤差の発生頻度も、いくつかの特定の予測誤差値に偏ったものとなることがある。
【００１５】
このような場合、エントロピー符号化による符号長として短い符号長が割り当てられているにも関わらず、殆どもしくは全く発生しない予測誤差が存在することがあり、圧縮率が良くならない。
【００１６】
このような問題に対して従来から、予測誤差の発生頻度分布が離散的かどうか判別し、判別の結果に応じて予測誤差に対応する符号化データを変更してエントロピー符号化する手法（例えば特許文献１を参照）や、符号化対象画像が離散的な画素値で構成されているかどうか判別し、判別の結果に応じて予測値を修正する手法（例えば特許文献２を参照）などが提案されている。また、画素毎の符号化において、近傍の画素との一致情報を符号化する方法もが知られている（例えば特許文献３）。また、複数の予測符号化方法を切り替える方法が知られている（例えば特許文献４）。
【特許文献１】特開平１０−００４５５１号公報
【特許文献２】特開平１０−００４５５７号公報
【特許文献３】特開平１０−３３６４５８号公報
【特許文献４】特開平９−２２４２５３号公報
【発明の開示】
【発明が解決しようとする課題】
【００１７】
特許文献１或いは２では、各画素の成分値の発生状況、あるいは予測誤差の発生状況を把握する必要があり、処理の負荷が増える。また、ハフマン符号のようなブロック符号を用いて各成分を予測符号化する場合には、少なくとも１成分当たり最低でも１ビットが必要が必要になる。更に、上記予測符号化技術は、自然画（例えばデジタルカメラで自然界を撮像した画像）については高い圧縮率が期待できるが、文字、線画、ＣＧ画像などエントロピの低い画像データでは符号化効率の面でもなお改善の余地がある。かかる点は、特許文献３、４でも同様である。
【００１８】
本願発明は、上述の問題点に鑑みてなされたものであり、写真画像等の自然画は勿論のこと、比較的出現する色数が限られたコンピュータグラフィクスや、文書画像に対しも効率良く符号化する技術及びその復号技術を提供しようとするものである。
【課題を解決するための手段】
【００１９】
この課題を解決するため、例えば本発明の画像符号化装置は以下の構成を備える。すなわち、
１画素が複数の色成分データで構成されている画像データを、可逆符号化する画像符号化装置であって、
入力した着目画素データを構成する複数の色成分データそれぞれについて、前記着目画素の近傍の、符号化済みの画素の色成分データを参照して予測値を求め、予測符号化データを生成する予測符号化手段と、
前記着目画素の近傍にあって、符号化済み画素位置にある複数の画素データ間に含まれる色数を計数し、色数情報を生成する色数計数手段と、
入力した着目画素データと、前記着目画素の近傍にあって符号化済み画素位置にある複数の画素データどうしとを比較し、着目画素と同じ色の近傍画素が存在するか否か、及び、存在する場合には着目画素に対する該当近傍画素の相対位置を特定するベクトル情報を生成するベクトル情報生成手段と、
前記ベクトル情報を符号化するベクトル情報符号化手段と、
前記色数計数手段より得られた色数情報、及び、前記ベクトル情報生成手段で得られたベクトル情報に基づき、前記予測符号化手段、前記ベクトル情報符号化手段で得られた符号化データから出力用の符号化データを生成する符号化データ生成手段と、
当該符号化データ生成手段は、
（ａ）前記色数情報で示される色数が所定閾値以下で、且つ、前記ベクトル情報が着目画素と同じ色を持つ近傍画素の存在を示す場合、前記ベクトル情報符号化手段で生成された符号化データを、着目画素の符号化データとして出力し、
（ｂ）前記色数計数手段で計数された色数が所定閾値以下で、且つ、前記ベクトル情報が着目画素と同じ色を持つ近傍画素の非存在を示す場合、前記ベクトル情報符号化手段で生成された符号化データと着目画素データの非圧縮データを、着目画素の符号化データとして出力し、
（ｃ）前記色数計数手段で計数された色数が所定閾値を超える場合、前記予測符号化手段で生成された予測符号化データを、着目画素の符号化データとして出力することを特徴とする。
【発明の効果】
【００２０】
本発明の構成によれば、自然画像などの符号化効率を維持しつつ、ＣＧ画像や、色数の少ない画像等の、頻度分布に偏りのある画像データに対しても圧縮率で可逆符号化することが可能になる。
【発明を実施するための最良の形態】
【００２１】
以下添付図面を参照して、本発明に係る実施の形態について詳細に説明する。
【００２２】
＜第1の実施形態＞
図１は、本実施形態に係る画像処理装置のブロック構成図である。
【００２３】
図１に示すように、本実施形態に係る画像処理装置は、色数判定部１０１、近傍一致情報符号化部１０２、成分値予測符号化部１０３、ランレングス符号化部１０４、符号生成部１０５、スイッチ１０６、１０７、符号列形成部１０８、バッファ２０１とを備える。同図において１０９、１１０、１１１、２０６、２０７は信号線である。従来の画像処理装置の処理ブロックと同じ動作をするブロックについては同じ番号を付し、説明を省略する。
【００２４】
以下、図１を参照して、本実施形態に係る画像処理装置が行う画像符号化処理について説明する。
【００２５】
本実施形態に係る画像処理装置の符号化対象とする画像データは、ＲＧＢカラー画像データであり、各コンポーネント（色成分）は８ビットで、０〜２５５の範囲の輝度値を表現した画素データにより構成されるものとする。符号化対象の画像データは水平方向Ｗ画素、垂直方向Ｈ画素のサイズとする。従って、入力される画像データはＷ×Ｈ×３バイトのデータ量である。また、水平右方向がＸ座標の正方向、垂直下方向がＹ座標の正方向と定義する。また、入力する画像データの入力順序はラスター順とし、各画素はＲ，Ｇ，Ｂの順番でデータを並べて構成されるものとする。
【００２６】
符号化対象画像データは信号線２０６から順に入力される。入力する画像データの供給元は、イメージスキャナでもよいし、所定の記憶装置に格納された画像データでも良く、入力元の種類は問わない。
【００２７】
信号線２０６から符号化対象となる画像データは順にバッファ２０１に格納される。画素データの入力順序はラスタースキャン順とし、各画素でＲ，Ｇ，Ｂの順番で成分データが入力されるものとする。Ｒ，Ｇ，Ｂをそれぞれ成分番号０，１，２と定義し、画像の左上隅を座標（０，０）として水平方向画素位置ｘ、垂直方向画素位置ｙにある画素の成分番号Ｃの値をＰ（ｘ，ｙ，Ｃ）と表すこととする。例えば、位置（ｘ、ｙ）＝（３，４）である画素が（Ｒ，Ｇ，Ｂ）＝（２５５，１２８，０）という値を持つ場合、Ｐ（３，４，０）＝２５５、Ｐ（３，４，１）＝１２８、Ｐ（３，４，２）＝０と表現する。
【００２８】
色数判定部１０１は着目する符号化対象の画素Ｘの近傍に位置する図３のａ，ｂ，ｃ、ｄ（これらの画素位置の画素データは、既に符号化処理が完了していることに注意されたい）に示す周囲４画素の同一成分値をバッファ２０１から読み出し、画素Ｘａ,Ｘｂ，Ｘｃ，Ｘｄを得る。着目する画素Ｘの位置を（ｘ、ｙ）とし、これを用いてＸａ,Ｘｂ,Ｘｃ,Ｘｄを表現すると以下の通りとなる。
Ｘａ＝(Ｐ(ｘ−１，ｙ，０)、Ｐ(ｘ−１，ｙ，１)、Ｐ(ｘ−１，ｙ，２))
Ｘｂ＝(Ｐ(ｘ，ｙ−１，０)、Ｐ(ｘ，ｙ−１，１)、Ｐ(ｘ，ｙ−１，２))
Ｘｃ＝(Ｐ(ｘ−１,ｙ−１, ０)、Ｐ(ｘ−１，ｙ−１，１)、Ｐ(ｘ−１，ｙ−１，２))
Ｘｄ＝(Ｐ(ｘ＋１，ｙ−１，０)、Ｐ(ｘ＋１，ｙ−１，１)、Ｐ(ｘ＋１，ｙ−１，２))
【００２９】
色数判定部１０１は、これらＸａ，Ｘｂ，Ｘｃ，Ｘｄ内に何種類の色が存在するかを検出して、その色数Ｎｃを信号線１１０に出力する。具体的には４画素中から２画素のペアを取り出す６通りの組み合わせ、すなわち、「ＸａとＸｂ」、「ＸａとＸｃ」、「ＸａとＸｄ」、「ＸｂとＸｃ」、「ＸｂとＸｄ」、「ＸｃとＸｄ」について、同一色のペアの数をカウントする。カウントした値が０であれば４色、１であれば３色、２か３であれば２色、６であれば１色と判断し、その色数Ｎｃとして信号線１１０に出力する。
【００３０】
近傍一致情報符号化部１０２は信号線１１０を介して、色数判定部１０１からの色数Ｎｃを入力し、その色数Ｎｃが１乃至３である場合（少なくとも着目画素周辺の４画素中に同じ色の画素のペアが少なくとも１つ存在する場合）、着目画素Ｘと同じ色の画素が周囲４画素（Ｘａ，Ｘｂ，Ｘｃ，Ｘｄ）に存在するか否か、及び、その一致する近傍画素の位置を特定するベクトル情報を内部的に生成し、それを符号化して符号語を信号線１１１に出力する。また、同時に、近傍一致情報符号化部１０２は、着目画素Ｘとその周囲４画素に基づき、周辺画素状態情報を生成し、それを信号線１０９に出力する。
【００３１】
図１１は近傍一致情報符号化部１０２の詳細ブロック図である。同図に示すように、近傍一致情報符号化部１０２は、近傍一致判定部１１０１及び一致画素位置符号化部１１０２から構成される。なお、１１０３は信号線であり、上記ベクトル情報を伝達するものである。以下、同図を参照して近傍一致情報符号化部１０２の内部で行われる処理について説明する。
【００３２】
近傍一致判定部１１０１は着目画素Ｘと同一の画素が、その周囲４画素（Ｘａ，Ｘｂ，Ｘｃ，Ｘｄ）内に存在するか否か、及び存在する場合には着目画素と同じ色を持つものが周囲４画素のいずれであるかを示すベクトル情報を生成し、信号線１１０３へと出力する。
【００３３】
このベクトル情報は、信号線１１０を介して入力される色数Ｎｃに依存して決定される。それぞれの色数Ｎｃの場合に分けて近傍一致判定部１１０１の処理を説明する。
【００３４】
まず、色数Ｎｃが４である場合、即ち、Ｘａ，Ｘｂ，Ｘｃ，Ｘｄが全て異なる画素値である場合には、近傍一致判定部１１０１は、Ｘａ，Ｘｂ，Ｘｃ，Ｘｄの画素データに依存せず、ベクトル情報として“４”を信号線１１０３に出力する。
【００３５】
色数Ｎｃが１の場合、すなわちＸａ〜Ｘｄが全て同じ色である場合には、ＸとＸａを比較してＸ＝Ｘａならば“０”、Ｘ≠Ｘａならば“１”をベクトル情報として信号線１１０３に出力する。
【００３６】
色数Ｎｃが２の場合、すなわち、Ｘａ〜Ｘｄ内に存在する色数が２組の色が存在する場合、Ｘａ，Ｘｂ，Ｘｃ，Ｘｄの順番で第１の画素値（色）Ｘ１と第２の画素値Ｘ２を求め、Ｘ＝Ｘ１ならば“０”、Ｘ＝Ｘ２ならば“１”、Ｘ≠Ｘ１かつＸ≠Ｘ２ならば“２”をベクトル情報として信号線１１０３に出力する。Ｘａ、Ｘｂ，Ｘｃ，Ｘｄの順番で見た場合、第１の画素Ｘ１は必ずＸａである。また、第２の画素値Ｘ２は、Ｘｂ、Ｘｃ、Ｘｄの順にサーチし、Ｘａと異なる値を持つ最初に検出された画素になる。
【００３７】
色数Ｎｃが３の場合、すなわち、Ｘａ〜Ｘｄ内に存在する色数が３つの場合、Ｘａ、Ｘｂ，Ｘｃ，Ｘｄの順番で第１の画素値Ｘ１、第２の画素値Ｘ２、第３の画素値Ｘ３を求め、Ｘ＝Ｘ１ならば“０”、Ｘ＝Ｘ２ならば“１”、Ｘ＝Ｘ３ならば“２”、Ｘ≠Ｘ１かつＸ≠Ｘ２かつＸ≠Ｘ３ならば“３”をベクトル情報として信号線１１０３に出力する。
【００３８】
一方、近傍一致判定部１１０１から信号線１０９（図１、図１１）に出力される周辺画素状態情報であるが、以下の条件に従って生成する。
【００３９】
近傍一致判定部１１０１は、信号線１１０３に出力するベクトル情報と、信号線１１０を介して入力される色数Ｎｃとを比較し、ベクトル情報と色数Ｎｃとが等しい場合には信号線１０９から周辺画素状態情報として“１”を出力し、それ以外の場合には“０”を出力する。従って、色数Ｎｃが４である場合には常に“１”となる。
【００４０】
図２２は、色数Ｎｃ、ベクトル情報、周辺画素状態情報の関係を示している。
【００４１】
図示に示すように、実施形態における周辺画素状態情報とは、着目画素Ｘの周囲４画素Ｘａ、Ｘｂ、Ｘｃ、Ｘｄ内に同じ色を持つペアが少なくとも１つ存在し（色数が３以下とも言える）、尚且つ、着目画素Ｘとが同じ色を持つ画素が周囲４画素中に存在するか否かを示す情報と言える。
【００４２】
一致画素位置符号化部１１０２は、信号線１１０３から入力されるベクトルを符号化し、その符号語を信号線１１１に出力する。本実施形態では信号線１１０を介して入力される色数Ｎｃによって図１５（ａ），（ｂ），（ｃ）の符号化テーブルを切り替えて使用する。色数Ｎｃが“４”である場合には一致画素位置符号化部１１０２からの符号出力は行われないし、仮に、出力したとしても無視する。なお、ここでは説明を簡単にするために色数Ｎｃに基づいて３つの符号表を切り替える方法について述べたが、各色数ごとに想定される確率分布に応じて行われる符号化方法であれば、様々な手法を適用できることは言うまでもない。
【００４３】
図１５（ａ）乃至（ｃ）において、注目したい点は、着目画素Ｘの周囲４画素の色数が少ないほど割り当てるビット数が小さくしている点である。これは、周囲４画素の色数が少ないほど、着目画素Ｘの色が周囲の色と同じになる確率が高いことを利用し、生成される符号語のビット数を効率良くするためのものである。
【００４４】
以上、説明した動作により、信号線１１１からベクトル情報の符号化結果である符号語が出力される。
【００４５】
図１の説明に戻る。符号生成部１０５は、信号線１０９を介して入力される周辺画素状態情報（０か１）に従って、信号線１１１から出力される符号語と、信号線２０６を介して入力される着目画素の着目成分値から、着目する画素に対する符号を生成し、出力する。
【００４６】
具体的には、信号線１０９を介して入力される周辺画素状態情報が“０”である場合には、信号線１１１から入力されるベクトル情報の符号語をそのまま出力する。また、周辺画素状態情報が“１”である場合、信号線１１１から入力されるベクトル情報の符号語を出力し、それに続けて着目する画素の各成分をそのまま（非圧縮で）出力する。
【００４７】
図８（ａ）は、周辺画素状態情報が“０”である場合の、符号生成部１０５が出力する符号データのデータ構造を示している。同図（ｂ）は、周辺画素状態情報が“１”である場合の、符号生成部１０５が出力する符号データのデータ構造を示している。なお、色数Ｎｃが４である場合には、近傍一致情報に対する符号語が出力されないため、この部分の符号語長は０であり、Ｒ成分非圧縮データから始まる。
【００４８】
一方、成分予測符号化部１０３であるが、色数判定部１０１から出力される色数Ｎｃが４である場合には、着目画素Ｘの各成分値の予測符号化が行われる。成分値の予測符号化にはＪＰＥＧ可逆符号化モードや、可逆と準可逆符号化の国際標準方式であるJPEG-LS（ITU−T  T.８７ ｜  ISO/IEC１４４９５−１）にregular  modeとして説明される方式などを使用することができる。ここでは説明を簡略化するため、簡易な構成について説明する。
【００４９】
図７は成分値予測符号化部１０３の詳細ブロック構成図である。同図に示すように、成分値予測符号化部１０３は、成分値予測部２０２、減算器２０３、予測誤差符号化部７０１から構成される。なお、１１０は信号線である。従来技術の説明で用いた図２の処理ブロックと同じ機能を果たすブロックについては同じ番号を付し、説明を省略する。以下、同図を参照して近傍一致情報符号化部１０２の内部で行われる処理について説明する。
【００５０】
従来方式の説明と同様の動作により、着目する画素の周囲画素の同一成分値ａ，ｂ，ｃから成分値予測部２０２により予測値ｐが生成され、減算器２０３において着目する画素の成分値ｘとの差分（予測誤差）ｅ（＝ｘ−ｐ）が生成され、予測誤差符号化部７０１へと入力される。本実施形態では成分値予測部２０２に入力される予測選択信号ｍを固定値４として、全ての成分値に対してＰ＝ａ＋ｂ−ｃの式により予測を行うこととする。
【００５１】
予測誤差符号化部７０１は、予測誤差eをGolomb符号を用いて符号化する。Golomb符号は非負の整数値を符号化対象とし、パラメータ変数ｋによって異なる複数の確率モデルによる符号化が可能であるという特徴を持ち、また、符号化対象シンボルとパラメータ変数ｋから符号語を導出することができるため、符号表が不要という利点がある。Golomb符号の一形態がISOとITU-Tから国際標準勧告されるJPEG-LS（ISO/IEC 14495-1 | ITU-T Recommendation T.87）において予測誤差の符号化方式として採用されている。ここでは減算器２０３から出力される予測誤差ｅを次式により非負の整数値（Ｖとする）に変換した後に，これを選択したkパラメータでGolomb符号化する．
ｅ≧０の場合、Ｖ＝２×ｅ
ｅ＜０の場合、Ｖ＝−２×ｅ−１
【００５２】
符号化対象の非負の整数値Ｖを符号化パラメータｋでGolomb符号化する手順は次の通りである。
【００５３】
まず、Ｖをｋビット右シフトして整数値ｍを求める。Ｖに対する符号はｍ個の「0」に続く「１」（可変長部）と、Ｖの下位ｋビット（固定長部）の組み合わせにて構成する。図１６に、ｋ＝０、１、２におけるGolomb符号の例を示しておく。ここに述べた符号の構成方法は一例であり、固定長部と可変長部の順序が逆にしても一意復号可能な符号を構成することができ、また、０と１を反対にして符号を構成することもできる。符号化パラメータｋの選択方法としては所定の単位で最適なｋパラメータの選択して符号列に含める方法など様々な手法が考えられるが、本実施形態ではＪＰＥＧ−ＬＳと同様の手法により符号化の過程で更新していく方法を用いる。以下、符号化パラメータｋの選択方法について述べる。
【００５４】
予測誤差符号化部７０１には符号化済みの画素の数を保持するカウンタＮと、各成分毎に符号化済みの予測誤差の絶対値の合計を保持するカウンタＡ［Ｃ］（Ｃは成分番号であり、０〜２）とを備える。符号化の開始時点でカウンタＮを１に、カウンタＡ［０］〜Ａ［２］を２に設定する。符号化対象の成分値ごとにＮ×２＾ｋがＡ［Ｃ］を超えない最大のｋを求め、これを用いて先に説明した手順にて予測誤差ｅをGolomb符号化し、符号語を出力する（尚、ｘ＾ｙは、ｘのｙ乗を示す）。
【００５５】
各成分の符号化処理後に、Ａ［Ｃ］に予測誤差の絶対値｜ｅ｜を加算して更新する。またこの場合、全成分の符号化処理後にＮに１を加えて更新する。なお、Ａ［Ｃ］とＮを所定の範囲内に限定するためにはＮが一定値（例えば３２）に達したタイミングでＡ［Ｃ］とＮを１／２にするといった処理を適用すれば良い。なお、予測誤差符号化部７０１は信号線１１０を介して入力される色数Ｎｃが４である場合にのみ動作する。但し、色数Ｎｃが４であってもスイッチ１０７が端子ｂに接続され、後述するランレングス符号化が適用されている途中では動作しない。
【００５６】
次に、実施形態におけるランレングス符号化部１０４について説明する。ランレングス符号化部１０４は、その内部に、同じ画素値の連続数を計数するカウンタＲＬを保持し、色数判定部１０１から出力される色数Ｎｃが１である場合に計数を開始する。一旦、計数を開始すると、それ以降は色数Ｎｃによらず、着目する画素Ｘが直前の画素値Ｘａと異なる値となるか、１ラインの最後の画素を処理し終えるまでの画素数をカウントする。ランが終端した時点（０ランの場合も有り得る）で、カウンタＲＬに保持されているランレングスを符号化して出力する。なお、ここでは説明を簡単にするために色数判定部１０１から出力される色数Ｎｃに基づいて画素の連続数を計測開始するものとして説明したが、符号化側と復号側で同様にラン（画素値の連続）の発生が予想できる条件であれば良い。例えば、Ｘａの直前の画素をＸｅとしてＸａ＝Ｘｅである場合にランの計測を開始するといった方法を用いても良い。また、想定される画素値としてＸａを用いるものとして説明しているが、Ｘｂなどとの同一性に基づいて連続数をカウントする場合も本発明の範疇に含まれる。
【００５７】
今、或るラインの画素を…Ｘi-1、Ｘi、Ｘi+1…とし、画素Ｘiを着目画素とする。また、それぞれの画素位置における色数Ｎｃを、…Ｎｃi-1、Ｎｃi、Ｎｃi+1と表わしたとする。
【００５８】
ここで、Ｎｃi-1が１以外であり、Ｘi-1がランレングス符号化以外の方法で符号化されていて、Ｎｃiが１になった場合について考察する。もし、Ｘi-1≠Ｘiである場合には、ランレングス符号化部１０４はＸ≠Ｘａであるので、０ランの符号語を出力することになる。このとき、着目画素Ｘの符号化データは、ランレングス符号語の出力の直後に、符号生成部１０５からの符号化データが出力される。また、Ｘi-1＝Ｘiである場合には、ＲＬに１加算し、それ以降、直前の画素と同じ画素が連続する数を計数していくことになる。
【００５９】
ランレングスの符号化には、様々な方法を適用することが可能であるが、ここでは国際標準方式ＪＰＥＧ−ＬＳにおける「run mode」によるランレングスの符号化と同じ手法を用いることとし、詳細については省略する。
【００６０】
スイッチ１０６は色数判定部１０１から出力される色数Ｎｃによって接続を切り替える。Ｎｃが４である場合には端子ｂに接続し、それ以外の場合（Ｎｃ＝１、２、３の場合）には端子ａに接続する。
【００６１】
スイッチ１０７は色数判定部１０１から出力される色数Ｎｃによって接続を切り替え、Ｎｃが１である場合に端子ｂに接続し、ランレングス符号化部１８０１によりランレングスのカウントが行われている間はｂ側に固定する。ランが終端し、ランレングス符号化部１８０１から符号が出力されると端子ａに切り替える。
【００６２】
符号列形成部１０８では予測選択信号ｍや、画像の水平方向／垂直方向の画素数、画素を構成する成分の数、各成分の精度などの付加情報と、符号生成部１０５、成分値予測符号化部１０３、ランレングス符号化部１０４から出力される符号化データから、所定のフォーマットの符号列を形成し、信号線２０７に出力する。出力先としては、ハードディスク等の記憶媒体であればファイルとして出力することになる。
【００６３】
図９に、符号列形成部１０８から出力される符号列の構造の一例を示す。同図においてランレングス符号化データと画素符号化データの並びは適当である。特に注意されたい点は、各符号化データを区別するための特別なマーカビットを必要としない点である。なお、本実施形態の画像処理装置では予測選択信号ｍを固定値としているのでヘッダから除くこともできる。
【００６４】
以上の説明のように、本実施形態に係る画像処理装置では、符号化対象となる画素Ｘの周囲にある符号化済みの画素Ｘａ,Ｘｂ,Ｘｃ,Ｘｄの色数に応じて予測符号化、ランレングス符号化、近傍一致情報の符号化を動的に切り替えて符号化を行っている。周辺画素値の色数が少なく、かつ、周囲画素に着目画素と同じ画素値が存在しなかった場合には予測符号化を適用した場合に、差分値として大きな値が発生して局所的に多くの符号が発生するといったことが起こるが、本実施形態の画像処理装置では、このような場合に着目画素の各成分を非圧縮で伝送することにより符号量の増大を回避している。これにより、文字、線画、ＣＧ画像など、着目画素の周囲に同じ色の画素が存在する可能性の高い画像データの可逆圧縮性能を向上させるとともに、自然画像など、着目画素の周囲に同じ色の画素が存在する可能性の低い画像データにおいても余分な付加を発生することなく、効率的な符号化を行うことができる。
【００６５】
＜第１の実施形態の変形例＞
上記第１の実施形態をソフトウェアでもって実現しても構わない。そこで、本変形例では、ソフトウェアで実現する例を説明する。
【００６６】
図１４はソフトウェアで実現する場合の装置（ＰＣ等）の基本構成を示す図である。
【００６７】
図中、１４０１はＣＰＵで、ＲＡＭ１４０２やＲＯＭ１４０３に記憶されているプログラムやデータを用いて本装置全体の制御を行うと共に、後述する画像符号化処理、復号処理を実行する。
【００６８】
１４０２はＲＡＭで、外部記憶装置１４０７や記憶媒体ドライブ１４０８、若しくはＩ／Ｆ１４０９を介して外部装置からダウンロードされたプログラムやデータを記憶するため、及び、ＣＰＵ１４０１が各種の処理を実行する際のワークエリアとして使用される。図１に示されるバッファ１２０１、ハフマンテーブル２０４等も、このＲＡＭ１４０２に確保されるものである。
【００６９】
１４０３はＲＯＭで、ブートプログラムや本装置の設定プログラムやデータを格納する。
【００７０】
１４０４、１４０５は夫々キーボード、マウス（登録商標）等のポインティングデバイスで、ＣＰＵ１４０１に対して各種の指示を入力することができる。
【００７１】
１４０６は表示装置で、ＣＲＴや液晶画面などにより構成されており、画像や文字などの情報を表示することができる。
【００７２】
１４０７は外部記憶装置で、ハードディスクドライブ装置等の大容量情報記憶装置であって、ここにＯＳや後述する画像符号化、復号処理の為のプログラム、符号化対象の画像データ、復号対象画像の符号化データなどが保存されており、ＣＰＵ１４０１による制御によって、これらのプログラムやデータはＲＡＭ１４０２上の所定のエリアにロードされる。
【００７３】
１４０８は記憶媒体ドライブで、ＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどの記憶媒体に記録されたプログラムやデータを読み出してＲＡＭ１４０２や外部記憶装置１４０７に出力するものである。なお、この記憶媒体に後述する画像符号化、復号処理の為のプログラム、符号化対象の画像データ、復号対象の画像の符号化データなどを記録しておいても良く、その場合、記憶媒体ドライブ１４０８は、ＣＰＵ１４０１による制御によって、これらのプログラムやデータをＲＡＭ１４０２上の所定のエリアにロードする。
【００７４】
１４０９はＩ／Ｆで、このＩ／Ｆ１４０９によって外部装置を本装置に接続し、本装置と外部装置との間でデータ通信を可能にするものである。例えは符号化対象の画像データや、復号対象の画像の符号化データなどを本装置のＲＡＭ１４０２や外部記憶装置１４０７、あるいは記憶媒体ドライブ１４０８に入力することもできる。１４１０は上述の各部を繋ぐバスである。
【００７５】
上記構成において、ソフトウェアでもって第１の実施形態と同様の処理を実現する場合、図１に示した色数判定部１０１に代表される各種構成要素に相当する処理は、ソフトウェア上では関数、サブルーチン等で実現するが、本変形例でも、便宜的に、図１１の各処理部の名前をそのまま使用するものとする。なお、バッファ２０１については、処理を開始するに先立って、ＣＰＵ１４０１がＲＡＭ１４０２に確保することになる。
【００７６】
図１９は本実施形態の画像処理装置による符号化処理の流れを示すフローチャートである。なお、同図に従ったプログラムはＲＡＭ１４０２にロードされており、ＣＰＵ１４０１がこれを実行することで、図１９に示したフローチャートに従った処理を行うことができる。以下、同図を参照して、本実施形態に係るアプリケーションプログラムの全体的な流れについて説明する。
【００７７】
まず、符号列形成部１０８において、符号化対象画像の付加情報を含めたヘッダが生成され、出力される（ステップＳ１９０１）。次いで、着目する画素の垂直方向位置を保持するカウンタｙを０に、ランレングス符号化部１０４の内部に保持されるカウンタＲＬを０に初期化する（ステップＳ１９０２）。さらに着目する画素の水平方向位置を保持するカウンタｘを０に設定する（ステップＳ１９０３）。（ｘ、ｙ）座標に位置する着目画素Ｘについて、その周辺画素ａ，ｂ，ｃ，ｄにおける色数Ｎｃを色数判定部１０１により求める（ステップＳ１９０４）。なお、着目画素が符号化対象の画像の第１ラインの場合には、ｂ、ｃ、ｄ（図３参照）は存在しないので、それら周辺画素のＲＧＢ各成分値は０とする。ｘ＝０の場合には、周辺画素ａ，ｃも存在しないので、それらのＲＧＢは０とする。なお、復号処理と同じになれば良いので、この値に限らないのは言うまでもない。
【００７８】
ステップＳ１９０５では、色数Ｎｃが１、もしくはカウンタＲＬが０以外であるか否かを判定する。色数Ｎｃ＝１、或いは、カウンタＲＬが０以外である場合（ステップＳ１９０５でＹＥＳの場合）には、ステップＳ１９１４へと処理を移す。また、上記条件を満たさない場合（ステップＳ１９０５でＮＯの場合）には、ステップＳ１９２２へと処理を移す（ステップＳ１９０５）。なお、ステップＳ１９０５の判定がＹＥＳの場合にはスイッチ１０７が端子ｂに接続され、ＮＯの場合には端子ａに接続される。
【００７９】
ステップＳ１９２２に処理が移った場合、色数Ｎｃが４であるか否かを判定する。Ｎｃ＝４である場合（ＹＥＳ）には、スイッチ１０６を端子ｂ側に接続し、成分値予測符号化部１０３により着目画素の各成分を予測符号化して符号列を生成し、スイッチ１０６、スイッチ１０７を介して符号列形成部１０８へと出力する（ステップＳ１９０８）。
【００８０】
一方、Ｎｃ≠４である場合（ＮＯ）には、スイッチ１０６を端子ａ側に接続し、近傍一致情報符号化部１０２により、ベクトル情報を生成し、それを符号化する。また、着目画素と同じ色を持つ画素が周囲４画素に存在するか否かを示す周辺画素状態情報を信号線１０９に出力する（ステップＳ１９０６）。次いで、この周辺画素状態情報が“１”であるか否かを判断し（ステップＳ１９０７）、“１”である場合（ＹＥＳ）には符号生成部１０５にて信号線１１１を介して入力されるベクトル情報の符号語に着目する画素の各成分を非圧縮で連結させて出力する。そして、符号生成部１０５、成分値予測符号化部１０３から出力される符号列を符号列形成部１０８で所定のフォーマットにして着目画素に対する符号列が形成される（ステップＳ１９０９）。次いで、着目する画素の水平方向位置を保持するカウンタｘに１を加え（ステップＳ１９１０）、画像の水平方向画素数Ｗと比較してｘ＜Ｗであれば（ＹＥＳ）処理をステップＳ１９０４へと戻し、次の画素の符号化処理を行い、そうでない場合（ＮＯ）にはステップＳ１９１２へと処理を移す（ステップＳ１９１１）。
【００８１】
一方、ステップＳ１９０５で、色数Ｎｃ＝１、或いは、カウンタＲＬが０以外であると判断した場合、処理はステップＳ１９１４に進み、着目画素値Ｘ（カウンタｘ、ｙで示されるｍされる画素値）と直前の画素値Ｘａを比較する。Ｘ≠Ｘａである場合（ステップＳ１９１４でＮＯの場合）には処理をステップＳ１９２０へと移し、Ｘ＝Ｘａである場合（ステップＳ１９１４でＹＥＳの場合）はランレングス符号化部１０４の内部に保持するカウンタＲＬに１を加え（ステップＳ１９１５）、続いて着目画素の水平方向位置を保持するカウンタｘに１を加える（ステップＳ１９１６）。そして、画像の水平方向画素数Ｗと比較してｘ＜Ｗであれば処理をステップＳ１９０４へと戻し、次の画素の符号化処理を行う。そうでない場合にはランが画像の右端まで至ったためこの時点でランレングスを確定させ、ランレングス符号化部１０４によりカウンタＲＬに保持されるランレングスを符号化して符号を出力する。ランレングス符号化部１０４から出力される符号はスイッチ１０７を介して符号列形成部１０８へと送られて所定のフォーマットの符号列が形成される（ステップＳ１９１８）。ランレングスの符号化を終了すると、カウンタＲＬが０に戻される（ステップＳ１９１９）。このとき、スイッチ１０７は端子ａ側に接続変更される。この後、ステップＳ１９１２へと処理を移し次のラインへと符号化処理の対象を移す。
【００８２】
ステップＳ１９２０に処理が進んだ場合、直前の画素値Ｘａと異なる画素値Ｘの出現によりランが終端されたことを意味する。従って、ランレングス符号化部１０４によりカウンタＲＬに保持されるランレングスを符号化して符号を出力する。ランレングス符号化部１０４から出力される符号はスイッチ１０７を介して符号列形成部１０８へと送られて所定のフォーマットの符号列が形成される。ランレングスの符号化を終了すると、カウンタＲＬが０に戻される（ステップＳ１９２１）。このとき、スイッチ１０７は端子ａ側に接続変更される。続いてステップＳ１９２２へと処理を移し、ランを終端させた着目画素Ｘについての符号化処理を継続する。
【００８３】
ステップＳ１９１２では着目する画素の垂直方向位置を保持するカウンタｙに１を加え、続いて、画像の垂直方向画素数Ｈと比較してｙ＜Ｈであれば（ＹＥＳ）処理をステップＳ１９０３へと戻し、次のラインの画素について同様に処理を行い、そうでない場合（ＮＯ）には対象とする画像データについての符号化処理を終了する（ステップＳ１９１３）。
【００８４】
以上の説明のように、本変形例によっても、第１の実施形態と同様の作用効果を奏することが可能になる。
【００８５】
＜第２の実施形態＞
次に、上記第１の実施形態（或いはその変形例）で生成された符号化データの復号する例を第２の実施形態として説明する。復号処理は、基本的には、第１の実施形態の画像処理装置での符号化処理の逆の手順で実行すればよい。
【００８６】
図１０は、本第２の実施形態に係る符号化画像データを復号する画像処理装置のブロック構成図である。
【００８７】
図１０に示すように、本実施形態に係る画像処理装置は、符号バッファ１００１、ヘッダ解析部１００２、近傍一致情報復号部１００３、成分値予測符号化データ復号部１００４、ランレングス復号部１００５、スイッチ１００６、スイッチ１００７、スイッチ１００８、バッファ２０１、色数判定部１０１とを備える。同図において１００９、１０１０、１０１１、１０１２は信号線である。第１の実施形態の画像処理装置の処理ブロックと同じ動作をするブロックについては同じ番号を付し、説明を省略する。
【００８８】
以下、図１０を参照して、本実施形態に係る画像処理装置が行う復号処理について説明する。
【００８９】
最終的に、復号して得られた画素データは、スイッチ１００８から出力されるが、この復号画素データはバッファ２０１（２ライン分の復号画素データを格納する容量を有する）にも格納する。また、このバッファ２０１は、復号処理を開始するに先立って、０クリアされる。これは、着目画素が画像の境界に位置する際の近傍画素を確保するためでもある。
【００９０】
さて、復号対象となる符号化データが信号線１００９を介して本画像処理装置に入力され、符号バッファ１００１に適宜格納され、ヘッダ解析部１００２により付加情報の取得が行われる。
【００９１】
色数判定部１０１では第１の実施形態で説明した処理により、着目画素Ｘの既に復号済みの周辺４画素（Ｘａ，Ｘｂ，Ｘｃ，Ｘｄ）内に存在する色数Ｎｃを求めて信号線１０１１へと出力する。
【００９２】
近傍一致情報復号部１００３では、色数判定部１０１から出力される色数Ｎｃが１乃至３のいずれかである場合に、着目符号データは図８（ａ）、（ｂ）のいずれかの符号化データであるものとして、ベクトル情報を行なう。そして、復号したベクトル情報と色数Ｎｃが不一致の場合には、既に復号済みの周辺画素Ｘａ乃至Ｘｄのいずれかを、着目画素の復号結果として出力する。また、近傍一致情報復号部１００３は、復号して得られたベクトル情報と色数Ｎｃが一致するか否かを示す周辺画素状態情報として信号線１０１０に出力する。
【００９３】
図１２は近傍一致情報復号部１００３の詳細ブロック図である。同図に示すように、近傍一致情報復号部１００３は、一致画素位置復号部１２０１、セレクタ１２０２から構成される。なお、１０１０、１０１１、１２０３は信号線である。以下、同図を参照して近傍一致情報復号部１００３の内部で行われる処理について説明する。
【００９４】
一致画素位置復号部１２０１では、信号線１０１１を介して入力される色数Ｎｃが１〜３である場合に、図１５（ａ）乃至（ｃ）に示す符号語とベクトル情報との対応テーブルの１つを選択し、選択されたテーブルを用いて、入力した符号化データがベクトル情報の符号化データであるものとして復号を行う。そして、復号したベクトル情報は信号線１２０３を介してセレクタ１２０２へ出力する。また、復号したベクトル情報と色数Ｎｃとを比較して等しい場合には信号線１０１０から“１”を、異なる場合には“０”を周辺画素状態情報として出力する。一方、色数Ｎｃが４である場合には周辺画素状態情報として“１”を信号線１０１０に出力し、ベクトル情報として“４”を信号線１２０３に出力する。この結果、周辺画素状態情報及びベクトル情報は、図２２と同じになる。
【００９５】
セレクタ１２０２は、一致画素位置復号部１２０１から信号線１２０３を介して入力されるベクトル情報に従って、着目画素Ｘの周囲画素Ｘａ、Ｘｂ、Ｘｃ、Ｘｄの各成分値の何れかを選択して出力する。ベクトル情報が“０”である場合には、Ｘａの各成分値を選択し、“１”である場合にはＸａ、Ｘｂ、Ｘｃ、Ｘｄの順番に見て、Ｘａとは異なる最初に検出できた第２の画素値（色）を持つ画素の各成分値を選択する。同様に“２”である場合にはＸａ，Ｘｂ，Ｘｃ，Ｘｄの順番で見て、第１の画素値（Ｘａ）および第２の画素値と異なる第３の画素値の各成分値を選択して出力する。なお、近傍一致情報が“３”、または“４”である場合にはセレクタ１２０２からの出力は無効である。この場合には近傍一致情報復号部１００３に繋がるスイッチ１００６が端子ｂ側に接続されることになるのでセレクタ１２０２からの出力は無視される。
【００９６】
スイッチ１００６は信号線１０１０により入力される周辺画素状態情報が“０”である場合（周辺４画素の色数が３以下であり、尚且つ、その中に着目画素と同じ色を持つ画素が存在する場合）には、その端子ａ側に接続して近傍一致情報復号部１００３から出力される画素値がスイッチ１００７へと送られるようにする。また、周辺画素状態情報が“１”である場合には、スイッチ１００６を端子側に接続し、符号化バッファ１００１から取り出される各成分の非圧縮の画素値がスイッチ１００７へと送られるようにする。
【００９７】
成分値予測符号化データ復号部１００４では色数判定部１０１から出力される色数Ｎｃが４である場合に、符号バッファ１００１から符号化データを読み込み、画素のＲ、Ｇ、Ｂ各成分を復号する。
【００９８】
図１３は成分値予測符号化データ復号部１００４の詳細ブロック構成図である。同図に示すように、成分値予測符号化データ復号部１００４は、成分値予測部２０２、予測誤差復号部１３０１、加算器１３０２から構成される。なお、１０１１は信号線である。以下、同図を参照して成分値予測符号化データ復号部１００４の内部で行われる処理について説明する。
【００９９】
予測誤差復号部１３０１は、信号線１０１１から入力される色数Ｎｃが４である場合に、第１の実施形態で説明した予測誤差符号化部７０１の符号化処理と対をなす復号手順により、着目画素の着目成分の予測誤差を復号する。予測誤差復号部１３０１においても予測誤差符号化部７０１と同様に符号化済みの画素の数を保持するカウンタＮと、各成分毎に符号化済みの予測誤差の絶対値の合計を保持するカウンタＡ［Ｃ］（Ｃは成分番号であり、０〜２）とを備え、復号の開始時点でカウンタＮを１に、カウンタＡ［０］〜Ａ［２］を２に設定する。着目画素の着目する成分値の復号においては符号化時と同様の方法により、ＮとＡ[０]〜Ａ[２]から符号化時に用いたｋパラメータと同じ値を導出し、これを用いて非負の整数値Vを復号する。Golomb符号の復号は符号化と逆の手順で行われ、まず、復号開始点から「０」の連続数を調べ、整数値ｍに取得する。「０」の連続を終端させた「１」のすぐ後からｋビット取り出し、ｍをｋビット左シフトした後、取り出したｋビットとのＯＲR演算を行うことにより非負の整数値Ｖを復号する。この非負の整数値Ｖから以下の演算により予測誤差ｅを復号する。
・Ｖが奇数の場合、ｅ＝−（Ｖ＋１）／２
・Ｖが偶数の場合、ｅ＝Ｖ／２
第１の実施形態と同様に成分値予測部２０２で予測値ｐを生成し、加算器１３０２で着目する成分値を復元して出力する。各成分の復号後、カウンタＮ［Ｃ］に復号した予測誤差の絶対値｜ｅ｜を加算して更新し、着目する画素について全成分の復号が終了した時点でカウンタＮに１を加えて更新する。なお、Ａ［Ｃ］とＮを所定の範囲内に限定するためにはＮが一定値（例えば３２）に達したタイミングでＡ［Ｃ］とＮを１／２にするといった処理を適用すれば良い。但し、同じｋパラメータを得るためには、この処理は符号化側と復号側で共通に行わなければならない。
【０１００】
上述の処理を着目する画素の全ての成分に対して実施し、着目する画素の各成分を復号して出力する。
【０１０１】
図１０の説明に戻る。スイッチ１００７は、色数判定部１０１から出力される色数Ｎｃが４である場合には端子ｂに接続し、それ以外の場合には端子ａに接続する。
【０１０２】
ランレングス復号部１００５は色数判定部１０１から出力される色数Ｎｃが１である場合に、符号バッファ１００１から符号化データを読み込み、直前の画素Ｘａと同じ画素値の連続数ＲＬを復号し、復号画素値としてＸａをＲＬ個出力（ＲＬ＝０の場合も有り得る）する。ランレングス復号部１００５の復号処理は第１の実施形態におけるランレングス符号化部１０４での符号化処理と対をなす。
【０１０３】
なお、色数Ｎｃが１以外から１になった場合、近傍一致情報復号部１００３よりも、ランレングス復号部１００５からの要求を優先して、符号バッファ１００１からの次の符号語を読出すようにする。これは、色数Ｎｃが１以外から１になった場合、復号対象の符号化データが、ランレングス符号語であるためである。
【０１０４】
スイッチ１００８は色数判定部１０１から出力される色数Ｎｃが１である場合に端子ｂ側に接続し、ランレングス復号部１００５で復号したＲＬ個のＸａの出力が行われている間はｂ側に固定する。ＲＬ個のＸａを出力し終えると、端子aに接続される。
【０１０５】
信号線１１１２から復号された各画素の各成分の値が出力されるが、これらはバッファ２０１にも格納され、以降の画素の復号において周囲の画素値として利用される。
【０１０６】
以上の動作により、第１の実施形態及びその変形例によって生成された符号化データから完全に元の画像データを復元（復号）することが可能になる。
【０１０７】
＜第２の実施形態の変形例＞
上記第２の実施形態は、ソフトウェアでもって実現しても構わない。その例を以下に説明する。ソフトウェアで実現する場合の装置構成は、第１の実施形態の変形例を参照した図１４と同じであるのでその説明は省略し、その装置上で実行する復号アプリケーションの処理手順を図２１のフローチャートに従って説明する。なお、図１０に示す各種処理部に相当する処理は、ソフトウェア上では関数、サブルーチン等で実現することになるが、本変形例でも、便宜的に、図１０の各処理部の名前をそのまま使用するものとする。そして、各部の処理内容は、上記第２の実施形態で説明した処理を行なうものとする。また、当然のことながら、バッファ２０１や符号バッファ１００１については、処理を開始するに先立って、ＣＰＵ１４０１がＲＡＭ１４０２に確保することになる。
【０１０８】
先ず、ステップＳ２１０１において、信号線１００９から復号対象となる符号化データが符号バッファに入力され、ヘッダ解析部１００２で符号化データのヘッダを解析して復号に必要な付加情報を取り出す。そして、着目する画素の垂直方向位置を保持するカウンタｙを０に設定し（ステップＳ２１０２）、さらに着目する画素の水平方向位置を保持するカウンタｘを０に設定する（ステップＳ２１０３）。次に、座標（ｘ、ｙ）に位置する画素に着目し、色数判定部１０１により復号済みの周囲画素Ｘａ、Ｘｂ、Ｘｃ、Ｘｄを参照して色数Ｎｃを求める（ステップＳ２１０４）。色数Ｎｃが１である場合（ＹＥＳ）にはステップＳ２１１４へと処理を移し、それ以外の場合（ＮＯ）にはステップＳ２１２０へと処理を移す（ステップＳ２１０５）。このとき、ＹＥＳの場合にはスイッチ１００８が端子ｂに接続され、ＮＯの場合には端子ａに接続される。
【０１０９】
ステップＳ２０２０では色数Ｎｃを４と比較して、Ｎｃ＝４である場合にはスイッチ１００７を端子ｂ側に接続し、成分値予測符号化データ復号部１００４により着目画素の各成分を復号する（ステップＳ２１０８）。一方、Ｎｃ≠４である場合には、スイッチ１００７を端子ａ側に、スイッチ１００６を端子ａ側に接続し、近傍一致情報復号部１００３によりベクトル情報が復号され、復号した値が色数Ｎｃとは異なる値であれば復号値に応じてＸａ，Ｘｂ，Ｘｃ，Ｘｄのいずれかを選択して出力する（ステップＳ２１０６）。また、復号して得られたベクトル情報と色数Ｎｃが等しいか否かを周辺画素状態情報を信号１０１０に出力する。
【０１１０】
次いで、この周辺画素状態情報が“１”であるか否かを判断し（ステップＳ２１０７）、“１”である場合にはスイッチ１００６を端子ｂ側に切り替えて、符号化データ中に非圧縮で入れられている各成分値を取り出して出力する（ステップＳ２１２１）。得られた画素値を位置（ｘ、ｙ）の復号画素値として、スイッチ１００７、スイッチ１００８を介して信号線１０１２から出力する（ステップＳ２１０９）。
【０１１１】
次いで、着目する画素の水平方向位置を保持するカウンタｘに１を加え（ステップＳ２１１０）、画像の水平方向画素数Ｗと比較してｘ＜Ｗであれば（ＹＥＳ）処理をステップＳ２１０４へと戻し、次の画素の復号処理を行い、そうでない場合（ＮＯ）にはステップＳ２１１２へと処理を移す（ステップＳ２１１１）。
【０１１２】
一方、ステップＳ２１０５にて、色数Ｎｃが１であると判断した場合、処理はステップＳ２１１４に進み、ランレングス復号部１００５の内部にてランレングスＲＬが復号される。復号したＲＬを０と比較して（ステップＳ２１１５）、ＲＬ＝０である場合（ＹＥＳ）にはステップＳ２１２０に処理を移す。この場合、スイッチ１００８は端子ｂから端子ａへと接続変更される。
【０１１３】
また、ステップＳ２１１５にて、ＲＬ≠０であると判断した場合、スイッチ１００８を介して信号線１０１２へと、位置（ｘ、ｙ）の復号画素値としてＸａを出力する（ステップＳ２１１６）。次いで、カウンタＲＬから１を減じ（ステップＳ２１１７）、着目する画素の水平方向位置を保持するカウンタｘに１を加える（ステップＳ２１１８）。そして、ステップＳ２１１９にて、水平方向画素数Ｗと比較してｘ＜Ｗであれば、ステップＳ２１１５へと戻る。また、ｘ＝Ｗであると判断した場合には、ステップＳ２１１２へと処理を移す（ステップＳ２１１９）。
【０１１４】
ステップＳ２１１２では着目する画素の垂直方向位置を保持するカウンタｙに１を加え、続いて、画像の垂直方向画素数Ｈと比較してｙ＜Ｈであれば（ＹＥＳ）処理をステップＳ２１０３へと戻し、次のラインの画素について同様に処理を行い、そうでない場合（ＮＯ）には対象とする画像データについての符号化処理を終了する（ステップＳ２１１３）。
【０１１５】
以上の動作により、第２の実施形態と同様、符号化データから完全に元の画像データを復元することができる。
【０１１６】
＜第３の実施形態の説明＞
上記第１の実施形態の画像処理装置では、周囲画素の色数に応じてベクトル情報の符号化を行うか否かを切り替える構成とした。具体的には、周囲４画素の色数を数え、４色の場合にはベクトル情報の符号化を行わずに、各成分毎に予測符号化を行った。また、１色から３色の場合にはベクトル情報の符号化を行い、尚且つ、周囲４画素に着目画素と同一の画素値が存在しない場合には各成分値を非圧縮で伝送する方法を示した。
【０１１７】
このような切り替えに限らず、色数以外の情報を参照して切り替えても良い。そこで、本第３の実施形態では、周囲画素間の差分値の大小を判別し、色数が１または２色である場合と、色数が３色、かつ、周囲画素間差分が大きい場合にベクトル情報の符号化を行う構成について説明する。
【０１１８】
図１７は本第３の実施形態に係る画像処理装置の機能構成を示すブロック図である。図１７に示すように、本実施形態に係る画像処理装置は、第１の実施形態で説明した図１のブロック図に画素間差分大小判定部１７０１、モード判定部１７０２を追加した構成となっている。また、第１の実施形態の画像処理装置の処理ブロックと同じ動作をするブロックについては同じ番号を付し、説明を省略する。なお、第１の実施形態の変形例で示したように、図１７に示す各部の機能をコンピュータに実現させるプログラムによって実現しても構わない。
【０１１９】
以下、図１７を参照して、本第３の実施形態に係る画像処理装置が行う画像符号化処理について、第１の実施形態の画像処理装置との差分について説明する。
【０１２０】
本第３の実施形態に係る画像処理装置の符号化対象とする画像データは、ＣＭＹＫカラー画像データであり、各コンポーネント（色成分）８ビットで０〜２５５の範囲の濃度値を表現した画素データにより構成されるものとする。符号化対象の画像データの並びは点順次、即ち、ラスタースキャン順に各画素を並べ、その各画素はＣ，Ｍ，Ｙ，Ｋの順番でデータを並べて構成されるものとする。また、画像は水平方向Ｗ画素、垂直方向Ｈ画素により構成されるものとする。ＣＭＹＫカラー画像データの場合にも、ＲＧＢカラー画像データの場合とほぼ同様に処理することができ、第１の実施形態の画像処理装置で、Ｒ、Ｇ、Ｂ３つのコンポーネントに対して行っていた処理をＣ，Ｍ，Ｙ，Ｋの４つのコンポーネントに対して行えば良い。
【０１２１】
画素間差分大小判定部１７０１は、バッファ２０１から着目画素Ｘの周囲４画素Ｘａ、Ｘｂ、Ｘｃ、Ｘｄにおける着目する成分値をａ，ｂ，ｃ，ｄを読み出し、Ｃ，Ｍ，Ｙ，Ｋそれぞれの成分について、aとｂ、ｂとｃ、ｃとｄの差分の絶対値の和Ｄｃ、Ｄｍ、Ｄｙ、Ｄｋを求める。続いてそれぞれの成分について求めたＤｃ、Ｄｍ、Ｄｙ、Ｄｋを足し合わせ画素間差分の総和Ｄを求める。この総和Ｄを予め定めた閾値Ｔｈと比較して、Ｄ≧Ｔｈならば大小判定の結果として“１”を、Ｄ＜Ｔｈならば“０”を出力する。したがって、周辺画素値に変化が大きい場合には“１”が出力され、変化が小さい場合には“０”が出力されることになる。
【０１２２】
モード判定部１７０２は画素間差分大小判定部１７０１の判定結果と、色数判定部１０１の出力する色数Ｎｃにより、ベクトル情報の符号化を行うか否かを決定し、行う場合には“１”、行わない場合には“０”をモード判定結果として出力する。
【０１２３】
具体的には、ベクトル情報を符号化する条件は、次の２つのいずれかを満たす場合とした。
ｉ）色数Ｎｃが１または２の場合、
ii）色数Ｎｃが３で、画素間差分大小判定部１７０１の出力が“１”である場合、
上記条件以外の場合には、ベクトル情報の符号化を行なわないものとし、モード判定結果として“０”を出力する。
【０１２４】
第１の実施形態では、近傍一致情報符号化部１０２、成分値予測符号化部１０３、スイッチ１０６は色数Ｎｃが１から３の場合と、４の場合に分けて動作を説明したが、本第３の実施形態ではモード判定部１７０２の出力が“１”の場合に、第１の実施形態で説明した色数Ncが１から３の場合と同じ動作をし、“０”の場合に同じくＮｃが４の場合と同じ動作をする。
【０１２５】
本第３の実施形態の画像処理装置による符号化処理をコンピュータプログラムで実現する場合には、図１９に示した第１の実施の形態のフローチャートとほぼ同じであり、ステップＳ１９２２の処理が異なる。第１の実施形態のステップＳ１９２２では色数Ｎｃが４であるか否かに基づいてステップＳ１９０８かステップＳ１９０６へと処理を切り替えたが、本第３の実施形態では、画素間差分大小判定部１７０１により周辺画素間の差分値の大小を判定し、続いてモード判定部１７０２により近傍一致情報の符号化を行うか否かを決定する。モード判定部１７０２の出力が“０”である場合（ＹＥＳ）にはスイッチ１０６を端子ｂ側に接続し、ステップＳ１９０８に処理を移す。一方、Ｎｃ≠４である場合（ＮＯ）にはスイッチ１０６を端子ａ側に接続し、ステップＳ１９０６へと処理を移すことになる。
【０１２６】
従って、本第３の実施形態でも、ＣＰＵ１４０１が実行することで、画像を可逆符号化することができるのは明らかである。
【０１２７】
以上の説明のように、本第３の実施形態に係る画像処理装置では、周囲の色数が少ない場合（上述の実施形態では３色）でも、周辺画素間の差分値が小さい場合には予測符号化を適用する構成となっており、大きな予測誤差が発生しやすい部分では近傍一致情報の符号化と各成分を非圧縮で伝送し、予測符号化が適していると思われる部分でのみ予測符号化を適用することで、より効率の良い符号化の実現が期待できる。
【０１２８】
なお、本第３の実施形態の画像処理装置で生成した符号化データを復号するには符号化処理の逆の手順で行えば良い。第１の実施形態の画像処理装置で生成した符号化データを復号する装置として説明した第２の実施形態の画像処理装置に、上記変更点に対応する変更を加えるだけであるのは、当業者にとって自明の範疇であろう。
【０１２９】
＜第４の実施形態＞
第１、３の実施形態の画像処理装置では近傍一致情報の符号化を行い、周囲画素に着目画素と同一の画素値が存在しなかった場合（不一致であった場合）には各成分値を元のビット精度で、非圧縮で伝送したが、予測変換以外の方法により符号量を削減することも可能である。この例を第４の実施形態として説明する。
【０１３０】
図１８は、本第４の実施形態に係る画像処理装置の機能構成を示すブロック図である。図１８に示すように、本第４の実施形態に係る画像処理装置は、第１の実施形態の画像処理装置のブロック構成を示す図１に、成分値符号化部１８０１を追加した構成となっている。第１の実施形態の画像処理装置の処理ブロックと同じ動作をするブロックについては同じ番号を付し、説明を省略する。なお、本第４の実施形態においても、図１８に示す各部の機能をコンピュータに実現させるプログラムによっても実現できるのは明らかである。この場合、該当するプログラムは図１４の外部記憶装置１４０７や記憶媒体ドライブ１４０８、もしくはＩ／Ｆ１４０９を介して外部装置からＲＡＭ１４０２にロードされることになる。
【０１３１】
以下、図１８を参照して、本第４の実施形態に係る画像処理装置が行う画像符号化処理について、第１の実施形態との差分について説明する。
【０１３２】
本第４の実施形態においても、第１の実施形態と同じく、ＲＧＢカラー画像データを符号化対象とし、各コンポーネント（色成分）８ビットで０〜２５５の範囲の輝度値を表現した画素データにより構成されるものとする。
【０１３３】
成分値符号化部１８０１はバッファ２０１から着目画素の周囲４画素Ｘａ，Ｘｂ，Ｘｃ，Ｘｄについて着目する成分値ａ，ｂ，ｃ，ｄを読み出し、以下のように、aとｂ、aとｃ、aとｄの排他的論理和Ｒ1,Ｒ２,Ｒ３を求め、それぞれの演算結果の論理和Ｒを求める。Ｒ１＝ａ xor ｂ
Ｒ２＝ａ xor ｃ
Ｒ３＝ａ xor ｄ
Ｒ＝Ｒ１ ｜ Ｒ２ ｜ Ｒ３
このようにして得られた変数Ｒの各ビットは、ビットが０である桁はa,b,c,d全てが共通の値であることを表し、１である桁は共通でないことを表す。
【０１３４】
変数Ｒの最上位ビットＭＳＢから下位に向かう０の連続数をｎを求める。そして、ａと着目画素Ｘの着目する成分ｘの上位ｎビットどうしを比較し、一致している場合には“１”を、不一致である場合には“０”を符号として出力する。
【０１３５】
一致している場合（“１”が出力される場合）、着目画素Ｘの成分ｘのＭＳＢから下位に向かうｎビットは、周囲画素に等しいことを意味するから、続けてｘの下位８−ｎビットを非圧縮で出力する。また、不一致の場合（“０”が出力される場合）、続けてｘの全てのビット(即ち８ビット)を非圧縮で出力する。
【０１３６】
因に、復号する場合には、上記と同じ処理を行なってＲを求めることで、一致／不一致の１ビットに後続して何ビットの差分ビットが存在するかわかるので、正しく復号することができる。
【０１３７】
図２０に上記成分値符号化部１８０１での符号形成の様子を図示する。図２０ではａ=１８(=0x12)、ｂ＝１５(0x0f)、ｃ＝ｄ＝27(0x1b)の場合であって、着目画素の同じ成分値ｘ＝７(0x7)が符号化される様子を示している。この場合、ａ，ｂ，ｃ，ｄの上位３ビットが共通であり（ｎ＝３）、符号化対象の成分値ｘでも上位３ビット部分はａ〜ｄと同じであるので、まず一致を表す“１”が出力される。続いて下位５ビットの情報“００１１１Ｂ”（Ｂはバイナリを示す）が出力される。
【０１３８】
また、図２０において、仮にｘ＝１２８(0x80)であった場合には、上位３ビットについて不一致を表す“０”が出力され、続いてｘの全てのビット、即ち、“１０００００００Ｂ”が出力される。Ｒ，Ｇ，Ｂそれぞれの成分について上記処理を行い、各成分値を符号化する。
【０１３９】
なお、上記の符号化データは、図８（ｂ）のＲ、Ｇ、Ｂの符号語として出力されることになる。
【０１４０】
本第４の実施形態の画像処理装置による符号化処理の流れは図１９に示した第１の実施の形態の変形例のフローチャートとほぼ同じであり、ステップＳ１９２３の処理が異なるのみである。第１の実施形態のステップＳ１９２３では各成分を非圧縮で出力したが、本実施形態では上記の成分値符号化部１８０１の動作により各成分を符号化して出力する。
【０１４１】
第１の実施形態と変形例と同様に、同図に従ったプログラムはＲＡＭ１４０２にロードされており、ＣＰＵ１４０１がこれを実行することで、図１９に示したフローチャートに従った処理を行うことができるのは明らかである。
【０１４２】
以上の説明のように、本第４の実施形態に係る画像処理装置では、近傍一致情報を符号化し、不一致であった場合に予測符号化以外の方法により、着目画素の各成分値を符号化する構成となっており、第１の実施形態よりも更に高い圧縮率とすることができる。
【０１４３】
なお、本第４の実施形態の画像処理装置で生成した符号化データを復号するには符号化処理の逆の手順で行えば良い。第１の実施形態の画像処理装置で生成した符号化データを復号する装置として説明した第２の実施形態の画像処理装置に、上記変更点に対応する変更を加えるだけであるので、ここでは説明を省略する。
【０１４４】
＜その他の例＞
本発明は上述した実施の形態に限定されるものではない。
【０１４５】
第１から第４の実施形態では近傍一致情報の符号化と、ランレングス符号化、予測符号化の構成について示した。これらは文字、線画、CG画像、自然画像など画像の性質によらず高い圧縮方式を得るためには好適な実施形態であるが、必ずしもランレングス符号化、予測符号化を用いなくとも良い。
【０１４６】
また、近傍一致情報の符号化として、あらかじめ確率分布を想定して定めた符号語を用いる方法を示したが、上述の例とは異なる符号語を用いても良いし、算術符号など異なる符号化方法を適用しても構わない。
【０１４７】
また、ここでは成分値の予測誤差のエントロピ符号化としてＧｏｌｏｍｂ符号化を用いる例について示したが、ハフマン符号などこれ以外のエントロピ符号化を用いも良い。
【０１４８】
また、着目画素Ｘの周囲画素値としてＸａ，Ｘｂ，Ｘｃ，Ｘｄを参照する例について示したが、もっと多くの画素を参照しても良いし、ＸａとＸｂだけといったように参照画素数を減らしても構わない。
【０１４９】
更に、実施形態では、ＲＧＢ画像、ＣＭＹＫ画像の符号化を例に説明したが、Ｌａｂ画像や、ＹＣｒＣｂ画像など、複数成分から成る画像データであれば適用可能であるので、上記の色空間にかぎられるものでもない。
【０１５０】
また、上述の実施形態では、符号化装置と復号装置を別の実施形態として説明したが、一つの機器にこれら２つの機能を備え、共通部分を統合しても構わないことは言うまでもない。
【０１５１】
また、上記実施形態の記載からもわかるように、本発明は画像符号化／復号する装置であれば、デジタルカメラ等、如何なる装置に適用しても構わない。
【０１５２】
更に、実施形態で示したように、本発明はコンピュータプログラムによっても実現できるものであるから、装置にファームウェアとして格納しても良いし、純粋にＰＣ等のアプリケーションプログラムやドライバプログラムにも適用できる。また、通常、コンピュータプログラムは、ＣＤ−ＲＯＭ等のコンピュータ可読記憶媒体をコンピュータにセットし、システムにコピーもしくはインストールすることで実行可能になるわけであるから、このようなコンピュータ可読記憶媒体も本発明の範疇に入るのは明らかである。
【図面の簡単な説明】
【０１５３】
【図１】第１の実施形態に係る画像処理装置のブロック構成図である。
【図２】従来の画像処理装置のブロック図である。
【図３】符号化対象画素ｘに対する周辺画素ａ，ｂ，ｃの位置を示す図である。
【図４】予測選択信号ｍに対応する予測式を示す図である。
【図５】予測誤差eとグループ番号SSSSとの対応を示す図である。
【図６】グループ番号SSSSと符号語との対応を示す図である。
【図７】成分値予測符号化部１０３の内部構成を示すブロック図である。
【図８】画素符号化データの構成を示す図である。
【図９】本画像処理装置の出力符号列の構成を示す図である。
【図１０】第２の実施形態に係る画像処理装置のブロック構成図である。
【図１１】近傍一致情報符号化部１０２のブロック構成図である。
【図１２】近傍一致情報復号部１００３のブロック構成図である。
【図１３】成分値予測符号化データ復号部１００４の内部構成を示すブロック図である。
【図１４】各実施形態の処理をソフトウェアで実行する場合の壮途のブロック構成図である。
【図１５】実施形態におけるベクトル情報とその符号語との対応を示すテーブルを示す図である。
【図１６】Golomb符号の例を示す図である。
【図１７】第３の実施形態に係る画像処理装置の機能構成を示すブロック図である。
【図１８】第４の実施形態に係る画像処理装置の機能構成を示すブロック図である。
【図１９】第１の実施形態の変形例における処理手順を示すフローチャートである。
【図２０】第４の実施形態における成分値符号化部１８０１の符号化処理内容を説明するための図である。
【図２１】第２の実施形態の変形例における処理手順を示すフローチャートである。
【図２２】実施形態における色数、ベクトル情報、周辺画素状態情報との関係を示す図でる。
【図１】
2006246062.tif 000003
【図２】
2006246062.tif 000004
【図３】
2006246062.tif 000005
【図４】
2006246062.tif 000006
【図５】
2006246062.tif 000007
【図６】
2006246062.tif 000008
【図７】
2006246062.tif 000009
【図８】
2006246062.tif 000010
【図９】
2006246062.tif 000011
【図１０】
2006246062.tif 000012
【図１１】
2006246062.tif 000013
【図１２】
2006246062.tif 000014
【図１３】
2006246062.tif 000015
【図１４】
2006246062.tif 000016
【図１５】
2006246062.tif 000017
【図１６】
2006246062.tif 000018
【図１７】
2006246062.tif 000019
【図１８】
2006246062.tif 000020
【図１９】
2006246062.tif 000021
【図２０】
2006246062.tif 000022
【図２１】
2006246062.tif 000023
【図２２】
2006246062.tif 000024
【手続補正書】
【提出日】平成17年4月11日(2005.4.11)
【手続補正１】
【補正対象書類名】図面
【補正対象項目名】図２２
【補正方法】変更
【補正の内容】
【図２２】
2006246062.tif 000025