(57)【要約】【課題】  演算サイクル数を少なくし、効率よくＶＬＣの処理を行うことのできる可変長符号化方法を提供することを目的とする。【解決手段】  この発明に係る可変長符号化方法は、ＶＬＣ化を行い、（Ｌａｓｔ、Ｒｕｎ、Ｌｅｖｅｌ）の組で符号割り当てを行うステップ（ａ）と、Ｌｅｖｅｌから（Ｌａｓｔ、Ｒｕｎ）に対応する最大のＬｅｖｅｌであるＬＭＡＸを減算し、補正Ｌｅｖｅｌを算出した後に（Ｌａｓｔ、Ｒｕｎ、補正Ｌｅｖｅｌ）の組として符号割り当てを行うステップ（ｂ）と、Ｒｕｎから（Ｌａｓｔ、Ｌｅｖｅｌ）に対応する最大のＲｕｎであるＲＭＡＸに１を加算した値を減算し、補正Ｒｕｎを算出した後に（Ｌａｓｔ、補正Ｒｕｎ、Ｌｅｖｅｌ）の組として符号割り当てを行うステップ（ｃ）と、ＦＬＣ割り当てを行うステップ（ｄ）とを並列に処理を行い、予め設定した優先順位に従って選択するステップ（ｅ）とを含むものである。【選択図】    図１
2004297827.tif 000002
【特許請求の範囲】
【請求項１】
一次元配列に並び替えた離散コサイン変換係数から、先行するゼロの係数の個数であるＲｕｎと、非ゼロの係数値であるＬｅｖｅｌと、該非ゼロの係数が最後であるかどうかを示すＬａｓｔを、（Ｌａｓｔ、Ｒｕｎ、Ｌｅｖｅｌ）の組として、これに一意的な符号を割り当てるＶＬＣ化を行い、ＶＬＣの割り当てが出来ない場合には、３つのエスケープモードを適用し、符号化を行う可変長符号化方法において、
（Ｌａｓｔ、Ｒｕｎ、Ｌｅｖｅｌ）の組で符号割り当てを行うステップ（ａ）と、
第１のエスケープモードとして、Ｌｅｖｅｌから、（Ｌａｓｔ、Ｒｕｎ）に対応する最大のＬｅｖｅｌであるＬＭＡＸを減算し、該得られた補正Ｌｅｖｅｌを含む、（Ｌａｓｔ、Ｒｕｎ、補正Ｌｅｖｅｌ）の組に対して、符号割り当てを行うステップ（ｂ）と、
第２のエスケープモードとして、Ｒｕｎから、（Ｌａｓｔ、Ｌｅｖｅｌ）に対応する最大のＲｕｎであるＲＭＡＸに１を加算した値を減算し、該得られた補正Ｒｕｎを含む、（Ｌａｓｔ、補正Ｒｕｎ、Ｌｅｖｅｌ）の組に対して、符号割り当てを行うステップ（ｃ）と、
第３のエスケープモードとして、ＦＬＣの割り当てを行うステップ（ｄ）との処理を並列に行い、
上記ステップ（ａ）〜（ｄ）で割り当てた符号を、（ａ），（ｂ），（ｃ），（ｄ）の優先順位で選択し、符号として出力するステップ（ｅ）とを含む、
ことを特徴とする可変長符号化方法。
【請求項２】
請求項１記載の可変長符号化方法において、
上記可変長符号の割り当て方法は、上記ステップ（ｅ）における符号化されたデータを選択する優先順位を、（ａ），（ｂ），（ｃ），（ｄ）、又は（ａ），（ｃ），（ｂ），（ｄ）、又は（ａ），（ｄ）の３つのパターンのうちいずれか１つのパターンを選択する、
ことを特徴とする可変長符号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、可変長符号化方法に関し、特に画像符号化方式の規格であるＭＰＥＧ４およびＨ．２６３における可変長符号化を実現する可変長符号化方法に関するものである。
【背景技術】
【０００２】
動画像データに対し帯域圧縮技術を用いて符号化および復号化を行う方式として、ＩＳＯで規格化されたＭＰＥＧ（Ｍｏｖｉｎｇ  Ｐｉｃｔｕｒｅ Ｃｏｄｉｎｇ Ｅｘｐｅｒｔｓ Ｇｒｏｕｐ）方式やＩＴＵ−Ｔで勧告されたＨ．２６３方式などがある。これらの方式は、画面内の相関を利用して、画面内を複数画素から構成されるブロックに分割し、このブロック内のデータを直交変換方式の１つであるＤＣＴ（Ｄｉｓｃｒｅｔｅ  Ｃｏｓｉｎｅ  Ｔｒａｎｓｆｏｒｍ、離散コサイン変換）を行い、量子化、ＶＬＣ（Ｖａｒｉａｂｌｅ  Ｌｅｎｇｔｈ  Ｃｏｄｅ、可変長符号）の各処理を施して画像データの圧縮を実現することを基本としている。
【０００３】
このＶＬＣは、ＤＣＴを行った結果得られたＤＣＴ係数に対し、先行するゼロの係数の個数であるＲｕｎと、非ゼロの係数の値であるＬｅｖｅｌとその非ゼロの係数が最後であるかどうかを示すＬａｓｔを、（Ｌａｓｔ、Ｒｕｎ、Ｌｅｖｅｌ）の組として、これに一意的な符号を割り当てて符号化を行うものである。
【０００４】
ＭＰＥＧ４においては、一意的な符号を割り当てるＶＬＣテーブルが定義されているが、このＶＬＣテーブル上にＶＬＣが定義されていない場合に対応させるために、３つのエスケープモードを適用している。第１のエスケープモードは、（Ｌａｓｔ、Ｒｕｎ、Ｌｅｖｅｌ）の組に対し、Ｌｅｖｅｌの絶対値から、ＶＬＣテーブルにおいてＬａｓｔ、Ｒｕｎに対応する最大のＬｅｖｅｌの値であるＬＭＡＸを減算した後に、その結果に対し再度ＶＬＣテーブルによりＶＬＣを行うモードである。第２のエスケープモードは、（Ｌａｓｔ、Ｒｕｎ、Ｌｅｖｅｌ）の組に対し、Ｒｕｎの値から、ＶＬＣテーブルにおいてＬａｓｔ、Ｌｅｖｅｌに対応する最大のＲｕｎの値であるＲＭＡＸに１を加算した値を減算し、その結果に対し再度ＶＬＣテーブルによりＶＬＣを行うモードである。第３のエスケープモードは、上記の組に対し、これをＦＬＣ（Ｆｉｘｅｄ  Ｌｅｎｇｔｈ  Ｃｏｄｅ、固定長符号）に変換するモードである。
【０００５】
また、Ｈ．２６３方式などはＭＰＥＧ４と同様に一意的な符号を割り当てるＶＬＣテーブルが定義されているが、エスケープモードはＦＬＣに変換するモードのみである。
【０００６】
以下、図１２を用いて従来のＭＰＥＧ４におけるＶＬＣの処理チャートを説明する。
まず、一次元配列に並び替えたＤＣＴ係数から、先行するゼロの係数の個数であるＲｕｎと、非ゼロの係数値であるＬｅｖｅｌと、その非ゼロの係数が最後であるかどうかを示すＬａｓｔを、（Ｌａｓｔ、Ｒｕｎ、Ｌｅｖｅｌ）の組として、これに一意的な符号を割り当てるＶＬＣ化を行い、ＶＬＣの割り当てが出来ない場合には、３つのエスケープモードを適用する可変長符号化方法について説明する。
【０００７】
図１２は、従来の可変長符号化方法を説明するためのチャート図である。
図１２において、○（白丸）はデータが確定していることを意味し、０１から０９はそれぞれの係数の処理工程を示す。また、符号化Ｂは第１のエスケープモード、符号化Ｃは第２のエスケープモード、符号化Ｄは第３のエスケープモードに対応している。
【０００８】
以下、各係数の処理工程について説明する。
符号化Ａにおいて、Ｏ１はＬａｓｔ、Ｒｕｎ、Ｌｅｖｅｌによって活性化（すなわち、入出力時点でデータがそろっていること）する処理であり、（Ｌａｓｔ、Ｒｕｎ、Ｌｅｖｅｌ）の組に対応するＶＬＣテーブルが存在する場合には、Ｃｏｄｅ１を０９に出力して処理は完了する。一方、（Ｌａｓｔ、Ｒｕｎ、Ｌｅｖｅｌ）の組に対応するＶＬＣテーブルが存在しない場合には、“存在しない”ということを示す符号を符号化Ｂに出力する。
【０００９】
符号化Ｂにおいて、０２は０１の処理で対応するＶＬＣテーブルが存在しない場合に、ＬａｓｔとＲｕｎによって活性化する処理であり、（Ｌａｓｔ、Ｒｕｎ）の組に対応する最大のＬｅｖｅｌの値であるＬＭＡＸを０３に出力する。
【００１０】
０３は、ＬＭＡＸによって活性化する処理であり、Ｌｅｖｅｌの値からＬＭＡＸを減算する処理を行い、得られたＮｅｗＬｅｖｅｌの値を０４に出力する。
【００１１】
０４は、Ｌａｓｔ、Ｒｕｎ、ＮｅｗＬｅｖｅｌによって活性化する処理であり、（Ｌａｓｔ、Ｒｕｎ、ＮｅｗＬｅｖｅｌ）の組に対応するＶＬＣテーブルが存在する場合には、Ｃｏｄｅ２を０９に出力して処理は完了する。一方、（Ｌａｓｔ、Ｒｕｎ、ＮｅｗＬｅｖｅｌ）の組に対応するＶＬＣテーブルが存在しない場合には、“存在しない”ということを示す符号を符号化Ｃに出力する。
【００１２】
符号化Ｃにおいて、０５は０４の処理で対応するＶＬＣテーブルが存在しない場合に、ＬａｓｔとＬｅｖｅｌによって活性化する処理であり、（Ｌａｓｔ、Ｌｅｖｅｌ）の組に対応する最大のＲｕｎの値であるＲＭＡＸを０６に出力する。
【００１３】
０６は、ＲＭＡＸによって活性化する処理であり、Ｒｕｎの値から、ＲＭＡＸと１の合計を減算する処理を行い、得られたＮｅｗＲｕｎの値を０７に出力する。
【００１４】
０７は、 Ｌａｓｔ、ＮｅｗＲｕｎ、Ｌｅｖｅｌによって活性化する処理であり、（Ｌａｓｔ、ＮｅｗＲｕｎ、Ｌｅｖｅｌ）の組に対応するＶＬＣテーブルが存在する場合には、Ｃｏｄｅ３を０９に出力して処理は完了する。一方、（Ｌａｓｔ、ＮｅｗＲｕｎ、Ｌｅｖｅｌ）の組に対応するＶＬＣテーブルが存在しない場合には、“存在しない”ということを示す符号を符号化Ｄに出力する。
【００１５】
符号化Ｄにおいて、０８は０７の処理で対応するＶＬＣテーブルが存在しない場合に、Ｌａｓｔ、Ｒｕｎ、ＬｅｖｅｌをＦＬＣによって変換する処理であり、ＦＬＣのＣｏｄｅ４を０９に出力する。
【００１６】
０９は、Ｃｏｄｅ１〜Ｃｏｄｅ４の符号の中から、有効な符号を活性化し、その符号を出力する。
【００１７】
図１３は従来の可変長符号化方法のサイクル毎の処理内容をまとめた図である。
以下、各サイクル毎の動作について説明する。なお、カッコ内は図中の処理内容を示す。
【００１８】
まず、１サイクル目（１Ｔ）は、通常のＶＬＣである、Ｌａｓｔ、Ｒｕｎ、Ｌｅｖｅｌによって活性化する処理を行い（ＮＯＲＭＡＬ  ＶＬＣ）、その通常のＶＬＣの結果がテーブルに存在するか否かの判定を行う（ＮＯＲＭＡＬ  ＶＬＣ判定）。
【００１９】
２サイクル目（２Ｔ）は、１Ｔの処理で通常のＶＬＣの結果がテーブルに存在するならば、その結果を出力する（ＶＬＣ結果）。一方、通常のＶＬＣの結果がテーブルに存在しないならば、Ｌｅｖｅｌの値から、Ｌａｓｔ、Ｒｕｎに対応する最大のＬｅｖｅｌの値であるＬＭＡＸを減算してＮｅｗＬｅｖｅｌの値を得る（ＬＭＡＸ）。
【００２０】
３サイクル目（３Ｔ）は、ＬＭＡＸによって活性化する処理であり、Ｌａｓｔ、Ｒｕｎ、ＮｅｗＬｅｖｅｌの組に対応するＶＬＣを行う（ＬＭＡＸ  ＶＬＣ）。そして、Ｌａｓｔ、Ｒｕｎ、ＮｅｗＬｅｖｅｌの組に対応するＶＬＣの結果がテーブルに存在するか否かの判定を行う（ＬＭＡＸ  ＶＬＣ判定）。
【００２１】
４サイクル目（４Ｔ）は、３Ｔの処理でＬＭＡＸ  ＶＬＣの結果がテーブルに存在するならば、その結果を出力する（ＶＬＣ結果）。一方、ＬＭＡＸ  ＶＬＣの結果がテーブルに存在しないならば、Ｒｕｎの値から、Ｌａｓｔ、Ｌｅｖｅｌに対応する最大のＲｕｎの値であるＲＭＡＸに１を加算した値を減算してＮｅｗＲｕｎの値を得る（ＲＭＡＸ）。
【００２２】
５サイクル目（５Ｔ）は、ＲＭＡＸによって活性化する処理であり、Ｌａｓｔ、ＮｅｗＲｕｎ、Ｌｅｖｅｌの組に対応するＶＬＣを行う（ＲＭＡＸ  ＶＬＣ）。そして、Ｌａｓｔ、ＮｅｗＲｕｎ、Ｌｅｖｅｌの組に対応するＶＬＣの結果がテーブルに存在するか否かの判定を行う（ＲＭＡＸ  ＶＬＣ判定）。
【００２３】
６サイクル目（６Ｔ）は、５Ｔの処理でＲＭＡＸ  ＶＬＣの結果がテーブルに存在するならば、その結果を出力する（ＶＬＣ結果）。一方、ＲＭＡＸ  ＶＬＣの結果がテーブルに存在しないならば、Ｌａｓｔ、Ｒｕｎ、ＬｅｖｅｌをＦＬＣによって処理を行い、その結果を出力する（ＦＬＣ結果）。
【非特許文献１】三木  弼一  編，ＭＰＥＧ−４のすべて，１９９８年  ９月３０日，ｐ．49-51
【発明の開示】
【発明が解決しようとする課題】
【００２４】
しかしながら、上記従来のＭＰＥＧ４におけるＶＬＣの処理チャートでは、それぞれのテーブルを引く処理を１サイクルとすると、ＦＬＣの結果を出力するまでに６サイクル（６Ｔ）の処理が必要である。これは１ブロック中に１つのＦＬＣが存在した場合に、１マクロブロックではＦＬＣが６つ存在することになり、ＶＬＣの処理はＦＬＣ１つに対し、最大で３６サイクル必要となる。つまり、ブロック数が増加するに伴ってサイクル数が増加し、処理速度が遅くなるという問題があった。
【００２５】
本発明は、かかる問題点を解決するためになされたものであり、演算サイクル数を少なくし、効率よくＶＬＣの処理を行うことのできる可変長符号化方法を提供することを目的とする。
【課題を解決するための手段】
【００２６】
本発明（請求項１）に係る可変長符号化方法は、一次元配列に並び替えた離散コサイン変換係数から、先行するゼロの係数の個数であるＲｕｎと、非ゼロの係数値であるＬｅｖｅｌと、該非ゼロの係数が最後であるかどうかを示すＬａｓｔを、（Ｌａｓｔ、Ｒｕｎ、Ｌｅｖｅｌ）の組として、これに一意的な符号を割り当てるＶＬＣ化を行い、ＶＬＣの割り当てが出来ない場合には、３つのエスケープモードを適用し、符号化を行う可変長符号化方法において、（Ｌａｓｔ、Ｒｕｎ、Ｌｅｖｅｌ）の組に対応する符号割り当てを行うステップ（ａ）と、第１のエスケープモードとして、Ｌｅｖｅｌから、（Ｌａｓｔ、Ｒｕｎ）に対応する最大のＬｅｖｅｌであるＬＭＡＸを減算し、該得られた補正Ｌｅｖｅｌを含む、（Ｌａｓｔ、Ｒｕｎ、補正Ｌｅｖｅｌ）の組に対して、符号割り当てを行うステップ（ｂ）と、第２のエスケープモードとして、Ｒｕｎから、（Ｌａｓｔ、Ｌｅｖｅｌ）に対応する最大のＲｕｎであるＲＭＡＸに１を加算した値を減算し、該得られた補正Ｒｕｎを含む、（Ｌａｓｔ、補正Ｒｕｎ、Ｌｅｖｅｌ）の組に対して、符号割り当てを行うステップ（ｃ）と、第３のエスケープモードとして、ＦＬＣの割り当てを行うステップ（ｄ）との処理を並列に行い、上記ステップ（ａ）〜（ｄ）で割り当てた符号を、（ａ），（ｂ），（ｃ），（ｄ）の優先順位で選択し、符号として出力するステップ（ｅ）とを含むものである。
【００２７】
また、本発明（請求項２）は、請求項１記載の可変長符号化方法において、上記可変長符号の割り当て方法は、上記ステップ（ｅ）における符号化されたデータを選択する優先順位として、（ａ），（ｂ），（ｃ），（ｄ）、（ａ），（ｃ），（ｂ），（ｄ）、及び（ａ），（ｄ）の３つのパターンのうちのいずれか１つのパターンを選択するものである。
【発明の効果】
【００２８】
本発明（請求項１）に係る可変長符号化方法は、一次元配列に並び替えた離散コサイン変換係数から、先行するゼロの係数の個数であるＲｕｎと、非ゼロの係数値であるＬｅｖｅｌと、該非ゼロの係数が最後であるかどうかを示すＬａｓｔを、（Ｌａｓｔ、Ｒｕｎ、Ｌｅｖｅｌ）の組として、これに一意的な符号を割り当てるＶＬＣ化を行い、ＶＬＣの割り当てが出来ない場合には、３つのエスケープモードを適用し、符号化を行う可変長符号化方法において、（Ｌａｓｔ、Ｒｕｎ、Ｌｅｖｅｌ）の組に対応する符号割り当てを行うステップ（ａ）と、第１のエスケープモードとして、Ｌｅｖｅｌから、（Ｌａｓｔ、Ｒｕｎ）に対応する最大のＬｅｖｅｌであるＬＭＡＸを減算し、該得られた補正Ｌｅｖｅｌを含む、（Ｌａｓｔ、Ｒｕｎ、補正Ｌｅｖｅｌ）の組に対して、符号割り当てを行うステップ（ｂ）と、第２のエスケープモードとして、Ｒｕｎから、（Ｌａｓｔ、Ｌｅｖｅｌ）に対応する最大のＲｕｎであるＲＭＡＸに１を加算した値を減算し、該得られた補正Ｒｕｎを含む、（Ｌａｓｔ、補正Ｒｕｎ、Ｌｅｖｅｌ）の組に対して、符号割り当てを行うステップ（ｃ）と、第３のエスケープモードとして、ＦＬＣの割り当てを行うステップ（ｄ）との処理を並列に行い、上記ステップ（ａ）〜（ｄ）で割り当てた符号を、（ａ），（ｂ），（ｃ），（ｄ）の優先順位で選択し、符号として出力するステップ（ｅ）とを含むものである。これにより、少ない演算サイクルでＶＬＣの処理を行うことができる。
【００２９】
また、本発明（請求項２）に係る可変長符号化処理方法は、請求項１記載の可変長符号化方法において、上記可変長符号の割り当て方法は、上記ステップ（ｅ）における符号化されたデータを選択する優先順位として、（ａ），（ｂ），（ｃ），（ｄ）、（ａ），（ｃ），（ｂ），（ｄ）、及び（ａ），（ｄ）の３つのパターンのうちのいずれか１つのパターンを選択するものである。これにより、優先順位は任意に設定することが可能であり、また、ステップ（ｄ）はＦＬＣによって常に一意的な符号が割り当てられるため、優先順位をステップ（ａ）、ステップ（ｄ）（ステップ（ｂ）、（ｃ）は順不同）とすることで、ステップ（ｂ）、ステップ（ｃ）を強制的に選択不可とすることができ、ステップ（ａ）とステップ（ｄ）で可変長符号化を行う画像圧縮方式であるＨ．２６３に適応することが可能となる。
【発明を実施するための最良の形態】
【００３０】
以下、本発明の実施の形態について説明する。
（実施の形態１）
本実施の形態１の可変長符号化方法は、一次元配列に並び替えたＤＣＴ係数から、先行するゼロの係数の個数であるＲｕｎと、非ゼロの係数の値であるＬｅｖｅｌと、その非ゼロの係数が最後であるかどうかを示すＬａｓｔを、（Ｌａｓｔ、Ｒｕｎ、Ｌｅｖｅｌ）の組として、これに一意的な符号を割り当てる可変長符号（Ｖａｒｉａｂｌｅ  Ｌｅｎｇｔｈ  Ｃｏｄｅ，以下ＶＬＣと省略する）化を行い、ＶＬＣの割り当てが出来ない場合には、後述する３つのエスケープモードを適用するものである。
【００３１】
図１は本発明の実施の形態１による可変長符号化方法を説明するためのチャート図である。
図１において、○（白丸）はデータが確定していることを意味し、Ｐ１〜Ｐ９はそれぞれの係数の処理工程を示す。また、符号化２は第１のエスケープモード、符号化３は第２のエスケープモード、符号化４は第３のエスケープモードにそれぞれ対応している。
【００３２】
以下、各係数の処理工程について説明する。
符号化１において、Ｐ１はＬａｓｔ、Ｒｕｎ、Ｌｅｖｅｌによって活性化（すなわち、入出力時点でデータがそろっていること）する処理であり、（Ｌａｓｔ、Ｒｕｎ、Ｌｅｖｅｌ）の組に対応するＶＬＣテーブルが存在するならば通常のＶＬＣのＣｏｄｅＡをＰ９に出力する。一方、（Ｌａｓｔ、Ｒｕｎ、Ｌｅｖｅｌ）の組に対応するＶＬＣが存在しない場合は、“存在しない”ということを示す符号をＰ９に出力する。
【００３３】
符号化２において、Ｐ２はＬａｓｔ、Ｒｕｎによって活性化する処理であり、（Ｌａｓｔ、Ｒｕｎ）の組に対応する最大のＬｅｖｅｌの値であるＬＭＡＸをＰ３に出力する。Ｐ３はＬＭＡＸによって活性化する処理であり、Ｌｅｖｅｌの値からＬＭＡＸを減算する処理を行い、得られたＮｅｗＬｅｖｅｌの値をＰ４に出力する。Ｐ４はＬａｓｔ、Ｒｕｎ、ＮｅｗＬｅｖｅｌによって活性化する処理であり、（Ｌａｓｔ、Ｒｕｎ、ＮｅｗＬｅｖｅｌ）の組に対応するＶＬＣテーブルが存在するならば、ＣｏｄｅＢをＰ９に出力する。具体的にＣｏｄｅＢは、“０００００１１”（ＥＳＣ(エスケープ)コードの符号）と、“０”（ＬＭＡＸでのＶＬＣを示す）と、ＶＬＣの結果とを、ＬＭＡＸ符号化データとしてＰ９に出力する。一方、（Ｌａｓｔ、Ｒｕｎ、ＮｅｗＬｅｖｅｌ）の組に対応するＶＬＣが存在しない場合は、“存在しない”ということを示す符号をＰ９に出力する。
【００３４】
符号化３において、Ｐ５は、Ｌａｓｔ、Ｌｅｖｅｌによって活性化する処理であり、（Ｌａｓｔ、Ｌｅｖｅｌ）の組に対応する最大のＲｕｎであるＲＭＡＸの値をＰ６に出力する。Ｐ６はＲＭＡＸによって活性化する処理であり、Ｒｕｎの値から、ＲＭＡＸと１の合計を減算する処理を行い、得られたＮｅｗＲｕｎの値をＰ７に出力する。Ｐ７はＬａｓｔ、ＮｅｗＲｕｎ、Ｌｅｖｅｌによって活性化する処理であり、（Ｌａｓｔ、ＮｅｗＲｕｎ、Ｌｅｖｅｌ）の組に対応するＶＬＣテーブルが存在するならば、ＣｏｄｅＣをＰ９に返す。具体的にＣｏｄｅＣは、“０００００１１”（ＥＳＣコード）と、“１０”（ＲＭＡＸでのＶＬＣを示す）と、ＶＬＣの結果とを、ＲＭＡＸ符号化データとしてＰ９に出力する。一方、（Ｌａｓｔ、ＮｅｗＲｕｎ、Ｌｅｖｅｌ）の組に対応するＶＬＣが存在しない場合は、“存在しない”ということを示す符号をＰ９に出力する。
【００３５】
符号化４において、Ｐ８はＦＬＣ（Ｆｉｘｅｄ  Ｌｅｎｇｔｈ  Ｃｏｄｅ，固定長符号）に変換する処理であり、Ｈ．２６３の場合は、“０００００１１”（ＥＳＣコード）と、ＦＬＣの結果（Ｌａｓｔ−１ビット、Ｒｕｎ−６ビット、Ｌｅｖｅｌ−８ビット）とを、ＦＬＣ符号化データとしてＰ９に出力する。またＭＰＥＧ４の場合は、“０００００１１”（ＥＳＣコード）と、“１１”（ＭＰＥＧ４でのＦＬＣを示す）と、ＦＬＣの結果（Ｌａｓｔ−１ビット、Ｒｕｎ−６ビット、１、Ｌｅｖｅｌ−１２ビット、１）とを、ＦＬＣ符号化データとしてＰ９に出力する。
【００３６】
Ｐ９は、予め与えられた優先順位に従って、ＣｏｄｅＡ〜ＣｏｄｅＤのデータを選択し、選択されたデータを出力する。図２に優先順位の組み合わせを示す。
【００３７】
図２より、Ａ〜Ｄは、それぞれＣｏｄｅＡ〜ＣｏｄｅＤを示す。例えば、Ｐ９の優先順位の組み合わせとして優先順位１が設定されているとする。つまり、Ｐ９にＣｏｄｅＡのデータが存在するならば、ＣｏｄｅＢ、ＣｏｄｅＣ、およびＣｏｄｅＤのいずれのデータが存在していても、Ｐ９はＣｏｄｅＡのデータを出力する。一方、Ｐ９にＣｏｄｅＡのデータは存在せず、ＣｏｄｅＢのデータが存在するならば、ＣｏｄｅＣおよびＣｏｄｅＤのいずれのデータが存在していても、Ｐ９はＣｏｄｅＢのデータを出力する。また、Ｐ９にＣｏｄｅＡおよびＣｏｄｅＢのデータは存在せず、ＣｏｄｅＣのデータが存在するならば、ＣｏｄｅＤのデータが存在していても、Ｐ９はＣｏｄｅＣのデータを出力する。また、Ｐ９にＣｏｄｅＡ、ＣｏｄｅＢ、ＣｏｄｅＣのいずれのデータも存在しないならば、Ｐ９はＣｏｄｅＤのデータを出力する。
【００３８】
このように、本実施の形態１による可変長符号化方法によれば、符号化１（Ｐ１）、符号化２（Ｐ２、Ｐ３、Ｐ４）、符号化３（Ｐ５、Ｐ６、Ｐ７）、符号化４（Ｐ８）の各処理を同時に行い、予め設定された優先順位に従ってデータを出力するようにしたので、すべての処理を２ステップ（各符号化の処理と判定）で行うことが可能であり、処理ステップ数を削減することができる。また、Ｐ２、Ｐ３、Ｐ４の処理ステップ数を２ステップとし、Ｐ５、Ｐ６、Ｐ７の処理ステップ数を２ステップとした場合には、全ての処理を３ステップで行うことができる。
【００３９】
なお、本実施の形態１による可変長符号化方法において、Ｐ９における優先順位の組み合わせは、ＣｏｄｅＡ＞ＣｏｄｅＢ＞ＣｏｄｅＣ＞ＣｏｄｅＤとしたが、優先順位はこれに限られるものではなく、優先順位をＣｏｄｅＡ＞ＣｏｄｅＣ＞ＣｏｄｅＢ＞ＣｏｄｅＤとしても同様の効果を得ることができる。また、ＣｏｄｅＤはＦＬＣによって常に一意的な符号が割り当てられるため、優先順位を、ＣｏｄｅＡ＞ＣｏｄｅＤ（残り２つは順不同）とすることで、ＣｏｄｅＢ、ＣｏｄｅＣを強制的に選択不可とすることができ、符号化１と符号化４で可変長符号化を行う画像圧縮方式であるＨ．２６３に適応することが可能となる。
【００４０】
（実施の形態２）
本実施の形態２の可変長符号化装置は、上述した実施の形態１による可変長符号化方法を実現するためのものである。
【００４１】
図３は、本発明の実施の形態２による可変長符号化装置の構成を説明するためのブロック図である。
図３において、１００はＬｅｖｅｌ信号、１０１はＬａｓｔ信号、１０２はＲｕｎ信号、１０３はＬｅｖｅｌ信号１００の正負を示すＳｉｇｎ信号、１０４はＬｅｖｅｌ信号１００の絶対値であるＬｅｖｅｌ絶対値信号、１０５はＦＬＣ生成回路、１０６はＦＬＣ生成回路１０５の出力信号であるＦＬＣデータ信号、１０７はＲＭＡＸテーブル、１０８はＲＭＡＸテーブル１０７の出力信号であるＲＭＡＸデータ信号、１０９は第１の減算回路、１１０は第１の減算回路１０９の出力信号、１１５は第１の減算回路１０９の出力信号１１０を保持する第２のレジスタ、１８２は第２のレジスタ１１５より出力されるＮｅｗＲｕｎ信号、１１１は第２のＶＬＣテーブル、１１４は第２のＶＬＣテーブル１１１の出力信号である第２のＶＬＣデータ信号、１８０は第２のＶＬＣデータ信号１１４を保持する第４のレジスタ、１１６はＮｅｗＲｕｎ信号１８２を用いて生成したＶＬＣデータ信号、１１７はＬＭＡＸテーブル、１１８はＬＭＡＸテーブル１１７の出力信号であるＬＭＡＸデータ信号、１１９は第２の減算回路、１２０は第２の減算回路１１９の出力信号、１２２は第２の減算回路１１９の出力信号１２０を保持する第３のレジスタ、１８３は第３のレジスタ１２２より出力されるＮｅｗＬｅｖｅｌ信号、１１２は第３のＶＬＣテーブル、１２１は第３のＶＬＣテーブル１１２の出力信号である第３のＶＬＣデータ信号、１８１は第３のＶＬＣデータ信号１２１を保持する第５のレジスタ、１２３はＮｅｗＬｅｖｅｌ信号１８３を用いて生成したＶＬＣデータ信号、１１３は第１のＶＬＣテーブル、１２４は第１のＶＬＣテーブル１１３の出力信号である第１のＶＬＣデータ信号、１２５は第１のＶＬＣデータ信号１２４を保持する第１のレジスタ、１２６は通常のＶＬＣデータ信号、１７０はＮｅｗＲｕｎ信号を用いて生成したＶＬＣデータ信号１１６を入力し、ＲＭＡＸの符号化データを生成するＲＭＡＸ  ＶＬＣ生成回路、１７５はＲＭＡＸ  ＶＬＣ生成回路１７０の出力信号であるＲＭＡＸデータ信号、１７１はＮｅｗＬｅｖｅｌ信号を用いて生成したＶＬＣデータ信号１２３を入力し、ＬＭＡＸの符号化データを生成するＬＭＡＸ  ＶＬＣ生成回路、１７６はＬＭＡＸ  ＶＬＣ生成回路１７１の出力信号であるＬＭＡＸデータ信号、１２７は通常のＶＬＣデータ信号１２６と、ＮｅｗＲｕｎ信号を用いて生成したＶＬＣデータ信号１１６と、ＮｅｗＬｅｖｅｌ信号を用いて生成したＶＬＣデータ信号１２３とを入力し、予め設定された優先順位に基づいてＶＬＣデータ信号を選択する制御回路、１２８は制御回路１２７で選択されたデータ信号を出力する選択信号、１２９はＲＭＡＸデータ信号１７５と、ＬＭＡＸデータ信号１７６と、ＦＬＣデータ信号１０６と、通常のＶＬＣデータ信号１２６とを入力し、選択信号１２８により出力するデータ信号を選択する選択回路、１３０は選択回路１２９で選択されたデータ信号である。
【００４２】
次に本発明の実施の形態２による可変長符号化装置の動作について、上述した図３のブロック図を図１のチャート図と対応させて説明する。
【００４３】
まず、符号化１の処理において、第１のＶＬＣテーブル１１３は、Ｌａｓｔ信号１０１と、Ｒｕｎ信号１０２と、Ｌｅｖｅｌ絶対値信号１０４と、Ｓｉｇｎ信号１０３とを入力して、第１のＶＬＣデータ信号１２４を生成し（Ｐ１）、第１のレジスタ１２５に保持する。そして、第１のレジスタ１２５は、通常のＶＬＣデータ信号１２６を制御回路１２７と選択回路１２９に出力する（Ｐ９）。
【００４４】
符号化３の処理において、ＲＭＡＸテーブル１０７は、Ｌａｓｔ信号１０１と、Ｌｅｖｅｌ絶対値信号１０４とを入力し、ＲＭＡＸデータ信号１０８を生成して（Ｐ５）、第１の減算回路１０９に出力する。第１の減算回路１０９は、ＲＭＡＸデータ信号１０８と、Ｒｕｎ信号１０２とを入力し、Ｒｕｎ信号１０２の値から、ＲＭＡＸデータ信号１０８と１を加算した値を減算し（Ｐ６）、その結果を第１の減算回路の出力信号１１０として第２のレジスタ１１５に出力する。第２のレジスタ１１５は、入力された第１の減算回路の出力信号１１０を保持する。続いて、第２のＶＬＣテーブル１１１は、第２のレジスタ１１５から出力されるＮｅｗＲｕｎ信号１８２と、Ｌａｓｔ信号１０１と、Ｌｅｖｅｌ絶対値信号１０４と、Ｓｉｇｎ信号１０３とを入力し、第２のＶＬＣデータ信号１１４を生成し（Ｐ７）、第４のレジスタ１８０に出力する。第４のレジスタ１８０は、入力された第２のＶＬＣデータ信号１１４を保持する。そして、第４のレジスタ１８０は、ＮｅｗＲｕｎ信号を用いて生成したＶＬＣデータ信号１１６を制御回路１２７に出力する。
【００４５】
また、符号化２の処理において、ＬＭＡＸテーブル１１７は、Ｌａｓｔ信号１０１と、Ｒｕｎ信号１０２とを入力し、ＬＭＡＸデータ信号１１８を生成して（Ｐ２）、第２の減算回路１１９に出力する。第２の減算回路１１９は、ＬＭＡＸデータ信号１１８と、Ｌｅｖｅｌ絶対値信号１０４とを入力し、Ｌｅｖｅｌ絶対値信号１０４からＬＭＡＸデータ信号１１８を減算し（Ｐ３）、その結果を第２の減算回路の出力信号１２０として第３のレジスタ１２２に出力する。第３のレジスタ１２２は、入力された第２の減算回路の出力信号１２０を保持する。続いて、第３のＶＬＣテーブル１１２は第３のレジスタ１２２から出力されるＮｅｗＬｅｖｅｌ信号１８３と、Ｌａｓｔ信号１０１と、Ｒｕｎ信号１０２と、Ｓｉｇｎ信号１０３とを入力し、第３のＶＬＣデータ信号１２１を生成し（Ｐ４）、第５のレジスタ１８１に出力する。第５のレジスタ１８１は、入力された第３のＶＬＣデータ信号１２１を保持する。そして、第５のレジスタ１８１はＮｅｗＬｅｖｅｌ信号を用いて生成したＶＬＣデータ信号１２３を制御回路１２７に出力する。
【００４６】
ＲＭＡＸ  ＶＬＣ生成回路１７０は、第４のレジスタ１８０から出力されるＮｅｗＲｕｎ信号を用いて生成したＶＬＣデータ信号１１６のＶＬＣ化を行い、（ＥＳＣコード＋“０”＋ＶＬＣ結果）をＲＭＡＸ符号化データであるＲＭＡＸデータ信号１７５とし、選択回路１２９に出力する（Ｐ９）。また、ＬＭＡＸ  ＶＬＣ生成回路１７１は、第５のレジスタ１８１から出力されるＮｅｗＬｅｖｅｌ信号を用いて生成したＶＬＣデータ信号１２３のＶＬＣ化を行い、（ＥＳＣコード＋“１０”＋ＶＬＣ結果）をＬＭＡＸ符号化データであるＬＭＡＸデータ信号１７６とし、選択回路１２９に出力する（Ｐ９）。続いて、制御回路１２７は、第１のレジスタ１２５から出力される通常のＶＬＣデータ信号１２６と、第４のレジスタ１８０から出力されるＮｅｗＲｕｎ信号を用いて生成したＶＬＣデータ信号１１６と、第５のレジスタ１８１から出力されるＮｅｗＬｅｖｅｌ信号を用いて生成したＶＬＣデータ信号１２３とを入力し、それぞれのＶＬＣデータ信号がＶＬＣとして正しいかどうか判定を行う。そして、制御回路１２７は、予め設定された優先順位に従って、ＶＬＣデータ信号を選択するための選択信号１２８を出力する。
【００４７】
例えば優先順位を、通常のＶＬＣデータ、ＮｅｗＬｅｖｅｌ信号を用いて生成したＶＬＣデータ、ＮｅｗＲｕｎ信号を用いて生成したＶＬＣデータ、ＦＬＣデータの順番で設定したとする（図２における、優先順位１）。つまり、制御回路１２７に通常のＶＬＣデータ信号１２６が存在するならば、ＮｅｗＬｅｖｅｌ信号を用いて生成したＶＬＣデータ信号１２３、あるいはＮｅｗＲｕｎ信号を用いて生成したＶＬＣデータ信号１１６の存在にかかわらず、制御回路１２７は通常のＶＬＣデータ信号１２６を選択する選択信号１２８を、選択回路１２９に出力する。一方、制御回路１２７に通常のＶＬＣデータ信号１２６が存在せず、ＮｅｗＬｅｖｅｌ信号を用いて生成したＶＬＣデータ信号１２３が存在するならば、ＮｅｗＲｕｎ信号を用いて生成したＶＬＣデータ信号１１６の存在にかかわらず、制御回路１２７はＮｅｗＬｅｖｅｌ信号を用いて生成したＶＬＣデータ信号１２３を選択する選択信号１２８を、選択回路１２９に出力する。また、制御回路１２７に通常のＶＬＣデータ信号１２９、およびＮｅｗＬｅｖｅｌ信号を用いて生成したＶＬＣデータ信号１２３が存在せず、ＮｅｗＲｕｎ信号を用いて生成したＶＬＣデータ信号１１６が存在するならば、制御回路１２７はＮｅｗＲｕｎ信号を用いて生成したＶＬＣデータ信号１１６を選択する選択信号１２８を、選択回路１２９に出力する。そして、選択回路１２９は、制御回路１２７より入力される選択信号１２８に制御されて、いずれかのＶＬＣデータ信号を選択し、データ信号１３０として出力する。一方、選択回路１２９は制御回路１２７よりＶＬＣデータ信号を選択する選択信号１２８が入力されないならば、ＦＬＣデータ信号１０６を選択し、データ信号１３０として出力する。
【００４８】
図４は本発明の実施の形態２による制御回路の動作を説明するためのタイミングチャートである。
図４において、ｃｌｏｃｋ(クロック)は一定周期の信号、ｔｃｏｅｆ＿ｅはＶＬＣを行うための開始可能なデータがそろっていることを示す開始信号、ＭＰＥＧ４／Ｈ．２６３はいずれかの規格を示す信号であり、信号がＨ（Ｈｉｇｈ）のときはＭＰＥＧ４を示し、信号がＬ（Ｌｏｗ）のときはＨ．２６３を示す。Ｃｏｕｎｔｅｒ（カウンタ）は判定の開始、および判定の回数を示す。ｄｅｃ＿ｎｏｍａｌは通常のＶＬＣデータ信号１２６であり、第１のＶＬＣテーブル１１３の結果を示す。ｄｅｃ＿ｌｍａｘはＮｅｗＬｅｖｅｌ信号を用いて生成したＶＬＣデータ信号１２３であり、第３のＶＬＣテーブル１１２の結果を示す。ｄｅｃ＿ｒｍａｘはＮｅｗＲｕｎ信号を用いて生成したＶＬＣデータ信号１１６であり、第２のＶＬＣテーブル１１１の結果を示す。ｓｅｌ＿ｎｏｍａｌは通常のＶＬＣデータ信号１２６（ｄｅｃ＿ｎｏｍａｌ）の結果がＶＬＣテーブルに存在するならば、信号をＨにする。ｓｅｌ＿ｌｍａｘはＮｅｗＬｅｖｅｌ信号を用いて生成したＶＬＣデータ信号１２３（ｄｅｃ＿ｌｍａｘ）の結果がＶＬＣテーブルに存在するならば、信号をＨにする。ｓｅｌ＿ｒｍａｘはＮｅｗＲｕｎ信号を用いて生成したＶＬＣデータ信号１１６（ｄｅｃ＿ｒｍａｘ）の結果がＶＬＣテーブルに存在するならば、信号をＨにする。ｓｅｌ＿ｆｌｃは、通常のＶＬＣデータ信号１２６、ＮｅｗＬｅｖｅｌ信号を用いて生成したＶＬＣデータ信号１２３、ＮｅｗＲｕｎ信号を用いて生成したＶＬＣデータ信号１１６のいずれの結果もＶＬＣテーブルに存在しないならば、信号をＨにする。また、図中斜線部分は判定が行われるサイクル数を示す。
【００４９】
次に、各ＶＬＣデータ信号について説明する。
図４（ａ）は、ＭＰＥＧ４における通常のＶＬＣデータ信号を選択する場合のタイミングチャートである。
図４（ａ）において、カウンタの値が０を示し、ＶＬＣテーブルの判定が開始可能なデータがそろったならば、ｔｃｏｅｆ＿ｅの開始信号の立ち上がり判定が行われる。判定の結果、カウンタの値が１のときｄｅｃ＿ｎｏｍａｌの信号がＨ（つまりデータが存在することを示す）ならば、ｄｅｃ＿ｌｍａｘおよびｄｅｃ＿ｒｍａｘの信号の結果にかかわらず、ｓｅｌ＿ｎｏｍａｌの信号をＨにする。このとき、制御回路１２７は通常のＶＬＣデータ信号１２６を選択する選択信号１２８を出力し、選択回路１２９は選択信号１２８に制御されて、通常のＶＬＣデータ信号１２６を選択する。
【００５０】
図４（ｂ）は、ＭＰＥＧ４におけるＮｅｗＬｅｖｅｌ信号を用いて生成したＶＬＣデータ信号を選択する場合のタイミングチャートである。
図４（ｂ）において、カウンタの値が０を示し、ＶＬＣテーブルの判定が開始可能なデータがそろったならば、ｔｃｏｅｆ＿ｅの開始信号の立ち上がり判定が行われる。判定の結果、カウンタの値が１のとき全ての信号がＬで、カウンタの値が２のときｄｅｃ＿ｎｏｍａｌの信号がＬ，ｄｅｃ＿ｌｍａｘの信号がＨならば、ｄｅｃ＿ｒｍａｘの信号の結果にかかわらず、ｓｅｌ＿ｌｍａｘの信号をＨにする。このとき、制御回路１２７はＮｅｗＬｅｖｅｌ信号を用いて生成したＶＬＣデータ信号１２３により選択信号１２８を出力し、選択回路１２９は選択信号１２８に制御されて、ＬＭＡＸデータ信号１７６を選択する。
【００５１】
図４（ｃ）は、ＭＰＥＧ４におけるＮｅｗＲｕｎ信号を用いて生成したＶＬＣデータ信号を選択する場合のタイミングチャートである。
図４（ｃ）において、カウンタの値が０を示し、ＶＬＣテーブルの判定が開始可能なデータがそろったならば、ｔｃｏｅｆ＿ｅの開始信号の立ち上がり判定が行われる。判定の結果、カウンタの値が１のとき全ての信号がＬで、カウンタの値が２のときｄｅｃ＿ｎｏｍａｌの信号がＬ，ｄｅｃ＿ｌｍａｘの信号がＬ，ｄｅｃ＿ｒｍａｘの信号がＨならば、ｓｅｌ＿ｒｍａｘの信号をＨにする。このとき、制御回路１２７はＮｅｗＲｕｎ信号を用いて生成したＶＬＣデータ信号１１６により選択信号１２８を出力し、選択回路１２９は選択信号１２８に制御されて、ＲＭＡＸデータ信号１７５を選択する。
【００５２】
図４（ｄ）は、ＭＰＥＧ４におけるＦＬＣデータ信号を選択する場合のタイミングチャートである。
図４（ｄ）において、カウンタの値が０を示し、ＶＬＣテーブルの判定が開始可能なデータがそろったならば、ｔｃｏｅｆ＿ｅの開始信号の立ち上がり判定が行われる。判定の結果、カウンタの値が１および２のときｄｅｃ＿ｎｏｍａｌ，ｄｅｃ＿ｌｍａｘ，ｄｅｃ＿ｒｍａｘのいずれの信号もＬならば、ｓｅｌ＿ｆｌｃの信号をＨにする。そして、選択回路１２９でＦＬＣデータ信号１０６を選択する。
【００５３】
図４（ｅ）は、Ｈ．２６３における通常のＶＬＣデータ信号を選択する場合のタイミングチャートである。
図４（ｅ）において、カウンタの値が０を示し、ＶＬＣテーブルの判定が開始可能なデータがそろったならば、ｔｃｏｅｆ＿ｅの開始信号の立ち上がり判定が行われる。判定の結果、カウンタの値が１のときｄｅｃ＿ｎｏｍａｌの信号がＨならば、ｄｅｃ＿ｌｍａｘおよびｄｅｃ＿ｒｍａｘの信号の結果にかかわらず、ｓｅｌ＿ｎｏｍａｌの信号をＨにする。このとき、制御回路１２７は通常のＶＬＣデータ信号１２６を選択する選択信号１２８を出力し、選択回路１２９は選択信号１２８に制御されて、通常のＶＬＣデータ信号１２６を選択する。
【００５４】
図４（ｆ）は、Ｈ．２６３におけるＦＬＣデータ信号を選択する場合のタイミングチャートである。
図４（ｆ）において、カウンタの値が０を示し、ＶＬＣテーブルの判定が開始可能なデータがそろったならば、ｔｃｏｅｆ＿ｅの開始信号の立ち上がり判定が行われる。判定の結果、カウンタの値が１および２のときｄｅｃ＿ｎｏｍａｌ，ｄｅｃ＿ｌｍａｘ，ｄｅｃ＿ｒｍａｘのいずれの信号もＬならば、ｓｅｌ＿ｆｌｃの信号をＨにする。そして、選択回路１２９でＦＬＣデータ信号１０６を選択する。
【００５５】
次に、上述したタイミングチャートの処理内容をまとめた図を図５に示し説明する。
図５は本発明の実施の形態２によるサイクル毎の処理内容をまとめた図である。
以下、各サイクル毎の動作について説明する。なお、カッコ内は図中の処理内容を示す。
【００５６】
図５より、１サイクル目（１Ｔ）は、通常のＶＬＣであるＬａｓｔ、Ｒｕｎ、Ｌｅｖｅｌによってテーブルを引く処理を行う（ＮＯＲＭＡＬ  ＶＬＣ）。また、同時サイクルで、Ｌｅｖｅｌの値から、Ｌａｓｔ、Ｒｕｎに対応する最大のＬｅｖｅｌの値であるＬＭＡＸを減算してＮｅｗＬｅｖｅｌを得（ＬＭＡＸ）、Ｒｕｎの値から、Ｌａｓｔ、Ｌｅｖｅｌに対応する最大のＲｕｎの値であるＲＭＡＸに１を加算した値を減算してＮｅｗＲｕｎを得る（ＲＭＡＸ）。
【００５７】
続いて、２サイクル目（２Ｔ）は、通常のＶＬＣの結果が制御回路１２７に存在するか否かの判定を行い（ＮＯＲＭＡＬ  ＶＬＣ判定）、通常のＶＬＣの結果が存在するならば、その結果を出力する（ＶＬＣ結果）。また、同時サイクルでＬａｓｔ、Ｒｕｎ、ＮｅｗＬｅｖｅｌの組に対応するＶＬＣを行い（ＬＭＡＸ  ＶＬＣ）、Ｌａｓｔ、ＮｅｗＲｕｎ、Ｌｅｖｅｌの組に対応するＶＬＣを行う（ＲＭＡＸ  ＶＬＣ）。
【００５８】
続いて、３サイクル目（３Ｔ）は、Ｌａｓｔ、Ｒｕｎ、ＮｅｗＬｅｖｅｌの組に対応するＶＬＣの結果が制御回路１２７に存在するか否かの判定を行い（ＬＭＡＸ  ＶＬＣ判定）、ＬＭＡＸ  ＶＬＣの結果が存在するならば、その結果を出力し（ＶＬＣ結果）、また、Ｌａｓｔ、ＮｅｗＲｕｎ、Ｌｅｖｅｌの組に対応するＶＬＣの結果が制御回路１２７に存在するか否かの判定を行い（ＲＭＡＸ  ＶＬＣ判定）、ＲＭＡＸ  ＶＬＣの結果が存在するならば、その結果を出力する（ＶＬＣ結果）。一方、いずれの結果も制御回路１２７に存在していないと判定したならば、同時サイクルでＬａｓｔ、Ｒｕｎ、ＬｅｖｅｌをＦＬＣによって処理を行い、その結果を出力する（ＦＬＣ結果）。
【００５９】
このように、本実施の形態２による可変長符号化装置によれば、通常のＶＬＣデータとＮｅｗＬｅｖｅｌ信号を用いて生成したＶＬＣデータとＮｅｗＲｕｎ信号を用いて生成したＶＬＣデータと、の処理を同時に行い、予め設定した優先順位に従って結果を出力するものとしたので、すべての処理を３サイクルで実行することが可能となり、処理サイクル数を大幅に削減することが可能である。
【００６０】
なお、本実施の形態２による可変長符号化装置において、予め設定した優先順位は、通常のＶＬＣデータ、ＮｅｗＬｅｖｅｌ信号を用いて生成したＶＬＣデータ、ＮｅｗＲｕｎ信号を用いて生成したＶＬＣデータ、ＦＬＣデータの順番で信号を選択するものとしたが、この順番に限るものではなく、優先順位を通常のＶＬＣデータ、ＮｅｗＲｕｎ信号を用いて生成したＶＬＣデータ、ＮｅｗＬｅｖｅｌ信号を用いて生成したＶＬＣデータ、ＦＬＣデータとしてもよい。また、さらに優先順位を通常のＶＬＣデータ、ＦＬＣデータとすることで、ＮｅｗＬｅｖｅｌ信号を用いて生成したＶＬＣデータ、ＮｅｗＲｕｎ信号を用いて生成したＶＬＣデータを選択することなくＶＬＣ化を行うことも可能である。つまり、そのような優先順位はＨ．２６３のＶＬＣの処理にも対応することができ、また、画像データによって任意にＮｅｗＬｅｖｅｌ信号を用いて生成したＶＬＣデータ、ＮｅｗＲｕｎ信号を用いて生成したＶＬＣデータの優先順位を変えることが可能となる。これによりエスケープモードにおけるサイクル数を削減した可変長符号化装置を得ることができる。
【００６１】
（実施の形態３）
本実施の形態３の可変長符号化装置は、１つのＶＬＣテーブルを用いてＶＬＣを行うものである。
【００６２】
図６は、本発明の実施の形態３による可変長符号化装置の構成を説明するためのブロック図である。
図６において、図３と同一符号は同一または相当する部分を示している。１３５は第１の減算回路１０９の出力信号、１３６は第１の減算回路の出力信号１３５を保持する第２のレジスタ、１３７は第２のレジスタ１３６より出力されるＮｅｗＲｕｎ信号、１３８は第２の減算回路１１９の出力信号、１３９は第２の減算回路１１９の出力信号１３８を保持する第３のレジスタ、１４０は第３のレジスタ１３９より出力されるＮｅｗＬｅｖｅｌ信号、１４１はＬｅｖｅｌ絶対値信号１０４とＮｅｗＬｅｖｅｌ信号１４０のうち、いずれか一方の信号を選択する第１の選択回路、１４２は第１の選択回路１４１の出力信号、１４３はＲｕｎ信号１０２とＮｅｗＲｕｎ信号１３７のうち、いずれか一方の信号を選択する第２の選択回路、１４４は第２の選択回路１４３の出力信号、１３１はＬａｓｔ信号１０１とＳｉｇｎ信号１０３と、第１の選択回路の出力信号１４２と、第２の選択回路の出力信号１４４とを入力するＶＬＣテーブル、１３２はＶＬＣテーブル１３１から出力されるＶＬＣテーブル出力信号、１３３はＶＬＣテーブル出力信号１３２を保持する第１のレジスタ、１３４は第１のレジスタ１３３の出力信号であるＶＬＣデータ信号、１４５はＶＬＣデータ信号１３４を入力する制御回路、１４６は第１の選択回路１４１を制御し、Ｌｅｖｅｌ絶対値信号１０４とＮｅｗＬｅｖｅｌ信号１４０のうち、いずれか一方の信号を選択する第１の選択信号、１４７は第２の選択回路１４３を制御し、Ｒｕｎ信号１０２とＮｅｗＲｕｎ信号１３７のうち、いずれか一方の信号を選択する第２の選択信号、１４８は制御回路１４５で選択されたＶＬＣデータ信号１３４をＶＬＣ生成回路１７２と第３の選択回路１４９に出力する第３の選択信号、１７２は第３の選択信号１４８とＶＬＣデータ信号１３４とを入力し、符号化データを生成するＶＬＣ生成回路、１７７はＶＬＣ生成回路１７２の出力信号であるＶＬＣ生成信号、１４９はＶＬＣ生成信号１７７とＦＬＣデータ信号１０６のうち、いずれか一方の信号を選択する第３の選択回路である。
【００６３】
次に本発明の実施の形態３による可変長符号化装置の動作について、図６を用いて説明する。
制御回路１４５は第１の選択信号１４６により第１の選択回路１４１を制御し、第２の選択信号１４７により第２の選択回路１４３を制御する。そして、第１の選択回路１４１は第１の選択信号１４６により制御されて、Ｌｅｖｅｌ絶対値信号１０４を選択し、第１の選択回路１４１の出力信号１４２としてＶＬＣテーブル１３１に出力する。また、第２の選択回路１４３は第２の選択信号１４７により制御されて、Ｒｕｎ信号１０２を選択し、第２の選択回路１４３の出力信号１４４としてＶＬＣテーブル１３１に出力する。ＶＬＣテーブル１３１は、Ｌａｓｔ信号１０１と、Ｓｉｇｎ信号１０３と、Ｌｅｖｅｌ絶対値信号１０４としての第１の選択回路の出力信号１４２と、Ｒｕｎ信号１０２としての第２の選択回路の出力信号１４４とを入力し、通常のＶＬＣを行ってＶＬＣテーブル出力信号１３２を生成し、第１のレジスタ１３３に出力する。第１のレジスタ１３３はＶＬＣテーブル出力信号１３２を保持し、通常のＶＬＣであるＶＬＣデータ信号１３４を制御回路１４５とＶＬＣ生成回路１７２に出力する。
【００６４】
制御回路１４５は通常のＶＬＣデータであるＶＬＣデータ信号１３４を入力し、ＶＬＣテーブルとして正しいか否かの判定を行う。判定の結果、ＶＬＣデータ信号１３４がＶＬＣとして正しいならば、制御回路１４５はＶＬＣデータ信号１３４を選択する第３の選択信号１４８をＶＬＣ生成回路１７２と第３の選択回路１４９とに出力する。ＶＬＣ生成回路１７２は、選択されたＶＬＣデータ信号１３４を通常のＶＬＣデータとし、ＶＬＣ生成信号１７７として第３の選択回路１４９に出力する。第３の選択回路１４９は第３の選択信号１４８に制御されてＶＬＣ生成信号１７７を選択し、データ信号１３０として出力する。
【００６５】
次に、ＬＭＡＸテーブル１１７は、Ｌａｓｔ信号１０１とＲｕｎ信号１０２とを入力し、ＬＭＡＸデータ信号１１８を生成して第２の減算回路１１９に出力する。第２の減算回路１１９は、ＬＭＡＸデータ信号１１８とＬｅｖｅｌ絶対値信号１０４とを入力し、Ｌｅｖｅｌ絶対値信号１０４からＬＭＡＸデータ信号１１８を減算し、その結果を第２の減算回路の出力信号１３８として第３のレジスタ１３９に出力する。第３のレジスタ１３９は第２の減算回路の出力信号１３８を保持し、ＮｅｗＬｅｖｅｌ信号１４０として第１の選択回路１４１に出力する。
【００６６】
制御回路１４５は、第１の選択信号１４６により、第１の選択回路１４１を制御し、第１の選択回路１４１はＮｅｗＬｅｖｅｌ信号１４０を選択し、第１の選択回路の出力信号１４２としてＶＬＣテーブル１３１に出力する。また、制御回路１４５は第２の選択信号１４７により、第２の選択回路１４３を制御し、第２の選択回路１４３はＲｕｎ信号１０２を選択し、第２の選択回路の出力信号１４４としてＶＬＣテーブル１３１に出力する。ＶＬＣテーブル１３１はＬａｓｔ信号１０１と、Ｓｉｇｎ信号１０３と、ＮｅｗＬｅｖｅｌ信号１４０としての第１の選択回路の出力信号１４２と、Ｒｕｎ信号１０２としての第２の選択回路の出力信号１４４とを入力し、ＬＭＡＸ  ＶＬＣを行ってＶＬＣテーブル出力信号１３２を生成し、第１のレジスタ１３３に出力する。第１のレジスタ１３３はＬＭＡＸ  ＶＬＣであるＶＬＣテーブル出力信号１３２を保持する。
【００６７】
制御回路１４５は、ＬＭＡＸ  ＶＬＣであるＶＬＣデータ信号１３４を入力し、ＶＬＣとして正しいか否かの判定を行う。判定の結果、ＶＬＣデータ信号１３４がＶＬＣとして正しいならば、制御回路１４５はＶＬＣデータ信号１３４を選択する第３の選択信号１４８をＶＬＣ生成回路１７２と第３の選択回路１４９とに出力する。ＶＬＣ生成回路１７２は、ＥＳＣコードと、ＬＭＡＸでのＶＬＣを示す符号を付加して符号化を行いＶＬＣ生成信号１７７として第３の選択回路１４９に出力する。第３の選択回路１４９は第３の選択信号１４８に制御されてＶＬＣ生成信号１７７を選択し、データ信号１３０として出力する。
【００６８】
また、ＲＭＡＸテーブル１０７は、Ｌａｓｔ信号１０１とＬｅｖｅｌ絶対値信号１０４とを入力し、ＲＭＡＸデータ信号１０８を生成して第１の減算回路１０９に出力する。第１の減算回路１０９は、ＲＭＡＸデータ信号１０８とＲｕｎ信号１０２とを入力し、Ｒｕｎ信号１０２から、ＲＭＡＸデータ信号１０８と１を加算した値を減算し、その結果を第１の減算回路１０９の出力信号１３５として第２のレジスタ１３６に出力する。第２のレジスタ１３６は第１の減算回路の出力信号１３５を保持し、ＮｅｗＲｕｎ信号１３７として第２の選択回路１４３に出力する。
【００６９】
制御回路１４５は、第１の選択信号１４６により、第１の選択回路１４１を制御し、第１の選択回路１４１はＬｅｖｅｌ絶対値信号１０４を選択し、第１の選択回路１４１の出力信号１４２としてＶＬＣテーブル１３１に出力する。また、制御回路１４５は、第２の選択信号１４７により、第２の選択回路１４３を制御し、第２の選択回路１４３はＮｅｗＲｕｎ信号１３７を選択し、第２の選択回路の出力信号１４４としてＶＬＣテーブル１３１に出力する。ＶＬＣテーブル１３１はＬａｓｔ信号１０１と、Ｓｉｇｎ信号１０３と、Ｌｅｖｅｌ絶対値信号１０４としての第１の選択回路の出力信号１４２と、ＮｅｗＲｕｎ信号１３７としての第２の選択回路の出力信号１４４とを入力し、ＲＭＡＸ  ＶＬＣを行ってＶＬＣテーブル出力信号１３２を生成し、第１のレジスタ１３３に出力する。第１のレジスタ１３３はＲＭＡＸ  ＶＬＣであるＶＬＣテーブル出力信号１３２を保持する。
【００７０】
制御回路１４５は、ＲＭＡＸ  ＶＬＣであるＶＬＣデータ信号１３４を入力し、ＶＬＣとして正しいか否かの判定を行う。判定の結果、ＶＬＣデータ信号１３４がＶＬＣとして正しいならば、制御回路１４５はＶＬＣデータ信号１３４を選択する第３の選択信号１４８をＶＬＣ生成回路１７２と第３の選択回路１４９とに出力する。ＶＬＣ生成回路１７２は、ＥＳＣコードと、ＲＭＡＸでのＶＬＣを示す符号を付加して符号化を行いＶＬＣ生成信号１７７として第３の選択回路１４９に出力する。第３の選択回路１４９は第３の選択信号１４８に制御されてＶＬＣ生成信号１７７を選択し、データ信号１３０として出力する。
【００７１】
一方、制御回路１４５において、いずれのＶＬＣデータ信号１３４もＶＬＣとして正しくないと判定したならば、第３の選択回路１４９は、ＦＬＣデータ信号１０６を選択し、データ信号１３０として出力する。
【００７２】
次に、図７は本発明の実施の形態３による制御回路の動作を説明するためのタイミングチャートである。
図７において、各信号の名称は図４と同一であるので、説明を省略する。
【００７３】
次に、各タイミングチャートについて説明する。
図７（ａ）は、ＭＰＥＧ４における通常のＶＬＣデータ信号を選択する場合のタイミングチャートである。
【００７４】
図７（ａ）において、カウンタの値が０を示し、ＶＬＣテーブルの判定が開始可能なデータがそろったならば、ｔｃｏｅｆ＿ｅの開始信号の立ち上がり判定が行われる。判定の結果、カウンタの値が１のときｄｅｃ＿ｎｏｍａｌの信号がＨならば、ｄｅｃ＿ｌｍａｘおよびｄｅｃ＿ｒｍａｘの信号の結果にかかわらず、ｓｅｌ＿ｎｏｍａｌの信号をＨにする。このとき、制御回路１４５は通常のＶＬＣであるＶＬＣデータ信号１３４を選択する第３の選択信号１４８を出力し、第３の選択回路１４９は第３の選択信号１４８に制御されて、通常のＶＬＣデータ信号であるＶＬＣ生成信号１７７を選択する。
【００７５】
図７（ｂ）は、ＭＰＥＧ４におけるＮｅｗＬｅｖｅｌ信号を用いて生成したＶＬＣデータ信号を選択する場合のタイミングチャートである。
図７（ｂ）において、カウンタの値が０を示し、ＶＬＣテーブルの判定が開始可能なデータがそろったならば、ｔｃｏｅｆ＿ｅの開始信号の立ち上がり判定が行われる。判定の結果、カウンタの値が１のとき全ての信号がＬで、カウンタの値が２のとき、ｄｅｃ＿ｎｏｍａｌの信号がＬ，ｄｅｃ＿ｌｍａｘの信号がＨならば、ｄｅｃ＿ｒｍａｘの信号の結果にかかわらず、ｓｅｌ＿ｌｍａｘの信号をＨにする。このとき、制御回路１４５はＮｅｗＬｅｖｅｌ信号を用いて生成したＶＬＣデータ信号１３４を選択する第３の選択信号１４８を出力し、第３の選択回路１４９は第３の選択信号１４８に制御されて、ＮｅｗＬｅｖｅｌ信号を用いて生成したＶＬＣデータ信号であるＶＬＣ生成信号１７７を選択する。
【００７６】
図７（ｃ）は、ＭＰＥＧ４におけるＮｅｗＲｕｎ信号を用いて生成したＶＬＣデータ信号を選択する場合のタイミングチャートである。
図７（ｃ）において、カウンタの値が０を示し、ＶＬＣテーブルの判定が開始可能なデータがそろったならば、ｔｃｏｅｆ＿ｅの開始信号の立ち上がり判定が行われる。判定の結果、カウンタの値が１、および２のとき全ての信号がＬで、カウンタの値が３のとき、ｄｅｃ＿ｎｏｍａｌの信号がＬ，ｄｅｃ＿ｌｍａｘの信号がＬ，ｄｅｃ＿ｒｍａｘの信号がＨならば、ｓｅｌ＿ｒｍａｘの信号をＨにする。このとき、制御回路１４５はＮｅｗＲｕｎ信号を用いて生成したＶＬＣデータ信号を選択する第３の選択信号１４８を出力し、第３の選択回路１４９は第３の選択信号１４８に制御されて、ＮｅｗＲｕｎ信号を用いて生成したＶＬＣデータ信号であるＶＬＣ生成信号１７７を選択する。
【００７７】
図７（ｄ）は、ＭＰＥＧ４におけるＦＬＣデータ信号を選択する場合のタイミングチャートである。
図７（ｄ）において、カウンタの値が０を示し、ＶＬＣテーブルの判定が開始可能なデータがそろったならば、ｔｃｏｅｆ＿ｅの開始信号の立ち上がり判定が行われる。判定の結果、カウンタの値が１〜４のとき全ての信号がＬならば、ｓｅｌ＿ｆｌｃの信号をＨにする。そして、第３の選択回路１４９でＦＬＣデータ信号１０６を選択する。
【００７８】
図７（ｅ）は、Ｈ．２６３における通常のＶＬＣデータ信号を選択する場合のタイミングチャートである。
図７（ｅ）において、カウンタの値が０を示し、ＶＬＣテーブルの判定が開始可能なデータがそろったならば、ｔｃｏｅｆ＿ｅの開始信号の立ち上がり判定が行われる。判定の結果、カウンタの値が１のときｄｅｃ＿ｎｏｍａｌの信号がＨならば、ｄｅｃ＿ｌｍａｘおよびｄｅｃ＿ｒｍａｘの信号の結果にかかわらず、ｓｅｌ＿ｎｏｍａｌの信号をＨにする。このとき、制御回路１４５は通常のＶＬＣであるＶＬＣデータ信号１３４を選択する第３の選択信号１４８を出力し、第３の選択回路１４９は第３の選択信号１４８に制御されて、通常のＶＬＣデータ信号であるＶＬＣ生成信号１７７を選択する。
【００７９】
図７（ｆ）は、Ｈ．２６３におけるＦＬＣデータ信号を選択する場合のタイミングチャートである。
図７（ｆ）において、カウンタの値が０を示し、ＶＬＣテーブルの判定が開始可能なデータがそろったならば、ｔｃｏｅｆ＿ｅの開始信号の立ち上がり判定が行われる。判定の結果、カウンタの値が１および２のとき全ての信号がＬならば、ｓｅｌ＿ｆｌｃの信号をＨにする。そして、第３の選択回路１４９でＦＬＣデータ信号１０６を選択する。
【００８０】
次に、上述したタイミングチャートの処理内容をまとめた図を図８に示す。
図８は本発明の実施の形態３によるサイクル毎の処理内容をまとめた図である。
【００８１】
以下、各サイクル毎の動作について説明する。なお、カッコ内は図中の処理内容を示す。
図８より、１サイクル目（１Ｔ）は、通常のＶＬＣであるＬａｓｔ、Ｒｕｎ、Ｌｅｖｅｌによってテーブルを引く処理を行う（ＮＯＲＭＡＬ  ＶＬＣ）。また、同時サイクルで、Ｌｅｖｅｌの値から、Ｌａｓｔ、Ｒｕｎに対応する最大のＬｅｖｅｌの値であるＬＭＡＸを減算してＮｅｗＬｅｖｅｌを得（ＬＭＡＸ）、Ｒｕｎの値から、Ｌａｓｔ、Ｌｅｖｅｌに対応する最大のＲｕｎの値であるＲＭＡＸに１を加算した値を減算してＮｅｗＲｕｎを得る（ＲＭＡＸ）。
【００８２】
２サイクル目（２Ｔ）は、通常のＶＬＣの結果が制御回路１４５に存在するか否かの判定を行い（ＮＯＲＭＡＬ  ＶＬＣ判定）、通常のＶＬＣの結果が存在するならば、その結果を出力する（ＶＬＣ結果）。また、同時サイクルでＬａｓｔ、Ｒｕｎ、ＮｅｗＬｅｖｅｌの組に対応するＶＬＣを行う（ＬＭＡＸ  ＶＬＣ）。
【００８３】
３サイクル目（３Ｔ）は、Ｌａｓｔ、Ｒｕｎ、ＮｅｗＬｅｖｅｌの組に対応するＶＬＣの結果が制御回路１４５に存在するか否かの判定を行い（ＬＭＡＸ  ＶＬＣ判定）、ＬＭＡＸ  ＶＬＣの結果が存在するならば、その結果を出力する（ＶＬＣ結果）、また、同時サイクルでＬａｓｔ、ＮｅｗＲｕｎ、Ｌｅｖｅｌの組に対応するＶＬＣを行う（ＲＭＡＸ  ＶＬＣ）。
【００８４】
４サイクル目（４Ｔ）は、Ｌａｓｔ、ＮｅｗＲｕｎ、Ｌｅｖｅｌの組に対応するＶＬＣの結果が制御回路１４５に存在するか否かの判定を行い（ＲＭＡＸ  ＶＬＣ判定）、ＲＭＡＸ  ＶＬＣの結果が存在するならば、その結果を出力する（ＶＬＣ結果）。
【００８５】
５サイクル目（５Ｔ）は、上述したいずれのＶＬＣ結果も制御回路１４５に存在していないと判定したなら、Ｌａｓｔ、Ｒｕｎ、ＬｅｖｅｌをＦＬＣによって処理を行い、その結果を出力する（ＦＬＣ結果）。
【００８６】
また、上述した図８の構成によれば、ＲＭＡＸ  ＶＬＣの判定を４サイクル目で行い、ＲＭＡＸ  ＶＬＣの結果が制御回路１４５に存在していなければＦＬＣデータの出力を５サイクル目で行うこととしているが、４サイクル目でＲＭＡＸ  ＶＬＣの判定を行うのと同時にＦＬＣデータの出力を行うことも可能である。図９に図８の作業を４サイクルで行うときのサイクル毎の処理内容をまとめた図を示す。
【００８７】
図９より図８との違いは、４サイクル目（４Ｔ）の処理が開始すると、ＲＭＡＸ  ＶＬＣの判定を行い、ＲＭＡＸ  ＶＬＣの結果が制御回路１４５に存在しているならば、その結果を出力し、ＲＭＡＸ  ＶＬＣの結果が制御回路１４５に存在していなければ、同時サイクルでＦＬＣデータを出力し処理が終了することである。
【００８８】
このように、本実施の形態３による可変長符号化装置によれば、通常のＶＬＣを行うと同時にＬＭＡＸ  ＶＬＣとＲＭＡＸ  ＶＬＣの生成を同時に行い、通常のＶＬＣデータ信号が正しいものと判断されたならば、ＬＭＡＸ  ＶＬＣおよびＲＭＡＸ  ＶＬＣの判定を行わないものとしたので、通常のＶＬＣを行うのと同時にＮｅｗＬｅｖｅｌ信号、ＮｅｗＲｕｎ信号を算出することが可能である。また、従来ＶＬＣの処理に６サイクルを要していたが、本実施の形態３によれば処理サイクル数を４サイクルまたは５サイクルに削減することができる。さらに、従来は３つのＶＬＣテーブルを用いて処理を行っていたが、１つのＶＬＣテーブルでＶＬＣを行うことが可能なため、回路面積の削減を図ることができる。
【００８９】
なお、本実施の形態３による可変長符号化装置において、予め設定した優先順位は、通常のＶＬＣデータ、ＮｅｗＬｅｖｅｌ信号を用いて生成したＶＬＣデータ、ＮｅｗＲｕｎ信号を用いて生成したＶＬＣデータ、ＦＬＣデータの順番で信号を選択するものとしたが、この順番に限るものではなく、優先順位を通常のＶＬＣデータ、ＮｅｗＲｕｎ信号を用いて生成したＶＬＣデータ、ＮｅｗＬｅｖｅｌ信号を用いて生成したＶＬＣデータ、ＦＬＣデータとしてもよい。また、さらに優先順位を通常のＶＬＣデータ、ＦＬＣデータとすることで、ＮｅｗＬｅｖｅｌ信号を用いて生成したＶＬＣデータ、ＮｅｗＲｕｎ信号を用いて生成したＶＬＣデータを選択することなくＶＬＣ化を行うことも可能である。つまり、そのような優先順位はＨ．２６３のＶＬＣの処理にも対応することができ、また、画像データによって任意にＮｅｗＬｅｖｅｌ信号を用いて生成したＶＬＣデータ、ＮｅｗＲｕｎ信号を用いて生成したＶＬＣデータの優先順位を変えることが可能となる。これによりエスケープモードにおけるサイクル数を削減した可変長符号化装置を得ることができる。
【００９０】
また、本実施の形態３による可変長符号化装置において、カウンタを制御し、ＶＬＣコードを正しくない回数にカウントさせることで、優先順位を任意に設定することが可能である。つまり、図７でカウンタは通常のＶＬＣデータ、ＮｅｗＬｅｖｅｌ信号を用いて生成したＶＬＣデータ、ＮｅｗＲｕｎ信号を用いて生成したＶＬＣデータ、ＦＬＣデータの順番でＶＬＣデータを出力するものとしているが、カウンタを制御して、通常のＶＬＣデータ、ＮｅｗＲｕｎ信号を用いて生成したＶＬＣデータ、ＮｅｗＬｅｖｅｌ信号を用いて生成したＶＬＣデータ、ＦＬＣデータの順番に設定してもよい。このような順番に設定を変えた場合でも、同様の効果を得ることができる。また、優先順位を通常のＶＬＣデータ、ＦＬＣデータの順番に設定することで、Ｈ．２６３に対応した処理を行うことも可能である。
【００９１】
（実施の形態４）
本実施の形態４の可変長符号化装置は、１つのＶＬＣテーブルを用いてＶＬＣを行い、しかも余分な処理にアクセスしないようにするものである。
【００９２】
図１０は、本発明の実施の形態４による可変長符号化装置の構成を説明するためのブロック図である。
図１０において、図６と同一符号は同一または相当する部分を示している。１５０はＬｅｖｅｌ絶対値信号１０４とＮｅｗＬｅｖｅｌ信号１４０のうち、いずれか一方の信号を選択する第３の選択回路、１５１は第３の選択回路１５０の出力信号、１５２はＲｕｎ信号１０２とＮｅｗＲｕｎ信号１３７のうち、いずれか一方の信号を選択する第４の選択回路、１５３は第４の選択回路１５２の出力信号、１５４はＶＬＣデータ信号１３４を入力する制御回路、１５７は第３の選択回路１５０を制御し、Ｌｅｖｅｌ絶対値信号１０４とＮｅｗＬｅｖｅｌ信号１４０のうち、いずれか一方の信号を選択する第３の選択信号、１５８は第４の選択回路１５２を制御し、Ｒｕｎ信号１０２とＮｅｗＲｕｎ信号１３７のうち、いずれか一方の信号を選択する第４の選択信号、１５９はＬｅｖｅｌ絶対値信号１０４と、Ｌａｓｔ信号１０１と、固定値とを入力する第１の選択回路、１６０は第１の選択回路１５９によりＬｅｖｅｌ絶対値信号１０４または固定値を出力する第１の出力信号、１６１は第１の選択回路１５９によりＬａｓｔ信号１０１または固定値を出力する第２の出力信号、１６２はＲｕｎ信号１０２と、Ｌａｓｔ信号１０１と、固定値とを入力する第２の選択回路、１６３は第２の選択回路１６２によりＲｕｎ信号１０２または固定値を出力する第３の出力信号、１６４は第２の選択回路１６２によりＬａｓｔ信号１０１または固定値を出力する第４の出力信号、１５５は第１の選択回路１５９を制御し、Ｌｅｖｅｌ絶対値信号１０４と、Ｌａｓｔ信号１０１と、固定値の中から、出力する信号を選択する第１の選択信号、１５６は第２の選択回路１６２を制御し、Ｒｕｎ信号１０２と、Ｌａｓｔ信号１０１と、固定値の中から、出力する信号を選択する第２の選択信号、１６５は制御回路１５４で選択されたＶＬＣデータ信号１３４をＶＬＣ生成回路１７２と第５の選択回路１６６に出力する第５の選択信号、１６６はＶＬＣ生成信号１７７とＦＬＣデータ信号１０６とのうち、いずれか一方の信号を選択する第５の選択回路である。
【００９３】
次に本発明の実施の形態４による可変長符号化装置の動作について、図１０を用いて説明する。
制御回路１５４は第３の選択信号１５７により第３の選択回路１５０を制御し、第４の選択信号１５８により第４の選択回路１５２を制御する。そして、第３の選択回路１５０は第３の選択信号１５７により制御されて、Ｌｅｖｅｌ絶対値信号１０４を選択し、第３の選択回路の出力信号１５１としてＶＬＣテーブル１３１に出力する。また、第４の選択回路１５２は第４の選択信号１５８により制御されて、Ｒｕｎ信号１０２を選択し、第４の選択回路の出力信号１５３としてＶＬＣテーブル１３１に出力する。ＶＬＣテーブル１３１は、Ｌａｓｔ信号１０１と、Ｓｉｇｎ信号１０３と、Ｌｅｖｅｌ絶対値信号１０４としての第３の選択回路の出力信号１５１と、Ｒｕｎ信号１０２としての第４の選択回路の出力信号１５３とを入力し、通常のＶＬＣを行ってＶＬＣテーブル出力信号１３２を生成し、第１のレジスタ１３３に出力する。第１のレジスタ１３３はＶＬＣテーブル出力信号１３２を保持し、通常のＶＬＣであるＶＬＣデータ信号１３４を制御回路１５４とＶＬＣ生成回路１７２に出力する。
【００９４】
制御回路１５４は通常のＶＬＣデータであるＶＬＣデータ信号１３４を入力し、ＶＬＣテーブルとして正しいか否かの判定を行う。判定の結果、ＶＬＣデータ信号１３４がＶＬＣとして正しいならば、制御回路１５４はＶＬＣデータ信号１３４を選択する第５の選択信号１６５をＶＬＣ生成回路１７２と第５の選択回路１６６とに出力する。ＶＬＣ生成回路１７２は、選択されたＶＬＣデータ信号１３４を通常のＶＬＣデータとし、ＶＬＣ生成信号１７７として第５の選択回路１６６に出力する。第５の選択回路１６６は第５の選択信号１６５に制御されてＶＬＣ生成信号１７７を選択し、データ信号１３０として出力する。
【００９５】
次に、制御回路１５４は第２の選択信号１５６により第２の選択回路１６２を制御する。第２の選択回路１６２は第２の選択信号１５６により制御されて、Ｒｕｎ信号１０２とＬａｓｔ信号１０１とを選択して入力し、それぞれ第３の出力信号１６３および第４の出力信号１６４としてＬＭＡＸテーブル１１７に出力する。ＬＭＡＸテーブル１１７は、第３の出力信号１６３および第４の出力信号１６４を入力し、ＬＭＡＸデータ信号１１８を生成して第２の減算回路１１９に出力する。第２の減算回路１１９はＬＭＡＸデータ信号１１８とＬｅｖｅｌ絶対値信号１０４とを入力し、Ｌｅｖｅｌ絶対値信号１０４からＬＭＡＸデータ信号１１８を減算し、その結果を第２の減算回路の出力信号１３８として第３のレジスタ１３９に出力する。第３のレジスタ１３９は第２の減算回路の出力信号１３８を保持し、ＮｅｗＬｅｖｅｌ信号１４０として第３の選択回路１５０に出力する。
【００９６】
制御回路１５４は、第３の選択信号１５７により第３の選択回路１５０を制御し、第４の選択信号１５８により第４の選択回路１５２を制御する。第３の選択回路１５０は第３の選択信号１５７に制御されてＮｅｗＬｅｖｅｌ信号１４０を選択し、第３の選択回路の出力信号１５１としてＶＬＣテーブル１３１に出力する。また、第４の選択回路１５２は第４の選択信号１５８に制御されてＲｕｎ信号１０２を選択し、第４の選択回路の出力信号１５３としてＶＬＣテーブル１３１に出力する。ＶＬＣテーブル１３１は、Ｌａｓｔ信号１０１と、Ｓｉｇｎ信号１０３と、ＮｅｗＬｅｖｅｌ信号１４０としての第３の選択回路の出力信号１５１と、Ｒｕｎ信号１０２としての第４の選択回路の出力信号１５３とを入力し、ＬＭＡＸ  ＶＬＣを行ってＶＬＣテーブル出力信号１３２を生成し、第１のレジスタ１３３に出力する。第１のレジスタ１３３は、ＬＭＡＸ  ＶＬＣであるＶＬＣテーブル出力信号１３２を保持する。
【００９７】
制御回路１５４は、ＬＭＡＸデータであるＶＬＣデータ信号１３４を入力し、ＶＬＣとして正しいか否かの判定を行う。判定の結果、ＶＬＣデータ信号１３４がＶＬＣとして正しいならば、制御回路１５４はＶＬＣデータ信号１３４を選択する第５の選択信号１６５をＶＬＣ生成回路１７２と第５の選択回路１６６とに出力する。ＶＬＣ生成回路１７２は、ＥＳＣコードと、ＬＭＡＸでのＶＬＣを示す符号を付加して符号化を行いＶＬＣ生成信号１７７として第５の選択回路１６６に出力する。第５の選択回路１６６は第５の選択信号１６５に制御されてＶＬＣ生成信号１７７を選択し、データ信号１３０として出力する。
【００９８】
また、制御回路１５４は、第１の選択信号１５５により第１の選択回路１５９を制御する。第１の選択回路１５９は第１の選択信号１５５により制御されて、Ｌｅｖｅｌ絶対値信号１０４とＬａｓｔ信号１０１とを選択して入力し、それぞれ第１の出力信号１６０および第２の出力信号１６１としてＲＭＡＸテーブル１０７に出力する。ＲＭＡＸテーブル１０７は、第１の出力信号１６０および第２の出力信号１６１を入力し、ＲＭＡＸデータ信号１０８を生成して第１の減算回路１０９に出力する。第１の減算回路１０９は、ＲＭＡＸデータ信号１０８とＲｕｎ信号１０２とを入力し、Ｒｕｎ信号１０２の値から、ＲＭＡＸデータ信号１０８と１を加算した値を減算し、その結果を第１の減算回路の出力信号１３５として第２のレジスタ１３６に出力する。第２のレジスタ１３６は第１の減算回路の出力信号１３５を保持し、ＮｅｗＲｕｎ信号１３７として第４の選択回路１５２に出力する。
【００９９】
制御回路１５４は、第３の選択信号１５７により、第３の選択回路１５０を制御し、第４の選択信号１５８により第４の選択回路１５２を制御する。第３の選択回路１５０は第３の選択信号１５７に制御されてＬｅｖｅｌ絶対値信号１０４を選択し、第３の選択回路の出力信号１５１としてＶＬＣテーブル１３１に出力する。また、第４の選択回路１５２は第４の選択信号１５８に制御されてＮｅｗＲｕｎ信号１３７を選択し、第４の選択回路の出力信号１５３としてＶＬＣテーブル１３１に出力する。ＶＬＣテーブル１３１はＬａｓｔ信号１０２と、Ｓｉｇｎ信号１０３と、Ｌｅｖｅｌ絶対値信号１０４としての第３の選択回路の出力信号１５１と、ＮｅｗＲｕｎ信号１３７としての第４の選択回路の出力信号１５３とを入力し、ＲＭＡＸ  ＶＬＣを行ってＶＬＣテーブル出力信号１３２を生成し、第１のレジスタ１３３に出力する。第１のレジスタ１３３はＲＭＡＸ  ＶＬＣであるＶＬＣテーブル出力信号１３２を保持する。
【０１００】
制御回路１５４は、ＲＭＡＸ  ＶＬＣであるＶＬＣデータ信号１３４を入力し、ＶＬＣとして正しいか否かの判定を行う。判定の結果、ＶＬＣデータ信号１３４はＶＬＣとして正しいならば、制御回路１５４はＶＬＣデータ信号１３４を選択する第５の選択信号１６５をＶＬＣ生成回路１７２と第５の選択回路１６６とに出力する。ＶＬＣ生成回路１７２は、ＥＳＣコードと、ＲＭＡＸでのＶＬＣを示す符号を付加して符号化を行いＶＬＣ生成信号１７７として第５の選択回路１６６に出力する。第５の選択回路１６６は第５の選択信号１６５に制御されてＶＬＣ生成信号１７７を選択し、データ信号１３０として出力する。
【０１０１】
一方、制御回路１５４において、いずれのＶＬＣデータ信号１３４もＶＬＣとして正しくないならば、第５の選択回路１６６は、ＦＬＣデータ信号１０６を選択し、データ信号１３０として出力する。
【０１０２】
次に、本発明の実施の形態４によるサイクル毎の処理内容をまとめた図を図１１に示し説明する。
以下、各サイクル毎の動作について説明する。なお、カッコ内は図中の処理内容を示す。
【０１０３】
図１１より、１サイクル目（１Ｔ）は、通常のＶＬＣであるＬａｓｔ、Ｒｕｎ、Ｌｅｖｅｌによってテーブルを引く処理を行う（ＮＯＲＭＡＬ  ＶＬＣ）。また、同時サイクルで、Ｌｅｖｅｌの値から、Ｌａｓｔ、Ｒｕｎに対応する最大のＬｅｖｅｌの値であるＬＭＡＸを減算してＮｅｗＬｅｖｅｌを得る（ＬＭＡＸ）。
【０１０４】
２サイクル目（２Ｔ）は、通常のＶＬＣの結果が制御回路１５４に存在するか否かの判定を行い（ＮＯＲＭＡＬ  ＶＬＣ判定）、通常のＶＬＣの結果が存在するならば、その結果を出力する（ＶＬＣ結果）。また、同時サイクルでＲｕｎの値から、Ｌａｓｔ、Ｌｅｖｅｌに対応する最大のＲｕｎの値であるＲＭＡＸに１を加算した値を減算してＮｅｗＲｕｎを得る（ＲＭＡＸ）。また、Ｌａｓｔ、Ｒｕｎ、ＮｅｗＬｅｖｅｌの組に対応するＶＬＣを行う（ＬＭＡＸ  ＶＬＣ）。
【０１０５】
３サイクル目（３Ｔ）は、Ｌａｓｔ、Ｒｕｎ、ＮｅｗＬｅｖｅｌの組に対応するＶＬＣの結果が制御回路１５４に存在するか否かの判定を行い（ＬＭＡＸ  ＶＬＣ判定）、ＬＭＡＸ  ＶＬＣの結果が存在するならば、その結果を出力する（ＶＬＣ結果）、また、同時サイクルでＬａｓｔ、ＮｅｗＲｕｎ、Ｌｅｖｅｌの組に対応するＶＬＣを行う（ＲＭＡＸ  ＶＬＣ）
【０１０６】
４サイクル目（４Ｔ）は、Ｌａｓｔ、ＮｅｗＲｕｎ、Ｌｅｖｅｌの組に対応するＶＬＣの結果が制御回路１５４に存在するか否かの判定を行い（ＲＭＡＸ  ＶＬＣ判定）、ＲＭＡＸ  ＶＬＣの結果が存在するならば、その結果を出力する（ＶＬＣ結果）。一方、上述したいずれのＶＬＣ結果も制御回路１５４に存在していないと判定したならば、Ｌａｓｔ、Ｒｕｎ、ＬｅｖｅｌをＦＬＣによって処理を行い、その結果を出力する（ＦＬＣ結果）。
【０１０７】
このように、本実施の形態４による可変長符号化装置によれば、通常のＶＬＣを行うのと同時にＮｅｗＬｅｖｅｌ信号を算出し、第１のエスケープモードを実行する２サイクル目でＮｅｗＲｕｎ信号を算出するものとしたので、常に１サイクル目でＲＭＡＸテーブルにアクセスすることがなく、消費電力を削減することができる。また、従来ＶＬＣの処理に６サイクルを要していたが、本実施の形態４によれば処理サイクル数を４サイクルに削減することができる。さらに、従来は３つのＶＬＣテーブルを用いて処理を行っていたが、１つのＶＬＣテーブルでＶＬＣを行うことが可能となるため、回路面積の削減を図ることができる。
【０１０８】
なお、本実施の形態４による可変長符号化装置において、予め設定した優先順位は、通常のＶＬＣデータ、ＮｅｗＬｅｖｅｌ信号を用いて生成したＶＬＣデータ、ＮｅｗＲｕｎ信号を用いて生成したＶＬＣデータ、ＦＬＣデータの順番で信号を選択するものとしたが、この順番に限るものではなく、優先順位を通常のＶＬＣデータ、ＮｅｗＲｕｎ信号を用いて生成したＶＬＣデータ、ＮｅｗＬｅｖｅｌ信号を用いて生成したＶＬＣデータ、ＦＬＣデータとしてもよい。また、さらに優先順位を通常のＶＬＣデータ、ＦＬＣデータとすることで、ＮｅｗＬｅｖｅｌ信号を用いて生成したＶＬＣデータ、ＮｅｗＲｕｎ信号を用いて生成したＶＬＣデータを選択することなくＶＬＣ化を行うことも可能である。つまり、そのような優先順位はＨ．２６３のＶＬＣの処理にも対応することができ、また、画像データによって任意にＮｅｗＬｅｖｅｌ信号を用いて生成したＶＬＣデータ、ＮｅｗＲｕｎ信号を用いて生成したＶＬＣデータの優先順位を変えることが可能となる。これによりエスケープモードにおけるサイクル数を削減した可変長符号化装置を得ることができる。
【産業上の利用可能性】
【０１０９】
以上のように本発明に係る可変長符号化方法および可変長符号化装置は、演算サイクル数を少なくし、効率よく可変長符号化の処理を行うことができるので、特に、ＭＰＥＧ４やＨ．２６３等の規格に準拠した動画像の圧縮処理に適している。
【図面の簡単な説明】
【０１１０】
【図１】本発明の実施の形態１による可変長符号化方法を説明するためのチャート図である。
【図２】本発明の実施の形態１による符号を出力する優先順位の組み合わせを説明するための図である。
【図３】本発明の実施の形態２による可変長符号化装置の構成を説明するためのブロック図である。
【図４（ａ）】本発明の実施の形態２による制御回路の動作を説明するためのタイミングチャートである。
【図４（ｂ）】本発明の実施の形態２による制御回路の動作を説明するためのタイミングチャートである。
【図４（ｃ）】本発明の実施の形態２による制御回路の動作を説明するためのタイミングチャートである。
【図４（ｄ）】本発明の実施の形態２による制御回路の動作を説明するためのタイミングチャートである。
【図４（ｅ）】本発明の実施の形態２による制御回路の動作を説明するためのタイミングチャートである。
【図４（ｆ）】本発明の実施の形態２による制御回路の動作を説明するためのタイミングチャートである。
【図５】本発明の実施の形態２によるサイクル毎の処理内容をまとめた図である。
【図６】本発明の実施の形態３による可変長符号化装置の構成を説明するためのブロック図である。
【図７（ａ）】本発明の実施の形態３による制御回路の動作を説明するためのタイミングチャートである。
【図７（ｂ）】本発明の実施の形態３による制御回路の動作を説明するためのタイミングチャートである。
【図７（ｃ）】本発明の実施の形態３による制御回路の動作を説明するためのタイミングチャートである。
【図７（ｄ）】本発明の実施の形態３による制御回路の動作を説明するためのタイミングチャートである。
【図７（ｅ）】本発明の実施の形態３による制御回路の動作を説明するためのタイミングチャートである。
【図７（ｆ）】本発明の実施の形態３による制御回路の動作を説明するためのタイミングチャートである。
【図８】本発明の実施の形態３による５Ｔで処理が行われるときのサイクル毎の処理内容をまとめた図である。
【図９】本発明の実施の形態３による４Ｔで処理が行われるときのサイクル毎の処理内容をまとめた図である。
【図１０】本発明の実施の形態４による可変長符号化装置の構成を説明するためのブロック図である。
【図１１】本発明の実施の形態４によるサイクル毎の処理内容をまとめた図である。
【図１２】従来の可変長符号化方法を説明するためのチャート図である。
【図１３】従来の可変長符号化方法のサイクル毎の処理内容をまとめた図である。
【符号の説明】
【０１１１】
１００    Ｌｅｖｅｌ信号
１０１    Ｌａｓｔ信号
１０２    Ｒｕｎ信号
１０３    Ｓｉｇｎ信号
１０４    Ｌｅｖｅｌ絶対値信号
１０５    ＦＬＣ生成回路
１０６    ＦＬＣデータ信号
１０７    ＲＭＡＸテーブル
１０８    ＲＭＡＸデータ信号
１０９    第１の減算回路
１１０，１３５    第１の減算回路の出力信号
１１１    第２のＶＬＣテーブル
１１２    第３のＶＬＣテーブル
１１３    第１のＶＬＣテーブル
１１４    第２のＶＬＣテーブルの出力信号
１１５，１３６    第２のレジスタ
１１６，１３４    ＶＬＣデータ信号
１１７    ＬＭＡＸテーブル
１１８    ＬＭＡＸデータ信号
１１９    第２の減算回路
１２０，１３８    第２の減算回路の出力信号
１２１    第３のＶＬＣデータ信号
１２２，１３９    第３のレジスタ
１２３    ＶＬＣデータ信号
１２４    第１のＶＬＣデータ信号
１２５，１３３    第１のレジスタ
１２６    通常のＶＬＣデータ信号
１２７，１４５，１５４    制御回路
１２８    選択信号
１２９    選択回路
１３０    データ信号
１３１    ＶＬＣテーブル
１３２    ＶＬＣテーブル出力信号
１３７，１８２    ＮｅｗＲｕｎ信号
１４０，１８３    ＮｅｗＬｅｖｅｌ信号
１４１，１５９    第１の選択回路
１４２    第１の選択回路の出力信号
１４３，１６２    第２の選択回路
１４４    第２の選択回路の出力信号
１４６，１５５    第１の選択信号
１４７，１５６  第２の選択信号
１４８，１５７    第３の選択信号
１４９，１５０    第３の選択回路
１５１    第３の選択回路の出力信号
１５２    第４の選択回路
１５３    第４の選択回路の出力信号
１５８    第４の選択信号
１６０    第１の出力信号
１６１    第２の出力信号
１６３    第３の出力信号
１６４    第４の出力信号
１６５    第５の選択信号
１６６    第５の選択回路
１７０    ＲＭＡＸ  ＶＬＣ生成回路
１７１    ＬＭＡＸ  ＶＬＣ生成回路
１７２    ＶＬＣ生成回路
１７５    ＲＭＡＸデータ信号
１７６    ＬＭＡＸデータ信号
１７７    ＶＬＣ生成信号
１８０    第４のレジスタ
１８１    第５のレジスタ
【図１】
2004297827.tif 000003
【図２】
2004297827.tif 000004
【図３】
2004297827.tif 000005
【図４（ｂ）】
2004297827.tif 000006
【図４（ｃ）】
2004297827.tif 000007
【図４（ｄ）】
2004297827.tif 000008
【図４（ｅ）】
2004297827.tif 000009
【図４（ｆ）】
2004297827.tif 000010
【図５】
2004297827.tif 000011
【図６】
2004297827.tif 000012
【図７（ａ）】
2004297827.tif 000013
【図７（ｂ）】
2004297827.tif 000014
【図７（ｃ）】
2004297827.tif 000015
【図７（ｄ）】
2004297827.tif 000016
【図７（ｅ）】
2004297827.tif 000017
【図７（ｆ）】
2004297827.tif 000018
【図８】
2004297827.tif 000019
【図９】
2004297827.tif 000020
【図１０】
2004297827.tif 000021
【図１１】
2004297827.tif 000022
【図１２】
2004297827.tif 000023
【図１３】
2004297827.tif 000024
【図４（ａ）】
2004297827.tif 000025