(57)【要約】【課題】  階調データの圧縮処理に、打ち切りのできない符号化処理を用いた場合であっても、簡単な回路にて、打ち切りによる画像の欠損等による劣化などの問題を防止する為の技術を提供すること。【解決手段】  着目画素ブロックについてパックを行うことで得られる符号化データの符号量が閾値を超えている場合、該符号量が該閾値を下回るように着目画素ブロックの符号化データから差分画像の非可逆符号化結果を打ち切る。そして、該打ち切りにより得られる符号化データを、着目画素ブロックの符号化データとして出力する。【選択図】  図１
2012239033.tif 000002
【特許請求の範囲】
【請求項１】
入力画像を複数の画素から成る画素ブロックごとに分割する分割手段と、
前記分割手段が分割した画素ブロックごとに、該画素ブロックを構成する各画素が、閾値以上の画素値を有する高周波画素、該閾値よりも小さい画素値を有する低周波画素、の何れであるのかを示す画像情報を生成する第１の生成手段と、
前記第１の生成手段が画素ブロックごとに生成した画像情報に対して可逆符号化を行う可逆符号化手段と、
前記分割手段が分割した画素ブロックごとに、該画素ブロック中の前記高周波画素の画素値の平均画素値を求める計算手段と、
前記分割手段が分割した画素ブロックごとに、該画素ブロック中の前記高周波画素の画素値を該画素ブロック中の前記低周波画素を用いて計算される画素値に置き換えることで得られる階調画素ブロックを生成する第２の生成手段と、
前記第２の生成手段が画素ブロックごとに生成した階調画素ブロックに対して非可逆符号化を行う非可逆符号化手段と、
前記分割手段が分割した画素ブロックごとに、前記計算手段が計算した平均画素値、前記可逆符号化手段による可逆符号化結果、前記非可逆符号化手段による非可逆符号化結果、をパックし、該画素ブロックの符号化データとして出力する出力手段と
を備え、
前記非可逆符号化手段は、
前記階調画素ブロックから、該階調画素ブロックの縮小画像を代表画像として生成する手段と、
前記階調画素ブロックから前記代表画像とは異なる方法で得られる複数枚の縮小画像から前記代表画像を差し引いた差分画像を生成する第３の生成手段と、
前記代表画像、前記第３の生成手段が生成したそれぞれの差分画像、に対して非可逆符号化を行うことで、前記階調画素ブロックに対する非可逆符号化結果を生成する手段とを備え、
前記出力手段は、
着目画素ブロックについて前記パックを行うことで得られる符号化データの符号量が閾値を超えている場合、該符号量が該閾値を下回るように前記着目画素ブロックの符号化データから前記差分画像の非可逆符号化結果を打ち切り、該打ち切りにより得られる符号化データを、前記着目画素ブロックの符号化データとして出力する
ことを特徴とする画像処理装置。
【請求項２】
前記第２の生成手段は、前記分割手段が分割した画素ブロックごとに、該画素ブロック中の前記高周波画素の画素値を、該画素ブロック中の前記低周波画素の平均画素値に置き換えることで得られる階調画素ブロックを生成することを特徴とする請求項１に記載の画像処理装置。
【請求項３】
請求項１又は２に記載の画像処理装置によって符号化された各画素ブロックの符号化データを取得する手段と、
着目画素ブロックの符号化データから、該着目画素ブロックについて前記計算手段が計算した高周波画素の平均画素値を抽出する手段と、
前記着目画素ブロックの符号化データから、該着目画素ブロックについて前記第１の生成手段が生成した画像情報を復号する第１の復号手段と、
前記着目画素ブロックの符号化データから、前記代表画像と前記差分画像とを復号し、該復号した代表画像と差分画像とから、前記着目画素ブロックの階調画素ブロックを生成する第２の復号手段と、
前記第１の復号手段が復号した画像情報から、前記第２の復号手段が復号した階調画素ブロック中の高周波画素を特定し、該特定した高周波画素の画素値を前記第１の復号手段が復号した平均画素値に置き換えた該階調画素ブロックを出力する手段と
を備えることを特徴とする復号装置。
【請求項４】
画像処理装置が行う画像処理方法であって、
前記画像処理装置の分割手段が、入力画像を複数の画素から成る画素ブロックごとに分割する分割工程と、
前記画像処理装置の第１の生成手段が、前記分割工程で分割した画素ブロックごとに、該画素ブロックを構成する各画素が、閾値以上の画素値を有する高周波画素、該閾値よりも小さい画素値を有する低周波画素、の何れであるのかを示す画像情報を生成する第１の生成工程と、
前記画像処理装置の可逆符号化手段が、前記第１の生成工程で画素ブロックごとに生成した画像情報に対して可逆符号化を行う可逆符号化工程と、
前記画像処理装置の計算手段が、前記分割工程で分割した画素ブロックごとに、該画素ブロック中の前記高周波画素の画素値の平均画素値を求める計算工程と、
前記画像処理装置の第２の生成手段が、前記分割工程で分割した画素ブロックごとに、該画素ブロック中の前記高周波画素の画素値を該画素ブロック中の前記低周波画素を用いて計算される画素値に置き換えることで得られる階調画素ブロックを生成する第２の生成工程と、
前記画像処理装置の非可逆符号化手段が、前記第２の生成工程で画素ブロックごとに生成した階調画素ブロックに対して非可逆符号化を行う非可逆符号化工程と、
前記画像処理装置の出力手段が、前記分割工程で分割した画素ブロックごとに、前記計算工程で計算した平均画素値、前記可逆符号化工程での可逆符号化結果、前記非可逆符号化工程での非可逆符号化結果、をパックし、該画素ブロックの符号化データとして出力する出力工程と
を備え、
前記非可逆符号化工程は、
前記階調画素ブロックから、該階調画素ブロックの縮小画像を代表画像として生成する工程と、
前記階調画素ブロックから前記代表画像とは異なる方法で得られる複数枚の縮小画像から前記代表画像を差し引いた差分画像を生成する第３の生成工程と、
前記代表画像、前記第３の生成工程で生成したそれぞれの差分画像、に対して非可逆符号化を行うことで、前記階調画素ブロックに対する非可逆符号化結果を生成する工程とを備え、
前記出力工程では、
着目画素ブロックについて前記パックを行うことで得られる符号化データの符号量が閾値を超えている場合、該符号量が該閾値を下回るように前記着目画素ブロックの符号化データから前記差分画像の非可逆符号化結果を打ち切り、該打ち切りにより得られる符号化データを、前記着目画素ブロックの符号化データとして出力する
ことを特徴とする画像処理方法。
【請求項５】
復号装置が行う画像処理方法であって、
前記復号装置の取得手段が、請求項１又は２に記載の画像処理装置によって符号化された各画素ブロックの符号化データを取得する工程と、
前記復号装置の抽出手段が、着目画素ブロックの符号化データから、該着目画素ブロックについて前記計算手段が計算した高周波画素の平均画素値を抽出する手段と、
前記復号装置の第１の復号手段が、前記着目画素ブロックの符号化データから、該着目画素ブロックについて前記第１の生成工程で生成した画像情報を復号する第１の復号工程と、
前記復号装置の第２の復号手段が、前記着目画素ブロックの符号化データから、前記代表画像と前記差分画像とを復号し、該復号した代表画像と差分画像とから、前記着目画素ブロックの階調画素ブロックを生成する第２の復号工程と、
前記復号装置の出力手段が、前記第１の復号工程で復号した画像情報から、前記第２の復号工程で復号した階調画素ブロック中の高周波画素を特定し、該特定した高周波画素の画素値を前記第１の復号工程で復号した平均画素値に置き換えた該階調画素ブロックを出力する工程と
を備えることを特徴とする画像処理方法。
【請求項６】
コンピュータを、請求項１又は２に記載の画像処理装置の各手段として機能させるためのコンピュータプログラム。
【請求項７】
コンピュータを、請求項３に記載の復号装置の各手段として機能させるためのコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、符号化技術に関するものである。
【背景技術】
【０００２】
画像を圧縮する手法の１つとして、ブロック符号化が知られている。ＪＰＥＧなどのブロック符号化では、ブロック毎の符号量が可変長であるので、あるブロックのみを編集のために復号したい、という要望に応えることはできず、先頭から順番に復号しなければならない。
【０００３】
これに対して、特許文献１には、ブロック単位に符号量を固定長にする符号化技術が開示されている。固定長であるため、目的とするブロックの位置が判明すれば、その符号化データの格納位置が演算で特定でき、目的とするブロックのみを復号することが可能である。この特許文献１に記載された符号化技術は、ブロック内の画像を文字や線画等のエッジの鮮明さが重要な部分と、自然画などの階調性が重要な部分に分離し、それぞれ別の符号化方式で圧縮している。例えば、文字や線画の符号化においては、２値のブロックデータ（以下、識別情報という）の符号化として、ランレングス符号化とハフマン符号化を組み合わせて適用している。また、自然画の符号化においては、多値のブロックデータ（以下、階調データという）の符号化として、ＪＰＥＧ符号化を適用している。そして、これら得られた符号化データを定められたフォーマットに従って、１ブロック分の固定長符号化データを生成している。
【０００４】
画像圧縮のための他の手法としてＪＰＥＧ２０００という方式がある。ＪＰＥＧ２０００の符号化手順としては、まず符号化の単位ごとに離散ウェーブレット変換処理を行い、変換係数を出力する。次に、変換係数を所定の量子化ステップで量子化し、量子化インデックスを得る。次に、量子化インデックスに対して可変長符号化を行う。まず量子化インデックスはビットプレーンごとに分解され、ビットプレーン単位に２値算術符号化される。最初に最上位ビットプレーンの各ビットを算術符号化し、ビットストリームとして出力する。次に、ビットプレーンを１レベル下げて算術符号化を行う。以下、同様に最下位ビットプレーンに至るまで符号化を行い、ビットストリームを出力する。また、この可変長符号化の過程で符号量に応じて符号化を適宜打ち切ることで符号量制御をすることができるため、実質的に固定長符号化が可能であると言える。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−２７８０４２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来例のように固定長符号の中にＪＰＥＧのような可変長符号を格納する場合、目標符号量内に収まる事を保証できず、目標符号量を超えてしまう可能性がある。その場合の対策の一つに、目標符号量を超えた分の符号は打ち切るという方法がある。符号を打ち切って固定長にする場合、符号の最後に格納されている階調データから打ち切る。固定長符号の最後に格納されている階調データを打ち切る場合、通常のＪＰＥＧデータでは、固定長符号化の単位ブロックの中で、最も右下のＭＣＵ（Ｍｉｎｉｍｕｍ  Ｃｏｄｅｄ  Ｕｎｉｔ：符号化処理単位）のさらに高周波成分から順に打ち切られていく。最も右下のＭＣＵのＤＣ成分まで打ち切られると、その左に位置するＭＣＵが次に打ち切りの対象となる。この時、右下のＭＣＵの符号はなくなるので、復号化器において復号処理ができず画像に一部欠損が見えてしまう。
【０００７】
また、別の対策として、ＪＰＥＧ２０００のような打ち切りが可能な符号化を用いるという方法もあるが、ＪＰＥＧ２０００は空間周波数で分割しており、符号化アルゴリズムが複雑で演算量が多く、実装後の回路規模も大きくなってしまう。
【０００８】
本発明はこのような問題に鑑みてなされたものであり、階調データの圧縮処理に、打ち切りのできない符号化処理を用いた場合であっても、簡単な回路にて、打ち切りによる画像の欠損等による劣化などの問題を防止する為の技術を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の目的を達成するために、例えば、本発明の画像処理装置は以下の構成を備える。即ち、入力画像を複数の画素から成る画素ブロックごとに分割する分割手段と、前記分割手段が分割した画素ブロックごとに、該画素ブロックを構成する各画素が、閾値以上の画素値を有する高周波画素、該閾値よりも小さい画素値を有する低周波画素、の何れであるのかを示す画像情報を生成する第１の生成手段と、前記第１の生成手段が画素ブロックごとに生成した画像情報に対して可逆符号化を行う可逆符号化手段と、前記分割手段が分割した画素ブロックごとに、該画素ブロック中の前記高周波画素の画素値の平均画素値を求める計算手段と、前記分割手段が分割した画素ブロックごとに、該画素ブロック中の前記高周波画素の画素値を該画素ブロック中の前記低周波画素を用いて計算される画素値に置き換えることで得られる階調画素ブロックを生成する第２の生成手段と、前記第２の生成手段が画素ブロックごとに生成した階調画素ブロックに対して非可逆符号化を行う非可逆符号化手段と、前記分割手段が分割した画素ブロックごとに、前記計算手段が計算した平均画素値、前記可逆符号化手段による可逆符号化結果、前記非可逆符号化手段による非可逆符号化結果、をパックし、該画素ブロックの符号化データとして出力する出力手段とを備え、前記非可逆符号化手段は、前記階調画素ブロックから、該階調画素ブロックの縮小画像を代表画像として生成する手段と、前記階調画素ブロックから前記代表画像とは異なる方法で得られる複数枚の縮小画像から前記代表画像を差し引いた差分画像を生成する第３の生成手段と、前記代表画像、前記第３の生成手段が生成したそれぞれの差分画像、に対して非可逆符号化を行うことで、前記階調画素ブロックに対する非可逆符号化結果を生成する手段とを備え、前記出力手段は、着目画素ブロックについて前記パックを行うことで得られる符号化データの符号量が閾値を超えている場合、該符号量が該閾値を下回るように前記着目画素ブロックの符号化データから前記差分画像の非可逆符号化結果を打ち切り、該打ち切りにより得られる符号化データを、前記着目画素ブロックの符号化データとして出力することを特徴とする。
【発明の効果】
【００１０】
本発明の構成によれば、階調データの圧縮処理に、打ち切りのできない符号化処理を用いた場合であっても、簡単な回路にて、打ち切りによる画像の欠損等による劣化などの問題を防止することができる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施形態に係る画像処理装置の機能構成例を示すブロック図。
【図２】第二の符号化部１０４の機能構成例を示すブロック図。
【図３】サブブロック符号化部の構成例を示すブロック図。
【図４】第１の実施形態に係る復号装置の機能構成例を示すブロック図。
【図５】第二の復号化部４０３の機能構成例を示すブロック図。
【図６】第２の実施形態に係る画像処理装置の機能構成例を示すブロック図。
【図７】第二の符号化部６０４の機能構成例を示すブロック図。
【図８】第２の実施形態に係る復号装置の機能構成例を示すブロック図。
【図９】第二の復号化部８０３の機能構成例を示すブロック図。
【図１０】画像情報の一例を示す図。
【発明を実施するための形態】
【００１２】
以下、添付図面を参照し、本発明の好適な実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載した構成の具体的な実施例の一つである。
【００１３】
［第１の実施形態］
本実施形態では、説明を簡単なものとするため、符号化対象の画像は濃度成分のみを有し、各画素の画素値（濃度値）は８ビット（０〜２５５）で表されるものとする。即ち、本実施形態では、符号化対象の画像はモノクログレースケールの画像である。なお、各画素の画素値が示すのは濃度値であるので、値が大きいほど黒く、逆に値が小さいほど白くなることに注意されたい。なお、本実施形態をカラー画像に適用する場合には、色成分毎に以下の処理を行えばいいのは明らかである。本実施形態に係る画像処理装置の機能構成例について、図１のブロック図を用いて説明する。
【００１４】
ブロック化部１０１には、符号化対象の画像が入力画像として入力される。そしてブロック化部１０１は、この入力画像を水平方向ｍ画素×垂直方向ｎ画素のサイズ（即ち複数の画素から成る）の画素ブロックごとに分割する。そしてブロック化部１０１は、分割したそれぞれの画素ブロックを順次、抽出部１０２に送出する。
【００１５】
抽出部１０２は、ブロック化部１０１から受けた画素ブロックごとに、該画素ブロックを構成する各画素が、閾値以上の画素値を有する高周波画素、該閾値より小さい画素値を有する低周波画素、の何れであるのかを示す画像情報を生成する（第１の生成）。高周波画素は、画素ブロックの中で高周波の原因となっている画素であり、例えば、文字や線画等を構成している画素が挙げられる。抽出部１０２は、着目画素ブロックについて画像情報を生成する場合、着目画素ブロックを構成する各画素の画素値を参照し、該画素の画素値が閾値以上であれば、該画素に対するビット値として「１」を出力する。一方、該画素の画素値が閾値よりも小さい場合は、該画素に対するビット値として「０」を出力する。このように、着目画素ブロックを構成する各画素について出力したビット値の集合が、着目画素ブロックの画像情報となる。各画素に対するビット値は、各画素が高周波画素であるのか低周波画素であるのかを示すことができればよい為、そのビット数は１となる。この場合、画像情報はｍビット×ｎビットのサイズとなる。もちろん、ビット値はこのような値に限るものではない。そして抽出部１０２は、画素ブロックごとに生成した画像情報を第一の符号化部１０３に対して送出する。
【００１６】
また抽出部１０２は、ブロック化部１０１から受けた画素ブロックごとに、該画素ブロック中の高周波画素の画素値の平均値（平均画素値）を求める（計算）。そして抽出部１０２は、画素ブロックごとに求めた平均画素値をブロックヘッダデータとしてパック部１０５に対して送出する。なお、画素ブロック中に１つも高周波画素が存在しなかった場合、抽出部１０２は、予め定められた適当な値を平均画素値としてパック部１０５に対して送出する。予め定められた適当な値である理由は、画素ブロック中に高周波画素が存在しない場合、その平均画素値が使われることがないからである。
【００１７】
また抽出部１０２は、ブロック化部１０１から受けた画素ブロックごとに、該画素ブロック中の高周波画素の画素値を該画素ブロック中の低周波画素を用いて計算される画素値に置き換えた画素ブロックを階調画素ブロックとして生成する（第２の生成）。例えば、該画素ブロック中の高周波画素の画素値を、該画素ブロック中の低周波画素の平均画素値に置き換えた画素ブロックを階調画素ブロックとして生成する。このようにして生成される階調画素ブロックは、実質的に高周波部分のないｍ画素×ｎ画素のサイズの画素ブロックとなる。そして抽出部１０２は、画素ブロックごとに生成した階調画素ブロックを第二の符号化部１０４に対して送出する。
【００１８】
第一の符号化部１０３は、抽出部１０２から画素ブロックごとに送出される画像情報を受けると、この画像情報に対して可逆符号化を行って符号化データを生成し、生成した符号化データ及びその符号量（ビット数）をパック部１０５に対して送出する。第一の符号化部１０３が行う可逆符号化の種類については特に限定するものではないが、本実施形態では一例としてランレングス符号化を用いる。
【００１９】
第二の符号化部１０４は、抽出部１０２から画素ブロックごとに送出される階調画素ブロックを受けると、この階調画素ブロックに対して非可逆符号化を行って符号化データを生成し、生成した符号化データをパック部１０５に対して送出する。
【００２０】
パック部１０５は、抽出部１０２から送出されるブロックヘッダデータ、第一の符号化部１０３及び第二の符号化部１０４から送出される符号化データ、を後述するアルゴリズムに従ってパックし、固定長符号化データとして出力する。
【００２１】
以上が、本実施形態に係る画像処理装置を構成する各部が行う大まかな処理である。以下では、ブロック化部１０１、抽出部１０２、第二の符号化部１０４、パック部１０５について、より詳細に説明する。
【００２２】
ブロック化部１０１は、内部にｎライン分のバッファメモリを有している。入力画像はラスタースキャン順にブロック化部１０１に入力され、このバッファメモリに格納される。そしてブロック化部１０１は、バッファメモリに入力画像がｎライン分が格納されると、水平方向ｍ画素、垂直方向ｎ画素の画像（画素ブロック）を順に切り出し、それぞれを抽出部１０２に出力することを繰り返す。本実施形態では、ｍ＝ｎ＝１６、即ち、画素ブロックのサイズが水平方向１６画素、垂直方向１６画素、であるものとして説明する。しかし、以下の説明は、ｍ、ｎが如何なる整数値であってもよく（もちろん入力画像のサイズ以下）、ｍとｎがそれぞれ異なる値であってもよい。また、ｍ、ｎは、ユーザが適宜設定しても良い。
【００２３】
抽出部１０２は、ブロック化部１０１から１６画素×１６画素のサイズの画素ブロックを受けると、該画素ブロックを構成する各画素の画素値を参照する。そして閾値ＴＨ以上の画素値を有する画素を高周波画素、閾値ＴＨより小さい画素値を有する画素を低周波画素、というように、画素ブロックを構成する各画素を高周波画素、低周波画素の何れかに分類する。閾値ＴＨは、高周波画素を特定することができるのであれば、如何なる方法で得てもよい。即ち、ユーザが予め設定しておいてもよいし、入力画像から抽出部１０２が求めるようにしてもよい。また、濃度値の低い画素が高周波画素であると判断した場合は、閾値ＴＨ以下の画素値を高周波画素、閾値ＴＨより大きい画素を低周波画素としても良い。入力画像から閾値ＴＨを求める方法の一例としては、入力画像を構成する各画素の画素値の平均値を閾値ＴＨとする方法がある。そして抽出部１０２は、高周波画素の画素値の平均値（平均画素値）ＡＶＥ１をパック部１０５に対して送出する。上記の通り、画素ブロック中に１つも高周波画素が存在しなかった場合、抽出部１０２は、予め定められた適当な値をパック部１０５に対して送出する。
【００２４】
また、抽出部１０２は、ブロック化部１０１から１６画素×１６画素のサイズの画素ブロックを受けると、該画素ブロック内をスキャンして各画素の画素値を参照する。そして抽出部１０２は、参照した画素値が閾値ＴＨ以上であればビット値「１」を出力し、閾値ＴＨよりも小さい場合はビット値「０」を出力する。このように、画素ブロックを構成する各画素について出力したビット値は画素数分（ｍ×ｎ）あり、抽出部１０２は、この画素数分のビット値の集合を画像情報として第一の符号化部１０３に対して送出する。
【００２５】
また、抽出部１０２は、ブロック化部１０１から１６画素×１６画素のサイズの画素ブロックを受けると、該画素ブロック中の低周波画素の画素値の平均値（平均画素値）ＡＶＥ２を算出する。そして抽出部１０２は、該画素ブロック中の高周波画素の画素値を平均画素値ＡＶＥ２に置き換えた画素ブロックを、階調画素ブロックとして生成する。
【００２６】
抽出部１０２が受けた画素ブロック中の座標（ｉ，ｊ）における画素の画素値をＡｉｎ（ｉ，ｊ）、この画素について抽出部１０２が出力したビット値をＰ（ｉ，ｊ）、階調画素ブロック中の座標（ｉ，ｊ）における画素の画素値をＡｏｕｔ（ｉ，ｊ）とする。このとき、Ａｏｕｔ（ｉ，ｊ）は以下の式に従って決定される。
【００２７】
Ｐ（ｉ，ｊ）＝１（画素ブロック中の座標（ｉ，ｊ）における画素が高周波画素の場合）  Ａｏｕｔ（ｉ，ｊ）＝ＡＶＥ２
Ｐ（ｉ，ｊ）＝０（画素ブロック中の座標（ｉ，ｊ）における画素が低周波画素の場合）  Ａｏｕｔ（ｉ，ｊ）＝Ａｉｎ（ｉ，ｊ）
そして抽出部１０２は、このようにして生成した階調画素ブロックを第二の符号化部１０４に対して送出する。これにより、第二の符号化部１０４には、高周波成分が除外された階調画素ブロックが供給されることなり、高い圧縮率が期待できる。なお、階調画素ブロックの生成は第二の符号化部１０４で行うようにしてもよい。
【００２８】
第二の符号化部１０４の機能構成例について、図２のブロック図を用いて説明する。分割部２０１には、抽出部１０２から階調画素ブロックが順次入力される。分割部２０１は、入力された階調画素ブロックから、該階調画素ブロックの縮小画像を代表画像として生成すると共に、該階調画素ブロックから代表画像とは異なる方法で得られる複数枚の縮小画像から代表画像を差し引いた差分画像を生成する（第３の生成）。図２の場合、１枚の階調画素ブロックから、１枚の代表画像と３枚の差分画像の合計４枚のサブブロックを生成する。当然ながら、代表画像、差分画像のそれぞれの縦横サイズは同じである。そして分割部２０１は、生成した代表画像についてはサブブロック符号化部２０２ａに入力し、生成した３枚の差分画像についてはそれぞれサブブロック符号化部２０２ｂ〜２０２ｄに入力する。
【００２９】
ここで、代表画像及び差分画像の生成方法について説明する。なお、以下では、４枚のサブブロックを生成する場合について説明するが、４枚に限定するものではなく、１枚の代表画像と１枚以上の差分画像を生成することができるのであれば、サブブロックの枚数は如何なる枚数であってもよい。この場合、サブブロックの個数分だけサブブロック符号化部を用意する必要がある。しかし、サブブロック符号化部を１つのみとし、この１つのサブブロック符号化部がそれぞれのサブブロックを時分割で順番に処理するという構成にしても良い。
【００３０】
階調画素ブロックから生成するそれぞれのサブブロックのサイズとしては、後段のサブブロック符号化部で行う直交変換処理用のサイズと同じにするのが適当である。ここでは直交変換符号化として８×８のＤＣＴを含む処理を行うことにするため、１６画素×１６画素のサイズの階調画素ブロックから、８画素×８画素のサイズのサブブロックを生成する。
【００３１】
先ず、階調画素ブロックの縮小画像である代表画像を生成するのであるが、代表画像の生成方法は以下に説明する方法に限るものではない。ただし、中央値などのように逆算が一般的に不可能なものは使用できない。
【００３２】
階調画素ブロック中の座標（ｉ，ｊ）における画素値をＡ（ｉ，ｊ）、代表画像中の座標（ｉ，ｊ）における画素値をＢ０（ｉ，ｊ）とすると、Ｂ０（ｉ，ｊ）は以下の式に従って求める。なお、ｉ、ｊは、０≦ｉ≦７、０≦ｊ≦７を満たす整数である。
【００３３】
Ｂ０（ｉ，ｊ）＝（Ａ（２ｉ，２ｊ）＋Ａ（２ｉ＋１，２ｊ）＋Ａ（２ｉ，２ｊ＋１）＋Ａ（２ｉ＋１，２ｊ＋１））／４
次に、差分画像Ｂ１中の座標（ｉ，ｊ）における画素値をＢ１（ｉ，ｊ）、差分画像Ｂ２中の座標（ｉ，ｊ）における画素値をＢ２（ｉ，ｊ）、差分画像Ｂ３中の座標（ｉ，ｊ）における画素値をＢ３（ｉ，ｊ）、とすると、それぞれは以下の式に従って求める。
【００３４】
Ｂ１（ｉ，ｊ）＝Ａ（２ｉ＋１，２ｊ    ）−Ｂ０（ｉ，ｊ）
Ｂ２（ｉ，ｊ）＝Ａ（２ｉ    ，２ｊ＋１）−Ｂ０（ｉ，ｊ）
Ｂ３（ｉ，ｊ）＝Ａ（２ｉ＋１，２ｊ＋１）−Ｂ０（ｉ，ｊ）
即ち、差分画像Ｂ１は、０≦ｉ≦７、０≦ｊ≦７を満たすｉ，ｊによるＡ（２ｉ＋１，２ｊ）からなる縮小画像から、代表画像Ｂ０を差し引いた差分画像である。また、差分画像Ｂ２は、０≦ｉ≦７、０≦ｊ≦７を満たすｉ，ｊによるＡ（２ｉ，２ｊ＋１）からなる縮小画像から、代表画像Ｂ０を差し引いた差分画像である。また、差分画像Ｂ３は、０≦ｉ≦７、０≦ｊ≦７を満たすｉ，ｊによるＡ（２ｉ＋１，２ｊ＋１）からなる縮小画像から、代表画像Ｂ０を差し引いた差分画像である。このようにして得られた画素値の範囲は、以下の不等式を満たす。
【００３５】
０≦Ｂ０（ｉ，ｊ）≦２５５
−２５５≦Ｂ１（ｉ，ｊ）≦２５５
−２５５≦Ｂ２（ｉ，ｊ）≦２５５
−２５５≦Ｂ３（ｉ，ｊ）≦２５５
サブブロック符号化部２０２ａ〜２０２ｄは何れも、入力されたサブブロックに対して非可逆符号化を行う。符号化方法としては打ち切りを考慮すると、ＪＰＥＧなどのような直交変換を利用した符号化が適している。サブブロック符号化部２０２ａ〜２０２ｄに適用可能な構成を図３に示す。図３では、サブブロック符号化部２０２ａ〜２０２ｄをサブブロック符号化部２０２としている。
【００３６】
ＤＣＴ演算部３０１は、入力されたサブブロックに対してＤＣＴ変換処理を行う。量子化部３０２は、ＤＣＴ変換により得られた係数に対して量子化処理を行う。ジグザクスキャン部３０３は、量子化処理により得られた各量子化値に対してジグザクスキャンを行い、エントロピー符号化部３０４は、スキャンした量子化値に対してエントロピー符号化を行うことで、符号化サブブロックデータを生成し、出力する。このサブブロック符号化部２０２が行う一連の符号化処理は、一般的なＪＰＥＧ符号化と同じ処理ではあるが、以下の点で異なる。ＤＣＴ演算部３０１の入力としては通常は画像の画素値が入力されるので、マイナスの値が入力されることはない。しかし、本実施形態では前述したように代表画像Ｂ０、差分画像Ｂ１〜Ｂ３を入力するために、マイナスの値が入力される可能性がある。従って、ＤＣＴ演算部３０１はマイナスの値の入力に対応したものである必要がある。
【００３７】
パック部１０５は、抽出部１０２から送出されたブロックヘッダデータ、第一の符号化部１０３から送出された符号化データ、第二の符号化部１０４から送出された符号化データ（代表画像Ｂ０、差分画像Ｂ１〜Ｂ３の符号化データ）、をこの順でパックする。ここで、パック部１０５は、このパックした結果である符号化データの符号量を、画素ブロックごとに監視している。そして、着目画素ブロックについてパックを行うことで得られる符号化データの符号量が閾値を超えている場合、パック部１０５は、該符号量が該閾値を下回るように、着目画素ブロックの符号化データから差分画像の非可逆符号化結果を打ち切る（切り捨てる）。例えば、着目画素ブロックの符号化データの先頭から順に符号量を計数した場合に、差分画像Ｂ２の非可逆符号化結果の途中でその符号量が閾値を超えてしまったとする。この場合、差分画像Ｂ３（これに差分画像Ｂ２の残りの非可逆符号化結果も加えてよい）を着目画素ブロックの符号化データから打ち切る。これにより、符号量が閾値を超えない固定長の符号化データを画素ブロックごとに出力することができる。
【００３８】
次に、上記のようにして得られた、画素ブロックごとの符号化データを復号する場合について説明する。この復号を行う画像処理装置（復号装置）の機能構成例について、図４のブロック図を用いて説明する。なお、図４の画像処理装置は、図１の画像処理装置と同じ装置であってもよいし、異なる装置であってもよい。
【００３９】
ヘッダ解析部４０１は、着目画素ブロックの固定長符号化データを受ける（取得する）と、この固定長符号化データから、ブロックヘッダデータを抽出する。第一の復号化部４０２は、着目画素ブロックの符号化データを受けると、第一の符号化部１０３により符号化された画像情報を復号する。第二の復号化部４０３は、着目画素ブロックの符号化データを受けると、第二の符号化部１０４により符号化された階調画素ブロックを復号する。復元部４０４は、ヘッダ解析部４０１から得られるブロックヘッダデータと、第一の復号化部４０２が復号した画像情報と、第二の復号化部４０３が復号した階調画素ブロックと、から着目画素ブロックを復号し、出力する。
【００４０】
以下では、図４に示した各部についてより詳細に説明する。ヘッダ解析部４０１は、着目画素ブロックの固定長符号化データを受けると、この固定長符号化データからブロックヘッダデータを抽出するのであるが、このブロックヘッダデータは、高周波画素の平均画素値若しくは適当な値を示すものである。何れを示しているのかは、第一の復号化部４０２により復号される画像情報が「全ての画素に対するビット値が０である」ことを示しているか否かで判別可能である。即ち、全ての画素に対するビット値が０の場合、高周波画素が存在しないことを示しているのであるから、ブロックヘッダデータは、適当な値を示すことになる。そしてヘッダ解析部４０１は、抽出したブロックヘッダデータを復元部４０４に対して送出する。また、ヘッダ解析部４０１は、固定長符号化データから画像情報の符号化データの先頭ビットを頭出しして第一の復号化部４０２へ出力する。勿論、頭出し処理をするのではなく、先頭ビットの位置を示すポインタを固定長符号化データと一緒に出力するという構成にしても良い。
【００４１】
第一の復号化部４０２は、画像情報の符号化データが頭出しされた固定長符号化データ、若しくは画像情報の符号化データの先頭位置を示したポインタと固定長符号化データを受け取る。そして第一の復号化部４０２は、画像情報の符号化データに対して第一の符号化部１０３に対応する復号処理（第１の復号）を行うことで、この画像情報を復元し、復元した画像情報を復元部４０４に対して送出する。また、第一の復号化部４０２は、階調画素ブロックの符号化データの先頭ビットを頭出しして第二の復号化部４０３へ出力する。ここでも、頭出しの代わりに階調画素ブロックの符号化データの先頭ビット位置を示すポインタと固定長符号化データを一緒に出力するという構成にしても良い。
【００４２】
第二の復号化部４０３は、階調画素ブロックの符号化データが頭出しされた固定長符号化データ、若しくは階調画素ブロックの符号化データの先頭位置を示したポインタと固定長符号化データを受け取る。そして第二の復号化部４０３は、階調画素ブロックの符号化データに対して、第二の符号化部１０４に対応する復号処理（第２の復号）を行うことで、この階調画素ブロックを復元し、復元した階調画素ブロックを復元部４０４に対して送出する。
【００４３】
第二の復号化部４０３の機能構成例を図５に示す。図５では、図２の構成にあわせて、サブブロック復号化部を４つ設けている。何れのサブブロック復号化部５０１ａ〜５０１ｄも、同様の復号化処理を行い、復号したサブブロックを合成部５０２へ、次のサブブロックを頭出ししたデータを次段のサブブロック復号化部５０１へ出力する。もちろん、符号化側と同様、１つのサブブロック復号化部が各サブブロックを時分割に復号するようにしてもよい。
【００４４】
合成部５０２はそれぞれのサブブロック復号化部５０１ａ〜５０１ｄから出力されたサブブロックから階調画素ブロックを復号し、復号した階調画素ブロックを復元部４０４に対して送出する。
【００４５】
次に、サブブロック復号化部５０１ａ〜５０１ｄ、合成部５０２のそれぞれについてより詳細に説明する。サブブロック復号化部５０１ａは、代表画像Ｂ０の符号化データを復号することで代表画像Ｃ０を得る。サブブロック復号化部５０１ｂは、差分画像Ｂ１の符号化データを復号することで差分画像Ｃ１を得る。サブブロック復号化部５０１ｃは、差分画像Ｂ２の符号化データを復号することで差分画像Ｃ２を得る。サブブロック復号化部５０１ｄは、差分画像Ｂ３の符号化データを復号することで差分画像Ｃ３を得る。何れの復号も、サブブロック符号化部に対応した復号化処理である。
【００４６】
合成部５０２は、代表画像Ｃ０及び差分画像Ｃ１〜Ｃ３から、以下の式に従って階調画素ブロックＤを生成する。ｉとｊは、０≦ｉ≦７、０≦ｊ≦７を満たす整数である。
【００４７】
Ｄ（２ｉ    ，２ｊ    ）＝Ｃ０（ｉ，ｊ）−Ｃ１（ｉ，ｊ）−Ｃ２（ｉ，ｊ）−Ｃ３（ｉ，ｊ）
Ｄ（２ｉ＋１，２ｊ    ）＝Ｃ０（ｉ，ｊ）＋Ｃ１（ｉ，ｊ）
Ｄ（２ｉ    ，２ｊ＋１）＝Ｃ０（ｉ，ｊ）＋Ｃ２（ｉ，ｊ）
Ｄ（２ｉ＋１，２ｊ＋１）＝Ｃ０（ｉ，ｊ）＋Ｃ３（ｉ，ｊ）
なお、Ｃ（ｉ，ｊ）は、サブブロック中の座標（ｉ，ｊ）における画素値を示している。このような式を計算することで、階調画素ブロック中の各画素位置における画素値を求めることができる。なお、上記の打ち切りにより、例えば差分画像Ｃ３が打ち切られている場合、Ｃ３（ｉ，ｊ）＝０とみなし、以下のように計算する。
【００４８】
Ｄ（２ｉ    ，２ｊ    ）＝Ｃ０（ｉ，ｊ）−Ｃ１（ｉ，ｊ）−Ｃ２（ｉ，ｊ）
Ｄ（２ｉ＋１，２ｊ    ）＝Ｃ０（ｉ，ｊ）＋Ｃ１（ｉ，ｊ）
Ｄ（２ｉ    ，２ｊ＋１）＝Ｃ０（ｉ，ｊ）＋Ｃ２（ｉ，ｊ）
Ｄ（２ｉ＋１，２ｊ＋１）＝Ｃ０（ｉ，ｊ）
もちろん、差分画像Ｃ１，Ｃ２が打ち切られている場合も同様に、Ｃ１（ｉ，ｊ）＝Ｃ２（ｉ，ｊ）＝０とする。差分画像Ｃ１〜Ｃ３が打ち切られた場合、Ｄ（２ｉ，２ｊ）からＤ（２ｉ＋１，２ｊ＋１）までは全てＣ０となり、これは単純な４画素平均の画像を直交変換符号化したものと同等の画質となる。また、これらは差分画像が打ち切られても、画質の劣化はあるが画像の形成自体は可能であり、画像の欠損を防止できる事を示している。
【００４９】
復元部４０４は、第一の復号化部４０２から得られる画像情報を参照し、第二の復号化部４０３から得られる階調画素ブロック中の各画素のうち、ビット値が「１」に対応する画素、即ち高周波画素を特定する。そして復元部４０４は、特定した高周波画素の画素値を、ヘッダ解析部４０１から得たブロックヘッダデータが示す平均画素値に置き換えた階調画素ブロックを出力する。
【００５０】
このように、代表画像と差分画像を分割して符号化してから格納することにより、データ量が目標符号量を超えてデータの一部が打ち打ち切られた場合でも、画像の欠損の防止が可能となる。
【００５１】
［第２の実施形態］
本実施形態では、第１の実施形態よりも画質劣化の少ない符号化を行う画像処理装置について説明する。本実施形態に係る画像処理装置の機能構成例について、図６のブロック図を用いて説明する。
【００５２】
図６において図１に示した構成要素と同じ構成要素については同じ参照番号をつけている。図６に示した構成が図１に示した構成と異なる点は、第二の符号化部１０４を第二の符号化部６０４に置き換えた点と、抽出部１０２が生成した画像情報を第二の符号化部６０４にも供給する点にある。
【００５３】
第二の符号化部６０４の機能構成例について、図７のブロック図を用いて説明する。なお、以下では、第二の符号化部１０４と異なる点のみについて説明し、同様の点については触れないこととする。
【００５４】
分割部７０１には、抽出部１０２から階調画素ブロック及び該階調画素ブロックに対応する画像情報が入力される。階調画素ブロックでは、元々高周波画素であった画素の画素値は、低周波画素の平均画素値で置き換えられている。しかし、この平均画素値は、代表画像Ｂ０を求めるために参照する２画素×２画素の領域内の平均画素値と必ずしも一致しない。然るに、この２画素×２画素の領域内に、低周波画素の平均画素値が含まれていると、他の２画素×２画素の領域との間に差が生じてしまい、後段のサブブロック符号化部で圧縮効率が低下する可能性がある。そのため、本実施形態では、代表画像Ｂ０を求めるために参照する２画素×２画素の領域内に低周波画素の平均画素値が含まれている場合は、この平均画素値は用いないようにする。
【００５５】
具体的には、分割部７０１は、以下の式に従ってＢ０（ｉ，ｊ）を求める。但し、Ｐ（２ｉ，２ｊ）＝Ｐ（２ｉ＋１，２ｊ）＝Ｐ（２ｉ，２ｊ＋１）＝Ｐ（２ｉ＋１，２ｊ＋１）＝１の場合、この式は計算せず、Ｂ０（ｉ，ｊ）＝ＡＶＥ２とする。
【００５６】
Ｂ０（ｉ，ｊ）＝（（１−Ｐ（２ｉ，２ｊ））×Ａ（２ｉ，２ｊ）
＋（１−Ｐ（２ｉ＋１，２ｊ））×Ａ（２ｉ＋１，２ｊ）
＋（１−Ｐ（２ｉ，２ｊ＋１））×Ａ（２ｉ，２ｊ＋１）
＋（１−Ｐ（２ｉ＋１，２ｊ＋１））×Ａ（２ｉ＋１，２ｊ＋１））／（４−Ｐ（２ｉ，２ｊ）−Ｐ（２ｉ＋１，２ｊ）−Ｐ（２ｉ，２ｊ＋１）−Ｐ（２ｉ＋１，２ｊ＋１））
即ち、ビット値が０の画素の画素値だけを代表画像Ｂ０の画素値を求めるための計算に用いる。ここでその一例を図１０に示す。図１０には、１６画素×１６画素のサイズの画像情報が示されている。この画像情報の場合に、Ｂ０（０，０）（左上隅がｉ＝ｊ＝０）は以下の式に従って求められる。
【００５７】
Ｂ０（０，０）＝（Ａ（１，０）＋Ａ（１，１））／２
また、Ｂ０（１，０）は以下の式に従って求められる。
【００５８】
Ｂ０（１，０）＝（Ａ（２，０）＋Ａ（２，１）＋Ａ（３，１））／３
また、Ｂ０（２，０）については、Ｐ（４，０）＝Ｐ（４，１）＝Ｐ（５，０）＝Ｐ（５，１）＝１であるので、Ｂ０（２，０）＝ＡＶＥ２となる。
【００５９】
差分画像Ｂ１〜Ｂ３については第１の実施形態と同様、以下の式に従って求める。
【００６０】
Ｂ１（ｉ，ｊ）＝Ａ（２ｉ＋１，２ｊ    ）−Ｂ０（ｉ，ｊ）
Ｂ２（ｉ，ｊ）＝Ａ（２ｉ    ，２ｊ＋１）−Ｂ０（ｉ，ｊ）
Ｂ３（ｉ，ｊ）＝Ａ（２ｉ＋１，２ｊ＋１）−Ｂ０（ｉ，ｊ）
次に、上記のようにして得られた、画素ブロックごとの符号化データを復号する場合について説明する。この復号を行う画像処理装置の機能構成例について、図８のブロック図を用いて説明する。なお、図８の画像処理装置は、図６の画像処理装置と同じ装置であってもよいし、異なる装置であってもよい。図８に示した構成において、図４に示した構成要素と同じ構成要素については同じ参照番号をつけている。図８に示した構成が図４に示した構成と異なる点は、第二の復号化部４０３を第二の復号化部８０３に置き換えると共に、第一の復号化部４０２による復号結果（画像情報）がこの第二の復号化部８０３に供給されている点にある。
【００６１】
第二の復号化部８０３の機能構成例について、図９のブロック図を用いて説明する。図９に示した構成において、図５に示した構成要素と同じ構成要素については同じ参照番号をつけている。図９に示した構成が図５に示した構成と異なる点は、合成部５０２が合成部９０２に置き換えられていると共に、この合成部９０２に復号された画像情報が供給されている点にある。以下では、この合成部９０２について説明する。
【００６２】
合成部９０２は、それぞれのサブブロック復号化部５０１ａ〜５０１ｄから出力されたサブブロックから階調画素ブロックを復号し、復号した階調画素ブロックを復元部４０４に対して送出する。
【００６３】
合成部９０２は、代表画像Ｃ０、差分画像Ｃ１〜Ｃ３、画像情報から、以下の式に従って階調画素ブロックＤを生成する。ｉとｊは、０≦ｉ≦７、０≦ｊ≦７を満たす整数である。
【００６４】
Ｄ（２ｉ    ，２ｊ    ）＝（１−Ｐ（２ｉ，２ｊ））×Ｃ０（ｉ，ｊ）
−（１−Ｐ（２ｉ＋１，２ｊ））×Ｃ１（ｉ，ｊ）
−（１−Ｐ（２ｉ，２ｊ＋１））×Ｃ２（ｉ，ｊ）
−（１−Ｐ（２ｉ＋１，２ｊ＋１））×Ｃ３（ｉ，ｊ）
Ｄ（２ｉ＋１，２ｊ    ）＝Ｃ０（ｉ，ｊ）＋Ｃ１（ｉ，ｊ）
Ｄ（２ｉ    ，２ｊ＋１）＝Ｃ０（ｉ，ｊ）＋Ｃ２（ｉ，ｊ）
Ｄ（２ｉ＋１，２ｊ＋１）＝Ｃ０（ｉ，ｊ）＋Ｃ３（ｉ，ｊ）
画像情報が図１０に示したものである場合、例えばＤ（０，０）、Ｄ（２，０）のそれぞれは以下のように計算される。
【００６５】
Ｄ（０，０）＝０−Ｃ１（０，０）−０−Ｃ３（０，０）
Ｄ（２，０）＝Ｃ０（１，０）−０−Ｃ２（１，０）−Ｃ３（１，０）
なお、打ち切られた差分画像については第１の実施形態と同様、計算式から外すことで対処する。例えば差分画像Ｃ３が打ち切られている場合、上記の計算式からＣ３の項を外す。
【００６６】
以上の説明により、本実施形態によれば、平均画像を低周波画素のみから算出することで、階調情報への高周波画素の影響が少なくなるので、より原画像からの劣化の少ない画像符号化が可能となる。
【００６７】
［第３の実施形態］
図１〜図９に示した各部は、ハードウェアで構成してもよいが、コンピュータプログラムで実装してもよい。後者の場合、ＣＰＵ、メモリなどを有するコンピュータのこのメモリにこのコンピュータプログラムをインストールし、このＣＰＵがこのコンピュータプログラムを実行することで、このコンピュータは、図１〜図９に示した各部の機能を実現することができる。もちろん、符号化側、復号側のそれぞれのコンピュータプログラムを別個のコンピュータにインストールして実行させてもよい。
【００６８】
（その他の実施例）
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（またはＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【図１】
2012239033.tif 000003
【図２】
2012239033.tif 000004
【図３】
2012239033.tif 000005
【図４】
2012239033.tif 000006
【図５】
2012239033.tif 000007
【図６】
2012239033.tif 000008
【図７】
2012239033.tif 000009
【図８】
2012239033.tif 000010
【図９】
2012239033.tif 000011
【図１０】
2012239033.tif 000012