(57)【要約】【課題】最適な可変長符号化テーブルの選択に要する演算量を削減する。【解決手段】画像を小領域毎に可変長符号化する装置は、小領域に含まれる画素における、画素値と予測画素値との間の差分値、を算出する算出部と、前記算出部により算出された差分値の中から、絶対値が所定値となる差分値を所定差分値として取得する取得部と、前記取得部により取得された所定差分値に応じて、複数の可変長符号化テーブルの中から一つの可変長符号化テーブルを選択する選択部と、前記選択部により選択された可変長符号化テーブルを用いて、前記算出部により算出された差分値を可変長符号化する可変長符号化部と、を備える。【選択図】図１Ａ
2012129785.tif 000002
【特許請求の範囲】
【請求項１】
画像を小領域毎に可変長符号化する装置であって、
小領域に含まれる画素における、画素値と予測画素値との間の差分値、を算出する算出部と、
前記算出部により算出された差分値の中から、絶対値が所定値となる差分値を所定差分値として取得する取得部と、
前記取得部により取得された所定差分値に応じて、複数の可変長符号化テーブルの中から一つの可変長符号化テーブルを選択する選択部と、
前記選択部により選択された可変長符号化テーブルを用いて、前記算出部により算出された差分値を可変長符号化する可変長符号化部と、
を備えることを特徴とする可変長符号化装置。
【請求項２】
前記小領域毎の小領域符号化データを含む、前記画像の符号化データを形成するデータ形成部、
を更に備え、
前記小領域符号化データは、前記取得部により取得された所定差分値と前記可変長符号化部により可変長符号化された可変長符号とを含む、
ことを特徴とする請求項１記載の可変長符号化装置。
【請求項３】
画像の符号化データを前記画像の小領域毎に可変長復号化する装置であって、
前記小領域毎の、小領域に含まれる画素の画素値と予測画素値との間の差分値の絶対値が所定値となる所定差分値と可変長符号とを有する小領域符号化データを含む、前記画像の符号化データを取得する取得部と、
前記取得部により取得された符号化データの小領域符号化データに含まれる所定差分値に応じて、複数の可変長符号化テーブルの中から一つの可変長符号化テーブルを選択する選択部と、
前記選択部により選択された可変長符号化テーブルを用いて、前記小領域符号化データに含まれる可変長符号を可変長復号化する可変長復号化部と、
を備えることを特徴とする可変長復号化装置。
【請求項４】
画像を小領域毎に可変長符号化する方法であって、
小領域に含まれる画素における、画素値と予測画素値との間の差分値、を算出する算出工程と、
前記算出工程により算出された差分値の中から、絶対値が所定値となる差分値を所定差分値として取得する取得工程と、
前記取得工程により取得された所定差分値に応じて、複数の可変長符号化テーブルの中から一つの可変長符号化テーブルを選択する選択工程と、
前記選択工程により選択された可変長符号化テーブルを用いて、前記算出工程により算出された差分値を可変長符号化する可変長符号化工程と、
を含む、
ことを特徴とする可変長符号化方法。
【請求項５】
画像の符号化データを前記画像の小領域毎に可変長復号化する方法であって、
前記小領域毎の、小領域に含まれる画素における、画素値と予測画素値との間の差分値、の絶対値が所定値となる差分値である所定差分値と、可変長符号とを含む小領域符号化データを含む、前記画像の符号化データを取得する取得工程と、
前記取得工程により取得された符号化データの小領域符号化データに含まれる所定差分値に応じて、複数の可変長符号化テーブルの中から一つの可変長符号化テーブルを選択する選択工程と、
前記選択工程により選択された可変長符号化テーブルを用いて、前記小領域符号化データに含まれる可変長符号を可変長復号化する可変長復号化工程と、
を含むことを特徴とする可変長復号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、可変長符号化装置及び可変長復号化装置に関する。
【背景技術】
【０００２】
可変長符号化に関する技術として、例えば、次のような技術が知られている。
入力デジタル情報信号を予測符号化することにより発生した残差信号がブロック化されてから、第１の可変長符号化手段としてのＡＤＲＣエンコーダにより量子化される。ＡＤＲＣエンコーダの出力がビットプレーン符号化回路によりビットプレーンに分解される。ＡＤＲＣエンコーダでは、ダイナミックレンジＤＲに応じてブロックの割当てビット数が可変される。各ビットプレーンの中の０ビット割当てのブロックが検出され、そのブロックのデータが除外される。そして、第２の可変長符号化手段としての可変長エンコーダにより符号化されて伝送される。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平０９−１０２７４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
デジタル画像の圧縮では、一般的に、画像を４×４画素、８×８画素、１６×１６画素等といった小領域ブロックに分割し、小領域ブロック毎に可変長符号化を行う。このとき、画像は小領域ブロック毎に特徴が異なるため、発生する差分値にも小領域ブロック毎にばらつきが生じる。そこで、予め複数種類の可変長符号化テーブルを用意しておき、小領域ブロック毎に最適な可変長符号化テーブルを選択して可変長符号化を行うことにより、符号化効率を上げる手法が採用されている。この手法を採用する場合には、符号化データと共に、選択した可変長符号化テーブルの識別情報（例えばテーブル番号等）を送ることにより、復号側においても、その識別情報に応じて可変長符号化テーブルを選択することができる。これにより、送られた符号化データを完全に復号化することができる。
【０００５】
しかしながら、この手法を採用する場合には、符号化後の全体の符号量が最小になるような最適な可変長符号化テーブルを選択するために、全ての可変長符号化テーブルの各々について、符号化後の全体の符号量を計算する必要がある。そのため、最適な可変長符号化テーブルの選択に要する演算量が多くなる、という問題があった。
【０００６】
本発明は、上記実情に鑑み、最適な可変長符号化テーブルの選択に要する演算量を削減することができる、可変長符号化装置、可変長符号化方法、可変長復号化装置、可変長復号化方法を提供することを目的とする。
【課題を解決するための手段】
【０００７】
装置の一観点によれば、画像を小領域毎に可変長符号化する装置であって、算出部、取得部、選択部、及び可変長符号化部を備える可変長符号化装置が提供される。ここで、算出部は、小領域に含まれる画素における、画素値と予測画素値との間の差分値、を算出する。取得部は、前記算出部により算出された差分値の中から、絶対値が所定値となる差分値を所定差分値として取得する。選択部は、前記取得部により取得された所定差分値に応じて、複数の可変長符号化テーブルの中から一つの可変長符号化テーブルを選択する。可変長符号化部は、前記選択部により選択された可変長符号化テーブルを用いて、前記算出部により算出された差分値を可変長符号化する。
【０００８】
装置の他の一観点によれば、画像の符号化データを前記画像の小領域毎に可変長復号化する装置であって、取得部、選択部、及び可変長復号化部を備える可変長復号化装置が提供される。ここで、取得部は、前記小領域毎の、小領域に含まれる画素の画素値と予測画素値との間の差分値の絶対値が所定値となる所定差分値と可変長符号とを有する小領域符号化データを含む、前記画像の符号化データを取得する。選択部は、前記取得部により取得された符号化データの小領域符号化データに含まれる所定差分値のデータに応じて、複数の可変長符号化テーブルの中から一つの可変長符号化テーブルを選択する。可変長復号化部は、前記選択部により選択された可変長符号化テーブルを用いて、前記小領域符号化データに含まれる可変長符号を可変長復号化する。
【０００９】
方法の一観点によれば、画像を小領域毎に可変長符号化する方法であって、算出工程、取得工程、選択工程、及び可変長符号化工程を含む可変長符号化方法が提供される。ここで、算出工程は、小領域に含まれる画素における、画素値と予測画素値との間の差分値、を算出する。取得工程は、前記算出工程により算出された差分値の中から、絶対値が所定値となる差分値を所定差分値として取得する。選択工程は、前記取得工程により取得された所定差分値に応じて、複数の可変長符号化テーブルの中から一つの可変長符号化テーブルを選択する。可変長符号化工程は、前記選択工程により選択された可変長符号化テーブルを用いて、前記算出工程により算出された差分値を可変長符号化する。
【００１０】
方法の他の一観点によれば、画像の符号化データを前記画像の小領域毎に可変長復号化する方法であって、取得工程、選択工程、及び可変長復号化工程を含む可変長復号化方法が提供される。ここで、取得工程は、前記小領域毎の、小領域に含まれる画素における、画素値と予測画素値との間の差分値、の絶対値が所定値となる差分値である所定差分値のデータと、可変長符号のデータとを含む小領域符号化データを含む、前記画像の符号化データを取得する。選択工程は、前記取得工程により取得された符号化データの小領域符号化データに含まれる所定差分値に応じて、複数の可変長符号化テーブルの中から一つの可変長符号化テーブルを選択する。可変長復号化工程は、前記選択工程により選択された可変長符号化テーブルを用いて、前記小領域符号化データに含まれる可変長符号を可変長復号化する。
【発明の効果】
【００１１】
開示の装置及び方法は、最適な可変長符号化テーブルの選択に要する演算量を削減することができる、という効果を奏する。
【図面の簡単な説明】
【００１２】
【図１Ａ】実施例１に係る可変長符号化装置の構成例を示す図である。
【図１Ｂ】実施例１に係る可変長符号化装置の構成例を示す図である。
【図２】予測画素値の作成方法の一例を示す図である。
【図３】(a) は第１の種類の可変長符号化テーブルの生成手順を示す図、(b) は第２の種類の可変長符号化テーブルの生成手順を示す図、(c) は第３の種類の可変長符号化テーブルの生成手順を示す図である。
【図４】確率分布（ｘ0＝０、γ＝１．５のコーシー分布）をグラフ化した図である。
【図５】(a) は差分値の絶対値の最大値を９とした場合の、Ｓ１０３での再計算を行う前後での確率分布を示す図、(b) は差分値の絶対値の最大値を５とした場合の、Ｓ１０３での再計算を行う前後での確率分布を示す図である。
【図６】差分値の絶対値の最大値を５とした場合（図５(b) に示した場合）に対して生成された第１の種類の可変長符号化テーブルを示す図である。
【図７Ａ】実施例１に係る可変長符号化装置が符号化対象画像を小領域毎に可変長符号化するときの動作を示すフローチャートである。
【図７Ｂ】実施例１に係る可変長符号化装置が符号化対象画像を小領域毎に可変長符号化するときの動作を示すフローチャートである。
【図８】設定可能な小領域サイズを模式的に示す図である。
【図９】１６×１６画素の小領域毎に、差分最大値が求められ、その差分最大値に応じて可変長符号化テーブルが選択される様子を概念的に示す図である。
【図１０】Ｓ４１４で形成される符号化対象画像の符号化データのデータ構造の一例を示す図である。
【図１１Ａ】実施例１に係る可変長復号化装置の構成例を示す図である。
【図１１Ｂ】実施例１に係る可変長復号化装置の構成例を示す図である。
【図１２Ａ】実施例１に係る可変長復号化装置が符号化データを画像の小領域毎に可変長復号化するときの動作を示すフローチャートである。
【図１２Ｂ】実施例１に係る可変長復号化装置が符号化データを画像の小領域毎に可変長復号化するときの動作を示すフローチャートである。
【図１３Ａ】実施例２に係る可変長符号化装置の構成例を示す図である。
【図１３Ｂ】実施例２に係る可変長符号化装置の構成例を示す図である。
【図１４】小領域における各画素の位置情報の一例を説明する図である。
【図１５】符号化モード判定部が符号量Ａと符号量Ｂを求める場合の一例を説明するための図である。
【図１６Ａ】実施例２に係る可変長符号化装置が符号化対象画像を小領域毎に可変長符号化するときの動作を示すフローチャートである。
【図１６Ｂ】実施例２に係る可変長符号化装置が符号化対象画像を小領域毎に可変長符号化するときの動作を示すフローチャートである。
【図１７】(a),(b) は、Ｓ６１８で形成される符号化対象画像の符号化データのデータ構造の一例を示す図である。
【図１８Ａ】実施例２に係る可変長復号化装置の構成例を示す図である。
【図１８Ｂ】実施例２に係る可変長復号化装置の構成例を示す図である。
【図１９Ａ】実施例２に係る可変長復号化装置が符号化データを画像の小領域毎に可変長復号化するときの動作を示すフローチャートである。
【図１９Ｂ】実施例２に係る可変長復号化装置が符号化データを画像の小領域毎に可変長復号化するときの動作を示すフローチャートである。
【図１９Ｃ】実施例２に係る可変長復号化装置が符号化データを画像の小領域毎に可変長復号化するときの動作を示すフローチャートである。
【図１９Ｄ】実施例２に係る可変長復号化装置が符号化データを画像の小領域毎に可変長復号化するときの動作を示すフローチャートである。
【発明を実施するための形態】
【００１３】
[実施例１]
本発明の実施例１に係る可変長符号化装置は、符号化対象画像を小領域毎に可変長符号化する装置であって、小領域毎に、複数の可変長符号化テーブルの中から一つの可変長符号化テーブルを選択し、その可変長符号化テーブルを用いて可変長符号化を行う。
【００１４】
図１Ａ及び図１Ｂは、本実施例に係る可変長符号化装置の構成例を示す図である。
図１Ａ及び図１Ｂに示したように、本実施例に係る可変長符号化装置は、メモリ１０１、差分値計算部１０２、予測画素値作成部１０３、テーブル記憶部１０４、１０５、１０６、セレクター（ＳＥＬ）１０７、データ形成部１０８、及び全体制御部１０９を含む。ここで、差分値計算部１０２は算出部の一例である。セレクター１０７は選択部の一例である。テーブル記憶部１０４、１０５、１０６は可変長符号化部の一例である。データ形成部１０８は、データ形成部の一例である。
【００１５】
メモリ１０１は、符号化対象画像の画像データを格納する。また、全体制御部１０９から入力される、処理対象画素を指定する画素要求信号に応じて、対応する画素データを出力する。なお、本実施例では、符号化対象画像の各画素の画素値が０から２５５までの８ｂｉｔで表現されるものとする。
【００１６】
予測画素値作成部１０３は、メモリ１０１から入力される画素データを用いて、処理対象画素における予測画素値を作成し、予測画素値を出力する。なお、予測画素値は、例えば、ＰＮＧ（Portable Network Graphics）等で使用されるＰＡＥＴＨ法を用いて、作成することができる。これについては、図２を用いて後述する。
【００１７】
差分値計算部１０２は、メモリ１０１から入力される画素データと予測画素値作成部１０３から入力される予測画素値とを用いて、処理対象画素値と予測画素値との間の差分値、を計算する。そして、差分値が、テーブル記憶部１０４、１０５、１０６、及び、全体制御部１０９へ出力される。
【００１８】
なお、本実施例に係る可変長符号化装置は、上記のとおり、符号化対象画像を小領域毎に可変長符号化する。各小領域の可変長符号化においては、小領域の各画素の差分値を求める処理を２回行う。１回目の処理は、小領域の可変長符号化に用いる可変長符号化テーブルを選択するために行なわれる。２回目の処理は、選択された可変長符号化テーブルを用いて実際に小領域の可変長符号化を行うために行なわれる。そのため、１回目の処理により差分値計算部１０２からテーブル記憶部１０４、１０５、１０６へ出力される差分値は無効とされる。
【００１９】
テーブル記憶部１０４は、複数の第１の種類の可変長符号化テーブルを記憶する。また、テーブル記憶部１０４は、差分値計算部１０２から入力される差分値に応じて、第１の種類の可変長符号化テーブル毎に、対応する可変長符号のデータを出力する。なお、複数の第１の種類の可変長符号化テーブルは、小領域内の画素を処理対象画素として計算された差分値の中でその絶対値の最大値が０から閾値Ａ未満までの各々の値の場合に対応して生成されたテーブルである。ここで、閾値Ａは、小領域内の画像が高い相関性を持つ場合における差分値の臨界値であり、第１の閾値の一例である。この第１の種類の可変長符号化テーブルの生成方法については、図３(a) を用いて後述する。
【００２０】
テーブル記憶部１０５は、複数の第２の種類の可変長符号化テーブルを記憶する。また、テーブル記憶部１０５は、差分値計算部１０２から入力される差分値のデータに応じて、対応する可変長符号を有する第２の種類の可変長符号化テーブル毎に、対応する可変長符号のデータを出力する。なお、第２の種類の可変長符号化テーブルは、小領域内の画素を処理対象画素として計算された差分値の中でその絶対値の最大値が閾値Ａから閾値Ｂ未満までの各々の値の場合に対応して生成されたテーブルである。ここで、閾値Ｂは、小領域内の画像が高い相関性を持たない場合における差分値の臨界値であり、第２の閾値の一例である。この第２の種類の可変長符号化テーブルの生成方法については、図３(b) を用いて後述する。
【００２１】
テーブル記憶部１０６は、第３の種類の可変長符号化テーブルを記憶し、差分値計算部１０２から入力される差分値に応じて、対応する可変長符号又はエスケープ符号を出力する。但し、エスケープ符号のデータが出力されるとき、差分値も出力される。なお、この差分値は、正負を表す符号ｂｉｔと０から２５５までを表現可能な８ｂｉｔの、合計９ｂｉｔの固定長のデータである。なお、第３の種類の可変長符号化テーブルは、小領域内の画素を処理対象画素として計算された差分値の中でその絶対値の最大値が閾値Ｂ以上である場合に対応して生成されたテーブルである。この第３の種類の可変長符号化テーブルの生成方法については、図３(c) を用いて後述する。
【００２２】
セレクター１０７は、全体制御部１０９から入力されるテーブル選択情報のデータに応じて、テーブル記憶部１０４、１０５からの一つの入力、又は、テーブル記憶部１０６からの入力を選択し、選択した入力からのデータを出力する。このように、セレクター１０７は、テーブル選択情報に応じて選択した入力からのデータを出力することで、可変長符号化に使用するテーブルを選択する。
【００２３】
データ形成部１０８は、セレクター１０７から入力される小領域毎のデータと、全体制御部１０９から入力される小領域毎の最大値、最小値、又は閾値Ｂのデータとに基づいて、小領域毎の符号化データを生成する。また、生成した各小領域の符号化データを用いて、符号化対象画像の符号化データを形成する。なお、このようにして形成された符号化対象画像の符号化データはデータ形成部１０８により出力され、例えば、本実施例に係る可変長符号化装置により外部へ送信される。
【００２４】
図１Ｂに示す全体制御部１０９は、本実施例に係る可変長符号化装置の全体動作を制御する。例えば、符号化対象画像を小領域毎に可変長符号化する際に、各小領域での処理対象画素に応じて、対応する画素要求信号がメモリ１０１に出力される。
【００２５】
全体制御部１０９は、最大値格納ＦＦ（FlipFlop）１１１、最小値格納ＦＦ（FlipFlop）１１２、比較器１１３、１１４、１１５、及びセレクター（ＳＥＬ）１１６を含む。また、全体制御部１０９は、更に、閾値Ａ格納ＦＦ（FlipFlop）１１７、閾値Ｂ格納ＦＦ（FlipFlop）１１８、及びテーブル選択部１１９を含む。ここで、テーブル選択部１１９は取得部の一例である。
【００２６】
比較器１１３は、差分値計算部１０２から入力される差分値と、最大値格納ＦＦ１１１から入力される最大値とを比較する。ここで、比較器１１３は、差分値が最大値よりも大きい場合に限り、この時の差分値のデータを最大値格納ＦＦ１１１に格納させる信号を出力する。
【００２７】
最大値格納ＦＦ１１１は、比較器１１３から入力される信号が、この時の差分値を最大値格納ＦＦ１１１に格納させる信号である場合には、この時に差分値計算部１０２から入力される差分値を最大値として格納する。また、最大値格納ＦＦ１１１は、格納している最大値を出力する。
【００２８】
比較器１１４は、差分値計算部１０２から入力される差分値と、最小値格納ＦＦ１１２から入力される最小値とを比較する。ここで、比較器１１４は、差分値が最小値よりも小さい場合に限り、この時の差分値を最小値格納ＦＦ１１２に格納させる信号を出力する。
【００２９】
最小値格納ＦＦ１１２は、比較器１１４から入力される信号が、この時の差分値を最小値格納ＦＦ１１２に格納させる信号である場合には、この時に差分値計算部１０２から入力される差分値を最小値として格納する。また、最小値格納ＦＦ１１２は、格納している最小値を出力する。
【００３０】
比較器１１５は、最大値格納ＦＦ１１１から入力される最大値と、最小値格納ＦＦ１１２から入力される最小値とを比較する。ここで、比較器１１５は、最大値の絶対値が最小値の絶対値以上の場合には、セレクター１１６に最大値格納ＦＦ１１１からの入力を選択させる信号を出力する。一方、最大値の絶対値が最小値の絶対値未満の場合には、セレクター１１６に最小値格納ＦＦ１１２からの入力を選択させる信号を出力する。
【００３１】
セレクター１１６は、比較器１１５から入力される信号が、セレクター１１６に最大値格納ＦＦ１１１からの入力を選択させる信号である場合には、最大値格納ＦＦ１１１からの入力を選択し、選択した入力からのデータを出力する。一方、比較器１１５から入力される信号が、セレクター１１６に最小値格納ＦＦ１１２からの入力を選択させる信号である場合には、最小値格納ＦＦ１１２からの入力を選択し、選択した入力からのデータを出力する。
【００３２】
なお、セレクター１１６から出力されるデータのうち、後述のテーブル選択部１１９により実際に使用されるデータは、テーブル選択部１１９がテーブル選択情報を生成するための処理を開始する時にセレクター１１６から出力されているデータである。
【００３３】
閾値Ａ格納ＦＦ１１７は、外部から入力される閾値Ａを格納し、閾値Ａを出力する。なお、閾値Ａは、上記のとおり、小領域内の画像が高い相関性を持つ場合における差分値の臨界値である。この閾値Ａは、例えば、自然画像を対象とした実験により求めることができる。実験によれば、高い相関性を持つ小領域内の画像で求められた差分値の約９割が１０未満であったため、本実施例では、この実験値である１０を閾値Ａとして使用する。
【００３４】
閾値Ｂ格納ＦＦ１１８は、外部から入力される閾値Ｂを格納し、閾値Ｂを出力する。なお、閾値Ｂは、上記のとおり、小領域内の画像が高い相関性を持たない場合における差分値の臨界値である。この閾値Ｂも、例えば、自然画像を対象とした実験により求めることができる。本実施例では、実験により得られた実験値である３２を閾値Ｂとして使用する。
【００３５】
テーブル選択部１１９は、小領域の符号化に使用する可変長符号化テーブルを、テーブル記憶部１０４、１０５、１０６に記憶されている複数の可変長符号化テーブルの中から選択するためのテーブル選択情報を生成する。例えば、セレクター１１６から入力される最大値又は最小値のデータと、閾値Ａ格納ＦＦ１１７から入力される閾値Ａと、閾値Ｂ格納ＦＦ１１８から入力される閾値Ｂとに基づいて、そのテーブル選択情報を生成する。そして、生成したテーブル選択情報をセレクター１０７へ出力する。また、テーブル選択部１１９は、セレクター１１６から入力される最大値又は最小値のデータを、データ形成部１０８へ出力する。但し、テーブル選択部１１９は、その最大値又は最小値の絶対値が閾値Ｂ以上である場合には、閾値Ｂをデータ形成部１０８へ出力する。
【００３６】
図２は、予測画素値作成部１０３による予測画素値の作成方法の一例を示す図である。ここでは、ＰＮＧ等で使用されるＰＡＥＴＨ法を用いて予測画素値を作成する例を示す。
図２に示したように、この例の方法では、処理対象画素をＸとし、その左側、上側、左上側に隣接する３つの画素をａ、ｂ、ｃとすると、処理対象画素Ｘにおける予測画素値を、その３つの隣接画素ａ、ｂ、ｃの画素値を用いて求める。例えば、３つの隣接画素ａ、ｂ、ｃの画素値を用いて、図２に示す計算式に従って、その３つの隣接画素ａ、ｂ、ｃの何れかの画素値を予測画素値として作成する。なお、処理対象画素が符号化対象画像の画像端画素となる場合には、計算に必要な隣接画素が存在しない。そこで、このような場合には、存在しない隣接画素の画素値を１２８として隣接画素を補間し、その上で予測画素値の作成を行う。
【００３７】
図３(a) は、テーブル記憶部１０４に記憶される第１の種類の可変長符号化テーブルの生成手順を示す図である。図３(b) は、テーブル記憶部１０５に記憶される第２の種類の可変長符号化テーブルの生成手順を示す図である。図３(c) は、テーブル記憶部１０６に記憶される第３の種類の可変長符号化テーブルの生成手順を示す図である。
【００３８】
図３(a) に示したように、第１の種類の可変長符号化テーブルは、次のようにして生成される。
自然画像の隣接画素間の差分値は、一般的に正規分布に従うとされている。また、実験により、各種の分布の中でコーシー分布が、符号量の削減という観点から、最も適していることが確認された。そこで、ここでは、その正規分布としてコーシー分布を用い、その分布関数を、差分値の出現確率（生起確率）を表す確率分布関数とする（Ｓ１０１）。但し、そのコーシー分布の分布関数（図３(a) 参照）においては、最頻値を与えるｘ0の値を０とし、半値半幅を与えるγの値を１．５とする（Ｓ１０２）。なお、このような値を採用する理由は、次のような理由による。すなわち、全ての差分値の平均は０に収束する傾向があるので、最頻値を与えるｘ0の値を０と仮定した。また、小領域内の画像が高い相関性を持つ場合には半値半幅を与えるγの値を１．５にするのが、符号量の削減という観点から、最も適していたことが実験により確認された。そのため、最頻値を与えるｘ0の値を０とし、半値半幅を与えるγの値を１．５とした。そして、このようなパラメータの下で確率分布を計算する。図４は、このときの確率分布（ｘ0＝０、γ＝１．５のコーシー分布）をグラフ化した図である。横軸は差分値を示し、縦軸は差分値の出現確率を示す。なお、本実施例では、このようにして確率分布を計算しているが、確率分布の計算は、このような手法に限定されるものではない。
【００３９】
次に、差分値の絶対値の最大値を０から閾値Ａ未満までの各値とし、その各々に対して、上記のパラメータ（ｘ0＝０、γ＝１．５）の下で計算された確率分布（以下「第１の確率分布」という）から、次のような確率分布（以下「第２の確率分布」という）を求める。すなわち、第１の確率分布において、上記の差分値の絶対値の最大値で定まる、差分値の最小値から最大値までの範囲の確率合計が１となるように、その第１の確率分布を再計算することにより、第２の確率分布を求める（Ｓ１０３）。なお、本実施例では、上記のとおり、閾値Ａを１０としていることから、０から閾値Ａ未満までの各値は、０から１０未満までの各値、すなわち、０、１、２・・・７、８、９の各値となる。また、差分値の絶対値の最大値で定まる、差分値の最小値から最大値までの範囲とは、例えば、差分値の絶対値の最大値を７とした場合には、差分値の最小値から最大値までの範囲が−７から＋７の範囲となる。また、第１の確率分布において、差分値の絶対値の最大値で定まる、差分値の最小値から最大値までの範囲の確率合計が１となるように、その第１の確率分布を再計算するとは、次のようなことをいう。例えば、差分値の最小値から最大値までの範囲が−７から＋７までの範囲であり、第１の確率分布におけるその範囲の確率合計が０．７であった場合には、その範囲の確率合計が１になるように、その第１の確率分布を再計算することをいう。また、このような第１の確率分布の再計算は、第１の確率分布における差分値の最大値及び最小値が、作成される第１の種類の可変長符号化テーブルにおいて可変長符号が割り当てられる差分値の最大値及び最小値になるように、行われるものでもある。
【００４０】
図５(a),(b) は、一例として、差分値の絶対値の最大値を９と５とした場合の、Ｓ１０３での再計算を行う前後での確率分布を示す図である。
図５(a) は、差分値の絶対値の最大値を９とした場合（−９から＋９までの差分値の範囲の場合）における再計算前後の確率分布を示す。この場合には、第１の確率分布において、−９から＋９までの差分値の範囲における確率合計が１になるように、第１の確率分布を再計算することにより、第２の確率分布が求められる。これにより、−９から＋９までの差分値の範囲における確率合計が、再計算前では０．９００５５４であったのに対し再計算後では１となる。
【００４１】
図５(b) は、差分値の絶対値の最大値を５とした場合（−５から＋５までの差分値の範囲の場合）における再計算前後の確率分布を示す。この場合には、第１の確率分布において、−５から＋５までの差分値の範囲における確率合計が１になるように、第１の確率分布を再計算することにより、第２の確率分布が求められる。これにより、−５から＋５までの差分値の範囲における確率合計が、再計算前では０．８３１０７１であったのに対し再計算後では１となる。
【００４２】
このようにして、差分値の絶対値の最大値が０から閾値Ａ未満までの各値に対して、第２の確率分布が求められると、次に、その各値に対して、対応する第２の確率分布を用いて第１の種類の可変長符号化テーブルとなるハフマンテーブルを生成する（Ｓ１０４）。これにより、差分値の絶対値の最大値が０から閾値Ａ未満までの各値に対して、その差分値の絶対値の最大値で定まる、差分値の最小値から最大値までの範囲の各差分値に対して可変長符号が割り当てられた第１の種類の可変長符号化テーブルが生成される。
【００４３】
図６は、一例として、差分値の絶対値の最大値を５とした場合（図５(b) に示した場合）に対して生成された第１の種類の可変長符号化テーブルを示す図である。
図６に示したように、この第１の種類の可変長符号化テーブルでは、差分値の絶対値の最大値（５）で定まる、−５から＋５までの範囲の各差分値に対して可変長符号が割り当てられる。
【００４４】
このような図３(a) に示した手順により、差分値の絶対値の最大値が０から閾値Ａまでの各値に対して第１の種類の可変長符号化テーブルが生成される。すなわち、合計で１０個の第１の種類の可変長符号化テーブルが生成される。そして、それらがテーブル記憶部１０４に記憶される。
【００４５】
図３(b) に示したように、第２の種類の可変長符号化テーブルは、次のようにして生成される。
まず、Ｓ１０１と同様に、正規分布としてコーシー分布を用い、その分布関数を、差分値の出現確率を表す確率分布関数とする（Ｓ２０１）。但し、そのコーシー分布の分布関数（図３(a) 参照）においては、最頻値を与えるｘ0の値を０とし、半値半幅を与えるγの値を４．０とする（Ｓ２０２）。なお、このような値を採用する理由は、次のような理由による。すなわち、全ての差分値の平均は０に収束する傾向があるので、Ｓ１０２と同様に、最頻値を与えるｘ0の値を０と仮定した。また、小領域内の画像が高い相関性を持たない場合には半値半幅を与えるγの値を４．０にするのが、符号量の削減という観点から、最も適していたことが実験により確認された。そのため、最頻値を与えるｘ0の値を０とし、半値半幅を与えるγの値を４．０とした。そして、このようなパラメータの下で確率分布を計算する。
【００４６】
次に、差分値の絶対値の最大値を閾値Ａから閾値Ｂ未満までの各値とし、その各々に対して、上記のパラメータ（ｘ0＝０、γ＝４．０）の下で計算された確率分布（以下「第３の確率分布」という）から、次のような確率分布（以下「第４の確率分布」という）を求める。すなわち、第３の確率分布において、上記の差分値の絶対値の最大値で定まる、差分値の最小値から最大値までの範囲の確率合計が１となるように、その第３の確率分布を再計算することにより、第４の確率分布を求める（Ｓ２０３）。なお、本実施例では、上記のとおり、閾値Ａを１０、閾値Ｂを３２としていることから、閾値Ａから閾値Ｂ未満までの各値は、１０から３２未満までの各値、すなわち、１０、１１、１２・・・２９、３０、３１の各値となる。また、このような第３の確率分布の再計算は、第３の確率分布における差分値の最大値及び最小値が、作成される第２の種類の可変長符号化テーブルにおいて可変長符号が割り当てられる差分値の最大値及び最小値になるように、行われるものでもある。
【００４７】
次に、その各値に対して、対応する第４の確率分布を用いて可変長符号化テーブルとなるハフマンテーブルを生成する（Ｓ２０４）。これにより、差分値の絶対値の最大値が閾値Ａから閾値Ｂ未満までの各値に対して、その差分値の絶対値の最大値で定まる、差分値の最小値から最大値までの範囲の各差分値に対して可変長符号が割り当てられた可変長符号化テーブルが生成される。
【００４８】
次に、Ｓ２０４で生成された各可変長符号化テーブルにおいて、割り当てられている一部の可変長符号を、次のように入れ換える（Ｓ２０５）。差分値の最大値と、それよりも短い符号長の可変長符号が割り当てられている差分値であって且つ差分値の最大値付近の差分値との間で、割り当てられている可変長符号を入れ換える。また、差分値の最小値と、それよりも短い符号長の可変長符号が割り当てられている差分値であって且つ差分値の最小値付近の差分値との間で、割り当てられている可変長符号を入れ換える。
【００４９】
ここで、差分値の最大値との間で行われる可変長符号の入れ換えは、例えば次のようにして行うことができる。まず、差分値の最大値と、差分値の最大値−１の差分値との間で、割り当てられている可変長符号の符号長を比較する。ここで、差分値の最大値よりも差分値の最大値−１の差分値の符号長が短い場合には、両者の間で可変長符号の入れ換えを行う。一方、両者の間で符号長が等しい場合には、次に、差分値の最大値と、差分値の最大値−２の差分値との間で、割り当てられている可変長符号の符号長を比較する。ここで、差分値の最大値−２の差分値の符号長が短い場合には、両者の間で可変長符号の入れ換えを行う。一方、両者の間で符号長が等しい場合には、次に、差分値の最大値と、差分値の最大値−３の差分値との間で、割り当てられている可変長符号の符号長を比較する。以下、可変長符号の入れ換えを行うまで同様の手順を繰り返す。差分値の最小値との間で行われる可変長符号の入れ換えについても、同様にして行うことができる。
【００５０】
なお、このような可変長符号の入れ換えを行う理由は、次のような理由による。選択された可変長符号化テーブルにおいて、差分値の最大値又は最小値は必ず可変長符号化されるが、差分値の最大値又は最小値付近の差分値は符号化されない場合もある。このような場合に、必ず可変長符号化される差分値に対して、より短い可変長符号を割り当てておくことにより、可変長符号化後の全体の符号量を減らすことができるからである。
【００５１】
そして、このような可変長符号の入れ換えを行った後の各可変長符号化テーブルを、第２の種類の可変長符号化テーブルとする。
このような図３(b) に示した手順により、差分値の絶対値の最大値が閾値Ａから閾値Ｂまでの各値に対して第２の種類の可変長符号化テーブルが生成される。すなわち、合計で２２個の第２の種類の可変長符号化テーブルが生成される。そして、それらがテーブル記憶部１０５に記憶される。
【００５２】
図３(c) に示したように、第３の種類の可変長符号化テーブルは、次のようにして生成される。
まず、Ｓ２０１と同様に、正規分布としてコーシー分布を用い、その分布関数を、差分値の出現確率を表す確率分布関数とする（Ｓ３０１）。但し、そのコーシー分布の分布関数（図３(a) 参照）においては、Ｓ２０２と同様に、最頻値を与えるｘ0の値を０とし、半値半幅を与えるγの値を４．０とする（Ｓ３０２）。なお、このような値を採用する理由は、Ｓ２０２の説明で述べた理由と同様である。そして、このようなパラメータの下で確率分布を計算する。
【００５３】
なお、ここでは、γの値を４．０とするが４．０を超える値とすることも可能である。
次に、上記のパラメータ（ｘ0＝０、γ＝４．０）の下で計算された確率分布において、差分値の絶対値が閾値Ｂ以上となる差分値に対してエスケープを使用する（Ｓ３０３）。なお、本実施例では、上記のとおり、閾値Ｂを３２としていることから、差分値の絶対値が閾値Ｂ以上となる差分値とは、−２５５から−３２までの差分値と＋３２から＋２５５までの差分値となる。
【００５４】
次に、そのようなエスケープが使用された確率分布を用いて、可変長符号化テーブルとなるハフマンテーブルを生成する（Ｓ３０４）。
次に、Ｓ３０４で生成された可変長符号化テーブルにおいて、エスケープに割り当てられている可変長符号と、それよりも短い符号長の可変長符号が割り当てられている差分値で且つ閾値Ｂ付近の差分値に割り当てられている可変長符号とを入れ換える（Ｓ３０５）。
【００５５】
なお、上記のエスケープ符号は、最終的にエスケープに割り当てられている可変長符号のことをいう。このように、可変長符号化テーブルにエスケープ符号を用いることは、テーブルサイズを一定以下に抑えるのに有効である。
【００５６】
また、Ｓ３０５で行われる可変長符号の入れ換えは、例えば、上記のＳ２０５で説明した手順と同様の手順で行うことができる。また、このような可変長符号の入れ換えを行う理由も、上記のＳ２０５で説明した理由と同様である。
【００５７】
そして、このような可変長符号の入れ換えを行った後の可変長符号化テーブルを、第３の種類の可変長符号化テーブルとする。
このような図３(c) に示した手順により、第３の種類の可変長符号化テーブルが生成される。そして、それがテーブル記憶部１０６に記憶される。
【００５８】
次に、このような構成を有する本実施例に係る可変長符号化装置の動作を説明する。
図７Ａ及び図７Ｂは、本実施例に係る可変長符号化装置が符号化対象画像を小領域毎に可変長符号化するときの動作を示すフローチャートである。
【００５９】
図７Ａ及び図７Ｂに示したように、本動作が開始すると、まず、全体制御部１０９は、符号化対象画像を小領域毎に可変長符号化する際の小領域サイズを設定する（Ｓ４０１）。本実施例では、小領域サイズを、１６×１６画素、８×８画素、又は４×４画素の何れかの小領域サイズに設定することが可能である。図８は、このときに設定可能な小領域サイズを模式的に示す図である。
【００６０】
次に、符号化対象画像を、Ｓ４０１で設定された小領域サイズに応じた小領域毎に可変長符号化する処理を行う（Ｓ４０２乃至Ｓ４１３）。
なお、本実施例では、このような小領域毎の処理を次のような小領域の順番で行うものとする。まず、画像の左上の小領域から水平方向に順に処理を行い、それを終えると、一つ下の左側の小領域から再び水平方向に順に処理を行う。以降は、画像の右下の小領域まで、そのような水平方向に順に行う処理を垂直方向に順に繰り返す。
【００６１】
例えば、Ｓ４０２乃至Ｓ４１３の処理が次のようにして行われる。
まず、符号化対象画像の処理対象とする小領域に含まれる画素毎に、画素値と予測画素値との間の差分値を算出し、その中から、差分値の絶対値が最大となる差分値（以下、「差分最大値」ともいう）を求める（Ｓ４０２）。具体的には、これが次のようにして行われる。まず、全体制御部１０９は、最大値格納ＦＦ１１１と最小値格納ＦＦ１１２をクリアする。次に、全体制御部１０９は、処理対象画素に応じた画素要求信号をメモリ１０１へ出力する。メモリ１０１は、全体制御部１０９から入力される画素要求信号に応じて、対応する画素データを出力する。予測画素値作成部１０３は、メモリ１０１から入力される画素データを用いて予測画素値を作成し、そのデータを出力する。差分値計算部１０２は、メモリ１０１から入力される画素データと予測画素値作成部１０３から入力される予測画素値のデータとを用いて、処理対象画素における、画素値と予測画素値との間の差分値を算出し、そのデータを出力する。比較器１１３は、差分値計算部１０２からの差分値のデータと最大値格納ＦＦ１１１からの最大値のデータとを比較し、差分値が最大値よりも大きい場合には、この時の差分値のデータを最大値格納ＦＦ１１１が格納する。また、比較器１１４は、差分値計算部１０２からの差分値のデータと最小値格納ＦＦ１１２からの最小値のデータとを比較し、差分値が最小値よりも小さい場合には、この時の差分値のデータを最小値格納ＦＦ１１２が格納する。また、比較器１１５は、最大値格納ＦＦ１１１からの最大値のデータと、最小値格納ＦＦ１１２からの最小値のデータとを比較する。ここで、最大値の絶対値が最小値の絶対値以上の場合には、セレクター１１６が最大値格納ＦＦ１１１からの入力を選択し、選択した入力からのデータを出力する。一方、そうでない場合には、セレクター１１６が最小値格納ＦＦ１１２からの入力を選択し、選択した入力からのデータを出力する。そして、このような処理を、処理対象とする小領域に含まれる全画素に対して行う。そうすると、その全画素に対する処理が終了した時点においてセレクター１１６が出力するデータは、差分最大値のデータとなる。
【００６２】
次に、テーブル選択部１１９が、セレクター１１６からの差分最大値と、閾値Ａ格納ＦＦ１１７からの閾値Ａとを用いて、差分最大値の絶対値が閾値Ａ未満であるか否かを判定する（Ｓ４０３）。ここで、その判定結果がＹｅｓの場合には、テーブル選択部１１９が、可変長符号が割り当てられている差分値が差分最大値と一致する第１の種類の可変長符号化テーブルを選択するためのテーブル選択情報を生成する（Ｓ４０４）。なお、可変長符号化テーブルにおいて、可変長符号が割り当てられている差分値の最大値及び最小値を差分値の終端ともいう。また、Ｓ４０４では、テーブル選択部１１９が、生成したテーブル選択情報のデータをセレクター１０７へ出力する。これにより、セレクター１０７は、このときのテーブル選択情報のデータに応じて、テーブル記憶部１０４からの複数の入力の中の一つを選択し、選択した入力からのデータを出力するようになる。また、Ｓ４０４では、テーブル選択部１１９が、差分最大値をデータ形成部１０８へ出力する。
【００６３】
一方、Ｓ４０３の判定結果がＮｏの場合には、テーブル選択部１１９が、閾値Ｂ格納ＦＦ１１８からの閾値Ｂのデータを更に用いて、差分最大値の絶対値が閾値Ｂ未満であるか否かを判定する（Ｓ４０５）。ここで、その判定結果がＹｅｓの場合には、テーブル選択部１１９が、可変長符号が割り当てられている差分値が差分最大値と一致する第２の種類の可変長符号化テーブルを選択するためのテーブル選択情報を生成する（Ｓ４０６）。また、Ｓ４０６では、テーブル選択部１１９が、そのテーブル選択情報のデータをセレクター１０７へ出力する。これにより、セレクター１０７は、このときのテーブル選択情報のデータに応じて、テーブル記憶部１０５からの複数の入力の中の一つを選択し、選択した入力からのデータを出力するようになる。また、Ｓ４０６では、テーブル選択部１１９が、差分最大値をデータ形成部１０８へ出力する。
【００６４】
一方、Ｓ４０５の判定結果がＮｏの場合には、テーブル選択部１１９が、第３の種類の可変長符号化テーブルを選択するためのテーブル選択情報を生成する（Ｓ４０７）。また、Ｓ４０７では、テーブル選択部１１９が、そのテーブル選択情報をセレクター１０７へ出力する。これにより、セレクター１０７は、このときのテーブル選択情報のデータに応じて、テーブル記憶部１０６からの入力を選択し、選択した入力からのデータを出力するようになる。また、Ｓ４０７では、テーブル選択部１１９が、閾値Ｂのデータをデータ形成部１０８へ出力する。
【００６５】
Ｓ４０４、Ｓ４０６、又はＳ４０７の後は、生成されたテーブル選択情報に応じた可変長符号化テーブルを用いて、処理対象とする小領域を画素毎に可変長符号化する処理を行う（Ｓ４０８乃至Ｓ４１０）。
【００６６】
なお、本実施例では、このような画素毎の処理を次のような画素の順番で行うものとする。まず、小領域の左上の画素から水平方向に順に処理を行い、それを終えると、一つ下の左側の画素から再び水平方向に順に処理を行う。以降は、小領域の右下の画素まで、そのような水平方向に順に行う処理を垂直方向に順に繰り返す。
【００６７】
例えば、Ｓ４０８乃至Ｓ４１０の処理が次のようにして行われる。
テーブル選択情報に応じた可変長符号化テーブルを用いて、処理対象画素の差分値を可変長符号化する（Ｓ４０８）。まず、全体制御部１０９は、処理対象画素に応じた画素要求信号をメモリ１０１へ出力する。メモリ１０１は、全体制御部１０９から入力される画素要求信号に応じて、対応する画素データを出力する。予測画素値作成部１０３は、メモリ１０１から入力される画素データを用いて予測画素値を作成し、そのデータを出力する。差分値計算部１０２は、メモリ１０１から入力される画素データと、予測画素値作成部１０３から入力される予測画素値のデータとを用いて、画素値と予測画素値との間の差分値を算出し、そのデータを出力する。そして、テーブル記憶部１０４、１０５の各々は、差分値計算部１０２から入力される差分値のデータに応じて、対応する可変長符号を有する可変長符号化テーブル毎に、対応する可変長符号のデータを出力する。また、テーブル記憶部１０６は、差分値計算部１０２から入力される差分値のデータに応じて、対応する可変長符号又はエスケープ符号のデータを出力する。但し、エスケープ符号のデータを出力する際には、その時に入力された差分値のデータも出力する。セレクター１０７は、テーブル選択部１１９から入力されるテーブル選択情報のデータに応じて、テーブル記憶部１０４、１０５からの一つの入力、又は、テーブル記憶部１０６からの入力を選択し、選択した入力からのデータをデータ形成部１０８へ出力する。これにより、テーブル選択情報に応じた可変長符号化テーブルを用いて、処理対象画素の差分値が可変長符号化され、そのデータ（可変長符号のデータ、又は、エスケープ符号及び差分値のデータ）が、データ形成部１０８へ出力される。
【００６８】
このようにして、処理対象画素の差分値の可変長符号化が終了すると、次に、処理対象とする小領域に含まれる全画素の差分値の可変長符号化を終了したか否かを判定する（Ｓ４０９）。ここで、その判定結果がＮｏの場合には、処理対象とする小領域において、処理対象画素を次の画素に変更する（Ｓ４１０）。すなわち、処理対象画素位置を更新する。Ｓ４１０の後は、Ｓ４０８へ戻り、以降は、Ｓ４０９の判定結果がＹｅｓになるまで、上記のＳ４０８乃至Ｓ４１０の処理を繰り返す。
【００６９】
一方、Ｓ４０９の判定結果がＹｅｓの場合には、データ形成部１０８は、処理対象とする小領域の符号化データを生成する（Ｓ４１１）。この符号化データは、差分最大値、及び、各画素の差分値の符号化データを含む。ここで、差分最大値は、Ｓ４０４、Ｓ４０５、又はＳ４０７において、テーブル選択部１１９から入力された、差分最大値又は閾値Ｂのデータである。また、各画素の差分値の符号化データは、上記のＳ４０８乃至Ｓ４１０の処理が繰り返される毎にセレクター１０７から入力されたデータである。
【００７０】
次に、符号化対象の画像に含まれる全小領域の可変長符号化を終了したか否かを判定する（Ｓ４１２）。ここで、その判定結果がＮｏの場合には、処理対象とする小領域を次の小領域に変更する（Ｓ４１３）。すなわち、処理対象とする小領域を更新する。Ｓ４１３の後は、Ｓ４０２へ戻り、以降は、Ｓ４１２の判定結果がＹｅｓになるまで、上記のＳ４０２乃至Ｓ４１３の処理を繰り返す。
【００７１】
図９は、このような処理の繰り返しにより、１６×１６画素の小領域毎に、差分最大値が求められ、その差分最大値に応じて可変長符号化テーブルが選択される様子を概念的に示す図である。このように、小領域毎に、可変長符号化テーブルが選択され、選択された可変長符号化テーブルを用いて変長符号化が行われる。
【００７２】
一方、Ｓ４１２の判定結果がＹｅｓの場合には、データ形成部１０８は、符号化対象画像の符号化データを形成する（Ｓ４１４）。この符号化対象画像の符号化データは、小領域サイズのデータと各小領域の符号化データとを含む。ここで、小領域サイズのデータは、Ｓ４０１で設定された小領域サイズのデータである。また、各小領域の符号化データは、上記のＳ４０２乃至Ｓ４１３の処理が繰り返される毎にＳ４１１で生成された小領域の符号化データである。そして、符号化対象画像の符号化データの形成が終了すると、本フローが終了する。なお、このようにして形成された符号化対象画像の符号化データは、データ形成部１０８により出力され、例えば、本実施例に係る可変長符号化装置により外部へ送信される。
【００７３】
図１０は、Ｓ４１４で形成される符号化対象画像の符号化データのデータ構造の一例を示す図である。
図１０に示したように、符号化対象画像の符号化データは、はじめに小領域サイズのデータが配置され、以降は、各小領域の符号化データが、処理された順番に配置される（図１０の小領域０、１、・・・、Ｍを参照）。各小領域の符号化データは、はじめに、差分最大値のデータとして、差分最大値又は閾値Ｂのデータが配置される。また、それ以降は、各画素の差分値の符号化データが、処理された順番に配置される（図１０の画素位置０、１、・・・、Ｎを参照）。
【００７４】
ここで、小領域サイズは、２ｂｉｔの固定長データで表される。例えば、４×４画素の小領域サイズは「００」の２ｂｉｔデータで表され、８×８画素の小領域サイズは「０１」の２ｂｉｔデータで表され、１６×１６画素の小領域サイズは「１１」の２ｂｉｔデータで表される。
【００７５】
また、各小領域の符号化データにおいて、差分最大値は、正負を表す符号ｂｉｔと０から閾値Ｂ（３２）までを表現可能な６ｂｉｔの、合計７ｂｉｔの固定長データで表される。なお、符号ｂｉｔは、正の符号を「０」の１ｂｉｔデータで表し、負の符号を「１」の１ｂｉｔデータで表す。このように、本実施例では、差分最大値のデータとして、符号ｂｉｔを除くと、０から閾値Ｂまでの値を表現可能な６ｂｉｔのデータが有ればよく、０から２５５までの値を表現可能な８ｂｉｔのデータを必要としない。従って、符号化対象画像の符号化データの符号量を、より削減することが可能である。
【００７６】
また、各小領域の符号化データにおいて、各画素の差分値の符号化データは、差分値の可変長符号のデータ、又は、エスケープ符号及び差分値である。ここで、差分値の可変長符号のデータは、可変長データである。また、エスケープ符号及び差分値は、エスケープ符号が可変長データであり、差分値のデータが９ｂｉｔ（符号ｂｉｔ＋８ｂｉｔ）の固定長データである。なお、固定長データは、固定長符号のデータともいい、可変長データは、可変長符号のデータともいう。
【００７７】
以上のように、本実施例に係る可変長符号化装置によれば、符号化対象画像を小領域毎に可変長符号化する際に、その小領域毎に使用する可変長符号化テーブルを、次のようにして選択することにより、最適な可変長符号化テーブルを選択することができる。例えば、小領域に含まれる各画素における差分値の中で、その絶対値が最大となる差分値（差分最大値）に応じて、可変長符号化テーブルが選択されることで、最も符号量を少なくする可変長符号化テーブルが選択される。従って、従来のように、可変長符号化テーブルを選択する際に、複数の可変長符号化テーブルの各々を用いた場合の可変長符号化後の符号量を全て計算する、といった処理は不要となる。そのため、可変長符号化テーブルの選択に要する演算量が削減される。また、並列化や動作周波数の増大といった改変が不要となるため、回路構成が複雑になることもない。
【００７８】
また、第２の種類の可変長符号化テーブルでは、図３(b) のＳ２０５により、差分値の最大値に割り当てられている可変長符号が、その差分値の最大値周辺に割り当てられている可変長符号よりも、符号長が短くなっている。また、差分値の最小値に割り当てられている可変長符号が、その差分値の最小値周辺に割り当てられている可変長符号よりも、符号長が短くなっている。さらに、第３の種類の可変長符号化テーブルでは、図３(c) のＳ３０５により、エスケープに割り当てられている可変長符号（エスケープ符号）が、閾値Ｂ付近の差分値に割り当てられている可変長符号よりも、符号長が短くなっている。そのため、小領域の画像が、例えばエッジ領域を含む画像のように、大きな差分値が連続して存在する画像であって、その小領域が第２又は第３の種類の可変長符号化テーブルを用いて可変長符号化が行われた場合には、符号化後の符号量を、より減らすことができる。
【００７９】
次に、本実施例に係る可変長符号化装置によって符号化された符号化データ（図７ＢのＳ４１４で形成された符号化データ）を復号化する、本実施例に係る可変長復号化装置について説明する。
【００８０】
本実施例に係る可変長復号化装置は、符号化データを画像の小領域毎に可変長復号化する装置であって、小領域毎に、複数の可変長符号化テーブルの中から一つの可変長符号化テーブルを選択し、その可変長符号化テーブルを用いて可変長復号化を行う。
【００８１】
図１１Ａ及び図１１Ｂは、本実施例に係る可変長復号化装置の構成例を示す図である。
図１１Ａ及び図１１Ｂに示したように、本実施例に係る可変長復号化装置は、メモリ２０１、固定長／可変長切出部２０２、テーブル記憶部２０３、２０４、２０５、セレクター（ＳＥＬ）２０６、画素復元部２０７、全体制御部２０８を含む。ここで、固定長／可変長切出部２０２は取得部の一例である。セレクター２０６は選択部の一例である。テーブル記憶部２０３、２０４、２０５は可変長復号化部の一例である。画素復元部２０７は復元部の一例である。
【００８２】
メモリ２０１は、本実施例に係る可変長符号化装置により符号化された符号化データ（図７ＢのＳ４１４で形成された符号化データ）を格納する。
固定長／可変長切出部２０２は、メモリ２０１に格納されている符号化データを取得する。また、固定長／可変長切出部２０２は、符号化データから、固定長符号のデータである小領域サイズのデータを切り出し、それを全体制御部２０８へ出力する。
【００８３】
また、固定長／可変長切出部２０２は、小領域サイズのデータを切り出した後に、全体制御部２０８から入力される固定長情報又は可変長情報のデータに応じて、残りの符号化データから固定長符号又は可変長符号のデータを、順次切り出す。切り出す固定長符号のデータは、小領域毎の差分最大値のデータであり、切り出す可変長符号のデータは、画素毎の差分値の可変長符号又はエスケープ符号のデータである。なお、これらのデータの切り出し位置は、セレクター２０６から入力される符号長のデータに基づいて決定することができる。また、固定長／可変長切出部２０２は、切り出した固定長符号のデータを全体制御部２０８へ出力し、切り出した可変長符号のデータをテーブル記憶部２０３、２０４、２０５へ出力する。
【００８４】
また、固定長／可変長切出部２０２は、切り出した可変長符号のデータを出力する毎に、画素更新信号を全体制御部２０８へ出力する。また、固定長／可変長切出部２０２は、セレクター２０６からエスケープのデータが入力されると、そのエスケープに係る可変長符号（エスケープ符号）に続く固定長符号のデータ（閾値Ｂ以上だった場合の差分値のデータ）を符号化データから切り出す。そして、その切り出したデータを画素復元部２０７へ出力する。
【００８５】
テーブル記憶部２０３は、複数の第１の種類の可変長符号化テーブルを記憶する。なお、この複数の第１の種類の可変長符号化テーブルは、本実施例に係る可変長符号化装置のテーブル記憶部１０４に記憶されている複数の第１の種類の可変長符号化テーブルと同じである。テーブル記憶部２０３は、固定長／可変長切出部２０２から入力される可変長符号のデータ（差分値の可変長符号又はエスケープ符号のデータ）に応じて、対応する差分値を有する第１の種類の可変長符号化テーブル毎に、対応する差分値のデータを出力する。また、テーブル記憶部２０３は、固定長／可変長切出部２０２から入力される可変長符号のデータから、その可変長符号の符号長を求め、その符号長のデータをセレクター２０６へ出力する。
【００８６】
テーブル記憶部２０４は、複数の第２の種類の可変長符号化テーブルを記憶する。なお、この複数の第２の種類の可変長符号化テーブルは、本実施例に係る可変長符号化装置のテーブル記憶部１０５に記憶されている複数の第２の種類の可変長符号化テーブルと同じである。テーブル記憶部２０４は、固定長／可変長切出部２０２から入力される可変長符号のデータ（差分値の可変長符号又はエスケープ符号のデータ）に応じて、対応する差分値を有する第２の種類の可変長符号化テーブル毎に、対応する差分値のデータを出力する。また、テーブル記憶部２０４は、固定長／可変長切出部２０２から入力される可変長符号のデータから、その可変長符号の符号長を求め、その符号長のデータをセレクター２０６へ出力する。
【００８７】
テーブル記憶部２０５は、第３の種類の可変長符号化テーブルを記憶する。なお、この第３の種類の可変長符号化テーブルは、本実施例に係る可変長符号化装置のテーブル記憶部１０６に記憶されている第３の種類の可変長符号化テーブルと同じである。テーブル記憶部２０５は、固定長／可変長切出部２０２から入力される可変長符号のデータ（差分値の可変長符号又はエスケープ符号のデータ）に応じて、対応する差分値又はエスケープのデータを出力する。また、テーブル記憶部２０５は、固定長／可変長切出部２０２から入力される可変長符号のデータから、その可変長符号の符号長を求め、その符号長のデータをセレクター２０６へ出力する。
【００８８】
セレクター２０６は、全体制御部２０８から入力されるテーブル選択情報のデータに応じて、テーブル記憶部２０３、２０４、２０５からの複数の入力の中の一部を選択する。例えば、テーブル選択情報のデータに応じて、テーブル記憶部２０３からの符号長のデータに係る入力と、テーブル記憶部２０３からの差分値のデータに係る複数の入力の中の一つとを選択する。或いは、テーブル選択情報のデータに応じて、テーブル記憶部２０４からの符号長のデータに係る入力と、テーブル記憶部２０４からの差分値のデータに係る複数の入力の中の一つとを選択する。若しくは、テーブル選択情報のデータに応じて、テーブル記憶部２０５からの入力を選択する。そして、選択した入力からのデータを出力する。ここで、セレクター２０６は、選択した入力からの符号長のデータを、固定長／可変長切出部２０２へ出力する。また、セレクター２０６は、選択した入力からの差分値のデータを画素復元部２０７へ、又は、選択した入力からのエスケープのデータを画素復元部２０７と固定長／可変長切出部２０２へ、出力する。
【００８９】
画素復元部２０７は、入力されるデータに基づいて画素（画素値）を復元する。具体的には、セレクター２０６から入力される差分値と、全体制御部２０８から入力される画素位置のデータとに基づいて、その画素位置の画素（画素値）を復元する。或いは、セレクター２０６から入力されるエスケープのデータと、固定長／可変長切出部２０２から入力される差分値のデータと、全体制御部２０８から入力される画素位置のデータとに基づいて、その画素位置の画素（画素値）を復元する。なお、このようにして復元された画素（画素値）のデータ（画素データ）は、画素復元部２０７により出力され、例えば、所定のメモリに格納される。
【００９０】
全体制御部２０８は、本実施例に係る可変長復号化装置の全体動作を制御する。また、全体制御部２０８は、小領域サイズ格納ＦＦ（FlipFlop）２１１、セレクター（SEL）２１２、画素位置格納ＦＦ（FlipFlop）２１３、差分最大値格納ＦＦ（FlipFlop）２１４を含む。また、全体制御部２０８は、更に、閾値Ａ格納ＦＦ（FlipFlop）２１５、閾値Ｂ格納ＦＦ（FlipFlop）２１６、テーブル選択部２１７を含む。
【００９１】
小領域サイズ格納ＦＦ２１１は、固定長／可変長切出部２０２から入力される小領域サイズを格納し、小領域サイズをセレクター２１２へ出力する。
セレクター２１２は、小領域サイズ格納ＦＦ２１１から入力される小領域サイズのデータと、画素位置格納ＦＦ２１３から入力される画素位置のデータとに基づいて、固定長情報又は可変長情報のデータを生成し、そのデータを固定長／可変長切出部２０２へ出力する。ここで、固定長情報は、次に切り出すデータが固定長符号のデータであることを示す情報である。また、可変長情報は、次に切り出すデータが可変長符号のデータであることを示す情報である。なお、符号化データのデータ構造は図１０に示したように予め定められているので、小領域サイズのデータと画素位置のデータとに基づいて、次に切り出すデータが固定長符号のデータであるのか、可変長符号のデータであるのかを、決定することが可能である。
【００９２】
画素位置格納ＦＦ２１３は、復号化対象（処理対象）の画素位置のデータを格納し、そのデータをセレクター２１２及び画素復元部２０７へ出力する。また、画素位置格納ＦＦ２１３は、固定長／可変長切出部２０２から入力される画素更新信号に基づいて、格納している復号化対象の画素位置のデータを更新する。
【００９３】
差分最大値格納ＦＦ２１４は、固定長／可変長切出部２０２から入力される差分最大値のデータを格納する。また、そのデータをテーブル選択部２１７へ出力する。
閾値Ａ格納ＦＦ２１５は、外部から入力される閾値Ａを格納する。また、そのデータをテーブル選択部２１７へ出力する。
【００９４】
閾値Ｂ格納ＦＦ２１６は、外部から入力される閾値Ｂを格納する。また、そのデータをテーブル選択部２１７へ出力する。
テーブル選択部２１７は、小領域の復号化に使用する可変長符号化テーブルを、テーブル記憶部２０３、２０４、２０５に記憶されている複数の可変長符号化テーブルの中から選択するためのテーブル選択情報を生成する。例えば、差分最大値格納ＦＦ２１４から入力される差分最大値のデータと、閾値Ａ格納ＦＦ２１５から入力される閾値Ａと、閾値Ｂ格納ＦＦ２１６から入力される閾値Ｂとに基づいて、そのテーブル選択情報を生成する。そして、生成したテーブル選択情報をセレクター２０６へ出力する。
【００９５】
次に、このような構成を有する本実施例に係る可変長復号化装置の動作を説明する。
図１２Ａ及び図１２Ｂは、本実施例に係る可変長復号化装置が符号化データを画像の小領域毎に可変長復号化するときの動作を示すフローチャートである。
【００９６】
図１２Ａ及び図１２Ｂに示したように、本動作が開始すると、まず、固定長／可変長切出部２０２は、メモリ２０１に格納されている符号化データ（図７ＢのＳ４１４で形成された符号化データ）を取得する（Ｓ５０１）。
【００９７】
次に、その符号化データに含まれる小領域サイズのデータを復号化する（Ｓ５０２）。具体的には、固定長／可変長切出部２０２が、その符号化データから、固定長符号のデータである小領域サイズのデータを切り出し、それを全体制御部２０８の小領域サイズ格納ＦＦ２１１へ出力する。そして、それを小領域サイズ格納ＦＦ２１１が格納する。
【００９８】
次に、残りの符号化データを小領域毎に可変長復号化する処理を行う（Ｓ５０３乃至Ｓ５１４）。例えば、画素位置格納ＦＦ２１３をクリアし、次に、処理対象とする小領域の符号化データに含まれる差分最大値のデータを復号化する（Ｓ５０３）。例えば、固定長／可変長切出部２０２が、セレクター２１２から入力される固定長情報に応じて、処理対象とする小領域の符号化データから、固定長符号のデータである差分最大値のデータを切り出す。そして、切り出した差分最大値を全体制御部２０８の差分最大値格納ＦＦ２１４へ出力し、それを差分最大値格納ＦＦ２１４が格納する。
【００９９】
次に、テーブル選択部２１７は、差分最大値格納ＦＦ２１４から入力される差分最大値と閾値Ａ格納ＦＦ２１５から入力される閾値Ａとを用いて、差分最大値の絶対値が閾値Ａ未満であるか否かを判定する（Ｓ５０４）。ここで、その判定結果がＹｅｓの場合には、テーブル選択部２１７が、可変長符号が割り当てられている差分値の最大値又は最小値が、その差分最大値と一致する第１の種類の可変長符号化テーブルを選択するためのテーブル選択情報を生成する（Ｓ５０５）。また、Ｓ５０５では、テーブル選択部２１７が、生成したテーブル選択情報をセレクター２０６へ出力する。これにより、セレクター２０６は、このときのテーブル選択情報に応じて、テーブル記憶部２０３からの符号長のデータに係る入力と、テーブル記憶部２０３からの差分値のデータに係る複数の入力の中の一つとを選択し、選択した入力からのデータを出力するようになる。
【０１００】
一方、Ｓ５０４の判定結果がＮｏの場合には、テーブル選択部２１７が、閾値Ｂ格納ＦＦ２１６からの閾値Ｂを更に用いて、差分最大値の絶対値が閾値Ｂ未満であるか否かを判定する（Ｓ５０６）。ここで、その判定結果がＹｅｓの場合には、テーブル選択部２１７が、可変長符号が割り当てられている差分値の最大値又は最小値が、その差分最大値と一致する第２の種類の可変長符号化テーブルを選択するためのテーブル選択情報を生成する（Ｓ５０７）。また、Ｓ５０７では、テーブル選択部２１７が、そのテーブル選択情報のデータをセレクター２０６へ出力する。これにより、セレクター２０６は、このときのテーブル選択情報に応じて、テーブル記憶部２０４からの符号長のデータに係る入力と、テーブル記憶部２０４からの差分値のデータに係る複数の入力の中の一つとを選択し、選択した入力からのデータを出力するようになる。
【０１０１】
一方、Ｓ５０６の判定結果がＮｏの場合には、テーブル選択部２１７が、第３の種類の可変長符号化テーブルを選択するためのテーブル選択情報を生成する（Ｓ５０８）。また、Ｓ５０８では、テーブル選択部２１７が、そのテーブル選択情報をセレクター２０６へ出力する。これにより、セレクター２０６は、このときのテーブル選択情報のデータに応じて、テーブル記憶部２０５からの入力を選択し、選択した入力からのデータを出力するようになる。
【０１０２】
Ｓ５０５、Ｓ５０７、又はＳ５０８の後は、生成されたテーブル選択情報に応じた可変長符号化テーブルを用いて、処理対象とする小領域の符号化データを画素毎に可変長復号化し画素を復元する処理を行う（Ｓ５０９乃至Ｓ５１２）。例えば、生成されたテーブル選択情報に応じた可変長符号化テーブルを用いて、処理対象とする小領域の符号化データに含まれる処理対象画素の差分値の符号化データを可変長復号化する（Ｓ５０９）。例えば、固定長／可変長切出部２０２が、セレクター２１２から入力される可変長情報に応じて、処理対象とする小領域の符号化データから、処理対象画素の差分値の可変長符号のデータを切り出す。そして、切り出したデータを、テーブル記憶部２０３、２０４、２０５へ出力する。テーブル記憶部２０３、２０４の各々は、固定長／可変長切出部２０２から入力される可変長符号のデータに応じて、対応する差分値を有する可変長符号化テーブル毎に、対応する差分値のデータを出力する。また、テーブル記憶部２０５は、固定長／可変長切出部２０２から入力される可変長符号のデータに応じて、対応する差分値又はエスケープのデータを出力する。また、テーブル記憶部２０３、２０４、２０５の各々は、固定長／可変長切出部２０２から入力される可変長符号のデータから、その可変長符号の符号長を求め、その符号長のデータをセレクター２０６へ出力する。セレクター２０６は、テーブル選択部２１７から入力されるテーブル選択情報のデータに応じて、テーブル記憶部２０３、２０４、２０５からの複数の入力の中の一部を選択する。例えば、テーブル選択情報に応じて、テーブル記憶部２０３からの符号長のデータに係る入力と、テーブル記憶部２０３からの差分値に係る複数の入力の中の一つとを選択する。或いは、テーブル選択情報に応じて、テーブル記憶部２０４からの符号長のデータに係る入力と、テーブル記憶部２０４からの差分値に係る複数の入力の中の一つとを選択する。若しくは、テーブル選択情報に応じて、テーブル記憶部２０５からの入力を選択する。そして、選択した入力からの符号長のデータを固定長／可変長切出部２０２へ出力し、選択した入力からの差分値又はエスケープを画素復元部２０７へ出力する。なお、セレクター２０６がエスケープを出力した場合には、それが固定長／可変長切出部２０２へも出力される。この場合は、固定長／可変長切出部２０２が、そのエスケープに係る可変長符号（エスケープ符号）に続く固定長符号（閾値Ｂ以上だった場合の差分値）を符号化データから切り出す。そして、その切り出したデータを画素復元部２０７へ出力する。
【０１０３】
このようにして、処理対象画素の差分値の可変長復号化が終了すると、次に、画素復元部２０７が、セレクター２０６、固定長／可変長切出部２０２、及び画素位置格納ＦＦ２１３から入力されるデータに基づいて、画素の復元を行う（Ｓ５１０）。すなわち、処理対象画素の画素値を復元する。例えば、画素復元部２０７が、セレクター２０６から入力される差分値と、画素位置格納ＦＦ２１３から入力される画素位置とに基づいて、画素の復元を行う。或いは、画素復元部２０７が、セレクター２０６から入力されるエスケープと、固定長／可変長切出部２０２から入力される差分値のデータと、画素位置格納ＦＦ２１３から入力される画素位置とに基づいて、画素の復元を行う。
【０１０４】
このようにして、処理対象画素の復元が終了すると、次に、処理対象とする小領域に含まれる全画素の差分値の可変長復号化を終了したか否かを判定する（Ｓ５１１）。ここで、その判定結果がＮｏの場合には、処理対象とする小領域において、処理対象画素を次の画素に変更する（Ｓ５１２）。すなわち、処理対象画素位置を更新する。Ｓ５１２の後は、Ｓ５０９へ戻り、以降は、Ｓ５１１の判定結果がＹｅｓになるまで、上記のＳ５０９乃至Ｓ５１２の処理を繰り返す。
【０１０５】
一方、Ｓ５１１の判定結果がＹｅｓの場合には、次に、全小領域の可変長復号化が終了したか否かを判定する（Ｓ５１３）。ここで、その判定結果がＮｏの場合には、処理対象とする小領域を次の小領域に変更する（Ｓ５１４）。すなわち、処理対象とする小領域を更新する。Ｓ５１４の後は、Ｓ５０３へ戻り、以降は、Ｓ５１３の判定結果がＹｅｓになるまで、上記のＳ５０３乃至Ｓ５１４の処理を繰り返す。そして、Ｓ５１３の判定結果がＹｅｓになると、本フローが終了する。
【０１０６】
以上のように、本実施例に係る可変長復号化装置によれば、本実施例に係る可変長符号化装置により符号化された符号化データを復号化することができる。
【０１０７】
[実施例２]
本発明の実施例２に係る可変長符号化装置は、実施例１に係る可変長符号化装置と同様に、符号化対象画像を小領域毎に可変長符号化する装置である。また、実施例１に係る可変長符号化装置と同様に、小領域毎に、複数の可変長符号化テーブルの中から一つの可変長符号化テーブルを選択し、その可変長符号化テーブルを用いて可変長符号化を行う装置である。
【０１０８】
但し、実施例２に係る可変長符号化装置では、符号化対象画像を符号化したときに得られる符号化データの符号量の更なる削減を可能にするために、実施例１に係る可変長符号化装置の場合とは異なるデータ構造の符号化データを形成する。そのため、実施例２に係る可変長符号化装置は、一部の構成及び動作が、実施例１に係る可変長符号化装置と異なっている。
【０１０９】
図１３Ａ及び図１３Ｂは、本実施例に係る可変長符号化装置の構成例を示す図である。
図１３Ａ及び図１３Ｂに示したように、本実施例に係る可変長符号化装置は、メモリ１０１、差分値計算部１０２、予測画素値作成部１０３、テーブル記憶部１０４、１０５、１０６、セレクター１０７を含む。なお、これらの構成については、実施例１に係る可変長符号化装置と同じであるので、ここでは、その説明を省略する。また、本実施例に係る可変長符号化装置は、更に、データ形成部３０８と全体制御部３０９を含む。
【０１１０】
なお、本実施例に係る可変長符号化装置も、実施例１に係る可変長符号化装置と同様に、各小領域の可変長符号化においては、小領域の各画素の差分値を求める処理を２回行う。１回目の処理は、小領域の可変長符号化に用いる可変長符号化テーブルを選択するために行う。２回目の処理は、選択された可変長符号化テーブルを用いて実際に小領域の可変長符号化を行うために行う。そのため、１回目の処理により差分値計算部１０２からテーブル記憶部１０４、１０５、１０６へ出力される差分値は無効とされる。
【０１１１】
データ形成部３０８は、セレクター１０７から入力される小領域毎のデータと全体制御部３０９から入力される小領域毎のデータとに基づいて、小領域毎の符号化データを生成する。ここで、全体制御部３０９から入力される小領域毎のデータは、符号化モード、最大値又は最初値の個数、最大値又は最小値、及び、最大値又は最小値の位置情報である。なお、データ形成部３０８は、小領域毎の符号化データを生成する際に、小領域毎に、符号化モードに応じたデータ構造の符号化データを生成する。また、データ形成部３０８は、生成した各小領域の符号化データを用いて、符号化対象画像の符号化データを形成する。なお、このようにして形成された符号化対象画像の符号化データはデータ形成部３０８により出力され、例えば、本実施例に係る可変長符号化装置により外部へ送信される。
【０１１２】
全体制御部３０９は、本実施例に係る可変長符号化装置の全体動作を制御する。この制御では、例えば、符号化対象画像を小領域毎に可変長符号化する際に、各小領域での処理対象画素に応じて、対応する画素要求信号をメモリ１０１へ出力する。
【０１１３】
全体制御部３０９は、最大値格納ＦＦ（FlipFlop）３１１、最小値格納ＦＦ（FlipFlop）３１２、比較器３１３、３１４、３１５、セレクター（SEL）３１６、閾値Ａ格納ＦＦ（FlipFlop）３１７、及び、閾値Ｂ格納ＦＦ（FlipFlop）３１８を含む。また、全体制御部３０９は、更に、テーブル選択部３１９、最大値／最小値個数格納ＦＦ（FlipFlop）３２０、加算器３２１、画素位置出力部３２２、最大値／最小値位置情報格納ＦＦ（FlipFlop）３２３、符号化モード判定部３２４を含む。ここで、テーブル選択部３１９は取得部の一例である。符号化モード判定部３２４は判定部の一例である。
【０１１４】
比較器３１３は、差分値計算部１０２から入力される差分値と、最大値格納ＦＦ３１１から入力される最大値のデータとを比較する。ここで、比較器３１３は、差分値が最大値よりも大きい場合には、この時の差分値を最大値格納ＦＦ３１１に格納させる第１の信号を出力する。また、比較器３１３は、差分値と最大値が等しい場合には、第２の信号を出力する。
【０１１５】
最大値格納ＦＦ３１１は、比較器３１３から入力される信号が、第１の信号である場合には、この時に差分値計算部１０２から入力される差分値を最大値として格納する。また、最大値格納ＦＦ３１１は、格納している最大値を出力する。
【０１１６】
比較器３１４は、差分値計算部１０２から入力される差分値と、最小値格納ＦＦ３１２から入力される最小値とを比較する。ここで、比較器３１４は、差分値が最小値よりも小さい場合には、この時の差分値を最小値格納ＦＦ３１２に格納させる第３の信号を出力する。また、比較器３１４は、差分値と最小値が等しい場合には、第４の信号を出力する。
【０１１７】
最小値格納ＦＦ３１２は、比較器３１４から入力される信号が、第３の信号である場合には、この時に差分値計算部１０２から入力される差分値を最小値として格納する。また、最小値格納ＦＦ３１２は、格納している最小値を出力する。
【０１１８】
比較器３１５は、最大値格納ＦＦ３１１から入力される最大値と、最小値格納ＦＦ３１２から入力される最小値とを比較する。ここで、比較器３１５は、最大値の絶対値が最小値の絶対値以上の場合には、最大値を選択するための最大値選択信号を出力する。一方、最大値の絶対値が最小値の絶対値未満の場合には、最小値を選択するための最小値選択信号を出力する。
【０１１９】
セレクター３１６は、比較器３１５から入力される信号が最大値選択信号である場合には、最大値格納ＦＦ１１１からの入力を選択し、選択した入力からのデータを出力する。一方、比較器３１５から入力される信号が最小値選択信号である場合には、最小値格納ＦＦ３１２からの入力を選択し、選択した入力からのデータを出力する。
【０１２０】
なお、セレクター３１６から出力されるデータのうち、後述のテーブル選択部３１９により実際に使用されるデータは、テーブル選択部３１９がテーブル選択情報を生成するための処理を開始する時にセレクター３１６から出力されているデータである。
【０１２１】
閾値Ａ格納ＦＦ３１７は、外部から入力される閾値Ａを格納し、そのデータを出力する。なお、閾値Ａは、実施例１と同様に、１０とする。
閾値Ｂ格納ＦＦ３１８は、外部から入力される閾値Ｂを格納し、そのデータを出力する。なお、閾値Ｂは、実施例１と同様に、３２とする。
【０１２２】
テーブル選択部３１９は、小領域の符号化に使用する可変長符号化テーブルを、テーブル記憶部１０４、１０５、１０６に記憶されている複数の可変長符号化テーブルの中から選択するためのテーブル選択情報を生成する。例えば、セレクター３１６から入力される最大値又は最小値と、閾値Ａ格納ＦＦ３１７から入力される閾値Ａと、閾値Ｂ格納ＦＦ３１８から入力される閾値Ｂとに基づいて、そのテーブル選択情報を生成する。そして、生成したテーブル選択情報をセレクター１０７へ出力する。
【０１２３】
最大値／最小値個数格納ＦＦ３２０と、加算器３２１と、画素位置出力部３２２と、最大値／最小値位置情報格納ＦＦ３２３と、符号化モード判定部３２４は、上記の２回目の処理中に差分値計算部１０２から出力される差分値に対してのみ有効に動作する。
【０１２４】
最大値／最小値個数格納ＦＦ３２０は、最大値又は最小値の個数を格納すると共に、格納しているデータを出力する。例えば、比較器３１５から入力される信号に応じて、比較器３１３からの入力、又は、比較器３１４からの入力を選択する。例えば、比較器３１５から入力される信号が最大値選択信号である場合には比較器３１３からの入力を選択し、それが最小値選択信号である場合には比較器３１４からの入力を選択する。そして、選択した入力からの信号が第２の信号又は第４の信号である場合には、格納する個数のデータを、加算器３２１から入力される個数のデータへ更新する。なお、加算器３２１は、最大値／最小値個数格納ＦＦ３２０から入力される個数のデータから、その個数に１を加算し、その加算後の個数のデータを出力する。このように、最大値／最小値個数格納ＦＦ３２０は、第２の信号又は第４の信号が入力される毎に、１が加算された個数のデータを格納すると共にそのデータを出力する。
【０１２５】
但し、上記の２回目の処理が開始してから初めに第２の信号又は第４の信号が入力された時に限り、最大値／最小値個数格納ＦＦ３２０は、格納する個数のデータを更新しない。その理由は、次の理由による。最大値／最小値個数格納ＦＦ３２０が出力する個数のデータは、小領域サイズに応じた固定長のデータである。小領域サイズが４×４画素の場合は４ｂｉｔのデータとなり、８×８画素の場合は６ｂｉｔのデータとなり、１６×１６画素の場合は８ｂｉｔのデータとなる。例えば、８×８画素の場合、最大値又は最小値の個数の取り得る範囲は１から６４である。しかしながら、６ｂｉｔでは、０から６３までしか表現できない。そこで、上記のような処理を行うことにより、最大値／最小値個数格納ＦＦ３２０が出力する個数を、意図的に、実際の個数よりも１つ小さい個数としている。そのため、後に、実際の個数が必要な場合には、最大値／最小値個数格納ＦＦ３２０が出力する個数に１を加えた個数を使用するように、処理が行われる。
【０１２６】
画素位置出力部３２２は、処理対象とする画素の位置情報を出力する。
最大値／最小値位置情報格納ＦＦ３２３は、最大値又は最小値の位置情報を格納すると共に、格納しているデータを出力する。なお、最大値又は最小値の位置情報は、差分値の最大値又は最小値が得られた画素の位置を表す情報である。例えば、最大値／最小値位置情報格納ＦＦ３２３は、比較器３１５から入力される信号に応じて、比較器３１３からの入力、又は、比較器３１４からの入力を選択する。例えば、比較器３１５から入力される信号が最大値選択信号である場合には比較器３１３からの入力を選択し、それが最小値選択信号である場合には比較器３１４からの入力を選択する。そして、選択した入力からの信号が第２の信号又は第４の信号である場合には、画素位置出力部３２２から入力される位置情報を最大値又は最小値の位置情報として格納すると共に、それをデータ形成部３０８へ出力する。このように、最大値／最小値位置情報格納ＦＦ３２３は、その第２の信号又は第４の信号が入力される毎に、画素位置出力部３２２からの位置情報を、最大値又は最小値の位置情報として格納すると共に、それをデータ形成部３０８へ出力する。
【０１２７】
符号化モード判定部３２４は、符号化モードを判定し、判定した符号化モード（符号化モードを表すデータ）をデータ形成部３０８へ出力する。例えば、比較器３１５から入力される信号に応じて、比較器３１３からの入力、又は、比較器３１４からの入力を選択する。例えば、比較器３１５から入力される信号が最大値選択信号である場合には比較器３１３からの入力を選択し、それが最小値選択信号である場合には比較器３１４からの入力を選択する。また、比較器３１５から入力される信号に応じて、最大値格納ＦＦ３１１からの入力、又は、最小値格納ＦＦ３１２からの入力を選択する。例えば、比較器３１５から入力される信号が最大値選択信号である場合には最大値格納ＦＦ３１１からの入力を選択し、それが最小値選択信号である場合には最小値格納ＦＦ３１２からの入力を選択する。そして、選択した比較器３１３からの入力が第２の信号である時、又は、選択した比較器３１４からの入力が第４の信号である時に、セレクター１０７から入力される可変長符号から、その可変長符号の符号長を求める。但し、選択した比較器３１３からの入力が第２の信号である時に、選択した最大値格納ＦＦ３１１から入力されるデータが表す最大値が閾値Ｂ以上である場合には、上記の可変長符号の符号長の代わりに、次のような符号長を求める。すなわち、このような場合には、上記の可変長符号の代わりに、選択した最大値格納ＦＦ３１１から入力されるデータの符号長にエスケープ符号の符号長を加算した符号長を求める。或いは、選択した比較器３１４からの入力が第４の信号である時に、選択した最小値格納ＦＦ３１２から入力されるデータが表す最小値の絶対値が閾値Ｂ以上である場合には、上記の可変長符号の符号長の代わりに、次のような符号長を求める。すなわち、このような場合には、上記の可変長符号の代わりに、選択した最小値格納ＦＦ３１２から入力されるデータの符号長にエスケープ符号の符号長を加算した符号長を求める。これにより、選択した比較器３１３からの入力が第２の信号である時に、最大値が閾値Ｂ未満の場合には、最大値の可変長符号の符号長が求められ、最大値が閾値Ｂ以上の場合には、最大値の符号長にエスケープ符号の符号長を加算した符号長が求められる。或いは、選択した比較器３１４からの入力が第４の信号である時に、最小値の絶対値が閾値Ｂ未満の場合には、最小値の可変長符号の符号長が求められ、最小値の絶対値が閾値Ｂ以上の場合には、最小値の符号長にエスケープ符号の符号長を加算した符号長が求められる。そして、このようにして求めた符号長と、最大値／最小値個数格納ＦＦ３２０から入力される最大値又は最小値の個数とに基づいて、符号量Ａと符号量Ｂを求める。ここで、符号量Ａは第１の符号量の一例であり、符号量Ｂは第２の符号量の一例である。なお、最大値又は最小値の個数は、上記の２回目の処理による差分値に対する処理結果が全て最大値／最小値個数格納ＦＦ３２０に格納されるデータに反映された時点に最大値／最小値個数格納ＦＦ３２０から出力されたデータである。また、符号量Ａは、データ形成部３０８が符号化モード０に応じて形成する符号化データの符号量に対応し、符号量Ｂは、データ形成部３０８が符号化モード１に応じて形成する符号化データの符号量に対応する。ここで、符号化モード０は第１の符号化モードの一例であり、符号化モード１は第２の符号化モードの一例である。この符号量Ａと符号量Ｂを、比較器３１５から入力される信号に応じて、次のようにして求める。
【０１２８】
比較器３１５から入力される信号が最大値選択信号である場合には、次の２つの式（１）、（２）を用いて、符号量Ａと符号量Ｂを求める。
符号量Ａ＝最大値の符号長×最大値の個数    （１）
符号量Ｂ＝最大値の個数のｂｉｔ数＋最大値の位置情報のデータのｂｉｔ数×最大値の個数    （２）
【０１２９】
一方、比較器３１５から入力される信号が最小値選択信号である場合には、次の２つの式（３）、（４）を用いて、符号量Ａと符号量Ｂを求める。
符号量Ａ＝最小値の符号長×最小値の個数    （３）
符号量Ｂ＝最小値の個数のｂｉｔ数＋最小値の位置情報のｂｉｔ数×最小値の個数    （４）
【０１３０】
なお、式（１）において、最大値の符号長は、最大値の可変長符号の符号長、又は、最大値の符号長にエスケープ符号の符号長を加算した符号長である。また、式（３）において、最小値の符号長は、最小値の可変長符号の符号長、又は、最小値の符号長にエスケープ符号の符号長を加算した符号長である。
【０１３１】
また、式（１）、（２）、（３）、（４）において、最大値の個数、及び、最小値の個数は、最大値／最小値個数格納ＦＦ３２０から入力される個数に基づいて得られる。上記のとおり、最大値／最小値個数格納ＦＦ３２０からの個数は、実際の個数よりも１つ少ない。そこで、ここでは、最大値の個数、及び、最小値の個数を、最大値／最小値個数格納ＦＦ３２０から入力される個数に１を加えた個数として、計算が行われる。
【０１３２】
また、式（２）、（４）において、最大値の個数、最大値の位置情報、最小値の個数、及び、最小値の位置情報は、固定長データであり、そのｂｉｔ数は小領域サイズに応じて決定される。すなわち、小領域サイズのｂｉｔ数が４×４画素であれば４ｂｉｔとなり、それが８×８画素であれば６ｂｉｔとなり、それが１６×１６画素であれば８ｂｉｔとなる。
【０１３３】
このようにして符号量Ａと符号量Ｂを求めると、次に両者の比較を行い、符号量Ａが符号量Ｂ以下である場合には符号化モードを符号化モード０と判定し、符号量Ａが符号量Ｂよりも大きい場合には符号化モードを符号化モード１と判定する。そして、判定した符号化モードをデータ形成部３０８へ出力する。
【０１３４】
これにより、データ形成部３０８では、符号化モードに応じた符号化データの生成を行うことにより、より少ない符号量の符号化データを形成することができる。
【０１３５】
図１４は、小領域における各画素の位置情報の一例を説明する図である。
図１４に示した例は、小領域が８×８画素の小領域である場合の例である。この場合は、符号化対象画像３３１の各小領域における各画素の位置情報として、小領域の左上の画素３３２から右下の画素３３３まで矢印３３４に沿った順序で、０から６３までの各値が与えられる。なお、矢印３３４は、各小領域において、処理対象とする画素の順番を示すものでもある。従って、画素位置出力部３２２は、処理対象とする画素に応じて、対応する位置情報（この場合は、０から６３の何れかの値を表す６ｂｉｔの固定長データ）を出力する。また、符号化対象画像３３１において、処理対象とする小領域の順番は、矢印３３５に沿った順番となる。
【０１３６】
なお、図示はしないが、小領域が４×４画素の小領域である場合には、各小領域における各画素の位置情報として、小領域の左上の画素から右下の画素まで同様の順序で、０から１５までの各値が与えられる。また、小領域が１６×１６画素の小領域である場合には、各小領域における各画素の位置情報として、小領域の左上の画素から右下の画素まで同様の順序で、０から２５５までの各値が与えられる。
【０１３７】
図１５は、符号化モード判定部３２４が符号量Ａと符号量Ｂを求める場合の一例を説明するための図である。
図１５に示したように、小領域が４×４画素の小領域である場合において、処理対象とする小領域の各画素の差分値として、図１５に示したような差分値が得られたとき、符号化モード判定部３２４は、符号量Ａと符号量Ｂを、次のようにして求める。
【０１３８】
なお、このときは、小領域の画素の差分値の中で、その差分値の絶対値が最大となる差分値は３０となることから、比較器３１５の出力信号は最大値選択信号となる。そのため、符号化モード判定部３２４は、符号量Ａと符号量Ｂを、上記の２つの式（１）、（２）を用いて求める。この場合は、最大値が３０であるので、最大値は閾値Ｂ未満となる。ここでは、その最大値である３０の可変長符号の符号長を８ｂｉｔとする。また、最大値の個数は２である。従って、符号量Ａは、１６（＝８×２）となる。一方、最大値の個数のｂｉｔ数と、最大値の位置情報のｂｉｔ数は、小領域サイズが４×４であることから４ｂｉｔである。最大値の個数は、上記のとおり、２である。従って、符号量Ｂは、１２（＝４＋４×２）である。
【０１３９】
これにより、この場合は、符号量Ａ（１６）＞符号量Ｂ（１２）となるので、符号化モード判定部３２４は、符号化モードを符号化モード１と判定する。
次に、このような構成を有する本実施例に係る可変長符号化装置の動作を説明する。
【０１４０】
図１６Ａ及び図１６Ｂは、本実施例に係る可変長符号化装置が符号化対象画像を小領域毎に可変長符号化するときの動作を示すフローチャートである。
なお、図１６Ａ及び図１６Ｂに示した動作のうち、Ｓ６１１乃至Ｓ６１５を除く動作については、図７Ａ及び図７Ｂに示した動作と、基本的に同様の動作となる。
【０１４１】
図１６Ａ及び図１６Ｂに示したように、本動作が開始すると、まず、全体制御部３０９は、符号化対象画像を小領域毎に可変長符号化する際の小領域サイズを設定する（Ｓ６０１）。本実施例でも、小領域サイズを、１６×１６画素、８×８画素、又は４×４画素の何れかの小領域サイズに設定することが可能である。
【０１４２】
次に、符号化対象画像を、Ｓ６０１で設定された小領域サイズに応じた小領域毎に可変長符号化する処理を行う（Ｓ６０２乃至Ｓ６１７）。
なお、本実施例では、このような小領域毎の処理を、上記のとおり、図１４の矢印３３５に沿った順番で行うものとする。この順番は、実施例１での順番と同じである。
【０１４３】
例えば、Ｓ６０２乃至Ｓ６１７の処理が次のようにして行われる。
まず、符号化対象画像の処理対象とする小領域に含まれる画素毎に、画素値と予測画素値との間の差分値を算出し、その中から、差分値の絶対値が最大となる差分値（差分最大値）を求める（Ｓ６０２）。例えば、これが次のようにして行われる。まず、全体制御部３０９は、最大値格納ＦＦ３１１と最小値格納ＦＦ３１２をクリアする。次に、全体制御部３０９は、処理対象画素に応じた画素要求信号をメモリ１０１へ出力する。メモリ１０１は、全体制御部３０９から入力される画素要求信号に応じて、対応する画素データを出力する。予測画素値作成部１０３は、メモリ１０１から入力される画素データを用いて予測画素値を作成し、そのデータを出力する。差分値計算部１０２は、メモリ１０１から入力される画素データと予測画素値作成部１０３から入力される予測画素値とを用いて、処理対象画素における、画素値と予測画素値との間の差分値を算出し、そのデータを出力する。比較器３１３は、差分値計算部１０２からの差分値と最大値格納ＦＦ３１１からの最大値とを比較し、差分値が最大値よりも大きい場合には、この時の差分値を最大値格納ＦＦ３１１が格納する。また、比較器３１４は、差分値計算部１０２からの差分値と最小値格納ＦＦ３１２からの最小値とを比較し、差分値が最小値よりも小さい場合には、この時の差分値を最小値格納ＦＦ３１２が格納する。また、比較器３１５は、最大値格納ＦＦ３１１からの最大値と、最小値格納ＦＦ３１２からの最小値とを比較する。ここで、最大値の絶対値が最小値の絶対値以上の場合には、セレクター３１６が最大値格納ＦＦ３１１からの入力を選択し、選択した入力からのデータを出力する。一方、そうでない場合には、セレクター３１６が最小値格納ＦＦ３１２からの入力を選択し、選択した入力からのデータを出力する。そして、このような処理を、処理対象とする小領域に含まれる各画素に対して行う。そうすると、その全画素に対する処理が終了した時点においてセレクター３１６が出力するデータは、差分最大値となる。
【０１４４】
次に、テーブル選択部３１９が、セレクター３１６からの差分最大値と、閾値Ａ格納ＦＦ３１７からの閾値Ａとを用いて、差分最大値の絶対値が閾値Ａ未満であるか否かを判定する（Ｓ６０３）。ここで、その判定結果がＹｅｓの場合には、テーブル選択部３１９が、可変長符号が割り当てられている差分値の最大値又は最小値が差分最大値と一致する第１の種類の可変長符号化テーブルを選択するためのテーブル選択情報を生成する（Ｓ６０４）。また、Ｓ６０４では、テーブル選択部３１９が、生成したテーブル選択情報をセレクター１０７へ出力する。これにより、セレクター１０７は、このときのテーブル選択情報に応じて、テーブル記憶部１０４からの複数の入力の中の一つを選択し、選択した入力からのデータを出力するようになる。
【０１４５】
一方、Ｓ６０３の判定結果がＮｏの場合には、テーブル選択部３１９が、閾値Ｂ格納ＦＦ３１８からの閾値Ｂを更に用いて、差分最大値の絶対値が閾値Ｂ未満であるか否かを判定する（Ｓ６０５）。ここで、その判定結果がＹｅｓの場合には、テーブル選択部３１９が、可変長符号が割り当てられている差分値の最大値又は最小値が差分最大値と一致する第２の種類の可変長符号化テーブルを選択するためのテーブル選択情報を生成する（Ｓ６０６）。また、Ｓ６０６では、テーブル選択部３１９が、そのテーブル選択情報をセレクター１０７へ出力する。これにより、セレクター１０７は、このときのテーブル選択情報に応じて、テーブル記憶部１０５からの複数の入力の中の一つを選択し、選択した入力からのデータを出力するようになる。
【０１４６】
一方、Ｓ６０５の判定結果がＮｏの場合には、テーブル選択部３１９が、第３の種類の可変長符号化テーブルを選択するためのテーブル選択情報を生成する（Ｓ６０７）。また、Ｓ６０７では、テーブル選択部３１９が、そのテーブル選択情報をセレクター１０７へ出力する。これにより、セレクター１０７は、このときのテーブル選択情報に応じて、テーブル記憶部１０６からの入力を選択し、選択した入力からのデータを出力するようになる。
【０１４７】
Ｓ６０４、Ｓ６０６、又はＳ６０７の後は、全体制御部３０９が最大値／最小値個数格納ＦＦ３２０をクリアする。
そして、生成されたテーブル選択情報に応じた可変長符号化テーブルを用いて、処理対象とする小領域を画素毎に可変長符号化する処理を行う（Ｓ６０８乃至Ｓ６１０）。
【０１４８】
なお、本実施例では、このような画素毎の処理を、上記のとおり、図１４の矢印３３４に沿った順番で行うものとする。この順番は、実施例１での順番と同じである。
例えば、Ｓ６０８乃至Ｓ６１０の処理が次のようにして行われる。
【０１４９】
まず、生成されたテーブル選択情報に応じた可変長符号化テーブルを用いて、処理対象画素の差分値を可変長符号化する（Ｓ６０８）。例えば、これが次のようにして行われる。まず、全体制御部３０９は、処理対象画素に応じた画素要求信号をメモリ１０１へ出力する。メモリ１０１は、全体制御部３０９から入力される画素要求信号に応じて、対応する画素データを出力する。予測画素値作成部１０３は、メモリ１０１から入力される画素データを用いて予測画素値を作成し、そのデータを出力する。差分値計算部１０２は、メモリ１０１から入力される画素データと予測画素値作成部１０３から入力される予測画素値とを用いて、処理対象画素における、画素値と予測画素値との間の差分値を算出し、そのデータを出力する。そして、テーブル記憶部１０４、１０５の各々は、差分値計算部１０２から入力される差分値に応じて、対応する可変長符号を有する可変長符号化テーブル毎に、対応する可変長符号のデータを出力する。また、テーブル記憶部１０６は、差分値計算部１０２から入力される差分値に応じて、対応する可変長符号又はエスケープ符号のデータを出力する。但し、エスケープ符号を出力する際には、その時に入力された差分値も出力する。なお、この差分値は、正負を表す符号ｂｉｔと０から２５５までを表現可能な８ｂｉｔの、合計９ｂｉｔの固定長のデータである。セレクター１０７は、テーブル選択部３１９から入力されるテーブル選択情報に応じて、テーブル記憶部１０４、１０５からの一つの入力、又は、テーブル記憶部１０６からの入力を選択し、選択した入力からのデータをデータ形成部３０８へ出力する。これにより、テーブル選択情報に応じた可変長符号化テーブルを用いて、処理対象画素の差分値が可変長符号化され、そのデータ（可変長符号のデータ、又は、エスケープ符号及び差分値）が、データ形成部３０８へ出力される。
【０１５０】
このようにして、処理対象画素の差分値の可変長符号化が終了すると、次に、処理対象とする小領域に含まれる全画素の差分値の可変長符号化を終了したか否かを判定する（Ｓ６０９）。ここで、その判定結果がＮｏの場合には、処理対象とする小領域において、処理対象画素を次の画素に変更する（Ｓ６１０）。すなわち、処理対象画素位置を更新する。Ｓ６１０の後は、Ｓ６０８へ戻り、以降は、Ｓ６０９の判定結果がＹｅｓになるまで、上記のＳ６０８乃至Ｓ６１０の処理を繰り返す。
【０１５１】
なお、上記のＳ６０８乃至Ｓ６１０の処理が繰り返されている間に、符号化モード判定部３２４は、比較器３１５から入力される信号に応じて、次のような処理を行う。比較器３１５から入力される信号が最大値選択信号である場合には、最大値の可変長符号の符号長、又は、最大値の符号長にエスケープ符号の符号長を加算した符号長を求める。比較器３１５から入力される信号が最小値選択信号である場合には、最小値の可変長符号の符号長、又は、最小値の符号長にエスケープ符号の符号長を加算した符号長を求める。
【０１５２】
また、上記のＳ６０８乃至Ｓ６１０の処理が繰り返されている間、最大値／最小値位置情報格納ＦＦ３２３は、比較器３１５から入力される信号に応じて、比較器３１３からの入力、又は、比較器３１４からの入力を選択する。そして、選択した入力からの信号が第２の信号又は第４の信号である毎に、画素位置出力部３２２から入力される位置情報を最大値又は最小値の位置情報として格納すると共に、それをデータ形成部３０８へ出力する。
【０１５３】
そして、Ｓ６０９の判定結果がＹｅｓになると、符号化モード判定部３２４が符号量Ａを計算により求める（Ｓ６１１）。例えば、比較器３１５から入力される信号に応じて、次のようにして符号量Ａを求める。比較器３１５から入力される信号が最大値選択信号である場合には、上記の式（１）を用いて符号量Ａを求める。ここで、最大値の符号長は、上記のとおり、Ｓ６０８乃至Ｓ６１０の処理が繰り返されている間に符号化モード判定部３２４が求めた符号長である。すなわち、最大値の可変長符号の符号長、又は、最大値の符号長にエスケープ符号の符号長を加算した符号長である。また、最大値の個数は、この時に最大値／最小値個数格納ＦＦ３２０から入力されるデータが表す個数に１を加えた個数である。一方、比較器３１５から入力される信号が最小値選択信号である場合には、上記の式（３）を用いて符号量Ａを求める。ここで、最小値の符号長は、上記のとおり、Ｓ６０８乃至Ｓ６１０の処理が繰り返されている間に符号化モード判定部３２４が求めた符号長である。すなわち、最小値の可変長符号の符号長、又は、最小値の符号長にエスケープ符号の符号長を加算した符号長である。また、最小値の個数は、この時に最大値／最小値個数格納ＦＦ３２０から入力される個数に１を加えた個数である。
【０１５４】
次に、符号化モード判定部３２４は、符号量Ｂを計算により求める（Ｓ６１２）。例えば、比較器３１５から入力される信号に応じて、次のようにして符号量Ｂを求める。比較器３１５から入力される信号が最大値選択信号である場合には、上記の式（２）を用いて符号量Ｂを求める。ここで、最大値の個数のｂｉｔ数と、最大値の位置情報のｂｉｔ数は、上記のとおり、小領域サイズに応じて決定される。また、最大値の個数は、この時に最大値／最小値個数格納ＦＦ３２０から入力されるデータが表す個数に１を加えた個数である。一方、比較器３１５から入力される信号が最小値選択信号である場合には、上記の式（４）を用いて符号量Ｂを求める。ここで、最小値の個数のｂｉｔ数と、最小値の位置情報のｂｉｔ数は、上記のとおり、小領域サイズに応じて決定される。また、最小値の個数は、この時に最大値／最小値個数格納ＦＦ３２０から入力されるデータが表す個数に１を加えた個数である。
【０１５５】
このようにして符号量Ａと符号量Ｂを求めると、次に、符号化モード判定部３２４は、Ｓ６１１で求めた符号量ＡがＳ６１２で求めた符号量Ｂ以下であるか否かを判定する（Ｓ６１３）。
【０１５６】
ここで、その判定結果がＹｅｓの場合、符号化モード判定部３２４は、符号化モードを符号化モード０と判定し、符号化モード０をデータ形成部３０８へ出力する。そして、データ形成部３０８は、処理対象とする小領域の符号化データとして、符号化モード０に応じたデータ構造の符号化データを生成する（Ｓ６１４）。符号化モード０に応じたデータ構造の符号化データは、符号化モード０、差分最大値、及び、各画素の差分値の符号化データを含む。ここで、差分最大値は、この時にセレクター３１６から入力される最大値又は最小値である。但し、その最大値又は最小値の絶対値が閾値Ｂ以上の場合、データ形成部３０８は、その最大値又は最小値を閾値Ｂとして、符号化データの生成を行う。また、各画素の差分値の符号化データは、上記のＳ６０８乃至Ｓ６１０の処理が繰り返される毎にセレクター１０７から入力されたデータである。
【０１５７】
なお、データ形成部３０８がＳ６１４で生成する符号化データのデータ構造は、符号化モード０を含むことを除くと、図１Ａに示したデータ形成部１０８が図７ＢのＳ４１１で生成する符号化データのデータ構造と同じになる。
【０１５８】
一方、Ｓ６１３の判定結果がＮｏの場合、符号化モード判定部３２４は、符号化モードを符号化モード１と判定し、符号化モード１をデータ形成部３０８へ出力する。そして、データ形成部３０８は、処理対象とする小領域の符号化データとして、符号化モード１に応じたデータ構造の符号化データを生成する（Ｓ６１５）。符号化モード１に応じたデータ構造の符号化データは、符号化モード１、差分最大値、差分最大値の個数、差分最大値の位置情報、及び、差分最大値が得られた画素を除く各画素の差分値の符号化データを含む。ここで、差分最大値は、この時にセレクター３１６から入力される最大値又は最小値である。また、差分最大値の個数は、この時に最大値／最小値個数格納ＦＦ３２０から入力される最大値又は最小値の個数である。また、差分最大値の位置情報は、上記のＳ６０８乃至Ｓ６１０の処理が繰り返されている間に、最大値／最小値位置情報格納ＦＦ３２３から入力された最大値又は最小値の位置情報である。また、差分最大値が得られた画素を除く各画素の差分値の符号化データは、上記のＳ６０８乃至Ｓ６１０の処理が繰り返される毎にセレクター１０７から入力されたデータの中から、差分最大値が得られた画素の差分値についてのデータを除いたものである。なお、データ形成部３０８は、上記のＳ６０８乃至Ｓ６１０の処理が繰り返されている間に、最大値／最小値位置情報格納ＦＦ３２３から入力される最大値又は最小値の位置情報に基づいて、差分最大値が得られた画素を特定することが可能である。
【０１５９】
このように、符号化モード０に応じたデータ構造の符号化データでは、各画素の差分値の符号化データの中に、差分最大値が得られた画素の差分値の符号化データも含まれる。これに対し、符号化モード１に応じたデータ構造の符号化データでは、差分最大値、差分最大値の個数、差分最大値の位置情報の各データが含まれる代わりに、各画素の差分値の符号化データの中に、差分最大値が得られた画素の差分値の符号化データは含まれない。
【０１６０】
次に、符号化対象の画像に含まれる全小領域の可変長符号化を終了したか否かを判定する（Ｓ６１６）。ここで、その判定結果がＮｏの場合には、処理対象とする小領域を次の小領域に変更する（Ｓ６１７）。すなわち、処理対象とする小領域を更新する。Ｓ６１７の後は、Ｓ６０２へ戻り、以降は、Ｓ６１６の判定結果がＹｅｓになるまで、上記のＳ６０２乃至Ｓ６１７の処理を繰り返す。
【０１６１】
一方、Ｓ６１６の判定結果がＹｅｓの場合には、データ形成部３０８は、符号化対象画像の符号化データを形成する（Ｓ６１８）。この符号化対象画像の符号化データは、小領域サイズと各小領域の符号化データとを含む。ここで、小領域サイズは、Ｓ６０１で設定された小領域サイズであってよい。また、各小領域の符号化データは、上記のＳ６０２乃至Ｓ６１７の処理が繰り返される毎にＳ６１４又はＳ６１５で生成された小領域の符号化データである。そして、符号化対象画像の符号化データの形成が終了すると、本フローが終了する。なお、このようにして形成された符号化対象画像の符号化データは、データ形成部３０８から出力され、例えば、本実施例に係る可変長符号化装置により外部へ送信される。
【０１６２】
図１７(a),(b) は、Ｓ６１８で形成される符号化対象画像の符号化データのデータ構造の一例を示す図である。
図１７(a) に示した例は、小領域０の符号化モードが符号化モード０の場合の例であり、図１７(b) に示した例は、小領域０の符号化モードが符号化モード１の場合の例である。なお、小領域０は、符号化対象画像の左上の小領域であり、符号化対象画像の中で最初に符号化が行われた小領域である。
【０１６３】
図１７(a),(b) に示したように、符号化対象画像の符号化データは、はじめに小領域サイズが配置される。ここで、小領域サイズは、図１０に示した例と同様に、２ｂｉｔの固定長データで表される。
【０１６４】
また、符号化対象画像の符号化データにおいて、小領域サイズのデータ以降は、各小領域の符号化データが、処理された順番に配置される。
各小領域の符号化データは、はじめに符号化モードが配置される。ここで、符号化モードは、１ｂｉｔの固定長データで表される。例えば、符号化モード０は「０」の１ｂｉｔデータで表され、符号化モード１は「１」の１ｂｉｔデータで表される。
【０１６５】
また、各小領域の符号化データにおいて、符号化モードのデータ以降は、その符号化モードに応じたデータ構造のデータが配置される。
例えば、符号化モードが符号化モード０の場合には、図１７(a) に示したように、符号化モードのデータに続いて、まず、差分最大値として、最大値、最小値、又は閾値Ｂが配置される。それ以降は、各画素の符号化データが、処理された順番に配置される（図１７(a) の画素位置０、１、・・・、Ｎを参照）。ここで、差分最大値は、図１０に示した例と同様に、７ｂｉｔの固定長データで表される。また、各画素の符号化データは、図１０に示した例と同様に、差分値の可変長符号のデータ、又は、エスケープ符号及び差分値である。これらも図１０に示した例と同様に、差分値の可変長符号は、可変長データで表される。また、エスケープ符号及び差分値は、エスケープ符号が可変長データで表され、差分値が９ｂｉｔの固定長データで表される。
【０１６６】
なお、符号化モード０の小領域の符号化データは、上記のとおり、符号化モードのデータを含むことを除いて、図１０に示した例と同様のデータ構造となる。
一方、符号化モードが符号化モード１の場合には、図１７(b) に示したように、符号化モードに続いて、差分最大値、差分最大値の個数、差分最大値の位置情報が配置される。また、それ以降は、差分最大値が得られた画素を除く各画素の符号化データが処理された順番に配置される。
【０１６７】
ここで、差分最大値は、正負を表す符号ｂｉｔと０から２５５までを表現可能な８ｂｉｔの、合計９ｂｉｔの固定長データで表される。また、差分最大値の個数は、小領域サイズに応じて決定される固定長データで表される。また、差分最大値の位置情報の各々も、小領域サイズに応じて決定される固定長データで表される。なお、図１７(b) に示した例では、０からＪまでのＪ＋１個の位置情報が含まれている。また、差分最大値が得られた画素を除く各画素の符号化データは、差分最大値が得られた画素を除く各画素における、差分値の可変長符号、又は、エスケープ符号及び差分値である。ここで、差分値の可変長符号は、可変長データである。また、エスケープ符号及び差分値は、エスケープ符号が可変長データであり、差分値が９ｂｉｔの固定長データである。
【０１６８】
以上のように、本実施例に係る可変長符号化装置によれば、実施例１に係る可変長符号化装置と同様の効果を得ることができると共に、次のような効果も得ることができる。本実施例に係る可変長符号化装置によれば、小領域毎に、符号化モード０に応じたデータ構造の符号量に対応する符号量Ａと、符号化モード１に応じたデータ構造の符号量に対応する符号量Ｂとをもとめる。そして、符号量Ａが符号量Ｂ未満の場合には符号化モード０に応じたデータ構造の符号化データを生成し、そうでない場合には符号化モード１に応じたデータ構造の符号化データを生成する。これにより、より少ない符号量の符号化データを生成することができる、という効果も得ることができる。符号化モード１に応じたデータ構造の符号化データでは、各画素の差分値の符号化データの中に、差分最大値が得られた画素の差分値の符号化データは含まれないので、小領域に差分最大値が得られる画素が多い場合に、特に有効である。
【０１６９】
次に、本実施例に係る可変長符号化装置によって符号化された符号化データ（図１６ＢのＳ６１８で形成された符号化データ）を復号化する、本実施例に係る可変長復号化装置について説明する。
【０１７０】
本実施例に係る可変長復号化装置は、実施例１に係る可変長復号化装置と同様に、符号化データを画像の小領域毎に可変長復号化する装置である。また、実施例１に係る可変長復号化装置と同様に、その小領域毎に、複数の可変長符号化テーブルの中から一つの可変長符号化テーブルを選択し、その可変長符号化テーブルを用いて可変長復号化を行う装置である。
【０１７１】
但し、本実施例に係る可変長復号化装置では、実施例１に係る可変長復号化装置の場合とは異なるデータ構造の符号化装置を可変長復号化するので、一部の構成及び動作が、実施例１に係る可変長復号化装置と異なっている。
【０１７２】
図１８Ａ及び図１８Ｂは、本実施例に係る可変長復号化装置の構成例を示す図である。
図１８Ａ及び図１８Ｂに示したように、本実施例に係る可変長復号化装置は、メモリ４０１、固定長／可変長切出部４０２、テーブル記憶部２０３、２０４、２０５、セレクター２０６、画素復元部４０７、全体制御部４０８を含む。ここで、固定長／可変長切出部４０２は取得部の一例である。画素復元部４０７は復元部の一例である。
【０１７３】
なお、テーブル記憶部２０３、２０４、２０５、セレクター２０６の構成については、実施例１に係る可変長復号化装置と同じであるので、ここでは、その説明を省略する。
【０１７４】
メモリ４０１は、本実施例に係る可変長符号化装置により符号化された符号化データ（図１６ＢのＳ６１８で形成された符号化データ）を格納する。
固定長／可変長切出部４０２は、メモリ４０１に格納されている符号化データを取得する。また、固定長／可変長切出部４０２は、符号化データから、固定長符号のデータである小領域サイズを切り出し、それを全体制御部４０８へ出力する。
【０１７５】
また、固定長／可変長切出部４０２は、小領域サイズを切り出した後に、全体制御部４０８から入力される固定長情報又は可変長情報に応じて、残りの符号化データから固定長符号又は可変長符号を、順次切り出す。このときに切り出す固定長符号は、小領域毎の、符号化モード０に応じた固定長符号、又は、符号化モード１に応じた固定長符号である。小領域毎の、符号化モード０に応じた固定長符号は、符号化モード０のデータと、差分最大値である。また、小領域毎の、符号化モード１に応じた固定長符号は、符号化モード１と、差分最大値と、差分最大値の個数と、差分最大値の位置情報である。また、切り出す可変長符号は、画素毎の、差分値の可変長符号、又は、エスケープ符号である。なお、これらのデータの切り出し位置は、セレクター２０６から入力される符号長に基づいて決定することができる。また、固定長／可変長切出部４０２は、切り出した固定長符号を全体制御部４０８へ出力し、切り出した可変長符号をテーブル記憶部２０３、２０４、２０５へ出力する。
【０１７６】
また、固定長／可変長切出部４０２は、切り出した可変長符号を出力する毎に、画素更新信号を全体制御部４０８へ出力する。また、固定長／可変長切出部４０２は、セレクター２０６からエスケープが入力されると、そのエスケープに係る可変長符号（エスケープ符号）に続く固定長符号（閾値Ｂ以上だった場合の差分値）を符号化データから切り出す。そして、その切り出したデータを画素復元部４０７へ出力する。
【０１７７】
画素復元部４０７は、入力されるデータに基づいて画素（画素値）を復元する。例えば、全体制御部４０８から入力される差分最大値取得信号が第２の信号である場合には、セレクター２０６から入力される差分値と、全体制御部４０８から入力される画素位置とに基づいて、その画素位置の画素（画素値）を復元する。或いは、セレクター２０６から入力されるエスケープのデータと、固定長／可変長切出部４０２から入力される差分値と、全体制御部４０８から入力される画素位置とに基づいて、その画素位置の画素（画素値）を復元する。一方、全体制御部４０８から入力される差分最大値取得信号が第１の信号である場合には、全体制御部４０８から入力される、画素位置のデータと、差分最大値に基づいて、その画素位置の画素（画素値）を復元する。なお、このようにして復元された画素（画素値）のデータ（画素データ）は、画素復元部４０７により出力され、例えば、所定のメモリに格納される。
【０１７８】
全体制御部４０８は、本実施例に係る可変長復号化装置の全体動作を制御する。また、全体制御部４０８は、小領域サイズ格納ＦＦ（FlipFlop）４１１、符号化モード格納ＦＦ（FlipFlop）４１２、差分最大値個数格納ＦＦ（FlipFlop）４１３、セレクター（SEL）４１４、画素位置格納ＦＦ（FlipFlop）４１５を含む。また、全体制御部４０８は、更に、差分最大値位置情報格納ＦＦ（FlipFlop）４１６、セレクター（SEL）４１７、差分最大値格納ＦＦ（FlipFlop）４１８、閾値Ａ格納ＦＦ（FlipFlop）４１９、閾値Ｂ格納ＦＦ（FlipFlop）４２０、テーブル選択部４２１を含む。
【０１７９】
小領域サイズ格納ＦＦ４１１は、固定長／可変長切出部４０２から入力される小領域サイズを格納し、そのデータをセレクター４１４へ出力する。
符号化モード格納ＦＦ４１２は、固定長／可変長切出部４０２から入力される符号化モードを格納し、そのデータをセレクター４１４、４１７へ出力する。
【０１８０】
差分最大値個数格納ＦＦ４１３は、固定長／可変長切出部４０２から入力される差分最大値の個数を格納し、そのデータをセレクター４１４へ出力する。
セレクター４１４は、小領域サイズ格納ＦＦ４１１、符号化モード格納ＦＦ４１２、差分最大値個数格納ＦＦ４１３の各々から入力されるデータと、画素位置格納ＦＦ４１５から入力される画素位置とに基づいて、固定長情報又は可変長情報を生成する。但し、差分最大値個数格納ＦＦ４１３から入力される個数は、上記のとおり、実際の個数よりも一つ少ない。そこで、ここでは、差分最大値個数格納ＦＦ４１３から入力されるデータが表す個数に１を加えた個数を用いて、固定長情報又は可変長情報の生成を行う。また、セレクター４１４は、このようにして生成した固定長情報又は可変長情報を固定長／可変長切出部４０２へ出力する。ここで、固定長情報は、次に切り出すデータが固定長符号であることを示す情報である。また、可変長情報は、次に切り出すデータが可変長符号であることを示す情報である。なお、符号化データのデータ構造は、図１７(a),(b) に示したように、符号化モードに応じて予め定められている。従って、小領域サイズ格納ＦＦ４１１、符号化モード格納ＦＦ４１２、差分最大値個数格納ＦＦ４１３、画素位置格納ＦＦ４１５の各々からのデータに基づいて、次に切り出すデータが固定長符号であるのか、可変長符号のデータであるのかを、決定することが可能である。
【０１８１】
画素位置格納ＦＦ４１５は、復号化対象（処理対象）の画素位置を格納し、画素位置をセレクター４１４、４１７、及び画素復元部４０７へ出力する。また、画素位置格納ＦＦ４１５は、固定長／可変長切出部４０２から入力される画素更新信号に基づいて、格納している復号化対象の画素位置を更新する。
【０１８２】
差分最大値位置情報格納ＦＦ４１６は、固定長／可変長切出部４０２から入力される差分最大値の位置情報（差分最大値が得られた画素の位置情報）のデータを格納し、そのデータをセレクター４１７へ出力する。
【０１８３】
セレクター４１７は、符号化モード格納ＦＦ４１２、画素位置格納ＦＦ４１５、差分最大値位置情報格納ＦＦ４１６の各々からのデータに基づいて、差分最大値取得信号として、第１の信号又は第２の信号を出力する。例えば、符号化モード格納ＦＦ４１２から入力されるデータが符号化モード１を表すデータであるときに、差分最大値位置情報格納ＦＦ４１６と画素位置格納ＦＦ４１５の各々から入力されるデータが次のような場合に、第１の信号を出力する。すなわち、差分最大値位置情報格納ＦＦ４１６から入力されるデータが表す位置情報と、画素位置格納ＦＦ４１５から入力されるデータが表す画素位置が一致する場合に、差分最大値取得信号として、第１の信号を出力する。一方、それ以外の場合には、差分最大値取得信号として、第２の信号を出力する。
【０１８４】
差分最大値格納ＦＦ４１８は、固定長／可変長切出部４０２から入力される差分最大値を格納し、差分最大値をテーブル選択部４２１及び画素復元部４０７へ出力する。
閾値Ａ格納ＦＦ４１９は、外部から入力される閾値Ａを格納する。また、閾値Ａをテーブル選択部４２１へ出力する。
【０１８５】
閾値Ｂ格納ＦＦ４２０は、外部から入力される閾値Ｂを格納する。また、閾値Ｂをテーブル選択部４２１へ出力する。
テーブル選択部４２１は、小領域の復号化に使用する可変長符号化テーブルを、テーブル記憶部２０３、２０４、２０５に記憶されている複数の可変長符号化テーブルの中から選択するためのテーブル選択情報を生成する。例えば、差分最大値格納ＦＦ４１８から入力される差分最大値と、閾値Ａ格納ＦＦ４１９から入力される閾値Ａと、閾値Ｂ格納ＦＦ４２０から入力される閾値Ｂとに基づいて、そのテーブル選択情報を生成する。そして、生成したテーブル選択情報をセレクター２０６へ出力する。
【０１８６】
次に、このような構成を有する本実施例に係る可変長復号化装置の動作を説明する。
図１９Ａ、図１９Ｂ、図１９Ｃ、及び図１９Ｄは、本実施例に係る可変長復号化装置が符号化データを画像の小領域毎に可変長復号化するときの動作を示すフローチャートである。
【０１８７】
図１９Ａ、図１９Ｂ、図１９Ｃ、及び図１９Ｄに示したように、本動作が開始すると、まず、固定長／可変長切出部４０２は、メモリ４０１に格納されている符号化データ（図１６ＢのＳ６１８で形成された符号化データ）を取得する（Ｓ７０１）。
【０１８８】
次に、その符号化データに含まれる小領域サイズのデータを復号化する（Ｓ７０２）。例えば、固定長／可変長切出部４０２が、取得した符号化データから、固定長符号のデータである小領域サイズのデータを切り出し、それを全体制御部４０８の小領域サイズ格納ＦＦ４１１へ出力する。そして、それを小領域サイズ格納ＦＦ４１１が格納する。
【０１８９】
次に、残りの符号化データを小領域毎に可変長復号化する処理を行う（Ｓ７０３乃至Ｓ７２６）。例えば、それが次のようにして行われる。
まず、画素位置格納ＦＦ４１５をクリアし、次に、処理対象とする小領域の符号化データに含まれる符号化モードのデータを復号化する（Ｓ７０３）。例えば、固定長／可変長切出部４０２が、セレクター４１４から入力される固定長情報に応じて、処理対象とする小領域の符号化データから、固定長符号のデータである符号化モードのデータを切り出す。そして、それを、全体制御部４０８の符号化モード格納ＦＦ４１２へ出力し、それを符号化モード格納ＦＦ４１２が格納する。
【０１９０】
次に、符号化モード格納ＦＦ４１２に格納されたデータが表す符号化モードに応じて、異なる復号化処理を行う。すなわち、それが符号化モード０の場合には（Ｓ７０３がＹｅｓ）、符号化モード０に応じた復号化処理を行う（Ｓ７０４乃至Ｓ７１３）。一方、それが符号化モード１の場合には（Ｓ７０３がＮｏ）、符号化モード１に応じた復号化処理を行う（Ｓ７１４乃至Ｓ７２４）。
【０１９１】
例えば、符号化モード０に応じた復号化処理は、次のようにして行われる。
なお、符号化モード０に応じた復号化処理は、基本的には、図１２Ａ及び図１２Ｂに示したＳ５０３乃至Ｓ５１２に示した処理と同様となる。
【０１９２】
まず、処理対象とする小領域の符号化データに含まれる差分最大値のデータを復号化する（Ｓ７０４）。例えば、固定長／可変長切出部４０２が、セレクター４１４から入力される固定長情報に応じて、処理対象とする小領域の符号化データから、固定長符号のデータである差分最大値のデータを切り出す。そして、それを、全体制御部４０８の差分最大値格納ＦＦ４１８へ出力し、それを差分最大値格納ＦＦ４１８が格納する。
【０１９３】
次に、テーブル選択部４２１は、差分最大値格納ＦＦ４１８から入力される差分最大値と閾値Ａ格納ＦＦ４１９から入力される閾値Ａとを用いて、差分最大値の絶対値が閾値Ａ未満であるか否かを判定する（Ｓ７０５）。ここで、その判定結果がＹｅｓの場合には、テーブル選択部４２１が、可変長符号が割り当てられている差分値の最大値又は最小値が、その差分最大値と一致する第１の種類の可変長符号化テーブルを選択するためのテーブル選択情報を生成する（Ｓ７０６）。また、Ｓ７０６では、テーブル選択部４２１が、生成したテーブル選択情報をセレクター２０６へ出力する。
【０１９４】
一方、Ｓ７０５の判定結果がＮｏの場合には、テーブル選択部４２１が、閾値Ｂ格納ＦＦ４２０からの閾値Ｂを更に用いて、差分最大値の絶対値が閾値Ｂ未満であるか否かを判定する（Ｓ７０７）。ここで、その判定結果がＹｅｓの場合には、テーブル選択部４２１が、可変長符号が割り当てられている差分値の最大値又は最小値が、その差分最大値と一致する第２の種類の可変長符号化テーブルを選択するためのテーブル選択情報を生成する（Ｓ７０８）。また、Ｓ７０８では、テーブル選択部４２１が、そのテーブル選択情報をセレクター２０６へ出力する。
【０１９５】
一方、Ｓ７０７の判定結果がＮｏの場合には、テーブル選択部４２１が、第３の種類の可変長符号化テーブルを選択するためのテーブル選択情報を生成する（Ｓ７０９）。また、Ｓ７０９では、テーブル選択部４２１が、そのテーブル選択情報をセレクター２０６へ出力する。
【０１９６】
Ｓ７０６、Ｓ７０８、又はＳ７０９の後は、生成されたテーブル選択情報に応じた可変長符号化テーブルを用いて、処理対象とする小領域の符号化データを画素毎に可変長復号化し画素を復元する処理を行う（Ｓ７１０乃至Ｓ７１３）。例えば、それが次のようにして行われる。
【０１９７】
まず、生成されたテーブル選択情報に応じた可変長符号化テーブルを用いて、処理対象とする小領域の符号化データに含まれる処理対象画素の差分値の符号化データを可変長復号化する（Ｓ７１０）。例えば、固定長／可変長切出部４０２が、セレクター４１４から入力される可変長情報に応じて、処理対象とする小領域の符号化データから、処理対象画素の差分値の可変長符号のデータを切り出す。そして、切り出したデータを、テーブル記憶部２０３、２０４、２０５へ出力する。テーブル記憶部２０３、２０４の各々は、固定長／可変長切出部４０２から入力される可変長符号に応じて、対応する差分値を有する可変長符号化テーブル毎に、対応する差分値を出力する。また、テーブル記憶部２０５は、固定長／可変長切出部４０２から入力される可変長符号に応じて、対応する差分値又はエスケープを出力する。また、テーブル記憶部２０３、２０４、２０５の各々は、固定長／可変長切出部４０２から入力される可変長符号から、その可変長符号の符号長を求め、その符号長をセレクター２０６へ出力する。セレクター２０６は、テーブル選択部４２１から入力されるテーブル選択情報に応じて、テーブル記憶部２０３、２０４、２０５からの複数の入力の中の一部を選択する。例えば、テーブル選択情報に応じて、テーブル記憶部２０３からの符号長に係る入力と、テーブル記憶部２０３からの差分値に係る複数の入力の中の一つとを選択する。或いは、テーブル選択情報に応じて、テーブル記憶部２０４からの符号長に係る入力と、テーブル記憶部２０４からの差分値に係る複数の入力の中の一つとを選択する。若しくは、テーブル選択情報に応じて、テーブル記憶部２０５からの入力を選択する。そして、選択した入力からの符号長を固定長／可変長切出部２０２へ出力し、選択した入力からの差分値又はエスケープを画素復元部４０７へ出力する。なお、セレクター２０６がエスケープを出力した場合には、それが固定長／可変長切出部４０２へも出力される。この場合は、固定長／可変長切出部４０２が、そのエスケープに係る可変長符号（エスケープ符号）に続く固定長符号のデータ（閾値Ｂ以上だった場合の差分値のデータ）を符号化データから切り出す。そして、その切り出したデータを画素復元部４０７へ出力する。
【０１９８】
このようにして、処理対象画素の差分値の可変長復号化が終了すると、次に、画素復元部４０７が、セレクター２０６、固定長／可変長切出部４０２、及び画素位置格納ＦＦ４１５から入力されるデータに基づいて、画素の復元を行う（Ｓ７１１）。すなわち、処理対象画素の画素値を復元する。例えば、画素復元部４０７が、セレクター２０６から入力される差分値と、画素位置格納ＦＦ４１５から入力される画素位置とに基づいて、画素の復元を行う。或いは、画素復元部４０７が、セレクター２０６から入力されるエスケープと、固定長／可変長切出部４０２から入力される差分値と、画素位置格納ＦＦ４１５から入力される画素位置とに基づいて、画素の復元を行う。
【０１９９】
このようにして、処理対象画素の復元が終了すると、次に、処理対象とする小領域に含まれる全画素の差分値の可変長復号化を終了したか否かを判定する（Ｓ７１２）。ここで、その判定結果がＮｏの場合には、処理対象とする小領域において、処理対象画素を次の画素に変更する（Ｓ７１３）。すなわち、処理対象画素位置を更新する。Ｓ７１３の後は、Ｓ７１０へ戻り、以降は、Ｓ７１２の判定結果がＹｅｓになるまで、上記のＳ７１０乃至Ｓ７１３の処理を繰り返す。
【０２００】
一方、符号化モード１に応じた復号化処理は、次のようにして行われる。
まず、処理対象とする小領域の符号化データに含まれる、差分最大値のデータ、差分最大値の個数のデータ、差分最大値の位置情報のデータを復号化する（Ｓ７１４）。例えば、固定長／可変長切出部４０２が、セレクター４１４から入力される固定長情報に応じて、処理対象とする小領域の符号化データから、固定長符号のデータである上記の各データを順次切り出す。すなわち、差分最大値のデータ、差分最大値の個数のデータ、差分最大値の位置情報のデータを、順次切り出す。そして、切り出した差分最大値を全体制御部４０８の差分最大値格納ＦＦ４１８へ出力し、それを差分最大値格納ＦＦ４１８が格納する。また、切り出した差分最大値の個数を全体制御部４０８の差分最大値個数格納ＦＦ４１３へ出力し、それを差分最大値個数格納ＦＦ４１３が格納する。また、切り出した差分最大値の位置情報を全体制御部４０８の差分最大値位置情報格納ＦＦ４１６へ出力し、それを差分最大値位置情報格納ＦＦ４１６が格納する。
【０２０１】
次に、Ｓ７１５乃至Ｓ７１９の処理を行う。Ｓ７１５乃至Ｓ７１９の処理は、上記のＳ７０５乃至Ｓ７０９の処理と同様であるので、ここでは、その説明を省略する。
Ｓ７１６、Ｓ７１８、又はＳ７１９の後は、生成されたテーブル選択情報に応じた可変長符号化テーブルを用いて、処理対象とする小領域の符号化データを画素毎に可変長復号化し画素を復元する処理を行う（Ｓ７２０乃至Ｓ７２４）。但し、符号化モード１に応じたデータ構造の符号化データには、差分最大値が得られた画素の差分値の符号化データは含まれない。そこで、差分最大値が得られた画素の差分値については、全体制御部４０８のセレクター４１７から出力される差分最大値取得信号に基づいて、全体制御部４０８の差分最大値格納ＦＦ４１８から出力されるデータから取得する。
【０２０２】
例えば、Ｓ７２０乃至Ｓ７２４の処理が次のようにして行われる。
まず、画素復元部４０７は、処理対象画素（復号対象画素）の位置と、差分最大値の位置情報（差分最大値が得られた画素の位置情報）が示す位置とが一致するか否かを判定する（Ｓ７２０）。例えば、セレクター４１７から入力される差分最大値取得信号が第１の信号である場合に、処理対象画素の位置と差分最大値の位置情報が示す位置とが一致すると判定する。一方、セレクター４１７から入力される差分最大値取得信号が第２の信号である場合には、処理対象画素の位置と差分最大値の位置情報が示す位置とが一致しないと判定する。なお、上記のとおり、第１の信号は、符号化モード１の場合であって処理対象画素の位置と差分最大値の位置情報が示す位置とが一致する場合に、セレクター４１７から出力される信号である。また、第２の信号は、それ以外の場合に、セレクター４１７から出力される信号である。
【０２０３】
Ｓ７２０の判定において、その判定結果がＹｅｓの場合にはＳ７２２へ進み、Ｎｏの場合には、Ｓ７２１の処理を行う。なお、Ｓ７２１の処理は上記のＳ７１０の処理と同様であるので、ここでは、その説明を省略する。
【０２０４】
次に、画素復元部４０７は画素の復元を行う（Ｓ７２２）。すなわち、処理対象画素の画素値を復元する。例えば、Ｓ７２０の判定結果がＹｅｓであった場合には、上記のＳ７１１と同様の処理により、画素の復元を行う。一方、Ｓ７２０の判定結果がＮｏであった場合には、この時（差分最大値取得信号が第１の信号である時でもある）に、差分最大値格納ＦＦ４１８から入力されるデータが表す差分最大値を取得することにより、画素の復元を行う。
【０２０５】
次に、Ｓ７２３の判定処理を行い、その判定結果がＮｏの場合には、Ｓ７２４の処理を行ってＳ７２０へ戻る。Ｓ７２３及びＳ７２４の処理は、上記のＳ７１２及びＳ７１３の処理と同様であるので、ここでは、その説明を省略する。
【０２０６】
また、Ｓ７２３の判定結果がＹｅｓの場合には、７２５の判定処理を行い、その判定結果がＮｏの場合には、Ｓ７２６の処理を行ってＳ７０３へ戻る。Ｓ７２５及びＳ７２６の処理は、図１２Ｂに示したＳ５１３及びＳ５１４の処理と同様であるので、ここでは、その説明を省略する。一方、Ｓ７２５の判定結果がＹｅｓの場合は、本フローが終了する。
【０２０７】
以上のように、本実施例に係る可変長復号化装置によれば、本実施例に係る可変長符号化装置により符号化された符号化データを復号化することができる。
以上、本発明の実施例を説明したが、本発明は、上記した各実施例に限定されることなく、本発明の要旨を逸脱しない範囲内で種々の改良・変更が可能である。
【０２０８】
例えば、実施例１に係る可変長符号装置では、各小領域の可変長符号化において、小領域の各画素の差分値を求める処理を２回行っているが、これを１回とすることも可能である。この場合は、差分値計算部１０２が、一度求めた、小領域の各画素の差分値を保持しておき、選択された可変長符号化テーブルを用いて実際に小領域の可変長符号化を行う際には、その保持していたデータを用いて行うようにすることが可能である。
【０２０９】
また、各実施例に係る可変長符号化装置及び可変長復号化装置では、可変長符号化テーブルの種類毎にテーブル記憶部を備える構成であったが、可変長符号化テーブルを記憶するテーブル記憶部の構成は、これに限定されるものではない。例えば、３種類の可変長符号化テーブルを１つのテーブル記憶部が記憶する構成とすることも可能である。
【０２１０】
また、可変長符号化テーブルの種類を３種類としたが、その種類は３種類に限定されるものではない。
また、第２の種類の可変長符号化テーブルは、図３(b) に示した手順により作成されるものであったが、この手順の中で、可変長符号の入れ換え（Ｓ２０５）を省いて、第２の種類の可変長符号化テーブルを作成するようにすることも可能である。また、第３の種類の可変長符号化テーブルは、図３(c) に示した手順により作成されるものであったが、この手順の中で、可変長符号の入れ換え（Ｓ３０５）を省いて、第３の種類の可変長符号化テーブルを作成するようにすることも可能である。
【０２１１】
また、テーブル選択情報が差分最大値又は閾値Ｂのデータを含むように構成し、セレクター１０７又は２０６が、そのデータに基づいて、対応する入力を選択するように構成することも可能である。
【０２１２】
以上の実施例１及び２を含む実施形態に関し、更に以下の付記を開示する。
（付記１）
画像を小領域毎に可変長符号化する装置であって、
小領域に含まれる画素における、画素値と予測画素値との間の差分値、を算出する算出部と、
前記算出部により算出された差分値の中から、絶対値が所定値となる差分値を所定差分値として取得する取得部と、
前記取得部により取得された所定差分値に応じて、複数の可変長符号化テーブルの中から一つの可変長符号化テーブルを選択する選択部と、
前記選択部により選択された可変長符号化テーブルを用いて、前記算出部により算出された差分値を可変長符号化する可変長符号化部と、
を備えることを特徴とする可変長符号化装置。
（付記２）
前記小領域毎の小領域符号化データを含む、前記画像の符号化データを形成するデータ形成部、
を更に備え、
前記小領域符号化データは、前記取得部により取得された所定差分値と前記可変長符号化部により可変長符号化された可変長符号とを含む、
ことを特徴とする付記１記載の可変長符号化装置。
（付記３）
前記取得部により取得された所定差分値の可変長符号の符号長と前記所定差分値の個数との積により求めた第１の符号量と、画素位置を表すデータの符号長と前記所定差分値の個数との積に前記所定差分値の個数を表すデータの符号長を加えることにより求めた第２の符号量とを比較し、前記第１の符号量が前記第２の符号量以下である場合には符号化モードを第１の符号化モードと判定し、前記第１の符号量が前記第２の符号量よりも大きい場合には符号化モードを第２の符号化モードと判定する判定部と、
前記小領域毎の、前記判定部により判定された符号化モードに応じた小領域符号化データを含む、前記画像の符号化データを形成するデータ形成部と、
を更に備えることを特徴とする付記１記載の可変長符号化装置。
（付記４）
前記判定部により判定された符号化モードに応じた小領域符号化データは、
前記判定部により判定された符号化モードが前記第１の符号化モードである場合は、前記取得部により取得された所定差分値と、前記可変長符号化部により可変長符号化された可変長符号とを含み、
前記判定部により判定された符号化モードが前記第２の符号化モードである場合は、前記取得部により取得された所定差分値と、前記所定差分値の個数と、前記所定差分値が得られた画素位置と、前記所定差分値の可変長符号を除く前記可変長符号化部により可変長符号化されたデータとを含む、
ことを特徴とする付記３記載の可変長符号化装置。
（付記５）
前記選択部は、前記取得部により取得された所定差分値の絶対値が第１の閾値未満である場合には、第１の種類の可変長符号化テーブルであって、且つ、可変長符号が割り当てられている差分値の最大値又は最小値が前記所定差分値と一致する可変長符号化テーブルを選択する、
ことを特徴とする付記１乃至４の何れか一つに記載の可変長符号化装置。
（付記６）
前記第１の種類の可変長符号化テーブルは、差分値の出現確率を表す確率分布関数を正規分布関数とし、前記正規分布関数における差分値の最大値及び最小値が、前記第１の種類の可変長符号化テーブルにおいて可変長符号が割り当てられる差分値の最大値及び最小値になるように、前記正規分布関数を再計算することにより作成される、
ことを特徴とする付記５記載の可変長符号化装置。
（付記７）
前記選択部は、前記取得部により取得された所定差分値の絶対値が前記第１の閾値以上であって第２の閾値未満である場合には、第２の種類の可変長符号化テーブルであって、且つ、可変長符号が割り当てられている差分値の最大値又は最小値が前記所定差分値と一致する可変長符号化テーブルを選択する、
ことを特徴とする付記５又は６記載の可変長符号化装置。
（付記８）
前記第２の種類の可変長符号化テーブルは、差分値の出現確率を表す確率分布関数を正規分布関数とし、前記正規分布関数における差分値の最大値及び最小値が、前記第２の種類の可変長符号化テーブルの中で可変長符号が割り当てられる差分値の最大値及び最小値になるように、前記正規分布関数を再計算することにより作成される、
ことを特徴とする付記７記載の可変長符号化装置。
（付記９）
前記第２の種類の可変長符号化テーブルは、更に、差分値の最大値に割り当てられる可変長符号の符号長が、差分値の最大値付近の差分値に割り当てられる可変長符号の符号長よりも短くなるように、割り当てる可変長符号を入れ換えると共に、差分値の最小値に割り当てられる可変長符号の符号長が、差分値の最小値付近の差分値に割り当てられる可変長符号の符号長よりも短くなるように、割り当てる可変長符号を入れ換えることにより作成される、
ことを特徴とする付記８記載の可変長符号化装置。
（付記１０）
前記選択部は、前記取得部により取得された所定差分値の絶対値が前記第２の閾値以上である場合には、絶対値が前記第２の閾値以上になる差分値にエスケープ符号が割り当てられている第３の種類の可変長符号化テーブルを選択する、
ことを特徴とする付記７乃至９の何れか一つに記載の可変長符号化装置。
（付記１１）
前記第３の種類の可変長符号化テーブルは、差分値の出現確率を表す確率分布関数を正規分布関数とし、前記正規分布関数における差分値の絶対値が前記第２の閾値以上になる出現確率をエスケープの出現確率とすると共に、前記エスケープにエスケープ符号を割り当てることによって作成される、
ことを特徴とする付記１０記載の可変長符号化装置。
（付記１２）
前記第３の種類の可変長符号化テーブルは、更に、前記エスケープ符号の符号長が、前記第２の閾値付近の差分値に割り当てられる可変長符号の符号長よりも短くなるように、割り当てる符号を入れ換えることにより作成される、
ことを特徴とする付記１１記載の可変長符号化装置。
（付記１３）
画像の符号化データを前記画像の小領域毎に可変長復号化する装置であって、
前記小領域毎の、小領域に含まれる画素の画素値と予測画素値との間の差分値の絶対値が所定値となる所定差分値と可変長符号とを有する小領域符号化データを含む、前記画像の符号化データを取得する取得部と、
前記取得部により取得された符号化データの小領域符号化データに含まれる所定差分値に応じて、複数の可変長符号化テーブルの中から一つの可変長符号化テーブルを選択する選択部と、
前記選択部により選択された可変長符号化テーブルを用いて、前記小領域符号化データに含まれる可変長符号を可変長復号化する可変長復号化部と、
を備えることを特徴とする可変長復号化装置。
（付記１４）
前記所定値は最大値である、
ことを特徴とする付記１３記載の可変長復号化装置。
（付記１５）
前記取得部は、前記小領域毎に、第１の符号化モードと、前記所定差分値と、可変長符号とを含む小領域符号化データ、又は、第２の符号化モードと、前記所定差分値と、前記所定差分値の個数と、前記所定差分値が得られた画素位置と、前記所定差分値の可変長符号を除く可変長符号とを含む小領域符号化データ、を含む、前記画像の符号化データを取得する、
ことを特徴とする付記１３記載の可変長復号化装置。
（付記１６）
前記可変長復号化部により可変長復号化されたデータに基づいて画素を復元する復元部、
を更に備え、
前記取得部により取得された符号化データの小領域符号化データに含まれる符号化モードが前記第２の符号化モードである場合、前記復元部は、前記小領域符号化データに含まれる前記所定差分値及び前記所定差分値が得られた画素位置に基づいて、前記所定差分値が得られた画素位置の差分値を取得し、前記所定差分値が得られた画素を復元する、
ことを特徴とする付記１５記載の可変長復号化装置。
（付記１７）
前記選択部は、前記所定差分値の絶対値が第１の閾値未満である場合には、第１の種類の可変長符号化テーブルであって、且つ、可変長符号が割り当てられている差分値の最大値又は最小値が前記所定差分値と一致する可変長符号化テーブルを選択する、
ことを特徴とする付記１３乃至１６の何れか一つに記載の可変長復号化装置。
（付記１８）
前記選択部は、前記所定差分値の絶対値が前記第１の閾値以上であって第２の閾値未満である場合には、第２の種類の可変長符号化テーブルであって、且つ、可変長符号が割り当てられている差分値の最大値又は最小値が前記所定差分値と一致する可変長符号化テーブルを選択する、
ことを特徴とする付記１７記載の可変長復号化装置。
（付記１９）
前記選択部は、前記所定差分値の絶対値が前記第２の閾値以上である場合には、絶対値が前記第２の閾値以上になる差分値にエスケープ符号が割り当てられている第３の種類の可変長符号化テーブルを選択する、
ことを特徴とする付記１８記載の可変長復号化装置。
（付記２０）
画像を小領域毎に可変長符号化する方法であって、
小領域に含まれる画素における、画素値と予測画素値との間の差分値、を算出する算出工程と、
前記算出工程により算出された差分値の中から、絶対値が所定値となる差分値を所定差分値として取得する取得工程と、
前記取得工程により取得された所定差分値に応じて、複数の可変長符号化テーブルの中から一つの可変長符号化テーブルを選択する選択工程と、
前記選択工程により選択された可変長符号化テーブルを用いて、前記算出工程により算出された差分値を可変長符号化する可変長符号化工程と、
を含む、
ことを特徴とする可変長符号化方法。
（付記２１）
前記小領域毎の小領域符号化データを含む、前記画像の符号化データを形成するデータ形成工程、
を更に含み、
前記小領域符号化データは、前記取得工程により取得された所定差分値と前記可変長符号化工程により可変長符号化された可変長符号とを含む、
ことを特徴とする付記２０記載の可変長符号化方法。
（付記２２）
前記取得工程により取得された所定差分値の可変長符号の符号長と前記所定差分値の個数との積により、第１の符号量を算出する第１の算出工程と、
画素位置を表すデータの符号長と前記所定差分値の個数との積に前記所定差分値の個数を表すデータの符号長を加えることにより、第２の符号量を算出する第２の算出工程と、
前記第１の算出工程により算出された第１の符号量と前記第２の算出工程により算出された第２の符号量とを比較する比較工程と、
前記比較工程による比較の結果、前記第１の符号量が前記第２の符号量以下である場合には符号化モードを第１の符号化モードと判定し、前記第１の符号量が前記第２の符号量よりも大きい場合には符号化モードを第２の符号化モードと判定する判定工程と、
前記小領域毎の、前記判定工程により判定された符号化モードに応じた小領域符号化データを含む、前記画像の符号化データを形成するデータ形成工程と、
を更に含むことを特徴とする付記２０記載の可変長符号化方法。
（付記２３）
前記判定工程により判定された符号化モードに応じた小領域符号化データは、
前記判定工程により判定された符号化モードが前記第１の符号化モードである場合は、前記取得工程により取得された所定差分値と、前記可変長符号化工程により可変長符号化された可変長符号とを含み、
前記判定工程により判定された符号化モードが前記第２の符号化モードである場合は、前記取得工程により取得された所定差分値と、前記所定差分値の個数と、前記所定差分値が得られた画素位置と、前記所定差分値の可変長符号を除く前記可変長符号化部により可変長符号化されたデータとを含む、
ことを特徴とする付記２２記載の可変長符号化方法。
（付記２４）
画像の符号化データを前記画像の小領域毎に可変長復号化する方法であって、
前記小領域毎の、小領域に含まれる画素における、画素値と予測画素値との間の差分値、の絶対値が所定値となる差分値である所定差分値と、可変長符号とを含む小領域符号化データを含む、前記画像の符号化データを取得する取得工程と、
前記取得工程により取得された符号化データの小領域符号化データに含まれる所定差分値に応じて、複数の可変長符号化テーブルの中から一つの可変長符号化テーブルを選択する選択工程と、
前記選択工程により選択された可変長符号化テーブルを用いて、前記小領域符号化データに含まれる可変長符号を可変長復号化する可変長復号化工程と、
を含むことを特徴とする可変長復号化方法。
（付記２５）
前記所定値は最大値である、
ことを特徴とする付記２４記載の可変長復号化方法。
（付記２６）
前記取得工程は、前記小領域毎に、第１の符号化モードと、前記所定差分値と、可変長符号とを含む小領域符号化データ、又は、第２の符号化モードと、前記所定差分値と、前記所定差分値の個数と、前記所定差分値が得られた画素位置と、前記所定差分値の可変長符号を除く可変長符号とを含む小領域符号化データ、を含む、前記画像の符号化データを取得する、
ことを特徴とする付記２４記載の可変長復号化方法。
（付記２７）
前記可変長復号化工程により可変長復号化されたデータに基づいて画素を復元する復元工程、
を更に含み、
前記取得工程により取得された符号化データの小領域符号化データに含まれる符号化モードが前記第２の符号化モードである場合、前記復元工程は、前記小領域符号化データに含まれる前記所定差分値及び前記所定差分値が得られた画素位置に基づいて、前記所定差分値が得られた画素位置の差分値を取得し、前記所定差分値が得られた画素を復元する、
ことを特徴とする付記２６記載の可変長復号化方法。
【符号の説明】
【０２１３】
１０１      メモリ
１０２      差分値計算部
１０３      予測画素値作成部
１０４、１０５、１０６      テーブル記憶部
１０７      セレクター
１０８      データ形成部
１０９      全体制御部
１１１      最大値格納ＦＦ
１１２      最小値格納ＦＦ
１１３、１１４、１１５      比較器
１１６      セレクター
１１７      閾値Ａ格納ＦＦ
１１８      閾値Ｂ格納ＦＦ
１１９      テーブル選択部
２０１      メモリ
２０２      固定長／可変長切出部
２０３、２０４、２０５      テーブル記憶部
２０６      セレクター
２０７      画素復元部
２０８      全体制御部
２１１      小領域サイズ格納ＦＦ
２１２      セレクター
２１３      画素位置格納ＦＦ
２１４      差分最大値／閾値Ｂ格納ＦＦ
２１５      閾値Ａ格納ＦＦ
２１６      閾値Ｂ格納ＦＦ
２１７      テーブル選択部
３０８      データ形成部
３０９      全体制御部
３１１      最大値格納ＦＦ
３１２      最小値格納ＦＦ
３１３、３１４、３１５      比較器
３１６      セレクター
３１７      閾値Ａ格納ＦＦ
３１８      閾値Ｂ格納ＦＦ
３１９      テーブル選択部
３２０      最大値／最小値個数格納ＦＦ
３２１      加算器
３２２      画素位置出力部
３２３      最大値／最小値位置情報格納ＦＦ
３２４      符号化モード判定部
３３１      符号化対象画像
４０１      メモリ
４０２      固定長／可変長切出部
４０７      画素復元部
４０８      全体制御部
４１１      小領域サイズ格納ＦＦ
４１２      符号化モード格納ＦＦ
４１３      差分最大値個数格納ＦＦ
４１４      セレクター
４１５      画素位置格納ＦＦ
４１６      差分最大値位置情報格納ＦＦ
４１７      セレクター
４１８      差分最大値格納ＦＦ
４１９      閾値Ａ格納ＦＦ
４２０      閾値Ｂ格納ＦＦ
４２１      テーブル選択部
【図１Ａ】
2012129785.tif 000003
【図１Ｂ】
2012129785.tif 000004
【図３】
2012129785.tif 000005
【図４】
2012129785.tif 000006
【図５】
2012129785.tif 000007
【図６】
2012129785.tif 000008
【図７Ａ】
2012129785.tif 000009
【図７Ｂ】
2012129785.tif 000010
【図２】
2012129785.tif 000011
【図８】
2012129785.tif 000012
【図９】
2012129785.tif 000013
【図１０】
2012129785.tif 000014
【図１１Ａ】
2012129785.tif 000015
【図１１Ｂ】
2012129785.tif 000016
【図１２Ａ】
2012129785.tif 000017
【図１２Ｂ】
2012129785.tif 000018
【図１３Ａ】
2012129785.tif 000019
【図１３Ｂ】
2012129785.tif 000020
【図１４】
2012129785.tif 000021
【図１５】
2012129785.tif 000022
【図１６Ａ】
2012129785.tif 000023
【図１６Ｂ】
2012129785.tif 000024
【図１７】
2012129785.tif 000025
【図１８Ａ】
2012129785.tif 000026
【図１８Ｂ】
2012129785.tif 000027
【図１９Ａ】
2012129785.tif 000028
【図１９Ｂ】
2012129785.tif 000029
【図１９Ｃ】
2012129785.tif 000030
【図１９Ｄ】
2012129785.tif 000031