(57)【要約】【課題】フォントなどの文字画像を高い圧縮率で符号化することが可能な画像符号化装置を提案する。【解決手段】画像符号化装置は複数の比較行バッファを備えて、それらを初期化した後（Ｓ１）、画像データの処理対象行のデータとの間でＸＯＲ演算を行なう（Ｓ２）。それらの差分値のうちの最小差分値とその差分値に対応する比較行バッファとを中間データとして出力する（Ｓ３，４）。そして、上記比較行バッファを画像データの処理対象行のデータで置き換える（Ｓ５）。画像データのすべての行についての処理が終了すると（Ｓ６，７でＹＥＳ）、中間データを圧縮符号化する（Ｓ８）。【選択図】図３
2008124632.tif 000002
【特許請求の範囲】
【請求項１】
行データを含んで構成される画像データを圧縮符号化する画像符号化装置であって、
前記画像データの第Ｎ行の行データとの間で排他的論理和演算による差分値を計算するために用いるデータが格納されている比較行バッファを、少なくとも２つ以上記憶する記憶手段と、
前記２つ以上の比較行バッファのそれぞれについて、前記比較行バッファと前記画像の前記第Ｎ行の行データとの間で排他的論理和演算による差分値を計算する差分演算手段と、
前記２つ以上の比較行バッファに対応した複数の前記差分値のうち、画像を描画するドットを表わしたビットの数が最も少ない差分値を最小差分値としたとき、前記２つ以上の比較行バッファの中から前記最小差分値に対応する比較行バッファを選択する比較行バッファ選択手段と、
前記比較行バッファ選択手段が選択した前記比較行バッファを、前記画像の前記第Ｎ行の行データで更新する比較行バッファ更新手段と、
前記比較行バッファ選択手段が選択した前記比較行バッファを識別する識別番号と、前記最小差分値とを圧縮符号化する符号化手段とを備える、画像符号化装置。
【請求項２】
行データを含んで構成される画像データを圧縮符号化する画像符号化装置であって、
前記画像データの第Ｎ行の行データとの間で排他的論理和演算による差分値を計算するために用いるデータが格納されている比較行バッファを、少なくとも２つ以上記憶する記憶手段と、
前記２つ以上の比較行バッファを、各々、互いに異なる初期値に初期化する初期化手段と、
前記２つ以上の比較行バッファのそれぞれについて、前記比較行バッファと前記画像の前記第Ｎ行の行データとの間で排他的論理和演算による差分値を計算する差分演算手段と、
前記２つ以上の比較行バッファに対応した複数の前記差分値のうち、画像を描画するドットを表わしたビットの数が最も少ない差分値を最小差分値としたとき、前記２つ以上の比較行バッファの中から前記最小差分値に対応する比較行バッファを選択する比較行バッファ選択手段と、
前記比較行バッファ選択手段が選択した前記比較行バッファを、前記画像の前記第Ｎ行の行データで更新する比較行バッファ更新手段と、
前記比較行バッファ選択手段が選択した前記比較行バッファを識別する識別番号と、前記最小差分値とを圧縮符号化する符号化手段とを備え、
前記初期化手段は、前記初期値として、前記画像データに含まれるすべての行データを論理積演算した値と、前記画像データに含まれるすべての行データを論理和演算した値とを用いる、画像符号化装置。
【請求項３】
符号化データを復号する画像復号装置であって、
前記符号化データは、行データを含んで構成される画像データが圧縮符号化されて生成され、
前記符号化データは、圧縮符号化された、前記画像データが前記圧縮符号化される際の前記画像データの第Ｎ行の行データとの間で排他的論理和演算による差分値を計算するために用いるデータを格納した比較行バッファを識別する識別番号と、前記差分値とを含み、
所定の初期値に初期化される、少なくとも２つ以上の比較行バッファを記憶する記憶手段と、
前記符号化データに含まれる前記識別番号と前記差分値とを復号する復号手段と、
前記２つ以上の比較行バッファのうちの前記識別番号に対応した前記比較行バッファと前記差分値との間で、排他的論理和演算によって前記画像データの前記第Ｎ行の行データを復元する画像行データ復元手段と、
前記２つ以上の比較行バッファのうちの前記識別番号に対応した前記比較行バッファを、前記画像行データ復元手段で復元された前記画像データの前記第Ｎ行の行データで更新する比較行バッファ更新手段とを備える、画像復号装置。
【請求項４】
前記記憶手段に記憶される前記比較行バッファの数および前記所定の初期値は、前記画像データが前記圧縮符号化される際に用いられた比較行バッファの数および前記比較行バッファの初期値と同じである、請求項３に記載の画像復号装置。
【請求項５】
行データを含んで構成される画像データを圧縮符号化する画像符号化方法であって、
前記画像データの第Ｎ行の行データとの間で排他的論理和演算による差分値を計算するために用いるデータが格納されている比較行バッファを、少なくとも２つ以上用い、前記２つ以上の比較行バッファのそれぞれについて、前記比較行バッファと前記画像の前記第Ｎ行の行データとの間で排他的論理和演算による差分値を計算するステップと、
前記２つ以上の比較行バッファに対応した複数の前記差分値のうち、画像を描画するドットを表わしたビットの数が最も少ない差分値を最小差分値としたとき、前記２つ以上の比較行バッファの中から前記最小差分値に対応する比較行バッファを選択するステップと、
前記比較行バッファ選択手段が選択した前記比較行バッファを、前記画像の前記第Ｎ行の行データで更新するステップと、
前記比較行バッファ選択手段が選択した前記比較行バッファを識別する識別番号と、前記最小差分値とを圧縮符号化するステップとを備える、画像符号化方法。
【請求項６】
行データを含んで構成される画像データを圧縮符号化する画像符号化方法であって、
前記画像データの第Ｎ行の行データとの間で排他的論理和演算による差分値を計算するために用いるデータが格納されている比較行バッファを、少なくとも２つ以上用い、前記２つ以上の比較行バッファを、各々、互いに異なる初期値に初期化するステップと、
前記２つ以上の比較行バッファのそれぞれについて、前記比較行バッファと前記画像の前記第Ｎ行の行データとの間で排他的論理和演算による差分値を計算するステップと、
前記２つ以上の比較行バッファに対応した複数の前記差分値のうち、画像を描画するドットを表わしたビットの数が最も少ない差分値を最小差分値としたとき、前記２つ以上の比較行バッファの中から前記最小差分値に対応する比較行バッファを選択するステップと、
前記比較行バッファ選択手段が選択した前記比較行バッファを、前記画像の前記第Ｎ行の行データで更新するステップと、
前記比較行バッファ選択手段が選択した前記比較行バッファを識別する識別番号と、前記最小差分値とを圧縮符号化するステップとを備え、
前記初期化ステップにおいては、前記初期値として、前記画像データに含まれるすべての行データを論理積演算した値と、前記画像データに含まれるすべての行データを論理和演算した値とを用いる、画像符号化方法。
【請求項７】
符号化データを復号する画像復号方法であって、
前記符号化データは、行データを含んで構成される画像データが圧縮符号化されて生成され、
前記符号化データは、圧縮符号化された、前記画像データが前記圧縮符号化される際の前記画像データの第Ｎ行の行データとの間で排他的論理和演算による差分値を計算するために用いるデータを格納した比較行バッファを識別する識別番号と、前記差分値とを含み、
所定の初期値に初期化される、少なくとも２つ以上の比較行バッファを用い、前記符号化データに含まれる前記識別番号と前記差分値とを復号するステップと、
前記２つ以上の比較行バッファのうちの前記識別番号に対応した前記比較行バッファと前記差分値との間で、排他的論理和演算によって前記画像データの前記第Ｎ行の行データを復元するステップと、
前記２つ以上の比較行バッファのうちの前記識別番号に対応した前記比較行バッファを、前記画像行データ復元手段で復元された前記画像データの前記第Ｎ行の行データで更新するステップとを備える、画像復号方法。
【請求項８】
行データを含んで構成される画像データを圧縮符号化する処理をコンピュータに実行させるプログラムであって、
前記画像データの第Ｎ行の行データとの間で排他的論理和演算による差分値を計算するために用いるデータが格納されている比較行バッファを、少なくとも２つ以上用い、前記２つ以上の比較行バッファのそれぞれについて、前記比較行バッファと前記画像の前記第Ｎ行の行データとの間で排他的論理和演算による差分値を計算するステップと、
前記２つ以上の比較行バッファに対応した複数の前記差分値のうち、画像を描画するドットを表わしたビットの数が最も少ない差分値を最小差分値としたとき、前記２つ以上の比較行バッファの中から前記最小差分値に対応する比較行バッファを選択するステップと、
前記比較行バッファ選択手段が選択した前記比較行バッファを、前記画像の前記第Ｎ行の行データで更新するステップと、
前記比較行バッファ選択手段が選択した前記比較行バッファを識別する識別番号と、前記最小差分値とを圧縮符号化するステップとを実行させる、画像符号化プログラム。
【請求項９】
行データを含んで構成される画像データを圧縮符号化する処理をコンピュータに実行させるプログラムであって、
前記画像データの第Ｎ行の行データとの間で排他的論理和演算による差分値を計算するために用いるデータが格納されている比較行バッファを、少なくとも２つ以上用い、前記２つ以上の比較行バッファを、各々、互いに異なる初期値に初期化するステップと、
前記２つ以上の比較行バッファのそれぞれについて、前記比較行バッファと前記画像の前記第Ｎ行の行データとの間で排他的論理和演算による差分値を計算するステップと、
前記２つ以上の比較行バッファに対応した複数の前記差分値のうち、画像を描画するドットを表わしたビットの数が最も少ない差分値を最小差分値としたとき、前記２つ以上の比較行バッファの中から前記最小差分値に対応する比較行バッファを選択するステップと、
前記比較行バッファ選択手段が選択した前記比較行バッファを、前記画像の前記第Ｎ行の行データで更新するステップと、
前記比較行バッファ選択手段が選択した前記比較行バッファを識別する識別番号と、前記最小差分値とを圧縮符号化するステップとを実行させ、
前記初期化ステップにおいては、前記初期値として、前記画像データに含まれるすべての行データを論理積演算した値と、前記画像データに含まれるすべての行データを論理和演算した値とを用いる、画像符号化プログラム。
【請求項１０】
符号化データを復号する処理をコンピュータに実行させるプログラムであって、
前記符号化データは、行データを含んで構成される画像データが圧縮符号化されて生成され、
前記符号化データは、圧縮符号化された、前記画像データが前記圧縮符号化される際の前記画像データの第Ｎ行の行データとの間で排他的論理和演算による差分値を計算するために用いるデータを格納した比較行バッファを識別する識別番号と、前記差分値とを含み、
所定の初期値に初期化される、少なくとも２つ以上の比較行バッファを用い、前記符号化データに含まれる前記識別番号と前記差分値とを復号するステップと、
前記２つ以上の比較行バッファのうちの前記識別番号に対応した前記比較行バッファと前記差分値との間で、排他的論理和演算によって前記画像データの前記第Ｎ行の行データを復元するステップと、
前記２つ以上の比較行バッファのうちの前記識別番号に対応した前記比較行バッファを、前記画像行データ復元手段で復元された前記画像データの前記第Ｎ行の行データで更新するステップとを実行させる、画像復号プログラム。
【請求項１１】
請求項８または９に記載の画像符号化プログラムを記録した、コンピュータ読取可能な記録媒体。
【請求項１２】
請求項１０に記載の画像復号プログラムを記録した、コンピュータ読取可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は画像符号化装置、画像復号装置、画像符号化方法、画像復号方法、画像符号化プログラム、画像復号プログラム、画像符号化プログラムを記録した記録媒体、および画像復号プログラムを記録した記録媒体に関し、特に、特に、フォントなどの文字画像を高い圧縮率で符号化、復号することが可能な画像符号化装置、画像復号装置、画像符号化方法、画像復号方法、画像符号化プログラム、画像復号プログラム、画像符号化プログラムを記録した記録媒体、および画像復号プログラムを記録した記録媒体に関する。
【背景技術】
【０００２】
近年の情報通信技術の発達により、パーソナルコンピュータだけではなく、携帯電話等の小型情報機器でもさまざまなフォントが使用されるようになっている。
【０００３】
一般的にフォントは、輪郭線情報から構成されるアウトラインフォントと、ドット情報から構成されるビットマップフォントとに大別される。これらには、それぞれ長所、短所があり、両方が併用されることもある。電子辞書や携帯電話等の小型情報機器では、演算処理量が少ないビットマップフォントが使用されることが多い。ビットマップフォントの場合、文字サイズごとにデータを用意する必要があり、同じ記憶容量に多くのフォントを格納する。そのため、ビットマップフォントを用いる場合には高い圧縮率で文字画像データを圧縮する技術が求められる。
【０００４】
たとえば、図１０（Ａ）のように「山王田川」という１２×１２ドットの４つの文字から構成されるフォントデータがあったとする。各ドットは１ビットに対応し、黒画素（文字を描画するドット）には「１」を、白画素（文字を描画しないドット）には「０」を割り当てるものとする。図１０（Ａ）のフォントデータの各ドットを行方向に８ドットずつまとめ、左側を上位ビットとして１バイト（８ビット）単位で１６進数で表記すると、図１０（Ｂ）に示される数字の通りになる。ただし、行方向１３ビット目以降の余り部分には「０」を埋めている。
【０００５】
シャノンの定理により、記号ｃｉの生起確率をｐｉとしたとき、平均符号長の下限は式（１）で示したエントロピー（単位は「ビット」）で与えられることが一般に知られている：
−Σｐiｌｏｇ2ｐi      …式（１）。
【０００６】
図１０（Ｂ）の数字を記号として算出された各記号の生起確率とエントロピーとは図１１に示される。図１１を参照して、図１０（Ｂ）の数字を記号として算出されたエントロピーは２．８８６ビットである。これは、どのような符号化を行なっても、図１０（Ａ）のフォントデータを符号化したときの平均符号長は２．８８６ビットを下回ることはないということを示している。
【０００７】
エントロピーは理論限界であり、一般には理論限界に近い性能を持つ符号化方式が用いられる。その１つとしてハフマン符号が知られている。図１０（Ａ）のフォントデータをハフマン符号による符号化を行なった場合、図１１に示されるように平均符号長は２．９０６ビットとなり、フォント全体では２７９ビットに圧縮される。
【０００８】
式（１）から、各記号の生起確率に偏りがある方が平均符号長を短くできることが知られている。このことを利用して、たとえば、特開平２−２８７４９４号公報（以下、特許文献１）には、画像の隣接する行間で排他的論理和をとることで「０」のビットを増加させ、圧縮率を高めることができる文字情報圧縮方法が開示されている。
【０００９】
特許文献１に開示されている圧縮方法で図１０（Ａ）のフォントデータを圧縮する場合、文字ごとに前行との排他的論理和をとった結果は図１２（Ａ）のようになる。ただし、各文字の１行目はすべてのビットが「０」の行と比較するものとする。縦ストロークに対しては「１」のビットが減少し、「００」の記号（８ビットがすべて「０」）が増加しているのがわかる。また、図１０（Ｂ）と同様に、図１２（Ａ）のデータの各ドットを行方向に８ドットずつまとめ、左側を上位ビットとして１バイト単位で１６進数で表記すると、図１２（Ｂ）に示される数字の通りになる。
【００１０】
図１１と同様、図１２（Ｂ）の数字を記号とし、エントロピー、およびハフマン符号による符号化を行なったときの平均符号長を計算した結果を図１３に示す。図１３を参照して、図１２（Ｂ）の数字を記号として算出されたエントロピーは２．２６６ビットであり、ハフマン符号の平均符号長は２．３２３ビット、全体の符号長は２２３ビットである。これより、図１１の計算結果と比較すると、図１０（Ａ）のフォントの場合には、隣接する行間で排他的論理和を取ることで排他的論理和を取らないで圧縮するよりも圧縮率が高くなることがわかる。
【特許文献１】特開平２−２８７４９４号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、図１２（Ａ）に示されるように、隣接する行間で排他的論理和を取ることで縦ストロークに対しては「１」のビットが減少しているものの、横ストロークに対しては「１」のビットがかえって増加してしまい、圧縮率向上の妨げになる場合があるという問題があった。
【００１２】
本発明は上記課題に鑑みてなされたものであり、特に、フォントなどの文字画像を高い圧縮率で符号化、復号することが可能な画像符号化装置、画像復号装置、画像符号化方法、画像復号方法、画像符号化プログラム、画像復号プログラム、画像符号化プログラムを記録した記録媒体、および画像復号プログラムを記録した記録媒体を提供することを目的としている。
【課題を解決するための手段】
【００１３】
上記目的を達成するために、本発明のある局面に従うと、画像符号化装置は、行データを含んで構成される画像データを圧縮符号化する画像符号化装置であって、画像データの第Ｎ行の行データとの間で排他的論理和演算による差分値を計算するために用いるデータが格納されている比較行バッファを、少なくとも２つ以上記憶する記憶手段と、上記２つ以上の比較行バッファのそれぞれについて、比較行バッファと画像の第Ｎ行の行データとの間で排他的論理和演算による差分値を計算する差分演算手段と、上記２つ以上の比較行バッファに対応した複数の差分値のうち、画像を描画するドットを表わしたビットの数が最も少ない差分値を最小差分値としたとき、上記２つ以上の比較行バッファの中から最小差分値に対応する比較行バッファを選択する比較行バッファ選択手段と、比較行バッファ選択手段が選択した比較行バッファを、画像の第Ｎ行の行データで更新する比較行バッファ更新手段と、比較行バッファ選択手段が選択した比較行バッファを識別する識別番号と、最小差分値とを圧縮符号化する符号化手段とを備える。
【００１４】
本発明の他の局面に従うと、画像符号化装置は、行データを含んで構成される画像データを圧縮符号化する画像符号化装置であって、画像データの第Ｎ行の行データとの間で排他的論理和演算による差分値を計算するために用いるデータが格納されている比較行バッファを、少なくとも２つ以上記憶する記憶手段と、上記２つ以上の比較行バッファを、各々、互いに異なる初期値に初期化する初期化手段と、上記２つ以上の比較行バッファのそれぞれについて、比較行バッファと画像の第Ｎ行の行データとの間で排他的論理和演算による差分値を計算する差分演算手段と、上記２つ以上の比較行バッファに対応した複数の差分値のうち、画像を描画するドットを表わしたビットの数が最も少ない差分値を最小差分値としたとき、上記２つ以上の比較行バッファの中から最小差分値に対応する比較行バッファを選択する比較行バッファ選択手段と、比較行バッファ選択手段が選択した比較行バッファを、画像の第Ｎ行の行データで更新する比較行バッファ更新手段と、比較行バッファ選択手段が選択した比較行バッファを識別する識別番号と、最小差分値とを圧縮符号化する符号化手段とを備え、初期化手段は、初期値として、画像データに含まれるすべての行データを論理積演算した値と、画像データに含まれるすべての行データを論理和演算した値とを用いる。
【００１５】
本発明のさらに他の局面に従うと、画像復号装置は、データを復号する画像復号装置であって、符号化データは、行データを含んで構成される画像データが圧縮符号化されて生成され、圧縮符号化された、画像データが圧縮符号化される際の画像データの第Ｎ行の行データとの間で排他的論理和演算による差分値を計算するために用いるデータを格納した比較行バッファを識別する識別番号と上記差分値とを含み、所定の初期値に初期化される、少なくとも２つ以上の比較行バッファを記憶する記憶手段と、符号化データに含まれる上記識別番号と上記差分値とを復号する復号手段と、上記２つ以上の比較行バッファのうちの上記識別番号に対応した比較行バッファと上記差分値との間で、排他的論理和演算によって画像データの第Ｎ行の行データを復元する画像行データ復元手段と、上記２つ以上の比較行バッファのうちの上記識別番号に対応した比較行バッファを、画像行データ復元手段で復元された画像データの第Ｎ行の行データで更新する比較行バッファ更新手段とを備える。
【００１６】
好ましくは、記憶手段に記憶される比較行バッファの数および所定の初期値は、画像データが圧縮符号化される際に用いられた比較行バッファの数および比較行バッファの初期値と同じである。
【００１７】
本発明のさらに他の局面に従うと、画像符号化方法は、行データを含んで構成される画像データを圧縮符号化する画像符号化方法であって、画像データの第Ｎ行の行データとの間で排他的論理和演算による差分値を計算するために用いるデータが格納されている比較行バッファを、少なくとも２つ以上用い、上記２つ以上の比較行バッファのそれぞれについて、比較行バッファと画像の第Ｎ行の行データとの間で排他的論理和演算による差分値を計算するステップと、上記２つ以上の比較行バッファに対応した複数の差分値のうち、画像を描画するドットを表わしたビットの数が最も少ない差分値を最小差分値としたとき、上記２つ以上の比較行バッファの中から最小差分値に対応する比較行バッファを選択するステップと、比較行バッファ選択手段が選択した比較行バッファを、画像の第Ｎ行の行データで更新するステップと、比較行バッファ選択手段が選択した比較行バッファを識別する識別番号と、最小差分値とを圧縮符号化するステップとを備える。
【００１８】
本発明のさらに他の局面に従うと、画像符号化方法は、行データを含んで構成される画像データを圧縮符号化する画像符号化方法であって、画像データの第Ｎ行の行データとの間で排他的論理和演算による差分値を計算するために用いるデータが格納されている比較行バッファを、少なくとも２つ以上用い、上記２つ以上の比較行バッファを、各々、互いに異なる初期値に初期化するステップと、上記２つ以上の比較行バッファのそれぞれについて、比較行バッファと画像の第Ｎ行の行データとの間で排他的論理和演算による差分値を計算するステップと、上記２つ以上の比較行バッファに対応した複数の差分値のうち、画像を描画するドットを表わしたビットの数が最も少ない差分値を最小差分値としたとき、上記２つ以上の比較行バッファの中から最小差分値に対応する比較行バッファを選択するステップと、比較行バッファ選択手段が選択した比較行バッファを、画像の第Ｎ行の行データで更新するステップと、比較行バッファ選択手段が選択した比較行バッファを識別する識別番号と、最小差分値とを圧縮符号化するステップとを備え、初期化ステップにおいては、初期値として、画像データに含まれるすべての行データを論理積演算した値と、画像データに含まれるすべての行データを論理和演算した値とを用いる。
【００１９】
本発明のさらに他の局面に従うと、画像復号方法は、符号化データを復号する画像復号方法であって、符号化データは、行データを含んで構成される画像データが圧縮符号化されて生成され、圧縮符号化された、画像データが圧縮符号化される際の画像データの第Ｎ行の行データとの間で排他的論理和演算による差分値を計算するために用いるデータを格納した比較行バッファを識別する識別番号と上記差分値とを含み、所定の初期値に初期化される、少なくとも２つ以上の比較行バッファを用い、符号化データに含まれる上記識別番号と上記差分値とを復号するステップと、上記２つ以上の比較行バッファのうちの識別番号に対応した比較行バッファと上記差分値との間で、排他的論理和演算によって画像データの第Ｎ行の行データを復元するステップと、上記２つ以上の比較行バッファのうちの識別番号に対応した比較行バッファを、画像行データ復元手段で復元された画像データの第Ｎ行の行データで更新するステップとを備える。
【００２０】
本発明のさらに他の局面に従うと、画像符号化プログラムは、行データを含んで構成される画像データを圧縮符号化する処理をコンピュータに実行させるプログラムであって、画像データの第Ｎ行の行データとの間で排他的論理和演算による差分値を計算するために用いるデータが格納されている比較行バッファを、少なくとも２つ以上用い、上記２つ以上の比較行バッファのそれぞれについて、比較行バッファと画像の第Ｎ行の行データとの間で排他的論理和演算による差分値を計算するステップと、上記２つ以上の比較行バッファに対応した複数の差分値のうち、画像を描画するドットを表わしたビットの数が最も少ない差分値を最小差分値としたとき、上記２つ以上の比較行バッファの中から最小差分値に対応する比較行バッファを選択するステップと、比較行バッファ選択手段が選択した比較行バッファを、画像の第Ｎ行の行データで更新するステップと、比較行バッファ選択手段が選択した比較行バッファを識別する識別番号と、最小差分値とを圧縮符号化するステップとを実行させる。
【００２１】
本発明のさらに他の局面に従うと、画像符号化プログラムは、行データを含んで構成される画像データを圧縮符号化する処理をコンピュータに実行させるプログラムであって、画像データの第Ｎ行の行データとの間で排他的論理和演算による差分値を計算するために用いるデータが格納されている比較行バッファを、少なくとも２つ以上用い、上記２つ以上の比較行バッファを、各々、互いに異なる初期値に初期化するステップと、上記２つ以上の比較行バッファのそれぞれについて、比較行バッファと画像の第Ｎ行の行データとの間で排他的論理和演算による差分値を計算するステップと、上記２つ以上の比較行バッファに対応した複数の差分値のうち、画像を描画するドットを表わしたビットの数が最も少ない差分値を最小差分値としたとき、上記２つ以上の比較行バッファの中から最小差分値に対応する比較行バッファを選択するステップと、比較行バッファ選択手段が選択した比較行バッファを、画像の第Ｎ行の行データで更新するステップと、比較行バッファ選択手段が選択した比較行バッファを識別する識別番号と、最小差分値とを圧縮符号化するステップとを実行させ、初期化ステップにおいては、初期値として、画像データに含まれるすべての行データを論理積演算した値と、画像データに含まれるすべての行データを論理和演算した値とを用いる。
【００２２】
本発明のさらに他の局面に従うと、画像復号プログラムは、符号化データを復号する処理をコンピュータに実行させるプログラムであって、符号化データは、行データを含んで構成される画像データが圧縮符号化されて生成され、圧縮符号化された、画像データが圧縮符号化される際の画像データの第Ｎ行の行データとの間で排他的論理和演算による差分値を計算するために用いるデータを格納した比較行バッファを識別する識別番号と上記差分値とを含み、所定の初期値に初期化される、少なくとも２つ以上の比較行バッファを用い、符号化データに含まれる上記識別番号と上記差分値とを復号するステップと、上記２つ以上の比較行バッファのうちの上記識別番号に対応した比較行バッファと上記差分値との間で、排他的論理和演算によって画像データの第Ｎ行の行データを復元するステップと、上記２つ以上の比較行バッファのうちの上記識別番号に対応した比較行バッファを、画像行データ復元手段で復元された画像データの第Ｎ行の行データで更新するステップとを実行させる。
【００２３】
本発明のさらに他の局面に従うと、記録媒体はコンピュータ読取可能な記録媒体であって、上述の画像符号化プログラムを記録する。
【００２４】
本発明のさらに他の局面に従うと、記録媒体はコンピュータ読取可能な記録媒体であって、上述の画像復号プログラムを記録する。
【発明の効果】
【００２５】
本発明によれば、縦ストロークだけでなく、横ストロークに対しても「１」のビットが減少するため、高い圧縮率で符号化、および復号を行なうことが可能になる。
【発明を実施するための最良の形態】
【００２６】
以下に、図面を参照しつつ、本発明の実施の形態について説明する。以下の説明では、同一の部品および構成要素には同一の符号を付してある。それらの名称および機能も同じである。
【００２７】
各実施の形態にかかる画像符号化装置／復号装置における処理は、コンピュータ、ワークステーションなどのＣＰＵ（Central Processing Unit）上で実行されるソフトウェア（プログラムまたはデータ）によって実現される。なお、携帯電話などでデータ処理や通信制御などを行なうＣＰＵ上で実行されるソフトウェアにより実現されてもよいし、ＩＣ（Integrated Circuit）カードなどの専用のハードウェアとして実現されてもよい。
【００２８】
本実施の形態においては、本発明にかかる画像符号化装置／復号装置を一般的なパーソナルコンピュータであるコンピュータ１で実現するものとして説明を行なう。
【００２９】
（装置の構成）
図１は各実施の形態にかかるコンピュータ１のハードウェア構成の具体例を示すブロック図である。
【００３０】
図１を参照して、コンピュータ１は、情報を表示するための液晶またはＣＲＴ（Cathode Ray Tube：陰極線管）などからなる表示装置１０、指示などの情報を外部から入力するために操作されるキー入力部４、該コンピュータ自体を集中的に制御するためのＣＰＵ２、ＲＯＭ（Read Only Memory）またはＲＡＭ（Random Access Memory）を含んで構成されるメモリ３、固定ディスク５、ＦＤ（Flexible Disk）７が着脱自在に装着されて、装着されたＦＤ７にアクセスするＦＤ駆動装置６、ＣＤ−ＲＯＭ（Compact Disk Read Only Memory）９が着脱自在に装着されて、装着されたＣＤ−ＲＯＭ９にアクセスするＣＤ−ＲＯＭ駆動装置８、および通信Ｉ／Ｆ（Interface）１１を含む。
【００３１】
通信Ｉ／Ｆ１１は通信路１２と該コンピュータ１とを通信可能に接続する機能を有する。したがってコンピュータ１は図示しない他のコンピュータと通信路１２を介して相互にデータ通信できる。通信路１２にはインターネットを含む各種ネットワークを適用できる。コンピュータ１ではＣＰＵ２によりデータ処理した結果は、表示装置１０や通信Ｉ／Ｆ１１から出力される。
【００３２】
図１のコンピュータ１には、カセット形式の磁気テープが着脱自在に装着されて磁気テープをアクセスする磁気テープ装置が設けられてもよい。
【００３３】
図１のコンピュータ１に搭載されるソフトウェアはＣＤ−ＲＯＭ９またはＦＤ７などの記録媒体に格納されて流通し、または通信路１２を経由してデータ通信により配信される（流通する）。ＣＰＵ２は、ＣＤ−ＲＯＭ駆動装置８またはＦＤ駆動装置６に装着されたＣＤ−ＲＯＭ９またはＦＤ７から読出したソフトウェアを、コンピュータ１またはワークステーションの所定記憶エリアに格納する。その後、所定記憶エリアからソフトウェアを読出し実行する。
【００３４】
［第１の実施の形態］
（機能構成）
図２は、第１の実施の形態にかかるコンピュータ１において、画像符号化処理を行なうための機能構成の具体例を示すブロック図である。
【００３５】
図２を参照して、本実施の形態にかかるコンピュータ１は、データ格納部２０、比較行バッファ初期化部３１、差分演算部３２、比較行バッファ選択部３３、比較行バッファ更新部３４、符号化部３５、および画像符号化制御部４０を含んで構成される。データ格納部２０には、比較行バッファ２１、差分バッファ２２、画像データ２３、中間データ２４、および符号化データ２５が格納される。
【００３６】
データ格納部２０は、メモリ３または固定ディスク５の所定の領域に対応する。比較行バッファ初期化部３１、差分演算部３２、比較行バッファ選択部３３、比較行バッファ更新部３４、符号化部３５、および画像符号化制御部４０は、メモリ３または固定ディスク５に予め記憶された画像符号化プログラムの機能に対応し、ＣＰＵ２が当該プログラムを読出し実行することにより、主にＣＰＵ２上に各部の機能が実現される。または、専用の回路で構成されてもよい。または、その一部は図１に示されたハードウェア構成で実現されてもよい。
【００３７】
画像データ２３は符号化処理対象の画像データである。画像データ２３は１枚の画像の画像データであってもよいし、フォントデータなど、各文字を別々の画像とするような複数枚の画像の画像データであってもよい。画像データにおいては、画像の各ドットは１ビットに対応し、黒画素（文字を描画するドット）には「１」を、白画素（文字を描画しないドット）には「０」を割り当てるものとする。
【００３８】
比較行バッファ２１は、内部に２つ以上の比較行バッファを含む。各比較行バッファには、０、１、２…のように、それぞれ識別する番号が付与されている。各比較行バッファには、画像データ２３の処理対象行データとのＸＯＲ（排他的論理和）演算による差分を計算するための比較対象行のデータが格納されている。比較行バッファには比較対象行のデータそのものを格納してもよいし、該当する画像データの行を示すポインタのみを格納するだけでもよい。
【００３９】
差分バッファ２２は内部に比較行バッファの数と同じ数の領域を含む。各領域には、対応する比較行バッファと処理対象の画像行データとの差分値が格納される。
【００４０】
比較行バッファ初期化部３１は比較行バッファ２１を初期化する。
比較行バッファ２１に含まれる比較行バッファの数は少なくとも２つ以上とする。たとえば２つとする場合、比較行バッファ初期化部３１が用いる初期値はすべて白（「０」）およびすべて黒（「１」）としてもよい。また、画像データの各行データをＯＲ（論理和）演算した値およびＡＮＤ（論理積）演算した値を用いてもよい。たとえば比較行バッファを４つ用いる場合、上記の初期値に加え、「０１０１０１０１０１…」という値、および「１０１０１０１０１０…」という値を用いてもよい。
【００４１】
差分演算部３２は、比較行バッファ２１の各値と画像データ２３の処理対象行のデータとの間でＸＯＲ演算を行なう。各比較行バッファとの差分値は、それぞれ、対応する差分バッファ２２に格納される。
【００４２】
比較行バッファ選択部３３は、差分バッファ２２の各値のうちで「１」のビットが最も少ない差分値に対応する比較行バッファを、比較行バッファ２１の中から選択する。差分バッファ２２の各値のうち、「１」のビットが最も少ない差分値を「最小差分値」と定義する。選択された比較行バッファの識別番号と最小差分値とは、中間データ２４として保存される。
【００４３】
比較行バッファ更新部３４は、比較行バッファ選択部３３が比較行バッファ２１の中から選択した比較行バッファを、画像データ２３の処理対象行のデータで置き換える。
【００４４】
符号化部３５は、選択された比較行バッファを識別する識別番号と最小差分値とが保存された中間データ２４を圧縮符号化し、符号化データ２５を出力する。
【００４５】
画像符号化制御部４０は、比較行バッファ初期化部３１、差分演算部３２、比較行バッファ選択部３３、比較行バッファ更新部３４、および符号化部３５を制御する。
【００４６】
（処理手順について）
図３を用いて本実施の形態にかかるコンピュータ１における画像符号化処理について説明する。図３のフローチャートに示される処理は、ＣＰＵ２がメモリ３または固定ディスク５に予め記憶された画像符号化プログラムを読出して実行することで形成された画像符号化制御部４０が、図２に示される各部を制御することによって実現される。
【００４７】
図３を参照して、始めに、比較行バッファ初期化部３１は、ステップ（以下、ステップをＳと略す。）１にて比較行バッファ２１を初期化する。
【００４８】
次に、差分演算部３２はＳ２にて、比較行バッファ２１の各値と画像データ２３の処理対象行のデータとの間でＸＯＲ演算を行ない、各比較行バッファとの差分値をそれぞれ差分バッファ２２に格納する。次に、比較行バッファ選択部３３は、Ｓ３にて差分バッファ２２のうちから最小差分値を探索し、最小差分値に対応する比較行バッファを選択する。また、比較行バッファ選択部３３はＳ４にて選択した比較行バッファの識別番号と最小差分値とを中間データ２４に保存しておく。
【００４９】
このように、複数の比較行バッファを用いて、画像データの処理対象行と各比較行バッファとの差分値のうちの最小差分値および最小差分値となる比較行バッファの識別番号を中間データとすることで、隣接する行間の差分値を用いるよりも差分値から「１」のビットを減らすことができる。そのため、圧縮率を高めることができる。
【００５０】
次に、比較行バッファ更新部３４は、Ｓ５にて比較行バッファ選択部３３が選択した比較行バッファを画像データ２３の処理対象行のデータで置き換える。上記ステップＳ５で比較行バッファが更新されることで、差分値を計算する対象行が切り替えられる。
【００５１】
このように、比較行バッファを複数用意して、上記ステップＳ５で最小差分値をとる比較行バッファを処理対象行で置き換えることで、たとえば縦ストローク中に横ストロークが出現した場合であっても、縦ストロークは縦ストロークとの差分値が計算され、横ストロークは横ストロークとの差分値が計算される。そのため、「１」のビットを減少させることができ、圧縮率が向上される。
【００５２】
画像符号化制御部４０はＳ６にて、処理対象画像のすべての行についての処理が終了したか否かを判断し、終了していなければ画像データ２３の処理対象行を１行下に移動し、Ｓ２に制御を移す。また、画像符号化制御部４０はＳ７にて、すべて画像についての処理が終了したか否かを判断し、終了していなければ処理対象画像を別の画像に移し、Ｓ１に制御を移す。
【００５３】
画像符号化制御部４０においてＳ６ですべての行についての処理が終了したと判断され、Ｓ７ですべての画像についての処理が終了したと判断されると（Ｓ６でＹＥＳ、かつＳ７でＹＥＳ）、符号化部３５はＳ８にて、選択された比較行バッファを識別する識別番号と最小差分値とが保存された中間データ２４を圧縮符号化し、符号化データ２５を出力する。
【００５４】
なお、上記具体例では、上記ステップＳ５で最小差分値となる比較行バッファの値を画像データの処理対象行のデータで置き換えるものとしているが、ステップＳ５で置き換えを行なわず、比較行バッファの初期値を用いてもよい。たとえば、比較行バッファの初期値がすべて「０」である場合には、図１０（Ａ），（Ｂ）に示されたように、差分を算出せずにそのまま符号化する処理となる。
【００５５】
次に具体例を用いて上記処理を説明する。
処理対象の画像データを、図１０（Ａ）に示された「山王田川」という１２×１２ドットの４つの文字から構成されるフォントデータであるものとする。上述のように、図１０（Ａ）のフォントデータを、各ドットを行方向に８ドットずつまとめ、左側を上位ビットとして１バイト（８ビット）単位で１６進数で表記すると、図１０（Ｂ）の右の数字の通りになる。ただし、行方向１３ビット目以降の余り部分には「０」を埋めている。このデータを１バイト単位にハフマン符号化した場合、図１１に示されたように、平均符号長は２．９０６ビットとなる。
【００５６】
図１０（Ａ）のフォントデータに対し、上記Ｓ１〜Ｓ７の処理が実行されると、中間データ２４として図４（Ａ）に示された結果が得られる。また、図１０（Ｂ）と同様に、図４（Ａ）のデータの各ドットを行方向に８ドットずつまとめ、左側を上位ビットとして１バイト単位で１６進数で表記すると、図４（Ｂ）に示される数字の通りになる。
【００５７】
図４（Ａ）のデータにおいて、１ビット目から１２ビット目までは最小差分値、１３ビット目は比較行バッファの識別番号（「０」または「１」）を表わしている。
【００５８】
図１２（Ａ）と図４（Ａ）とを比較すると、隣接行で差分を算出する従来の符号化方法（図１２（Ｂ））では横ストローク部分で多くの「１」のビットが出現しているのに対して、本願の符号化方法では（図４（Ａ））縦ストローク部分と横ストローク部分との差分が別々に算出されるために、「１」のビットが従来方法（図１２（Ｂ））と比較して抑えられる。
【００５９】
なお、ここでは、比較行バッファ２１に含まれる比較行バッファの数を２つとして、０番の比較行バッファ０の初期値には「００００００００００００」を、１番の比較行バッファ１の初期値には「０１１１１１１１１１１１」を用いている。前者はすべての画像行データをＡＮＤ（論理積）演算した値であり、後者はすべての画像行データをＯＲ（論理和）演算した値になっている。フォントとして用いられる文字画像は、デザイン上、左右どちらかに空白をおいて１２×１２ドットの画像データ上に配置されることが多い。そのため、すべて白（「００００００００００００」）の比較行バッファの初期値、およびすべて黒（「１１１１１１１１１１１１」）の比較行バッファの初期値を用いるよりも、画像行データをＡＮＤ演算した値とＯＲ演算した値とをそれぞれ用いた方が、符号化対象のデータである中間データ２４から「１」のビットを減らすことができ、圧縮率を高めることができる。
【００６０】
図５（Ａ），（Ｂ）を用いて、図１０（Ａ）のフォントデータに対し、上記Ｓ１〜Ｓ７の処理を行なって図４（Ａ）に示される中間データが生成される際の、比較行バッファの変化の様子、最小差分値、および選択される比較行バッファの識別番号の値についてさらに詳しく説明する。
【００６１】
比較行バッファ２１に含まれる比較行バッファの数を２つとして、図５（Ａ）は０番の比較行バッファ０、図５（Ｂ）は１番の比較行バッファ１を示している。図５（Ａ）および図５（Ｂ）を参照して、上記Ｓ１では、図１０（Ａ）のフォントデータのうち１文字目の「山」を表わすフォントデータの１行目のデータに対して、比較行バッファ０，１は、それぞれ「００００００００００００」，「０１１１１１１１１１１１」に初期化されているものとする。
【００６２】
図１０（Ａ）のフォントデータ「山」の１行目のデータは「００００００００００００」である。そのため、上記Ｓ２で差分演算部３２において、フォントデータ「山」の１行目のデータと、比較行バッファ０，１とのＸＯＲ演算が行なわれた場合、上記Ｓ３で比較行バッファ選択部３３においては、比較行バッファ０との差分値である「００００００００００００」が最小差分値として探索され、比較行バッファ２１の中から対応した比較行バッファ０が選択される。そして、図４（Ａ）の１行目に示されるように、中間データ２４として、１ビット目から１２ビット目までは最小差分値「００００００００００００」、１３ビット目は対応する比較行バッファを識別する番号である「０」が保存される。また、上記Ｓ５で比較行バッファ更新部３４において、比較行バッファ０がフォントデータ「山」の１行目のデータである「００００００００００００」に更新される。
【００６３】
図１０（Ａ）のフォントデータ「山」の２行目のデータは「００００００１０００００」である。そのため、上記Ｓ２で差分演算部３２において、フォントデータ「山」の２行目のデータと、比較行バッファ０，１とのＸＯＲ演算が行なわれた場合、上記Ｓ３で比較行バッファ選択部３３においては、比較行バッファ０「００００００１０００００」との差分値である「００００００１０００００」が最小差分値として探索され、対応する比較行バッファとして比較行バッファ０が選択される。そして、図４（Ａ）の２行目に示されるように、中間データ２４として、１ビット目から１２ビット目までは最小差分値「００００００１０００００」、１３ビット目は対応する比較行バッファを識別する番号である「０」が保存される。また、上記Ｓ５で比較行バッファ更新部３４において、比較行バッファ０がフォントデータ「山」の２行目のデータである「００００００１０００００」に更新される。
【００６４】
図１０（Ａ）のフォントデータ「山」の３行目のデータは「００００００１０００００」である。そのため、上記Ｓ２で差分演算部３２において、フォントデータ「山」の３行目のデータと、比較行バッファ０，１とのＸＯＲ演算が行なわれた場合、上記Ｓ３で比較行バッファ選択部３３においては、比較行バッファ０「００００００１０００００」との差分値である「００００００００００００」が最小差分値として探索され、対応する比較行バッファとして比較行バッファ０が選択される。そして、図４（Ａ）の３行目に示されるように、中間データ２４として、１ビット目から１２ビット目までは最小差分値「００００００００００００」、１３ビット目は対応する比較行バッファを識別する番号である「０」が保存される。また、上記Ｓ５で比較行バッファ更新部３４において、比較行バッファ０がフォントデータ「山」の２行目のデータである「００００００１０００００」に更新される。
【００６５】
同様に以降の行について処理が進められ、図１０（Ａ）のフォントデータ「山」の１０行目まで比較行バッファ０が最小差分値に対応する比較行バッファとして選択され、比較行バッファ０が処理の度にフォントデータの値で更新される。
【００６６】
図１０（Ａ）のフォントデータ「山」の１１行目のデータは「０１１１１１１１１１１１」である。そのため、上記Ｓ２で差分演算部３２において、フォントデータ「山」の２行目のデータと、比較行バッファ０，１とのＸＯＲ演算が行なわれた場合、上記Ｓ３で比較行バッファ選択部３３においては、比較行バッファ１「０１１１１１１１１１１１」との差分値である「００００００００００００」が最小差分値として探索され、対応する比較行バッファとして比較行バッファ１が選択される。そして、図４（Ａ）の１１行目に示されるように、中間データ２４として、１ビット目から１２ビット目までは最小差分値「００００００００００００」、１３ビット目は対応する比較行バッファを識別する番号である「１」が保存される。また、上記Ｓ５で比較行バッファ更新部３４において、比較行バッファ１がフォントデータ「山」の１１行目のデータである「０１１１１１１１１１１１」に更新される。
【００６７】
このように１２行目のデータの処理まで終了すると、１文字目の「山」に対する処理が終了するため、処理はＳ１に戻り、上記Ｓ１にて比較行バッファ０，１はそれぞれ「００００００００００００」，「０１１１１１１１１１１１」に初期化されて、次のフォントデータ「王」に対する処理に移る。
【００６８】
図６は、図４（Ａ）に示された中間データ２４である処理結果について算出されたエントロピーと、ハフマン符号による符号化を行なったときの平均符号長とを示している。
【００６９】
図６を参照して、図４（Ａ）に示された中間データ２４に対してハフマン符号による符号化を行なった場合、平均符号長は１．８９６ビットとなる。この平均符号長は、図１１に示された、画像データをそのままハフマン符号で符号化した場合の平均符号長２．９０６ビットと比較して、約３４．８％のデータが削減されている。このように、本実施の形態にかかる符号化処理では、大幅なデータ圧縮を実現することができる。
【００７０】
なお、本発明にかかる符号化処理は圧縮符号化方式には依存しないため、特定の圧縮符号化方法に限定されない。そのため、ハフマン符号以外にも算術符号などによって圧縮符号化が行なわれてもよい。
【００７１】
［第２の実施の形態］
第２の実施の形態においては、コンピュータ１が画像復号装置として機能し、画像復号処理が実行されるものとするが、画像復号装置はコンピュータに限定されず、たとえば携帯電話など他の装置であってもよい。
【００７２】
（機能構成）
図７は、第２の実施の形態にかかるコンピュータ１において、画像復号処理を行なうための機能構成の具体例を示すブロック図である。
【００７３】
図７を参照して、本実施の形態にかかるコンピュータ１は、データ格納部２０、比較行バッファ初期化部３１、差分演算部３２、比較行バッファ更新部３４、復号部３６、画像復号制御部４１を含んで構成される。データ格納部２０には、比較行バッファ２１、符号化データ２５、中間データ２６、および画像データ２７が格納される。
【００７４】
データ格納部２０は、メモリ３または固定ディスク５の所定の領域に対応する。比較行バッファ初期化部３１、差分演算部３２、比較行バッファ更新部３４、復号部３６、および画像復号制御部４１は、メモリ３または固定ディスク５に予め記憶された画像復号プログラムの機能に対応し、ＣＰＵ２が当該プログラムを読出し実行することにより、主にＣＰＵ２上に各部の機能が実現される。または、専用の回路で構成されてもよい。または、その一部は図１に示されたハードウェア構成で実現されてもよい。
【００７５】
符号化データ２５は復号処理対象のデータであり、画像の各行ごとの最小差分値と比較行バッファの識別番号とがハフマン符号等の圧縮符号化方式で符号化されたデータである。
【００７６】
比較行バッファ２１は、内部に２つ以上の比較行バッファを含む。各比較行バッファには、０、１、２…のように、それぞれ識別する番号が付与されている。
【００７７】
比較行バッファ初期化部３１は、所定の初期値で比較行バッファ２１を初期化する。
比較行バッファ２１に含まれる比較行バッファの数は少なくとも２つ以上とする。比較行バッファの数とそれぞれの初期値とは、符号化データ２５を作成したときの値とする。比較行バッファの数とそれぞれの初期値とは予め符号化装置と復号装置との間で定めておいてもよいし、符号化データ２５のヘッダ領域等に付加しておいてもよい。
【００７８】
なお、比較行バッファはそれぞれ画像１行分のバッファであってもよいし、復号した画像データの対応する行を示すポインタであってもよい。
【００７９】
復号部３６は、符号化データ２５から最小差分値と比較行バッファの識別番号とを１行分復号し、中間データ２６に格納する。中間データ２６には最小差分値と対応する比較行バッファの識別番号とが含まれている。
【００８０】
差分演算部３２は、中間データ２６に格納された識別番号に対応した比較行バッファ２１と最小差分値との間でＸＯＲ（排他的論理和）演算を行ない、画像行データを復元して画像データ２７に出力する。比較行バッファ更新部３４は、比較行バッファ選択部３３が選択した比較行バッファを復元した画像行データで置き換える。
【００８１】
画像復号制御部４１は、比較行バッファ初期化部３１、差分演算部３２、比較行バッファ更新部３４、および復号部３６を制御する。
【００８２】
（処理手順について）
図８を用いて本実施の形態にかかるコンピュータ１における画像復号処理について説明する。図８のフローチャートに示される処理は、ＣＰＵ２がメモリ３または固定ディスク５に予め記憶された画像復号プログラムを読出して実行することで形成された画像復号制御部４１が、図７に示される各部を制御することによって実現される。
【００８３】
図８を参照して、始めに、比較行バッファ初期化部３１は、Ｓ１１にて、所定の初期値で比較行バッファ２１を初期化する。
【００８４】
次に、復号部３６はＳ１２にて、符号化データ２５から比較行バッファを識別する識別番号と最小差分値とを画像１行分復号し、中間データ２６に出力する。次に、差分演算部３２はＳ１３にて、識別番号に対応する比較行バッファ２１と最小差分値との間でＸＯＲ演算を行ない、画像行データを復元して画像データ２７に出力する。
【００８５】
次に、比較行バッファ更新部３４はＳ１４にて、識別番号に対応する比較行バッファを復元された画像行データで置き換える。
【００８６】
画像復号制御部４１はＳ１５にて、復号したい画像データのすべての行に対応する符号化データの処理を終了したか否かを判断し、終了していなければ（Ｓ１５でＮＯ）処理対象の符号化データを画像１行分に相当する分だけ移動し、Ｓ１２に制御を移す。
【００８７】
画像復号制御部４１においてＳ１５ですべての行に対応する符号化データの処理が終了したと判断されると（Ｓ１５でＹＥＳ）、処理を終了する。
【００８８】
符号化データ２５を復号して得られた中間データ２６として、図４（Ａ）に示された中間データのうちの２文字目のフォントデータ「王」に対応した中間データを用いてフォントデータである画像データを復号する場合を具体例として、上記処理を説明する。
【００８９】
比較行バッファ２１に含まれる比較行バッファの数を２つとして、図９（Ａ）は０番の比較行バッファ０、図９（Ｂ）は１番の比較行バッファ１を示している。図９（Ａ）および図９（Ｂ）を参照して、上記Ｓ１１では、フォントデータの１行目のデータに対して、比較行バッファ０，１は、それぞれ「００００００００００００」，「０１１１１１１１１１１１」に初期化されているものとする。
【００９０】
上記Ｓ１２で復号部３６は符号化データ２５を復号して図４（Ａ）に示された中間データ２６を得る。
【００９１】
図４（Ａ）に示された中間データ２６の１行目には、フォントデータの１行目のデータに対応したデータとして、１ビット目から１２ビット目までは最小差分値「００００００００００００」、１３ビット目は対応する比較行バッファを識別する番号である「０」が保存されている。そこで、上記Ｓ１３で差分演算部３２においては、中間データ２６の１行目について、識別番号「０」に対応する比較行バッファ０「００００００００００００」と最小差分値「００００００００００００」との間でＸＯＲ演算が行なわれ、画像行データとして「００００００００００００」が復元される。復元された画像データは、図１０（Ａ）のフォントデータのうちの２文字目のフォントデータの１行目に示されるように、画像データ２７の１行目として出力される。また、上記Ｓ１４で比較行バッファ更新部３４において、比較行バッファ０が復元されたフォントデータの行データ「００００００００００００」に更新される。
【００９２】
図４（Ａ）に示された中間データ２６の２行目には、フォントデータの２行目のデータに対応したデータとして、１ビット目から１２ビット目までは最小差分値「０１０００００００００１」、１３ビット目は対応する比較行バッファを識別する番号である「１」が保存されている。そこで、上記Ｓ１３で差分演算部３２においては、中間データ２６の２行目について、識別番号「１」に対応する比較行バッファ１「０１１１１１１１１１１１」と最小差分値「０１０００００００００１」との間でＸＯＲ演算が行なわれ、画像行データとして「００００００１０００００」が復元される。復元された画像データは、図１０（Ａ）のフォントデータのうちの２文字目のフォントデータの２行目に示されるように、画像データ２７の２行目として出力される。また、上記Ｓ１４で比較行バッファ更新部３４において、比較行バッファ１が復元されたフォントデータの行データ「００００００１０００００」に更新される。
【００９３】
図４（Ａ）に示された中間データ２６の３行目には、フォントデータの１行目のデータに対応したデータとして、１ビット目から１２ビット目までは最小差分値「００００００１０００００」、１３ビット目は対応する比較行バッファを識別する番号である「０」が保存されている。そこで、上記Ｓ１３で差分演算部３２においては、中間データ２６の３行目について、識別番号「０」に対応する比較行バッファ０「００００００００００００」と最小差分値「００００００１０００００」との間でＸＯＲ演算が行なわれ、画像行データとして「００００００１０００００」が復元される。復元された画像データは、図１０（Ａ）のフォントデータのうちの２文字目のフォントデータの３行目に示されるように、画像データ２７の３行目として出力される。また、上記Ｓ１４で比較行バッファ更新部３４において、比較行バッファ０が復元されたフォントデータの行データ「００００００１０００００」に更新される。
【００９４】
以下、同様にして中間データ２６の最終行まで処理が繰返され、図１０（Ａ）に示されるようなフォントデータ「王」が復号される。
【００９５】
以上のように、復号された画像データで識別番号に対応した比較行バッファを順次更新していくことで、高い圧縮率で符号化されたデータを正しく復号することができる。
【００９６】
さらに、上述の画像符号化処理および画像復号処理をコンピュータに実行させるプログラムを提供することもできる。このようなプログラムは、コンピュータに付属するフレキシブルディスク、ＣＤ−ＲＯＭ、ＲＯＭ、ＲＡＭおよびメモリカードなどのコンピュータ読取り可能な記録媒体にて記録させて、プログラム製品として提供することもできる。あるいは、コンピュータに内蔵するハードディスクなどの記録媒体にて記録させて、プログラムを提供することもできる。また、ネットワークを介したダウンロードによって、プログラムを提供することもできる。
【００９７】
なお、本発明にかかるプログラムは、コンピュータのオペレーションシステム（ＯＳ）の一部として提供されるプログラムモジュールのうち、必要なモジュールを所定の配列で所定のタイミングで呼出して処理を実行させるものであってもよい。その場合、プログラム自体には上記モジュールが含まれずＯＳと協働して処理が実行される。このようなモジュールを含まないプログラムも、本発明にかかるプログラムに含まれ得る。
【００９８】
また、本発明にかかるプログラムは他のプログラムの一部に組込まれて提供されるものであってもよい。その場合にも、プログラム自体には上記他のプログラムに含まれるモジュールが含まれず、他のプログラムと協働して処理が実行される。このような他のプログラムに組込まれたプログラムも、本発明にかかるプログラムに含まれ得る。
【００９９】
提供されるプログラム製品は、ハードディスクなどのプログラム格納部にインストールされて実行される。なお、プログラム製品は、プログラム自体と、プログラムが記録された記録媒体とを含む。
【０１００】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【図面の簡単な説明】
【０１０１】
【図１】コンピュータ１のハードウェア構成の具体例を示すブロック図である。
【図２】コンピュータ１において、画像符号化処理を行なうための機能構成の具体例を示すブロック図である。
【図３】画像符号化処理を示すフローチャートである。
【図４】中間データの具体例を示す図である。
【図５】画像符号化処理における比較行バッファの具体例を示す図である。
【図６】中間データのエントロピーと、ハフマン符号化を行なった場合の平均符号長を説明する図である。
【図７】コンピュータ１において、画像復号処理を行なうための機能構成の具体例を示すブロック図である。
【図８】画像復号処理を示すフローチャートである。
【図９】画像復号処理における比較行バッファの具体例を示す図である。
【図１０】フォントデータの具体例を示す図である。
【図１１】フォントデータのエントロピーと、ハフマン符号化を行なった場合の平均符号長を説明する図である。
【図１２】フォントデータの隣接する行間で排他的論理和を算出した結果の具体例を示す図である。
【図１３】フォントデータの隣接する行間で排他的論理和を算出した結果についてのエントロピーと、ハフマン符号化を行なった場合の平均符号長を説明する図である。
【符号の説明】
【０１０２】
１  コンピュータ、２  ＣＰＵ、３  メモリ、４  キー入力部、５  固定ディスク、６  ＦＤ駆動装置、７  ＦＤ、８  ＣＤ−ＲＯＭ駆動装置、９  ＣＤ−ＲＯＭ、１０  表示装置、１１  通信Ｉ／Ｆ（Interface）、１２  通信路、２０  データ格納部、２１  比較行バッファ、２２  差分バッファ、２３，２７  画像データ、２４，２６  中間データ、２５  符号化データ、３１  比較行バッファ初期化部、３２  差分演算部、３３  比較行バッファ選択部、３４  比較行バッファ更新部、３５  符号化部、３６  復号部、４０  画像符号化制御部、４１  画像復号制御部。
【図１】
2008124632.tif 000003
【図２】
2008124632.tif 000004
【図３】
2008124632.tif 000005
【図４】
2008124632.tif 000006
【図５】
2008124632.tif 000007
【図６】
2008124632.tif 000008
【図７】
2008124632.tif 000009
【図８】
2008124632.tif 000010
【図９】
2008124632.tif 000011
【図１０】
2008124632.tif 000012
【図１１】
2008124632.tif 000013
【図１２】
2008124632.tif 000014
【図１３】
2008124632.tif 000015