動画像データに含まれる各ピクチャを複数のブロックに分割して符号化する動画像符号化装置であって、複数のグループのうち、各ブロックの属するグループを決定するグループ決定部と、前記グループ毎に復号時刻を算出するグループ復号時刻情報算出部と、前記各ブロックの属するグループを表すグループ情報を出力データに付加するグループ情報付加部と、前記グループに含まれる全てのブロックの復号に必要なデータが、所定の伝送レートで動画像復号装置に伝送された場合に、前記復号時刻情報算出部で算出された当該グループの復号時刻までに当該動画像復号装置のストリーム受信バッファに到達するように、当該グループに含まれる各ブロックの符号量を制御する符号量制御部と、前記符号量の制御情報に基づいて前記各ブロックを符号化する符号化処理部と、を有する動画像符号化装置。前記グループ復号時刻情報算出部は、符号化対象ピクチャの最初のグループに対応する前記復号時刻と、前記符号化対象ピクチャの直前のピクチャの最後のグループに対応する前記復号時刻との差分値が、前記符号化対象ピクチャの2番目以降のグループに含まれる、連続する二つのグループのそれぞれの前記復号時刻間の差分値よりも大きくなるように前記グループ毎の復号時刻を算出する、請求項1に記載の動画像符号化装置。動画像データに含まれる各ピクチャを複数のブロックに分割して符号化する動画像符号化方法であって、複数のグループのうち、各ブロックの属するグループを決定し、前記グループ毎に復号時刻を算出し、前記各ブロックの属するグループを表すグループ情報を出力データに付加し、前記グループに含まれる全てのブロックの復号に必要なデータが、所定の伝送レートで動画像復号装置に伝送された場合に、当該グループの復号時刻までに当該動画像復号装置のストリーム受信バッファに到達するように、当該グループに含まれる各ブロックの符号量を制御し、前記符号量の制御情報に基づいて前記各ブロックを符号化する、ことを含む動画像符号化方法。前記グループ毎の復号時刻は、符号化対象ピクチャの最初のグループに対応する前記復号時刻と、前記符号化対象ピクチャの直前のピクチャの最後のグループに対応する前記復号時刻との差分値が、前記符号化対象ピクチャの2番目以降のグループに含まれる、連続する二つのグループのそれぞれの前記復号時刻間の差分値よりも大きくなるように算出される、請求項3に記載の動画像符号化方法。動画像データに含まれる各ピクチャを複数のブロックに分割して符号化することをコンピュータに実行させる動画像符号用コンピュータプログラムであって、複数のグループのうち、各ブロックの属するグループを決定し、前記グループ毎に復号時刻を算出し、前記各ブロックの属するグループを表すグループ情報を出力データに付加し、前記グループに含まれる全てのブロックの復号に必要なデータが、所定の伝送レートで動画像復号装置に伝送された場合に、当該グループの復号時刻までに当該動画像復号装置のストリーム受信バッファに到達するように、当該グループに含まれる各ブロックの符号量を制御し、前記符号量の制御情報に基づいて前記各ブロックを符号化する、ことをコンピュータに実行させる動画像符号化用コンピュータプログラム。前記グループ毎の復号時刻は、符号化対象ピクチャの最初のグループに対応する前記復号時刻と、前記符号化対象ピクチャの直前のピクチャの最後のグループに対応する前記復号時刻との差分値が、前記符号化対象ピクチャの2番目以降のグループに含まれる、連続する二つのグループのそれぞれの前記復号時刻間の差分値よりも大きくなるように算出される、請求項5に記載の動画像符号化用コンピュータプログラム。動画像符号化装置は、理想復号装置の受信バッファにオーバーフロー及びアンダーフローを起こさせないために、理想復号装置が、あるピクチャを復号する時刻に、そのピクチャのデータが受信バッファに揃っていることを保証するように符号量を制御する。受信バッファのアンダーフローとは、動画像符号化装置が一定の伝送レートでデータストリームを送信した場合に、各ピクチャの符号量が多く、動画像復号装置が復号表示するべき時刻までにピクチャを復号するのに必要なデータの伝送が完了せず、復号受信バッファ内に必要データが存在していないことである。この場合、動画像復号装置は復号処理を行うことが出来ないため、フレームスキップが発生することとなる。動画像復号装置は、受信バッファのアンダーフローを起こさずに復号処理できるように、ストリームを受信時刻から所定の時間だけ遅延させてからピクチャを表示する。上述したように、理想復号装置では、処理時間0で、瞬時的に復号処理が完了すると規定される。そのため、動画像符号化装置へのi番目ピクチャの入力時刻をt、理想復号装置における、i番目ピクチャの復号時刻をdtとすれば、そのピクチャが表示可能となる時刻は、同様にdtとなる。全てのピクチャにおいてピクチャの表示期間{tt}と{dtdt}が等しくなるので、復号時刻dtは、入力時刻tから固定時間dly分だけ遅延させた時刻{dttdly}となる。従って、動画像符号化装置は、時刻dtまでに復号に必要なデータを動画像復号装置の受信バッファに伝送完了させなければならない。図1を参照しつつ、従来の受信バッファの様子を説明する。図1において横軸は時刻を表し、縦軸は受信バッファのバッファ占有量を表す。そして実線のグラフ100は、各時刻におけるバッファ占有量を表す。受信バッファでは、所定の伝送レートでバッファ占有量が回復し、各ピクチャの復号時刻にそのピクチャを復号するために用いられる分のデータがバッファから引き抜かれる。i番目ピクチャのデータが、時刻atから受信バッファに入力開始され、i番目ピクチャの最後のデータが時刻ftに入力される。理想復号装置は時刻dtでi番目ピクチャの復号を完了し、その時刻dtにおいてi番目ピクチャが表示可能となる。理想復号装置が瞬時復号である一方で、実際の動画像復号装置は所定の復号処理時間を必要とし、一般には1ピクチャの復号処理時間は、ピクチャの表示期間よりも短いが、ピクチャの表示期間に近い時間が必要となる。時刻atからftまでi番目ピクチャのデータが受信バッファに入力されるが、各ブロックの復号に必要なデータがatからft内のどの時刻に到着するか保証されない。そのため、実際の動画像復号装置は、時刻ftからi番目ピクチャの復号処理を開始することとなる。従って、1ピクチャの復号処理に必要な最悪の処理時間をctとすれば、実際の動画像復号装置は時刻ftctにしか復号処理を完了することが保証できない。動画像符号化装置が保証しているのは、時刻dtまでに、そのピクチャの復号に必要なデータが復号受信バッファに到着していること、すなわち、ftがdt以前となることである。そのため、ftが最も遅くなる場合、ftはdtと等しくなる。このとき、復号処理が完了することが保証される時刻は、dtctとなる。表示するピクチャの間隔が一定となるよう、全てのピクチャを表示するには、動画像復号装置は、各ピクチャの表示時刻を理想復号装置よりも少なくともctだけ遅延させなければならない。そこで本明細書は、復号処理の遅延を低減する動画像符号化装置及び動画像符号化方法を提供することを目的とする。一つの実施形態によれば、動画像データに含まれる各ピクチャを複数のブロックに分割して符号化する動画像符号化装置が提供される。この動画像符号化装置は、複数のグループのうち、各ブロックの属するグループを決定するグループ決定部と、グループ毎に復号時刻を算出するグループ復号時刻情報算出部と、各ブロックの属するグループを表すグループ情報を出力データに付加するグループ情報付加部と、グループに含まれる全てのブロックの復号に必要なデータが、所定の伝送レートで動画像復号装置に伝送された場合に、復号時刻情報算出部で算出されたそのグループの復号時刻までに動画像復号装置のストリーム受信バッファに到達するように、そのグループに含まれる各ブロックの符号量を制御する符号量制御部と、符号量の制御情報に基づいて各ブロックを符号化する符号化処理部とを有する。また他の実施形態によれば、動画像データに含まれる各ピクチャを複数のブロックに分割して符号化する動画像符号化方法が提供される。この動画像符号化方法は、複数のグループのうち、各ブロックの属するグループを決定し、グループ毎に復号時刻を算出し、各ブロックの属するグループを表すグループ情報を出力データに付加し、グループに含まれる全てのブロックの復号に必要なデータが、所定の伝送レートで動画像復号装置に伝送された場合に、そのグループの復号時刻までに動画像復号装置のストリーム受信バッファに到達するように、そのグループに含まれる各ブロックの符号量を制御し、符号量の制御情報に基づいて各ブロックを符号化することを含む。さらに他の実施形態によれば、動画像データに含まれる各ピクチャを複数のブロックに分割して符号化する動画像符号化用コンピュータプログラムが提供される。この動画像符号化用コンピュータプログラムは、複数のグループのうち、各ブロックの属するグループを決定し、グループ毎に復号時刻を算出し、各ブロックの属するグループを表すグループ情報を出力データに付加し、グループに含まれる全てのブロックの復号に必要なデータが、所定の伝送レートで動画像復号装置に伝送された場合に、そのグループの復号時刻までに動画像復号装置のストリーム受信バッファに到達するように、そのグループに含まれる各ブロックの符号量を制御し、符号量の制御情報に基づいて各ブロックを符号化することをコンピュータに実現させる命令を含む。本発明の目的及び利点は、請求項において特に指摘されたエレメント及び組み合わせにより実現され、かつ達成される。上記の一般的な記述及び下記の詳細な記述の何れも、例示的かつ説明的なものであり、請求項のように、本発明を限定するものではないことを理解されたい。本明細書に開示された動画像符号化装置及び動画像符号化方法は、復号処理の遅延を低減できる。以下、図を参照しつつ、一つの実施形態による動画像符号化装置について説明する。図2は、一つの実施形態による、動画像符号化装置の概略構成図である。動画像符号化装置10は、符号化処理部11と、符号量制御部12と、グループ決定部13と、グループ復号時刻情報算出部14と、グループ情報付加部15と、ビットカウンタ25とを有する。動画像符号化装置10が有するこれらの各部は、それぞれ、別個の回路として動画像符号化装置10に実装される。あるいは、動画像符号化装置10が有するこれらの各部は、その各部の機能を実現する回路が集積された一つの集積回路として動画像符号化装置10に実装されてもよい。あるいはまた、動画像符号化装置10が有するこれらの各部は、動画像符号化装置10が有するプロセッサ上で実行されるコンピュータプログラムにより実現される機能モジュールであってもよい。動画像データに含まれる符号化対象ピクチャは、図示しない制御部によりブロック単位に分割され、ブロックごとに符号化処理部11に入力される。各ブロックは、例えば、16×16画素を有する。各ブロックは直交変換部21に入力される。そして直交変換部21は、各ブロックに対して、それぞれ、例えば離散コサイン変換などの直交変換処理を行って周波数係数の組を算出する。算出された周波数係数の組は量子化部22に入力される。なお、各ブロックに対して、既に符号化されたピクチャを動き補償することなどにより予測画像が生成される場合には、各ブロックと予測画像間の差分演算により求められる予測誤差画像が直交変換部21に入力されてもよい。なお、ピクチャは、フレームまたはフィールドの何れであってもよい。フレームは、動画像データ中の一つの静止画像であり、一方、フィールドは、フレームから奇数行のデータあるいは偶数行のデータのみを取り出すことにより得られる静止画像である。また、符号化された動画像は、カラー動画像であってもよく、あるいは、モノクロ動画像であってもよい。量子化部22は、例えば、符号量制御部12の量子化値算出部24により算出された量子化値に応じて決定される量子化スケールで各周波数係数を除算することにより、各周波数係数を量子化する。この量子化により、各周波数係数の情報が削減される。量子化値が大きくなるほど、量子化の精度が悪くなり、各周波数係数の情報が大きく削減される。量子化部22により量子化された各周波数係数は、可変長符号化部23に入力される。また量子化された各周波数係数は、以降に符号化されるピクチャまたはブロックに対する予測画像を作成するために逆量子化され、さらに逆直交変換されて図示しない画像メモリに記憶されてもよい。可変長符号化部23は、ブロックの圧縮データ量子化された各周波数係数、及び符号化モード等のブロックヘッダ情報を含むを可変長符号化する。そして可変長符号化部23は、その可変長符号で表されるビット系列を出力データストリームに含める。また、可変長符号化部23にて発生したビット系列のビット量はブロックごとにビットカウンタ25にて加算され、発生符号量として符号量制御部12のバッファ占有量算出部26に通知される。可変長符号化部23の実施形態の詳細については後述する。グループ決定部13は、符号化処理中のブロックの属するグループを、図示しない制御部から受け取ったブロックカウント情報に基づいて所定方法に従って決定する。ブロックカウント情報は、ピクチャに含まれる各ブロックの番号を表す情報であり、例えば、ピクチャの左上端のブロックに対する番号が1に設定され、ラスタスキャン順に従って各ブロックに番号が割り当てられる。そしてピクチャの右下端のブロックに対して、最大の番号が割り当てられる。なお、ブロックカウント情報は、他の順序に従って各ブロックに割り当てられた番号を含んでもよい。グループ決定部13は、グループごとの復号処理時間を均等化するために、各グループに含まれるブロックの数が出来る限り等しくなるように複数のグループを決定することが好ましい。例えば、グループ決定部13は、ブロックライン単位で各ブロックをグループに分割すれば、任意のピクチャサイズにおいて各グループに含まれるブロックの数を等しくすることができる。例えば、ピクチャサイズが、高精細度テレビジョン放送HighDefinitionTelevision、HDTV相当の1920画素×1088画素であり、ブロックサイズが16画素×16画素であれば、ブロックライン数は68である。したがって、この場合、符号化対象ピクチャに含まれる各ブロックは、68個のグループの何れかに分類される。なお、グループに含まれるブロックの数は、1から画面全体のブロック数までの間の値にしてもよい。グループ決定部13は、符号化対象ブロックが属するグループの識別情報を符号量制御部12のバッファ占有量算出部26へ通知する。またグループ決定部13は、グループの総数Nをグループ復号時刻情報算出部14及びグループ情報付加部15へ通知する。なお、グループ決定部13は、各グループの先頭に位置するブロックのインデックスをグループ情報付加部15へ通知してもよい。以下、符号化対象ピクチャに含まれる水平方向のブロック数をM、垂直方向のブロック数をNとして、全ブロックを1ブロックライン単位でN個のグループに等分割した場合を例に説明する。グループ復号時刻情報算出部14は、符号化対象ピクチャが符号化順に沿ってi番目のピクチャであるとして、i番目ピクチャの入力時刻tから所定の遅延時間dly分遅延させたそのピクチャの復号時刻dt{tdly}に基づいて、n番目のグループが復号される時刻を表す復号時刻dgtを算出する。または、グループ復号時刻情報算出部14は、復号時刻として、dgtの代わりに、dgtと等価な{dgtdgt}を算出してもよい。また、グループ復号時刻情報算出部14は、復号時刻を、適当な単位、例えば、190000秒単位の倍数となるように丸めてもよい。グループ復号時刻情報算出部14は、例えば、各グループの復号時刻を、各グループの復号処理に要する時間を均等とするために、1ピクチャ当たりの復号処理に要する時間をグループ数Nで等分割するように決定する。この場合、n番目のグループの復号時刻は、次式に従って算出される。また、復号処理に要する時間は、グループごとに均等でなくてもよい。特に、グループ復号時刻情報算出部14は、次式のように、最初に符号化復号されるグループに対応する復号時刻dgtのみ、1ピクチャ当たりの復号処理に要する時間を等分割した場合の復号時刻よりも遅らせてもよい。なお、dt、dtは、それぞれ、i番目のピクチャ及び番目のピクチャの復号時刻である。さらにグループ復号時刻情報算出部14は、2番目以降に符号化復号されるグループの復号時刻dgtを、次式のように決定してもよい。このように復号時刻を決定することで、グループ復号時刻情報算出部14は、バッファ占有量算出部26にて算出されるバッファ占有量を最初のグループの符号化処理開始前に大きくすることができる。その結果、符号量制御における自由度が向上する。グループ復号時刻情報算出部14は、各グループの復号時刻を含む復号時刻情報を、バッファ占有量算出部26及びグループ情報付加部15へ出力する。バッファ占有量算出部26は、理想復号装置のストリーム受信バッファのバッファ占有量の推定値を計算する。伝送するビットレートをRとし、バッファ占有量をdで表す。符号化処理中のブロックの可変長符号化処理が完了し、その発生符号量がbであった場合、bがビットカウンタ25からバッファ占有量算出部26へ通知される。そしてバッファ占有量算出部26は、dからbを減算する。バッファ占有量算出部26は、各グループの最後のブロックの符号化処理が行われた後に、次式に従ってバッファ占有量dを回復させる。バッファ占有量算出部26は、一つのブロックについての可変長符号化処理が終了する度に、求めたバッファ占有量dを量子化値算出部24へ通知する。量子化値算出部24は、バッファ占有量に基づいて、各ブロックに対する量子化値を算出する。その際、量子化値算出部24は、グループに含まれる全てのブロックの発生符号量の合計が、そのグループの最初のブロックの符号化処理を開始する直前のバッファ占有量d以下となるように、すなわち、符号化処理中にdが負値とならないように量子化値を制御する。量子化値算出部24は、例えば、MPEG2における標準化団体参照ソフトウェアTestModel5非特許文献1を参照における量子化値算出方法に従って量子化値を算出する。次に、量子化値算出部24は、バッファ占有量dを所定の閾値DTH1と比較する。量子化値をその取り得る値の範囲のうちの最大値としたときに、各ブロックで発生する最大の符号量をb0、符号化処理中のブロックの属するグループで、まだ符号化処理を行っていないブロックの数をM0とすると、閾値DTH1は、次式で表される。5式におけるoffsetはマージン項である。dと閾値DTH1を比較した結果、dがDTH1よりも小さければ、量子化値算出部24は、量子化値を最大値とする。またb0として、周波数係数を全て0としたときのブロックの符号量を用いてもよい。このとき、dがDTH1よりも小さければ、量子化値算出部24は、符号化対象ブロックの全ての周波数係数が0に量子化されるように量子化値を決定する。この制御により、グループ内の符号化処理が済んでいない残りブロックの符号量の平均値がb0を超えなければ、仮想的な復号受信バッファはアンダーフローしない。これにより、符号量制御部12は、動画像符号化装置10からの出力ストリームを実際に所定のレートRに従って動画像復号装置へ伝送すれば、動画像復号装置の受信バッファがアンダーフローしないように動画像データの符号量を制御することが可能となる。量子化値算出部24は、求めた量子化値を量子化部22へ通知する。動画像符号化装置10は、動画像復号装置と、各ブロックが属するグループ及びグループごとの復号時刻を共有するために、少なくとも、各グループに属するブロックを表すグループ情報及び各グループの復号時刻を含む復号時刻情報を出力データストリームに付加する。そして動画像符号化装置10は、グループ情報及び復号時刻情報を動画像復号装置へ通知する。そこで、グループ情報付加部15は、例えば、グループ情報を、各ピクチャ、もしくは所定のピクチャ間隔で、出力データストリームのヘッダ情報に付加する。ヘッダ情報は、例えば、MPEG2に規定される、シーケンスヘッダーSequenceHeader、またはH264に規定されるシーケンスパラメータセットSequenceParameterSet若しくはSupplementalEnhancementInformationとすることができる。なお、グループごとの復号時刻は、MPEG2に規定されるピクチャヘッダーPictureHeader、またはH264に規定されるスライスヘッダーSliceHeaderなど、各ピクチャに必ず付随されるヘッダ情報に付加されてもよい。各グループに含まれるブロックの数が等しくなるようにグループが決定されている場合、動画像符号化装置10は動画像復号装置へ全ブロックがN個のグループに等分割されたことを通知する。そのために、グループ決定部13からグループ情報付加部15に、グループ情報としてグループ数Nが通知される。グループ情報付加部15は、そのグループ情報を符号化する。MPEG2及びH264では、マクロブロックと呼ばれる16x16画素のブロック単位で符号化が行われており、このブロック数は通常20bitで表現可能な範囲を超えない。グループの数Nの最大値は、せいぜいブロック数の最大値と等しいことから、Nの符号化も固定bit長で符号化すればよい。また、各グループに含まれるブロックの数が等しいと限られない場合、グループ決定部13からグループ情報付加部15に対して、グループ数Nとともに、各グループの先頭ブロックのインデックス情報がグループ情報として通知される。グループ情報付加部15はまず、グループ数Nを符号化し、順次各グループの先頭ブロックのインデックス情報を符号化する。先頭ブロックのインデックス情報に対する符号化方法も、例えば、固定bit長の符号化方式が用いられる。また、グループ情報付加部15は、グループ数N及び各グループの先頭ブロックのインデックス情報を符号化するために、ハフマン符号といった可変長符号化方式など、他の符号化方式を用いてもよい。また、グループごとの復号時刻が、グループ復号時刻情報算出部14からグループ情報付加部15に通知される。その際、1番目のグループから最後のグループであるN番目のグループまで、復号時刻は、dgtdgtと差分値の形式にしてグループ復号時刻情報算出部14からグループ情報付加部15に通知される。なお、第1のグループの復号時刻に関して、dgtは、直前のピクチャの最後のグループの復号時刻dgt{dt}に設定される。グループ情報付加部15は、各グループの復号時刻を符号化し、その符号化された復号時刻を各ピクチャのデータに付加して、動画像復号装置に通知する。グループ情報付加部15は、各差分値を、適当な精度、例えば、190000秒の精度で量子化した後に、32bit程度の固定bit長で符号化すればよい。また、ここでは、固定bit長で符号化する例を説明したが、グループ情報付加部15は、各グループの復号時刻を表す差分値を、任意の可変長符号化方式を用いて符号化してもよい。動画像復号装置は、通知されたグループ数Nと各グループの復号時刻情報に基づき、表示遅延量を算出する。各グループに含まれるブロック数が等しくなるように各グループが設定されている場合、表示遅延量は、1ピクチャの復号処理に必要な最悪の処理時間をctとして、ctNとなる。上記の実施形態による動画像符号化装置10により、動画像復号装置における動画像の復号の低遅延化が図られることを、図3及び図4を参照しつつ説明する。図3は、動画像符号化装置10により伝送される符号化動画像データストリームが蓄積される受信バッファのバッファ占有量の遷移を示す図である。また図4は、第1のグループの復号時刻を遅らせた場合における、受信バッファのバッファ占有量の遷移を示す図である。なお、図3及び図4において、横軸は時間を表し、縦軸はバッファ占有量を表す。また、グループ数N4であるとする。そして図3におけるグラフ300は、バッファ占有量の時間遷移を表す。また矢印301で表される期間は、各グループの復号に要する最大時間ctNを表す。同様に、図4におけるグラフ400は、バッファ占有量の時間遷移を表す。n番目のグループに含まれるブロックを復号するのに必要なデータが、1式で表される時刻dgtまでに受信バッファに到着するように、動画像符号化装置10は各ブロックの符号量を制御する。1ピクチャの復号処理に必要な最悪の処理時間ctと番目のピクチャ及びi番目のピクチャの最後のグループの復号時刻dt{dgt}、dt{dgt}の間に次式が成り立つ。ここで、各グループに含まれるブロック数が等しい場合、図3に示すように次式が成り立つので、i番目のピクチャの最後のグループの復号時刻dgtまでに、i番目のピクチャの1~番目のグループのブロックについての復号処理が完了している。N番目グループに含まれるブロックの復号に必要なデータが時刻dgtに動画像復号装置の受信バッファに到着したとすると、そこからN番目グループの復号処理を開始したとして、復号処理時間としてctNが必要となる。そのため、次式で示される時刻に全ブロックの復号が完了し、表示可能となる。従って、理想復号装置に対する表示可能時刻の遅延が、ctからctNに短縮する。グループ単位で復号時刻を算出する場合、i番目のピクチャの第1のグループの復号時刻dgtは、i番目のピクチャの復号時刻dtと比較して、{dtdt}Nだけ、早くなる。そのため、図1および図3の点線302にて示される1ピクチャ単位のバッファ占有量が示すとおり、従来技術と比較して受信バッファの占有量が低下し、そのグループに使用可能な符号量が減少するとともに、グループ間での符号量の配分の自由度が減少する。図1のように受信バッファに各ピクチャのデータが入力されてから、1ピクチャの表示期間程度で、各ピクチャが復号されるような低遅延においては、バッファ占有量が小さくなるので、相対的にバッファ占有量が減少する影響が大きくなる。このような問題を回避するために、バッファ占有量を回復させることを目的として、2式で示すように第1のグループの復号時刻を遅くすることが好ましい。第1のグループの復号時刻を遅らせることで、図4に示すとおり、バッファに伝送可能なビット量が増えて、従って、ピクチャの発生符号量の自由度を向上させることが出来る。このとき、最も遅い復号完了時刻は、次式で算出される値となる。なお、関数minは、変数x、yのうち、小さい方の値を返す関数である。9式を8式と比較すると、第1のグループの復号時刻を遅らせても、ctが大きい動画像復号装置については、第1のグループの復号時刻を遅らせない場合に対して遅延が増加するものの、ctが十分短い動画像復号装置においては、遅延は増加しないことがわかる。図5は、一つの実施形態による動画像符号化装置10により実行される動画像符号化処理の動作フローチャートである。動画像符号化装置10は、ピクチャごとに、以下の動画像符号化処理を実行する。グループ決定部13は、各ブロックの属するグループを決定するステップS101。そしてグループ決定部13は、ブロックの属するグループを表す識別情報を符号量制御部12のバッファ占有量算出部26へ通知する。またグループ決定部13は、グループの総数Nをグループ復号時刻情報算出部14及びグループ情報付加部15へ通知する。なお、グループ決定部13は、各グループの先頭に位置するブロックのインデックスをグループ情報付加部15へ通知してもよい。次に、グループ復号時刻情報算出部14は、グループ毎に復号時刻を算出するステップS102。そしてグループ復号時刻情報算出部14は、各グループの復号時刻を表す情報をバッファ占有量算出部26及びグループ情報付加部15へ通知する。また、グループ情報付加部15は、各ブロックの属するグループを表すグループ情報及び復号時刻情報を符号化し、その符号化されたグループ情報及び復号時刻情報を出力データストリームに付加するステップS103。一方、バッファ占有量算出部26は、グループに含まれる全てのブロックの復号に必要なデータが、所定の伝送レートで動画像復号装置に伝送された場合における、各グループの復号時刻における受信バッファのバッファ占有量を推定するステップS104。その際、バッファ占有量算出部26は、ビットカウンタ25から受け取った、それまでに符号化されたグループ内のブロックの符号量を参照する。そしてバッファ占有量算出部26は、推定したバッファ占有量を符号量制御部12の量子化値算出部24へ通知する。量子化値算出部24は、各グループの復号時刻までに各グループの全てのデータが動画像復号装置のストリーム受信バッファに到達するように、各グループに属するブロックの符号量を制御するステップS105。そして量子化値算出部24は、その符号量に応じた量子化値を符号量の制御情報として算出し、その量子化値を符号化処理部11の量子化部22へ通知する。符号化処理部11の直交変換部21は、各ブロックごとに直交変換処理を行って、各ブロックの周波数係数の組を算出するステップS106。そして直交変換部21は、各ブロックの周波数係数の組を量子化部22へ出力する。量子化部22は、符号量の制御情報である量子化値に基づいて各ブロックの周波数係数の組を量子化するステップS107。そして量子化部22は、量子化された各周波数係数を符号化処理部11の可変長符号化部23へ出力する。可変長符号化部23は、量子化された各周波数係数を可変長符号化するステップS108。そして可変長符号化部23は、得られた可変長符号を出力する。この可変長符号とグループ情報付加部15からの出力されたグループ情報、復号時刻情報などが出力データストリームに格納される。また可変長符号化部23は、ブロックごとの符号量をビットカウンタ25へ出力する。ステップS108の後、動画像符号化装置10は、動画像符号化処理を終了する。以下に、四つの可変長符号化部23の実施形態、及び各実施形態における、グループの最終ビットの定義を説明する。グループの最終ビットは、グループ内の最終ブロックの最終ビットと定義される。第1の実施形態による可変長符号化部23は、MPEG4AVCH264に規定されるContextbasedAdaptiveVariableLengthCodingに準拠して、ブロックの圧縮データを可変長符号化する。図6は、第1の実施形態による可変長符号化部23により生成された出力データストリームにおける、各ブロックの最終ビットの説明図である。図6において、一番上に示された、一つのブロックの圧縮データ1100は、マクロブロックスキップラン以下、MbSkipRunと表記する1110と、マクロブロックレイヤー以下、MacroblockLayerと表記する1111とを含み得る。MbSkipRun1110は、直前のブロックと現在のブロックとの間の、スキップされたブロックの数を表す。従って、MbSkipRun1110が0であれば、直前のブロックと現在のブロックとの間の全てのブロックはスキップされない。またMacroblockLayer1111は、ブロック符号化種別、動きベクトル情報、及び量子化DCT係数等のブロック圧縮データである。ブロックのスキップとは、そのスキップされたブロックのMacroblockLayer1111が出力データストリームに含まれないことを意味する。ピクチャがイントラ符号化ピクチャの場合、ブロックのスキップは許容されないので、MbSkipRun1110は常に0となる。そのため、出力データストリームにMbSkipRun1110は含まれない。まず、MbSkipRun1110が0の場合のブロックイントラピクチャ内の全てのブロックを含むがグループ内の最終ブロックとなる場合について説明する。この場合において、出力データストリーム内のビット列1200には、最終ブロックxの圧縮データに関するビット列1202と、最終ブロックxxは1以上の整数より前のブロック~に対応するビット列全体1201が含まれる。ビット列1202は、最終ブロックxのMbSkipRun及びMacroblockLayerを可変長符号化したビット列である。ビット列1202のうち、Code0はMbSkipRunを可変長符号化したビット列であり、CodeMは、MacroblockLayerの各要素を可変長符号化したビット列である。Nxは、最終ブロックxのMacroblockLayerの要素数である。この例では、最終ブロックxの最終ビットは、矢印1210で示される、ビット列CodeNxの最終ビットとなる。次に、MbSkipRunが0であり、かつ出力データストリームにおいて次のピクチャヘッダ及びスライスヘッダが出現する前に、後続するブロックのMacroblockLayerが出現する場合における最終ビットについて説明する。この場合において、出力データストリーム内のビット列1300には、スキップされるブロックの直前のブロックに関するビット列1301と、スキップされるブロックの直後のブロックxに関するビット列1302が含まれる。そしてビット列1301は、ブロックのMbSkipRun及びMacroblockLayerを可変長符号化したビット列である。同様に、ビット列1302は、ブロックxのMbSkipRun及びMacroblockLayerを可変長符号化したビット列である。ビット列1302に含まれるMbSkipRunに相当するCode0は、値を可変長符号化したビット列である。この例では、ブロックとブロックxとの間には、MacroblockLayerが出力データストリームに含まれない、個のブロック~ブロックが存在する。従って、ブロック~ブロックの何れかが最終ブロックとなる場合、これらのブロックの最終ビットは、矢印1310で示される、MbSkipRunに相当するコードCode0の最終ビットとなる。またブロックxが最終ブロックとなる場合、ブロックxの最終ビットは、矢印1311で示される、ビット列1302に含まれるCodeNxの最終ビットとなる。次に、MbSkipRunが0であり、かつ出力データストリームにおいて、同一ピクチャに属する次のスライスヘッダが、後続するブロックのMacroblockLayerよりも先に出現する場合における最終ビットについて説明する。この場合において、出力データストリーム内のビット列1400には、スキップされるブロックの直前のブロックyに関するビット列1401と、スキップされるブロック以降のブロックに対応するMbSkipRunを可変長符号化したビット列1402が含まれる。そしてビット列1401は、ブロックyのMbSkipRun及びMacroblockLayerを可変長符号化したビット列である。またビット列1402に含まれるCode0は、値を可変長符号化したビット列である。さらに、ビット列1400には、スライスの終端を表すビット列以下、RbspTrailingBitsと表記する1403と、次のスライスの先頭を表すビット列であるスライスヘッダ以下、SliceHeaderと表記する1404とが含まれる。RbspTrailingBits1403は、このRbspTrailingBitsが出現する前のスライスのビット列の終端を表す、予め設定された所定の値を持つビット列である。RbspTrailingBits1403は、動画像復号装置が少なくともRbspTrailingBits1403の先頭のビットを参照することにより、スライスの終端であることが分かるように設定される。またスライスヘッダ1404には、スライス先頭のブロックアドレスを意味するパラメータFirstMbInSliceを含む。この例では、パラメータFirstMbInSliceはzであるとする。この場合、ブロックyと、次スライスの先頭ブロックzとの間には、MacroblockLayerが出力データストリームに含まれない、個のブロック~ブロックが存在する。従って、ブロック~ブロックの何れかが最終ブロックとなる場合、これらのブロックの最終ビットは、矢印1410で示される、ビット列RbspTrailingBits1403の先頭ビットとなる。なお、この場合の最終ビットは、ビット列RbspTrailingBits1403内の先頭ビットよりも後のビットに設定されてもよい。次に、MbSkipRunが0であり、かつ出力データストリームにおいて、別ピクチャに属するスライスヘッダ、もしくはピクチャヘッダが後続するブロックのMacroblockLayerよりも先に出現する場合における最終ビットについて説明する。この場合において、出力データストリーム内のビット列1500には、スキップされるブロックの直前のブロックyに関するビット列1501と、スキップされるブロック以降のブロックに対応するMbSkipRunを可変長符号化したビット列1502が含まれる。そしてビット列1501は、ブロックyのMbSkipRun及びMacroblockLayerを可変長符号化したビット列である。またビット列1502に含まれるCode0は、値を可変長符号化したビット列である。さらに、ビット列1500には、スライスの終端を表すRbspTrailingBits1503と、次のピクチャの先頭を表すピクチャヘッダ1504と、次のスライスの先頭を表すビット列であるSliceHeader1505とが含まれる。この場合、次のスライスの先頭のブロックはピクチャの最初のブロックであるため、SliceHeader1505に含まれるパラメータFirstMbInSliceの値は0となる。この場合、ブロックy以降、ピクチャの最終ブロックまで、MacroblockLayerが出力データストリームに含まれない、個のブロック~ブロックが存在する。なおwは、ピクチャ内のブロック総数である。従って、ブロック~ブロックの何れかが最終ブロックとなる場合、これらのブロックの最終ビットは、矢印1510で示される、ビット列RbspTrailingBits1503の先頭ビットとなる。なお、この場合の最終ビットは、ビット列RbspTrailingBits1503内の先頭ビットよりも後のビットに設定されてもよい。次に、第2の実施形態による可変長符号化部23について説明する。第2の実施形態による可変長符号化部23も、MPEG4AVCH264に規定されるCAVLCに準拠してブロックの圧縮データを可変長符号化する。しかし、第1の実施形態と異なり、この実施形態では、ブロックの圧縮データの構造において、スキップされたブロック数を表現するMbSkipRunの代わりに、個々のブロックがスキップされたことを表すマクロブロックスキップフラグが用いられる。さらに、各ブロックの圧縮データには、そのブロックが分割されたか否かを表すスプリットフラグが付加される。図7は、第2の実施形態による可変長符号化部23により生成された出力データストリームにおける、各ブロックの最終ビットの説明図である。図7において、一つのブロックの圧縮データ2100は、先頭から順に、スプリットフラグ以下、MbSplitFlagと表記する2110と、スキップフラグ以下、MbSkipFlagと表記する2111と、MacroblockLayer2112とを含み得る。MbSplitFlag2110は、現在のブロック例えば、16画素×16画素のマクロブロックが4個のサブブロック例えば、8画素×8画素のブロックに分割されたか否かを表す。例えば、現在のブロックが分割されている場合には、MbSplitFlag2110は1となり、一方、現在のブロックが分割されていない、あるいは、現在のブロックがスキップされていれば、MbSplitFlag2110は0となる。MbSkipFlag2111は、現在のブロックがスキップされたか否かを表す。例えば、現在のブロックがスキップされている場合には、MbSkipFlag2111は1となり、一方、現在のブロックがスキップされていなければ、MbSkipFlag2111は0となる。またMacroblockLayer2112は、ブロック符号化種別、動きベクトル情報、及び量子化DCT係数等のブロック圧縮データである。ブロックのスキップとは、そのスキップされたブロックのMacroblockLayer2112が出力データストリームに含まれないことを意味する。なお、現在のブロックが分割されている場合には、MbSkipFlag2111は0とみなされるので、出力データストリーム内でMbSkipFlag2111は省略されてもよい。そしてこの場合、出力データストリームには、MbSplitFlag2110に続いて4個のサブブロックそれぞれの圧縮データが格納される。ピクチャがイントラ符号化ピクチャの場合、ブロックのスキップは許容されないので、MbSkipFlag2111は常に0となる。そのため、出力データストリームにMbSkipFlag2111は含まれない。まず、MbSkipFlag2111が0の場合のブロックイントラピクチャ内の全てのブロックを含むがグループ内の最終ブロックとなる場合について説明する。この場合において、出力データストリーム内のビット列2200には、最終ブロックxの圧縮データに関するビット列2202と、最終ブロックxxは1以上の整数より前のブロック~に対応するビット列全体2201が含まれる。またビット列2202の次のCode0は、ブロックの圧縮データに関するビット列を表す。ビット列2202は、最終ブロックxのMbSplitFlag、MbSkipFlag及びMacroblockLayerを可変長符号化したビット列である。ビット列2202のうち、SpはMbSplitFlagを可変長符号化したビット列であり、SkはMbSkipFlagを可変長符号化したビット列である。またCodeMは、MacroblockLayerの各要素を可変長符号化したビット列である。Nxは、最終ブロックxのMacroblockLayerの要素数である。この例では、最終ブロックxの最終ビットは、矢印2210で示される、ビット列CodeNxの最終ビットとなる。次に、値が1のMbSkipFlagを持つブロック、すなわちスキップされるブロックが、0個連続した後に、値が0のMbSkipFlagを持つブロック、すなわちスキップされないブロックが出現する場合における最終ビットについて説明する。出力データストリーム内のビット列2300には、スキップされないブロックの圧縮データに関するビット列2301が含まれる。さらに、ビット列2300には、ビット列2301に続いて、スキップされるブロック~ブロックのMbSplitFlag、MbSkipFlag及びその後のブロックxの圧縮データに関するビット列2302が含まれる。またビット列2302の次のCode0は、ブロックの圧縮データに関するビット列を表す。この例では、ブロックとブロックxとの間には、MacroblockLayerが出力データストリームに含まれない、個のブロック~ブロックが存在する。従って、ブロックの何れかが最終ブロックとなる場合、これらのブロックの最終ビットは、矢印2310で示される、個のMbSkipFlagコードの内、左からp番目のコードの最終ビットとなる。またブロックxが最終ブロックとなる場合、ブロックxの最終ビットは、矢印2311で示される、ビット列2302に含まれるCodeNxの最終ビットとなる。次に、値が1のMbSkipFlagを持つブロックが0個連続した後に、同一ピクチャに属する次のスライスヘッダが出現する場合における最終ビットについて説明する。この場合において、出力データストリーム内のビット列2400には、スキップされるブロックの直前のブロックyの圧縮データに関するビット列2401が含まれる。さらに、ビット列2400には、ビット列2401に続いて、スキップされるブロック以降のブロックに対応するMbSplitFlag、MbSkipFlagを可変長符号化したビット列2402が含まれる。そしてビット列2401は、ブロックyのMbSplitFlag、MbSkipFlag及びMacroblockLayerを可変長符号化したビット列である。さらに、ビット列2400には、スライスの終端を表すRbspTrailingBits2403と、次のスライスの先頭を表すSliceHeader2404とが含まれる。RbspTrailingBits2403は、このRbspTrailingBitsが出現する前のスライスのビット列の終端を表す、予め設定された所定の値を持つビット列である。RbspTrailingBits2403は、動画像復号装置が少なくともRbspTrailingBits2403の先頭のビットを参照することにより、スライスの終端であることが分かるように設定される。またスライスヘッダ2404には、スライス先頭のブロックアドレスを意味するパラメータFirstMbInSliceを含む。この例では、パラメータFirstMbInSliceはzであるとする。この場合、ブロックyと、次スライスの先頭ブロックzとの間には、MacroblockLayerが出力データストリームに含まれない、個のブロック~ブロックが存在する。従って、ブロックの何れかが最終ブロックとなる場合、これらのブロックの最終ビットは、矢印2410で示される、個のMbSkipFlagコードの内、左からp番目のコードの最終ビットとなる。またブロックが最終ブロックとなる場合、最終ビットは、矢印2411で示される、ビット列RbspTrailingBits2403の先頭ビットとなる。なお、この場合の最終ビットは、ビット列RbspTrailingBits2403内の先頭ビットよりも後のビットに設定されてもよい。次に、値が1のMbSkipFlagを持つブロックが0個連続した後に、別ピクチャに属するスライスヘッダ、もしくはピクチャヘッダが出現する場合における最終ビットについて説明する。この場合において、出力データストリーム内のビット列2500には、スキップされるブロックの直前のブロックyの圧縮データに関するビット列2501が含まれる。さらに、ビット列2500には、ビット列2501に続いて、スキップされるブロック以降のブロックに対応するMbSplitFlag、MbSkipFlagを可変長符号化したビット列2502が含まれる。そしてビット列2501は、ブロックyのMbSplitFlag、MbSkipFlag及びMacroblockLayerを可変長符号化したビット列である。さらに、ビット列2500には、スライスの終端を表すRbspTrailingBits2503と、次のピクチャの先頭を表すピクチャヘッダ2504と、次のスライスの先頭を表すビット列であるSliceHeader2505とが含まれる。この場合、次のスライスの先頭のブロックはピクチャの最初のブロックであるため、SliceHeader2505に含まれるパラメータFirstMbInSliceの値は0となる。この場合、ブロックy以降、ピクチャの最終ブロックまで、MacroblockLayerが出力データストリームに含まれない、個のブロック~ブロックが存在する。なおwは、ピクチャ内のブロック総数である。従って、ブロックの何れかが最終ブロックとなる場合、これらのブロックの最終ビットは、矢印2510で示される、個のMbSkipFlagコードの内、左からp番目のコードの最終ビットとなる。またブロックが最終ブロックとなる場合、最終ビットは、矢印2511で示される、ビット列RbspTrailingBits2503の先頭ビットとなる。なお、この場合の最終ビットは、ビット列RbspTrailingBits2503内の先頭ビットよりも後のビットに設定されてもよい。この第2の実施形態の変形例によれば、MbSplitFlagは省略されてもよい。MbSplitFlagが省略される場合も、最終ブロックの最終ビットは、図7に関して上述したとおりに決定される。次に、第3の実施形態による可変長符号化部23について説明する。第3の実施形態による可変長符号化部23は、MPEG4AVCH264に規定されるContentbasedAdaptiveBinaryArithmeticCodingに準拠してブロックの圧縮データを可変長符号化する。CABACは、算術符号化処理の一例である。図8A及び図8Bを参照しつつ、出力データのビットストリームにおける、各ブロックの最終ビットについて説明する。図8Aは、一つのブロックの圧縮データの構造を示す図である。図8Aに示されるように、一つのブロックの圧縮データ3100は、先頭から順に、MbSkipFlag3110と、MacroblockLayer3111と、スライスエンドフラグ以下、EndOfSliceFlagと表記する3112とを含み得る。MbSkipFlag3110は、現在のブロックがスキップされたか否かを表す。例えば、現在のブロックがスキップされている場合には、MbSkipFlag3110は1となり、一方、現在のブロックがスキップされていなければ、MbSkipFlag3110は0となる。またMacroblockLayer3111は、ブロック符号化種別、動きベクトル情報、及び量子化DCT係数等のブロック圧縮データである。ブロックのスキップとは、そのスキップされたブロックのMacroblockLayer3111が出力データストリームに含まれないことを意味する。ピクチャがイントラ符号化ピクチャの場合、ブロックのスキップは許容されないので、MbSkipFlag3110は常に0となる。そのため、出力データストリームにMbSkipFlag3110は含まれない。EndOfSliceFlag3112は、現在のブロックがスライスの最終ブロックか否かを表す。例えば、現在のブロックが最終ブロックである場合には、EndOfSliceFlag3112は1となり、一方、現在のブロックが最終ブロックでなければ、EndOfSliceFlag3112は0となる。図8Bは、圧縮データと、可変長符号化によって変換されたビット列との関係を説明する図である。CABACはCAVLCと異なり、圧縮データのビット毎に算術符号化を適用する。そのため、変換されたビット列と変換前の圧縮デ-タとの関係が一対一ではない。変換されたビット列内の一つのビットが、圧縮データの複数のビットに対応することがある。図8Bに示されるように、出力データストリームのビット列の一例であるビット列3210は12個のビットを含む。この場合において、ドットの集合3211は、ビット列3210に含まれる各ビットに対応する、ビット列3210を算術復号することにより得られる圧縮データに含まれるビンを表す。ビンとは、圧縮データをバイナリ表現したものであり、各符号語に対応する圧縮データ中のビットまたはビット列である。この例では、ビット列3210はビン0~ビン7に対応する。そして、ビン0~ビン2はブロック0に含まれ、ビン3~ビン5はブロック1に含まれ、ビン6はブロック2に含まれ、ビン7はブロック3に含まれる。ドットの集合3211に含まれる各ドットは、それぞれ、そのドットの上方に示された変換後のビット列3210に含まれるビットが、そのドットの左側に示されたビンを復号するために使用されることを表す。例えばビン0は、0番目のビットと1番目のビットとを用いて復号される。またビン1は、1番目のビットを用いて復号される。またビン5は、3番目のビットから11番目のビットを用いて復号される。CABACにより符号化されたブロックの最終ビットは、そのブロックの圧縮データに含まれるビンxの復号に用いられるビット列の最後のビットとなる。ただしビンxは、ブロックの圧縮データを順にバイナリ化した時の最後のビットである。図8Bに示した例では、ブロック0の最終ビットは、矢印3250で示される、ビット列3210の3番目のビットである。また、ブロック1~ブロック3の最終ビットは、それぞれ、矢印3251で示される、ビット列3210の11番目のビットである。このように、複数のブロックが共通の最終ビットを持つことがある。CABACによりブロックが符号化される場合、ブロックの圧縮データのバイナリ化データの最終ビットは常にEndOfSliceFlagである。そしてピクチャ中にブロックがw個あった場合、出力データストリーム中には必ずw個のMbSkipFlagとw個のEndOfSliceFlagがある。そのため、ピクチャ内のx番目のブロックの最終ビットは、x番目のEndOfSliceFlagの復号に用いられるビット列内の最後のビットとなる。図9A~図9Cは、第3の実施形態による、出力データのビットストリーム中のグループの最終ビットを特定する処理のフローチャートである。動画像符号化装置10の可変長符号化部23は、このフローチャートに従って、出力データのビットストリームにおける、i番目のピクチャのj番目のグループGに属する最終ブロックの最終ビットの位置BitEndを導出する。動画像符号化装置10は、BitEndの位置のビットが動画像符号化装置10の送信バッファに入力された時に、グループGを復号するために必要な全てのビットが動画像符号化装置10の送信バッファに入力されたと判断する。このフローチャートは、i番目のピクチャのヘッダピクチャヘッダ及びスライスヘッダが符号化された直後から開始される。そして先ず、可変長符号化部23は、変数j、m、cを初期化するステップS201。変数j、m、cは、それぞれ、ピクチャ内のグループのインデックス、ピクチャ内のブロックのインデックス、キャリー数を表す。なお、キャリー数cについては後述する。次に、可変長符号化部23は、インデックスmのブロックの圧縮処理、圧縮データのバイナリ化及びコンテキストモデル化を行うことにより、算術符号化処理MPEG4AVCH264に規定されるEncodingDecisionに対応の対象のビンの配列Bを取得するステップS202。なお、上記の圧縮処理は、ブロックがスライスの最終ブロックであるか否かを示すEndOfSliceFlagを除外する処理である。ここで、ブロックmの算術符号化処理対象のビンの総数はgetNumBinsとして表現される。可変長符号化部23は、処理対象のビンのインデックスb0を0に設定し、またブロックmの最終ビンのインデックスb1をgetNumBinsに設定する。可変長符号化部23は、b0番目のビンを算術符号化する前のビットストリームの最終ビット位置pを取得するステップS203。そして可変長符号化部23は、b0番目のビンを算術符号化するステップS204。これにより、例えば、0ビットから7ビットの間で、新たな生成ビットがビットストリームの最後に付加される。そして可変長符号化部23は、b0番目のビンの算術符号化処理後のビットストリームの最終ビット位置qを取得するステップS205。ステップS205の後、可変長符号化部23は、キャリー数cが1以上か否か判定するステップS206。キャリー数cは、あるグループの最後のブロックのEndOfSliceFlagを算術符号化処理した時に、新たなビットがビットストリームに追加されなかった場合に1増加する数である。即ち、キャリー数cが1以上の値を持つ場合、キャリー数cは、グループxの復号処理に必要な全ビットがビットストリームとして出力されていないことを意味する。キャリー数cが1以上であればステップS206-Yes、可変長符号化部23は、b0番目のビンを算術符号化する前のビットストリームの最終ビット位置pをb0番目のビンを算術符号化した後のビットストリームの最終ビット位置qと比較するステップS207。ビット位置pがビット位置qと異なる場合ステップS207-Yes、b0番目のビンの算術符号化処理により新たなビットが生成される。この場合には、b0番目のビン、及びそれ以前に算術符号化処理されたものの、ビットストリームとして出力されなかった、グループxの最後のブロックのEndOfSliceFlagに相当するビットがビットストリームとして出力されている。即ちグループxの復号に必要な全ビットがqの位置で出力されている。可変長符号化部23は、この時点で出力された各グループを復号するのに必要なビット列の最終ビット位置BitEndをビット位置qに設定するステップS208。なお、ステップS208の処理の詳細については後述する。この時点で、インデックスがjよりも小さい全てのグループについて、復号処理に必要な全ビットがビットストリームとして出力されている。そこで、可変長符号化部23は、キャリー数cを0にリセットするステップS209。ステップS209の後、可変長符号化部23は、算術符号化処理対象のビン配列B内の全てのビンを処理したかどうか、すなわち、b0がb1と等しいか否か判断するステップS210。b0がb1未満である場合ステップS210-No、可変長符号化部23は、b0を1インクリメントした後、ステップS203以降の処理を繰り返す。そして可変長符号化部23は、ビン配列B内の残りのビンの処理を行う。一方、b0がb1と等しい場合ステップS210-Yes、可変長符号化部23は、b0を1インクリメントした後、ステップS211以降の処理を実行する。なお、b0がb1未満であっても、b1と等しくても、b0は、b1との比較の後で1だけ増加するが、b0がb1と等しい場合は後でステップS202にてb0は0にリセットされる。また、ステップS206においてキャリー数cが0であればステップS206-No、可変長符号化部23は、ステップS207~S209の処理を行わずに、ステップS210の処理を実行する。さらに、ステップS207において、ビット位置pがビット位置qと等しい場合ステップS207-No、b0番目のビンを算術符号化することにより新たなビットが生成されていない。この場合も、可変長符号化部23は、ステップS208~S209の処理を行わずにステップS210の処理を実行する。図9Bに示されるように、可変長符号化部23は、EndOfSliceFlagを算術符号化する前のビットストリームの最終ビット位置pを取得するステップS211。そして可変長符号化部23は、EndOfSliceFlagを算術符号化しステップS212、EndOfSliceFlagを算術符号化した後のビットストリームの最終ビット位置qを取得するステップS213。可変長符号化部23は、キャリー数cが1以上か否か、かつ、EndOfSliceFlagを算術符号化する前のビットストリームの最終ビット位置pとEndOfSliceFlagを算術符号化した後のビットストリームの最終ビット位置qとが異なるか否か判定するステップS214。キャリー数cが1以上、かつ、最終ビット位置pと最終ビット位置qとが異なる場合ステップS214-Yes、グループxの最後のブロックのEndOfSliceFlagがビットストリームとして出力されている。即ち、グループxを復号するのに必要な全ビットがビットストリームとして出力されている。そこで可変長符号化部23は、この時点で出力された各グループを復号するのに必要なビット列の最終ビット位置BitEndをビット位置qに設定しステップS215、その後キャリー数cを0にリセットするステップS216。ステップS216の後、あるいはステップS214にてキャリー数cが0または最終ビット位置pが最終ビット位置qと等しい場合ステップS214-No、可変長符号化部23は、現在のブロックmがグループjの最終ブロックか否か判定するステップS217。なお、getLastBlockは、グループjの最後のブロックのインデックスを表す。現在のブロックmがグループjの最終ブロックでない場合ステップS217-No、グループj内に未処理のブロックがある。そこで可変長符号化部23は、mを1インクリメントした後、ステップS202以降の処理を繰り返す。一方、ブロックmがグループjの最終ブロックである場合ステップS217-Yes、可変長符号化部23は、mを1インクリメントする。そして可変長符号化部23は、EndOfSliceFlagを算術符号化する前のビットストリームの最終ビット位置pと、EndOfSliceFlagを算術符号化した後のビットストリームの最終ビット位置qとを比較するステップS218。最終ビット位置pが最終ビット位置qと異なる場合ステップS218-Yes、EndOfSliceFlagを算術符号化することにより新たなビットが生成されている。従って、グループjの最終ブロックの全てを復号するのに必要な全てのビットがビットストリームとして出力されている。そこで可変長符号化部23は、この時点で出力されたグループjを復号するのに必要なビット列の最終ビット位置BitEndをビット位置qに設定しステップS219、さらにグループのインデックスjを1インクリメントするステップS220。一方、最終ビット位置pが最終ビット位置qと等しい場合ステップS218-No、EndOfSliceFlagが算術符号化されても新たなビットが生成されていない。従って、可変長符号化部23は、キャリー数cを1インクリメントし、かつグループのインデックスjを1インクリメントするステップS221。ステップS220またはステップS221の処理後に、可変長符号化部23は、現在のブロックmがピクチャ内の最終ブロックであるか否かを判定するステップS222。なお、getNumBlockInPicは、ピクチャ内の総ブロック数を表す。現在のブロックmがピクチャ内の最終ブロックでなければステップS222-No、ピクチャ内に未処理のブロックがあるので、可変長符号化部23は、ステップS202以降の処理を繰り返す。一方、現在のブロックmがピクチャ内の最終ブロックであればステップS222-Yes、可変長符号化部23は、1ピクチャの全てのブロックの符号化を完了したので、最終ビット特定処理を終了する。図9Cを参照しつつ、ステップS208、S215及びS219で行われる最終ビット位置の設定処理のフローを説明する。可変長符号化部23は、i番目のピクチャの番目のグループを復号するのに必要なビット列の最終ビット位置BitEndをqに設定するステップS250。その後、可変長符号化部23は、キャリー数cが0以下か否かを判定するステップS251。キャリー数cが0より大きい場合ステップS251-No、最終ビット位置BitEndを設定する必要のあるグループがまだ残っている。そこで可変長符号化部23は、キャリー数cを1だけ減算し、その後再度ステップS250の処理を実行する。一方、キャリー数cが0以下である場合ステップS251-Yes、最終ビット位置BitEndを設定する必要のあるグループは無い。そのため、可変長符号化部23は、最終ビット位置の設定処理を終了する。次に、第4の実施形態による可変長符号化部23について説明する。第4の実施形態による可変長符号化部23は、非特許文献2に開示された手法に従ってブロックの圧縮データを可変長符号化する。非特許文献2に開示された手法は、基本的にCABACと同様に算術符号化技術を用いる。しかし、この手法では、バイナリ化された圧縮データを1ビットずつ算術符号化する代わりに、バイナリ化された圧縮データの各ビットの推定確率に基づく複数個の算術符号化部が用いられる。各算術符号化部には、それぞれ別個の推定確率が割り当てられ、バイナリ化された圧縮データの各ビットは、その推定確率に対応する算術符号化部において算術符号化される。この手法では、各算術符号化部は、固定の推定確率のビット列を処理するため、実際には、算術符号化演算を行う代わりに、入力されるnビットをmビットの出力にマッピングすることで、圧縮データを可変長符号化してもよい。なお、m、nは、それぞれ1以上の整数である。本明細書では、便宜上、出力されるmビットをワードと呼ぶ。可変長符号化された圧縮データは、出力データのビットストリームにワード単位で出力される。非特許文献2に開示された手法では、CABACと同様に、変換されたビット列と変換前の圧縮デ-タとの関係が一対一ではない。また、先に算術符号化部に入力されたビンに相当するワードが、そのビンよりも後に算術符号化部に入力されたビンに相当するワードよりも後に出力データのビットストリームに出現することもある。図10は、第4の実施形態による可変長符号化部23が有するエントロピー符号化部700の概略構成図である。エントロピー符号化部700は、入力されたブロックの圧縮データをエントロピー符号化し、その結果得られたストリームを出力する。そのためにエントロピー符号化部700は、バイナリ化部701と、コンテキストモデル化部702と、確率量子化部703と、K個のビン符号化部704-1~704-kただしKは2以上の整数と、多重化部705とを有する。バイナリ化部701は、入力されたブロックの圧縮データに含まれる各シンボルをバイナリ化し、各シンボルをビット列で表す。そのために、バイナリ化部701は、例えば、MPEG4AVCH264に準拠して、各シンボルをバイナリ化する。例えば、ISlice内のマクロブロック種別mbTypeが4x4イントラ予測、もしくは8x8イントラ予測を表すシンボルINxNである場合、そのシンボルは0で表される。また、ブロック種別mbTypeがPCM符号化を表すシンボルIPCMである場合には、そのシンボルは11で表される。バイナリ化部701から出力されたビット列は、コンテキストモデル化部702に入力される。コンテキストモデル化部702は、バイナリ化部701から入力されたビット列の各ビットに対し、個々にコンテキストを割り当てる。コンテキストは、例えば、周囲ブロックのブロックの圧縮データから決定される。そして、エントロピー符号化しようとするブロックの圧縮データが周囲ブロックの圧縮データと類似している場合とそうでない場合とで、異なるコンテキストが用いられることにより、算術符号化の効率が向上する。コンテキストモデル化部702は、ビット列のビット毎に、その値と、決定されたコンテキストのLeastProbablebit、及びLPB確率を出力し、出力されたビット、LPB及びLPB確率は確率量子化部703に入力される。LPBは、過去にそのコンテキストとペアとなってコンテキストモデル化部702から出力されたビット列の各ビットにおける、出現頻度の小さい方の値を表す。またLPB確率は、LPBの発生確率を表す。例えば、過去のビット列に含まれる10個のビットが0001111111の場合、LPBは0であり、LPB確率は03になる。確率量子化部703は、コンテキストモデル化部702から出力された各ビットのLPB確率をそれぞれ量子化する。例えば、確率量子化部703は、0から1の連続する確率値を、K個の離散的な値に量子化する。例えばLPB確率が03で、Kが4である場合、確率量子化部703は、LPB確率の値03の量子化値を025とする。確率量子化部703から出力されたビットは、K個のビン符号化部704-1~704-kのうち、そのビットのLPB確率の量子化値に応じたビン符号化部に入力される。ビン符号化部704-1~704-kは、それぞれ、互いに異なるLPB確率の量子化値に対応するビットを算術符号化する。例えば、上記のように、LPB確率の量子化値が14であれば、そのLPB確率に対応するビットは、ビン符号化部704-1~704-kのうちの離散的確率14に対応するビン符号化部に入力される。そして各ビン符号化部は、多重化部705のバッファ内に格納されているエントリのビット列のうち、ビン符号化部に対応する量子化LPB確率のエントリのビット列にそのビットを追加する。そして各ビン符号化部は、ビット列が変換可能となる度に、そのビット列をワードに変換する。多重化部705は、例えば、バッファを有し、各ビン符号化部から書き込まれたビット列及びビット列に対応するワードをそのバッファに格納する。多重化部705は、ワードが出力可能となるまで、そのワードをバッファ内に格納する。そして多重化部705は、格納されているワードが出力可能となった時点で、そのワードを出力データのビットストリームとして出力する。なお、各ビン符号化部に入力されるビットビンは同じLPBを持つと仮定できるので、各ビン符号化部及び多重化部は、算術符号化そのものを行う代わりに、複数の入力ビットを含むビット列を一つのビン列として可変長符号化してもよい。この場合、例えば、ビット列ビン列とワードとの関係を表す変換テーブルが各ビン符号化部に記憶される。そして各ビン符号化部は、その変換テーブルを参照してビン列をワードに変換する。例えば、LPBが1でLPB確率が015即ち0の発生確率が085である場合、入力ビン列0000は1に、入力ビン列11は00001に変換される。図11を参照しつつ、出力データのビットストリームにおける、各ブロックの最終ビットについて説明する。図11は、圧縮データと、可変長符号化によって変換されたビット列との関係を説明する図である。なお、ブロックの圧縮データの構造は、図8Aに示される構造と同一である。図11に示されるように、出力データストリームのビット列の一例であるビット列4100は15個のビットを含む。この場合において、ドットの集合4101は、ビット列4100に含まれる各ビットに対応する、ビット列4100を算術復号することにより得られる圧縮データに含まれるビンを表す。この例では、ビット列4100はビン0~ビン10に対応する。そして、ビン0~ビン2はブロック0に含まれ、ビン3~ビン5はブロック1に含まれ、ビン6、7はブロック2に含まれ、ビン8~ビン10はブロック3に含まれる。ドットの集合4101に含まれる各ドットは、それぞれ、そのドットの上方に示された変換後のビット列4100に含まれるビットが、そのドットの左側に示されたビンを復号するために使用されることを表す。例えばビン0、ビン5及びビン7は、0番目~3番目のビットを用いて復号される。逆に言うと、ビン0、ビン5及びビン7の3ビットが、ビット列4100中の0番目~3番目の4ビットに変換される。ドット集合4101から明らかなように、ブロック1に属する最後のビン5を復号するために必要なビット列ビット0~ビット3は、ブロック1に属する最初のビン3を復号するために必要なビット列ビット7~ビット8よりも先に出力データのビットストリーム4100内に出現する。このように、第4の実施形態では、第3の実施形態と異なり、ブロックの各ビンの順番に対して、出力データのビットストリーム上での対応するワードの順番が逆転することがある。ブロックの最終ビットは、以下のようになる。CABACによりブロックが符号化される場合と同様に、ブロックの圧縮データのバイナリ化データの先頭ビット及び最終ビットは、常にMbSkipFlag及びEndOfSliceFlagである。そしてピクチャ中にブロックがw個あった場合、出力データのビットストリーム中には必ずw個のMbSkipFlagとw個のEndOfSliceFlagがある。しかし、この実施形態では、可変長符号化されたブロックxの最終ビットは、ブロックxの圧縮データのバイナリ化データの各ビットを復号するために必要なワードの中で、出力データのビットストリーム中の位置が最も後ろのワードAの最後のビットとなる。図11に示した例では、ブロック0、ブロック1及びブロック2の最終ビットは、それぞれ、矢印4200で示される、ビット列4100の8番目のビットである。また、ブロック3の最終ビットは、矢印4201で示される、ビット列4100の14番目のビットである。図12は、第4の実施形態による可変長符号化部のビン符号化部及び多重化部の挙動の説明図である。ビン符号化部704-1~704-kは、入力ビン列から出力ワードへの変換マップ800を参照して、同一の量子化LPB確率を持つビットからなる入力ビン列をワードに変換する。説明の簡略化のため、多重化部705は、各ビン符号化部704-1~704-kから多重化部705に入力されるビン列に対して同一の変換マップを適用するものとする。例えばビン列0000はワード1に変換される。この例において、入力ビット列801の各ビットに対して、量子化LPB確率を表す確率インデックス802が確率量子化部703により付加される。この例では、LPB確率は4個の値の何れかに量子化されるものとし、各量子化LPB確率には、それぞれ、確率インデックス0~3が割り当てられる。そして入力ビット列801の各ビットは、先頭のビット850から順に、そのビットの確率インデックスに対応するビン符号化部に入力される。例えば、確率インデックスが0であるビットは、ビン符号化部704-1に入力され、確率インデックスが1であるビットは、ビン符号化部704-2に入力される。テーブル860~863は、それぞれ、ビット850~853が何れかのビン符号化部に入力された時点における、多重化部705が有するバッファに格納されたデータを示す。テーブル860~863において、一つの行が、多重化部705のバッファ内に格納された一つのエントリに対応する。そして各テーブル内には、生成された順序に従って、上から順にエントリが表記される。多重化部705は、出力データのビットストリームとして、バッファ内に格納されたエントリのワードを、上から下の順番に沿って出力する。はバッファ内のエントリのインデクスである。Idxは対応するビン符号化部のインデクスであり、この例では、理解を容易にするために、ビン符号化部のインデックスは、そのビン符号化部に入力される入力ビットに付加された確率インデックスと同一の値を持つ。入力は、入力されたビット列ビン列である。ワードは入力されたビット列に対応するワードである。もし入力ビット列に対応するワードが存在しない場合例えば、入力ビット列が00の場合、各テーブルにおいてワードはNAと表記される。ビン符号化部704-1~704-kの何れかへビット850が入力される前の状態では、多重化部705のバッファは空であるとする。多重化部705のバッファが空の状態で、ビットがビン符号化部に入力されると、ビットが入力されたビン符号化部は、多重化部705のバッファに新しいエントリを作成する。この例では、テーブル860に示されるように、確率インデックスが0で、かつ値が0であるビット850がビン符号化部704-1へ入力されることにより、多重化部705のバッファ内にエントリインデクスが0の最初のエントリが作成される。ビット850の確率インデックスが0であるため、このエントリのIdxは0である。またビット850の値が0であるため、最初のエントリの入力ビット列は0となる。ワードはまだ未完成であるため、このエントリのワードはNAである。次に、ビン符号化部704-2へ、確率インデックスが1で、かつ値が0であるビット851が入力される。この場合、このビットの確率インデックスに相当するエントリはまだ多重化部705のバッファ内に存在しないので、テーブル861に示されるように、新しいエントリが生成される。この2番目のエントリのIdxは1である。またワードはまだ未完成であり、2番目のエントリのワードはNAである。以降、新たなビットがビン符号化部に入力される度に、ビン符号化部704-1~704-k及び多重化部705は、以下の1~4の規則に従って、多重化部705のバッファ内のエントリのビン列をワードに変換し、また適宜出力可能となったエントリのワードを出力する。1ビン符号化部704-1~704-kは、入力ビットの確率インデックスに対応するエントリを、多重化部705のバッファ内のエントリインデクスの昇順に探索する。2もし入力ビットの確率インデックスに対応する、ワードがNAであるエントリがあれば、ビン符号化部704-1~704-kは、そのエントリの入力ビット列を更新する。具体的には、ビン符号化部704-1~704-kは、そのエントリの入力ビット列の後ろに新たな入力ビットを付加する。多重化部705は、更新されたビット列が、変換テーブル800のビン列の何れかと一致するか否かを判定する。もし一致するビン列があれば、ビン符号化部704-1~704-kは、そのビン列に対応するワードをこのエントリのワードとする。3もし入力ビットの確率インデックスに対応する、ワードがNAでないエントリが無ければ、ビン符号化部704-1~704-kは、その確率インデックスに対応する新たなエントリを作成する。4ワードがNAでないエントリはビットストリームとして出力可能であるが、エントリの出力順序は多重化部705のバッファ内のエントリインデクスの降順に従う。これは、動画像復号装置が多重化されたワードを正常に復号するワードからビン列への逆変換ために必要な制限である。もし着目するエントリのエントリインデクスより小さく、かつワードがNAのエントリが多重化部705のバッファに残っている場合には、着目するエントリのワードがNAでなくても、多重化部705は、その着目するエントリを出力することはできない。多重化部705は、エントリを出力する場合、そのエントリのワードを出力データのビットストリームに追加する。出力されたエントリは、多重化バッファから除かれる。テーブル862は、ビン符号化部704-1へ、確率インデックスが0で、かつ値が0であるビット852が入力された時点における、多重化部705のバッファの状態を表す。この場合、エントリインデクスが1から4のエントリは出力可能な状態である。しかし、エントリインデクスが0のエントリのワードがNAのため、多重化部705は、全てのエントリのワードをまだビットストリームとして出力できない。すなわち可変長符号化の遅延が生じる。テーブル863は、ビン符号化部704-1へ、確率インデックスが0で、かつ値が1であるビット853が入力された時点における、多重化部705のバッファの状態を表す。この時点において、初めてエントリインデクスが0のエントリのワードがNAでなくなる。そのため、多重化部705は、エントリインデクスが0から4のエントリ全てを出力できる。エントリインデックスが0から4のエントリ全てを出力した直後に、新たに追加されるエントリのインデクスは5となる。即ち、新規エントリのエントリインデックスは、出力されたエントリを含む全エントリ中の最大インデックスに1を加算した値となる。多重化部705は、ビットストリームとして出力した最後のエントリのエントリインデックスに1を加算した値を、次のビットストリームの出力エントリ先頭インデックスFirstIndexとして記憶する。なおFirstIndexはピクチャ符号化開始時に0にリセットされる。図13A~図13Cは、第4の実施形態による、出力データのビットストリーム中のグループの最終ビットを特定する処理のフローチャートである。動画像符号化装置10の可変長符号化部23は、このフローチャートに従って、出力データのビットストリームにおける、i番目のピクチャのj番目のグループGに属する最終ブロックの最終ビットの位置BitEndを導出する。動画像符号化装置10は、BitEndの位置のビットが動画像符号化装置10の送信バッファに入力された時に、グループGを復号するために必要な全てのビットが動画像符号化装置10の送信バッファに入力されたと判断する。図13A~図13Cに示されるフローチャートの各ステップの処理は、以下に述べるステップを除き、図9A~図9Cに示したフローチャートの対応するステップの処理と同一である。例えば、ステップS301の処理は、ステップS201の処理と同一である。そのため、以下に述べるステップ以外のステップの詳細に関しては、図9A~図9Cに示したフローチャートに関連する説明を参照されたい。可変長符号化部23のビン符号化部704-1~704-kがb0番目のビンを符号化し、b0番目のビンまたb0番目のビンを含むビット列が変換可能な場合には、対応するワードが多重化部705のバッファに格納されるステップS304。その後、可変長符号化部23は、多重化部705がビットストリームとして出力したビット列の最終ビット位置qを取得するステップS305。また、可変長符号化部23は、多重化部705より次のビットストリームの先頭エントリインデックスFirstIndexを取得し、そのインデックスをtとする。その後、ステップS306にてキャリー数cが1以上であれば、可変長符号化部23は、b0番目のビンを算術符号化する前のビットストリームの最終ビット位置pをb0番目のビンを算術符号化した後のビットストリームの最終ビット位置qと比較する。さらに可変長符号化部23は、次のビットストリームの先頭エントリインデックスtがインデックスsよりも大きいか否か判定するステップS307。なお、インデックスsは、既に算術符号化されたもののビットストリームとして出力されていないEndOfSliceFlagに対応するエントリのうち、最も大きいエントリインデックスを表す。最終ビット位置pが最終ビット位置qと異なり、かつ、インデックスtがインデックスsよりも大きい場合ステップS307-Yes、b0番目のビンの算術符号化処理により新たなビットが生成される。この場合には、以前に算術符号化されたものの、ビットストリームとして出力されていなかったグループxの最後のブロックのEndOfSliceFlagに対応する最後のワードがビットストリームとして出力されている。即ちグループxの復号に必要な全ビットがqの位置で出力されている。そこで可変長符号化部23は、この時点で出力された各グループを復号するのに必要なビット列の最終ビット位置BitEndをビット位置qに設定するステップS308。一方、最終ビット位置pが最終ビット位置qと等しいか、あるいは、インデックスtがインデックスsと等しい場合ステップS307-No、新たなビットが生成されていない。そのため、可変長符号化部23は、ステップS308及びS309の処理を行わずにステップS310の処理を行う。図13Bに示されるように、可変長符号化部23は、EndOfSliceFlagを算術符号化しステップS312、その後、EndOfSliceFlagを算術符号化した後のビットストリームの最終ビット位置qを取得するステップS313。また、可変長符号化部23は、多重化部705より次のビットストリームの先頭エントリインデックスFirstIndexを取得し、そのインデックスをtとする。さらに可変長符号化部23は、多重化部705より、既に算術符号化されたもののビットストリームとして出力されていないEndOfSliceFlagに対応するエントリのうち、最も大きいエントリインデックスを取得し、そのインデックスをsとする。可変長符号化部23は、キャリー数cが1以上、かつ、EndOfSliceFlagを算術符号化する前のビットストリームの最終ビット位置pと、EndOfSliceFlagを算術符号化した後のビットストリームの最終ビット位置qとが異なるか否か判定する。さらに可変長符号化部23は、インデックスtがインデックスsよりも大きいか否か判定するステップS314。キャリー数cが1以上で、pがqと異なり、かつtがsより大きい場合ステップS314-Yes、グループxの最後のブロックのEndOfSliceFlagがビットストリームとして出力されている。即ち、グループxを復号するのに必要な全ビットがビットストリームとして出力されている。そこで可変長符号化部23は、この時点で出力された各グループを復号するのに必要なビット列の最終ビット位置BitEndをビット位置qに設定するステップS315。一方、キャリー数cが0、またはpがqと等しい、若しくはtがsと等しい場合ステップS314-No、グループxを復号するのに必要な全ビットが出力されていない。そこで可変長符号化部23は、ステップS315及びS316の処理を行わずに、現在のブロックmがグループjの最終ブロックか否か判定するステップS317。現在のブロックmがグループjの最終ブロックでない場合ステップS317-No、グループj内に未処理のブロックがある。そこで可変長符号化部23は、mを1インクリメントした後、ステップS302以降の処理を繰り返す。一方、ブロックmがグループjの最終ブロックである場合ステップS317-Yes、可変長符号化部23は、mを1インクリメントする。そして可変長符号化部23は、EndOfSliceFlagを算術符号化する前のビットストリームの最終ビット位置pと、EndOfSliceFlagを算術符号化した後のビットストリームの最終ビット位置qとを比較し、かつ、インデックスtとインデックスsを比較するステップS318。pがqと異なり、かつtがsより大きい場合ステップS318-Yes、EndOfSliceFlagを算術符号化することにより新たなビットが生成されている。従って、グループjの最終ブロックの全てを復号するのに必要な全てのビットがビットストリームとして出力されている。そこで可変長符号化部23は、この時点で出力されたグループjを復号するのに必要なビット列の最終ビット位置BitEndをビット位置qに設定するステップS319。一方、pがqと等しいか、あるいはtがsと等しい場合ステップS318-No、EndOfSliceFlagが算術符号化されても新たなビットが生成されていない。従って、可変長符号化部23は、キャリー数cを1インクリメントし、かつグループのインデックスjを1インクリメントするステップS321。以上に説明してきたように、この動画像符号化装置は、ピクチャを分割したブロックをグループ単位で分類し、そのグループごとに推定される復号時刻に応じて、グループに含まれるブロックの符号量を調整することで、復号遅延を低減させることができる。コンピュータ上で実行されることにより、上述した実施形態またはその変形例による動画像符号化装置の各部の機能を実現するコンピュータプログラムは、半導体メモリまたは光記録媒体などの記録媒体に記録されて配布されてもよい。上述した実施形態またはその変形例による動画像符号化装置は、様々な用途に利用される。例えば、この動画像符号化装置は、ビデオカメラ、映像送信装置、映像受信装置、テレビ電話システム、コンピュータあるいは携帯電話機に組み込まれる。ここに挙げられた全ての例及び特定の用語は、読者が、本発明及び当該技術の促進に対する本発明者により寄与された概念を理解することを助ける、教示的な目的において意図されたものであり、本発明の優位性及び劣等性を示すことに関する、本明細書の如何なる例の構成、そのような特定の挙げられた例及び条件に限定しないように解釈されるべきものである。本発明の実施形態は詳細に説明されているが、本発明の精神及び範囲から外れることなく、様々な変更、置換及び修正をこれに加えることが可能であることを理解されたい。