(57)【要約】【課題】不安定なネットワークでもビデオ映像が最適になるように、ビットレートを制御する装置及び方法を提供すること。【解決手段】ビデオデータ圧縮装置は、ネットワークパラメータの初期値を決定するネットワーク監視ユニット（８５２）と、その初期値に対応する初期のビットレートを使用して初期の知覚モデル定義パラメータを計算し、変更されたネットワークパラメータに基づいて現行ビデオフレームに対する目標ビット利用範囲を設定し、これを用いてモデル反応パラメータ、知覚モデル訂正パラメータを順次計算し、知覚モデル訂正パラメータ及び前のフレームのビットレートに応じて現行の知覚モデル定義パラメータを修正する符号化複雑度制御スカラー生成ユニット（８５０）と、量子化ユニット、動き補償ユニット、及び符号化ユニットを有し、符号化複雑度制御スカラーを受信してビデオデータを圧縮するビデオ圧縮ユニット（８５４）とを備える。【選択図】図１２
2007134758.tif 000002
【特許請求の範囲】
【請求項１】
１つまたは複数のネットワークパラメータの初期値を決定するネットワーク監視ユニットと、
１つまたは複数の前記ネットワークパラメータの前記初期値に対応する初期のビットレートを使用して、初期の知覚モデル定義パラメータを計算し、１つまたは複数の前記ネットワークパラメータが変更されたか否かを判定し、変更されたと判定した場合、変更された前記ネットワークパラメータに基づいて現行ビデオフレームに対する目標ビット利用範囲を設定し、前記目標ビット利用範囲を使用してモデル反応パラメータを計算し、前記モデル反応パラメータに基づいて知覚モデル訂正パラメータを計算し、計算された前記知覚モデル訂正パラメータおよび前のフレームのビットレートに応じて現行の知覚モデル定義パラメータを修正する符号化複雑度制御スカラー生成ユニットと、
量子化ユニット、動き補償ユニット、および符号化ユニットを有し、前記符号化複雑度生成ユニットに接続され、符号化複雑度制御スカラーを受信して、ビデオデータを圧縮するビデオ圧縮ユニットと
を備えるビデオデータ圧縮装置。
【請求項２】
前記モデル反応パラメータが、フレーム当たりのビット数を前記目標ビット利用範囲で除算して得られる値である請求項１に記載のビデオデータ圧縮装置。
【請求項３】
前記知覚モデル訂正パラメータが、ビットレート振動減衰変数及びビット割当量制御変数を含み、
前記ビットレート振動減衰変数が、前記モデル反応パラメータをフレーム当たりのバイト数で除算して得られる値であり、
前記ビット割当量制御変数が、前記モデル反応パラメータを２乗した値をフレーム当たりのバイト数で除算して得られる値である請求項１に記載のビデオデータ圧縮装置。
【請求項４】
１つまたは複数の前記ネットワークパラメータが、ネットワーク帯域幅、平均パケット転送時間、パケット転送時間の標準偏差、およびパケット損失率から成る群の中のいずれか１つを含む請求項１に記載のビデオデータ圧縮装置。
【請求項５】
前記ネットワーク監視ユニットが、さらに、ストリーミングビデオデータを送信する前にトランスミッタ及びレシーバの時計を同期させ、初期設定中および前記ストリーミングビデオデータ送信中のパケット移動時間を測定する請求項１に記載のビデオデータ圧縮装置。
【請求項６】
前記ネットワーク監視ユニットが、さらに、トランスミッタバッファのサイズに基づいてストリーミングビデオデータ送信中のネットワーク帯域幅を測定する請求項１に記載のビデオデータ圧縮装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ビデオデータの圧縮（以下、単にビデオ圧縮とも記す）技術に関し、特に、ビデオストリーミングにおいて、表示されるビデオ映像が知覚的に最適になるように、ビットレートを制御可能なビデオデータ圧縮装置（以下、エンコーダとも記す）に関する。
【背景技術】
【０００２】
デジタルビデオデータは、データ圧縮（以下、単に圧縮とも記す）されていない形式では大量の情報を含んでいる。この大量の情報を操作し、かつ／または記憶することは、時間及び資源を消費する。一方、情報量が多いほど、視覚的により高い品質のビデオが提供される。圧縮技術は、一般に、ビデオ表示の視覚的品質の維持と、ビデオ表示に必要な情報量の低減との最適なバランスを見つけることを目的とする。
【０００３】
ビデオを表示するために必要な情報量を低減するために、圧縮技術は、人間の視覚特性を利用する。即ち、人間の目で知覚できない情報は、通常、除去される。さらに、ビデオシーケンスの複数のフレーム全体を通して、しばしば同じ情報が繰り返される。情報量を低減するために、こうした重複した情報もまたビデオシーケンスから除去される。ビデオ圧縮技術は、ＭＰＥＧ−２規格書、即ちＩＳＯ／ＴＥＣ  １３８１８−２、「Ｉｎｆｏｒｍａｔｉｏｎ  ｔｅｃｈｎｏｌｏｇｙ−ｇｅｎｅｒｉｃ  ｃｏｄｉｎｇ  ｏｆ  ｍｏｖｉｎｇ  ｐｉｃｔｕｒｅｓ  ａｎｄ  ａｓｓｏｃｉａｔｅｄ  ａｕｄｉｏ  ｉｎｆｏｒｍａｔｉｏｎ：Ｖｉｄｅｏ，１９９６」に記載されている。
【０００４】
一般に、ＭＰＥＧ−２エンコーダは、コンスタントビットレート（ＣＢＲ）モードで動作するように、即ち、ビデオストリームの開始から終了まで、平均ビットレートがほぼ一定であるように動作するように設計される。ビデオストリームは、ＭＰＥＧ−２規格で定義されるＩ、ＢおよびＰピクチャタイプのような、様々なタイプの複数のピクチャまたはフレームを含む。各々のピクチャは、そのタイプに応じて、ビデオストリームに設定された目標レートよりも多くのビットを消費してもよいし、少ないビットを消費してもよい。ＣＢＲレート制御法は、ビデオストリームの異なるピクチャタイプ間のビット比率を維持する役割を担う。これによって、所望の平均ビットレートが満たされ、高品質のビデオが表示される。
【０００５】
他のエンコーダは、上記した以外のＭＰＥＧ−２エンコーダを含めて、可変ビットレート（ＶＢＲ）モードで動作する。可変ビットレートによる符号化では、圧縮された各ピクチャは、ピクチャ内およびピクチャ間の特性の複雑度に基づいて、様々なビット量を持つことができる。例えば、単純なピクチャ内容のシーンの符号化では、複雑なピクチャ内容のシーンと比較して、それと同程度に知覚されるピクチャ品質を達成するために、非常に少ないビットしか消費しない。
【０００６】
従来のＶＢＲ符号化は、２つ以上の経路を使用して非リアルタイムで達成される。この理由には、ビデオを特徴付けるために必要な情報量と、符号化処理を効果的に向上させるために、その情報を解釈するのに必要なアルゴリズムが複雑であることとが挙げられる。第１の経路では、符号化が実行され、統計データが収集され、分析される。第２の経路では、符号化処理を制御するために、この分析結果が使用される。これによって高品質の圧縮ビデオストリームが提供される。
【非特許文献１】「Ｉｎｆｏｒｍａｔｉｏｎ  ｔｅｃｈｎｏｌｏｇｙ−ｇｅｎｅｒｉｃ  ｃｏｄｉｎｇ  ｏｆ  ｍｏｖｉｎｇ  ｐｉｃｔｕｒｅｓ  ａｎｄ  ａｓｓｏｃｉａｔｅｄ  ａｕｄｉｏ  ｉｎｆｏｒｍａｔｉｏｎ：Ｖｉｄｅｏ，１９９６」、ＩＳＯ／ＴＥＣ  １３８１８−２
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかし、上記した従来のＶＢＲ符号化では、リアルタイムで処理を行うことができず、単一の経路によって符号化することもできない問題がある。
【０００８】
本発明は、上記した課題を解決し、不安定なネットワークを介したビデオストリーミングにおいて、表示されるビデオ映像が知覚的に最適になるように、ビットレートを制御する装置および方法を提供することを目的とする。
【課題を解決するための手段】
【０００９】
本発明の一態様によれば、本発明に係るビデオデータ圧縮装置は、１つまたは複数のネットワークパラメータの初期値を決定するネットワーク監視ユニットと、１つまたは複数の前記ネットワークパラメータの前記初期値に対応する初期のビットレートを使用して、初期の知覚モデル定義パラメータを計算し、１つまたは複数の前記ネットワークパラメータが変更されたか否かを判定し、変更されたと判定した場合、変更された前記ネットワークパラメータに基づいて現行ビデオフレームに対する目標ビット利用範囲を設定し、前記目標ビット利用範囲を使用してモデル反応パラメータを計算し、前記モデル反応パラメータに基づいて知覚モデル訂正パラメータを計算し、計算された前記知覚モデル訂正パラメータおよび前のフレームのビットレートに応じて現行の知覚モデル定義パラメータを修正する符号化複雑度制御スカラー生成ユニットと、量子化ユニット、動き補償ユニット、および符号化ユニットを有し、前記符号化複雑度生成ユニットに接続され、符号化複雑度制御スカラーを受信して、ビデオデータを圧縮するビデオ圧縮ユニットとを備える。
【００１０】
本発明の別の態様によれば、本発明に係るビットレート制御方法は、ネットワークを介して伝送される圧縮ビデオデータを生成する際に、ビットレートをコンピュータで制御する方法であって、１つまたは複数のネットワークパラメータの初期値を決定するステップと、１つまたは複数の前記ネットワークパラメータの前記初期値に対応する初期のビットレートを使用して、初期の知覚モデル定義パラメータを計算するステップと、１つまたは複数の前記ネットワークパラメータが変更されたか否かを判定するステップと、変更されたと判定した場合、前記ネットワークパラメータに基づいて現行ビデオフレームに対する目標ビット利用範囲を設定するステップと、前記目標ビット利用範囲を使用してモデル反応パラメータを計算するステップと、前記モデル反応パラメータに基づいて知覚モデル訂正パラメータを計算するステップと、計算された前記知覚モデル訂正パラメータと前のフレームのビットレートとに応じて現行の知覚モデル定義パラメータを修正するステップとを含む。
【００１１】
上記のビットレート制御方法において、前記モデル反応パラメータは、フレーム当たりのビット数を前記目標ビット利用範囲で除算して得られる値であることができる。
【００１２】
また、上記のビットレート制御方法において、前記知覚モデル訂正パラメータは、ビットレート振動減衰変数及びビット割当量制御変数を含み、前記ビットレート振動減衰変数は、前記モデル反応パラメータをフレーム当たりのバイト数で除算して得られる値であり、前記ビット割当量制御変数は、前記モデル反応パラメータを２乗した値をフレーム当たりのバイト数で除算して得られる値であることができる。
【００１３】
また、上記のビットレート制御方法において、１つまたは複数の前記ネットワークパラメータが、ネットワーク帯域幅、平均パケット転送時間、パケット転送時間の標準偏差、およびパケット損失率から成る群の中のいずれか１つを含むことができる。
【００１４】
また、上記のビットレート制御方法は、最初に測定されたネットワーク帯域幅に基づく初期平均ビットレートを設定するステップと、前記初期平均ビットレートに基づいて計算された、初期設定符号化複雑度制御スカラーにより初期ビデオフレームを符号化するステップとをさらに含むことができる。
【００１５】
また、上記のビットレート制御方法は、ストリーミングビデオデータを送信する前にトランスミッタ及びレシーバの時計を同期させるステップと、初期設定中および前記ストリーミングビデオデータ送信中のパケット移動時間を測定するステップとをさらに含むことができる。
【００１６】
また、上記のビットレート制御方法は、トランスミッタバッファのサイズに基づいてストリーミングビデオデータ送信中のネットワーク帯域幅を測定するステップをさらに含むことができる。
【００１７】
本発明の別の態様によれば、本発明に係る機械可読媒体は、処理システムに対する命令が記録された記録媒体であって、前記命令が処理システムによって実行された場合、前記処理システムに、１つまたは複数のネットワークパラメータの初期値を決定するステップと、１つまたは複数の前記ネットワークパラメータの前記初期値に対応する初期のビットレートを使用して、初期の知覚モデル定義パラメータを計算するステップと、１つまたは複数の前記ネットワークパラメータが変更されたか否かを判定するステップと、変更されたと判定した場合、変更された前記ネットワークパラメータに基づいて現行ビデオフレームに対する目標ビット利用範囲を設定するステップと、前記目標ビット利用範囲を使用してモデル反応パラメータを計算するステップと、前記モデル反応パラメータに基づいて知覚モデル訂正パラメータを計算するステップと、計算された前記知覚モデル訂正パラメータと前フレームのビットレートとに応じて現行の知覚モデル定義パラメータを修正するステップとを実行させる。
【００１８】
上記の機械可読媒体において、前記モデル反応パラメータは、フレーム当たりのビット数を前記目標ビット利用範囲で除算して得られる値であることができる。
【００１９】
また、上記の機械可読媒体において、前記知覚モデル訂正パラメータは、ビットレート振動減衰変数及びビット割当量制御変数を含み、前記ビットレート振動減衰変数は、前記モデル反応パラメータをフレーム当たりのバイト数で除算して得られる値であり、前記ビット割当量制御変数は、前記モデル反応パラメータを２乗した値をフレーム当たりのバイト数で除算して得られる値であることができる。
【００２０】
また、上記の機械可読媒体において、１つまたは複数の前記ネットワークパラメータは、ネットワーク帯域幅、平均パケット転送時間、パケット転送時間の標準偏差、およびパケット損失率から成る群の中のいずれか１つを含むことができる。
【００２１】
また、上記の機械可読媒体は、前記処理システムに、最初に測定されたネットワーク帯域幅に基づく初期平均ビットレートを設定するステップと、前記初期平均ビットレートに基づいて計算された、初期設定符号化複雑度制御スカラーにより初期ビデオフレームを符号化するステップとをさらに実行させることができる。
【００２２】
また、上記の機械可読媒体は、前記処理システムに、ストリーミングビデオデータを送信する前にトランスミッタ及びレシーバの時計を同期させるステップと、初期設定中および前記ストリーミングビデオデータ送信中のパケット移動時間を測定するステップとをさらに実行させることができる。
【００２３】
また、上記の機械可読媒体は、前記処理システムに、トランスミッタバッファのサイズに基づいてストリーミングビデオデータ送信中のネットワーク帯域幅を測定するステップをさらに実行させることができる。
【発明の効果】
【００２４】
本発明によれば、リアルタイム且つ単一の経路によってビデオデータを符号化することができ、不安定なネットワークを介したビデオストリーミングにおいても、知覚的に最適化されたビデオ品質を実現可能なビデオデータ圧縮装置及び圧縮方法を提供することができる。
【発明を実施するための最良の形態】
【００２５】
本発明の好ましい実施の形態について以下に図面を参照して説明する。
【００２６】
以下の説明では、本発明を完全に理解できるように、多くの具体的詳細を記載する。しかし、本発明は、これらの具体的詳細の一部を含んでいなくても実行可能であることを理解されたい。その他の点に関しては、特に周知の回路、構造、規格、および技術に関しては、本発明が不明確にならないように詳細説明を省略する。
【００２７】
（用語の説明）
以下に、本明細書で使用する用語を簡単に説明する。
【００２８】
知覚モデルパラメータＱCALC：  実際の量子化器の値（quantizer value）であり、計算され、次のビデオフレームをエンコードするのに使用される。一般的に、エンコードされる次のフレームの画質及びビットレートを決定するパラメータである。これは、ビットレート制御モジュールの実際の出力である。
【００２９】
知覚モデル定義パラメータ：  ＱPM／ＲPMPで表される。ＲPMが定数であれば、ＱPMも定数であり、従って「知覚モデル定義パラメータ」は定数になる。ＱCALCはＲCALCPに、即ち、コーデックによって前のフレームに関して生成されたビットレートにのみ依存する。これは、式  ＱCALC＝ＱPM×（ＲCALC／ＲPM）Pの数学的に異なる表現に過ぎない。
【００３０】
モデル反応パラメータ：  入力するビデオ難易度の変化に対して、どの程度素早くビットレート制御エンジンが反応するかを定義するパラメータであり、ビットレートを、予め定義される平均ビットレートにする。それは、主にバッファサイズに依存する。
【００３１】
知覚モデル訂正パラメータ：  ＡＫＡ減衰変数（AKA damping variables）である。これらは、式  Ｑmod＝ＲN-1×ＤR＋Ｂ×ＤBの要素である。この式は、あるビットレート制御モデル（例えば単一経路ＶＢＲ）において、「知覚モデル定義符号化複雑度制御スカラー」の修正子を計算するのに使用される。
【００３２】
知覚モデル定義符号化複雑度制御スカラーＱmod：  予め定義される、または、ビットレート制御メカニズムの相対的にゆっくりと変化するパラメータである。このパラメータは、最終のビット利用を定義し、所定のビット利用の目標値を達成するために、エンコード処理の間修正されなければならない。最終のビット利用が重要で無ければ、若しくは、先験的に正確な値が分かっているとき、このパラメータは一定であってもよい。その場合、ビデオストリームの異なる部分へのビット割当は最適であろう。
【００３３】
知覚モデル定義ビットレート：  これは、ビットレート制御アルゴリズムの、予め定義される（入力）パラメータである。これは、エンコーダの単なる目標ビットレートである。目標ビットレートが正確に得られるか否かは、ビットレート制御処理のモードに依存する。
【００３４】
（概要）
先ず、知覚モデルベースのビデオ圧縮の方法および装置に関して説明する。本発明の様々な実施形態によれば、圧縮（以下、符号化とも記す）に使用される、符号化複雑度制御スカラー（encoding complexity control scalar）（例えば、量子化係数）は、知覚モデルに基づいて決定される。１つまたは複数のパラメータの組（以下、パラメータセットとも記す）によって、現在よりも前に符号化されたフレームに基づいて、現在のフレーム（以下、現行フレームと記す）を符号化するための符号化複雑度制御スカラーを決定するために使用される知覚モデルが定義される。
【００３５】
本発明の一実施形態によれば、符号化複雑度制御スカラーの決定に使用される知覚モデルは、「安定化された前符号化ベースビットレート（stabilized previous encoding based bitrate）」を含む、パラメータセットによって定義される。「安定化された前符号化ベースビットレート」は、遷移フレームビットレート（transition frame bitrate）を補正することによって安定化される、過去の非遷移フレームビットレート（non-transition frame bitrate）の時間加重平均から計算される。ここで遷移フレームとは、例えばシーンの変更に該当するフレームであり、非遷移フレームとは、遷移フレーム以外のフレームである。知覚モデルベースの符号化により圧縮されたビデオシーケンスは、フレームが違っていても人間の目には視覚的品質が一定であるように知覚され、このことは一般にビデオシーケンスの視覚的品質に顕著な変化をもたらす。現行フレームを符号化するために、前の符号化における情報を使用して符号化複雑度制御スカラーを生成することにより、リアルタイム且つ単一経路のＶＢＲ符号化が可能になる。
【００３６】
本発明の別の実施形態によれば、符号化複雑度制御スカラーを特定するために使用される知覚モデルは、シーケンスビット割当量中の残りの使用可能な符号化ビット数と、知覚モデル訂正パラメータとから計算される知覚モデル定義符号化複雑度制御スカラー（perceptual model defining encoding complexity control scalar）によって定義される。現在の、および／または将来のビット利用をある範囲内に維持するために、知覚モデルを過去のビット利用状況に応じて再定義または調整することにより、円滑なビット利用と知覚的に望ましいビデオ表示とが提供される。
【００３７】
本発明の別の実施形態によれば、符号化複雑度制御スカラーを決定するために使用される知覚モデルは、現行ネットワークパラメータに適合した知覚モデル訂正パラメータから計算される知覚モデル定義符号化複雑度制御スカラーによって定義される。現行ネットワークパラメータに応じて、知覚モデルを再定義または調整することにより、インターネットのような不安定なネットワークを介して、信頼性の高いストリーミングデータ転送を実現することができる。
【００３８】
本発明の別の実施形態では、知覚モデルは、「安定化され時間加重された前符号化ベースビットレート（stabilized time weighed previous encoding based bitrate）」と、知覚モデル定義符号化複雑度制御スカラーとに従って、定義または調整される。知覚モデル定義符号化複雑度制御スカラーは、知覚的品質を維持する均一なビット利用を実現するために、ビット利用状況に応じて知覚モデルをシフトする。シフトする知覚モデルと、「安定化され時間加重された前符号化ベースビットレート」とから決定される符号化複雑度制御スカラーは、一定した視覚的品質を有するように知覚されるビデオシーケンスの現行フレームを符号化するための符号化複雑度制御スカラーを提供する。
【００３９】
（前ビットレートに基づく符号化複雑度制御スカラーの生成）
前述のように、ビデオシーケンス内のフレームを符号化するために使用される符号化複雑度制御スカラーは、知覚モデルに基づいて決定される。知覚モデルは、ビットレートと符号化複雑度制御スカラーとによって座標が定義されるグラフ上にプロットすることができる。ビットレートは、前符号化ビットレートに基づいて計算される。前符号化ベースビットレートの計算後、知覚モデルに従って計算された前符号化ベースビットレートに対応する符号化複雑度制御スカラーが決定される。
【００４０】
図１は、本発明の一実施形態に係る知覚モデルを説明するグラフである。図１では、横軸（ｘ軸）はビットレート（Ｒ）を表し、縦軸（ｙ軸）は符号化複雑度制御スカラー（Ｑ）を表す。このグラフには、ソフトフレーム調整知覚モデル（soft-frame tailored perceptual model）、非調整知覚モデル（non-tailored perceptual model）、およびハードフレーム調整知覚モデル（hard frame tailored perceptual model）に対応するグラフが示されている。本発明の一実施形態によれば、それぞれの知覚モデルは、ＱＣＡＬＣ＝ＱＰＭ×（ＲＣＡＬＣ／ＲＰＭ）Ｐによって定義される。知覚モデルを定義する式は、ＱＣＡＬＣ＝（ＱＰＭ／ＲＰＭＰ）×ＲＣＡＬＣＰの形式で表すこともできる。ここで、知覚モデルパラメータＱＣＡＬＣは、計算された符号化複雑度制御スカラーであり、ｙ座標で表される。知覚モデルパラメータＱＰＭは、本発明の一実施形態では予め定義され、また別の実施形態ではビデオシーケンスの符号化中に動的に調整される、知覚モデル定義符号化複雑度制御スカラーである。知覚モデルパラメータＲＣＡＬＣは、前のビットレートから計算されるビットレートである。知覚モデルパラメータＲＰＭは、予め定義された知覚モデル定義ビットレート（perceptual model defining bitrate）である。本発明の別の実施形態では、知覚モデルパラメータＲＰＭは、ビデオシーケンスが符号化される際に動的に修正される。知覚モデルパラメータＰは、知覚モデルの曲線を定義する予め定義された値である。例えば、Ｐが１．０の場合、知覚モデルは非調整知覚モデルである。Ｐが１．０よりも大きい場合（例えば、２．０）、知覚モデルはソフトフレーム調整知覚モデルである。Ｐが１．０よりも小さい場合（例えば、０．５）、知覚モデルはハードフレーム調整知覚モデルである。
【００４１】
本発明の別の実施形態によれば、知覚モデルパラメータＱＰＭおよびＲＰＭは、例えば式  ＱＣＡＬＣ＝（ＰＭＰ）×ＲＣＡＬＣＰ（ここで、ＰＭが単一の知覚モデル定義パラメータである）で示されるような、単一の知覚モデル定義パラメータによって表される。本発明の一実施形態では、単一の知覚モデル定義パラメータは静的であり、別の実施形態では、単一の知覚モデル定義パラメータは動的である。
【００４２】
ソフトフレームは、符号化するためのビット数が少なくてよい、ビデオシーケンス内の低複雑度のフレームである。ハードフレームは、符号化するためのビット数をより多く必要とする、ビデオシーケンス内の高複雑度のフレームである。図１に示すグラフは、コンスタントビットレート（ＣＢＲ）モデルと従来の可変ビットレート（ＶＢＲ）モデルも参考に含んでいる。
【００４３】
ＣＢＲモデルは、複雑度とは無関係に様々なフレームの符号化を同じビット数で行うので、図１においてｙ軸と平行な直線で示されている。従来のＶＢＲモデルは、１つのビデオシーケンス内の様々なフレームを、同じ符号化複雑度制御スカラーを使用して符合化するので、ｘ軸と平行な直線で示されている。非調整知覚モデルは、ｙ軸及びｘ軸の両方から等距離にある複数の点から構成される直線で示されている。このことは、非調整知覚モデルが、ビットレートと、適切に調整のとれた数のハードフレーム及びソフトフレームから構成されるビデオシーケンスの円滑で一貫した知覚を提供する符号化複雑度制御スカラーの値とを組み合わせることを示している。ソフトフレーム調整知覚モデルは、最初は非調整知覚モデルを表す直線の上方で、これと平行して伸びており、ビットレートが増加するに従い、ｙ軸寄りに曲がる曲線で表されている。このことは、ソフトフレーム調整知覚モデルでは、ビットレートと、比較的多くのソフトフレームを含んでいるビデオシーケンスの円滑で一貫した知覚を提供する符号化複雑度制御スカラーとを組み合わせることを示している。ハードフレーム調整知覚モデルは、最初は非調整知覚モデルを表す直線の下方で、これと平行して伸びており、符号化複雑度制御スカラーが増加するに従い、ｘ軸寄りに曲がる曲線で表されている。このことは、ハードフレーム調整知覚モデルでは、ビットレートと、比較的多くのハードフレームを含んでいるビデオシーケンスの円滑で一貫した知覚を提供する符号化複雑度制御スカラーとを組み合わせることを示している。
【００４４】
図２は、本発明の一実施形態に係る非調整知覚モデルに基づく符号化複雑度制御スカラーの決定について説明するための図である。図２では、ビットレートを表す横軸（ｘ軸）上に３つの点が示されている。ｘ軸上の左端の点（ＲＮ−２で示す）は、フレームＮ−２のビットレートを表す。ここで、Ｎは、符号化されるべき現行フレームを表し、Ｎ−２は、現行フレームよりも２フレーム前の既に符号化されたフレームを表す。ｘ軸上の３点内の右端の点（ＲＮ−１で示す）は、現行フレームの直前に符号化されたフレームであるフレームＮ−１のビットレートを表す。
【００４５】
図２に示した例ではビットレートＲＱは、ｘ軸上のＲＮ−２及びＲＮ−１の間にある。ＲＱは、図３に関して後述する「安定化された前符号化ベースビットレート」である。ビットレートＲＱを計算した後、計算されたビットレートＲＱに対応する符号化複雑度制御スカラーが、非調整知覚モデルに従って決定される。本発明の一実施形態では、対応する符号化複雑度制御スカラーが、現行フレームを符号化するために提供される。本発明の別の実施形態では、符号化複雑度制御スカラーＱは、その範囲が限定される。例えば、決定される符号化複雑度制御スカラーＱＣＡＬＣは、０．５×ＱＮ−１≦ＱＣＡＬＣ≦２×ＱＮ−１（ここで、ＱＮ−１は前フレームについて決定された符号化複雑度制御スカラーである）のように範囲が限定される。
【００４６】
図３は、本発明の一実施形態に係る、「安定化された前符号化ベースビットレート」を決定する方法の一例を示すフローチャートである。以下に各ステップでの処理を説明するが、これらは、例えばコンピュータによって実行される。より具体的には、コンピュータの演算手段（ＣＰＵ）が、メモリなどの一時記憶手段をワーク領域として使用し、適宜ハードディスクなどの記録手段に処理結果を記録して、以下の各ステップでの処理を行うことができる。ステップ３０１において、前フレームの（すなわち、符号化されるべき現行フレームの前に位置する、既に符号化されたフレーム）ビットレート及びフレームタイプを受信する。ステップ３０５において、前フレームが遷移フレーム（例えば、シーン変更フレーム）か否かを判定する。前フレームが遷移フレームでないと判定した場合、ステップ３０７に移行する。前フレームが遷移フレームだと判定した場合、ステップ３０９に移行する。
【００４７】
ステップ３０７において、非遷移フレームビットレート平均を、受信したビットレートで更新する。その後、ステップ３０７からステップ３１１に移行する。非遷移フレームビットレート平均は、前に符号化され、時間フィルタリングされたフレームのビットレートを平均することによって計算される。例えば、符号化されるべき現行フレームに時間的に近い、前に符号化された非遷移フレームには、現行フレームに時間的に近くないフレームよりも大きな加重（例えば、それらの値の１００％）が与えられる。時間加重は、連続的時間フィルタ、離散的時間フィルタなどであってもよい。本発明の一実施形態によれば、時間加重された前の非遷移フレームビットレート平均は、ＲＮＴＮ＝ＲＮＴＮ−１×Ｋ１＋ＲＮＮ×Ｋ２によって計算される。ここで、Ｋ１およびＫ２は、システムが突然のビデオ難易度の変化に反応する速さを定義する係数である。ＲＮＮは、前に符号化された最後の非遷移フレームビットレートに等しい。
【００４８】
ステップ３０９において、遷移フレーム補正ビットレートを、受信したビットレートで更新する。遷移フレーム補正ビットレートは、ビデオシーケンスの特定の期間に亘る遷移フレームのビットレートを平均し、時間加重された前非遷移フレームビットレート平均に加えられるべき補正値を決定することにより計算される。本発明の一実施形態によれば、前遷移フレーム補正ビットレートは、次式によって計算される。すなわち、
ＲＬＮ−ＲＮＴＬＮ
ＲＬＮ＝ＲＬＮ−１×Ｋ３＋ＲＮ×Ｋ４
ここで、ＲＮは、前に符号化されたフレームビットレートであり、Ｋ３およびＫ４は、低速反応無限応答フィルタ（slow reaction infinite response filter）を定義する係数である。ＲＮＴＬＮ＝ＲＮＴＬＮ−１×Ｋ３＋ＲＮＮ×Ｋ４。ここで、ＲＮは、前に符号化された非遷移フレームビットレートであり、Ｋ３およびＫ４は、低速反応無限応答フィルタを定義する係数である。
【００４９】
ステップ３１１において、「安定化された前符号化ベースビットレート」を、前の符号化された遷移フレームベースの補正ビットレートと前の符号化された非遷移フレームベースのビットレート平均とによって決定する。前の符号化された遷移フレーム補正ビットレートの追加によって、決定された値を安定化する（すなわち、「安定化された前符号化ベースビットレート」は、様々なフレームタイプ間の変動を補正するために、遅延および安定化によるビットレート平均に従う）。ステップ３１３において、「安定化され時間加重された前符号化ベースビットレート」を、符号化複雑度制御スカラーの計算に提供する。
【００５０】
図４は、本発明の一実施形態に係る符号化複雑度制御スカラー生成ユニットおよびエンコーダの一例を示すブロック図である。ビデオシーケンスのフレームは、圧縮ユニット４０７によって符号化される。図４で、符号化済みフレームＮ−１（４１１）と符号化済みフレームＮ−２（４１３）とは、圧縮ユニット４０７によって既に符号化されているフレームを表す。圧縮ユニット４０７は、符号化処理によって符号化済みフレームＮ−１（４１１）を生成した後、符号化済みフレームＮ−１（４１１）のビットレートと符号化済みフレームＮ−１（４１１）のフレームタイプとを、符号化複雑度制御スカラー生成ユニット４０５に送信する。符号化複雑度制御スカラー生成ユニット４０５は、圧縮ユニット４０７から受信したビットレートを使用して、図３に示したように、「安定化され時間加重された前符号化ベースビットレート」を計算する。次いで符号化複雑度制御スカラー生成ユニット４０５は、図２に関して説明したような知覚モデルの式と、「安定化され時間加重された前符号化ベースビットレート」とにより、符号化複雑度制御スカラーを決定する。次に、符号化複雑度制御スカラー生成ユニット４０５は、符号化複雑度制御スカラーを圧縮ユニット４０７に送信する。次いで圧縮ユニット４０７は、受信した符号化複雑度制御スカラーを使用して、符号化されていないフレームＮ（４０３）を符号化し、符号化済みフレームＮ（４０９）を生成する。ここで、圧縮ユニット４０７は、例えば、公知の量子化ユニット、動き補償ユニット、および符号化ユニットを備えて構成されている。
【００５１】
図５は、本発明の一実施形態に係る符号化複雑度制御スカラー生成ユニットの一例を示すブロック図である。符号化複雑度制御スカラー生成ユニット５０１は、マルチプレクサ５１３、前の符号化された非遷移フレーム平均ビットレート計算モジュール５０３、および前の符号化された遷移ビットレート補正計算モジュール５０５を備えている。前の符号化された非遷移フレーム平均ビットレート計算モジュール５０３と前の符号化された遷移ビットレート補正計算モジュール５０５とは、どちらもマルチプレクサ５１３と接続されている。符号化複雑度制御スカラー生成ユニット５０１は、知覚モデル定義パラメータモジュール５０９および符号化複雑度制御スカラー計算モジュール（以下、Ｑ計算モジュールとも記す）５０７をさらに備えている。前の符号化された非遷移フレーム平均ビットレート計算モジュール５０３、前の符号化された遷移ビットレート補正計算モジュール５０５、および知覚モデル定義パラメータモジュール５０９は、すべて、符号化複雑度制御スカラー計算モジュール５０７と、直接又は間接に接続されている。
【００５２】
符号化複雑度制御スカラー生成ユニット５０１は、前の符号化されたフレームのビットレートと、前の符号化されたフレームのフレームタイプとを、マルチプレクサ５１３によって受信する。本発明の代替形態では、フレームタイプを受信しない。その代わりに符号化複雑度制御スカラー生成ユニット５０１は、受信したビットレートからフレームタイプを決定する。マルチプレクサ５１３は、受信したビットレートを、そのフレームが非遷移フレームであれば、前の符号化された非遷移フレーム平均ビットレート計算モジュール５０３に出力し、そのフレームが遷移フレームであれば、前の符号化された遷移フレームビットレート補正計算モジュール５０５に出力する。前の符号化された非遷移フレーム平均ビットレート計算モジュール５０３の出力と、前の符号化された遷移フレームビットレート補正計算モジュール５０５の出力とが加算され、Ｑ計算モジュール５０７に出力される。本発明の代替形態では、前の符号化された非遷移フレーム平均ビットレート計算モジュール５０３の出力と、前の符号化された遷移フレームビットレート圧縮計算モジュール５０５の出力とは、修正されずにＱ計算モジュール５０７に入力される。
【００５３】
知覚モデル定義パラメータモジュール５０９は、符号化複雑度制御スカラーの計算に使用される知覚モデルを定義するパラメータを出力する。次いでＱ計算モジュール５０７は、「安定化された前符号化ベースビットレート」により計算された、現行フレームを符号化するための符号化複雑度制御スカラーを、符号化複雑度制御スカラー生成ユニット５０１の出力として提供する。
【００５４】
（円滑なビット利用を実現するための知覚モデルのシフト）
ビデオシーケンスの一定したビデオ品質を提供するためのもう１つの技術は、ビット利用を制御することである。目標ビット利用範囲は、ビデオシーケンスの特性（例えば、ビデオシーケンスを符号化するための合計ビット数（ビット割当量）、ビデオシーケンスの継続時間、ビデオシーケンスの複雑度など）に基づいて設定することができる。設定された目標ビット利用範囲に基づいて、ＱＰＭのような、少なくとも１つの知覚モデル定義パラメータを修正するために、変数が計算される。符号化複雑度制御スカラーが使用されて、目標ビット利用範囲内のビット数で現行フレームが符号化されるような位置に知覚モデルをシフトするために、知覚モデル定義パラメータが修正される。
【００５５】
図６は、本発明の一実施形態に係る１つのビデオシーケンス全体に亘る目標ビット利用範囲を示すグラフである。図６において、縦軸（ｙ軸）はビット数（Ｂ）を表し、横軸（ｘ軸）は時間（Ｔ）を表す。ｘ軸と平行に伸びた破線６０１は、ビデオシーケンスのビット割当量を示す。ｙ軸と平行に伸びた破線６０３は、ビデオシーケンスの継続時間を示す。ｘ軸から４５度の角度で伸びた実線の対角線６０７は、コンスタントビットレート（ＣＢＲ）のビット利用を示す。実線の対角線（以下、ＣＢＲビット利用線とも記す）６０７に従い符号化されたビデオシーケンスは、ビデオシーケンスの各フレームを同じビット数で符号化する。破線６０５（以下、目標ビット利用上限線とも記す）および破線６０９（以下、目標ビット利用下限線とも記す）はそれぞれ、ビデオシーケンスに対する目標ビット利用範囲の上限値及び下限値を示す。目標ビット利用上限線６０５は、ＣＢＲビット利用線６０７の上方にこれと平行に伸びている。目標ビット利用下限線６０９は、ＣＢＲビット利用線６０７の下方にこれと平行に伸びている。図６では、目標ビット利用上限線６０５と目標ビット利用下限線６０９とによって規定される目標ビット利用範囲６１１は、ビデオシーケンス全体に亘って一定である。図６には本発明の別の実施形態を示す線をも表示している。本発明の別の実施形態では、目標ビット利用範囲６１１が逓増、逓減する。例えば、ビデオシーケンスの開始部分においては、目標ビット利用範囲６１１は徐々に増加する。ビデオシーケンスの終了部分においては、目標ビット利用範囲６１１は徐々に減少する。目標ビット利用範囲６１１内にビデオシーケンスを符号化するためのビット利用を制限することにより、所定のビットレート制限を満たし、かつ視覚的品質の一貫性を、ＣＢＲビット利用の結果生じる視覚的品質の知覚可能な変動と調和するように維持しながら、符号化複雑度制御スカラーがゆっくりと変更される。
【００５６】
図７は、本発明の一実施形態に係るビット利用グラフと知覚モデルとの間の概念上の相互作用を示す図である。図７には、ビデオシーケンスのためのビット利用グラフ７０１が示されている。ビット利用グラフ７０１は、一定した目標ビット利用範囲を有する。さらに、ビデオシーケンスのための実際のビット利用が、線７０２でビット利用グラフ７０１に示されている。ビット利用グラフ７０１上の３つの点が、時間軸上の３つの時刻（Ｔ１、Ｔ２、Ｔ３）として示されている。
【００５７】
図７は、時間全体で変化する知覚モデルのグラフも示している。ビット利用グラフ７０１上の時刻Ｔ１の点に対応する知覚モデルグラフ７０３は、時刻Ｔ１以前の開始位置から、その開始位置の左上の位置への、知覚モデルの対角シフトを示している。知覚モデルグラフ７０３は、知覚モデルシフトによる単一ビットレート値のための、別の対応する符号化複雑度制御スカラーも示している。知覚モデルグラフ７０５は、知覚モデルの別のシフトを示している。知覚モデルグラフ７０５に示した知覚モデルのシフトは、時刻Ｔ２に対応する。ビット利用グラフ７０１において、時刻Ｔ２では、縦軸の値であるビット利用は減少するが、ビット利用線７０２の傾きは増大（即ち、線７０２の２階微分が正）する。時刻Ｔ２ではビット利用が減少し、ビット利用線７０２はＣＢＲビット利用線の下方に移動するが、知覚モデルグラフ７０５の知覚モデルは、ビット利用線７０２の傾きの変化に応じて右下にシフトする。知覚モデルにおけるシフトは、ビデオシーケンス全体に亘るビット利用の劇的な変化を防止し、滑らかなビット利用線７０２を提供する。知覚モデルグラフ７０３および７０５に示した知覚モデルのシフトは、通常は小さいシフトであり、その結果、符号化複雑度制御スカラーには少しの変化しか生じない。
【００５８】
図８は、本発明の一実施形態に係る任意の知覚モデル定義パラメータを計算する方法の一例を示すフローチャートである。以下に各ステップでの処理を説明するが、これらは、図２のフローチャートに関して説明したように、例えばコンピュータによって実行される。ここでは、本発明の説明を補助するための一例として、知覚モデル定義パラメータは知覚モデル定義符号化複雑度制スカラーであると仮定する。ステップ８０１において、ビデオシーケンスの初期フレームを、初期設定符号化複雑度制御スカラーと残りの使用可能なビデオシーケンスビット割当量とによって符号化する。ステップ８０３において、目標ビット利用範囲のローカルビット利用範囲（すなわち、所与の時刻での目標ビット利用範囲内の一領域）に依存するモデル反応パラメータを、残りの使用可能なビデオシーケンスビット割当量に基づいて、次式で計算する。
モデル反応パラメータ＝フレーム当たりのバイト数／ローカルビット利用範囲
ステップ８０５において、知覚モデル訂正パラメータ（すなわち、振動知覚モデル訂正パラメータまたは対数知覚モデル訂正パラメータ）を、現行ビットレートに対する現行フレーム割当量と、残りの使用可能なビデオシーケンスビット割当量とに基づいて計算する。例えば、知覚モデル訂正パラメータとしてＤＲ、ＤＢを次式で計算する。
ＤＲ＝モデル反応パラメータ／フレーム当たりのバイト数
（ここで、ＤＲはビットレート振動減衰変数である）
ＤＢ＝（モデル反応パラメータ）２／フレーム当たりのバイト数
（ここで、ＤＢはビット割当量制御変数である）
ステップ８０７において、知覚モデル定義符号化複雑度制御スカラー修正子Ｑｍｏｄを、知覚モデル訂正パラメータ（ＤＲ、ＤＢ）、前フレームに対するビットレート、および残りの使用可能なビデオシーケンスビット割当量によって、次式で計算する。
Ｑｍｏｄ＝ＲＮ−１×ＤＲ＋Ｂ×ＤＢ
（ここで、添え字でないＢは現行ビット割当量の使用量と理想的なビット割当量の使用量との差である）
ステップ８０９において、新しい知覚モデル定義符号化複雑度制御スカラーを、現行の知覚モデル定義符号化複雑度制御スカラーと知覚モデル定義符号化複雑度制御スカラー修正子Ｑｍｏｄとによって、次式で計算する。
ＱＰＭ＝Ｑｍｏｄ×ＱＰＭ＋ＱＰＭ
ここで、上記の式は、右辺のＱＰＭに現行の知覚モデル定義符号化複雑度制御スカラーを設定して計算した結果を、元のＱＰＭに再び設定することを意味する。その結果、ＱＰＭが新しい知覚モデル定義符号化複雑度制御スカラーが決定される。
【００５９】
図８を用いて説明したビット利用制御技術は、単一経路ＶＢＲ環境を仮定している。このビット利用制御技術は、別法として、複数経路ＶＢＲ環境に適用することもできる。例えば、２つの経路の内、第１の経路では、知覚モデル定義符号化複雑度制御スカラーＱｐａｓｓ１は、ビデオシーケンスに関する周知の情報（例えば、ビット割当量、解像度など）に基づいた既定値である。第２の経路では、知覚モデル定義符号化複雑度パラメータＱｐａｓｓ２は、第１の経路の知覚モデル定義符号化複雑度制御スカラーＱｐａｓｓ１と、第１の経路の最終ビットレートとによって、Ｑｐａｓｓ２＝Ｑｐａｓｓ１×（ＲＱ１／ＲＰＭ）Ｐ＋１によって決定される。（ここで、ＲＱ１は、第１の経路からの安定化され時間加重されたビットレートであり、ＲＰＭは、知覚モデル定義ビットレートパラメータである。）
図６〜８を参照して上記で説明した実施形態は、ビットレートを固定帯域幅に一致させる。幾つかの代替形態では、ストリーミングビデオデータを、動的に変化するパラメータによって、不安定なネットワークを介して転送することができる。これらの代替形態では、ビットレートは、現行ネットワークパラメータ（例えば、ネットワーク帯域幅、平均パケット転送時間、パケット転送時間の標準偏差、パケット損失率など）に適合するように、動的に調整される。図９および図１０は、変化するネットワーク状態に、目標ビット利用範囲を適合させる状況を示すグラフである。
【００６０】
図９を参照すると、ネットワークパラメータを変更することによって、目標ビット利用下限線６３０の傾き及び目標ビット利用上限線６２０の傾きが決定される。最初、線６２０および６３０は、初期パラメータ期間６４０で示された初期ネットワークパラメータに対応する。ネットワーク帯域幅が増大すると（例えば、高帯域幅期間６４２中は）、線６２０および６３０は急勾配になる。ネットワーク帯域幅が減少すると（例えば、低帯域幅期間６４４中は）、線６２０および６３０は勾配が小さくなり、平坦になる。
【００６１】
ネットワーク遅延およびその変動は、デコーダのバッファサイズに影響を与える場合がある。この影響は、図１０に示すように、目標ビットレート利用下限線６６０及び上限線６５０の間の距離に影響を与える。具体的には、初期ネットワーク遅延期間６７０の目標ビット利用上限線６５０および目標ビット利用下限線６６０の間の距離は、異なるネットワーク遅延パラメータに応じて変化する。例えば、線６５０および６６０は、長い遅延期間６７２中には互いに近づき、その距離が小さくなる。あるいは、線６５０および６６０は、短い遅延期間６７４中には互いに遠ざかり、その距離が大きくなる。
【００６２】
一実施形態では、符号化システムは、ネットワーク状態を常時監視し、ネットワークパラメータの変化を符号化システムに通知するネットワーク監視ユニットを備えることができる。あるいは、ネットワーク監視ユニットは、ネットワーク（例えば、イントラネットまたはインターネット）を介して符号化システムに別個に接続されていてもよい。
【００６３】
一実施形態では、ネットワーク監視ユニットは、最初に、サンプルデータパケットを送信することにより初期ネットワーク情報を取得する。具体的には、アップロード時のネットワーク性能とダウンロード時のネットワーク性能を測定するために、トランスミッタ及びレシーバがサンプルデータパケットを交換する。ネットワーク状態を監視するために、タイムスタンプを含むＩＤを、ストリーミングデータの各パケットに加えることができる。
【００６４】
一実施形態では、ネットワーク監視ユニットは、トランスミッタとレシーバの時計（以下、クロックとも記す）を、ネットワーク遅延を監視できるように同期させる。例えば、ネットワークが対称型（トランスミッタからレシーバへの平均パケット移動時間が、レシーバからトランスミッタへの平均パケット移動時間に等しい）である場合、同期手順は、トランスミッタが時刻Ｔ１がマーク付けされたパケット（Ｔ１はトランスミッタでの時刻）をレシーバに送信するステップと、レシーバが各パケットの受信直後に時刻Ｔ２がマーク付けされたパケット（Ｔ２はレシーバでの時刻）を送信するステップと、トランスミッタが時刻Ｔ３（Ｔ３はトランスミッタでの時刻）で応答パケットを受信するステップとを含む。この場合、レシーバクロック調整は、複数のパケットに亘る（Ｔ１＋Ｔ３）／２−Ｔ２の平均値として計算される。パケット転送時間の標準偏差及びパケット損失率を、この手順で同様に計算してもよい。
【００６５】
別の方法として、ネットワークが非対称型（トランスミッタからレシーバへの平均パケット移動時間が、レシーバからトランスミッタへの平均パケット移動時間に等しくない）である場合、同期のために外部クロック同期機構（例えば、ＧＰＳレシーバを伴う同期機構）を使用してもよい。
【００６６】
トランスミッタおよびレシーバの時計が一度同期すると、ネットワーク監視ユニットは、システム初期設定中ならびにビデオデータ送信中に、パケット移動時間を測定し、監視することができる。一実施形態では、平均パケット移動時間に比例して増大する、レシーバのビデオバッファのサイズに基づいて、平均パケット移動時間が決定される。さらに、円滑な送信を保証するために、パケット移動時間の標準偏差を考慮してもよい。
【００６７】
一実施形態では、ネットワーク監視ユニットは、ネットワーク帯域幅パラメータをビデオデータ送信中に最初に測定し、監視することもできる。ネットワーク帯域幅パラメータは、全体のサイズが増大する複数の群のパケットを送信することによって、最初に測定され得る。この場合、最初に測定されたネットワーク帯域幅が、符号化複雑度制御スカラー生成ユニットのための初期平均ビットレートを設定するために使用されてもよい。
【００６８】
ビデオデータ送信中、トランスミッタバッファのサイズに基づいてネットワーク帯域幅を監視してもよい。一実施形態では、バッファがほぼ限度近くまで使用されている場合、ネットワーク監視ユニットは、ビットレートを低減するために、信号を符号化複雑度制御スカラー生成ユニットに送信する。ユーザ設定またはシステム制限のような他の要因も、許可されたビットレートに影響を与える場合がある。
【００６９】
初期設定中、またはネットワークパラメータにおける大幅な変更に起因した再初期設定中、当該ビデオソースフレームレートと異なる（例えば、これよりも小さい）ビデオフレームレートを選択するために、またはソース解像度と異なる送信ビデオ解像度を選択するために、信号を生成することができる。例えば、元のフレームサイズおよび予め定義された品質のフレームレートの圧縮ビデオデータを送信するために、使用可能なネットワーク帯域幅が十分ではない場合、ビデオフレームサイズを低減するように信号が送信される。ビットレート制御パラメータにより、ビデオフレームレートを低減してもよい。一実施形態では、初期設定中および再初期設定中しかビデオフレームサイズを変更できないが、フレームレートはビデオデータ送信中いつでも低減できる。再初期設定プロセスは、キーフレーム挿入およびいくつかのビットレート制御パラメータの再設定を必要とする。
【００７０】
以前の挙動に基づいて将来のネットワークパラメータを予測することができない場合もある。したがって、使用されるアプリケーションによっては、ビットレートおよび遅延にある程度の余裕を取り入れてもよい。例えば、この余裕を、レシーバ側での円滑なビデオ再生が重視されるアプリケーションでは高くし、送信遅延が小さいことが優先されるアプリケーションでは低くしてもよい。
【００７１】
図１１は、本発明の一実施形態に係る、不安定なネットワーク全体に亘るビデオストリーミングに対して、任意の知覚モデル定義パラメータを計算する方法の一例を示すフローチャートである。以下に各ステップでの処理を説明するが、これらは、図２、図８のフローチャートに関して説明したように、例えばコンピュータによって実行される。
【００７２】
ステップ８２２において、最初に測定されたネットワーク帯域幅に基づいて、初期平均ビットレートを設定する。
【００７３】
ステップ８２４において、初期平均ビットレートに基づいて初期設定符号化複雑度制御スカラーを計算し、この初期設定符号化複雑度制御スカラーによって、ビデオシーケンスの初期フレームを符号化する。
【００７４】
ステップ８２６において、ネットワークパラメータの変更を示す信号を受信する。このネットワークパラメータの変更は、例えば、ネットワーク帯域幅に関しては、平均パケット転送時間、パケット転送時間の標準偏差、パケット損失率などの変更である。一実施形態では、この信号は、新しいビットレートを計算するために引き続き使用される、１つまたは複数の修正されたパラメータを指定する。別の方法では、この信号が、その１つまたは複数の修正されたパラメータに基づいて再び計算された新しいビットレートを指定してもよい。
【００７５】
ステップ８２８において、新しいビットレートに基づいて、目標ビット利用下限及び目標ビット利用上限を設定する。
【００７６】
ステップ８３０において、目標ビット利用下限及び目標ビット利用上限に基づいて、モデル反応パラメータを計算する。例えば、モデル反応パラメータを、次式で計算してもよい。
モデル反応パラメータ＝フレーム当たりのバイト数／目標ビット利用上限−目標ビット利用下限
ステップ８３２において、モデル反応パラメータに基づいて、知覚モデル訂正パラメータ（例えば、振動知覚モデル訂正パラメータまたは対数知覚モデル訂正パラメータ）を計算する。例えば、知覚モデル訂正パラメータを、次式で計算してもよい。
ＤＲ＝モデル反応パラメータ／フレーム当たりのバイト数
（ここで、ＤＲはビットレート振動減衰変数である）
ＤＢ＝（モデル反応パラメータ）２／フレーム当たりのバイト数
（ここで、ＤＢはビット割当量制御変数である）
ステップ８３４において、知覚モデル訂正パラメータと前フレームのビットレートとによって、知覚モデル定義符号化複雑度制御スカラー修正子を、次式で計算する。
Ｑｍｏｄ＝ＲＮ−１×ＤＲ＋ＤＢ
ステップ８３６において、現行の知覚モデル定義符号化複雑度制御スカラーと知覚モデル定義符号化複雑度制御スカラー修正子とによって、新しい知覚モデル定義符号化複雑度制御スカラーを、次式で計算する。
ＱＰＭ＝Ｑｍｏｄ×ＱＰＭ＋ＱＰＭ
現行の、および／または将来のビット利用をある範囲内に維持するために過去のビット利用に応じて知覚モデルを再定義または調整することにより、変化するネットワーク状態に動的に適応しながら、円滑なビット利用と知覚の一貫性とが提供される。
【００７７】
図１２は、本発明の一実施形態に係る、変化するネットワークパラメータに従い動作する符号化システムの一例を示すブロック図である。
【００７８】
ビデオシーケンスのフレームは、圧縮ユニット８５４によって符号化される。圧縮ユニット８５４は、例えば、公知の量子化ユニット、動き補償ユニット、および符号化ユニットを備えて構成されている。圧縮ユニット８５４は、符号化によって符号化済みフレームＮ−１（８６０）を生成後、符号化済みフレームＮ−１（８６０）のビットレートを符号化複雑度制御スカラー生成ユニット８５０に出力する。また、符号化複雑度制御スカラー生成ユニット８５０は、現行ネットワーク状態に関するデータをネットワーク監視ユニット８５２から定期的に受信する。符号化複雑度制御スカラー生成ユニット８５０は、図１１を参照して上記で説明したように、圧縮ユニット８５４から受信したビットレートとネットワーク監視ユニット８５２から受信したネットワークパラメータとを使用して、符号化複雑度制御スカラーを計算する。次いで符号化複雑度制御スカラー生成ユニット８５０は、符号化複雑度制御スカラーを圧縮ユニット８５４に出力する。次いで圧縮ユニット８５４は、受信した符号化複雑度制御スカラーを使用して、符号化されていないフレームＮ（８５６）を符号化し、符号化済みフレームＮ（８５８）を生成する。
【００７９】
（円滑なビット利用のための動的知覚モデルに基づく符号化複雑度制御スカラーの生成）
図１３及び図１４は、本発明の一実施形態に係る、ビット利用制御適合知覚モデルに基づいた、符号化複雑度制御スカラーを計算する方法を示すフローチャートである。以下に各ステップでの処理を説明するが、これらは、図２、図８、図１１のフローチャートに関して説明したように、例えばコンピュータによって実行される。ステップ９０１において、初期符号化複雑度制御スカラーを、フレームを符号化するためのエンコーダに送信する。ステップ９０３において、フレームを符号化するために使用されるビット数と、フレームのタイプとを受信する。ステップ９０５において、「時間加重された前符号化ベースの非遷移フレームビットレート」または「時間加重された前符号化ベースの遷移フレーム補正ビットレート」を計算する。ステップ９０７において、プライミングフレームが符号化済みか否かを判定する。本発明の種々の実施形態では、プライミングフレームを種々（例えば、一定数のフレーム、一定時間内のフレームなど）に定義することができる。すべてのプライミングフレームが符号化されたと判定した場合、ステップ９０９に移行する。プライミングフレームのすべてが符号化されていないと判定した場合、ステップ９０３に移行し、ステップ９０３、９０５及び９０７の処理を繰り返す。
【００８０】
ステップ９０９において、「安定化され時間加重された前符号化ベースビットレート」を計算する。ステップ９１１において、図１１におけるステップ８３６での処理と同様に、現行の知覚モデル定義符号化複雑度制御スカラーと知覚モデル符号化複雑度制御スカラー修正子とによって、新しい知覚モデル定義符号化複雑度制御スカラーを計算する。ステップ９１３において、新しい知覚モデル定義符号化複雑度制御スカラーと「安定化され時間加重された前符号化ベースビットレート」とによって調整された知覚モデルに基づいて、符号化複雑度制御スカラーを計算する。ステップ９１５において、調整された知覚モデルに基づいて計算された符号化複雑度制御スカラーと、「安定化され時間加重された前符号化ベースのビットレート」とを、現行フレームを符号化するためにエンコーダに提供する。その後、ステップ９１５から図１４のステップ９１７に移行する。
【００８１】
図１４は、図１３のフローチャートに続くフローチャートである。ステップ９１７において、ビデオシーケンスに対する処理が完了したか否かを判定する。ビデオシーケンスに対する処理が完了していないと判定した場合、ステップ９０９に戻る。ビデオシーケンスに対する処理が完了したと判定した場合、ステップ９１９に移行し、上記した一連の処理を終了する。
【００８２】
図１５は、本発明の一実施形態に係る、知覚モデル定義パラメータモジュールを有する符号化複雑度制御スカラー生成ユニットの一例を示すブロック図である。符号化複雑度制御スカラー生成ユニット１００１は、マルチプレクサ１０１３、前の符号化された非遷移フレーム平均ビットレート計算モジュール１００３、および前の符号化された遷移ビットレート補正計算モジュール１００５を備えている。前の符号化された非遷移フレーム平均ビットレート計算モジュール１００３と前の符号化された遷移フレームビットレート補正計算モジュール１００５とは、マルチプレクサ１０１３に接続されている。符号化複雑度制御スカラー生成ユニット１００１は、知覚モデル定義パラメータモジュール１００９、および符号化複雑度制御スカラー計算モジュール（以下、Ｑ計算モジュールとも記す）１００７をさらに備えている。知覚モデル定義パラメータモジュール１００９も、マルチプレクサ１０１３に接続されている。前の符号化された非遷移フレーム平均ビットレート計算モジュール１００３、前の符号化された遷移ビットレート補正計算モジュール１００５、および知覚モデル定義パラメータモジュール１００９は、すべて符号化複雑度制御スカラー計算モジュール１００７に、直接的または間接的に接続されている。
【００８３】
符号化複雑度制御スカラー生成ユニット１００１は、前の符号化されたフレームのビットレートと前の符号化されたフレームのフレームタイプとを、マルチプレクサ１０１３によって受信する。本発明の代替形態では、フレームタイプを受信しない。その代わりに、符号化複雑度制御スカラー生成ユニット１００１は、受信したビットレートからフレームタイプを決定する。マルチプレクサ１０１３は、受信したビットレートを、そのフレームが非遷移フレームである場合には前の符号化された非遷移フレーム平均ビットレート計算モジュール１００３に送信し、そのフレームが遷移フレームである場合には前の符号化された遷移フレームビットレート補正計算モジュール１００５に出力する。前フレームを符号化するために使用されたビット数も、知覚モデル定義パラメータモジュール１００９に出力する。前の符号化された非遷移フレーム平均ビットレート計算モジュール１００３と前の符号化された遷移フレームビットレート補正計算モジュール１００５との出力は加算されて、Ｑ計算モジュール１００７に入力される。本発明の代替形態では、前の符号化された非遷移フレーム平均ビットレート計算モジュール１００３と前の符号化された遷移フレームビットレート補正計算モジュール１００５との出力は、修正されずにＱ計算モジュール１００７に入力される。
【００８４】
知覚モデル定義パラメータモジュール１００９は、マルチプレクサ１０１３から受信したビット数を用いて計算した知覚モデル定義パラメータを、Ｑ計算モジュール１００７に出力する。知覚モデル定義パラメータモジュール１００９が実行する動作は、図１１で説明した動作と同様である。Ｑ計算モジュール１００７は、「安定化された時間加重された前符号化ベースビットレート」を用いて計算した、現行フレームを符号化するための符号化複雑度制御スカラーを、符号化複雑度制御スカラー生成ユニット１００１からの出力として提供する。
【００８５】
図１６は、本発明の一実施形態に係る符号化複雑度制御スカラー生成ユニットを備えたシステムの一例を示すブロック図である。図１６では、システム１１００は、ビデオデータ入力デバイス１１０１、１つまたは複数のバッファ１１０３、圧縮ユニット１１０５、および符号化複雑度制御スカラー生成ユニット１１０７を備えている。圧縮ユニット１１０５は、例えば、公知の量子化ユニット、動き補償ユニット、および符号化ユニットを備えて構成されている。ビデオデータ入力デバイス１１０１は、入力されるビットストリームを受信する。ビデオデータ入力デバイス１１０１は、受信した入力ビットストリームを１つまたは複数のバッファ１１０３に出力し、１つまたは複数のバッファ１１０３は、ビットストリーム内のフレームをバッファする。フレームは圧縮ユニット１１０５に伝送され、そこで符号化複雑度制御スカラー生成ユニット１１０７からの入力データ、即ち符号化複雑度制御スカラーを用いて圧縮される。また、圧縮ユニット１１０５は、圧縮ユニット１１０５に提供される符号化複雑度制御スカラーを計算するために、符号化複雑度生成ユニット１１０７にデータを出力する。また、圧縮ユニット１１０５は、圧縮されたビデオデータを出力する。
【００８６】
上記のシステム１１０７は、メモリ、プロセッサ、および／またはＡＳＩＣを備えている。ここで、メモリには、本明細書に記載の方法の何れか１つまたはすべてを実行する命令セット（すなわち、ソフトウェアプログラム）を記録した機械可読媒体が含まれる。ソフトウェアプログラムは、完全に、または少なくとも部分的に、このメモリ内に、および／またはプロセッサおよび／またはＡＳＩＣ内に常駐することができる。本明細書において、「機械可読媒体」という用語は、機械（例えば、コンピュータ）によって読み出され得る形式で情報を提供する（すなわち、記憶し、かつ／または送信する）、いかなる機構をも含むものを意味する。例えば、機械可読媒体には、読み出し専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、磁気ディスク記録媒体、光記録媒体、フラッシュメモリデバイス、並びに、電気的、光学的、音響学的若しくは他の形式の伝播信号（例えば、搬送波、赤外線信号、デジタル信号など）などが含まれる。
【００８７】
（代替形態）
以上、いくつかの実施形態として本発明を説明したが、当業者には、本発明が上記の実施形態に限定されないことが理解されよう。例えば、フローチャートは、本発明の特定の実施形態によって実行される処理の特定の順序を示しているが、このような順序は一例に過ぎない（例えば、代替形態では、これらの処理を別の順序で実行しても、幾つかの処理を組み合わせても、ある処理を重複させてもよい）ことを理解されたい。例えば、図１３を参照すると、本発明の代替形態では、ステップ９１１がステップ９０９の前に実行される。本発明の別の実施形態では、ステップ９０９と９１１とが並列に実行される。
【００８８】
さらに、図面に関しては、遷移フレームと非遷移フレームとを参照して説明したが、本発明の代替形態では、様々なフレームタイプ（例えば、Ｉ、Ｐ、およびＢフレーム）を含むビデオシーケンスを圧縮する。本発明の一実施形態では、特定のしきい値内のビットレートは、前符号化ベースビットレート平均値を計算する際に使用され、一方、しきい値を超えるビットレートは、補正ビットレートを計算する際に使用される。
【００８９】
したがって、本発明に係る方法および装置を、特許請求の範囲の趣旨および範囲内で種々に修正および変更して実行することができる。したがって、上記の説明は、本発明を限定するためのものではなく、本発明を説明するためのものと理解されたい。
【図面の簡単な説明】
【００９０】
【図１】図１は、本発明の一実施形態に係る知覚モデルを説明するためのグラフである。
【図２】本発明の一実施形態に係る非調整知覚モデルに基づく符号化複雑度制御スカラーの決定を説明する図である。
【図３】本発明の一実施形態に係る安定化された前符号化ベースビットレートを決定する方法の一例を示すフローチャートである。
【図４】本発明の一実施形態に係る符号化複雑度制御スカラー生成ユニットおよびエンコーダの一例を示すブロック図である。
【図５】本発明の一実施形態に係る符号化複雑度制御スカラー生成ユニットの一例を示すブロック図である。
【図６】本発明の一実施形態に係るビデオシーケンス全体に亘る目標ビット利用範囲を説明するグラフである。
【図７】本発明の一実施形態に係るビット利用グラフと知覚モデルの間の概念上の相互作用を説明する図である。
【図８】本発明の代替の実施形態に係る任意の知覚モデル定義パラメータを計算する方法の一例を示すフローチャートである。
【図９】変化するネットワーク状態に適合させた目標ビット利用範囲を説明するグラフである。
【図１０】変化するネットワーク状態に適合させた目標ビット利用範囲を説明するグラフである。
【図１１】本発明の代替の実施形態に係る任意の知覚モデル定義パラメータを計算する方法の一例を示すフローチャートである。
【図１２】本発明の一実施形態に係る変化するネットワークパラメータに従って動作する符号化システムの一例を示すブロック図である。
【図１３】本発明の一実施形態に係るビット利用制御適合知覚モデルに基づく符号化複雑度制御スカラーを計算する方法の一例を示すフローチャートである。
【図１４】図１３のフローチャートに続くフローチャートである。
【図１５】本発明の一実施形態に係る知覚モデル定義パラメータモジュールを備える符号化複雑度制御スカラー生成ユニットの一例を示すブロック図である。
【図１６】本発明の一実施形態に係る符号化複雑度制御スカラー生成ユニットを備えるシステムの一例を示すブロック図である。
【符号の説明】
【００９１】
４０５    符号化複雑度制御スカラー生成ユニット
４０７    圧縮ユニット
５０１、１００１    符号化複雑度制御スカラー生成ユニット
５０３、１００３    前の符号化された非遷移フレーム平均ビットレート計算モジュール
５０５、１００５    前の符号化された遷移ビットレート補正計算モジュール
５０７、１００７    Ｑ計算モジュール
５０９、１００９    知覚モデル定義パラメータモジュール
５１３、１０１３    マルチプレクサ
８５０    符号化複雑度制御スカラー生成ユニット
８５２    ネットワーク監視ユニット
８５４    圧縮ユニット
１１００  システム
１１０１  ビデオデータ入力デバイス
１１０３  バッファ
１１０５  圧縮ユニット
１１０７  符号化複雑度スカラー生成ユニット
【図１】
2007134758.tif 000003
【図２】
2007134758.tif 000004
【図３】
2007134758.tif 000005
【図４】
2007134758.tif 000006
【図５】
2007134758.tif 000007
【図６】
2007134758.tif 000008
【図７】
2007134758.tif 000009
【図８】
2007134758.tif 000010
【図９】
2007134758.tif 000011
【図１０】
2007134758.tif 000012
【図１１】
2007134758.tif 000013
【図１２】
2007134758.tif 000014
【図１３】
2007134758.tif 000015
【図１４】
2007134758.tif 000016
【図１５】
2007134758.tif 000017
【図１６】
2007134758.tif 000018