(57)【要約】  イントラフレームにより分離された一連のインターフレームを含むフレームのシーケンスのビデオ符号化でビットレートを制御する装置／方法であって、符号化されたフレームはその符号化されたフレームを送信する前にビデオバッファリング装置で妥当性が検査され、装置／方法は、フレームのシーケンスにおけるフレームの複雑さを測定し、各インターフレームに対して、インターフレームと次のイントラフレームの間の距離との関係でビデオバッファリング装置の目標バッファレベルを計算し、各インターフレームに対して、インターフレームと次のイントラフレームの間の距離、測定されたフレームの複雑さ、ビデオバッファリング装置の現在のバッファレベル、および計算された目標バッファレベルとの関係で目標フレームサイズを計算し、計算された目標フレームサイズを用いてフレームのシーケンスのビデオ符号化におけるビットレートを制御する装置／方法。
2010530673.tif 000002
【特許請求の範囲】
【請求項１】
イントラフレームにより分離された一連のインターフレームを含むフレームのシーケンスのビデオ符号化におけるビットレートを制御する方法であって、前記符号化されたフレームは、前記符号化されたフレームを送信する前に、ビデオバッファリング装置で妥当性が検査されており、前記方法が、
フレームの前記シーケンスにおけるフレームの複雑さを測定するステップと、
各インターフレームに対して、前記インターフレームと次のイントラフレームの間の距離との関係で、前記ビデオバッファリング装置の目標バッファレベルを計算するステップと、
各インターフレームに対して、前記インターフレームと前記次のイントラフレームの間の前記距離、前記測定されたフレームの複雑さ、前記ビデオバッファリング装置の現在のバッファレベル、および前記ビデオバッファリング装置の前記計算された目標バッファレベルとの関係で、目標フレームサイズを計算するステップと、
前記計算された目標フレームサイズを用いて、フレームの前記シーケンスのビデオ符号化におけるビットレートを制御するステップと
を含む方法。
【請求項２】
ビデオバッファリング検証器の最大のサイズ制限を超えることなく平均ビットレートを満たすように、イントラフレームにより分離された一連のインターフレームを含むフレームのシーケンスのビデオ符号化におけるビットレートを制御する方法であって、ビデオ符号化は、前記符号化されたフレームを送信する前に、前記ビデオバッファリング検証器中で前記符号化されたフレームの妥当性を検査するステップを含んでおり、前記方法が、
フレームの前記シーケンスにおけるフレームの複雑さを測定するステップと、
各インターフレームに対して、前記インターフレームと次のイントラフレームの間の距離との関係で、前記ビデオバッファリング検証器の目標バッファレベルを計算するステップと、
各インターフレームに対して、前記インターフレームと前記次のイントラフレームの間の前記距離、前記測定されたフレームの複雑さ、前記ビデオバッファリング検証器の現在のバッファレベル、および前記ビデオバッファリング検証器の前記計算された目標バッファレベルとの関係で、目標フレームサイズを計算するステップと、
フレームの前記シーケンスのビデオ符号化における前記ビデオバッファリング検証器の最大のサイズ制限を超えることなく前記平均ビットレートを満たすように、前記計算された目標フレームサイズを用いるステップと
を含む方法。
【請求項３】
フレームの前記シーケンスのイントラフレームの目標フレームサイズを計算するステップを更に含む、請求項1に記載の方法。
【請求項４】
前記イントラフレームの前記目標フレームサイズが、前記ビデオバッファリング装置の最大のサイズ制限との関係で計算される、請求項3に記載の方法。
【請求項５】
前記イントラフレームの前記目標フレームサイズを計算する前記ステップが、量子化パラメータを計算し、前記計算された量子化パラメータを用いて、前記イントラフレームの前記目標フレームサイズを決定するステップを含む、請求項3に記載の方法。
【請求項６】
前記イントラフレームの前記目標フレームサイズを計算する前記ステップが、所与の時間期間にわたり、前記計算された量子化パラメータが、前に符号化されたフレームの量子化パラメータの平均以下となる最小のフレームサイズを計算するステップを含む、請求項5に記載の方法。
【請求項７】
フレームの複雑さを測定する前記ステップが、インターフレームの場合、現在の画像と前に再構成された画像との間の差分を表すメトリックを計算するステップを含む、請求項1に記載の方法。
【請求項８】
前記現在の画像と前記前に再構成された画像との間の差分を表す前記計算されたメトリックが、平均絶対偏差を含む、請求項7に記載の方法。
【請求項９】
フレームの複雑さを測定する前記ステップが、イントラフレームの場合、前記前に再構成された画像に関係する項をゼロに設定して、前記平均絶対偏差を計算するステップを含む、請求項8に記載の方法。
【請求項１０】
前記ビデオバッファリング検証器の前記目標バッファレベルが、更に、前記平均ビットレート、および最後のイントラフレームを符号化した後の前記ビデオバッファリング検証器のバッファレベルとの関係で計算される、請求項2に記載の方法。
【請求項１１】
前記ビデオバッファリング検証器の前記目標バッファレベルが、更に、前記平均ビットレート、および前記ビデオバッファリング検証器の最大バッファレベルとの関係で計算される、請求項2に記載の方法。
【請求項１２】
前記インターフレームの前記目標フレームサイズが、更に、前記平均ビットレート、およびオーバーフローの危険性を生ずる前記ビデオバッファリング検証器の高バッファレベルとの関係で計算される、請求項2に記載の方法。
【請求項１３】
符号化されたフレームのサイズが、前記ビデオバッファリング装置のオーバーフローを回避するために許容される最大値を超える場合、前記符号化されたフレームを除外するステップを含む、請求項3に記載の方法。
【請求項１４】
前記符号化されたフレームを除外する前記ステップの後、前記ビデオ符号化を実施する符号器の状態変数を復元するステップを含む、請求項13に記載の方法。
【請求項１５】
除外された符号化フレームの数が、所与の時間期間内に所与の閾値に達した場合、フレームの前記シーケンスの前記符号化されたフレームに対して実施された離散コサイン変換(DCT)係数をフィルタ処理するステップを含む、請求項1に記載の方法。
【請求項１６】
前記DCT係数をフィルタ処理する前記ステップが、前記DCT係数の高周波数を除去するステップを含む、請求項15に記載の方法。
【請求項１７】
前記DCT係数をフィルタ処理する前記ステップが、特定の数のフレームに対して前記DCTフィルタ処理を活性化するステップを含む、請求項15に記載の方法。
【請求項１８】
前記ビデオバッファリング検証器中で前記符号化されたフレームの妥当性を検査する前記ステップが、前記計算された目標フレームサイズの妥当性を検査するステップを含む、請求項2に記載の方法。
【請求項１９】
前記計算された目標フレームサイズの妥当性を検査する前記ステップが、前記ビデオバッファリング検証器のオーバーフローを回避するステップを含む、請求項18に記載の方法。
【請求項２０】
前記計算された目標フレームサイズの妥当性を検査する前記ステップが、前記ビデオバッファリング検証器のアンダーフローを回避するステップを含む、請求項18に記載の方法。
【請求項２１】
イントラフレームにより分離された一連のインターフレームを含むフレームのシーケンスのビデオ符号化におけるビットレートを制御する装置であって、前記符号化されたフレームは、前記符号化されたフレームを送信する前に、ビデオバッファリング装置で妥当性が検査されており、前記装置が、
フレームの前記シーケンスにおけるフレームの複雑さの検出器と、
各インターフレームに対する、前記インターフレームと次のイントラフレームの間の距離との関係による、前記ビデオバッファリング装置の目標バッファレベルの第1の計算器と、
各インターフレームに対する、前記インターフレームと前記次のイントラフレームの間の前記距離、前記測定されたフレームの複雑さ、前記ビデオバッファリング装置の現在のバッファレベル、および前記ビデオバッファリング装置の前記計算された目標バッファレベルとの関係による、目標フレームサイズの第2の計算器と、
前記計算された目標フレームサイズに応じた、フレームの前記シーケンスのビデオ符号化における前記ビットレートの制御装置と
を備える装置。
【請求項２２】
ビデオバッファリング検証器の最大のサイズを超えることなく平均ビットレートを満たすように、イントラフレームにより分離された一連のインターフレームを含むフレームのシーケンスのビデオ符号化におけるビットレートを制御するための装置であって、ビデオ符号化は、前記符号化されたフレームを送信する前に、前記ビデオバッファリング検証器中で前記符号化されたフレームの妥当性を検査するステップを含んでおり、前記装置が、
フレームの前記シーケンスにおけるフレームの複雑さの検出器と、
各インターフレームに対する、前記インターフレームと次のイントラフレームの間の距離との関係による、前記ビデオバッファリング検証器の目標バッファレベルの第1の計算器と、
各インターフレームに対する、前記インターフレームと前記次のイントラフレームの間の前記距離、前記測定されたフレームの複雑さ、前記ビデオバッファリング検証器の現在のバッファレベル、および前記ビデオバッファリング検証器の前記計算された目標バッファレベルとの関係による、目標フレームサイズの第2の計算器と、
フレームの前記シーケンスのビデオ符号化における前記ビデオバッファリング検証器の前記最大のサイズを超えることなく前記平均ビットレートを満たすように、前記計算された目標フレームサイズに応じた、フレームの前記シーケンスのビデオ符号化における前記ビットレートの制御装置と
を備える装置。
【請求項２３】
フレームの前記シーケンスのイントラフレームの目標フレームサイズの計算器を更に備える、請求項21に記載の装置。
【請求項２４】
前記イントラフレームの前記目標フレームサイズの前記計算器が、前記ビデオバッファリング装置の最大のサイズ制限との関係で前記イントラフレームの前記目標フレームサイズを計算する、請求項23に記載の装置。
【請求項２５】
前記イントラフレームの前記目標フレームサイズの前記計算器が、量子化パラメータを計算し、前記計算された量子化パラメータを用いて、前記イントラフレームの前記目標フレームサイズを決定する、請求項23に記載の装置。
【請求項２６】
フレームの複雑さの前記検出器が、インターフレームの場合、現在の画像と前に再構成された画像の間の差分を表すメトリックを計算する、請求項21に記載の装置。
【請求項２７】
前記現在の画像と前記前に再構成された画像の間の差分を表す前記計算されたメトリックが、平均絶対偏差を含む、請求項26に記載の装置。
【請求項２８】
フレームの複雑さの前記検出器が、イントラフレームの場合、前記前に再構成された画像に関係する項をゼロに設定して、前記平均絶対偏差を計算する、請求項27に記載の装置。
【請求項２９】
前記第1の計算器が、更に前記平均ビットレート、および最後のイントラフレームを符号化した後の前記ビデオバッファリング検証器のバッファレベルとの関係で、前記ビデオバッファリング検証器の前記目標バッファレベルを計算する、請求項22に記載の装置。
【請求項３０】
前記第1の計算器が、更に前記平均ビットレート、および前記ビデオバッファリング検証器の最大バッファレベルとの関係で、前記ビデオバッファリング検証器の前記目標バッファレベルを計算する、請求項22に記載の装置。
【請求項３１】
前記第2の計算器が、更に前記平均ビットレート、およびオーバーフローの危険性を生ずる前記ビデオバッファリング検証器の高バッファレベルとの関係で、前記インターフレームの前記目標フレームサイズを計算する、請求項22に記載の装置。
【請求項３２】
符号化されたフレームのサイズが、前記ビデオバッファリング装置のオーバーフローを回避するために許容される最大値を超える場合、前記符号化されたフレームを除外するための前記目標フレームサイズの妥当性検査器を備える、請求項23に記載の装置。
【請求項３３】
前記妥当性検査器が、前記符号化されたフレームを除外した後、前記ビデオ符号化を実施する符号器の状態変数を復元するための手段を備える、請求項32に記載の装置。
【請求項３４】
除外された、符号化されたフレームの数が、所与の時間期間内に所与の閾値に達した場合、フレームの前記シーケンスの前記符号化されたフレームに対応するDCT係数をフィルタ処理するためのDCTフィルタを備える、請求項21に記載の装置。
【請求項３５】
前記DCTフィルタが、前記DCT係数の高周波数を除去する、請求項34に記載の装置。
【請求項３６】
前記DCTフィルタが、特定の数のフレームに対して前記DCT係数をフィルタ処理するために活性化される、請求項34に記載の装置。
【請求項３７】
前記計算された目標フレームサイズの妥当性検査器を更に備える、請求項22に記載の装置。
【請求項３８】
前記妥当性検査器が、前記ビデオバッファリング検証器のオーバーフローを回避する、請求項37に記載の装置。
【請求項３９】
前記妥当性検査器が、前記ビデオバッファリング検証器のアンダーフローを回避する、請求項37に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、ビデオ符号化におけるレート制御に関する。より詳細には、これだけに限らないが、本発明は、ビデオ符号化において、フレームの複雑さ、バッファレベル、およびイントラフレームの位置を利用するバッファベースのレート制御に関する。
【背景技術】
【０００２】
この数年、デジタルおよびオンラインビデオとそのアプリケーションは非常な高まりを見せている。高速通信技術およびマルチメディアアプリケーションが出現すると共に、デジタルビデオコーデックが、MPEG-2(Moving Picture Experts Group-2)フォーマットを使用するDVD(Digital Video Disc)、MPEG-1(Moving Picture Experts Group-1)フォーマットを使用するVCD(Video Compact Disc)、新しい衛星放送/地上波放送システム、およびインターネットなどにおける多くの領域およびシステムで使用されている。
【０００３】
より具体的には、ビデオアプリケーションのこの広がりは、ビデオデータを圧縮/伸張するビデオコーデックの興味深い開発に結びついている。ビデオデータの圧縮においては、ビデオ品質と圧縮比の間のバランス、すなわち、データの必要な送信品質、言い換えると、ビデオを表現するのに必要なビットレートが保たれる。
【０００４】
更に、符号化および復号アルゴリズムの複雑さ、データ損失およびエラーに対するロバスト性、圧縮アルゴリズム設計技術の状態、テレビ会議アプリケーションにおけるエンドツーエンド遅延（端末相互間の遅延）などもまた考慮される。
【０００５】
複数のビデオ符号化規格が存在し、そのそれぞれが、特定タイプのアプリケーションに対して専用に設計されている。例えば、ITU(国際電気通信連合)により公開されたH.263規格は、20〜30kbps(キロビット毎秒)の範囲など、低ビットレートに対するビデオ符号化および圧縮規格である。より具体的には、この規格は、テレビ会議およびテレビ電話アプリケーションにおけるビデオ符号化をサポートする。
【０００６】
H.263規格は、データの符号化されたストリームのフォーマットとコンテンツの明細を指定する。したがって、それは、符号器および復号器それ自体の設計または構造を具体的に指定せずに、符号器および復号器が満たすべき要件を設定する。
【０００７】
ビデオ圧縮において、各ピクチャは、一般に、フレーム、すなわち、イントラフレームおよびインターフレームと呼ばれる、通常、2種類のピクチャにより表される。更に、インターフレームは、2つの種類に、すなわち、Pフレーム(予測フレーム)、およびBフレーム(両予測または双方向フレーム)に分けられる。イントラフレームは、他のいずれのピクチャからも独立して符号化されるピクチャ全体を表し、したがって、ピクチャ全体のコンテンツを符号化する必要があるので、帯域幅を消費する。圧縮して帯域幅を節約するために、ピクチャ全体(またはイントラフレーム)間の差分だけが符号化され、次いで、送信される。これらの差分は、PフレームおよびBフレームにより表される。例えば、2つの連続するピクチャ間の背景は、通常、変化することなく、したがって、このような背景は、再度符号化する必要がない。Bフレームは、双方向であり、したがって、双方向予測、すなわち、前のピクチャと次のピクチャから予測を行う点で、Pフレームとは区別される。
【０００８】
更に、ビデオを圧縮するとき、ピクチャは、処理のために、マクロブロック(MB)へと分割される。実際、処理は、マクロブロックごとに1つずつ実施される。各マクロブロックは、一般に、16×16画素のブロックを表す。
【０００９】
ビデオ符号器は、一般に、動き推定モジュール、動き補償モジュール、DCT(離散コサイン変換)モジュール、および量子化モジュールを含む。
【００１０】
動き推定モジュールは、前フレームのどの領域が現在のフレーム中に移動しているかを予測することができ、したがって、これらの領域を再度符号化する必要がなくなる。
【００１１】
動き補償モジュールは、前フレームから現在のフレーム中への領域の移動を補償することができる。
【００１２】
DCTは、一般に、1つのブロックの画素を「空間周波数係数」に変換するために使用される。それは、マクロブロックなどの画素の2次元ブロックに対して演算を行う。DCTは、ピクチャを小型化するのに有効であるため、概して、元のピクチャを再現するためには、少数のDCT係数で十分である。
【００１３】
量子化モジュールは、DCT係数を量子化するために提供される。例えば、量子化モジュールは、ゼロに近いDCT係数をゼロに設定し、残りの非ゼロのDCT係数を量子化する。
【００１４】
ビデオ符号化における制限の1つは、通信チャネルの容量から生ずる。実際、通信チャネルは、1秒間に送信できるビット数により制限される。ISDN(統合デジタル通信サービス網)、POTS(Plain Old Telephone Service:従来の電話サービス網)中など、多くのチャネルにおいてビットレートは一定である。
【００１５】
しかし、ビデオを圧縮するために使用されるアルゴリズムの効率性、およびこれらのビデオの動きの複雑さに応じて、符号化およびその符号化されたビデオの送信に必要なビット予算(budget)およびビットレートは変化し、特に増加する可能性がある。したがって、様々な複雑性のあるビデオを符号化するために必要なビットレートを、これらの符号化されたビデオを送信するために使用される通信チャネルのビットレートに合わせて調整するために、レート制御が必要となる。
【００１６】
H.263規格で使用される現在のレート制御アルゴリズムは、TMN8(Test Model Near-Term version 8)と呼ばれる。一般的に言って、このレート制御アルゴリズムは、平均ビットレートだけが満たされることを保証する。このアルゴリズムは、平均の目標ビットレート、および最大ビットレートを共に制御することはできない。
【００１７】
以降で参考文献1と呼ばれる1999年、Jordi Ribas-Corberaによる「Rate Control in DCT Video Coding for Low-Delay Communications」と題する論文は、目標のフレームサイズに関係する目標の平均ビットレートが、各フレームにより満たされることを保証するために、レート制御TMN8により使用されるアルゴリズムを開示する。より具体的には、TMN8レート制御アルゴリズムは、いくつかの画像統計量を計算して、いくつかの適正なQP(量子化パラメータ)値を決定し、目標のフレームサイズを満たすように、各イントラフレームに対してQP値を更新する。残念ながら、この制御は非常に近似的なものであり、得られたフレームサイズが、目標のフレームサイズよりも著しく大きく、または小さくなることがしばしばありうる。
【００１８】
更に、TMN8レート制御アルゴリズムでは、所与の目標ビットレートが超過したとき、符号器は、オーバーフローを補償するために、一定数のフレームをスキップすることになる。当然であるが、そのようにすることにより、通信およびビデオ品質が変化する。
【００１９】
最大ビットレートベースのレート制御など、他のレート制御法は、TMN8レート制御を超える改善を示している。その方法は、以降で参考文献2と呼ばれる2007年、Stephane Coulombeによる「An improved video rate control for video coding standards」と題するPCT/CA2007/002242に記載されている。この最大ビットレートベースのレート制御法は、平均ビットレートと最大ビットレートを共に満たすように構成されている。しかし、この最大ビットレートベースのレート制御法は、最大ビットレートの特定の定義から導かれる。より具体的には、最大ビットレートは、1秒以内に送信できるビットの最大量として定義される。ビデオストリーミングなどのアプリケーションはこの定義に従わない。
【００２０】
ビデオストリーミングなどのアプリケーションでは、基本的なバッファベースのレート制御を使用することができ、TMN8レート制御を超える改善を示している。このようなバッファベースのレート制御法は、参考文献2で示されている。基本的なバッファベースレートコントローラは、大量のビットをイントラフレームに割り振り、次いで、ビデオバッファリング検証器のサイズを、一定数のフレームにわたって最適化するために、イントラフレームの符号化で未使用のビットを、後続するインターフレームに対して分配する。しかし、基本的なバッファベースのレートコントローラが、いくつかのビデオシーケンスに対して良好に動作することが示されてはいるが、映画およびビデオの予告編などで見出されるものなど、多くの動きおよびシーン変化を含むシーケンスの場合、いくつかの問題が提示される。これらのシーケンスでは、大量のビットを、イントラフレームに、またはその周囲に割り振り、かつほぼ一定量のビットを残りのフレームに割り振ることはよい戦略ではなかった。ビデオバッファ検証器(Video Buffer Verifier:VBV)とは、適合するビデオビットストリームが与えられたときに、オーバーフローまたはアンダーフローすべきではない仮想的な復号器バッファのモデルのことである。本発明では、ビデオバッファ検証器とは、MPEG-4符号化(MPEG-4ビデオ符号化規格のAnnex Dを参照のこと)の場合のVBV、H.263の仮想参照復号器(Hypothetical Reference Decoder:HRD)(H.263規格のAnnex Bを参照のこと)、または仮想復号器の他の任意のバッファモデルを指すものとする。
【００２１】
IEEE Transactions on Circuits and Systems for Video Technology、第16巻、56〜71頁、2006年における「A sequence-based rate control framework for consistent quality real-time video」と題するBo XieおよびWenjun Zengの論文では、XieおよびZengは、バッファベースのビデオレートコントローラ中で、フレームの複雑さメトリック、平均絶対偏差(mean absolute difference:MAD)を利用している。彼等の新しいレート制御フレームワークは、複数のビデオシーケンスにわたって、より一貫した品質を達成している。その方法は、ビデオソース中の非静止特性を追跡するための(GOP(Group of Pictures)ベースとは反対の)シーケンスベースのビット割振りモデルである。彼等は、その提案するレート制御解決策が、MPEG-4 Annex Lフレームレベルレート制御よりも、(平均値と、複数のシーンにわたる一貫性の両方の点で)大幅に優れたPSNR(ピーク信号対雑音比)性能を示すことができ、ならびに品質の揺らぎおよびギクシャクした動きの少ない、時間的に滑らかなビデオを生成できることを示した。XieおよびZengは、その提案するレート制御解決策が、様々なシーケンス、ビットレート、およびフレームレートに対してロバスト性があり、市販の製品で使用されてきたと主張する。しかし、彼等は、バッファのオーバーフローおよびアンダーフローに対する典型的な検査以外は、その方法でバッファレベルを考慮していない。実際のバッファレベルに基づいて動作させないと多数の欠落フレームを生ずるおそれがある。例えば、バッファレベルが高い場合、実際の符号化されたフレームは、オーバーフローを引き起こし、したがって、欠落フレームを生ずる可能性が非常に高い。XieおよびZengは、そのレート制御法において、イントラフレーム(それらが一定の間隔で到来するとき)の位置を使用せず、または最大ビットレートならびに平均ビットレートを考慮していない。彼等は、平均ビットレートに等しい最大ビットレートを考慮しているに過ぎない。
【００２２】
したがって、多くの動きおよびシーン変化を含むビデオシーケンスにおいて、レート制御に関係する上記で論じた問題を克服するための必要性がなお存在する。したがって、レート制御を改善することのできるバッファベースの装置および方法が求められている。
【先行技術文献】
【特許文献】
【００２３】
【特許文献１】PCT/CA2007/002242
【非特許文献】
【００２４】
【非特許文献１】1999年、Jordi Ribas-Corberaによる論文「Rate Control in DCT Video Coding for Low-Delay Communications」
【非特許文献２】IEEE Transactions on Circuits and Systems for Video Technology、第16巻、56〜71頁、2006年、Bo XieおよびWenjun Zengの論文「A sequence-based rate control framework for consistent quality real-time video」
【発明の概要】
【発明が解決しようとする課題】
【００２５】
したがって、本発明の目的は、上記で論じた諸問題を克服することのできるバッファベースのレート制御を提供することである。例えば、このようなバッファベースの制御は、平均ならびに最大ビットレート仕様を満たすために、ビデオ符号化におけるフレームの複雑さ、バッファレベル、イントラフレームの位置を利用することになる。
【課題を解決するための手段】
【００２６】
より具体的には、本発明の第1の態様によれば、イントラフレームにより分離された一連のインターフレームを含むフレームのシーケンスのビデオ符号化において、ビットレートを制御する方法が提供される。符号化されたフレームは、その符号化フレームの送信前に、ビデオバッファリング装置で妥当性が検査される。本方法は、フレームのシーケンスにおけるフレームの複雑さを測定するステップと、各インターフレームに対して、インターフレームと次のイントラフレームの間の距離との関係で、ビデオバッファリング装置の目標バッファレベルを計算するステップと、各インターフレームに対して、インターフレームと次のイントラフレームの間の距離、測定されたフレームの複雑さ、ビデオバッファリング装置の現在のバッファレベル、およびビデオバッファリング装置の計算された目標バッファレベルとの関係で、目標フレームサイズを計算するステップと、計算された目標フレームサイズを用いて、フレームのシーケンスのビデオ符号化におけるビットレートを制御するステップとを含む。
【００２７】
本発明の第2の態様によれば、ビデオバッファリング検証器の最大のサイズ制限を超えることなく平均ビットレートを満たすように、イントラフレームにより分離された一連のインターフレームを含むフレームシーケンスのビデオ符号化におけるビットレートを制御するための方法が提供される。ビデオ符号化は、符号化されたフレームを送信する前に、ビデオバッファリング検証器中で符号化されたフレームの妥当性を検査するステップを含む。本方法は、フレームのシーケンスにおけるフレームの複雑さを測定するステップと、各インターフレームに対して、インターフレームと次のイントラフレームの間の距離との関係で、ビデオバッファリング検証器の目標バッファレベルを計算するステップと、各インターフレームに対して、インターフレームと次のイントラフレームの間の距離、測定されたフレームの複雑さ、ビデオバッファリング検証器の現在のバッファレベル、およびビデオバッファリング検証器の計算された目標バッファレベルとの関係で、目標フレームサイズを計算するステップと、フレームのシーケンスのビデオ符号化におけるビデオバッファリング検証器の最大のサイズ制限を超えることなく平均ビットレートを満たすように、計算された目標フレームサイズを用いるステップとを含む。
【００２８】
本発明の第3の態様によれば、イントラフレームにより分離された一連のインターフレームを含むフレームのシーケンスのビデオ符号化におけるビットレートを制御するための装置が提供される。符号化されたフレームは、符号化フレームの送信前に、ビデオバッファリング装置で妥当性が検査される。装置は、フレームのシーケンスにおけるフレームの複雑さの検出器と、各インターフレームに対する、インターフレームと次のイントラフレームの間の距離との関係による、ビデオバッファリング装置の目標バッファレベルの第1の計算器と、各インターフレームに対する、インターフレームと次のイントラフレームの間の距離、測定されたフレームの複雑さ、ビデオバッファリング装置の現在のバッファレベル、およびビデオバッファリング装置の計算された目標バッファレベルとの関係による、目標フレームサイズの第2の計算器と、計算された目標フレームサイズに応じた、フレームのシーケンスのビデオ符号化におけるビットレートの制御装置とを備える。
【００２９】
本発明の第4の態様によれば、ビデオバッファリング検証器の最大のサイズを超えることなく平均ビットレートを満たすように、イントラフレームにより分離された一連のインターフレームを含むフレームのシーケンスのビデオ符号化におけるビットレートを制御するための装置が提供される。ビデオ符号化は、符号化されたフレームを送信する前に、ビデオバッファリング検証器中で符号化されたフレームの妥当性を検査するステップを含む。装置は、フレームのシーケンスにおけるフレームの複雑さの検出器と、各インターフレームに対する、インターフレームと次のイントラフレームの間の距離との関係による、ビデオバッファリング検証器の目標バッファレベルの第1の計算器と、各インターフレームに対する、インターフレームと次のイントラフレームの間の距離、測定されたフレームの複雑さ、ビデオバッファリング検証器の現在のバッファレベル、およびビデオバッファリング検証器の計算された目標バッファレベルとの関係による、目標フレームサイズの第2の計算器と、フレームのシーケンスのビデオ符号化におけるビデオバッファリング検証器の最大サイズを超えることなく平均ビットレートを満たすように、計算された目標フレームサイズに応じた、フレームのシーケンスのビデオ符号化におけるビットレートの制御装置とを備える。
【００３０】
本発明の前述の目的および他の目的、その利点および特徴は、添付の図面を参照し、例として示されただけの、本発明の例示的な諸実施形態の以下の非限定的な説明を読めば、更に明らかとなろう。
【００３１】
添付図では、以下のようになる。
【図面の簡単な説明】
【００３２】
【図１】ビデオ通信システムの一例の概略図である。
【図２】図1の通信システムにおけるビデオ符号化のための符号器の一例の概略のブロック図である。
【図３】本発明の非限定的な例示の実施形態によるビデオ符号化におけるレート制御のための装置の概略のブロック図である。
【図４】本発明の非限定的な例示の実施形態によるビデオ符号化におけるレート制御のための方法を示す流れ図である。
【図５】図4のレート制御法におけるイントラフレームの目標サイズを計算する方法を示す流れ図である。
【図６】図4のレート制御法におけるインターフレームの目標サイズを計算する方法を示す流れ図である。
【発明を実施するための形態】
【００３３】
概略的に言って、本発明の非限定的な例示の実施形態によるビデオ符号化におけるレート(ビットレート)制御のための装置および方法は、許容される最大ビットレート(またはビデオバッファ検証器の最大のサイズ制限)を超えることなく、平均ビットレートを満たすことを保証する。より具体的には、レート(ビットレート)制御は、バッファベースであり、インターフレームと次のイントラフレームの間の距離、測定されたフレームの複雑さ、ビデオバッファリング検証器の現在のバッファレベル、およびビデオバッファリング検証器の計算された目標バッファレベルを考慮する。この方法では、遠隔監視、速い動きの映画などの様々なビデオアプリケーションで、視覚的な品質が高められる。
【００３４】
本発明の非限定的な例示の実施形態によるレート制御の移植性が改善され、そして非限定的な例として、H.263、MPEG-4、およびH.264などの符号化スキームを用いる複数のビデオ符号器への、それの統合を容易にすることに留意するべきである。
【００３５】
本発明の非限定的な例示の実施形態によるビデオ符号化におけるレート制御のための装置および方法は、概して、以下の諸側面を考慮することにより、ビデオ品質およびビデオ符号化性能を改善する。
【００３６】
1)XieおよびZengにより提案されるように、目標フレームサイズを計算するとき、フレームの複雑さを利用する。例えば、符号化すべき画像と前の画像の差分(または後者が含む細部)が大きければ大きいほど、割り振るべきビットの点で、その画像を符号化するのがより複雑になる。その場合、一定の品質を得るために、その画像の符号化には、より多量のビットが割り振られるべきである。フレームの複雑さを評価するために、平均絶対偏差(MAD)または他の同様のメトリックなど、フレームの複雑さメトリックを使用することができる。
【００３７】
2)例えば、フレームの複雑さメトリックの計算により、ビデオシーケンス中のシーンカットを検出することができる。ビデオシーケンス中に存在する様々なシーンカットを知ることにより、バッファベースのレート制御装置および方法は、ビデオシーケンスのより優れた品質を取得するために、より適切にイントラフレームを選択することができる。この場合、フレームモード決定の前に、動き推定を動作させる。
【００３８】
3)各イントラフレームは、前フレームと同じ品質で符号化される。そのために、イントラフレームに対する目標フレームサイズは、固定であるとは見なされず、変化する可能性がある。更に、2つのイントラフレーム符号化モードを考えることができる。第1のモードは、フレームの持続期間全体に対して固定された量子化パラメータ(QP)を使用し、したがって、概して、より一様な品質であるが、正確さに劣るフレームサイズとなる。第2の符号化モードは、フレームのマクロブロック(MB)列ごとに更新されるQPを使用する。
【００３９】
4)本発明の非限定的な例示の実施形態によるバッファベースのレート制御装置および方法は、ビデオバッファリング検証器が、平均ビットレートを維持するために余分のビットもしくは未使用のビットを使用するのではなく、目標フレームサイズを適正に縮小拡大することにより、アンダーフローまたはオーバーフローしないことを保証する。
【００４０】
5)インターフレームと次のイントラフレームの間の距離、測定されたフレームの複雑さ、ビデオバッファリング検証器の現在のバッファレベル、およびビデオバッファリング検証器の計算された目標バッファレベルなどの様々なパラメータに依存する目標フレームサイズが計算される。したがって、計算される目標フレームサイズは動的な値である。計算された目標フレームサイズは、更に、目標フレームサイズをよりよく制御するための因子によって更に縮小拡大することができる。
【００４１】
I.ビデオ通信システム
最初に、ビデオ符号化が行われるビデオ通信システムの例を説明する。
【００４２】
図1を次に参照すると、ビデオ通信システム10は、ビデオを捕捉するためのビデオカメラ、またはウェブカメラなどのビデオソース12を備える。これらのビデオは、次いで、ビデオ符号器14に供給される。ビデオ符号器14はネットワーク16に接続される。ネットワーク16は、符号化されたビデオを符号器14から復号器18に送信するための通信リンクまたはチャネルを確立する。最後に、復号器18は、ビデオ再生装置20に接続される。ビデオ再生装置20は、コンピュータ、テレビジョンセット、またはビデオを表示するための任意の装置とすることができる。
【００４３】
例えば、第1と2の当事者間における通信セッション中に、第1の当事者のビデオソース12により捕捉されたビデオは、圧縮し、かつ符号化するために符号器14により受け取れられる。符号器14が、ビデオデータの符号化を終了した後、符号化されたビデオは、ネットワーク16により確立された通信リンクまたはチャネルを介して、第2の当事者に送信される。第2の当事者の端部で、復号器18は、符号化されたビデオを受信し、その復号を開始する。符号化されたビデオが復号されると、復号器18は、復号されたビデオデータをビデオ再生装置20に送り、ビデオ再生装置20は、次いで、第1の当事者から符号化形式で受信されたビデオの再生を開始することができる。
【００４４】
次に、図2を参照して、符号器14がより詳細に説明される。
【００４５】
符号器14は、ビデオ符号化に関係する1つまたは複数のプロセス321から327を行う。これらのプロセスは、従来のプロセス、または従来にないプロセスのいずれかであるが、本開示で簡単に説明されるもの、あるいはオリジナルでありかつ以下で完全に説明されるものがある。
【００４６】
上記プロセス321から327の少なくとも一部を実施するために、符号器14は、動き推定モジュール32、動き補償モジュール34、H.263およびMPEG-4符号化の場合、概してDCTである変換モジュール36、量子化モジュール38、レート制御装置42、係数フィルタ処理モジュール37、およびビデオバッファリング検証器40を含む。レート制御装置42は、平均ならびに最大ビットレート仕様を満たすために、符号化プロセスのいくつかの側面を制御する。符号器14は、様々のプラットフォーム、例えば、Vantrix社(Vantrix Corporation)が提供するSPOT xde(登録商標)サーバを用いて実装することができる。当然であるが、他の適切なプラットフォームも企図されうる。ビデオソース12は、非限定的な例として、MPEG-4、H.263、およびH.264など、様々な規格を用いるビデオファイル、またはビデオカメラを含む、任意の供給源とすることができる。
【００４７】
符号器14の要素321から327を含む動き推定モジュール32は、現在のフレームへと移動した、前のフレームの1つまたは複数の領域を予測し、したがって、この領域またはこれらの領域を再度符号化する必要がなくなるようにする。
【００４８】
次いで、動き補償モジュール34は、動き推定モジュール32で検出された、一般に、前フレームである参照フレームから現在のフレームへの上記で予測された領域(複数可)の動きを補償する。こうすることにより、符号器14は、前フレームと現在のフレームの間の差分だけを符号化し、かつ送信することにより圧縮し、かつ帯域幅を節約することが可能になり、それによりインターフレームを生成することができる。
【００４９】
変換モジュール36は、連続するフレームの画素ブロックに対して変換を行う。その変換は、ビデオ符号化規格技術に依存する。H.263およびMPEG-4の場合、それは、連続するフレームの画素ブロックのDCT変換である。H.264の場合、変換は、DCTベースの変換、またはアダマール変換である。変換は、フレーム全体(イントラフレーム)に対して、またはフレーム間(インターフレーム)の差分に対して行うことができる。DCTは、一般に、画素ブロックを「空間周波数係数」(DCT係数)に変換するために使用される。DCTは、マクロブロック(MB)など、画素の2次元ブロックに対して演算する。DCTは、ピクチャを小型化するのに効率的であるため、一般に、元のピクチャを再現するためには、少数のDCT係数で十分である。
【００５０】
変換された係数は、次いで、フィルタ係数モジュール37に供給され、そこで、変換された係数がフィルタ処理される。例えば、フィルタ係数モジュール37は、例えば高周波数情報に対応するいくつかの係数をゼロに設定する。フィルタ係数モジュール37は、小さい目標フレームサイズの場合に、レート制御装置42の性能を改善する。
【００５１】
フィルタ処理され、変換された係数は、次いで、量子化モジュール38に供給され、そこで、量子化される。例えば、量子化モジュール38は、ゼロに近いフィルタ処理されたDCT係数をゼロに設定し、残りの非ゼロのフィルタ処理されたDCT係数を量子化する。
【００５２】
再配列モジュール39は、次いで、ゼロの長い列を作成するために、量子化された係数を特有の順序で配置する。
【００５３】
エントロピー符号化モジュール33は、例えば、ハフマン符号化または任意の他の適切な符号化スキームを用いて、再配列された量子化DCT係数を符号化する。このようにして、エントロピー符号化モジュール33は、符号化されたイントラフレームまたはインターフレームを生成し、出力する。
【００５４】
次いで、ビデオバッファリング検証器(VBV)40が使用されて、復号器18に送信されるフレームが、この復号器の受信バッファのオーバーフローを引き起こさないことを検査する。あるフレームがオーバーフローを引き起こすことのない場合、レート制御装置42は、スイッチ35を介して、そのフレームの送信を可能にする。しかし、フレームがオーバーフローを引き起こすことになる場合、レート制御装置42は、そのフレームの送信を許可しない。
【００５５】
上記の動き推定モジュール32、動き補償モジュール34、変換モジュール36、量子化モジュール38、再配列モジュール39、エントロピー符号化モジュール33、およびビデオバッファリング検証器40は、普通であれば、当業者に知られているものであり、したがって、本開示でこれ以上の説明はしないものとする。
【００５６】
更に、レート制御装置42は、ビデオ符号化におけるビットレートを制御することができる。このレート制御装置42は、許容された最大ビットレートを超えることなく、可能な限り平均ビットレートが満たされることを保証する。このようにすると、遠隔監視、速い動きの映画など、様々なアプリケーションにおける視覚的品質を高めることができる。
【００５７】
本発明によるレート制御装置42、および対応する方法100の非限定的な例示の実施形態を説明する前に、参考文献2で説明された、すでに存在する基本的なバッファベースのレートコントローラを、このような基本的なバッファベースのレートコントローラに基づくレート制御装置42および方法100をよく理解するために説明することとする。
【００５８】
II.基本的なバッファベースのレートコントローラ
基本的なバッファベースのレート制御装置は、ビデオストリーミングアプリケーションで特に有用である。それは、後続するフレームに対して未使用ビットを分配することにより、また一定数のフレームに対してビデオバッファリング検証器40のレベルを最大化することにより、イントラおよびインターフレームを符号化するための目標フレームサイズを計算する。
【００５９】
ビデオストリーミングでは、ビデオパケットは、容量が制限されたチャネルを介して送られる。したがって、ビットレートが制限される。図1の再生装置20が最初に受信したイントラフレームの再生を開始する前に、1秒の遅延が許容可能であると見なされる場合、イントラフレームの目標サイズは、しかし、本明細書の以下で説明される最大ビットレートであるRMAXよりも低くするべきである。
【００６０】
上記の状況では、復号器18は、再生装置20が最初に受信したイントラフレームの再生を開始する前に1秒間待つ。しかし、これは、さらなるフレームを、この1秒の遅延の間に送信できないことを意味していない。BI=RMAXであり、BIはイントラフレームの目標フレームサイズであると仮定する。更に、最大ビットレートRMAXを超えないことは、ビデオバッファリング検証器40が、RMAXを超えないという条件と等価であると仮定する。
【００６１】
・その場合、時間t=0では、サイズがRMAXのフレームがちょうど記憶されたので、図2のビデオバッファリング検証器40はフル（full：満ちた状態）である。
・フレームレートF=10fpsであり、かつRMAX=48000bpsである場合、t=0.1sで、ビデオバッファリング検証器40は、RMAX/F=4800ビットだけ空きができるが、それは、これらのビットが、通信リンクまたはチャネルを介して送信されてしまったからである。したがって、所与の時間t=0.1sで、ビデオバッファリング検証器40をオーバーフローさせることなく、符号化されたフレームを受信するために、4800ビットのスペースが、ビデオバッファリング検証器40中で利用可能になる。
・同様の手法が、後続するフレームに対しても適用される。したがって、イントラフレームに続く各フレームに対して、4800ビットのさらなる量を送信することができる。このように、この手法を用いると、例えば、TMN8または最大ビットレート制御装置を用いて、48000ビットではなく、合計48000+(10-1)(4800)=91200ビットを送信することが可能である。
【００６２】
追加の利用可能なビットが、イントラフレームに続くフレームを符号化するために割り振られるビット数を高めるために使用できるので、イントラフレームに続くフレームの品質を改善することを可能にする。
【００６３】
しかし、前に計算された91200ビットは、1秒間に送信されるのではなく、送信されたイントラフレームを受信するためにアプリケーションにより生じた遅延のため、これらのビットをカバーする時間は1.9秒であることに留意するべきである。すなわち、1秒の遅延と、時間1.1sから1.9sの9フレームとであり、それにより、最大ビットレートRMAXに対応する、(91200ビット/1.9s)=48000ビット/sが得られる。
【００６４】
本開示を通して、ビデオバッファリング検証器40の最大サイズは、最大ビットレートRMAXに相当することになると考えられる。次に、次のイントラフレームが到来する場合を検討する。次のイントラフレームが到来するので、ビデオバッファリング検証器40は、そのスケジュールされた時間にやがて到来するイントラフレームを記憶するための十分なスペースを有するために、徐々に空きを作る必要がある。
【００６５】
イントラフレームに対する目標サイズはBIであり、したがって、サイズBIのフレームを収容できる空きバッファでは十分ではないが、実用的には、イントラフレームに続くフレームに対して、その品質を改善するためにより多くの利用可能なビットを割り振るように、ビデオバッファリング検証器40に空きを作ることが望ましい。したがって、実用的なアプリケーションでは、BI<RMAXである。
【００６６】
したがって、ビデオバッファリング検証器40の空きを作ることを開始する前に、イントラフレームに続くフレームに割り振られるビット数を、これらのフレームの改善された品質を取得するために増加させることができる。
【００６７】
t=0をイントラフレームの到来時間とする。次いで、Nは、イントラフレームに続くフレームの数として定義され、それに対して、イントラフレームの符号化に使用されないビットが分配される。Lは、インターフレームの数として定義され、それに対して、ビデオバッファリング検証器40のバッファレベルが最適化される。t=Lで、0≦N≦Lに対して、ビデオバッファリング検証器40はフルであることに留意するべきである。
【００６８】
概略的に説明すると、このレート制御により使用される戦略は以下のようになる。
【００６９】
すべての時間で、ビデオバッファリング検証器のバッファレベルは、最大ビットレートRMAXを超えることはない。これは、オーバーフローを生成することになる符号化されたフレームが除外されることを意味する。イントラフレームの符号化で未使用のビットは、バッファレベルを最大化するために、かつビデオの全体品質を高めるために、後続するインターフレームの符号化で使用されるが、それは、通常、ビデオの品質は、イントラフレームの後に悪くなるからである。フレーム数Lまで、ビデオバッファリング検証器40は、RMAX/Fの目標サイズでフレームを符号化することにより、フル状態が維持される。ただし、Fはフレームレートである。更に、前のフレームの符号化で計算されているが、使用されていないビットは、後続するフレームに対して再分配される。しかし、目標フレームサイズは、時間におけるフレームインデックスにそれ自体が依存する、目標バッファレベルに依存する特定の値を超えるべきではない。目標バッファレベルは、イントラフレームの後の最初のフレームに対してRMAXであり、次のイントラフレームが来るまでに徐々にゼロへと減少することに留意するべきである。
【００７０】
フレームLの後、ビデオバッファリング検証器40は実質的にフルになるという条件で、イントラフレームの符号化の結果から生じる未使用のビットを、後続するインターフレームに分配するためには、多くの方法が存在する。したがって、2つのイントラフレーム間の期間Tの間、フレームのタイプおよびインデックスごとに、目標フレームサイズBp(f)が、以下により与えられる。
【００７１】
【数１】
2010530673.tif 000003
【００７２】
ただし、BIは、イントラフレームの目標フレームサイズであり、
【数２】
2010530673.tif 000004
は、任意のインターフレームの目標サイズであるが、ビデオバッファリング検証器40がオーバーフローしない、すなわち、バッファレベル≦RMAXであり、かつt=Lでほぼフルになるという条件を有する。
【００７３】
例えば、未使用のビットは、イントラフレームに続くN個のインターフレームの目標フレームサイズBp(t)に対して等しく分配することができる。この場合、時間tにおける各インターフレームに対する目標フレームサイズは、以下により与えられる。
【００７４】
【数３】
2010530673.tif 000005
【００７５】
L=Nのとき、項
【数４】
2010530673.tif 000006
は存在しなくなることに留意するべきである。更に、ビデオバッファリング検証器40が、2つのイントラフレーム間で、それ自体を空にするための十分な時間を有するように、T>F+Lであることが必要である。
【００７６】
フレームごとに、最大のバッファレベルは、次のイントラフレームを記憶するために、ビデオバッファリング検証器40中に十分なスペースを確保するように計算されるべきである。イントラフレームに対しては、最大バッファレベルは、RMaxを超えることができない。したがって、T-1におけるフレームの場合、最大バッファレベルは、RMax-BI+RMax/Fを超えることができず、したがって、次のイントラフレームの開始時には最大バッファレベルは、RMax-BIを超えない。
【００７７】
しかし、実用上の理由で、本明細書の上記で言及されたように、最大バッファレベルは、RMax-BI+RMax/Fではなく、RMax/Fとすべきである。これは、実際には、符号化されたイントラフレームの実際のサイズを正確に予測することが難しいためである。現在、既存のアルゴリズムは、十分なロバスト性を有していない。したがって、より多くのビットが利用可能で、かつイントラフレームに続くフレームを送信するために使用できるように、ビデオバッファリング検証器40をフレームT-1で空にすることが安全である。
【００７８】
したがって、ビデオバッファリング検証器の最大バッファレベルは、以下のように計算される。
【００７９】
【数５】
2010530673.tif 000007
【００８０】
最大バッファレベルに加えて、ビデオバッファリング検証器40が、異なるサイズのフレームを受け取ると、インターフレームごとにバッファレベルは更新され、かつ計算される。送信の開始時には、ビデオバッファリング検証器40は空である。次いで、順次、計算されたサイズBIおよびBp(t)のフレームが挿入され、ビデオバッファリング検証器40に記憶される。したがって、ビデオバッファリング検証器40のバッファレベルは、以下により与えられる。
【００８１】
【数６】
2010530673.tif 000008
【００８２】
したがって、フレームを符号化するためのマージンΔ(t)は、以下のように与えられ得る。
【００８３】
【数７】
2010530673.tif 000009
【００８４】
概して、符号器14がフレームを符号化するとき、符号化されたフレームサイズは、目標フレームサイズとはわずかに異なる。目標フレームサイズが、符号化されたフレームサイズよりも大きい場合、未使用のビットは、符号化のために、次のフレームに対して再分配される。最大バッファレベルを超えない限り、次のフレームに対して未使用ビットを分配するために、様々な方法を使用することができる。次のフレームを符号化するために利用できる可能な追加のビット数E(t)は、以下のように定義される。
【００８５】
E(t)=BufferLevel(t)-BufferLevelactual(t)=
BufferLevelMAX(t)-BufferLevelactual(t)-Δ(t)
【００８６】
ただし、BufferLevelactual(t)は、フレームを実際に符号化した後のバッファレベルである。
【００８７】
一般に、最大バッファレベルを超過しないことを保証するために、少量の追加の未使用ビットが使用されることに留意するべきである。この少量の追加のビットを指定し、決定することは、当業者の知識に含まれるものであると考えられる。
【００８８】
しかし、符号化されたフレームが、目標フレームサイズよりも大きくなってしまう可能性がある。この場合、E(t)は負に、または特定の所与の閾値より低くなる。したがって、妥当性検査プロセスが、符号化されたフレームに対して実施される。符号化されたフレームが目標フレームサイズを超えていた場合、この符号化されたフレームは除外される。
【００８９】
上記で説明された基本的なバッファベースのレート制御は、ビデオ監視および個人用ビデオクリップなどのアプリケーションで良好な性能を示す。しかし、それは、例えば、ビデオの予告編でしばしば存在する大量の動きおよびシーン変化を有するシーケンスで、いくつかの問題を提示する。したがって、後者のアプリケーションに対しては、図2の装置42および対応する方法など、改善されたバッファベースのレート制御装置および方法が必要である。装置42は、上記で説明された基本的なバッファベースのレート制御装置上に構築される。したがって、装置42の新しい側面だけを、以下の説明で論ずることとする。
【００９０】
III.バッファベースのレート制御装置42
本発明の非限定的な実施形態による装置42は、指定された最大ビットレートを超えることなく指定された平均ビットレートを満たすように、フレームの複雑さと、インターフレームと次のイントラフレームの間の距離と、ビデオバッファリング検証器の現在のバッファレベルと、ビデオバッファリング検証器の計算された目標バッファレベルとを利用する改善されたバッファベースのレート制御法を実施する。より具体的には、装置42は、H.263、H.264、MPEG-4、およびその他などのビデオ符号化規格におけるビットレートを制御するための方法100を実施する。装置42および方法100が、本明細書の以下で説明される。
【００９１】
図3で示す装置42は、フレームの複雑さを測定するためのフレームの複雑さ検出器44、および符号化すべきイントラフレームのQP(量子化パラメータ)を計算するためのQP計算器46を含む。更に、装置42は、ビデオバッファリング検証器40の目標バッファレベルを計算するためのバッファレベル計算器47を含む。装置42は、フレームを符号化するために目標フレームサイズを計算するための目標フレームサイズ計算器48を更に含む。目標フレームサイズは、フレームの複雑さ検出器44からのフレームの複雑さ測定値と、計算器46からのビデオバッファリング検証器40の目標バッファレベルとの関係で計算される。装置42はまた、計算器48からの計算された目標フレームサイズが有効であることを判定し、かつ保証するための妥当性検査器50を含む。
【００９２】
本明細書の上記で説明されたように、基本的なバッファベースのレートコントローラは、ビデオバッファリング検証器が、最大ビットレートを決して超えないことを保証するために、追加のビットを使用する。本明細書の以下で説明されるように、装置42では、ビデオバッファリング検証器40のアンダーフローまたはオーバーフローを回避するために、計算された目標フレームサイズに対して適用されるスケーリング因子により、この条件が満足される。
【００９３】
IV.バッファベースのレート制御法100
次に、図4を参照すると、装置42を用いるバッファベースのレート制御のための、本発明の非限定的な例示の実施形態による方法100が説明される。
【００９４】
方法100を説明する前に、いくつかの表記法をまず導入する。
【００９５】
・W(t)は、時間tにおけるビデオバッファリング検証器40のバッファレベルに相当し、また基本的なバッファベースのコントローラの場合のBufferLevelactual(t)に相当する。
・Wmaxは、ビデオバッファリング検証器40の最大バッファサイズであり、また基本的なバッファベースのレートコントローラの場合のBufferLevelMAX(t)に相当する。
・Whighは、高レベルであると考えられる、すなわち、ビデオバッファリング検証器40がオーバーフローする危険性があると考えられるビデオバッファリング検証器40のバッファレベルである。
・Wlowは、低レベルであると考えられる、すなわち、ビデオバッファリング検証器40がアンダーフローする危険性があると考えられるビデオバッファリング検証器40のバッファレベルである。
・WAtLastIntraは、最後のイントラフレームを符号化した後のビデオバッファリング検証器40のバッファレベルである。
・Wtarget(t)は、時間tにおけるビデオバッファリング検証器40の目標バッファレベルであり、それは、基本的なバッファベースのレートコントローラの場合のBufferLevel(t)に相当する。
・RMAXは、指定された最大ビットレートである。
・RAVGは、指定された平均ビットレートである。
・B(t)は、目標フレームサイズを表しており、フレームがイントラフレームである場合はB(t)=BI(t)であり、フレームがインターフレームである場合はB(t)=BP(t)である。
・Tは、2つのイントラフレーム間の期間である。
【００９６】
オペレーション102
方法100のオペレーション102で、最大ビットレートRMAXおよび平均ビットレートRAVGが指定される。これらの2つの値を決定することは、当業者の知識に含まれるものと考えられる。
【００９７】
オペレーション104
オペレーション104で、ビデオバッファリング検証器40の最大バッファサイズWmaxが設定される。例えば、Wmaxは、最大ビットレートRMAXと等しく、すなわち、Wmax=RMAXに設定される。Wmaxが設定された後、次いで、Whighを、例えば、Whigh=0.8Wmaxなどと決定することができる。更に、Wlowを、Wlow=0.05 Wmaxなどと決定することができる。当然であるが、ビデオバッファリング検証器40のバッファレベルの上限および下限をそれぞれ定義するWhighおよびWlowに対する他の値を、ビデオバッファリング検証器40のオーバーフローおよびアンダーフローを、それぞれ、回避するように決めることもできる。
【００９８】
バッファレベル計算器47(図3)は、時間tにおける目標バッファレベルWtarget(t)を計算する。この計算を実行するために、いくつかの戦略を使用することができる。例えば、Wtarget(t)は、イントラフレームを符号化した後に得られた最初のバッファレベルで開始することができ、次いで、Wtarget(t)は、次のイントラフレームに先行するフレームで、すなわち、時間t=T-1におけるフレームでRAVG/Fの目標バッファレベルに達するまで直線的に減少する。このような場合、目標バッファレベルWtarget(t)は次式で与えられる。
【００９９】
【数８】
2010530673.tif 000010
【０１００】
代替的には、目標バッファレベルWtarget(t)はまた、以下の式により計算することもできる。
【０１０１】
【数９】
2010530673.tif 000011
【０１０２】
式(1)と(2)の両方、および結果的に他の関係であっても、次のイントラフレームが開始する前に空のビデオバッファリング検証器40を生ずる限り、使用することができる。
【０１０３】
オペレーション106
オペレーション106では、目標フレームサイズ計算器48が、符号化すべきフレームごとに目標フレームサイズを計算する。フレームごとに目標フレームサイズを計算するために、まずフレームのタイプが決定される。フレームがイントラフレームである場合、イントラフレームに割り当てられる目標フレームサイズを計算するために、方法200を使用することになる。フレームがインターフレームである場合、インターフレームに関する目標フレームサイズを計算するために、方法250が使用される。
【０１０４】
オペレーション108
目標フレームサイズが計算された後、妥当性検査器50(図3)は、ビデオバッファリング検証器40のオーバーフローおよび/またはアンダーフローを回避するために、オペレーション108で、計算された目標フレームサイズの妥当性を検査する。
【０１０５】
オペレーション110
大量のフレームが除外される可能性のあることが理解され得る。除外されるフレームの数を低減するために、フィルタ係数モジュール37(図2)は、オペレーション110で、変換された係数(通常、DCT係数)に対して、フィルタ処理を適用する。
【０１０６】
オペレーション112
妥当性検査プロセス112は、実際に符号化されたフレームの妥当性を検査する。実際に符号化されたフレームサイズが、ビデオバッファ検証器40のオーバーフローを引き起こす場合、すなわち、符号化されたフレームサイズが、ビデオバッファリング検証器40のオーバーフローを回避するために許容される最大値を超える場合、その符号化されたフレームは除外される。符号器14の状態変数は、次いで、除外されたフレームの符号化の前に設定された値に復元される。オーバーフローは、VBV40の最大サイズを超えることなく、フレームをVBV40に追加できない場合に、すなわち、バッファレベルとフレームサイズの合計が、VBV40の最大のサイズ制限よりも大きい場合に生ずる。
【０１０７】
図4のバッファベースのレート制御法100のオペレーション106、108、および110を次に、より詳細に説明するものとする。
【０１０８】
オペレーション106(方法200)
符号化すべきフレームがイントラフレームである場合、イントラフレームの目標フレームサイズを計算するために、図5の方法200が使用される。
【０１０９】
次に、図5を参照して方法200を説明する。
【０１１０】
オペレーション202(図5)
イントラフレームが、ビデオフレームのシーケンスの最初のイントラフレームに相当する場合、目標フレームサイズ計算器48は、オペレーション202で、以下の関係を用いてイントラフレーム目標サイズBI(t)を計算する。
【０１１１】
BI(t)=ξWmax                       (3)
【０１１２】
ただし、例えば、ξ=0.6であり、Wmaxは、方法100のオペレーション102で指定されたものである。
【０１１３】
スケーリング項ξは、場合によっては、他の値を取りうることに留意するべきである。
【０１１４】
ビデオシーケンスの他のイントラフレームの場合には、目標フレームサイズ計算器は、QPavg(t)がある時間期間にわたるQPの平均である場合、QP≦QPavg(t)を満足するBIの最小値を決定することにより、イントラフレーム目標サイズBI(t)を計算する。
【０１１５】
オペレーション204
QP(量子化パラメータ)の計算および予測は当業者にはすでに知られている。QPを計算する2つのモードを実施することができる。第1のモードは、フレーム全体に対して固定されるQPを計算することからなる。第2のモードは、所与の目標フレームサイズに、より近くかつ正確に従うように、フレームの各マクロブロックに関するQPを計算し、更新することからなる。
【０１１６】
固定されたQPを使用することは、フレーム間で、より一様な品質を達成するが、正確さに劣るフレームサイズを生ずることに留意するべきである。
【０１１７】
オペレーション204では、QP計算器46(図3)が、以下の関係を用いてイントラフレームのQP値を計算する。
【０１１８】
【数１０】
2010530673.tif 000012
【０１１９】
ただし、
【数１１】
2010530673.tif 000013
であり、F(u,v)は、サイズN×Mの画像のすべての画素ブロックの8×8のDCT係数を含み、またBIは、（ビットで表される）所与のイントラフレーム目標サイズである。
【０１２０】
項MAVDCTは、DCT係数の平均絶対値を表し、画像の複雑さの尺度を示す。項ABS()は、絶対値関数である。
【０１２１】
オペレーション206
オペレーション206で、目標フレームサイズ計算器48(図3)は、以下の関係を用いて、イントラフレーム目標サイズを計算する。
【０１２２】
BI(t)=“QP<=QPavg(t)”となる最小のBI            (5)
【０１２３】
QP≦QPavg(t)である条件を満足するイントラフレーム目標サイズBIを計算するために、反復法を使用できることに留意するべきである。より具体的には、2分法を繰り返して使用することができる。
【０１２４】
オペレーション106(方法250)
フレームがインターフレームである場合、図4の方法100の方法250が、インターフレームの目標フレームサイズを計算するために使用される。
【０１２５】
次に、図6を参照して、インターフレーム目標サイズを計算するための方法250を説明する。
【０１２６】
オペレーション252
オペレーション252で、フレームの複雑さ検出器44は、様々なメトリックを用いて、フレームの複雑さを評価する。
【０１２７】
フレームの複雑さを評価する場合、平均絶対偏差(MAD)、イントラフレームに対する平均絶対偏差(MADI)、およびアクティビティに対する平均絶対偏差(MADA)など、様々なメトリックを測定し、計算することができる。
【０１２８】
より具体的には、時間tにおけるM×Nのサイズもしくは解像度の画像に対して、MADは、以下のように定義される。
【０１２９】
【数１２】
2010530673.tif 000014
【０１３０】
ただし、Y()は、元の画像の輝度成分であり、U()およびV()は、元の画像のクロミナンス成分であり、
【数１３】
2010530673.tif 000015
は、復号器18(図1)における再構成された解像度M×Nの前画像の輝度であり、
【数１４】
2010530673.tif 000016
および
【数１５】
2010530673.tif 000017
は、復号器18(図1)における再構成された解像度M'×N'の前画像のクロミナンス成分であり、また(mx,my)は、画像の座標xおよびyに沿った輝度に関する最適な動きベクトルである。
【０１３１】
符号化すべき現在のフレームと、再構成された前フレームとの間の不一致が大きければ大きいほど、一定レベルの品質に達するために、現在のフレームを符号化するのに必要なビットが多くなることを理解するべきである。したがって、MADの高い値を有するフレームの場合、符号化するために、これらのフレームにより多くのビットを割り当てるべきである。
【０１３２】
MADAメトリックが使用される場合、時間tにおける解像度M×Nの画像に対するMADAは、以下のように定義される。
【０１３３】
【数１６】
2010530673.tif 000018
【０１３４】
更に、フレームの複雑さ検出器44は、イントラフレームに対して複雑さの尺度を計算することができる。この場合、MADIが使用され、また式(6)および(7)で使用された再構成画像は、イントラフレームの符号化中に使用されないので、ゼロに設定される。したがって、フレームの複雑さ検出器44は、以下のようにMADIを計算することができる。
【０１３５】
【数１７】
2010530673.tif 000019
【０１３６】
オペレーション254
オペレーション254で、他の統計量を計算することができる。これらの他の統計量は、ある時間期間にわたりQP計算器46(図3)により計算された平均のQPであるQPavg(t)と、ある時間期間にわたりフレームの複雑さモジュール44(図3)により計算された平均のMADであるMADavg(t)とを含むことができる。
【０１３７】
オペレーション256
オペレーション256で、目標フレームサイズ計算器48(図3)は、以下の式を用いて、インターフレーム目標サイズBp(t)を計算する。
【０１３８】
【数１８】
2010530673.tif 000020
【０１３９】
ただし、
【０１４０】
【数１９】
2010530673.tif 000021
【０１４１】
および
【０１４２】
【数２０】
2010530673.tif 000022
【０１４３】
ただし、γは、例えば4などの一定値であるが、他の値を使用することもでき、またWtarget(t)は、方法100(図4)のオペレーション104で計算される。
【０１４４】
式(9)は、他の変数に関するインターフレーム目標サイズの動的性質を示している。例えば、インターフレーム目標サイズBp(t)は、大まかにいって、
【数２１】
2010530673.tif 000023
に比例していることに留意するべきである。MAD(t)の値は通常大きいので、式(9)の分母に1を加えることは、式中で顕著な数値的影響を有しない。更に、1を加えることにより、ゼロによる除算が生ずるのを回避することができる。ビットレートが非常に高いいくつかの特殊な場合、精度の問題を回避するためには、1より小さい小数値がより適切である。
【０１４５】
更に、式(9)における項
【数２２】
2010530673.tif 000024
は、（大きさにおける）MAD(t)/MADavg(t-1)の比によって与えられるゲインを制限するために、γ=4のとき4α(t)で飽和する。この方法では、ゲイン制限は、ビデオバッファリング検証器40のバッファレベルが増加するにつれて低下する。例えば、ビデオバッファリング検証器40が空である場合、その時間におけるインターフレーム目標サイズBp(t)は、平均ビットレートの4倍に制限され、すなわち、
【数２３】
2010530673.tif 000025
であり、Fはフレームレートである。しかし、W(t)≧Whighである場合、インターフレーム目標サイズBp(t)は、この場合、α(t)=0であるのでゼロに設定され、ビデオバッファリング検証器40のオーバーフローを回避することができる。
【０１４６】
大きなWhighを有することは、しばしば、平均PSNR(ピーク信号対雑音比)を改善することができるが、符号化されたフレームを欠落させる危険性が高くなることに留意するべきである。
【０１４７】
更に、式(9)における因子β(t)は、W(t)>Wtarget(t)である場合、インターフレーム目標サイズBp(t)を低減することができる。バッファ目標レベルWtarget(t)と比較してバッファレベルW(t)が大きくなると、インターフレーム目標サイズBp(t)に対して因子β(t)により導かれる低減は大きくなる。更に、現在のフレームが、到来するイントラフレームに近づくにつれて、すなわち、時間tがTに近づくとき、低減因子β(t)を、より積極的に働かせることもできる。この方法では、W(t)およびWtarget(t)の間の大きな偏差は、次のイントラフレームの到来が間近になったとき、より効率的に回避される。
【０１４８】
更に、低減因子β(t)は、次のイントラフレームを符号化する前に、ビデオバッファリング検証器40を空にさせることができるので、例えば、式(1)および(2)を用いて、最初のバッファ目標レベルWtarget(t)の計算に使用したいくつかの戦略を使用することができる。
【０１４９】
目標フレームサイズ計算器48(図3)はまた、イントラフレームに対する平均絶対偏差(MADI)、およびアクティビティのための平均絶対偏差(MADA)を用いて、インターフレーム目標サイズBp(t)を計算することができる。
【０１５０】
オペレーション108
図4に戻って参照すると、目標フレームサイズB(t)が、オペレーション106で計算された後、妥当性検査器50(図3)は、考慮すべき一定のマージン内に含まれるように、その計算された目標フレームサイズに対して妥当性検査プロセスを適用する。
【０１５１】
まず、妥当性検査プロセスでは、妥当性検査器50は、オーバーフローを検査する。オーバーフローを回避するためには、以下の条件を満足すべきである。
【０１５２】
【数２４】
2010530673.tif 000026
【０１５３】
式(12)から、計算された目標フレームサイズが超えるべきではない上限の、すなわち最大の閾値Bmax(t)を次のように計算することができる。
【０１５４】
【数２５】
2010530673.tif 000027
【０１５５】
次いで、妥当性検査器50(図3)は、アンダーフローを検査する。アンダーフローを回避するために、以下の条件が満たされるべきである。
【０１５６】
【数２６】
2010530673.tif 000028
【０１５７】
次いで、式(14)から、計算された目標フレームサイズに対して、下側の、すなわち最小の閾値Bmin(t)を設定することができる。下側の閾値Bmin(t)は以下により与えられる。
【０１５８】
【数２７】
2010530673.tif 000029
【０１５９】
符号化されたフレームのサイズは、必ずしも、計算された目標フレームサイズのサイズに一致しないことに留意するべきである。したがって、現在のフレームの実際の符号化の後、妥当性検査のさらなる演算が行われる。実際に、符号化されたフレームサイズが、ビデオバッファリング検証器40のオーバーフローを回避するために許容される最大値よりも大きい場合、符号化されたフレームは除外され、かつ除外されたフレームを符号化する前の値に対応する符号器14の状態変数が復元される。状態変数の復元は、符号器14を復号器18と再同期させる。符号器14の状態変数は、フレームを符号化する前に記憶される。
【０１６０】
オペレーション110
ビデオシーケンスが、大量の動きを含む場合、多くのフレームが、符号器14で除外され、またはスキップされることが分かっている。これは、小さな目標フレームサイズが計算されたとき、概して、それが容易に満たされないことによる。
【０１６１】
したがって、図2のフィルタ係数モジュール37は、小さな目標フレームサイズに対して、変換された係数(通常、DCT)の何らかの高周波数を除外し、かつフィルタ処理するために使用される。より具体的には、除外されたフレームの量が、例えば、最後の1秒など、特定の時間期間内に一定の閾値に達した場合、フィルタ係数モジュール37が適用される。変換された係数のフィルタ処理が活性化されると、それは、通常、特定の時間にわたって、例えば、4秒間、すなわち、F=10fpsの場合40フレームの間、有効であり続ける。DCT係数のフィルタ処理は、除外されたフレームの量が、再度所与の閾値に達したとき、再度活性化されることになる。したがって、変換された係数のフィルタ処理は、適応型の方法である。
【０１６２】
時間期間当たりの除外されるフレーム量に対する所与の閾値を選択することは、当業者の範囲および知識に含まれることに留意するべきである。
【０１６３】
より具体的には、オペレーション110で、フィルタ係数モジュール37(図2)は、まず、DCT係数の場合、max_DCT_coeffとして示される最大係数フィルタ処理インデックスを識別する。この最大DCTフィルタ処理インデックスmax_DCT_coeffは、例えば、表中に記憶されたインデックスから選択される。この最大DCTフィルタ処理インデックスmax_DCT_coeffは、目標フレームサイズB(t)に基づくことができる。例えば、目標フレームサイズB(t)が小さくなればなるほど、最大DCTフィルタ処理インデックスmax_DCT_coeffは小さくなる。以下の表は、目標フレームサイズB(t)に応じた最大DCTフィルタ処理インデックスmax_DCT_coeffを示す。
【０１６４】
【表１】
2010530673.tif 000030
【０１６５】
次いで、フィルタ係数モジュール37(図2)は、以下のように、符号化されたフレームに対してDCTフィルタ処理を実施する。
【０１６６】
DCTfiltering[i][j]=DCT[i][j]、i≦max_DCT_coeffかつj≦max_DCT_coeffである場合(16)
またDCTfiltering[i][j]=0、その他の場合                                      (17)
【０１６７】
式(16)および(17)を用いることにより、DCTフィルタ処理は適応型になる。実際に、大部分のビデオシーケンスは、DCTフィルタ処理を必要とせず、DCTフィルタ処理がこれらのビデオシーケンスに対して適用された場合は、その品質は劣化することになろう。しかし、DCTフィルタ処理を必要とするビデオシーケンスに、DCTフィルタ処理が適用された場合、このようなビデオシーケンスの品質において、大きな性能改善が観察されるはずである。例えば、必要な時間と場所でDCTフィルタ処理が適用された場合、除外されるフレームの量は、50%から6%に減少することが観察されている。
【０１６８】
V.性能結果
バッファベースのレート制御装置42および方法100の性能を評価するために、いくつかのビデオテストシーケンスが、ビデオ符号化の品質、および保持される(除外されない)フレームのパーセンテージをテストするために使用された。最初の12個のビデオシーケンスは、よく知られたビデオシーケンスであり、ビデオ符号化を公開するときに広く使用される。これらのビデオテストシーケンスは、比較のために、他のレート制御装置にも同様に適用された。他のレート制御装置は、TMN8規格、および参考文献2で開示された「最大ビットレート」ベースのレートコントローラを含む。簡単化のために、条件RAVG=RMAXが考慮された。通常、RMAX>RAVGを有することは、平均PSNRに大きく影響することはないが、欠落したフレームを有する可能性を低下させる。
【０１６９】
更に、以下の用語がテスト結果において使用され、それを以下のように定義する。
【０１７０】
・PSNRavg:シーケンスの平均ピーク信号対雑音比。フレームが除外された場合、そのフレームのPSNRは、復号器18のメモリに含まれた、前に再構成されたフレームを用いて計算される。
・PSNRkept:シーケンス中に保持されたフレーム(除外したフレームは考慮しない)の平均PSNR。
・PSNRmin:シーケンス中で最も低いPSNRを有するフレームのPSNR。
・StdDev:平均に対する各フレームのPSNR値の標準偏差。これは、品質の一貫性の尺度である(StdDevのより小さな値は、PSNRavgからのより小さな変動を意味する)。
・Kbps:1秒当たりのキロビットで表した実際に符号化されたシーケンスの平均ビットレート。
・Total frms:保持されたフレームの合計部分(すなわち、1-percent_dropped(1から、除外されたパーセンテージを引き算する))、「1」は、すべてのフレームが維持されたことを意味し、0.6は、40%のフレームが除外されたことを意味することになる。
【０１７１】
テストケース1
第1のテストケースでは、RMAX=44kbps、F=10fpsおよびT=8sである。
【０１７２】
【表２】
2010530673.tif 000031
【０１７３】
【表３】
2010530673.tif 000032
【０１７４】
【表４】
2010530673.tif 000033
【０１７５】
テストケース1の結果の分析
3タイプのレートコントローラに対応する上記の3つの表における結果を比較することにより、本発明の非限定的な例示の実施形態によるバッファベースのレート制御装置42および方法100は、ビデオ品質における重要な改善を生じていることが認められる。実際に、バッファベースのレート制御装置42および方法100により得られた平均PSNRは、36.26dBであり、それは、それぞれ、35.75dBおよび34.67dBであるTMN8および「最大ビットレート」コントローラの平均PSNRよりも高い。
【０１７６】
ビデオシーケンス中で最悪のフレームの品質に関しては、本発明の非限定的な例示の実施形態によるバッファベースのレート制御装置42および方法100からの最悪のフレームは、「最大ビットレート」ベースのレートコントローラからの結果よりも、なお良好である(30.1dB対27.8dB)ことが分かる。しかし、バッファベースのレート制御装置42および方法100の性能は、最悪のフレームの点で、TMN8規格レートコントローラの結果(30.3dBが得られる)よりも低い。これは、TMN8規格レートコントローラが、満たすべき厳格なビットレート制約を有していないことによる。それは、例えば、最大ビットレートを満たしていない。
【０１７７】
標準偏差(StdDev)の点では、本発明の非限定的な例示の実施形態によるバッファベースのレート制御装置42および方法100は、他の2つのものと比較して、最小の偏差を生じており、したがって、ビデオ品質における良好な一貫性を示している。
【０１７８】
最後に、除外されない残りのフレームのパーセンテージに関しては、装置42および方法100は、TMN8規格レートコントローラからの93.3%、および「最大ビットレート」ベースのレートコントローラからの93.4%と比較して、99.7%の最高のパーセンテージを示している。これは、ビデオシーケンス中の大部分のフレームを維持することに関して、装置42および方法100の高い性能を示す結果である。この特性は、シーケンス20(「Balancoire」)で最もよく示されており、それは、残りのフレームについて以下のパーセンテージを生ずる。
【０１７９】
・TMN8:                                         46.9%
・「最大ビットレート」:                          46.1%
・フレームアクティビティを用いたバッファベース: 95.7%
【０１８０】
テストケース2
第2のテストケースでは、シーケンスは、入力および出力に対して、RMAX=44kbps、F=30fpsで、また2つのイントラフレームの間の期間T=8sで符号化された。
【０１８１】
その結果を以下の表で示す。
【０１８２】
【表５】
2010530673.tif 000034
【０１８３】
【表６】
2010530673.tif 000035
【０１８４】
【表７】
2010530673.tif 000036
【０１８５】
テストケース2の結果の分析
3つのレートコントローラに対するPSNRを調べると、本発明の非限定的な例示の実施形態によるバッファベースのレート制御装置42および方法100の性能は、TMN8および「最大ビットレート」レートコントローラよりも高いことが分かる。
【０１８６】
・TMN8:                                         30.25dB
・「最大ビットレート」:                          0.37dB
・フレームアクティビティを用いたバッファベース: 31.52dB
【０１８７】
残りの(除外されない)フレームのパーセンテージに関して、結果は次のようになる。
【０１８８】
・TMN8:                                         83.5%
・「最大ビットレート」:                          84.3%
・フレームアクティビティを用いたバッファベース: 96.2%
【０１８９】
これらの結果は、大部分のフレームを維持する能力の点で、他の2つのレートコントローラと比較して、本発明の非限定的な例示の実施形態によるバッファベースのレート制御装置42および方法100の高い性能を再度示している。これらの結果は、シーケンス20の例で最もよく示されており、その場合、残りのフレームは、次のように得られる。
【０１９０】
・TMN8:                                         10.9%
・「最大ビットレート」:                          18.8%
・フレームアクティビティを用いたバッファベース: 72.7%
【０１９１】
ビットレートが低い場合は、よい品質の少数のフレームを有することと、低品質の多数のフレームを有することとの間で妥協を設定すべきであることに留意するべきである。この妥協は、本発明の非限定的な例示の実施形態によるバッファベースのレート制御装置42および方法100において実施され、調整されることができる。
【０１９２】
テストケース3
第3のケースでは、ビデオシーケンスは、RMAX=96kbpsのビットレート、F=10fps(符号器14の入力および出力)で、およびT=8s(2つのイントラフレーム間)で符号化された。テスト結果は、以下のように与えられる。
【０１９３】
【表８】
2010530673.tif 000037
【０１９４】
【表９】
2010530673.tif 000038
【０１９５】
【表１０】
2010530673.tif 000039
【０１９６】
テストケース3の結果の分析
全体のPSNRの点では、3つのタイプのレートコントローラは、良好に動作していることが分かるが、本発明の非限定的な例示の実施形態によるバッファベースのレート制御装置42および方法100で、多少改善されていることが認められる。実際に、その結果は以下のようになる。
【０１９７】
・TMN8:                                         39.39dB
・「最大ビットレート」:                          38.98dB
・フレームアクティビティを用いたバッファベース: 39.68dB
【０１９８】
残りのフレーム(すなわち、除外されていないフレーム)のパーセンテージに関しては、フレームアクティビティを用いたバッファベースのレートコントローラが、改善された性能を示すことが分かる。
【０１９９】
・TMN8:                                         98.7%
・「最大ビットレート」:                          98.0%
・フレームアクティビティを用いたバッファベース: 99.9%
【０２００】
テスト結果から、本発明の非限定的な例示の実施形態によるバッファベースのレート制御装置42および方法100は、他の2つのレートコントローラに対して改善を示していることが明確に分かる。
【０２０１】
VI.ソフトウェア構造
本発明の非限定的な例示の実施形態によるバッファベースのレート制御装置42および方法100は、コンピュータの記憶媒体中に配置されたコンピュータプログラムで実施されている。
【０２０２】
符号器14は、レート制御オペレーションをモジュラー化するために変更されており、それにより、レート制御の実施およびテストのための新しいフレームワークが作成される。
【０２０３】
より具体的には、レート制御フレームワークに対して複数の機能が追加された。例えば、製品開発およびデバッグのために以下の機能が使用された。
【０２０４】
・元のフレームと符号化されたフレームの間のPSNRの計算“1)フレームがスキップされた場合、最後に再構成された画像が計算で使用され、そして2)再構成された画像に対するファイルが、YUV(輝度とクロミナンスを有する色空間)で生成される。”  、及び
・QP、PSNR、MADなどの統計量の計算、およびそのファイルへの書込み。
【０２０５】
更に、本発明の非限定的な例示の実施形態によるバッファベースのレート制御装置42および方法100は、シーンカットを検出することができる。そのために、動き推定の計算は、フレームタイプの決定前に実施される。シーンカットの検出は、MADを、固定された閾値と比較することにより、または平均MAD(適応型閾値)と比較することにより行うことができる。MADが、固定された閾値または適応型閾値を超える場合、シーンカットが検出されて、フレームはイントラフレームとして符号化される。
【０２０６】
更に、イントラフレーム目標サイズの計算に対しては、2つの選択肢が可能である。すなわち、1)フレーム全体の持続期間に対して一定のQPを決定すること、または2)MB列ごとに変化しうるQPを決定し、かつ更新することである。フレーム全体を通して一定であるQPは、品質の一貫性を、そのフレーム全体を通じて維持することを助ける。
【０２０７】
QPや符号化されたフレームサイズなどに関する多くの統計量を収集することができ、次いで、それらを、さらなる改善または処理のために分析することができる。
【０２０８】
本明細書の上記で言及されたように、フレームの複雑さメトリックMADおよびMADAを、レート制御装置42および方法100で使用することができる。デフォルトで、コンピュータプログラムはMADを使用するが、それは、MADAと比較してより少ない計算になるからである。しかし、必要に応じて、MADAを使用することも可能である。そのようにするためには、コンパイルする前に、コンピュータプログラム中でMADAを定義することで十分である。
【０２０９】
更に、GOB(Group Of Blocks)をサポートする機能が追加されている。
【０２１０】
1秒当たりのフレーム数が1未満である場合は、驚くべき結果を最初に生ずる可能性のあることに留意するべきである。実際に、平均ビットレートRAVGに等しい最大ビットレートRMAXを有することは、RMAXよりもはるかに少ないビットレートを生ずることになる。例えば、F=0.1fpsであり、かつ最大バッファサイズがRMAXである場合、最大のフレームサイズがRMAXとなりうる。10秒ごとに1フレームが送信されるだけなので、有効ビットレートは、ほぼ0.1RMAXとなる。より高いビットレートを望む場合には、最大ビットレートをより高いビットレートに設定すべきである。
【０２１１】
本発明の非限定的な例示の実施形態によるバッファベースのレート制御装置42および方法100は、コンピュータプログラム中に実装されているので、プログラムの速度は、最適化により改善できることが分かる。多くの統計量を、フレームの複雑さを利用する実装されたバッファベースのレート制御装置中で計算する必要があるが、プログラムの様々なモジュール中で実施される最適化により、バッファベースのレート制御法100の速度を速くすることが可能になる。更に、速度に関して何らかのさらなる改良が必要である場合、特定の計算プラットフォームに対して、計算用にIntel(登録商標)のIPP(Integrated Performance Primitives)の使用を検討することもできる。
【０２１２】
本発明を、非限定的な例示の実施形態を用いて前述の明細書中で説明してきたが、この例示の実施形態は、本発明の趣旨および本質から逸脱することなく、添付の請求項の範囲内で、自由に変更することができる。
【符号の説明】
【０２１３】
10    ビデオ通信システム
12    ビデオソース
14    ビデオ符号器
16    ネットワーク
18    復号器
20    ビデオ再生装置
32    動き推定モジュール
321    プロセス、要素
322    プロセス、要素
323    プロセス、要素
324    プロセス、要素
325    プロセス、要素
326    プロセス、要素
327    プロセス、要素
33    エントロピー符号化モジュール
34    動き補償モジュール
35    スイッチ
36    変換モジュール
37    係数フィルタ処理モジュール、フィルタ係数モジュール
38    量子化モジュール
39    再配列モジュール
40    ビデオバッファリング検証器、ビデオバッファ検証器
42    レート制御装置
44    フレームの複雑さ検出器、フレームの複雑さモジュール
46    QP計算器
47    バッファレベル計算器
48    目標フレームサイズ計算器
50    妥当性検査器
【図１】
2010530673.tif 000040
【図２】
2010530673.tif 000041
【図３】
2010530673.tif 000042
【図４】
2010530673.tif 000043
【図５】
2010530673.tif 000044
【図６】
2010530673.tif 000045
【手続補正書】
【提出日】平成22年2月19日(2010.2.19)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
一連の符号化されたフレームを含み、インターフレームがイントラフレームにより分離された、画像のシーケンスのビデオ符号化におけるビットレートを制御する方法であって、前記方法が、
(a)画像の前記シーケンスにおけるフレームの複雑さを測定するステップと、
(b)各インターフレームに対して、
(i)前記インターフレームと次のイントラフレームの間の距離との関係で、ビデオバッファリング装置の目標バッファレベルを決定するステップと、
(ii)前記インターフレームと前記次のイントラフレームの間の前記距離、前記測定されたフレームの複雑さ、前記ビデオバッファリング装置の現在のバッファレベル、および前記ビデオバッファリング装置の前記計算された目標バッファレベルとの関係で、目標フレームサイズを決定するステップと、
(c)前記インターフレームの前記計算された目標フレームサイズを用いて画像の前記シーケンスのビデオ符号化におけるビットレートを制御するステップと
を含む方法。
【請求項２】
(d)前記ステップ(c)が、前記ビデオバッファリング装置の最大のサイズ制限を超えることなく平均ビットレートを満たすように、前記インターフレームの前記目標フレームサイズを使用するステップを含むか、あるいは
(e)前記方法が、前記ビデオバッファリング装置の最大のサイズ制限との関係で、前記イントラフレームの目標フレームサイズを決定するステップを更に含むか、あるいは
(f)前記ステップ(a)が、現在の画像と画像の前記シーケンス中で前に再構成された画像との間の差分を表すメトリックを決定するステップを含んでいる、前記インターフレームのフレームの複雑さを測定するステップを含むか、あるいは
(g)前記ステップ(a)が、現在の画像と画像の前記シーケンス中で前に再構成された画像との間の差分を表すメトリックを決定するステップを含んでいる、前記イントラフレームのフレームの複雑さを測定するステップを含む、請求項1に記載の方法。
【請求項３】
(h)前記ステップ(e)が、量子化パラメータを決定し、かつ前記量子化パラメータを用いて、前記イントラフレームの前記目標フレームサイズを決定するステップを含むか、あるいは
(j)前記ステップ(e)が、符号化されたフレームのサイズが、前記ビデオバッファリング装置のオーバーフローを回避するために許容される最大値を超える場合、前記符号化されたフレームを除外するステップを含むか、あるいは
(k)前記ステップ(d)が、
(k1)前記平均ビットレート、および最後のイントラフレームを符号化した後の前記ビデオバッファリング装置のバッファレベルとの関係で、もしくは
(k2)前記平均ビットレート、および前記ビデオバッファリング装置の最大バッファレベルとの関係で、もしくは
(k3)前記平均ビットレート、および前記ビデオバッファリング装置をオーバーフローさせる可能性のある前記ビデオバッファリング装置の高バッファレベルとの関係で、
の内の1つにより、前記ビデオバッファリング装置の前記目標バッファレベルを決定するステップを含むか、あるいは
(l)前記ステップ(f)が、前記インターフレームに対する前記メトリックを、平均絶対偏差として決定するステップを含むか、あるいは
(m)前記ステップ(g)が、前記イントラフレームに対する前記メトリックを、平均絶対偏差として決定するステップを含む、請求項2に記載の方法。
【請求項４】
(n)前記ステップ(h)が、所与の時間期間にわたり、前記量子化パラメータが、前に符号化されたフレームの量子化パラメータの平均以下となる最小のフレームサイズを決定するステップを含んでいる、前記イントラフレームの前記目標フレームサイズを決定するステップを含むか、あるいは
(p)前記ステップ(g)が、前記前に再構成された画像をゼロに設定するステップを含むか、あるいは
(r)前記ステップ(e)が、符号化されたフレームを除外するステップの後、前記ビデオ符号化を実施する符号器の状態変数を復元するステップを含む、請求項3に記載の方法。
【請求項５】
除外された符号化フレームの数が、所与の時間期間内に所与の閾値に達した場合、離散変換の係数をフィルタ処理するステップを含んでいる、前記符号化されたフレームに対して前記離散変換を実施するステップを更に含む、請求項1から4のいずれか一項に記載の方法。
【請求項６】
前記離散変換が、離散コサイン変換(DCT)であり、また係数をフィルタ処理する前記ステップが、
(t1)前記DCT係数の高周波数を除去するステップ、
(t2)特定の数のフレームに対して、前記DCTフィルタリングを活性化するステップ、
の内の1つまたは複数のものを含む、請求項5に記載の方法。
【請求項７】
ビデオバッファリング装置のオーバーフローを回避し、かつ前記ビデオバッファリング装置のアンダーフローを回避するために、インターおよびイントラフレームに対する前記決定された目標フレームサイズの妥当性を検査するステップを含んでいる、前記符号化されたフレームを送信する前に前記ビデオバッファリング装置中で前記符号化されたフレームの妥当性を検査するステップを更に含む、請求項2から6のいずれか一項に記載の方法。
【請求項８】
一連の符号化されたフレームを含み、インターフレームがイントラフレームにより分離された、画像のシーケンスのビデオ符号化におけるビットレートを制御するための装置であって、前記符号化されたフレームが、前記符号化されたフレームを送信する前にビデオバッファリング装置で妥当性が検査されており、前記装置が、
(a)画像の前記シーケンスにおけるフレームの複雑さを決定するためのフレームの複雑さモジュールと、
(b)各インターフレームに対する、前記インターフレームと次のイントラフレームの間の距離との関係による、前記ビデオバッファリング装置の目標バッファレベルの第1の計算器と、
(c)各インターフレームに対する、前記インターフレームと前記次のイントラフレームの間の前記距離、前記測定されたフレームの複雑さ、前記ビデオバッファリング装置の現在のバッファレベル、および前記ビデオバッファリング装置の前記決定された目標バッファレベルとの関係による、目標フレームサイズの第2の計算器と、
(d)前記計算された目標フレームサイズに応じて、画像の前記シーケンスのビデオ符号化における前記ビットレートを制御するための制御手段と、
を形成する、プロセッサで実行するための、コンピュータで実行可能なプログラムコードがその上に記憶されているコンピュータ可読媒体
を備える装置。
【請求項９】
(e)前記第1の計算器が、前記平均ビットレート、および最後のイントラフレームが符号化された後の前記ビデオバッファリング装置のバッファレベルとの関係で、前記ビデオバッファリング装置の前記目標バッファレベルを決定するための手段を更に備えるか、あるいは
(f)前記第1の計算器が、前記平均ビットレート、および前記ビデオバッファリング装置の最大バッファレベルとの関係で、前記ビデオバッファリング装置の前記目標バッファレベルを決定するための手段を更に備えるか、あるいは
(g)前記第2の計算器が、前記平均ビットレート、および前記ビデオバッファリング装置をオーバーフローさせる可能性のある前記ビデオバッファリング装置の高バッファレベルとの関係で、前記インターフレームの前記目標フレームサイズを決定するための手段を更に備えるか、あるいは
(h)前記第2の計算器が、前記ビデオバッファリング装置の最大のサイズ制限との関係で、イントラフレームの目標フレームサイズを決定するための手段を更に備えるか、あるいは
(i)前記制御手段が、前記インターフレームに対する前記計算された目標フレームサイズの妥当性検査器を備える、請求項8に記載の装置。
【請求項１０】
(j)前記フレームの複雑さモジュール(a)が、現在の画像と、前記インターフレームまたは前記イントラフレームに関して前に再構成された画像との間の差分を表すメトリックを決定するための手段を備えるか、あるいは
(k)前記制御手段(d)が、前記ビデオバッファリング装置の最大のサイズ制限を超えることなく平均ビットレートを満たすように、前記インターフレームの前記目標フレームサイズ、または前記インターフレームおよび前記イントラフレームの前記目標サイズを使用するための妥当性検査器を備えるか、あるいは
(l)前記制御手段(d)が、
(l1)前記ビデオバッファリング装置のオーバーフローを回避するための手段、
(l2)前記ビデオバッファリング装置のアンダーフローを回避するための手段、
(l3)符号化されたフレームのサイズが、前記ビデオバッファリング装置のオーバーフローを回避するために許容される最大値を超える場合、前記符号化されたフレームを除外するための手段、
の内の1つまたは複数のものを含む妥当性検査器を備える、請求項8または9に記載の装置。
【請求項１１】
前記イントラフレームの前記目標フレームサイズを決定するための前記手段が、量子化パラメータを決定し、かつ前記量子化パラメータを使用して、前記イントラフレームの前記目標フレームサイズを決定するための手段を備える、請求項9または10に記載の装置。
【請求項１２】
(m)前記インターフレームに対して、前記メトリックが平均絶対偏差であるか、あるいは
(n)前記イントラフレームに対して、前記メトリックが平均絶対偏差であり、かつ前記前に再構成された画像がゼロに設定される、請求項10に記載の装置。
【請求項１３】
前記符号化されたフレームに対して離散変換演算を実施するための手段を更に備える、請求項8から12のいずれか一項に記載の装置。
【請求項１４】
前記離散変換演算が、離散コサイン変換(DCT)であり、前記離散変換のための前記手段が、除外された符号化されたフレームの数が、所与の時間期間内に所与の閾値に達した場合、前記DCTの係数をフィルタ処理する手段を含む、請求項13に記載の装置。
【請求項１５】
ビデオ符号化のための符号器であって、
プロセッサと、
前記ビデオ符号化においてレート制御するための装置と、を備え、
前記レート制御するための装置が、
(a)画像の前記シーケンスにおけるフレームの複雑さを決定するためのフレームの複雑さモジュールと、
(b)各インターフレームに対する、前記インターフレームと次のイントラフレームの間の距離との関係による、ビデオバッファリング装置の目標バッファレベルの第1の計算器と、
(c)各インターフレームに対する、前記インターフレームと前記次のイントラフレームの間の前記距離、前記測定されたフレームの複雑さ、前記ビデオバッファリング装置の現在のバッファレベル、および前記ビデオバッファリング装置の前記決定された目標バッファレベルとの関係による、目標フレームサイズの第2の計算器と、
(d)前記計算された目標フレームサイズに応じて、画像の前記シーケンスのビデオ符号化における前記ビットレートを制御するための制御手段と、
を形成する、プロセッサで実行するための、コンピュータで実行可能なプログラムコードがその上に記憶されているコンピュータ可読媒体を具備する、符号器。
【国際調査報告】
2010530673.tif 000046
2010530673.tif 000047