(57)【要約】【課題】画像を異なる大きさのブロックに分割して符号化する際に、可変長符号化の符号化効率を向上させる。【解決手段】符号列生成部１０４では、符号化対象ブロックの係数の個数を符号化する際に、周辺ブロックの係数の個数を参照し、可変長符号化テーブルを切り替える。符号化対象ブロックと周辺ブロックの大きさが異なる場合には、符号化対象ブロックと周辺ブロックとの大きさを一致させるように、周辺ブロックの係数の個数を変換する。【選択図】図１
2008259224.tif 000002
【特許請求の範囲】
【請求項１】
画像を複数のブロックに分割し、前記ブロックを単位として符号化を行う際に用いる可変長符号化方法であって、
符号化対象ブロックの情報を符号化する際に用いる可変長符号化テーブルを、前記符号化対象ブロックの周辺ブロックの情報に応じて決定し、前記符号化対象ブロックと前記周辺ブロックとの大きさが異なる際には、前記周辺ブロックの情報を前記符号化対象ブロックの大きさに変換して使用することを特徴とする可変長符号化方法。
【請求項２】
前記情報はブロックの有意係数の個数であることを特徴とする請求項１記載の可変長符号化方法。
【請求項３】
画像を複数のブロックに分割し、前記ブロックを単位として復号化を行う際に用いる可変長復号化方法であって、
復号化対象ブロックの情報を復号化する際に用いる可変長復号化テーブルを、前記復号化対象ブロックの周辺ブロックの情報に応じて決定し、前記復号化対象ブロックと前記周辺ブロックとの大きさが異なる際には、前記周辺ブロックの情報を前記復号化対象ブロックの大きさに変換して使用することを特徴とする可変長復号化方法。
【請求項４】
前記情報はブロックの有意係数の個数であることを特徴とする請求項３記載の可変長復号化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画像信号を圧縮伸張する際の、可変長符号化方法および可変長復号化方法に関する。
【背景技術】
【０００２】
現在標準化作業が行われているＨ．２６４符号化方式では、可変長符号化方法として、コンテキスト適応型可変長符号化（以下ＣＡＶＬＣ）方式とコンテキスト適応型２値算術符号化（以下ＣＡＢＡＣ）方式の２つの方法が定義されている。
【０００３】
ＣＡＶＬＣ方式においては、周辺ブロックの情報等（コンテキスト）を用いてＶＬＣテーブルを適応的に切り替えることにより、符号化効率を向上させている。また、ＣＡＢＡＣ方式においては、確率テーブルをコンテキストに応じて切り替えることにより、符号化効率を向上させている。
【０００４】
ＣＡＶＬＣ方式において、ブロック内の有意係数の個数を符号化または復号化する方法について説明する。ここで有意係数とは、係数値が０でない係数のことである。図５において、ブロックＣが可変長符号化を施そうとしているブロックであり、ブロックＡ、ＢはそれぞれブロックＣの左および上に位置するブロックであるとする。ここで例えば、Ｈ．２６４方式では各ブロックは動き補償の大きさに関わらず水平４画素、垂直４画素の大きさで周波数変換されており、有意係数の個数の最大値は１６となる。この場合、ブロックＡ、Ｂが両者とも画面内にあり、かつ同じスライス内であるとすると、ブロックＡ、Ｂの有意係数の個数に対して２つの平均値を求め、その値によって用いるＶＬＣテーブルを変更する。例えば、平均値が０または１の場合は図４のＶＬＣ０を、平均値が２または３の場合は図４のＶＬＣ１を、平均値が５以上の場合は図４のＶＬＣ２を、というように用いる。
【０００５】
次に、ＣＡＢＡＣ方式において、各ブロックが有意係数を有するか否かを示すビット（ＣＢＰビット）を符号化または復号化する方法について説明する。図５において、ブロックＣが可変長符号化を施そうとしているブロックであり、ブロックＡ、ＢはそれぞれブロックＣの左および上に位置するブロックであるとする。この場合、ブロックＡ、Ｂが両者とも画面内にあり、かつ同じスライス内であり、ブロックＣと同じ種類のブロック（例えばＡ、Ｂ、Ｃがすべて輝度信号ブロック）であるとすると、ブロックＡ、Ｂが有意係数を有するか否かの４通りの組合せ中の、いずれのパターンであるかを求める。そして、そのパターンによって、ＣＢＰビットを算術符号化する際に用いる確率テーブルを４つの中から選択する。
【０００６】
次に、ＣＡＢＡＣ方式において、ブロック内の各係数が有意係数であるか否かを示すビットを符号化または復号化する方法について説明する。図６は、ブロック内の係数を所定の走査順序で並べ替えたものを示している。ここでＨ．２６４方式では、低周波数成分から高周波数成分に対してジグザグ順に走査する方法が用いられる。この際、各係数が有意係数であるか否かは、ＳＩＧビットおよびＬＡＳＴビットと呼ばれるビットにより表現し、これらのビットを算術符号化する。ここでＳＩＧビットは、有意係数の場合には１、係数値が０である場合には０となる。また、ＬＡＳＴビットは、有意係数に対してのみ割り振られ、その有意係数がブロック内の最後の係数である場合には１、そうでない場合には０となる。ここでＳＩＧビットおよびＬＡＳＴビットを算術符号化する際の確率テーブルは、ブロックの種類別（例えば画面内予測輝度信号ブロック、ピクチャ間予測輝度信号ブロック、画面内予測色差信号ブロック、ピクチャ間予測色差信号ブロック、等）に用意され、さらに各ブロックの種類に対して、各係数位置（走査順での位置）毎に用意される。したがって例えば、あるブロックの種類が最大１６係数を有する場合、ＳＩＧビット、ＬＡＳＴビットのそれぞれに対して確率テーブルが１５個ずつ用いられる。これは１６番目に有意係数が存在する場合、最終係数は符号化する必要がないためである。
【０００７】
なお、ＣＡＢＡＣ方式では、確率テーブルを選択する要因となるコンテキストとして、上述のＣＢＰ、ＳＩＧビット、ＬＡＳＴビットの他に、例えば、イントラマクロブロックであるか、スキップマクロブロックであるか、ダイレクトモードマクロブロックであるか、参照ピクチャ番号が０であるか、差分ＱＰが０であるか否か、等の項目がある。そして、これらのコンテキストに関して、算術符号化の対象となるブロックの左及び上に位置するブロックの値を使って対象ブロックのコンテキスト値を決定し、その値に対応する確率テーブルを用いて可変長符号化を行っている。可変長符号化を施されたビット列は図２４に示すように符号列中に記述される。図２４において、各情報の下に示されているのは確率テーブルである。例えば、マクロブロックの符号化モードであるＭＢ＿ｔｙｐｅを可変長符号化する場合には、コンテキスト値に応じて４つの確率テーブル（ＭＢ０〜ＭＢ３）を用いることを示している。
【発明の開示】
【発明が解決しようとする課題】
【０００８】
しかしながら、上記従来のＣＡＶＬＣ方式及びＣＡＢＡＣ方式においては、周波数変換ブロック（以下、単に変換ブロックと呼ぶ）の大きさが同一の大きさを有しているという前提に基づいてＶＬＣテーブルや確率テーブルの選択方法が定められているために、変換ブロックの大きさが一定でない場合には、これらの方法を用いることができないという問題を有している。
【０００９】
また、上記従来のＣＡＶＬＣ方式及びＣＡＢＡＣ方式は、画像信号がインタレース信号の場合に対応していないという問題もある。つまり、インタレース信号に対しては、ブロック毎にフレーム又はフィールド構造で符号化・復号化が行われることになるので、符号化／復号化対象のブロックと左又は上に位置するブロックとが異なる構造で符号化／復号化されている場合が発生するが、従来のＣＡＶＬＣ方式及びＣＡＢＡＣ方式では、このようなインタレース信号の場合における可変長符号化の決定方法が定義されていない。
【００１０】
そこで、本発明は上記問題点を解決するものであり、変換ブロックの大きさが一定でない場合に、可変長符号化方法としてＣＡＶＬＣ方式やＣＡＢＡＣ方式を用いる際に、符号化効率が向上するＶＬＣテーブルや確率テーブルの選択方法を実現する可変長符号化方法および可変長復号化方法を提供することを目的とする。
【００１１】
また、本発明は、画像信号がインタレース信号である場合に、可変長符号化方法としてＣＡＶＬＣ方式やＣＡＢＡＣ方式を用いる際に、符号化効率が向上するＶＬＣテーブルや確率テーブルの選択方法を実現する可変長符号化方法および可変長復号化方法を提供することをも目的とする。
【課題を解決するための手段】
【００１２】
上記目的を達成するために、本発明の可変長符号化方法は、画像を複数のブロックに分割し、前記ブロックを単位として符号化を行う際に用いる可変長符号化方法であって、符号化対象ブロックの情報を符号化する際に用いる可変長符号化テーブルを、前記符号化対象ブロックの周辺ブロックの情報に応じて決定し、前記符号化対象ブロックと前記周辺ブロックとの大きさが異なる際には、前記周辺ブロックの情報を前記符号化対象ブロックの大きさに変換して使用することを特徴として有している。
【００１３】
また、本発明に係る可変長符号化方法の前記情報はブロックの有意係数の個数であることを特徴とする。
【００１４】
なお、本発明は、上記可変長符号化方法及び可変長復号化方法として実現することができるだけでなく、それら方法に含まれる特長的な手順を手段として備える可変長符号化装置及び可変長復号化装置として実現したり、それらの手順をコンピュータに実行させるプログラムとして実現することもできる。そして、そのようなプログラムは、ＣＤ−ＲＯＭ等の記録媒体やインターネット等の伝送媒体を介して流通させることができるのは言うまでもない。
【発明の効果】
【００１５】
以上のように、本発明の可変長符号化方法および可変長復号化方法は、ＣＡＶＬＣ方式によって、各ブロックの有意係数の個数を符号化する場合、符号化対象ブロックの大きさと、周辺ブロックの大きさとが異なる場合には、周辺ブロックの有意係数の個数を、符号化対象ブロックと周辺ブロックとの大きさの比に基づいて変換し、この変換された値を可変長符号化テーブルの決定に用いる。
【００１６】
以上のような動作により、符号化対象ブロックの大きさと、周辺ブロックの大きさとが異なる場合であっても、符号化対象ブロックの大きさに応じた可変長テーブルの決定を行うことができ、符号化効率の向上を図ることが出来る。
【００１７】
また、本発明の可変長符号化方法は、ＣＡＢＡＣ方式によって、各ブロックが有意係数を有するか否かを示すビット（ＣＢＰビット）を符号化する場合、符号化対象ブロックの大きさと、周辺ブロックの大きさとが異なる場合には、周辺ブロックの有意係数の有無を、符号化対象ブロックと周辺ブロックとの大きさの比に基づいて変換し、この変換された値をＣＡＢＡＣ方式において用いる確率テーブルの決定に用いる。
【００１８】
以上のような動作により、符号化対象ブロックの大きさと、周辺ブロックの大きさとが異なる場合であっても、符号化対象ブロックの大きさに応じた確率テーブルの決定を行うことができ、符号化効率の向上を図ることが出来る。
【００１９】
また、本発明の可変長符号化方法は、ＣＡＢＡＣ方式によって、ブロック内の各係数が有意係数であるか否かを示すビットの符号化方法する場合、符号化対象ブロックの大きさ別に確率テーブルを用意し、ブロックサイズ毎に異なる組の確率テーブルを用意する。または、符号化対象ブロックの最大ブロックサイズに合わせて確率テーブルを用意し、ブロックの大きさの違いに関わらず同じ確率テーブルの組を用いる。
【００２０】
以上のような動作により、ブロックが複数の大きさを有する場合であっても、ブロックの大きさ別に確率テーブルの組を持つことにより、符号化効率の向上を図ることができる。また、ブロックの大きさの最大値に合わせて確率テーブルを用意し、ブロックの大きさの違いに関わらず同じ確率テーブルの組を用いることにより、確率テーブルの数を減らすことができ、メモリサイズを小さくすることができる。
【００２１】
また、本発明は、画像信号がインタレースである場合に、可変長符号化・復号化方法としてＣＡＶＬＣ方式やＣＡＢＡＣ方式を用いる際に、対象ブロックと周辺ブロックとがフレーム構造で符号化されているかフィールド構造で符号化されているかの符号化構造の一致及び相違に基づいて、可変長符号化テーブル及び確率テーブルを決定している。これによって、フレーム構造とフィールド構造のブロックが混在する場合であっても、ＶＬＣテーブル及び確率テーブルが一義的に決定され、符号化効率が向上される。
【発明を実施するための最良の形態】
【００２２】
本発明の実施の形態について、図面を参照して説明する。
【００２３】
（実施の形態１）
まず、動画像符号化装置の全体的な動作について図１を用いて説明する。図１は、フレームメモリ１０１、差分演算部１０２、予測誤差符号化部１０３、符号列生成部１０４、予測誤差復号化部１０５、加算演算部１０６、フレームメモリ１０７、動きベクトル検出部１０８、モード選択部１０９、符号化制御部１１０、スイッチ１１１〜１１５から構成される動画像符号化装置のブロック図である。
【００２４】
フレームメモリ１０１で並び替えが行われた各ピクチャは、マクロブロックの単位で読み出されるとする。ここでは、マクロブロックは水平１６×垂直１６画素の大きさであるとする。また、動き補償は１６×１６、１６×８、８×１６、８×８、８×４、４×８、４×４のブロック単位で行うものとする。ここで例えば１６×８とは、水平１６画素、垂直８画素の大きさを有するブロックを示すとする。またここでは、前方参照予測符号化ピクチャ（Ｐピクチャ）の符号化を例として説明する。
【００２５】
Ｐピクチャの符号化においては、符号化制御部１１０は、スイッチ１１３をオンにする。また、Ｐピクチャが他のピクチャの参照ピクチャとして用いられる場合には、スイッチ１１４、１１５がオンになるように各スイッチを制御する。他のピクチャの参照ピクチャとして用いられない場合には、スイッチ１１４、１１５はオフになるように各スイッチを制御する。したがって、フレームメモリ１０１から読み出されたＰピクチャのマクロブロックは、まず動きベクトル検出部１０８、モード選択部１０９、差分演算部１０２に入力される。
【００２６】
動きベクトル検出部１０８では、フレームメモリ１０７に蓄積された参照ピクチャの復号化画像データを前方参照ピクチャとして用いることにより、マクロブロックに含まれる各ブロックの前方動きベクトルの検出を行う。
【００２７】
モード選択部１０９では、動きベクトル検出部１０８で検出した動きベクトルを用いて、マクロブロックの符号化モードを決定する。ここで、Ｐピクチャの符号化モードは、例えば、ピクチャ内符号化、前方参照によるピクチャ間予測符号化から選択することができるとする。また、前方参照によるピクチャ間予測符号化を用いた場合には、マクロブロックをどのようなブロックに分割して動き補償するかという情報も符号化モードに含む。
【００２８】
モード選択部１０９で決定された符号化モードは符号列生成部１０４に対して出力される。また、モード選択部１０９で決定された符号化モードに基づいた参照画像が差分演算部１０２と加算演算部１０６に出力される。ただし、ピクチャ内符号化が選択された場合には、参照画像は出力されない。また、モード選択部１０９でピクチャ内符号化が選択された場合には、スイッチ１１１はａに、スイッチ１１２はｃに接続するように制御し、ピクチャ間予測符号化が選択された場合には、スイッチ１１１はｂに、スイッチ１１２はｄに接続するように制御する。以下では、モード選択部１０９でピクチャ間予測符号化が選択された場合について説明する。
【００２９】
差分演算部１０２には、モード選択部１０９から参照画像が入力される。差分演算部１０２では、Ｐピクチャのマクロブロックと参照画像との差分を演算し、予測誤差画像を生成し出力する。
【００３０】
予測誤差画像は予測誤差符号化部１０３に入力される。予測誤差符号化部１０３では、入力された予測誤差画像に対して周波数変換や量子化等の符号化処理を施すことにより、符号化データを生成して出力する。ここで、予測誤差画像に対する周波数変換は、モード選択部１０９において決定された動き補償の大きさに基づいて行うものとする。例えば８×８以上の大きさで動き補償された場合には、８×８の大きさで周波数変換し、８×８未満の大きさで動き補償された場合には、動き補償と同じ大きさで周波数変換するものとする。予測誤差符号化部１０３から出力された符号化データは、符号列生成部１０４に入力される。
【００３１】
符号列生成部１０４では、入力された符号化データに対して、可変長符号化等を施し、モード選択部１０９から入力された符号化モード、ヘッダ情報、等の情報を付加することにより符号列を生成し出力する。
【００３２】
次に、動画像復号化装置の全体的な動作について、図３を用いて説明する。図３は、符号列解析部３０１、予測誤差復号化部３０２、モード復号部３０３、動き補償復号部３０５、動きベクトル記憶部３０６、フレームメモリ３０７、加算演算部３０８、スイッチ３０９、３１０、可変長復号化部３１１から構成される動画像復号化装置のブロック図である。
【００３３】
以下では、前方予測参照符号化ピクチャ（Ｐピクチャ）の復号化処理について説明する。
【００３４】
符号列は符号列解析部３０１に入力される。符号列解析部３０１では、入力された符号列から、各種データの抽出を行う。ここで各種データとは、モード選択の情報や動きベクトル情報等である。抽出されたモード選択の情報は、モード復号部３０３に対して出力される。また、抽出された動きベクトル情報は、動き補償復号部３０５に対して出力される。さらに、予測誤差符号化データは可変長復号部３１１に対して出力される。
【００３５】
モード復号部３０３では、符号列から抽出されたモード選択の情報を参照し、スイッチ３０９と７１０の制御を行う。モード選択がピクチャ内符号化である場合には、スイッチ３０９はａに、スイッチ７１０はｃに接続するように制御する。また、モード選択がピクチャ間予測符号化である場合には、スイッチ３０９はｂに、スイッチ７１０はｄに接続するように制御する。
【００３６】
またモード復号部３０３では、モード選択の情報を動き補償部に対しても出力する。以下では、モード選択がピクチャ間予測符号化である場合について説明する。
【００３７】
可変長復号部３１１では、入力された予測誤差符号化データに対して可変長復号を施す。可変長復号を施されたデータは、予測誤差復号化部３０２に対して出力される。
【００３８】
予測誤差復号化部３０２では、入力されたデータに対して、逆量子化処理や、逆周波数変換を施すことにより、予測誤差画像を生成する。ここで、逆周波数変換は、モード選択部１０９において決定された動き補償の大きさに基づいて行うものとする。例えば８×８以上の大きさで動き補償された場合には、８×８の大きさで周波数変換し、８×８未満の大きさで動き補償された場合には、動き補償と同じ大きさで周波数変換するものとする。生成された予測誤差画像はスイッチ３０９に対して出力される。ここでは、スイッチ３０９はｂに接続されているので、予測誤差画像は加算演算部３０８に対して出力される。
【００３９】
動き補償復号部３０５は、可変長復号化部３１１から入力された、符号化された動きベクトルに対して、復号化処理を行う。そして、復号化された動きベクトルに基づいて、フレームメモリ３０７から動き補償画像を取得する。このようにして生成された動き補償画像は加算演算部３０８に対して出力される。
【００４０】
加算演算部３０８では、入力された予測誤差画像と動き補償画像とを加算し、復号化画像を生成する。生成された復号化画像はスイッチ３１０を介してフレームメモリ３０７に対して出力される。
【００４１】
さて、上記で説明した動画像符号化装置における符号列生成部１０４、および動画像復号化装置における可変長復号化部３１１の動作について、詳細を以下で説明する。
【００４２】
まず、符号列生成部１０４または可変長復号化部３１１において、ＣＡＶＬＣ方式によって、各ブロックの有意係数の個数を符号化または復号化する方法について説明する。
【００４３】
各ブロックの有意係数の個数を符号化または復号化する場合には、周辺ブロックの有意係数の個数を参照する。ここでは、周辺ブロックとして、対象ブロックの上および左に位置するブロックを用いる場合について説明する。周辺ブロックがすべて画面内にあり、かつ同じスライス内であるとすると、対象ブロックの有意係数の個数を符号化または復号化する際には、周辺ブロックの有意係数の個数を用いて可変長符号化（復号化）テーブルを決定する。ここで、対象ブロックの有意係数の最大個数と、周辺ブロックの有意係数の最大個数が異なる場合、対象ブロックと周辺ブロックの有意係数の最大個数を一致させるように、周辺ブロックの有意係数の個数を求める。ここで、対象ブロックの有意係数の個数の最大値をＮとすると（例えば対象ブロックの大きさが８×８である場合、Ｎは６４となる）、周辺ブロックを参照して得られる有意係数の個数がＮ／８未満であれば図４のＶＬＣ０、Ｎ／８以上Ｎ／４未満であれば図４のＶＬＣ１、Ｎ／４以上であれば図４のＶＬＣ２を用いる、といったように可変長符号化（復号化）テーブルを決定する。ここで図４においては、有意係数の個数が１６の場合までしか可変長符号化（復号化）テーブルを示していないが、これらのテーブルは有意係数の個数が１７以上まで拡張したものを用いるとする。以下では図２を用いて説明するが、図２においてブロックＣが可変長符号化または可変長復号化を施そうとしているブロックであるとする。
【００４４】
第１の例を図２（ａ）を用いて説明する。図２（ａ）において、また、ブロックＡ１、Ａ２、Ｂ１、Ｂ２がブロックＣの左および上に位置する周辺ブロックとなる。ここでブロックＣは８×８の大きさを有し、周辺ブロックは、８×４の大きさを有するとする。この場合、ブロックＣの左に位置するブロックの有意係数の個数として、ブロックＡ１とＡ２との有意係数の個数の和を用い、ブロックＣの上に位置するブロックの有意係数の個数として、ブロックＢ１とＢ２との有意係数の個数の和を用いる。そして、ブロックＣの左および上に位置するブロックの有意係数の個数の平均値、すなわちここでは、ブロックＡ１、Ａ２の有意係数の個数の和と、ブロックＢ１、Ｂ２の有意係数の個数の和との平均値を求め、この平均値により、ブロックＣの有意係数の個数を符号化（復号化）する際の可変長符号化（復号化）テーブルを決定する。ここで、ブロックＢ１とＢ２との有意係数の個数の和を用いる代わりに、ブロックＣに隣接するブロックＢ１の有意係数の個数を２倍して用いても良い。
【００４５】
第２の例を図２（ｂ）を用いて説明する。図２（ｂ）において、ブロックＡ１、Ａ２、Ａ３、Ａ４、Ｂ１、Ｂ２、Ｂ３、Ｂ４がブロックＣの左および上に位置する周辺ブロックとなる。ここでブロックＣは８×８の大きさを有し、ブロックＡ１、Ａ２、Ａ３、Ａ４、Ｂ１、Ｂ２、Ｂ３、Ｂ４は、４×４の大きさを有するとする。この場合、ブロックＣの左に位置するブロックの有意係数の個数として、ブロックＡ１、Ａ２、Ａ３、Ａ４の有意係数の個数の和を用い、ブロックＣの上に位置するブロックの有意係数の個数として、ブロックＢ１、Ｂ２、Ｂ３、Ｂ４の有意係数の個数の和を用いる。そして、ブロックＣの左および上に位置するブロックの有意係数の個数の平均値、すなわちここでは、ブロックＡ１、Ａ２、Ａ３、Ａ４の有意係数の個数の和と、ブロックＢ１、Ｂ２、Ｂ３、Ｂ４の有意係数の個数の和との平均値を求め、この平均値により、ブロックＣの有意係数の個数を符号化（復号化）する際の可変長符号化（復号化）テーブルを決定する。ここで、Ａ１、Ａ２、Ａ３、Ａ４の有意係数の個数の和を用いる代わりに、ブロックＣに隣接するブロックＡ２、Ａ４の有意係数の個数の和の２倍の値や、ブロックＢ１、Ｂ２、Ｂ３、Ｂ４の有意係数の個数の和を用いる代わりに、ブロックＣに隣接するブロックＢ３、Ｂ４の有意係数の個数の和の２倍の値、等を用いても良い。
【００４６】
第３の例を図２（ｃ）を用いて説明する。図２（ｃ）において、ブロックＡ、ＢがブロックＣの左および上に位置する周辺ブロックとなる。ここでブロックＣは８×４の大きさを有し、ブロックＡ、Ｂは、８×８の大きさを有するとする。この場合、ブロックＣの左に位置するブロックの有意係数の個数として、ブロックＡの有意係数の個数の１／２の値を用い、ブロックＣの上に位置するブロックの有意係数の個数として、ブロックＢの有意係数の個数の１／２の値を用いる。そして、ブロックＣの左および上に位置するブロックの有意係数の個数の平均値、すなわちここでは、ブロックＡの有意係数の個数の１／２の値と、ブロックＢの有意係数の個数の１／２の値との平均値を求め、この平均値により、ブロックＣの有意係数の個数を符号化（復号化）する際の可変長符号化（復号化）テーブルを決定する。
【００４７】
第４の例を図２（ｄ）を用いて説明する。図２（ｄ）において、ブロックＡ１、Ａ２、Ｂ１、Ｂ２がブロックＣの左および上に位置する周辺ブロックとなる。ここでブロックＣは８×４の大きさを有し、ブロックＡ１、Ａ２、Ｂ１、Ｂ２は、４×８の大きさを有するとする。この場合、ブロックＣの左に位置するブロックの有意係数の個数として、ブロックＡ１、Ａ２の有意係数の個数の和の１／２の値を用い、ブロックＣの上に位置するブロックの有意係数の個数として、ブロックＢ１、Ｂ２の有意係数の個数の和の１／２の値を用いる。そして、ブロックＣの左および上に位置するブロックの有意係数の個数の平均値、すなわちここでは、ブロックＡ１、Ａ２の有意係数の個数の和の１／２の値と、ブロックＢ１、Ｂ２の有意係数の個数の和の１／２の値との平均値を求め、この平均値により、ブロックＣの有意係数の個数を符号化（復号化）する際の可変長符号化（復号化）テーブルを決定する。ここで、Ａ１、Ａ２の有意係数の個数の和を用いる代わりに、ブロックＡ１、Ａ２のいずれかの有意係数の個数や、ブロックＢ１、Ｂ２の有意係数の個数の和を用いる代わりに、ブロックＢ１、Ｂ２のいずれかの有意係数の個数、等を用いても良い。
【００４８】
第５の例を図２（ｅ）を用いて説明する。図２（ｅ）において、ブロックＡ１、Ａ２、Ａ３、Ａ４、Ｂ１、Ｂ２、Ｂ３、Ｂ４がブロックＣの左および上に位置する周辺ブロックとなる。ここでブロックＣは８×４の大きさを有し、ブロックＡ１、Ａ２、Ａ３、Ａ４、Ｂ１、Ｂ２、Ｂ３、Ｂ４は、４×４の大きさを有するとする。この場合、ブロックＣの左に位置するブロックの有意係数の個数として、ブロックＡ１、Ａ２の有意係数の個数の和を用い、ブロックＣの上に位置するブロックの有意係数の個数として、ブロックＢ３、Ｂ４の有意係数の個数の和を用いる。そして、ブロックＣの左および上に位置するブロックの有意係数の個数の平均値、すなわちここでは、ブロックＡ１、Ａ２の有意係数の個数の和と、ブロックＢ３、Ｂ４の有意係数の個数の和との平均値を求め、この平均値により、ブロックＣの有意係数の個数を符号化（復号化）する際の可変長符号化（復号化）テーブルを決定する。ここで、Ａ１、Ａ２の有意係数の個数の和を用いる代わりに、ブロックＡ１、Ａ２、Ａ３、Ａ４の有意係数の個数の和の１／２の値や、ブロックＢ３、Ｂ４の有意係数の個数の和を用いる代わりに、ブロックＢ１、Ｂ２、Ｂ３、Ｂ４の有意係数の個数の和の１／２の値、等を用いても良い。
【００４９】
第６の例を図２（ｆ）を用いて説明する。図２（ｆ）において、ブロックＡ、ＢがブロックＣの左および上に位置する周辺ブロックとなる。ここでブロックＣは４×４の大きさを有し、ブロックＡ、Ｂは、８×８の大きさを有するとする。この場合、ブロックＣの左に位置するブロックの有意係数の個数として、ブロックＡの有意係数の個数の１／４の値を用い、ブロックＣの上に位置するブロックの有意係数の個数として、ブロックＢの有意係数の個数の１／４の値を用いる。そして、ブロックＣの左および上に位置するブロックの有意係数の個数の平均値、すなわちここでは、ブロックＡの有意係数の個数の１／４の値と、ブロックＢの有意係数の個数の１／４の値との平均値を求め、この平均値により、ブロックＣの有意係数の個数を符号化（復号化）する際の可変長符号化（復号化）テーブルを決定する。
【００５０】
第７の例を図２（ｇ）を用いて説明する。図２（ｇ）において、ブロックＡ１、Ａ２、Ｂ１、Ｂ２がブロックＣの左および上に位置する周辺ブロックとなる。ここでブロックＣは４×４の大きさを有し、ブロックＡ１、Ａ２、Ｂ１、Ｂ２、４×８の大きさを有するとする。この場合、ブロックＣの左に位置するブロックの有意係数の個数として、ブロックＡ２の有意係数の個数の１／２の値を用い、ブロックＣの上に位置するブロックの有意係数の個数として、ブロックＢ１の有意係数の個数の１／２の値を用いる。そして、ブロックＣの左および上に位置するブロックの有意係数の個数の平均値、すなわちここでは、ブロックＡ２の有意係数の個数の１／２の値と、ブロックＢ１の有意係数の個数の１／２の値との平均値を求め、この平均値により、ブロックＣの有意係数の個数を符号化（復号化）する際の可変長符号化（復号化）テーブルを決定する。ここで、Ａ２の有意係数の個数の１／２の値を用いる代わりに、ブロックＡ１、Ａ２の有意係数の個数の和の１／４の値や、ブロックＢ１の有意係数の個数の１／２の値を用いる代わりに、ブロックＢ１、Ｂ２の有意係数の個数の和の１／４の値、等を用いても良い。
【００５１】
次に、符号列生成部１０４または可変長復号化部３１１において、ＣＡＢＡＣ方式によって、各ブロックが有意係数を有するか否かを示すビット（ＣＢＰビット）を符号化または復号化する方法について説明する。
【００５２】
各ブロックのＣＢＰビットを符号化または復号化する場合、周辺ブロックのＣＢＰビットを参照する。ここでは、周辺ブロックとして、対象ブロックの上および左に位置するブロックを用いる場合について説明する。周辺ブロックがすべて画面内にあり、かつ同じスライス内であり、符号化（復号化）対象ブロックと同じ種類であるとすると、対象ブロックのＣＢＰビットを符号化または復号化する際には、周辺ブロックの有意係数の有無によって可変長符号化（復号化）の際の確率テーブルを決定する。この場合には、対象ブロックの左に位置するブロックの有意係数の個数の合計値が０であるか否か、および対象ブロックの上に位置するブロックの有意係数の個数の合計値が０であるか否か、の４通りの組合せのいずれであるかを求め、それによって、対象ブロックのＣＢＰビットを算術符号化する際に用いる確率テーブルを４通りの中から選択する。ここで、対象ブロックの有意係数の最大個数と、周辺ブロックの有意係数の最大個数が異なる場合、対象ブロックと周辺ブロックの有意係数の最大個数を一致させるように、ＣＢＰビットを求める。以下では図２を用いて説明するが、図２においてブロックＣが可変長符号化または可変長復号化を施そうとしているブロックであるとする。
【００５３】
第１の例を図２（ａ）を用いて説明する。図２（ａ）において、ブロックＡ１、Ａ２、Ｂ１、Ｂ２はそれぞれブロックＣの左および上に位置する周辺ブロックである。この場合、ブロックＡ１とＡ２との有意係数の個数の合計値が０であるか否か、およびブロックＢ１とＢ２との有意係数の個数の合計値が０であるか否か、の４通りの組合せのいずれであるかを求め、それによって、ブロックＣのＣＢＰビットを算術符号化する際に用いる確率テーブルを選択する。またこの場合、ブロックＡ１とＡ２との有意係数の個数の和が０であるか否か、という判断基準を用いる代わりに、ブロックＡ１（またはブロックＡ２）の有意係数の個数が０であるか否かという判断基準や、ブロックＢ１とＢ２との有意係数の個数の和が０であるか否か、という判断基準を用いる代わりに、ブロックＢ１（またはブロックＢ２）の有意係数の個数が０であるか否か、という判断基準を用いても良い。
【００５４】
第２の例を図２（ｂ）を用いて説明する。図２（ｂ）において、ブロックＡ１、Ａ２、Ａ３、Ａ４、Ｂ１、Ｂ２、Ｂ３、Ｂ４はそれぞれブロックＣの左および上に位置する周辺ブロックである。この場合、ブロックＡ１、Ａ２、Ａ３、Ａ３の有意係数の個数の合計値が０であるか否か、およびブロックＢ１、Ｂ２、Ｂ３、Ｂ４との有意係数の個数の合計値が０であるか否か、の４通りの組合せのいずれであるかを求め、それによって、ブロックＣのＣＢＰビットを算術符号化する際に用いる確率テーブルを選択する。またこの場合、ブロックＡ１、Ａ２、Ａ３、Ａ４の有意係数の個数の和が０であるか否か、という判断基準を用いる代わりに、ブロックＣに隣接するブロックＡ２とＡ４の有意係数の個数の和が０であるか否かという判断基準や、ブロックＢ１、Ｂ２、Ｂ３、Ｂ４の有意係数の個数の和が０であるか否か、という判断基準を用いる代わりに、ブロックＣに隣接するブロックＢ３とＢ４との有意係数の個数の和が０であるか否か、という判断基準を用いても良い。
【００５５】
第３の例を図２（ｃ）を用いて説明する。図２（ｃ）において、ブロックＡ、ＢはそれぞれブロックＣの左および上に位置する周辺ブロックである。この場合、ブロックＡの有意係数の個数が０であるか否か、およびブロックＢの有意係数の個数が０であるか否か、の４通りの組合せのいずれであるかを求め、それによって、ブロックＣのＣＢＰビットを算術符号化する際に用いる確率テーブルを選択する。またこの場合、ブロックＡ（ブロックＢ）の有意係数の個数が０であるか否か、という判断基準を用いる代わりに、ブロックＡ（ブロックＢ）の有意係数の個数の１／２が０であるか否かという判断基準や、ブロックＡ（ブロックＢ）の有意係数の個数が所定値以上であるか未満であるかという判断基準を用いても良い。
【００５６】
第４の例を図２（ｄ）を用いて説明する。図２（ｄ）において、ブロックＡ１、Ａ２、Ｂ１、Ｂ２はそれぞれブロックＣの左および上に位置する周辺ブロックである。この場合、ブロックＡ１とＡ２との有意係数の個数の和が０であるか否か、およびブロックＢ１とＢ２との有意係数の個数の和が０であるか否か、の４通りの組合せのいずれであるかを求め、それによって、ブロックＣのＣＢＰビットを算術符号化する際に用いる確率テーブルを選択する。またこの場合、ブロックＡ１とＡ２（ブロックＢ１とＢ２）の有意係数の個数の和が０であるか否か、という判断基準を用いる代わりに、ブロックＡ１とＡ２（ブロックＢ１とＢ２）の有意係数の個数の和の１／２が０であるか否かという判断基準や、ブロックＡ１とＡ２（ブロックＢ１とＢ２）の有意係数の個数が所定値以上であるか未満であるかという判断基準を用いても良い。
【００５７】
第５の例を図２（ｅ）を用いて説明する。図２（ｅ）において、ブロックＡ１、Ａ２、Ａ３、Ａ４、Ｂ１、Ｂ２、Ｂ３、Ｂ４はそれぞれブロックＣの左および上に位置する周辺ブロックである。この場合、ブロックＡ１とＡ２との有意係数の個数の和が０であるか否か、およびブロックＢ３とＢ４との有意係数の個数の和が０であるか否か、の４通りの組合せのいずれであるかを求め、それによって、ブロックＣのＣＢＰビットを算術符号化する際に用いる確率テーブルを選択する。またこの場合、ブロックＡ１とＡ２の有意係数の個数の和が０であるか否か、という判断基準を用いる代わりに、ブロックＡ１、Ａ２、Ａ３、Ａ４の有意係数の個数の和、またはその和の１／２が０であるか否か、または所定値以上であるか未満であるか、という判断基準や、ブロックＢ３とＢ４の有意係数の個数の和が０であるか否か、という判断基準を用いる代わりに、ブロックＢ１、Ｂ２、Ｂ３、Ｂ４の有意係数の個数の和、またはその和の１／２（切り捨て値）が０であるか否か、または所定値以上であるか未満であるか、という判断基準等を用いても良い。
【００５８】
第６の例を図２（ｆ）を用いて説明する。図２（ｆ）において、ブロックＡ、ＢはそれぞれブロックＣの左および上に位置する周辺ブロックである。この場合、ブロックＡの有意係数の個数が０であるか否か、およびブロックＢの有意係数の個数が０であるか否か、の４通りの組合せのいずれであるかを求め、それによって、ブロックＣのＣＢＰビットを算術符号化する際に用いる確率テーブルを選択する。またこの場合、ブロックＡ（ブロックＢ）の有意係数の個数が０であるか否か、という判断基準を用いる代わりに、ブロックＡ（ブロックＢ）の有意係数の個数の１／４が０であるか否かという判断基準や、ブロックＡ（ブロックＢ）の有意係数の個数が所定値以上であるか未満であるかという判断基準等を用いても良い。
【００５９】
第７の例を図２（ｇ）を用いて説明する。図２（ｇ）において、ブロックＡ１、Ａ２、Ｂ１、Ｂ２はそれぞれブロックＣの左および上に位置する周辺ブロックである。この場合、ブロックＡ２の有意係数の個数が０であるか否か、およびブロックＢ１の有意係数の個数が０であるか否か、の４通りの組合せのいずれであるかを求め、それによって、ブロックＣのＣＢＰビットを算術符号化する際に用いる確率テーブルを選択する。またこの場合、ブロックＡ２（ブロックＢ１）の有意係数の個数が０であるか否か、という判断基準を用いる代わりに、ブロックＡ２（ブロックＢ１）の有意係数の個数の１／２が０であるか否かや、ブロックＡ２（ブロックＢ１）の有意係数の個数が所定値以上であるか未満であるか、という判断基準や、ブロックＡ１とＡ２（ブロックＢ１とＢ２）の有意係数の個数の和、またはその和の１／２（切り捨て値）が０であるか否か、または所定値以上であるか未満であるか、という判断基準等を用いても良い。
【００６０】
次に、符号列生成部１０４または可変長復号化部３１１において、ＣＡＢＡＣ方式によって、ブロック内の各係数が有意係数であるか否かを示すビットの符号化方法について説明する。ブロック内の係数は、従来例の説明において図６を用いて説明したように、所定の走査順序で並べ替えたのち、ＳＩＧビットとＬＡＳＴビットとを用いて表現し、これらのビットを算術符号化するとする。
【００６１】
第１の例では、ＳＩＧビットおよびＬＡＳＴビットを算術符号化する際の確率テーブルを、ブロックの大きさ別に用意する。すなわち、４×４ブロック用の確率テーブル、４×８ブロック用の確率テーブル、８×４ブロック用の確率テーブル、８×８ブロック用の確率テーブル、といったように確率テーブルを用意する。そして各ブロックの種類毎に、各係数位置（走査順での位置）毎に確率テーブルを用意する。したがって例えば、４×４ブロックに対しては、ＳＩＧビット、ＬＡＳＴビットのそれぞれに対して確率テーブルが１５個ずつ用いられ、８×８ブロックに対しては、ＳＩＧビット、ＬＡＳＴビットのそれぞれに対して確率テーブルが６３個ずつ用いる。これは最終位置に有意係数が存在する場合、この係数は符号化する必要がないためである。
【００６２】
第２の例では、ＳＩＧビットおよびＬＡＳＴビットを算術符号化する際の確率テーブルを、ブロックの大きさに関係なく１組のテーブルとする。すなわち、最大のブロックサイズに合わせて確率テーブルを用意する。ここで、最大のブロックサイズが８×８であるとすると、ＳＩＧビット、ＬＡＳＴビットのそれぞれに対して確率テーブルが６３個ずつ用いられる。そして、４×４ブロックに対しては、最初の１５個の確率テーブルを用い、４×８ブロックや８×４ブロックに対しては、最初の３１個の確率テーブルを用いる。
【００６３】
以上のように、本発明の可変長符号化方法および可変長復号化方法は、ＣＡＶＬＣ方式によって、各ブロックの有意係数の個数を符号化する場合、符号化対象ブロックの大きさと、周辺ブロックの大きさとが異なる場合には、周辺ブロックの有意係数の個数を、符号化対象ブロックと周辺ブロックとの大きさの比に基づいて変換し、この変換された値を可変長符号化テーブルの決定に用いる。
【００６４】
以上のような動作により、符号化対象ブロックの大きさと、周辺ブロックの大きさとが異なる場合であっても、符号化対象ブロックの大きさに応じた可変長テーブルの決定を行うことができ、符号化効率の向上を図ることが出来る。
【００６５】
また、本発明の可変長符号化方法は、ＣＡＢＡＣ方式によって、各ブロックが有意係数を有するか否かを示すビット（ＣＢＰビット）を符号化する場合、符号化対象ブロックの大きさと、周辺ブロックの大きさとが異なる場合には、周辺ブロックの有意係数の有無を、符号化対象ブロックと周辺ブロックとの大きさの比に基づいて変換し、この変換された値をＣＡＢＡＣ方式において用いる確率テーブルの決定に用いる。
【００６６】
以上のような動作により、符号化対象ブロックの大きさと、周辺ブロックの大きさとが異なる場合であっても、符号化対象ブロックの大きさに応じた確率テーブルの決定を行うことができ、符号化効率の向上を図ることが出来る。
【００６７】
また、本発明の可変長符号化方法は、ＣＡＢＡＣ方式によって、ブロック内の各係数が有意係数であるか否かを示すビットの符号化方法する場合、符号化対象ブロックの大きさ別に確率テーブルを用意し、ブロックサイズ毎に異なる組の確率テーブルを用意する。または、符号化対象ブロックの最大ブロックサイズに合わせて確率テーブルを用意し、ブロックの大きさの違いに関わらず同じ確率テーブルの組を用いる。
【００６８】
以上のような動作により、ブロックが複数の大きさを有する場合であっても、ブロックの大きさ別に確率テーブルの組を持つことにより、符号化効率の向上を図ることができる。また、ブロックの大きさの最大値に合わせて確率テーブルを用意し、ブロックの大きさの違いに関わらず同じ確率テーブルの組を用いることにより、確率テーブルの数を減らすことができ、メモリサイズを小さくすることができる。
【００６９】
なお、本実施の形態においては、マクロブロックは水平１６×垂直１６画素の単位で、動き補償は１６×１６から４×４画素のブロック単位で処理する場合について説明したが、これらの単位は別の画素数でも良い。
【００７０】
また、本実施の形態においては、周波数変換は８×８、８×４、４×８、４×４のいずれかのブロック単位で処理する場合について説明したが、これらの単位は別の画素数でも良い。
【００７１】
また、本実施の形態においては、符号化対象ブロックの周辺ブロックとして、左および上に位置するブロックを参照して、可変長符号化テーブルや確率テーブルを決定する場合について説明したが、これらの周辺ブロックは、他のブロックであっても良い。例えば、右上や左上のブロック等を用いる方法、等がある。
【００７２】
また本実施の形態においては、ＣＡＶＬＣ方式の説明においては、図４に示す３つの可変長符号化テーブルを用いる場合について説明したが、可変長符号化テーブルの個数およびテーブルの構成については、図４に限るものではない。また、周辺ブロックの有意係数の個数に対するしきい値として、Ｎ／８、Ｎ／４といった値を用いる場合について説明したが、これらの値は他の値であっても良い。また、符号化対象ブロックの大きさ毎に異なるしきい値を用いても良い。
【００７３】
また、本実施の形態では、周辺ブロックが画面内にあり、かつ同じスライス内である場合について説明したが、これらの周辺ブロックがこの条件を満たさない場合には、条件を満たす周辺ブロックのみを使って、可変長符号化テーブルや確率テーブルの決定を行えばよい。
【００７４】
（実施の形態２）
次に、インタレース信号に対してマクロブロック毎、又はＭＢＰ（マクロブロックペア；以下ＭＢＰと記す）毎にフレーム構造又はフィールド構造が混在する場合において動画像符号化及び動画像復号化を行う場合に、ＣＡＶＬＣ方式又はＣＡＢＡＣ方式を用いてコンテキストを決定する方法について説明する。ここでＭＢＰは、上下に隣接する２つのマクロブロックをまとめた単位であり、詳しい構成は後述する。
【００７５】
図７は、本実施の形態２に係る動画像符号化装置の構成を示す機能ブロック図である。本実施の形態２においては、上述した実施の形態１に係る動画像符号化装置に示す構成に加えて、ブロックカウンタ７０１が備えられている。
【００７６】
このブロックカウンタ７０１は、前記フレームメモリ１０１に対して、可変長符号化の対象となるブロック単位での出力を指示し、また、前記符号列生成部１０４に対して、その対象ブロックがＭＢＰの境界であるか否かの指示を行う。また、モード選択部１０９では、当該ＭＢＰをフレーム構造とフィールド構造のいずれで符号化するかを決定し、その結果を符号列生成部１０４に対して出力する。ブロックカウンタ７０１から出力されるＭＢＰの境界情報、およびモード選択部１０９から出力されるＭＢＰの構造情報とにより、符号列生成部１０４は、本実施の形態２に係る対象ブロックの可変長符号化をスタートさせる。なお、動画像符号化装置の全体的な動作は、上述した動作と同様である。
【００７７】
図８は、フレーム構造で符号化されるＭＢＰのデータ構造とフィールド構造で符号化されるＭＢＰのデータ構造との関係を示す説明図である。同図において、白丸は奇数水平走査線上の画素を示し、斜線でハッチングした黒丸は偶数水平走査線上の画素を示している。入力画像を表す各フレームからＭＢＰを切り出した場合、図８の中央に示すように、奇数水平走査線上の画素と偶数水平走査線上の画素とは垂直方向に交互に配置されている。このようなＭＢＰをフレーム構造で符号化する場合、当該ＭＢＰは２つのマクロブロック１およびマクロブロック２毎に処理される。また、フィールド構造で符号化する場合、当該ＭＢＰは、水平走査線方向にインタレースした場合のトップフィールドを表すマクロブロックＭＢｔとボトムフィールドを表すマクロブロックＭＢｂとに分けられる。
【００７８】
図９は、本実施の形態２に係るＣＡＶＬＣ方式でコンテキストを決定し、対応するＶＬＣテーブルを決定する場合における計算手順の大きな流れを示すフローチャートである。
【００７９】
なお、符号化対象ブロックＣの周辺ブロックであるブロックＡ及びブロックＢの位置関係は、前記図５と同様のものとして説明する。また、符号化対象ブロックＣと周辺ブロックＡ、Ｂとは、４×４画素（係数）の大きさを有し、各ブロックの有意係数の個数の最大値は１６として説明する。また、符号化対象ブロックＣの左に位置する周辺ブロックＡの有意係数の個数をＮＬ、符号化対象ブロックＣの上に位置する周辺ブロックＢの有意係数の個数をＮＵとする。
【００８０】
まず、符号列生成部１０４は、符号化対象ブロックＣの左に位置する対象ブロックＡの有意係数の個数ＮＬを決定する（ステップ９０１）。次に、符号化対象ブロックＣの上に位置する対象ブロックＢの有意係数ＮＵの個数を決定し（ステップ９０２）、最後に、それらＮＬとＮＵとを利用することにより、対象ブロックの有意係数の個数Ｎを決定する（ステップ９０３）。
【００８１】
なお、Ｎの決定は後述する方法により行い、Ｎの値に対応するＶＬＣテーブルを可変長符号に用いるＶＬＣテーブルとして決定する。
【００８２】
ここで、最終的に決定された有意係数の個数ＮとＶＬＣテーブルとの関係は、例えば、図１０に示される表の通りである。ここでは、有意係数の個数Ｎが０から２の場合には、図４に示されたＶＬＣ０のテーブルを用い、有意係数の個数Ｎが３から１０の場合には、ＶＬＣ１のＶＬＣテーブルを用い、有意係数の個数Ｎが１１から１６の場合には、ＶＬＣ２のＶＬＣテーブルを用いることが示されている。
【００８３】
以下、図９に示されたフローチャートにおける各ステップの詳細な手順を説明する。
【００８４】
図１１は、図９におけるステップ９０１、つまり、周辺ブロックＡの有意係数の個数ＮＬを求める計算手順（（ａ）及び（ｂ）の２通り）の詳細を示すフローチャートである。
【００８５】
まず、図１１（ａ）を用いて第１の動作手順を説明すると、符号列生成部１０４は、符号化対象ブロックＣの左に位置する周辺ブロックＡが同じＭＢＰ内に位置するか調べ（ステップ１１０１）、同じＭＢＰ内であるならば、それら２つのブロックは同一タイプであるので、周辺ブロックＡの有意係数の個数ＮＬとして、ＮＬ＝Ｎｕｍ（Ａ）で特定する（ステップ１１０４）。ここでＮｕｍ（ｘ）は、ブロックｘの有意係数の個数を示す。また、タイプとは、対象のブロックがフィールド構造で符号化されているかフレーム構造で符号化されているかの符号化構造を指す。
【００８６】
そして、周辺ブロックＡが同じＭＢＰ内に位置しないと判断した場合には、周辺ブロックＡが対象ブロックＣと同じタイプのＭＢＰかを調べる（ステップ１１０２）。その結果、周辺ブロックＡと対象ブロックＣとが同じタイプのＭＢＰである場合には、ＮＬ＝Ｎｕｍ（Ａ）（ステップ１１０４）とし、それらのタイプが異なる場合には、ＮＬ＝（Ｎｕｍ（Ａ）＋Ｎｕｍ（Ａ´））/２として算出する（ステップ１１０３）。なお、周辺ブロックＡ´は、ブロックＡに対応するブロックのことであり、その詳細な位置関係については後述する。
【００８７】
次に、図１１（ｂ）を用いて第２の動作手順を説明すると、符号化対象ブロックＣの左に位置する周辺ブロックＡが同じＭＢＰ内に位置するか調べ（ステップ１１０１）、同じＭＢＰ内であるならば、周辺ブロックＡの有意係数の個数を用いて、ＮＬ＝Ｎｕｍ（Ａ）とし（ステップ１１０４）、周辺ブロックＡが同じＭＢＰ内に位置しないと判断された場合には、周辺ブロックＡは、対象ブロックＣと同じタイプのＭＢＰか調べる（ステップ１１０２）。そして、周辺ブロックＡは、対象ブロックＣと同じタイプのＭＢＰである場合には、ＮＬ＝Ｎｕｍ（Ａ）（ステップ１１０４）とし、それらのタイプが異なる場合には、ＮＬ＝Ｎ・Ａ（Not Available；不定）とする（ステップ１１０５）。
【００８８】
図１２は、符号化対象ブロックＣがフィールド構造及びフレーム構造である場合における周辺ブロックＡ及びＡ´の配置の一例を示す図である。
【００８９】
図１２（ａ）は、符号化対象ブロックＣがフィールド構造で符号化されたＭＢＰ１２０１に属し、周辺ブロックＡがフレーム構造で符号化されたＭＢＰ１２０２に属する場合を示している。周辺ブロックＡ´は、周辺ブロックＡの下に位置することとなる。これは、図８に示されたフレーム構造及びフィールド構造のＭＢＰから分かるように、各ブロックに属する画素の走査線が同一となるように、対応関係が決定されているからである。つまり、ブロックＣに属する走査線は、ブロックＡ及びＡ´に分散されるので、ブロックＣの有意係数の個数を決定するのに用いるＮＬとして、ブロックＡ及びＡ´の有意係数の個数を採用している。
【００９０】
一方、図１２（ｂ）は、符号化対象ブロックＣがフレーム構造で符号化されたＭＢＰ１２０３に属し、周辺ブロックＡがフィールド構造で符号化されたＭＢＰ１２０４に属する場合を示している。周辺ブロックＡ´は、周辺ブロックが属するＭＢの下に位置するＭＢにおける同一の相対位置に位置する。これは、上記図１２（ａ）と同一の理由、つまり、ブロックＣに属する走査線は、ブロックＡ及びＡ´に分散されるので、ブロックＣの有意係数の個数を決定するのに用いるＮＬとして、ブロックＡ及びＡ´の有意係数の個数を採用するためである。
【００９１】
図１３は、図９におけるステップ９０２、つまり、ＣＡＶＬＣ方式を用いて周辺ブロックＢの有意係数の個数ＮＵを求める計算手順（（ａ）及び（ｂ）の２通り）の詳細を説明するフローチャートである。
【００９２】
第１の計算手順を示す図１３（ａ）では、符号列生成部１０４は、周辺ブロックＢに位置するブロック又はマクロブロックが同じＭＢＰ内に位置するか調べる（ステップ１３０１）。同じＭＢＰ内に位置する場合には、それらブロックは同一タイプとなるので、周辺ブロックＢの有意係数の個数ＮＵとして、ＮＵ＝Ｎｕｍ（Ｂ）とする（ステップ１３０５）。そして、同じＭＢＰ内に位置しない場合には、符号化対象ブロックＣがフレーム構造かを調べる（ステップ１３０２）。フレーム構造でなくフィールド構造である場合には、続いて周辺ブロックＢがフレーム構造か否かを調べ（ステップ１３０３）、周辺ブロックＢがフレーム構造である場合には、周辺ブロックＢの有意係数の個数ＮＵとして、ＮＵ＝Ｎｕｍ（Ｂ）（ステップ１３０５）とする。また、周辺ブロックＢがフィールド構造の場合には、有意係数の個数Ｎｕとして、Ｎｕ＝（Ｎｕｍ（Ｂ）＋Ｎｕｍ（Ｂ´））/２として算出する（ステップ１３０８）。
【００９３】
そして、対象ブロックＣが前記フィールド構造の場合には、周辺ブロックＢがフィールド構造か否かを調べ（ステップ１３０４）、周辺ブロックＢがフィールド構造の場合には、有意係数の個数ＮＵとして、ＮＵ＝Ｎｕｍ（Ｂ´）（ステップ１３０６）とする。一方、周辺ブロックＢがフレーム構造の場合には、有意係数の個数Ｎｕとして、ＮＵ＝Ｎｕｍ（Ｂ）又はＮＵ＝（Ｎｕｍ（Ｂ）＋Ｎｕｍ（Ｂ´））/２として算出する（ステップ１３０７）。そして、前記各ステップを経て前記ステップ８０３へ続く。
【００９４】
また、第２の計算手順を示す図１３（ｂ）では、周辺ブロックＢに位置するブロック又はマクロブロックが同じＭＢＰ内に位置するか調べ（ステップ１３０１）、同じＭＢＰ内に位置する場合には、それらブロックは同一タイプであるので、周辺ブロックＢの有意係数の個数ＮＵとして、ＮＵ＝Ｎｕｍ（Ｂ）とする（ステップ１３０５）。そして、同じＭＢＰ内に位置しない場合には、符号化対象ブロックＣはフレーム構造かを調べ（ステップ１３０２）、フレーム構造でない場合には、続いて、周辺ブロックＢがフレーム構造か否かを調べ（ステップ１３０３）、周辺ブロックＢがフレーム構造である場合には、有意係数の個数ＮＵとして、ＮＵ＝Ｎ・Ａ（不定）（ステップ１３０５）とする。また、周辺ブロックＢがフィールド構造の場合には、有意係数の個数として、Ｎｕ＝（Ｎｕｍ（Ｂ）＋Ｎｕｍ（Ｂ´））/２として算出する（ステップ１３０８）。そして、対象ブロックＣが前記フィールド構造の場合には、周辺ブロックＢがフィールド構造か否かを調べ（ステップ１３０４）、周辺ブロックＢがフィールド構造の場合には、有意係数の個数ＮＵとして、ＮＵ＝Ｎｕｍ（Ｂ´）（ステップ１３０６）とする一方、周辺ブロックＢがフレーム構造の場合には、有意係数の個数Ｎｕとして、ＮＵ＝Ｎ・Ａ（不定）とし（ステップ１３０７）、前記ステップ９０３へ続く。
【００９５】
図１４は、符号化対象ブロックＣがフィールド構造及びフレーム構造である場合における周辺ブロックＢ及びＢ´の配置の一例を示す図である。
【００９６】
図１４（ａ）は、符号化対象ブロックＣがフィールド構造で符号化されたＭＢＰ１４０１に属し、周辺ブロックＢがフレーム構造で符号化されたＭＢＰ１４０２に属する場合を示している。周辺ブロックＢ´は、周辺ブロックＢ上に位置する。これは、図８に示されたフレーム構造及びフィールド構造のＭＢＰから分かるように、フィールド構造のブロックＣは、空間的な大きさとして、フレーム構造の２つの縦に連続するブロックＢ及びＢ´と同一となるので、ブロックＣの有意係数の個数を決定するのに用いるＮＵとして、ブロックＢ及びＢ´の有意係数の個数を採用している。ただし、空間的にはブロックＣとブロックＢ´には連続性はないため、Ｓ１３０７に示すように、ＮＵ＝Ｎｕｍ（Ｂ）又はＮＵ＝（Ｎｕｍ（Ｂ）＋Ｎｕｍ（Ｂ´））/２と２通りの計算方法が考えられる。
【００９７】
一方、図１４（ｂ）は、符号化対象ブロックＣがフィールド構造で符号化されたＭＢＰ１４０１に属し、周辺ブロックＢもフィールド構造で符号化されたＭＢＰ１４０３に属する場合を示している。周辺ブロックＢ´は、周辺ブロックＢが属するＭＢの上に位置するＭＢにおける同一の相対位置に位置する。これは、ブロックＣ及びＢ´は同一の種類のフィールド（トップフィールド／ボトムフィールド）構造で符号化されたＭＢに属するので、ブロックＣの有意係数の個数を決定するのに用いるＮＵとして、ブロックＢ´の有意係数の個数を採用するためである。
【００９８】
さらに一方、図１４（ｃ）は、符号化対象ブロックＣがフレーム構造で符号化されたＭＢＰ１４０４に属し、周辺ブロックがフィールド構造で符号化されたＭＢＰ１４０３に属する場合を示している。周辺ブロックＢ´は、周辺ブロックＢが属するＭＢの上に位置するＭＢにおける同一の相対位置に位置する。これは、ブロックＢ及びＢ´とはＭＢＰにおける空間位置が同一領域であるので、ブロックＣの有意係数の個数を決定するのに用いるＮＵとして、ブロックＢ及びＢ´の有意係数の個数を採用するためである。
【００９９】
次に、図１５は、図９におけるステップ９０３、つまり、本実施の形態２に係るＶＬＣテーブルの決定手順（（ａ）及び（ｂ）の２通り）の詳細を示すフローチャートである。
【０１００】
第１の決定手順を示す図１５（ａ）において、符号列生成部１０４は、まず符号化対象ブロックＣの有意係数の個数Ｎを、対象ブロックＢ及びＡの有意係数の個数ＮＬ及びＮＵを用いて、Ｎ＝（ＮＬ＋ＮＵ）/２により決定する（ステップ１５０１）。次に、このＮと前記図１０に示すテーブルを用いてＶＬＣテーブルを決定することが可能となる（ステップ１５０２）。
【０１０１】
また、第２の決定手順を示す図１５（ｂ）においては、符号列生成部１０４は、まずＮＬ、ＮＵのいずれかがＮ・Ａ（不定）かを調べ（ステップ１５０３）、ＮＬとＮＵとが不定の場合には、例えば、Ｎ＝０のＶＬＣテーブルを用いる等のデフォルトを採用し（ステップ１５０４）、一方、ＮＵのみが不定の場合には、Ｎ＝ＮＬとし、そのＮに対応するＶＬＣテーブルを決定し（ステップ１５０５）、さらに一方、ＮＬのみが不定の場合には、Ｎ＝ＮＵとし、そのＮによりＶＬＣテーブルを決定し（ステップ１５０６）、そして、ＮＬ及びＮＵのいずれも不定でない場合、すなわちＮＬ及びＮＵが共に決定している場合には、「その他」を採用し、Ｎ＝（ＮＬ＋ＮＵ）/２として算出し、ＶＬＣテーブルを決定することができる（ステップ１５０７）。
【０１０２】
次に、本実施の形態２に係るＣＡＢＡＣ方式のコンテキストに用いる確率テーブルの決定手順について説明する。
【０１０３】
図１６は、本実施の形態２に係るＣＡＢＡＣ方式でコンテキストを決定し、対応する確率テーブルを決定する場合における計算手順の大きな流れを示すフローチャートである。符号列生成部１０４は、まず、符号化対象ブロックＣの左に位置する周辺ブロックＡのコンテキスト値ｃｔｘＡを決定し（ステップ１６０１）、次に符号化対象ブロックＣの上に位置する周辺ブロックＢのコンテキスト値ｃｔｘＢを決定する（ステップ１６０２）。そして、これらのｃｔｘＡ及びｃｔｘＢの値を利用することにより、符号化対象ブロックＣのコンテキスト値ｃｔｘＣを決定する（ステップ１６０３）。
【０１０４】
そして、決定したコンテキスト値ｃｔｘＣに対応する確率テーブルを用いて可変長符号化を行う。
【０１０５】
以下、図１６に示されたフローチャートにおける各ステップの詳細な手順を説明する。
【０１０６】
図１７は、図１６におけるステップ１６０１、つまり、ＣＡＢＡＣ方式を用いて周辺ブロックＡのコンテキスト値ｃｔｘＡを求める計算手順（（ａ）及び（ｂ）の２通り）の詳細を示すフローチャートである。ここで、コンテキスト値は、どのような情報（ＣＢＰビット、マクロブロックの符号化モード、参照ピクチャ番号、差分量子化パラメータ、等）を扱うかにより、取りうる値が異なる。例えばＣＢＰビット（有意係数を有するか否かを示すビット）を符号化する場合には、コンテキストは各ブロックの有意係数の有無により０と１とに分けられ、例えば、有意係数がある場合には１となり、有意係数が含まれない場合には０となる。従って、ここでのコンテキスト値は有意係数の存否に対応する。その他、マクロブロックの符号化モードを符号化する場合には、コンテキストは各ブロックがスキップブロックであるか、ダイレクトモードで符号化されたブロックであるか、等により、それぞれ０と１に分けられる。また、参照ピクチャ番号、差分量子化パラメータは０であるか否かにより０と１に分けられる。
【０１０７】
図１７（ａ）を用いて第１の計算手順を説明すると、符号列生成部１０４は、周辺ブロックＡに位置するブロック又はマクロブロックが符号化対象ブロックＣと同じＭＢＰ内かを調べる（ステップ１７０１）。同じＭＢＰ内であれば、周辺ブロックＡのコンテキスト値ｃｔｘＡとして、ｃｔｘＡ＝ｃｔｘ（Ａ）（ステップ１７０４）とする。ここでｃｔｘ（ｘ）はブロックｘのコンテキスト値を示す。
【０１０８】
また、周辺ブロックＡが符号化対象ブロックＣと同じＭＢＰ内でない場合には、周辺ブロックＡが符号化対象ブロックＣと同じ構造のタイプのＭＢＰか否かを調べる（ステップ１７０２）。この場合、同じ構造のタイプであれば、周辺ブロックＡのコンテキスト値ｃｔｘＡとして、ｃｔｘＡ＝ｃｔｘ（Ａ）（ステップ１７０４）とする。一方、周辺ブロックＡと対象ブロックＣとの構造が異なるタイプのブロックである場合には、周辺ブロックＡのコンテキスト値ｃｔｘＡとして、コンテキスト値ｃｔｘＡ＝Ｆ１（ｃｔｘ（Ａ），ｃｔｘ（Ａ´））と算出する（ステップ１７０３）。ここで、Ｆ１は、何らかの演算操作を施す関数であり、例えば、Ｆ１（ａ，ｂ）＝ａ＋ｂ、ａ＋２ｂ、ａ＆ｂである。そして、前記ステップ１６０２へ続く。
【０１０９】
そして、図１７（ｂ）を用いて第２の動作手順について説明すると、周辺ブロックＡに位置するブロック又はマクロブロックが符号化対象ブロックＣと同じＭＢＰ内かを調べ（ステップ１７０１）、同じＭＢＰ内であれば、周辺ブロックＡのコンテキスト値ｃｔｘＡとして、ｃｔｘＡ＝ｃｔｘ（Ａ）（ステップ１７０４）とし、また、周辺ブロックＡが符号化対象ブロックＣと同じＭＢＰ内でない場合には、周辺ブロックＡは符号化対象ブロックＣと同じ構造のタイプのＭＢＰか否かを調べる（ステップ１７０２）。この場合、同じ構造のタイプであれば、周辺ブロックＡのコンテキスト値ｃｔｘＡとして、ｃｔｘＡ＝ｃｔｘ（Ａ）（ステップ１７０４）とする一方、周辺ブロックＡと対象ブロックＣとの構造が異なるタイプのブロックである場合には、コンテキスト値ｃｔｘＡをデフォルト値に設定する（ステップ１７０５）。このデフォルト値としては、コンテキスト値が取りうる値のいずれかであり、例えば、０又は１である。
【０１１０】
図１８は、図１６におけるステップ１６０２、つまり、ＣＡＢＡＣ方式を用いて周辺ブロックＢのコンテキスト値を求める計算手順（（ａ）及び（ｂ）の２通り）の詳細を示すフローチャートである。
【０１１１】
第１の計算手順を示す図１８（ａ）では、まず、符号列生成部１０４は、周辺ブロックＢに位置するブロック又はマクロブロックがＭＢＰかを調べる（ステップ１８０１）。同じＭＢＰ内に位置する場合には、コンテキスト値ｃｔｘＢ＝ｃｔｘ（Ｂ）（ステップ１８０５）とする。そして、対象ブロックＣが周辺ブロックＢと同じＭＢＰ内に位置しない場合には、対象ブロックＣがフレーム構造か否かを調べる（ステップ１８０２）。この結果、対象ブロックＣがフレーム構造である場合には、周辺ブロックＢがフレーム構造かを調べる（ステップ１８０３）。周辺ブロックＢがフレーム構造である場合には、コンテキスト値ｃｔｘＢ＝ｃｔｘ（Ｂ）（ステップ１８０５）とする。一方、対象ブロックＣがフレーム構造であり、周辺ブロックＢがフィールド構造である場合には、コンテキスト値ｃｔｘＢ＝Ｆ１（ｃｔｘ（Ｂ），ｃｔｘ（Ｂ´））とする（ステップ１８０８）。
【０１１２】
また、対象ブロックＣがフィールド構造の場合には、次に、周辺ブロックＢがフィールド構造かを調べる（ステップ１８０４）。周辺ブロックＢがフィールド構造である場合には、コンテキスト値ｃｔｘＢ＝ｃｔｘ（Ｂ´）（ステップ１８０６）とする。また、対象ブロックＣがフィールド構造であり、周辺ブロックＢがフレーム構造である場合には、コンテキスト値ｃｔｘＢ＝ｃｔｘ（Ｂ）、又はｃｔｘＢ＝Ｆ１（ｃｔｘ（Ｂ），ｃｔｘ（Ｂ´））とする（ステップ１８０７）。なお、ここでＦ１の処理は上述と同様となる。そして、前記各ステップを経て前記ステップ１６０３へ続く。
【０１１３】
図１９は、図１６におけるステップ１６０３、つまり、本実施の形態２に係る確率テーブルの決定手順の詳細を示すフローチャートである。
【０１１４】
図１９においては、前記図１８に続くステップであり、符号列生成部１０４は、まず符号化対象ブロックＣのコンテキスト値をｃｔｘＣ＝Ｆ２（ｃｔｘ（Ａ），ｃｔｘ（Ｂ））とする（ステップ１９０１）。ここで、Ｆ２は、Ｆ１と同様に何らかの演算操作を施す関数であり、例えば、Ｆ２（ａ，ｂ）＝ａ＋ｂ、ａ＋２ｂ、ａ＆ｂ、ａ、ｂである。次に、このｃｔｘＣを用いることにより確率テーブルを決定することができる（ステップ１９０２）。
【０１１５】
尚、上述した動画像符号化のみでなく動画像復号化において、ＣＡＶＬＣ方法におけるＶＬＣテーブルの決定方法、ＣＡＢＡＣ方法におけるコンテキストの決定方法は、前記図３に示す可変長復号部３１１における動作となり、前記符号列生成部１０４と同様の動作を行うものとなる。ここで、可変長復号部３１１において、ＶＬＣテーブルの決定、コンテキストの決定を行う際に必要となる、ブロックがＭＢＰの境界であるか否か、またＭＢＰがフレームまたはフィールドのいずれの構造で符号化されているかを示す情報は、符号列解析部３０１から得られる。
【０１１６】
以上のように、実施の形態２に係る可変長符号化方法及び可変長復号化方法においては、ＣＡＶＬＣ方式やＣＡＢＡＣ方式を用いる際に、複数の周辺ブロックの有意係数の情報を用いる。従って、より効果的に符号化効率が向上するＶＬＣテーブルや確率テーブルの選択方法を実現することができる。尚、本実施の形態２において、マクロブロックの構造のタイプをＭＢＰごとにフレーム構造及びフィールド構造に相互に変換することができるのは言うまでもない。また、フレーム構造及びフィールド構造のいずれを選択する単位は、ＭＢＰでなくても構わず、例えばマクロブロックを単位としても良い。
【０１１７】
また、本実施の形態においては、図９および図１６を用いて説明した形態において、符号化または復号化対象ブロックの左側に位置するブロックの有意係数の個数またはコンテキストを求めた後、符号化または復号化対象ブロックの上側に位置するブロックの有意係数の個数またはコンテキストを求める場合について説明したが、これらの順序は逆であっても構わず、図９におけるＳ９０３、図１６におけるＳ１６０３の決定結果には影響は及ぼさない。
【０１１８】
さらにここで、上記実施の形態で示した可変長符号化方法や可変長復号化方法の応用例とそれを用いたシステムを説明する。
【０１１９】
図２０は、コンテンツ配信サービスを実現するコンテンツ供給システムex１００の全体構成を示すブロック図である。通信サービスの提供エリアを所望の大きさに分割し、各セル内にそれぞれ固定無線局である基地局ex１０７〜ex１１０が設置されている。
【０１２０】
このコンテンツ供給システムex１００は、例えば、インターネットex１０１にインターネットサービスプロバイダex１０２および電話網ex１０４、および基地局ｅｘ１０７〜ｅｘ１１０を介して、コンピュータex１１１、ＰＤＡ（personal digital assistant）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２０７はＳＤカード等のプラスチックケース内に電気的に書換えや消去が可能な不揮発性メモリであるＥＥＰＲＯＭ（Electrically Erasable and Programmable Read Only Memory）の一種であるフラッシュメモリ素子を格納したものである。
【０１２７】
さらに、携帯電話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４０７などの装置により符号化ビットストリームを復号化してこれを再生する。また、記録媒体であるCDやDVD等の蓄積メディアex４０２に記録した符号化ビットストリームを読み取り、復号化する再生装置ex４０３にも上記実施の形態で示した画像復号化装置を実装することが可能である。この場合、再生された映像信号はモニタex４０４に表示される。また、ケーブルテレビ用のケーブルex４０５または衛星／地上波放送のアンテナex４０６に接続されたセットトップボックスex４０７内に画像復号化装置を実装し、これをテレビのモニタex４０８で再生する構成も考えられる。このときセットトップボックスではなく、テレビ内に画像復号化装置を組み込んでも良い。また、アンテナex４１１を有する車ex４１２で衛星ex４１０からまたは基地局ex１０７等から信号を受信し、車ex４１２が有するカーナビゲーションex４１３等の表示装置に動画を再生することも可能である。
【０１３８】
更に、画像信号を上記実施の形態で示した画像符号化装置で符号化し、記録媒体に記録することもできる。具体例としては、DVDディスクｅｘ４２１に画像信号を記録するDVDレコーダや、ハードディスクに記録するディスクレコーダなどのレコーダｅx４２０がある。更にSDカードｅｘ４２２に記録することもできる。レコーダｅｘ４２０が上記実施の形態で示した画像復号化装置を備えていれば、DVDディスクｅｘ４２１やSDカードｅｘ４２２に記録した画像信号を再生し、モニタｅｘ４０８で表示することができる。
【０１３９】
なお、カーナビゲーションex４１３の構成は例えば図２２に示す構成のうち、カメラ部ex２０３とカメラインターフェース部ex３０３、画像符号化部ｅｘ３１２を除いた構成が考えられ、同様なことがコンピュータex１１１やテレビ（受信機）ex４０１等でも考えられる。
【０１４０】
また、上記携帯電話ex１１４等の端末は、符号化器・復号化器を両方持つ送受信型の端末の他に、符号化器のみの送信端末、復号化器のみの受信端末の３通りの実装形式が考えられる。
【０１４１】
このように、上記実施の形態で示した可変長符号化方法あるいは可変長復号化方法を上述したいずれの機器・システムに用いることは可能であり、そうすることで、上記実施の形態で説明した効果を得ることができる。
【図面の簡単な説明】
【０１４２】
【図１】本発明の実施の形態を説明するためのブロック図
【図２】本発明の実施の形態を説明するための模式図
【図３】本発明の実施の形態を説明するためのブロック図
【図４】本発明の実施の形態および従来例を説明するための模式図
【図５】従来例を説明するための模式図
【図６】従来例を説明するための模式図
【図７】本実施の形態２に係る動画像符号化装置の構成を示す機能ブロック図
【図８】実施の形態２に係るフレーム構造で符号化されるＭＢＰのデータ構造とフィールド構造で符号化されるＭＢＰのデータ構造との関係を示す説明図
【図９】実施の形態２に係るＣＡＶＬＣ方式でコンテキストを決定し、対応するＶＬＣテーブルを決定する場合における計算手順の大きな流れを示すフローチャート
【図１０】実施の形態２に係る有意係数の個数とＶＬＣテーブルとの関係を例示する表
【図１１】実施の形態２に係る周辺ブロックＡの有意係数の個数ＮＬを求める計算手順（（ａ）及び（ｂ）の２通り）の詳細を示すフローチャート
【図１２】実施の形態２に係る符号化対象ブロックＣがフィールド構造及びフレーム構造である場合における周辺ブロックＡ及びＡ´の配置の一例を示す図
【図１３】実施の形態２に係るＣＡＶＬＣ方式を用いて周辺ブロックＢの有意係数の個数ＮＵを求める計算手順（（ａ）及び（ｂ）の２通り）の詳細を説明するフローチャート
【図１４】実施の形態２に係る符号化対象ブロックＣがフィールド構造及びフレーム構造である場合における周辺ブロックＢ及びＢ´の配置の一例を示す図
【図１５】本実施の形態２に係るＶＬＣテーブルの決定手順（（ａ）及び（ｂ）の２通り）の詳細を示すフローチャート
【図１６】実施の形態２に係るＣＡＢＡＣ方式でコンテキストを決定し、対応する確率テーブルを決定する場合における計算手順の大きな流れを示すフローチャート
【図１７】実施の形態２に係るＣＡＢＡＣ方式を用いて周辺ブロックＡのコンテキスト値ｃｔｘＡを求める計算手順（（ａ）及び（ｂ）の２通り）の詳細を示すフローチャート
【図１８】実施の形態２に係るＣＡＢＡＣ方式を用いて周辺ブロックＢのコンテキスト値を求める計算手順（（ａ）及び（ｂ）の２通り）の詳細を示すフローチャート
【図１９】本実施の形態２に係る確率テーブルの決定手順の詳細を示すフローチャート
【図２０】コンテンツ供給システムの全体構成を示すブロック図
【図２１】動画像符号化方法、動画像復号化方法を用いた携帯電話の例
【図２２】携帯電話のブロック図
【図２３】ディジタル放送用システムの例
【図２４】従来の確率テーブルの算出の仕方を示す参考図
【符号の説明】
【０１４３】
１０１、１０７  フレームメモリ
１０２  差分演算部
１０３  予測誤差符号化部
１０４  符号列生成部
１０５  予測誤差復号化部
１０６  加算演算部
１０８  動きベクトル検出部
１０９  モード選択部
７０１  ブロックカウンタ
ＭＢＰ  マクロブロックペア
【図１】
2008259224.tif 000003
【図２】
2008259224.tif 000004
【図３】
2008259224.tif 000005
【図４】
2008259224.tif 000006
【図５】
2008259224.tif 000007
【図６】
2008259224.tif 000008
【図７】
2008259224.tif 000009
【図８】
2008259224.tif 000010
【図９】
2008259224.tif 000011
【図１０】
2008259224.tif 000012
【図１１】
2008259224.tif 000013
【図１２】
2008259224.tif 000014
【図１３】
2008259224.tif 000015
【図１４】
2008259224.tif 000016
【図１５】
2008259224.tif 000017
【図１６】
2008259224.tif 000018
【図１７】
2008259224.tif 000019
【図１８】
2008259224.tif 000020
【図１９】
2008259224.tif 000021
【図２０】
2008259224.tif 000022
【図２１】
2008259224.tif 000023
【図２２】
2008259224.tif 000024
【図２３】
2008259224.tif 000025
【図２４】
2008259224.tif 000026