(57)【要約】【課題】係数値を符号化する際に、符号化効率を向上させることができる可変長符号化方法に対応する可変長復号化方法を提供する。【解決手段】非ゼロの係数値の総個数を求めるステップと、複数のテーブルを切り替えながらレベル値の可変長復号化を総個数に達するまで実行する第１の復号化ステップと、非ゼロの係数値の可変長復号化とは別々に、ラン値を求める第２の復号化ステップと、ラン値とレベル値を一次元列の係数値に変換する変換ステップと、一次元列の係数値を二次元列の係数値に逆走査する逆走査ステップを含み、第１の復号化ステップでは、復号化の対象となるレベル値の絶対値が、使用されたテーブルに割り当てられた閾値を超えると、当該閾値より大きい閾値が割り当てられたテーブルに切り替えられた後に、次に復号化されるべきレベル値を復号化し、複数のテーブルの切り替えは一方向の切り替えである。【選択図】図２０
2010141918.tif 000002
【特許請求の範囲】
【請求項１】
画像データを所定の大きさを有するブロック単位で周波数変換して得られたブロックの二次元列の係数値を可変長符号化して生成された符号化データを可変長復号化する復号化方法であって、
前記符号化データを復号化して、前記ブロックに含まれる非ゼロの係数値の総個数を求めるステップと、
前記符号化データを、閾値がそれぞれ割り当てられた複数のテーブルを切り替えながら高周波成分から低周波成分の順に非ゼロの係数値を示すレベル値を順次可変長復号化して、復号化された前記非ゼロの係数値の個数が、復号化された前記非ゼロの係数値の総個数に達するまで実行する第１の復号化ステップと、
複数の符号テーブルを用いて、前記非ゼロの係数値の可変長復号化とは別々に、前記符号化データを高周波成分から低周波成分の順に可変長復号化して、ラン値を求める第２の復号化ステップと、
復号化された前記ラン値と復号化された前記レベル値を一次元列の係数値に変換する変換ステップと、
前記一次元列の係数値を前記ブロックの二次元列の係数値に逆走査する逆走査ステップを含み、
前記第１の復号化ステップでは、
復号化の対象となるレベル値の絶対値が、当該レベル値の復号化に使用されたテーブルに割り当てられた閾値を超えると、当該閾値より大きい閾値が割り当てられたテーブルに切り替えられた後に、前記復号化対象のレベル値に続いて次に復号化されるべきレベル値を復号化し、
前記複数のテーブルの切り替えは、一方向の切り替えであり、別のテーブルに切り替えられた後は、切り替えられる前に使用されていたテーブルは再度使用されることがない切り替えである
ことを特徴とする復号化方法。
【請求項２】
画像データを所定の大きさを有するブロック単位で周波数変換して得られたブロックの二次元列の係数値を可変長符号化して生成された符号化データを可変長復号化する復号化装置であって、
前記符号化データを復号化して、前記ブロックに含まれる非ゼロの係数値の総個数を求める手段と、
前記符号化データを、閾値がそれぞれ割り当てられた複数のテーブルを切り替えながら高周波成分から低周波成分の順に非ゼロの係数値を示すレベル値を順次可変長復号化して、復号化された前記非ゼロの係数値の個数が、復号化された前記非ゼロの係数値の総個数に達するまで実行する第１の復号化手段と、
複数の符号テーブルを用いて、前記非ゼロの係数値の可変長復号化とは別々に、前記符号化データを高周波成分から低周波成分の順に可変長復号化して、ラン値を求める第２の復号化手段と、
復号化された前記ラン値と復号化された前記レベル値を一次元列の係数値に変換する変換手段と、
前記一次元列の係数値を前記ブロックの二次元列の係数値に逆走査する逆走査手段を含み、
前記第１の復号化手段は、
復号化の対象となるレベル値の絶対値が、当該レベル値の復号化に使用されたテーブルに割り当てられた閾値を超えると、当該閾値より大きい閾値が割り当てられたテーブルに切り替えられた後に、前記復号化対象のレベル値に続いて次に復号化されるべきレベル値を復号化し、
前記複数のテーブルの切り替えは、一方向の切り替えであり、別のテーブルに切り替えられた後は、切り替えられる前に使用されていたテーブルは再度使用されることがない切り替えである
ことを特徴とする復号化装置。
【請求項３】
画像データを所定の大きさを有するブロック単位で周波数変換して得られたブロックの二次元列の係数値を可変長符号化して生成された符号化データを可変長復号化するためのプログラムであって、
前記符号化データを復号化して、前記ブロックに含まれる非ゼロの係数値の総個数を求めるステップと、
前記符号化データを、閾値がそれぞれ割り当てられた複数のテーブルを切り替えながら高周波成分から低周波成分の順に非ゼロの係数値を示すレベル値を順次可変長復号化して、復号化された前記非ゼロの係数値の個数が、復号化された前記非ゼロの係数値の総個数に達するまで実行する第１の復号化ステップと、
複数の符号テーブルを用いて、前記非ゼロの係数値の可変長復号化とは別々に、前記符号化データを高周波成分から低周波成分の順に可変長復号化して、ラン値を求める第２の復号化ステップと、
復号化された前記ラン値と復号化された前記レベル値を一次元列の係数値に変換する変換ステップと、
前記一次元列の係数値を前記ブロックの二次元列の係数値に逆走査する逆走査ステップとをコンピュータに実行させ、
前記第１の復号化ステップでは、
復号化の対象となるレベル値の絶対値が、当該レベル値の復号化に使用されたテーブルに割り当てられた閾値を超えると、当該閾値より大きい閾値が割り当てられたテーブルに切り替えられた後に、前記復号化対象のレベル値に続いて次に復号化されるべきレベル値を復号化し、
前記複数のテーブルの切り替えは、一方向の切り替えであり、別のテーブルに切り替えられた後は、切り替えられる前に使用されていたテーブルは再度使用されることがない切り替えである
ことを特徴とするプログラム。
【請求項４】
前記第１の復号化ステップで使用される複数のテーブルにおいて、前記非ゼロの係数値の絶対値の最小値における符号は、その符号長が前記テーブルにそれぞれ付与される閾値の大きくなる順番に長くなるように割り当てられていることを特徴とする請求項１記載の復号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像における画像データを所定の大きさを有するブロック単位で周波数変換して符号化された各ブロック内の係数値を復号化する可変長復号化方法等に関する。
【背景技術】
【０００２】
動画像符号化処理では、一般に動画像が有する空間方向および時間方向の冗長性を利用して情報量の圧縮が行われる。ここで一般に、空間方向の冗長性を利用する方法としては、周波数領域への変換が用いられ、時間方向の冗長性を利用する方法としては、ピクチャ間予測符号化処理が用いられる。
【０００３】
従来のＭＰＥＧ−４動画像符号化方式（例えば、非特許文献１参照）の符号化効率をさらに高めるために、現在規格化作業中の動画像符号化方式では、４×４画素の大きさを有するブロック単位で周波数変換を行った後、量子化を行い、係数値を生成する。そして、直流成分から高周波数成分に向かって走査し、連続する値が「０」である係数の個数Ｒ（Ｒｕｎ、以下単に「Ｒ」とも記す。）とそれに続く係数値Ｌ（Ｌｅｖｅｌ、以下単に「Ｌ」とも記す。）との組み合わせを作成し、（Ｒ、Ｌ）の組み合わせ列にする。
【０００４】
そして、この（Ｒ、Ｌ）を所定のコードテーブルを用いてコード番号に変換した後、さらに１個の可変長符号（ＶＬＣ：Ｖａｒｉａｂｌｅ  Ｌｅｎｇｔｈ  Ｃｏｄｉｎｇ）テーブルを用いて、コード番号をＶＬＣコードに変換することにより、符号化を行う。この際のコードテーブルは、一般的に発生頻度が高いものほど小さなコード番号が割り当てられる。例えば、Ｒ、Ｌ共に小さい組み合わせは発生頻度が高いため、小さなコード番号が割り当てられる。また、ＶＬＣテーブルは、小さなコード番号に対して短い符号長を有するＶＬＣコードが割り当てるようにしているものもある。
【先行技術文献】
【非特許文献】
【０００５】
【非特許文献１】ISO/IEC 14496-2: “Information technology -- Coding of audio-visual objects -- Part2: Visual” 7.4.1, pp.119-120, 1999.12
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記従来の方法では、係数値「０」を有する係数の連続数Ｒおよび係数値Ｌが大きくなると、符号長が長くなり、符号化効率の低下を招く。一般に、低周波数成分値の係数値Ｌは大きな値となるため、低周波数成分値を符号化する際の符号化効率の低下が顕著となる。
【０００７】
つまり、発生頻度に応じて１つのＶＬＣテーブルＲ，Ｌのペアに対して１つのユニークな可変長コードが割り当てられる結果、値が大きな係数値Ｌには、常に符号長が非常に長い可変長符号に変換されてしまう。また、Ｒと別個にＬを符号化する場合（Ｌの一次元符号化）においても、１つの可変長符号テーブルを用いるときには、Ｒ，Ｌのペアで符号化する場合と同様な問題が発生する。
【０００８】
本発明は、このような問題を鑑みてなされたものであり、係数値Ｌを符号化する際に、符号化効率を向上させることができる可変長符号化方法に対応する可変長復号化方法等を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明に係る可変長復号化方法は、画像データを所定の大きさを有するブロック単位で周波数変換して得られたブロックの二次元列の係数値を可変長符号化して生成された符号化データを可変長復号化する復号化方法であって、前記符号化データを復号化して、前記ブロックに含まれる非ゼロの係数値の総個数を求めるステップと、前記符号化データを、閾値がそれぞれ割り当てられた複数のテーブルを切り替えながら高周波成分から低周波成分の順に非ゼロの係数値を示すレベル値を順次可変長復号化して、復号化された前記非ゼロの係数値の個数が、復号化された前記非ゼロの係数値の総個数に達するまで実行する第１の復号化ステップと、複数の符号テーブルを用いて、前記非ゼロの係数値の可変長復号化とは別々に、前記符号化データを高周波成分から低周波成分の順に可変長復号化して、ラン値を求める第２の復号化ステップと、復号化された前記ラン値と復号化された前記レベル値を一次元列の係数値に変換する変換ステップと、前記一次元列の係数値を前記ブロックの二次元列の係数値に逆走査する逆走査ステップを含み、前記第１の復号化ステップでは、復号化の対象となるレベル値の絶対値が、当該レベル値の復号化に使用されたテーブルに割り当てられた閾値を超えると、当該閾値より大きい閾値が割り当てられたテーブルに切り替えられた後に、前記復号化対象のレベル値に続いて次に復号化されるべきレベル値を復号化し、前記複数のテーブルの切り替えは、一方向の切り替えであり、別のテーブルに切り替えられた後は、切り替えられる前に使用されていたテーブルは再度使用されることがない切り替えであることを特徴とする。
【００１０】
また、上記目的を達成するために、本発明に係る可変長符号化方法は、動画像における画像データを所定の大きさを有するブロック単位で周波数変換した各ブロック内の係数値を符号化する可変長符号化方法であって、前記ブロック内の係数値を所定の順序で走査する係数値走査ステップと、符号化に用いる複数のテーブルを切り替えて、前記係数値走査ステップにより走査された前記係数値を所定の順番に可変長符号に符号化する符号化ステップとを含むことを特徴とする。
【００１１】
これによって、係数値に応じた符号長の可変長符号を各テーブルに適応させることが可能となるので、符号化効率を向上させることができる。つまり、あるテーブルでは係数値が小さい場合に他のテーブルよりも短い符号長の可変長符号に符号化するようにし、他のあるテーブルでは係数値が大きい場合に他のテーブルよりも短い符号長の可変長符号に符号化するようにし、係数値に応じてテーブルを切り替えることで、符号長を飛躍的に短くすることができる。
【００１２】
ここで、各前記テーブルの切り替え方向が一方向であることを特徴としてもよい。これによって、係数値によって、テーブルが頻繁に入れ替わることが防止され、テーブルの切り替え回数が減る。したがって、符号化効率を向上させることができる。例えば、メモリのワークエリアが限られるので次に使用するテーブルだけをワークエリアに置くのが一般的である。この場合には、テーブルを切り替えるごとにＲＯＭから次のテーブルを読み出してワークエリアに展開するのに時間がかかるので、次の係数値の符号化まで時間がかかる。このため、一方向とすることによって、テーブルの切り替え回数を制限し、次の係数値の符号化まで時間をトータルとして短縮できるという効果が発揮される。
【００１３】
また、前記符号化ステップは、ブロック内で前記複数のテーブルを切り替えて符号化することを特徴とする構成としてもよく、前記係数値は一次元化された「０」以外の係数値であることを特徴とする構成としてもよい。
【００１４】
また、前記符号化が非算術符号化であることを特徴とするのが好ましい。これによって、符号化に用いるテーブルが決まるとそのテーブルを参照するだけで可変長符号に符号化することができる。
【００１５】
また、各前記テーブルは、係数値の最小値における符号長が各前記テーブルにそれぞれ付与される番号の順番に長くなり、係数値の最大値における符号長が前記番号の順番に長くならないように係数値に対する符号長の変化率を異ならせて構成されるのが好ましい。また、各前記テーブルは、係数値の増加分に対する符号長の増加率が、各前記テーブルにそれぞれ付与される番号の順番に小さくなるように構成されるのも好ましい。これによって、各テーブルごとに符号長が短くなる範囲を割り当てることができるので、符号化効率の向上を確実に実現できる。
【００１６】
また、前記符号化ステップは、予め設定された係数値の絶対値に対するしきい値に基づいて各前記テーブルを切り替えるのが好ましい。これによって、テーブルの切り替えのタイミングを簡単に判断でき、符号化効率の向上を実現できる。
【００１７】
また、前記係数値走査ステップは、前記係数値を高周波数成分から低周波数成分に向かう順序で走査するのが好ましい。これによって、係数の絶対値が「１」付近から段々大きくなる傾向が強いので、ブロック内の最初の係数値を符号化するのに用いるテーブルを決定しやすくしたり、各テーブルの構成を簡単に決めることができたり、しきい値を決定しやすくしたりすることができる。
【００１８】
さらに、前記符号化ステップは、符号化対象の係数の絶対値がしきい値を超えると、符号化対象の係数の符号化に用いたテーブルから当該テーブルに付与された番号より番号の大きなテーブルに切り替えて次の係数値を符号化するのが好ましい。これによって、次の係数値を符号化するときに符号長を短くすることができるので、符号化効率の向上を実現できる。
【００１９】
また、本発明に係る可変長復号化方法は、動画像における画像データを所定の大きさを有するブロック単位で周波数変換した各ブロック内の係数値を符号化して生成された可変長符号を復号化する可変長復号化方法であって、復号化に用いる複数のテーブルを切り替えて、各前記ブロック内の可変長符号を所定の順番に係数値に復号化する復号化ステップと、前記復号化ステップによって生成された係数値に基づいて前記ブロック内の係数値を生成する係数生成ステップとを含むことを特徴とする。これによって、高圧縮符号化された符号を正しく復号化することができる。
【００２０】
ここで、各前記テーブルの切り替え方向が一方向であることを特徴としてもよい。
【００２１】
また、前記復号化ステップは、ブロック内で前記複数のテーブルを切り替えて符号化することを特徴としてもよい。
【００２２】
また、前記係数値は、一次元化された「０」以外の係数値であることを特徴としてもよい。
【００２３】
また、前記復号化が非算術復号化であることを特徴としてもよい。
【００２４】
また、各前記テーブルは、係数値の最小値における符号長が各前記テーブルにそれぞれ付与される番号の順番に長くなり、係数値の最大値における符号長が前記番号の順番に長くならないように係数値に対する符号長の変化率を異ならせて構成されることを特徴としてもよい。
【００２５】
また、各前記テーブルは、係数値の増加分に対する符号長の増加率が、各前記テーブルにそれぞれ付与される番号の順番に小さくなることを特徴としてもよい。
【００２６】
また、前記復号化ステップは、予め定められた係数値の絶対値に対するしきい値に基づいて各前記テーブルを切り替えることを特徴としてもよい。
【００２７】
また、前記係数生成ステップは、前記係数値を高周波成分から低周波成分に向かう順序で走査することを特徴としてもよい。
【００２８】
さらに、前記符号化ステップは、復号化された係数の絶対値がしきい値を超えると、復号化対象の可変長符号の復号化に用いたテーブルから当該テーブルに付与された番号より番号の大きなテーブルに切り替えて次の可変長符号を係数値に復号化することを特徴としてもよい。
【００２９】
なお、本発明は、このような可変長符号化方法や、可変長復号化方法として実現することができるだけでなく、このような可変長符号化方法や、可変長復号化方法が含む特徴的なステップを手段とする可変長符号化装置や、可変長復号化装置として実現したり、可変長符号化方法や、可変長復号化方法が含む特徴的なステップを用いた動画像の符号化方法や、復号化方法として実現したり、それらのステップをコンピュータに実行させるプログラムとして実現したりすることもできる。そして、そのようなプログラムは、ＣＤ−ＲＯＭ等の記録媒体やインターネット等の伝送媒体を介して配信することができるのはいうまでもない。
【発明の効果】
【００３０】
以上の説明から明らかなように、本発明に係る可変長符号化方法は、ブロック内の係数値を所定の順序で走査する係数値走査ステップと、符号化に用いる複数のテーブルを切り替えて、前記係数値走査ステップにより走査された前記係数値を所定の順番に可変長符号に符号化する符号化ステップとを含むので、係数値に応じた符号長の可変長符号を各テーブルに適応させることが可能となり、符号化効率を向上させることができる。つまり、あるテーブルでは係数値が小さい場合に他のテーブルよりも短い符号長の可変長符号に符号化するようにし、他のあるテーブルでは係数値が大きい場合に他のテーブルよりも短い符号長の可変長符号に符号化するようにし、係数値に応じてテーブルを切り替えることで、符号長を飛躍的に短くすることができる。
【００３１】
また、各前記テーブルの切り替え方向が一方向とすることにより、係数値によって、テーブルが頻繁に入れ替わることが防止され、テーブルの切り替え回数が減り、符号化効率を向上させることができる。
【００３２】
また、前記符号化が非算術符号化とすることにより、符号化に用いるテーブルが決まるとそのテーブルを参照するだけで可変長符号に符号化することができる。
【００３３】
また、各前記テーブルは、係数値の最小値における符号長が各前記テーブルにそれぞれ付与される番号の順番に長くなり、係数値の最大値における符号長が前記番号の順番に長くならないように係数値に対する符号長の変化率を異ならせて構成したり、各前記テーブルは、係数値の増加分に対する符号長の増加率が、各前記テーブルにそれぞれ付与される番号の順番に小さくなるように構成したりすることにより、各テーブルごとに符号長が短くなる範囲を割り当てることができ、符号化効率の向上を実現できる。
【００３４】
また、前記符号化ステップは、予め設定された係数値の絶対値に対するしきい値に基づいて各前記テーブルを切り替えることにより、テーブルの切り替えのタイミングを簡単に判断でき、符号化効率の向上を実現できる。
【００３５】
また、前記係数値走査ステップは、前記係数値を高周波数成分から低周波数成分に向かう順序で走査することにより、係数の絶対値が「１」付近から段々大きくなる傾向が強いブロック内の最初の係数値を符号化するのに用いるテーブルを決定しやすくしたり、各テーブルの構成を簡単に決めることができたり、しきい値を決定しやすくしたりすることができる。
【００３６】
さらに、前記符号化ステップは、符号化対象の係数の絶対値がしきい値を超えると、符号化対象の係数の符号化に用いたテーブルから当該テーブルに付与された番号より番号の大きなテーブルに切り替えて次の係数値を符号化することにより、次の係数値を符号化するときに符号長を短くすることができ、符号化効率の向上を実現できる。
【００３７】
また、本発明に係る可変長復号化方法は、復号化に用いる複数のテーブルを切り替えて、各ブロック内の可変長符号を所定の順番に係数値に復号化する復号化ステップと、復号化ステップによって生成された係数値に基づいて前記ブロック内の係数値を生成する係数生成ステップとを含むので、高圧縮符号化された符号を正しく復号化することができる。
【図面の簡単な説明】
【００３８】
【図１】図１は、本発明の実施の形態１に係る可変長符号化方法および動画像符号化方法を用いた符号化装置の機能構成を示すブロック図である。
【図２】図２は、図１に示される可変長符号化部の詳細な機能構成を示すブロック図である。
【図３】図３は、図２に示されるＲＬ列生成部が実行する処理を説明するための模式図である。
【図４】図４は、ＲＬ列生成部が生成したＲＬ列および図２に示される並べ替え部が実行する並べ替え処理を説明するための模式図である。
【図５】図５は、図２に示されるテーブル記憶部が保持するコードテーブルの一例を示す図である。
【図６】図６は、図２に示されるテーブル記憶部が保持する可変長符号テーブルの一例を示す図である。
【図７】図７は、ＲＬ列生成部が生成したＲＬ列および並べ替え部が実行する並べ替え処理の他の例を説明するための模式図である。
【図８】図８は、本発明の実施の形態２に係る可変長復号化方法および動画像復号化方法を用いた復号化装置の機能構成を示すブロック図である。
【図９】図９は、図８に示される可変長復号化部の詳細な機能構成を示すブロック図である。
【図１０】図１０は、図９に示されるコード変換部が生成したＲＬ列および並べ替え部が実行する並べ替え処理を説明するための模式図である。
【図１１】図１１は、図９に示される係数生成部が実行する処理を説明するための模式図である。
【図１２】図１２は、コード変換部が生成したＲＬ列および並べ替え部が実行する並べ替え処理の他の例を説明するための模式図である。
【図１３】図１３は、本発明の第３の実施の形態における画像符号化装置の構成を示すブロック図である。
【図１４】図１４は、同上の可変長符号化部の内部構成を示すブロック図である。
【図１５】図１５は、同上の量子化部から出力される係数ブロックを模式的に示す模式図である。
【図１６】図１６は、同上のＲＬ列生成部から出力されるＲＬ列を模式的に示す模式図である。
【図１７】図１７は、同上の確率テーブルの切り替え方法を示す遷移図である。
【図１８】図１８は、同上の確率テーブルの内容を示す確率テーブル内容表示図である。
【図１９】図１９は、本発明の第４の実施の形態における画像復号化装置の構成を示すブロック図である。
【図２０】図２０は、同上の可変長復号化部の内部構成を示すブロック図である。
【図２１】図２１は、２値化テーブルの一例を示すテーブル図である。
【図２２】図２２は、本発明の実施の形態５に係る可変長符号化方法および動画像符号化方法が適用される符号化装置の機能構成を示すブロック図である。
【図２３】図２３は、図２２に示される可変長符号化部の詳細な機能構成を示すブロック図である。
【図２４】図２４は、図２３に示されるＲ列・Ｌ列生成部が生成するＬ列およびＲ列の一例を示す図である。
【図２５】図２５は、図２３に示される記憶部が保持する各可変長符号テーブルの構成例を示す図である。
【図２６】図２６は、図２３に示される記憶部が保持するしきい値テーブルの構成例を示す図である。
【図２７】図２７は、図２３に示されるコード割り当て部が実行する可変長符号の割り当て処理を示すフローチャートである。
【図２８】図２８は、符号化に用いられる可変長符号テーブルとしきい値との関係を示す図である。
【図２９】図２９は、コード割り当て部の符号化処理の様子を示す模式図である。
【図３０】図３０は、本発明の実施の形態６に係る可変長復号化方法および動画像復号化方法を用いた復号化装置の機能構成を示すブロック図である。
【図３１】図３１は、図３０に示される可変長復号化部の詳細な機能構成を示すブロック図である。
【図３２】図３２は、実施の形態１，３，５の動画像符号化方法または実施の形態２，４，６の動画像復号化方法を実行するためのプログラムを格納したフレキシブルディスクを用いて、コンピュータシステムにより実施する場合の説明図である。
【図３３】図３３は、コンテンツ配信サービスを実現するコンテンツ供給システムの全体構成を示すブロック図である。
【図３４】図３４は、本発明に係る動画像予測方法、動画像符号化装置および画像復号化装置を用いた携帯電話を示す図である。
【図３５】図３５は、本発明に係る携帯電話の構成を示すブロック図である。
【図３６】図３６は、本発明に係るデジタル放送用システムの全体構成を示すブロック図である。
【発明を実施するための形態】
【００３９】
以下、本発明に係る実施の形態を図面を参照して説明する。
【００４０】
（実施の形態１）
図１は、本発明の動画像符号化方法が適用される符号化装置の機能構成を示すブロック図である。なお、この実施の形態１では、本発明の動画像符号化方法で入力画像をフレーム内符号化処理する場合の機能構成が図示されている。
【００４１】
同図に示されるように、符号化装置１００ａは、ブロック変換部１１０と、周波数変換部１２０と、量子化部１３０と、可変長符号化部１４０とから構成される。なお、このような符号化装置１００ａを構成する各部は、ＣＰＵ、ＣＰＵによって実行されるプログラムやデータを予め格納するＲＯＭ、プログラム実行の際にワークエリアを提供したり、入力画像等を一時的に格納するメモリ等により実現される。
【００４２】
ブロック変換部１１０は、入力画像を水平４画素、垂直４画素の大きさを有するブロックに分割し、各画素ブロックごとに周波数変換部１２０に出力する。
【００４３】
周波数変換部１２０は、入力された画素ブロックに対して周波数変換を施し、周波数係数に変換する。そして、周波数変換部１２０は、変換された周波数係数を量子化部１３０に出力する。
【００４４】
量子化部１３０は、入力された周波数係数に対して量子化処理を行う。ここで量子化処理とは、周波数係数値を所定の量子化値によって除算する処理に相当する処理を意味する。この量子化値は、一般的にブロックごと、周波数帯域ごとによって異なる。量子化された周波数係数は可変長符号化部１４０に入力される。
【００４５】
可変長符号化部１４０は、所定サイズのブロック（水平４画素、垂直４画素）の周波数係数値を可変長符号化する。
【００４６】
図２は、可変長符号化部１４０の詳細な機能構成を示すブロック図である。
【００４７】
図２に示すように可変長符号化部１４０は、ＲＬ列生成部１４１、並べ替え部１４２、コード割り当て部１４３、テーブル記憶部１４４とから構成される。
【００４８】
量子化部１３０から出力された量子化された周波数係数は、ＲＬ列生成部１４１に入力される。
【００４９】
ＲＬ列生成部１４１は、まず量子化された周波数係数値を所定の走査方法で一次元化する。そして、ＲＬ列生成部１４１は、一次元化された係数値に対して、連続する係数値「０」の個数Ｒとそれに続く「０」以外の係数値Ｌとの組み合わせ（以下、ＲＬ値と呼ぶ）の列（以下、ＲＬ列と呼ぶ）を生成する。その例を図３、図４を用いて説明する。
【００５０】
図３（ａ）は、量子化部１３０から出力された量子化された１ブロック内の周波数係数を示す図である。ここで、左上の係数が直流成分を示すとし、右に向かうほど水平方向の周波数成分が高くなり、下に向かうほど垂直方向の周波数成分が高くなる。図３（ｂ）は、量子化された周波数係数値を一次元化する際の走査方法を示す図である。ＲＬ列生成部１４１は、低周波数領域から高周波数領域に向かって走査することにより、一次元化を行う。
【００５１】
そして、ＲＬ列生成部１４１によって一次元化された係数値に対して、ＲＬ列を生成した結果が図４（ａ）に示されるようになる。ここで図４（ａ）の中で、ＥＯＢ（Ｅｎｄ  Ｏｆ  Ｂｌｏｃｋ）とはブロック中のそれ以降の係数値がすべて「０」であることを示す識別子である。一般的に高周波数成分ほど係数値が「０」になりやすいので、低周波数領域から高周波数領域に向かって走査することにより、ＲＬ列の情報量を小さくすることができる。生成されたＲＬ列は並べ替え部１４２に入力される。
【００５２】
並べ替え部１４２は、入力されたＲＬ列を逆方向に並べ直す。ただし、ＥＯＢは並べ替えの対象からは除外する。並べ替えた後の状態は図４（ｂ）に示されるようになる。このように並べ替えられたＲＬ列は、コード割り当て部１４３に入力される。
【００５３】
テーブル記憶部１４４は、ＲＬ値とこのＲＬ値に対して割り当てられるコード番号とを対応付けたテーブル（コードテーブル、図５参照）と、コード番号と可変長符号とを対応付けた複数種類のテーブル（可変長符号テーブル、図６）等とを予め保持する。
【００５４】
コード割り当て部１４３は、テーブル記憶部１４４に保持されているテーブルを用いてＲＬ列の各組に対して可変長符号を割り当てる。
【００５５】
具体的には、コード割り当て部１４３は、まず、ＲＬ値に対してコード番号を割り当てる。この際には、テーブル記憶部１４４に保持されている予め定められたコードテーブル（図５参照）を用いてコード番号への変換を行う。
【００５６】
図５は、コードテーブルの一例を示す図である。
【００５７】
このコードテーブルは、一般にＲＬ値の頻度が大きいほど小さなコード番号が割り当てられるが、一般にはＲ、Ｌ共に小さい値ほど頻度が高くなるので、この性質を利用して構成される。このコードテーブルを用いた場合、例えば最初のＲＬ値（０、−１）はコード番号「２」となる。また２番目〜５番目のＲＬ値（１、１）、（０、−２）、（０、３）、（０、４）は、それぞれコード番号「３」、「８」、「１３」、「１５」となる。
【００５８】
そして、コード割り当て部１４３は、続いてコード番号を可変長符号に変換する。この可変長符号への変換の際には、テーブル記憶部１４４に保持されている複数の可変長符号テーブル（図６参照）を用いて可変長符号への変換を行う。
【００５９】
図６は、可変長符号テーブルの一例を示す図である。
【００６０】
この実施の形態１においては、可変長符号テーブルは２種類保持されて構成される。
【００６１】
第１の可変長符号テーブル１および第２の可変長符号テーブル２はコード番号が大きくなるにつれて可変長符号長が長くなるように構成される一方、可変長符号テーブル１は、可変長符号テーブル２と比較して、コード番号が小さいときに可変長符号長が短くなるように構成され、可変長符号テーブル２は、可変長符号テーブル１と比較して、コード番号が大きいときに可変長符号長が短くなるように構成される。すなわち、小さなコード番号では可変長符号テーブル１の方が短い符号が割り当てられ、大きなコード番号では可変長符号テーブル２の方が短い符号が割り当てられる構成となっている。
【００６２】
１番目のＲＬ値に対しては、可変長符号テーブル１が用いられる。そして、この場合は、１番目のＲＬ値のコード番号は「２」であるので、この際の可変長符号は「０１１」となる。そして順に可変長符号への変換を行っていき、Ｌの絶対値がしきい値を超えると、次のＲＬ値以降では可変長符号テーブル２を用いる。ここでＬの絶対値に対するしきい値を「２」とすると、４番目のＲＬ値（０、３）でしきい値を超えることになる。したがって、１〜４番目のＲＬ値に対しては、可変長符号テーブル１を用いて変換を行い、５番目以降のＲＬ値に対しては、可変長符号テーブル２を用いて変換を行うことになる。
【００６３】
ここで、７番目のＲＬ値（１、２）でＬの絶対値が再びしきい値以下となるが、可変長符号テーブルＶＬＣ１への切り替えは行わず、可変長符号テーブル２を用いて変換する。つまり、テーブルの切り替え方向が、一方向である。ここで、一方向とは、一旦使い終えたテーブルを再使用しないことをいう。これによって、係数値によって、テーブルが頻繁に入れ替わることが防止され、テーブルの切り替え回数が減る。高周波数成分から低周波数成分に向けて一次元化した場合、一般的にＬの絶対値は増加傾向にある。
【００６４】
したがって、Ｌの絶対値が一度しきい値を超えた場合、その後のＬの絶対値が再度そのしきい値を下回ったとしても、しきい値を下回るのはその係数のみである場合が多い。よって、Ｌの絶対値が再度しきい値を下回ったとしても、再び元の可変長符号テーブルは用いないようにすることにより、符号化効率を向上させることができる。例えば、メモリのワークエリアが限られるので次に使用するテーブルだけをワークエリアに置くのが一般的である。この場合には、テーブルを切り替えるごとにＲＯＭから次のテーブルを読み出してワークエリアに展開するのに時間がかかるので、次の係数値の符号化まで時間がかかる。このため、一方向とすることによって、テーブルの切り替え回数を制限し、次の係数値の符号化までの時間をトータルとして短縮できるという効果が発揮される。
【００６５】
また、ＲＬ列生成部１４１では係数値列の係数値を低周波数成分から高周波数成分に向かう順序で走査し、コード割り当て部１４３では、係数値列の後ろから順番に可変長符号に符号化するようにしているのは、係数の絶対値が「１」付近から段々大きくなる傾向が強いので、ブロック内の最初の係数値を符号化するのに用いるテーブルを決定しやすくしたり、各テーブルの構成を簡単に決めることができたり、しきい値を決定しやすくしたりすることができるからである。
【００６６】
以上のように、本実施の形態１の可変長符号化方法は、ブロック内の周波数係数値を低周波数域から高周波数域に向けて走査し一次元化する。そして、一次元化された係数値に対して、連続する係数値「０」の個数Ｒとそれに続く「０」以外の係数値Ｌとの組み合わせであるＲＬ値の列を生成する。そして、ＲＬ値を走査順とは逆順に可変長符号に変換していく。つまり、ＲＬ値を直接可変長符号に変換してもよい。可変長符号に変換する際には、可変長符号テーブルを複数用意する。
【００６７】
そして、まず、第１の可変長符号テーブルを用いて変換を行い、Ｌの絶対値がしきい値を超えると、以降のＲＬ値に対しては第２の可変長符号テーブルを用いて変換を行う。この際には、第１の可変長符号テーブルは、第２の可変長符号テーブルと比較して、コード番号が小さいときに可変長符号長が短くなる構成とし、第２の可変長符号テーブルは、第１の可変長符号テーブルと比較して、コード番号が大きいときに可変長符号長が短くなる構成とする。
【００６８】
一般に低周波数成分ほどＬの絶対値は大きくなるため、低周波数域から高周波数域に走査してＲＬ値を生成したのとは逆順にＲＬ値を可変長符号に変換していくと、Ｌの絶対値は大きくなっていく。
【００６９】
したがって、Ｌの絶対値がしきい値を超えた後に、コード番号が大きいとき、すなわちＬの絶対値が大きいときに可変長符号長が短くなる可変長符号テーブルを用いることにより、合計の符号量を小さくすることができる。つまり、ＬをＲと別個に、かつ複数の可変長符号テーブルを用いて符号化することによっても、Ｌについての合計の符号量を小さくすることができる。
【００７０】
なお、本実施の形態１では、フレーム内符号化により画像を符号化する場合について説明したが、これは動画像入力に対して動き補償等を用いてフレーム間符号化をする場合であっても良く、本実施の形態の方法により、同様の効果が得られる。
【００７１】
また、本実施の形態１では、入力画像を水平４画素、垂直４画素のブロックに分割する場合について説明したが、ブロックの大きさは他の大きさであっても良い。
【００７２】
また、本実施の形態１では、ブロック内の走査方法として図３（ｂ）を用いて説明したが、これは低周波数域から高周波数域への走査であれば他の走査順序であっても良い。
【００７３】
また、本実施の形態１では、コードテーブルの例として図５を用いて説明したが、これは他のコードテーブルであっても良い。
【００７４】
また、本実施の形態１では、可変長符号テーブルの例として図６を用いて説明したが、これは他のテーブルであっても良い。
【００７５】
また、可変長符号テーブルを２つ用いる場合について説明したが、これは可変長符号テーブルを３つ以上用い、複数のしきい値を用いて、各しきい値を超える度に可変長符号テーブルを切り替えるようにしても良い。
【００７６】
また、本実施の形態では、Ｌの絶対値がしきい値を超えた場合に、可変長符号テーブルを切り替える場合について説明したが、これはコード番号がしきい値を超えた場合に、可変長符号テーブルを切り替えても、同様の効果が得られる。
【００７７】
また、本実施の形態では、ＲＬ列の最後にＥＯＢを付加する場合について説明したが、これはＲＬ列の最初にＲＬ値の個数を付加しても良い。この場合の図４に対応する、符号化すべきＲＬ値の個数、およびＲＬ列は、図７（ａ）、図７（ｂ）のようになる。また、図５に示すコードテーブルにおいて、ＥＯＢへのコード番号の割り当ては不要となる。
【００７８】
（実施の形態２）
図８は、本発明の実施の形態に係る可変長復号化方法が適用される復号化装置の機能構成を示すブロック図である。なお、ここでは、実施の形態１で説明した本発明の可変長符号化方法により生成された符号列が入力されるとする。
【００７９】
図８に示されるように、復号化装置５００ａは、可変長復号化部５１０と、逆量子化部５２０と、逆周波数変換部５３０と、フレームメモリ５４０とから構成される。なお、このような復号化装置５００ａを構成する各部は、符号化装置１００ａと同様にＣＰＵ、ＣＰＵによって実行されるプログラムやデータを予め格納するＲＯＭ、プログラム実行の際にワークエリアを提供したり、入力符号化列等を一時的に格納するメモリ等により実現される。
【００８０】
符号列は可変長復号化部５１０に入力される。可変長復号化部５１０は、可変長符号化された符号列を復号化する。この符号列は、上記したように、画像データを所定の大きさを有するブロック単位で分割し、前記ブロックの周波数係数値を、所定の走査順序で一次元化し、連続する係数値が０である係数の連続数Ｒと、それに続く係数値Ｌとの組み合わせ（ＲＬ値）の列を符号化することにより生成されている。
【００８１】
図９は、可変長復号化部５１０の詳細な機能構成を示すブロック図である。
【００８２】
図９に示すように可変長復号化部５１０は、コード変換部５１１と、テーブル記憶部５１２と、並べ替え部５１３と、係数生成部５１４とから構成される。
【００８３】
テーブル記憶部５１２は、テーブル記憶部１４４の場合と同様に構成され、コード番号と可変長符号とを対応付けた複数種類のテーブル（可変長符号テーブル、図６）と、テーブル記憶部１４４の場合と同様に構成され、ＲＬ値とこのＲＬ値に対して割り当てられるコード番号とを対応付けたテーブル（コードテーブル、図５参照）等とを予め保持する。
【００８４】
コード変換部５１１は、テーブル記憶部５１２に保持されているテーブル（複数の可変長符号テーブル）を用いて、まず入力された符号列に対して、可変長符号からコード番号への変換を行う。コード番号への変換は、複数の可変長符号テーブルを用いて行う。この可変長符号テーブルはテーブル記憶部５１２に保持されており、テーブル記憶部５１２を参照することによりコード番号への変換を行う。
【００８５】
可変長符号テーブルの一例を図６を用いて説明する。可変長符号テーブルは２種類保持されている。小さなコード番号では可変長符号テーブル１の方が短い符号が割り当てられ、大きなコード番号では可変長符号テーブルＶＬＣの方が短い符号が割り当てられる構成となっている。ここでは、入力符号列の先頭部の符号が「０１１００１０００００１００１０００１１１０００１００１１」であるとする。１番目の可変長符号に対しては、可変長符号テーブル１が用いられる。今、図６の可変長テーブル１を参照した場合、入力符号列に一致するのは、可変長符号「０１１」であり、この場合のコード番号は「２」となる。
【００８６】
次にコード変換部５１１では、得られたコード番号をＲＬ値に変換する。この際には、予め定められたコードテーブルを用いて行う。コードテーブルはテーブル記憶部５１２に保持されており、テーブル記憶部５１２を参照することによりＲＬ値への変換を行う。コードテーブルの一例を図５に示す。この場合のコード番号は「２」であるので、ＲＬ値は（０、−１）となる。
【００８７】
同様にして、可変長符号からコード番号への変換を順に行っていくと、可変長符号テーブル１を用いて、可変長符号「００１００」がコード番号「３」に、可変長符号「０００１００１」がコード番号「８」に、可変長符号「０００１１１０」がコード番号「１３」に変換され、さらにそれぞれのコード番号はＲＬ値（１、１）、（０、−２）、（０、３）に変換される。
【００８８】
ここで、コード変換部５１１は、得られたＲＬ値のうち、Ｌの絶対値がしきい値を超えると、以降の可変長符号の変換では、可変長符号テーブル２を用いる。ここでＬの絶対値に対するしきい値を「２」とすると、４番目のＲＬ値（０、３）でしきい値を超えることになる。したがって、これ以降のＲＬ値に対しては、可変長符号テーブル２を用いて変換を行うことになる。よって、次の可変長符号「００１００１１」は、コード番号１５に変換され、さらにＲＬ値（０、４）に変換される。
【００８９】
また、以降の復号化において得られたＲＬ値のうち、Ｌの絶対値が再びしきい値以下となっても、可変長符号テーブル１への切り替えは行わず、可変長符号テーブル２を用いて変換を行う。以上のようにして、１ブロック分のＲＬ値が生成されると（ＥＯＢが検出されると）、それらは並べ替え部５１３に入力される。ここでは、図１０（ａ）のＲＬ列が生成されたとする。
【００９０】
並べ替え部５１３は、入力されたＲＬ列を逆方向に並べ直す。ただし、ＥＯＢは並べ替えの対象からは除外する。並べ替えた後の状態は図１０（ｂ）となる。このように並べ替えられたＲＬ列は係数生成部５１４に入力される。
【００９１】
係数生成部５１４は、入力されたＲＬ列を係数値に変換し、所定の走査方法で係数ブロックに二次元化する。この係数値への変換の際には、所定の走査順序に基づいて、Ｒで示された値だけ係数値「０」を生成し、その次にＬで示された値の係数値を生成する、を繰り返すことにより、ＲＬ列から係数値への変換を行う。ここでは、低周波数領域から高周波数領域に向かってジグザグに走査するとすると、図１０（ｂ）のＲＬ列は図１１に示される係数ブロックに変換されることになる。生成された係数ブロックは逆量子化部５２０に入力される。
【００９２】
逆量子化部５２０は、入力された係数ブロックに対して、逆量子化処理を行う。ここで逆量子化処理とは、係数値に所定の量子化値を積算する処理に相当する処理を意味する。ここで量子化値は、一般的にブロックごと、周波数帯域ごとによって異なっており、符号列中から得られる、または所定の値を用いるものとする。逆量子化された係数ブロックは逆周波数変換部５３０に入力される。逆周波数変換部５３０は、逆量子化された係数ブロックに対して、逆周波数変換を施し、画素ブロックに変換する。変換された画素ブロックはフレームメモリ５４０に入力される。
【００９３】
フレームメモリ５４０には、復号化された画素ブロックが順に蓄積され、１画面分の画素ブロックが蓄積されると、出力画像として出力される。
【００９４】
以上のように、本発明の可変長復号化方法は、入力符号列をまず第１の可変長テーブルを用いて復号化し、連続する係数値０の個数Ｒとそれに続く０以外の係数値Ｌとの組み合わせであるＲＬ値の列を生成する。そして、Ｌの絶対値がしきい値を超えると、それ以降の可変長符号の復号化には、第２の可変長テーブルを用いる。そして、ＲＬ値を逆順に並べ替えた後、ブロック内の所定の走査順に基づいて、ＲＬ値を係数値に変換する。
【００９５】
以上の動作により、本発明の可変長復号化方法を用いることにより、本発明の可変長符号化方法を用いて符号化された符号列を正しく復号化することが可能となる。
【００９６】
なお、本実施の形態２では、フレーム内符号化により生成された符号列を復号化する場合について説明したが、これは動画像入力に対して動き補償等を用いてフレーム間符号化をして生成された符号列を復号化する場合であっても良く、本実施の形態の方法により、同様の効果が得られる。
【００９７】
また、本実施の形態２では、入力画像が水平４画素、垂直４画素のブロックに分割されて符号化されている場合について説明したが、ブロックの大きさは他の大きさであっても良い。
【００９８】
また、本実施の形態２では、ブロック内の走査方法として図１１を用いて説明したが、これは符号化の際に用いた走査方法と同じであれば、他の走査順序であっても良い。
【００９９】
また、本実施の形態２では、コードテーブルの例として図５を用いて説明したが、これは符号化の際に用いたコードテーブルと同じであれば、他のコードテーブルであっても良い。
【０１００】
また、本実施の形態２では、可変長符号テーブルの例として図６を用いて説明したが、これは符号化の際に用いた可変長符号テーブルと同じであれば、他のテーブルであっても良い。また、可変長符号テーブルを２つ用いる場合について説明したが、これは可変長符号テーブルを３つ以上用い、複数のしきい値を用いて、各しきい値を超える度に可変長符号テーブルを切り替えるようにしても良い。ただし、この際の可変長テーブルの構成およびしきい値は、符号化の際に用いたものと同じでなければならない。
【０１０１】
また、本実施の形態２では、Ｌの絶対値がしきい値を超えた場合に、可変長符号テーブルを切り替える場合について説明したが、これはコード番号がしきい値を超えた場合に、可変長符号テーブルを切り替えても同様の効果が得られる。
【０１０２】
また、本実施の形態２では、ＲＬ列の最後にＥＯＢを付加されて符号化されている符号列を復号化する場合について説明したが、これはＲＬ列の最初にＲＬ値の個数を付加されて符号化されている符号列を復号化しても良い。この場合の図１０に対応する、復号化により得られるＲＬ値の個数、およびＲＬ列は、図１２（ａ）、図１２（ｂ）のようになる。またこの際、図５に示すコードテーブルにおいて、ＥＯＢへのコード番号の割り当ては不要となる。
【０１０３】
以上のように本発明の可変長符号化方法では、ブロック内の周波数係数値を低周波数域から高周波数域に向けて走査し一次元化する。そして、一次元化された係数値に対して、連続する係数値０の個数Ｒとそれに続く０以外の係数値Ｌとの組み合わせであるＲＬ値の列を生成する。そして、ＲＬ値を走査順とは逆順に可変長符号に変換していく。可変長符号に変換する際には、可変長符号テーブルを複数用意する。
【０１０４】
そして、まず、第１の可変長符号テーブルを用いて変換を行い、Ｌの絶対値またはコード番号がしきい値を超えると、以降のＲＬ値に対しては第２の可変長符号テーブルを用いて変換を行う。この際には、第１の可変長符号テーブルは、第２の可変長符号テーブルと比較して、コード番号が小さいときに可変長符号長が短くなる構成とし、第２の可変長符号テーブルは、第１の可変長符号テーブルと比較して、コード番号が大きいときに可変長符号長が短くなる構成とする。
【０１０５】
一般に低周波数成分ほどＬの絶対値やコード番号は大きくなるため、低周波数域から高周波数域に走査してＲＬ値を生成したのとは逆順にＲＬ値を可変長符号に変換していくと、Ｌの絶対値は大きくなっていく。したがって、Ｌの絶対値がしきい値を超えた後に、コード番号が大きいときに可変長符号長が短くなる可変長符号テーブルを用いることにより、合計の符号量を小さくすることができる。
【０１０６】
また、本発明の可変長復号化方法は、入力符号列をまず第１の可変長テーブルを用いて復号化し、連続する係数値０の個数Ｒとそれに続く０以外の係数値Ｌとの組み合わせであるＲＬ値の列を生成する。そして、Ｌの絶対値またはコード番号がしきい値を超えると、それ以降の可変長符号の復号化には、第２の可変長テーブルを用いる。そして、ＲＬ値を逆順に並べ替えた後、ブロック内の所定の走査順に基づいて、ＲＬ値を係数値に変換する。
【０１０７】
以上の動作により、本発明の可変長復号化方法を用いることにより、本発明の可変長符号化方法を用いて符号化された符号列を正しく復号化することが可能となる。
【０１０８】
（実施の形態３）
以下、本発明の第３の実施の形態における画像符号化装置について図面を参照しながら説明する。
【０１０９】
図１３は、本発明の第３の実施の形態における画像符号化装置１００ｂの構成を示すブロック図である。
【０１１０】
この画像符号化装置１００ｂは、入力画像（画像データ）に対して符号化効率を向上してピクチャ内符号化処理を行うものであって、ブロック変換部１０１、周波数変換部１０２、量子化部１０３、および可変長符号化部１５０を備えている。
【０１１１】
ブロック変換部１０１は、入力画像を水平４×垂直４画素の大きさの画素ブロックに分割して周波数変換部１０２に出力する。
【０１１２】
周波数変換部１０２は、分割された上記各画素ブロックに対して、周波数変換を施して周波数係数を生成する。そして周波数変換部１０２は、生成された周波数係数を量子化部１０３に出力する。
【０１１３】
量子化部１０３は、周波数変換部１０２から出力された周波数係数に対して、量子化処理を行う。ここで量子化処理とは、周波数係数を所定の量子化値によって除算することに相当する処理を意味する。また量子化値は、一般的に画素ブロックごと、周波数帯域ごとによって異なる。そして量子化部１０３は、量子化された周波数係数を可変長符号化部１５０に出力する。
【０１１４】
可変長符号化部１５０は、量子化部１０３で量子化された周波数係数を可変長符号化する。
【０１１５】
図１４は、可変長符号化部１５０の内部構成を示すブロック図である。
【０１１６】
この図１４に示すように、可変長符号化部１５０は、ＲＬ列生成部２０１、並べ替え部２０２、２値化部２０３、テーブル記憶部２０４、および算術符号化部２０５を備えている。
【０１１７】
ＲＬ列生成部２０１は、量子化部１０３から出力された量子化された周波数係数（以下、「係数」と略す）を所定の走査方法で一次元化する。そして、ＲＬ列生成部２０１は、一次元化された係数に対して、連続する係数の値「０」の個数Ｒとそれに続く「０」以外の係数の値Ｌとの組み合わせ（以下、「ＲＬ値」と称す）の列（以下、「ＲＬ列」と称す）を生成する。その例を図１５、図１６を用いて説明する。
【０１１８】
図１５の（ａ）は、量子化部１０３から出力される複数の係数により構成される係数ブロックを示す。ここで、係数ブロック内の左上の周波数係数が直流成分を示し、右に向かうほど水平方向の周波数成分が高くなり、下に向かうほど垂直方向の周波数成分が高くなる。
【０１１９】
図１５の（ｂ）は、係数ブロック内の複数の係数を一次元化する際の走査方法を説明するための説明図である。ＲＬ列生成部２０１は、図１５の（ｂ）の矢印で示すように、係数ブロック内を低周波数領域から高周波数領域に向かって走査することにより、係数の一次元化を行う。
【０１２０】
図１６の（ａ）は、ＲＬ列生成部２０１から出力されるＲＬ列を示す。
【０１２１】
この図１６の（ａ）の中で、最初の数字は係数の個数を示す。一般的に高周波数領域ほど係数の値が「０」になり易いので、低周波数領域から高周波数領域に向かって走査することにより、ＲＬ列の情報量（のうちの個数Ｒの情報量）を小さくすることができる。生成されたＲＬ列は並べ替え部２０２に入力される。
【０１２２】
並べ替え部２０２は、入力されたＲＬ列を逆方向に並べ直す。ただし、係数の個数は並べ替えの対象からは除外する。
【０１２３】
図１６の（ｂ）は、並び替え部２０２で並び替えられたＲＬ列を示す。このように並び替えることで、上述のように情報量を小さくしながらも、結果的に、係数ブロック内を高周波数領域から低周波数領域に向かって走査して係数の一次元化が行われたことになる。そして、このように並べ替えられたＲＬ列は２値化部２０３に出力される。
【０１２４】
２値化部２０３は、係数の個数および各ＲＬ値に対して、２値化、すなわち「０」や「１」からなる２値化データへの変換を行う。ここで、個数Ｒと係数値Ｌとはそれぞれ別に２値化される。
【０１２５】
図１６の（ｃ）は、並び替え部２０２で並び替えられたＲＬ列の係数値Ｌのみを示す。これらの係数値Ｌに対しては、その絶対値と正負符号とが別に処理される。また２値化部２０３は、例えば図２１に示すような予め定められた２値化テーブルを用いて、個数Ｒと係数値Ｌの絶対値に対して２値化を行う。そして２値化部２０３は、これらに対して２値化を施された２値化データを算術符号化部２０５に対して出力する。
【０１２６】
算術符号化部２０５は、２値化データとして表される個数Ｒ値および係数値Ｌの絶対値に対して２値算術符号化を行うとともに、係数値Ｌの正負符号に対しても符号化を行う。ここでは、係数値Ｌの絶対値の算術符号化について説明する。算術符号化部２０５は、２値化データとして表される係数値Ｌの絶対値に算術符号化を施す場合には、複数の確率テーブルを切り替えて用いる。これら複数の確率テーブルはテーブル記憶部２０４に記憶されている。
【０１２７】
図１７は、確率テーブルの切り替え方法を示す遷移図である。
【０１２８】
この図１７に示すように、算術符号化部２０５は確率テーブルを４つ用い、先頭の係数値Ｌの絶対値に対しては、確率テーブル１を用いてこれを算術符号化する。そして、それ以降の係数値Ｌの絶対値に対しては、算術符号化部２０５は、直前の係数値Ｌの絶対値を符号化する際に用いられた確率テーブルのテーブル番号と、その絶対値とに応じて、使用される確率テーブルを切り替える。ここで、４つの確率テーブルは、確率テーブル１、確率テーブル２、確率テーブル３、確率テーブル４であり、確率テーブル１のテーブル番号は「１」、確率テーブル２のテーブル番号は「２」、確率テーブル３のテーブル番号は「３」、確率テーブル４のテーブル番号は「４」である。
【０１２９】
具体的に、直前の係数値Ｌの絶対値が確率テーブル１を用いて符号化され、且つその絶対値が「１」の場合、または、直前の係数値Ｌの絶対値が確率テーブル２を用いて符号化され、且つその絶対値が「１」の場合には、確率テーブル２が用いられる。直前の係数値Ｌの絶対値が確率テーブル１を用いて符号化され、且つその絶対値が「２」の場合、または、直前の係数値Ｌの絶対値が確率テーブル２を用いて符号化され、かつその絶対値が「２」の場合、または、直前の係数値Ｌの絶対値が確率テーブル３を用いて符号化され、且つその絶対値が「２以下」の場合には、確率テーブル３が用いられる。直前の係数値Ｌの絶対値が「３以上」の場合、または、直前の係数値Ｌの絶対値が確率テーブル４を用いて符号化されている場合には、確率テーブル４が用いられる。
【０１３０】
このように確率テーブルの切り替えは、テーブル番号が小さい確率テーブルからテーブル番号が大きい確率テーブルへの一方向であり、直前の係数値Ｌの絶対値が所定のしきい値以下となっても、逆方向への切り替えは行われない。これが従来例とは異なる点である。
【０１３１】
図１８は、上記４つの確率テーブル１〜４の内容を示す確率テーブル内容表示図である。
【０１３２】
確率テーブル１〜４のそれぞれは、図１８に示すように、「０」の発生する確率と、「１」の発生する確率とから構成される。
【０１３３】
例えば確率テーブル１は、「０」の発生する確率「０．１」と、「１」の発生する確率「０．９」とから構成され、確率テーブル２は、「０」の発生する確率「０．２」と、「１」の発生する確率「０．８」とから構成されている。
【０１３４】
つまり、係数値Ｌの絶対値が「２」であれば、この「２」が２値化されたものが「０１」であるため、算術符号化部２０５は、これを確率テーブル１を用いて算術符号化するときには、上記「０１」の「０」に対応する確率「０．１」と、上記「０１」の「１」に対応する確率「０．９」とを用いて、この「０１」を算術符号化する。
【０１３５】
ここで、「０」が発生する確率と「１」の発生する確率との合計は１．０であるので、両者の確率を保持しておく必要はなく、一方の確率のみを保持しても良い。
【０１３６】
図１６の（ｃ）に示す係数値Ｌの絶対値（２値化されたもの）が符号化される場合における、確率テーブルの切り替え例を以下に説明する。
【０１３７】
算術符号化部２０５は、最初の係数値Ｌ（−２）の絶対値に対しては、確率テーブル１を用いる。ここで係数値Ｌの絶対値が２であるので、算術符号化部２０５は、使用される確率テーブルを確率テーブル１から確率テーブル３に遷移させる。これにより算術符号化部２０５は、２番目の係数値Ｌ（３）の絶対値を確率テーブル３を用いて算術符号化する。
【０１３８】
ここでの係数値Ｌの絶対値は「３」であるので、算術符号化部２０５は、使用される確率テーブルを確率テーブル３から確率テーブル４に遷移させる。これにより算術符号化部２０５は、３番目の係数値（６）の絶対値を確率テーブル４を用いて算術符号化する。ここで使用される確率テーブルが確率テーブル４に遷移されたので、算術符号化部２０５は、以降の係数値Ｌの絶対値をすべて確率テーブル４を用いて算術符号化する。例えば、５番目の係数値Ｌの絶対値は「２」となるが、従来例とは異なり、算術符号化部２０５は、６番目以降の係数値Ｌの絶対値を算術符号化するときには、確率テーブルを遷移させずに確率テーブル４を用いる。
【０１３９】
また、各確率テーブルは、入力が「０」であるか「１」であるかによって随時更新されるため、入力に適応した確率テーブルに更新されていく。
【０１４０】
以上のように、本発明に係る画像符号化装置１００ｂの可変長符号化部１５０における可変長符号化方法は、係数ブロック内の係数を低周波数領域から高周波数領域に向けて走査して一次元化する。そして、一次元化された係数に対して、連続する係数値「０」の個数Ｒとそれに続く「０」以外の係数値Ｌとの組み合わせであるＲＬ値の列（ＲＬ列）を生成する。
【０１４１】
そして、ＲＬ値を走査順とは逆順に可変長符号に変換していく。可変長符号に変換する際には、個数Ｒ、係数値Ｌの絶対値、係数値Ｌの正負符号を個別に変換する。これらの変換の際には、まず２値化を行い、その後、算術符号を施す。係数値Ｌの絶対値に対して算術符号を施す際には、複数の確率テーブルを切り替える。確率テーブルを切り替える際には、現在の確率テーブルのテーブル番号および係数値Ｌの絶対値によって、次の係数値Ｌの絶対値を符号化する際の確率テーブルを決定する。そして、確率テーブルの遷移は一方向のみとし、係数値Ｌの絶対値が一度所定の値を超えると、それ以降はすべて同じ確率テーブルで算術符号化を行う。
【０１４２】
一般に低周波数領域ほど係数値Ｌの絶対値は大きいため、高周波数領域から低周波数領域の順に走査すると、係数値Ｌの絶対値は順に大きくなっていくことが多い。したがって、係数値Ｌの絶対値が一度所定の値を超えると、それ以降は係数値Ｌの絶対値が所定値よりも小さくなったとしても、小さくなるのはその係数値Ｌの絶対値だけである可能性が非常に高く、同じ確率テーブルを用いて算術符号化することにより、確率テーブルの更新が入力に適応しやすくなり、それにより各確率テーブルのシンボル（２値化データの「０」または「１」）の発生確率に偏りが生じやすくなる（すなわち、「０」または「１」のいずれかの発生確率が１．０に近い値になる）。算術符号化は、確率テーブル内の確率値に偏りが生じるほど、符号化効率が高くなる特徴を有する。よって、本発明の可変長符号化方法を用いることにより、符号化効率の改善を図ることができる。
【０１４３】
以上、本発明に係る画像符号化装置について本実施の形態を用いて説明したが、本発明はこれらに限定されるものではない。
【０１４４】
例えば、本実施の形態では、ピクチャ内符号化により画像を符号化する場合について説明したが、これは動画像入力に対して動き補償等を用いてピクチャ間符号化をする場合であっても良く、同様の効果が得られる。
【０１４５】
また、本実施の形態では、入力画像を水平４×垂直４画素の画素ブロックに分割する場合について説明したが、その画素ブロックの大きさは他の大きさであっても良い。
【０１４６】
また、本実施の形態では、係数ブロック内の走査方法として図１５の（ｂ）を用いて説明したが、これは低周波数領域から高周波数領域への走査であれば他の走査順序であっても良い。
【０１４７】
また、本実施の形態では、ＲＬ列生成部２０１が、量子化された周波数係数を所定の走査方法で一次元化し、一次元化された係数に対して、連続する係数値「０」の個数Ｒとそれに続く「０」以外の係数値Ｌとの組み合わせの列（ＲＬ列）を生成する場合について説明したが、個数Ｒの列と係数値Ｌの列とを個別に生成しても良い。例えば、係数値Ｌの列を生成する場合、高周波数領域から低周波数領域に向かって走査し、係数値が０以外の係数を選択することにより生成すれば、並べ替え部２０２を省くことができる。
【０１４８】
また、本実施の形態では４つの確率テーブルを用い、図１７に示す遷移図に基づいて確率テーブルが遷移する場合について説明したが、確率テーブルの数や、図１７における遷移の際の、係数値Ｌの絶対値に対するしきい値は他の値であっても良い。
【０１４９】
また、本実施の形態では、２値化テーブルの例として図２１を用いて説明したが、これは他のテーブルであっても良い。
【０１５０】
また、本実施の形態では、算術符号化部が２値算術符号を行う場合について説明したが、多値算術符号を行っても良い。この場合、２値化部２０３を省くことができる。
【０１５１】
（実施の形態４）
以下、本発明の第４の実施の形態における画像復号化装置について図面を参照しながら説明する。
【０１５２】
図１９は、本発明の第４の実施の形態における画像復号化装置５００ｂの構成を示すブロック図である。
【０１５３】
この画像復号化装置５００ｂは、画像データがピクチャ内符号化処理された符号列に対し、ピクチャ内復号化処理を行うものであって、可変長復号化部６０１、逆量子化部６０２、逆周波数変換部６０３、およびフレームメモリ６０４を備えている。ここで入力される上記符号列は、例えば、実施の形態３の画像符号化装置１００ｂの可変長符号化方法により生成されたものであって、まず可変長復号化部６０１がこれを取得する。
【０１５４】
可変長復号化部６０１は、符号列を取得すると、この符号列に対して可変長復号化することで図１５の（ａ）に示すような複数の係数から構成される係数ブロックを作成する。
【０１５５】
逆量子化部６０２は、可変長復号化部６０１から上記係数ブロックを取得すると、この係数ブロックに対して逆量子化処理を行う。ここで逆量子化処理とは、係数ブロックの各係数に所定の量子化値を積算することを意味する。ここで量子化値は、一般的に個々の係数ブロックや周波数帯域ごとによって異なっており、符号列中から得られる。そして逆量子化部６０２は、逆量子化された係数ブロックを逆周波数変換部６０３に出力する。
【０１５６】
逆周波数変換部６０３は、逆量子化された係数ブロックに対して、逆周波数変換を施し、係数ブロックを画素ブロックに変換する。そして逆周波数変換部６０３は、変換された画素ブロックをフレームメモリ６０４に出力する。
【０１５７】
フレームメモリ６０４は、復号化された画素ブロックを順に蓄積し、１画面分の画素ブロックが蓄積されると、これらの画素ブロックを出力画像として出力する。
【０１５８】
ここで上述の可変長復号化部６０１について詳細に説明する。
【０１５９】
図１４０は、可変長復号化部６０１の内部構成を示すブロック図である。
【０１６０】
この図２０に示すように可変長復号化部６０１は、算術復号化部７０１、多値化部７０２、テーブル記憶部７０３、並べ替え部７０４、および係数生成部７０５を備えている。
【０１６１】
テーブル記憶部７０３は、例えば図１８に示すような４つの確率テーブル１〜４を保持している。
【０１６２】
算術復号化部７０１は、符号列を取得すると、まずこの符号列に対して、算術復号化を行う。ここでは、符号列に含まれる符号化された係数値Ｌの絶対値（２値化されたもの）に対する２値算術復号化について説明する。
【０１６３】
算術復号化部７０１は、符号化された係数値Ｌの絶対値に対して算術復号化を行う際には、既に復号化されて多値化された直前の係数値Ｌの絶対値を多値化部７０２から取得し、その係数値Ｌの絶対値に応じてテーブル記憶部７０３に保持されている確率テーブル１〜４を図１７に示すように切り替えて用い、符号化された各係数値Ｌの絶対値を２値算術復号化してこれらに対応する２値化データを出力する。
【０１６４】
多値化部７０２は、算術符号化部７０１から出力される２値化データに対して、例えば図２１に示すような２値化テーブルを用いることで多値化し、係数値Ｌの絶対値とする。そして多値化部７０２は、係数値Ｌの絶対値を算術復号化部７０１と並べ替え部７０４に出力する。
【０１６５】
このような算術復号化部７０１および多値化部７０２の詳細な動作について説明する。
【０１６６】
まず算術復号化部７０１は、符号化された先頭の係数値Ｌの絶対値を確率テーブル１を用いて算術復号化する。そして、算術復号化部７０１は、算術復号化して得られた２値化データを多値化部７０２に対して出力する。多値化部７０２は、２値化テーブルを用いることで２値化データから係数値Ｌの絶対値への変換を行い、その絶対値を算術復号化部７０１および並べ替え部７０４に対して出力する。
【０１６７】
次に、算術復号化部７０１は、それ以降の符号化された係数値Ｌの絶対値に対しては、直前の符号化された係数値Ｌの絶対値を２値算術復号化する際に用いられた確率テーブルのテーブル番号と、多値化部７０２から取得された直前の係数値Ｌの絶対値によって、使用される確率テーブルを切り替える。図１７に示すように、直前の符号化された係数値Ｌの絶対値が確率テーブル１を用いて算術復号化され、かつ多値化部７０２から取得された直前の係数値Ｌの絶対値が「１」の場合、または、直前の符号化された係数値Ｌの絶対値が確率テーブル２を用いて算術復号化され、かつ多値化部７０２から取得された直前の係数値Ｌの絶対値が「１」の場合には、確率テーブル２が用いられる。
【０１６８】
直前の符号化された係数値Ｌの絶対値が確率テーブル１を用いて算術復号化され、かつ多値化部７０２から取得された直前の係数値Ｌの絶対値が「２」の場合、または、直前の符号化された係数値Ｌの絶対値が確率テーブル２を用いて算術復号化され、かつ多値化部７０２から取得された直前の係数値Ｌの絶対値が「２」の場合、または、直前の符号化された係数値Ｌの絶対値が確率テーブル３を用いて算術復号化され、かつ多値化部７０２から取得された直前の係数値Ｌの絶対値が「２以下」の場合には、確率テーブル３が用いられる。
【０１６９】
多値化部７０２から取得された直前の係数値Ｌの絶対値が「３以上」の場合、または、直前の符号化された係数値Ｌの絶対値が確率テーブル４を用いて算術復号化されている場合には、確率テーブル４が用いられる。このように確率テーブル１〜４の切り替えは、テーブル番号が小さい確率テーブルからテーブル番号が大きい確率テーブルへの一方向であり、多値化部７０２から取得された直前の係数値Ｌの絶対値が所定のしきい値以下となっても、逆方向への切り替えは行われない。これが従来例とは異なる点である。
【０１７０】
図１６の（ｃ）に示す係数値Ｌの絶対値に復号化される場合における、確率テーブルの切り替え例を以下に説明する。
【０１７１】
算術復号化部７０１は、最初の符号化された係数値Ｌ（−２）の絶対値に対しては、確率テーブル１を用いて２値化データ「０１」に算術復号化する。ここで、算術復号化部７０１は、その２値化データ「０１」に対して多値化された「２」を多値化部７０２から取得するので、使用される確率テーブルを確率テーブル１から確率テーブル３に遷移させる。これにより算術復号化部７０１は、２番目の符号化された係数値Ｌ（３）の絶対値を、確率テーブル３を用いて２値化データ「００１」に算術復号化する。
【０１７２】
ここで、算術復号化部７０１は、その２値化データ「００１」に対して多値化された「３」を多値化部７０２から取得するので、使用される確率テーブルを確率テーブル３から確率テーブル４に遷移させる。これにより算術復号化部７０１は、３番目の符号化された係数値Ｌ（６）の絶対値を、確率テーブル４を用いて２値化データ「０００００１」に算術復号化する。ここで使用される確率テーブルが確率テーブル４に遷移されたので、算術復号化部７０１は、以降の符号化された係数値Ｌの絶対値をすべて確率テーブル４を用いて算術復号化する。例えば、５番目の符号化された係数値Ｌの絶対値が復号化され多値化された結果は「２」となるが、従来例とは異なり、算術復号化部７０１は、６番目以降の符号化された係数値Ｌの絶対値を算術復号化するときには、確率テーブルを遷移させずに確率テーブル４を用いる。
【０１７３】
以上のような動作により、１つの係数ブロック分の係数値Ｌの絶対値および個数Ｒ並びに係数値Ｌの正負符号が生成されると、これらはＲＬ列として並べ替え部７０４に入力される。
【０１７４】
並べ替え部７０４は、入力されたＲＬ列を逆方向に並べ直す。ただし、係数の個数は並べ替えの対象からは除外する。並べ替えた後の状態は図１６の（ａ）となる。そして並べ替え部７０４は、このように並べ替えられたＲＬ列を係数生成部７０５に出力する。
【０１７５】
係数生成部７０５は、入力されたＲＬ列を係数ブロックに変換する。この際には、係数生成部７０５は、所定の走査順序に基づいて、個数Ｒで示された個数だけ値「０」の係数を生成し、その次に係数値Ｌで示された値の係数を生成することを繰り返すことにより、ＲＬ列から係数ブロックへの変換を行う。ここでは、係数生成部７０５は、図１５の（ｂ）に示すように低周波数領域から高周波数領域に向かってジグザグに走査し、図１６の（ａ）に示すＲＬ列を、図１５の（ａ）に示す係数ブロックに変換する。そして係数生成部７０５は、このように生成された係数ブロックを逆量子化部６０２に出力する。
【０１７６】
以上のように、本発明に係る画像復号化装置５００ｂの可変長復号化部６０１における可変長復号化方法は、入力符号列中の、係数値Ｌの絶対値の算術復号化を行う場合に、複数の確率テーブルを切り替える。確率テーブルを切り替える際には、現在の確率テーブルのテーブル番号および復号化により得られた係数値Ｌの絶対値によって、次の係数値Ｌの絶対値を復号化する際の確率テーブルを決定する。この際の、確率テーブルの遷移は一方向のみとし、復号化により得られた係数値Ｌの絶対値が一度所定の値を超えると、それ以降はすべて同じ確率テーブルで算術復号化を行う。
【０１７７】
このように、本発明の可変長復号化方法を用いることにより、本発明の可変長符号化方法を用いて符号化された符号列を正しく復号化することが可能となる。
【０１７８】
以上、本発明に係る画像復号化装置について、本実施の形態を用いて説明したが、本発明はこれらに限定されるものではない。
【０１７９】
例えば、本実施の形態では、ピクチャ内符号化により生成された符号列を復号化する場合について説明したが、これは動画像入力に対して動き補償等を用いてピクチャ間符号化をして生成された符号列を復号化する場合であっても良く、同様の効果が得られる。
【０１８０】
また、本実施の形態では、画像データが水平４×垂直４画素の画素ブロックに分割されて符号化されている符号列について説明したが、その画素ブロックの大きさは他の大きさであっても良い。
【０１８１】
また、本実施の形態では４つの確率テーブルを用い、図１７に示す遷移図に基づいて確率テーブルが遷移する場合について説明したが、確率テーブルの数や、図１７における遷移の際の、係数値Ｌの絶対値に対するしきい値は他の値であっても良い。
【０１８２】
また、本実施の形態では、係数ブロック内の走査方法として図１５（ｂ）を用いて説明したが、これは符号化の際に用いた走査方法と同じであれば、他の走査順序であっても良い。
【０１８３】
また、本実施の形態では、２値化テーブルの例として図２１を用いて説明したが、これは符号化の際に用いた２値化テーブルと同じであれば、他のテーブルであっても良い。
【０１８４】
また、本実施の形態では、算術復号化部７０１が２値算術復号化を行う場合について説明したが、これは多値算術復号化を行っても良い。この場合、多値化部７０２を省くことができる。
【０１８５】
次いで、本発明に係るさらに他の実施の形態を、図面を参照しながら説明する。
【０１８６】
（実施の形態５）
図２２は、本発明の可変長符号化方法およびこれを用いた動画像符号化方法が適用される符号化装置の機能構成を示すブロック図である。なお、この実施の形態５においても、実施の形態１，３の符号化装置１００ａ，１００ｂと同様に、本発明の動画像符号化方法で入力画像をフレーム内符号化処理する場合の機能構成が図示されている。また、このような符号化装置１００ｃを構成する各部は、ＣＰＵ、ＣＰＵによって実行されるプログラムやデータを予め格納するＲＯＭ、プログラム実行の際にワークエリアを提供したり、入力画像等を一時的に格納するメモリ等により実現される。
【０１８７】
図２２に示されるように、この実施の形態５に係る符号化装置１００ｃは、ブロック変換部１１０、周波数変換部１２０、量子化部１３０、可変長符号化部１６０から構成される。
【０１８８】
ここで、上記実施の形態１に係る符号化装置１００ａではＲとＬのペアを複数の可変長符号テーブル（ＶＬＣテーブル）を用いて符号化するように構成され、上記実施の形態３に係る符号化装置１００ｂではＬをＲと別個に複数の確率テーブルを用いて算術符号化するように構成されていたが、この実施の形態５に係る符号化装置１００ｃにおいては、ＬをＲと別個に、かつ複数の可変長符号テーブルを用いて符号化するように構成されている点が符号化装置１００ａ，１００ｂと異なっている。このため、符号化装置１００ｃは、符号化装置１００ａ，１００ｂの可変長符号化部１４０，１５０に代えて可変長符号化部１６０を用いて構成される。なお、他の構成については、符号化装置１００ａ，１００ｂと同一であるのでその説明を省略し、可変長符号化部１６０について詳述する。
【０１８９】
この可変長符号化部１６０は、量子化部１３０によって量子化された周波数係数に基づいてＬ列とＲ列とを個別に生成し、１次元ＶＬＣ切り替え方式で係数の絶対値｜Ｌ｜等の符号列を生成する。
【０１９０】
図２３は、可変長符号化部１６０の詳細な機能構成を示すブロック図である。
【０１９１】
図２３に示されるように、可変長符号化部１６０は、Ｒ列・Ｌ列生成部１６１と、コード割り当て部１６３と、テーブル記憶部１６４とから構成される。
【０１９２】
Ｒ列・Ｌ列生成部１６１は、量子化された周波数係数（以下、単に「係数」とも記す。）を周波数の低い方から高い方にジグザグスキャンしてＬ列とＲ列とを個別に生成する。
【０１９３】
具体的には、図３（ａ）に示されるブロックの係数が入力された場合、Ｒ列・Ｌ列生成部１６１は、図３（ｂ）に示されるようにジグザグスキャンする。そして、Ｒ列・Ｌ列生成部１６１は、まず、Ｌ列について、図２４（ａ）に示されるように、係数値が「０」以外であるＬの個数ｍと、その係数の絶対値｜Ｌ｜の列と、その係数の符号の列とを取得する。これは、ＲがＬに依存するのに対して、ＬはＲに依存せず、独立に取得できるからである。次いで、Ｒ列・Ｌ列生成部１６１は、図２４（ｂ）に示されるように、Ｒの列（Ｒ列）を生成する。
【０１９４】
テーブル記憶部１６４は、Ｌ列の各係数の絶対値｜Ｌ｜を可変長符号化するための複数（例えは、８個）の可変長符号テーブル１６４１ａ〜１６４１ｇと、係数の絶対値｜Ｌ｜に対するしきい値を複数保持し、係数の絶対値｜Ｌ｜に応じて各可変長符号テーブル１６４１ａ〜１６４１ｇを適応的に切り替えるためのしきい値テーブル１６４２等とを保持している。
【０１９５】
図２５は、各可変長符号テーブル１６４１ａ〜１６４１ｇの構成例を示す図である。なお、各可変長符号テーブル１６４１ａ〜１６４１ｇは、実際には係数の絶対値｜Ｌ｜とその２値化コードとをそれぞれ対応づけて構成されるが、同図においては１つのテーブルで図示されている。
【０１９６】
ここで、係数の絶対値｜Ｌ｜の出現頻度が高いほど小さなコード番号が割り当てられるが、一般には係数の絶対値｜Ｌ｜の小さい値ほど出現頻度が高くなる。これは、係数の絶対値｜Ｌ｜の最大値は映像によっても、画面の中によっても、その値が分散し、同じ値の出現頻度が少ないのに対し、係数の絶対値｜Ｌ｜の最小値、すなわち高周波成分はほぼ「１」や「２」程度に集中する傾向が強く、同じ値の出現頻度が多くなるためである。一方、係数の絶対値｜Ｌ｜と２値化コードと１つの可変長符号テーブルだけで対応づけてしまうと、係数の絶対値｜Ｌ｜が大きいほどその符号長が非常に長くなってしまう。このため、係数の絶対値｜Ｌ｜が大きくなってもその符号長があまり長くならないように、係数の絶対値｜Ｌ｜に応じて適用される可変長符号テーブル１６４１ａ〜１６４１ｇが予め用意される。
【０１９７】
各可変長符号テーブル１６４１ａ〜１６４１ｇは、係数値の最小値における符号長が各前記テーブルにそれぞれ付与される番号ｋの順番に長くなり、係数値の最大値における符号長が番号ｋの順番に短くなるように係数値に対する符号長の変化率を異ならせて構成される。
【０１９８】
より詳しくは、可変長符号テーブル１６４１ａは、各テーブル中で、係数の絶対値｜Ｌ｜が小さいときにはその符号長が一番短く、係数の絶対値｜Ｌ｜が大きいときにはその符号長が一番長いテーブルである。すなわち、可変長符号テーブル１６４１ａは、各可変長符号テーブル１６４１ａ〜１６４１ｇの中で、係数の絶対値｜Ｌ｜に対する符号長の変化率が一番大きなテーブルであって、係数の絶対値｜Ｌ｜が小さい場合（例えば、「１」〜「３」）に適用するのに適している。
【０１９９】
可変長符号テーブル１６４１ｇは、各テーブル中で、係数の絶対値｜Ｌ｜が小さいときにはその符号長が一番長く、係数の絶対値｜Ｌ｜が大きいときにはその符号長が一番短いテーブルである。すなわち、可変長符号テーブル１６４１ｇは、各可変長符号テーブル１６４１ａ〜１６４１ｇの中で、係数の絶対値｜Ｌ｜に対する符号長の変化率が一番小さなテーブルであって、係数の絶対値｜Ｌ｜が大きい場合（例えば、「１９３」〜）に適用するのに適している。
【０２００】
その間の可変長符号テーブル１６４１ｂ〜１６４１ｆは、１６４１ｂ〜１６４１ｆの順に、係数の絶対値｜Ｌ｜が小さいときにはその符号長が徐々に長くなり、係数の絶対値｜Ｌ｜が大きいときにはその符号長が徐々に短くなるテーブルである。すなわち、可変長符号テーブル１６４１ｂ〜１６４１ｆは、１６４１ｂ〜１６４１ｆの順に、係数の絶対値｜Ｌ｜に対する符号長の変化率が徐々に小さくなるテーブルであって、可変長符号テーブル１６４１ｂにおいては係数の絶対値｜Ｌ｜が例えば「４」〜「６」である場合に使用するのに、可変長符号テーブル１６４１ｃにおいては係数の絶対値｜Ｌ｜が例えば「７」〜「１２」である場合に適用するのに、…、それぞれ適している。
【０２０１】
これによって、係数値に応じた符号長の可変長符号を各テーブルに適応させることが可能となるので、符号化効率を向上させることができる。つまり、あるテーブルでは係数値が小さい場合に他のテーブルよりも短い符号長の可変長符号に符号化するようにし、他のあるテーブルでは係数値が大きい場合に他のテーブルよりも短い符号長の可変長符号に符号化するようにし、係数値に応じてテーブルを切り替えることで、符号長を飛躍的に短くすることができる。さらに、各テーブルごとに符号長が短くなる範囲を割り当てることができるので、符号化効率の向上を実現できる。なお、符号化が非算術符号化、すなわちＶＬＣ方式であるので、算術符号化のような複雑な処理が不用となり、符号化に用いるテーブルが決まるとそのテーブルを参照するだけで簡単に可変長符号に符号化することができる。
【０２０２】
図２６は、しきい値テーブル１６４２の構成例を示す図である。
【０２０３】
このしきい値テーブル１６４２は、可変長符号テーブル１６４１ａ〜１６４１ｇの特性に応じて予め設定され、各可変長符号テーブル１６４１ａ〜１６４１ｆの切り替えに用いるしきい値を複数保持する。例えば、可変長符号テーブル１６４１ａ，１６４１ｂの切り替えに対するしきい値は「４」に、可変長符号テーブル１６４１ｂ，１６４１ｃの切り替え（遷移）に対するしきい値は「７」に、…、可変長符号テーブル１６４１ｆ，１６４１ｇの切り替えに対するしきい値は「１９３」に、それぞれ設定される。これによって、テーブルの切り替えのタイミングを簡単に判断でき、係数の絶対値｜Ｌ｜に応じた最適なテーブルに切り替えることが可能となる。
【０２０４】
コード割り当て部１６３は、テーブル記憶部１６４が保持する可変長符号テーブル１６４１ａ〜１６４１ｇおよびしきい値テーブル１６４２を用いて、Ｒ列・Ｌ列生成部１６１から出力された係数の絶対値｜Ｌ｜をＲ列と個別に可変長符号化し、２値コードを割り当てる。すなわち、コード割り当て部１６３は、係数の絶対値｜Ｌ｜を１次元符号化する。
【０２０５】
次いで、符号化装置１００ｃにおける符号化動作を説明する。なお、ブロック変換部１１０〜量子化部１３０の動作については、上記した符号化装置１００ａ，１００ｂにおける動作と同じであるのでその動作の説明を省略し、可変長符号化部１６０における可変長符号化動作を詳細に説明する。
【０２０６】
量子化部１３０によって量子化された周波数係数は可変長符号化部１６０のＲ列・Ｌ列生成部１６１に入力される。
【０２０７】
Ｒ列・Ｌ列生成部１６１は、まず、上記図３（ｂ）の場合と同様に、ブロック内の量子化された周波数係数値を直流成分の領域から高周波成分の領域に向かってジグザグスキャンすることによって周波数係数値を一次元化する。次いで、Ｒ列・Ｌ列生成部１６１は、「０」以外の係数値Ｌの列（以下、「Ｌ列」とも記す。）と、連続する係数値「０」の個数Ｒの列（以下、「Ｒ列」とも記す。）とを個別に生成する。この生成されたＬ列とＲ列との例を、図２４に示す。なお、Ｌ列については、係数の個数ｍと、係数の絶対値｜Ｌ｜と、係数の正負号と、等に分けられる。なお、係数の正負号については、例えば、正は「０」に、負は「１」に対応付けされる。
【０２０８】
ここで、一般的に高周波数成分ほど係数値が「０」になりやすいので、低周波数領域から高周波数領域に向かって走査することにより、Ｌ列の係数値が「１」に近づく。
【０２０９】
コード割り当て部１６３は、Ｒ列・Ｌ列生成部１６１によって生成されたＬ列の各Ｌ値をジグザグスキャンと逆順、すなわち周波数の高い方から順番に符号化する。すなわち、コード割り当て部１６３は、Ｌ列の後ろから順番に可変長符号テーブル１６４１ａ〜１６４１ｇを用いて係数の絶対値｜Ｌ｜に対応するハフマン符号（可変長符号）を順次求める。
【０２１０】
なお、ジグザグスキャンの順番と逆順にする理由は、高周波領域の「０」以外の係数値「１」近傍に収束に収束し、符号化に用いる最初のテーブルを決定しやすく、可変長符号テーブル１６４１ａ〜１６４１ｇを作成しやすく、しかも、しきい値を決定しやすいからである。
【０２１１】
コード割り当て部１６３は、テーブル記憶部１６４に保持されている種々のテーブルを用いてＬ列のＬおよびＲ列の各Ｒに対して可変長符号を割り当てる。なお、コード割り当て部１６３は、係数の個数ｍについても可変長符号を割り当てたりするが、ここでは、係数の絶対値｜Ｌ｜に対して可変長符号を割り当てる処理を説明する。
【０２１２】
図２７は、コード割り当て部１６３が実行する可変長符号の割り当て処理を示すフローチャートである。
【０２１３】
コード割り当て部１６３は、ブロック内係数値（係数の絶対値｜Ｌ｜）の符号化を開始
するに当たりＲ列・Ｌ列生成部１６１から出力された係数値の個数ｍをセットする（Ｓ１０１）。次いで、コード割り当て部１６３は、参照する可変長符号テーブルの初期値としてテーブル番号ｋに「０」をセットする（Ｓ１０２）。次いで、コード割り当て部１６３は、しきい値テーブル１６４２を参照し、しきい値＝４をセットする（Ｓ１０３）。
【０２１４】
係数の個数ｍ、可変長符号テーブルの参照先（この場合、可変長符号テーブル１６４１ａ）およびしきい値の設定が終わると、コード割り当て部１６３は、Ｒ列・Ｌ列生成部１６１から出力された係数の絶対値｜Ｌ｜を後ろから読み出し（Ｓ１０４）、セットされた番号の可変長符号テーブルを用いて読み出した係数の絶対値｜Ｌ｜を可変長符号に符号化し（Ｓ１０５）。そして、符号化が終わると、コード割り当て部１６３は、符号化によって得られた２値化コードを不図示のバッファ（例えば、ＦＩＦＯバッファ）に格納し（Ｓ１０６）、係数の個数ｍを「１」デクリメントし（Ｓ１０７）、デクリメントした個数ｍが「０」か否か、すなわちＬ列に含まれる係数のすべてを符号化し終わったか否か判断する（Ｓ１０８）。
【０２１５】
係数の個数ｍが「０」でなければ（Ｓ１０８でＮｏ）、直前の係数の絶対値｜Ｌ｜がしきい値を超えたか否か判断する（Ｓ１０９）。超えていなければ（Ｓ１０９でＮｏ）、コード割り当て部１６３は、次の係数の絶対値｜Ｌ｜を後ろから読み出し（Ｓ１０４）、ステップＳ１０５〜Ｓ１０８等を実行する。すなわち、次の係数の絶対値｜Ｌ｜を前と同じ可変長符号テーブルを用いて符号化する。
【０２１６】
直前の係数の絶対値｜Ｌ｜がしきい値を超えた場合（Ｓ１０９でＮｏ）、コード割り当て部１６３は、テーブル番号ｋを「１」インクリメントする（Ｓ１１０）。これによって、次の係数の絶対値｜Ｌ｜の符号化の際には、符号長の変化率がより少ない、符号長の長い係数の絶対値｜Ｌ｜の符号化に適した可変長符号テーブル（例えば、前の可変長符号テーブルがｋ＝０の１６４１ａであれば、ｋ＝１の１６４１ｂ）が参照されることになる。
【０２１７】
テーブル番号ｋのインクリメントが終わると、コード割り当て部１６３は、しきい値テーブル１６４２を参照し、次のしきい値に更新する（例えば、前のしきい値が「４」であれば「７」）（Ｓ１１１）。これによって、係数の絶対値｜Ｌ｜が新たなしきい値を超えた場合にだけ、符号長の変化率がより少ない、符号長の長い係数の絶対値｜Ｌ｜の符号化に適した次の可変長符号テーブルに遷移させることができる。
【０２１８】
より詳しくは、直前の係数の絶対値｜Ｌ｜がテーブル番号「０」の可変長符号テーブル１６４１ａとテーブル番号「１」の可変長符号テーブル１６４１ｂとの間のしきい値「４」を超えた場合、図２８に示されるように、次の係数の絶対値｜Ｌ｜の符号化の際の参照先として、可変長符号テーブル１６４１ａから可変長符号テーブル１６４１ｂへ参照先が切り替えられ、しきい値「７」が設定される。
【０２１９】
直前の係数の絶対値｜Ｌ｜がテーブル番号「１」〜「６」の可変長符号テーブル１６４１ｂ〜１６４１ｇ間のしきい値「７」〜「１９３」を超えた場合についても、しきい値「４」の場合と同様に、次の係数の絶対値｜Ｌ｜の符号化の際の参照先として、テーブル番号「１」の可変長符号テーブル１６４１ｂからテーブル番号２の可変長符号テーブル１６４１ｃへ、…、可変長符号テーブル１６４１ｇへ順次切り替えられる。この様子を図２８に示す。
【０２２０】
ここで、テーブルの切り替え方向は、一方向であり、戻ることはない。これによって、係数値によって、テーブルが頻繁に入れ替わることが防止され、テーブルの切り替え回数が減る。したがって、符号化効率を向上させることができる。例えば、メモリのワークエリアが限られるので次に使用するテーブルだけをワークエリアに置くのが一般的である。この場合には、テーブルを切り替えるごとにＲＯＭから次のテーブルを読み出してワークエリアに展開するのに時間がかかるので、次の係数値の符号化まで時間がかかる。このため、一方向とすることによって、テーブルの切り替え回数を制限し、次の係数値の符号化まで時間をトータルとして短縮できるという効果が発揮される。
【０２２１】
このような、テーブル番号のインクリメントと、しきい値の更新が終わると、コード割り当て部１６３は、次の係数の絶対値｜Ｌ｜を後ろから読み出し（Ｓ１０４）、ステップＳ１０５〜Ｓ１０８等を実行する。すなわち、前よりも係数の絶対値｜Ｌ｜が大きいものに適した可変長符号テーブルを用いて符号化する。
【０２２２】
このような処理（Ｓ１０４〜Ｓ１１１）を係数の個数ｍが「０」になるまで繰り返し実行し、係数の個数ｍが「０」になると当該ブロック内の係数の絶対値｜Ｌ｜の符号化を終了する。
【０２２３】
具体的には、ブロック内における係数の絶対値｜Ｌ｜の列が後ろから「１」、「１」、「２」、「３」、「４」、「１２」、「２」、「３」、「３１」、「２２」、「５」、「９」、「３８」である場合、コード割り当て部１６３は、図２９に示されるように、まず可変長符号テーブル１６４１ａを用いて「１」、「１」、「２」、「３」、「４」、「１２」をこの順番に２値コード「１」、「１」、「０１０」、「０１１」、「００１００」、「０００１１００」にそれぞれ符号化する。そして、係数の絶対値｜Ｌ｜＝「１２」のコード化の際にしきい値「４」を超えたので、コード割り当て部１６３は、符号化に使用するテーブルをテーブル番号ｋ＝１の可変長符号テーブル１６４１ｂに切り替える。
【０２２４】
次いで、コード割り当て部１６３は、切り替えた可変長符号テーブル１６４１ｂを用いて次の係数の絶対値｜Ｌ｜＝「２」、「３」、「３１」をこの順番に２値コード「１１」、「０１００」、「００００１０００００」にそれぞれ符号化する。そして、係数の絶対値｜Ｌ｜＝「３１」のコード化の際にしきい値「７」を超えたので、コード割り当て部１６３は、符号化に使用するテーブルをテーブル番号ｋ＝２の可変長符号テーブル１６４１ｃに切り替える。
【０２２５】
さらに、コード割り当て部１６３は、切り替えた可変長符号テーブル１６４１ｃを用いて次の係数の絶対値｜Ｌ｜＝「２２」を２値化コード「００１１００１」に符号化する。そして、係数の絶対値｜Ｌ｜＝「２２」のコード化の際にしきい値「１３」を超えたので、コード割り当て部１６３は、符号化に使用するテーブルをテーブル番号ｋ＝３の可変長符号テーブル１６４１ｄに切り替える。
【０２２６】
次いで、コード割り当て部１６３は、切り替えた可変長符号テーブル１６４１ｄを用いて次の係数の絶対値｜Ｌ｜＝「５」、「９」、「３８」をこの順番に可変長符号テーブル１６４１ｄを用いて２値コード「１１００」、「０１００００」、「００１０１１０１」にそれぞれ符号化する。
【０２２７】
これによって、バッファには、２値化コード「１１０１００１１００１０００００１１００１１０１００００００１０００００００１１００１１１０００１００００００１０１１０１」が格納される。
【０２２８】
なお、このバッファには符号化されたＬ列の係数の個数ｍや、係数の正負号、Ｒ列のＲ値２値化コードも格納されており、バッファに格納された符号化されたＬ列の係数の個数ｍ、係数の絶対値｜Ｌ｜の２値化コード、係数の正負号、Ｒ列のＲ値２値化コードは、ＣＤ等の記録媒体や、インターネット、衛星放送等の伝送媒体を介して復号化装置に送られる。
【０２２９】
ここで、上記Ｌ列の係数の絶対値｜Ｌ｜「１」、「１」、「２」、「３」、「４」、「１２」、「２」、「３」、「３１」、「２２」、「５」、「９」、「３８」を可変長符号テーブル１６４１ａだけで符号化した場合を想定すると、その２値化コードは「１」、「１」、「０１０」、「０１１」、「００１００」、「０００１１００」、「０１０」、「０１１」、「００００１１１１１」、「００００１０１１０」、「００１０１」、「００１００１」、「０００００１００１１０」となり、６４ビットの符号長となる。
【０２３０】
これに対して、本実施の形態５の符号化方法では、ブロック内の係数の絶対値｜Ｌ｜の最大値が比較的低く、しかも係数の絶対値｜Ｌ｜が徐々に上昇しない場合であっても、６１ビットの符号長となり、符号化効率を上げることができる。これは、係数の絶対値｜Ｌ｜が例えば「２２」、「３８」である場合、可変長符号テーブル１６４１ａだけでは、「００００１０１１０」の９ビット、「０００００１００１１０」の１１ビットをそれぞれ要するのに対して、本方式では「００１１００１」の７ビット、「００１０１１０１」の８ビットですむことが大きく寄与している。したがって、通常のブロック内の係数の絶対値｜Ｌ｜の最大値が比較的高く、係数の絶対値｜Ｌ｜が徐々に上昇する場合にあっては、符号化効率を飛躍的に上げることができる。
【０２３１】
なお、上記実施の形態５においては、直前の係数の絶対値｜Ｌ｜がしきい値を超えると（Ｓ１０９でＹｅｓ）、テーブル番号ｋを１つインクリメントし（Ｓ１１０）、次の番号の可変長符号テーブルを用いて符号化するようにしたが（図２８参照）、しきい値を超えた直前の係数の絶対値｜Ｌ｜によって、その係数の絶対値｜Ｌ｜に適応した可変長符号テーブルに跳んで切り替えるようにしてもよい。つまり、例えば番号ｋ＝１のテーブルを参照して符号化する直前の係数の絶対値｜Ｌ｜が「２０」である場合、その次の係数の絶対値｜Ｌ｜が「２０」より大きくなる可能性が高いので、その次の係数の絶対値｜Ｌ｜の符号化にはｋ＝３のテーブルを参照して符号化するようにしてもよい。この場合には、しきい値もその可変長符号テーブルに合致したしきい値（例えば、２５）をセットすればよい。
【０２３２】
また、可変長符号テーブルを８つ用いる場合について説明したが、これは可変長符号テーブルを２つ〜７つ、または８つ以上用い、複数のしきい値を用いて、各しきい値を超える度に可変長符号テーブルを切り替えるようにしても良い。
【０２３３】
また、本実施の形態５では、係数値を絶対値と正負符号とに分けて符号化し、係数値の絶対値用の各可変長符号テーブルを正負符号なし（絶対値）で構成したが、係数値を正負号付きで符号化してもよく、その場合には２値化コードを正負符号付きで構成すればよい。この場合には、例えば可変長符号のＬＳＢビットに正負符号を１ビット付加すればよい。
【０２３４】
また、本実施の形態５では、フレーム内符号化により画像を符号化する場合について説明したが、これは動画像入力に対して動き補償等を用いてフレーム間符号化をする場合であっても良く、本実施の形態の方法により、同様の効果が得られる。
【０２３５】
また、本実施の形態５では、入力画像を水平４画素、垂直４画素のブロックに分割する場合について説明したが、ブロックの大きさは他の大きさであっても良い。
【０２３６】
また、本実施の形態５では、ブロック内の走査方法として図３（ｂ）を用いて説明したが、これは低周波数域から高周波数域への走査であれば他の走査順序であっても良い。
【０２３７】
また、本実施の形態５では、可変長符号テーブルの例として図２５を用いて説明したが、これは他のテーブルであっても良い。
【０２３８】
また、本実施の形態５では、これはＬ列の最初にＬ値の個数を付加する場合について説明したが、Ｌ列の最後にＥＯＢを付加しても良い。
【０２３９】
（実施の形態６）
図３０は、本発明の実施の形態に係る可変長復号化方法およびこれを用いた動画像復号化方法が適用される復号化装置の機能構成を示すブロック図である。なお、ここでは、実施の形態５で説明した本発明の可変長符号化方法により生成された符号列が入力されるものとして説明する。
【０２４０】
図３０に示されるように、復号化装置５００ｃは、可変長復号化部５６０と、逆量子化部５２０と、逆周波数変換部５３０と、フレームメモリ５４０とから構成される。なお、このような復号化装置５００ｃを構成する各部は、符号化装置１００ｃと同様にＣＰＵ、ＣＰＵによって実行されるプログラムやデータを予め格納するＲＯＭ、プログラム実行の際にワークエリアを提供したり、入力符号化列等を一時的に格納するメモリ等により実現される。また、逆量子化部５２０と、逆周波数変換部５３０と、フレームメモリ５４０とは、上記復号化装置５００ａ，５００ｂの場合と同じであるのでその説明を省略し、可変長復号化部５６０の構成を詳述する。
【０２４１】
可変長復号化部５６０は、コード変換部５６１と、テーブル記憶部５６２と、係数生成部５６４とから構成される。
【０２４２】
テーブル記憶部５６２は、可変長符号と係数の絶対値｜Ｌ｜とを対応付けた複数種類（８つ）の可変長符号（復号）テーブル５６２１ａ〜５６２１ｇと、しきい値テーブル５６２２等とを予め保持する。なお、この可変長符号テーブル５６２１ａ〜５６２１ｇは図２５に示される可変長符号テーブル１６４１ａ〜１６４１ｇとそれぞれ同じに構成され、しきい値テーブル５６２２は図２６に示されるしきい値テーブル１６４２と同じに構成される。
【０２４３】
コード変換部５６１は、テーブル記憶部５６２に保持されているテーブル（可変長符号テーブル５６２１ａ〜５６２１ｇ、しきい値テーブル５６２２等）を用いて、入力された符号列に対して、可変長符号からＬ列の係数の個数ｍ、係数の絶対値｜Ｌ｜、Ｒ列のＲ値への変換を行う。係数の絶対値｜Ｌ｜への変換は、可変長符号テーブル５６２１ａ〜５６２１ｇを用いて行う。
【０２４４】
係数生成部５６４は、入力されたＬ列とＲ列とに基づいて係数値に変換し、所定の走査方法で二次元化する。この係数値への変換の際には、所定の走査順序に基づいて、Ｒで示された値だけ係数値「０」を生成し、その次にＬで示された値の係数値を生成する、を繰り返すことにより、Ｌ列とＲ列から係数値への変換を行う。ここでは、低周波数領域から高周波数領域に向かってジグザグに走査するとすると、上記した図１１に示される係数ブロックに変換されることになる。生成された係数ブロックは逆量子化部５２０に入力される。
【０２４５】
次いで、可変長復号化部５６０の各部における復号化動作を説明する。
【０２４６】
なお、ここではコード変換部５６１に入力された２値化コード入力符号列の符号が先頭から順番に「１」、「１」、「０１０」、「０１１」、「００１００」、「０００１１００」、「１１」、「０１００」、「００００１０００００」、「００１１００１」、「１１００」、「０１００００」、「００１０１１０１」であるものとして説明する。
【０２４７】
コード変換部５６１は、可変長符号の復号化を開始するに当たり、符号化装置１００ｃから出力された係数の個数ｍを復号化し、復号化した係数の個数ｍをセットする。次いで、コード変換部５６１は、参照する可変長符号テーブルの初期値としてテーブル番号ｋに「０」をセットする。次いで、コード割り当て部１６３は、しきい値テーブル５６２２を参照し、しきい値＝４をセットする（Ｓ１０３）。係数の個数ｍ、可変長符号テーブルの参照先（この場合、可変長符号テーブル５６２１ａ）およびしきい値の設定が終わると、コード変換部５６１は、符号化装置１００ｃから出力された順番に係数の絶対値｜Ｌ｜を前（すなわち、高周波側）から読み出し、セットされた番号の可変長符号テーブルを用いて読み出した可変長符号を係数の絶対値｜Ｌ｜に可変長復号化する。そして、復号化が終わると、コード変換部５６１は、復号化によって得られた係数の絶対値｜Ｌ｜を不図示のバッファ（例えば、ＦＩＬＯバッファ）に格納し、係数の個数ｍを「１」デクリメントし、デクリメント後の個数ｍが「０」か否か、すなわちＬ列に含まれる係数のすべてを復号化し終わったか否か判断する。
【０２４８】
係数の個数ｍが「０」でなければ、可変長復号化した直前の係数の絶対値｜Ｌ｜がしきい値を超えたか否か判断する。超えていなければ、コード変換部５６１は、次の可変長符号を前ろから読み出し、前と同じ可変長符号テーブルを用いて係数の絶対値｜Ｌ｜に復号化する。
【０２４９】
可変長復号化した直前の係数の絶対値｜Ｌ｜がしきい値を超えた場合、コード変換部５６１は、テーブル番号ｋを「１」インクリメントする。これによって、次の係数の絶対値｜Ｌ｜の符号化の際には、符号長の変化率がより少ない、符号長の長い係数の絶対値｜Ｌ｜の符号化に適した可変長符号テーブル（例えば、前の可変長符号テーブルが５６２１ａであれば、５６２１ｂ）が参照されることになる。テーブル番号ｋのインクリメントが終わると、コード変換部５６１は、しきい値テーブル５６２２を参照し、次のしきい値に更新する（例えば、前のしきい値が「４」であれば「７」）。これによって、係数の絶対値｜Ｌ｜が新たなしきい値を超えた場合にだけ、符号長の変化率がより少ない、符号長の長い係数の可変長符号の復号化に適した次の可変長符号テーブルに遷移させることができる。
【０２５０】
より詳しくは、１番目の可変長符号に対しては、ｋ＝０の可変長符号テーブル５６２１ａを参照する。今、可変長テーブル５６２１ａを参照した場合、入力符号列に一致するのは、可変長符号「１」であり、この場合の係数の絶対値｜Ｌ｜は「１」となる。同様にして、可変長符号テーブル５６２１ａを用いて、可変長符号から係数の絶対値｜Ｌ｜への変換を順に行っていくと、可変長符号「１」が係数の絶対値｜Ｌ｜＝「１」に、可変長符号「０１０」が係数の絶対値｜Ｌ｜＝「３」に、可変長符号「００１００」が係数の絶対値｜Ｌ｜＝「４」に、可変長符号「０００１１００」が係数の絶対値｜Ｌ｜＝「１２」にそれぞれ変換される。
【０２５１】
ここで係数の絶対値｜Ｌ｜に対するしきい値を「４」とすると、６番目の係数の絶対値｜Ｌ｜＝「１２」でしきい値を超えることになる。したがって、コード変換部５６１は、以降の可変長符号の係数の絶対値｜Ｌ｜への変換では、ｋ＝１である次の可変長符号テーブル５６２１ｂを用い、しきい値に７を設定し、係数の絶対値｜Ｌ｜に変換する。よって、次の７番目の可変長符号「１１」は、係数の絶対値｜Ｌ｜＝「２」に変換される。
【０２５２】
次の８番目の可変長符号「０１００」は係数の絶対値｜Ｌ｜＝「３」に、９番目の可変長符号「００００１００００」は係数の絶対値｜Ｌ｜＝「３１」に、それぞれ変換される。ここで係数の絶対値｜Ｌ｜に対するしきい値を「７」とすると、９番目の係数の絶対値｜Ｌ｜＝「３１」でしきい値を超えることになる。したがって、コード変換部５６１は、以降の可変長符号の係数の絶対値｜Ｌ｜への変換では、ｋ＝２である次の可変長符号テーブル５６２１ｂを用い、しきい値に１３を設定し、係数の絶対値｜Ｌ｜に変換する。なお、７番目の係数の絶対値｜Ｌ｜への復号化において得られた係数の絶対値｜Ｌ｜が再びしきい値７以下となっても、可変長符号テーブル５６２１ａへの切り替えは行わず、可変長符号テーブル５６２１ｂを用いて変換を行う。
【０２５３】
以上のような処理を繰り返して、１ブロック分（ｍ個）の係数の絶対値｜Ｌ｜が生成されると、それらはＦＩＬＯバッファによる先入れ後出しによって逆順に並べ替えられる。また、係数の正負号についても、ＦＩＬＯバッファによる先入れ後出しによって逆順に並べ替えられる。ただし、個数は並べ替えの対象からは除外する。ここでは、図２４（ａ）に示されるＬ列と同じ順序（すなわち、低周波から高周波に向かう順序）の列が生成されたとする。このように並べ替えられたＬ列の各係数の絶対値｜Ｌ｜は係数生成部５６４に入力される。なお、コード変換部５６１は、Ｒ列の各Ｒについても係数の絶対値｜Ｌ｜と同様な処理によって復号化し、図２４（ａ）に示されるＲ列を係数生成部５６４に出力する。
【０２５４】
係数生成部５６４は、入力されたＬ列とＲ列とに基づいて、係数値に変換する。この際には、所定の走査順序に基づいて、Ｒで示された値だけ係数値「０」を生成し、その次にＬで示された値の係数値を正負符号を付加して生成する、を繰り返すことにより、Ｌ列とＲ列とから係数値への変換を行う。ここでは、図１１に示されるように低周波数領域から高周波数領域に向かってジグザグに走査するとすると、図２４（ａ）に示されるＬ列と図２４に示されるＲ列とは係数ブロックに変換されることになる。生成された係数ブロックは逆量子化部５２０に入力される。
【０２５５】
以上のように、本発明の実施の形態６に係る可変長復号化方法は、まず、復号化ステップにおいて、復号化に用いる複数の可変長符号（復号）テーブルを一方向に切り替えつつ、切り替えた可変長符号テーブルを用いて前記符号列の可変長符号を所定の順番に周波数領域に係る「０」以外の係数値に復号化する。次いで、係数値変換ステップにおいて、生成された係数値に基づいてブロック内の係数値に変換する。ここで、各前記テーブルは、最小の係数値における符号長が各前記テーブルにそれぞれ付与される番号の順番に長くなり、最大の係数値における符号長が前記番号の順番に短くなるように係数値に対する符号長の変化率を異ならせて構成される。
【０２５６】
また、前記しきい値は、係数値に対応する符号長が他のテーブルよりも短くなる各テーブルの適応特性に基づいて設定される。前記符号列の可変長符号は高周波成分から低周波成分に向かう順序で並べられ、前記復号化ステップは、前記符号列の並びの順番に係数値に復号化し、復号化した係数値を符号列の並びの後ろから順番に出力することにより係数値の係数値列を生成し、前記係数生成ステップは、前記係数値列の並びの順序で係数値を走査する。
【０２５７】
前記符号化ステップは、復号化された係数の絶対値がしきい値を超えると、復号化対象の可変長符号の復号化に用いたテーブルから当該テーブルに付与された番号より番号の大きなテーブルに切り替えて次の可変長符号を係数値に復号化する。
【０２５８】
以上の動作により、本発明の可変長復号化方法を用いることにより、本発明の可変長符号化方法を用いて符号化された符号列を正しく復号化することが可能となる。
【０２５９】
なお、上記実施の形態６においては、実施の形態５の場合にあわせて、と同様に復号化された直前の係数の絶対値｜Ｌ｜がしきい値を超えると、テーブル番号ｋを１つインクリメントし、次の番号の可変長符号テーブルを用いて復号化するようにしたが、符号化の際に用いたテーブルの切り替え方法と同じであれば、しきい値を超えた直前の係数の絶対値｜Ｌ｜によって、その係数の絶対値｜Ｌ｜に適応した可変長符号テーブルに跳んで切り替えるようにしてもよい。この場合には、しきい値もその可変長符号テーブルに合致したしきい値をセットすればよい。
【０２６０】
また、本実施の形態６では、可変長符号テーブルの例として図２５を用いて説明したが、これは符号化の際に用いたテーブルと同じであれば、他のテーブルであっても良い。また、可変長符号テーブルを８つ用いる場合について説明したが、これは可変長符号テーブルを２つ〜６つ、あるいは８つ以上用い、複数のしきい値を用いて、各しきい値を超える度に可変長符号テーブルを切り替えるようにしても良い。ただし、この際の可変長テーブルの構成およびしきい値は、符号化の際に用いたものと同じでなければならない。
【０２６１】
また、本実施の形態６では、係数値を絶対値と正負符号とに分けて符号化し、係数値の絶対値用の各可変長符号テーブルを正負符号なし（絶対値）で構成したが、係数値を正負号付きで符号化してもよく、その場合には２値化コードを正負符号付きで構成してもよい。この場合には、例えば可変長符号のＬＳＢビットに正負符号を１ビット付加すればよい。
【０２６２】
また、本実施の形態６では、Ｌの値がしきい値を超えた場合に、可変長符号テーブルを切り替えるようにしたが、係数の絶対値｜Ｌ｜の大きい順番（すなわち、高周波側からの順番）に復号化する場合には、番号の大きい可変長符号テーブルを用いて復号化し、復号化した係数の絶対値｜Ｌ｜がしきい値未満になった場合に、番号の小さい可変長符号テーブルに切り替えるようにしてもよい。
【０２６３】
また、本実施の形態６では、フレーム内符号化により生成された符号列を復号化する場合について説明したが、これは動画像入力に対して動き補償等を用いてフレーム間符号化をして生成された符号列を復号化する場合であっても良く、本実施の形態の方法により、同様の効果が得られる。
【０２６４】
また、本実施の形態６では、入力画像が水平４画素、垂直４画素のブロックに分割されて符号化されている場合について説明したが、ブロックの大きさは他の大きさであっても良い。
【０２６５】
また、本実施の形態６では、ブロック内の走査方法として図１１を用いて説明したが、これは符号化の際に用いた走査方法と同じであれば、他の走査順序であっても良い。
【０２６６】
（実施の形態７）
次に、本発明に係る可変長符号化方法、可変長復号化方法、可変長符号化装置、可変長復号化装置、動画像符号化方法、動画像復号化方法、動画像符号化装置および動画像復号化装置を別の形態で実現した例について説明する。
【０２６７】
上記各実施の形態で示した符号化装置または復号化装置の構成を実現するためのプログラムを、フレキシブルディスク等の記憶媒体に記録するようにすることにより、上記各実施の形態で示した処理を、独立したコンピュータシステムにおいて簡単に実施することが可能となる。
【０２６８】
図３２は、上記実施の形態１，３，５の動画像符号化方法または実施の形態２，４，６の動画像復号化方法の処理を行うためのプログラムを格納したフレキシブルディスクを用いて、コンピュータシステムにより実施する場合の説明図である。
【０２６９】
図３２（ｂ）は、フレキシブルディスクの正面からみた外観、断面構造、およびフレキシブルディスクを示し、図３２（ａ）は、記録媒体本体であるフレキシブルディスクの物理フォーマットの例を示している。フレキシブルディスクＦＤはケースＦ内に内蔵され、該ディスクの表面には、同心円状に外周からは内周に向かって複数のトラックＴｒが形成され、各トラックは角度方向に１６のセクタＳｅに分割されている。したがって、上記プログラムを格納したフレキシブルディスクでは、上記フレキシブルディスクＦＤ上に割り当てられた領域に、上記プログラムとしての動画像符号化装置が記録されている。
【０２７０】
また、図３２（ｃ）は、フレキシブルディスクＦＤに上記プログラムの記録再生を行うための構成を示す。上記プログラムをフレキシブルディスクＦＤに記録する場合は、コンピュータシステムＣｓから上記プログラムとしての動画像符号化装置または動画像復号化装置をフレキシブルディスクドライブを介して書き込む。また、フレキシブルディスク内のプログラムにより上記動画像符号化装置をコンピュータシステム中に構築する場合は、フレキシブルディスクドライブによりプログラムをフレキシブルディスクから読み出し、コンピュータシステムに転送する。
【０２７１】
なお、上記説明では、記録媒体としてフレキシブルディスクを用いて説明を行ったが、光ディスクを用いても同様に行うことができる。また、記録媒体はこれに限らず、ＩＣカード、ＲＯＭカセット等、プログラムを記録できるものであれば同様に実施することができる。
【０２７２】
さらにここで、上記実施の形態で示した動画像予測方法、動画像符号化装置、動画像復号化装置の応用例とそれを用いたシステムを説明する。
【０２７３】
図３３は、コンテンツ配信サービスを実現するコンテンツ供給システムex１００の全体構成を示すブロック図である。通信サービスの提供エリアを所望の大きさに分割し、各セル内にそれぞれ固定無線局である基地局ex１０７〜ex１１０が設置されている。
【０２７４】
このコンテンツ供給システムex１００は、例えば、インターネットex１０１にインターネットサービスプロバイダex１０２および電話網ex１０４、および基地局ex１０７〜ex１１０を介して、コンピュータex１１１、ＰＤＡ（personal digital assistant）ex１１２、カメラex１１３、携帯電話ex１１４、カメラ付きの携帯電話ex１１５などの各機器が接続される。
【０２７５】
しかし、コンテンツ供給システムex１００は図３３のような組み合せに限定されず、いずれかを組み合わせて接続するようにしてもよい。また、固定無線局である基地局ex１０７〜ex１１０を介さずに、各機器が電話網ex１０４に直接接続されてもよい。
【０２７６】
カメラex１１３はデジタルビデオカメラ等の動画撮影が可能な機器である。また、携帯電話は、ＰＤＣ（Personal Digital Communications）方式、ＣＤＭＡ（Code Division Multiple Access）方式、Ｗ−ＣＤＭＡ（Wideband-Code Division Multiple Access）方式、若しくはＧＳＭ（Global System for Mobile Communications）方式の携帯電話機、またはＰＨＳ（Personal Handyphone System）等であり、いずれでも構わない。
【０２７７】
また、ストリーミングサーバex１０３は、カメラex１１３から基地局ex１０９、電話網ex１０４を通じて接続されており、カメラex１１３を用いてユーザが送信する符号化処理されたデータに基づいたライブ配信等が可能になる。撮影したデータの符号化処理はカメラex１１３で行っても、データの送信処理をするサーバ等で行ってもよい。
【０２７８】
また、カメラ１１６で撮影した動画データはコンピュータex１１１を介してストリーミングサーバex１０３に送信されてもよい。カメラex１１６はデジタルカメラ等の静止画、動画が撮影可能な機器である。この場合、動画データの符号化はカメラex１１６で行ってもコンピュータex１１１で行ってもどちらでもよい。また、符号化処理はコンピュータex１１１やカメラex１１６が有するＬＳＩex１１７において処理することになる。なお、画像符号化・復号化用のソフトウェアをコンピュータex１１１等で読み取り可能な記録媒体である何らかの蓄積メディア（ＣＤ−ＲＯＭ、フレキシブルディスク、ハードディスクなど）に組み込んでもよい。さらに、カメラ付きの携帯電話ex１１５で動画データを送信してもよい。このときの動画データは携帯電話ex１１５が有するＬＳＩで符号化処理されたデータである。
【０２７９】
このコンテンツ供給システムex１００では、ユーザがカメラex１１３、カメラex１１６等で撮影しているコンテンツ（例えば、音楽ライブを撮影した映像等）を上記実施の形態同様に符号化処理してストリーミングサーバex１０３に送信する一方で、ストリーミングサーバex１０３は要求のあったクライアントに対して上記コンテンツデータをストリーム配信する。クライアントとしては、上記符号化処理されたデータを復号化することが可能な、コンピュータex１１１、ＰＤＡex１１２、カメラex１１３、携帯電話ex１１４等がある。このようにすることでコンテンツ供給システムex１００は、符号化されたデータをクライアントにおいて受信して再生することができ、さらにクライアントにおいてリアルタイムで受信して復号化し、再生することにより、個人放送をも実現可能になるシステムである。
【０２８０】
このシステムを構成する各機器の符号化、復号化には上記各実施の形態で示した画像符号化装置あるいは画像復号化装置を用いるようにすればよい。
【０２８１】
その一例として携帯電話について説明する。
【０２８２】
図３４は、上記実施の形態で説明した動画像予測方法、動画像符号化装置および画像復号化装置を用いた携帯電話ex１１５を示す図である。携帯電話ex１１５は、基地局ex１１０との間で電波を送受信するためのアンテナex２０１、ＣＣＤカメラ等の映像、静止画を撮ることが可能なカメラ部ex２０３、カメラ部ex２０３で撮影した映像、アンテナex２０１で受信した映像等が復号化されたデータを表示する液晶ディスプレイ等の表示部ex２０２、操作キーex２０４群から構成される本体部、音声出力をするためのスピーカ等の音声出力部ex２０８、音声入力をするためのマイク等の音声入力部ex２０５、撮影した動画もしくは静止画のデータ、受信したメールのデータ、動画のデータもしくは静止画のデータ等、符号化されたデータまたは復号化されたデータを保存するための記録メディアex２０７、携帯電話ex１１５に記録メディアex２０７を装着可能とするためのスロット部ex２０６を有している。記録メディアex２０７はＳＤカード等のプラスチックケース内に電気的に書換えや消去が可能な不揮発性メモリであるＥＥＰＲＯＭ（Electrically Erasable and Programmable Read Only Memory）の一種であるフラッシュメモリ素子を格納したものである。
【０２８３】
さらに、携帯電話ex１１５について図３５を用いて説明する。携帯電話ex１１５は表示部ex２０２および操作キーex２０４を備えた本体部の各部を統括的に制御するようになされた主制御部ex３１１に対して、電源回路部ex３１０、操作入力制御部ex３０４、画像符号化部ex３１２、カメラインターフェース部ex３０３、ＬＣＤ（Liquid Crystal Display）制御部ex３０２、画像復号化部ex３０９、多重分離部ex３０８、記録再生部ex３０７、変復調回路部ex３０６および音声処理部ex３０５が同期バスex３１３を介して互いに接続されている。
【０２８４】
電源回路部ex３１０は、ユーザの操作により終話および電源キーがオン状態にされると、バッテリパックから各部に対して電力を供給することによりカメラ付デジタル携帯電話ex１１５を動作可能な状態に起動する。
【０２８５】
携帯電話ex１１５は、ＣＰＵ、ＲＯＭおよびＲＡＭ等でなる主制御部ex３１１の制御に基づいて、音声通話モード時に音声入力部ex２０５で集音した音声信号を音声処理部ex３０５によってデジタル音声データに変換し、これを変復調回路部ex３０６でスペクトラム拡散処理し、送受信回路部ex３０１でデジタルアナログ変換処理および周波数変換処理を施した後にアンテナex２０１を介して送信する。また携帯電話機ex１１５は、音声通話モード時にアンテナex２０１で受信した受信信号を増幅して周波数変換処理およびアナログデジタル変換処理を施し、変復調回路部ex３０６でスペクトラム逆拡散処理し、音声処理部ex３０５によってアナログ音声信号に変換した後、これを音声出力部ex２０８を介して出力する。
【０２８６】
さらに、データ通信モード時に電子メールを送信する場合、本体部の操作キーex２０４の操作によって入力された電子メールのテキストデータは操作入力制御部ex３０４を介して主制御部ex３１１に送出される。主制御部ex３１１は、テキストデータを変復調回路部ex３０６でスペクトラム拡散処理し、送受信回路部ex３０１でデジタルアナログ変換処理および周波数変換処理を施した後にアンテナex２０１を介して基地局ex１１０へ送信する。
【０２８７】
データ通信モード時に画像データを送信する場合、カメラ部ex２０３で撮像された画像データをカメラインターフェース部ex３０３を介して画像符号化部ex３１２に供給する。また、画像データを送信しない場合には、カメラ部ex２０３で撮像した画像データをカメラインターフェース部ex３０３およびＬＣＤ制御部ex３０２を介して表示部ex２０２に直接表示することも可能である。
【０２８８】
画像符号化部ex３１２は、本願発明で説明した画像符号化装置を備えた構成であり、カメラ部ex２０３から供給された画像データを上記実施の形態で示した画像符号化装置に用いた符号化方法によって圧縮符号化することにより符号化画像データに変換し、これを多重分離部ex３０８に送出する。また、このとき同時に携帯電話機ex１１５は、カメラ部ex２０３で撮像中に音声入力部ex２０５で集音した音声を音声処理部ex３０５を介してデジタルの音声データとして多重分離部ex３０８に送出する。
【０２８９】
多重分離部ex３０８は、画像符号化部ex３１２から供給された符号化画像データと音声処理部ex３０５から供給された音声データとを所定の方式で多重化し、その結果得られる多重化データを変復調回路部ex３０６でスペクトラム拡散処理し、送受信回路部ex３０１でデジタルアナログ変換処理および周波数変換処理を施した後にアンテナex２０１を介して送信する。
【０２９０】
データ通信モード時にホームページ等にリンクされた動画像ファイルのデータを受信する場合、アンテナex２０１を介して基地局ex１１０から受信した受信信号を変復調回路部ex３０６でスペクトラム逆拡散処理し、その結果得られる多重化データを多重分離部ex３０８に送出する。
【０２９１】
また、アンテナex２０１を介して受信された多重化データを復号化するには、多重分離部ex３０８は、多重化データを分離することにより画像データの符号化ビットストリームと音声データの符号化ビットストリームとに分け、同期バスex３１３を介して当該符号化画像データを画像復号化部ex３０９に供給すると共に当該音声データを音声処理部ex３０５に供給する。
【０２９２】
次に、画像復号化部ex３０９は、本願発明で説明した画像復号化装置を備えた構成であり、画像データの符号化ビットストリームを上記実施の形態で示した符号化方法に対応した復号化方法で復号することにより再生動画像データを生成し、これをＬＣＤ制御部ex３０２を介して表示部ex２０２に供給し、これにより、例えばホームページにリンクされた動画像ファイルに含まれる動画データが表示される。このとき同時に音声処理部ex３０５は、音声データをアナログ音声信号に変換した後、これを音声出力部ex２０８に供給し、これにより、例えばホームページにリンクされた動画像ファイルに含まる音声データが再生される。
【０２９３】
なお、上記システムの例に限られず、最近は衛星、地上波によるデジタル放送が話題となっており、図３６に示すようにデジタル放送用システムにも上記実施の形態の少なくとも画像符号化装置または画像復号化装置のいずれかを組み込むことができる。具体的には、放送局ex４０９では映像情報の符号化ビットストリームが電波を介して通信または放送衛星ex４１０に伝送される。これを受けた放送衛星ex４１０は、放送用の電波を発信し、この電波を衛星放送受信設備をもつ家庭のアンテナex４０６で受信し、テレビ（受信機）ex４０１またはセットトップボックス（ＳＴＢ）ex４０７などの装置により符号化ビットストリームを復号化してこれを再生する。
【０２９４】
また、記録媒体であるCDやDVD等の蓄積メディアex４０２に記録した符号化ビットストリームを読み取り、復号化する再生装置ex４０３にも上記実施の形態で示した画像復号化装置を実装することが可能である。この場合、再生された映像信号はモニタex４０４に表示される。また、ケーブルテレビ用のケーブルex４０５または衛星／地上波放送のアンテナex４０６に接続されたセットトップボックスex４０７内に画像復号化装置を実装し、これをテレビのモニタex４０８で再生する構成も考えられる。このときセットトップボックスではなく、テレビ内に画像復号化装置を組み込んでも良い。また、アンテナex４１１を有する車ex４１２で衛星ex４１０からまたは基地局ex１０７等から信号を受信し、車ex４１２が有するカーナビゲーションex４１３等の表示装置に動画を再生することも可能である。
【０２９５】
さらに、画像信号を上記実施の形態で示した画像符号化装置で符号化し、記録媒体に記録することもできる。具体例としては、DVDディスクex４２１に画像信号を記録するDVDレコーダや、ハードディスクに記録するディスクレコーダなどのレコーダｅx４２０がある。さらにSDカードex４２２に記録することもできる。レコーダex４２０が上記実施の形態で示した画像復号化装置を備えていれば、DVDディスクex４２１やSDカードex４２２に記録した画像信号を再生し、モニタex４０８で表示することができる。
【０２９６】
なお、カーナビゲーションex４１３の構成は例えば図３６に示す構成のうち、カメラ部ex２０３とカメラインターフェース部ex３０３、画像符号化部ex３１２を除いた構成が考えられ、同様なことがコンピュータex１１１やテレビ（受信機）ex４０１等でも考えられる。
【０２９７】
また、上記携帯電話ex１１４等の端末は、符号化器・復号化器を両方持つ送受信型の端末の他に、符号化器のみの送信端末、復号化器のみの受信端末の３通りの実装形式が考えられる。
【０２９８】
このように、上記実施の形態で示した可変長符号化方法、可変長復号化方法、これらの方法を用いた可変長符号化装置、可変長復号化装置、動画像符号化方法、動画像復号化方法、動画像符号化装置および画像復号化装置を上述したいずれの機器・システムに用いることは可能であり、そうすることで、上記実施の形態で説明した効果を得ることができる。
【０２９９】
なお、本発明のすべての実施の形態について、本発明はかかる上記実施形態に限定されるものではなく、本発明の範囲を逸脱することなく種々の変形または修正が可能である。
【０３００】
また、上記実施の形態１〜６の可変長符号化装置、可変長復号化装置においては係数値を低周波成分から高周波成分に向かう順序で走査するようにしたが、本発明の変形例として、係数値を高周波成分から低周波成分に向かう順序で走査するように構成してもよい。この場合には、係数値の並び替え等の処理を省略することができる。
【産業上の利用可能性】
【０３０１】
本発明の可変長復号化方法等は、動画像を圧縮符号化するコンピュータシステムや、携帯電話等に適用することができる。
【符号の説明】
【０３０２】
１００ｃ                符号化装置
１１０                  ブロック変換部
１２０                  周波数変換部
１３０                  量子化部
１６０                  可変長符号化部
１６１                  Ｒ列・Ｌ列生成部
１６３                  コード割り当て部
１６４                  テーブル記憶部
５００ｃ                復号化装置
５６０                  可変長復号化部
５６１                  コード変換部
５６２                  テーブル記憶部
５６４                  係数生成部
５２０                  逆量子化部
５３０                  逆周波数変換部
５４０                  フレームメモリ
１６４１ａ〜１６４１ｇ  可変長符号テーブル
１６４２                しきい値テーブル
【図１】
2010141918.tif 000003
【図２】
2010141918.tif 000004
【図３】
2010141918.tif 000005
【図４】
2010141918.tif 000006
【図５】
2010141918.tif 000007
【図６】
2010141918.tif 000008
【図７】
2010141918.tif 000009
【図８】
2010141918.tif 000010
【図９】
2010141918.tif 000011
【図１０】
2010141918.tif 000012
【図１１】
2010141918.tif 000013
【図１２】
2010141918.tif 000014
【図１３】
2010141918.tif 000015
【図１４】
2010141918.tif 000016
【図１５】
2010141918.tif 000017
【図１６】
2010141918.tif 000018
【図１７】
2010141918.tif 000019
【図１８】
2010141918.tif 000020
【図１９】
2010141918.tif 000021
【図２０】
2010141918.tif 000022
【図２１】
2010141918.tif 000023
【図２２】
2010141918.tif 000024
【図２３】
2010141918.tif 000025
【図２４】
2010141918.tif 000026
【図２５】
2010141918.tif 000027
【図２６】
2010141918.tif 000028
【図２７】
2010141918.tif 000029
【図２８】
2010141918.tif 000030
【図２９】
2010141918.tif 000031
【図３０】
2010141918.tif 000032
【図３１】
2010141918.tif 000033
【図３２】
2010141918.tif 000034
【図３３】
2010141918.tif 000035
【図３４】
2010141918.tif 000036
【図３５】
2010141918.tif 000037
【図３６】
2010141918.tif 000038