(57)【特許請求の範囲】
【請求項１】
動画像データに含まれる各ピクチャを複数のブロックに分割し、該ブロック毎に符号化処理を行う動画像符号化装置であって、
複数のブロックを含むグループ毎に、復号時刻を算出する算出部と、
前記復号時刻に基づいて各ブロックの符号量を制御する符号化量制御部と、
前記制御された符号量に基づいて各ブロックを符号化して圧縮データを生成するソース符号化部と、
各ブロックの圧縮データを算術符号化して、ビットストリームを出力するエントロピー符号化部と、を備え、
前記エントロピー符号化部は、
各グループの圧縮データに相当する全ビットが、次のグループの所定個のブロックの圧縮データの算術符号化を終えた時点で出力されていない場合、算術符号処理で蓄積された未確定ビットを出力する処理を行い、
前記算出部は、
各グループの復号時刻を所定個のブロックの処理時間ずらす動画像符号化装置。
【請求項２】
前記エントロピー符号化部は、
各グループの圧縮データの算術符号化を終えた時点で、算術符号化処理において値が未確定のため保留されているビット数が１以上であり、かつ次のグループのＮ個のブロックの圧縮データの算術符号化により出力したビット数が０の場合に、スライスヘッダを挿入し、算術符号化処理のリセットを行う請求項１記載の動画像符号化装置。
【請求項３】
前記エントロピー符号化部は、
各グループの圧縮データの算術符号化を終えた時点で、算術符号化処理において値が未確定のため保留されているビット数が１以上であり、かつ次のグループのＮ−１個のブロックの圧縮データの算術符号化により出力したビット数が０の場合に、未確定ビットを出力するためにＮ番目のブロックの圧縮データの変更が必要であると判定したとき、復号結果が変更前後で変わらないように該圧縮データを変更してエントロピー符号化する請求項１記載の動画像符号化装置。
【請求項４】
前記エントロピー符号化部は、
動きベクトル予測値のインデックス情報に相当するビンに対して、仮に算術符号化を行い、未確定のため保留されているビット数が１以上であると判定したとき、前記インデックス情報を反転させ、反転したインデックス情報が示す動きベクトル予測値を用いてエントロピー符号化する請求項３記載の動画像符号化装置。
【請求項５】
動画像データに含まれる各ピクチャを複数のブロックに分割し、該ブロック毎に符号化処理を行う動画像符号化装置が実行する動画像符号化方法であって、
複数のブロックを含むグループ毎に、復号時刻を算出し、
前記復号時刻に基づいて各ブロックの符号量を制御し、
前記制御された符号量に基づいて各ブロックを符号化して圧縮データを生成し、
各ブロックの圧縮データを算術符号化して、ビットストリームを出力し、
前記ビットストリームを出力する処理は、
各グループの圧縮データに相当する全ビットが、次のグループの所定個のブロックの圧縮データの算術符号化を終えた時点で出力されていない場合、算術符号処理で蓄積された未確定ビットを出力する処理を行い、
前記復号時刻を算出する処理は、
各グループの復号時刻を所定個のブロックの処理時間ずらす動画像符号化方法。
【請求項６】
動画像データに含まれる各ピクチャを複数のブロックに分割し、該ブロック毎に符号化処理を行う動画像符号化装置に実行させるための動画像符号化プログラムであって、
複数のブロックを含むグループ毎に、復号時刻を算出し、
前記復号時刻に基づいて各ブロックの符号量を制御し、
前記制御された符号量に基づいて各ブロックを符号化して圧縮データを生成し、
各ブロックの圧縮データを算術符号化して、ビットストリームを出力し、
前記ビットストリームを出力する処理は、
各グループの圧縮データに相当する全ビットが、次のグループの所定個のブロックの圧縮データの算術符号化を終えた時点で出力されていない場合、算術符号処理で蓄積された未確定ビットを出力する処理を行い、
前記復号時刻を算出する処理は、
各グループの復号時刻を所定個のブロックの処理時間ずらす動画像符号化プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、動画像データに含まれるピクチャを複数のブロックに分割してブロックごとに符号化する動画像符号化装置、動画像符号化方法及び動画像符号化プログラムに関する。
【背景技術】
【０００２】
動画像データは、一般に非常に大きなデータ量を有する。そのため、動画像データを扱う装置は、動画像データを他の装置へ送信しようとする場合、あるいは、動画像データを記憶装置に記憶しようとする場合、動画像データを符号化することにより圧縮する。
【０００３】
代表的な動画像の符号化標準技術として、ＩＳＯ／ＩＥＣ（International Standardization Organization/International Electrotechnical Commission）で策定されたＭＰＥＧ（Moving Picture Experts Group phase）−２、ＭＰＥＧ−４、あるいはＭＰＥＧ−４  ＡＶＣ／Ｈ．２６４（H.264 MPEG-4 Advanced Video Coding）が広く利用されている。
【０００４】
このような符号化標準技術では、符号化対象のピクチャと、その前後のピクチャの情報を用いて、符号化対象のピクチャを符号化するインター符号化方法及び符号化対象ピクチャが持つ情報のみを用いて符号化するイントラ符号化方法が採用されている。
【０００５】
一般に、インター符号化方法で符号化されたピクチャ又はブロックの符号量は、イントラ符号化方法で符号化されたピクチャ又はブロックの符号量に比べて小さい。このように、選択された符号化モードにより、シーケンス内でピクチャの符号量の偏りが生じる。同様に、選択された符号化モードにより、ピクチャ内でブロックの符号量の偏りが生じる。
【０００６】
そこで、符号量が時間的に変動しても、一定の伝送レートにて符号化された動画像を含むデータストリームを伝送できるように、伝送元の装置にデータストリーム用の送信バッファが用意され、また伝送先の装置にデータストリーム用の受信バッファが用意される。
【０００７】
これらのバッファによる遅延（以降、バッファ遅延と呼ぶ）が、符号化装置における各ピクチャの入力から、復号装置における復号した各ピクチャの表示までの遅延（以降、コーデック遅延と呼ぶ）の主要因となる。バッファのサイズを小さくすることでバッファ遅延及びコーデック遅延は減少する。しかし、バッファのサイズが小さくなるほど、ピクチャ毎の符号量配分の自由度も減少し、その結果として再生される動画像の画質が劣化する。符号量配分の自由度は、符号量の変動度合いを意味する。
【０００８】
ＭＰＥＧ−２及びＭＰＥＧ−４  ＡＶＣ／Ｈ．２６４では、それぞれＶＢＶ（Video Buffering Verifier）とＣＰＢ（Coded Picture Buffer）と呼ばれる、理想的な復号装置における受信バッファの動作を規定している。以降、理想的な復号装置を理想復号装置と呼ぶ。
【０００９】
動画像符号化装置は、理想復号装置の受信バッファをオーバーフロー及びアンダーフローさせないように、符号量を制御する。理想復号装置は、復号処理に要する時間が０である瞬時復号を行うと規定されている。例えば、ＶＢＶに関する動画像符号化装置の制御を行う技術がある。
【００１０】
動画像符号化装置は、理想復号装置の受信バッファがオーバーフロー及びアンダーフローしないように、理想復号装置があるピクチャを復号する時刻にそのピクチャのデータが受信バッファに格納されていることを保証するように符号量を制御する。
【００１１】
受信バッファのアンダーフローは、動画像符号化装置が一定の伝送レートでストリームを送信した場合に、各ピクチャの符号量が多く、動画像復号装置が復号、表示するべき時刻までに、ピクチャの復号に必要なデータの伝送が完了していない場合に生じる。すなわち、受信バッファのアンダーフローは、復号装置の受信バッファ内にピクチャを復号するために必要データが存在していないことである。この場合、動画像復号装置は復号処理を行うことができないため、フレームスキップが発生することとなる。
【００１２】
動画像復号装置は、受信バッファのアンダーフローを起こさずに復号処理するため、受信時刻から所定の時間だけストリームを遅延させてからピクチャを表示する。
【００１３】
上述したように、理想復号装置では、処理時間０で、瞬時的に復号処理が完了すると規定される。そのため、動画像符号化装置へのｉ番目ピクチャの入力時刻をｔ（ｉ）、理想復号装置における、ｉ番目ピクチャの復号時刻をｄｔ（ｉ）とすれば、そのピクチャが表示可能となる時刻は、復号時刻と同様でｄｔ（ｉ）となる。
【００１４】
全てのピクチャにおいてピクチャの表示期間｛ｔ（ｉ＋１）−ｔ（ｉ）｝と｛ｄｔ（ｉ＋１）−ｄｔ（ｉ）｝が等しくなるので、復号時刻ｄｔ（ｉ）は、入力時刻ｔ（ｉ）から固定時間ｄｌｙ分だけ遅延させた時刻｛ｄｔ（ｉ）＝ｔ（ｉ）＋ｄｌｙ｝となる。従って、動画像符号化装置は、時刻ｄｔ（ｉ）までに復号に必要なデータを動画像復号装置の受信バッファに伝送完了させなければならない。
【００１５】
図１は、従来技術による受信バッファのバッファ占有量の遷移例を示す図である。図１に示す例では、横軸は時刻を表し、縦軸は受信バッファのバッファ占有量を表す。実線のグラフ３００は、各時刻におけるバッファ占有量を表す。
【００１６】
受信バッファでは、所定の伝送レートでバッファ占有量が回復し、各ピクチャの復号時刻にそのピクチャを復号するために用いられる分のデータがバッファから引き抜かれる。図１に示す例では、ｉ番目ピクチャのデータが、時刻ａｔ（ｉ）から受信バッファに入力開始され、ｉ番目ピクチャの最後のデータが時刻ｆｔ（ｉ）に入力される。理想復号装置は時刻ｄｔ（ｉ）でｉ番目ピクチャの復号を完了し、その時刻ｄｔ（ｉ）においてｉ番目ピクチャが表示可能となる。
【００１７】
理想復号装置が瞬時復号を行う一方で、実際の動画像復号装置は所定の復号処理時間を要し、一般には１ピクチャの復号処理時間は、ピクチャの表示期間よりも短いが、ピクチャの表示期間に近い時間が必要となる。
【００１８】
時刻ａｔ（ｉ）からｆｔ（ｉ）までｉ番目ピクチャのデータが受信バッファに入力されるが、各ブロックの復号に必要なデータがａｔ（ｉ）からｆｔ（ｉ）内のどの時刻に到着するか保証されない。そのため、実際の動画像復号装置は、時刻ｆｔ（ｉ）からｉ番目ピクチャの復号処理を開始することとなる。従って、１ピクチャの復号処理に必要な最悪の処理時間をｃｔとすれば、実際の動画像復号装置は、時刻ｆｔ（ｉ）＋ｃｔにしか復号処理を完了することが保証できない。
【００１９】
動画像符号化装置が保証しているのは、時刻ｄｔ（ｉ）までに、そのピクチャの復号に必要なデータが復号受信バッファに到着していること、すなわち、ｆｔ（ｉ）がｄｔ（ｉ）以前となることである。そのため、ｆｔ（ｉ）が最も遅くなる場合、ｆｔ（ｉ）はｄｔ（ｉ）と等しくなる。
【００２０】
このとき、復号処理が完了することが保証される時刻は、ｄｔ（ｉ）＋ｃｔとなる。表示するピクチャの間隔が一定となるよう、全てのピクチャを表示するには、動画像復号装置は、各ピクチャの表示時刻を理想復号装置よりも少なくとも時間ｃｔだけ遅延させなければならない。
【００２１】
ＭＰＥＧ−２のＶＢＶ、及びＭＰＥＧ−４  ＡＶＣ／Ｈ．２６４のＣＰＢでは、動画像復号装置における各符号化ピクチャの到着時刻と、復号した各符号化ピクチャの表示時刻との差は、（ｆｔ（ｉ）−ａｔ（ｉ）＋ｃｔ）となる。すなわち、符号化装置への各ピクチャ入力から、復号化装置での該当ピクチャ出力までのコーデック遅延を時間ｃｔ未満にすることは困難である。つまり、時間ｃｔは通常１ピクチャ処理時間であるので、１ピクチャ処理時間未満のコーデック遅延を達成することは困難である。
【００２２】
また、ＭＰＥＧ−４  ＡＶＣ／Ｈ．２６４、及び標準化作業中のＨＥＶＣ（High-Efficiency Video Coding）の算術符号化方式では、量子化直交変換係数などのブロックの圧縮データを二値化し、１ビンずつ算術符号化し、ビットを出力する。
【先行技術文献】
【特許文献】
【００２３】
【特許文献１】特開２００３−１７９９３８号公報
【非特許文献】
【００２４】
【非特許文献１】JCTVC-G1103, " High-Efficiency Video Coding (HEVC) text specification Working Draft 5", Joint Collaborative Team on Video Coding of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, December 2011
【発明の概要】
【発明が解決しようとする課題】
【００２５】
従来技術では、コーデック遅延を１ピクチャ処理時間にするのは困難であるが、コーデック遅延を１ピクチャ処理時間未満にするには、次の方法がある。例えば、この方法は、ピクチャ内の各ブロックを、複数のグループのどれか一つに割り当て、また各グループに復号開始時刻を割り当てる。グループは、例えば１ブロックラインである。ブロックラインは、ピクチャの水平方向のブロック列を表す。
【００２６】
各グループの発生情報量を均一にできれば、連続するグループの復号開始時刻の差はグループ当たりの処理時間と一致し、また時間ｃｔはグループ当たりの処理時間となる。そのため、結果として、コーデック遅延をグループ当たりの処理時間にまで小さくすることが可能になる。
【００２７】
ところで、ＭＰＥＧ−４  ＡＶＣ／Ｈ．２６４では、エントロピー符号化方式として算術符号化方式が採用されている。算術符号化方式では、符号化対象である、ピクチャ内の所定ブロックの圧縮データを二値化した後、１ビンずつ処理され、ストリームとして生成される。その際、注目ブロックの最後のビンのエントロピー符号化が開始されてから符号化されたビット列がストリームとしてエントロピー符号化部から出力されるまでの遅延（以降、エントロピー符号化遅延と呼ぶ）は一般的にはゼロではない。
【００２８】
注目ブロックの最後のビンに対応する符号化されたビット列は、次のブロックの圧縮データのいくつかのビンのエントロピー符号化が開始されないとストリームとして生成されないことがある。すなわち、あるグループ内の全ブロックの符号化処理の開始から終了までに送信バッファに送信したビット量（見かけ上のブロックの発生情報量）と、実際のグループの発生情報量との間に、エントロピー符号化遅延に応じた差が生じる。
【００２９】
このため、見かけ上のグループの発生情報量に従い、グループの復号時刻を遵守するように符号化装置が情報量を制御しても、実際のグループの全ビットが受信バッファに到着する時刻がエントロピー符号化遅延に比例して遅れる。
【００３０】
よって、エントロピー符号化遅延の大きさによっては、上記の受信バッファの動作規定による制約が満たされないおそれがあった。
【００３１】
また、上述したようにＭＰＥＧ−４  ＡＶＣ／Ｈ．２６４、及びＨＥＶＣに記載の算術符号化方式では、量子化直交変換係数などのブロックの圧縮データを二値化し、１ビンずつ算術符号化し、ビットを出力する。しかし、１ビンの入力から対応ビットの出力までの遅延最悪値が、理論上は無限となる可能性がある、という問題がある。
【００３２】
算術符号化は、各ビンの０又は１の発生確率を元に、ビン系列に対応する確率区間［０，１］を求め、その区間をビット表現して出力する。例えば、各ビンの０の発生確率が一律０．８での場合、ビン系列（０，１，０）の確率区間は［０．６４，０．７５）となり、この確率区間（小数点以下）の最短のビット表現である「１１」がビット出力となる。
【００３３】
算術符号化方式の特性上、ビン系列の所定時点での確率区間が０．５を跨ぐ場合には、その後のビン系列によって確率区間が更に絞られ、確率区間が０．５を跨がないようになるまで、ビット出力が決定できない状態が発生する。もし、まれに入力ビン系列の確率区間が０．５を跨ぐ状態が続く場合には、遅延が無限大になる。
【００３４】
実際には、ピクチャの最終ブロックを符号化した後に、算術符号化器内に溜まった未出力ビットを全て掃き出す（出力する）処理が働くため、遅延上限は１ピクチャ処理時間となる。
【００３５】
各グループの最終ブロックの圧縮データの最終ビンに相当するビットが出力されるタイミングは、最悪の場合、ピクチャの最終ブロックの圧縮データの最終ビンの符号化時となってしまう。そのため、ピクチャ内の最初のグループの復号開始がピクチャの最終ブロックの圧縮データの最終ビン符号化時と同一になり、実質コーデック遅延が１ピクチャ処理時間以上になってしまう。
【００３６】
グループの最終ブロックの圧縮データの最終ビンを、確実にかつ短期間内にビット出力する方法として、グループの境界にスライスヘッダを挿入して、算術符号化器内に溜まった未出力ビット（未確定ビット）を全て掃き出す（出力する）方法が考えられる。
【００３７】
しかしながら、各グループ境界にスライスヘッダを挿入するのは、符号化効率の低下を招くため、ビットレートが低い場合には特に望ましくない。
【００３８】
そこで、開示の技術は、算術符号化を用いる場合に１ピクチャ処理時間未満のコーデック遅延を実現しつつ、符号化効率の低下を防止する動画像符号化装置、動画像符号化方法及び動画像符号化プログラムを提供することを目的とする。
【課題を解決するための手段】
【００３９】
開示の一態様における動画像符号化装置は、動画像データに含まれる各ピクチャを複数のブロックに分割し、該ブロック毎に符号化処理を行う動画像符号化装置であって、複数のブロックを含むグループ毎に、復号時刻を算出する算出部と、前記復号時刻に基づいて各ブロックの符号量を制御する符号化量制御部と、前記制御された符号量に基づいて各ブロックを符号化して圧縮データを生成するソース符号化部と、各ブロックの圧縮データを算術符号化して、ビットストリームを出力するエントロピー符号化部と、を備え、前記エントロピー符号化部は、各グループの圧縮データに相当する全ビットが、次のグループの所定個のブロックの圧縮データの算術符号化を終えた時点で出力されていない場合、算術符号処理で蓄積された未確定ビットを出力する処理を行い、前記算出部は、各グループの復号時刻を所定個のブロックの処理時間ずらす。
【発明の効果】
【００４０】
開示の技術によれば、算術符号化を用いる場合に１ピクチャ処理時間未満のコーデック遅延を実現しつつ、符号化効率の低下を防止することができる。
【図面の簡単な説明】
【００４１】
【図１】従来技術による受信バッファのバッファ占有量の遷移例を示す図。
【図２】実施例１における動画像符号化装置の概略構成の一例を示すブロック図。
【図３】実施例１におけるエントロピー符号化部の概略構成の一例を示すブロック図。
【図４】実施例１におけるエントロピー符号化処理の一例を示すフローチャート。
【図５】実施例２におけるエントロピー符号化部の概略構成の一例を示すブロック図。
【図６】実施例２におけるエントロピー符号化処理の一例を示すフローチャート。
【図７】実施例２における符号化データ変更処理の一例を示すフローチャート。
【図８】実施例３における動画像処理装置の構成の一例を示すブロック図。
【発明を実施するための形態】
【００４２】
以下、添付図面を参照しながら各実施例について詳細に説明する。実施例で説明する動画像符号化装置は、動画像データに含まれる各ピクチャをブロック単位で符号化し、符号化動画像データとしてビットストリームを出力する。
【００４３】
なお、ピクチャは、フレーム又はフィールドの何れであってもよい。フレームは、動画像データ中の一つの静止画像であり、一方、フィールドは、フレームから奇数行のデータあるいは偶数行のデータのみを取り出すことにより得られる静止画像である。
【００４４】
また、符号化対象の動画像は、カラー動画像であってもよく、又はモノクロ動画像であってもよい。
【００４５】
［実施例１］
＜構成＞
図２は、実施例１における動画像符号化装置の概略構成の一例を示すブロック図である。図２に示す例では、動画像符号化装置２０は、ソース符号化部２１１と、エントロピー符号化部２１２と、符号化量制御部２１３と、グループ決定部２１４と、グループ復号時刻情報算出部２１５と、復号時刻情報付加部２１６とを有する。
【００４６】
動画像符号化装置２０が有するこれらの各部は、それぞれ、別個の回路として動画像符号化装置２０に実装されうる。また、動画像符号化装置２０が有するこれらの各部は、その各部の機能を実現する回路が集積された一つの集積回路として動画像符号化装置２０に実装されてもよい。
【００４７】
動画像データに含まれる符号化対象ピクチャは、図示しない制御部によりブロック単位に分割され、ブロックごとにソース符号化部２１１に入力される。各ブロックは、例えば、１６×１６画素を有する。
【００４８】
ソース符号化部２１１は、内部又は外部にあるフレームメモリに蓄積された局所復号済ピクチャからイントラ予測値もしくはインター予測値を算出し、入力ブロックとの差分演算を行い、ブロック予測誤差を算出する。
【００４９】
ソース符号化部２１１は、次にブロック予測誤差に対し直交変換及び量子化を行う。量子化演算における量子化パラメータは、符号化量制御部２１３から与えられる。量子化された結果の量子化直交変換係数、及びイントラ予測又はインター予測のパラメータは、ブロックの圧縮データとしてエントロピー符号化部２１２に出力される。イントラ予測又はインター予測のパラメータは、例えばイントラ予測方向、動きベクトル情報などである。
【００５０】
ソース符号化部２１１は、量子化直交変換係数に対し逆量子化及び逆直交変換を行い、量子化誤差が重畳されたブロック予測誤差を算出する。ソース符号化部２１１は、最後に、量子化誤差が重畳されたブロック予測誤差に対して、イントラ予測値もしくはインター予測値を加算することで、局所復号ブロックを算出し、フレームメモリに蓄積する。
【００５１】
エントロピー符号化部２１２は、ソース符号化部２１１から出力される圧縮データ、グループ決定部２１４から出力されるグループ情報、図示しない制御部から出力されるピクチャ内のブロック番号を表すブロックカウント情報及び許容遅延情報を元に、算術符号化方式による圧縮データのエントロピー符号化を行う。エントロピー符号化部２１２は、算術符号化された符号化動画像データ（ビットストリーム）を出力する。以降では、出力されるビットストリームを出力ストリームとも呼ぶ。エントロピー符号化部２１２は、図３を用いて後述する。
【００５２】
なお、許容遅延情報は、各グループの復号遅延時間の遅延を示すものである。復号遅延時間の単位は、ブロック当たりの時間である。許容遅延情報は、符号化動画像データのビットレートが高い場合には、遅延を少なく、またビットレートが低い場合には遅延を大きくするように設定される。
【００５３】
グループ決定部２１４は、符号化処理中のブロックの属するグループを、図示しない制御部から受け取ったブロックカウント情報に基づいて所定方法に従って決定する。ブロックカウント情報は、ピクチャに含まれる各ブロックの番号を表す情報であり、例えば、ピクチャの左上端のブロックに対する番号が１に設定され、ラスタスキャン順に従って各ブロックに番号が割り当てられる。そして、ピクチャの右下端のブロックに対して、最大の番号が割り当てられる。なお、ブロックカウント情報は、他の順序に従って各ブロックに割り当てられた番号を含んでもよい。
【００５４】
グループ決定部２１４は、グループごとの復号処理時間を均等化するために、各グループに含まれるブロックの数ができる限り等しくなるように複数のグループを決定することが好ましい。
【００５５】
例えば、グループ決定部２１４は、ブロックライン単位で各ブロックをグループに分割すれば、任意のピクチャサイズにおいて各グループに含まれるブロックの数を等しくすることができる。例えば、ピクチャサイズが、高精細度テレビジョン放送（High Definition Television、HDTV）相当の１９２０画素×１０８８画素であり、ブロックサイズが１６画素×１６画素であれば、ブロックライン数は６８である。
【００５６】
したがって、この場合、符号化対象ピクチャに含まれる各ブロックは、６８個のグループの何れかに分類される。グループに含まれるブロックの数は、１から画面全体のブロック数までの間の値にしても良い。
【００５７】
グループ決定部２１４は、符号化対象ブロックが属するグループの識別情報を符号化量制御部２１３へ通知する。また、グループ決定部２１４は、グループの総数Ｎをグループ復号時刻情報算出部２１５に通知する。なお、グループ決定部２１４は、各グループの先頭に位置するブロックのインデックスをグループ復号時刻情報算出部２１５に通知してもよい。
【００５８】
以下、符号化対象ピクチャに含まれる水平方向のブロック数をＭ、垂直方向のブロック数をＮとして、全ブロックを１ブロックライン単位でＮ個のグループに等分割した場合を例に説明するが、この例に限られない。
【００５９】
グループ復号時刻情報算出部２１５は、符号化対象ピクチャが符号化順に沿ってｉ番目のピクチャであるとして、ｉ番目ピクチャの入力時刻ｔ（ｉ）から所定の遅延時間ｄｌｙ分遅延させたそのピクチャの復号時刻ｄｔ（ｉ）｛＝ｔ（ｉ）＋ｄｌｙ｝を算出する。グループ復号時刻情報算出部２１５は、算出したピクチャの復号時刻ｄｔ（ｉ）に基づいて、ｎ番目のグループが復号される時刻を表す復号時刻ｄｇｔ（ｉ，ｎ）を算出する。
【００６０】
ここで、遅延時間ｄｌｙは、固定値に許容遅延情報に記述されるブロック遅延時間を加算した値となる。または、グループ復号時刻情報算出部２１５は、復号時刻として、ｄｇｔ（ｉ，ｎ）の代わりに、ｄｇｔ（ｉ，ｎ）と等価な｛ｄｇｔ（ｉ，ｎ）−ｄｇｔ（ｉ，ｎ−１）｝を算出してもよい。また、グループ復号時刻情報算出部２１５は、復号時刻を、適当な単位、例えば、１／９００００秒単位の倍数となるように丸めてもよい。
【００６１】
グループ復号時刻情報算出部２１５は、例えば、各グループの復号時刻を、各グループの復号処理に要する時間を均等とするために、１ピクチャ当たりの復号処理に要する時間をグループ数Ｎで等分割するように決定する。この場合、ｎ番目（ｎ＝１，２，...，Ｎ）のグループの復号時刻は、次の式（１）に従って算出される。
【００６２】
【数１】
0005772623.tif 000002
ｄｔ（ｉ）：ｉ番目のピクチャの復号時刻
ｄｔ（ｉ−１）：ｉ−１番目のピクチャの復号時刻
また、復号処理に要する時間は、グループごとに均等でなくてもよい。特に、グループ復号時刻情報算出部２１５は、次の式（２）のように、最初に符号化・復号されるグループに対応する復号時刻ｄｇｔ（ｉ，１）のみ、１ピクチャ当たりの復号処理に要する時間を等分割した場合の復号時刻よりも遅らせてもよい。
【００６３】
【数２】
0005772623.tif 000003
グループ復号時刻情報算出部２１５は、２番目以降に符号化、復号されるグループの復号時刻ｄｇｔ（ｉ，ｎ）（ｎ≧２）を、次の式（３）のように決定してもよい。
【００６４】
【数３】
0005772623.tif 000004
上述したようにして復号時刻を決定することで、グループ復号時刻情報算出部２１５は、符号化量制御部２１３にて算出されるバッファ占有量を最初のグループの符号化処理開始前に大きくすることができる。その結果、符号量制御における自由度が向上する。
【００６５】
グループ復号時刻情報算出部２１５は、各グループの復号時刻を含む復号時刻情報を、符号化量制御部２１３に出力する。グループ復号時刻情報算出部２１５は、各グループの復号時刻を含む復号時刻情報、及びグループの総数Ｎを復号時刻情報付加部２１６に出力する。
【００６６】
符号化量制御部２１３は、理想復号装置の受信バッファのバッファ占有量の推定値を計算する。Ｒは、伝送するビットレートを表し、ｄは、バッファ占有量を表す。エントロピー符号化部２１２における、符号化処理中のブロックのエントロピー符号化処理が完了し、その発生符号量がｂであるとする。この場合、ｂがエントロピー符号化部２１２から符号化量制御部２１３に通知される。符号化量制御部２１３は、ｄからｂを減算する。
【００６７】
符号化量制御部２１３は、各グループの最後のブロックの符号化処理が行われた後に、次の式（４）に従ってバッファ占有量ｄを回復させる。
【００６８】
【数４】
0005772623.tif 000005
符号化量制御部２１３は、バッファ占有量に基づいて、各ブロックに対する量子化値を算出する。その際、符号化量制御部２１３は、グループに含まれる全てのブロックの発生符号量の合計が、そのグループの最初のブロックの符号化処理を開始する直前のバッファ占有量ｄ以下となるように、すなわち、符号化処理中にｄが負値とならないように量子化値を制御する。
【００６９】
符号化量制御部２１３は、例えば、ＭＰＥＧ−２における標準化団体参照ソフトウェアTest Model5（MPEG-2 Test Model 5. April １９９３.ISO-IEC/JTC1/SC29/WG11/N0400 ( http://www.mpeg.org/MPEG/MSSG/tm5/)を参照）における量子化値算出方法に従って量子化値を算出する。
【００７０】
次に、符号化量制御部２１３は、バッファ占有量ｄを所定の閾値ＤＴＨ１と比較する。量子化値をその取り得る値の範囲のうちの最大値としたときに、各ブロックで発生する最大の符号量をｂ０、符号化処理中のブロックの属するグループで、まだ符号化処理を行っていないブロックの数をＭ０とすると、閾値ＤＴＨ１は、次の式（５）で表される。
【００７１】
【数５】
0005772623.tif 000006
offset：マージン項
符号化量制御部２１３は、バッファ占有量ｄと閾値ＤＴＨ１とを比較した結果、ｄがＤＴＨ１よりも小さければ、量子化値を最大値とする。
【００７２】
また、最大符号量ｂ０は、周波数係数を全て０としたときのブロックの符号量を用いてもよい。このとき、符号化量制御部２１３は、バッファ占有量ｄがＤＴＨ１よりも小さければ、符号化対象ブロックの全ての周波数係数が０に量子化されるように量子化値を決定する。
【００７３】
符号化量制御部２１３によりこの制御を行うことで、グループ内の符号化処理が済んでいない残りブロックの符号量の平均値がｂ０を超えなければ、仮想的な復号受信バッファはアンダーフローしない。
【００７４】
これにより、符号化量制御部２１３は、動画像符号化装置２０から出力されるビットストリームを、所定のレートＲに従って動画像復号装置に伝送すれば、動画像復号装置の受信バッファがアンダーフローしないように動画像データの符号量を制御することが可能となる。符号化量制御部２１３は、求めた量子化値をソース符号化部２１１へ通知する。
【００７５】
ここで、動画像符号化装置２０は、動画像復号装置と、各ブロックが属するグループ及びグループごとの復号時刻を共有するために、少なくとも、各グループに属するブロックを表すグループ情報及び各グループの復号時刻を含む復号時刻情報を出力ストリームに付加する。動画像符号化装置２０は、グループ情報及び復号時刻情報を出力ストリームに含めることで、グループ情報及び復号時刻情報を動画像復号装置に通知する。
【００７６】
そこで、復号時刻情報付加部２１６は、例えば、グループ情報を、各ピクチャ、もしくは所定のピクチャ間隔で、出力ストリームのヘッダ情報に付加する。
【００７７】
ヘッダ情報は、例えば、ＭＰＥＧ−２に規定される、シーケンスヘッダー（Sequence Header）、またはＨ．２６４／ＡＶＣに規定されるシーケンスパラメータセット（Sequence Parameter Set）又はSupplemental Enhancement Informationとする。なお、グループごとの復号時刻は、ＭＰＥＧ−２に規定されるピクチャヘッダー（Picture Header）、またはＨ．２６４に規定されるスライスヘッダー（Slice Header）など、各ピクチャに必ず付随されるヘッダ情報に付加されてもよい。
【００７８】
各グループに含まれるブロックの数が等しくなるようにグループが決定されている場合、動画像符号化装置２０は、動画像復号装置へ全ブロックがＮ個のグループに等分割されたことを通知する。
【００７９】
そのために、グループ決定部２１４は、グループ復号時刻情報算出部２１５を経由して復号時刻情報付加部２１６に、グループ情報としてグループ数Ｎを通知する。復号時刻情報付加部２１６は、そのグループ情報を符号化する。
【００８０】
ＭＰＥＧ−２及びＨ．２６４では、マクロブロックと呼ばれる１６×１６画素のブロック単位で符号化が行われており、このブロック数は通常２０ｂｉｔで表現可能な範囲を超えない。グループの数Ｎの最大値は、たかだかブロック数の最大値と等しいことから、Ｎの符号化も固定ｂｉｔ長で符号化すればよい。
【００８１】
また、各グループに含まれるブロックの数が等しいと限られない場合、グループ決定部２１４は、復号時刻情報付加部２１６に対して、グループ数Ｎとともに、各グループの先頭ブロックのインデックス情報をグループ情報として通知する。
【００８２】
復号時刻情報付加部２１６は、まず、グループ数Ｎを符号化し、順次各グループの先頭ブロックのインデックス情報を符号化する。先頭ブロックのインデックス情報に対する符号化方法も、例えば、固定ｂｉｔ長の符号化方式が用いられる。
【００８３】
また、復号時刻情報付加部２１６は、グループ数Ｎ及び各グループの先頭ブロックのインデックス情報を符号化するために、ハフマン符号といった可変長符号化方式など、他の符号化方式を用いてもよい。
【００８４】
また、グループごとの復号時刻が、グループ復号時刻情報算出部２１５から復号時刻情報付加部２１６に通知される。その際、１番目のグループから最後のグループであるＮ番目のグループまで、復号時刻は、例えばｄｇｔ（ｉ，ｎ）−ｄｇｔ（ｉ，ｎ−１）と差分値の形式にしてグループ復号時刻情報算出部２１５から復号時刻情報付加部２１６に通知される。
【００８５】
なお、第１のグループの復号時刻に関して、ｄｇｔ（ｉ，０）は、直前のピクチャの最後のグループの復号時刻ｄｇｔ（ｉ−１，Ｎ）｛＝ｄｔ（ｉ−１）｝に設定される。復号時刻情報付加部２１６は、各グループの復号時刻を符号化し、その符号化された復号時刻を各ピクチャのデータに付加して、動画像復号装置に通知する。
【００８６】
復号時刻情報付加部２１６は、各差分値を、適当な精度、例えば、１／９００００秒の精度で量子化した後に、３２ｂｉｔ程度の固定ｂｉｔ長で符号化すればよい。また、ここでは、固定ｂｉｔ長で符号化する例を説明したが、復号時刻情報付加部２１６は、各グループの復号時刻を表す差分値を、任意の可変長符号化方式を用いて符号化してもよい。
【００８７】
動画像復号装置は、ビットストリーム内に含まれるグループ数Ｎと各グループの復号時刻情報に基づき、コーデック遅延量を算出する。各グループに含まれるブロック数が等しくなるように各グループが設定されている場合、コーデック遅延量は、１ピクチャの復号処理に必要な最悪の処理時間をｃｔとして、ｃｔ／Ｎとなる。
【００８８】
《エントロピー符号化部》
次に、エントロピー符号化部２１２について説明する。図３は、実施例１におけるエントロピー符号化部の概略構成の一例を示すブロック図である。図３に示す例では、エントロピー符号化部２１２は、二値化部３１０と、算術符号化部３１１と、コンテキスト計算部３１２と、リセット判定部３１３と、終端符号出力部３１４と、カウンタ３１５とを有する。
【００８９】
二値化部３１０は、ソース符号化部２１１から入力された圧縮データを、所定の方法によって二値化する。例えば、ＭＰＥＧ−４  ＡＶＣ／Ｈ．２６４のＰ＿ＳＬＩＣＥにおけるマクロブロックタイプ(mb_type)が、「P_L0_L0_16×8」（インター予測、２個の１６×８動き予測パーティション、２個ともＬ０方向の予測）の場合、対応するビン系列は「０１１」となる。
【００９０】
コンテキスト計算部３１２は、ビン系列の各ビンに対して、コンテキストを割り当てる。コンテキストは、圧縮データの種別、ビン系列中の位置、及び上下隣接マクロブロック中の同一種別圧縮データの値等によって一意に決められる。コンテキスト毎にビンのＭＰＳ（Most Probable Symbol）値、及びその確率が割り当てられる。ＭＰＳ値及びその確率は、ビンの算術符号化毎に更新される。
【００９１】
コンテキスト計算部３１２は、全コンテキストのＭＰＳ値及び、確率を保持、管理する。コンテキスト計算部３１２は、算術符号化部３１１でビンを算術符号化する場合に、対応コンテキストのＭＰＳ値及び確率を通知する。また、コンテキスト計算部３１２は、算術符号化部３１１が算術符号化したビンの値を基に、対応コンテキストのＭＰＳ値及び確率を更新する。確率は［０，１］の実数の代わりに、［０，６３］のインデックスで表現される。
【００９２】
上述した例において、ＭＰＥＧ−４  ＡＶＣ／Ｈ．２６４のＰ＿ＳＬＩＣＥにおけるmb_type＝「P_L0_L0_16x8」の場合のコンテキスト識別子（番号）は、ＭＳＢ（Most Significant Bit）から順に、１４、１５、１７となる。
【００９３】
算術符号化部３１１は、二値化部３１０から出力されるビン系列を１ビン毎に算術符号化する。算術符号化部３１１は、内部変数として、入力ビン系列に相当する確率区間の下限値Low、確率区間幅Range、未出力ビット数outstandingBitsを保有する。未出力ビット数とは、例えば算術符号化処理において値が未確定であるため保留されているビット数をいう。また、未出力ビットは、未確定ビットとも呼ばれる。
【００９４】
ＭＰＥＧ−４  ＡＶＣ／Ｈ．２６４のＣＡＢＡＣの場合、確率区間は［０，１０２３］の整数で表現される。これら内部変数の初期値はLow = 0、Range = 510、outstandingBits = 0である。
【００９５】
算術符号化部３１１は、入力ビンに対応する、ＭＰＳ値及び確率（インデックス）をコンテキスト計算部３１２から取得し、ＭＰＥＧ−４  ＡＶＣ／Ｈ．２６４のＣＡＢＡＣの方法にてLow、Rangeを更新する。
【００９６】
算術符号化部３１１は、更新後に確率区間が規定の精度にて確定する場合には、その位置によって１ないし複数のビットを出力すると共に、outstandingBitsが１以上の場合には、未出力ビットも全て出力してoutstandingBitsを０にする。
【００９７】
算術符号化部３１１は、更新後の確率区間が規定の精度にて確定しない場合には、確率区間によってoutstandingBitsを１増加させる。入力ビンの値は、コンテキスト計算部３１２に出力される。
【００９８】
リセット判定部３１３は、算術符号化部３１１からoutstandingBitsの値を、カウンタ３１５から、算術符号化部３１１及び終端符号出力部３１４が出力したビットの数をそれぞれ取得する。
【００９９】
また、リセット判定部３１３は、制御パラメータとして、動画像符号化装置２０内の図示しない制御から、ブロックカウント情報、許容遅延情報、及びグループ情報を獲得する。
【０１００】
リセット判定部３１３は、エントロピー符号化部２１２のリセットが必要と判定した場合に、算術符号化部３１１、コンテキスト計算部３１２、終端符号出力部３１４に対し、リセット指示を出力する。
【０１０１】
ここで、エントロピー符号化部２１２のリセットについて説明する。算術符号化部３１１については、算術符号化の終端処理（ビット列の終端を示すビット出力）の実行、及び内部変数の初期化である。
【０１０２】
コンテキスト計算部３１２については、全コンテキストのＭＰＳ値及び確率インデックスの初期化である。終端符号出力部３１４については、バイトアラインビット（７ビット以下のビット列'100..0'）及び次スライスヘッダの追加である。
【０１０３】
このスライスヘッダは、ピクチャの最終ブロックの符号化完了時を除き、エントロピー符号化の区切りのみを示すものであり、ソース符号化に与える影響は無いものとする。このスライスの具体例として、例えば、非特許文献１のエントロピースライス（Entropy slice）がある。
【０１０４】
ピクチャの最終ブロック符号化完了時の場合には、通常のスライスヘッダ（及び必要に応じてピクチャレイヤのヘッダ情報）となる。
【０１０５】
ピクチャの最終ブロックの符号化完了時以外のリセットの判断は、ピクチャ内先頭グループ以外のグループＸにおける、Ｎ番目のブロックの圧縮データに相当する全ビンを算術符号化し終えた時に行う。リセット判定部３１３は、以下の条件を全て満たす場合にリセットを行う。
（１）グループＸの直前のグループ（Ｘ−１）の、全てのブロックの圧縮データに相当する全ビンを算術符号化し終えた時のoutstandingBitsが１以上
（２）グループＸの先頭ブロックからＮ番目のブロックまでの全圧縮データに相当する全ビンを算術符号化し終えた時に、算術符号化部３１１が出力したビット数が０
なお、この条件を満たすということは、そのグループの圧縮データに相当する全ビットが、次のグループのＮ個のブロックの圧縮データの算術符号化を終えた時点で出力されていないことを表す。
【０１０６】
動画像符号化装置２０が、各グループの最終ビットの復号開始時刻を決定するためには、各グループの最終ビンを算術符号化部３１１に入力してから、対応するビットが算術符号化部３１１から出力されるまでの遅延（単位はビン）の上限を抑える必要がある。
【０１０７】
ＭＰＥＧ−４  ＡＶＣ／Ｈ．２６４のＣＡＢＡＣの場合、outstandingBitsは入力ビン系列によっては無限に増加し続ける可能性がある。この問題に対応する単純な方法としては、各グループのビン系列の算術符号化完了後に、スライス境界を入れることが挙げられるが、符号化効率が低下する。
【０１０８】
実施例１では、outstandingBitsが非常に大きな値（数１０ビット以上）に増加する確率は低い、という事実を利用する。各グループのビン系列の算術符号化完了後、一定期間経過しても依然outstandingBitsが０に戻されることが発生しなかった場合にのみ、スライス境界を入れることで、符号化効率の低下を防止する。なお、「outstandingBitsが０に戻される」とは、値が未確定だったビットが全て確定し、出力されることをいう。
【０１０９】
例えば、実施例１では、上記の一定期間をＮ個（所定個）のブロック期間（処理時間）としている。算術符号化部３１１では、Ｎ個のブロック期間中に、ＭＰＥＧ−４  ＡＶＣ／Ｈ．２６４の場合、２Ｎ個以上のビンを算術符号化するので、高確率でoutstandingBitsが０に戻されることが期待される。
【０１１０】
また、各グループの復号開始時刻は、上記のように、算術符号化部３１３の遅延上限が、Ｎブロック期間となることが保障されるので、Ｎブロック期間だけ遅延させる。Ｎブロック期間とは、例えばＮ個のブロックを処理するのにかかる時間をいう。つまり、グループ復号時刻情報算出部２１５は、各グループの復号時刻をＮブロック期間ずらす。
【０１１１】
グループ復号時刻情報算出部２１５は、Ｎブロック期間ずらした後の復号時刻を、復号時刻情報付加部２１６に通知し、出力ストリームに付加させる。
【０１１２】
終端符号出力部３１４は、リセット判定部３１３からのリセット指示に従い、バイトアラインビット及び次スライスヘッダを、出力ストリームに追加する。
【０１１３】
カウンタ３１５は、算術符号化部３１１及び終端符号出力部３１４が出力したビットの数をカウントする。カウント値は、リセット判定部３１３、及び符号化量制御部２１３に出力される。
【０１１４】
＜動作＞
次に、実施例１における動画像符号化装置２０の動作について説明する。図４は、実施例１におけるエントロピー符号化処理の一例を示すフローチャートである。図４に示す処理は、１ピクチャに対するエントロピー符号化部２１２の処理である。
【０１１５】
ステップＳ１０１で、終端符号出力部３１４は、ピクチャのエントロピー符号化開始に当たり、まずピクチャヘッダ及びスライスヘッダの符号化を行う。この際、算術符号化部３１１は使用されない。終端符号出力部３１４は、算術符号化以外の方法でピクチャヘッダ及びスライスヘッダを生成し、出力するビットストリームに付加する。
【０１１６】
ステップＳ１０２で、エントロピー符号化部２１２は、各部の初期化を行う。
【０１１７】
ステップＳ１０３で、二値化部３１０は、ピクチャの各ブロックの圧縮データを順に二値化する。次に、算術符号化部３１１は、ビン系列を先頭から順番に１ビンずつ算術符号化する。
【０１１８】
ステップＳ１０４で、算術符号化部３１１は、算術符号化したビンが、グループＸ（ピクチャの最終グループを除く）の最終ビンであるか否かを判定する。グループＸの最終ビンであれば（ステップＳ１０４−ＹＥＳ）ステップＳ１０５に進み、グループＸの最終ビンでなければ（ステップＳ１０４−ＮＯ）ステップＳ１０６に進む。
【０１１９】
ステップＳ１０５で、リセット判定部３１３は、ビン符号化後の算術符号化部３１１内部の変数outstandingBitを保存する。
【０１２０】
ステップＳ１０６で、リセット判定部３１３は、算術符号化されたビンがグループ（Ｘ＋１）（ピクチャの先頭グループを除く）のＮ番目のブロックの最終ビンであるか否かを判定する。Ｎ番目のブロックの最終ビンであれば（ステップＳ１０６−ＹＥＳ）ステップＳ１０７に進み、Ｎ番目のブロックの最終ビンでなければ（ステップＳ１０６−ＮＯ）ステップＳ１０９に進む。
【０１２１】
ステップＳ１０７で、リセット判定部３１３は、ステップＳ１０５で保存されたoutstandingBitsが１以上であり、かつグループ（Ｘ＋１）の先頭からＮ番目のブロックまで算術符号化された時に、算術符号化部３１１が出力したビット数が０であるかを判定する。この条件が満たされれば（ステップＳ１０７−ＹＥＳ）ステップＳ１０８に進み、この条件が満たされていなければ（ステップＳ１０７−ＮＯ）ステップＳ１０９に進む。
【０１２２】
ステップＳ１０８で、リセット判定部３１３は、グループ（Ｘ＋１）の先頭からＮ番目のブロックの直後にエントロピースライスを挿入してリセットを指示する。具体的には、各部で、算術符号化の終端処理、ビットストリームのバイトアライン化、算術符号化の初期化、及びエントロピースライスヘッダの挿入が行われる。
【０１２３】
また、グループ復号時刻情報算出部２１５は、各グループの復号時刻をＮブロック期間だけ遅延させる。
【０１２４】
ステップＳ１０９で、算術符号化部３１１は、算術符号化したビンがピクチャ内の全ブロックの圧縮データの最終ビンであるか否かを判定する。全ブロックの圧縮データの最終ビンであれば（ステップＳ１０９−ＹＥＳ）ステップＳ１１０に進み、全ブロックの圧縮データの最終ビンでなければ（ステップＳ１０９−ＮＯ）ステップＳ１０３に戻り、次のビンで算術符号化が行われる。
【０１２５】
ステップＳ１１０で、終端符号出力部３１４は、終端符号を出力し、この処理を終了する。
【０１２６】
以上、実施例１によれば、算術符号化を用いる場合に１ピクチャ処理時間未満のコーデック遅延を実現しつつ、符号化効率の低下を防止することができる。また、実施例１によれば、エントロピー符号化による遅延により、動画像復号装置の受信バッファにおいてアンダーフローが生じすることを防止することができる。
【０１２７】
［実施例２］
次に、実施例２における動画像符号化装置について説明する。実施例２では、スライス境界を挿入するのではなく、算術符号化するビンを適応的に変更して、未確定ビットを出力する。
【０１２８】
＜構成＞
実施例２における動画像符号化装置の構成は、実施例１における動画像符号化装置２０の構成と同様であるため、同じ符号を用いる。実施例２における動画像符号化装置では、エントロピー符号化部２１２が実施例１と異なるため、以下、実施例２におけるエントロピー符号化部２１２について説明する。
【０１２９】
《エントロピー符号化部》
図５は、実施例２におけるエントロピー符号化部２１２の概略構成の一例を示すブロック図である。図５に示す例では、エントロピー符号化部２１２は、二値化部５１０と、算術符号化部５１１と、コンテキスト計算部５１２と、リセット判定部５１３と、終端符号出力部５１４と、カウンタ５１５と、符号化データ変更部５１６とを有する。
【０１３０】
二値化部５１０、カウンタ５１５は、図３に示す二値化部３１０、カウンタ５１５と同様の処理を行うため、説明を省略する。
【０１３１】
リセット判定部５１３は、次の条件を全て満たす場合にリセット処理を行う。
（１）グループＸの直前のグループ（Ｘ−１）の、全てのブロックの圧縮データに相当する全ビンを算術符号化し終えた時のoutstandingBitsが１以上
（２）グループＸの先頭ブロックから（Ｎ−１）番目のブロックまでの全圧縮データに相当する全ビンを算術符号化し終えた時に、算術符号化部５１１が出力したビット数が０
また、リセット判定部５１３は、リセット時には、動画像符号化装置２０内の、図示しない制御部に対し、グループＸの先頭ブロックからＮ番目のブロックの符号化モードをインター予測符号化とするように、指示を出す。また、リセット部５１３は、符号化データ変更部５１６に対し、リセット情報を通知する。
【０１３２】
上記のように、実施例２では、スライス境界を入れるのでなく、算術符号化するビンを適応的に変更して、未確定ビットを出力する。以下、この処理の詳細を説明する。
【０１３３】
非特許文献１の方式では、インター予測符号化ブロックでの動きベクトルの符号化効率を改善する方式が採用されている。この方式では、処理ブロックに隣接する符号化済ブロックから、複数の動きベクトル（以降、動きベクトル予測値候補）を取得し、動きベクトル予測値候補の中から処理ブロックの動きベクトルの予測値として最適なものを選択する。
【０１３４】
ビットストリームには、どの動きベクトルを選択したかを示す動きベクトル予測値インデックス情報、及び選択した動きベクトル予測値と処理ブロックの動きベクトルとの差分が含まれる。
【０１３５】
以下、簡単化のために、動きベクトル予測値候補の数を２とする。この場合動きベクトル予測値インデックス情報のビンは０または１となる。動きベクトル予測値候補の数が３以上の場合も同等である。
【０１３６】
算術符号化は、outstandingBitsが１以上の状況で一つの１ビンを符号化したとき、ビン値が０もしくは１のどちらか一方にて、確実に未確定ビットの値が確定する、という性質を持つ。実施例２では、この性質を利用する。
【０１３７】
符号化データ変更部５１６は、入力されるデータ列を一時保持する。リセット判定部５１３からリセット情報が通知された場合、グループＸの先頭ブロックからＮ番目のブロックのインター符号化圧縮データにおける、動きベクトル予測値インデックス情報までのデータを二値化部５１０に送る。
【０１３８】
符号化データ変更部５１６は、算術符号化部５１１に対し、入力された動きベクトル予測値インデックス情報に相当するビンの仮の算術符号化を指示する。
【０１３９】
算術符号化部５１１は、入力されたビンによってoutstandingBitsが０にリセットされたかどうかを通知する。符号化データ変更部５１６は、もしリセットされた場合には、入力データをそのまま算術符号化させる。
【０１４０】
符号化データ変更部５１６は、もしリセットされない場合には、動きベクトル予測値インデックス情報の値（０ｏｒ１）を判定させ、反転した値（１ｏｒ０）を算術符号化させる。
【０１４１】
次に、符号化データ変更部５１６は、ソース符号化部２１１から処理ブロックの動きベクトルＭＶ（Motion Vector）と、反転した値に相当する動きベクトル予測値ＰＭＶとを取得する。符号化データ変更部５１６は、（ＭＶ−ＰＭＶ）を符号化する動きベクトル予測誤差とする。
【０１４２】
このようにすることで、復号処理において、ブロックＮの動きベクトルを正しく復号できるため、動きベクトル予測値インデックス情報の変更による画像再生への影響は生じない。
【０１４３】
算術符号化部５１１は、実施例１における算術符号化部３１１の動作に加え、入力ビンの仮算術符号化を行う。仮算術符号化では、入力ビンを算術符号化した場合にoutstandingBitsが０になるか否かをのみ出力し、実際の算術符号化は行わない。
【０１４４】
コンテキスト計算部５１２、終端符号出力部５１４は、実施例１におけるコンテキスト計算部３１２、終端符号出力部３１４と異なり、リセット判定部５１３のリセット判定結果を受けない。ピクチャ最後でのエントロピー符号化リセット時のみ、リセット処理を行う。
【０１４５】
すなわち、実施例２におけるエントロピー符号化部２１２は、各グループの圧縮データの算術符号化を終えた時点で、算術符号化処理において値が未確定のため保留されているビット数が１以上であり、かつ次のグループのＮ−１個のブロックの圧縮データの算術符号化により出力したビット数が０であるかを判定する。
【０１４６】
エントロピー符号化部２１２は、上記の条件を満たす場合に、未確定ビットを出力するためにＮ番目のブロックの圧縮データの変更が必要であると判定したとき、復号結果が変更前後で変わらないように該圧縮データを変更してエントロピー符号化する。
【０１４７】
変更が必要である場合とは、例えば、仮算術符号化を行って、outstandingBitsが０ではない場合をいう。復号結果が変更前後で変わらないように圧縮データを変更するとは、例えば、動きベクトル予測値インデックス情報の値を反転させた場合、反転させた値が示す動きベクトル予測値を用いることをいう。
【０１４８】
＜動作＞
次に、実施例２による動画像符号化装置の動作について説明する。図６は、実施例２におけるエントロピー符号化処理の一例を示すフローチャートである。図６に示す処理は、１ピクチャに対するエントロピー符号化部２１２の処理である。
【０１４９】
ステップＳ２０１で、終端符号出力部５１４は、ピクチャのエントロピー符号化開始に当たり、まずピクチャヘッダ及びスライスヘッダの符号化を行う。この際、算術符号化部５１１は使用されない。終端符号出力部５１４は、算術符号化以外の方法でピクチャヘッダ及びスライスヘッダを生成し、出力するビットストリームに付加する。
【０１５０】
ステップＳ２０２で、エントロピー符号化部２１２は、各部の初期化を行う。
【０１５１】
ステップＳ２０３で、二値化部５１０は、ピクチャの各ブロックの圧縮データを順に二値化する。次に、算術符号化部５１１は、ビン系列を先頭から順番に１ビンずつ算術符号化する。
【０１５２】
ステップＳ２０４で、算術符号化部５１１は、算術符号化したビンが、グループＸ（ピクチャの最終グループを除く）の最終ビンであるか否かを判定する。グループＸの最終ビンであれば（ステップＳ２０４−ＹＥＳ）ステップＳ２０５に進み、グループＸの最終ビンでなければ（ステップＳ２０４−ＮＯ）ステップＳ２０６に進む。
【０１５３】
ステップＳ２０５で、リセット判定部５１３は、ビン符号化後の算術符号化部３１１内部の変数outstandingBitを保存する。
【０１５４】
ステップＳ２０６で、リセット判定部５１３は、算術符号化されたビンがグループ（Ｘ＋１）（ピクチャの先頭グループを除く）の（Ｎ−１）番目のブロックの最終ビンであるか否かを判定する。（Ｎ−１）番目のブロックの最終ビンであれば（ステップＳ２０６−ＹＥＳ）ステップＳ２０７に進み、（Ｎ−１）番目のブロックの最終ビンでなければ（ステップＳ２０６−ＮＯ）ステップＳ２０９に進む。
【０１５５】
ステップＳ２０７で、リセット判定部５１３は、ステップＳ２０５で保存されたoutstandingBitsが１以上であり、かつグループ（Ｘ＋１）の先頭から（Ｎ−１）番目のブロックまで算術符号化された時に、算術符号化部５１１が出力したビット数が０であるかを判定する。この条件が満たされれば（ステップＳ２０７−ＹＥＳ）ステップＳ２０８に進み、この条件が満たされていなければ（ステップＳ２０７−ＮＯ）ステップＳ２０９に進む。
【０１５６】
ステップＳ２０８で、リセット判定部５１３は、グループ（Ｘ＋１）の先頭からＮ番目のブロックの符号化データの変更を指示する。符号化データの変更処理は、図７を用いて後述する。
【０１５７】
また、符号化データの変更処理が行われたとき、グループ復号時刻情報算出部２１５は、各グループの復号時刻をＮブロック期間だけ遅延させる。
【０１５８】
ステップＳ２０９で、算術符号化部５１１は、算術符号化したビンがピクチャ内の全ブロックの圧縮データの最終ビンであるか否かを判定する。全ブロックの圧縮データの最終ビンであれば（ステップＳ２０９−ＹＥＳ）ステップＳ２１０に進み、全ブロックの圧縮データの最終ビンでなければ（ステップＳ２０９−ＮＯ）ステップＳ２０３に戻り、次のビンで算術符号化が行われる。
【０１５９】
ステップＳ２１０で、終端符号出力部５１４は、終端符号を出力し、この処理を終了する。
【０１６０】
図７は、実施例２における符号化データ変更処理の一例を示すフローチャートである。図７に示すステップＳ３０１で、二値化部５１０は、ブロックＮの動きベクトル以外のブロックヘッダを二値化する。算術符号化部５１１は、二値化されたデータを算術符号化する。
【０１６１】
ステップＳ３０２で、符号化データ変更部５１６は、動きベクトル予測値インデックス情報を、算術符号化部５１１で仮算術符号化するよう指示する。算術符号化部５１１は、動きベクトル予測値インデックス情報を仮算術符号化する。
【０１６２】
ステップＳ３０３で、符号化データ変更部５１６は、算術符号化部５１１での仮算術符号化により、outstandingBitsが０になったかを判定する。outstandingBitsが０になっていれば（ステップＳ３０３−ＹＥＳ）この処理を終了し、outstandingBitsが０になっていなければ（ステップＳ３０３−ＮＯ）ステップＳ３０４に進む。
【０１６３】
ステップＳ３０４で、符号化データ変更部５１６は、動きベクトル情報の符号化データを変更する。符号化データ変更部５１６は、例えば動きベクトル予測値インデックス情報のビットを反転させ、また反転したビットに相当する動き予測ベクトル値とブロックＮの動きベクトルとの差分を、新たな動きベクトル予測誤差データとする。
【０１６４】
以上、実施例２によれば、算術符号化を用いる場合に１ピクチャ処理時間未満のコーデック遅延を実現しつつ、符号化効率の低下を防止することができる。また、実施例２によれば、スライス境界を入れなくても、未確定ビットを掃き出すことができるようになる。
【０１６５】
［実施例３］
図８は、動画像処理装置の構成の一例を示すブロック図である。動画像処理装置８０は、各実施例で説明した動画像符号化装置の一例である。図８に示すように、動画像処理装置８０は、制御部８０１、主記憶部８０２、補助記憶部８０３、ドライブ装置８０４、ネットワークＩ／Ｆ部８０６、入力部８０７、表示部８０８を含む。これら各構成は、バスを介して相互にデータ送受信可能に接続されている。
【０１６６】
制御部８０１は、コンピュータの中で、各装置の制御やデータの演算、加工を行うＣＰＵである。また、制御部８０１は、主記憶部８０２や補助記憶部８０３に記憶されたプログラムを実行する演算装置であり、入力部８０７や記憶装置からデータを受け取り、演算、加工した上で、表示部８０８や記憶装置などに出力する。
【０１６７】
主記憶部８０２は、ＲＯＭ（Read Only Memory）やＲＡＭ（Random Access Memory）などであり、制御部８０１が実行する基本ソフトウェアであるＯＳやアプリケーションソフトウェアなどのプログラムやデータを記憶又は一時保存する記憶装置である。
【０１６８】
補助記憶部８０３は、ＨＤＤ（Hard Disk Drive）などであり、アプリケーションソフトウェアなどに関連するデータを記憶する記憶装置である。
【０１６９】
ドライブ装置８０４は、記録媒体８０５、例えばフレキシブルディスクからプログラムを読み出し、記憶装置にインストールする。
【０１７０】
また、記録媒体８０５は、所定のプログラムを格納する。この記録媒体８０５に格納されたプログラムは、ドライブ装置８０４を介して動画像処理装置８０にインストールされる。インストールされた所定のプログラムは、動画像処理装置８０により実行可能となる。
【０１７１】
ネットワークＩ／Ｆ部８０６は、有線及び／又は無線回線などのデータ伝送路により構築されたＬＡＮ（Local Area Network）、ＷＡＮ（Wide Area Network）などのネットワークを介して接続された通信機能を有する周辺機器と動画像処理装置８０とのインターフェースである。
【０１７２】
入力部８０７は、カーソルキー、数字入力及び各種機能キー等を備えたキーボード、表示部８０８の表示画面上でキーの選択等を行うためのマウスやスライスパット等を有する。また、入力部８０７は、ユーザが制御部８０１に操作指示を与えたり、データを入力したりするためのユーザインターフェースである。
【０１７３】
表示部８０８は、ＬＣＤ（Liquid Crystal Display）等を有し、制御部８０１から入力される表示データに応じた表示が行われる。なお、表示部８０８は、外部に設けられてもよく、その場合は、動画像処理装置８０は、表示制御部を有する。
【０１７４】
このように、前述した実施例で説明した動画像符号化処理は、コンピュータに実行させるためのプログラムとして実現されてもよい。このプログラムをサーバ等からインストールしてコンピュータに実行させることで、前述した動画像符号化処理を実現することができる。
【０１７５】
また、この動画像符号化プログラムを記録媒体８０５に記録し、このプログラムが記録された記録媒体８０５をコンピュータや携帯端末に読み取らせて、前述した動画像符号化処理を実現させることも可能である。
【０１７６】
なお、記録媒体８０５は、ＣＤ−ＲＯＭ、フレキシブルディスク、光磁気ディスク等の様に情報を光学的，電気的或いは磁気的に記録する記録媒体、ＲＯＭ、フラッシュメモリ等の様に情報を電気的に記録する半導体メモリ等、様々なタイプの記録媒体を用いることができる。なお、記録媒体８０５には、搬送波は含まれない。
【０１７７】
動画像処理装置８０で実行されるプログラムは、各実施例で説明した各部を含むモジュール構成となっている。実際のハードウェアとしては、制御部８０１が補助記憶部８０３からプログラムを読み出して実行することにより上記各部のうち１又は複数の各部が主記憶部８０２上にロードされ、１又は複数の各部が主記憶部８０２上に生成されるようになっている。
【０１７８】
また、前述した各実施例で説明した動画像符号化処理は、１つ又は複数の集積回路に実装してもよい。
【０１７９】
上述した各実施例による動画像符号化装置は、様々な用途に利用される。例えば、この動画像符号化装置は、ビデオカメラ、映像送信装置、映像受信装置、テレビ電話システム、コンピュータあるいは携帯電話機に組み込まれる。
【０１８０】
以上、各実施例について詳述したが、特定の実施例に限定されるものではなく、特許請求の範囲に記載された範囲内において、種々の変形及び変更が可能である。また、前述した実施例の構成要素を全部又は複数を組み合わせることも可能である。
【０１８１】
なお、以上の実施例に関し、さらに以下の付記を開示する。
（付記１）
動画像データに含まれる各ピクチャを複数のブロックに分割し、該ブロック毎に符号化処理を行う動画像符号化装置であって、
複数のブロックを含むグループ毎に、復号時刻を算出する算出部と、
前記復号時刻に基づいて各ブロックの符号量を制御する符号化量制御部と、
前記制御された符号量に基づいて各ブロックを符号化して圧縮データを生成するソース符号化部と、
各ブロックの圧縮データを算術符号化して、ビットストリームを出力するエントロピー符号化部と、を備え、
前記エントロピー符号化部は、
各グループの圧縮データに相当する全ビットが、次のグループの所定個のブロックの圧縮データの算術符号化を終えた時点で出力されていない場合、算術符号処理で蓄積された未確定ビットを出力する処理を行い、
前記算出部は、
各グループの復号時刻を所定個のブロックの処理時間ずらす動画像符号化装置。
（付記２）
前記エントロピー符号化部は、
各グループの圧縮データの算術符号化を終えた時点で、算術符号化処理において値が未確定のため保留されているビット数が１以上であり、かつ次のグループのＮ個のブロックの圧縮データの算術符号化により出力したビット数が０の場合に、スライスヘッダを挿入し、算術符号化処理のリセットを行う付記１記載の動画像符号化装置。
（付記３）
前記エントロピー符号化部は、
各グループの圧縮データの算術符号化を終えた時点で、算術符号化処理において値が未確定のため保留されているビット数が１以上であり、かつ次のグループのＮ−１個のブロックの圧縮データの算術符号化により出力したビット数が０の場合に、未確定ビットを出力するためにＮ番目のブロックの圧縮データの変更が必要であると判定したとき、復号結果が変更前後で変わらないように該圧縮データを変更してエントロピー符号化する付記１記載の動画像符号化装置。
（付記４）
前記エントロピー符号化部は、
動きベクトル予測値のインデックス情報に相当するビンに対して、仮に算術符号化を行い、未確定のため保留されているビット数が１以上であると判定したとき、前記インデックス情報を反転させ、反転したインデックス情報が示す動きベクトル予測値を用いてエントロピー符号化する付記３記載の動画像符号化装置。
（付記５）
動画像データに含まれる各ピクチャを複数のブロックに分割し、該ブロック毎に符号化処理を行う動画像符号化装置が実行する動画像符号化方法であって、
複数のブロックを含むグループ毎に、復号時刻を算出し、
前記復号時刻に基づいて各ブロックの符号量を制御し、
前記制御された符号量に基づいて各ブロックを符号化して圧縮データを生成し、
各ブロックの圧縮データを算術符号化して、ビットストリームを出力し、
前記ビットストリームを出力する処理は、
各グループの圧縮データに相当する全ビットが、次のグループの所定個のブロックの圧縮データの算術符号化を終えた時点で出力されていない場合、算術符号処理で蓄積された未確定ビットを出力する処理を行い、
前記復号時刻を算出する処理は、
各グループの復号時刻を所定個のブロックの処理時間ずらす動画像符号化方法。
（付記６）
動画像データに含まれる各ピクチャを複数のブロックに分割し、該ブロック毎に符号化処理を行う動画像符号化装置に実行させるための動画像符号化プログラムであって、
複数のブロックを含むグループ毎に、復号時刻を算出し、
前記復号時刻に基づいて各ブロックの符号量を制御し、
前記制御された符号量に基づいて各ブロックを符号化して圧縮データを生成し、
各ブロックの圧縮データを算術符号化して、ビットストリームを出力し、
前記ビットストリームを出力する処理は、
各グループの圧縮データに相当する全ビットが、次のグループの所定個のブロックの圧縮データの算術符号化を終えた時点で出力されていない場合、算術符号処理で蓄積された未確定ビットを出力する処理を行い、
前記復号時刻を算出する処理は、
各グループの復号時刻を所定個のブロックの処理時間ずらす動画像符号化プログラム。
【符号の説明】
【０１８２】
２０  動画像符号化装置
８０  動画像処理装置
２１１  ソース符号化部
２１２  エントロピー符号化部
２１３  符号化量制御部
２１４  グループ決定部
２１５  グループ復号時刻情報算出部
２１６  復号時刻情報付加部
３１０、５１０  二値化部
３１１、５１１  算術符号化部
３１２、５１２  コンテキスト計算部
３１３、５１３  リセット判定部
３１４、５１４  終端符号出力部
３１５、５１５  カウンタ
５１６  符号化データ変更部
【図１】
0005772623.tif 000007
【図２】
0005772623.tif 000008
【図３】
0005772623.tif 000009
【図４】
0005772623.tif 000010
【図５】
0005772623.tif 000011
【図６】
0005772623.tif 000012
【図７】
0005772623.tif 000013
【図８】
0005772623.tif 000014