(57)【特許請求の範囲】
【請求項１】
ピクチャーをエンコードする方法であって：
現在のフレームを受け取るステップと、
該現在のフレームに対するビットレートの目標とビット数とを設定するステップと、
前記ピクチャーの複数の複雑さ測度を決定するステップと、
各複雑さ測度のコーディングパラメータのセットを、複雑さ測度が大きくなるとコード化に使われるビット数が少なくなるよう、並列的に決定するステップと、
前記ピクチャーを、決定されたコーディングパラメータの各セットを用いてコード化するステップと、
所定の単数または複数のメトリックに鑑みて前記コード化されたそれぞれのピクチャーからあるコード化されたピクチャーを最終的なコード化されたピクチャーとして選択するステップとを含む、方法。
【請求項２】
モデルに基づいて少なくとも一つの複雑さが決定される、請求項１記載の方法であって：
前記最終的なコード化されたピクチャーを含むすでにコード化されたピクチャーについてのコーディング統計を用いて前記モデルを更新するステップをさらに含む、請求項１に記載の方法。
【請求項３】
所定の先読みの範囲内の将来のピクチャーが現在のピクチャーと高い時間的相関を示すと判定される場合、画質のレベルを上げるようコーディングパラメータを調整するステップをさらに含む、請求項１または２に記載の方法。
【請求項４】
データ処理装置にビデオデータをコード化する工程を行わせることが可能なプログラムを記憶したコンピュータ読取可能な記憶媒体であって、該工程は、
現在のフレームを受け取るステップと、
該現在のフレームに対するビットレートの目標とビット数とを設定するステップと、
前記ピクチャーの複数の複雑さ測度を決定するステップと、
各複雑さ測度のコーディングパラメータのセットを、複雑さ測度が大きくなるとコード化に使われるビット数が少なくなるよう、並列的に決定するステップと、
前記ピクチャーを、決定されたコーディングパラメータの各セットを用いてコード化するステップと、
所定の単数または複数のメトリックに鑑みて前記コード化されたそれぞれのピクチャーからあるコード化されたピクチャーを最終的なコード化されたピクチャーとして選択するステップとを含む、コンピュータ読取可能な記憶媒体。
【請求項５】
モデルに基づいて少なくとも一つの複雑さが決定され、
前記工程が、前記最終的なコード化されたピクチャーを含むすでにコード化されたピクチャーについてのコーディング統計を用いて前記モデルを更新するステップをさらに含む、請求項４に記載のコンピュータ読取可能な記憶媒体。
【請求項６】
前記工程が、所定の先読みの範囲内の将来のピクチャーが現在のピクチャーと高い時間的相関を示すと判定される場合、画質のレベルを上げるようコーディングパラメータを調整するステップをさらに含む、請求項４または５に記載のコンピュータ読取可能な記憶媒体。
【請求項７】
請求項１ないし３のうちいずれか一項記載の方法であって、
複数の複雑さ測度を決定する前記ステップが、プレアナライザにより、過去のピクチャーまたは将来のピクチャーの複雑さの解析に基づいて実行され；
当該方法がさらに、プレアナライザにより、現在のピクチャーの、前記過去のピクチャーまたは前記将来のピクチャーとの相関のレベルを決定するステップを含み、
コーディングパラメータのセットを決定する前記ステップが、前記相関のレベルの決定に基づいて、前記過去のピクチャーまたは前記将来のピクチャーの品質レベルより高い品質レベルで前記現在のピクチャーを符号化する段階を含む、
方法。
【請求項８】
動き補償された予測を有する符号化器により、前記過去のピクチャーまたは将来のピクチャーを、前記現在のピクチャーの前記品質レベルで符号化するステップをさらに含み、前記相関のレベルが時間的相関のレベルを含む、請求項７記載の方法。
【請求項９】
前記プレアナライザにより、現在のピクチャーの、前記過去のピクチャーまたは前記将来のピクチャーとの時間的相関を示す指標を決定するステップをさらに含む、請求項７記載の方法。
【請求項１０】
前記プレアナライザが、動き補償された絶対値差分和（ＳＡＤ）指標、平均２乗誤差（ＭＳＥ）指標、歪み指標、誤差の平方和（ＳＳＥ）指標、平均差分絶対値（ＭＡＤ）指標またはビデオ品質指数（ＶＱＩ）指標を決定するよう構成されている、請求項９記載の方法。
【請求項１１】
請求項９記載の方法であって、
前記符号化の間に考慮されたピクチャーのいずれとも異なるピクチャーを使う動き推定および補償を実行することによって前記指標を予測するステップをさらに含む、
および／または
前記符号化が：
前記符号化のために使われる基準ピクチャーを変えること；
ソースの統計に合わせて調整するために時間的予測の距離を変えること；および
動き補償された予測基準を変えることを含む、
方法。
【請求項１２】
請求項７記載の方法であって、前記プレアナライザの予測の形式、フレームの数およびフレームの位置は、前記符号化を実行するエンコーダのものとは異なる、方法。
【請求項１３】
前記プレアナライザから生成された推定値を使って前記エンコーダにおいてレート配分およびレート制御を決定するステップをさらに含み、
前記プレアナライザの予測の形式、フレームの数およびフレームの位置が、フレームのシーケンスについて固定されている、
請求項１２記載の方法。
【請求項１４】
前記プレアナライザの予測の形式、フレームの数およびフレームの位置が、フレームのシーケンスについて固定されており、前記エンコーダの予測の形式、フレームの数およびフレームの位置が、前記シーケンスの諸フレームの前記符号化のために調整可能であり、
さらに任意的な機能として、前記プレアナライザからの相関付けられた指標を、過去の符号化の統計または線形回帰を使って適応的に更新される、符号化の際に使われる推定値に変換するステップを含む、
請求項１２記載の方法。
【請求項１５】
請求項７記載の方法であって、
前記相関のレベルの決定がさらに、単方向予測または双方向予測から導出された歪み指標を利用することを含む、
および／または
当該方法が、
前記現在のピクチャーの複雑さの推定値に関連する複数の指標から、複数の候補となる符号化パラメータ・セットを導出すること；
複数の複雑さ指標を利用する複数のレート制御モデルに基づいて前記指標の一つまたは複数を最小化または最大化すること；および
前記一つまたは複数の指標の前記最小化および最大化に基づいて、前記符号化のための前記候補となる符号化パラメータ・セットのうちの少なくとも一つを選択することをさらに含む、
方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ビデオの圧縮システム、記憶システム、及び／又は、伝達システムのためのビデオデータのような、ビデオデータのレート配分、レート制御、及び／又は、複雑さに関するものである。
【０００２】
本出願は、２００７年９月２８日に出願した米国暫定特許出願、表題「ビデオ圧縮技法及びビデオ伝達技法」、出願番号６０／９７６，３８１、に基づく優先権を主張し、この出願は、参照としてすべて本願に組み込まれるものとする。
【背景技術】
【０００３】
レート配分とレート制御とは最新のビデオ圧縮システムの不可欠な構成要素である。レート配分は、ピクチャーをコーディングするためにビットターゲットを配分する機能である。レート制御は、ピクチャーをコーディングする間にビットターゲットを取得する機構である。
【０００４】
圧縮したビットストリームは、レート制御を介して、伝達媒体又は目標とされた媒体に組み込まれた具体的な帯域幅の制約を満足することができる。レート制御アルゴリズムは、一般に良好な視覚的品質を保っている間に目標ビットレートを達成できるように、各ピクチャー配分されるビット数を変化させようとすることができる。圧縮したビデオビットストリーム中のピクチャーは、種々の方法でエンコードすることができる。例えば、コーディングの形式には、イントラ予測スライス、インター予測スライス、及び双方向予測スライスが含まれる。
【発明の概要】
【０００５】
これらの実施の形態及び他の実施の形態には、任意の以下の特徴を含めることができる。一般に、本願に記載した主題の実施の形態は、動き補償プロセッサ又は動き補償アナライザ、動き補償装置、空間セッサ、フィルターから作られた、又は、以前のコーディング経路で作られた、ピクチャーの複雑さの測定基準を受け取るステップを含む、ピクチャーの複雑さを推定する方法であることを特徴とする。この複雑さには、時間的特性、空間的特性、あるいは輝度的特性が含まれる。本方法は、ピクチャーが将来のピクチャー又は過去のピクチャーと相関関係があるかどうかを判断することによりピクチャーの複雑さの測定基準を推定するステップと、ピクチャー又はピクチャーの領域が、アーティファクトをマスクしないピクチャーの領域、又は将来のピクチャーの領域、又は過去のピクチャーの領域より効果的にアーティファクトをマスクするかどうかを判断するステップとを有する。この方法のいくつかの実施の形態では、ピクチャーの領域内のアーティファクトのマスキングを、ピクチャーの少なくとも１つの他の領域、過去のピクチャーの少なくとも１つの他の領域、又は将来のピクチャーの少なくとも１つの他の領域とを比較するため、コーディング統計（及び／又はピクチャーの他の特性）を用いることができ、あるいは、ピクチャー中のマスキングアーティファクトを過去のピクチャー又は将来のピクチャーと比較するため、コーディング統計を用いることができ、そして、このコーディング統計を用いて、複雑さの測定基準を推定することができる。このような特徴を実施するこれらの又は他の実施の形態は、対応する装置、システム、及び／又は、コンピュータ読取可能な媒体でコード化され、データ処理装置にピクチャーの複雑さを推定させることのできる、コンピュータプログラム製品に組み込まれる。
【０００６】
一般に、本願に記載した主題の他の特徴には、高品質のコード化されたビデオを生成するための方法の実施の形態が含まれる。この方法には、ビデオピクチャー同士の複雑さの情報を評価するステップが含まれ、複雑さの情報には、時間情報、空間情報、又は輝度情報が含まれ、ビデオピクチャーには、ビデオフレームが含まれる。この方法には、フレーム形式を決定しパラメータを分析するために複雑さの情報を用いるステップが含まれる。パラメータには、場面変化、フェードイン、フェードアウト、クロスフェード、局所照明変化、カメラパン、又は、カメラズームのためのパラメータが含まれる。また、本方法には、異常値を除去するため及び／又はコーディングパラメータ中の及び／又はビデオフレーム同士のビデオの質の急な変動を避けるために分析されたパラメータを用いることにより、統計及び／又はビデオフレーム同士の複雑さをフィルターするステップが含まれる。このような特徴を実施するこれらの又は他の実施の形態は、対応する装置、システム、及び／又は、コンピュータ読取可能な媒体でコード化され、データ処理装置に高品質のコード化されたビデオを生成させることのできる、コンピュータプログラム製品に組み込まれる。
【０００７】
一般に、本願に記載した主題の他の特徴には、ピクチャーの複雑さを推定するための方法の実施の形態が含まれる。この方法には、ピクチャーを階層構造にコード化すべきかどうかを判断するステップが含まれる。この階層構造には、複数のピクチャーレベルと、異なるピクチャーレベルでのビット又はコーディングパラメータが含まれる。ピクチャーが特定の階層レベルに割り当てられることを決定すると、この方法では、ピクチャーの重要性に基づいてピクチャーをコーディングするステップが含まれる。コーディングするステップには、画質のレベルを制御し、その重要性に基づいてピクチャーの少なくとも１つのコーディングパラメータを変化させるステップが含まれる。このような特徴を実施するこれらの又は他の実施の形態は、対応する装置、システム、及び／又は、コンピュータ読取可能な媒体でコード化され、データ処理装置にピクチャーの複雑さを推定させることのできる、コンピュータプログラム製品に組み込まれる。
【０００８】
一般に、本願に記載した主題の他の特徴には、ビデオデータのコーディング方法の実施の形態が含まれる。この方法には、マクロブロックに基づくビデオデータのパラメータをコード化するステップを伴い、コード化には、空間的統計及び時間的統計における変動を明らかにすることが含まれる。このこの方法には、複雑さの測度を生成するステップと、複雑さの測度の重要性を判断するステップと、複雑さの測度をコーディングパラメータセットにマッピングするステップと、ビデオデータにおける多かれ少なかれ重要なビデオデータ中のイメージ領域を作ることにより、ビデオデータの質のレベルを改善／上昇するためのコーディングパラメータセットを調整するために複雑さの測度を用いるステップとが含まれる。このような特徴を実施するこれらの又は他の実施の形態は、対応する装置、システム、及び／又は、コンピュータ読取可能な媒体でコード化され、データ処理装置にビデオ処理に関連する操作をさせることのできる、コンピュータプログラム製品に組み込まれる。
【０００９】
一般に、本願に記載した主題の他の特徴には、ピクチャーのエンコーディングの実施の形態が含まれる。この方法には、現在のフレームを受け取るステップと、現在のフレームについてのビットレートの目標とビット数を設定するステップと、ピクチャーの複雑さを判断するステップとが含まれる。複雑さの判断には、同時に、それぞれの複雑さに応じたコーディングパラメータを決定するステップが含まれる。複雑さの判断にはまた、それぞれの複雑さに応じたコーディングパラメータを決定した後、それぞれの複雑さを用いてそれぞれのピクチャーをコーディングするステップと、コード化されたそれぞれのピクチャーから最終的なコード化されたピクチャーを選択するステップと、選択された最終的なコード化されたピクチャーを用いて複雑さを更新するステップとが含まれる。このような特徴を実施するこれらの又は他の実施の形態は、対応する装置、システム、及び／又は、コンピュータ読取可能な媒体でコード化され、データ処理装置にビデオ処理に関連する操作をさせることのできる、コンピュータプログラム製品に組み込まれる。
【００１０】
一般に、本願に記載した主題の他の特徴には、ビデオのレート配分の方法の実施の形態が含まれる。この方法には、ピクチャー先読みバッファの情報を受け取るステップと、第１のコーディング経路で、ピクチャーのビットターゲットを設定するためにレート配分を行うステップとが含まれる。このレート配分には、ピクチャーの複雑さを判断するためにピクチャー先読みバッファを用いるステップと、レート制御モデルを用いてビットターゲットのコーディングパラメータセットを選定するステップとが含まれる。このような特徴を実施するこれらの又は他の実施の形態は、対応する装置、システム、及び／又は、コンピュータ読取可能な媒体でコード化され、データ処理装置にビデオ処理に関連する操作をさせることのできる、コンピュータプログラム製品に組み込まれる。
【００１１】
一般に、本願に記載した主題の他の特徴には、ビデオコーディングのレート配分の方法の実施の形態が含まれる。この方法には、量子化パラメータ及びピクチャーの多数の残りビットを初期化するステップ、及びピクチャー先読みフレームの全体的な複雑さを判断するステップとが含まれる。この方法にはまた、Ｉコード化されたピクチャー、Ｐコード化されたピクチャー、又は、周期的にＩコード化されたピクチャーからなるピクチャーのスライス形式を決定するステップが含まれる。このスライス形式を決定するステップには、Ｉコード化されたピクチャーについて、インターコード化されたピクチャーに配分されたビットの数を決定するステップと、このピクチャーをコード化するための量子化パラメータを用いるために第１のレート制御モデルを採用するステップと、Ｐコード化されたフレームについて、予測コード化されたピクチャーに配分されたビットの数を決定するステップと、このピクチャーをコード化するための量子化パラメータを用いるために第２のレート制御モデルを採用するステップと、周期的にＩコード化されたピクチャーについて、このこのピクチャーをコード化するための予測量子化パラメータを用いるステップとが含まれる。スライス形式を決定した後、この方法には、決定したスライス形式についてピクチャーをコーディングするステップが含まれる。このような特徴を実施するこれらの又は他の実施の形態は、対応する装置、システム、及び／又は、コンピュータ読取可能な媒体でコード化され、データ処理装置にビデオ処理に関連する操作をさせることのできる、コンピュータプログラム製品に組み込まれる。
【００１２】
一般に、本願に記載した主題の他の特徴には、ビデオコーディングの方法の実施の形態が含まれる。この方法には、ビデオシステム中の以前のピクチャーのコーディング統計を受け取るステップと、将来のピクチャーの先読み情報を受け取るステップとが含まれる。この方法には、現在のピクチャーをコード化するためにコーディングパラメータセットを用いるステップが含まれ、コーディングパラメータセットにはコーディングパラメータが含まれる。このコーディングパラメータには、基本コーディングパラメータセットと、以前のピクチャー及び現在のピクチャーの目標ビットレートを達成するためのモディファイアとが含まれる。現在のピクチャー及び以前のピクチャーには、画質及びビットレート配分を調整するためのウェイトが含まれる。この方法にはまた、現在のピクチャー及び以前のピクチャーの画質を修正するためのウェイトを調整するステップが含まれる。画質は、量子化パラメータのレートファクターに依存し、ウェイトの調整によりビットレート配分を修正する。このような特徴を実施するこれらの又は他の実施の形態は、対応する装置、システム、及び／又は、コンピュータ読取可能な媒体でコード化され、データ処理装置にビデオ処理に関連する操作をさせることのできる、コンピュータプログラム製品に組み込まれる。
【００１３】
一般に、本願に記載した主題の他の特徴には、レート制御の方法の実施の形態が含まれる。この方法には、この方法には、コーディングパラメータ及びレートファクターのセットの値を初期化するステップと、ビットターゲット、ビットの数、及びコーディングパラメータモディファイアを決定するステップと、ビットターゲットを有するレートファクターを決定するステップとが含まれる。この方法にはさらに、ゼロより大のフレーム、レベルゼロで予測コード化されたフレーム、レベルゼロでイントラコード化されたフレーム、及び、レベルゼロで定期的にイントラコード化されたフレームからスライス形式を決定するステップが含まれる。この方法にはまた、決定したスライス形式を選択するステップが含まれる。このような特徴を実施するこれらの又は他の実施の形態は、対応する装置、システム、及び／又は、コンピュータ読取可能な媒体でコード化され、データ処理装置にビデオ処理に関連する操作をさせることのできる、コンピュータプログラム製品に組み込まれる。
【００１４】
本願は、レート制御及びレート配分の技術とシステムについて開示する。一形態において、本願は、ビデオエンコーディングのレート配分及びレート制御のための、新規な単一パスアルゴリズム及び複数パスアルゴリズムを提供する。提案するレート制御アルゴリズムは、先読み情報及び／又は過去の情報をうまく利用してレート制御及びレート配分を行うことができる。この情報は、元の信号をダウンサンプリングして低い分解能で処理することにより、軽いウェイトの以前のコーディングパス又はエンコーダのダウングレードしたバージョンの以前のコーディングパスを介して、あるいは、入力信号に関する種々の統計を計算する動き補償プレアナライザの使用を介して、あるいはそれらを組み合わせたものを介して、レート制御アルゴリズムに送られる。記載のレート制御アルゴリズムを、シーン統計とピクチャー統計を進化した予測と進化したフィルタリングにより、さらに改善することができる。統計の予測とフィルタリングでは、将来のピクチャー及び過去のピクチャーの両方からの情報を用いることができる。
【００１５】
ここで用いられる、用語「スライス」、「ピクチャー」及び「フレーム」は、どれを使っても意味は変わらない。ピクチャーは、例えば、フレーム又はフィールドコーディングモードで用いられ、種々のタイプの複数のスライスを用いて、あるいは、単一のスライスとしてコード化される。一般に、ここで開示したすべての技術及び方法は、異なったタイプの複数のスライスによりコード化されたピクチャーの場合においても、個々のスライスに適用することができる。多くの形態で、ピクチャーは、フレーム又はフィールドのどちらかを定義する普通名詞となり得る。フィールドは、「インターレース形式」を意味することがある一方、正反対のパリティフィールド（例えばトップフィールドとボトムフィールド）はフレームを構成することができる（このシナリオでは、フレームは異なる時間インターバルで現れる偶数及び奇数の線を持つ）。この開示では、フレーム又はフレームピクチャーについて先に説明したが、同じ技術をフィールド（例えばトップ又はボトム）にも適用することができる。
【００１６】
用語「アルゴリズム」は、ステップ、方法、処理、スキーム、手続、動作、プログラム、ガイドライン、技法、シーケンス、及び／又は、１組の規則又は命令を意味することがある。例えば、アルゴリズムは、ハードウェアビデオプロセッサ及び／又はソフトウェアビデオプロセッサに対する１組のビデオ処理命令である場合がある。このアルゴリズムを、１以上の計算装置及び／又は計算機は（例えば、人の指示なしで）保存し、生成し、処理することができる。開示したアルゴリズムは、ビデオに関するものとすることができ、ビデオデータを処理、圧縮、保存、伝達、受け入れ、テスト、校正、表示、及び／又は、改良することのどの組み合わせを行うための、ビデオに関するシステム及び／又は装置、機械、ハードウェア、及び／又は、製品において、生成し、実行し、関連付けし、採用することができる。
【００１７】
いくつかの形態では、本願は、特定のビデオシーケンスにビットをどのように効率的に配分するかについて取り組んでいる。これは、各ピクチャーに必要とされる多数のビットをどのように計算することができるかを扱い、このピクチャーが、ビットターゲットを達成するような方法でコード化されることを明らかにすることで、行うことができる。
【００１８】
いくつかの実施の形態において、アルゴリズムにより、将来のピクチャーの複雑さについて事前の情報を有し、この情報を用いて、ビットを、全ピクチャーを含むピクチャー内に最終的に配分するような、先読み特性の利点を用いてビットターゲットを生成することができる。時間遅れの条件がない場合、ピクチャーの前を動く先読み窓になることができ、Ｎ個の将来のピクチャーについて情報を得ることができる。また、開示した構成では、ターゲットビット数を達成するために以前のコーディングセッションからの結果を受けて反復法によりビットターゲットを使うことができる。この先読み窓は、動き補償プレフィルター又は以前のコーディングセッションからの入力を用いることができる。トランスコーディングの形態を持つ別の実施の形態において、ビデオ入力は、種々の可能なコーディングの仕組みを用いて先にエンコードされているビデオであり、先読み窓はこのビットストリームから直接入力を用いることができる。
【００１９】
本明細書は、過去及び将来のフレームピクチャー／フィールドピクチャー統計の進歩した処理による利益を受けることができ、単一のコーディングパス又は複数のコーディングパスにより動作するよう設計することができるレート配分アルゴリズム及びレート制御アルゴリズムの１以上のファミリーについて記載している。これらの構成では、いくつかのコーディング時間遅れをシステムの中に組み込むことができる、ピクチャー先読みを考えることもでき、またその利益を受ける。
【００２０】
一般に少なくとも２つのアルゴリズムファミリーを導入し記載する。すなわち、（ａ）先読みを有する、レート配分のためのアルゴリズム／処理のファミリー、及び（ｂ）これも先読みの利益を受けるが（ａ）のアルゴリズムとしての先読みに依存しない、平均ビットレート（ＡＢＲ）制御アルゴリズムのためのアルゴリズム／処理のファミリーである。各アルゴリズムのファミリーの少なくとも２つをここに記載する。アルゴリズムの第１のファミリーでは、２つの開示したアルゴリズムは、とりわけイントラレート制御の点で異なる。アルゴリズムの第２のファミリーでは、複雑性の高いＡＢＲ制御と複雑性の低いＡＢＲ制御の２つのアルゴリズムがそれぞれ記載されている。後者の２つのアルゴリズムは、とりわけ、少なくともレートファクターの決定に関して異なる。
【００２１】
本願にはいくつかのアルゴリズムが記載されており、このアルゴリズムはピクチャーの複雑さの測度に依存する。このピクチャーの複雑さは、複雑さを処理しフィルタリングする進歩した方法に沿って記載されている。また、量子化装置（ＱＰ）、ラグランジュ乗数、閾値及び量子化による丸め補正、及び階層構造ピクチャーのレート配分のような、コーディングパラメータは、包括的なシーケンス統計を包括的に考慮することによりさらに改善することができる。また、加算されたゲインにピクチャー内の視覚的な質の／配分されたビットレートを変更することのできるアルゴリズムが記載されている。
【００２２】
第１のファミリー中の第１のアルゴリズムは、将来のピクチャーの統計及び複雑さの測度にアクセスしておくことに依存する新しいレート配分アルゴリズムとなる。第１のファミリー中の第１のアルゴリズムは（例えば、先読みアルゴリズムと共にレート配分の項参照）、各ピクチャーのビットターゲットを生み出すことができる。このアルゴリズムは、ピクチャーをコード化するために用いるコーディングパラメータ（例えば、ＱＰ、ラグランジュ乗数）を選択する必要がない。この選択は、入力としてビットターゲットを取り、コーディングパラメータを生み出す、任意のレート制御モデルに潜在的に存在する課題となる。この任意のレート制御モデルに用いることのできるアルゴリズムには、とりわけ、２次モデル及びρドメインレート制御モデルが含まれる。一般に、このアルゴリズムは、レート制御がビットターゲットを対応する１組のコーディングパラメータに変換する限りにおいてどのようなレート制御を使ってもよい。
【００２３】
いくつかの実施の形態において、第１のファミリー中のアルゴリズムは、レート制御を使わなくてもよく、ピクチャー毎のビット数を決定し、その後、レート制御アルゴリズムを用いてビットをＱＰ値のようなコーディングパラメータにマップすることもできる。このコーディングパラメータは、望みのビットレートターゲットを達成するように適合させてもよい。このアルゴリズムの形態では、過去のピクチャーの先読み窓、及び／又は、複雑さを用いて、各ピクチャーにどれだけの数のビットを割り当てるかについて決定することができる。さらに、ピクチャーのビット数をどれだけの他のピクチャーがコード化され又はコード化されることが期待されるかに基づいて（例えば、ピクチャーをどのようにエンコードするかを選択するときにピクチャーに対する将来のインパクトを考慮して）調整することができる。このファミリー中の第２のアルゴリズムは、主として、イントラコード化されたピクチャーを考慮する点で、第１のアルゴリズムと異なる。
【００２４】
第２のファミリーのアルゴリズム（例えば、高い複雑さ及び低い複雑さの、先読みを行うＡＢＲレート制御の章参照）は、第１のアルゴリズムと比較して将来のピクチャー（例えば、先読み）に依存する割合を少なくすることができ、以前のピクチャーの統計に対する複雑な処理を採用することができる。これらのアルゴリズムは、レート配分及びレート制御の両方を行うことができる。ビットターゲットは各ピクチャーに用意されるわけではない。その代わり、これらのアルゴリズムは、現在のピクチャーを含めてすべてのコード化されたピクチャーの平均目標ビットレートを達成しようと試みる。これらのアルゴリズムは、将来のピクチャーからの情報を含んだ複雑さの推定値を採用することができる。これらのアルゴリズムの形態では、他のフレームから予測されないフレームを計算に入れることができる。これらのアルゴリズムは、平均ビットレート（ＡＢＲ）レート制御アルゴリズムとして特徴づけることができる。
【００２５】
第２のファミリーの第２のアルゴリズム（例えば、高い複雑さ及び低い複雑さの、先読みを行うＡＢＲレート制御の章参照）は、多くの類似性をこのファミリーの第１のアルゴリズムと共有することができ、いくつかの実施の形態では、計算の複雑さを下げるという利点をもつことができる。両方のアルゴリズムとも、レート配分及びレート制御の両方を行うことができ、将来のピクチャー情報及び以前のピクチャー情報の両方から恩恵を受ける。
【００２６】
アルゴリズムの第１のファミリーにおけるアルゴリズムが、局所的にどれだけのビットが配分されるかを局所的に調整することにより全体的なターゲットを完成することができる一方、第２のファミリーのアルゴリズムは、ピクチャーのビットの数を明示的に特定することを必要としないで全体的なターゲットを完成することができる。これらのアルゴリズムは、ピクチャー中に望んでいないアーティファクトをなくすためにピクチャー間の質を「平滑」にする作用を行うことができる。これらのアルゴリズムは、すべてのピクチャーに対して正確なビットターゲットを必ずしも完成する必要性なしに全体的なビットレートターゲット完成するためにコーディングパラメータを配分することができる。それ故に、第２のファミリーのアルゴリズムは、アルゴリズムの第１のファミリーより、ビット領域においてざらつきが小さくなる。言い換えると、アルゴリズムの第１のファミリーは、ビット領域で（例えば、ビットレートに関して）よく作用し、第２のファミリーのアルゴリズムは、特性領域で（例えば、歪みに関して）よく作用する。
【００２７】
第２のファミリーのアルゴリズムは、以前にコード化されたピクチャーからの統計を用いて目標ビットレートを取得することができるが、第２のファミリーのいくつかのアルゴリズムでは、いくつかの実施の形態でより高い複雑さを持つことができる（例えば、高い複雑さ、先読みを行うＡＢＲレート制御の章参照）。いくつかの実施の形態において、第２のファミリーのアルゴリズムは、どのようにＱＰ値を使うかのように、いくらかの類似性を持つことができる。これらのアルゴリズムのいくつかの先読みはゼロに低下させることができ、過去からの統計は将来を予測するために用いることができる。過去の情報は、シーケンスの最初から、又はシーケンスの複数のピクチャーを用いる不自然な窓からとすることができる。
【００２８】
第２のファミリーのいくつかのアルゴリズムは、現在のピクチャーの複雑さを分割して量子化パラメータを生み出すために用いることのできるレートファクターｆｃｕｒｒもまた有することができる。複雑さ及びレートファクターとの関係を決定するために用いる方法により、圧縮効率の点に関してさらなる改善を行うことができる。さらに、異なる特性の量を、イメージシーケンスの異なる場所に配分することができる。
【００２９】
時間的情報、空間的情報、及び輝度情報を組み込むことにより推定の改善が可能となる、新規な、複雑さ推定アルゴリズムについても説明する（例えば、複雑さの推定の章を参照）。
【００３０】
さらに、階層構造のピクチャーの場合における、複雑さ推定のための、新規なアルゴリズムが記載されている（例えば、階層予測構造でのコーディングパラメータの配分についての章を参照）。複雑さ推定アルゴリズムは、記載したレート制御アルゴリズムのすべてで役に立つのみならず他の既存の及び将来のレート制御アルゴリズムで役に立つ。１つの例では、階層構造のピクチャーの場合に効率的にコーディングパラメータを配分するためにアルゴリズムが提示されている。ビットをどう配分するのか、また改装レベル間でコーディングパラメータ（例えば、ＱＰｓ）をどのように調整するのか、そしてどのように依存性を判断するのかについての説明を行う。この特徴について、ピクチャーの重要性に基づき、ピクチャーのコーディングの決定方法において、決定を行うことができる。これは、ビットの数を保持するという利益又は特性を改善するという利益をもたらす。特性、及び／又は、ビットレートは、量子化装置を変化させることだけでなく、特に、ウェイト付けした予測及び直接モードタイプ、モーション予測及びモード決定のためのラグランジュ乗数、変換／量子化閾値及び適応丸めパラメータ、及び、フレームスキップのような、具体的なコーディングモード、及び／又は、コーディングツールの使用及び優先順位付けのような、他のパラメータを変化させることにより、制御することができる。
【００３１】
配分は、異なるレベルで行うこともできる。例えば、コーディングパラメータ（例えば、ＱＰ）は異なるユニット、及び／又は、小さなユニットに変更することができる。例えば、セグメンテーション処理は、シーンを異なる領域に分離すると考えることができる。これらの領域は、多くの既存のコーディックにみられるように重複なしとすることができるが、重複させてもよく、重複させることは、重複ブロックモーション補正技術を考慮するなら有益なことである。いくつかの領域はコード化することが簡単である一方、他の領域は複雑であり多くのビットを必要とする。同時に、異なった領域は、主観的に、又は、将来の領域、及び／又は、ピクチャーに対するコーディングの影響という点で、もっと重要である。
【００３２】
上述の複雑さは、フィルターすることができ、ソースコンテントの統計として構成することができる。フィルターすることには、過去のピクチャー及び将来のピクチャーを含むことができ、本願に開示した他のすべてのアルゴリズムと相乗的に作用するよう設計することもできる。
【００３３】
いくつかの実施の形態において、複雑さは、複数の又は並列の枠組みで決定される。複雑さは、絶対値差分和（ＳＡＤ）、平均２乗誤差（ＭＳＥ）、ビデオ品質指数（ＶＱＩ）、その他のような、種々の客観的あるいは主観的な歪み測定基準を用いて決定することができる。例示したように、これらの歪み測定基準が決定され、異なるビット配分、及び／又は、レート制御を行い、ピクチャー又は領域のエンコーディングのための適切なコーディングパラメータの選択の自由度を追加し、又は、所定のパラメータ又は１組のパラメータの信頼性を改善するために、並列して用いられる。具体的には、すべての又はほとんどの複雑さの測定基準が、同じコーディングパラメータを結果としてもたらすなら、この１組のパラメータを用いることの信頼性を改善することができる。これらの複雑さの測定基準は、ピクチャー又は領域を複数回、明確なコーディングパラメータセットでと共に並列的にエンコードすると考えることもできる。それに続く処理では、このピクチャー／領域の最終エンコーディングのためにどのコーディングパラメータセットを選択すべきかを決定する。一例として、目標ビットレートを最良の特性で達成するコーディングパラメータセットを考えている。別の例では、代わりに結合レート歪み（ｊｏｉｎｔ  ｒａｔｅ  ｄｉｓｔｏｒｔｉｏｎ）の最適な性能を結果的にもたらすコーディングパラメータセットを選択する。この情報もまた、続くエンコーディング経路で保存される。
【００３４】
いくつかの実施の形態において、圧縮効率は、最適なコーディングパラメータの、例えば量子化パラメータの、各ピクチャーに対する選択に依存することがある。この効率は、これらのコーディングパラメータをピクチャー自身の中に効率的に分配することによりさらに改善することができる。ピクチャーの特定の領域では、圧縮アーティファクトに対してより感度を上げることもできるしその反対も可能である。従って、これに対する対応は、明細書に記載している。
【００３５】
いくつかの実施の形態において、ノイズを、ピクチャー及びピクチャーのシーケンスに沿ってフィルターし平滑化することができる。複雑さの点に関して、可視なコーディングの差異を減少させるために他のフレームの情報を見ることにより、フレーム間のコーディング特性を改善することができる。異なったフレーム形式が分析され、シーン変更、全体的な輝度の変化に対抗するフェードイン／フェードアウト、２つの連続するシーンを繋ぐフェード遷移に対抗するクロスフェード、ピクチャーの部分的変化に対抗する局所輝度変化、及び全体的なカメラの動きに対抗するパン／ズームのような、そのような特定の形式に対して、パラメータが提供される（例えば、複雑さのフィルタリング及び特性ビットレートの考慮の章を参照）
空間的統計及び時間的統計における変化を考慮に入れるためにマクロブロック（ＭＢ）に基づくコーディングパラメータについて説明する（例えば空間的コーディングパラメータの適用の章を参照）。時間的な複雑さの測度（例えば、ＳＡＤ、モーションベクトル、ウェイト、等）、空間的な測度（例えば、エッジ情報、輝度特性及びクロミナンス特性、及びテクスチャ情報）を含む、異なる複雑さの測度を生成することができる。これらは、ついで、測度の重要さを決定する処理に用いられ、複雑さを生成し特定のコーディングパラメータ（例えば、量子化パラメータ値）にマップし、ついで、好ましいイメージ特性又は目標ビットレートに従いイメージ領域をコード化するために用いられる。特に、特定の領域の重要度を上げたり下げたりするために、その領域にさらに特性を加えるために、その結果を付加パラメータとして役立てることができる。この結果は、重要なものと感知されたものに基づいて、局所的な調整をもたらすことができる。
【００３６】
模範的なレート制御アルゴリズムの種々のステップをここに開示する。いくつかの実施の形態において、このレート制御のシステムには、ビデオエンコーダ、任意的な動作推定及び補償プレアナライザ、任意的な空間統計分析モジュール、コーディングパラメータを選択する１以上のレート制御モジュール、エンコーディング処理から役に立つ統計を集める１以上の統計モジュール、モーション推定及び補償（ＭＥＭＣ）プレアナライザから統計を集める任意的な統計モジュール、及び、任意的なＭＥＭＣプレアナライザと、ビデオエンコーダと、からの統計を融合し、レート配分と制御モジュールとを制御する、決定モジュールを含めることができる。トランスコーダの実施の形態において、統計は、開示した技術を用いて再エンコードすることのできるビットストリームから直接的に導き出すことができる。
【００３７】
このアルゴリズムと複雑さ推定とは、特定のコーディング標準に限定されず、コーディング標準以外で又はコーディング標準に加えて用いることができる。また、コーディングの依存性を、コーディング性能を向上させるためにビデオコーディングシステムのコーディングの仕組み間で、吟味することができる。
【００３８】
本特許出願に記載した技術は、ここに記載したレート制御アルゴリズムの２つのファミリーに適用できるだけでなく、他の既知のレート制御アルゴリズム及びその将来の変形にも適用できる。例えばトランスコーディングのいくつかの実施の形態において、ビットストリームですでに使用可能となっている統計は、正確なビット配分、及び／又は、改善された特性をもたらすここに開示した方法から「そのままで」用いることができるので、開示した技術を用いて複雑さの改善をもたらすことができる。
【００３９】
用語、「イメージ特性」は、フィールド内の１以上のピクチャー要素（例えば１以上のピクセル）を表す。用語、「ソースフィールド」は、イメージ特性に関する情報を決定又は導き出すことのできるフィールドを表す。用語、「中間フィールド」は、イメージ特性に関する情報をソースフィールドを参照して記載することのできる、ビデオシーケンス中のソースフィールドの時間的な前後にある、フィールドを表す。用語、「視差量推定」は、例えば、ビデオシーケンスの２つ以上のフィールド間、又は他のイメージ、イメージの領域、ブロック、又はピクセルと予測信号との差のモーションベクトル又は、他の動きを伴うパラメータ値を計算する技術を意味し、予測信号を効率的に予測、モデル化、又は記述することができる。視差量推定の一例は、モーション推定である。用語、「視差量推定」は、モーションベクトル又は、他の推定したパラメータの予測に関する値を表すこともできる。用語、「視差量補償」は、ビデオシーケンスの１以上の中間フィールドのイメージ特性の動き又はいくつかのパラメータを記述するためにソースフィールド中のイメージ特性の位置における空間的な変化を計算するためにモーション推定パラメータその他のパラメータが用いる技術を表す。視差量補償の１つの例では、モーション補償を行うことができる。上記用語は、ビデオコーディングコンセプト（例えば、イントラ予測及び輝度補正）に関連して用いることもできる。
【００４０】
ここに記載した方法及び技術は、１以上の構成部品を有するシステム、装置又は機構、機械、コンピュータプログラム製品、ソフトウェア、ハードウェア、及びそれらの組み合わせにより実施することができる。例えば、コンピュータプログラム製品はコンピュータ読み込み可能な媒体上で明らかにエンコードすることができ、データ処理を行う装置（例えば、データ処理装置）に、ここに記載した方法の１以上の動作を実行するための命令を有することができる。
【００４１】
１以上の実施の形態の詳細は添付図及び詳細な説明として論述する。他の特徴、形態、及び改良は詳細な説明と図面と特許請求の範囲のより明らかである。
【図面の簡単な説明】
【００４２】
【図１】ビデオエンコーダにおけるレート制御の概要の一例の実施の形態を示す。
【図２】予測コーディング構成の例を示す。
【図３】予測コーディング構成の例を示す。
【図４】予測コーディング構成の例を示す。
【図５】予測コーディング構成の例を示す。
【図６】ビデオコーディングシステムの例を示す。
【図７】プレアナライザであらかじめ計算された値からＳＡＤ推定を行う例を示す。
【図８】複数レート制御モデルの組み合わせの一例のフローチャートを示す。
【図９】Ｎ個のコーディングパラメータセットを用いてピクチャーのエンコーディングを行う例の線図を示す。
【図１０】異なるシーン形式のフレームの例を示す。
【図１１】先読み技術を用いたレート配分のアルゴリズム１における主ループを例示したフローチャートを示す。
【図１２】先読み技術を用いたレート配分のアルゴリズム１における全体的複雑さｃｔｏｔａｌの例のフローチャートを示す。
【図１３】先読み技術を用いたレート配分のアルゴリズム２における主ループの例のフローチャートを示す。
【図１４】先読み技術を用いたレート配分のアルゴリズム２における全体的複雑さｃｔｏｔａｌ及びｂｉｔｓｉｎｔｒａの例のフローチャートを示す。
【図１５】先読みを有する高い複雑さを持つＡＢＲレート制御のアルゴリズムの例のフローチャートを示す。
【図１６】先読みを有する低い複雑さを持つＡＢＲレート制御のアルゴリズムの例のフローチャートを示す。
【図１７】提案するレート制御アルゴリズムの種々のステップのいくつかの例の線図を示す。
【図１８】システムの例を示す。
【００４３】
種々の図における類似の参照番号及び参照記号は、類似する要素を示す。
【発明を実施するための形態】
【００４４】
より一般的な目的を達成するための異なる方法をもたらすために用いることのできる、一般的な構成及び技術、及びもっと具体的な実施の形態を以下に記載する。
【００４５】
ここで用いられるとき、用語、Ｉ＿ＳＬＩＣＥ、Ｐ＿ＳＬＩＣＥ、及びＢ＿ＳＬＩＣＥ は、それぞれ、Ｉコード化されたピクチャー、Ｐコード化されたピクチャー、及びＢコード化されたピクチャーを意味する。同じ概念がここで、同じ又は異なる形式の複数のスライスを用いてエンコードされたピクチャーにも拡張することができる。周期的なイントラ・ピクチャー（Ｉ＿ＳＬＩＣＥ）は、イメージシーケンスにおいてランダムアクセスとエラーからの復元力を改善するために、Ｉ＿ＳＬＩＣＥとしてコード化されたピクチャーを表す。Ｈ．２４６／ＡＶＣの場合は、Ｉコード化されたピクチャーを、本当のランダムアクセスを可能とするために、ＩＤＲ（ｉｎｓｔａｎｔａｎｅｏｕｓ  ｄｅｃｏｄｉｎｇ  ｒｅｆｒｅｓｈ）ピクチャーとして信号化することができる。あるいは、ピクチャーをノンＩＤＲとして信号化することができ、参照ピクチャーを、将来のＩコード化されたピクチャー の前にコーディング順序のピクチャーにコード化されることをさけるために、測度を採用することもできる。開示したレート制御アルゴリズムは、周期的なメトラコード化されたピクチャーについて説明することができる。
【００４６】
良好な視覚特性を保持し、伝達媒体又は目的とする媒体に組み込まれた特定の帯域幅の制約を満足するような目標ビットレートを達成することの目的は、最適化の問題への挑戦につながる目的に匹敵する。ビデオ圧縮システムの目標には、高い圧縮性能を達成すること、例えば、圧縮されたビットストリームの固定された目標ビット数に対してできるだけ低い主観的な、及び／又は、客観的な歪み（例えば、ピーク信号対ノイズ比、二乗平均エラー、等）を達成すること、及び／又は、特定の目標特性を与える最も高い圧縮を達成することが含まれる。ビデオビデオエンコーダは、対応するデコーダによりいったんデコードされた、圧縮されたビットストリームを生成し、表示することの可能な、任意的に処理された、そして受信サイドで見ることのできる、再構成されたビデオシーケンスを生み出すことができる。
【００４７】
保存媒体、及び／又は、伝達媒体により、このビットストリームは受信器に送られ、種々の方法でデコードされる。これらの通信モードの各々は、以下の要求を満足するような異なる時間遅れ要求及び帯域幅要求を持つことができる。
【００４８】
・ビットストリームは光ディスク又は磁気ディスク、又は、非揮発性コンピュータメモリ上で保存及び通信することができ、各メモリの形式によりそれぞれの帯域幅制限を有する。この帯域幅制限は、ある時間遅れを容認することができる。
【００４９】
・ユーザは、インターネット上のリモートサーバからビットストリームをダウンロードすることができ、上述のメモリ上のビットストリームの保存及び通信の場合と同様に、時間遅れを持って、後の時間にオフラインで再構成したビデオを見ることができる。
【００５０】
・ユーザは、ネットワークにより帯域幅が制限されている、リモートインターネットサーバからビットストリームを流すことができる。ユーザは、クライアントコンピュータ又はクライアント装置で、少しの時間遅れを持ってビデオストリームを見ることができる。
【００５１】
・このビットストリームは、ビデオ会議のようなリアルタイムの双方向ビデオ通信、又は、スポーツ又はニュースのような、実況イベントビデオストリームのどちらかを結果としてもたらすことができる。
【００５２】
いくつかの実施の形態において、リアルタイム通信は、サービスの質を満足するためには、端と端とで短い遅れを伴うことがある。実況イベントのストリーミングでは、リアルタイム通信より少し長い端と端との遅れを伴うことがある。光学ディスク及び磁気ディスクによる保存及びムービーのダウンロードは、コンピュータでのデコーディング及び表示が多くのバッファ領域を持つという利点があるので、多くの時間遅れを許容することができる。ムービーショー又はＴＶショーのインターネットストリーミングは実況イベントのストリーミングと比べたとき、さらなる時間遅れを起こすことがある。端と端との時間遅れは、通信チャンネルとビデオコーディング処理の関数となることがある。現代的なビデオコーダは、圧縮性能を向上させるために、現在のピクチャーのコーディングに先立ち将来のピクチャーをバッファすることができる。バッファすることにより、通信遅れと再生遅れが増加する。
【００５３】
データパイプの容量は、各通信媒体により変化することができる。光学ディスク及び磁気ディスクは、帯域幅の点で非常に寛大である。ブルーレイディスクやＨＤ−ＤＶＤディスクのような高容量記憶媒体は、ビット容量及びデコーダバッファサイズの両方で上限を持つ。オフライン再生は、ビットストリームがオフラインで見られるので帯域幅の点で制限されることがないかもしれないが、ハードウェア上の制限、バッファリング時間遅れ、及びハードドライブの記憶スペースに関する実際上の制限が存在することがある。インターネットストリーミング及びリアルタイム双方向ビデオ通信は、ビットストリームの通信に用いられるネットワークの帯域幅により制限を受けることがある。場合によっては、１つの通信媒体のために生成したビットストリームは、それとは異なる通信媒体を介して通信するには適切でないかもしれない。例えば、光ディスク（例えば、ＤＶＤ）に記憶させたビットストリームは、おそらく５Ｍｂｐｓのような高いビットレートで圧縮されているであろう。このビットストリームが不適切な帯域幅のネットワークを介して流れてきた場合、エンドユーザの体感では低下するかもしれない。
【００５４】
図１は、ビデオエンコーダ内のレート制御構成１００の実施の形態の例を示す。レート制御の機構により、帯域幅、時間遅れ、そのビデオシステムの特性上の制限を満たす圧縮したビットストリームを生成することができる。レート制御により、ビットレートの目標が合致し、デコーダの入力バッファがオーバーフロー又は欠乏することがない。任意的に、このレート制御により、所定のビットレートの目標と時間遅れ／バッファリング制限に対してできるだけ低い歪みを達成するよう試みることができる。
【００５５】
図１において、ビデオ入力１０２は、ビデオ入力１０２にモーション補償とイントラ予測ブロック１６０を加算する加算器１１６に送られる。加算器１１６からの出力は、変換ブロック１０４と結合し、量子化ブロック１０６に続く。量子化ブロック１０６及び変換ブロック１０４はまた、レート制御１５０からの入力を受け取る。変換ブロック１０４は、レート制御ブロック１５０により、以下のタスクのうちの１つを行うよう命令される。すなわち（ａ）変換マトリックスの調整、（ｂ）とりわけ、特定の変換された係数のサンプルの調整又はゼロ設定（閾値）である。量子化ブロック１０６の出力はＶＬＣブロック１０８及び逆量子化ブロック１１０と結合する。ＶＬＣブロック１０８から結果として生じたビットストリーム１２０、及び、ブロック、領域、又はイメージをエンコードするのに必要なビット数のようなエンコーディング処理に関する情報、及び、そのような決定により持ち込まれた歪みが、レート制御１５０に送られる。
【００５６】
レート制御はまた、モーション補償及びイントラ予測ブロック１６０からの入力を受け取り、出力をモーション補償及びイントラ予測ブロック１６０、モーション推定ブロック１６２、変換ブロック１０４、ループフィルター１６６、及び量子化ブロック１０６に送る。モーション補償及びイントラ予測ブロック１６０は、レート制御ブロック１５０により、以下のタスクのうちの１つを行うよう命令される。すなわち（ａ）選択的にイントラ予測モードを可能又は不可能にすること、（ｂ）とりわけ、特定のコーディングモード（例えば、スキップモード）を選択すること、である。モーション推定ブロック１６２は、レート制御ブロック１５０により、以下のタスクのうちの１つを行うよう命令される。すなわち（ａ）選択的にモーション補償ブロックサイズを可能又は不可能にすること、（ｂ）モーション補償の基準として特定のフレームを用いること、（ｃ）とりわけ、モーション推定検索範囲と双方向予測モーション推定の繰り返しの回数の調整、である。ループフィルターブロック１６６は、レート制御ブロック１５０により、以下のタスクのうちの１つを行うよう命令される。すなわち（ａ）インループデブロッキングフィルターのパラメータの調整、（ｂ）とりわけ、デブロッキングフィルターのスイッチを切ること、である。
【００５７】
逆変換ブロック１１２は、逆量子化ブロック１１０から入力を受け取り、出力を加算器１２６に送る。加算器１２６は、逆変換ブロック１１２及びモーション補償及びイントラ予測ブロック１６０から信号を受け取り、合計した信号をループフィルター１６６に送る。ピクチャー基準保存１６４は、ループフィルター１６６から入力を受け取り、出力をモーション補償及びイントラ予測ブロック１６０及びモーション推定ブロック１６２に送る。モーション推定ブロック１６２はまた、レート制御１５０から入力を受け取る。ループフィルター１６６はまた、レート制御１５０から入力を受け取る。ビデオ入力１０２はまた、モーション補償及びイントラ予測ブロック１６０及びモーション推定ブロック１６２の入力に送られる。
【００５８】
対応するビットストリームを、デコーダのバッファに関する２つの制約を満足するよう構成する。すなわち、受け取ったピクチャービットはバッファに適合することができ（さもなければ、バッファオーバーフローとなる）、デコーダがピクチャーをデコードすることができるように、デコーダがピクチャーをバッファから除去するとき、ピクチャーのすべてを受け取る（さもなければ、バッファオーバーフロー、バッファの欠乏の結果となる）。ピクチャーに配分された多数のビットに影響を与えることのできる多くの方法が存在する。使ったビットの数は、コーディングパラメータを変化させることにより制御することができる。具体的には、ブロックの残りの変換係数を量子化するために用いる量子化パラメータを変化させることにより、又は、全体ブロックをスキップさせ以前のブロックをそこにコピーする信号化のような、ビット数を少なくすることの代償として視覚的特性を犠牲にするコーディングモードを選択することにより、レート制御を適用することができる。レート制御は、また、モーション推定及びコーディングモードの決定の最適化を行うラグランジュレートの歪みでも値いられるラグランジュのラムダパラメータを変化させることにより、適用することができる。また、レート制御は、とりわけ、離散コサイン変換係数（ＤＣＴ）を限界化（出力ゼロ化）、又は、コードが明確なピクチャーを選択せず、代わりに、先にコード化されたピクチャーをその場所に表示させるために、選択されなかったピクチャーをスキップさせる信号を選ぶことにより（例えば、フレームスキッピング）、達成される。
【００５９】
レート配分及びレート制御は、量子化パラメータ値は、他の方法と比べたとき、特性／歪みとビット使用との両方に直接的に関係するので、量子化パラメータ値を変化させることにより達成することができる。レート制御のいくつかの目的は、ビットレート目標を達成し、エンコーダバッファ及びデコーダバッファの制約を満足し、任意的に、圧縮したイメージシーケンスの視覚的歪みを低くすること、であろう。さらに、これらの目的は、固定された計算の複雑さ及びメモリの量の制約の下で達成しなければならないだろう。量子化パラメータの選択では、簡単なアルゴリズム又は大局的なアルゴリズムを採用することができる。
【００６０】
サンプルレート制御アルゴリズムは、例えば、以下の手順を有する。ビデオシーケンス中の第１のピクチャーは、所定の量子化パラメータ値によりエンコードされる。エンコーダは、次に、結果得られたビット数を元のビットターゲットと比較することができる。結果得られたビット数がビットターゲットを越えている場合は、ビット使用量を減らすために、次のピクチャーの量子化パラメータを増加させることができる。一方、結果得られたビット数がビットターゲットより小さい場合は、次のピクチャーの量子化パラメータを減少させて、使用ビットを増やすことができる。境界にきたとき、上述の発見的アルゴリズムは、多かれ少なかれ目標ビットレートを獲得することができる。しかしビデオ特性は、部分的に、アルゴリズムの平易さに大きく影響を受ける。
【００６１】
レート制御アルゴリズムは、種々のコーディングツールを介して性能を達成することができる。現在のピクチャーのブロックは、あらかじめデコードされたピクチャーからモーション補償ブロックとして予測することができる（インター予測）。他のコーディング構成において、現在のピクチャーにおけるピクセルは、同じピクチャーからの情報を用いて予測することができる（イントラ予測）。これらの技術は、コーディングモードと称することができる。現在のピクチャーと予測（中間（インター）又は内部（イントラ））との間の誤差は、種々の異なる歪み指標を用いて測定することができる。一般に、（イントラ又はインター）予測誤差の平均２乗誤差（ＭＳＥ）、又は等価的に、誤差の平方和（ＳＳＥ）、平均差分絶対値（ＭＡＤ）、又は等価的に、絶対値差分和（ＳＡＤ）を用いることもできる。高いＳＡＤ誤差は、高いエントロピーをもつ予測誤差残差の結果であり、圧縮するためのコストが高くなる可能性があるので、ＳＡＤ誤差は、ブロックをエンコーディングする上での難しさの指標となる。このため、予測誤差を知ることにより、量子化パラメータの値をうまく選択する上での助けとなり、あるいは、一般に、ビットレートを制御する技術を適合させるのに役立つ。
【００６２】
レート制御パラダイムには、ビットを各ピクチャーに割り付け、同じピクチャーにビットターゲットを一組のコーディングパラメータに変換するレート制御アルゴリズム（又はモデル）によるレート配分アルゴリズムを含めることができる。実際の状況においては、目標ビットレートを達成するために変化するコーディングパラメータは、量子化パラメータＱＰである。２次方程式モデルは、ビットターゲットをＱＰに変換することのできるような１つの技術である。他のレート制御技術には、この２次方程式モデルより計算が複雑な、ロー（ρ）領域レート制御が含まれる。
【００６３】
Ｈ．２４６／ＡＶＣ、ＶＣ−１、及び、ＭＰＥＧ−２のようなビデオコーディックにおいて、ピクチャーを、プレディクティブ・ピクチャー（Ｐ・ピクチャー）、イントラ・ピクチャー（Ｉ・ピクチャー）、又は、バイ・プレディクティブ・ピクチャー（Ｂ・ピクチャー）としてコード化することができる。いくつかのコーディックは、その上に、スライス／ピクチャー形式（例えば、Ｈ．２４６／ＡＶＣ内のＳＰスライス及びＳＩスライス、マルチ予測ピクチャー、等）をサポートすることができ、フレーム及びフィールドコーディングピクチャー構造を考慮することができる。同じ形式のフレーム及びフィールドコーディングピクチャーは、異なるコーディングを変更する傾向がある。Ｉコード化されたピクチャーは、同じピクチャーのピクセルから中間予測を用いることができる。Ｐコード化されたピクチャー内のブロックを、先にエンコードした基準ピクチャーからモーション補償を用いて予測することもできる。これは、デコーディング順の過去のピクチャーある必要もなく、（ＭＰＥＧ−２又はＭＰＥＧ−４パート２の）表示順の過去のピクチャーである必要もないことに留意すべきである。この基準ピクチャーは、必ずしもピクチャー中の各ブロックと同じである必要はなく、基準ピクチャーの候補から選択することができる。Ｂコード化されたピクチャーは、複数の基準ピクチャーから選んだ２つのモーション補償した予測ブロックの線形結合と考えることができる。
【００６４】
将来コーディングモード及びピクチャー形式も、我々のレート制御でサポートすることができる。これには、とりわけ、例えば、（ａ）全体的なモーション補償又はアフィンモーションモデルを用いた現在のブロックの予測、（ｂ）複数の入力フレームから全体的なモーション補償を用いて作られたパノラミックフレームを用いた現在のブロックの予測、（ｃ）２つ以上のモーション補償予測の非線形結合、及び（ｄ）重複ブロックモーション補償、を含むことができる。
【００６５】
Ｈ．２４６／ＡＶＣにおける結合した予測は、同じピクチャー又は同じ予測方向（過去から、又は未来から）を起源とすることができる。ピクチャーをコード化するのに有効なコーディングツール（例えば、中間（インター）予測、又は内部（イントラ）予測）コーディングモードの点からは、Ｉコード化されたピクチャーは、本質的にＰコード化されたピクチャーの特別な例であり、Ｐコード化されたピクチャーは、Ｂコード化されたピクチャーの特別な例である。一般にＩコード化されたピクチャー、Ｐコード化されたピクチャー、及びＢコード化されたピクチャーは非常に異なったコーディング統計を持つことができる。同じ量子化パラメータとコンテンツに対して、Ｉコード化されたピクチャーは一般に、Ｐコード化されたピクチャーより多くのビットを必要とする一方、実質的な時間的相関があるイメージのシーケンスに対して、Ｂコード化されたピクチャーは、Ｐコード化されたピクチャーより、平均すれば、少ないビット数しか必要としない。また、ピクチャーは、プログレッシブフレーム又は１対のインターレースフィールドとしてコード化することができる。インターレースのカメラを用いて、テレビジョン作品として、作られたビデオコンテンツは、フィールドコーディング又はマクロブロック適応フレーム/フィールドコーディングが用いられる場合は、効率的に圧縮することができる。
【００６６】
圧縮したビットストリームの特性を最適化するシーケンスの統計を適用することができるコーディングのときに、ビデオコーディックは、フレキシブルな予測構成を用いることのができる。Ｈ．２４６／ＡＶＣにおいて、図２乃至図５に示したような、階層構造でコード化されたピクチャーとして知られる複雑な予測構造として組み立てることが可能である。これらの構造とレート制御との関連は、各スライス形式がコーディング構造における位置に影響を受けるので、重要となる。例えば、図２の構成２００に示したように、レベル２（２３０）のＢコード化されたピクチャーは、レベル２のＢコード化されたピクチャーと比較して、全く異なる特性／ビットレートトレードオフを持つことができる。
【００６７】
図２乃至図５は相互に類似している。それぞれの階層構造において、違うレベルがあり、最も基本となるレベルはレベル０（２１０）である。レベル０に属するピクチャーが最も高い優先順位を持ち、レベル０より高いレベルに属するピクチャーをデコードするのに必要となる。一般にレベルｌのピクチャーをデコードするためには、最初に、レベル０からレベルｌ−１までのレベルに属するピクチャーをデコードしなければならない。ＭＰＥＧ−２及びＭＰＥＧ−４のような、以前のコーディング標準では、エンコーディングピクチャーｎの後、２つの選択肢がある。すなわち、ピクチャーｎ＋１を予測しエンコードするか又は、ピクチャーｎ＋ｍを予測し、次いで、ピクチャーｎとピクチャーｎ＋ｍとをピクチャーｎ＋１からピクチャーｎ＋ｍ−１までの双方向予測に用いてエンコードするかのどちらかであり、ここでｍ＞ｌである。ｎ＋１からｎ＋ｍ−１までのピクチャーは、まず、ピクチャーｎとピクチャーｎ＋ｍがデコードされなければ、デコードすることができない。さらに、ピクチャーｎとピクチャーｎ＋ｍは、ピクチャーｎ＋１からピクチャーｎ＋ｍ−１までとは独立してデコードすることができる。従って、ピクチャーｎとピクチャーｎ＋ｍは、優先順位の高いレベル、レベル０を持つ一方、ｎ＋１からｎ＋ｍ−１までのピクチャーは、レベル１である。ｎ＋１からｎ＋ｍ−１までのピクチャーの各々は、それぞれ独立してデコードすることができる。しかしＨ．２４６／ＡＶＣにおいて、これらのｍ−１の内部階層構造ピクチャー内に複雑な依存関係があり得る。まずピクチャーｎ＋ｍをエンコードした後、ピクチャーｎをコード化することも可能である。ｍの値は、エンコードしたシーケンスの１つのセクションから他のセクションに変化することができる。レベル０のピクチャーは「アンカー」ピクチャーと称することができる。
【００６８】
図３は、予測構造の他の例を示す。ピクチャーフレーム０がコード化された後、エンコーダは、ピクチャーフレーム８を予測しコード化する。先にコード化されたピクチャーを参照として用いて、Ｉコード化されたピクチャー、Ｐコード化されたピクチャー（表示している）、又は、Ｂコード化されたピクチャーを用いることで予測及びコーディングを行うことができる。次いで、ピクチャー４を、Ｂコード化されたピクチャーとして、ピクチャー０及び８を参照として用いてコード化することができる。ピクチャー４は、ピクチャー０及び８を参照より優先順位が低く、従って、異なるレベル、レベル１（２２０）、に属する。ピクチャー２を、Ｂコード化されたピクチャーとして、時間的に最も近いピクチャーであるピクチャー０及び４を参照として用いてコード化することができる。ここで、時間的予測距離は、一般に圧縮性能に直接影響を与え、参照が予測したピクチャーに近ければ近いほど、相関が高くなり、予測される残余が少なくなるという結果になる。ピクチャー２は、ピクチャー４より優先順位が低く、異なるレベル、レベル２（２３０）に属す。なお、従来のビデオコーディング（例えば、ＭＰＥＧ−２）からの他の新機軸として、コード化されたピクチャーを参照として保持することができ、これにはＢコード化されたピクチャーが含まれる。
【００６９】
いくつかの実施の形態において、ピクチャー４は、参照ピクチャーとして一時メモリに蓄えておかなければならない。さもなければ、図４に示すように、ピクチャー２は、圧縮性能を下げてしまう、距離の離れたピクチャー８から予測しなければならないかもしれない。従って、ピクチャー２もまた、参照ピクチャーとして一時メモリに蓄えることができ、図５に示すように、ピクチャー１の双方向予測としてピクチャー０に関連して用いられる。次に、ピクチャー３が、参照ピクチャー２及び４を用いて、コード化することができる。ピクチャー１及び３は、ピクチャー０、２、及び４より優先順位が低く、従って、低いレベル（例えば、レベル３、図３の２４０、レベル２、図４及び図５の２３０）に属す。図３に示すように、同じ処理が、続いて、例えば、ピクチャー５、６、及び７で繰り返される。
【００７０】
上記説明ではＢコード化されたピクチャーについて説明したが、ピクチャー１から７は、Ｉ、Ｐ、又はＢ形式の複数のスライスを用いることを含む、コーディック内の有効などのようなコーディングでエンコードすることもできる。さらに、ピクチャー１、３、５、７を、モーション補償予測に用いることがないことを意味する使い捨てピクチャーとして送信することができる。ピクチャー形式のこの使用は、メモリ資源を節約し、時間的拡張性をもたらす。用いられる階層構造は、恣意的であり、２進法へ分解に従う必要がない。このような構成は図４及び図５に示されている。例えば、図５乃至図７は、ピクチャー７がＢコード化されたピクチャーとしてコード化することができるように、ピクチャー４及び８を用いて、図３では、違うようにコード化することができる。ピクチャー７は、レベル２に属する参照として一時メモリに蓄え留ことができる。次に、ピクチャー６は、参照としてピクチャー４及び７を用いて、Ｂコード化されたピクチャーとしてコード化することができる。最後に、ピクチャー５が、Ｂコード化されたピクチャーとして、ピクチャー４及び７を参照としてコード化することができる。この例では、ピクチャー５及び６は、レベル３に属し、使い捨てのピクチャーとして信号化することができる。
【００７１】
実際のビデオビットストリームは、具体的なシーンの統計に適する、コード化されたピクチャーの強さの結合を用いて生成することができる。一般に、シーケンスが固定的であればあるほど、階層構造が長くなる。異なる長さと異なる予測構成を有する階層構造は異なる速度歪み特性を有する。加えて、ビデオコンテンツは、許容できる特性レベルを維持するためには時間と共に変化し、ビットレート要求を変更する。単一のシーン内でもいくつかのピクチャーは圧縮が容易となる一方、他のピクチャーは同じ圧縮比で圧縮による目に見えるアーティファクトを生じさせることがある。
【００７２】
本願に開示したアルゴリズムは、（数秒間の）制限のあるピクチャー先読みを考慮することができるビデオエンコーダのレート配分及びレート制御を扱うことができる。マルチパスアルゴリズムは、これらのアルゴリズムが全体的なシーケンスのコーディング統計の知識から利益を受けることができるので、非常に高い性能を発揮することができ、それに従い、視覚的性能を最大限にするためにビットを割り当て、消費することができる。既存の高性能シングルパスレート制御アルゴリズムは、現在のピクチャーに対する量子化パラメータを選択するために過去のコーディング統計を用いることができる。これらのアルゴリズムは、目標ビットレートを達成するためにＱＰを変更するために用いられる現在のピクチャーについての複雑さの測度を採用する。一例として、ｘ２６４オープンソースＨ．２４６／ＡＶＣエンコーダは、その複雑さの測度として、ダウンサンプルしたビデオを用いて絶対変換したモーション補償を行った差分の和を採用することができる。
【００７３】
本願に開示した構成は、コーディング時間遅れをシステム中に組み込むことのできる、ピクチャー先読みを考慮しその利益を受けることができる。このようなビデオコーディングシステムについては、図６に例示されている。
【００７４】
図６は、開示したレート配分及びレート制御アルゴリズムに用いることのできるビデオコーディングシステム６００の例を示す。図６において、入力ビデオ６１０は事前分析ブロック６２５、及び、ダウンサンプリングが必要な場合は、任意的に、ダウンサンプリングブロック６２０に送られる。ビデオの事前分析を行った後、時間遅れブロック６３０、ビデオエンコーダ６４０、及びプレフィルター６３５は事前分析の出力を受け取る。時間遅れブロック６３０は、任意的なプレフィルター６３５、及び／又は、ビデオエンコーダ６４０に対する時間遅れを事前分析ブロック６２５の出力に付加することができる。ビデオエンコーダ６４０の出力で、出力ビットストリーム６９０を取得する。
【００７５】
［複雑さの推定］
開示したレート配分及びレート制御アルゴリズムのいくつかは、ciとして表される、現在のピクチャーの複雑さの測度に基づき、決定を行う。現在のピクチャーの複雑さにより、ピクチャーが所定の忠実度のレベルでコード化されているかどうかが示される。ピクチャーの複雑さは、一般に、時間、空間、及び輝度特性の関数であり、以下のように表現される。
【００７６】
ｃi＝g(ｃi,temporal,ｃi,patial,ｃi,luminance)
関数g()は、時間、空間、及び輝度の複雑性の線形結合又は非線形結合とすることができる。例えば、ピクチャーが非常に動作の激しいシーンに属する場合、人の視覚システム（ＨＶＳ）により時間的マスキングがかけられるので、詳細は目に見えないであろう。従って、よりビットを必要とするシーンのためにビットを節約するようピクチャーをコード化することが有益になる。例えば、現在のピクチャーは比較的動きのないシーンに属すると、複雑さの測度が示している場合は、圧縮アーティファクトが平均的な観察者に見えるので、詳細を保存する。これらのピクチャーは、他のピクチャーよりはるかに高い忠実度でコード化される。ここでは、ほとんどが時間的マスキングについて説明しているが、複雑さは、空間的マスキングの関数とすることもできる。高い空間的な変化とテクスチャとを有するシーンは、ピクチャーの空間的構成（例えば、エッジ、テクスチャ）によりさらに圧縮アーティファクトをマスクすることができる。各ピクチャーの圧縮性能に影響を与える３番目の要素は、輝度マスキングであろう。一般に、高い平均輝度（明るいシーン）を持つピクチャーは、圧縮アーティファクトをマスクすることができる。平均輝度が低いピクチャーに対して反対のことが言え、圧縮アーティファクトは同じ圧縮比ではよく見える。従って、暗いシーンでは、明るいシーンに比べて、一般に、高い忠実度の圧縮比を適用すべきである。
【００７７】
ピクチャーの複雑さは、将来のピクチャーの複雑さ又は過去のピクチャーの複雑さの関数とすることができる。コーダは、モーション補償予測を採用するので、ピクチャーが所定の特性レベルコード化され、将来のピクチャーにおいて、コーディング順序に関して十分相関が取れていれば、この初期特性をこれらのピクチャーに伝播させることができる。この場合、将来のピクチャーが現在のピクチャーと十分関連付けられるかどうかを予測することは有益であろう。所定の条件を満足する場合、このピクチャーは、レート制御要求を与えた隣接するピクチャーと比較したとき、より良質なレベルでコード化される。複雑さをフィルタリングする上でのさらなる情報について、以下に、複雑さのフィルタリングとＱＰ／ビットレートの考慮について記載されている。時間的複雑さは、現在のピクチャーのモーション補償予測を生み出すモーションベクトルの分散及び平均値の関数とすることができる。
【００７８】
平均輝度、空間的分散、及びエッジ情報のような複雑さの測度はエンコーダで測定される。しかし、時間的複雑さ／マスキング測度は、モーション推定とモーション補償を必要とし、計算の複雑さの点からは費用のかかるものとなりえる。１つの選択肢は、モーション補償を行うためにゼロモーションベクトルを使うことであるが、このようにしても、複雑さの推定及びその性能の信頼性を大幅に減少させる可能性がある。別の実施の形態では、モーション推定及びモーション補償は、低めの空間分解能及び／又は低めの時間分解能のシーケンスを考え、これらの測定量を生成する。モーション推定は、ブロック又は領域に基づくような、又は、ピクセル再帰的技術、及び伝達、アフィン、及び放物線、その他を含むモーションモデルを有するような、種々のビデオ処理アルゴリズム内のエンコーダ内で行うことができる。また、モーション推定及びモーション補償を含む別のプレアナライザを介してこの分析を既に行っておくことのできる外部の機構を経由して、この情報を用意することができる。プレアナライザは、モーション補償したＳＡＤ、及び／又は、現在のピクチャーに対する、及び／又は、所定の将来の基準ピクチャー及び所定の過去の基準ピクチャーに対する時間的相関を計測する他の客観的主観的測定基準を決定することができる。
【００７９】
他の実施の形態において、プレアナライザをビデオデコーダに置き換えることができる。このデコーダは、例えば、ＭＰＥＧ−２、ＭＰＥＧ−４パート２、ＶＣ−１、Ｈ２６３、又はＡＶＣデコーダのうちのいずれかのデコーダ形式とすることができる。このデコーダは、サポートするフォーマットのビットストリームをデコードすることができ、モーションベクトル、ＤＣＴ係数、内部（イントラ）コーディングモード及び相互コーディングモード、その他を含む種々のビットストリームからの情報をシステムに供給することができる。この情報は、プレアナライザの複雑さ測定基準の代わりの複雑さ測定基準として用いることができる。
【００８０】
他の実施の形態において、プレアナライザは、他のコーディング統計のなかで、モーション補償予測誤差に加えて、上記の統計をすべて供給することのできる、ビデオエンコーダの事前コーディング経路又は複数の事前コーディング経路で置き換えることができる。このコーディング経路は、現在のピクチャーに制約を受けることがあり、あるいは、全体のビデオシーケンスの全コーディング経路とすることができる。これは、複数経路ビデオエンコーダ内の複数コーディング経路の１つとすることができる。異なったソース、例えばプレアナライザ、トランスコーダ、及び以前のエンコーディング経路、からの統計は、さらに性能を向上させるために、併せて用いることもできる。
【００８１】
プレアナライザにより決定された歪み指標（例えば、ＳＡＤ）がコーディング〔符号化〕処理で用いられるものと同じ基準ピクチャーを用いなかったモーション〔動き〕推定および補償処理に対応するものであったことが生じるかもしれない。コーディング期間中に、コーディングに用いる基準ピクチャー及び時間的予測距離は、ソースの統計に合わせてよりよく調整するために変化することができる。例えば、非常に激しい動きで特徴付けられるシーンでは、時間的予測距離は短くすることができる一方、緩やかな動きでは、時間的予測距離は長くできる。実際のコーディング処理に使うピクチャー／基準に対応する測定基準〔メトリック〕を予測するために、あらかじめ計算された複雑さ測定基準〔メトリック〕を、例えばＳＡＤを、変更することがありえる。この変更は、時間的複雑さ
の推定を改善することができるので、計算の複雑さが少し増大させるが、圧縮性能も改善することができる。
【００８２】
実際のコーディング状況に近似する例において、プレアナライザは、各ピクチャーに対
して４つの異なったモーション補償した歪み指標（例えば、ＳＡＤ）を生成することができる。各測定基準は、単一基準ピクチャーｉ−１、ｉ−２、ｉ＋１、及びｉ＋２からの単方向予測したモーション補償予測に対応する。ビデオシーケンスをコード化するために用いる予測構造は変わることができる。ＳＡＤ統計は、以下のような特別なコーディング構造に適している。
【００８３】
（ａ）ＩＰＰＰＰＰコーディング構造。時間的予測距離は、１ピクチャーとすることが
できる。統計ＳＡＤi（ｎ）、ここでｎはｉ−１、ｉ−２、ｉ＋１、及びｉ＋２のうちの
１つ、が与えられると、時間的複雑さｃi,temporalは、ＳＡＤi（ｉ−１）に等しくなるよう設定される。
【００８４】
（ｂ）ＩＢＰＢＰＢＰコーディング構造。時間的予測距離は、１つのＰコード化されたピクチャーからその次までの２つのピクチャーを伴うことができる。時間的複雑さは、ＳＡＤi（ｉ−２）に等しくなるよう設定される。
【００８５】
（ｃ）ＩＢＢＰＢＢＰコーディング構造。時間的予測距離は、３に等しくすることがで
きる。この具体的な例では、しかしながら、プレアナライザから得られる歪み指標は、以
前のピクチャー（ｉ−１）及びその前のピクチャー（ｉ−２）の基準のみを参照するよう
制約されることができる。従って、時間的複雑さ（例えば、ＳＡＤ）の推定は、時間的に値を外挿することにより実行できる。この構造では、例えば、以下の複雑さ推定量が採用できる。
【００８６】
（ｉ）ｃi,temporal＝SADi(i-1)+2×(SADi(i-2)-SADi(i-1))
（ii）ｃi,temporal＝SADi(i-2)+(SADi(i-2)-SADi(i-1))
（iii）ｃi,temporal＝3×SADi(i-1)
（iv）ｃi,temporal＝α×SADi(i-1)+β×SADi(i-2)+γ
ここで線形モデルの３つのパラメータ（α、β、及びγ）は、（ｉ）及び（ii）のモデルに類似する値で初期化することができ、次いで、例えば線形回帰を用いてコーディング統計から更新することができる。
【００８７】
（v）ｃi,temporal＝α×SADi(i-1)+β×SADi(i-2)+δ×SADi2(i-1)+ε×SADi2(i-2)+γ
ここで、２次方程式のモデル（α、β、γ、δ、及びε）は、例えば線形回帰を用いてコーディング統計から更新することができる。
【００８８】
しかし、上記推定は、近接するピクチャー、ｉ−１、ｉ−２、ｉ＋１、及びｉ＋２のＳＡＤを用いることにより、さらに、改善することができる。例えば、ＳＡＤ値を用いて、時間的な複雑さは以下のように推定することができる。すなわち、
ｃi,temporal＝SADi(i-2)+SADi(i-3)
この一般的な複雑さ推定装置は、以下のようになる。
【数１】
0005427785.tif 000002
【００８９】
変数ηは、とりわけ、ビットレート及びバッファリングの制約のような種々の要素に応じて変動することがあり、ウェイトＷn,m及びＶn,mは種々の方法で初期化される。これらの変数ηは、過去のコーディング統計を用いて、及び、とりわけ、線形回帰のような技術を用いて、順応的に更新されることもある。パラメータＮ及びＭは、プレアナライザでのモーション推定時に用いられる参照ピクチャーの番号により制約を受ける。過去の２つのピクチャーと将来の２つのピクチャーとが使われるとしたら、Ｍ＝２であり、ＮはＭと予測距離ｄの両方に依存する。いくつかの実施の形態ではｄは３に設定される。パラメータＮはＮ＝ｍａｘ（ｄ，Ｍ）に設定することができ、ウェイティングパラメータは回帰アルゴリズムにより闇雲に更新されず、そのままで用いられる。このパラメータは、むしろ、シーンの特性解析に基づき更新される。例えば、ピクチャーがシーン変動として指定される場合は、ウェイトはゼロに設定される。代替的に、ピクチャーが予測され、参照ピクチャーが異なるシーンに属する場合は、例えばシーン変化が２つのピクチャーの間で起こる場合は、ウェイトをゼロにしてしまうこともできる。予測ピクチャー又は参照ピクチャーのいずれか一方がピクチャーｉと同じシーンに属さない場合は、同様の制約を適用することができる。
【００９０】
（ｄ）ＩＢＢＢＰＢＢＢＰコーディング構造。時間的予測距離は、４に等しくすることができる。状況は、有用な歪み指標が、２以下の距離を持つ参照ピクチャーを考える、（ｃ）の場合に類似する。時間的複雑さを推定するために用いることのできる１つの解は、上記（ｃ）（v）で示したような、５変数の２次法的式も出るを用いる、一般的複雑さ予測装置である。使用可能な他の予測装置には以下のものが含まれる。
【００９１】
ｃi,temporal＝2×SADi(i-1)+3×SADi(i-2)
ｃi,temporal＝2×SADi(i-2)
ｃi,temporal＝3×SADi(i-2)-2×SADi(i-1)
ｃi,temporal＝SADi(i-2)+SADi-2(i-4)
多数の組み合わせが可能であるが、すべて（ｃ）（v）で扱ったような一般的複雑さ予測装置の特別な場合である。
【００９２】
（ｅ）ＩＢＢＢＢＢＰコーディング構造。時間的予測距離は、６に等しくすることができる。この場合も、状況は、有効なＳＡＤが、２以下の距離を持つ参照ピクチャーを用いる、（ｃ）の場合に類似する。時間的複雑さを推定するために用いることのできる１つの解は、上記（ｃ）（v）で示したような一般的複雑さ予測装置である。使用可能な他の予測装置には以下のものが含まれる。
【００９３】
（ｉ）ｃi,temporal＝4×SADi(i-1)+5×SADi(i-2)
（ii）ｃi,temporal＝2×SADi(i-2)+SADi(i-1)
（iii）ｃi,temporal＝5×SADi(i-2)-4×SADi(i-1)
（iv）ｃi,temporal＝SADi(i-2)+SADi-2(i-4)+SADi-4(i-6)
多数の組み合わせが可能であるが、すべて先に（ｃ）（v）で説明したような一般的複雑さ予測装置の特別な場合である。
【００９４】
上記時間的複雑さの決定は、主として、圧縮したビットストリーム中で最も高い優先順位（レベル０）に属するピクチャー（例えば、廃棄することができず、省略なしてディジタルコードすることが必要となるもの）に有効である。同じ決定が、廃棄することができル、すなわち低い優先順位のＰコード化されたピクチャー又はＢコード化されたピクチャーに適用することができる。低い優先順位を持つピクチャーが廃棄されたとき、イメージシーケンスはそれでも全長に亘ってデコードされるが、低いフレームレートでデコードされる。単方向予測可能なＳＡＤ統計が可能でありさえすらば、上記複雑さ予測は、以下の置き換えにより、最も優先順位の高いＢコード化されたピクチャーで有効とすることができる。
【００９５】
SADi(reference）←→min(SADi(R0(i),SADi(R1(i)))
項(R0(i)及びR1(i)は、ピクチャーｉの双方向に用いられる２つの参照項の指標を意味する。このシナリオにおけるＳＡＤ指標は、単方向予測可能なモーション推定のみに基づくことができる。しかし、双方向統計を利用できる場合は、双方向予測可能なＳＡＤを以下の置き換えに用いることができる。複雑さ予測の構成は両方の場合で同じである。
【００９６】
しかしながらＩコード化されたピクチャーの複雑さは、もはや時間的相関関係に基づかなくてもよい。Ｉコード化されたピクチャーの複雑さを、分散、エッジ、及びテクスチャ情報のような空間的特性に依存させることができる。複雑さは、ｂx×ｂyブロック（例えばｂx＝by＝８）の分散のウェイト付けした平均、グラデーションフィルター（例えば、Sobelフィルター又はPrewittフィルター）、及び、テクスチャ特性として決定することができる。例えば、テクスチャ情報が、ブロックの変換係数の全部又は一部（例えば、高周波）の２乗和を考慮することにより導き出すことができる。いくつかの実施の形態において、変換は、離散コサイン変換又は他の変換、例えば、アダマール変換、整数ＤＣＴ近似、カルーネンレーベ変換（ＫＬＴ）、又はウェーブレット変換、とすることができる。複雑でないアプリケーションでは、Ｉコード化されたピクチャーの複雑さを、分散、及びエッジ情報のみに依存させることができる。
【００９７】
複雑さを推定することができ、現在のピクチャーのコーディングパラメータの割り付けに影響を与えることができる。ピクチャーをコード化した後、コーディング統計を集めて、推定した複雑さとコーディング後の実際のものとの関係を分析する後退的モデルに基づく、初期の複雑さの推定を修正することができる。修正した複雑さを続くコーディング順序でフィルタリングするときに用いることができる。複雑さのフィルタリングは、以下の章で詳細に説明する。任意的に、修正した複雑さを、イメージシーケンスをコード化するために複数コーディング経路を用いるときに、次のコーディング経路として用いることができる。
【００９８】
図７は、時間的予測距離が４に等しいコーディングの複雑さの推定の例を示す。図７において、上部３列のシーケンス７２０、７４０、７６０は統計（例えば、ピクチャー間の歪み又は複雑さ）として知られているが、特定のピクチャーがどのように相互に関係しているかの情報ではない場合がある（ピクチャーｎがどのようにピクチャーｎ＋３と関連しているかについての明確な知見はない）。しかし、他のピクチャーとの間の情報はあるかもしれない。例えば、ｎ＋１のｎ＋３に対する依存性、及び、ｎとｎ＋１との間の情報があるかもしれない。この情報を用る、例えばｎとｎ＋３との間の統計を決定するための、外挿法があるかもしれない。最下段のシーケンス７６０は、どのように情報（例えば、複雑さ、又は、歪み）がｎとｎ＋３との間で決定されるのかを示している。言い換えれば、未知の複雑さ（例えば、ｎと比較したｎ＋３）を隣接するピクチャー（例えば、ｎからｎ＋１からｎ＋２）の情報を考慮することにより決定することができる。
【００９９】
図７において、複雑さを、（図６に示すように）プレアナライザであらかじめ計算しておいた特別な値中に、数値として抽出することができる。図７は、ＳＡＤ 値を有するピクチャーのいくつかのシーケンス７２０、７４０、７６０、及び７８０を示す（シーケンス７２０について、ＳＡＤｎ（ｎ−２）７２２、ＳＡＤｎ（ｎ−ｌ）７２４、ＳＡＤｎ（ｎ＋ｌ）７２６、ＳＡＤｎ（ｎ＋２）７２８の値、シーケンス７４０について、ＳＡＤｎ＋１（ｎ−１）７４２、ＳＡＤｎ＋１（ｎ）７４４、ＳＡＤｎ＋１（ｎ＋２）７４６、ＳＡＤｎ＋１（ｎ＋３）７４８の値、シーケンス７６０について、ＳＡＤｎ＋２（ｎ）７６２、ＳＡＤｎ＋２（ｎ＋ｌ）７６４、ＳＡＤｎ＋２（ｎ＋３）７６６、ＳＡＤｎ＋２（ｎ＋４）７６８の値、シーケンス７８０について、ＳＡＤｎ＋１（ｎ−ｌ）＋ＳＡＤｎ＋１（ｎ＋３）７８２、ＳＡＤｎ＋３（ｎ＋２）＋３（ＳＡＤｎ＋３（ｎ＋ｌ）−ＳＡＤｎ＋３（ｎ＋２））７８４）。図７において、過去の情報（例えばＳＡＤｎ（ｎ−２）７２２、ＳＡＤｎ（ｎ−ｌ）７２４）と将来の情報（例えばＳＡＤｎ（ｎ＋ｌ）７２６、ＳＡＤｎ（ｎ＋２）７２８）は、シーケンス７２０のフレームｎ７２５の関連情報についてのＳＡＤ推定に用いることができる。いくつかの実施の形態において、過去の統計（例えばＳＡＤｎ（ｎ−２）７２２、ＳＡＤｎ（ｎ−ｌ）７２４）と将来の統計（例えばＳＡＤｎ（ｎ＋ｌ）７２６、ＳＡＤｎ（ｎ＋２）７２８）はフレームｎ７２５をコード化するときに既知となる。統計は、歪みのような誤差を推定するために用いることができる。いくつかの実施の形態において、他のピクチャー２どのように１つのピクチャーが関連するかのような、いくつかの複雑さは既知となっていないかもしれない。しかし、このような未知の複雑さは他の既知の複雑さに基づき推定することができる。シーケンス７８０は、他の既知の統計との依存性を用いて、ピクチャーｎ＋３（例えばｎ＋１（ｎ＋３））と比較してピクチャーｎ−ｌの複雑さの推定をどのように形成するかを示している。例えば、ＳＡＤｎはシーケンス７２０にあり、ＳＡＤｎ＋１は、シーケンス７４０にあり、ＳＡＤｎ＋２は、シーケンス７６０にあり、シーケンス７８０は、シーケンス７２０、７４０、７６０とＳＡＤｎ＋３とを結合させたものである。
【０１００】
シーケンス７２０、７４０、及び７６０において、フレームｎ７２５、７４５、７６５は、推定値に近い範囲内にあることが知られている。例えば、隣接するピクチャーはお互いに似ているであろう。この類似性は、将来これらのピクチャーをコード化するのがどれだけ複雑化に関連する可能性がある。これは、レート配分の情報を提供することができる。コーディングが複雑であればあるほど、レート制御及びレート配分のためにより多くのビットが必要となるであろう。ピクチャーｎと比べて遠いピクチャーの情報は、他のシーケンス（例えば、シーケンス７８０について、ＳＡＤｎ＋１（ｎ−ｌ）＋ＳＡＤｎ＋１（ｎ＋３）７８２、ＳＡＤｎ＋３（ｎ＋２）＋３（ＳＡＤｎ＋３（ｎ＋ｌ）−ＳＡＤｎ＋３（ｎ＋２））７８４）からの歪み値に数学的演算を施すことにより推定することができる。
【０１０１】
モーション補償されたＳＡＤが時間的複雑さを推定するために上記で用いられたとしても、上記方法では、空間的相関及び時間的相関を計測する多くの客観的及び主観的指標を適用することが可能である。予測誤差の知覚インパクトを測定する指標は、ＳＡＤの代わりに用いることができる。例えば、輝度の高いピクセル値における誤差は、輝度の低いピクセル値における誤差ほど目に見えないかもしれない。さらに、従来のＳＡＤ指標は、ブロック基準となっており、予測されたブロック内の歪みを計測する。新しい技術では、ブロック境界に沿ってゆがみを計測する指標を採用することができるので、ブロック内の歪みを最小限にすることができるばかりでなく、ブロック間の歪みも同様に最小限にすることができる。後者はアーティファクトをブロックすることができるので、重要となるであろう。さらに、上述の方法は、時間的にちらつくアーティファクトをも減少させるために時間方向に拡張した歪み指標を用いることができる。例えば、現在のブロックの誤差を最小限にすることは、現在のブロックの予測誤差と予測したブロックに最も相関のある以前のピクチャーにおけるブロックの予測誤差との差を最小限にするという観点から見ると、十分ではないかもしれない。
【０１０２】
現在のピクチャーの複雑さを予測する指標を置き換えることはさておき、複数の指標を、候補となる複数のコーディングパラメータのセットを導き出すために用いることができる。これから、他の指標を最小化することにより最適なセットの選択を行うことができる。これには、異なる複雑さ指標を利用する別のレート制御モデルを保持することを必要とする。例えば、１つのレート制御モデルでは、ＳＡＤを用いてコーディングパラメータを導き出すことができる一方、他のレート制御モデルでは、時間的ちらつきを最小化するＭＳＥ又は指標を用いてコーディングパラメータを導き出すことができる。ある条件（例えば、他の包括的な指標）の下で動作する決定モジュールは、２つの候補となるセットからコーディングパラメータのおおよそのセットをを選択することができる。このコーディングパラメータは線形形式又は非線形形式の結合とすることができる。例えば、両方の指標がコーディングパラメータ、例えば、量子化パラメータＱＰのための値、である場合は、他の操作は必要でなくなるかもしれない。さもなければ、２つの平均、最小（楽天的配分）、最大（悲観的配分）を選択することができる。代替的な実施の形態において、２つの指標が結果として異なるパラメータとなった場合、追加の指標又は複数の追加の指標を、最適なコーディングパラメータの決定のために考慮することができる。他の実施の形態において、Ｎ個の可能性のあるコーディングパラメータ中のＮ個の指標を用いると仮定すれば、これらのＮ個の中で最も生じやすいパラメータを選択することができる。この方法の一般的な線図を図８に示す。
【０１０３】
図８は、最終的なコーディングパラメータセットを導き出すための異なる複雑さ指標に基づく複数のレート制御モデルを結合したもののフローチャート８００を示す。現在のフレームのコーディングを開始し８１０、バッファ状態、残りビット、及びビットレート目標を設定する８２０。１、２、・・・、ｎから複雑さを決定し８３０、複雑さ１のコーディングパラメータを決定し８３２、複雑さ２のコーディングパラメータを決定し８３４、複雑さｎのコーディングパラメータを決定する８３６。次いで、最終コーディングパラメータを選択し８４０、デコードしたピクチャーを生成する８５０。続いて、モデル１、２、・・・、ｎを更新し８６０、コーディングを終了する８７０。
【０１０４】
ピクチャーはＮ個すべてのパラメータを用いてエンコードすることができる。次いで、他の基準を満足する最終のエンコーディングのパラメータセットの選択を、例えば、歪み性能の最高のレートを持つもの、又は、バッファリング制約をうまく満足するものの選択を、行うことができる。この方法を線図で図９に示す。
【０１０５】
図９は、Ｎ個のパラメータを用いてピクチャーのエンコーディングを行う線図を示す。現在のフレームのコーディングを開始し９０５、バッファ状態、残りビット、及びビットレート目標を設定する９１０。１、２、・・・、ｎから複雑さを決定し９２０、複雑さ１のコーディングパラメータを決定し９２２、複雑さ２のコーディングパラメータを決定し９２４、複雑さｎのコーディングパラメータを見つける９２６。次いで、コード化したピクチャーを生成し９３２、９３４、及び９３６、そして、最終的なコード化したピクチャーを選択する９４０。続いて、モデル１、２、・・・、ｎを更新し、コーディングを終了する９６０。
【０１０６】
他の可能性のある例として、２つのモデルを用いることができ、１つはＳＡＤを最小化するためにコーディングパラメータを決定する一方、もう一つは、バッファリングの制約を厳密に満足させるコーディングパラメータを決定する。バッファリングの制約が緩やかな場合は、２つのセットのコーディングパラメータを結合させることにより、２つの制約に良いトレードオフとなりえる。この方法は、任意の数の複雑さの形式に対して適用可能である。
【０１０７】
［複雑さフィルタリング及び特性／ビットレートの検討］
輝度及び空間的マスキングは平均輝度、分散、及びピクチャーの端部として数値化することができるが、同じことは時間的マスキングには当てはまらない。先の章では、ピクチャーの時間的マスキングの時間的な複雑さの推定が、実際のピクチャーのモーション補償予測誤差（差の絶対値の和−ＳＡＤ）の単一関数となり得ると仮定して説明した。
【０１０８】
場合によっては、例えば、内容が高い空間的活動／テクスチャにより特徴づけられるところ、及び／又は、歪みが大きいところでは、時間的マスキングによりアーティファクトが知覚されないことがあり得る。歪みは、非常に激しい動作（不鮮明な動作を含む）により又は実際の動きをうまく捕まえるためのモーション推定処理の効率が悪いために、大きくなることがある。このような場合において、高圧縮により付加的に持ち込まれた圧縮アーティファクトが簡単には知覚できないので、この領域に配分されたビットを少なくすることができる。これにより、ある意味では、主観的に重要だと見なされる他の領域のためにビットを確保しておくことができる。しかし、このような構成は、複雑さが時間的に変動するときには問題になる。これらの変動により、圧縮したビデオビットストリームの主観的ビデオ特性に害をもたらすことの成る目に見える特性の変動がもたらせることがある。
【０１０９】
この問題を軽減するために用いることができる技術は、以前のピクチャーの複雑さで現在のピクチャーの複雑さをフィルターすることである。現在のピクチャーに対して複雑さが顕著に変化する場合は、コーディング特性／ビットレートの変動を、なめらかにそして一般的な人間の観測者に注目される内容に、制御すべきである。
【０１１０】
提案するレート制御アルゴリズムでは、複雑さのフィルタリングは、以前のピクチャーから将来のピクチャーの複雑さを含めるように拡張される。また、この技術が圧縮したビデオの主観的特性に有益となる理由をいくつかの例で示す。
【０１１１】
現在のピクチャーに依存する将来のピクチャーが現在のピクチャーに比べて高いコーディングの複雑さを有する場合、及び、圧縮アーティファクトによる視覚的な影響を減少させるために時間的マスキングが役に立つと見なされる場合は、低いビットレート、又は、もともと選択されていたものより低い視覚的特性により、現在のピクチャーをエンコードするのが最適であると判断することができる。利点として、圧縮アーティファクトは時間的にマスクされるので、高い再現性でエンコードすることはそれほど重要でないかもしれないピクチャーにビットを消費することをさける手助けをすることができる。これはまた、他の視覚的に重要なピクチャーをエンコードするために節約しておいたビットを使うのに役立てることができる。
【０１１２】
同様に、次のピクチャーが高い時間的相関性、又は等価的に、次のピクチャーに比べて低いコーディングの複雑さ／歪みを示すならば、付加した特性は可視となりこれらのピクチャーに伝達されるので、現在のピクチャーは高い再現性のレベルでコード化することができる。
【０１１３】
現在のピクチャーのフィルターした複雑さは以下のように記述することができる。
【数２】
0005427785.tif 000003
【０１１４】
上記方法の新規性は、将来のピクチャーの複雑さを考慮している点のみ成らず、ピクチャーとシーケンス特性に基づきウェイト係数ｗjを適用する点である。変数Ｎは、多くの要素に依存するが、とりわけ、エンコーディングシステムに適用可能な先読み（時間遅れ）の範囲、計算及び記憶量、及びソースコンテンツのフレームレートに依存する。Ｎが増大するにつれて、ゆくゆくは減少に復帰する点に到達する。
【０１１５】
ウェイト係数ｗjは、どのような配分にも類似するように選択した初期ウェイト係数ｖjの関数として決定することができる。いくつかの実施の形態において、この配分は、最大値がゼロとなる、中央に偏った（ｊ＝０）曲線とすることができる。他の実施の形態において、この曲線は、ガウス曲線、指数関数、又は１次又は２次関数とすることができる。このアルゴリズムの実施において、これらのパラメータはシーン特性情報を注意深く考慮することにより修正することができる。任意的な実施の形態において、初期パラメータｖjは、推定した複雑さと観測した複雑さ（例えば、エンコードするために用いたコーディングパラメータを与えたピクチャーに使われたビット数とすることができる）との間の差異を最小にしようとする回帰的アルゴリズムを用いることにより更新することができる。ウェイトパラメータによる各シーンの形式は、ｊ＝０又はｊ≠０により異なる。最終のウェイトパラメータの導出による各シーンの形式の効果についての説明は以下の通りである。
【０１１６】
［シーン変更］
シーンの推移は、過去と将来の両方向にフィルタリングする時間的拡張を制限することができる。過去におけるピクチャーのフィルタリングは、現在のピクチャーに最も近いピクチャーから始め、シーン変更に当たると一旦停止することができる。これは、現在のピクチャーに最も近いピクチャーから始め、シーン変更に当たると停止することができる将来のピクチャーのフィルタリングにも同様に当てはまる。後者の場合、シーン変更の複雑さは考慮に入れなくてもよい。ここで、ｋ１＜ｉ＜ｋ２であり、現在の前後のピクチャーｋ１とピクチャーｋ２で、最も近いシーン変更が起こっていると仮定する。ピクチャーｉの複雑さをフィルターするために用いることのできるウェイトパラメータは以下のように定められる。
【数３】
0005427785.tif 000004
【０１１７】
現在のピクチャーがシーン変更と指定されたとき、時間的複雑さは、動き補償ＳＡＤのみに基づくものであるから、信頼性のないものとなる可能性がある。シーン変更は、このＳＡＤをビットを現在のピクチャーに配分するために用いられた場合、重大な圧縮アーティファクト又はレート制御の不安定化を生じさせる可能性のある、人為的な高いＳＡＤ値をもたらす。しかし、上述したように、ここのイントラコード化されたピクチャーの複雑さは空間的統計の関数として記載されており、従ってピクチャーは複雑さの決定に含むことができる。さらに、ここに記載したシーン変更の複雑さの推定のためのアルゴリズムは、新しいシーンに属する将来のピクチャーの複雑さを用いることができる。フィルタリングは、新しいシーン変更が検出されたとき終了することができ、そのピクチャーに属する複雑さは、以下に示す関係に用いなくてもよい。
【数４】
0005427785.tif 000005
【０１１８】
早期の検出を通して、厳密なバッファレート制御が必要なところで、シーン変更の検討が先行割り当てビットに好都合となる。エンコーダがすでに検出したシーン変更に近づいた場合、ビットは現在のシーンの最後のいくつかのピクチャーから除外しておき、次の新しいシーンのために残しておくことができる。これは、少し悪いＱＰを用いることにより、又は、シーン変更の前にピクチャーのレート制御により導き出されたコーディングパラメータと比較して少ないビットを用いるという結果になる、コーディングモード及び／又はパラメータを用いることにより実施することができる。ＱＰ又は他のコーディングパラメータにおける変化は、確実に新しいシーンに配分するのに十分なビットとするために、高いビットレートと比較して潜在的に顕著に低いビットレートとすることができる。
【０１１９】
［フェードイン／フェードアウト］
フェード移行は、全体的な輝度の変化で特徴付けることができる。フェード期間中、動き補償ＳＡＤは、同様の内容と動きを有するがフェードを構成しなかった以前のピクチャーのＳＡＤ値と比較して、動き補償ＳＡＤが大きくなることがある。ウェイト付けした予測を有さない場合は、一般的にこれは正しいであろう。しかしウェイト付けした予測の場合でも、ＳＡＤが大きくなる傾向がある。終端効果は、ピクチャーが高い複雑さを有し、従って圧縮アーティファクトを発見することが難しくなるというものとなるであろう。残念ながら、これは、受忍できる特性レベルで圧縮するために、フェードは多くのビットを必要とするので、フェードに関して正しくないかもしれない。その結果、開示したアルゴリズムによっては、 時間的複雑さは、近接するピクチャーの複雑さの平均として決定することができ、ここでは、ウェイト付けした予測を使うか否かによって、フェードシーン移行に属さないピクチャーは、フェードシーン移行に属するピクチャーより大きなウェイトを受けるかもしれない。同様に、シーン変更に属するピクチャーの複雑さを除外することができる。例えば、フェードインがピクチャーｌ1で始まりｌ2で終わると仮定すると、ピクチャーｉはフェードインに属し、ウェイト付けしたパラメータは以下のように修正される。
【数５】
0005427785.tif 000006
【０１２０】
フェードアウトがあると状況は変化することがあり、関心のあるコンテンツ（例えば、フィルターすべきコンテンツ）はフェードアウトが始まる前方に位置する。例えば、フェードアウトがピクチャーｌ1で始まりｌ2で終わると仮定すると、ピクチャーｉはフェードインに属し、ウェイト付けしたパラメータは以下のように修正される。
【数６】
0005427785.tif 000007
【０１２１】
パラメータαは１以下の値に設定すべきであり、多くの場合ゼロに等しく設定することができる。Ｈ．２４６／ＡＶＣビデオ コーディング標準のベースラインプロファイル（Ｂａｓｅｌｉｎｅ  Ｐｒｏｆｉｌｅ）のような、エンコーダにおいて、ゼロに近い値にすべきダル。いくつかの実施の形態において、エンコーダがウェイト付けした予測をサポートするような使われ方をしていた場合、値はゼロでなくてもよい。パラメータαは、０≦α≦１のように定めることができる。パラメータβは以下のように定めることができる。すなわち、０＜β≦１とし、重要な役割を果たしパラメータβが１未満である場合は、シーンの最後（フェードアウト）又は最初（フェードイン）のどちらよりも高い再現性を維持して確実にフェードをコード化することができる。これは、フェードの期間中アーティファクトの視覚性を増大することについての上記説明から導かれる。他の条件はβ＞αである。
【０１２２】
フェードをコード化するために使うことができる代替的な技術には以下が含まれる。
【０１２３】
・  フェードの前に、ピクチャーの平均的複雑さから決定した、フェードシーン全体をコード化する同一の固定したコーディングパラメータを用いる。
【０１２４】
・  フェードに属するピクチャーをコード化するコーディングパラメータを改善する変更要素（例えば、ＱＰ修飾子）を付加する。および、
・  先に説明したように、パラメータβを用いて、フェードの前後にピクチャーをエンコードするために用いるコーディングパラメータより常に良好な特性となるようにフェードをエンコードするようコーディングパラメータに条件を付加する。
【０１２５】
一般に、開示したアルゴリズムはフェード形式により少なくとも２つのモードを持つことができる。すなわち、
・  フェードインに対して、フェードをコード化するために用いるコーディングパラメータは、フェードの最後に続くピクチャーをコード化するために用いるコーディングパラメータより結果的に良好な特性とすることができる。
【０１２６】
・  フェードアウトに対して、フェードをコード化するために用いるコーディングパラメータは、フェードの開始に先立つピクチャーをコード化するために用いるコーディングパラメータより結果的に良好な特性とすることができる。
【０１２７】
ウェイト付けした予測を用いるとき、ウェイト付けした予測は全体的な輝度の変化を明らかにすることができるので、上記２つの条件は（パラメータαにより）緩和することができる。
【０１２８】
上記説明したフェードは、現在のピクチャーｉがフェードに属する場合に関するものである。しかし、フィルタリングをフェードでないピクチャーに適用したとき、フィルタリングの長さにより、フェードであるピクチャーの複雑さも同様に考慮することができる。この場合、フィルタリングを適用済みのピクチャーに用いることのできる方法には、フィルター済みの複雑さの値を用いて決定することが含まれる。さもなければ、用いる複雑さの値は、元の値に１を越さないパラメータを掛けた値に等しくなる。
【０１２９】
シーン変更の場合と同様に、ビデオコーディングのウェイト付けした予測に対する支えが不十分ならば、フェードに先立ち多くのビットを使い尽くしてしまう可能性のある、先行割り当てビットを避けるため又はコーディングパラメータの使用を避けるため、フェードの早期検出をレート制御で用いることができる。
【０１３０】
［クロスフェード］
クロスフェードは、２つの連続するシーンのフェード移行である。これらのシーンの移行に対して、ひとつの方法は、移行の前のシーンと後のシーンの複雑さの平均を最初に測定することである。１つの例では、クロスフェードがピクチャーｌ1で始まりピクチャーｌ2で終わり、ピクチャーｉがクロスフェードに属すると仮定することができる。ウェイト付けパラメータは以下のように修正される。
【数７】
0005427785.tif 000008
【０１３１】
パラメータα及びβは、フェード自身の複雑さよりシーンの複雑さのほうにウェイト付けを大きくするように選択することができる。クロスフェードの両側のシーンに属するピクチャーはベータでウェイト付けされる一方、フェードに属するピクチャーは、現在のピクチャーｉを決定する複雑さよりはるかに寄与が少ない。
【０１３２】
クロスフェードとして指定されたピクチャーは、隣接するピクチャーの複雑さの決定に寄与し、適用された方法は、フェードイン及びフェードアウトの方法を反映させることができ、ここで、既にフィルターされたピクチャーは、フィルターされた複雑さの値に寄与する一方、フィルターされていないピクチャーは、元の複雑さの値に寄与することができる。
【０１３３】
その結果、フェード移行をコーディングパラメータでコード化することができ、２つのシーンのピクチャーをコード化するために用いられるコーディングパラメータより、（β＞αなので）良いか少なくとも同等の結果となる。コーディングパラメータは、上記フェードイン／フェードアウトについて説明したように、一定値に固定することができ、あるいは、変化させることはできるが、そのシーン自身をコード化するために用いられたコーディングパラメータより良いようにすることが条件となる。フィルター長さが両方の予測方向に対して十分長いと仮定すると、クロスフェードにおける現在のピクチャーの複雑さは、先のシーン又は後のシーンの両方の関数となるであろう。
【０１３４】
［フラッシュ］
フラッシュは、圧縮性能に不利益をもたらす、ウェイト付けした予測を通じて、あるいは、内部（イントラ）コーディング方法の使用により最初に取り組むことができる、大規模で瞬間的な輝度の変化をもたらす。結果として、フィルターされた複雑さは、元の値に近くなるよう維持される。上述したように、シーン変更とフェードの原因となる通常のフィルターは、フラッシュピクチャーのフィルターされた複雑さを生成するのに十分適している。代替的に、中心（ｉ＝０）のウェイトは大きくすることができる。しかし、フラッシュピクチャーが近接するピクチャーのフィルタリング範囲にあるならば、そのピクチャーの以上に高い複雑さにより、フラッシュ形式でない近接するピクチャーへのビット配分が減少することがある。この問題に対処する１つの方法は、ｊがフラッシュである場合に、フィルタリング係数Ｗjを減少させることである。この係数は、負ではない１未満のパラメータにより乗算することができる。
【０１３５】
結果として、近接するピクチャーと比較して、フラッシュとして検出されたピクチャーは低い特性（必ずしも少ないビットを使っているということではない）でコード化されることがある。このコーディングとする理由は、短いフラッシュの持続時間が圧縮アーティファクトをマスクすることができるからである。もうひとつの理由は、これらのピクチャーに使ったビットは将来のピクチャーに恩恵を与えることが稀だからである。しかし、これが起こるの１つの場合は、お互いに近接して複数のフラッシュピクチャーがあるときである。この場合、これらは同じシーンに属し、高い相関関係を持つ。従って、フラッシュは参照ピクチャーとしてバッファの役割を果たすことができる。さもなければ、フラッシュが孤立している場合、フラッシュが参照としてバッファの役割を果たさなかったとしても有益である。
【０１３６】
［局所的な輝度の変化］
このシーンの形式はフラッシュに似ているが、輝度の空間的範囲が変化する点で異なる。輝度の変化は、一部であり全部のピクチャーを必要とはしない。なぜなら、ピクチャーの一部は過去のピクチャー及び将来のピクチャーの同様の照明特性を維持し、コーディックによりウェイト付けられた予測の支持又は不支持に依存し、そして、これらのピクチャーが予測基準として維持することができるからである。フラッシュシーン形式として上述したように、フラッシュは、予測基準がお互いに非常に近接して生じるなら、予測基準として維持されるだけである。局所的な輝度の変化を伴うピクチャーの複雑さフィルタリングは、フラッシュを有するピクチャーのフィルタリングに従うことができる。しかし、ピクチャー内で、良好な特性を、過去のピクチャー及び将来のピクチャーに同じ輝度を維持する領域に、原則として配分すべきである。ピクチャーｊが局所的な照明の変化であり、隣接するピクチャーのフィルターされた複雑さを導き出すために用いられるならば、フラッシュの場合と同様に、フィルタリング係数ｗjが増大する。いくつかの実施の形態において、係数は、負ではないが常に１以下であるパラメータで乗算することができる。
【０１３７】
［カメラのパン／ズーム］
カメラのパン及びズームを含む、全体的なカメラの動きに対して複雑さをフィルタリングする方法は、クロスフェードによく似ている。全体的なカメラの動きに対して、カメラの動きの前後のシーンの複雑さの平均の測定が行われる。例えば、カメラの動きがピクチャーｌ1で始まりピクチャーｌ2で終わり、ピクチャーｉがカメラの動きに伴うシーンに属すると仮定すると、ウェイト付けパラメータは以下のように修正される。
【数８】
0005427785.tif 000009
【０１３８】
パラメータα及びβは、シーン移行の前後の２つのシーンの複雑さよりカメラの動きの複雑さのほうがウェイトが大きくなるように選択することができる。カメラの動きの両側のシーンに属するピクチャーはβでウェイト付けすることができ、カメラの動きに属するピクチャーは、現在のピクチャーｉの複雑さの決定により寄与することができる。カメラの動きに属するものとして指定されたピクチャーが近接するピクチャーの複雑さの決定に寄与するとき、複雑さがまだフィルターされていないピクチャーが元の複雑さの値に寄与する一方、既に複雑さがフィルターされたピクチャーは、フィルターされた複雑さの値に寄与する。
【０１３９】
ピクチャーの移行ではなくてシーンの開始と終了にウェイトを置く、フェード移行の複雑さのフィルタリングと比べて、逆の方法を適用することができ、その方法では移行（カメラの動き）ピクチャーの方が複雑さの決定に寄与する（α＞β）。複雑さフィルタリングの例を図１０に示す。
【０１４０】
図１０は、異なるシーン形式に対するピクチャーの例を示す。特に図１０は、シーン形式に依存してフィルターされた複雑さを有するピクチャーの例を示す。図示したピクチャーのシーン形式は、シーン変更１０１０、クロスフェード形式１０２０、フェードイン形式１０３０、及びフェードアウト形式１０４０である。各シーン形式１０１０、１０２０、１０３０、１０４０に対して、フェード移行のための複雑さのフィルタリング期間において、最も暗いピクチャーが、複雑さの決定に最も寄与する。例えば、シーン変更形式１０１０のみが含まれる場合、現在のピクチャー１０１５が複雑さの決定に最も寄与する。
【０１４１】
［先読みを有するレート配分］
良好な圧縮性能を得るために先読みの範囲に依存するスキームを開発した。一般に先読みを広くすればするほど、圧縮性能はよくなる。このスキームは、各ピクチャーに対してレート推定と配分（例えば、ビット目標のセット）を行うことができ、ビット目標を達成するために、任意的に潜在するレート制御を採用することができる。付加的なコーディング経路をこれらの目標に合致させるために用いることができる。所定のビット目標のための量子化パラメータ（ＱＰ）を選択する潜在的なレート制御アルゴリズムは、とりわけ、２次モデル及びρ領域レート制御モデルを含む、このファミリーのどのアルゴリズムでもよい。
【０１４２】
各ピクチャーのビット目標を決定することができる新しいアルゴリズムをここに開示した。先読み情報は、初期エンコーディング経路、又は、モーション推定を行うことができるプレアナライザ、又は、これらの組み合わせによりもたらすことができる。この情報は、先読みが有効な各ピクチャーの、及び、既にコード化されたピクチャーの複雑さｃiを必要とする。各ピクチャーの複雑さｃiは、絶対差の動き補償和（ＳＡＤ）又は、ウェイト付けした予測を用いるときのＳＡＤ、又は、時間的及び空間的ピクチャーの統計値の組み合わせを必要とする。いくつかの実施の形態において、ＳＡＤは、ウェイト付けした予測と共に、又はウェイト付けした予測なしで、用いることができる。
【０１４３】
モーション推定では、ブロックベースの及び領域ベースのモーション推定、位相相関関係、ペル・リカーシブ技術、その他を含む、どのようなアルゴリズムを用いることもでき、平行移動、アフィン変換、その他を含む、種々のモーションモデルを用いることができる。先に説明したように、完全な複雑さの決定により多くの情報が得られる。２つの代替的なレート配分アルゴリズムを以下に説明する。
【０１４４】
この章では、用語「プレディクティブ・ピクチャー」は、単方向予測、双方向予測、及び複数方向予測のプレディクティブ・ピクチャーが含まれる。
【０１４５】
［先読みアルゴリズムを有するレート配分］
このアルゴリズム／スキームは、将来のピクチャーの統計と複雑さの測度を利用することに依存する新規なレート配分アルゴリズムである。このアルゴリズムは各ピクチャーのビット目標を生み出すことができる。このアルゴリズムでは、ピクチャーをコード化するために用いるコーディングパラメータ（例えば、ＱＰ）を選択する必要がない。この選択は、ビット目標を入力として受け取り、コーディングパラメータを生成する、潜在的任意的レート制御モデルの仕事とすることができる。この任意的レート制御モデルに用いることのできるアルゴリズムには、とりわけ、２次モデル及びρ領域レート制御モデルを含むことができる。一般に、このアルゴリズムは、そのレート制御がビット目標を対応するコーディングパラメータセットに変換する限りにおいて、どのようなレート制御を用いることもできる。
【０１４６】
いくつかの実施の形態において、このアルゴリズムはレート制御を用いずに、ピクチャー毎にビット数を決定することができるようにし、その後、レート制御アルゴリズムを、ビットをＱＰ値のようなコーディングパラメータにマップさせるためにレート制御アルゴリズムを用いることができるようにしても良い。このコーディングパラメータは、求めるビットレート目標を達成するのに適するようにできる。このアルゴリズムの特徴は、そのピクチャーにどれだけのビットを割り当てるべきかを決定するために、先読みウィンドウと過去のピクチャーを用いることができる点である。さらに、１つのピクチャーに対するビット数を、他のピクチャーがコード化されているのかこれからコード化されるのかに基づき調整することができる。
【０１４７】
このアルゴリズムにおいて、ｎref＞０は、先読みが可能なピクチャーの数を意味し、ｃｕｒｒは、コード化すべき現在のピクチャーの指標を意味する。先読みバッファにおけるピクチャーの全体としての複雑さは以下のように決定することができる。
【数９】
0005427785.tif 000010
【０１４８】
ピクチャーが、先にコード化されたピクチャー、例えば、Ｐ又はＢを用いて中間（インター）コード化される場合、その複雑さの元の値は加算演算で用いることができる。しかし、イントラ・ピクチャーとしてコード化される場合は、次のピクチャーの複雑さが用いられ、１つの可能性のある実施の形態では５に等しくすることのできる係数Ｋを乗算される。
【０１４９】
0005427785.tif 000011
【０１５０】
中間（インター）コード化されたピクチャーに配分されたビットｂｉｔｓiは、下式で与えられる。
【数１０】
0005427785.tif 000012
【０１５１】
ここで、ＢRは、最初の全ビット割り当てから残ったビット数であり、ＮRは、さらにコード化すべきピクチャーの数であり、ｓnは、イメージシーケンスの終端に近いビットレートを過剰に欠乏させないように設計した「セイフティ・ネット」である。いくつかの実施の形態において、セイフティ・ネットの値は３０に設定される。従って、ピクチャーに配分されたビットは、全体の複雑さに対するその複雑さの割合に比例し、先読みピクチャーに配分することのできる残りのビット割合に乗算する。最後に、中間（インター）コード化されたピクチャーに配分されたビットｂｉｔｓiの数は、下式で与えられる。
【数１１】
0005427785.tif 000013
【０１５２】
イントラコード化されたピクチャーが周期的に挿入されることが顕著な例外となることがあり、この場合、ピクチャーをコード化するために用いられるＱＰは、以前のピクチャーをコード化するために用いられるＱＰに近接するよう選択される。周期的に挿入されたイントラコード化されたピクチャーがシーン変更と同時に生じる場合、シーン変更の等級付けを周期的な等級付けに優先することができ、ピクチャーを通常のイントラ・ピクチャーとしてコード化することができる。他の場合において、ＱＰ値を生成するためにビット目標をレート制御モデルに供給することができる。このピクチャーをこのＱＰ値でエンコードすることができ、そして、このピクチャーをエンコードするために用いるビットの数（例えば、ｂｉｔ＿ｏｌｄ）をエンコーダはチェックすることができる。これらが元の目標と閾値以上の差異がある場合、ｂｉｔ＿ｎｅｗ＝ｎｏｒｍＢｉｔｓ（ｂｉｔ＿ｏｌｄ，ＱＰ＿ＯＬＤ，ＱＰ＿ＮＥＷ）と呼ばれる関数を、ビットの使用が元の目標に近づくようになるＱＰ＿ＮＥＷを生成するために反復して用いる。ピクチャーは、次に、新しいＱＰ値を用いて再エンコードされる。ＰＳＮＲ条件を用いる場合は、ピクチャーを、ＰＳＮＲの最大最小条件を満足するように再エンコードすることができる。このアルゴリズムの主ループを例示した線図を図１１に示し、全体の複雑さｃtotalの決定の概略図を図１２に示す。
【０１５３】
図１１は、先読み技術を有するレート配分のアルゴリズム１の主ループを例示したフローチャート１１００を示す。図１１において、ビデオのコーディング開始１１１０と初期化１１１５はｉ＝０でＱＰ、ＢR、ＮR、及びＳnについて行われる。全体の複雑さｃtotalを、先読みピクチャー１１２０に対して決定する。次いで、Ｉコード化されたピクチャー、又は、Ｐコード化されたピクチャー、又は、周期的なＩコード化されたピクチャーとなる、スライス形式を決定する１１２５。スライス形式がＩコード化されたピクチャーである場合は、ｂｉｔｓi,jを決定し１１３５、このビットのＲＣモデルがＱＰを生成する１１５０。スライス形式がＰコード化されたピクチャーである場合は、ｂｉｔｓi,pを決定し１１４０、このビットのＲＣモデルがＱＰを生成する１１５５。スライス形式が周期的なＩコード化されたピクチャーである場合は、以前のＱＰ、ＰｒｅｖＱＰ、プラスオフセットが用いられる１１６０。オフセットは、表題が「階層予測構造へのコーディングパラメータの配分」の章での係数（ｃ）−（ｆ）と同様にして決定される。その後、ピクチャーがコード化される１１７０。目標に近い場合は１１７５、処理すべきピクチャーがまだあるかを判断する１１８５。目標に近くない場合は、ＱＰを修正し１１６５、再度ピクチャーをコード化する１１７０。コーディングするピクチャーがなくなれば、コーディングを終了することができる１１９０。しかし、まだピクチャーがあれば、ｉを増加し（例えば、ｉ++）１１８０、ＲＣモデルの更新１１４５、そして、ＢR、ＮR、及びｐｒｅｖＱＰを更新し１１３０、その後、先読みピクチャーの全体の複雑さｃtotalを決定する１１２０。
【０１５４】
図１２は、先読み技術を有するレート配分のアルゴリズム１の全体の複雑さｃtotalを決定するフローチャート１２００を示す。図１２において、処理を開始し１２００、パラメータを、ｊ＝１及びｃtotal＝０に設定する１２１０。Ｐコード化されたピクチャー及びＩコード化されたピクチャーについてスライス形式が決定される１２１５。Ｐコード化されたピクチャーがある場合は、ｃtotal＋＝ｃjとする１２２５。Ｉコード化されたピクチャーされたピクチャーがある場合は、ｃtotal＋＝５×ｃj+1とする１２２０。パラメータのｊは、ｃtotalを決定した後増加する１２３０。ピクチャーがまだある場合は１２３５、次のピクチャーについてスライス形式を決定する１２１５。ピクチャーがもうない場合は１２３５、この処理を終了する１２４０。
【０１５５】
［先読みを有するレート配分―アルゴリズム２］
このアルゴリズムは、先読みを有するレート配分のアルゴリズム１に類似している。先読みを有するレート配分のアルゴリズム２は、将来からの情報を含む複雑さ推定を採用する。この第２のアルゴリズムの特徴は、他のピクチャーから予測されないピクチャーを考慮に入れることができる点である。
【０１５６】
このスキームは、先の章のスキームに非常に似ているものの、これから説明するようないくつかの違いがある。イントラコード化されたピクチャーとしてコード化されていない先読みバッファにおけるピクチャーの複雑さの和を以下のように決定することができる。
【数１２】
0005427785.tif 000014
【０１５７】
全体の複雑さには、イントラコード化されたピクチャーとしてコード化されなかったすべてのピクチャーの複雑さの値を含めることができる。上述のアルゴリズム１と比較して、このアルゴリズムの主な違いは、イントラコード化されたピクチャーをエンコードするために配分するビット数を予測する必要がある点です。この予測は、すべてのイントラコード化されたピクチャーに対して以下のように決定することができる。
【数１３】
0005427785.tif 000015
【０１５８】
normBits（）の機能は、先に説明したとおりである。パラメータｗはピクチャーの幅を意味し、ｈはピクチャーの高さを意味する。ＱＰNORMは固定したＱＰ値、例えば１つの可能性のある実施の形態では２４、を意味し、線形モデルの係数α及びβは、線形回帰を使って先にイントラコード化されたピクチャーからの統計を用いて決定することができる。ピクチャーにより係数を指標化する理由は、これらの係数が更新され、値が変動するからである。シーン間での異なる統計を考慮に入れて、異なる係数のセットをシーン変更に使うことができ、異なるセットを周期的なイントラコード化されたピクチャーに使うことができる。
【０１５９】
イントラコード化されたピクチャーに配分されたビットｂｉｔｓiは、以下の式で得られる。
【数１４】
0005427785.tif 000016
【０１６０】
従って、イントラコード化されたピクチャーに配分されたビットは、全体の複雑さに対するその複雑さの比に比例するので、先読みピクチャーに配分することのできる残りのビット割り当てに乗算し、イントラコード化されたピクチャーに配分する予測ビットを減算する。
【０１６１】
先のアルゴリズムとは違って、イントラコード化されたピクチャーをコード化するために配分されたビットは線形モデルの助けを借りて決定し、以下の式で得られる。
【数１５】
0005427785.tif 000017
【０１６２】
周期的に挿入されたイントラコード化されたピクチャーは、上記アルゴリズム１と同様に扱われる。このアルゴリズムの主ループを例示したフローチャートを図１３に示し、全体の複雑さｃtotalの決定を図示するために例示したフローチャートを図１４に示す。
【０１６３】
図１３は、先読み技術を有するレート配分のアルゴリズム２の主ループを例示したフローチャート１３００を示す。図１３において、ビデオのコーディング開始１３１０と初期化が、イントラ線形モデルでｉ＝０でＱＰ、ＢR、ＮR、及びＳnについて行われる。全体の複雑さｃtotalとｂｉｔｓintraを先読みピクチャー１３２０に対して決定する。次いで、Ｉコード化されたピクチャー、又は、Ｐコード化されたピクチャー、又は、周期的なＩコード化されたピクチャーとなる、スライス形式を決定する１３２５。スライス形式がＩコード化されたピクチャーである場合は、ｂｉｔｓi,jを決定し、このビットのＲＣモデルがＱＰを生成する１３５０。スライス形式がＰコード化されたピクチャーである場合は、ｂｉｔｓi,pを決定し１３４０、このビットのＲＣモデルがＱＰを生成する１３５５。スライス形式が周期的なＩコード化されたピクチャーである場合は、以前のＱＰ、ＰｒｅｖＱＰ、プラスオフセットが用いられる１３６０。オフセットは、表題が「階層予測構造へのコーディングパラメータの配分」の章での係数（ｃ）−（ｆ）と同様にして決定される。その後、ピクチャーがコード化される１３７０。目標に近い場合は１３７５、処理すべきピクチャーがまだあるかを判断する１３８５。目標に近くない場合は、ＱＰを修正し１３６５、再度ピクチャーをコード化する１３７０。コーディングするピクチャーがなくなれば、コーディングを終了することができる１３９０。しかし、まだピクチャーがあれば、ｉを増加し（例えば、ｉ++）１３８０、ＲＣモデルを更新し１３４５、そして、ＢR、ＮR、及びｐｒｅｖＱＰを更新し１３３０、そして、ｂｉｔｓintraを決定する前の線形イントラモデル、及び、先読みピクチャーの全体の複雑さｃtotalを更新する１３２０。
【０１６４】
図１４は、先読み技術を有するレート配分のアルゴリズム２のｂｉｔｓintraと全体の複雑さｃtotalを決定するフローチャート１４００を示す。図１４において、処理を開始し１４００、パラメータを、ｊ＝１、ｃtotal＝０、及びｂｉｔｓintra＝０に設定する１４１０。次いで、Ｐコード化されたピクチャー及びＩコード化されたピクチャーについてスライス形式が決定される１４１５。Ｐコード化されたピクチャーがある場合は、ｃtotal＋＝ｃjとする１４２５。Ｉコード化されたピクチャーされたピクチャーがある場合は、ｂｉｔｓintra＋＝ｂｉｔ＿ｅｓｔｉｍｅａｔｅとする１４２０。項ｂｉｔ＿ｅｓｔｉｍｅａｔｅは、上述のｎｏｒｍＢｉｔｓ関数を用いて決定する。パラメータのｊは、ｂｉｔｓintra又はｃtotalを決定した後増加する１４３０。ピクチャーがまだある場合は１４３５、Ｉコード化されたピクチャーに対して、ｂｉｔｓintra＋＝ｂｉｔ＿ｅｓｔｉｍｅａｔｅにする１４２０。ピクチャーがもうない場合は１４３５、この処理を終了する１４４０。
【０１６５】
平均ビットレート制御アルゴリズム（先読みを有する高い複雑さと低い複雑さのＡＢＲレート制御の章参照）は、レート配分制御とレート制御の両方を行うことができ、将来のピクチャー情報と以前のピクチャー情報の両方の利益を得ることができる。
【０１６６】
先読みを有するレート配分のアルゴリズム１及び２は、局所的にどれだけのビットを配分するかを調整することにより、広範囲な目標を達成することができる一方、第２のファミリーのアルゴリズムに属する追加のアルゴリズムは、ピクチャーに対してビット数を明確に特定しなくても広範囲な目標を持つことができ達成することができる。以下に説明するように、これらのアルゴリズムは、望ましくない、ピクチャー間で目に見えるアーティファクト及び目に見える特性のふらつきを回避するために、ピクチャー間の特性を「平滑化」する作用を行う。これらのアルゴリズムは、ピクチャー毎にビット目標を達成しなくても全体のビットレート目標を達成するようにコーディングパラメータを配分することができる。従って、以下に説明するアルゴリズムは、第１のファミリーのアルゴリズムよりビット領域の粒度が細かくない。言い換えれば、第１のファミリーのアルゴリズムのアルゴリズム１及び２は、ビット領域（例えば、ビットレートに関し）でより動作し、以下に説明するアルゴリズムは、特性領域（例えば、歪に関し）でより動作する。一般に、本開示に記載したアルゴリズムのすべては、推定したピクチャーの複雑さの測度及びフィルターしたピクチャーの複雑さの測度から利益を得る。
【０１６７】
第１のファミリーのアルゴリズムのように、下記アルゴリズムは、以前にコード化されたピクチャーからの統計を用いて目標ビットレートを取得することができるが、以下のアルゴリズムの実施の形態において、より高い複雑さが生じるかもしれない（先読みを有する高い複雑さと低い複雑さのＡＢＲレート制御の章参照）。いくつかの実施の形態において、平均ビットレートアルゴリズムは、一般に、どのようにＱＰ値を使うかのアルゴリズムとなんらかの類似性を有する。これらのアルゴリズムにおける先読みはゼロにすることができる（例えば、過去のピクチャーの統計のみを使う）。過去の統計のみを使う場合は、この統計を、将来の統計の推定と予想を行うために用いることができる。過去の情報は、シーケンスの始まりから得ることができ、現在のピクチャーに比較的接近したシーケン内の特定の数のピクチャーを用いる、不自然で、動いているウィンドウのみを考慮することができる。さらに、いくつかの実施の形態において、イメージシーケンスの異なる部分に対して、異なる量の特性を配分することができる。
【０１６８】
［先読みを有する高い複雑さと低い複雑さのＡＢＲレート制御］
先読みレート制御アルゴリズムを有する高い複雑さと低い複雑さのＡＢＲレート制御は、２経路レート制御アルゴリズムと共に、多くのオープンソースのビデオコーダ（例えば、ｘ２６４Ｈ．２４６／ＡＶＣ、ＸｖｉｄＭＰＥＧ−４、ＦＦＭＰＥＧＭＰＥＧ−４、等）に類似する平均ビットレート（ＡＢＲ）レート制御アルゴリズムから、アイデアを引き出すことができる。このアルゴリズムは、現在のピクチャーに対して、レート配分を導くことができ、量子化パラメータＱＰのような、コーディングパラメータを選択することができる。このアルゴリズムの１つの基本的な前提は、すべての以前のピクチャーについてのコーディング統計を集めることができ、ＱＰ値のような、このコーディングパラメータを現在のピクチャーに対して選択することができることである。コーディングパラメータがＱＰであると仮定すると、このコーディングパラメータは、基本となるＱＰ値に修正要素を加えたものとして設定される。このＱＰ値プラス修正要素は、現在の物を含むすべての以前にコード化されたピクチャーの目標ビットレートを達成するために選択される。基本となるＱＰ値は、今までにコード化されたすべてのピクチャーに適用するとしたときの、目標ビットレートを達成するために期待されるＱＰ値と等しくすることができる。この処理は、ラグランジュパラメータ、コーディングモード、閾値及び量子化による丸め、等のようなすべての可能性のあるコーディングパラメータに適用することができる。このアルゴリズムの詳細を以下に説明する。
【０１６９】
パラメータｃｕｒｒは、コード化すべきピクチャーの指標を表す。今までにコード化されたすべてのピクチャーのビット目標Ｂｉｔｓtargetは以下のように定められる。
【数１６】
0005427785.tif 000018
【０１７０】
ウェイトＷj,iは、良い特性／高いビットレートを具体的なピクチャーに提供できるように、各ピクチャーに対して変えることができる。加えて、このウェイトは時間と共に変えることができ、従って、ウェイトに対して２重の指標が存在する。例えば、フラッシュとして検出されるピクチャーは低いウェイトを受け取る。例えば、ウェイトを変化させるものを、以下のことをするために用いることができる。
【０１７１】
・  開始時のような、イメージシーケンスの敏感な部分により良質の特性を与える。
【０１７２】
・  複雑さの測度に従いビットレート配分を変更する。
【０１７３】
・  特定のコーディングツールと用いられる階層構造に対するビットレートを調整する。
【０１７４】
２つの制約条件は、平均して、ｃｕｒｒは、閾値より大きくこれらの係数の合計はｃｕｒｒに加算しなければならないという点である。つまり、
【数１７】
0005427785.tif 000019
【０１７５】
となる。この技術により、ビットレート目標を補強することができる。上述したように係数Ｗj,iは時間と共に変えることができる。
【０１７６】
いくつかの実施の形態において、ピクチャーＮがコード化されるとき、係数Ｗj,iの０からＮ−Ｍまでの和、ここでＭ＞０、がＫに等しくなる。同時に、ピクチャーＮ＋Ｐがコード化されるとき、ここで、Ｐ＞０であり、係数のＮ−Ｍまでの和がＬ≠Ｋになる場合がある。このアルゴリズムにおいて、この特徴は、いくつかの実施の形態において、特定のシーン又はピクチャーに対して追加のビットレートを少し注入することを許容することで、同時に、ビット目標が達成され、他の領域で視覚的にビットが不足することはなくなる。各ピクチャーがコード化された後、この技術により、量子化したパラメータを生成するために現在のピクチャーの複雑さを分割するために用いられる、レートファクターｆを決定することができる。値を、ｆstartとｆendとの間のレートファクターについて評価することができる。いくつかの実施の形態において、レートファクターｆは、ビット目標と、ファクターｆがそれぞれのＱＰを取得するために用いられるとき、今までに使われたビットｂｉｔｓ（ｆ）との差の絶対値を最小にすることにより、見つけることができる。以下の式がこの最小化を表す。
【数１８】
0005427785.tif 000020
【０１７７】
ピクチャーの複雑さの値を分割することにより、これは任意的に所定のパラメータの指数を設定することになり、このファクターによりステップサイズを量子化することができ、付加した関数を用いて量子化パラメータに変換される。
【０１７８】
項、ｂｉｔｓ（ｆ）、は、以下に説明する包括的な処理を介して決定する。それまでにコード化されたピクチャーは、最も優先度の高いレベルに属するピクチャーを分離し、そのレベルに属さないピクチャーは、優先度の低いピクチャーとみなされる。コード化されたピクチャーについて、モーション補償の複雑さ、スライスヘッダ及びテクスチャをコード化するために用いられるビット、ピクチャーをコード化するために用いられるＱＰ、等のような多くの利用可能なコーディング統計が存在する。過去のコーディング情報は、ファクターｆにより複雑さから分離することにより得られた新しいＱＰと共に、この新しいＱＰがピクチャーをコード化するために実際に用いられるＱＰの代わりに使われるとすれば、ピクチャーをコード化するために消費されるであろうビットを推定するために使うことができるようになる。このビット推定の決定には、加算が含まれ、及び、現在コード化されたレベル（例えば、この場合最も優先度の高いレベル）に属するすべてのコード化されたピクチャーのために行われる。次いで、同様の処理が先にコード化された優先度の低いピクチャーのビット推定に適用される。
【０１７９】
優先度の最も高いレベルのピクチャーに用いられる処理と比較したときの主な違いは、新しいＱＰの導出である。例えば、新しいＱＰは、隣接するアンカーピクチャーをコード化するために用いられるＱＰに依存することができ、いろいろな係数（例えば、これらの係数は次の階層構造へのコーディングパラメータの配分の章に記載されている）に依存することができるバラメータにより相殺することができる。
【０１８０】
いくつかの実施の形態において、項、ｂｉｔｓ（ｆ）、は、以下のように記述することができる。
【数１９】
0005427785.tif 000021
【０１８１】
ここでｔiは、ピクチャーｉに用いられるテクスチャビットの数であり、ｈiはピクチャーｉに用いられるヘッダービットの数である。ＱＰ２ＱＳｔｅｐ（）は、ＱＰ（対数スケール）値を量子化ステップ（線形スケール）値に変換する関数であり、ＱＳｔｅｐ２ＱＰ（）は、逆関数であり、ＱＰiはピクチャーｉをエンコードするために用いるＱＰ値であり、ｃiはピクチャーｉの複雑さである。
【０１８２】
ピクチャーｉが優先度の低いピクチャーであるとき、Ｌ０（ｉ）は、優先度の最も高いレベルレベルに属するｉに時間的に最も近いピクチャーを意味し、Ｌ（ｉ）は、優先度の最も高いレベルレベルに属する２番目に近いピクチャーを意味する。項、ｃL0(i)及びｃL(i)、は、これらのピクチャーの複雑さの値を表す。パラメータＢoffset,iは、とりわけ、ピクチャーが参照として使われているかどうかに依存するＢコード化されたピクチャーに適用されるＱＰオフセットを表す。パラメータＢoffset,iの導出については、次の章、階層構造へのコーディングパラメータの配分、に詳細に記載されている。項、ｓi、は、コード化されたピクチャーに対してスキップしたマクロブロックの数を表す。最後に、項、ｅ、は、ＱＰの大きな変動を避けるために用いられる指数を意味する。いくつかの実施の形態において、ｅは０．４に設定され０≦ｅ≦１の制約が課せられている。関数ＮＢＱ（）は、コーディング統計と以前にコード化したピクチャーのパラメータを用い、次に、これらのコーディングパラメータが変化したなら、使用ビットの推定の計算を行うどのような関数であってもよい。いくつかの実施の形態において、関数ＮＢＱ（）は、以下のような出力γを持つことができる。
【数２０】
0005427785.tif 000022
【０１８３】
この実施の形態について、パラメータαは、１より少しだけ大きい値に設定することができる一方、パラメータβは１より小さい値に設定することができる。パラメータｂｌｏｃｋ＿ｐｉｘｅｌｓは、モーション補償のブロックを構成するピクセルの数に対応する。これらのパラメータの値は、テクスチャビットが（ａ）ＱＰの減少と共に、著しく増大することがあるにもかかわらす、ヘッダービットが（ｂ）遅いレートで増大することができるように、設定することができる。パラメータγは、ゼロより大きく１より小さくすることができ、大きな値に設定すべきである。現在のピクチャーに対してレートファクターｆを決定した後、レート制御が元のビット目標を確実に達成するように用いられる項、ＱＰmod、の決定を行うことができる。使われたビットの数ｂｉｔｓusedは、ピクチャーの開始からピクチャーの終了までで用いられたビットの合計として計算することができる。いくつかの実施の形態において、現在のピクチャーの指標として、開始を０に設定し、終了をｃｕｒｒに設定することができるが、これらの設定は任意的である。ビットの使用をあるウィンドウを介して決定することは可能である。このことにより、イメージシーケンスの異なる部分に異なるビットレートを配分することを容易にすることができる。これは以下のように表すことができる。
【数２１】
0005427785.tif 000023
【０１８４】
この式において、項、ｂi、は、ピクチャーｉをコード化するために用いるビットの数を意味する。
【０１８５】
ファクターｆを推定した後、付加的なパラメータを、ビット割り当てにおいて使用過多又は使用過小になるような対処法で決定することができる。ＱＰ修正要素と呼ばれるこのパラメータは、ビットが使用過多のとき増大させ、ビットが使用過小のとき減少させることができ、一般に、ビット目標を満足しているとき、ゼロに近い値を保持する。ＱＰ修正要素パラメータは、この要素により複雑さの指数を割算することにより得られた初期推定ＱＰに加算することができる。いくつかの実施の形態において、ＱＰ修正要素ＱＰmodは以下の式で表すことができる。
【数２２】
0005427785.tif 000024
【０１８６】
ここで、Ｚは、シーケンスの始まりと終わりとで（それぞれ、確実にビット目標へ遅く収束させるため及び速く収束させるために）異なる値をとることができる、指数である。イメージシーケンスの大部分で、Ｚは、ゼロより少しだけ大きな値をとることができる。この方法には、優先度の最も高いレベルに属する各ピクチャーに対して適用しなければならないレートファクターｆの贅沢な計算が含まれる。現在のピクチャーをエンコードするために用いられる最終的なＱＰは下式で与えられる。
【数２３】
0005427785.tif 000025
【０１８７】
レベル０でピクチャーに配分されたＱＰは、ピクチャーの複雑さの測定値とファクターｆの関数となり、ファクターｆは目標ビットレートを達成するためにＱＰ修正要素で圧縮伸張することができよう。優先度の低いレベルに配分されたＱＰは、優先度の低いレベルのピクチャーが予測され従属するレベル０のピクチャーに配分されたＱＰの関数となろう。これらのＱＰは、次の章、階層構造へのコーディングパラメータの配分、に詳細に記載されている、Ｂoffset,iで修正される。
【０１８８】
シーン変更のような何らかのアルゴリズムを用いてあらかじめクラス分けされたいなかった、周期的にイントラコード化されたピクチャーが挿入されたとき、そのピクチャーのＱＰは、直近のレベル０のピクチャーをコード化するために用いられていたい量子化パラメータｑの正又は負の修正要素を加えることにより取得することができる。この修正要素は、ｑ自身の値、エンコーダの及びデコーダのバッファ充足度、及び、コード化されたコンテンツの複雑さに従属することとなろう。ビットレートの制約が緩和される場合は、同じコンテンツを非常に貧弱に又は十分すぎるほどコーディングすることにより視覚的特性が劣化することを避けることが好ましい。このアルゴリズムの線図を図１５に示す。
【０１８９】
図１５は、先読みを有する複雑さの高いＡＢＲレート制御のアルゴリズムを例示したフローチャート１５００である。図１５において、１５１０でビデオコーディングを開始し、１５１１で、パラメータを、ＱＰ、ｆ、及びｉ＝０に初期化する。決定ステップ１５２０では、次いで、ｂｉｔｓtarget、ｂｉｔｓused、及びＱｐｍｏｄについて決定する。次に、決定ステップ１５２５を実施し、ａｂｓ（ｂｉｔｓtarget−ｂｉｔｓ（ｆ））を最小化することによりｆを決定する。その後、スライス形式を決定することができる１５３０。レベル＞０ならば、ｐｒｅｖＱＰ＋Ｂi,offsetに決定することができる１５３５。そうでない場合、スライス形式がＰコード化されたピクチャー又はＢコード化されたピクチャーならば、ＱＰ＝ｆｕｎｃ（ｆ、Ｃi）となる１５４０。スライス形式がＩコード化されたピクチャーならば、ＱＰ＝ｆｕｎｃ（ｆ、Ｃi）となる１５４５。スライス形式がＩコード化されたピクチャーならば、ｐｒｅｖＱＰプラスオフセットを用いる１５５０。このオフセットは、標題、階層構造へのコーディングパラメータの配分、の章のファクター（ｃ）〜（ｆ）と同様にして決定する。所定のスライス形式についてこれらが決まると、ピクチャーがコード化される１５６０。これ以上ピクチャーがない場合は１５６５、コーディングが終了する１５７０。まだピクチャーがある場合は１５６５、ｉを増やし（例えば、ｉ＋＋）１５７５、ｐｒｅｖＱＰを更新し１５８０、その後、ｂｉｔｓtarget、ｂｉｔｓused、及びＱｐｍｏｄについて決定ステップ１５２０を実行する。
【０１９０】
上記先読みを有する複雑さの高いＡＢＲレート制御の説明の特徴は、固定ビットレート（ＣＢＲ）又は可変ビットレート（ＶＢＲ）のアプリケーションに対して、実質的にエンコーダ又はデコーダのバッファリングに制約がないとみなすことができることである。バッファリングの制約が重大であるアプリケーションに対して、レートファクターｆは、エンコーダ及びデコーダで十分なバッファとするために修正することができる。ｆが小さい場合は、大きなＱＰで少ないコード化されたビットとなるようにバイアスを加え、ｆが大きい場合は、結果的にコード化されたビットを多くすることができる。ビットの使用がバッファのオーバーフロー又はアンダーフローにつながる場合は、ファクターｆは、バッファの充足度を好ましい状態に補償し保持するために、適宜調整することができる。加えて、結果得られるビット数を推定し、エンコーダ及びデコーダのバッファ制約条件を満足するようにコーディングパラメータを調整するようなレート制御モデルと併せて、選択したコーディングパラメータを用いることができる。
【０１９１】
［先読みを有する複雑さの低いＡＢＲレート制御］
先読みを有する複雑さの低いＡＢＲレート制御のレート制御アルゴリズムは、この実施の形態において非常に単純である点で、上述の複雑さの高いシングルパスのレート制御アルゴリズムと共通の特徴を有する。ｂｉｔｓused及びｂｉｔｓtargetの説明と導出は、上述の複雑さの高いシングルパスのレート制御アルゴリズムと同じか又は類似する。このアルゴリズムにおける１つの違いは、ファクターｆの導出についてである。
【０１９２】
ファクターｆの決定において、ここでは、複雑さの和ｓｕｍcmplxと呼ばれる変数の助けにより容易になる。この量は、ゼロに近い値に初期化することができ、ｓｕｍcmplxはイメージの大きさに依存するであろう。いくつかの実施の形態において、ｓｕｍcmplxは下式のように初期化することができる。
【数２４】
0005427785.tif 000026
【０１９３】
いくつかの実施の形態において、パラメータδは１未満の値を取ることができ、パラメータεは、各ピクチャーに配分された平均ビットの４〜５倍になり、パラメータζは１より少し小さくすることができる。パラメータｗ及びｈは、ピクチャーの幅と高さを意味し、ｂｌｏｃｋ＿ｐｉｘｅｌｓは、ブロック中のピクセル数を表す。
【０１９４】
複雑さの和を決定するために、最後にコード化されたピクチャーの複雑さの測度はレベル０で保存され、以下のように設定される。
【数２５】
0005427785.tif 000027
【０１９５】
上記数値を更新することに加えて、各ピクチャーをコード化した後に、（ウェイト付けした）複雑さの和は以下のように更新される。
【数２６】
0005427785.tif 000028
【０１９６】
ウェイトｕj,iは、特定のピクチャーにより多くのビットを配分することができるように、ピクチャー毎に異なる。加えて、ウェイトは時間により異なり、従って２重指標を採用する。
【０１９７】
フラッシュとして検出されたピクチャーは低いウェイトを受け取ることができる。任意的なコーディング順序を有する階層的コーディング構造を用いるとき、これらの変化するウェイトは役に立つ。現在のピクチャーの複雑さパラメータｃｍｐｌｘiは、ピクチャーをコード化するために使うビット数にそのピクチャーをコード化するために使う量子化ステップ数を乗算し、レベル０で最後にコード化されたピクチャーの複雑さで割り算したものになることができる。レベル０で最後にコード化されたピクチャーの複雑さは、現在の優先レベルを明らかにするためにファクターＦで重み付けすることができる。いくつかの実施の形態において、現在のピクチャーの複雑さパラメータｃｍｐｌｘiは、以下のように表すことができる。
【数２７】
0005427785.tif 000029
【０１９８】
ここでファクターＦは、ピクチャーが優先順位の最も高いレベルに属すかどうかにより決まり、もし属さない場合は、その量子化パラメータを決定するために適用する修正要素により決まる。いくつかの実施の形態において、Ｆは以下のように選択される。
【数２８】
0005427785.tif 000030
【０１９９】
先に述べたように、複雑さの高いＡＢＲレート制御アルゴリズムのこのアルゴリズムと先のアルゴリズムとの主な差には、レートファクターｆの決定が含まれ、このアルゴリズムを非常に単純化すると、
【数２９】
0005427785.tif 000031
【０２００】
加えて、複雑さの高いＡＢＲレート制御アルゴリズムのアルゴリズムと同様に、ビットレート目標を達成するためにＱＰ配分を修正することのできる追加のメカニズムが存在する。ビットが十分利用されないときは値を小さくし、ビットを使いすぎるときは値を大きくする、「オーバーフロー」と呼ばれるファクターを決定する。いくつかの実施の形態において、このファクターは以下の方法で決定される。バッファパラメータの値は、以下のように表される。
【数３０】
0005427785.tif 000032
【０２０１】
ｂｉｔ＿ｒａｔｅは、イメージシーケンスの現在のセグメントの目標ビットレートである。パラメータｔは、コーディング効率とレート制御との間でのトレードオフの結果となりうる制御パラメータと呼ばれる。ｔが大きい場合は、高い優先順位が特性に与えられ（特性が強まる）が、ビット目標は正確には達成できないかもしれない。一方、ｔが小さい場合は、特性に比べてビットレートに高い優先順位が与えられる。ｔが小さいとき、潜在的に、高いレート制御の精度を可能にし、コーディング効率を小さくする。パラメータｖjは、バッファ又は特性の制限を満足させるためにＱＰの配分を制御するために用いられる。これらの演算により以下のファクターを生成する。
【数３１】
0005427785.tif 000033
【０２０２】
オーバーフローパラメータは、それぞれ、１より小さい正数と１より大きい数である、ｏminとｏmaxとの間に制限することができる。最後に、現在のピクチャーをエンコードするために用いることができるＱＰは複雑さの高いＡＢＲレート制御のセクションの場合と同様にして、以下のように取得することができる。
【数３２】
0005427785.tif 000034
【０２０３】
周期的に挿入されたイントラコード化されたピクチャーの処理は、複雑さの高いＡＢＲレート制御の章での対応する説明と同じである。
【０２０４】
アルゴリズムと比較して、この章に記載のアルゴリズムは、イメージシーケンスの敏感なパートでも多くのビットの配分の偏りを大きくすることができる。さらに、この章のアルゴリズムは、次のピクチャーに重要だと思われるピクチャーに追加ビットを配分するためにレートの適合化を組み込むことができる。上述の特徴は先に説明した本願のすべてのアルゴリズムに適用することも可能である。このアルゴリズムの一例を図１６に示す。
【０２０５】
図１６は、先読みを有する複雑さの低いＡＢＲレート制御のアルゴリズムを例示したフローチャート１６００である。図１６において、ビデオコーディングを開始し１６１０、パラメータを、ＱＰ、ｆ、及びｉ＝０、ｓｕｍcmplxに初期化する１６１５。決定ステップ１６２０では、ｂｉｔｓtarget、ｂｉｔｓused、及びオーバーフローパラメータについて決定する。次いで、ｆをｂｉｔｓtarget／ｓｕｍcmplxで決定する１６２５。その後スライス形式を決定する１６３０。レベル＞０ならば、ｐｒｅｖＱＰ＋Ｂi,offsetに決定することができる１６３５。そうでない場合、スライス形式がＰコード化されたスライス又はＢコード化されたスライスと決定されるならば、ＱＰ＝ｆｕｎｃ（ｆ、Ｃi）となる１６４０。スライス形式がＩコード化されたスライスと決定されるならば、ＱＰ＝ｆｕｎｃ（ｆ、Ｃi）となる１６４５。スライス形式がＩコード化されたピクチャーと決定されるならば、ｐｒｅｖＱＰプラスオフセットを用いる１６５０。このオフセットは、標題、階層構造へのコーディングパラメータの配分、の章のファクター（ｃ）〜（ｆ）と同様にして決定する。これらの動作１６３５、１６４０、１６４５、１６５０、の少なくとも１つが終わった後、ピクチャーがコード化される１６６０。これ以上ピクチャーがない場合は１６６５、コーディングが終了する１６７０。まだピクチャーがある場合は６５６５、ｉを増やし（例えば、ｉ＋＋）１６７５、ｐｒｅｖＱＰとｓｕｍcmplxを更新し１６８０、その後、ｂｉｔｓtarget、ｂｉｔｓused、及びオーバーフローパラメータについて決定ステップ１６２０を実行する。
【０２０６】
上記説明では、固定ビットレート（ＣＢＲ）又は可変ビットレート（ＶＢＲ）のアプリケーションに対して、実質的にエンコーダ又はデコーダのバッファリングに制約がないとみなすことができる。バッファリングの制約が重大であるアプリケーションに対して、レートファクターｆは、エンコーダ及びデコーダで十分なバッファとするために修正することができる。ｆが小さい場合は、大きなＱＰで少ないコード化されたビットとなるようにバイアスを加え、ｆが大きい場合は、結果的にコード化されたビットを多くすることができる。ビットの使用がバッファのオーバーフロー又はアンダーフローにつながる場合は、ファクターｆは、バッファの充足度を好ましい状態に補償し保持するために、適宜調整することができる。加えて、結果得られるビット数を推定し、エンコーダ及びデコーダのバッファ制約条件を満足するようにコーディングパラメータを調整するようなレート制御モデルと併せて、選択したコーディングパラメータを用いることができる。
【０２０７】
［階層予測構造へのコーディングパラメータの配分］
使い捨てのピクチャー（例えば、モーション補償基準として使うために一時保存するものではないピクチャー）又は、優先順位の低いピクチャーを用いる場合、コーディングパラメータを効率的に選択するために、特別な考慮が必要であろう。使い捨てのピクチャーは、特性が将来のピクチャーに適していないので、一般に、使い捨てのピクチャーには少数のビットを使うべきである。さらに、Ｂコード化されたピクチャーは、平均して、Ｐコード化されたピクチャーより少ないＳＡＤしか生じさせない。その結果、Ｂコード化されたピクチャーに配分するビットは少なくても良い。ここに開示したレート制御アルゴリズムにおいて、そのようなピクチャーに用いられたコーディングパラメータは、使い捨てではなくて優先順位の最も高いレベル（例えば「アンカー」ピクチャー）に属するピクチャーをエンコードするために用いたコーディングパラメータの関数とすることができる。後者のコーディングパラメータは、基本コーディングパラメータと称することができる。いくつかの実施の形態において、コーディングパラメータにはＱＰ値のみを含むことがでる一方、基本ＱＰ値は、ｂａｓｅＱＰ＝ｍａｘ（ＱＰL0(i),ＱＰL1(i)）で表すことができる。階層構造におけるピクチャーの基本ＱＰ値を変化させる修正要素は、本明細書の先の章で表したようにＢoffset,iと称する。
【０２０８】
コーディングパラメータの修正要素は、以下に一覧表示し説明する多くのファクターの関数として決定することができる。
【０２０９】
（ａ）時間的予測距離の影響を受け、ピクチャーが属する階層構造のレベル
（ｂ）周期的形式（イントラ、予測、双方向、その他）
（ｃ）他のピクチャー予測基準としてのピクチャーの使用
（ｄ）基準コーディングパラメータ
（ｅ）シーン形式、シーン変化、フェードイン、フェードアウト、クロスフェード、フラッシュ、その他
（ｆ）現在のピクチャーの（主に時間的）複雑さの測度
いくつかの実施の形態において、上記修正要素の効果はＢoffset,iの導出に対しては線形であり（加算的）、その他に対しては、乗算的になるであろう。例えば、他の領域（量子化ステップ）においておそらく乗算的になり、量子化パラメータ（ＱＰ）領域に変換可能となろう。線形モデルにおいて、Ｂoffset,iは以下のように表される。
【数３３】
0005427785.tif 000035
【０２１０】
コード化されたピクチャーのコーディングパラメータは、各ファクターの影響を受けることになろう。以下のファクターの各々の効果は、ピクチャーに対して最終のコーディングパラメータを生成するための、ビットレートの制約条件及び一時保存の制約条件のほかに、残りのファクターと結合することができる。
【０２１１】
［ファクター（ａ）］
階層構造におけるすべてのピクチャーが同じ優先順位のレベル（デコーディングがアンカーピクチャーにのみ依存する場合）を有する場合、これらのピクチャーをコード化するために同様のコーディングパラメータを用いることができる。例えば、パラメータは、空間的複雑さに依存又は階層構造に置ける位置に依存するｂａｓｅＱＰと比較し、少し調整される。基準コーディングパラメータのときより少ないビットが配分されるように、コーディングパラメータを選択することができる。いくつかの実施の形態において、このファクターは以下のようにあらわされる。
【数３４】
0005427785.tif 000036
【０２１２】
ここで、ｃは、いくつかの実施の形態において、２に等しくなるよう設定することができる。
【０２１３】
それ以外の場合、階層構造のピクチャーの優先順位が変動する場合（例えば、階層構造における特定のピクチャーは、同じ階層構造における他のピクチャーが最初にデコードされない限り、デコードされない）、優先順位の低いレベルに属するピクチャーよりも良い特性であって、優先順位の高いレベルに属するピクチャーよりも劣る特性を生じさせるコーディングパラメータでピクチャーがコード化される。いくつかの実施の形態において、このファクターは以下のように導きさされる。
【数３５】
0005427785.tif 000037
【０２１４】
［ファクター（ｂ）］
スライス形式は、コーディングパラメータの選択の影響を受けることがある。ピクチャーがＩコード化されたピクチャー、Ｐコード化されたピクチャー、又はＢコード化されたピクチャーとして、又は、他の予測タイプとしてコード化することができるならば、以下の制約条件をかけることができる。すなわち、イントラコード化されたピクチャーは、予測コード化されたピクチャーに用いられるコーディングパラメータとは異なる数のビットを配分するコーディングパラメータを採用することができ、予測コード化されたピクチャーは、双方向予測コード化されたピクチャーに用いられるものとは異なる数のビットを配分するコーディングパラメータを用いることができる。いくつかの実施の形態において、基準ＱＰは以下の値をとることができる。
【０２１５】
0005427785.tif 000038
【０２１６】
ここで、ｓI及びｓPは変数であり、両方とも、負ではなく、いくつかの実施の形態において、ｓI＞ｓPで制約される。
【０２１７】
［ファクター（ｃ）］
ピクチャーが基準として用いられると、予測基準として使うことができず配置されないピクチャーより良い特性でピクチャーをコード化することが重要となろう。階層構造におけるすべてのピクチャーが同じ優先順位のレベルである場合、（例えば、デコーディングがアンカーピクチャーにのみ依存する場合）、基準とならないピクチャーに用いられるコーディングパラメータに用いられるコーディングパラメータと比較して良い特性を生じるコーディングパラメータを基準ピクチャーは用いることができる。いくつかの実施の形態において、ファクターは以下のように表すことができる。
【０２１８】
0005427785.tif 000039
【０２１９】
ここで、ｃは、１に設定することができる非負の変数である。
【０２２０】
そうでない場合、階層構造のピクチャーの優先順位が変動する場合（例えば、階層構造における特定のピクチャーが、同じ階層構造における他のピクチャーが最初にデコードされない限り、デコードされないかもしれない場合）、コーディングパラメータを上記段落で説明したように調整するか又は、そのままにすることができる。従って、いくつかの実施の形態において、ファクターはゼロに設定される。
【数３６】
0005427785.tif 000040
【０２２１】
任意的に、現在のピクチャーを基準として使うかどうかを考えるだけでなく、モーション補償予測にどの基準を使うのかを考えることもできる。一般に、表示の順序に近い、より特性の良いアンカーピクチャーから直接予測されたピクチャーは、表示の順序から離れた特性のの劣るピクチャーからされたピクチャーと比べたとき、適切なコーディングパラメータの選択を通して少ないビットでコード化することができる。これは、レベルの関数のみならず位置の関数とすることもできる。
【０２２２】
例えば、図４において、同じレベルに属するピクチャー２及び４を考える。いくつかの実施の形態において、同じ階層レベルに属していても、ピクチャー２は、ピクチャー４と比べて高い特性基準を入手することができる。他の実施の形態において、これらのピクチャーの複雑さも考慮することができ、多くの又は少数のビット及びその特性は、それぞれ、多かれ少なかれ主観的又は客観的特性に顕著に影響を与えるピクチャーに割り当てられる。
【０２２３】
［ファクター（ｄ）］
基準コーディングパラメータが良い特性をもたらすならば、特性の劣化が知覚されないので、階層構造のピクチャーのコーディングパラメータの質を少し下げることができる。しかし、基準コーディングパラメータが良くない特性をもたらすならば、質を下げることについては、たとえあったとしても、考えるべきではない。いくつかの実施の形態において、この修正要素は、基準ＱＰパラメータの値と共に減少する関数とすることができる。この関数は、線型関数、非線型関数、指数関数、ガウス関数、又は、他の形式の関数とすることができる。このパラメータを導出することができるものとして、以下が含まれる。
【数３７】
0005427785.tif 000041
【０２２４】
［ファクター（ｅ）］
シーン形式は、階層構造におけるピクチャーのコーディングパラメータを決定する上で重要となり得る。いくつかのコーディング構成において好ましくないかもしれないが、階層構造内でシーン変化をコード化することは可能である。２つのアンカーピクチャーのうちの１つが、高い可能性でありうることであるが、新しいシーンの第１のピクチャーの内の１つを含んでいても、特性が一様でないことに起因する視覚的性能の低下を避けることが重要となるであろう。新しいシーンにおける第１の少数のピクチャーが、アンカーピクチャーとしてコード化されたものより特性がよくないことがありえるので、状況によっては、特性が一様でないことは起こり得る。このような客観的特性の問題を避けるために新しいシーンに属するピクチャーの特性は向上させておくべきである。いくつかの実施の形態において、Ｂiscene＝−ｃ1と設定することにより、但しｃ1は非負の変数である、これを達成することができる。
【０２２５】
フェード又はウェイト付けられた予測に属するピクチャーを用いる場合は、コーディングパラメータは、ビットを少ししか使わないように調整すべきである。いくつかの実施の形態において、係数はゼロ、例えばＢiscene＝０、に設定される。
【０２２６】
フラッシュがコード化されるときは、めったに知覚されないので、使うビット数はもっと少なくすることができる。いくつかの実施の形態において、これは、Ｂiscene＝−ｃ2、ｃ2は非負の変数、のようにして達成することができる。
【０２２７】
いくつかの実施の形態において、上記ファクター（ａ）からファクター（ｅ）までに記載した変数は、他の、とりわけ、エンコーダ及びデコーダにおけるバッファリングの制限、平均ビットレート、最小ビットレート、及び最大ビットレートの制限、使用する基本ＱＰ、及びシーケンス統計のような他の種々の要因によって決まる。
【０２２８】
ピクチャーの複雑さの測度は、アンカーピクチャーコーディングパラメータ（例えばＱＰ）を導出するために最初に用いることができ、基本ＱＰはアンカーピクチャーの関数となる。しかし、階層構造におけるピクチャー内で無視できない複雑さの変動があり、これが、現在のピクチャーの複雑さに応じてコーディングパラメータを変化させる根拠となる。ピクチャーが複雑すぎる場合、コーディングパラメータは、多くのビットを消費しないように調整すべきである。
【０２２９】
上述のように、ピクチャーの複雑さを推定し、そして、ＱＰのようなコーディングパラメータの調節に用いることができる。この説明はアンカーピクチャーに関する。階層構造におけるピクチャーをコード化するために用いられるコーディングパラメータの調整のためにアンカーピクチャーの複雑さを採用することは問題なく可能であるが、場合によってはこの方法は準最適なものとなる。このような場合に適切な方法は、エンコードに使う基準ピクチャーに関する問題（例えばピクチャーｉ）のピクチャーの時間的複雑さ（例えば、ＳＡＤ）を用いることが含まれる。
【０２３０】
例えば、コーディング順序Ｉ０−Ｐ４−Ｂ２−Ｂ１−Ｂ３の階層コーディング構造ＩＢＢＢＰにおいて、ピクチャー０はイントラコード化されたピクチャーとなり、ピクチャー４はＰコード化されたピクチャーにコード化されるであろう。次いで、ピクチャー２は、基準として保存されるＢコード化されたピクチャーとして、コード化される。最後に、 ピクチャー１及び３が、使い捨てのＢコード化されたピクチャーとしてコード化される。ピクチャー０から予測したピクチャー４（例えば、「アンカー」ピクチャー）の複雑さの推定は、ピクチャー０及び２から予測したピクチャー１の複雑さの推定と比べて異なることがある。入手可能なＳＡＤ予測誤差が、単方向予測モーション推定のみを伴うならば、ピクチャー１の複雑さ推定は、ｃ1,temporal＝ｍｉｎ（ＳＡＤ1（０），ＳＡＤ1（２））としてモデル化することができる。一般に階層構造内の双方向予測ピクチャーの時間的複雑さは、ｃi,temporal＝ｍｉｎ（ＳＡＤi（Ｒ０（ｉ）），ＳＡＤi（Ｒ１（ｉ））のように表現することができる。項、Ｒ０（ｉ）及びＲ１（ｉ）は、ピクチャーｉの双方向予測に用いられる２つの基準の指標である。双方向予測ＳＡＤ統計が入手できるなら、この統計を上記決定の代わりに使うべきである。
【０２３１】
他の実施の形態において、入手可能なＳＡＤ予測誤差が、単方向予測モーション推定のみを伴うならば、ブロックレベルで最小化を適用することによりもっと正確な双方向予測ＳＡＤの推定が得られる。１つの例では、Ｂは、ピクチャー中の全ブロックの数を示し、ＳＡＤmb（ｎ）は、ピクチャーｎ中のあるブロックから、ピクチャーｎ中のブロックｂを予測するための単方向予測ＳＡＤ誤差を示す。複雑さの推定は、ピクチャー内のすべてのブロックについて、２つの基準の各々から、ブロックに基づくＳＡＤの最小値の総和とすることができる。この複雑さの推定は、以下のように表すことができる。
【数３８】
0005427785.tif 000042
【０２３２】
コーディングパラメータ修正基準は、以下の前提に基づくことができる。すなわち、階層構造におけるピクチャーの複雑さが、アンカーピクチャーの複雑さの割合又はアンカーピクチャーから導出した閾値を超える場合は、コーディングパラメータはビットの使用量を減らすよう修正すべきである。このアルゴリズムの１つの可能な実施の形態は以下のように表すことができる。
【数３９】
0005427785.tif 000043
【０２３３】
ここで、δは、ゼロより大きい浮動小数点数であり、１以下の値をとることができる。閾値Ｑは、正の値をとることができ、小さな整数値、例えば２、に設定することができる。
【０２３４】
ピクチャーの語は、上述のように最小のコーディングユニットとして表現されているが、ここに開示するすべてのアルゴリズム及び実施の形態は、フィールド／インターレース・コーディング、ピクチャー毎の複数スライスの使用、及びブロック領域に適用することができる。この方法は、任意の領域に基づくコーディングを明らかにすることもできる。
【０２３５】
［空間的コーディングパラメータの適合］
階層予測構造にコーディングパラメータを配分するための上記説明は、どちらかというと、ピクチャーをコード化するために用いるコーディングパラメータの選択に関するものである。さらに圧縮性能を向上させるために、空間的統計の変化を起こさせるためにマクロブロックに基づき、コーディングパラメータを変化させることができる。複雑さ推定の章で上述の開示と同様に、マクロブロック（例えば１６×１６ピクセルのブロック）のコーディングパラメータは、いくつかの形式の複雑さの関数であるマクロブロック複雑さ測度を用いて調節することができる。Ｈ．２４６／ＡＶＣのような最近のビデオコーディックにおいて、コーディングパラメータは、調整して４×４ピクセルの粒度に下げることができる。このような複雑さの形式の関数は、加算又は乗算可能であり、この関数の値が高ければ高いほど、多くの圧縮アーティファクトをマスクすることができる。
【０２３６】
一例によれば、ｍ及びｎは、それぞれ、ピクチャー中のマクロブロックの水平座標及び垂直座標を表す。また、ｍ及びｎは、マクロブロックの単位で計測したときのピクチャーの水平長さ及び垂直長さをそれぞれ表すことができる。以下の測度は、関数のパラメータであり、これらのパラメータには、空間的分散ｃvar、端部情報ｃedge、テクスチャ情報ｃtexture、輝度情報ｃlum、及び時間的複雑さ情報ｃtemporal。
【０２３７】
（ａ）空間的分散ｃvar
この複雑さの測度は、マクロブロックベースの空間的分散の決定の形式とすることができる。第１に、ブロック中の輝度及び／又はクロミナンスピクセル値の平均値を決定することができる。第２に、各ピクセル値と先に決定した平均値との差の２乗の平均を、空間的分散として計算することができる。代替的に、ピクセル値のイントラブロック相互相関のような、空間的変動をつかまえる他の測度を用いることもできる。
【０２３８】
（ｂ）端部情報ｃedge
端部情報は、ソーベルフィルター又はプレヴィットフィルターのような端部を検出するフィルターを適用することにより集めることができる。端部情報の強さと方向は、マクロブロックにおける端部の内容を表すものとすることができる。同様の情報を、何らかの空間変換を適用し、水平周波数及び垂直周波数を表す係数を評価することにより集めることができる。
【０２３９】
（ｃ）テクスチャ情報ｃtexture
テクスチャ情報は、空間的周波数を表す特定の変換係数の２乗値の和のような種々の方法で集めることができる。このアプリケーションに適した変換には、離散コサイン変換、離散ウェーブレット変換、及びバンドレット及びエッジレット変換（ｂａｎｄ−ｌｅｔ  ａｎｄ  ｅｄｇｅ−ｌｅｔ  ｔｒａｎｓｆｏｒｍｓ）
（ｄ）輝度情報ｃlum
このパラメータは、マクロブロックの、平均輝度及び／又は平均クロミナンスを表すことができる。
【０２４０】
（ｅ）時間的複雑さ情報ｃtemporal
この時間的複雑さは、上述のとおり、ピクチャーレベルの時間的複雑さの推定及びフィルタリング反映することができる。この時間的複雑さは、モーションベクトルの大きさに関数でもある。違いは、値が、例えばＳＡＤが、個々のブロック又はマクロブロックであることである。この種の複雑さを用いる理由のひとつは、特定のブロックが同じピクチャー内の他のモーションより顕著なモーションで特徴付けられる場合、このブロックは、モーションが圧縮アーティファクトをマスクするので、特性を劣化させてコード化することができる。
【０２４１】
上記パラメータ（ａ）〜（ｅ）から、各ブロックの最終的な空間的複雑さは、以下のように表すことができる。
【数４０】
0005427785.tif 000044
【０２４２】
いくつかの実施の形態において、各ブロックをエンコードするために用いるＱＰ修正要素の第１の表現は以下のように記述することができる。
【数４１】
0005427785.tif 000045
【０２４３】
パラメータｄ及びｂは、ＱＰオフセットの制限及び集中化のために用いることができる一方、パラメータα、β、及びγはシミュレーションの後選択することができる。パラメータｂ及びｄは、１つの可能性のある実施の形態において１及び２に設定することができる。選択したＱＰは、近接するブロックの間でＱＰの大きな変動を減少させるためにフィルターすることができる。例えば、近接するすべてと異なるブロックのＱＰ値は、近接する値の平均値に設定することができる。このフィルタリングにより、ＱＰmod,f（ｍ，ｎ）が生成される。ブロックをコード化するために用いられる最終のＱＰは、全体のピクチャーについての平均ＱＰ値が、現在のピクチャーＱＰのレート配分／制御により選択されたＱＰに確実に等しくなるように相殺される。すなわち、
【数４２】
0005427785.tif 000046
【０２４４】
ＱＰは、エンコーダバッファの制約条件及びデコーダバッファの制約条件を満足させるためにさらに修正を加えることができる。エンコーダが、バッファのオーバーフロー又はアンダーフローが起こりそうであると予測した場合、制約条件を満足させるために、ＱＰを増加又は減少させることができる。目標ビットレートを達成する場合も同じである。ビットを消費しすぎる場合、以前のピクチャーからコーディングをもらい、ＱＰ値を増大することにより特定に領域に配分するビットを少なくすることができる。同様に、十分なビットが用いられないならば、特定のブロックのＱＰ値を減少させることができる。
【０２４５】
いくつかの実施の形態において、パラメータの配分は、ピクチャーの配置場所（例えば、現在のレベル及び時間的位置）を決定する関数とすることができる。レベル０は、最も優先順位の高いレベルを表すことができる。特に、最初にデコードされた同じレベル内で既に一度エンコードされたピクチャーをデコードすることのできるピクチャーをレベル０に有することができる。これらのピクチャーは、他の低いレベルにあるピクチャーより良い特性を持つことができる。
【０２４６】
ＱＰ又はレート配分は、同じブロック又は他のブロック内の他のピクチャーに関して、スライス形式又は予測形式によって決めることができる。他の要素として、ピクチャーが他のピクチャーの予測に用いることができるかどうかが含まれる。例えば、いくつかのピクチャーは、廃棄することができ、特性又はビットレートに大きく寄与することはない。
【０２４７】
図１７は、提示したレート制御アルゴリズムの様々なステップのいくつかを例示した線図である。フレームコーディングを開始し１７１０、残りのビット、目標ビットレート、及びバッファに初期化を施す１７１５。上述の複雑さ推定 についての章に記載したように、現在のフレームについて複雑さの推定を決定する１７２０。複雑さフィルタリング及び特性／ビットレートの検討の章で記載したように、現在のフレームについて複雑さのフィルターを決定する１７２５。この決定１７２５ではシーン形式その他の検討事項を考慮に入れる。上述の、先読みを有するレート配分の章、及び／又は、先読みを有する高い複雑さと低い複雑さのシングルパスのレート制御の章に開示したように、現在のフレームに対する初期コーディングパラメータを選択する１７３０。上述の、階層予測構造へのコーディングパラメータの配分の章に開示したように、階層構造のフレームに対するコーディングパラメータを調整する１７３５。次いで、空間的コーディングパラメータの配分の章で開示したように、フレーム内で、コーディングパラメータを調整する１７４０。そして、フレームコーディングが終了する１７５０。順序、ステップ、及び／又は、ステップの形式が異なる他のフロー線図又は他の実施の形態が図１７に示されている。
【０２４８】
［システムの実施例］
図１８は、ここに記載した技術（又はその組み合わせ）を採用することができるシステムの例を示したものである。この技術では１つ以上のコンピュータ１８０５Ａ及び１８０５Ｂを用いることができる。ここに記載の１つ以上の方法（例えばアルゴリズム／処理）は、コンピュータ、及び／又は、ビデオディスプレー１８２０、伝達システム、処理システム、及び再生システムにより実施することができる。ここに記載のコンピュータは、汎用コンピュータでも、ワークステーションのような特定用途のコンピュータでも、どんなコンピュータでもよい。コンピュータ１８０５Ｂは、例えばインテル又はＡＭＤベースのコンピュータで、Ｗｉｎｄｏｗｓ ＸＰ、Ｗｉｎｄｏｗｓ Ｖｉｓｔａ、又はＬｉｎｕｘとすることができ、又は、マッキントッシュコンピュータとすることができる。実施の形態は、ＰＤＡ１８１５のようなハンドヘルドコンピュータ、携帯電話１８１５、又はラップトップコンピュータ１８０５Ａに関連するものとすることができる。コンピュータは、イメージの記録又は受信処理を行う装置１８２５、１８３０、１８３５、記憶装置１８４０、及び特定のビデオデータのデータ送信装置を含むことができる。
【０２４９】
ここに記載した実施の形態のどのように組み合わせもビデオシステム及びその構成要素の一部となることができる。これらの実施の形態のどのように組み合わせも図１、及び／又は、他の構成要素の例におけるビデオエンコーダの一部となることができる。これらの実施の形態のどのように組み合わせも、ハードウェア及び／又はソフトウェアに組み込むことができる。例えば、どの実施形態もコンピュータプログラムで実行することができる。
【０２５０】
コンピュータ、及び／又は、グラフィックプログラムは、Ｃ又はＰｙｔｈｏｎ又はＪａｖａ又はＢｒｅｗ又は他のプログラミング言語で記述することができる。プログラムは、例えば磁気的又は光学的な、例えば、コンピュータハードドライブ、リムーバブルディスク又はメモリースティック又はＳＤメディアのようなリムーバブルメディア、有線又は無線のネットワークベースの又はブルートゥースベースの（又はその他の）ネットワーク記憶装置（ＮＡＳ）、又は他の固定メディア又はリムーバブルメディアのような、記憶媒体に常駐することができる。プログラムは、例えば、ローカルマシーンにここに記載の動作を行わせることができるように、ローカルマシーンに通信することのできるサーバ又は他のマシーンにより、ネットワーク１８５０を介して走らせることもできる。ネットワークには、ストレージエリアネットワーク（ＳＡＮ）が含まれる。
【０２５１】
ほんの少しの実施の形態を上記に詳述しただけであるが、本発明の他の実施の形態も可能である。当然のことながら、本発明の実施の形態は、ここに記載した１以上の例と均等なもの及び置き換えたものを含有する。この明細書は、他の方法でもっと一般的な目的を達成するための具体的な実施例を記載している。この記載では、実施の形態及び以下の請求項が、均等又は、修正又は、置き換えを行ったものをも含むことは了解されよう。
【０２５２】
本明細書に記載した対象及び機能的動作は、本明細書に記載した構成、及びその均等物、又は、１つ以上のそれらの実施の形態の組み合わせを含む、ディジタルの電子回路、又は、コンピュータソフトウェア、又は、ファームウェア、又は、ハードウェアに組み込むことができる。本明細書に記載した実施の形態の対象は、１以上のコンピュータプログラム製品として、例えば、データ処理装置により実行されるか又はデータ処理装置の動作を制御するための、コンピュータ読取可能媒体にエンコードされたコンピュータプログラム命令の１以上のモジュールとして、実行することができる。コンピュータ読取可能媒体は、機械読取記憶装置、機械読取記憶回路基板、記憶装置、伝達された機械読取効果を持つ構成物、処理された通信、又は１以上のこれらの組み合わせとすることができる。用語「データ処理装置」は、プログラマブルプロセッサ、コンピュータ、又は、複数プロセッサ又はコンピュータの例を含む、データを処理するすべての設備、装置、及び機械を含有する。設備には、ハードウェアに加えて、例えば、プロセッサファームウェア、プロトコルスタック、グラフィカルシステム、データベース管理システム、オペレーティングシステム、又はこれらの１つ以上の組み合わせのような、問題になっているコンピュータプログラムの環境を作り実行するコードを含むことができる。
【０２５３】
コンピュータプログラム（プログラム、ソフトウェア、ソフトウェアアプリケーション、ソフトウェアスクリプト、ソフトウェアコードとしても知られている）は、コンパイル言語又はインタープリタ言語を含む、どのようなプログラム言語で記述することもでき、コンピュータプログラムは、スタンドアローンプログラム、又は、モジュール、コンポーネント、サブルーチン、又は、コンピュータ環境で用いるのに適切な他のユニットに展開することができる。コンピュータプログラムは、必ずしもファイルシステムのファイルに対応するものでなくてもよい。プログラムは、他のプログラム又はデータを保持するファイル（例えば、マークアップ言語ドキュメント内に保存した１以上のスクリプト）の一部に、又は問題のプログラム専用の単一ファイルに、又は複数の協業的なファイル（例えば、１以上のモジュール、サブプログラム、又は、コードの一部）に記憶させることができる。コンピュータプログラムは、１つのサイトに置かれた、又は通信ネットワークでつながれた複数のサイトに分散した、１つのコンピュータ又は複数のコンピュータ配備することができる。
【０２５４】
この明細書に記載したプロセス及びロジックフロー及び図は、入力データに作用して出力を生じさせることにより１以上のコンピュータプログラムを動作させる、１以上のプログラマブルプロセッサにより実行することができる。プロセス及びロジックフローは、特殊用途ロジック回路、例えばＦＰＧＡ（フィールドプログラマブルロジックゲートアレー）又は、マイクロコントローラのような他のプログラマブルロジック装置、又はＡＳＩＣ（特定用途向け集積回路）により実行することもでき、このようなものとして装置に組み込むこともできる。
【０２５５】
コンピュータプログラムを実行するのに適当なプロセッサには、一例として、汎用又は専用のマイクロプロセッサ、及び、ディジタルコンピュータの１以上のプロセッサが含まれる。一般に、プロセッサは、リードオンリーメモリ又はランダムアクセスメモリ又はその両方から命令を受け取ることができる。コンピュータの本質的な要素は、命令を実行するプロセッサと命令とデータを記憶する１以上の記憶装置である。一般に、コンピュータは、データを記憶させるための１以上の大量記憶装置を、例えば磁気ディスク、光磁気ディスク、又は光学ディスクを含むことができ、又は、データを受信又は送信又はこの両方を行うためにこれらの大量記憶装置と動作可能に結合することができる。しかし、コンピュータは、そのような装置を持つ必要はない。さらに、コンピュータは他の装置、例えば、少し例を挙げるなら、携帯電話、携帯端末（ＰＤＡ）、携帯オーディオプレーヤー、グローバルポジショニングシステム（ＧＰＳ）受信器、に組み込むことができる。コンピュータプログラムとデータを記憶するのに適切なコンピュータ読取可能媒体には、一例として、半導体記憶装置、例えば、ＥＰＲＯＭ、ＥＥＰＲＯＭ、及び、フラッシュメモリ装置、磁気ディスク、例えば内蔵ディスク又はリムーバブルディスク、光磁気ディスク、及びＣＤ−ＲＯＭ、及びＤＶＤ−ＲＯＭディスクを含む、すべての不揮発性のメモリ、媒体、及び、記憶装置が含まれる。このプロセッサ及びメモリは、特定用途向け集積回路に組み込み又は付加することができる。
【０２５６】
ユーザとのやり取りを行うために、本明細書に記載の対象についてのいくつかの実施の形態は、ユーザに情報を表示するための、ディスプレー装置、例えば、ＣＲＴ（カソードレイチューブ）、ＬＣＤ（液晶ディスプレー）、又はプラズマディスプレーモニター１８２０、及びキーボード及び選択スイッチ、例えば、ユーザがコンピュータに入力するためのポインティング装置、マウス、又はトラックボール、に組み込むことができる。他の種類の装置をユーザとのやり取りを行うために用いることができる。例えば、ユーザに対するフィードバックとして、あらゆる種類の感覚的フィードバック、例えば視覚的フィードバック、聴覚的フィードバック、触覚的フィードバックを用いることができ、また、ユーザからの入力は、音響、音声、又は触覚的入力を含む、どんな形式でも受け取ることができる。
【０２５７】
本明細書に記載した対象についてのいくつかの実施の形態は、例えば、データサーバのようなバックエンド要素、又は、例えば、アプリケーションサーバのようなミドルウェア要素、又は、例えば、グラフィックユーザインターフェース、又は、ユーザが本明細書に記載した対象の実施の形態とのやり取りを行うことができるウェブブラウザ、又は、このようなバックエンド要素、ミドルウェア要素、又は、フロントエンド要素のうちの1つ以上の組み合わせを有するクライアントコンピュータのようなフロントエンド要素を含むコンピュータシステムに組み込むことができる。システムの構成要素は、例えば通信ネットワークのような、どのような形態又は媒体のディジタルデータ通信によっても相互接続することができる。通信ネットワークの例として、ローカルエリアネットワーク（ＬＡＮ）及びワイドエリアネットワーク（ＷＡＮ）、例えばインターネットが含まれる。
【０２５８】
コンピュータシステムには、クライアントとサーバとを含めることができる。クライアントとサーバとは一般にお互いに離れており、通常は通信ネットワークを通じて相互に通信している。クライアントとサーバとの関係は、それぞれのコンピュータ上を走り、相互にクライアントとサーバの関係を有するコンピュータプログラムにより、生じる。
【０２５９】
本開示には多くの詳細説明が含まれているが、これらは特許請求の範囲を解釈するためのものではなく、発明の特定の実施の形態と特徴を記載するものである。別々の実施の形態として本明細書に記載された特徴も、1つの実施の形態に統合することもできる。逆に言えば、１つの実施の形態として記載した種々の特徴は、別々の実施の形態として又は適切なサブコンビネーションとして実施することもできる。さらに、本発明の特徴が特定の組み合わせとして振る舞うように記載されていたとしても、また、当初はそのように特許が請求されていたとしても、請求項の組み合わせから１つ以上の特徴が、場合によっては、組み合わせから抽出することができ、特許請求した組み合わせは、サブコンビネーション又はサブコンビネーションの変種を導く。
【０２６０】
同様に、動作が特定の順序で図面中に示されているが、これは、求める結果を達成するために、このような動作を図示した特定の順序、又はシーケンシャルな順序で行うことを要求するものではなく、又は、図示したすべての動作を行うことを要求するものではないことは理解すべきである。特定の環境では、マルチタスク及びパラレル処理が望ましい。さらに、上述の実施の形態における種々のシステムを分割することについて、すべての実施の形態でこのような分割が必要ではないことを理解すべきであり、記載のプログラム構成要素及びシステムは、一般に、単一のソフトウェア又はハードウェア製品又は複数のソフトウェア又はハードウェア製品パッケージに組み込むことができることは理解すべきである。
【０２６１】
いくつかの実施の形態において、本方法／アルゴリズムを用いるシステムには、ビデオ エンコーダ、任意的なモーション推定及び補償プレアナライザ、任意的な空間的統計分析モジュール、コーディングパラメータを選択する１以上のレート制御モジュール、エンコーディング処理から有用な統計を集める複数の統計モジュール、任意的なＭＥＭＣプレアナライザ及び／又はビデオエンコーダからの統計を融合させることのできる決定モジュールを含むモーション推定及び補償プレアナライザから統計を集める任意的な統計モジュール、レート配分の制御装置、種々の制御モジュール及び／又はトランスコーダを含むことができる。
【０２６２】
モーション推定は、ブロックベースのモーション推定及び領域ベースのモーション推定、位相相関、ペル・リカーシブ技術、その他を含むどのようなアルゴリズムを用いることもでき、並進運動、アフィン、媒介変数、その他を含む種々のモーションモデルを用いることができる。従って、本明細書には特定の実施の形態／実施例を記載した。他の実施の形態も以下の特許請求の範囲内である。
本願の出願時の請求項を下記に記載しておく。
〔請求項１〕
動き補償プロセッサ又は動き補償アナライザ、動き補償装置、空間セッサ、フィルターから作られた、又は、以前のコーディング経路で作られた、ピクチャーの複雑さの測定基準を受け取るステップであって、該複雑さには、時間的特性、空間的特性、又は、輝度的特性が含まれることを特徴とするステップと、
前記ピクチャーの複雑さの測定基準を推定するステップであって、
ピクチャーが将来のピクチャー又は過去のピクチャーと相関関係があるかどうかを判断するステップと、
ピクチャー又はピクチャーの領域が、アーティファクトをマスクしないピクチャーの領域、又は将来のピクチャーの領域、又は過去のピクチャーの領域より効果的にアーティファクトをマスクするかどうかを判断するステップと、
を具備することを特徴とする測定基準を推定するステップと、
を具備することを特徴とするピクチャーの複雑さを推定する方法。
〔請求項２〕
分離していると考えられるブロックに情報を送ることにより、局所的な複雑さの情報を提供することを特徴とする請求項１に記載の方法。
〔請求項３〕
前記ピクチャーに蓄えるためにブロックに情報を送ることによりピクチャーの全体的な複雑さの情報を提供することを特徴とする請求項１に記載の方法。
〔請求項４〕
エンコーダで前記ピクチャーコーディングするステップであって、該エンコーダは、端部情報、又は、時間的特性、空間的特性、又は、輝度特性の組み合わせを用いて複雑さの測度を決定するようになっていることを特徴とするステップをさらに具備することを特徴とする請求項１に記載の方法。
〔請求項５〕
圧縮アーティファクトに対するピクチャーの１以上の領域の感度を決定するステップと、低い画質と判断された場合、該画質を向上させるためにピクチャー又はピクチャーの領域をコーディングするステップをさらに具備することを特徴とする請求項１に記載の方法。
〔請求項６〕
前記ピクチャーに対して１以上のコーディングパラメータを選択するステップと、該コーディングパラメータを該ピクチャーに分配するステップとをさらに具備することを特徴とする請求項１に記載の方法。
〔請求項７〕
前記コーディングパラメータは量子化パラメータを具備し、前記方法はさらにスライス又はフレームの複雑さを推定することを特徴とすることを特徴とする請求項１に記載の方法。
〔請求項８〕
ピクチャー又はピクチャーの領域が、アーティファクトをマスクしないピクチャーの領域、又は将来のピクチャーの領域、又は過去のピクチャーの領域より効果的にアーティファクトをマスクするかどうかを判断するステップは、
前記ピクチャー中のマスキングアーティファクトを、前記ピクチャー中の少なくとも１つの他の領域、又は、過去のピクチャー中の少なくとも１つの他の領域、又は将来のピクチャー中の少なくとも１つの他の領域と比較するために、コーディング統計を用いるステップと、
前記ピクチャー中のマスキングアーティファクトを、前記過去のピクチャー又は前記将来のピクチャーと比較するためにコーディング統計を用いるステップと、該コーディング統計を用いて複雑さの測定基準を推定するステップとを具備することを特徴とすることを特徴とする請求項１に記載の方法。
〔請求項９〕
ビデオピクチャー同士の複雑さの情報を評価するステップであって、該複雑さの情報は、時間情報又は空間情報を具備し、該ビデオピクチャーはビデオフレームを具備することを特徴とするステップと、
フレーム形式を決定しパラメータを分析するために複雑さの情報を用いるステップであって、該パラメータは、場面変化、フェードイン、フェードアウト、クロスフェード、局所照明変化、カメラパン、又は、カメラズームのためのパラメータを具備することを特徴とするステップと、
異常値を除去するため及前記パラメータ中の又はビデオフレーム同士のビデオの質の急な変動を避けるために分析されたパラメータを用いることにより、統計量又はビデオフレーム同士の複雑さをフィルターするステップと、
を具備することを特徴とする高品質のコード化されたビデオを生成するための方法。
〔請求項１０〕
前記ビデオをトランスコードするためにエンコードされたビデオに先読み窓を用いるステップをさらに具備することを特徴とする請求項９に記載の方法。
〔請求項１１〕
空間的に又は時間的にダウンサンプリングすることにより複雑さ情報を減少するステップであって、前記統計又は複雑さをコーディングパラメータ又はビデオ画質の急激な変動の程度を決定するために用いることを特徴とするステップをさらに具備することを特徴とする請求項９に記載の方法。
〔請求項１２〕
ピクチャーを階層構造にコード化すべきかどうかを判断するステップであって、該階層構造は複数のピクチャーレベルを具備し、該階層構造は異なるピクチャーレベルでのビット又はコーディングパラメータをさらに具備することを特徴とするステップと、
ピクチャーの特定の階層レベルへの割り当ての決定に基づき、該ピクチャーの重要性に基づきピクチャーをコード化するステップであって、該コード化は該ピクチャーの画質レベルを制御するステップを具備し、該コード化は該重要性に基づき該ピクチャーのコーディングパラメータの少なくとも１つを変化させるステップをさらに具備することを特徴とするステップと、
を具備することを特徴とするピクチャーの複雑さを推定する方法。
〔請求項１３〕
前記コーディングパラメータは、量子化パラメータを具備し、前記方法は、前記ピクチャーのシーンの領域を分割することにより、ビット又は量子化パラメータをピクチャーに配分するステップであって、該領域は、単純領域、複雑領域、又は、他のピクチャーをコーディングために重要な領域を具備することを特徴とするステップをさらに具備し、前記方法は、スライス又はフレームの複雑さをさらに推定することを特徴とする請求項１２に記載の方法。
〔請求項１４〕
複雑さの推定では、複数の測定基準又は並列する測定基準を採用し、該測定基準は、平均２乗誤差（ＭＳＥ）、誤差の平方和（ＳＳＥ）、差分絶対値和（ＭＡＤ）、又は予測誤差の絶対値差分和（ＳＡＤ）を含むことを特徴とする請求項１３に記載の方法。
〔請求項１５〕
マクロブロックに基づくビデオデータのパラメータをコード化するステップであって、
該コード化は、空間的統計及び時間的統計における変動を明らかにするステップを具備することを特徴とするステップと、
複雑さの測度を生成するステップと、
複雑さの測度の重要性を判断するステップと、
複雑さの測度をコーディングパラメータセットにマッピングするステップと、ビデオデータにおける多かれ少なかれ重要なビデオデータ中のイメージ領域を作ることにより、ビデオデータの質のレベルを上げるためにコーディングパラメータセットを調整するために複雑さの測度を用いるステップと、
を具備することを特徴とするビデオデータをコード化する方法。
〔請求項１６〕
前記複雑さの測度は、空間的な測度、時間的な測度、端部の測度、輝度の測度、クロミ
ナンスの測度、又はテクスチャの測度のいずれかからなることを特徴とする請求項１５に
記載の方法。
〔請求項１７〕
現在のフレームを受け取るステップと、
該現在のフレームに対するビットレートの目標とビット数とを設定するステップと、
前記ピクチャーの複数の複雑さを決定するステップであって、該複雑さを決定するステップは、
各複雑さのコーディングパラメータを並列的に決定するステップと、
各複雑さに対して該コーディングパラメータを決定した後、それぞれの前記複雑さを用いて、それぞれのピクチャーをコード化するステップと、
該コード化されたそれぞれのピクチャーから最終的なコード化されたピクチャーを選択するステップと、
該最終的なコード化されたピクチャーの選択を用いて複数の前記複雑さを更新するステップと、
を具備することを特徴とする複雑さを決定するステップと、
を具備することを特徴とするピクチャーをエンコードする方法。
〔請求項１８〕
前記複数の複雑さは、Ｎ個の複雑さを具備し、コーディングパラメータセットを、該Ｎ個の複雑さのそれぞれについて決定することを特徴とする請求項１７に記載の方法。
〔請求項１９〕
前記それぞれの複雑さにピクチャー先読み情報を用いることにより画質のレベルを上げるステップをさらに具備することを特徴とする請求項１７に記載の方法。
〔請求項２０〕
ピクチャー先読みバッファの情報を受け取るステップと、
第１のコーディング経路で、ピクチャーのビットターゲットを設定するためにレート配分を行うステップであって、
該レート配分には、ピクチャーの複雑さを判断するためにピクチャー先読みバッファを用いるステップと、
レート制御モデルを用いてビットターゲットのコーディングパラメータセットを選定するステップと、
を具備することを特徴とするステップと、
を具備することを特徴とするビデオのレート配分の方法。
〔請求項２１〕
前記複雑さは、動き補償を行った絶対値差分和（ＳＡＤ）、又は、ウェイト付けした推定を有するＳＡＤ、又は、時間的ピクチャー統計及び空間的ピクチャー統計の組み合わせを具備することを特徴とする請求項２０に記載の方法。
〔請求項２２〕
多数のピクチャーの複雑さの合計、又は、多数のピクチャーの複雑さの線形結合又は非線形結合による全体的な複雑さを決定するステップであって、該合計は、ウェイト付けした合計を具備することを特徴とする請求項２０に記載の方法。
〔請求項２３〕
前記ピクチャーがプレディクティブ・ピクチャーか又はノン・プレディクティブ・ピクチャー化を決定することにより、前記複雑さを決定するステップをさらに含むことを特徴とする請求項２０に記載の方法。
〔請求項２４〕
全体ビット割り当て中の残りのビット数を考える関数と共に、前記ピクチャーに配分されたビット数を決定するステップをさらに具備することを特徴とする請求項２０に記載の方法。
〔請求項２５〕
多数のピクチャーの複雑さのウェイト付けした合計を有する全体的な複雑さを決定するステップ、又は、前記ピクチャーがイントラ・ピクチャー推定か又はインターピクチャー推定かを決定することにより複雑さを決定するステップであって、前記コーディングパラメータのセットが量子化パラメータを具備することを特徴とする請求項２０に記載の方法。
〔請求項２６〕
ピクチャーの量子化パラメータ及び多数の残りのビットを初期化するステップと、
ピクチャー先読みフレームの全体的な複雑さを決定するステップと、
Ｉコード化されたピクチャー、Ｐコード化されたピクチャー、又は、周期的にＩコード化されたピクチャーからなるピクチャーのスライス形式を決定するステップと、
Ｉコード化されたピクチャーについて、インターコード化されたピクチャーに配分されるビットの数を決定するステップと、このピクチャーをコード化するための量子化パラメータを用いるために第１のレート制御モデルを採用するステップと、
Ｐコード化されたフレームについて、予測コード化されたピクチャーに配分されるビットの数を決定するステップと、このピクチャーをコード化するための量子化パラメータを用いるために第２のレート制御モデルを採用するステップと、
周期的にＩコード化されたピクチャーについて、このピクチャーをコード化するための予測量子化パラメータを用いるステップと、
スライス形式を決定した後、この方法には、決定したスライス形式についてピクチャーをコーディングするステップと、
を具備することを特徴とする、ビデオコーディングのためのレート配分方法。
〔請求項２７〕
ピクチャーのビットターゲットの近接度を評価するステップと、
コード化されたピクチャーのビットが前記ピクチャーのビットターゲットの近接度に近くない場合は、量子化パラメータを修正するステップと、
を具備することを特徴とする請求項２６に記載の方法。
〔請求項２８〕
エンコードされたインターコード化されたピクチャーのビット数を決定するステップの後、該ピクチャーのスライス形式を決定するステップを具備することを特徴とする請求項２６に記載の方法。
〔請求項２９〕
コード化すべき他のピクチャーが存在するかどうかを判断するステップと、
コード化すべき他のピクチャーが存在する場合は、
選択したスライス形式に基づき前記レート制御を更新するステップと、
以前の量子化パラメータと残りのビット数を修正するステップと、
を具備することを特徴とする請求項２６に記載の方法。
〔請求項３０〕
ビデオシステム中の以前のピクチャーのコーディング統計受け取るステップと、
将来のピクチャーの先読み情報を受け取るステップと、
現在のピクチャーをコード化するためにコーディングパラメータセットを用いるステップであって、コーディングパラメータは、基本コーディングパラメータセットと、以前のピクチャー及び現在のピクチャーの目標ビットレートを達成するためのモディファイアとを具備し、現在のピクチャー及び以前のピクチャーは、画質及びビットレート配分を調整するためのウェイトを具備することを特徴とするステップと、
現在のピクチャー及び以前のピクチャーの画質を修正するためのウェイトを調整するステップであって、画質は、量子化パラメータのレートファクターに依存し、ウェイトの調整によりビットレート配分を修正することを特徴とするステップと、
を具備することを特徴とするビデオコーディングのレート制御方法。
〔請求項３１〕
複雑さの測度を有するビデオコーダをさらに具備し、該複雑さの測度は、前記画質を調整するために、将来のピクチャーの先読み情報と以前のピクチャーの過去のコーディング統計とを採用し、該画質を調整するために、過去のコーディング統計を用いたビデオコーダを採用することを具備し、該コーディングパラメータセットは、量子化パラメータ（ＱＰ）を構成することを特徴とする請求項３０に記載の方法。
〔請求項３２〕
コーディングパラメータのセットの値と、レートファクターの値とを初期化するステップであって、該コーディングパラメータのセットは量子化パラメータを具備することを特徴とするステップと、
ビットターゲット、使用するビット数、及び、コーディングパラメータ修正要素を決定するステップと、
ビットターゲットを有する前記レートファクターを決定するステップと、
レベルがゼロ以上のフレーム、レベルゼロにおける予測コード化されたフレーム、レベルゼロにおけるイントラコード化されたフレーム、及びレベルゼロにおける周期的イントラコード化されたフレームを具備するスライス形式を決定するステップと
前記決定されたスライス形式を選択するステップと、
を具備することを特徴とするレート制御の方法。
〔請求項３３〕
レベルがゼロ以上のフレームに対して、該フレームをコーディングする前に、以前の量子化パラメータ値とコーディングパラメータの修正要素とを決定するステップと、
レベルゼロにおける予測コード化されたフレーム又はレベルゼロにおけるイントラコード化されたフレームに対して、該フレームをコーディングする前に、複雑さ及びレートファクターの関数としての量子化パラメータを決定するステップと、
レベルゼロにおける周期的イントラコード化されたフレームに対して、該フレームをコーディングする前に、以前の量子化パラメータを用いるステップと、
を具備することを特徴とする請求項３２に記載の方法。
〔請求項３４〕
コーディングパラメータ及びレートファクターを初期化するステップと、
ビットターゲット、ビットの数、及びオーバーフローパラメータを決定するステップと、
前記ビットターゲットと、用いられた複雑さの合計との関数を有するレートファクターを決定するステップと、
レベルがゼロ以上のフレーム、レベルゼロにおける予測コード化されたフレーム、レベルゼロにおけるイントラコード化されたフレーム、及び、レベルゼロにおける周期的イントラコード化されたフレームを具備するスライス形式を決定するステップと、
前記決定されたスライス形式を選択するステップと、
を具備することを特徴とするレート制御の方法。
〔請求項３５〕
レベルがゼロ以上のフレームに対して、該フレームをコーディングする前に、以前の量子化パラメータ値とコーディングパラメータの修正要素とを決定するステップと、
レベルゼロにおける予測コード化されたフレーム又はレベルゼロにおけるイントラコード化されたフレームに対して、該フレームをコーディングする前に、複雑さ及びレートファクターの関数としての量子化パラメータを決定するステップと、
レベルゼロにおける周期的イントラコード化されたフレームに対して、該フレームをコーディングする前に、以前の量子化パラメータを用いるステップと、
を具備することを特徴とする請求項３４に記載の方法。
〔請求項３６〕
前記コーディングパラメータは量子化パラメータを具備することを特徴とする請求項３４に記載の方法。
〔請求項３７〕
前記方法は複雑さの推定をさらに具備することを特徴とする請求項３５に記載の方法。
〔請求項３８〕
データ処理装置にピクチャーの複雑さを推定するための工程を行わせることが可能な、コンピュータ読取媒体にエンコードしたコンピュータプログラム製品であって、該工程は、
動き補償プロセッサ又は動き補償アナライザ、動き補償装置、空間セッサ、フィルターから作られた、又は、以前のコーディング経路で作られた、ピクチャーの複雑さの測定基準を受け取るステップであって、該複雑さには、時間的特性、空間的特性、又は、輝度的特性が含まれることを特徴とするステップと、
前記ピクチャーの複雑さの測定基準を推定するステップであって、
ピクチャーが将来のピクチャー又は過去のピクチャーと相関関係があるかどうかを判断するステップと、
ピクチャー又はピクチャーの領域が、アーティファクトをマスクしないピクチャーの領域、又は将来のピクチャーの領域、又は過去のピクチャーの領域より効果的にアーティファクトをマスクするかどうかを判断するステップと、
を具備することを特徴とする測定基準を推定するステップと、
を具備することを特徴とするコンピュータプログラム製品。
〔請求項３９〕
データ処理装置に高品質のコード化されたビデオを生成させるための工程を行わせることが可能な、コンピュータ読取媒体にエンコードしたコンピュータプログラム製品であって、該工程は、
ビデオピクチャー同士の複雑さの情報を評価するステップであって、該複雑さの情報は、時間情報又は空間情報を具備し、該ビデオピクチャーはビデオフレームを具備することを特徴とするステップと、
フレーム形式を決定しパラメータを分析するために複雑さの情報を用いるステップであって、該パラメータは、場面変化、フェードイン、フェードアウト、クロスフェード、局所照明変化、カメラパン、又は、カメラズームのためのパラメータを具備することを特徴とするステップと、
異常値を除去するため及前記パラメータ中の又はビデオフレーム同士のビデオの質の急な変動を避けるために分析されたパラメータを用いることにより、統計量又はビデオフレーム同士の複雑さをフィルターするステップと、
を具備することを特徴とするコンピュータプログラム製品。
〔請求項４０〕
データ処理装置にピクチャーの複雑さを推定するための工程を行わせることが可能な、
コンピュータ読取媒体にエンコードしたコンピュータプログラム製品であって、該工程は、
ピクチャーを階層構造にコード化すべきかどうかを判断するステップであって、該階層構造は複数のピクチャーレベルを具備し、該階層構造は異なるピクチャーレベルでのビット又はコーディングパラメータをさらに具備することを特徴とするステップと、
ピクチャーの特定の階層レベルへの割り当ての決定に基づき、該ピクチャーの重要性に基づきピクチャーをコード化するステップであって、該コード化は該ピクチャーの画質レベルを制御するステップを具備し、該コード化は該重要性に基づき該ピクチャーのコーディングパラメータの少なくとも１つを変化させるステップをさらに具備することを特徴とするステップと、
を具備することを特徴とするコンピュータプログラム製品。
〔請求項４１〕
データ処理装置にビデオデータをコード化する工程を行わせることが可能な、コンピュータ読取媒体にエンコードしたコンピュータプログラム製品であって、該工程は、
マクロブロックに基づくビデオデータのパラメータをコード化するステップであって、
該コード化は、空間的統計及び時間的統計における変動を明らかにするステップを具備することを特徴とするステップと、
複雑さの測度を生成するステップと、
複雑さの測度の重要性を判断するステップと、
複雑さの測度をコーディングパラメータセットにマッピングするステップと、ビデオデータにおける多かれ少なかれ重要なビデオデータ中のイメージ領域を作ることにより、ビデオデータの質のレベルを上げるためにコーディングパラメータセットを調整するために複雑さの測度を用いるステップと、
を具備することを特徴とするコンピュータプログラム製品。
〔請求項４２〕
データ処理装置にピクチャーをエンコードする工程を行わせることが可能な、コンピュータ読取媒体にエンコードしたコンピュータプログラム製品であって、該工程は、
現在のフレームを受け取るステップと、
該現在のフレームに対するビットレートの目標とビット数とを設定するステップと、
前記ピクチャーの複数の複雑さを決定するステップであって、該複雑さを決定するステップは、
各複雑さのコーディングパラメータを並列的に決定するステップと、
各複雑さに対して該コーディングパラメータを決定した後、それぞれの前記複雑さを用いて、それぞれのピクチャーをコード化するステップと、
該コード化されたそれぞれのピクチャーから最終的なコード化されたピクチャーを選択するステップと、
該最終的なコード化されたピクチャーの選択を用いて複数の前記複雑さを更新するステップと、
を具備することを特徴とする複雑さを決定するステップと、
を具備することを特徴とするコンピュータプログラム製品。
〔請求項４３〕
データ処理装置にビデオのレート配分の工程を行わせることが可能な、コンピュータ読取媒体にエンコードしたコンピュータプログラム製品であって、該工程は、
ピクチャー先読みバッファの情報を受け取るステップと、
第１のコーディング経路で、ピクチャーのビットターゲットを設定するためにレート配分を行うステップであって、
該レート配分には、ピクチャーの複雑さを判断するためにピクチャー先読みバッファを用いるステップと、
レート制御モデルを用いてビットターゲットのコーディングパラメータセットを選定するステップと、
を具備することを特徴とするステップと、
を具備することを特徴とするコンピュータプログラム製品。
〔請求項４４〕
データ処理装置にビデオコーディングのためのレート配分の工程を行わせることが可能な、コンピュータ読取媒体にエンコードしたコンピュータプログラム製品であって、該工程は、
ピクチャーの量子化パラメータ及び多数の残りのビットを初期化するステップと、
ピクチャー先読みフレームの全体的な複雑さを決定するステップと、
Ｉコード化されたピクチャー、Ｐコード化されたピクチャー、又は、周期的にＩコード化されたピクチャーからなるピクチャーのスライス形式を決定するステップと、
Ｉコード化されたピクチャーについて、インターコード化されたピクチャーに配分されるビットの数を決定するステップと、このピクチャーをコード化するための量子化パラメータを用いるために第１のレート制御モデルを採用するステップと、
Ｐコード化されたフレームについて、予測コード化されたピクチャーに配分されるビットの数を決定するステップと、このピクチャーをコード化するための量子化パラメータを用いるために第２のレート制御モデルを採用するステップと、
周期的にＩコード化されたピクチャーについて、このピクチャーをコード化するための予測量子化パラメータを用いるステップと、
スライス形式を決定した後、この方法には、決定したスライス形式についてピクチャーをコーディングするステップと、
を具備することを特徴とするコンピュータプログラム製品。
〔請求項４５〕
データ処理装置にビデオコーディングのレート制御のための工程を行わせることが可能な、コンピュータ読取媒体にエンコードしたコンピュータプログラム製品であって、該工程は、
ビデオシステム中の以前のピクチャーのコーディング統計受け取るステップと、
将来のピクチャーの先読み情報を受け取るステップと、
現在のピクチャーをコード化するためにコーディングパラメータセットを用いるステップであって、コーディングパラメータは、基本コーディングパラメータセットと、以前のピクチャー及び現在のピクチャーの目標ビットレートを達成するためのモディファイアとを具備し、現在のピクチャー及び以前のピクチャーは、画質及びビットレート配分を調整するためのウェイトを具備することを特徴とするステップと、
現在のピクチャー及び以前のピクチャーの画質を修正するためのウェイトを調整するステップであって、画質は、量子化パラメータのレートファクターに依存し、ウェイトの調整によりビットレート配分を修正することを特徴とするステップと、
を具備することを特徴とするコンピュータプログラム製品。
〔請求項４６〕
データ処理装置にレート制御のための工程を行わせることが可能な、コンピュータ読取媒体にエンコードしたコンピュータプログラム製品であって、該工程は、
コーディングパラメータのセットの値と、レートファクターの値とを初期化するステップであって、該コーディングパラメータのセットは量子化パラメータを具備することを特徴とするステップと、
ビットターゲット、使用するビット数、及び、コーディングパラメータ修正要素を決定するステップと、
ビットターゲットを有する前記レートファクターを決定するステップと、
レベルがゼロ以上のフレーム、レベルゼロにおける予測コード化されたフレーム、レベルゼロにおけるイントラコード化されたフレーム、及びレベルゼロにおける周期的イントラコード化されたフレームを具備するスライス形式を決定するステップと
前記決定されたスライス形式を選択するステップと、
を具備することを特徴とするコンピュータプログラム製品。
〔請求項４７〕
動き補償プロセッサ又は動き補償アナライザ、動き補償装置、空間セッサ、フィルターから作られた、又は、以前のコーディング経路で作られた、ピクチャーの複雑さの測定基準を受け取るステップであって、該複雑さには、時間的特性、空間的特性、又は、輝度的特性が含まれることを特徴とするステップと、
前記ピクチャーの複雑さの測定基準を推定するステップであって、
ピクチャーが将来のピクチャー又は過去のピクチャーと相関関係があるかどうかを判断するステップと、
ピクチャー又はピクチャーの領域が、アーティファクトをマスクしないピクチャーの領域、又は将来のピクチャーの領域、又は過去のピクチャーの領域より効果的にアーティファクトをマスクするかどうかを判断するステップと、
を具備することを特徴とする測定基準を推定するステップと、
を行うことを特徴とするビデオ処理のための１以上の装置からなるシステム。
〔請求項４８〕
ビデオピクチャー同士の複雑さの情報を評価するステップであって、該複雑さの情報は、時間情報又は空間情報を具備し、該ビデオピクチャーはビデオフレームを具備することを特徴とするステップと、
フレーム形式を決定しパラメータを分析するために複雑さの情報を用いるステップであって、該パラメータは、場面変化、フェードイン、フェードアウト、クロスフェード、局所照明変化、カメラパン、又は、カメラズームのためのパラメータを具備することを特徴とするステップと、
異常値を除去するため及前記パラメータ中の又はビデオフレーム同士のビデオの質の急な変動を避けるために分析されたパラメータを用いることにより、統計量又はビデオフレーム同士の複雑さをフィルターするステップと、
を行うことを特徴とする１以上の装置からなるシステム。
〔請求項４９〕
ピクチャーを階層構造にコード化すべきかどうかを判断するステップであって、該階層構造は複数のピクチャーレベルを具備し、該階層構造は異なるピクチャーレベルでのビット又はコーディングパラメータをさらに具備することを特徴とするステップと、
ピクチャーの特定の階層レベルへの割り当ての決定に基づき、該ピクチャーの重要性に基づきピクチャーをコード化するステップであって、該コード化は該ピクチャーの画質レベルを制御するステップを具備し、該コード化は該重要性に基づき該ピクチャーのコーディングパラメータの少なくとも１つを変化させるステップをさらに具備することを特徴とするステップと、
を行うことを特徴とする１以上の装置からなるシステム。
〔請求項５０〕
マクロブロックに基づくビデオデータのパラメータをコード化するステップであって、
該コード化は、空間的統計及び時間的統計における変動を明らかにするステップを具備することを特徴とするステップと、
複雑さの測度を生成するステップと、
複雑さの測度の重要性を判断するステップと、
複雑さの測度をコーディングパラメータセットにマッピングするステップと、ビデオデータにおける多かれ少なかれ重要なビデオデータ中のイメージ領域を作ることにより、ビデオデータの質のレベルを上げるためにコーディングパラメータセットを調整するために複雑さの測度を用いるステップと、
を行うことを特徴とする１以上の装置からなるシステム。
〔請求項５１〕
現在のフレームを受け取るステップと、
該現在のフレームに対するビットレートの目標とビット数とを設定するステップと、
前記ピクチャーの複数の複雑さを決定するステップであって、該複雑さを決定するステップは、
各複雑さのコーディングパラメータを並列的に決定するステップと、
各複雑さに対して該コーディングパラメータを決定した後、それぞれの前記複雑さを用いて、それぞれのピクチャーをコード化するステップと、
該コード化されたそれぞれのピクチャーから最終的なコード化されたピクチャーを選択するステップと、
該最終的なコード化されたピクチャーの選択を用いて複数の前記複雑さを更新するステップと、
を具備することを特徴とする複雑さを決定するステップと、
を行うことを特徴とする１以上の装置からなるシステム。
〔請求項５２〕
ピクチャー先読みバッファの情報を受け取るステップと、
第１のコーディング経路で、ピクチャーのビットターゲットを設定するためにレート配分を行うステップであって、
該レート配分には、ピクチャーの複雑さを判断するためにピクチャー先読みバッファを用いるステップと、
レート制御モデルを用いてビットターゲットのコーディングパラメータセットを選定するステップと、
を具備することを特徴とするステップと、
を行うことを特徴とする１以上の装置からなるシステム。
〔請求項５３〕
ピクチャーの量子化パラメータ及び多数の残りのビットを初期化するステップと、
ピクチャー先読みフレームの全体的な複雑さを決定するステップと、
Ｉコード化されたピクチャー、Ｐコード化されたピクチャー、又は、周期的にＩコード化されたピクチャーからなるピクチャーのスライス形式を決定するステップと、
Ｉコード化されたピクチャーについて、インターコード化されたピクチャーに配分されるビットの数を決定するステップと、このピクチャーをコード化するための量子化パラメータを用いるために第１のレート制御モデルを採用するステップと、
Ｐコード化されたフレームについて、予測コード化されたピクチャーに配分されるビットの数を決定するステップと、このピクチャーをコード化するための量子化パラメータを用いるために第２のレート制御モデルを採用するステップと、
周期的にＩコード化されたピクチャーについて、このピクチャーをコード化するための予測量子化パラメータを用いるステップと、
スライス形式を決定した後、この方法には、決定したスライス形式についてピクチャーをコーディングするステップと、
を行うことを特徴とする１以上の装置からなるシステム。
〔請求項５４〕
ビデオシステム中の以前のピクチャーのコーディング統計受け取るステップと、
将来のピクチャーの先読み情報を受け取るステップと、
現在のピクチャーをコード化するためにコーディングパラメータセットを用いるステップであって、コーディングパラメータは、基本コーディングパラメータセットと、以前のピクチャー及び現在のピクチャーの目標ビットレートを達成するためのモディファイアとを具備し、現在のピクチャー及び以前のピクチャーは、画質及びビットレート配分を調整するためのウェイトを具備することを特徴とするステップと、
現在のピクチャー及び以前のピクチャーの画質を修正するためのウェイトを調整するステップであって、画質は、量子化パラメータのレートファクターに依存し、ウェイトの調整によりビットレート配分を修正することを特徴とするステップと、
を行うことを特徴とする１以上の装置からなるシステム。
〔請求項５５〕
コーディングパラメータのセットの値と、レートファクターの値とを初期化するステップと、
ビットターゲット、使用するビット数、及び、コーディングパラメータ修正要素を決定するステップと、
ビットターゲットを有する前記レートファクターを決定するステップと、
レベルがゼロ以上のフレーム、レベルゼロにおける予測コード化されたフレーム、レベルゼロにおけるイントラコード化されたフレーム、及びレベルゼロにおける周期的イントラコード化されたフレームを具備するスライス形式を決定するステップと
前記決定されたスライス形式を選択するステップと、
を行うことを特徴とする１以上の装置からなるシステム。
また、いくつかの態様を下記に記載しておく。
〔態様１〕
現在のフレームを受け取るステップと、
該現在のフレームに対するビットレートの目標とビット数とを設定するステップと、
前記ピクチャーの複数の複雑さを決定するステップであって、該複雑さを決定するステップは、
各複雑さのコーディングパラメータを並列的に決定するステップ、および、
各複雑さに対して該コーディングパラメータを決定した後、それぞれの前記複雑さを用いて、それぞれのピクチャーをコード化するステップとを含む、複雑さを決定するステップと、
該コード化されたそれぞれのピクチャーから最終的なコード化されたピクチャーを選択するステップと、
該最終的なコード化されたピクチャーの選択を用いて複数の前記複雑さを更新するステップと、
を含む、ピクチャーをエンコードする方法。
〔態様２〕
前記複数の複雑さは、Ｎ個の複雑さを含み、該Ｎ個の複雑さのそれぞれについてコーディングパラメータのセットが決定される、態様１に記載の方法。
〔態様３〕
前記それぞれの複雑さにピクチャー先読み情報を用いることにより画質のレベルを上げるステップをさらに含む、態様１に記載の方法。
〔態様４〕
データ処理装置にビデオデータをコード化する工程を行わせることが可能なプログラムを記憶したコンピュータ読取可能な記憶媒体であって、該工程は、
現在のフレームを受け取るステップと、
該現在のフレームに対するビットレートの目標とビット数とを設定するステップと、
前記ピクチャーの複数の複雑さを決定するステップであって、該複雑さを決定するステップは、
各複雑さのコーディングパラメータを並列的に決定するステップと、
各複雑さに対して該コーディングパラメータを決定した後、最終的なコーディングパラメータを選択するステップとを含む、複雑さを決定するステップと、
前記最終的なコーディングパラメータを用いて前記ピクチャーをコード化するステップと、
該コード化されたピクチャーを用いて複数の前記複雑さを更新するステップと、
を含む、コンピュータ読取可能な記憶媒体。
〔態様５〕
前記複数の複雑さは、Ｎ個の複雑さを含み、該Ｎ個の複雑さのそれぞれについてコーディングパラメータのセットが決定される、態様４に記載のコンピュータ読取可能な記憶媒体。
〔態様６〕
前記工程が、前記それぞれの複雑さにピクチャー先読み情報を用いることにより画質のレベルを上げるステップをさらに含む、態様４に記載のコンピュータ読取可能な記憶媒体。
〔態様７〕
ビデオのピクチャーを符号化する方法であって、
プレアナライザにより、過去のピクチャーまたは将来のピクチャーの複雑さの解析に基づいて現在のピクチャーの複雑さを推定するステップと；
プレアナライザにより、現在のピクチャーの、前記過去のピクチャーまたは前記将来のピクチャーとの相関のレベルを決定するステップと、
前記相関のレベルの決定に基づいて、前記過去のピクチャーまたは前記将来のピクチャーの品質のレベルより高い品質レベルで前記現在のピクチャーを符号化する段階とを含む、
方法。
〔態様８〕
動き補償された予測を有する符号化器により、前記過去のピクチャーまたは将来のピクチャーを、前記現在のピクチャーの前記品質レベルで符号化するステップをさらに含み、前記相関のレベルが時間的相関のレベルを含む、態様７記載の方法。
〔態様９〕
前記プレアナライザにより、現在のピクチャーの、前記過去のピクチャーまたは前記将来のピクチャーとの時間的相関を示す指標を決定するステップをさらに含む、態様７記載の方法。
〔態様１０〕
前記プレアナライザが、動き補償された絶対値差分和（ＳＡＤ）指標、平均２乗誤差（ＭＳＥ）指標、歪み指標、誤差の平方和（ＳＳＥ）指標、平均差分絶対値（ＭＡＤ）指標またはビデオ品質指数（ＶＱＩ）指標を決定するよう構成されている、態様９記載の方法。
〔態様１１〕
態様９記載の方法であって、
前記符号化の間に考慮されたピクチャーのいずれとも異なるピクチャーを使う動き推定および補償を実行することによって前記指標を予測するステップをさらに含む、
および／または
前記符号化が：
前記符号化のために使われる基準ピクチャーを変えること；
ソースの統計に合わせて調整するために時間的予測の距離を変えること；および
動き補償された予測基準を変えることを含む、
方法。
〔態様１２〕
態様７記載の方法であって、前記プレアナライザの予測の形式、フレームの数およびフレームの位置は、前記符号化を実行するエンコーダのものとは異なる、方法。
〔態様１３〕
前記プレアナライザから生成された推定値を使って前記エンコーダにおいてレート配分およびレート制御を決定するステップをさらに含み、
前記プレアナライザの予測の形式、フレームの数およびフレームの位置が、フレームのシーケンスについて固定されている、
態様１２記載の方法。
〔態様１４〕
前記プレアナライザの予測の形式、フレームの数およびフレームの位置が、フレームのシーケンスについて固定されており、前記エンコーダの予測の形式、フレームの数およびフレームの位置が、前記シーケンスの諸フレームの前記符号化のために調整可能であり、
さらに任意的な機能として、前記プレアナライザからの相関付けられた指標を、過去の符号化の統計または線形回帰を使って適応的に更新される、符号化の際に使われる推定値に変換するステップを含む、
態様１２記載の方法。
〔態様１５〕
態様７記載の方法であって、
前記相関のレベルの決定がさらに、単方向予測または双方向予測から導出された歪み指標を利用することを含む、
および／または
当該方法が、
前記現在のピクチャーの複雑さの推定値に関連する複数の指標から、複数の候補となる符号化パラメータ・セットを導出すること；
複数の複雑さ指標を利用する複数のレート制御モデルに基づいて前記指標の一つまたは複数を最小化または最大化すること；および
前記一つまたは複数の指標の前記最小化および最大化に基づいて、前記符号化のための前記候補となる符号化パラメータ・セットのうちの少なくとも一つを選択することをさらに含む、
方法。
【図１】
0005427785.tif 000047
【図２】
0005427785.tif 000048
【図３】
0005427785.tif 000049
【図４】
0005427785.tif 000050
【図５】
0005427785.tif 000051
【図６】
0005427785.tif 000052
【図７】
0005427785.tif 000053
【図８】
0005427785.tif 000054
【図９】
0005427785.tif 000055
【図１０】
0005427785.tif 000056
【図１１】
0005427785.tif 000057
【図１２】
0005427785.tif 000058
【図１３】
0005427785.tif 000059
【図１４】
0005427785.tif 000060
【図１５】
0005427785.tif 000061
【図１６】
0005427785.tif 000062
【図１７】
0005427785.tif 000063
【図１８】
0005427785.tif 000064