(57)【特許請求の範囲】
【請求項１】
画像データを圧縮符号化する画像符号化装置であって、
水平及び垂直方向に複数の画素で構成されるサイズのブロックを単位に、画像データを入力する入力手段と、
前記入力手段で入力した着目ブロックについて、ｐ×ｑ画素（ｐ，ｑは正の整数であり、少なくとも一方は２以上）のサイズのウインドウを単位とし、各ウインドウ内の相対的に同じ位置の画素データで構成されるサブブロックを生成することにより、ｐ×ｑ個のサブブロックを取得する生成手段と、
前記ｐ×ｑ個のサブブロックを符号化する符号化手段とを備え、
前記符号化手段は、前記ｐ×ｑ個のサブブロックの符号化データの総符号量が予め設定された許容符号化データ量を超えた場合、当該許容符号化データ量以内とするために一部のサブブロックの符号化データを破棄することにより、前記入力手段で入力した着目ブロックの符号化データを生成することを特徴とする画像符号化装置。
【請求項２】
画像データを圧縮符号化する画像符号化装置であって、
水平及び垂直方向に複数の画素で構成されるサイズのブロックを単位に、画像データを入力する入力手段と、
前記入力手段で入力した着目ブロックについて、ｐ×ｑ画素（ｐ，ｑは正の整数であり、少なくとも一方は２以上）のサイズのウインドウを単位とし、各ウインドウ内の相対的に同じ位置の画素データで構成されるサブブロックを生成することにより、ｐ×ｑ個のサブブロックを取得する生成手段と、
前記ｐ×ｑ個のサブブロックを符号化する符号化手段と、
前記ｐ×ｑ個のサブブロックそれぞれの符号化データのデータ量をＬ（０）乃至Ｌ（ｐ×ｑ−１）、予め設定された許容符号化データ量をＴｈとしたとき、
ΣＬ（ｉ）≦Ｔｈ
を満たす最大の整数ｉを求め、当該ｉで示される個数に相当する前記ｐ×ｑ個のサブブロックの符号化データを、前記入力手段で入力した着目ブロックの符号化データとして出力する出力手段と
を備えることを特徴とする画像符号化装置。
【請求項３】
前記符号化手段は、
前記ｐ×ｑ個のサブブロックをＳＢ（０）、ＳＢ（１）、…、ＳＢ（ｐ×ｑ−１）と定義したとき、
先頭のサブブロックＳＢ（０）はそのサブブロック内の画素値のまま符号化し、
着目サブブロックＳＢ（ｋ）（ｋは正の整数）を符号化する際には、着目サブブロックＳＢ（ｋ）内の各位置の画素値と、先行するサブブロックＳＢ（ｋ−ｊ）（ｊは正の整数）内の相対的に同じ位置の画素値との差分を算出することで、サブブロック差分情報ＳＢ’（ｋ）を生成し、生成したサブブロック差分情報ＳＢ’（ｋ）の各画素位置の差分値を符号化する
ことを特徴とする請求項２に記載の画像符号化装置。
【請求項４】
前記出力手段は、サブブロックＳＢ（０）からサブブロックＳＢ（ｉ）までに相当する符号化データを出力することを特徴とする請求項３に記載の画像符号化装置。
【請求項５】
画像データを圧縮符号化する画像符号化装置の制御方法であって、
入力手段が、水平及び垂直方向に複数の画素で構成されるサイズのブロックを単位に、画像データを入力する入力工程と、
生成手段が、前記入力工程で入力した着目ブロックについて、ｐ×ｑ画素（ｐ，ｑは正の整数であり、少なくとも一方は２以上）のサイズのウインドウを単位とし、各ウインドウ内の相対的に同じ位置の画素データで構成されるサブブロックを生成することにより、ｐ×ｑ個のサブブロックを取得する生成工程と、
符号化手段が、前記ｐ×ｑ個のサブブロックを符号化する符号化工程とを備え、
前記符号化工程では、前記ｐ×ｑ個のサブブロックの符号化データの総符号量が予め設定された許容符号化データ量を超えた場合、当該許容符号化データ量以内とするために一部のサブブロックの符号化データを破棄することにより、前記入力手段で入力した着目ブロックの符号化データを生成することを特徴とする画像符号化装置の制御方法。
【請求項６】
画像データを圧縮符号化する画像符号化装置の制御方法であって、
入力手段が、水平及び垂直方向に複数の画素で構成されるサイズのブロックを単位に、画像データを入力する入力工程と、
生成手段が、前記入力工程で入力した着目ブロックについて、ｐ×ｑ画素（ｐ，ｑは正の整数であり、少なくとも一方は２以上）のサイズのウインドウを単位とし、各ウインドウ内の相対的に同じ位置の画素データで構成されるサブブロックを生成することにより、ｐ×ｑ個のサブブロックを取得する生成工程と、
符号化手段が、前記ｐ×ｑ個のサブブロックを符号化する符号化工程と、
出力手段が、
前記ｐ×ｑ個のサブブロックそれぞれの符号化データのデータ量をＬ（０）乃至Ｌ（ｐ×ｑ−１）、予め設定された許容符号化データ量をＴｈとしたとき、
ΣＬ（ｉ）≦Ｔｈ
を満たす最大の整数ｉを求め、当該ｉで示される個数に相当する前記ｐ×ｑ個のサブブロックの符号化データを、前記入力工程で入力した着目ブロックの符号化データとして出力する出力工程と
を備えることを特徴とする画像符号化装置の制御方法。
【請求項７】
コンピュータが読み込み実行することで、前記コンピュータを請求項１乃至４のいずれか１項に記載の画像符号化装置の手段として機能させることを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は画像の符号化技術に関するものである。
【背景技術】
【０００２】
一般に、圧縮符号化技術として知られているものに、ＪＰＥＧがある。ＪＰＥＧは、符号化対象の画像データを複数画素で構成されるブロックに分割し、各ブロックをＤＣＴ、量子化、そして、エントロピー符号化を行なうものである。この一連の処理において、特に量子化処理で用いる量子化ステップ値が、符号量を決める主要なパラメータとなる。すなわち、量子化ステップ値を大きな値にすると、ＤＣＴ係数値が０もしくはそれに近い値になり、圧縮率が上げることができる。但し、量子化ステップ値を大きくすればするほど、符号化前のオリジナル画像に対する差が大きくなり、画質劣化として現れる。
【０００３】
画質劣化を防止しつつ符号化効率を高める技術として、特許文献１が知られている。この文献によれば、入力画像をブロックに分割し、差分予測無しに符号化処理した結果と、差分予測を行ったブロックに対して符号化処理した結果との符号量を比較し符号量の少ない手法を各ブロックで選択するものである。
【特許文献１】特開平１０−２５７４９４
【発明の開示】
【発明が解決しようとする課題】
【０００４】
しかしながら、非可逆の符号化手法において、過度に高い圧縮率で符号化を行うと、画像情報が多く欠落してしまい、画質劣化が目立ってしまう問題がある。先に示した従来の符号化手法では、ある程度の画像品位を保つことと、符号量の削減を両立することに対して未だ改善の余地がある。
【０００５】
本発明はかかる課題に鑑みなされたものであり、画質劣化を抑制しつつ、これまで以上の情報を削減することを可能ならしめる画像符号化技術を提供しようとするものである。
【課題を解決するための手段】
【０００６】
この課題を解決するため、例えば本発明の画像符号化装置は以下の構成を備える。すなわち、
画像データを圧縮符号化する画像符号化装置であって、
水平及び垂直方向に複数の画素で構成されるサイズのブロックを単位に、画像データを入力する入力手段と、
前記入力手段で入力した着目ブロックについて、ｐ×ｑ画素（ｐ，ｑは正の整数であり、少なくとも一方は２以上）のサイズのウインドウを単位とし、各ウインドウ内の相対的に同じ位置の画素データで構成されるサブブロックを生成することにより、ｐ×ｑ個のサブブロックを取得する生成手段と、
前記ｐ×ｑ個のサブブロックを符号化する符号化手段とを備え、
前記符号化手段は、前記ｐ×ｑ個のサブブロックの符号化データの総符号量が予め設定された許容符号化データ量を超えた場合、当該許容符号化データ量以内とするために一部のサブブロックの符号化データを破棄することにより、前記入力手段で入力した着目ブロックの符号化データを生成することを特徴とする。
【発明の効果】
【０００７】
本発明によれば、ブロック内を、p×ｑ画素のサイズのウインドウを単位にスキャンし、そのウインドウ内の相対的に同じ位置の画素データで構成されるｐ×ｑ個のサブブロックデータを単位に符号化する。また、仮に許容符号化データ量を超える符号化データとなって、幾つかのサブブロックの符号化データを削除したとしても、その削除したサブブロックで示される画素を、実在する周りのサブブロックの画素から容易に補間することができる。
【発明を実施するための最良の形態】
【０００８】
以下、添付図面に従って本発明に係る実施形態を詳細に説明する。
【０００９】
＜第１の実施形態＞
図１（ａ）は、実施形態における画像符号化装置のブロック構成図、図１（ｂ）は画像復号装置のブロック構成図である。
【００１０】
画像符号化装置は、ブロック分割部１０１、サブブロック分割部１０２、差分算出部１０３、可変長符号化部１０４、サブブロック削減部１０５を有する。また、画像復号装置は、可変長復号化部１２１、予測復号化部１２２、削減サブブロック復元部１２３、サブブロック統合部１２４、ブロック統合部１２５を有する。
【００１１】
先ず、画像符号化装置について説明する。
【００１２】
ブロック分割部１０１は、符号化対象の画像データを信号線１１０を介して、複数画素で構成されるブロックを単位に入力し、入力したブロック画像をサブブロック分割部１０２に出力する。以下、そのブロックの画像データを単にブロック画像、もしくはブロック画像データという。
【００１３】
ここで言うブロックのサイズは、その水平、垂直方向のサイズ（画素数）が、後述するサブブロックの整数倍である。本実施形態では、説明を簡単なものとするため、ブロックのサイズを１６×１６画素とし、サブブロックのサイズを８×８画素として説明する。なお、ブロックのサイズ、サブブロックは、共に正方である必要はない。また、実施形態では、符号化対象の画像データの入力源は、イメージスキャナとするが、非圧縮の画像データを記憶している記憶装置でもよく、その種類は問わない。
【００１４】
サブブロック分割部１０２は、入力したブロック画像データを、複数のサブブロックデータに分割し、各サブブロックデータの画像（以下、サブブロック画像、もしくはサブブロック画像データという）を、信号線１１２を介して差分算出部１０３に出力する。すなわち、このサブブロック分割部１０２は、入力したブロック画像から、複数のサブブロックを生成するサブブロック生成部として機能する。このサブブロックのサイズは上記の通り８×８画素としているので、１つのブロック画像から４つのサブブロック画像が生成されることになる。
【００１５】
ここで実施形態におけるサブブロック分割部１０２の分割処理を例を図２を参照して説明する。
【００１６】
同図では、１６×１６画素のブロック画像Ｂから、４つのサブブロックデータＳＢ（０）乃至ＳＢ（３）を生成する例を示している。
【００１７】
ブロック画像Ｂ内を、２×２画素のサイズのウインドウを単位にラスタースキャンし、そのウインドウ内において相対的に同位置の画素により、サブブロックＳＢ（０）乃至ＳＢ（３）を生成する。すなわち、２×２画素ウインドウ内の左上位置にある画素をサブブロックＳＢ（０）の画素として抽出する。同様に、２×２画素ウインドウ内の右上位置にある画素をサブブロックＳＢ（１）、左下位置にある画素をサブブロックＳＢ（２）、右下位置にある画素をサブブロックＳＢ（３）の画素として抽出する。なお、サブブロックＳＢ（ｋ）のｋは、ブロック画像中の２×２画素ウインドウからサブブロックの画素を決定する際のラスタースキャン順に割り当てた番号であり、以降、サブブロック番号と言う。
【００１８】
ブロック画像Ｂの座標（ｘ，ｙ）の画素値をＢ（ｘ、ｙ）とし、サブブロックＳＢ（ｋ）（ｋ＝０、１、２、３）内の画素値をＳＢ（ｋ、ｘ、ｙ）と定義すると、次の通りである。
ＳＢ（０，ｉ，ｊ）＝Ｂ（２×ｉ，２×ｊ）
ＳＢ（１，ｉ，ｊ）＝Ｂ（２×ｉ＋１，２×ｊ）
ＳＢ（２，ｉ，ｊ）＝Ｂ（２×ｉ，２×ｊ＋１）
ＳＢ（３，ｉ，ｊ）＝Ｂ（２×ｉ＋１，２×ｊ＋１）
（但し、ｉ，ｊ＝０，１，…，７）
次に差分算出部１０３の処理を説明する。差分算出部１０３は、上記のようにしてサブブロック分割部１０２から出力されたサブブロックＳＢ（０）乃至ＳＢ（３）を入力する。そして、差分算出部１０３は、サブブロックＳＢ（０）については、そのまま可変長符号化部１０４に出力する。また、差分算出部１０３は、着目サブブロックＳＢ（ｋ）（ｋ≧１）については、そのサブブロックＳＢ（ｋ）とサブブロックＳＢ（０）の互いに同じ位置にある画素との差分を算出する。１つのサブブロックは８×８画素で構成されるので、その算出した差分データも８×８個存在する。以下、サブブロックＳＢ（ｋ）とＳＢ（０）で算出される８×８個の差分データを、サブブロック差分画像ＳＢ’（ｋ）という。差分算出部１０３が生成する、サブブロック差分画像ＳＢ’（１）乃至ＳＢ’（３）の算出は次の通りである。
ＳＢ’（１）＝ＳＢ（１，ｉ，ｊ）−ＳＢ（０，ｉ，ｊ）
ＳＢ’（２）＝ＳＢ（２，ｉ，ｊ）−ＳＢ（０，ｉ，ｊ）
ＳＢ’（３）＝ＳＢ（３，ｉ，ｊ）−ＳＢ（０，ｉ，ｊ）
（但し、ｉ，ｊ＝０，１，…，７）
【００１９】
なお、上記の算出結果、ＳＢ’（０）の各画素の値は｛−２５５〜＋２５５｝の値、すなわち、８ビットを超えるデータで表現しなければならない。そこで、次のようにしても構わない。具体的には、２つのデータＺ０、Ｚ１の排他論理和をＸＯＲ（Ｚ０、Ｚ１）と表わすとき、
ＳＢ’（１）＝ＸＯＲ｛ＳＢ（１，ｉ，ｊ），ＳＢ（０，ｉ，ｊ）｝
ＳＢ’（２）＝ＸＯＲ｛ＳＢ（２，ｉ，ｊ），ＳＢ（０，ｉ，ｊ）｝
ＳＢ’（３）＝ＸＯＲ｛ＳＢ（３，ｉ，ｊ），ＳＢ（０，ｉ，ｊ）｝
とする。
【００２０】
このようにすると、ＳＢ（０，ｉ，ｊ）が判っていれば、
ＳＢ（１）＝ＸＯＲ｛ＳＢ’（１，ｉ，ｊ），ＳＢ（０，ｉ，ｊ）｝
ＳＢ（２）＝ＸＯＲ｛ＳＢ’（２，ｉ，ｊ），ＳＢ（０，ｉ，ｊ）｝
ＳＢ（３）＝ＸＯＲ｛ＳＢ’（３，ｉ，ｊ），ＳＢ（０，ｉ，ｊ）｝
とすることで、元のサブブロック画像ＳＢ（１）乃至ＳＢ（３）を復元できる。
【００２１】
図３にサブブロック差分画像の例を示す。同図でブロック画像３０１は、簡単のため白画素と黒画素の２つの色で表わされる画像である。サブブロック分割すると、図示のサブブロック画像ＳＢ（０）乃至ＳＢ（３）（図示の符号３１１乃至３１４）が生成される。サブブロック画像ＳＢ（０）はそのまま可変長符号化部１０４に出力される。他のサブブロックＳＢ（１）乃至（３）は、サブブロックＳＢ（０）内の画素の値を予測値として差分を算出することで、サブブロック差分画像ＳＢ’（１）乃至ＳＢ’（３）（図示の符号３２２乃至３２４）が生成され、可変長符号化部１０４に供給される。
【００２２】
各サブブロック内の座標（ｘ、ｙ）の各画素は、オリジナルのブロック画像中の互いに隣接する画素であるから、それらの画素の色は互いに同じ色か、近似する色である確率が高い。図３では極端な例を示しているので、サブブロック差分画像ＳＢ’（０）乃至ＳＢ’（３）の各画素の値は白（ゼロ）になっている。実際には、サブブロック差分画像ＳＢ’（０）乃至ＳＢ’（３）の全画素がゼロになることは希であるが、少なくともサブブロックＳＢ（０）と比較すると、それぞれの値は０に近い値になる確率が非常に高くなる。
【００２３】
次に可変長符号化部１０４について説明する。この可変長符号化部１０４は、サブブロック画像ＳＢ（０）、サブブロック差分画像ＳＢ’（１）、ＳＢ’（２）、ＳＢ’（３）の順番に符号化処理を行ない、その順番に符号化データ（サブブロック符号化データ）をサブブロック削減部１０５に出力する。
【００２４】
可変長符号化部１０４は、可変長符号化として一般的によく使われるランレングス符号化とハフマン符号化を組み合わせた符号化を使う。図４に、この可変長符号化部１０４における圧縮符号化の例を示す。ランレングス符号化部４１１は、サブブロック画像ＳＢ（０）、サブブロック差分画像ＳＢ’（１）、ＳＢ’（２）、ＳＢ’（３）の順番にランレングス符号化し、ハフマン符号化部４１２にその符号化データを出力する。サブブロック差分画像ＳＢ’（１）、ＳＢ’（２）、ＳＢ’（３）は図３の例でも示したように、差分値が同じくなる確率が高いので、ランレングス符号化部４１１によるデータ圧縮の効果がある。ランレングス符号化４１１は局所的な符号化であるため、データ列全体のパターンを圧縮するために更にハフマン符号化部４１２によって圧縮符号化を行なう。可変長符号化の結果であるサブブロック圧縮データ４２１乃至４２４は、信号線１１４を介してサブブロック削減部１０５に供給される。なお、ブロック削減部１０５には、サブブロック圧縮データ４２１、４２２、４２３、４２４の順、すなわち、サブブロック画像ＳＢ（０）、サブブロック差分画像ＳＢ’（１）、ＳＢ’（２）、ＳＢ’（３）の圧縮データの順番である。
【００２５】
なお、上記は、符号化の一例を示しているのであって、他の符号化技術を採用してもかまわない。特に、サブブロック画像ＳＢ（０）については、同じ画素値が連続する確率が低いと言えるので、そのサブブロック内をラスタースキャンし、予測符号化を行なうようにしても構わない。
【００２６】
サブブロック削減部１０５は、可変長符号化部１０４からのサブブロック圧縮データ４２１乃至４２４を順に入力し、内部のメモリに格納すると共に、各サブブロックの符号化データ量を求める。そして、１ブロック分の圧縮データ量が、予め設定された１ブロックの最大データサイズ（閾値）以内となるサブブロック圧縮データを、出力対象のサブブロック圧縮データとして決定する。
【００２７】
例えば、サブブロック圧縮データ４２１乃至４２４の夫々のデータ量をＬ（０）乃至Ｌ（３）、許容符号化データ量を示す閾値をＴｈと表わしたとき、合算関数Σを用いた次式を満たす最大整数ｉを求める。
ΣＬ（ｉ）≦Ｔｈ
【００２８】
例えば、Ｌ（０）＋Ｌ（１）＋Ｌ（２）≦Ｔｈを満たし、Ｌ（０）＋Ｌ（１）＋Ｌ（２）＋Ｌ（３）＞Ｔｈとなった場合、変数ｉは“２”となる。従って、サブブロック圧縮データ４２１乃至４２３の３つ１ブロック分の圧縮データを構築し、サブブロック圧縮データ４２４は破棄する。ここで、破棄されるサブブロック圧縮データを、欠落サブブロックデータという。
【００２９】
尚、欠落サブブロックデータを決定する順番は、サブブロック番号の降順に決定するものとしたが、復号装置と同じにすれば良いので、上記に限らない。但し、サブブロック番号０のサブブロック圧縮データは、サブブロック差分画像の差分を算出する際の基準となるサブブロックＳＢ（０）の圧縮データであるので、削除対象とはならないようにする。それ故、上記閾値は、これを考慮して決定することが望まれる。
【００３０】
サブブロック削減部１０５は、上記のようにして、削除対象外のサブブロック圧縮データを順に並べ、１ブロック分の符号化データを構築し、それを出力する。１ブロックの符号化データを固定長（閾値と同じでよい）にするのであれば、固定長に満たない部分にはＥＯＳＢ（End Of Sub Block）符号語や予め決められたダミーデータを挿入すればよい。これは固定長で少ない容量のバッファしか用意できないハードウェアで圧縮処理を実装する場合には特に有効である。
【００３１】
なお、１ブロック分の符号化データを可変長にするのであれば、１ブロック分の符号化データの先頭にブロックヘッダを付加する。そして、そのブロックヘッダ内に、削除したサブブロック（１つとは限らない）のサブブロック番号の最小値を格納するか、或いは、実在するサブブロック圧縮データのサブブロック番号の最大値を格納すればよい。この場合、削除するための基準としては、符号量ではなく、補間による誤差の絶対値の累積値等の画質評価値を用いることが望ましい。
【００３２】
以上実施形態における画像符号化装置の処理内容を説明した。次に、実施形態における画像復号装置（図１（ｂ）参照）の各処理部の処理内容を以下に説明する。なお、以下では、１ブロックの符号化データが固定長であるものとして説明する。
【００３３】
可変長復号化部１２１は、図５に示すように、ハフマン復号化部５１１、ランレングス復号化部５１２で構成され、ちょうど図４の可変長符号化部１０４の構成と逆の構成となっている。
【００３４】
可変長復号化部１２１は、信号線１１５を介して、１ブロック分の符号化データ（固定長）を入力し、サブブロック画像ＳＢ（０）、サブブロック差分画像ＳＢ’（１）、ＳＢ’（２）、ＳＢ’（３）の順番に復号する。このとき、例えば、ＥＯＳＢを検出した場合には、それまでに復号したサブブロック圧縮データの復号結果と、最後に復号したサブブロック番号を予測復号化部１２２に信号線１３１を介して出力する。
【００３５】
例えば、１ブロック分の符号化データには、図５に示すように、サブブロック画像ＳＢ（０）、サブブロック差分画像ＳＢ’（１）、ＳＢ’（２）の符号化データが格納されているとする。すなわち、サブブロック差分画像ＳＢ’（３）の符号化データが存在しなかったとする。この場合には、図５に示すように、それら３つのサブブロック圧縮データから、サブブロック画像ＳＢ（０）、サブブロック差分画像ＳＢ’（１）、ＳＢ’（２）が復号される。
【００３６】
予測復号化部１２２は、入力したサブブロック画像ＳＢ（０）については、そのまま削減サブブロック復元部１２３に出力する。一方、入力したサブブロック差分画像ＳＢ’（ｋ）については、その中の各画素位置の差分値に、サブブロック画像ＳＢ（０）の該当する位置の画素値を加算することで、サブブロック画像ＳＢ（ｋ）を復元する。
ＳＢ（１）＝ＳＢ’（１，ｉ，ｊ）＋ＳＢ（０，ｉ，ｊ）
ＳＢ（２）＝ＳＢ’（２，ｉ，ｊ）＋ＳＢ（０，ｉ，ｊ）
ＳＢ（３）＝ＳＢ’（３，ｉ，ｊ）＋ＳＢ（０，ｉ，ｊ）
【００３７】
なお、図５の場合、サブブロック差分画像ＳＢ’（３）は存在しないので、予測復号化部１２２は、サブブロック画像ＳＢ（３）を生成しない。また、予測復号化部１２２は復元したサブブロック画像ＳＢ（０）乃至ＳＢ（２）、及び、復元できた最後のサブブロック番号（図５の場合には“２”）を削減サブブロック復元部１２３に、信号線１３２を介して出力する。
【００３８】
削減サブブロック復元部１２３は、予測復号化部１２２から、サブブロック番号“３”、すなわち、全サブブロックの復元ができたとの通知を受信した場合、入力したサブブロック画像ＳＢ（０）乃至ＳＢ（３）をそのままサブブロック統合部１２４に出力する。
【００３９】
一方、削減サブブロック復元部１２３が、予測復号化部１２２から、サブブロック番号“３”未満（“２”以下）を示す通知を入力した場合、欠落したサブブロック画像の復元処理を行なう。例えば、図６に示すように、サブブロックＳＢ（０）乃至ＳＢ（２）（図示の符号５２１乃至５２３）が復元でき、サブブロックＳＢ（３）が欠落しているとする。この場合、サブブロックＳＢ（３）で示される各欠落画素位置の周り８画素（図示の符号６２１乃至６２４、６２６乃至６２９）は、実在するサブブロック内の画素データである。よって、削減サブブロック復元部１２３は、その実在するそれらサブブロック内の画素の値から、欠落画素位置６２５の画素値を、内挿予測（補間）を使って復元する。
【００４０】
なお、図６において、ブロックの下端ライン、及び、右端列の位置にあるサブブロックＳＢ（３）で定義される欠落画素については、その周囲に実在する画素が８つ未満となる。この場合、参照できる実在する画素からその欠落画素の値を算出する。また、欠落画素を挟む２つの実在する画素の値から、その欠落画素の値を算出しても良い。
【００４１】
また、復元できたサブブロック画像が２つ、すなわち、サブブロック画像ＳＢ（０）、ＳＢ（１）であった場合、１つの欠落画素の近傍（もしくは周辺）に位置する実在する画素の個数は２乃至３個となるので、その画素を用いて補間演算し、欠落画素の値を算出する。
【００４２】
そして、復元できたのがサブブロック画像ＳＢ（０）のみであった場合には、サブブロック画像ＳＢ（０）の画素値から、線形補間演算を行なうことで、残りの３つのサブブロック画像ＳＢ（１）乃至ＳＢ（３）を復元する。ただし、ブロックの最下ライン、右端列の位置の、サブブロックＳＢ（１）乃至ＳＢ（３）で定義される画素位置については、サブブロックＳＢ（０）で示される画素値をそのまま利用するものとする。
【００４３】
以上のようにして、圧縮時のサブブロック分割部１０２によって１ブロックの近傍画素（実施形態では２×２画素）を複数のサブブロックそれぞれに分散させたことで、補間処理に利用できる周囲の画素の個数を十分に確保できる。従って、画素欠落による画質劣化を最小化することができる。
【００４４】
さて、サブブロック統合部１２４では、上記のようにして復元された４つのサブブロックデータ内の同位置の画素が、オリジナルのブロック内の隣接する２×２画素であるものとして統合処理を行なう。すなわち、サブブロック画像ＳＢ（０）乃至ＳＢ（３）の各画素を、オリジナルのブロック（１６×１６画素）に再配置することにより、ブロック画像を生成する。そして、そのブロック画像をブロック統合部１２５に信号線１３４を介して出力する。ブロック統合部１２５は、サブブロック統合部１２４から入力した１６×１６画素のブロック画像を、連結し、画像全体に渡って伸張処理された画像を生成し、信号線１３５を介して出力する。
【００４５】
以上実施形態に係る画像符号化装置及びその復号装置の構成とその処理を説明した。本実施形態では、１ブロックのサイズを１６×１６画素、サブブロックを８×８画素としたが、これによって本発明が限定されるものではない。１ブロックの画像内を、ｐ×ｑ画素（ｐ，ｑは正の整数であり、少なくとも一方は２以上）のサイズのウインドウを単位にラスタースキャンした場合、ｐ×ｑ個のサブブロックが生成できる。この場合の、各サブブロックＳＢ（０）乃至ＳＢ（ｐ×ｑ−１）は次のようになる。但し、以下において、mod(a,b)は整数ａを整数ｂで除算した際の余りを示し、floor（ｃ）は実数ｃを超えない最大整数を表す関数である。
ＳＢ（０，ｉ，ｊ）＝Ｂ（ｐ×ｉ，ｑ×ｊ）
ＳＢ（１，ｉ，ｊ）＝Ｂ（ｐ×ｉ＋１，ｑ×ｊ）
：
ＳＢ（ｓ，ｉ，ｊ）＝Ｂ（ｐ×ｉ＋mod(s,p)，ｑ×ｊ＋floor（s/q））
：
ＳＢ（ｐ×ｑ−１，ｉ，ｊ）＝Ｂ（p×ｉ＋mod(p×ｑ-1,p)，ｑ×ｊ＋floor((p×q-1)／q)）
（サブブロックの水平方向の画素数をｍ、垂直方向の画素数ｎとしたとき、ｉ，ｊは０≦ｉ≦ｍ−１、０≦ｊ≦ｎ−１の関係にある）
【００４６】
また、１つのブロックから２×２個を超えるサブブロックを生成した場合、着目サブブロック画像ＳＢ（ｋ）のサブブロック差分画像ＳＢ’（ｋ）を生成する際に利用する予測値は、先行するサブブロックの中で着目サブブロックに隣接するサブブロックの画素値とすることが望ましい。理由は、サブブロック（ｋ）を構成する各画素に空間的に距離的に近い画素を持つのは、着目サブブロックに隣接するサブブロックＳＢであるからである。また、サブブロック差分画像ＳＢ’（ｋ）を生成する際には、サブブロック画像ＳＢ（ｋ）と着目サブブロックに隣接するサブブロックＳＢ（ｋ―ｊ）（ｊ＜ｋ,ｊは正の整数）とを排他論理和しても構わない。または、先行するサブブロックの中で着目サブブロックに隣接する複数のサブブロックの画素値より内挿予測しても構わない。
【００４７】
また、実施形態では予測復号化における内挿予測を行って欠落画素の値を求める例を示した。一般に画像においては局所的な相関性があるため、圧縮処理時に相関方向検出して検出結果を保存しておき、復号化時に欠落させた画素の復元に相関方向を使って周囲の画素から予測することで復元精度を高めることに利用することも可能である。例えば、可変長符号化部１３１で垂直方向、水平方向、45°ジグザグ、135°ジグザグのように複数のスキャン方向で符号化するものとする。この場合、符号量が最小となるスキャン方向の相関性が高いので、スキャン方向の符号量から相関方向を判定しても良い。
【００４８】
また、実施形態ではサブブロック削減部１０５によって削減されるサブブロック圧縮データはサブブロック番号の固定順（降順）で削除することを示したが、サブブロック圧縮データのうち、符号化データの少ない順に削減するようにしても良い。この場合、削除したサブブロック番号をブロックヘッダに格納し、実在するサブブロック圧縮データは昇順に並んでいるものとして扱えば良いであろう。
【００４９】
また、特に符号化対象の画像が２値画像の場合、サブブロック内の１の数（予測が外れた画素の数）が所定の閾値より少ないなら、そのサブブロックは高い確率で復元可能なことを意味している。従って、サブブロック内の１の数が少ない順番でサブブロックを削って符号量制御を行っても良い。あるいは、復元した時の誤差が少なくなる順に削減するようにしても良い。特に、複数のサブブロックを削減する場合は、復元順序が復元画質に影響を及ぼすので、重要である。また、上記実施形態では、符号量を基準に削減するサブブロックを決定していたが、画質（復元誤差）を基準に削減するサブブロックを決定してもよい。例えば、上記サブブロック毎に予測値との差分絶対値を累積する手段と具備し、上記累積値が所定値以下となるサブブロックのデータを伝送しないようにしても良い。
【００５０】
＜第２の実施形態＞
図７（ａ）は、第２の実施形態における画像符号化装置のブロック構成図を示し、図７（ｂ）は画像復号装置のブロック構成図を示している。本第２の実施形態での画像符号化装置及び画像復号装置は、以下の説明から明らかになるが、文字線画に特に適したものである。
【００５１】
第２の実施形態における画像符号化装置は、ブロック化部７０１、２色抽出部７０２、識別情報生成部７０３、符号化部７０４、及び、パック部７０５を有する。また、画像復号装置は、アンパック部７１１、レジスタ７１２、７１３、セレクタ７１５、ラスター化部７１６を有する。なお、各処理部間には、同期をとるためのバッファメモリが介在するが、図では示していない。
【００５２】
先ず、第２の実施形態における画像符号化装置について説明する。説明を簡単なものとするため、ここでも、１ブロックのサイズを１６×１６画素とするが、１ブロックは複数の画素で構成され、且つ、後述するサブブロックの水平、垂直方向の画素数の整数倍であれば良い。また、画像は１色成分（モノクロ画像）で１画素が８ビットで表わされるものとして説明する。
【００５３】
ブロック化部７０１は、符号化対象の画像データから、１ブロック（＝１６×１６画素）を単位に入力し、２色抽出部７０２、識別情報生成部７０３に出力する。以下、この１ブロック分の画像を第１の実施形態と同様にブロック画像という。
【００５４】
２色検出部７０２は、入力したブロック画像中から２つの代表色Ｃ１、Ｃ２を抽出する。具体的には、２色抽出部７０２は、ブロック内の各画素の値の平均値ＡＶＥを算出する。そして、算出した平均値ＡＶＥ以下の画素値を持つ画素群（第１グループ）と、平均値よりも大きな画素値を持つ画素群（第２グループ）に分類する。そして、２色抽出部７０２は、第１グループに属する各画素の平均値を算出し、それを代表色Ｃ１として決定する。また、同様に、２色抽出部１０２は、第２グループに属する各画素の平均値を算出し、それを代表色Ｃ２として決定する。そして、２色抽出部７０２は、決定した代表色Ｃ１、Ｃ２をパック部７０５に出力するとともに、平均値ＡＶＥを識別情報生成部７０３に出力する。
【００５５】
なお、Ｃ２とＣ１の差Ｄ（＝Ｃ２−Ｃ１）が、予め設定された閾値以下であった場合、特に、着目ブロック内の全画素が同じ色であった場合（Ｃ２＝Ｃ１の場合に相当する）には、Ｃ１、Ｃ２の両方をＡＶＥとする。これにより、識別情報を削除することも可能である。即ち、復号時にＣ１とＣ２を比較し、Ｃ２＝Ｃ１の場合はブロック内の各画素値をＣ１（Ｃ２）に全て置き換えるのである。
【００５６】
識別情報生成部７０３は、着目ブロック画像をラスタースキャンし、その際に２色抽出部７０２からの平均値ＡＶＥと比較し、平均値ＡＶＥ以下の画素を“０”、その平均値ＡＶＥを超える画素を“１”とする２値（１ビット）の情報を生成する。そして、その生成した情報を符号化部７０４に出力する。要するに、この情報は、着目ブロックの各画素が、先に示した第１グループに属する画素であるか、第２グループに属する画素であるかを識別するための情報と言える。それ故、以下では、この情報を識別情報という。第２の実施形態では、１ブロックのサイズが１６×１６画素としているので、１ブロック分の識別情報は１６×１６ビットで構成されることになる。
【００５７】
符号化部７０４は、上記の識別情報生成部７０３からの１６×１６ビットの識別情報を、第１の実施形態と同様のアルゴリムに従って複数（４つ）のサブブロックに分割し、それぞれを符号化する。この符号化部７０４における詳細は後述する。
【００５８】
パック部７０５は、代表色Ｃ１、Ｃ２と、符号化部７０４で符号化された識別情報を結合し、１ブロックの符号化データとして出力する。
【００５９】
ここで、本第２の実施形態における符号化部７０４の詳細を図８に示し、以下に説明する。
【００６０】
符号化部７０４は、図８に示すように、サブブロック分割部８１１、差分算出部８２１ａ乃至８２１ｃ、可変長符号化部８３１ａ乃至８３１ｄ、符号量検知部８５１、符号量比較部８６１、及び、セレクタ８４１を有する。
【００６１】
サブブロック分割部８１１は、入力した１６×１６個の識別情報（２値データ）を、ちょうど第１の実施形態におけるサブブロック分割部１０２と同様に、４つのサブブロックに分割する。第１の実施形態では、ブロック、及びサブブロックは画像データを示し、第２の実施形態でのブロック、サブブロックは２値の識別情報を示す点で異なるが、本第２の実施形態におけるブロックと各サブブロックの識別情報の関係は図２と同じである。それ故、本第２の実施形態でも、各サブブロックをそのサブブロック番号ｋによってＳＢ（ｋ）として表現する。第１の実施形態と同様、１６×１６ビットの識別情報中の座標（ｘ，ｙ）の識別情報をＢ（ｘ、ｙ）とし、サブブロックＳＢ（ｋ）（ｋ＝０、１、２、３）内の識別情報をＳＢ（ｋ、ｘ、ｙ）と定義すると、次の通りである。
ＳＢ（０，ｉ，ｊ）＝Ｂ（２×ｉ，２×ｊ）
ＳＢ（１，ｉ，ｊ）＝Ｂ（２×ｉ＋１，２×ｊ）
ＳＢ（２，ｉ，ｊ）＝Ｂ（２×ｉ，２×ｊ＋１）
ＳＢ（３，ｉ，ｊ）＝Ｂ（２×ｉ＋１，２×ｊ＋１）
【００６２】
サブブロック分割部８１１は、サブブロックＳＢ（０）については、差分算出部８２１ａ８２１ａ乃至８２１ｃ、及び、可変長符号化部８３１ｄに出力する。そして、サブブロック分割部８１１は、サブブロックＳＢ（１）を差分算出部８２１ａに、サブブロックＳＢ（２）を差分算出部８２１ｂに、そして、サブブロックＳＢ（３）を差分算出部８２１ｃに出力する。
【００６３】
差分算出部８２１ａ乃至８２１ｃは、サブブロック差分情報ＳＢ’（１）乃至ＳＢ’（３）をそれぞれ次式に従って算出する。
ＳＢ’（１）＝ＳＢ（１，ｉ，ｊ）−ＳＢ（０，ｉ，ｊ）
ＳＢ’（２）＝ＳＢ（２，ｉ，ｊ）−ＳＢ（０，ｉ，ｊ）
ＳＢ’（３）＝ＳＢ（３，ｉ，ｊ）−ＳＢ（０，ｉ，ｊ）
【００６４】
なお、上記の算出結果、ＳＢ’（０）の各画素位置の識別情報の差分値は｛−１、０、＋１｝の値を取り得るが、２値とすることも可能である。具体的には、２つの１ビットのデータＺ０、Ｚ１の排他論理和をＸＯＲ（Ｚ０、Ｚ１）と表わすとき、次のようにしてサブブロック差分情報ＳＢ’（）を求めれば良い。
ＳＢ’（１）＝ＸＯＲ｛ＳＢ（１，ｉ，ｊ），ＳＢ（０，ｉ，ｊ）｝
ＳＢ’（２）＝ＸＯＲ｛ＳＢ（２，ｉ，ｊ），ＳＢ（０，ｉ，ｊ）｝
ＳＢ’（３）＝ＸＯＲ｛ＳＢ（３，ｉ，ｊ）−ＳＢ（０，ｉ，ｊ）｝
【００６５】
可変長符号化部８３１ａ乃至８３１ｄは、サブブロック差分情報ＳＢ’（１）、ＳＢ’（２）、ＳＢ’（３）及びサブブロック情報ＳＢ（０）をそれぞれ可変長符号化を行ない、そのサブブロック圧縮データをセレクタ８４１、符号量検知部８５１に出力する。
【００６６】
ここで、可変長符号化部８３１ｄで生成される符号化データはサブブロック番号“０”のサブブロック情報ＳＢ（０）の符号化データであるので、その符号化データのデータ量をＬ（０）と表わす。また、可変長符号化部８３１ａ乃至８３１ｃで生成される符号化データはサブブロック差分情報ＳＢ’（１）乃至ＳＢ’（３）の符号化データを示すので、それぞれの符号化データ量を、サブブロック番号に従ってＬ（１）乃至Ｌ（３）と表わす。
【００６７】
符号量検知部８５１は、上記のＬ（０）乃至Ｌ（３）を検出し、その検出結果を符号量比較部８６１に出力することになる。
【００６８】
符号量比較部８６１は、予め設定された閾値Ｔｈを用いて、次式を満たす変数ｉの最大値を求め、その結果をセレクタ８４１に出力する。
ΣＬ（ｉ）≦Ｔｈ
【００６９】
例えば、Ｌ（０）＋Ｌ（１）＋Ｌ（２）≦Ｔｈを満たし、Ｌ（０）＋Ｌ（１）＋Ｌ（２）＋Ｌ（３）＞Ｔｈとなった場合、変数ｉは“２”となるので、“２”を示す信号をセレクタ８４１に出力する。
【００７０】
セレクタ８４１は、可変長符号化部８３１ｄ、８３１ａ、８３１ｂ、８３１ｃで生成された４つの符号化データから、符号量比較部８６１から入力した信号に従った個数の符号化データを入力し、出力する。例えば、符号量比較部８６１から入力した信号が“２”であった場合には、可変長符号化部８３１ｄ、８３１ａ、８３１ｂからの符号化データを、その順番に結合し、固定長とするため不足部のダミービットを付加して、出力する。また、上記の場合には、可変長符号化部８３１ｃからの符号化データは破棄する。
【００７１】
以上実施形態における画像符号化装置について説明した。次に、実施形態における画像復号装置（図７（ｂ）参照）について説明する。
【００７２】
アンパック部７１１は、入力した１ブロック分の符号化データから、代表色Ｃ１、Ｃ２及び符号化された識別情報を分離し、代表色Ｃ１はレジスタ７１２に、代表色Ｃ２はレジスタ７１３に、符号化された識別情報を復号部７１４に出力する。復号部７１４の詳細は後述するが、入力した識別情報を復号し、１６×１６個の２値の識別情報を生成し、ラスタースキャン順にセレクタ７１５に出力する。
【００７３】
セレクタ７１５は、復号部７１４からの識別情報が“０”の場合にはレジスタ７１２に格納された代表色Ｃ１を選択し、ラスター化部７１６に出力する。また、セレクタ７１５は、復号部７１４からの識別情報が“１”の場合にはレジスタ７１３に格納された代表色Ｃ２を選択し、ラスター化部７１６に出力する。この処理を１ブロックの復号過程で、１６×１６回行なうことで、１６×１６画素で構成されるブロック画像がラスター化部７１６に出力されることになる。ラスター化部７１６は、内部にバッファメモリを有し、少なくとも、復元対象の水平方向画素分の画像データが格納される度に、ラスタースキャン順に画素データを出力する。
【００７４】
次に、復号部７１４について図９を使い説明する。図９は本第２の実施形態における復号部７１４のブロック構成図である。
【００７５】
この復号部７１４は、可変長復号化部９１１ａ乃至９１１ｄ、予測復号化部９２１ａ乃至９２１ｃ、補間部９３１、及び、サブブロック統合部９４１を有する。
【００７６】
可変長復号化部９１１ａ乃至９１１ｄは、図８における可変長符号化部８３１ａ乃至８３１ｄと対をなすものであり、これらによってサブブロック差分情報ＳＢ’（１）乃至ＳＢ’（３）、及び、サブブロック情報ＳＢ（０）を復号する。復号部７１４は、アンパック部７１１から、サブブロック番号順に、各サブブロックの圧縮データを入力し、それを可変長復号化部９１１ｄ、９１１ａ、９１１ｂ、９１１ｃの順番に割振る。従って、仮に入力した１ブロック分の符号化データ内に、３つのサブブロックの符号化データしか存在しなかった場合、可変長復号部９１１ｃには、符号化データが供給されない。
【００７７】
各可変長復号化部９１１ａ乃至９１１ｄは、それぞれが復号処理を行なう。そして、可変長復号化部９１１ｄは、復号したサブブロック情報ＳＢ（０）を、予測復号化部９２１ａ乃至９２１ｃ、及び、補間部９３１に出力する。また、他の可変長復号化部９１１ａ乃至９１１ｃは、復号して得られたサブブロック差分情報ＳＢ’（１）乃至ＳＢ’（３）を、対応する予測復号化部９２１ａ乃至９２１ｃに出力する。ただし、復号すべき符号化データを入力しなかった可変長復号部は、復号できなかったことを示す信号を対応する予測復号化部に出力する。
【００７８】
予測復号化部９２１ａは、予測値としてサブブロック情報ＳＢ（０）を入力し、それとサブブロック差分情報ＳＢ’（１）を加算することで、サブブロック情報ＳＢ（１）を復元する。他の予測復号化部９２１ｂ、９２１ｃも同様の処理を行ない、サブブロック情報ＳＢ（２）、ＳＢ（３）を復元する。ただし、該当する可変長復号化部から復号できない旨の信号を入力した予測復号化部は、該当するサブブロックＳＢ（）が存在しないことを補間部９３１に出力する。
【００７９】
補間部９３１は、上記のようにしてサブブロック情報ＳＢ（）を入力するが、４つのサブブロック情報の入力がなかった場合には、欠落したサブブロック情報を、実在するサブブロック情報に基づき補間する。例えば、サブブロックＳＢ（３）が欠落していた場合には、その欠落したサブブロックＳＢ（３）内の各画素位置の識別情報を、その近傍の実在する識別情報に基づき補間する。簡単には、欠落位置の周りの実在する近傍の位置情報の個数がＮ個であり、そのうち過半数が“１”である場合には欠落位置の識別情報を“１”し、“１”の個数が過半数に満たない場合には“０”とする。
【００８０】
一般に文字線画の画像の場合、文字線画を構成する黒画素が連続するから、上記のようにして補間することで、高い確率で欠落した差分情報を復元できる。
【００８１】
以上本発明に係る実施形態を説明したが、本実施形態で示した各装置が有する処理部の機能、及び、その全体の処理シーケンスを、パーソナルコンピュータ等の汎用情報処理装置で実行するコンピュータプログラムでもって実現しても構わない。例えば、図１（ａ）に示す符号化装置の場合、各処理部１０１乃至１０５は、コンピュータプログラムにおけるサブルーチンもしくは関数として処理を行ない、これを符号化対象の画像に含まれるブロック数だけ繰り返す処理を行なえばよい。
【００８２】
また、通常コンピュータプログラムは、ＣＤ−ＲＯＭ等のコンピュータ可読記憶媒体に記憶されており、それを読取り装置（ＣＤ−ＲＯＭドライブ等）にセットし、システムにコピーもしくはインストールすることで実行可能になる。従って、かかるコンピュータ可読記憶媒体も、当然ながら本発明の範疇に入る。
【図面の簡単な説明】
【００８３】
【図１】第１の実施形態に係る画像符号化装置及び復号装置のブロック構成図である。
【図２】実施形態におけるサブブロック分割のアルゴリズムを示す図である。
【図３】実施形態におけるサブブロックの差分処理の一例を示す図である。
【図４】実施形態における可変長符号化部の処理内容を示す図である。
【図５】実施形態における可変長復号部の復号処理内容を示す図である。
【図６】実施形態における欠落画素の復元処理の例を示す図である。
【図７】第２の実施形態に係る画像符号化装置及び復号装置のブロック構成図である。
【図８】第２の実施形態における符号化部のブロック構成図である。
【図９】第２の実施形態における復号部のブロック構成図である。
【図１】
0005101962.tif 000002
【図２】
0005101962.tif 000003
【図３】
0005101962.tif 000004
【図４】
0005101962.tif 000005
【図５】
0005101962.tif 000006
【図６】
0005101962.tif 000007
【図７】
0005101962.tif 000008
【図８】
0005101962.tif 000009
【図９】
0005101962.tif 000010