(57)【要約】  【課題】  比較的軽い処理負荷でデータを符号化する符号化装置を提供する。    【解決手段】  画像処理装置２は、注目画素Ｘの画素値と、この注目画素Ｘの近傍にある複数の周辺画素Ａ〜Ｄの画素値とを比較して、いずれかの周辺画素の画素値が注目画素Ｘの画素値と一致する場合に、ランレングス符号化方式を適用し、いずれも一致しなかった場合に、マルコフモデル符号化方式を適用する。ランレングス符号化方式では、上記周辺画素Ａ〜Ｄの画素値と注目画素Ｘとのラン（連続一致数）が計数されて符号化される。【選択図】図６
2006311055.tif 000002
【特許請求の範囲】
【請求項１】
マルコフモデル符号化方式を用いて、符号化対象となる注目データを符号化する第１の符号化手段と、
マルコフモデル符号化とは異なる符号化方式を用いて、前記注目データを符号化する第２の符号化手段と、
前記注目データに基づいて、前記第１の符号化手段又は第２の符号化手段を、適用すべき符号化手段として選択する選択手段と
を有する符号化装置。
【請求項２】
前記第２の符号化手段は、ランレングス符号化方式を用いて、前記注目データを符号化する
請求項１に記載の符号化装置。
【請求項３】
前記第２の符号化手段は、前記注目データと、他の参照データとの一致度合いを示す一致情報を符号化し、
前記選択手段は、前記注目データと、前記参照データとを比較して、この比較結果に応じて、適用すべき符号化手段を選択する
請求項１又は２に記載の符号化装置。
【請求項４】
前記選択手段は、前記注目データと、この注目データに対して既定の位置にある参照データとを比較して、この注目データがいずれの参照データとも一致しなかった場合に、前記第１の符号化手段を選択する
請求項１又は３に記載の符号化装置。
【請求項５】
前記選択手段は、前記注目データと、少なくとも１つの前記参照データとを比較して、この注目データがいずれかの前記参照データと一致した場合に、前記第２の符号化手段を選択し、
前記第２の符号化手段は、前記注目データと前記参照データとが連続して一致する連続一致数を符号化する
請求項４に記載の符号化装置。
【請求項６】
前記第１の符号化手段は、
前記注目データについて、コンテクストを判定するコンテクスト判定手段と、
コンテクストに対して一意に符号群を対応付ける対応付けテーブルを用いて、前記コンテクスト判定手段により判定されたコンテクストに対応する符号群を選択する符号群選択手段と、
前記符号群選択手段により選択された符号群を用いて、前記注目データの符号を生成する符号生成手段と
を有する
請求項１〜５のいずれかに記載の符号化装置。
【請求項７】
前記コンテクスト判定手段は、前記選択手段により前記第１の符号化手段が選択された場合にのみ、前記注目データのコンテクストを判定する
請求項６に記載の符号化装置。
【請求項８】
前記選択手段により選択された符号化手段を識別するための符号識別情報を、前記注目データの符号に付加する識別情報付加手段
をさらに有する請求項１〜７のいずれかに記載の符号化装置。
【請求項９】
マルコフモデル符号化方式を用いて、復号化対象となる注目符号を符号化する第１の復号化手段と、
マルコフモデル符号化方式とは異なる符号化方式を用いて、前記注目符号を復号化する第２の復号化手段と、
前記注目符号に付加された符号識別情報に基づいて、前記第１の復号化手段又は第２の復号化手段を、適用すべき復号化手段として選択する復号選択手段と
を有する復号化装置。
【請求項１０】
前記第１の復号化手段は、
復号化された他のデータに基づいて、前記注目符号のコンテクストを判定するコンテクスト判定手段と、
コンテクストに対して一意に符号群を対応付ける対応付けテーブルを用いて、前記コンテクスト判定手段により判定されたコンテクストに対応する符号表を選択する符号表選択手段と、
前記符号表選択手段により選択された符号表を用いて、前記注目符号の復号データを生成する復号データ生成手段と
を有する
請求項９に記載の復号化装置。
【請求項１１】
符号化対象となる注目データに基づいて、マルコフモデル符号化方式又は他の符号化方式を選択し、
選択された符号化方式を用いて、前記注目データを符号化する
符号化方法。
【請求項１２】
符号化対象となる注目データと、この注目データに対して既定の位置にある参照データとを比較して、マルコフモデル符号化方式又はランレングス符号化方式を選択し、
選択された符号化方式を用いて、前記注目データを符号化する
符号化方法。
【請求項１３】
復号化対象となる注目符号に付加された符号識別情報に基づいて、マルコフモデル符号化方式又は他の符号化方式を選択し、
選択された符号化方式を用いて、前記注目符号を復号化する
復号化方法。
【請求項１４】
符号化対象となる注目データに基づいて、マルコフモデル符号化方式又は他の符号化方式を選択するステップと、
選択された符号化方式を用いて、前記注目データを符号化するステップと
をコンピュータに実行させるプログラム。
【請求項１５】
復号化対象となる注目符号に付加された符号識別情報に基づいて、マルコフモデル符号化方式又は他の符号化方式を選択するステップと、
選択された符号化方式を用いて、前記注目符号を復号化するステップと
をコンピュータに実行させるプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コンテクストに応じて符号を切り替える符号化装置に関する。
【背景技術】
【０００２】
例えば、特許文献１は、注目画素ｘの周辺画素ｂ、ｃと、注目画素ｘの近傍の特定画素ａとの濃度差を算出し、算出された濃度差のいずれかが所定値以下の時、算出された濃度差をマルコフモデル符号化し、算出された濃度差のいずれもが所定値以上の時、注目画素ｘを予測符号化する画像符号化方法を開示する。
【特許文献１】特開平８−２９８５９９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
本発明は、上述した背景からなされたものであり、比較的軽い処理負荷でデータを符号化する符号化装置を提供することを目的とする。
【課題を解決するための手段】
【０００４】
［符号化装置］
上記目的を達成するために、本発明にかかる符号化装置は、マルコフモデル符号化方式を用いて、符号化対象となる注目データを符号化する第１の符号化手段と、マルコフモデル符号化とは異なる符号化方式を用いて、前記注目データを符号化する第２の符号化手段と、前記注目データに基づいて、前記第１の符号化手段又は第２の符号化手段を、適用すべき符号化手段として選択する選択手段とを有する。
【０００５】
好適には、前記第２の符号化手段は、ランレングス符号化方式を用いて、前記注目データを符号化する。
【０００６】
好適には、前記第２の符号化手段は、前記注目データと、他の参照データとの一致度合いを示す一致情報を符号化し、前記選択手段は、前記注目データと、前記参照データとを比較して、この比較結果に応じて、適用すべき符号化手段を選択する。
【０００７】
好適には、前記選択手段は、前記注目データと、この注目データに対して既定の位置にある参照データとを比較して、この注目データがいずれの参照データとも一致しなかった場合に、前記第１の符号化手段を選択する。
【０００８】
好適には、前記選択手段は、前記注目データと、少なくとも１つの前記参照データとを比較して、この注目データがいずれかの前記参照データと一致した場合に、前記第２の符号化手段を選択し、前記第２の符号化手段は、前記注目データと前記参照データとが連続して一致する連続一致数を符号化する。
【０００９】
好適には、前記第１の符号化手段は、前記注目データについて、コンテクストを判定するコンテクスト判定手段と、コンテクストに対して一意に符号群を対応付ける対応付けテーブルを用いて、前記コンテクスト判定手段により判定されたコンテクストに対応する符号群を選択する符号群選択手段と、前記符号群選択手段により選択された符号群を用いて、前記注目データの符号を生成する符号生成手段とを有する。
【００１０】
好適には、前記コンテクスト判定手段は、前記選択手段により前記第１の符号化手段が選択された場合にのみ、前記注目データのコンテクストを判定する。
【００１１】
好適には、前記選択手段により選択された符号化手段を識別するための符号識別情報を、前記注目データの符号に付加する識別情報付加手段をさらに有する。
【００１２】
［復号化装置］
また、本発明にかかる復号化装置は、マルコフモデル符号化方式を用いて、復号化対象となる注目符号を符号化する第１の復号化手段と、マルコフモデル符号化方式とは異なる符号化方式を用いて、前記注目符号を復号化する第２の復号化手段と、前記注目符号に付加された符号識別情報に基づいて、前記第１の復号化手段又は第２の復号化手段を、適用すべき復号化手段として選択する復号選択手段とを有する。
【００１３】
好適には、前記第１の復号化手段は、復号化された他のデータに基づいて、前記注目符号のコンテクストを判定するコンテクスト判定手段と、コンテクストに対して一意に符号群を対応付ける対応付けテーブルを用いて、前記コンテクスト判定手段により判定されたコンテクストに対応する符号表を選択する符号表選択手段と、前記符号表選択手段により選択された符号表を用いて、前記注目符号の復号データを生成する復号データ生成手段と  を有する。
【００１４】
［符号化方法］
また、本発明にかかる符号化方法は、符号化対象となる注目データに基づいて、マルコフモデル符号化方式又は他の符号化方式を選択し、選択された符号化方式を用いて、前記注目データを符号化する。
【００１５】
また、本発明にかかる符号化方法は、符号化対象となる注目データと、この注目データに対して既定の位置にある参照データとを比較して、マルコフモデル符号化方式又はランレングス符号化方式を選択し、選択された符号化方式を用いて、前記注目データを符号化する。
【００１６】
［復号化方法］
また、本発明にかかる復号化方法は、復号化対象となる注目符号に付加された符号識別情報に基づいて、マルコフモデル符号化方式又は他の符号化方式を選択し、選択された符号化方式を用いて、前記注目符号を復号化する。
【００１７】
［プログラム］
また、本発明にかかるプログラムは、符号化対象となる注目データに基づいて、マルコフモデル符号化方式又は他の符号化方式を選択するステップと、選択された符号化方式を用いて、前記注目データを符号化するステップとをコンピュータに実行させる。
【００１８】
また、本発明にかかるプログラムは、復号化対象となる注目符号に付加された符号識別情報に基づいて、マルコフモデル符号化方式又は他の符号化方式を選択するステップと、選択された符号化方式を用いて、前記注目符号を復号化するステップとをコンピュータに実行させる。
【発明の効果】
【００１９】
本発明の符号化装置によれば、比較的軽い処理負荷で符号化処理を実現できる。
【発明を実施するための最良の形態】
【００２０】
まず、本発明の理解を助けるために、その背景及び概略を説明する。
近年、デジタルカメラの普及とともにデジタル画像を取り扱う機会が増加し、デジタル画像の高画質化への要求が高まってきている。そのため、画質劣化の全くない画像符号化方法である、可逆符号化方法への要求が大きくなってきている。
このような可逆符号化方法としてマルコフモデル符号化が知られている。
マルコフモデル符号化方式は、符号化対象となる注目データ（例えば、注目画素）について、この注目データの周囲にある参照データ（例えば、注目画素の周囲にある画素の画素値）の状態（すなわち、コンテクスト）を判定し、判定された状態（コンテクスト）に対応する符号化処理を適用する。
【００２１】
以下に、マルコフモデル符号化方式の具体例として、ＪＰＥＧ−ＬＳ方式を説明する。
図１は、ＪＰＥＧ−ＬＳ方式の符号化処理を実現する符号化プログラム９の構成を例示する図である。
図１に例示するように、符号化プログラム９は、マルコフモデル符号化方式をベースとした符号化処理を行うプログラムであり、画像入力部９００、ランレングス生成部９１０、モード選択部９２０、コンテクスト決定部９３０、予測誤差生成部９４０、コンテクスト計数部９５０、符号表生成部９６０、エントロピー符号化部９７０、及び符号出力部９８０を有する。
【００２２】
図２は、符号化プログラム９（図１）による符号化処理（Ｓ９０）のフローチャートである。なお、本例では、画像データが符号化対象である場合を具体例として説明するが、これに限定されるものではなく、符号化対象は、例えば音声データなどであってもよい。
図３は、コンテクストの決定処理を説明する図である。
【００２３】
図２に示すように、ステップ９００（Ｓ９００）において、画像入力部９００（図１）は、符号化対象である画像データの中から、処理対象である注目画素Ｘ（図３）をスキャン順に設定し、注目画素Ｘの画素値をランレングス生成部９１０、予測誤差生成部９４０及びコンテクスト決定部９３０に出力する。
【００２４】
ステップ９１０（Ｓ９１０）において、コンテクスト決定部９３０は、画像入力部９００から入力された注目画素の画素値を既定数まで保持しており、保持されている画素値に基づいて、入力された注目画素Ｘのコンテクストを決定する。
具体的には、コンテクスト決定部９３０は、図３（Ａ）に例示するように、注目画素Ｘに対応する複数の周辺画素Ａ〜Ｄの画素値を読み出し、読み出された周辺画素Ａ〜Ｄの画素値を用いて、図３（Ｂ）に示す第１の差分値Ｄ１，第２の差分値Ｄ２及び第３の差分値Ｄ３を算出する。第１の差分値Ｄ１は、周辺画素Ｄの画素値から周辺画素Ｂの画素値を減算した値であり、第２の差分値Ｄ２は、周辺画素Ｂの画素値から周辺画素Ｃの画素値を減算した値であり、第３の差分値Ｄ３は、周辺画素Ｃの画素値から周辺画素Ａの画素値を減算した値である。
コンテクスト決定部９３０は、算出された第１の差分値Ｄ１，第２の差分値Ｄ２及び第３の差分値Ｄ３をモード選択部９２０に出力する。
【００２５】
ステップ９２０（Ｓ９２０）において、モード選択部９２０は、コンテクスト決定部９３０から入力された第１の差分値Ｄ１，第２の差分値Ｄ２及び第３の差分値Ｄ３に基づいて、平坦部であるか否かを判定する。具体的には、モード選択部９２０は、コンテクスト決定部９３０から入力された第１の差分値Ｄ１，第２の差分値Ｄ２及び第３の差分値Ｄ３が全て０である場合に、平坦部であると判定して、ランレングス生成部９１０に対してランレングス符号化方式を適用するよう指示し、これ以外の場合に、平坦部でないと判定して、予測誤差生成部９４０及びコンテクスト決定部９３０に対して予測符号化方式を適用するよう指示する。
ここで、ランレングス符号化方式とは、注目データ（本例では、注目画素の画素値）と参照データ（本例では、周辺画素の画素値）とが連続して一致する数を符号化する符号化方式であり、参照データは、それぞれの注目データに対して、少なくとも１つ設定される。すなわち、本発明におけるランレングス符号化方式は、注目データと直前の参照データ（本例では周辺画素Ａの画素値）との連続一致数を符号化する方式だけでなく、注目データに対して他の相対位置にある参照データ（例えば、周辺画素Ｂの画素値及び周辺画素Ｃの画素値）との連続一致数を符号化する方式を含む。
また、予測符号化方式とは、注目画素毎に参照データ（本例では、周辺画素の画素値）から、注目データ（本例では、注目画素）の予測値を生成し、生成された予測値と、注目データとの差分を算出し、算出された予測誤差を符号化する方式である。
符号化プログラム９は、モード選択部９２０により平坦部であると判定された場合に、Ｓ９５０の処理に移行し、モード選択部９２０により平坦部でないと判定された場合に、Ｓ９３０の処理に移行する。
【００２６】
ステップ９３０（Ｓ９３０）において、コンテクスト決定部９２０は、モード選択部９２０からの指示に応じて、算出された第１の差分値Ｄ１，第２の差分値Ｄ２及び第３の差分値Ｄ３に基づいて、コンテクスト値Ｑを算出し、算出されたコンテクスト値Ｑをコンテクスト計数部９５０に出力する。
コンテクスト計数部９５０は、コンテクスト決定部９２０から入力されたコンテクスト値Ｑが入力されたことを条件として、入力されたコンテクスト値Ｑを所定の方法により計数する。
予測誤差生成部９４０は、モード選択部９２０からの指示に応じて、注目画素Ｘの予測値を生成し、生成された予測値と、注目画素Ｘの画素値との差分を算出し、算出された差分を予測誤差としてエントロピー符号化部９７０及びコンテクスト計数部９５０に出力する。なお、コンテクスト計数部９５０に入力される予測誤差は、予測誤差生成部９４０により生成される予測値の補正に用いられる。
【００２７】
ステップ９４０（Ｓ９４０）において、符号表生成部９６０は、コンテクスト計数部９５０により計数されたコンテクスト値Ｑなどに基づいて、符号パラメータを決定し、決定された符号パラメータをエントロピー符号化部９７０に出力する。この符号パラメータは、符号群を決定するためのパラメータであり、例えば、ゴロム符号を生成するためのパラメータである。
【００２８】
ステップ９５０（Ｓ９５０）において、ランレングス生成部９１０は、画像入力部９００から入力された画素値を既定数まで保持しており、保持されている画素値を用いて、注目画素Ｘの予測値を生成する。
ランレングス生成部９１０は、注目画素Ｘをスキャン方向に更新しながら、注目画素Ｘの画素値と、この注目画素Ｘの予測値とを比較して、連続一致数を計数していく。
【００２９】
ステップ９６０（Ｓ９６０）において、ランレングス生成部９１０は、注目画素Ｘの画素値と予測値とが一致しなかったときに（すなわち、ランが途切れたときに）、計数された連続一致数が０であるか否かを判定し、連続一致数が０である場合に、Ｓ９３０の処理に移行し、連続一致数が１以上である場合に、計数された連続一致数をエントロピー符号化部９７０に出力して、Ｓ９７０の処理に移行する。
【００３０】
ステップ９７０（Ｓ９７０）において、エントロピー符号化部９７０は、既定の符号表を用いて、ランレングス生成部９１０から入力された連続一致数をエントロピー符号化し、符号を符号出力部９８０に出力する。
【００３１】
ステップ９８０（Ｓ９８０）において、エントロピー符号化部９７０は、予測誤差生成部９４０から入力された予測誤差をエントロピー符号化し、符号を符号出力部９８０に出力する。
より具体的には、エントロピー符号化部９７０は、符号表生成部９６０から入力された符号パラメータを用いて、入力された予測誤差を符号化する。
【００３２】
ステップ９９０（Ｓ９９０）において、符号化プログラム９は、画像データに含まれる全画素を符号化したか否かを判定し、全画素が符号化された場合に、符号化処理（Ｓ９０）を終了し、符号化されていない画素が存在する場合に、スキャン順で次の画素を注目画素Ｘに設定し、Ｓ９１０の処理に戻る。
【００３３】
このように、符号化プログラム９は、図２に示すように、注目画素Ｘの周辺にある周辺画素Ａ〜Ｄから、周辺画素の変化状況を示すコンテクスト（本例では、差分値Ｄ）を決定し（Ｓ９１０）、決定されたコンテクストに応じて、ランレングス符号化処理（Ｓ９５０〜Ｓ９７０）と、マルコフモデル符号化方式をベースとした予測符号化処理（Ｓ９３０及びＳ９４０）とを切り替えている。
【００３４】
また、特許文献１で開示された画像符号化方法では、注目画素の周辺画素と、注目画素の近傍の特定画素との濃度差を算出し、算出された濃度差のいずれかが所定値以下の時、算出された濃度差をマルコフモデル符号化し、算出された濃度差のいずれもが所定値以上の時、注目画素を予測符号化する。
【００３５】
つまり、上記いずれの符号化方法も、注目画素とは異なる他の画素群を参照して、他の画素群の画素値の変化度合いを評価し、この評価結果（具体的には、画素値の差分）に応じて、符号化方式を切り替えている。このように、他の画素群について、画素値の変化度合いを評価して符号化方式を切り替えるのは、マルコフモデル符号化をベースとして符号化処理を設計しているからである。
【００３６】
一方、本実施形態の符号化プログラム５（後述）は、予測符号化方式をベースとした符号化処理を行う。すなわち、符号化プログラム５は、注目画素Ｘの画素値に基づいて、符号化方式を切り替える。より具体的には、符号化プログラム５は、注目画素Ｘと周辺画素とを比較して、比較結果に応じて、ランレングス符号化方式又はマルコフモデル符号化方式を適用する。
特に、本例の符号化プログラム５は、複数の予測部を用いたランレングス符号化方式を適用し、かつ、これらの予測部に対応する周辺画素と、注目画素とを比較して、ランレングス符号化方式又はマルコフモデル符号化方式を選択するため、ランレングス符号化方式が選択される可能性がより高くなる。
また、注目画素と周辺画素とが一致するか否かを判定する処理は、３つの差分値Ｄを算出し、算出された３つ差分値Ｄがすべて０であるか否かを判定する処理よりも簡単であり、処理負荷が小さい。
【００３７】
［第１の実施形態］
まず、第１の実施形態における符号化プログラム５及びこの符号化プログラム５の動作を説明する。
【００３８】
［符号化プログラム］
図４は、第１の実施形態における符号化プログラム５の構成を例示する図である。
図４に例示するように、第１の符号化プログラム５は、画像入力部５００、ランレングス生成部５１０、選択部５２０、コンテクスト決定部５３０、予測誤差生成部５４０、コンテクスト計数部５５０、符号表生成部５６０、エントロピー符号化部５７０、符号出力部５８０及び識別情報付与部５９０を有する。
符号化プログラム５は、画像処理装置２にインストールされて、符号化処理を実現する。
なお、コンテクスト決定部５３０、予測誤差生成部５４０、コンテクスト計数部５５０及び符号表生成部５６０（以下、これらをまとめてマルコフモデル符号化部という）は、マルコフモデル符号化処理の要部を実現し、ランレングス生成部５１０は、ランレングス符号化方式の符号化処理の要部を実現する。なお、マルコフモデル符号化部及びエントロピー符号化部５７０の組は、本発明にかかる第１の符号化手段の一例であり、ランレングス生成部５１０及びエントロピー符号化部５７０の組は、本発明にかかる第２の符号化手段の一例である。
【００３９】
符号化プログラム５において、画像入力部５００は、符号化対象となる画像データを取得し、取得された画像データのうち、処理対象となる部分データを順に、ランレングス生成部５１０、コンテクスト決定部５３０及び予測誤差生成部５４０に出力する。
本例の画像入力部５００は、画像を構成する画素毎に、画素値をコンテクスト決定部５２２、予測誤差算出部５４２及び予測部５４４に出力する。
【００４０】
ランレングス生成部５１０は、注目画素の画素値と、この注目画素に対して既定位置にある周辺画素の画素値とを比較して、これらの画素値が連続して一致する数（すなわち、連続一致数）を算出し、算出された連続一致数をエントロピー符号化部５７０に出力する。
本例のランレングス生成部５１０は、注目画素の画素値と、複数の周辺画素の画素値とを比較して、複数の周辺画素について連続一致数を算出し、算出された連続一致数に基づいて、最適な連続一致数（以下、最適連続一致数）を決定し、決定された最適連続一致数と、この最適連続一致数に対応する周辺画素を識別する識別情報（以下、予測部ＩＤ）とをエントロピー符号化部５７０に出力する。なお、本例の最適連続一致数及びこれに対応する識別情報は、本発明にかかる一致情報の一例である。
【００４１】
また、ランレングス生成部５１０は、注目画素の画素値と、この注目画素に対して既定位置にある周辺画素の画素値との比較結果を選択部５２０に出力する。
本例のランレングス生成部５１０は、いずれかの周辺画素の画素値が注目画素の画素値と一致したか否かを選択部５２０に出力する。
【００４２】
選択部５２０（選択手段）は、ランレングス生成部５１０による比較結果に基づいて、ランレングス符号化方式又はマルコフモデル符号化方式を選択する。より具体的には、選択部５２０は、注目画素の画素値と周辺画素の画素値とが一致した場合に、ランレングス生成部５１０により生成されたラン数を符号化するように符号化プログラム５の他の構成を制御し、注目画素の画素値と周辺画素の画素値とがいずれも一致しない場合に、マルコフモデル符号化部による符号化処理を行うように符号化プログラム５の他の構成を制御する。すなわち、選択部５２０は、注目画素の画素値と周辺画素の画素値とがいずれも一致しないことを条件として、コンテクストの決定処理、予測誤差の生成処理及び符号パラメータの決定処理等を行うようにマルコフモデル符号化部に指示する。
また、選択部５２０は、いずれの符号化方式を選択したかを識別情報付与部５９０に通知する。本例の選択部５２０は、注目画素の画素値と周辺画素の画素値のいずれかとが一致した旨（すなわち、予測が的中した旨）、又は、注目画素の画素値と周辺画素の画素値とがいずれも一致しなかった旨（すなわち、予測がはずれた旨）を識別情報付与部５９０に出力する。
【００４３】
コンテクスト決定部５３０（コンテクスト判定手段）は、それぞれの注目画素について、注目画素の周囲にある周囲画素の画素値に基づいて、画素値の変化状況を示すコンテクスト値を算出し、算出された各注目画素のコンテクスト値をコンテクスト計数部５５０に出力する。
【００４４】
予測誤差生成部５４０は、画像入力部５００から入力された画像データと、この画像データの予測値との差分を算出し、算出された差分を予測誤差としてエントロピー符号化部５７０に出力する。
本例の予測誤差生成部５４０は、注目画素に対して既定の位置にある周辺画素の画素値を用いて、仮の予測値を算出し、算出された予測値を、コンテクスト計数部５５０から入力された予測誤差の計数値に基づいて補正し、補正された予測値と、注目画素の画素値との差分を予測誤差としてエントロピー符号化部５７０に出力する。
【００４５】
コンテクスト計数部５５０は、コンテクスト決定部５３０から入力されたコンテクスト値と、予測誤差生成部５４０から入力された予測誤差値とを計数して、計数結果を符号表生成部５６０及び予測誤差生成部５４０に出力する。
【００４６】
符号表生成部５６０（符号群選択手段）は、コンテクスト計数部５５０から入力された計数結果に基づいて、符号表を生成し、生成された符号表をエントロピー符号化部５７０に出力する。符号表とは、データ値（モデリングされた入力データ）と、それぞれのデータ値に割り振られたビット列（すなわち、符号）とを対応付けるものであり、例えば、テーブルであってもよいし、データ値に対応する符号を算出するためのパラメータ（以下、符号パラメータ）であってもよい。
本例の符号表生成部５６０は、コンテクスト値の計数結果と、予測誤差の計数結果とに基づいて、ゴロム符号を生成するための符号パラメータを決定する。
【００４７】
エントロピー符号化部５７０は、ランレングス生成部５１０から入力されたデータ値（ラン数など）、又は、予測誤差生成部５４０から入力された予測誤差値を、エントロピー符号化する。
より具体的には、エントロピー符号化部５７０は、ランレングス生成部５１０からデータ値が入力された場合には、既定の符号表を用いて、入力されたデータ値を符号に変換する。また、エントロピー符号化部５７０は、予測誤差生成部５４０から予測誤差が入力された場合には、入力された予測誤差を、符号表生成部５６０により生成された符号表（本例では、符号パラメータ）を用いて、符号に変換する。
本例のエントロピー符号化部５７０は、ランレングス生成部５１０から入力されたデータ値に基づいて、ハフマン符号を生成し、予測誤差生成部５４０から入力された予測誤差と、符号表生成部５６０から入力された符号パラメータとに基づいて、ゴロム符号を生成する。
また、エントロピー符号化部５７０は、識別情報付与部５９０から入力された符号識別情報を符号化し、符号化された符号識別情報を、ランレングス生成部５１０から入力されたデータ値の符号、又は、予測誤差生成部５４０から入力された予測誤差の符号に対応付けて符号出力部５８０に出力する。
【００４８】
符号出力部５８０は、エントロピー符号化部５７０により生成された符号を外部に出力する。
例えば、符号出力部５８０は、エントロピー符号化部５７０から入力された各画素の符号をまとめて符号データとし、この符号データを通信装置２２（後述）、記録装置２４（後述）又はプリンタ装置３（後述）に出力する。
【００４９】
識別情報付与部５９０（識別情報付加手段）は、選択部５２０による選択結果に応じて、適用された符号化方式を識別するための符号識別情報を、符号に付与する。
本例の識別情報付与部５９０は、注目画素の画素値と予測値（周辺画素の画素値）とが一致したか否かを示す情報を、符号識別情報として生成し、生成された符号識別情報をエントロピー符号化部５７０に出力する。
【００５０】
図５（Ａ）は、ランレングス生成部５１０をより詳細に説明する図であり、図５（Ｂ）は、予測誤差生成部５４０をより詳細に説明する図である。
図５（Ａ）に例示するように、ランレングス生成部５１０は、複数の予測部５１２（すなわち、第１予測部〜第４予測部）、ラン計数部５１４及び最長ラン選択部５１６を含む。
ランレングス生成部５１０において、複数の予測部５１２は、互いに異なる予測方法で、注目画素の予測値を生成し、生成された予測値と、注目画素の画素値とが一致したか否か（すなわち、予測が的中したか否か）を予測結果としてラン計数部５１４に出力する。
本例の複数の予測部５１２は、図３（Ａ）に例示する各周辺画素Ａ〜Ｄの画素値を予測値とする。すなわち、第１予測部５１２Ａは、周辺画素Ａの画素値を予測値とし、第２予測部５１２Ｂは、周辺画素Ｂの画素値を予測値とし、第３予測部５１２Ｃは、周辺画素Ｃの画素値を予測値とし、第４予測部５１２Ｄは、周辺画素Ｄの画素値を予測値とする。図３（Ａ）に例示するように、周辺画素Ａ〜Ｄは、注目画素Ｘを基準として設定されている。具体的には、第１の周辺画素Ａは、注目画素Ｘの主走査方向上流側に隣接する画素であり、第２の周辺画素Ｂは、注目画素Ｘの副走査方向上流側に隣接する画素である。また、第３の周辺画素Ｃは、第２の周辺画素Ｂの主走査方向上流側に隣接する画素であり、第４の周辺画素Ｄは、第２の周辺画素Ｂの主走査方向下流側に隣接する画素である。
このように、本例の予測部５１２は、注目画素Ｘに隣接する画素の画素値を予測値とすることにより、特に、コンピュータグラフィック画像（以下、ＣＧ画像）において、高い的中率を実現できる。したがって、ランレングス符号化処理により高い圧縮率が期待できる。
【００５１】
ラン計数部５１４は、各予測部５１２から入力される予測結果に基づいて、それぞれの予測部について、連続一致数（ラン数）を計数する。
また、ラン計数部５１４は、全ての予測部５１２から予測がはずれた旨（すなわち、注目画素の画素値と予測値とが一致しなかった旨）が入力された場合に、全ての予測部で予測がはずれた旨を選択部５２０に出力し、これまでにカウントしてきた各予測部の連続一致数を最長ラン選択部５１６に出力する。
【００５２】
最長ラン選択部５１６は、ラン計数部５１４から各予測部の連続一致数が入力されると、各予測部の連続一致数に基づいて、ランレングス符号化処理において最適となる連続一致数の組合せを選択し、選択された連続一致数の組合せを最適連続一致数としてエントロピー符号化部５７０に出力する。
本例では、連続一致数が長いほど圧縮率が高くなるように設計されているため、最長ラン選択部５１６は、各予測部の連続一致数に基づいて、最大の連続一致数（すなわち、最長ラン）を選択し、選択された最長ランとこれに対応する予測部ＩＤとをエントロピー符号化部５７０に出力する。
【００５３】
図５（Ｂ）に例示するように、予測誤差生成部５４０は、予測誤差算出部５４２、予測部５４４及び予測補正部５４６を含む。
予測誤差生成部５４０において、予測誤差算出部５４２は、画像入力部５００から入力された注目画素の画素値と、予測部５４４から入力された予測値（補正された予測値）との差分を算出し、算出された差分を予測誤差としてエントロピー符号化部５７０及びコンテクスト計数部５５０に出力する。
予測部５４４は、画像入力部５００から入力された画素値を保持し、注目画素の周囲にある周辺画素の画素値を用いて、注目画素の予測値を算出し、予測補正部５４６から入力された補正値に応じて、算出された予測値を補正し、補正された予測値を予測誤差算出部５４２に出力する。
なお、予測誤差生成部５４０における予測部５４４の予測方法は、ランレングス生成部５１０における予測部５１２の予測方法と同一であってもよいし、異なるものであってもよい。
予測補正部５４６は、コンテクスト計数部５２４から入力された予測誤差の計数結果に基づいて、補正値を決定し、決定された補正値を予測部５４４に出力する。
【００５４】
［符号化処理］
図６は、符号化プログラム５によりなされる第１の符号化処理（Ｓ１０）のフローチャートである。
図６に示すように、ステップ１００（Ｓ１００）において、画像入力部５００は、外部から、符号化対象となる画像データを取得し、取得された画像データの中から、スキャン順に注目画素Ｘを設定して、注目画素Ｘの画素値をランレングス生成部５１０、コンテクスト決定部５３０及び予測誤差生成部５４０に出力する。
【００５５】
ステップ１０５（Ｓ１０５）において、ランレングス生成部５１０は、画像入力部５００から入力された画素値を既定数まで保持しており、保持されている画素値を用いて、注目画素Ｘの予測値を生成する。
ランレングス生成部５１０は、注目画素Ｘをスキャン方向に更新しながら、注目画素Ｘの画素値と、この注目画素Ｘの予測値とを比較して、連続一致数を計数していく。
ランレングス生成部５１０は、注目画素Ｘの画素値と予測値とが一致しなかったときに（すなわち、ランが途切れたときに）、計数された連続一致数を選択部５２０及びエントロピー符号化部５７０に出力する。
【００５６】
ステップ１１０（Ｓ１１０）において、選択部５２０は、ランレングス生成部５１０から入力された連続一致数が０であるか否かを判定し、連続一致数が０である場合に、予測誤差を符号化するよう他の構成に指示してＳ１１５の処理に移行し、連続一致数が１以上である場合に、連続一致数を符号化した後で、予測誤差を符号化するよう他の構成に指示してＳ１６０の処理に移行する。
すなわち、選択部５２０は、注目画素Ｘの画素値と、周辺画素Ａ〜Ｄのいずれかの画素値とが一致する場合（すなわち、予測が的中した場合）に、ランレングス符号化処理を行うように制御し、注目画素Ｘの画素値と、周辺画素Ａ〜Ｄの画素値とがいずれも一致しない場合（すなわち、予測がはずれた場合）に、マルコフモデル符号化処理を行うように制御する。
【００５７】
ステップ１１５（Ｓ１１５）において、コンテクスト決定部５３０は、選択部５２０からの指示に応じて、注目画素Ｘに対応する周辺画素Ａ〜Ｄの状態（すなわち、コンテクスト）を決定し、決定されたコンテクストをコンテクスト計数部５５０に出力する。
【００５８】
ステップ１２０（Ｓ１２０）において、予測誤差生成部５４０は、周辺画素Ａ〜Ｄのいずれかの画素値に基づいて、注目画素Ｘの予測値を算出し、算出された予測値を、予測誤差の計数値に応じて補正して、補正された予測値に基づいて、予測誤差を算出する。
予測誤差生成部５４０は、算出された予測誤差をコンテクスト計数部５５０及びエントロピー符号化部５７０に出力する。
【００５９】
ステップ１４０（Ｓ１４０）において、コンテクスト計数部５５０は、コンテクスト決定部５３０から入力されたコンテクストを所定の方法で計数し、予測誤差生成部５４０から入力された予測誤差を所定の方法で計数する。予測誤差の計数値は、予測誤差生成部５４０及び符号表生成部５６０に入力され、コンテクストの計数値は、符号表生成部５６０に入力される。
符号表生成部５６０は、コンテクストの計数値及び予測誤差の計数値に基づいて、符号表を作成し、作成された符号表をエントロピー符号化部５７０に出力する。より具体的には、符号表生成部５６０は、コンテクストの計数値及び予測誤差の計数値に基づいて、ゴロム符号を生成するための符号パラメータを算出し、算出された符号パラメータをエントロピー符号化部５７０に出力する。
【００６０】
ステップ１６０（Ｓ１６０）において、エントロピー符号化部５７０は、ランレングス生成部５１０から入力された連続一致数（ラン数）を、ハフマン符号に変換する。
ステップ１６５（Ｓ１６５）において、識別情報付与部５９０は、ランレングス符号化方式の符号識別情報を生成し、生成された符号識別情報をエントロピー符号化部５７０に出力する。
なお、本例では、図９（Ａ）に例示するように、ランレングス生成部５１０から出力される予測部ＩＤ（識別子Ａ〜識別子Ｄ）をランレングス符号化方式の符号識別情報として用いるため、識別情報付与部５９０は、連続一致数に対応する予測部ＩＤをエントロピー符号化部５７０に出力する。
符号出力部５８０は、エントロピー符号化部５７０から入力された連続一致数の符号を、符号識別情報の符号（本例では、予測部ＩＤ）に対応付けて外部（例えば、記憶装置等）に出力する。すなわち、図９（Ｂ）に例示するように、ラン数の符号（図中の「ラン数」）には、予測部に対応する識別子Ａ〜Ｄのいずれかが関連付けられる。
【００６１】
ステップ１７０（Ｓ１７０）において、エントロピー符号化部５７０は、予測誤差生成部５４０から入力された予測誤差をゴロム符号に変換し、これらの符号を符号出力部５８０に出力する。
なお、エントロピー符号化部５７０は、予測誤差生成部５４０から入力された予測誤差を符号化する場合には、符号表生成部５６０から入力された符号パラメータを用いて、入力された予測誤差に対応するゴロム符号を生成する。
【００６２】
ステップ１７５（Ｓ１７５）において、識別情報付与部５９０は、選択部５２０により選択された符号化方式（すなわち、マルコフモデル符号化方式）を識別する符号識別情報を生成し、生成された符号識別情報をエントロピー符号化部５７０に出力する。
なお、本例の識別情報付与部５９０は、予測はずれである旨を示す情報（図９に例示した識別子Ｘ）をマルコフモデル符号化方式の符号識別情報として生成し、生成された符号識別情報をエントロピー符号化部５７０に出力する。エントロピー符号化部５７０に入力された符号識別情報は、エントロピー符号化される。
符号出力部５８０は、エントロピー符号化部５７０から入力された予測誤差の符号を、符号識別情報（識別子Ｘ）の符号に対応付けて外部（例えば、記憶装置等）に出力する。すなわち、図９（Ｂ）に例示するように、予測誤差の符号（図中の「予測誤差」）には、マルコフモデル符号化方式に対応する識別子Ｘが関連付けられる。
【００６３】
ステップ１８０（Ｓ１８０）において、符号化プログラム５は、符号化対象の画像データ全体を符号化したか否かを判定し、全体を符号化した場合に、符号化処理（Ｓ１０）を終了し、符号化していない画素が存在する場合に、スキャン順に次の画素を注目画素Ｘとし、Ｓ１０５の処理に戻る。
【００６４】
次に、図６に示した予測誤差生成処理（Ｓ１２０）を説明する。
図７は、図６で説明した予測誤差生成処理（Ｓ１２０）をより詳細に説明するフローチャートである。
図７に示すように、ステップ１２２（Ｓ１２２）において、コンテクスト計数部５５０は、予測誤差算出部５４０からこれまでに入力された予測誤差を計数し、予測誤差の計数値を予測補正部５４６（図５（Ｂ））に出力する。
予測補正部５４６は、コンテクスト計数部５４０から入力された予測誤差の計数値に基づいて、予測値の補正値を決定し、決定された予測値の補正値を予測部５４４に出力する。
【００６５】
ステップ１２４（Ｓ１２４）において、予測部５４４（図５（Ｂ））は、注目画素Ｘに対応する複数の周辺画素Ａ〜Ｄの画素値を読み出す。
ステップ１２６（Ｓ１２６）において、予測部５４４は、読み出された周辺画素Ａ、Ｂ及びＣの画素値を比較して、周辺画素Ｃの画素値が周辺画素Ａ以上であり、かつ、周辺画素Ｂ以上である場合に、Ｓ１２８の処理に移行し、周辺画素Ｃの画素値が周辺画素Ａ又は周辺画素Ｂのいずれかよりも小さい場合に、Ｓ１３０の処理に移行する。
【００６６】
ステップ１２８（Ｓ１２８）において、予測部５４４は、周辺画素Ａの画素値と、周辺画素Ｂの画素値とを比較して、より小さい方の画素値を仮の予測値とする。
次に、予測部５４４は、この仮の予測値に対して、予測補正部５４６から入力された補正値を加算して、真の予測値を算出し、算出された真の予測値を予測誤差算出部５４２に出力する。
【００６７】
ステップ１３０（Ｓ１３０）において、予測部５４４は、予測部５４４は、読み出された周辺画素Ａ、Ｂ及びＣの画素値を比較して、周辺画素Ｃの画素値が周辺画素Ａ以下であり、かつ、周辺画素Ｂ以下である場合に、Ｓ１３２の処理に移行し、周辺画素Ｃの画素値が周辺画素Ａ又は周辺画素Ｂのいずれかよりも大きい場合に、Ｓ１３４の処理に移行する。
【００６８】
ステップ１３２（Ｓ１３２）において、予測部５４４は、周辺画素Ａの画素値と、周辺画素Ｂの画素値とを比較して、より大きい方の画素値を仮の予測値とし、この仮の予測値に、予測補正部５４６から入力された補正値を加算して、真の予測値を算出し、算出された真の予測値を予測誤差算出部５４２に出力する。
【００６９】
ステップ１３４（Ｓ１３４）において、予測部５４４は、周辺画素Ａの画素値と、周辺画素Ｂの画素値とを合算し、この合算値から周辺画素Ｃの画素値を減算して、仮の予測値を算出する。
次に、予測部５４４は、算出された仮の予測値に、予測補正部５４６から入力された補正値を加算して、真の予測値を算出し、算出された真の予測値を予測誤差算出部５４２に出力する。
【００７０】
ステップ１３６（Ｓ１３６）において、予測誤差算出部５４２は、予測部５４４から入力された予測値（補正後の予測値）と、注目画素Ｘの画素値の差分を算出し、算出された差分を予測誤差としてエントロピー符号化部５７０及びコンテクスト計数部５５０に出力する。
【００７１】
次に、図６に示した符号パラメータ生成処理（Ｓ１４０）を説明する。
図８は、図６で説明した符号パラメータ生成処理（Ｓ１４０）をより詳細に説明するフローチャートである。
図８に示すように、ステップ１４４（Ｓ１４４）において、コンテクスト決定部５３０は、Ｓ１１５（図６）で算出された差分値Ｄ１、差分値Ｄ２、及び、差分値Ｄ３を、９つの数値区間のいずれに属するか否かを判定し、判定された数値区間に対応する部分コンテクスト値Ｑｎを算出する。本例の部分コンテクスト値Ｑｎは、９つの数値区間それぞれに対応しており、−４から＋４までの９つの整数である。
コンテクスト決定部５３０は、差分値Ｄ１、差分値Ｄ２、及び、差分値Ｄ３について、部分コンテクスト値Ｑ１、Ｑ２、及び、Ｑ３を算出する。
【００７２】
ステップ１４６（Ｓ１４６）において、コンテクスト決定部５３０は、算出された部分コンテクスト値Ｑ１、Ｑ２、及び、Ｑ３を用いて、注目画素Ｘのコンテクスト値Ｑを算出する。具体的には、以下の式により算出される。
Ｑ＝Ｑ１×８１＋Ｑ２×９＋Ｑ３
コンテクスト決定部５３０は、算出されたコンテクスト値Ｑをコンテクスト計数部５５０に出力する。
【００７３】
ステップ１４８（Ｓ１４８）において、コンテクスト計数部５５０は、コンテクスト決定部５３０から入力されたコンテクスト値Ｑが０より大きいか否かを判定し、コンテクスト値Ｑが０より大きい場合に、Ｓ１５２の処理に移行し、コンテクスト値Ｑが０以下である場合に、Ｓ１５０の処理に移行する。
ステップ１５０（Ｓ１５０）において、コンテクスト計数部５５０は、コンテクスト値Ｑに対して、（−１）を乗算する。すなわち、コンテクスト計数部５５０は、負のコンテクスト値Ｑの絶対値を算出し、算出された絶対値をコンテクスト値Ｑとする。
【００７４】
ステップ１５２（Ｓ１５２）において、コンテクスト計数部５５０は、この注目画素Ｘについて算出されたコンテクスト値Ｑを１つのコンテクストとして、このコンテクスト値Ｑの出現回数を既定の方法で計数する。
また、コンテクスト計数部５５０は、予測誤差生成部５４０から入力された予測誤差を計数し、予測誤差の計数値と、コンテクスト値の計数値とを符号表生成部５６０に出力する。
【００７５】
ステップ１５４（Ｓ１５４）において、符号表生成部５６０は、コンテクスト計数部５５０から入力された予測誤差の計数値及びコンテクスト値の計数値に基づいて、符号表を動的に生成する。
具体的には、符号表生成部５６０は、予測誤差の計数値及びコンテクスト値の計数値に基づいて、ゴロム符号を生成するための符号パラメータを算出し、算出された符号パラメータをエントロピー符号化部５７０に出力する。
【００７６】
このように、第１の符号化プログラム５は、注目画素Ｘの画素値と、周辺画素Ａ〜Ｄの画素値とを比較して、いずれかの周辺画素で画素値が一致する場合に、ランレングス符号化処理を行い、いずれの周辺画素でも画素値が一致しない場合に、マルコフモデル符号化処理を行う。
すなわち、第１の符号化プログラム５は、いずれの周辺画素でも画素値が一致しない場合にのみ、注目画素毎にコンテクスト値及び予測誤差を算出し、算出されたコンテクスト値及び予測誤差をそれぞれ既定の方法で計数し、コンテクスト値の計数値及び予測誤差の計数値に対応する符号を動的に生成するため、全体の符号化処理を高速に行うことができる。
【００７７】
次に、第１の実施形態における復号化プログラム及びこの復号化プログラムの動作を説明する。
【００７８】
［復号化プログラム］
図１０は、第１の実施形態における復号化プログラム６の構成を例示する図である。なお、本図に示された各構成のうち、図４に示された構成と実質的に同一であるものには、同一の符号が付されている。
図１０に例示するように、第１の復号化プログラム６は、符号入力部６００、識別情報復号部６１０、復号方式選択部６２０、エントロピー復号部６３０、マルコフモデル復号化部６４０、ランレングス復号化部６５０及び画像出力部６６０を有する。
また、マルコフモデル復号化部６４０は、図４を参照して説明したコンテクスト決定部５３０及びコンテクスト計数部５５０、並びに、図５（Ｂ）を参照して説明した予測部５４４及び予測補正部５４６に加えて、予測誤差加算部６４２及び符号表生成部６４４を含む。
また、ランレングス復号化部６５０は、予測値選択部６５２及び複製部６５４を含む。
なお、本例のエントロピー復号部６３０及びマルコフモデル復号化部６４０は、本発明にかかる第１の復号化手段の一例であり、エントロピー復号部６３０及びランレングス復号化部６５０は、本発明にかかる第２の復号化手段の一例である。
【００７９】
復号化プログラム６において、符号入力部６００は、復号化対象となる符号データを取得し、取得された符号データのうち、処理対象となる部分符号（以下、単に符号という）を順に、識別情報復号部６１０及びエントロピー復号部６３０に出力する。より具体的には、符号入力部６００は、部分符号（符号）のうち、符号識別情報の符号を識別情報復号部６１０に出力し、ラン数又は予測誤差の符号をエントロピー復号部６３０に出力する。
【００８０】
識別情報復号部６１０は、符号入力部６００から入力された符号識別情報の符号を復号化し、復号化された符号識別情報を復号方式選択部６２０に出力する。
【００８１】
復号方式選択部６２０（復号選択手段）は、符号データに付加された符号識別情報に基づいて、適用すべき復号化方式を選択する。具体的には、復号方式選択部６２０は、識別情報復号部６１０から入力された符号識別情報（識別子Ａ〜Ｄ又は識別子Ｘ）に応じて、符号表の生成方法を決定し、決定された生成方法をエントロピー復号部６３０に通知する。
本例の復号方式選択部６２０は、識別情報復号部６１０から識別子Ａ〜Ｄが入力された場合に、ハフマン符号の符号表を用いるようにエントロピー復号部６３０に指示し、識別情報復号部６１０から識別子Ｘが入力された場合に、ゴロム符号の符号表（具体的には、復号パラメータ）を用いるようにエントロピー復号部６３０に指示する。
なお、入力された識別子Ａ〜Ｄは、エントロピー復号部６３０を介して、ランレングス復号化部６５０に入力される。
【００８２】
エントロピー復号部６３０は、復号方式選択部６２０から指示された符号表を用いて、符号入力部６００から入力された符号をエントロピー復号化する。すなわち、エントロピー復号部６３０は、ハフマン符号の符号表を用いるようにエントロピー復号部６３０から指示された場合に、ハフマン符号の符号表を用いて復号化処理を行い、ゴロム符号の符号表を用いるようにエントロピー復号部６３０から指示された場合に、符号表生成部６４４から入力された復号パラメータを用いて復号化処理を行う。この復号パラメータは、ゴロム符号を復号化するためのパラメータである。
復号化されたデータは、ラン数又は予測誤差となる。
【００８３】
エントロピー復号部６３０は、復号方式選択部６２０により選択された復号化方式に応じて、復号化されたデータをマルコフモデル復号化部６４０又はランレングス復号化部６５０に出力する。すなわち、エントロピー復号部６３０は、復号方式選択部６２０が識別子Ａ〜Ｄのいずれかを受け取った場合に、復号化されたデータ値（すなわち、ラン数）を識別子と共にランレングス復号化部６５０に出力し、復号方式選択部６２０が識別子Ｘを受け取った場合に、復号化されたデータ値（すなわち、予測誤差）をマルコフモデル復号化部６４０に出力する。
【００８４】
マルコフモデル復号化部６４０は、エントロピー復号部６３０から入力された注目画素の予測誤差と、この注目画素のコンテクストとに基づいて、復号データ（注目画素の画素値）を生成し、生成された復号データを画像出力部６６０に出力する。
また、マルコフモデル復号化部６４０は、生成された復号データに基づいて、コンテクストを判定し、判定されたコンテクストに基づいて、符号に対応する復号値を決定するための復号パラメータ（すなわち、符号表）と、予測値を補正するための補正パラメータとを算出し、算出された復号パラメータをエントロピー復号部６３０に出力する。
【００８５】
より具体的には、予測誤差加算部６４２は、エントロピー復号部６３０から入力された予測誤差と、予測部５４４から入力された予測値とを合算し、この合算値を注目画素Ｘの画素値として画像出力部６６０、コンテクスト決定部５３０及び予測部５４４に出力する。
コンテクスト決定部５３０は、予測誤差加算部６４２から入力された復号データ（すなわち、画素値）を用いて、画素値の変化状況を示すコンテクスト値を算出し、算出されたコンテクスト値をコンテクスト計数部５５０に出力する。
コンテクスト計数部５５０は、コンテクスト決定部５３０から入力されたコンテクスト値と、エントロピー復号部６３０から入力された予測誤差とを計数して、計数結果を符号表生成部６４４及び予測補正部５４６に出力する。
符号表生成部６４４は、コンテクスト計数部５５０から入力された計数結果に基づいて、符号表（本例では、復号パラメータ）を生成し、生成された符号表（復号パラメータ）をエントロピー復号部６３０に出力する。
【００８６】
マルコフモデル復号化部６４０の予測部５４４は、予測誤差加算部６４２から入力された画素値を保持し、保持された画素値の中から、注目画素Ｘの周囲にある周辺画素の画素値を選択し、選択された周辺画素の画素値を用いて、注目画素Ｘの予測値を算出し、予測補正部５４６から入力された補正値に応じて、算出された予測値を補正し、補正された予測値を予測誤差加算部６４２に出力する。すなわち、予測部５４４は、予測誤差加算部６４２により順次復号化される画素値を既定数まで保持して、保持されている他の画素値（周辺画素の画素値）を用いて、注目画素の予測値を生成する。
マルコフモデル復号化部６４０の予測補正部５４６は、コンテクスト計数部５５０から入力された予測誤差の計数結果に基づいて、補正値を決定し、決定された補正値を予測部５４４に出力する。
【００８７】
ランレングス復号化部６５０は、エントロピー復号部６３０から入力された識別子及びラン数に基づいて、復号データ（すなわち、注目画素の画素値）を生成する。
より具体的には、予測値選択部６５２は、既に復号化された画素値を既定数まで保持し、保持されている画素値の中から、エントロピー復号部６３０から入力された識別子に対応する周辺画素の画素値を読み出し、読み出された画素値と、入力されたラン数とを複製部６５４に出力する。
複製部６５４は、予測値選択部６５２から入力された画素値を、予測値選択部６５２から入力されたラン数だけ複製し、複製された画素値をそれぞれ注目画素の画素値として順に画像出力部６６０に出力する。
【００８８】
画像出力部６６０は、マルコフモデル復号化部６４０又はランレングス復号化部６５０から入力された復号データ（すなわち、注目画素の画素値）を順に外部に出力する。
【００８９】
［復号化処理］
図１１は、復号化プログラム６によりなされる第１の復号化処理（Ｓ２０）のフローチャートである。
図１１に示すように、ステップ２００（Ｓ２００）において、符号入力部６００は、外部から、復号化対象となる符号データを取得し、取得された符号データのうち、符号識別情報の符号を識別情報復号部６１０に出力し、ラン数又は予測誤差の符号をエントロピー復号部６３０に出力する。
【００９０】
ステップ２０５（Ｓ２０５）において、識別情報復号部６１０は、符号入力部６００から入力された符号識別情報の符号を復号化し、復号化された符号識別情報（識別子）を符号方式選択部６２０に出力する。
【００９１】
ステップ２１０（Ｓ２１０）において、復号方式選択部６２０は、識別情報復号部６１０から入力された符号識別情報が識別子Ａ〜Ｄのいずれかである場合（すなわち、ランレングス符号化方式の識別情報である場合）に、復号化プログラム６の他の構成に対して、ランレングス符号化方式で復号化処理を行うよう指示し、識別情報復号部６１０から入力された符号識別情報が識別子Ｘである場合（すなわち、マルコフモデル符号化方式の識別情報である場合）に、復号化プログラム６の他の構成に対して、マルコフモデル符号化方式で復号化処理を行うよう指示する。
復号化プログラム６は、識別情報復号部６１０から入力された符号識別情報が識別子Ａ〜Ｄのいずれかである場合に、Ｓ２４０の処理に移行し、識別情報復号部６１０から入力された符号識別情報が識別子Ｘである場合に、Ｓ２１５の処理に移行する。
【００９２】
ステップ２１５（Ｓ２１５）において、マルコフモデル復号化部６４０は、既に復号化された画素の画素値を参照して、注目画素Ｘに対応する周辺画素Ａ〜Ｄの状態（すなわち、コンテクスト）を決定する。
ステップ２２０（Ｓ２２０）において、マルコフモデル復号化部６４０は、決定されたコンテクストを既定の方法で計数し、さらに、エントロピー復号化部６３０からいままでに入力された予測誤差を既定の方法で計数し、これらの計数値に基づいて、符号表（すなわち、復号パラメータ）を作成し、作成された符号表（復号パラメータ）をエントロピー復号部６３０に出力する。
【００９３】
ステップ２２５（Ｓ２２５）において、エントロピー復号部６３０は、符号表生成部６４４から入力された符号表（すなわち、復号パラメータ）を用いて、符号入力部６００から入力された予測誤差の符号をエントロピー復号化し、復号化されたデータ値（すなわち、予測誤差）をマルコフモデル復号化部６４０（具体的には、予測誤差加算部６４２及びコンテクスト計数部５５０）に出力する。
【００９４】
ステップ２３０（Ｓ２３０）において、マルコフモデル復号化部６４０（予測補正部５４６）は、予測誤差の計数値（コンテクスト計数部５２４により計数された予測誤差）に基づいて、補正値を決定する。
次に、マルコフモデル復号化部６４０（予測部５４４）は、これまでに復号化された画素値の中から、注目画素Ｘに対応する周辺画素Ａ〜Ｄを読み出し、読み出された周辺画素の画素値に基づいて、注目画素Ｘの予測値を算出し、算出された予測値を、決定された補正値に応じて補正する。
【００９５】
ステップ２３５（Ｓ２３５）において、マルコフモデル復号化部６４０（予測誤差加算部６４２）は、注目画素Ｘの予測値（補正されたもの）と、エントロピー復号部６３０から入力された注目画素Ｘの予測誤差とを合算して、この合算値を注目画素Ｘの画素値として画像出力部６６０に出力する。
画像出力部６６０は、マルコフモデル復号化部６４０から入力された注目画素Ｘの画素値を外部（例えば、記憶装置等）に出力する。
【００９６】
ステップ２４０（Ｓ２４０）において、エントロピー復号部６３０は、復号方式選択部６２０の指示に応じて、ラン数の符号を復号化し、復号化されたラン数と、識別子とをランレングス復号化部６５０に出力する。
【００９７】
ステップ２４５（Ｓ２４５）において、ランレングス復号化部６５０（予測値選択部６５２）は、エントロピー復号部６３０から入力された識別子に対応する画素値を、これまでに復号化された画素値の中から読み出す。すなわち、ランレングス復号化部６５０は、識別子に対応する周辺画素の位置にある画素値を読み出す。
【００９８】
ステップ２５０（Ｓ２５０）において、ランレングス復号化部６５０（複製部６５４）は、識別子に対応する画素値を、ラン数だけ生成し、生成された少なくとも１つの画素値をそれぞれ注目画素の画素値として画像出力部６６０に出力する。
画像出力部６６０は、ランレングス復号化部６５０から入力された少なくとも１つの注目画素Ｘの画素値を外部（例えば、記憶装置等）に出力する。
【００９９】
ステップ２５５（Ｓ２５５）において、復号化プログラム６は、復号化対象の符号データ全てを復号化したか否かを判定し、全ての符号データを復号化した場合に、復号化処理（Ｓ２０）を終了し、復号化していない符号が存在する場合に、次の符号を注目画素Ｘの符号として、Ｓ２０５の処理に戻る。
【０１００】
［評価］
図１２（Ａ）は、第１の符号化プログラム５により符号化された画像データのビットレート、及び、マルコフモデルベースの符号化プログラム９により符号化された画像データのビットレートを示すグラフであり、図１２（Ｂ）は、第１の符号化プログラム５の符号化処理速度、及び、マルコフモデルベースの符号化プログラム９の符号化処理速度を示すグラフである。
図１２に示されたビットレート及び符号化処理速度は、８種類の画像（多値[24bit/pixel]の画像）を用いて、符号化実験を行った実験結果である。
なお、ビットレートの単位は、[bit/pixel]でり、符号化処理速度の単位は、[Mbyte/sec]である。
図１２に示すように、第１の符号化プログラム５が、自然画像に関しては、マルコフモデルベースの符号化プログラム９と同程度の圧縮率及び処理速度を有し、かつ、CG画像に関しては、圧縮率及び処理速度ともに符号化プログラム９を大きく上回る性能を有していることがわかる。
【０１０１】
次に、第１の符号化プログラム５と符号化プログラム９との比較を理論的に行う。
符号化プログラム９の１画素当たりのソースコーダ部総処理時間Tjpeg [sec/pixel]は、以下の数式１で表される。Ｔfはコンテクストモデル化処理時間[sec/pixel]を、Ｔrはランレングス符号化処理時間[sec/pixel]を、Ｔpは予測符号化処理時間[sec/pixel]を、Ｐfはコンテクスト平坦率を、Ｎrは平均ランレングス長を示している。ここで、コンテクスト平坦率とは、全コンテクスト中で、（Ｄ1,Ｄ2,Ｄ3）＝（０，０，０）となるコンテクストの割合である。
また、数式１において、通常Ｔf >>Ｔr 、Ｔp>>Ｔr、Ｎr>1が成立する。そのため、ランレングス符号化率Ｐf  を大きくすることができれば、ソースコーダ処理時間Ｔjpegを短縮することができる。
【０１０２】
Ｔjpeg ＝Ｐf（Ｔf ＋ＴrＮr ）／Ｎr ＋（１−Ｐf ）（Ｔf ＋Ｔp ）・・・（数式１）
【０１０３】
しかしながら、実質的に（D1,D2,D3)=(0,0,0)となる場合はほとんどなく、Ｐfは小さい。そのため、結果的に符号化プログラム９の処理時間Ｔjpegは、比較的大きい。
【０１０４】
次に、第１の符号化プログラム５の1画素当たりのソースコーダ部処理時間Ｔ[sec/pixel]を数式２で示した。Ｔfはコンテクストモデル化処理時間[sec/pixel]を、Ｔrはランレングス符号化処理時間[sec/pixel]を、Ｔeは予測誤差算出処理時間[sec/pixel]を、Ｐhはランレングス符号化時の予測的中率を表している。
【０１０５】
Ｔ ＝ＰhＴr ＋（１−Ｐh ）（Ｔf ＋Ｔe ）・・・（数式２）
【０１０６】
次に、数式１と数式２とを比較するため、ＴjpegとＴとの差分を計算する。なお、符号化プログラム５及び符号化プログラム９が、同じ予測誤差算出式を利用すると仮定すると、Ｔe ≒Ｔpが成立するので、ＴjpegとＴの差分は、以下の数式３となる。
【０１０７】
Ｔjpeg −Ｔ ＝Ｐf Ｔf ／Ｎr ＋（Ｐh −Ｐf ）（Ｔf ＋Ｔe −Ｔr  ）・・・（数式３）
【０１０８】
次に、上記数式３を用いて、Ｔjpeg >Ｔとなる理由について説明する。
まず、数式３の右辺第一項に関して述べる。
右辺第一項は、符号化プログラム５のランレングス符号化処理内容に影響されない項である。したがって、符号化プログラム５は、符号化プログラム９より少なくとも右辺第1項分だけ処理時間が短い。特に、符号化プログラム９において、Ｐf  が大きくなるほど、又は、Ｎr  が小さくなるほど、符号化プログラム５との処理時間差が大きくなっていく。
次に、数式３の右辺第２項に関して述べる。
通常Ｔf ＋Ｔe >>Ｔr である。また、マルコフモデル符号化部（図４）が注目画素近傍の周辺画素Ａ〜Ｄを用いて符号化処理を行う場合、Ｐh >Ｐf が成立するため、右辺第2項は、正の値である。さらに、Ｐｈ  、Ｐf に比べＴf 、Ｔe 、Ｔrは、入力画像に左右されにくいと考えられるので、Ｐｈ を大きくすることができれば、ますます符号化プログラム５と符号化プログラム９の処理時間差は大きくなる。
以上を考慮すると、Ｔjpeg >Ｔが成立し、本実施形態の符号化プログラム５は、マルコフモデルベースの符号化プログラム９に比べ、計算処理時間の短縮を実現できる。
【０１０９】
［第２の実施形態］
次に、第２の実施形態を説明する。
以下の説明のために、符号化対象である入力画像を、その特徴に基づいて大きく２種類に分類する。第１の分類は、コンピュータで作成される画像（すなわち、CG画像）であり、第２の分類は、デジタルカメラ又はスキャナなどで光学的に読み取られた画像（すなわち、自然画像）である。
一般的に、ＣＧ画像は、同一画素値が隣接画素に存在することが多く、使用される画素値が特定値に偏ることが多い。一方で、自然画像は、隣接画素でも、画素値が同一であることは少ないという特徴を持っている。
そのため、自然画像では、注目画素Ｘの画素値と周辺画素Ａ〜Ｄの画素値とが一致する可能性が低く、ランレングス符号化処理の連続一致数（ラン数）が「予測はずれ」により中断されやすい傾向にある。一方、ＣＧ画像では、注目画素Ｘの画素値と周辺画素Ａ〜Ｄの画素値とが一致する可能性が高く、ランレングス符号化処理の連続一致数が大きくなりやすい傾向にある。
この結果、上記第１の実施形態における符号化処理は、事実上、CG画像に相当する部分に対してはランレングス符号化を、自然画像に相当する部分に対してはマルコフモデル符号化を適用しているともいえる。
【０１１０】
通常、マルコフモデル符号化では、コンテクスト毎に各種のデータを計数処理し、エントロピー符号化時に使用する符号パラメータを決定する。上記符号化プログラム５のマルコフモデル符号化部においても、予測誤差値、コンテクスト出現回数などを計数処理し、コンテクスト毎に最適なゴロム符号パラメータ（符号パラメータ）を算出する。
しかし、入力画像が自然画像である場合、コンテクスト毎の最適符号パラメータに差違は、ほとんどない。そのため、コンテクストさえ決定してしまえば、一意に最適符号パラメータを算出でき、計数処理を省略することが可能である。
【０１１１】
図１３は、ＣＧ画像に関するコンテクスト値Ｑと符号パラメータとの関係を示すグラフである。
図１４は、自然画像に関するコンテクスト値Ｑと符号パラメータとの関係を示すグラフである。
図１３を参照してわかるように、第１の符号化プログラム５を用いて、ＣＧ画像を符号化した場合には、画像により符号パラメータ（すなわち、ゴロム符号パラメータ）の分布が異なることがわかる。例えば、ＣＧ画像１のように、符号パラメータが２から５の狭い範囲に分布しているもの、ＣＧ画像２のように、符号パラメータが比較的に０付近に偏在するもの、ＣＧ画像３のように、符号パラメータが０から６という幅広い範囲に散在しているものなど、画像によって符号パラメータ（ゴロム符号パラメータ）が異なる。
一方、図１４を参照してわかるように、自然画像では、同じコンテクストであれば、使用されるゴロム符号パラメータは、画像間で近似している。そのため、自然画像が入力された場合、コンテクスト毎に計数処理し、符号パラメータを算出しなくても、どんな画像であれ、コンテクストだけから一意に適切な符号パラメータを決定できる。
【０１１２】
そこで、第２の本実施形態における符号化プログラム５２（後述）は、マルコフモデル符号化処理を行う場合には、コンテクストを計数処理し、符号パラメータを算出すること行わず、コンテクストだけから符号パラメータを一意に決定し、決定された符号パラメータを用いて、画像データを符号化する。
これにより、煩雑なコンテクスト毎の計数処理や符号パラメータ算出処理を省くことができるため、処理負荷及び使用メモリ量の低減や処理時間の短縮が実現される。
【０１１３】
図１５は、第２のマルコフモデル符号化部の構成を例示する図である。すなわち、第２の実施形態における第２の符号化プログラム５２は、図４に示された第１の符号化プログラム５において、マルコフモデル符号化部を、図１５に例示する第２のマルコフモデル符号化部で置換した構成をとる。なお、本図に示された各構成のうち、図４又は図５に示された構成と実質的に同一のものには、同一の符号が付されている。
【０１１４】
第２のマルコフモデル符号化部において、第２の符号表生成部５６２（符号群選択手段）は、パラメータ記憶部５９０を参照して、コンテクスト決定部５３０により決定されたコンテクストに対応する符号表（本例では、符号パラメータ）を選択し、選択された符号表（符号パラメータ）をエントロピー符号化部５７０に出力する。
【０１１５】
パラメータ記憶部５９０は、複数の符号表をそれぞれコンテクストに対応付けて記憶する。パラメータ記憶部５９０に記憶される符号表は、互いに異なる符号群（例えば、同一のデータに対応する符号長が異なる符号群）と、データ値とを互いに対応付ける。
本例のパラメータ記憶部５９０は、複数の符号パラメータをそれぞれコンテクスト値Ｑに対応付けて記憶する。これらの符号パラメータは、ゴロム符号を生成するために用いられるパラメータである。
【０１１６】
第２の予測部５４８は、周辺画素Ａ〜Ｄの画素値に基づいて、注目画素Ｘの予測値を算出し、算出された予測値を予測誤差算出部５４２に出力する。すなわち、第２の予測部５４８は、予測値の補正を行うことなく、周辺画素Ａ〜Ｄのいずれかを用いて算出された予測値をそのまま予測誤差算出部５４２に出力する。
【０１１７】
図１６は、パラメータ記憶部５９０に記憶されている符号パラメータを例示する図である。
図１６に例示するように、本例のパラメータ記憶部５９０は、符号パラメータをコンテクスト値Ｑに対応付けた符号パラメータテーブル８００（対応付けテーブル）を記憶する。符号パラメータテーブル８００に含まれるコンテクスト値Ｑは、コンテクスト決定部５３０により決定される１つのコンテクスト値の絶対値である。
【０１１８】
次に、第２の符号化プログラム５２による符号化処理（Ｓ３０）を説明する。
第２の符号化処理（Ｓ３０）は、図６に示した第１の符号化処理（Ｓ１０）と概略において同一であるが、予測誤差生成処理（Ｓ１２０）において、予測値の補正を行わない点、及び、第１の符号パラメータ生成処理（Ｓ１４０）を、固定的な第２の符号パラメータ生成処理（Ｓ３４０）に置換した点で異なる。
【０１１９】
図１７は、第２の符号パラメータ生成処理（Ｓ３４０）を説明するフローチャートである。なお、本図に示された各処理のうち、図８に示された処理と実質的に同一の処理には、同一の符号が付されている。
図１７に示すように、ステップ１４４（Ｓ１４４）において、コンテクスト決定部５３０（図１５）は、Ｓ１１５（図６）において算出された差分値Ｄ１、差分値Ｄ２、及び、差分値Ｄ３を、９つの数値区間のいずれに属するか否かを判定し、判定された数値区間に対応する部分コンテクスト値Ｑｎを算出する。
【０１２０】
ステップ１４６（Ｓ１４６）において、コンテクスト決定部５３０は、算出された部分コンテクスト値Ｑ１、Ｑ２、及び、Ｑ３を用いて、注目画素Ｘのコンテクスト値Ｑを算出する。具体的には、以下の式により算出される。
Ｑ＝Ｑ１×８１＋Ｑ２×９＋Ｑ３
【０１２１】
ステップ１４８（Ｓ１４８）において、コンテクスト決定部５３０（図１５）は、算出されたコンテクスト値Ｑが０より大きいか否かを判定し、コンテクスト値Ｑが０より大きい場合に、Ｓ３５２の処理に移行し、コンテクスト値Ｑが０以下である場合に、Ｓ１５０の処理に移行する。
ステップ１５０（Ｓ１５０）において、コンテクスト決定部５３０は、コンテクスト値Ｑに対して、（−１）を乗算する。すなわち、コンテクスト決定部５２２は、負のコンテクスト値Ｑの絶対値を算出し、算出された絶対値をコンテクスト値Ｑとする。
【０１２２】
ステップ３５２（Ｓ３５２）において、コンテクスト決定部５３０（図１５）は、算出されたコンテクスト値Ｑを符号表生成部５６２に出力する。
符号表生成部５６２（図１５）は、パラメータ記憶部５９０に記憶されている符号パラメータテーブル８００（図１６）を参照して、コンテクスト決定部５３０から入力されたコンテクスト値Ｑに対応する符号パラメータを読み出す。
【０１２３】
ステップ３５４（Ｓ３５４）において、符号表生成部５６２は、読み出された符号パラメータを符号表としてエントロピー符号化部５７０（図４）に出力する。
なお、本例のパラメータ記憶部５９０は、コンテクスト値Ｑに対応する符号パラメータ（ゴロム符号パラメータ）を記憶するが、これに限定されるものではなく、例えば、符号とデータ値とを互いに対応付ける符号テーブルをコンテクスト値Ｑに対応付けて記憶してもよく、この場合に、符号表生成部５６２は、コンテクスト値Ｑに対応する符号テーブルをパラメータ記憶部５９０から読み出して、エントロピー符号化部５７０に出力する。
【０１２４】
すなわち、本実施形態のマルコフモデル符号化部は、固定的な符号パラメータテーブル８００から、コンテクスト値Ｑそのものに対応する符号パラメータを読み出す。これにより、コンテクスト値の計数処理及び予測誤差の計数処理が不要になる。
したがって、第２のマルコフモデル符号化部（図１５）は、第１のマルコフモデル符号化部（図４）よりも軽い処理負荷で、コンテクストに対応する符号表（符号パラメータ）を生成できる。
【０１２５】
図１８は、第２のマルコフモデル復号化部の構成を例示する図である。すなわち、第２の実施形態における第２の復号化プログラム６２は、図１０に示された第１の復号化プログラム６において、マルコフモデル復号化部６４０を、図１８に例示する第２のマルコフモデル復号化部で置換した構成をとる。なお、本図に示された各構成のうち、図１０に示された構成と実質的に同一のものには、同一の符号が付されている。
【０１２６】
第２のマルコフモデル復号化部において、第２の符号表生成部６４８（符号表選択手段）は、パラメータ記憶部６４９を参照して、コンテクスト決定部５３０により決定されたコンテクストに対応する符号表（本例では、復号パラメータ）を選択し、選択された符号表（復号パラメータ）をエントロピー復号部６３０（図１０）に出力する。
【０１２７】
パラメータ記憶部６４９は、複数の符号表をそれぞれコンテクストに対応付けて記憶する。パラメータ記憶部６４９に記憶される符号表は、互いに異なる符号群（例えば、同一のデータに対応する符号長が異なる符号群）と、データ値とを互いに対応付ける。
本例のパラメータ記憶部６４９は、複数の復号パラメータをそれぞれコンテクスト値Ｑに対応付けて記憶する。これらの復号パラメータは、ゴロム符号を復号化するために用いられるパラメータである。
【０１２８】
第２の予測部６４６は、周辺画素Ａ〜Ｄの画素値に基づいて、注目画素Ｘの予測値を算出し、算出された予測値を予測誤差加算部６４２に出力する。すなわち、第２の予測部６４６は、予測値の補正を行うことなく、周辺画素Ａ〜Ｄのいずれかを用いて算出された予測値をそのまま予測誤差加算部６４２に出力する。
【０１２９】
以上説明したように、本実施形態における符号化プログラム５２は、符号パラメータをコンテクストに対応付けた符号パラメータテーブル８００を用いて、マルコフモデル符号化を行うことにより、自然画像を高い圧縮率で高速に符号化することができる。
なお、符号化プログラム５２は、ＣＧ画像が入力された場合には、ランレングス符号化方式により、高速かつ高圧縮率でＣＧ画像を符号化する。
同様に、本実施形態における復号化プログラム６２は、自然画像及びＣＧ画像を、高速に復号化することができる。
【０１３０】
［変形例］
次に、上記実施形態の変形例を説明する。
図１９は、マルコフモデル符号化部又はマルコフモデル復号化部の予測部（すなわち、予測部５４４，５４８又は６４６）による予測処理の変形例を説明する図である。以下、予測部５４４の変形例を説明する。
予測部５４４は、図１９に例示する式により、注目画素Ｘの予測値Ｐｘを算出してもよい。すなわち、予測部５４４は、周辺画素Ａ〜Ｄのいずれかの画素値をそのまま予測値Ｐｘとしてもよいし、周辺画素Ａ〜Ｃの大小関係によらず常に（Ａ＋Ｂ−Ｃ）を予測値Ｐｘとしてもよい。また、予測部５４４は、以下に示すいずれかの式により、注目画素Ｘの予測値Ｐｘを算出してもよい。
Ｐｘ＝Ａ＋（Ｂ−Ｃ）／２
Ｐｘ＝Ｂ＋（Ａ−Ｃ）／２
Ｐｘ＝（Ａ＋Ｂ）／２
【０１３１】
このように、本変形例の予測部５４４は、周辺画素Ａ〜Ｃの大小関係を判定することなく、注目画素Ｘの予測値Ｐｘを算出することにより、予測値の算出処理を高速化することができる。
【０１３２】
図２０は、符号パラメータ生成処理の変形例（Ｓ７４０）のフローチャートである。なお、本図に示された各処理のうち、図１７に示された処理と実質的に同一のものには、同一の符号が付されている。
図２０に例示するように、第３の符号表生成処理（Ｓ７４０）では、部分コンテクスト値の算出処理（図１７のＳ１４４）、及び、部分コンテクスト値に対する重み付け処理（図１７のＳ１４６）が簡略化できる。
すなわち、本変形例では、ステップ７４４（Ｓ７４４）において、コンテクスト決定部５３０は、算出された差分値Ｄ１の絶対値、差分値Ｄ２の絶対値、及び、差分値Ｄ３の絶対値を合算して、変形例におけるコンテクスト値Ｒを算出する。
【０１３３】
ステップ７４６（Ｓ７４６）において、符号表生成部５６２は、コンテクスト決定部５３０により算出されたコンテクスト値Ｒに対応する符号パラメータを、パラメータ記憶部５９０から読み出す。
なお、本変形例のパラメータ記憶部５９０は、複数の符号パラメータをそれぞれのコンテクスト値Ｒに対応付けて記憶してもよいし、複数の符号パラメータをコンテクスト値Ｒの数値範囲に対応付けて記憶してもよい。符号パラメータがコンテクスト値Ｒの数値範囲に対応付けられている場合には、符号表生成部５６２は、算出されたコンテクスト値Ｒがいずれの数値範囲に属するかを判定し、コンテクスト値Ｒが属する数値範囲に対応する符号パラメータを読み出す。
【０１３４】
ステップ１５４（Ｓ１５４）において、符号表生成部５６２は、読み出された符号パラメータを符号表としてエントロピー符号化部５７０に出力する。
【０１３５】
このように本変形例のマルコフモデル符号化部は、部分コンテクスト値の算出処理（図１７のＳ１４４）、及び、部分コンテクスト値に対する重み付け処理（図１７のＳ１４６）を簡略化できる。
特に、図１７に示す例では、差分値Ｄ１、差分値Ｄ２、及び、差分値Ｄ３が、９つの数値区間のいずれに属するか否かを判定している。このような判定処理では、それぞれの数値区間の境界値（閾値）と、差分値とをそれぞれ比較する必要があり、この判定処理を３つの差分値それぞれについて行う必要がある。
しかしながら、本変形例では、このように差分値を判定する必要が無いため処理負荷を抑えることができる。
【０１３６】
［ハードウェア］
次に、上記実施形態における画像処理装置２のハードウェア構成を説明する。
図２１は、本発明にかかる符号化方法及び復号化方法が適応される画像処理装置２（符号化装置、復号化装置）のハードウェア構成を、制御装置２１を中心に例示する図である。
図２１に例示するように、画像処理装置２は、ＣＰＵ２１２及びメモリ２１４などを含む制御装置２１、通信装置２２、ＨＤＤ・ＣＤ装置などの記録装置２４、並びに、ＬＣＤ表示装置あるいはＣＲＴ表示装置およびキーボード・タッチパネルなどを含むユーザインターフェース装置（ＵＩ装置）２５から構成される。
画像処理装置２は、例えば、本発明にかかる符号化プログラム（第１の符号化プログラム５又は第２の符号化プログラム５２）及び復号化プログラム（第１の復号化プログラム６又は第２の復号化プログラム６２）がプリンタドライバの一部としてインストールされた汎用コンピュータであり、通信装置２２又は記録装置２４などを介して画像データを取得し、取得された画像データを符号化又は復号化してプリンタ装置３に送信する。
【図面の簡単な説明】
【０１３７】
【図１】ＪＰＥＧ−ＬＳ方式の符号化処理を実現する符号化プログラム９の構成を例示する図である。
【図２】符号化プログラム９（図１）による符号化処理（Ｓ９０）のフローチャートである。
【図３】コンテクストの決定処理を説明する図である。
【図４】第１の実施形態における符号化プログラム５の構成を例示する図である。
【図５】（Ａ）は、ランレングス生成部５１０をより詳細に説明する図であり、（Ｂ）は、予測誤差生成部５４０をより詳細に説明する図である。
【図６】符号化プログラム５によりなされる第１の符号化処理（Ｓ１０）のフローチャートである。
【図７】図６で説明した予測誤差生成処理（Ｓ１２０）をより詳細に説明するフローチャートである。
【図８】図６で説明した符号パラメータ生成処理（Ｓ１４０）をより詳細に説明するフローチャートである。
【図９】（Ａ）は、符号識別情報を例示する図であり、（Ｂ）は、符号データを例示する図である。
【図１０】第１の実施形態における復号化プログラム６の構成を例示する図である。
【図１１】復号化プログラム６によりなされる第１の復号化処理（Ｓ２０）のフローチャートである。
【図１２】（Ａ）は、第１の符号化プログラム５により符号化された画像データのビットレート、及び、マルコフモデルベースの符号化プログラム９により符号化された画像データのビットレートを示すグラフであり、（Ｂ）は、第１の符号化プログラム５の符号化処理速度、及び、マルコフモデルベースの符号化プログラム９の符号化処理速度を示すグラフである。
【図１３】ＣＧ画像に関するコンテクストＱと符号パラメータとの関係を示すグラフである。
【図１４】自然画像に関するコンテクストＱと符号パラメータとの関係を示すグラフである。
【図１５】第２のマルコフモデル符号化部の構成を例示する図である。
【図１６】パラメータ記憶部５９０に記憶されている符号パラメータを例示する図である。
【図１７】第２の符号パラメータ生成処理（Ｓ３４０）を説明するフローチャートである。
【図１８】第２のマルコフモデル復号化部の構成を例示する図である。
【図１９】マルコフモデル符号化部又はマルコフモデル復号化部の予測部による予測処理の変形例を説明する図である。
【図２０】符号パラメータ生成処理の変形例（Ｓ７４０）のフローチャートである。
【図２１】本発明にかかる符号化方法及び復号化方法が適応される画像処理装置２のハードウェア構成を、制御装置２１を中心に例示する図である。
【符号の説明】
【０１３８】
２・・・画像処理装置
５、５２・・・符号化プログラム
５００・・・画像入力部
５１０・・・ランレングス生成部
５２０・・・選択部
５３０・・・コンテクスト決定部
５４０・・・予測誤差生成部
５５０・・・コンテクスト計数部
５６０・・・符号表生成部
５７０・・・エントロピー符号化部
５８０・・・符号出力部
５９０・・・識別情報付与部
６,６２・・・復号化プログラム
６００・・・符号入力部
６１０・・・識別情報復号部
６２０・・・復号方式選択部
６３０・・・エントロピー復号部
６４０・・・マルコフモデル復号部
６５０・・・ランレングス復号部
６６０・・・画像出力部
８００・・・符号パラメータテーブル
【図１】
2006311055.tif 000003
【図２】
2006311055.tif 000004
【図３】
2006311055.tif 000005
【図４】
2006311055.tif 000006
【図５】
2006311055.tif 000007
【図６】
2006311055.tif 000008
【図７】
2006311055.tif 000009
【図８】
2006311055.tif 000010
【図９】
2006311055.tif 000011
【図１０】
2006311055.tif 000012
【図１１】
2006311055.tif 000013
【図１２】
2006311055.tif 000014
【図１３】
2006311055.tif 000015
【図１４】
2006311055.tif 000016
【図１５】
2006311055.tif 000017
【図１６】
2006311055.tif 000018
【図１７】
2006311055.tif 000019
【図１８】
2006311055.tif 000020
【図１９】
2006311055.tif 000021
【図２０】
2006311055.tif 000022
【図２１】
2006311055.tif 000023