(57)【特許請求の範囲】
【請求項１】
ビデオストリームのビデオエンコーディングにおけるレート制御のための方法であって、
前記ビデオストリームのために最大ビットレートおよび平均ビットレートを指定する段階と、
前記指定された最大ビットレートが超過しないことを保証するために、イントラフレームを基準としたインターフレームの位置に基づいてインターフレームサイズを計算する段階と、
前記指定された最大ビットレートが超過しないことと、前記指定された平均ビットレートが得られることとの両方を保証するために、前記計算されたインターフレームサイズを調整する段階と、を含む方法。
【請求項２】
指定されたイントラフレームサイズを達成するために、前記イントラフレームの符号化のための前記イントラフレームの量子化パラメータを推定する段階をさらに含む請求項１に記載の方法。
【請求項３】
(i)前記インターフレームサイズを計算する前記段階は、前記指定された最大ビットレートに基づく理想的なインターフレームサイズを計算する段階を含む、
または、
(ii)前記計算されたインターフレームサイズを調整する前記段階は、前記指定された平均ビットレートに基づいて理想的なインターフレームサイズを計算する段階を含む、
請求項１に記載の方法。
【請求項４】
前記段階（i）における前記理想的なインターフレームサイズを計算する前記段階は、
イントラフレームが、最後に発生した時間期間の間に符号化された、または後続の時間期間の間に符号化されようとしている場合、下式、
【数１】
0005676705.tif 000043
を用いる段階であって、B2は、前記理想的なインターフレームサイズであり、RMAXは、前記指定された最大ビットレートであり、Fは、フレームレートであり、BIは、イントラフレームサイズである、段階、
または、
イントラフレームが、最後に発生した時間期間の間に符号化されていない、または後続の時間期間の間に符号化されようとしていない場合、下式、
【数２】
0005676705.tif 000044
を用いる段階であって、B3は、前記理想的なインターフレームサイズであり、RMAXは、前記指定された最大ビットレートであり、Fは、フレームレートである、段階を
さらに含む、
請求項３に記載の方法。
【請求項５】
前記段階(ii)において前記理想的なインターフレームサイズを計算する前記段階は、
イントラフレームが、最後に発生した時間期間の間に符号化された、または後続の時間期間の間に符号化されようとしている場合、下式、
【数３】
0005676705.tif 000045
を用いる段階であって、Bは、前記理想的なインターフレームサイズであり、Ravgは、前記平均ビットレートであり、BIは、イントラフレームサイズであり、Tは、２つのイントラフレーム間の期間であり、Fは、フレームレートである、段階、
または、
イントラフレームが、最後に発生した時間期間の間に符号化されていない、または後続の時間期間の間に符号化されようとしていない場合、下式、
【数４】
0005676705.tif 000046
を用いる段階であって、Baは、前記理想的なインターフレームサイズであり、Ravgは、前記平均ビットレートであり、BIは、イントラフレームサイズであり、BPIは、前記インターフレームサイズであり、Tは、２つのイントラフレーム間の期間であり、Fは、フレームレートである、段階を
さらに含む、
請求項３に記載の方法。
【請求項６】
前記インターフレームサイズを計算する前記段階は、
過去に符号化されたフレームを考慮する段階をさらに含む、
または、
前記計算されたインターフレームサイズを調整する前記段階は、過去に符号化されたフレームを考慮する段階を含む、
または、
前記計算されたインターフレームサイズを調整する前記段階は、前記指定された最大ビットレートによって許容された最大サイズに前記インターフレームサイズを制限する段階をさらに含む、
請求項１に記載の方法。
【請求項７】
過去に符号化されたフレームを考慮する前記インターフレームサイズBPIを計算する前記段階は、
イントラフレームが、最後に発生した時間期間内において符号化された場合、下式、
【数５】
0005676705.tif 000047
を用いる段階を含み、ここで、
【数６】
0005676705.tif 000048
であり、SizeHistory[k]は、符号化されたフレームkのサイズであり、tは、符号化する現フレームのインデックスであり、Tは、２つのイントラフレーム間の期間であり、Nは、次のイントラフレームの前に残っているフレーム数である、
請求項６に記載の方法。
【請求項８】
過去に符号化されたフレームを考慮する前記インターフレームサイズBPIを計算する前記段階は、
後続の時間期間においてイントラフレームを符号化する必要がある場合、下式、
【数７】
0005676705.tif 000049
を用いる段階をさらに含み、ここで、
【数８】
0005676705.tif 000050
であり、BIは、イントラフレームサイズである、
請求項７に記載の方法。
【請求項９】
前記インターフレームサイズを制限する前記段階は、
下式、
【数９】
0005676705.tif 000051
を用いて実行され、
BPは、前記インターフレームサイズであり、
【数１０】
0005676705.tif 000052
であり、
上式において、Rmarginは、前記インターフレームサイズと前記最大ビットレートRMAXによって許容された前記最大サイズとの間の誤差のマージンであり、SizeHistory[k]は、符号化されたフレームkのサイズであり、tは、符号化する現フレームのインデックスである、
請求項６に記載の方法。
【請求項１０】
将来のインターフレームを符号化するために使用可能な余分なビットを次のインターフレームサイズに分配する段階、
または、
次のインターフレームサイズのために前記計算されたインターフレームサイズを低減する段階、
または、
前記指定された最大ビットレートを超過することになるフレームサイズの符号化されたインターフレームを削減する段階、
または、
前記指定された平均ビットレートを超過することになるフレームサイズの符号化されたインターフレームを削減する段階、
の一つ以上をさらに含む、請求項１から９のいずれか一項に記載の方法。
【請求項１１】
ビデオストリームのビデオエンコーディングにおけるレート制御のためのシステムであって、
前記ビデオストリームのために最大ビットレートおよび平均ビットレートを指定するための手段と、
前記指定された最大ビットレートが超過しないことを保証するために、イントラフレームを基準としたインターフレームの位置に基づいてインターフレームサイズを計算するための手段と、
前記指定された最大ビットレートが超過しないことと、前記指定された平均ビットレートが得られることとの両方を保証するために、前記計算されたインターフレームサイズを調整するための手段と、を含むシステム。
【請求項１２】
指定されたイントラフレームサイズを達成するために、前記イントラフレームの符号化のための前記イントラフレームの量子化パラメータを推定するための手段をさらに含む、請求項１１に記載のシステム。
【請求項１３】
(i)前記インターフレームサイズを計算するための前記手段は、前記指定された最大ビットレートに基づく理想的なインターフレームサイズを計算するための手段を含む、
または、
(ii)前記計算されたインターフレームサイズを調整するための前記手段は、前記指定された平均ビットレートに基づいて理想的なインターフレームサイズを計算するための手段を含む、
請求項１１に記載のシステム。
【請求項１４】
前記理想的なインターフレームサイズを計算するための前記手段（i）は、
イントラフレームが、最後に発生した時間期間の間に符号化された、または後続の時間期間の間に符号化されようとしている場合、下式、
【数１１】
0005676705.tif 000053
に従って計算するための手段であって、B2は、前記理想的なインターフレームサイズであり、RMAXは、前記指定された最大ビットレートであり、Fは、フレームレートであり、BIは、イントラフレームサイズである、手段、
または、
イントラフレームが、最後に発生した時間期間の間に符号化されていない、または後続の時間期間の間に符号化されようとしていない場合、下式、
【数１２】
0005676705.tif 000054
に従って計算するための手段であって、B3は、前記理想的なインターフレームサイズであり、RMAXは、前記指定された最大ビットレートであり、Fは、フレームレートである、手段を
さらに含む、
請求項１３に記載のシステム。
【請求項１５】
前記理想的なインターフレームサイズを計算するための前記手段(ii)は、
イントラフレームが、最後に発生した時間期間の間に符号化された、または後続の時間期間の間に符号化されようとしている場合、下式、
【数１３】
0005676705.tif 000055
に従って計算するための手段であって、Bは、前記理想的なインターフレームサイズであり、Ravgは、前記平均ビットレートであり、BIは、イントラフレームサイズであり、Tは、２つのイントラフレーム間の期間であり、Fは、フレームレートである、手段、
または、
イントラフレームが、最後に発生した時間期間の間に符号化されていない、または後続の時間期間の間に符号化されようとしていない場合、下式、
【数１４】
0005676705.tif 000056
に従って計算を行うための手段であって、Baは、前記理想的なインターフレームサイズであり、Ravgは、前記平均ビットレートであり、BIは、イントラフレームサイズであり、BPIは、前記インターフレームサイズであり、Tは、２つのイントラフレーム間の期間であり、Fは、フレームレートである、手段を
さらに含む、
請求項１３に記載のシステム。
【請求項１６】
前記インターフレームサイズを計算するための前記手段は、過去に符号化されたフレームを考慮するための手段をさらに含む、
または、
前記計算されたインターフレームサイズを調整するための前記手段は、過去に符号化されたフレームを考慮するための手段を含む、
または、
前記計算されたインターフレームサイズを調整するための前記手段は、前記指定された最大ビットレートによって許容された最大サイズに前記インターフレームサイズを制限する手段をさらに含む、
請求項１１に記載のシステム。
【請求項１７】
過去に符号化されたフレームを考慮する前記インターフレームサイズBPIを計算するための前記手段は、イントラフレームが、最後に発生した時間期間内において符号化された場合、下式、
【数１５】
0005676705.tif 000057
に従って計算するための手段を含み、ここで、
【数１６】
0005676705.tif 000058
であり、SizeHistory[k]は、符号化されたフレームkのサイズであり、tは、符号化する現フレームのインデックスであり、Tは、２つのイントラフレーム間の期間であり、Nは、次のイントラフレームの前に残っているフレーム数である、
請求項１６に記載のシステム。
【請求項１８】
過去に符号化されたフレームを考慮する前記インターフレームサイズBPIを計算するための前記手段は、
後続の時間期間においてイントラフレームを符号化する必要がある場合、下式、
【数１７】
0005676705.tif 000059
に従って計算するための手段をさらに含み、ここで、
【数１８】
0005676705.tif 000060
であり、BIは、イントラフレームサイズである、
請求項１７に記載のシステム。
【請求項１９】
前記インターフレームサイズを制限するための前記手段は、
下式、
【数１９】
0005676705.tif 000061
に従って計算するための手段を含み、BPは、前記インターフレームサイズであり、
【数２０】
0005676705.tif 000062
であり、上式において、Rmarginは、前記インターフレームサイズと前記最大ビットレートRMAXによって許容された前記最大サイズとの間の誤差のマージンであり、SizeHistory[k]は、符号化されたフレームkのサイズであり、tは、符号化する現フレームのインデックスである、
請求項１６に記載のシステム。
【請求項２０】
将来のインターフレームを符号化するために使用可能な余分なビットを次のインターフレームサイズに分配するための手段、
または、
次のインターフレームサイズのために前記計算されたインターフレームサイズを低減するための手段、
または、
前記指定された最大ビットレートを超過することになるフレームサイズの符号化されたインターフレームを削減するための手段、
または、
前記指定された平均ビットレートを超過することになるフレームサイズの符号化されたインターフレームを削減するための手段、
の一つ以上をさらに含む、請求項１１から１９のいずれか一項に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般的に、映像符号化に関する。特に、本発明は、例えば、他の規格への対応も排除しないが、Ｈ．２６３及びＭＰＥＧ−４（動画像符号化専門家会合−４）規格等の映像符号化規格に対応した映像符号化の際の映像レート制御に関する。
【背景技術】
【０００２】
ここ数年、デジタル及びオンライン映像並びにそれらのアプリケーションが多大な人気を博している。高速通信技術及びマルチメディア・アプリケーションの出現に伴って、デジタル映像コーデックが、ＭＰＥＧ−２（動画像符号化専門家会合−２）フォーマットを用いるＤＶＤ（デジタル映像ディスク）、ＭＰＥＧ−１（動画像符号化専門家会合−１）フォーマットを用いるＶＣＤ２（映像コンパクトディスク）、台頭しつつある衛星及び地上波放送システム並びにインターネット等、多くの領域及びシステムで用いられる。
【０００３】
更に具体的には、映像アプリケーションのこの人気によって、映像データを圧縮及び展開する映像コーデックの興味深い発展が可能になった。映像データ圧縮では、映像品質と、圧縮率即ち必要な送信データ量、言い換えると、映像を表現するのに必要なビットレートとの間の均衡が保たれる。
【０００４】
更に、例えば、符号化及び復号化アルゴリズムの複雑さ、データ欠落及びエラーに対する堅牢さ、最先端技術の圧縮アルゴリズム設計並びにテレビ会議アプリケーションのエンド・ツー・エンド遅延等も考慮される。
【０００５】
複数の映像符号化規格が存在し、それらは、各々、特定の種類のアプリケーションのために特別に設計されている。例えば、ＩＴＵ（国際電気通信連合）発行のＨ．２６３規格は、４０乃至１２８ｋｂｐｓ（キロビット／秒）範囲等の低ビットレート用の映像符号化及び圧縮規格である。更に具体的には、この規格は、テレビ会議及びテレビ電話アプリケーションの映像符号化をサポートする。
【０００６】
Ｈ．２６３規格は、符号化されたデータストリームのフォーマット及びコンテンツを規定し、従って、エンコーダ及びデコーダ自体の設計又は構造を具体的に提供することなく、エンコーダ及びデコーダが満たすべき要件を設定している。同様の原則は、ＭＰＥＧ−４等の他の映像規格にも当てはまる。
【０００７】
映像圧縮において、各画面は、通常、一般的にフレームと称される２種類の画面、即ち、イントラフレーム及びインターフレームによって表される。更に、インターフレームは、２つの範疇、即ち、Ｐフレーム（前方向予測フレーム）及びＢフレーム（双方向予測又は双方向フレーム）に分けられる。イントラフレームは、画面全体を表し、従って、画面全体のコンテンツを符号化しなければならないことから、帯域幅を消費する。圧縮して、それにより帯域幅を節約するために、画面全体（即ち、イントラフレーム）間の差異だけを符号化して送信する。それらの差異は、Ｐフレーム及びＢフレームによって表される。例えば、２つの連続した画面間の背景は、通常、変化せず、従って、その背景は、再度符号化する必要はない。Ｂフレームは、双方向であり、従って、双方向の予測、即ち、先行及び後続画面による予測を実施する。
【０００８】
更に、映像を圧縮する際、画面は、マクロブロックに分割され処理される。実際には、処理は、マクロブロック毎に適用される。各マクロブロックは、一般的に、１６×１６画素のブロックを表す。
【０００９】
映像エンコーダには、一般的に、動き推定モジュール、動き補償モジュール、ＤＣＴ（離散コサイン変換）モジュール、及び量子化モジュールが含まれる。
【００１０】
動き推定モジュールによって、先行フレームのどの領域が、現フレームに移行していて再符号化する必要のない領域か予測し得る。
【００１１】
動き補償モジュールによって、先行フレームから現フレームへの領域の動きを補償し得る。
【００１２】
ＤＣＴは、一般的に、画素のブロックを「空間周波数係数」に変換するために用いられる。ＤＣＴは、マクロブロック等の二次元ブロックの画素に作用する。ＤＣＴは、画面のエネルギ（又は、情報）を効率的に圧縮することから、一般的に、ＤＣＴ係数が少なくても、充分に元の画面を再現できる。
【００１３】
更に、量子化モジュールは、ＤＣＴ係数を量子化するために設けられる。例えば、量子化モジュールは、ほぼゼロであるＤＣＴ係数をゼロに設定し、また、残りのゼロ以外のＤＣＴ係数を量子化する。
【００１４】
映像符号化における制限の１つは、チャネルの容量に由来する。実際、通信チャネルは、１秒間に送信できるビットの数によって制限される。多くのチャネルでは、例えば、ＩＳＤＮ（総合サービスデジタル網）、ＰＯＴＳ（基本電話サービス）、無線チャネル等では、ビットレートは一定である。
【００１５】
しかしながら、映像を圧縮するために用いるアルゴリズムの効率及びそれら映像の動きの複雑さに依存して、映像を符号化するために、また、符号化された映像を送信するために必要なビット予算及びビットレートは、変動又は増加することがある。従って、レート制御を用いて、様々な複雑さの映像を符号化するのに必要なビットレートを、それらの符号化された映像の送信に用いるチャネルのビットレートに調整する。
【００１６】
Ｈ．２６３規格に用いる現在のレート制御アルゴリズムは、ＴＭＮ８（テストモデル短期バージョン８）と呼ばれる。一般的に言えば、このレート制御アルゴリズムは、平均ビットレートだけを確実に満たす。
【００１７】
ジョルディ・リバス・コーベラ（Ｊｏｒｄｉ＿Ｒｉｂａｓ−Ｃｏｒｂｅｒａ）による１９９９年の論文、表題「低遅延通信のためのＤＣＴ映像符号化におけるレート制御」（以降、参考文献１と称する）には、目標フレームサイズに関連する目標平均ビットレートをフレーム毎に確実に満たすためにレート制御ＴＭＮ８によって用いるアルゴリズムが、開示されている。更に具体的には、ＴＭＮ８レート制御アルゴリズムは、幾つかの画像統計値を演算して、各マクロブロック用の幾つかの固有のＱＰ（量子化パラメータ）値を求めて、目標フレームサイズを満たすように、各インターフレーム内のＱＰ値を更新する。残念なことに、この制御は、あくまでも概算であり、そして、結果的に生じるフレームサイズは、目標フレームサイズを大幅に上回ったり下回ったりすることが多い。イントラフレームの場合、映像シーケンスの特性にかかわらず、固定されたＱＰが、映像シーケンス全体に用いられる。イントラフレームのサイズを制御できないと、一般的に、所望のビットレートを超過する要因になる。
【００１８】
更に、レート制御ＴＭＮ８は、平均目標ビットレートと最大ビットレートとの双方を制御することができない。実際、Ｈ．２６３映像符号化規格に用いるＴＭＮ８レート制御アルゴリズムは、平均ビットレートパラメータだけを用いる。しかしながら、多くの映像アプリケーションでは、平均ビットレートに加え、最大ビットレートも考慮すべきである。
【００１９】
ＴＭＮ８は、所定の目標ビットレートを超過しないと保証できないが、この理由は、エンコーダが、イントラフレームサイズを制御できず、また、インターフレームサイズも充分に制御できないためである。所定の目標ビットレートを超過した場合、エンコーダは、オーバーフローを補償するように、幾つかの数のフレームをスキップする。しかしながら、そうすることによって通信及び映像の品質が変わる。
【００２０】
従って、Ｈ．２６３規格等の映像符号化規格における現在のレート制御の制限に関連して、上述した問題の克服に対するニーズがある。従って、映像符号化規格におけるレート制御を改善するための方法及びシステムを求める。
【発明の概要】
【発明が解決しようとする課題】
【００２１】
本発明の目的は、従って、平均ビットレート及び最大ビットレート双方を確実に考慮することによって、映像の品質を強化するように、映像符号化における、例えば、Ｈ．２６３及びＭＰＥＧ−４規格等の映像符号化規格におけるレート制御を提供することである。
【課題を解決するための手段】
【００２２】
更に具体的には、本発明に基づき、映像符号化におけるレート制御のための方法を提供する。本方法には、最大ビットレート及び平均ビットレートを指定する段階と、指定された最大ビットレートを満たすためのインターフレームサイズを計算する段階であって、このインターフレームサイズが、イントラフレームの位置を基準としたインターフレームの位置に関連する前記段階と、指定された最大ビットレート及び平均ビットレート双方を満たすための計算されたインターフレームサイズを調整する段階と、が含まれる。
【００２３】
更に、本発明は、復号遅延を考慮する場合、イントラフレームで分離された一連のインターフレームを含むシーケンスの映像符号化におけるレート制御を改善するための方法に関する。本方法には、一連の各インターフレームについて、目標フレームサイズを演算する段階と、先行イントラフレーム及び後続イントラフレームを基準とした各インターフレームの位置に関係する最大バッファレベルを演算する段階と、演算された目標フレームサイズ及び演算された最大バッファレベルに応じて、送信バッファレベルを最適化する段階と、が含まれる。
【００２４】
本発明は、更に、映像符号化におけるレート制御のための装置に関連する。本装置には、指定された最大ビットレートを満たすためのインターフレームサイズの第１計算器であって、このインターフレームサイズが、イントラフレームの位置を基準としたインターフレームの位置に関係する前記第１計算器と、指定された最大ビットレートに加えて、指定された平均ビットレートを満たすために、第１計算器によって計算されたインターフレームサイズの第２計算器と、が含まれる。
【００２５】
本発明は、更に、復号遅延を許容する場合、イントラフレームによって分離された一連のインターフレームを含むシーケンスの映像符号化におけるレート制御を改善するための装置に関する。本装置には、各インターフレームについて、目標フレームサイズの計算器と、先行イントラフレーム及び後続イントラフレームを基準とした各インターフレームの位置に関係する最大バッファレベルの計算器と、演算された目標フレームサイズ及び演算された最大バッファレベルに応じた送信バッファレベルの最適化器と、が含まれる。
【００２６】
本発明の上記及び他の目的、利点、並びに特徴は、添付図面を参照して、あくまで一例として与えられた例示の実施形態の以下の非限定的説明を解釈すると、更に明らかになる。
【図面の簡単な説明】
【００２７】
【図１】映像通信システムの概略図である。
【図２】図１の通信システムにおける映像符号化のためのエンコーダの概略ブロック図である。
【図３】本発明の非限定的な例示の実施形態に基づく、映像符号化におけるレート制御のための装置の概略ブロック図である。
【図４】Ｈ．２６３映像符号化規格におけるレート制御のための本発明の非限定的な例示の実施形態による方法を示すフローチャートである。
【図５】インターフレーム目標サイズを計算するための方法の例を示すフローチャートである。
【図６】インターフレーム目標サイズを計算するための方法の他の例を示すフローチャートである。
【図７】計算されたインターフレーム目標サイズを更新するための方法の例を示すフローチャートである。
【図８】計算されたインターフレーム目標サイズを更新するための方法の他の例を示すフローチャートである。
【図９】Ｈ．２６３映像符号化規格におけるレート制御のための本発明の他の非限定的な例示の実施形態による方法を示すフローチャートである。
【発明を実施するための形態】
【００２８】
一般的に言えば、本発明の非限定的な例示の実施形態によるレート制御を改善するための装置によって、ＴＭＮ８レート制御では満たせない以下の要件に対応し得る。
１．イントラフレーム用の目標フレームサイズを指定し、また、満足することが可能であること。
‐そうすることにより、イントラフレームの品質及びイントラフレームの存在に起因するビットレートの変動を制御し得る。また、
‐ＱＰ（量子化パラメータ）は、固定されず、イントラフレーム特性に基づき演算され、また、指定されたイントラフレーム目標サイズを満足するために、イントラフレームの各ブロックの画素に対して、変えることができる。
２．平均ビットレートに加えて、最大ビットレートを指定して、満たすことが可能であること。
‐更に、フレームを符号化した後、符号化されたフレームサイズの検証を実施し、最大ビットレートと比較して、符号化されたフレームサイズが、大き過ぎて許容できない場合、フレームは、より小さい目標サイズで再符号化するか又は削除する必要がある。
‐対照的に、ＴＭＮ８レート制御は、例えば、フレームを削除することによって、平均ビットレートだけを満たそうとするが、それは、最大ビットレートを満たせない。
３．最大ビットレートを管理する円形バッファ及び平均ビットレート用の他のバッファを有すること。
‐対照的に、ＴＭＮ８は、１つの送信バッファだけを用いる。
４．イントラフレームのタイミング及び符号化に依存するインターフレーム目標サイズを推定し計算すること。イントラフレームが、つい最近符号化された場合又はイントラフレームが、まもなく符号化される場合、
‐更に、インターフレーム目標サイズの推定には、イントラフレームのサイズ、２つのイントラフレーム間の期間、平均ビットレートを下回る又は上回るビット数等、様々なパラメータを考慮する。
‐対照的に、ＴＭＮ８は、送信バッファ占有期間及び割合だけに基づく目標サイズを用いる。それは、後続イントラフレームを予測せず、また通常、イントラフレームの符号化後、多くのフレームをスキップし、このため映像品質の劣化を招く。
５．フレームを事前に且つ予防的に削除すること。
‐本発明の１つの非限定的な例示の実施形態による装置は、最大ビットレートを超過しないことを保証し、また、必要に応じて、送信する前にフレームを削除する。フレーム削除の判断は、推定されたものと実現されたもの、即ち、実際に符号化されたものとの間の差異に基づく。
‐対照的に、ＴＭＮ８は、大き過ぎて目標サイズを超過することになるフレームを生成して送信した後、フレームを省く。そのようにしても、映像の品質には、既に害が及んでしまっている。更に、フレーム削除の判断は、送信バッファの埋まり具合に基づく。
【００２９】
Ｉ．システム
まず、映像通信システムについて、そこで映像符号化が行われる通信システムを定義するように述べる。しかしながら、この通信システムは、本発明の一部ではない。
【００３０】
図１において、通信システム１０について述べる。
【００３１】
通信システム１０には、映像カメラ又はウェブカメラ等、映像を取り込むための映像ソース１２が含まれる。そして、それらの映像は、映像エンコーダ１４に供給される。映像エンコーダ１４は、ネットワーク１６に接続されている。ネットワーク１６には、更に、符号化された映像をデコーダ１８に送信するための通信リンクを含み得る。最後に、デコーダ１８は、映像プレーヤ２０に接続されている。映像プレーヤ２０は、コンピュータ、テレビ受像機又は映像を表示し得る任意の装置であってよい。
【００３２】
例えば、第一者と第二者との間の通信セッション中、第一者の映像ソース１２によって取り込まれた映像は、エンコーダ１４によって受信され、次に、エンコーダ１４は、映像の圧縮及び符号化を実施し得る。一旦、エンコーダ１４が映像データの符号化を終えると、符号化された映像は、ネットワーク１６又は単に通信リンクを介して、第二者に送信される。第二者側では、デコーダ１８は、符号化された映像を受信し、そして、その復号を開始する。一旦、符号化された映像が復号されると、デコーダ１８は、復号された映像データを映像プレーヤ２０に送り、映像プレーヤ２０は、次に、第一者から受信した映像の再生を開始し得る。
【００３３】
エンコーダ１４について、図２で詳述する。エンコーダ１４には、１つ又は複数のプロセス３０１乃至３０Ｎが含まれ、これによって、後述するように、映像符号化の際、異なる動作を実施し得る。エンコーダ１４には、更に、動き推定モジュール３２、動き補償モジュール３４、ＤＣＴモジュール３６、量子化モジュール３８及びバッファ４０を含む。
【００３４】
尚、このエンコーダ１４は、異なるプラットホームで、例えば、バントリックス（Ｖａｎｔｒｉｘ）社のｓｐｏｔ＿ｘｄｅ（登録商標）等で実現し得る。映像ソースは、映像ファイル又は映像カメラであってよい。
【００３５】
上述したように、動き推定モジュール３２によって、現フレームに移動したであろう先行フレームの範囲を予測し得る。
【００３６】
そして、動き補償モジュール３４は、動き推定モジュール３２によって検出された動きの補償を目的とする。
【００３７】
ＤＣＴモジュール３６は、画素のブロックに対して、空間周波数係数へのＤＣＴ変換を実施する。
【００３８】
それらの空間周波数係数は、次に、それらを量子化するための量子化モジュール３８に供給される。
【００３９】
符号化されたフレームは、エンコーダ１４のバッファ４０に格納し得る。従って、バッファ４０によって、符号化されたフレームの受信が可能になり、そして、符号化されたフレームは、通信リンク（ネットワーク１６）を介して送信される。
【００４０】
最後に、エンコーダ１４には、更に、映像符号化の際、ビットレートを制御するための本出願によるレート制御装置４２を含む。このレート制御装置では、通信リンクの最大容量を超過しないことが保証され、また、特に、遠隔監視アプリケーション及び連続映像シーケンスを提示する他のアプリケーションの映像品質を強化する。
【００４１】
ＩＩ．装置
レート制御装置４２は、エンコーダ１４においてレート制御の改善を実現する。更に具体的には、装置４２は、平均及び最大ビットレート制約条件を満たすように、Ｈ．２６３及びＭＰＥＧ４映像符号化規格におけるビットレート制御のための方法１００を実装している。方法１００については、後述する。
【００４２】
装置４２には、図３に示すように、イントラフレーム用の目標サイズを指定するための予測器５０であって、更に、指定されたイントラフレーム目標サイズを満たすために、量子化モジュール３８で用いられる必要なＱＰを予測するための予測器５０が含まれる。イントラフレームのサイズは、ビットレートの品質及びバーストの双方に影響を及ぼし得ることから、ビットレートを制御する場合、イントラフレームを符号化するためのビット予算を適切に設定するために、目標サイズを求める。
【００４３】
装置４２には、更に、インターフレームサイズの第１計算器５２を含む。第１計算器５２により、後述するように、最大ビットレート制約条件を満たすために、様々な状況において、インターフレームの目標サイズを演算することが可能になる。
【００４４】
更に、装置４２には、最大ビットレート及び平均ビットレート制約条件双方を満たすように、第１計算器５２によって提供されたインターフレーム目標サイズを再計算するための第２計算器５４が含まれる。
【００４５】
更に、装置４２には、符号化されたフレームのサイズが、計算されたインターフレーム目標サイズと最大ビットレートによって許容された最大サイズとを超過しないことを保証するための検証器５６が含まれる。
【００４６】
最後に、最大及び平均ビットレートの制約条件を満たすために、図２のプロセス３０２は、直近の１秒間内に送信されたフレームのサイズを含むための円形バッファ（図示せず）を有する。例えば、毎秒１０フレームでは、そのようなバッファは、符号化された最新の１０フレームのサイズを保持する。
【００４７】
一般的に言えば、最大及び平均ビットレート制約条件を満たすための、本発明の非限定的な例示の実施形態による方法１００は、３０２及び３０３等の２つの制御プロセスを用いる。例えば、プロセス３０２は、第１及び第２計算器５２及び５４と共に、最大ビットレートの超過を回避するのに必要な目標フレームサイズを演算するために用い得る。そして、プロセス３０３は、検証器５６と共に、フレームを符号化した後、符号化されたフレームを送信できるか、即ち、最大ビットレートに達していないかどうかチェックするために用いる。最大ビットレートを超過した場合、符号化されたフレームは、削除するか、又はエンコーダ１４が、同じフレームを異なる符号化パラメータで再度符号化しようとする。
【００４８】
ＩＩＩ．方法
以下、Ｈ．２６３規格等の映像符号化規格におけるビットレート制御のための、本発明の非限定的な例示の実施形態による方法１００について、図４と共に述べる。
【００４９】
しかしながら、このレート制御は、Ｈ．２６１、ＭＰＥＧ−４、Ｈ．２６４等、他の映像符号化規格においても用い得ることに留意されたい。
【００５０】
上述したように、イントラフレームのサイズは、ビットレートの品質及びバースト双方に影響を及ぼし得ることから、ビットレートを制御する場合、イントラフレームを符号化するための第１ビット予算を設定することが、重要である。
【００５１】
動作１０１において、最大ビットレートＲＭＡＸ及び平均ビットレートＲａｖｇを指定する。
【００５２】
そして、動作１０２において、イントラフレームの目標サイズＢｉ（ビット）を指定する。
【００５３】
方法１００の動作１０３において、ＱＰの予測を実施し、これにより、イントラフレームを符号化する際、動作１０２で指定したイントラフレーム目標サイズをもっと良く満たし得る。動作１０２及び１０３は、例えば、図３の予測器５０において実施し得る。
【００５４】
そして、動作１０４において、動作１０２で指定されたイントラフレームの目標サイズに基づき、指定された最大ビットレートＲＭＡＸを満たすために、インターフレームの目標サイズを計算する。この動作１０４は、例えば、図３の第１計算器５２によって実施し得る。
【００５５】
動作１０６において、計算されたインターフレーム目標サイズは、指定された最大ビットレート及び平均ビットレート双方を満たすように、再演算する。この動作は、例えば、図３の第２計算器５４によって実施し得る。
【００５６】
最後に、動作１０８において、符号化されたフレームサイズが、最大及び平均ビットレートによって許容される演算済みフレームサイズに対して検証される。
【００５７】
次に、更に具体的に、図４の方法１００の各動作について、更に詳細に述べる。
【００５８】
動作１０１：最大ビットレート及び平均ビットレートの仕様
映像符号化における映像品質を改善するために、超過してはならないＲＭＡＸで表す最大ビットレートを設定する。最大ビットレートは、任意の１秒間内にチャネルを介して送信し得るビットの最大数として定義する。この定義の場合、最大サイズは、最大ビットレートと等価である。最大ビットレートの他の定義にも該当し得ることに留意されたい。各用途に応じて最大ビットレートを指定及び定義することは、当業者の範囲及び知識内である。更に、ある期間のフレームに渡って、平均ビットレートをどのように指定するかは、当分野で公知である。
【００５９】
動作１０２：イントラフレーム目標サイズの仕様
映像符号化の特定用途並びに指定された最大及び平均ビットレートに基づき、イントラフレーム目標サイズをどのように指定するかを知ることは、当業者の知識及び理解の範囲内である。例えば、イントラフレーム目標サイズは、最大ビットレートＲＭＡＸ又は平均ビットレートＲａｖｇの百分率として設定し得る。
【００６０】
動作１０３：指定イントラフレーム目標サイズを満足するためのＱＰの予測
このために、以降、参考文献２と称する、２００４年、パン（Ｐａｎ）らによる「超低ビットレート映像符号化のための適応イントラフレーム量子化」に開示された推定アルゴリズムに基づき、量子化モジュール３８に用いるＱＰ（量子化パラメータ）を予測するための推定アルゴリズムが、開発されている。
【００６１】
このアルゴリズムは、所定のイントラフレーム目標サイズを満たすために、イントラフレームの統計値に基づき、量子化モジュール３８において必要なＱＰを推定するための図３の予測器５０によって用いられる。しかしながら、イントラフレームの全存続時間の間、一定のＱＰを考慮する参考文献２の教示内容とは異なり、開発された本推定アルゴリズムでは、ＱＰ値は、指定された目標フレームサイズを更に正確に満たすように、イントラフレームのＧＯＢ（ブロックのグループ）毎に更新し得る。更に、参考文献２は、中間調画像を考慮するが、開発した本推定アルゴリズムは、カラー画像をサポートする。
【００６２】
参考文献２によれば、ＱＰと他のフレーム統計値との間の関係は、下式で記述し得る。
【数１】
0005676705.tif 000002
上式において、
【数２】
0005676705.tif 000003
であり、Ｆ（ｕ、ｖ）は、Ｎ×Ｍサイズの画面における全画素ブロックの８×８ＤＣＴ係数を含み、ＢＩは、指定されたイントラフレーム目標サイズ（単位＝ビット）である。
【００６３】
項ＭＡＶＤＣＴは、ＤＣＴ係数の平均絶対値を表し、また、画面の複雑さの目安を示す。項ＡＢＳ（）は、絶対値関数である。
【００６４】
式（１）は、画面の輝度の統計値だけを考慮し、クロミナンスを無視していることに留意されたい。従って、クロミナンスも考慮するためには、新しい式が必要であり、これは、輝度と比較して、一般的に、４倍二次抽出され、下式で与えられる。
【数３】
0005676705.tif 000004
上式において、ＦＬ（ｕ、ｖ）は、輝度用ブロックの８×８ＤＣＴ係数を含み、Ｆｃ１（ｕ、ｖ）及びＦｃ２（ｕ、ｖ）は、クロミナンス用ブロックの８×８ＤＣＴ係数を含む。
【００６５】
上述したように、指定されたイントラフレーム目標サイズＢＩを更に正確に満たすために、ＱＰは、イントラフレームの各ＧＯＢについて調整される。更に、式（２）は、イントラフレームの残りのブロックを符号化するために必要なビットを考慮するように、修正される。従って、ＱＰを予測するための修正式は、次のようになる。
【数４】
0005676705.tif 000005
ここで、
【数５】
0005676705.tif 000006
であり、上式において、Ｂｒｅｍａｉｎは、フレームを符号化するための指定されたイントラフレーム目標サイズから残されているビットの数であり、Ｎｔｏｔａｌは、フレームのマクロブロックの総数であり、Ｎｒｅｍａｉｎは、そのフレームで符号化する残りのマクロブロックの数であり、Ｎｂｉａｓは、符号化するフレームの端が近づくにつれて、ＱＰ推定を更に控えめにするための偏りであり、通常、Ｎｂｉａｓ＝４である。
【００６６】
指定されたイントラフレーム目標サイズＢＩを満たすように、ＱＰが演算された後、方法１００は、動作１０４に移行する。
【００６７】
動作１０４：最大ビットレート制約条件を満たすためのインターフレームサイズの計算
非限定的な例として、動作１０１において指定されたイントラフレーム目標サイズは、一定と見なされる。しかしながら、インターフレーム目標サイズは、状況に依存する。２つのケースを考慮する必要がある。即ち、
ｉ）ケース１：イントラフレームが、直近の１秒間に符号化された又は後続の１秒間に符号化される場合と、
ｉｉ）ケース２：インターフレームだけが、直近の１秒間に符号化された又は後続の１秒間に符号化され、イントラフレームからは何ら影響を受けない場合。
【００６８】
従って、動作１０４は、インターフレーム目標サイズを演算するために、上述した２つのケース即ちケース１及びケース２を考慮する必要がある。動作１０４によって、方法２００は、ケース１に用いられ、方法２５０は、ケース２に用いられる。
【００６９】
イントラフレームが直近の１秒間内に符号化されたか又は後続の１秒間に符号化されようとしている場合、インターフレーム目標サイズを計算するための方法２００（ケース１）
図５では、ケース１においてインターフレーム目標サイズを計算するための方法２００について述べる。
【００７０】
まず、動作２０２において、理想的なインターフレーム目標サイズＢ２が、ＲＭＡＸに基づき演算される。そのために、非限定的な例として、全てのインターフレームが、同じサイズであるとすると、最大ビットレートは、次のように与えられる。
【数６】
0005676705.tif 000007
ここで、ＢＩは、イントラフレーム目標サイズであり、Ｂ２は、ケース１における、即ち、イントラフレームが直近の１秒間に符号化される又は後続の１秒間に符号化される場合の理想的なインターフレーム目標サイズであり、Ｆは、１秒あたりに符号化するフレームの数、即ち、フレームレートである。
【００７１】
次に、式（４）から、理想的なインターフレーム目標サイズＢ２は、次のように与えられる。
【数７】
0005676705.tif 000008
定義により、式（５）に示すように、Ｆは、１フレーム／秒より大きい。
【００７２】
はじめに、ケース１のインターフレーム目標サイズは、ＢＰＩと表記され、動作２０２において計算された理想的なインターフレーム目標サイズＢ２によって与えられる。即ち、
ＢＰＩ＝Ｂ２
【００７３】
しかしながら、上記インターフレーム目標サイズＢＰＩは、過去に符号化されたフレーム、特に、イントラフレームの影響を考慮するために、調整される。実際には、一般的に、符号化されたフレームは、目標サイズと厳密に等しいサイズを有さない。従って、最大ビットレートＲＭＡＸを超過せずに、将来のイントラフレームの符号化において、充分なビットを確実に配分するために、符号化されたフレームの実際のサイズと目標サイズとの間の差異を負うように、将来のインターフレームサイズを調整する。
【００７４】
従って、動作２０４において、過去に符号化されたフレームに基づく調整済みインターフレーム目標サイズが、例えば、図３の第１計算器５２により演算される。このために、２つのケースを考慮する。
【００７５】
ｉ）イントラフレームが、直近の１秒間に符号化されている場合、次のインターフレームのサイズＢＰＩは、下式、
【数８】
0005676705.tif 000009
を用いて、調整され、また、限定される。上式において、ＳｉｚｅＨｉｓｔｏｒｙ［ｋ］は、符号化されたフレームｋのサイズであり、ｔは、符号化する現フレームのインデックスであり、Ｔは、２つのイントラフレーム間の期間（フレーム数で表す）であり、Ｎは、次のイントラフレームの前に残っているフレーム数である。ｔｍｐ（ｔ）は、フレームｔにおけるビット予算バッファを表す。更に、式（６）において、最大値関数内のゼロ（０）によって、バッファのアンダーフローを回避し得る。
【００７６】
式（６）及び（７）によって、イントラフレーム後の１秒間内に符号化される残りのインターフレーム間のフレームを符号化するためのビット予算から、ほぼ均等に、任意の追加ビットを分配し得ることに留意されたい。更に、時間ｔ−（Ｔ−Ｎ）におけるフレームは、イントラ符号化されたものであることに留意されたい。
【００７７】
ｉｉ）イントラフレームが、後続の１秒で符号化されようとする場合、次のインターフレームの目標サイズは、以下のように限定される。
【数９】
0005676705.tif 000010
上式において、ＳｉｚｅＨｉｓｔｏｒｙ［ｋ］は、符号化されたフレームｋのサイズであり、ｔは、符号化される現フレームのインデックスであり、Ｎは、次のイントラフレーム前に残っているフレームの数である。
【００７８】
式（９）において、Ｆ−（Ｎ−１）の項が、追加されていることに留意されたい。従って、（Ｎ−１）個の残りのフレームのサイズは、１つのフレームがイントラフレームである期間において計算される。従って、ビット予算バッファｔｍｐ（ｔ）を表す式は、Ｎによる除算を含む。
【００７９】
最後に、動作２０６において、調整されたインターフレーム目標サイズは、誤差のマージンを小さく維持し、また、過去のフレームの符号化に用いられたビットを考慮しつつ、最大ビットレートＲＭＡＸによって許容された最大サイズを確実に超過しないように再計算される。
【００８０】
従って、インターフレーム目標サイズは、下式、
【数１０】
0005676705.tif 000011
を用いることによって限定される。上式において、Ｒｍａｒｇｉｎは、インターフレーム目標サイズが、最大ビットレートＲＭＡＸによって許容された最大サイズを超過しないことを保証するための誤差マージンである。
【００８１】
直近の１秒間内に符号化された又は後続の１秒間に符号化されるイントラフレームがない場合、これはケース２に対応するが、動作１０４は、インターフレーム目標サイズを計算するための方法２５０を用いる。
【００８２】
直近の１秒間内に符号化された又は後続の１秒間に符号化されるイントラフレームがない場合にインターフレーム目標サイズを計算するための方法２５０（ケース２）
次に、図６では、ケース２において、インターフレーム目標サイズを計算するための方法２５０について述べる。
【００８３】
まず、動作２５２において、インターフレームの理想的な目標サイズＢ３を最大ビットレートに基づき計算する。この場合、イントラフレームが存在しないと仮定されることから、任意の１秒間の最大ビットレートＲＭＡＸは、下式によって与えられる。
【数１１】
0005676705.tif 000012
上式において、Ｂ３は、直近の１秒間内に符号化された又は後続の１秒間に符号化されるイントラフレームがない理想的なインターフレーム目標サイズである。
【００８４】
従って、理想的なインターフレーム目標サイズＳ３は、下式によって与えられる。
【数１２】
0005676705.tif 000013
【００８５】
最初、ケース２において、インターフレーム目標サイズは、ＢＰと表記されるが、これは、計算された理想的なインターフレームサイズＢ３の値をとる、即ち、ＢＰ＝Ｂ３である。
【００８６】
この場合、インターフレームは、イントラフレームによって影響されないと仮定されることから、過去に符号化されたイントラフレームに基づき目標サイズＢＰを調整する必要はない。
【００８７】
次に、動作２５４において、インターフレーム目標サイズＢｐは、誤差のマージンを小さく維持し、また、過去のフレームの符号化に用いられたビットを考慮しつつ、最大ビットレートＲＭＡＸによって許容された最大サイズを確実に超過しないように、再計算する。
【００８８】
このために、以下の式を用いる。
【数１３】
0005676705.tif 000014
ここで、
【数１４】
0005676705.tif 000015
であり、上式において、Ｒｍａｒｇｉｎは、目標サイズと、最大ビットレートによって許容された最大サイズとの間の誤差のマージンであり、例えば、Ｒｍａｒｇｉｎ＝１０００ビットである。
【００８９】
ケース１又はケース２のいずれにおいても、一旦、最大ビットレート制約条件を満たすために、インターフレーム目標サイズが計算されると、図４の方法１００は、動作１０１で指定された最大ビットレート及び平均ビットレートを双方共に満たすように、計算されたインターフレームサイズを更新及び調整するために、動作１０６に進む。この動作１０６は、例えば、図３の第２計算器５４において実施し得る。
【００９０】
動作１０６：平均及び最大ビットレート制約条件を双方共に満たすための計算されたインターフレームサイズの再計算
動作１０６は、平均及び最大ビットレート制約条件を双方共に満たし得る方法を用いる。これらの方法には、２つの要素がある。ｉ）平均及び最大ビットレート制約条件を満たすためのインターフレーム目標サイズの演算、並びに、ｉｉ）過去のフレームの符号化に用いられず、将来のフレームの符号化に用い得る追加ビットの管理。
【００９１】
再度、２つの場合、即ち、動作１０４において述べたケース１及びケース２を考慮する。従って、動作１０６は、ケース１において方法３００を用い、ケース２において方法３５０を用いる。
【００９２】
イントラフレームが直近の１秒間内に符号化される又は後続の１秒間に符号化されようとしている場合にインターフレームサイズを再計算するための方法３００（ケース１）
次に、図７では、ケース１において、動作１０４で計算されたインターフレーム目標サイズを再計算するための方法３００について述べる。
【００９３】
まず、動作３０２において、指定された平均ビットレート基づき、理想的なインターフレーム目標サイズＢを計算する。
【００９４】
理想的には、インターフレームは、同じサイズを有し、そのため、２つのイントラフレーム間の期間Ｔにおいて、平均ビットレートＲａｖｇは、下式によって与えられる。
【数１５】
0005676705.tif 000016
【００９５】
従って、理想的なインターフレーム目標サイズＢは、次のように表し得る。
【数１６】
0005676705.tif 000017
【００９６】
インターフレームサイズが、平均ビットレートＲａｖｇ及び最大ビットレートＲＭＡＸを超過しないことを保証するために、インターフレーム目標サイズＢＰＩは、次のように再計算される。
【数１７】
0005676705.tif 000018
【００９７】
動作３０２は、エンコーダ１４が最初に初期化された時、又は例えば、指定された最大ビットレートが含まれるビットレートパラメータが変わる度に、一度だけ演算してよい。
【００９８】
そして、動作３０４において、計算された目標フレームサイズＢＰＩは、過去に符号化されたフレーム、特に、イントラフレームを考慮するように調整される。そうするために、式（６）又は（８）と同様な式が、更新されたインターフレーム目標サイズＢＰＩを得るために、過去に符号化されたフレームに基づき、計算される。
【数１８】
0005676705.tif 000019
ここで、式（７）又は（９）で定義されたｔｍｐは、次のケースに依存する。即ち、ｉ）イントラフレームが、直近の１秒間内に符号化されている場合、式（７）が用いられ、また、ｉｉ）イントラフレームが、後続の１秒間に符号化される場合、式（９）が用いられる。
【００９９】
次に、動作３０６において、上述したように、符号化されたフレームは、一般的に、目標サイズと厳密に同じサイズは有さないことから、調整された目標フレームサイズと、実際のフレームサイズとの間の差異を計算する。
【０１００】
そのために、例えば、図２のプロセス３０１を利用して、変数Ｂｅｘｔｒａを用いて、これらの差異を監視する。この変数は、通信セッションの開始時、ゼロに初期化される。変数Ｂｅｘｔｒａは、フレーム毎に、目標サイズを上回る又は下回るビットの数を積算する。Ｂｅｘｔｒａがゼロより大きい場合、実際のビットレートは、指定された平均ビットレート未満である。Ｂｅｘｔｒａが負の場合、実際のビットレートは、指定された平均ビットレートを上回る。Ｂｅｘｔｒａの更新は、符号化された各フレームに対して、次のように実施される。
【数１９】
0005676705.tif 000020
上式において、Ｂｔａｒｇｅｔは、目標サイズであり、インターフレームの場合、ＢＰＩに、また、イントラフレームの場合、Ｂｉに相当し、Ｂｅｎｃｏｄｅｄは、符号化されたフレームのサイズである。
【０１０１】
Ｂｅｘｔｒａが正であり、実際のビットレートが、指定された平均ビットレート未満であることを意味する場合、未使用ビットは、それらの符号化に用いられる次のフレームに分配され、従って、次のフレームの目標サイズは、大きくなる。Ｂｅｘｔｒａが負の場合、次のフレームの目標サイズは、減少する。用いられるアルゴリズムは、以下の通りである。
Ｂｅｘｔｒａ＞０の場合（これは、実際のビットレートが平均ビットレート未満であるケースに対応する）、
【数２０】
0005676705.tif 000021
それ以外の場合、
【数２１】
0005676705.tif 000022
ここで、αは、現フレームに用いられる追加ビットの割合を表し、βは、追加し得る目標サイズの最も大きな割合を表す。例えば、シミュレーションにおいて、α＝０．６及びβ＝０．１５を用いる。しかしながら、これらの値は、エンコーダ１４の性能を更に改善するために、修正し得る。様々な性能を得るために、α及びβの値を調整することは、当業者の範囲内及び知識内である。更に、目標サイズＢｔａｒｇｅｔを更新するための上記方法もまた、このレート制御方法の主な概念から逸脱することなく、修正又は変更し得る。
【０１０２】
実施の観点から、Ｂｅｘｔｒａを負にする符号化されたフレームは、削除することが可能であることに留意されたい。そのような場合、符号化されたフレームの実際の平均ビットレートは、指定された平均ビットレートを上回ることがある。更に、或るしきい値未満である符号化済みフレームの削除を決めることが可能である。例えば、或る実施例では、−５００ビットのしきい値を用い得る。
【０１０３】
最後に、動作３０８は、符号化される現フレームの調整済みインターフレーム目標サイズが、最大ビットレートＲＭＡＸによって許容された最大サイズを超過しないように確かめる。そのために、式（１０）と同様な式を用いて、有効なインターフレーム目標サイズを得る。
【数２２】
0005676705.tif 000023
ここで、ｔｍｐ２は、式（１１）で定義される。
【０１０４】
更に、動作３０６の前に必ずＢｅｘｔｒａを明らかにするように、方法３００を修正することが可能である。これは、実施上の選択であり、このレート制御方法の主な考え方から逸脱することなく、振舞い及び性能における他のいずれかの妥協につながる。
【０１０５】
直近の１秒間内に符号化された又は後続の１秒間に符号化されるイントラフレームがない場合、動作１０６は、平均及び最大ビットレートを双方共に満たすために、計算されたインターフレーム目標サイズを更新するための方法３５０を用いる。
【０１０６】
直近の１秒間内に符号化される又は後続の１秒間に符号化されようとしているイントラフレームがない場合にインターフレームサイズを再計算するための方法３５０（ケース２）
上述したように、理想的な場合にのみ、インターフレームは、同じサイズになる。現実には、最大ビットレート制約条件により、イントラフレームに近接して配置されたインターフレームの目標サイズは、大幅に低減されたはずである。サイズ上のこれらの差異を補償するために、イントラフレームによって影響されないインターフレームのサイズを再評価する。
【０１０７】
次に、図８では、ケース２において、インターフレーム目標サイズを再計算するための方法３５０について述べる。
【０１０８】
まず、動作３５２において、平均ビットレートに基づき、理想的なインターフレーム目標サイズＢａを計算する。
【０１０９】
理想的な状況では、インターフレームのサイズは、同じ長さであると仮定する。従って、その場合、２つのイントラフレーム間の期間Ｔ全体において、平均ビットレートＲａｖｇは、下式によって与えられる。
【数２３】
0005676705.tif 000024
【０１１０】
式（１９）から、インターフレームの理想的なサイズＢａは、下式によって与えられることが推定できる。
【数２４】
0005676705.tif 000025
【０１１１】
動作３５２は、エンコーダ１４が初期化される時、又はビットレートパラメータが変わる度に、一度だけ処理してよい。
【０１１２】
平均ビットレートと、最大ビットレートを超過しないために方法２５０の動作２５２で計算されたインターフレームサイズとに基づき、インターフレーム目標サイズＢｐが、理想的なインターフレーム目標サイズを超過しないことを保証するために、インターフレームの目標サイズＢｐは、次のように限定する。
【数２５】
0005676705.tif 000026
【０１１３】
次に、動作３５４では、動作３５２で演算されたインターフレームサイズＢｐと、実際に符号化されたフレームサイズとの間の差異を計算する。この動作は、各フレームについて実施する。
【０１１４】
動作３５４において演算された差異に起因するビットの数が、追跡され、また、変数Ｂｅｘｔｒａに記憶される。この変数によって、実際に符号化されたフレームが、指定された平均ビットレートを上回っているか又は下回っているかどうか判断でき、また、その状況に基づいて、その差異を補正し得る。これは、図７の方法３００の動作３０６で述べたように行われ、目標サイズは、式（２１）によって計算する。
【０１１５】
最後に、動作３５６では、誤差のマージンを維持し、また、過去のフレームの符号化に用いられたビットを考慮しつつ、最大ビットレートを超過しないように、ＢＰを制限する。ＢＰは、下式によって与えられる。
【数２６】
0005676705.tif 000027
ここで、
【数２７】
0005676705.tif 000028
であり、また、Ｒｍａｒｇｉｎは、ビットレート用の誤差のマージンである。例えば、Ｒｍａｒｇｉｎ＝１０００ビットである。
【０１１６】
一旦、インターフレーム目標サイズが計算されると、図４の動作１０８において、検証動作が、例えば、図３の検証器５６によって実施される。実際には、符号化されたフレームは、通常、計算されたインターフレームと同じサイズを有さない。従って、符号化されたフレームサイズが、計算された目標サイズ及び最大ビットレートと比較して、大き過ぎる場合、再符号化又は削除メカニズムを起動する。それらのメカニズムは、当分野で公知であり、従って、本明細書ではこれ以上述べない。
【０１１７】
ＩＶ．数値例
この節では、映像符号化におけるレート制御のための方法１００に従って、幾つかの数値例について述べる。
【０１１８】
例えば、方法２００及び方法２５０に基づき、最大ビットレートが、ＲＭＡＸ＝４８０００ｂｐｓ（ビット／秒）、イントラフレーム目標サイズが、ＢＩ＝４００００ビット、フレームレートが、Ｆ＝１０ｆｐｓ（フレーム／秒）である場合、動作２０２の式（５）及び動作２５２の式（１２）をそれぞれ用いることによって、以下のことが分かる。
【数２８】
0005676705.tif 000029
【０１１９】
また、動作２０２及び２５２は、エンコーダ１４が初期化される時又はビットレートパラメータが変わる度のいずれかに一度だけ処理し得る。しかしながら、動作２０４、２０６、及び２５４は、その都度、即ち、フレーム毎に、実際の符号化されたフレームサイズに基づいて処理する。
【０１２０】
他の例は、方法３００及び方法３５０に関する。この場合、最大ビットレートが、ＲＭＡＸ＝４８０００ｂｐｓ、平均ビットレートが、Ｒａｖｇ＝３２０００ｂｐｓ、イントラフレーム目標サイズが、ＢＩ＝４００００ビット、イントラフレームの期間が、Ｔ＝４ｓ、即ち、各々４０フレーム、及びフレームレートが、Ｆ＝１０ｆｐｓである場合、動作３０２の式（１７）及び動作３５４の式（２０）を用いることによって、以下のことが分かる。
【数２９】
0005676705.tif 000030
【０１２１】
また、動作３０２及び３５２は、エンコーダ１４が初期化される時又はビットレートパラメータが変わる度のいずれかにおいて、一度だけ処理し得る。しかしながら、動作３０４、３０６、３５４、及び３５６は、フレーム毎に、実際に符号化されたフレームサイズに基づいて演算する。
【０１２２】
次に、ＢＰ＝３４２９ビットとして、式（１９）を用いて、平均ビットレートを演算するが、これは、計算された目標サイズを用いることによって、計画した通りに全てのフレームを符号化すると得ることができる。
【数３０】
0005676705.tif 000031
【０１２３】
従って、所望の理想的な結果が得られる。或る場合、特に、最大ビットレートが、平均ビットレートに近く、また、目標イントラフレームサイズが大きい場合、最大ビットレート及びイントラフレーム目標サイズは、平均ビットレートを制限し得る。例えば、前の例では、平均ビットレートが、４８０００ｂｐｓである場合、以下のようになる。
【数３１】
0005676705.tif 000032
【０１２４】
平均ビットレートは、全てのフレームが計画通りに符号化されると得られるが、Ｂｐ＝４８００ビットとして、次のように演算される。
【数３２】
0005676705.tif 000033
【０１２５】
しかし、現実には、符号化されたフレームサイズは、目標サイズを中心にして変動することから、より小さい平均ビットレートが守られる。従って、式（１９）によって与えられる結果は、理論的最大値に対応する。
【０１２６】
方法１００におけるインターフレーム目標サイズの計算は、イントラフレームを基準としたインターフレームの位置に依存することに留意されたい。
【０１２７】
Ｖ．計算された目標サイズの超過に至る符号化されたフレームの管理
ＴＭＮ８レート制御において、全ての符号化されたフレームは、それらを送信すると、指定された平均ビットレートを超過する状況になる場合であっても、送信される。フレームの送信後、指定された平均ビットレートを超過した場合、エンコーダは、指定された平均ビットレートを再び守れるようになるまで、必要に応じて、１つ又は複数のフレームをスキップする。従って、この制御は、事前対処的ではなく、事後対処的である。
【０１２８】
上記の方式は、平均ビットレートを満たすためには、受入可能であり得る。しかしながら、実際の伝送チャネルを用いる多くの現実の用途の場合そうであるように、最大ビットレートを決して超過してはならない場合、受入可能ではない。
【０１２９】
実際には、どのフレームのサイズも、目標サイズを潜在的に超過し得ることから、最大ビットレートの超過に至る符号化されたフレームが送信前に削除されるメカニズムが、実装されるべきである。この取り組み方法の問題は、映像符号化が、フレーム毎の予測（時間的予測符号化）を用いることである。従って、フレームが削除された場合、エンコーダの状態は、削除されたフレームの再符号化に先立って、復元される必要があり、そうでない場合、エンコーダ及びデコーダの同期がとれなくなる。
【０１３０】
従って、本発明の非限定的な実施形態による装置４２は、フレームを符号化する前に、エンコーダ状態変数を記憶する。符号化されたフレームサイズは、最大ビットレートを超過することになる場合、削除され、状態変数が、次のフレームを符号化するために復元される。そうでない場合、符号化されたフレームが送信され、エンコーダ１４は、新しい状態変数で先に進む。
【０１３１】
この特徴は、多重パス符号化等、他の用途にも用いることができ、この場合、サイズ及び／又は品質の目標が達成されるまで、１つのフレームに対して多数の符号化の繰り返しを行うことができる。
【０１３２】
エンコーダ１４は、２つの条件下で、フレームを削除又はスキップし得る。第１に、符号化されたフレームは、最大ビットレートを超過すると、自動的に削除される。第２に、送信されたビットの数が、指定された平均ビットレートを超過すると、将来のフレームは、スキップし得るが、符号化されたばかりのフレームではなく、それに続くフレームが、平均ビットレートを再び守れるようになるまで、スキップされる。更に具体的には、指定された平均ビットレートが、或るしきい値によって超過されると、将来のフレームは、スキップでき、また、現フレームは、それを維持すると最大ビットレートの超過に至る場合にのみ削除される。
【０１３３】
更に、エンコーダ１４によって、イントラフレームをいつでも要求することができ、これが、「要求に応じたイントラフレーム」の特徴を実現することになる。明らかに、そのような場合、最大ビットレートを超過せずに、イントラフレーム目標サイズを守れないことがある。これが起こった場合、エンコーダ１４は、最大ビットレートを超過せずに最大イントラフレーム目標サイズを演算して用いる。符号化されたイントラフレームサイズは、最大ビットレートを超過すると、削除され、エンコーダ１４は、そのイントラフレームの再符号化を試みる前に、或る時間期間待つ。エンコーダ１４は、継続して待ち、そして、符号化されたイントラフレームサイズが最大ビットレートを守るまで、そのイントラフレームの符号化を試みる。試行が失敗する度に、イントラフレーム目標サイズは、無限ループを回避するように低減されるが、この場合、符号化されたフレームサイズは、常に最大ビットレートを超える。
【０１３４】
一般的に、エンコーダ１４は、映像データ及びフレームを符号化する時、以下のパラメータを要求する。
●方法１００の動作１０２で指定されたイントラフレーム目標サイズ
●方法１００の動作１０１で指定された平均ビットレート
●方法１００の動作１０１で指定された最大ビットレート
【０１３５】
エンコーダ１４は、上記所定のパラメータについて幾つかの検証を実施し、それらの使用が可能でない場合、パラメータ値を変え得ることに留意されたい。例えば、所定のイントラフレーム目標サイズ及び最大ビットレートでは、平均ビットレートは、達成できない。従って、パラメータは、変えられ、また、平均レートが、再計算される。
【０１３６】
Ｖｌ．バッファに基づく、Ｈ．２６３用レート制御の第２の非限定的実施形態
上記実施形態において、最大ビットレートＲＭＡＸは、１秒間に送信し得るビットの最大数として定義した。
【０１３７】
しかしながら、映像ストリーミング等のアプリケーションでは、最大ビットレートの異なる定義が検討され、これは、それらのアプリケーションに存在する実際の制限を考慮する。
【０１３８】
映像ストリーミングにおいて、映像パケットは、容量限定チャネルを介して送られ、従って、ビットレートが、制限される。図１のプレーヤ２０が、受信した最初のイントラフレームの再生を開始する前に、１秒の遅延が許容可能と見なされる場合、本明細書において後述するように、イントラフレーム目標サイズは、ＲＭＡＸより小さくすべきである。
【０１３９】
デコーダ１８は、プレーヤ２０が、最初に受信したフレームの再生を開始する前に、１秒間待たなければならない。しかしながら、それは、この１秒の遅延の間に、追加のフレームを送信できないという意味ではない。ここで、ＢＩ＝ＲＭＡＸであり、また、最大ビットレートＲＭＡＸを超過しないことは、送信バッファ４０が、ＲＭＡＸを超過しない状況と等価であるとする。すると、時間ｔ＝０において、サイズＲＭＡＸのフレームが、ちょうど挿入されることから、図２のバッファ４０は、満杯である。Ｆ＝１０ｆｐｓ及びＲＭＡＸ＝４８０００ｂｐｓの場合、ｔ＝０．１秒において、それらがチャネルを介して送信されたことから、バッファ４０は、ＲＭＡＸ／Ｆ＝４８００ビットだけ空にする。従って、所定の時間ｔ＝０．１秒において、また、送信バッファ４０がオーバーフローすることなく、４８００ビットが、フレームを符号化するために利用可能となる。同じ方法が、後続のフレームにも適用される。従って、イントラフレームに続く各フレームの場合、４８００ビットの追加量を送信し得る。従って、この方法により、本明細書においてこれまでに例示した４８０００ビットの代わりに、合計４８０００＋（１０−１）（４８００）＝９１２００ビットを送信することが可能である。
【０１４０】
それらの追加利用可能なビットは、イントラフレームに続くインターフレームを符号化するためのビットの数を増やすために用いられることから、イントラフレームに続くフレームの品質を改善し得る。
【０１４１】
しかしながら、前に計算した９１２００ビットは、１秒間で送られるのではなく、送信されたイントラフレームを受信するためにアプリケーションによって生じた遅延のために、それらのビットを網羅する時間は、１．９秒であり、即ち、遅延の１秒及び時間１．１ｓから１．９ｓまでの９フレームであるが、これは、（９１２００ビット／１．９ｓ）＝４８０００ビット／秒のビットレートを与え、最大ビットレートＲＭＡＸに対応することに留意されたい。
【０１４２】
説明のために、最大バッファサイズは、最大ビットレートＲＭＡＸに対応すると見なす。しかしながら、最大バッファサイズは、異なる値で設定し得る。当業者は、それに伴って式をどのように修正すべきか分かっている。
【０１４３】
ここで、次のイントラフレームが来る場合を考える。次のイントラフレームが来ることから、バッファ４０は、やって来るイントラフレーム用のスペースが、その予定された時間に充分にあるように、徐々に空にしなければならない。
【０１４４】
イントラフレームの目標サイズは、ＢＩであるが、実用上は、より多くの利用可能なビットを、イントラフレームに続くフレームに配分し、その品質を改善するように、バッファ４０を空にすることが望ましい。
【０１４５】
そのため、実際の用途では、ＢＩ＜ＲＭＡＸである。従って、イントラフレームに続くフレームに配分されるビットの数は、バッファ４０を空にし始める前に、それらのフレームの品質を改善するように増大する。
【０１４６】
イントラフレームの到着時間をゼロとする。そして、Ｎは、イントラフレームの符号化からの未使用ビットが分配されるイントラフレームの後のフレームの数として定義される。Ｌは、バッファレベルが最適化されたインターフレームの数として定義される。ｔ＝Ｌにおいて、バッファ４０は満杯であり、また、０≦Ｎ≦Ｌであることに留意されたい。
【０１４７】
一般的に言えば、採用し得る可能な戦略は、以下の通りである。
【０１４８】
常に、バッファレベルは、ＲＭＡＸを超過せず、これは、オーバーフローを発生する符号化されたフレームが削除されることを意味する。通常、映像の品質は、イントラフレームの後に最も悪くなることから、バッファレベルを最大にし、また、映像の全体的な品質を上げるために、イントラフレームの符号化において未使用のビットは、後続のインターフレームの符号化に用いる。フレーム番号Ｌまで、バッファ４０は、ＲＭＡＸ／Ｆを目標サイズでフレームを符号化することによって、満杯のままに維持される。更に、演算されたが先行フレームに未使用のビットは、後続のフレームに再配分されるが、しかしながら、目標サイズは、或る値を超過してはならず、この値は、対象バッファレベルに依存し、バッファレベル自体は、時間のフレームインデックスに依存する。対象バッファレベルは、イントラフレームの後の第１フレームの場合、ＲＭＡＸであり、次のイントラフレームが来るまで、徐々にゼロ（０）に減少することに留意されたい。
【０１４９】
次に、図９では、映像符号化における改善されたレート制御のための方法４００について述べる。
【０１５０】
動作４０２では、時間ｔ＝０において、イントラフレームが、送信バッファ４０によって受信される。従って、時間ｔ＝０において、目標フレームサイズは、Ｂｐ（ｔ）＝ＢＩである。
【０１５１】
動作４０４において、新しいバッファレベル（これは、以前のバッファレベルと実際に符号化されたイントラフレームのサイズとの和である）と、最大バッファサイズＲＭＡＸとの間の比較を行う。
【０１５２】
動作４０６において試験した際、新しいバッファレベルが、最大バッファサイズＲＭＡＸより大きい場合、動作４０８において、実際に符号化されたフレームは、削除される。更に、そのフレームの符号化に先立つエンコーダ状態変数を復元する（バッファレベルを含むが、これは、符号化に先立って、バッファレベル値に復元される）。
【０１５３】
新しいバッファレベルが、最大バッファサイズＲＭＡＸより小さい場合、動作４１０において、インターフレーム目標サイズＢｐ（ｔ）は、下式、
【数３３】
0005676705.tif 000034
を用いることによって、２つのイントラフレーム間の期間Ｔ内の時間ｔにおける各フレームについて計算される。上式において、
【数３４】
0005676705.tif 000035
は、任意であるが、条件としては、バッファ４０がオーバーフローしてはならない、即ち、バッファレベル≦ＲＭＡＸであり、また、ｔ＝Ｌにおいてほぼ満杯でなければならない。
【０１５４】
そして、動作４１２において、超過できない最大バッファレベルが、計算される。実際には、バッファ４０に次のイントラフレームを挿入するための充分なスペースが確実にあるように、最大バッファレベルは、フレーム毎に演算すべきである。イントラフレームのサイズは、ＲＭＡＸを超過できない。従って、Ｔ−１におけるフレームでは、次のイントラフレームの始まりにおいて、バッファレベルが、ＲＭＡＸ−ＢＩを超過しないように、バッファレベルは、ＲＭＡＸ−ＢＩ＋ＲＭＡＸ／Ｆを超過できない。
【０１５５】
しかしながら、実用上の理由により、バッファ４０のサイズは、上述したように、ＲＭＡＸ−ＢＩ＋ＲＭＡＸ／Ｆの代わりに、ＲＭＡＸ／Ｆにすべきである。これは、現実的には、符号化されたイントラフレームの実際のサイズを正確に予測することは、困難であることによる。今日存在するアルゴリズムは、充分に堅牢ではない。従って、より多くのビットをイントラフレームに続くフレームに用い得るように、フレームＴ−１において、バッファ４０を空にする方が、より安全である。
【０１５６】
従って、最大バッファレベルは、次のように計算される。
【数３５】
0005676705.tif 000036
【０１５７】
そして、動作４１４において、動作４１０で計算されたインターフレーム目標サイズは、イントラフレームの符号化から未使用ビットを取り込むように、更新される。
【０１５８】
イントラフレームに続くインターフレームに未使用ビットを分配するやり方は、数多くある。イントラフレームに続く映像の品質を最適化するために、フレームＬの後、バッファ４０は、満杯であるべきことに留意されたい。
【０１５９】
例えば、後続のＮ個のフレームに未使用ビットを均等に分配するために、時間ｔにおける目標フレームサイズは、下式によって与えられる。
【数３６】
0005676705.tif 000037
【０１６０】
Ｌ＝Ｎの場合、ＲＭＡＸ／Ｆの目標フレームサイズは、存在しないことに留意されたい。更に、バッファ４０が、２つのイントラフレーム間において、それ自体を空にするための充分な時間を有するように、Ｔ＞Ｆ＋Ｌである。
【０１６１】
動作４１６において、更新されたインターフレーム目標サイズを考慮するように、将来のフレーム各々に割り当てられたバッファレベルを計算する。
【０１６２】
従って、バッファレベルは、下式によって与えられる。
【数３７】
0005676705.tif 000038
【０１６３】
初めに、送信バッファ４０は、空であり、そして、サイズＢＩ及びＢＰ（ｔ）のフレームが、それらの演算に従って連続的に挿入されることに留意されたい。
【０１６４】
そして、動作４１８において、フレームを符号化するためのマージンΔ（ｔ）を計算する。
【数３８】
0005676705.tif 000039
【０１６５】
一般的に、エンコーダ１４が、フレームを符号化する場合、符号化されたフレームサイズは、目標サイズと若干異なる。目標サイズが、符号化されたフレームより大きい場合、未使用ビットは、最大バッファレベルが超過されない限り、次フレームに再配分される。従って、フレームの符号化後、追加可能なビットの数を示すＥ（ｔ）が、動作４２０において演算される。フレームの符号化から生じるそれらの未使用ビットは、次のフレームの符号化に用い得る。Ｅ（ｔ）は、次のように定義される。
【数３９】
0005676705.tif 000040
上式において、ＢｕｆｆｅｒＬｅｖｅｌａｃｔｕａｌ（ｔ）は、フレームの実際の符号化後のバッファレベルである。
【０１６６】
一般的に、追加ビットの割合は、最大バッファレベルが超過されないことを保証するために用いられることに留意されたい。当業者は、最大バッファレベルが超過されないことを保証するために、追加ビットの割合をどのように指定するか分かっている。
【０１６７】
しかしながら、符号化されたフレームが、目標フレームサイズより大きいことが起こり得る。この場合、Ｅ（ｔ）は、負になるか又は或る所定のしきい値より小さくなる。従って、動作４２２において、符号化されたフレームについて、検証プロセスが実施される。符号化されたフレームが、目標フレームサイズを超過した場合、この符号化されたフレームは、削除される。更に、この場合、エンコーダ状態変数は、フレームの符号化に先立って、それらの値に復元される。
【０１６８】
例えば、方法４００の動作４１０は、図３の第１計算器５２を介して実施でき、また、方法４００の動作４１２は、図３の第２計算器５４を介して実施し得ることは、注目に値する。更に、図２のプロセス３０１によって提供された最適化器（図示せず）によって、例えば、送信バッファ４０をＬフレームに渡って最適化し得る。
【０１６９】
ＶＩＩ．数値例
例えば、以前の数値例で与えたられたものと同じ値を用いることができる。即ち、ＲＭＡＸ＝４８０００ビット、ＢＩ＝４００００ビット、Ｆ＝１０ｆｐｓ、Ｔ＝４０、即ち、４ｓである。更に、Ｎ＝３及びＬ＝Ｆ−１＝９と仮定すると、
【数４０】
0005676705.tif 000041
【０１７０】
上記計算値を用いて、最大ビットレートは、次のように計算し得る。
【数４１】
0005676705.tif 000042
【０１７１】
この結果は、方法１００によって与えられる３９．２ｋｂｐｓより更に興味深い。更に、イントラフレームに続くインターフレームに、追加ビットが分配されることから、フレームの視認品質が、改善される。
【０１７２】
上記明細書において、非限定的な例示の実施形態によって、本発明について説明したが、これらの例示の実施形態は、添付された請求項の範囲内において、本発明の精神及び本質から逸脱することなく、意のままに修正し得る。
【符号の説明】
【０１７３】
１０ 通信システム
１２ 映像ソース
１４ 映像エンコーダ
１６ ネットワーク
１８ デコーダ
２０ 映像プレーヤ
３０１−３０Ｎ プロセス
３２ 動き推定モジュール
３４ 動き補償モジュール
３６ ＤＣＴモジュール
３８ 量子化モジュール
４０ バッファ
４２ レート制御装置
５０ 予測器
５２ 第１計算器
５４ 第２計算器
５６ 検証器
【図１】
0005676705.tif 000063
【図２】
0005676705.tif 000064
【図３】
0005676705.tif 000065
【図４】
0005676705.tif 000066
【図５】
0005676705.tif 000067
【図６】
0005676705.tif 000068
【図７】
0005676705.tif 000069
【図８】
0005676705.tif 000070
【図９】
0005676705.tif 000071