(57)【要約】  動画像符号化装置は、ピクチャを分割した複数のブロックのそれぞれが複数のグループの何れに属するかを決定するグループ決定部と、グループ毎に復号時刻を算出するグループ復号時刻情報算出部と、グループに含まれる全てのブロックの復号に必要なデータが、所定の伝送レートで動画像復号装置に伝送された場合に、そのグループの復号時刻までに動画像復号装置のストリーム受信バッファに到達するように、そのグループに含まれる各ブロックのデータのエントロピー符号化後の符号量を制御する符号量制御部と、その符号量に基づいて各ブロックのデータを圧縮する圧縮部と、圧縮された各ブロックのデータをエントロピー符号化するエントロピー符号化部と、エントロピー符号化に伴うグループ毎の遅延の最大値に相当するグループ毎の復号時刻の補正情報及び各ブロックの属するグループを表すグループ情報を出力データに付加する復号情報付加部とを有する。
2012098646.tif 000002
【特許請求の範囲】
【請求項１】
動画像データに含まれる各ピクチャを複数のブロックに分割して符号化する動画像符号化装置であって、
前記複数のブロックのそれぞれが、前記ピクチャを分割した複数のグループの何れに属するかを決定するグループ決定部と、
前記グループ毎に復号時刻を算出するグループ復号時刻情報算出部と、
前記グループに含まれる全てのブロックの復号に必要なデータが、所定の伝送レートで動画像復号装置に伝送された場合に、前記復号時刻情報算出部で算出された当該グループの復号時刻までに当該動画像復号装置のストリーム受信バッファに到達するように、当該グループに含まれる各ブロックのデータのエントロピー符号化後の符号量を制御する符号量制御部と、
前記符号量に基づいて前記各ブロックのデータを圧縮する圧縮部と、
前記圧縮部により圧縮された前記各ブロックのデータをエントロピー符号化するエントロピー符号化部と、
前記エントロピー符号化部によるエントロピー符号化に伴う前記グループ毎の遅延の最大値に相当する前記グループ毎の復号時刻の補正情報及び前記各ブロックの属するグループを表すグループ情報を出力データに付加する復号情報付加部と、
を有する動画像符号化装置。
【請求項２】
前記復号情報付加部は、前記遅延の最大値を前記出力データにさらに付加する、請求項１に記載の動画像符号化装置。
【請求項３】
前記復号情報付加部は、前記遅延の最大値に相当する時間だけ前記グループ毎の復号時刻を補正し、当該補正された復号時刻を前記補正情報として前記出力データに付加する、請求項１または２に記載の動画像符号化装置。
【請求項４】
前記復号情報付加部は、各ピクチャの最後のグループについてのみ、前記遅延の最大値をゼロとして当該最後のグループの前記補正された復号時刻を算出する、請求項３に記載の動画像符号化装置。
【請求項５】
前記復号情報付加部は、前記グループ毎の復号時刻と前記遅延の最大値に相当する復号時刻の補正量とを前記補正情報として前記出力データに付加する、請求項１または２に記載の動画像符号化装置。
【請求項６】
前記復号時刻の補正量は、前記遅延の最大値に相当する、前記エントロピー符号化部内に蓄積される前記出力データのビット量の最大値を前記所定の伝送レートで除した値である、請求項５に記載の動画像符号化装置。
【請求項７】
動画像データに含まれる各ピクチャを複数のブロックに分割して符号化する動画像符号化方法であって、
前記複数のブロックのそれぞれが、前記ピクチャを分割した複数のグループの何れに属するかを決定し、
前記グループ毎に復号時刻を算出し、
前記グループに含まれる全てのブロックの復号に必要なデータが、所定の伝送レートで動画像復号装置に伝送された場合に、当該グループの前記復号時刻までに当該動画像復号装置のストリーム受信バッファに到達するように、当該グループに含まれる各ブロックのデータのエントロピー符号化後の符号量を制御し、
前記符号量に基づいて前記各ブロックのデータを圧縮し、
圧縮された前記各ブロックのデータをエントロピー符号化し、
圧縮された前記各ブロックのデータのエントロピー符号化に伴う前記グループ毎の遅延の最大値に相当する前記グループ毎の復号時刻の補正情報及び前記各ブロックの属するグループを表すグループ情報を出力データに付加する、
ことを含む動画像符号化方法。
【請求項８】
動画像データに含まれる各ピクチャを複数のブロックに分割して符号化することをコンピュータに実行させる動画像符号用コンピュータプログラムであって、
前記複数のブロックのそれぞれが、前記ピクチャを分割した複数のグループの何れに属するかを決定し、
前記グループ毎に復号時刻を算出し、
前記グループに含まれる全てのブロックの復号に必要なデータが、所定の伝送レートで動画像復号装置に伝送された場合に、当該グループの前記復号時刻までに当該動画像復号装置のストリーム受信バッファに到達するように、当該グループに含まれる各ブロックのデータのエントロピー符号化後の符号量を制御し、
前記符号量に基づいて前記各ブロックのデータを圧縮し、
圧縮された前記各ブロックのデータをエントロピー符号化し、
圧縮された前記各ブロックのデータのエントロピー符号化に伴う前記グループ毎の遅延の最大値に相当する前記グループ毎の復号時刻の補正情報及び前記各ブロックの属するグループを表すグループ情報を出力データに付加する、
ことをコンピュータに実行させる動画像符号化用コンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、各ピクチャを複数のブロックに分割してブロックごとに符号化する動画像符号化装置、動画像符号化方法及び動画像符号化用コンピュータプログラムに関する。
【背景技術】
【０００２】
動画像データは、一般に非常に大きなデータ量を有する。そのため、動画像データを扱う装置は、動画像データを他の装置へ送信しようとする場合、あるいは、動画像データを記憶装置に記憶しようとする場合、動画像データを符号化することにより圧縮する。代表的な動画像の符号化標準として、International Standardization Organization/International Electrotechnical Commission(ISO/IEC)で策定されたMoving Picture Experts Group phase 2（MPEG-2）、MPEG-4、あるいはH.264 MPEG-4 Advanced Video Coding（MPEG-4 AVC/H.264）が広く利用されている。
このような符号化標準では、符号化対象のピクチャと、その前後のピクチャの情報を用いて、符号化対象のピクチャを符号化するインター符号化方法及び符号化対象ピクチャが持つ情報のみを用いて符号化するイントラ符号化方法が採用されている。【０００３】
一般に、インター符号化方法で符号化されたピクチャもしくはブロックの符号量は、イントラ符号化方法で符号化されたピクチャもしくはブロックの符号量に比べて小さい。このように、選択された符号化モードにより、シーケンス内でピクチャの符号量の偏りが生じる。同様に、選択された符号化モードにより、ピクチャ内でブロックの符号量の偏りが生じる。
そこで、符号量が時間的に変動しても、一定の伝送レートにて符号化された動画像を含むデータストリームを伝送できるように、伝送元の装置にデータストリーム用の送信バッファが用意され、また伝送先の装置にデータストリーム用の受信バッファが用意される。これらのバッファによる遅延（以降、バッファ遅延と呼ぶ）が、符号化装置における各ピクチャの入力から、復号装置における復号した各ピクチャの表示までの遅延（以降、表示遅延と呼ぶ）の主要因となる。バッファのサイズを小さくすることでバッファ遅延及び表示遅延は減少する。しかし、バッファのサイズが小さくなるほど、ピクチャ毎の符号量配分の自由度（符号量の変動度合い）も減少し、その結果として再生される動画像の画質が劣化する。【０００４】
MPEG-2またはMPEG-4 AVC/H.264では、それぞれVideo Buffering Verifier(VBV)とCoded Picture Buffer(CPB)と呼ばれる、理想復号装置における受信バッファの動作を規定している。動画像符号化装置は、理想復号装置の受信バッファを、オーバーフロー及びアンダーフローさせないように、符号量を制御しなければならない。理想復号装置は、復号処理に要する時間が0である瞬時復号を行うと規定されている。例えば、特許文献１にVBVに関する動画像符号化装置の制御方法が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開平３−１４８９８１号公報
【非特許文献】
【０００６】
【非特許文献１】MPEG-2 Test Model 5. April 1993.ISO-IEC/JTC1/SC29/WG11/N0400 ( http://www.mpeg.org/MPEG/MSSG/tm5/ )
【非特許文献２】JCTVC-A116, "Description of video coding technology proposal by Fraunhofer HHI", Joint Collaborative Team on Video Coding of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, April 2010
【発明の概要】
【発明が解決しようとする課題】
【０００７】
動画像符号化装置は、理想復号装置の受信バッファがオーバーフロー及びアンダーフローしないように、理想復号装置があるピクチャを復号する時刻にそのピクチャのデータが受信バッファに格納されていることを保証するように符号量を制御する。
受信バッファのアンダーフローは、動画像符号化装置が一定の伝送レートでデータストリームを送信した場合に、各ピクチャの符号量が多く、動画像復号装置が復号・表示するべき時刻までにピクチャを復号するのに必要なデータの伝送が完了しない場合に生じる。すなわち、受信バッファのアンダーフローは、復号装置の受信バッファ内にピクチャを復号するために必要データが存在していないことである。この場合、動画像復号装置は復号処理を行うことが出来ないため、フレームスキップが発生することとなる。【０００８】
動画像復号装置は、受信バッファのアンダーフローを起こさずに復号処理できるように、ストリームを受信時刻から所定の時間だけ遅延させてからピクチャを表示する。
上述したように、理想復号装置では、処理時間0で、瞬時的に復号処理が完了すると規定される。そのため、動画像符号化装置へのi番目ピクチャの入力時刻をt(i)、理想復号装置における、i番目ピクチャの復号時刻をdt(i)とすれば、そのピクチャが表示可能となる時刻は、同様にdt(i)となる。全てのピクチャにおいてピクチャの表示期間｛t(i+1)-t(i)｝と｛dt(i+1)-dt(i)｝が等しくなるので、復号時刻dt(i)は、入力時刻t(i)から固定時間dly分だけ遅延させた時刻｛dt(i)=t(i)+dly｝となる。従って、動画像符号化装置は、時刻dt(i)までに復号に必要なデータを動画像復号装置の受信バッファに伝送完了させなければならない。【０００９】
図１を参照しつつ、従来の受信バッファの様子を説明する。図１において横軸は時刻を表し、縦軸は受信バッファのバッファ占有量を表す。そして実線のグラフ１００は、各時刻におけるバッファ占有量を表す。
受信バッファでは、所定の伝送レートでバッファ占有量が回復し、各ピクチャの復号時刻にそのピクチャを復号するために用いられる分のデータがバッファから引き抜かれる。i番目ピクチャのデータが、時刻at(i)から受信バッファに入力開始され、i番目ピクチャの最後のデータが時刻ft(i)に入力される。理想復号装置は時刻dt(i)でi番目ピクチャの復号を完了し、その時刻dt(i)においてi番目ピクチャが表示可能となる。【００１０】
理想復号装置が瞬時復号である一方で、実際の動画像復号装置は所定の復号処理時間を必要とし、一般には１ピクチャの復号処理時間は、ピクチャの表示期間よりも短いが、ピクチャの表示期間に近い時間が必要となる。時刻at(i)からft(i)までi番目ピクチャのデータが受信バッファに入力されるが、各ブロックの復号に必要なデータがat(i)からft(i)内のどの時刻に到着するか保証されない。そのため、実際の動画像復号装置は、時刻ft(i)からi番目ピクチャの復号処理を開始することとなる。従って、１ピクチャの復号処理に必要な最悪の処理時間をctとすれば、実際の動画像復号装置は時刻ft(i)+ctにしか復号処理を完了することが保証できない。【００１１】
動画像符号化装置が保証しているのは、時刻dt(i)までに、そのピクチャの復号に必要なデータが復号受信バッファに到着していること、すなわち、ft(i)がdt(i)以前となることである。そのため、ft(i)が最も遅くなる場合、ft(i)はdt(i)と等しくなる。このとき、復号処理が完了することが保証される時刻は、dt(i)+ctとなる。表示するピクチャの間隔が一定となるよう、全てのピクチャを表示するには、動画像復号装置は、各ピクチャの表示時刻を理想復号装置よりも少なくともctだけ遅延させなければならない。【００１２】
このように、MPEG-2またはMPEG-4 AVC/H.264における理想復号装置のストリーム受信バッファの動作規定では、あるピクチャの全ビットがストリーム受信バッファに到着する時刻が、そのピクチャの復号時刻よりも早いことが要求されている。【００１３】
ここで、MPEG-2では、ピクチャ内の各ブロックのデータ量を圧縮するために、エントロピー符号化方式が採用されている。MPEG-2のエントロピー符号化方式では、符号化対象である、ピクチャ内のあるブロックの圧縮データ（動きベクトル等のヘッダ情報及び、量子化した直交変換係数）を表すビットストリーム中のビット列が、例えば変換テーブルに従って他のビット列に変換される。このような変換処理は非常に高速で実行することが可能なため、圧縮データのエントロピー符号化が開始されてから符号化されたビット列がストリームとして生成されるまでの遅延時間は実質的にゼロである。すなわち、あるブロックまでの符号化処理を終了した時刻が、送信バッファへの入力時刻とほぼ同一となる。そのため、符号化装置は、容易に受信バッファの動作規定を守るようにピクチャの圧縮データの符号量を制御できる。【００１４】
一方、MPEG-4 AVC/H.264では、エントロピー符号化方式として、MPEG-2で採用されている方式に加え、算術符号化方式も採用されている。算術符号化方式では、符号化対象である、ピクチャ内のあるブロックの圧縮データは1シンボルずつ処理され、ストリームとして生成される。その際、ある注目ブロックの最後の圧縮データのシンボルのエントロピー符号化が開始されてから符号化されたビット列がストリームとして生成されるまでの遅延（以降、エントロピー符号化遅延と呼ぶ）は一般的にはゼロではない。注目ブロックの最後のシンボルに対応する符号化されたビット列は、次のブロックの圧縮データのいくつかのシンボルのエントロピー符号化が開始されないとストリームとして生成されないことがある。すなわち、あるピクチャの符号化処理の開始から終了までに送信バッファに送信したビット量（見かけ上のピクチャの発生情報量）と、実際のピクチャの発生情報量との間に、エントロピー符号化遅延に応じた差が生じる。このため、見かけ上のピクチャの発生情報量に従い、ピクチャの復号時刻を遵守するように符号化装置が情報量を制御しても、実際のピクチャの全ビットが受信バッファに到着する時刻がエントロピー符号化遅延に比例して遅れる。そのため、エントロピー符号化遅延の大きさによっては、上記の受信バッファの動作規定による制約が満たされないおそれがあった。【００１５】
さらに、エントロピー符号化方式の一つとして、シンボル確率分布を量子化することで、算術符号化を並列に行う方式も提案されている（例えば、非特許文献２を参照）。符号化装置がこのようなエントロピー符号化方式に従って各ブロックの圧縮データを符号化する場合、エントロピー符号化遅延の最悪値が非常に大きくなる（例えば4096ビット）おそれがあった。そしてエントロピー符号化遅延の最悪値が大きくなると、その結果として、理想復号装置における受信バッファの動作規定が満たされなくなるおそれがあった。【００１６】
そこで本明細書は、エントロピー符号化による遅延により受信バッファのアンダーフローが生じることを防ぎつつ、復号処理の遅延を低減する動画像符号化装置を提供することを目的とする。
【課題を解決するための手段】
【００１７】
一つの実施形態によれば、動画像データに含まれる各ピクチャを複数のブロックに分割して符号化する動画像符号化装置が提供される。この動画像符号化装置は、複数のブロックのそれぞれが、ピクチャを分割した複数のグループの何れに属するかを決定するグループ決定部と、グループ毎に復号時刻を算出するグループ復号時刻情報算出部と、グループに含まれる全てのブロックの復号に必要なデータが、所定の伝送レートで動画像復号装置に伝送された場合に、そのグループの復号時刻までに動画像復号装置のストリーム受信バッファに到達するように、そのグループに含まれる各ブロックのデータのエントロピー符号化後の符号量を制御する符号量制御部と、その符号量に基づいて各ブロックのデータを圧縮する圧縮部と、圧縮された各ブロックのデータをエントロピー符号化するエントロピー符号化部と、圧縮された各ブロックのデータのエントロピー符号化に伴うグループ毎の遅延の最大値に相当するグループ毎の復号時刻の補正情報及び各ブロックの属するグループを表すグループ情報を出力データに付加する復号情報付加部とを有する。【００１８】
本発明の目的及び利点は、請求項において特に指摘されたエレメント及び組み合わせにより実現され、かつ達成される。
上記の一般的な記述及び下記の詳細な記述の何れも、例示的かつ説明的なものであり、請求項のように、本発明を限定するものではないことを理解されたい。
【発明の効果】
【００１９】
本明細書に開示された動画像符号化装置は、エントロピー符号化による遅延により受信バッファのアンダーフローが生じることを防ぎつつ、復号処理の遅延を低減できる。
【図面の簡単な説明】
【００２０】
【図１】図１は、従来技術による受信バッファのバッファ占有量の遷移を示す図である。
【図２】図２は、一つの実施形態による、動画像符号化装置の概略構成図である。
【図３】図３は、エントロピー符号化部の概略構成図である。
【図４】図４（Ａ）は、第３の実施形態による一つのブロックの圧縮データの構造を示す図である。図４（Ｂ）は、圧縮データと、エントロピー符号化によって変換されたビット列との関係を説明する図である。
【図５】図５は、エントロピー符号化部のビン符号化部及び多重化部の挙動の説明図である。
【図６】図６は、一つの実施形態による動画像符号化装置により伝送される符号化動画像データストリームが蓄積される受信バッファのバッファ占有量の遷移を示す図である。
【図７】図７は、最初のグループの復号時刻を遅らせた場合における、受信バッファのバッファ占有量の遷移を示す図である。
【図８】図８は、バッファ占有量の代わりに、動画像符号化装置における発生情報量及び動画像復号装置における復号情報量の時間経過を表したグラフである。
【図９】図９は、一つの実施形態による動画像符号化処理の動作フローチャートを示す図である。
【発明を実施するための形態】
【００２１】
以下、図を参照しつつ、一つの実施形態による動画像符号化装置について説明する。この動画像符号化装置は、ピクチャ内に含まれる各ブロックをグループ単位で分類し、グループ毎に推定される復号時刻に応じて、グループに含まれるブロックの符号量を調整することで、復号遅延を低減する。またこの動画像符号化装置は、各ブロックの圧縮データをエントロピー符号化する際の最大遅延時間に基づいてグループ毎の推定復号時刻を補正し、その補正された推定復号時刻を動画像復号装置へ通知する。これにより、この動画像符号化装置は、エントロピー符号化による遅延により動画像復号装置の受信バッファのアンダーフローが生じることを防止する。
【００２２】
図２は、一つの実施形態による、動画像符号化装置の概略構成図である。動画像符号化装置１０は、符号化処理部１１と、符号量制御部１２と、グループ決定部１３と、グループ復号時刻情報算出部１４と、グループ情報付加部１５と、エントロピー符号化遅延情報付加部１６と、ビットカウンタ２５とを有する。動画像符号化装置１０が有するこれらの各部は、それぞれ、別個の回路として動画像符号化装置１０に実装される。あるいは、動画像符号化装置１０が有するこれらの各部は、その各部の機能を実現する回路が集積された一つの集積回路として動画像符号化装置１０に実装されてもよい。あるいはまた、動画像符号化装置１０が有するこれらの各部は、動画像符号化装置１０が有するプロセッサ上で実行されるコンピュータプログラムにより実現される機能モジュールであってもよい。
【００２３】
動画像データに含まれる符号化対象ピクチャは、図示しない制御部によりブロック単位に分割され、ブロックごとに符号化処理部１１に入力される。各ブロックは、例えば、16×16画素を有する。
符号化処理部１１は、直交変換部２１と、量子化部２２と、エントロピー符号化部２３とを有する。このうち、直交変換部２１及び量子化部２２は、各ブロックのエントロピー符号化後の符号量に基づいて各ブロックのデータを圧縮する圧縮部の一例である。
【００２４】
各ブロックは直交変換部２１に入力される。そして直交変換部２１は、各ブロックに対して、それぞれ、例えば離散コサイン変換(Discrete Cosine Transform、DCT)などの直交変換処理を行って周波数係数の組を算出する。算出された周波数係数の組は量子化部２２に入力される。なお、各ブロックに対して、既に符号化されたピクチャを動き補償することなどにより予測画像が生成される場合には、各ブロックと予測画像間の差分演算により求められる予測誤差画像が直交変換部２１に入力されてもよい。
【００２５】
なお、ピクチャは、フレームまたはフィールドの何れであってもよい。フレームは、動画像データ中の一つの静止画像であり、一方、フィールドは、フレームから奇数行のデータあるいは偶数行のデータのみを取り出すことにより得られる静止画像である。
また、符号化された動画像は、カラー動画像であってもよく、あるいは、モノクロ動画像であってもよい。
【００２６】
量子化部２２は、例えば、符号量制御部１２の量子化値算出部２４により算出された量子化値に応じて決定される量子化スケールで各周波数係数を除算することにより、各周波数係数を量子化する。この量子化により、各周波数係数の情報が削減される。量子化値が大きくなるほど、量子化の精度が悪くなり、各周波数係数の情報が大きく削減される。
量子化部２２により量子化された各周波数係数は、エントロピー符号化部２３に入力される。また量子化された各周波数係数は、以降に符号化されるピクチャまたはブロックに対する予測画像を作成するために逆量子化され、さらに逆直交変換されて図示しない画像メモリに記憶されてもよい。
【００２７】
エントロピー符号化部２３は、ブロックの圧縮データ（量子化された各周波数係数、及び符号化モード等のブロックヘッダ情報を含む）をエントロピー符号化する。そしてエントロピー符号化部２３は、そのエントロピー符号で表されるビット系列を出力データストリームに含める。
また、エントロピー符号化部２３にて発生したビット系列のビット量はブロックごとにビットカウンタ２５にて加算され、発生符号量として符号量制御部１２のバッファ占有量算出部２６に通知される。すなわち、ビットカウンタ２５で計数される対象ブロックの発生符号量は、エントロピー符号化部２３が出力した、直前のブロックの符号化完了時点でのビット系列の最終ビット位置と対象ブロックの符号化完了時点でのビット系列の最終ビット位置との差分となる。実際のブロックの発生情報量は、ビットカウンタ２５で計数されるブロックの発生情報量と比較して、最大でエントロピー符号化遅延に相当する符号量だけ大きい。
【００２８】
本実施形態によるエントロピー符号化部２３は、非特許文献２に開示された手法に従ってブロックの圧縮データをエントロピー符号化する。
非特許文献２に開示された手法は、基本的にMPEG-4 AVC/H.264に規定されるContent-based Adaptive Binary Arithmetic Coding(CABAC)と同様に算術符号化技術を用いる。しかし、この手法では、バイナリ化された圧縮データを１ビットずつ算術符号化する代わりに、バイナリ化された圧縮データの各ビットの推定確率に基づく複数個のビン符号化部が用いられる。各ビン符号化部には、それぞれ別個の推定確率が割り当てられ、バイナリ化された圧縮データの各ビットは、その推定確率に対応するビン符号化部において算術符号化される。
【００２９】
この手法では、各ビン符号化部は、固定の推定確率のビット列を処理するため、実際には、算術符号化演算を行う代わりに、入力されるnビットをmビットの出力にマッピングすることで、圧縮データを可変長符号化してもよい。なお、m、nは、それぞれ1以上の整数である。本明細書では、便宜上、出力されるmビットをワードと呼ぶ。可変長符号化された圧縮データは、出力データのビットストリームにワード単位で出力される。
非特許文献２に開示された手法では、CABACと同様に、変換されたビット列と変換前の圧縮デ−タとの関係が一対一ではない。また、先にビン符号化部に入力されたビンに相当するワードが、そのビンよりも後にビン符号化部に入力されたビンに相当するワードよりも後に出力データのビットストリームに出現することもある。
【００３０】
図３は、エントロピー符号化部２３の概略構成図である。エントロピー符号化部２３は、バイナリ化部３０１と、コンテキストモデル化部３０２と、確率量子化部３０３と、K個のビン符号化部３０４−１〜３０４−ｋ（ただしKは2以上の整数）と、多重化部３０５とを有する。
【００３１】
バイナリ化部３０１は、入力されたブロックの圧縮データに含まれる各シンボルをバイナリ化し、各シンボルをビット列で表す。そのために、バイナリ化部３０１は、例えば、MPEG-4 AVC/H.264に準拠して、各シンボルをバイナリ化する。例えば、I-Slice内のマクロブロック種別mbTypeが4x4イントラ予測、もしくは8x8イントラ予測を表すシンボル"INxN"である場合、そのシンボルは'0'で表される。また、ブロック種別mbTypeがPCM符号化を表すシンボル"IPCM"である場合には、そのシンボルは'11'で表される。バイナリ化部３０１から出力されたビット列は、コンテキストモデル化部３０２に入力される。
【００３２】
コンテキストモデル化部３０２は、バイナリ化部３０１から入力されたビット列の各ビットに対し、個々にコンテキストを割り当てる。コンテキストは、例えば、周囲ブロックのブロックの圧縮データから決定される。そして、エントロピー符号化しようとするブロックの圧縮データが周囲ブロックの圧縮データと類似している場合とそうでない場合とで、異なるコンテキストが用いられることにより、算術符号化の効率が向上する。コンテキストモデル化部３０２は、ビット列のビット毎に、その値(0または1)と、決定されたコンテキストのLeast Probable bit(LPB)、及びLPB確率を出力し、出力されたビット、LPB及びLPB確率は確率量子化部３０３に入力される。LPBは、過去にそのコンテキストとペアとなってコンテキストモデル化部３０２から出力されたビット列の各ビットにおける、出現頻度の小さい方の値を表す。またLPB確率は、LPBの発生確率を表す。例えば、過去のビット列に含まれる10個のビットが[0,0,0,1,1,1,1,1,1,1]の場合、LPBは0であり、LPB確率は0.3になる。
【００３３】
確率量子化部３０３は、コンテキストモデル化部３０２から出力された各ビットのLPB確率をそれぞれ量子化する。例えば、確率量子化部３０３は、0から1の連続する確率値を、K個の離散的な値に量子化する。例えばLPB確率が0.3で、Kが4である場合、確率量子化部３０３は、LPB確率の値0.3の量子化値を0.25(=1/4)とする。確率量子化部３０３から出力されたビットは、K個のビン符号化部３０４−１〜３０４−ｋのうち、そのビットのLPB確率の量子化値に応じたビン符号化部に入力される。
【００３４】
ビン符号化部３０４−１〜３０４−ｋは、それぞれ、互いに異なるLPB確率の量子化値に対応するビットを算術符号化する。例えば、上記のように、LPB確率の量子化値が1/4であれば、そのLPB確率に対応するビットは、ビン符号化部３０４−１〜３０４−ｋのうちの離散的確率1/4に対応するビン符号化部に入力される。そして各ビン符号化部は、多重化部３０５のバッファ内に格納されているエントリのビット列のうち、ビン符号化部に対応する量子化LPB確率のエントリのビット列にそのビットを追加する。そして各ビン符号化部は、ビット列が変換可能となる度に、そのビット列をワードに変換する。
【００３５】
多重化部３０５は、例えば、バッファを有し、各ビン符号化部から書き込まれたビット列及びビット列に対応するワードをそのバッファに格納する。多重化部３０５は、ワードが出力可能となるまで、そのワードをバッファ内に格納する。そして多重化部３０５は、格納されているワードが出力可能となった時点で、そのワードを出力データのビットストリームとして出力する。
【００３６】
なお、各ビン符号化部に入力されるビット（ビン）は同じLPBを持つと仮定できるので、各ビン符号化部及び多重化部は、算術符号化そのものを行う代わりに、複数の入力ビットを含むビット列を一つのビン列として可変長符号化してもよい。この場合、例えば、ビット列（ビン列）とワードとの関係を表す変換テーブルが各ビン符号化部に記憶される。そして各ビン符号化部は、その変換テーブルを参照してビン列をワードに変換する。例えば、LPBが1でLPB確率が0.15（即ち0の発生確率が0.85)である場合、入力ビン列"0000"は"1"に、入力ビン列"11"は"00001"に変換される。
【００３７】
以下に、エントロピー符号化部２３の一つの実施形態、及びその実施形態における、グループの最終ビットの定義を説明する。グループの最終ビットは、グループ内の最終ブロックの最終ビットと定義される。
【００３８】
図４（Ａ）及び図４（Ｂ）を参照しつつ、出力データのビットストリームにおける、各ブロックの最終ビットについて説明する。
図４（Ａ）は、一つのブロックの圧縮データの構造を示す図である。図４（Ａ）に示されるように、一つのブロックの圧縮データ４０００は、先頭から順に、スキップフラグ４０１０と、マクロブロックレイヤ４０１１と、スライスエンドフラグ４０１２とを含み得る。なお、スキップフラグ、マクロブロックレイヤ及びスライスエンドフラグは、それぞれ、以下ではMbSkipFlag、MacroblockLayer及びEndOfSliceFlagと表記する。
MbSkipFlag４０１０は、現在のブロックがスキップされたか否かを表す。例えば、現在のブロックがスキップされている場合には、MbSkipFlag４０１０は'1'となり、一方、現在のブロックがスキップされていなければ、MbSkipFlag４０１０は'0'となる。またMacroblockLayer４０１１は、ブロック符号化種別、動きベクトル情報、及び量子化DCT係数等のブロック圧縮データである。ブロックのスキップとは、そのスキップされたブロックのMacroblockLayer４０１１が出力データストリームに含まれないことを意味する。
ピクチャがイントラ符号化ピクチャの場合、ブロックのスキップは許容されないので、MbSkipFlag４０１０は常に'0'となる。そのため、出力データストリームにMbSkipFlag４０１０は含まれない。
EndOfSliceFlag４０１２は、現在のブロックがスライスの最終ブロックか否かを表す。例えば、現在のブロックが最終ブロックである場合には、EndOfSliceFlag４０１２は'1'となり、一方、現在のブロックが最終ブロックでなければ、EndOfSliceFlag４０１２は'0'となる。
【００３９】
図４（Ｂ）は、圧縮データと、可変長符号化によって変換されたビット列との関係を説明する図である。
図４（Ｂ）に示されるように、出力データストリームのビット列の一例であるビット列４１００は１５個のビットを含む。この場合において、ドットの集合４１０１は、ビット列４１００に含まれる各ビットに対応する、ビット列４１００を算術復号することにより得られる圧縮データに含まれるビンを表す。この例では、ビット列４１００はビン０〜ビン１０に対応する。そして、ビン０〜ビン２はブロック０に含まれ、ビン３〜ビン５はブロック１に含まれ、ビン６、７はブロック２に含まれ、ビン８〜ビン１０はブロック３に含まれる。ドットの集合４１０１に含まれる各ドットは、それぞれ、そのドットの上方に示された変換後のビット列４１００に含まれるビットが、そのドットの左側に示されたビンを復号するために使用されることを表す。例えばビン０、ビン５及びビン７は、0番目〜3番目のビットを用いて復号される。逆に言うと、ビン０、ビン５及びビン７の3ビットが、ビット列４１００中の0番目〜3番目の4ビットに変換される。
【００４０】
ドット集合４１０１から明らかなように、ブロック１に属する最後のビン５を復号するために必要なビット列（ビット0〜ビット3)は、ブロック１に属する最初のビン３を復号するために必要なビット列（ビット7〜ビット8)よりも先に出力データのビットストリーム４１００内に出現する。このように、ブロックの各ビンの順番に対して、出力データのビットストリーム上での対応するワードの順番が逆転することがある。
【００４１】
ブロックの最終ビットは、以下のようになる。
CABACによりブロックが符号化される場合と同様に、ブロックの圧縮データのバイナリ化データの先頭ビット及び最終ビットは、常にMbSkipFlag及びEndOfSliceFlagである。そしてピクチャ中にブロックがw個あった場合、出力データのビットストリーム中には必ずw個のMbSkipFlagとw個のEndOfSliceFlagがある。
【００４２】
しかし、この実施形態では、可変長符号化されたブロックxの最終ビットは、ブロックxの圧縮データのバイナリ化データの各ビットを復号するために必要なワードの中で、出力データのビットストリーム中の位置が最も後ろのワードAの最後のビットとなる。図４（Ｂ）に示した例では、ブロック０、ブロック１及びブロック２の最終ビットは、それぞれ、矢印４２００で示される、ビット列４１００の8番目のビットである。また、ブロック３の最終ビットは、矢印４２０１で示される、ビット列４１００の14番目のビットである。
【００４３】
図５は、エントロピー符号化部のビン符号化部及び多重化部の挙動の説明図である。ビン符号化部３０４−１〜３０４−ｋは、入力ビン列から出力ワードへの変換マップ５００を参照して、同一の量子化LPB確率を持つビットからなる入力ビン列をワードに変換する。説明の簡略化のため、多重化部３０５は、各ビン符号化部３０４−１〜３０４−ｋから多重化部３０５に入力されるビン列に対して同一の変換マップを適用するものとする。例えばビン列"0000"はワード"1"に変換される。
【００４４】
この例において、入力ビット列５０１の各ビットに対して、量子化LPB確率を表す確率インデックス５０２が確率量子化部３０３により付加される。この例では、LPB確率は４個の値の何れかに量子化されるものとし、各量子化LPB確率には、それぞれ、確率インデックス0〜3が割り当てられる。そして入力ビット列５０１の各ビットは、先頭のビット５５０から順に、そのビットの確率インデックスに対応するビン符号化部に入力される。例えば、確率インデックスが'0'であるビットは、ビン符号化部３０４−１に入力され、確率インデックスが'1'であるビットは、ビン符号化部３０４−２に入力される。
【００４５】
テーブル５６０〜５６３は、それぞれ、ビット５５０〜５５３が何れかのビン符号化部に入力された時点における、多重化部３０５が有するバッファに格納されたデータを示す。
テーブル５６０〜５６３において、一つの行が、多重化部３０５のバッファ内に格納された一つのエントリに対応する。そして各テーブル内には、生成された順序に従って、上から順にエントリが表記される。多重化部３０５は、出力データのビットストリームとして、バッファ内に格納されたエントリのワードを、上から下の順番に沿って出力する。"#"はバッファ内のエントリのインデクスである。"Idx"は対応するビン符号化部のインデクスであり、この例では、理解を容易にするために、ビン符号化部のインデックスは、そのビン符号化部に入力される入力ビットに付加された確率インデックスと同一の値を持つ。「入力」は、入力されたビット列（ビン列）である。「ワード」は入力されたビット列に対応するワードである。もし入力ビット列に対応するワードが存在しない場合（例えば、入力ビット列が"00"の場合）、各テーブルにおいてワードは"N/A"と表記される。
【００４６】
ビン符号化部３０４−１〜３０４−ｋの何れかへビット５５０が入力される前の状態では、多重化部３０５のバッファは空であるとする。
多重化部３０５のバッファが空の状態で、ビットがビン符号化部に入力されると、ビットが入力されたビン符号化部は、多重化部３０５のバッファに新しいエントリを作成する。この例では、テーブル５６０に示されるように、確率インデックスが'0'で、かつ値が'0'であるビット５５０がビン符号化部３０４−１へ入力されることにより、多重化部３０５のバッファ内にエントリインデクスが'0'の最初のエントリが作成される。ビット５５０の確率インデックスが'0'であるため、このエントリの"Idx"は'0'である。またビット５５０の値が'0'であるため、最初のエントリの入力ビット列は"0"となる。ワードはまだ未完成であるため、このエントリのワードは"N/A"である。
【００４７】
次に、ビン符号化部３０４−２へ、確率インデックスが'1'で、かつ値が'0'であるビット５５１が入力される。この場合、このビットの確率インデックスに相当するエントリはまだ多重化部３０５のバッファ内に存在しないので、テーブル５６１に示されるように、新しいエントリが生成される。この２番目のエントリの"Idx"は'1'である。またワードはまだ未完成であり、２番目のエントリのワードは"N/A"である。
【００４８】
以降、新たなビットがビン符号化部に入力される度に、ビン符号化部３０４−１〜３０４−ｋ及び多重化部３０５は、以下の１）〜４）の規則に従って、多重化部３０５のバッファ内のエントリのビン列をワードに変換し、また適宜出力可能となったエントリのワードを出力する。
【００４９】
１）ビン符号化部３０４−１〜３０４−ｋは、入力ビットの確率インデックスに対応するエントリを、多重化部３０５のバッファ内のエントリインデクスの昇順に探索する。
【００５０】
２）もし入力ビットの確率インデックスに対応する、ワードが"N/A"であるエントリがあれば、ビン符号化部３０４−１〜３０４−ｋは、そのエントリの入力ビット列を更新する。具体的には、ビン符号化部３０４−１〜３０４−ｋは、そのエントリの入力ビット列の後ろに新たな入力ビットを付加する。多重化部３０５は、更新されたビット列が、変換テーブル５００のビン列の何れかと一致するか否かを判定する。もし一致するビン列があれば、ビン符号化部３０４−１〜３０４−ｋは、そのビン列に対応するワードをこのエントリのワードとする。
【００５１】
３）もし入力ビットの確率インデックスに対応する、ワードが"N/A"でないエントリが無ければ、ビン符号化部３０４−１〜３０４−ｋは、その確率インデックスに対応する新たなエントリを作成する。
【００５２】
４）ワードが"N/A"でないエントリはビットストリームとして出力可能であるが、エントリの出力順序は多重化部３０５のバッファ内のエントリインデクスの降順に従う。これは、動画像復号装置が多重化されたワードを正常に復号する（ワードからビン列への逆変換）ために必要な制限である。もし着目するエントリのエントリインデクスより小さく、かつワードが"N/A"のエントリが多重化部３０５のバッファに残っている場合には、着目するエントリのワードが"N/A"でなくても、多重化部３０５は、その着目するエントリを出力することはできない。
多重化部３０５は、エントリを出力する場合、そのエントリのワードを出力データのビットストリームに追加する。出力されたエントリは、多重化バッファから除かれる。
【００５３】
テーブル５６２は、ビン符号化部３０４−１へ、確率インデックスが'0'で、かつ値が'0'であるビット５５２が入力された時点における、多重化部３０５のバッファの状態を表す。この場合、エントリインデクスが'1'から'4'のエントリは出力可能な状態である。しかし、エントリインデクスが'0'のエントリのワードが"N/A"のため、多重化部３０５は、全てのエントリのワードをまだビットストリームとして出力できない。すなわちエントロピー符号化の遅延が生じる。
【００５４】
テーブル５６３は、ビン符号化部３０４−１へ、確率インデックスが'0'で、かつ値が'1'であるビット５５３が入力された時点における、多重化部３０５のバッファの状態を表す。この時点において、初めてエントリインデクスが'0'のエントリのワードが"N/A"でなくなる。そのため、多重化部３０５は、エントリインデクスが'0'から'4'のエントリ全てを出力できる。
【００５５】
図５から分かるように、確率インデックスの偏りがある場合、例えば図５にて確率インデックスが'0'のビットが入力ビット列の先頭ビット５５０以降出現しない場合には、その他のエントリの出力が無限に待たされることになる。
そこでエントロピー符号化部２３は、この問題を回避するために、多重化部３０５のバッファに格納された各エントリのワードのビット量の総和が最大遅延値Δを超えた場合、ワードが"N/A"のエントリに対し、エントリの入力ビット列にダミーのビット列を付加する。これにより、エントロピー符号化部２３は、全てのエントリの入力ビット列をワードに変換し、バッファ内の全てのエントリを出力可能にする。この処理はフラッシュ処理と呼ばれる。
【００５６】
動画像符号化装置と動画像復号装置は、可変長符号及び可変長復号の多重化部のバッファの状態を共有できる。そのため、動画像符号化装置１０が最大遅延Δを動画像復号装置へ伝送することで、動画像復号装置も、動画像符号化装置により実行されるフラッシュ処理を全く同じように実行できる。
フラッシュ処理を実行することで、動画像符号化装置１０は、多重化部３０５のバッファに蓄積されているワードのビット総量の上限、及びビットの入力時刻から対応するワードがビットストリームとして出力される時刻までの経過時間の上限を抑制できる。
【００５７】
最大遅延値Δを小さくすることで、エントロピー符号化遅延は小さくできる。しかし、フラッシュ処理が行われると、ダミーのビット列がエントリの入力ビット列に挿入されるので符号化効率が低下する。そのため、最大遅延値Δは、エントロピー符号化遅延と符号化効率とのバランスがとれる値に設定されることが好ましい。例えば、最大遅延値Δは、(Δ/R)が連続する二つのグループの復号時刻の差未満となるように設定されることが好ましく、例えば、4096ビットに設定される。なお、Rは、動画像符号化装置１０から動画像復号装置へデータストリームが伝送されるビットレートである。
またエントロピー符号化の最大遅延値Δは、予め設定された固定値であってもよく、あるいは、ピクチャごと、もしくは複数のピクチャごとに設定可能な変数であってもよい。
【００５８】
グループ決定部１３は、符号化処理中のブロックの属するグループを、図示しない制御部から受け取ったブロックカウント情報に基づいて所定方法に従って決定する。ブロックカウント情報は、ピクチャに含まれる各ブロックの番号を表す情報であり、例えば、ピクチャの左上端のブロックに対する番号が1に設定され、ラスタスキャン順に従って各ブロックに番号が割り当てられる。そしてピクチャの右下端のブロックに対して、最大の番号が割り当てられる。なお、ブロックカウント情報は、他の順序に従って各ブロックに割り当てられた番号を含んでもよい。
【００５９】
グループ決定部１３は、グループごとの復号処理時間を均等化するために、各グループに含まれるブロックの数が出来る限り等しくなるように複数のグループを決定することが好ましい。例えば、グループ決定部１３は、ブロックライン単位で各ブロックをグループに分割すれば、任意のピクチャサイズにおいて各グループに含まれるブロックの数を等しくすることができる。例えば、ピクチャサイズが、高精細度テレビジョン放送（High Definition Television、HDTV）相当の1920画素×1088画素であり、ブロックサイズが16画素×16画素であれば、ブロックライン数は68である。したがって、この場合、符号化対象ピクチャに含まれる各ブロックは、68個のグループの何れかに分類される。
なお、グループに含まれるブロックの数は、１から画面全体のブロック数までの間の値にしてもよい。
グループ決定部１３は、符号化対象ブロックが属するグループの識別情報を符号量制御部１２のバッファ占有量算出部２６へ通知する。またグループ決定部１３は、グループの総数Nをグループ復号時刻情報算出部１４及びグループ情報付加部１５へ通知する。なお、グループ決定部１３は、各グループの先頭に位置するブロックのインデックスをグループ情報付加部１５へ通知してもよい。
以下、符号化対象ピクチャに含まれる水平方向のブロック数をM、垂直方向のブロック数をNとして、全ブロックを１ブロックライン単位でN個のグループに等分割した場合を例に説明する。
【００６０】
グループ復号時刻情報算出部１４は、符号化対象ピクチャが符号化順に沿ってi番目のピクチャであるとして、i番目ピクチャの入力時刻t(i)から所定の遅延時間dly分遅延させたそのピクチャの復号時刻dt(i)｛=t(i)+dly｝に基づいて、n番目のグループが復号される時刻を表す復号時刻dgt(i,n)を算出する。または、グループ復号時刻情報算出部１４は、復号時刻として、dgt(i,n)の代わりに、dgt(i,n)と等価な｛dgt(i,n)-dgt(i,n-1)｝を算出してもよい。また、グループ復号時刻情報算出部１４は、復号時刻を、適当な単位、例えば、1/90000秒単位の倍数となるように丸めてもよい。
【００６１】
グループ復号時刻情報算出部１４は、例えば、各グループの復号時刻を、各グループの復号処理に要する時間を均等とするために、1ピクチャ当たりの復号処理に要する時間をグループ数Nで等分割するように決定する。この場合、n番目(n=1,2,...,N)のグループの復号時刻は、次式に従って算出される。
【数１】
2012098646.tif 000003
また、復号処理に要する時間は、グループごとに均等でなくてもよい。特に、グループ復号時刻情報算出部１４は、次式のように、最初に符号化・復号されるグループに対応する復号時刻dgt(i,1)のみ、1ピクチャ当たりの復号処理に要する時間を等分割した場合の復号時刻よりも遅らせてもよい。
【数２】
2012098646.tif 000004
なお、dt(i)、dt(i-1)は、それぞれ、i番目のピクチャ及び(i-1)番目のピクチャの復号時刻である。
さらにグループ復号時刻情報算出部１４は、２番目以降に符号化・復号されるグループの復号時刻dgt(i,n)(n≧2)を、次式のように決定してもよい。
【数３】
2012098646.tif 000005
このように復号時刻を決定することで、グループ復号時刻情報算出部１４は、バッファ占有量算出部２６にて算出されるバッファ占有量を最初のグループの符号化処理開始前に大きくすることができる。その結果、符号量制御における自由度が向上する。
グループ復号時刻情報算出部１４は、各グループの復号時刻を含む復号時刻情報を、バッファ占有量算出部２６及びグループ情報付加部１５へ出力する。
【００６２】
符号量制御部１２は、グループに含まれる全てのブロックの復号に必要なデータがそのグループの復号時刻までにストリーム受信バッファに到達するように、そのグループに含まれる各ブロックのデータのエントロピー符号化後の符号量を制御する。そのために、符号量制御部１２は、量子化値算出部２４とバッファ占有量算出部２６とを有する。
【００６３】
バッファ占有量算出部２６は、理想復号装置のストリーム受信バッファのバッファ占有量の推定値を計算する。伝送するビットレートをRとし、バッファ占有量をdで表す。符号化処理中のブロックのエントロピー符号化処理が完了し、その発生符号量がbであった場合、bがビットカウンタ２５からバッファ占有量算出部２６へ通知される。そしてバッファ占有量算出部２６は、dからbを減算する。
バッファ占有量算出部２６は、各グループの最後のブロックの符号化処理が行われた後に、次式に従ってバッファ占有量dを回復させる。
【数４】
2012098646.tif 000006
バッファ占有量算出部２６は、一つのブロックについてのエントロピー符号化処理が終了する度に、求めたバッファ占有量dを量子化値算出部２４へ通知する。
【００６４】
量子化値算出部２４は、バッファ占有量に基づいて、各ブロックに対する量子化値を算出する。その際、量子化値算出部２４は、グループに含まれる全てのブロックの発生符号量の合計が、そのグループの最初のブロックの符号化処理を開始する直前のバッファ占有量d以下となるように、すなわち、符号化処理中にdが負値とならないように量子化値を制御する。
量子化値算出部２４は、例えば、MPEG-2における標準化団体参照ソフトウェアTest Model5（非特許文献１を参照）における量子化値算出方法に従って量子化値を算出する。次に、量子化値算出部２４は、バッファ占有量dを所定の閾値DTH１と比較する。量子化値をその取り得る値の範囲のうちの最大値としたときに、各ブロックで発生する最大の符号量をb0、符号化処理中のブロックの属するグループで、まだ符号化処理を行っていないブロックの数をM0とすると、閾値DTH1は、次式で表される。
【数５】
2012098646.tif 000007
（５）式におけるoffsetはマージン項である。dと閾値DTH１を比較した結果、dがDTH1よりも小さければ、量子化値算出部２４は、量子化値を最大値とする。
またb0として、周波数係数を全て0としたときのブロックの符号量を用いてもよい。このとき、dがDTH1よりも小さければ、量子化値算出部２４は、符号化対象ブロックの全ての周波数係数が0に量子化されるように量子化値を決定する。この制御により、グループ内の符号化処理が済んでいない残りブロックの符号量の平均値がb0を超えなければ、仮想的な復号受信バッファはアンダーフローしない。
これにより、符号量制御部１２は、動画像符号化装置１０からの出力ストリームを実際に所定のレートRに従って動画像復号装置へ伝送すれば、動画像復号装置の受信バッファがアンダーフローしないように動画像データの符号量を制御することが可能となる。
量子化値算出部２４は、求めた量子化値を量子化部２２へ通知する。
【００６５】
また、エントロピー符号化部２３から、エントロピー符号化の最大遅延値Δがエントロピー符号化遅延情報付加部１６に通知される。エントロピー符号化の最大遅延値Δの単位はビットである。あるいは、エントロピー符号化遅延情報付加部１６は、自身が有するメモリに予めエントロピー符号化の最大遅延値Δを記憶していてもよい。
エントロピー符号化遅延情報付加部１６は、ピクチャごと、もしくは所定のピクチャ間隔で、エントロピー符号化の最大遅延値Δを出力データストリームのヘッダ情報に付加する。ヘッダ情報は、例えば、MPEG-2に規定される、MPEG-2に規定されるピクチャヘッダー、またはH.264に規定されるスライスヘッダーとすることができる。
また、エントロピー符号化遅延情報付加部１６は、エントロピー符号化の最大遅延値Δをグループ情報付加部１５に通知する。
【００６６】
グループ情報付加部１５とエントロピー符号化遅延情報付加部１６は、ピクチャを復号するために用いられる情報を出力ストリームに付加する復号情報付加部の一例である。
動画像符号化装置１０は、動画像復号装置と、各ブロックが属するグループ及びグループごとの復号時刻を共有する。そのために、グループ情報付加部１５は、少なくとも、各グループに属するブロックを表すグループ情報及び各グループの復号時刻を含む復号時刻情報を出力データストリームに付加する。これにより、動画像符号化装置１０は、グループ情報及び復号時刻情報を動画像復号装置へ通知する。
【００６７】
グループ情報付加部１５は、例えば、グループ情報を、各ピクチャ、もしくは所定のピクチャ間隔で、出力データストリームのヘッダ情報に付加する。
ヘッダ情報は、例えば、MPEG-2に規定される、シーケンスヘッダー（Sequence Header）、またはH.264に規定されるシーケンスパラメータセット（Sequence Parameter Set）若しくはSupplemental Enhancement Informationとすることができる。なお、グループごとの復号時刻は、MPEG-2に規定されるピクチャヘッダー（Picture Header）、またはH.264に規定されるスライスヘッダー（Slice Header）など、各ピクチャに必ず付随されるヘッダ情報に付加されてもよい。
【００６８】
各グループに含まれるブロックの数が等しくなるようにグループが決定されている場合、動画像符号化装置１０は動画像復号装置へ全ブロックがN個のグループに等分割されたことを通知する。そのために、グループ決定部１３からグループ情報付加部１５に、グループ情報としてグループ数Nが通知される。グループ情報付加部１５は、そのグループ情報を符号化する。MPEG-2及びH.264では、マクロブロックと呼ばれる16x16画素のブロック単位で符号化が行われており、このブロック数は通常20bitで表現可能な範囲を超えない。グループの数Nの最大値は、せいぜいブロック数の最大値と等しいことから、Nの符号化も固定bit長で符号化すればよい。
【００６９】
また、各グループに含まれるブロックの数が等しいと限られない場合、グループ決定部１３からグループ情報付加部１５に対して、グループ数Nとともに、各グループの先頭ブロックのインデックス情報がグループ情報として通知される。グループ情報付加部１５はまず、グループ数Nを符号化し、順次各グループの先頭ブロックのインデックス情報を符号化する。先頭ブロックのインデックス情報に対する符号化方法も、例えば、固定bit長の符号化方式が用いられる。また、グループ情報付加部１５は、グループ数N及び各グループの先頭ブロックのインデックス情報を符号化するために、ハフマン符号といった可変長符号化方式など、他の符号化方式を用いてもよい。
【００７０】
さらに、バッファ占有量算出部２６にてバッファ占有量算出に用いたグループ毎の復号時刻dgt(i,j)が、グループ復号時刻情報算出部１４からグループ情報付加部１５に通知される。その際、１番目のグループから最後のグループであるN番目のグループまで、復号時刻は、dgt(i,n)-dgt(i,n-1)と差分値の形式にしてグループ復号時刻情報算出部１４からグループ情報付加部１５に通知されてもよい。なお、第１のグループの復号時刻に関して、dgt(i,0)は、直前のピクチャの最後のグループの復号時刻dgt(i-1,N)｛=dt(i-1)｝に設定される。
【００７１】
グループ情報付加部１５は、バッファ占有量算出に用いたグループ毎の復号時刻dgt(i , j)を、エントロピー符号化の最大遅延値Δを用いて次式に従って補正する。その補正された復号時刻dgt'(i,j)は、復号時刻補正情報の一例であり、動画像復号装置にて用いられる。なおRは伝送ビットレートである。
【数６】
2012098646.tif 000008
（６）式から明らかなように、ピクチャ内の最後のグループ以外のグループの復号時刻は、エントロピー符号化の最大遅延値Δに比例した値だけ遅くなるように補正される。
なお本実施形態では、上述したように、(Δ/R)が｛dgt(i,j)-dgt(i,j-1)｝よりも小さくなるように、エントロピー符号化の最大遅延値Δは設定されることが好ましい。Δが大きい場合にはグループ数Nを小さくすることで、動画像符号化装置１０は、常にこの条件を満たすことが可能である。
【００７２】
グループ情報付加部１５は、各グループの補正された復号時刻dgt'(i,j)の差分｛dgt'(i,j)-dgt'(i,j-1)｝を符号化し、その符号化された復号時刻を各ピクチャのデータに付加して、動画像復号装置に通知する。グループ情報付加部１５は、各差分値を、適当な精度、例えば、1/90000秒の精度で量子化した後に、32bit程度の固定bit長で符号化すればよい。また、ここでは、固定bit長で符号化する例を説明したが、グループ情報付加部１５は、各グループの復号時刻を表す差分値を、任意の可変長符号化方式を用いて符号化してもよい。
【００７３】
動画像復号装置は、通知されたグループ数Nと各グループの復号時刻情報に基づき、表示遅延量を算出する。通知された各グループの復号時刻情報に含まれる補正された復号時刻は、エントロピー符号化の遅延を考慮された値になっている。そのため、各グループの最後のビットが実際に動画像復号装置に到達する時刻が、エントロピー符号化の遅延により、動画像符号化装置１０の符号量制御部１２が制御に用いた復号時刻よりも遅い場合にも動画像復号装置はアンダーフローを生じない。したがって、動画像復号装置は、各グループのブロックの圧縮データをエントロピー符号化することにより遅延が生じる場合でも、正常に各グループを復号できる。
なお、各グループに含まれるブロック数が等しくなるように各グループが設定されている場合、表示遅延量は、１ピクチャの復号処理に必要な最悪の処理時間をctとして、ct/Nとなる。
【００７４】
上記の実施形態による動画像符号化装置１０により、動画像復号装置における動画像の復号の低遅延化が図られることを、図６〜図８を参照しつつ説明する。
理解を容易にするため、先ず、エントロピー符号化遅延が実質的に'0'である場合について説明する。図６は、動画像符号化装置１０により伝送される符号化動画像データストリームが蓄積される受信バッファのバッファ占有量の遷移を示す図である。また図７は、第１のグループの復号時刻を遅らせた場合における、受信バッファのバッファ占有量の遷移を示す図である。なお、図６及び図７において、横軸は時間を表し、縦軸はバッファ占有量を表す。また、グループ数N=4であるとする。そして図６におけるグラフ６００は、バッファ占有量の時間遷移を表す。また矢印６０１で表される期間は、各グループの復号に要する最大時間ct/Nを表す。同様に、図７におけるグラフ７００は、バッファ占有量の時間遷移を表す。
【００７５】
n番目のグループに含まれるブロックを復号するのに必要なデータが、（１）式で表される時刻dgt(i,n)までに受信バッファに到着するように、動画像符号化装置１０は各ブロックの符号量を制御する。１ピクチャの復号処理に必要な最悪の処理時間ctと(i-1)番目のピクチャ及びi番目のピクチャの最後のグループの復号時刻dt(i-1)｛=dgt(i-1,N)｝、dt(i)｛=dgt(i,N)｝の間に次式が成り立つ。
【数７】
2012098646.tif 000009
ここで、各グループに含まれるブロック数が等しい場合、図６に示すように次式が成り立つので、i番目のピクチャの最後のグループの復号時刻dgt(i,N)までに、i番目のピクチャの1〜(N-1)番目のグループのブロックについての復号処理が完了している。
【数８】
2012098646.tif 000010
N番目グループに含まれるブロックの復号に必要なデータが時刻dgt(i,N)に動画像復号装置の受信バッファに到着したとすると、そこからN番目グループの復号処理を開始したとして、復号処理時間としてct/Nが必要となる。そのため、次式で示される時刻に全ブロックの復号が完了し、表示可能となる。従って、理想復号装置に対する表示可能時刻の遅延が、ctからct/Nに短縮する。
【数９】
2012098646.tif 000011
【００７６】
グループ単位で復号時刻を算出する場合、i番目のピクチャの第１のグループの復号時刻dgt(i,1)は、i番目のピクチャの復号時刻dt(i)と比較して、｛dt(i)-dt(i-1)｝(N-1)/Nだけ、早くなる。そのため、図１および図６の点線６０２にて示される1ピクチャ単位のバッファ占有量が示すとおり、従来技術と比較して受信バッファの占有量が低下し、そのグループに使用可能な符号量が減少するとともに、グループ間での符号量の配分の自由度が減少する。図１のように受信バッファに各ピクチャのデータが入力されてから、1ピクチャの表示期間程度で、各ピクチャが復号されるような低遅延においては、バッファ占有量が小さくなるので、相対的にバッファ占有量が減少する影響が大きくなる。
【００７７】
このような問題を回避するために、バッファ占有量を回復させることを目的として、（２）式で示すように第１のグループの復号時刻を遅くすることが好ましい。第１のグループの復号時刻を遅らせることで、図７に示すとおり、バッファに伝送可能なビット量が増えて、従って、ピクチャの発生符号量の自由度を向上させることが出来る。このとき、最も遅い復号完了時刻は、次式で算出される値となる。
【数１０】
2012098646.tif 000012
なお、関数min(x,y)は、変数x、yのうち、小さい方の値を返す関数である。
（１０）式を（９）式と比較すると、第１のグループの復号時刻を遅らせても、ctが大きい動画像復号装置については、第１のグループの復号時刻を遅らせない場合に対して遅延が増加するものの、ctが十分短い動画像復号装置においては、遅延は増加しないことがわかる。
【００７８】
次に、上記の実施形態のように、エントロピー符号化の遅延最大値に相当する補正量だけ動画像復号装置における復号時刻が遅延されることにより、動画像復号装置において受信バッファのアンダーフローの発生が防止されることを、図８を参照しつつ説明する。
図８は、バッファ占有量の代わりに、動画像符号化装置における発生情報量及び動画像復号装置における復号情報量の時間経過を表したグラフである。図８において横軸は時刻を表し、縦軸は動画像符号化装置での発生情報量累積値、及び動画像復号装置での復号情報量累積値を表す。
【００７９】
グラフ８００は、送信バッファの発生情報量累積値を表す。時刻t(0)にてi番目のピクチャ内の0番目のグループの符号化が完了する。そして、ビット量がb(0)である、i番目のピクチャ内の0番目のグループのエントロピー符号化データが送信バッファに時刻t(0)にて瞬時に入力される。この時、エントロピー符号化の遅延により、ピクチャ内の0番目のグループの最終のビンに相当するワードはまだビットストリームとしてエントロピー符号化部２３から出力されていないとする。その結果として、エントロピー符号化部２３の多重化部３０５のバッファにδビットが残っている。すなわち、ピクチャ内の0番目のグループのエントロピー符号化データの内、最後のδビットを除くその他のビット列が送信バッファに格納される。
矢印８１０で示された残りのδビットは、i番目のピクチャ内の1番目のグループの符号化データと一緒に、時刻t(1)にて送信バッファに入力される。
【００８０】
グラフ８０１は、動画像符号化装置の送信バッファから動画像復号装置の受信バッファへと伝送されるビット量の累積値を表す。なお、グラフ８０１とグラフ８００の縦軸方向の差が、送信バッファのバッファ占有量に相当する。
ピクチャ内0番目のグループの符号化データが送信バッファに入力された瞬間から、その符号化データは、指定されたビットレートRで受信バッファへと遅延無く伝送される。ピクチャ内0番目のグループの最後のビンに相当するワードが受信バッファに伝送される時刻は、時刻t(1)からビットレートRにてδビットを伝送するのに要する時間を経過した時点８０２となる。
【００８１】
グラフ８０３は、動画像復号装置での復号情報量の累積値である。動画像復号装置は、時刻t(0)からグループ当たりの発生情報量が伝送されるのに要する時間だけ待ってから、ピクチャ内0番目のグループの符号化データを受信バッファから瞬時に引き抜く。そして動画像復号装置は、その0番目のグループに含まれる各ブロックを復号する。ここで、動画像復号装置が時刻t(1)｛=dgt(i,0)｝に復号を開始すると、時刻t(1)ではピクチャ内0番目のグループの最後のビンに相当するビットがまだ受信バッファに存在しないため、バッファアンダーフローが生じる。
しかし、本実施形態では、ピクチャ内の最終グループを除く各グループの復号を開始する時刻は、時刻t(j+1)(j=0,1,...,N-2)から矢印８１１で表される時間(Δ/R)だけ遅らせた時刻、すなわち、dgt'(i,j)となる。したがって、例えば、時刻t(1)から時間(Δ/R)だけ遅らせた時刻dgt'(i,0)では、i番目のピクチャ内の0番目のグループの最後のビンに相当するビットが受信バッファに到着している。そのため、動画像復号装置は、バッファアンダーフローを生じることなく、ピクチャの各グループのブロックを復号できる。なお、ピクチャ内の最後のグループに関しては、その符号化データが、次のピクチャのデータの符号化を待つことなく、その符号化データの全てがエントロピー符号化され、送信バッファに入力される。そのため、動画像復号装置は、その最終グループの全ての符号化データが受信バッファに入力される時刻t(N)｛=dgt(i,N-1)｝にその最終グループの復号を開始できる。そのため、理想復号装置に対する表示可能時刻の遅延は、（９）式または（１０）式で表される値となる。
【００８２】
図９は、一つの実施形態による動画像符号化装置１０により実行される動画像符号化処理の動作フローチャートである。動画像符号化装置１０は、ピクチャごとに、以下の動画像符号化処理を実行する。
グループ決定部１３は、各ブロックの属するグループを決定する（ステップＳ１０１）。そしてグループ決定部１３は、ブロックの属するグループを表す識別情報を符号量制御部１２のバッファ占有量算出部２６へ通知する。またグループ決定部１３は、グループの総数Nをグループ復号時刻情報算出部１４及びグループ情報付加部１５へ通知する。なお、グループ決定部１３は、各グループの先頭に位置するブロックのインデックスをグループ情報付加部１５へ通知してもよい。
次に、グループ復号時刻情報算出部１４は、グループ毎に復号時刻を算出する（ステップＳ１０２）。そしてグループ復号時刻情報算出部１４は、各グループの復号時刻を表す情報をバッファ占有量算出部２６及びグループ情報付加部１５へ通知する。
【００８３】
また、エントロピー符号化遅延情報付加部１６は、エントロピー符号化部２３からエントロピー符号化の最大遅延値Δを取得する（ステップＳ１０３）。エントロピー符号化の最大遅延値Δは、エントロピー符号化遅延情報付加部１６からグループ情報付加部１５に通知される。
次にグループ情報付加部１５は、グループ復号時刻情報算出部１４から通知されたグループ復号時刻を、エントロピー符号化遅延情報付加部１６から通知されるエントロピー符号化の最大遅延値Δに基づいて補正する（ステップＳ１０４）。グループ情報付加部１５は、各ブロックの属するグループを表すグループ情報及び補正された復号時刻を含む復号時刻情報を符号化し、その符号化されたグループ情報及び復号時刻情報を出力データストリームに付加する。またエントロピー符号化遅延情報付加部１６はエントロピー符号化の最大遅延値Δを出力データストリームに付加する（ステップＳ１０５）。
【００８４】
一方、バッファ占有量算出部２６は、グループに含まれる全てのブロックの復号に必要なデータが、所定の伝送レートで動画像復号装置に伝送された場合における、各グループの復号時刻における受信バッファのバッファ占有量を推定する（ステップＳ１０６）。なお、バッファ占有量算出部２６が参照する復号時刻は、エントロピー符号化の遅延が考慮されていない、すなわち、補正される前の復号時刻である。その際、バッファ占有量算出部２６は、ビットカウンタ２５から受け取った、それまでに符号化されたグループ内のブロックの符号量を参照する。そしてバッファ占有量算出部２６は、推定したバッファ占有量を符号量制御部１２の量子化値算出部２４へ通知する。量子化値算出部２４は、各グループの復号時刻までに各グループの全てのデータが動画像復号装置のストリーム受信バッファに到達するように、各グループに属するブロックの符号量を制御する（ステップＳ１０７）。そして量子化値算出部２４は、その符号量に応じた量子化値を符号量の制御情報として算出し、その量子化値を符号化処理部１１の量子化部２２へ通知する。
【００８５】
符号化処理部１１の直交変換部２１は、各ブロックごとに直交変換処理を行って、各ブロックの周波数係数の組を算出する（ステップＳ１０８）。そして直交変換部２１は、各ブロックの周波数係数の組を量子化部２２へ出力する。
量子化部２２は、符号量の制御情報である量子化値に基づいて各ブロックの周波数係数の組を量子化する（ステップＳ１０９）。そして量子化部２２は、量子化された各周波数係数を符号化処理部１１のエントロピー符号化部２３へ出力する。エントロピー符号化部２３は、量子化された各周波数係数をエントロピー符号化する（ステップＳ１１０）。そしてエントロピー符号化部２３は、得られたエントロピー符号を出力する。このエントロピー符号とグループ情報付加部１５からの出力されたグループ情報、復号時刻情報などが出力データストリームに格納される。またエントロピー符号化部２３は、ブロックごとの符号量をビットカウンタ２５へ出力する。
ステップＳ１１０の後、動画像符号化装置１０は、動画像符号化処理を終了する。
【００８６】
以上に説明してきたように、この動画像符号化装置は、ピクチャを分割したブロックをグループ単位で分類し、そのグループごとに推定される復号時刻に応じて、グループに含まれるブロックの符号量を調整することで、復号遅延を低減させることができる。さらにこの動画像符号化装置は、エントロピー符号化の最大遅延に基づいて復号時刻を補正するとともに、その補正された復号時刻を動画像復号装置へ通知することで、エントロピー符号化の遅延が生じても、受信バッファがアンダーフローすることを防止できる。
【００８７】
変形例によれば、エントロピー符号化遅延情報付加部１６は、ピクチャごと、もしくは所定のピクチャ間隔で、復号時刻の補正量(Δ/R)を復号時刻補正情報として、エントロピー符号化の最大遅延値Δとともに出力データストリームのヘッダ情報に付加してもよい。この場合も、ヘッダ情報は、例えば、MPEG-2に規定される、MPEG-2に規定されるピクチャヘッダー、またはH.264に規定されるスライスヘッダーとすることができる。
この場合、グループ情報付加部１５は、グループ復号時刻情報算出部１４から出力される各グループの復号時刻を補正せずにそのまま符号化し、符号化した復号時刻を出力データストリームに付加する。動画像復号装置は、上記の（６）式に従って、復号時刻の補正量(Δ/R)を用いてグループ情報付加部１５により出力データストリームに付加された各グループの復号時刻を補正することにより、エントロピー符号化の遅延を考慮した各グループの復号時刻を算出する。
【００８８】
さらに、エントロピー符号化部２３は、上記の方式に限られず、各グループを符号化する際に所定の最大値以下の遅延を生じる可能性がある、他の符号化方式に従って各グループを符号化してもよい。
【００８９】
コンピュータ上で実行されることにより、上述した実施形態またはその変形例による動画像符号化装置の各部の機能を実現するコンピュータプログラムは、半導体メモリまたは光記録媒体などの記録媒体に記録されて配布されてもよい。
【００９０】
上述した実施形態またはその変形例による動画像符号化装置は、様々な用途に利用される。例えば、この動画像符号化装置は、ビデオカメラ、映像送信装置、映像受信装置、テレビ電話システム、コンピュータあるいは携帯電話機に組み込まれる。
【００９１】
ここに挙げられた全ての例及び特定の用語は、読者が、本発明及び当該技術の促進に対する本発明者により寄与された概念を理解することを助ける、教示的な目的において意図されたものであり、本発明の優位性及び劣等性を示すことに関する、本明細書の如何なる例の構成、そのような特定の挙げられた例及び条件に限定しないように解釈されるべきものである。本発明の実施形態は詳細に説明されているが、本発明の精神及び範囲から外れることなく、様々な変更、置換及び修正をこれに加えることが可能であることを理解されたい。
【符号の説明】
【００９２】
１０    動画像符号化装置
１１    符号化処理部
１２    符号量制御部
１３    グループ決定部
１４    グループ復号時刻情報算出部
１５    グループ情報付加部
１６    エントロピー符号化遅延情報付加部
２１    直交変換部
２２    量子化部
２３    エントロピー符号化部
２４    量子化値算出部
２５    ビットカウンタ
２６    バッファ占有量算出部
３０１    バイナリ化部
３０２    コンテキストモデル化部
３０３    確率量子化部
３０４−１〜３０４−ｋ    ビン符号化部
３０５    多重化部
【図１】
2012098646.tif 000013
【図２】
2012098646.tif 000014
【図３】
2012098646.tif 000015
【図４】
2012098646.tif 000016
【図５】
2012098646.tif 000017
【図６】
2012098646.tif 000018
【図７】
2012098646.tif 000019
【図８】
2012098646.tif 000020
【図９】
2012098646.tif 000021
【手続補正書】
【提出日】平成25年7月1日(2013.7.1)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
動画像データに含まれる各ピクチャを複数のブロックに分割して符号化する動画像符号化装置であって、
前記複数のブロックのそれぞれが、前記ピクチャを分割した複数のグループの何れに属するかを決定するグループ決定部と、
前記グループ毎に復号時刻を算出するグループ復号時刻情報算出部と、
前記グループに含まれる全てのブロックの復号に必要なデータが、所定の伝送レートで動画像復号装置に伝送された場合に、前記復号時刻情報算出部で算出された当該グループの復号時刻までに当該動画像復号装置のストリーム受信バッファに到達するように、当該グループに含まれる各ブロックのデータのエントロピー符号化後の符号量を制御する符号量制御部と、
前記符号量に基づいて前記各ブロックのデータを圧縮する圧縮部と、
前記圧縮部により圧縮された前記各ブロックのデータをエントロピー符号化するエントロピー符号化部と、
前記エントロピー符号化部によるエントロピー符号化に伴う前記グループ毎の遅延の最大値に相当する前記グループ毎の復号時刻の補正情報及び前記各ブロックの属するグループを表すグループ情報を出力データに付加する復号情報付加部と、
を有する動画像符号化装置。
【請求項２】
前記復号情報付加部は、前記遅延の最大値に相当する時間だけ前記グループ毎の復号時刻を補正し、当該補正された復号時刻を前記補正情報として前記出力データに付加する、請求項１に記載の動画像符号化装置。
【請求項３】
前記復号情報付加部は、各ピクチャの最後のグループについてのみ、前記遅延の最大値をゼロとして当該最後のグループの前記補正された復号時刻を算出する、請求項２に記載の動画像符号化装置。
【請求項４】
前記復号情報付加部は、前記グループ毎の復号時刻と前記遅延の最大値に相当する復号時刻の補正量とを前記補正情報として前記出力データに付加する、請求項１に記載の動画像符号化装置。
【請求項５】
動画像データに含まれる各ピクチャを複数のブロックに分割して符号化する動画像符号化方法であって、
前記複数のブロックのそれぞれが、前記ピクチャを分割した複数のグループの何れに属するかを決定し、
前記グループ毎に復号時刻を算出し、
前記グループに含まれる全てのブロックの復号に必要なデータが、所定の伝送レートで動画像復号装置に伝送された場合に、当該グループの前記復号時刻までに当該動画像復号装置のストリーム受信バッファに到達するように、当該グループに含まれる各ブロックのデータのエントロピー符号化後の符号量を制御し、
前記符号量に基づいて前記各ブロックのデータを圧縮し、
圧縮された前記各ブロックのデータをエントロピー符号化し、
圧縮された前記各ブロックのデータのエントロピー符号化に伴う前記グループ毎の遅延の最大値に相当する前記グループ毎の復号時刻の補正情報及び前記各ブロックの属するグループを表すグループ情報を出力データに付加する、
ことを含む動画像符号化方法。
【請求項６】
動画像データに含まれる各ピクチャを複数のブロックに分割して符号化することをコンピュータに実行させる動画像符号用コンピュータプログラムであって、
前記複数のブロックのそれぞれが、前記ピクチャを分割した複数のグループの何れに属するかを決定し、
前記グループ毎に復号時刻を算出し、
前記グループに含まれる全てのブロックの復号に必要なデータが、所定の伝送レートで動画像復号装置に伝送された場合に、当該グループの前記復号時刻までに当該動画像復号装置のストリーム受信バッファに到達するように、当該グループに含まれる各ブロックのデータのエントロピー符号化後の符号量を制御し、
前記符号量に基づいて前記各ブロックのデータを圧縮し、
圧縮された前記各ブロックのデータをエントロピー符号化し、
圧縮された前記各ブロックのデータのエントロピー符号化に伴う前記グループ毎の遅延の最大値に相当する前記グループ毎の復号時刻の補正情報及び前記各ブロックの属するグループを表すグループ情報を出力データに付加する、
ことをコンピュータに実行させる動画像符号化用コンピュータプログラム。
【国際調査報告】
2012098646.tif 000022
2012098646.tif 000023
2012098646.tif 000024