(57)【要約】      （修正有）【課題】誤り耐久性の高いビデオ符号化を行う。【解決手段】ビデオデータストリームの誤り伝搬の低減、マクロブロックのリフレッシュ、ビデオデータストリーム内のフレームレートの低減、媒体ストリームの誤り訂正情報の生成、ビデオデータストリームのビットレート割り当ての実行、及びビデオデータストリーム内のシーン変化の検出を行うことにより、伝搬誤りに対する耐久性の高いシステム１００Ｂ及び方法を提供する。【選択図】図１Ｂ
2008259230.tif 000002
【特許請求の範囲】
【請求項１】
複数のフレームを含むデジタルビデオシーケンス内のシーン変化を検出する方法であって、
第２のフレームに対する第１のフレーム及び第３のフレームに対する前記第２のフレームに関して、第１の二乗平均平方根（ＲＭＳ）値を計算するステップと、
前記第２のフレームに対する前記第１のフレームに関して、第１の差の絶対値の平均（ＭＡＤ）値を計算するステップと、
前記第１のＲＭＳ値が第１の基準を満たしているか否かを判別するステップと、
前記第１のＭＡＤ値が第２の基準を満たしているか否かを判別するステップと、
前記第１のＲＭＳ値が前記第１の基準を満たし、前記第１のＭＡＤ値が前記第２の基準を満たしていると判断することに、少なくとも部分的に応じて、前記第２のフレームをシーン変化フレームとして指定するステップとを含む方法。
【請求項２】
前記第１のＲＭＳ値が色重み付けされている請求項１に記載の方法。
【請求項３】
前記第２のフレームについてＩフレーム指定をファイルに格納し、第３のフレームについてＰフレーム指定を前記ファイルに格納するステップをさらに含む請求項１に記載の方法。
【請求項４】
前記第１のＲＭＳ値が、少なくとも部分的に、前記第１及び前記第２のフレームのピクセルの輝度値及びクロミナンス（chrominance）値に基づく請求項１に記載の方法。
【請求項５】
前記第１のＲＭＳ値が式
【数１】
2008259230.tif 000029
で定義され、Ｆiが前記第１のフレームであり、Ｆkが前記第２のフレームであり、Ｆ（ｘ，ｙ）がフレームＦ内の（ｘ，ｙ）番目のピクセルを表し、ｗがフレーム幅であり、ｈがフレーム高さであり、Ｙ（ｘ，ｙ）がピクセル輝度値に対応し、Ｕ（ｘ，ｙ）及びＶ（ｘ，ｙ）が色度成分に対応し、α、β、及びγがそれぞれ、明度、色度−青、及び色度−赤の成分に対する重み係数である方法。
【請求項６】
α＝β＝γ＝１である請求項５に記載の方法。
【請求項７】
輝度値を使用し、色度成分を除外して前記第１のＭＡＤ値が計算される請求項１に記載の方法。
【請求項８】
前記第１の基準が第１のしきい値であり、前記第２の基準が第２のしきい値である請求項１に記載の方法。
【請求項９】
デジタルビデオシーケンス内のシーン変化を検出する方法であって、
第２のフレームに対する第１のフレーム及び第３のフレームに対する前記第２のフレームに関して、二階時間微分ＲＭＳ値を計算するステップと、
前記二階時間微分ＲＭＳ値に少なくとも部分的に基づき、前記第２のフレームがシーン変化フレームであると判断するステップとを含む方法。
【請求項１０】
前記第２のフレームがシーン変化フレームであるとの前記判断が、さらに、前記第１及び前記第２のフレームについて少なくとも明度情報を使用して計算された差の絶対値の平均値に基づく請求項９に記載の方法。
【請求項１１】
前記第２のフレームがシーン変化フレームであるとの前記判断が、さらに、第１の基準を満たすＲＭＳ値及び第２の基準を満たす前記二階時間微分ＲＭＳ値の両方に基づく請求項９に記載の方法。
【請求項１２】
前記二階時間微分ＲＭＳ値が第１のしきい値以上である請求項９に記載の方法。
【請求項１３】
前記二階時間微分ＲＭＳ値が負であり、且つ第１の値よりも大きい絶対値を持つ場合に、前記第２のフレームがシーン変化フレームとして指定される請求項９に記載の方法。
【請求項１４】
第１のＲＭＳ値を計算するステップをさらに含み、前記第１のＲＭＳ値が色重み付けされ、前記第２の時間微分ＲＭＳ値が時間成分にのみ基づく請求項９に記載の方法。
【請求項１５】
前記二階時間微分ＲＭＳ値が（ＲＭＳ（Ｆi-1，Ｆi）−２ＲＭＳ（Ｆi，Ｆi+1）＋ＲＭＳ（Ｆi+1，Ｆi+2））に等しく、Ｆi-1が前記第１のフレームであり、Ｆiが前記第２のフレームであり、Ｆi+1が第３のフレームであり、Ｆi+2が第４のフレームである請求項９に記載の方法。
【請求項１６】
ビデオシーケンス内のシーン変化を識別する装置であって、
プロセッサ読み取り可能なメモリに格納される、ビデオシーケンスの第２の部分に対する前記ビデオシーケンスの第１の部分に関して、第１の二乗平均平方根（ＲＭＳ）を計算するように構成されている第１の命令と、
プロセッサ読み取り可能なメモリ内に格納される、二階時間微分ＲＭＳ値を計算するように構成されている第２の命令と、
前記二階時間微分ＲＭＳ値に少なくとも部分的に基づいて、前記ビデオシーケンスの第２の部分をイントラコーディングするように構成されている第３の命令とを有する装置。
【請求項１７】
前記第３の命令が、第１の部分及び前記第２の部分の少なくとも明度情報を使用して計算された差の絶対値の平均値に基づき、前記ビデオシーケンスの前記第２の部分をイントラコーディングするように、さらに構成されている請求項９に記載の装置。
【請求項１８】
前記第３の命令が、第１の基準を満たす前記ＲＭＳ値及び第２の基準を満たす前記二階時間微分ＲＭＳ値の両方に、少なくとも部分的に応じて、前記ビデオシーケンスの前記第２の部分をイントラコーディングするように、さらに構成されている請求項９に記載の装置。
【請求項１９】
前記第３の命令が、前記第２の部分をＩフレームとしてコーディングすることを指示するフラグを、プロセッサ読み取り可能なメモリ内に格納するように、さらに構成されている請求項９に記載の装置。
【請求項２０】
前記第１の部分が第１のフレームであり、前記第２の部分が第２のフレームである請求項９に記載の装置。
【請求項２１】
前記二階時間微分ＲＭＳ値が負であり、且つその絶対値が第１の値よりも大きい場合に、前記第３の命令が、前記第１の部分をシーン変化を含むものとして識別する請求項９に記載の方法。
【請求項２２】
前記第１のＲＭＳ値が色重み付けされている請求項９に記載の方法。
【請求項２３】
前記装置が集積回路である請求項９に記載の装置。
【請求項２４】
ビデオシーケンスのどの部分がイントラコーディングされるべきかを決定する方法であって、
ビデオシーケンスの第１の部分に対する第１の二乗平均平方根（ＲＭＳ）値を計算するステップと、
前記ビデオシーケンスの前記第１の部分に関する第１の差の絶対値の平均（ＭＡＤ）を計算するステップと、
前記第１のＲＭＳ値が第１の基準を満たしているか否かを判別するステップと、
前記第１のＭＡＤ値が第２の基準を満たしているか否かを判別するステップと、
前記第１のＭＡＤ値が第３の基準を満たしているか否かを判別するステップと、
前記第１、前記第２、及び前記第３の基準のうちの少なくとも２つが満たされていることに、少なくとも部分的に応じて、イントラコーディング処理を実行させるステップとを含む方法。
【請求項２５】
前記第３の基準が、前記ＭＡＤ値が極大値であることである請求項２４に記載の方法。
【請求項２６】
前記ビデオシーケンスの前記第１の部分が第１のフレームを含む請求項２４に記載の方法。
【請求項２７】
前記ビデオシーケンスの前記第１の部分が第１のＧＯＶを含む請求項２４に記載の方法。
【請求項２８】
前記ビデオシーケンスの前記第１の部分が第１のＧＯＰを含む請求項２４に記載の方法。
【請求項２９】
シーン変化検出装置であって、
第１のフレーム情報入力及びＲＭＳ出力を備え、前記第１のフレーム情報入力で受信したフレーム情報に基づき、少なくとも２つのフレームの間の差の二乗平均平方根（root mean squared differences）情報に対応する値を前記ＲＭＳ出力から出力するように構成されているＲＭＳ回路と、
第２のフレーム情報入力及びＭＡＤ出力を備え、前記第２のフレーム情報入力で受信したフレーム情報に基づき、少なくとも２つのフレームの間の差の絶対値の平均（mean absolute differences）情報に対応する値を前記ＭＡＤ出力から出力するように構成されているＭＡＤ回路と、
前記ＲＭＳ出力及び前記ＭＡＤ出力に結合され、差の二乗平均平方根情報に対応する値及び差の絶対値の平均情報に対応する値に少なくとも部分的に基づいて、シーン変化フレームを検出し、シーン変化の指定を行うように構成されているエバリュエータ回路とを備えるシーン変化検出装置。
【請求項３０】
第３の情報入力及び二階微分ＲＭＳ出力を備える二階微分ＲＭＳ回路をさらに備え、
前記二階微分ＲＭＳ回路が、前記第３のフレーム情報入力で受信したフレーム情報に基づいて、前記二階微分ＲＭＳ出力で差の二乗平均平方根の二階微分（second derivative root mean squared differences）情報に対応する値を出力するように構成され、
前記二階微分ＲＭＳ出力が前記エバリュエータ回路に結合されている請求項２８に記載の装置。
【請求項３１】
ビデオシーケンスとともに使用するビット割り当て方法であって、
少なくとも第１のクリップに対するクリップビット割当値を受信するステップと、
前記第１のクリップに対するシーン量を決定するステップと、
前記第１のクリップの第１のシーン内の予測フレームの量を決定するステップと、
前記第１のクリップに対する前記シーンの量、前記第１のクリップビット割当値、前記第１のシーン内のイントラコーディングフレームの量、及び前記第１のシーン内の予測フレームの量に少なくとも部分的に基づいて、前記第１のシーンのビット割当値を計算するステップとを含むビット割り当て方法。
【請求項３２】
前記第１のクリップ内の各シーンが、イントラコーディングフレームから始まる請求項３１に記載のビット割り当て方法。
【請求項３３】
前記クリップビット割当値に予測フレームの数と第１の定数との和を乗算し、前記クリップ内のイントラコーディングフレーム及び予測フレームの量と第２の定数を乗算したクリップシーンの数との和で除算することに、少なくとも部分的に基づいて、前記ビット割当値を計算する請求項３１に記載のビット割り当て方法。
【請求項３４】
前記第１のシーンがＧＯＶである請求項３１に記載のビット割り当て方法。
【請求項３５】
前記第１のシーンがＧＯＰである請求項３１に記載のビット割り当て方法。
【請求項３６】
前記予測フレームがＰ−ＶＯＰである請求項３１に記載のビット割り当て方法。
【請求項３７】
前記第１のシーンの前記ビット割当値及び現在のビット使用度に基づいて、前記第１のシーン内の第１の予測フレームについて量子化パラメータを調整するステップをさらに含む請求項３１に記載のビット割り当て方法。
【請求項３８】
前記量子化パラメータの前記調整が第１の範囲に制限される請求項３７に記載のビット割り当て方法。
【請求項３９】
現在のビット使用度が前記第１のシーンの前記ビット割当値に関係する値よりも大きいという判断に、少なくとも部分的に応じて、前記第１のシーン内の第１の予測フレームの量子化パラメータを上方向に調整するステップを、さらに含む請求項３１に記載のビット割り当て方法。
【請求項４０】
現在のビット使用度が前記第１のシーンの前記ビット割当値に関係する値よりも小さいという判断に、少なくとも部分的に応じて、前記第１のシーン内の第１の予測フレームの量子化パラメータを下方向に調整するステップを、さらに含む請求項３１に記載のビット割り当て方法。
【請求項４１】
チャネルレートに少なくとも部分的に基づいて、マクロブロックの量子化パラメータを調整するステップを、さらに含む請求項３１に記載のビット割り当て方法。
【請求項４２】
ビデオクリップシーンとともに使用するビット割り当て方法であって、
第１のシーンに関するビット割当値を計算するステップと、
前記第１のシーン内の少なくとも第１のフレームを含む対応するフレームに関するビット割当値を計算するステップと、
前記第１のフレーム内のマクロブロックに対応するビット割当値を計算するステップとを含むビット割り当て方法。
【請求項４３】
前記第１のシーンがＧＯＰである請求項４２に記載のビット割り当て方法。
【請求項４４】
前記第１のシーンがＧＯＶである請求項４２に記載のビット割り当て方法。
【請求項４５】
前記第１のシーンに関する前記ビット割当値が、前記第１のシーンの複雑度判別に少なくとも部分的に基づく請求項４２に記載のビット割り当て方法。
【請求項４６】
前記第１のシーンに関する前記ビット割当値が、前記第１のシーンの複雑度判別及び複数のシーンの平均複雑度に少なくとも部分的に基づく請求項４２に記載のビット割り当て方法。
【請求項４７】
前記第１のシーンに関する前記ビット割当値が、バッファ状態に少なくとも部分的に基づく請求項４２に記載のビット割り当て方法。
【請求項４８】
前記第１のフレームに関する前記ビット割当値が、量子化パラメータ不変基準に少なくとも部分的に基づく請求項４２に記載のビット割り当て方法。
【請求項４９】
前記第１のフレームに関する前記ビット割当値が、前記第１のフレーム内にあるテクスチャビットの数及び前記第１のフレームに対する動きベクトルビットの数に少なくとも部分的に基づく請求項４２に記載のビット割り当て方法。
【請求項５０】
前記第１のフレームに関する前記ビット割当値がさらに、第２のフレームに対する前記第１のフレームに対応する差の絶対値の平均値に基づく請求項４９に記載のビット割り当て方法。
【請求項５１】
前記第１のフレームに関する前記ビット割当値が、前記第１のシーンの前記ビット割当値、前記第１のシーン内のすでにコーディングされているフレームに使用されているビット量、前記第１のシーンの複雑度、及び前記第１のシーン内のすでにコーディングされているフレームの複雑度に、少なくとも部分的に基づく請求項４２に記載のビット割り当て方法。
【請求項５２】
１つの量子化パラメータ値を使用して前記第１のフレーム内の全てのマクロブロックを量子化する請求項４２に記載のビット割り当て方法。
【請求項５３】
量子化パラメータが、現在のビット使用度及び割当値が設定されたビット使用度に、少なくとも部分的に基づき前記第１のフレームマクロブロックに関して変えられる請求項４２に記載のビット割り当て方法。
【請求項５４】
ビットを割り当てる装置であって、
第１のシーン内に含まれるイントラコーディングフレームの数、前記第１のシーンに対する複雑度の判別、及び前記第１のシーン内に含まれるインターコーディングフレームの数に、少なくとも部分的に基づいて、前記第１のシーンに対する第１のビット割当値を割り当てるように構成されている第１の命令と、
現在のビット使用度及び目標ビット使用度に少なくとも部分的に基づいて、前記第１のシーン内のフレームにビット割当値を割り当てるように構成されている第２の命令とを有する装置。
【請求項５５】
前記現在のビット使用度及び前記目標ビット使用度に少なくとも部分的に基づいて、前記フレーム内のマクロブロックの量子化を変える請求項５４に記載の装置。
【請求項５６】
前記第１のシーン内の前記第１のフレームをイントラコーディングする請求項５４に記載の装置。
【請求項５７】
前記第１の命令が、前記インターコーディングフレームに割り当てる重みよりも大きい重みを前記インターコーディングフレームに割り当てる請求項５４に記載の装置。
【請求項５８】
前記装置が集積回路である請求項５４に記載の装置。
【請求項５９】
ビット割当値を計算する装置であって、
少なくとも第１のビデオシーケンスに対するビット割当値を受信するように構成されている第１の命令と、
前記第１のビデオシーケンスに対するシーン量を決定するように構成されている第２の命令と、
前記第１のビデオシーケンスの第１のシーン内の予測フレーム数を決定するように構成されている第３の命令と、
前記第１のクリップの前記シーン量、前記第１のクリップビット割当値、前記第１のシーン内のイントラコーディングフレーム量、及び前記第１のシーン内の予測フレーム量に、少なくとも部分的に基づいて、前記第１のシーンに対するビット割当値を決定するように構成されている第４の命令とを有する装置。
【請求項６０】
前記第１のシーンがＧＯＶである請求項５９に記載の装置。
【請求項６１】
前記第１のシーンに対する前記ビット割当値が、バッファ状態に少なくとも部分的に基づく請求項５９に記載の装置。
【請求項６２】
前記第１のフレーム内にあるテクスチャビット数及び前記第１のフレームに対する動きベクトルビット数に少なくとも部分的に基づいて、第１のフレームに対するビット割当値を決定するように構成されている第５の命令を、さらに有する請求項５９に記載の装置。
【請求項６３】
前記第１のシーン内の第１のフレームのマクロブロックについて量子化パラメータを決定するように構成されている第５の命令を、さらに有する請求項５９に記載の装置。
【請求項６４】
前記装置が集積回路である請求項５９に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
著作権
本出願文書の開示の一部に、著作権保護の対象となる資料が含まれている。著作権所有者は、特許商標庁の特許ファイル又は記録として、誰が特許文書又は特許開示のファクシミリ複製を行おうと異存はないが、それ以外では、いかなる形であれ全ての著作権を留保する。
【０００２】
本発明は、ビデオ及びイメージのコード化に関するものであり、特に、誤り耐性のある圧縮方法でビデオイメージ情報をコード化するシステム及び方法に関する。
【背景技術】
【０００３】
ＭＰＥＧはＭＰＥＧ（Moving Picture Experts Group）によって策定されたＩＳＯ／ＩＥＣ規格である。ＭＰＥＧ規格にはＭＰＥＧ−１、ＭＰＥＧ−２、ＭＰＥＧ−４、及びＭＰＥＧ−７などいくつかのバージョンがあり、イメージ及びオーディオ圧縮の特定の側面を標準化することを目的としたものである。Ｈ．２６１、Ｈ．２６２、Ｈ．２６３、Ｈ．２６３＋、Ｈ．２６３＋＋、Ｈ．２６Ｌ、ＭＰＥＧ圧縮などの他のビデオ圧縮形式では、冗長データや関連性のないデータの排除を試みる。例えば、ＭＰＥＧエンコーダでは、ビデオデータ全体を縮小するために、選択したフレームから得られる情報であって、他のフレームのために送信される必要のある情報を使用する。
【０００４】
通常、ビデオフレームは、イントラフレーム、予測フレーム、及び双方向フレームの３つの方法のうちの１つで符号化される。さらに、得られるファイルサイズ又はビットレートを縮小するために、ビデオフレームをスキップすることもできる。イントラフレームには、通常、そのフレームの完全なイメージデータが含まれ、したがって、他のフレームからのイメージデータに依存しない。イントラフレーム符号化では、圧縮は最小である。予測フレームは、一般に、デコーダが最新の先行するイントラフレーム又は予測フレームに基づいてフレームを表示できるだけの情報を含む。即ち、予測フレームは、前のフレームからイメージがどのように変化したかということに関係するデータ及び残余の誤り訂正データを含む。双方向フレームは、残余の誤り訂正データを含む前後のイントラフレーム及び／又は予測フレームからの情報から生成される。デコーダは、前後のフレームからのデータを使用し、補間により、それぞれのピクセルの位置と色を計算する。
【０００５】
ＭＰＥＧ−４規格は、低ビットレートと高ビットレートの両方のアプリケーションで使用することを目的に策定された。例えば、ＭＰＥＧ−４は、インタラクティブビデオゲーム、テレビ会議、テレビ電話、インタラクティブ記録媒体、マルチメディアメール、無線マルチメディア、及び放送アプリケーションで使用できるように拡張されている。ＭＰＥＧ−４は、オブジェクトスケーラビリティ、誤りに対する堅牢性の向上、圧縮率向上という特徴を持つ。
【０００６】
有線／無線インターネットを介したマルチメディア通信に対する需要が増大し続けており、パケット損失の問題だけでなく帯域幅の変動の問題にも直面している。イメージフレーム同士は互いに依存しているため、圧縮されたビデオストリームは、損失パケットが少なくても影響を受ける。したがって、ＭＰＥＧ−４は、低ビットレート（＜６４ｋｂｓ）のモバイル、無線アプリケーションなどの誤りの起こりやすいアプリケーション、及び誤りの起こりやすいＡＴＭ（非同期転送モード）ネットワークアプリケーションで使用できるように特に強化されている。モバイル機器のオペレーションは、送信誤りの影響を受けやすい傾向があるが、それは、ビットレートを下げるためにデータ冗長性が低いこと、及び「雑音」の発生源が大きいことが多いからである。例えば、環境雑音により無線チャネルが壊れることがあり、またモバイルアプリケーションの場合には、建物やその他の構造物が原因のマルチパスのフェージングとシャドウイングから生じるバースト雑音により無線チャネルが壊れることがある。ＡＴＭネットワークアプリケーションに関しては、ネットワークの輻輳及びバッファオーバーフローによりセルが喪失することがある。
【０００７】
ＭＰＥＧ−４では、旧バージョンのＭＰＥＧに比べて誤り耐性が高められており、そのような誤りの発生しやすいネットワーク上で、ビデオデータがより正常に送信される。例えば、ＭＰＥＧ−４規格で用意している誤り耐性手法の１つは、ビデオビットストリーム内で再同期マーカー（resync marker）を使用する。特に、ＭＰＥＧ−４では、固定時間間隔同期（fixed
interval synchronization）を採用しており、ビデオオブジェクトプレーン（ＶＯＰ）開始コードと再同期マーカー（即ち、ビデオパケットの開始）がビットストリーム内の正当な固定間隔位置にのみ出現するように規定している。これにより、開始コードエミュレーションに関係する問題を回避することができる。エンコーダによりビデオデータに挿入された再同期マーカーを使用することにより、誤りの発生後失われた同期をデコーダによって回復することができる。
【０００８】
ＭＰＥＧ−４規格で用意している誤り耐性手法の１つは、リバーシブル可変長コード（reversible variable length code）を使用する。このコードは、逆方向に読み込んだときでも復号化することができるため、デコーダは、新しく見つかった再同期マーカーから、逆に戻ったデータ内の誤りが発生した地点までの破損していない情報を、使用することができる。ＭＰＥＧ−４で採用しているさらに別の誤り耐性方法は、動き情報及びテクスチャ情報の間に挿入されている第２の再同期マーカーを使用して、テクスチャ情報から動き情報を分離するために使用されるデータ分割（data partitioning）がある。したがって、誤りが発生し、テクスチャ情報が復号化できないか失われている場合、デコーダは、動き情報を利用して前に復号化されたフレーム又はＶＯＰを補正することによって、誤りを隠すことができる動き又は。
【０００９】
しかし、上記の拡張を利用したとしても、多くのＭＰＥＧ−４エンコーダ及びデコーダは、携帯電話アプリケーションなど誤りの発生しやすいアプリケーションで多くの場合望まれているほど十分な誤り耐性を持たない。したがって、セルラーネットワークでＭＰＥＧ−４準拠ビデオストリームを送信した場合、回復不可能なデータの破損が発生し、受信者に届くビデオデータの品質が著しく劣化することが多い。このようなビデオの劣化が生じると、誤りの起きやすいネットワークによるビデオ通信がユーザーの立場から望ましくないものとなり、都合が悪いことに、誤りの起きやすいネットワークでのビデオ送信の採用及び利用が妨げられる。
【００１０】
さらに、目標のビットレートを得るために、従来のエンコーダでは、単純なスキップアルゴリズムに従って、複数のフレームを落とし、フレームレートを下げている。例えば、従来のエンコーダは、ビデオクリップ内の５つのフレームうちの４つを落として、ビデオクリップを毎秒３０フレームのフレームレートから毎秒６フレームのフレームレートに変換する。しかし、この単純な方法のスキップでは、復号化したときに視覚的品質に著しい悪影響を及ぼすことが多い。
【発明の開示】
【課題を解決するための手段】
【００１１】
本発明は、ビデオ符号化に関するものであり、特にビデオ情報を、圧縮し、及び／又は誤り耐性のある手段で符号化して送信するシステム及び方法に関する。本発明の実施の形態には、低ビットレート、高雑音環境であってもビデオ情報を送信できるという利点がある。例えば、本発明の実施の形態を利用すると、セルラーネットワークなどで正常にビデオ送信を実行することができる。
【００１２】
本発明の一実施の形態では、シーンの変化があったときに、２つの連続するイントラコード化されたＩフレームを自動的に挿入することにより、誤り耐性を高めることができる。シーンの変化があったとき、２つのイントラコード化されたフレームを挿入することにより、２つの連続するイントラコード化されたフレームのうちの一方が失われたり、復号化できない場合に、デコード側での誤り伝搬が少なくなる。
【００１３】
例えば、一実施の形態では、符号化されたビデオ送信における誤り耐性を高める方法が提供され、この方法は、第１のフレームがシーンの変化に対応することを示す指示を受信するステップと、前記第１のフレームがシーンの変化に対応することを示す前記指示を受信したことに、少なくとも部分的に応じて、前記第１のフレームのイントラコーディングするステップと、連続する次のフレームのイントラコーディングを自動的に行うステップと、イントラコーディングされた前記第１のフレーム及びイントラコーディングされた前記連続する次のフレームを送信するステップとを含む。
【００１４】
他の実施の形態では、プロセッサ読み取り可能なメモリに格納され、第１のフレームがイントラコーディングされることを示す指示を受信するように構成されている第１の命令と、プロセッサ読み取り可能なメモリに格納され、前記指示に少なくとも部分的に応じて、前記第１のフレームをイントラコーディングするように構成されている第２の命令と、プロセッサ読み取り可能なメモリに格納され、前記第１のフレームがイントラコーディングされることを示した結果、自動的に前記第１のフレームの直後のフレームをイントラコーディングするように構成されている第３の命令を含むビデオコーディング装置が提供される。
【００１５】
別の実施の形態では、ビデオフレームを符号化する方法が提供され、この方法は、第１のフレームをイントラコーディングする第１の命令を受信するステップと、前記第１の命令に対する応答として前記第１のフレームをイントラコーディングするステップと、前記第１のフレームをイントラコーディングする前記第１の命令の結果として第２のフレームをイントラコーディングするステップとを含む。
【００１６】
さらに別の実施の形態では、第１のフレームをイントラコーディングする第１の命令を受信する手段と、前記第１の命令に対する応答として前記第１のフレームをイントラコーディングする手段と、前記第１のフレームをイントラコーディングする前記第１の命令の結果として第２のフレームをイントラコーディングする手段とを備えている符号化装置が提供される。
【００１７】
拡張された適応型イントラリフレッシュ（ＡＩＲ）プロセスは、予測フレーム内のマクロブロックの選択的且つ適応的な符号化を実行することによって効率のよい誤り耐性を実装する。一実施の形態では、イントラコーディングされるべきマクロブロックを決定するために、適応型動き領域プロセスが実行される。適応型動き変化検出により、動き領域に発生する誤りを含む、大きな伝搬誤りを効率よく低減することができる。インターコード歪み値及びイントラコード歪み値が、インターコードビット量及びイントラコード量と同様に計算される。計算して求めたインターコード歪み値とイントラコード歪み値の比較、及び各マクロブロックのインターコードビット量とイントラコードビット量との比較に基づいて、どの予測フレームマクロブロックがイントラコーディングされるべきであるかに関する決定を下す。
【００１８】
本発明の一実施の形態は、適応型イントラリフレッシュを実行する方法であって、パケット損失確率値を受信するステップと、第１のフレーム内の第１のマクロブロックの動きベクトルを受信するステップと、前記動きベクトルを前のフレーム内の別の複数のマクロブロックの一部にマッピングするステップと、前記マッピングに基づいて少なくとも第１の遷移係数値を、少なくとも部分的に計算するステップと、少なくとも前記パケット損失確率値と前記第１の遷移係数値に基づいて前記第１のマクロブロックの推定インター歪み値（estimated inter distortion value）を計算するステップと、少なくとも前記パケット損失確率値に基づいて前記第１のマクロブロックの推定イントラ歪み値（estimated intra distortion value）を計算するステップと、前記第１のマクロブロックをイントラコーディングするために使用するビット量に対応する第１のビット量値を受信するステップと、前記第１のマクロブロックをインターコーディングするために使用するビット量に対応する第２のビット量値を受信するステップと、少なくとも部分的に、前記推定インター歪み値、前記推定イントラ歪み値、前記第１のビット量値、及び前記第２のビット量値に基づいて、前記第１のマクロブロックをイントラマクロブロック及びインターマクロブロックのうちの１つとして送信するステップとを含む。
【００１９】
本発明の別の実施の形態は、マクロブロックを選択的にイントラコーディングする方法であって、パケット損失確率値を受信するステップと、第１のフレーム内の第１のマクロブロックの動きベクトルを受信するステップと、少なくとも部分的に動きベクトルに基づいて、前記第１のマクロブロックを予測する際に、前のフレーム内のどの部分のマクロブロックを使用するかを決定するステップと、前記第１のマクロブロックを予測する際に、前記前のフレーム内のどの部分のマクロブロックを使用するかの決定に少なくとも部分的に基づき少なくとも第１の伝搬強度値を計算するステップと、少なくとも前記パケット損失確率値及び前記第１の伝搬強度値に基づき前記第１のマクロブロックの推定インター歪み値を計算するステップと、少なくとも前記パケット損失確率値に基づき前記第１のマクロブロックの推定イントラ歪み値を計算するステップと、第１のマクロブロックの量子化歪み値を計算するステップと、前記第１のマクロブロックをイントラコーディングするために使用するビット量に対応する第１のビット量値を受信するステップと、前記第１のマクロブロックをインターコーディングするために使用するビット量に対応する第２のビット量値を受信するステップと、前記推定インター歪み値、前駆推定イントラ歪み値、前記量子化歪み値、前記第１のビット量値、前記第２のビット量値に少なくとも部分的に基づいて、第１のマクロブロックを、送信するためにイントラマクロブロック及びインターマクロブロックのうちの１つとして提供するステップとを含む。
【００２０】
本発明のさらに別の実施の形態は、第１のフレーム内の複数のマクロブロック内のマクロブロックを選択的にイントラコーディングする方法であって、パケット損失確率値を受信するステップと、複数のマクロブロック内の各マクロブロックの対応する動きベクトルを受信するステップと、少なくとも部分的に対応する動き前記動きベクトルに基づき、前記各マクロブロックを予測する際に前のフレーム内のどの部分のマクロブロックを使用するかを決定するステップと、前記各マクロブロックを予測する際に前のフレーム内のどの部分のマクロブロックを使用するかを決定することに少なくとも部分的に基づいて、少なくとも第１の対応する伝搬強度値を前記マクロブロックのそれぞれについて計算するステップと、少なくとも前記パケット損失確率値及び対応する少なくとも前記第１の伝搬強度値に基づき、推定インター歪み値を前記マクロブロックのそれぞれについて計算するステップと、少なくとも前記パケット損失確率値に基づき推定イントラ歪み値を前記マクロブロックのそれぞれについて計算するステップと、量子化歪み値を前記マクロブロックのそれぞれについて計算するステップと、少なくとも部分的に複数のマクロブロック内の各マクロブロックの前記推定インター歪み値、前記推定イントラ歪み値、及び前記量子化歪み値に基づき、複数のマクロブロックのサブセットをイントラコーディングされるべき対象として指定するステップとを含む。
【００２１】
本発明の一実施の形態は、マクロブロックを選択的にイントラコーディングするように構成された回路であって、パケット損失確率値を受信するように構成されている第１の命令と、第１のフレーム内の第１のマクロブロックの動きベクトルを受信するように構成されている第２の命令と、少なくとも部分的に動きベクトルに基づき、前記第１のマクロブロックを予測する際に、前のフレーム内のどの部分のマクロブロックを使用するかを決定するように構成されている第３の命令と、前記第１のマクロブロックを予測する際に、前記前のフレーム内でどの部分のマクロブロックを使用するかを決定することに少なくとも部分的に基づいて少なくとも第１の伝搬強度値を計算するように構成された第４の命令と、少なくとも前記パケット損失確率値及び前記第１の伝搬強度値に基づいて前記第１のマクロブロックの推定インター歪み値を計算するように構成されている第５の命令と、少なくとも前記パケット損失確率値に基づいて前記第１のマクロブロックの推定イントラ歪み値を計算するように構成されている第６の命令と、前記推定インター歪み値及び前記推定イントラ歪み値に少なくとも部分的に基づいてイントラマクロブロック及びインターマクロブロックのうちの１つとして、前記第１のマクロブロックを、送信するために選択的に提供するように構成されている第７の命令とを備えている。
【００２２】
本発明の実施形態は、定義済みのコスト関数に基づいて符号化プロセスにおいてフレームの適応型スキップを実行する。特にシーン変化領域内の視覚的品質は向上しており、しかもシーンは効率よく符合化されている。スキッププロセスの一実施の形態は、注目しているフレームに隣接するフレーム間の差の絶対値の平均を計算し、その計算に対して時間パラメータの重み付けを行うことにより、フレーム列からフレームを選択的に落とすという点で反復的であり、シーンに対する影響が最小であるフレームが落とされる。この手順は、望みのビットレート及びフレームサイズに関係する目標のフレームレートが得られるまで繰り返し実行される。差の絶対値の平均の和（ＳＭＡＤ）又は二乗平均平方根の和（ＳＲＭＳ）の値などの他の測定方法を、差の絶対値の平均の方法の代わりに又はそれに加えて使用することができる。
【００２３】
本発明の一実施の形態は、符号化プロセスの実行中にスキップするビデオシーケンスフレームを選択する方法であって、一連のフレームを受信するステップと、前記一連のフレームの少なくとも一部分の中のフレーム毎に、時間パラメータによって重み付けされた、前記フレームを挟むフレーム間の対応する差の絶対値の平均を求めるステップと、フレーム毎に計算で求めた時間パラメータで重み付けされた対応する前記差の絶対値の平均に少なくとも部分的に基づいて、一連のフレーム内の第１のフレームをスキップすることを含む。
【００２４】
本発明の別の実施の形態は、ビデオシーケンス内のスキップするフレームを決定する方法であって、第１のフレームレート目標を受信するステップと、ビデオシーケンスシーン内の先頭フレームと末尾フレームとの間にある、スキップされるべき第１の潜在的フレームを選択するステップと、前記第１の潜在的フレームをスキップしたことによって生じる視覚的影響に関係する、スキップされるべき前記第１の潜在的フレームの第１のコスト値を計算するステップと、前記第１のコスト値をコンピュータ読み取り可能なメモリ内に格納するステップと、前記先頭フレームと前記末尾フレームとの間にある、スキップされるべき第２の潜在的フレームを選択するステップと、スキップされるべき前記第２の潜在的フレームの第２のコスト値を計算するステップと、前記第２のコスト値をコンピュータ読み取り可能なメモリ内に格納するステップと、前記先頭フレームと前記末尾フレームとの間にある、スキップされるべき第３の潜在的フレームを選択するステップと、スキップされるべき前記第３の潜在的フレームの第３のコスト値を計算するステップと、前記第３のコスト値をコンピュータ読み取り可能なメモリ内に格納するステップと、前記第１のコスト値、前記第２のコスト値、前記第３のコスト値のうちのどれがコスト最小であるかを決定するステップと、最小コスト値に対応する前記第１、第２、及び第３の潜在的フレームの中の１つをスキップするステップと、前記第１のフレームレート目標が満たされているか否かを判別するステップと、前記第１のフレームレート目標が満たされていないと判別したことに、少なくとも部分的に応じて、前記第１、第２、及び第３の潜在的フレームから残りのフレームと関連するコスト値を再計算し、再計算したコスト値が最小である残りのフレームのうちの１つをスキップするステップとを含む。
【００２５】
本発明のさらなる別の実施の形態は、符号化プロセスの実行中にスキップするイメージフレームを選択する方法であって、第１のフレームを含む一連のフレームを受信するステップと、前記第１のフレームに関して、前記第１のフレームに隣接するフレーム間の時間差及び明度差に関係する第１の時間パラメータを含む第１のコスト関数値を計算するステップと、第２のフレームに関して、該第２のフレームに隣接するフレーム間の時間差及び明度差に関係する第２の時間パラメータを含む第２のコスト関数値を計算するステップと、前記第１のコスト関数値及び前記第２のコスト関数値に少なくとも部分的に基づいて前記第１のフレーム及び前記第２のフレームの内の１つをスキップすることを選択するステップを含む。
【００２６】
本発明のさらなる別の実施の形態は、一連のフレーム内のスキップするビデオフレームを選択するように構成されているプロセッサ回路であって、前記一連のフレームの少なくとも一部分の中のそれぞれのフレームについて、時間パラメータで重み付けされた、前記一連のフレームの一部分の中のそれぞれのフレームを挟むフレーム間の、対応する差の絶対値の平均を計算するように構成されている第１の命令と、時間パラメータで重み付けされた前記対応する差の絶対値の平均に少なくとも部分的に基づいてスキップされるべき第１のフレームを指定するように構成されている第２の命令とを備えている。
【００２７】
本発明の一実施の形態は、フレームレート制御装置であって、目標フレームレートを受信するように構成されている第１の命令と、一連のフレーム内の第１のフレームに関して、前記第１のフレームに隣接する前記一連のフレーム内のフレーム間の時間差及び明度差に関係する第１の時間パラメータに少なくとも部分的に基づく第１のコスト関数値を計算するように構成されている第２の命令と、前記一連のフレーム内の第２のフレームに関して、前記第２のフレームに隣接する前記一連のフレーム内のフレーム間の時間差及び明度差に関係する第２の時間パラメータに少なくとも部分的に基づく第２のコスト関数値を計算するように構成されている第３の命令と、前記第１のコスト関数値及び前記第２のコスト関数値に少なくとも部分的に基づいて、前記第１のフレーム及び前記第２のフレームのうち、スキップする方を選択するように構成されている第４の命令と、前記第１のフレーム及び前記第２のフレームのうちのスキップするように選択された一方に、前記目標フレームレートが整合するか否かを判別するように構成されている第５の命令を有する装置である。
【００２８】
一実施の形態では、前方誤り訂正（ＦＥＣ：forward error correction）情報を使用して誤り耐性を高める。ＦＥＣコーディングは、リアルタイムで、動きベクトル、ＤＣ係数、及びヘッダ情報などの重要なデータに効率良くかつ選択的に適用され、重要でない又はあまり重要でないデータに対してはＦＥＣビットを生成しない。この選択された重要データは、パケット再同期フィールドと動きマーカーとの間に配置され得る。特に、指定されたフレーム又はＶＯＰについては、ＦＥＣコーディングをターゲットとする選択されたパケットビットが連結されて１つになり、その連結されたビットに対してＦＥＣコードビットが生成される。オプションとして、その結果得られるＦＥＣビットは通常のフレーム又はＶＯＰパケットの後の追加パケット内に配置され、ＭＰＥＧ互換性が保証される。
【００２９】
本発明の一実施の形態は、複数のフレームパケットについて前方誤り訂正（ＦＥＣ）を実行する方法であって、第１のフレームに対する複数のフレームパケットに関して、パケットデータの選択された部分を連結するステップと、連結された前記パケットデータの選択された部分に対する前方誤り訂正ビットを生成するステップと、ＭＰＥＧ規格委員会などにより将来的に割り当てられる他の一意的な識別子コードを含む、ユーザーデータ識別子コードなどで識別された別々のパケット中で前記前方誤り訂正ビットを送信するステップを含む。
【００３０】
本発明の別の実施の形態は、誤り訂正生成回路であって、対応する複数のフレームパケット中で送信される、パケットデータの選択された部分に対する前方誤り訂正データを生成するように構成されている、プロセッサ読み取り可能なメモリ内に格納される第１の命令と、複数の前記フレームパケットと別の第１のパケット内に前記前方誤り訂正データを格納するように構成されている、プロセッサ読み取り可能なメモリに格納される第２の命令と、第１のデータ識別子コードで前記第１のパケットを識別するように構成されている、プロセッサ読み取り可能なメモリ内に格納される第３の命令とを有している誤り。
【００３１】
本発明のさらなる別の実施の形態は、エンコーダ回路であって、複数のフレームパケットから選択されたデータパケットの一部について前方誤り訂正データを生成する手段と、複数の前記フレームパケットと別の第１のパケット内に前記前方誤り訂正データを格納する手段と、第１のデータ識別子コードで前記第１のパケットを識別する手段とを備えている。
【００３２】
さらに、本発明の実施の形態では、ヘッダ拡張コード（ＨＥＣ：Heddrer Extention Code）を、従来のエンコーダのようにＶＯＰヘッダの後の第１のビデオパケット上だけでなく、一連のビデオパケット又は全てのビデオパケット内で使用することができる。この方法だと、パケットが失われたり破損したりしても、後続のパケットを復号化して使用できるので都合がよい。さらに、多くの従来のデコーダでも、ＨＥＣの使用頻度が高い場合に対応することができる。
【００３３】
オプションとして、Ｖｉｄｅｏ−Ｏｂｊｅｃｔ−Ｌａｙｅｒ（ＶＯＬ）ヘッダは、固定のビデオオブジェクトプレーン（ＶＯＰ: Fixed Video Object Plane）増分（increment）が使用されるべきであることを示すようにセットされ、その後に固定時間増分の値（fixed time inclement value）が続くフラグを持つ。このため、デコーダが欠損フレーム、即ち、圧縮を高めるためにエンコーダによってスキップされたフレーム又は送信中に失われたフレームを検出しやすくなる。
【００３４】
本発明の実施の形態では、シーンレベル、フレームレベル、及び／又はマクロブロックレベルでビット割り当てを行う。ビット割り当てモジュールは、固定のビット割当値（bit budget）の適切な分配を決定する。一実施の形態では、イントラコーディングされたフレーム数及びインターコーディングされたフレーム数に基づき重みがシーンに割り当てられる。イントラコーディングされたフレームは、インターコーディングされたフレームよりも重い重み付けがなされ、イントラフレームを符号化するために必要なビットをより多く占有する。ビット割り当てモジュールは、現在のビット使用度と目標のビット使用度とを比較してシーン内の固定のビット割当値を配分し、その比較に基づいて、現在のフレームに対する量子化パラメータ又はステップサイズを調整する。
【００３５】
さらにコーディングの効率を高めるために、符号量子化ステップ又は量子化パラメータ（ＱＰ）を動的に調整する。これにより、短いシーン又はビデオオブジェクトプレーンのグループ（ＧＯＶ）の場合でも、望みのビット割当値に高速に収束させることができる。さらに、各シーン又はＧＯＶを符号化した後、前のシーン又はＧＯＶの実際のビット使用度に基づいてＩフレームに対するＱＰを動的に調整する。このＩフレームのＱＰ適応は、シーンシーケンス中に高い動きセグメントがあるときにビット割当値を達成するか、又はビット割当値達成に近づけるのに非常に役立つことがある。
【００３６】
本発明の一実施の形態は、ビデオシーケンスとともに使用するビット割り当て方法であって、少なくとも第１のクリップに対するクリップビット割当値を受信するステップと、前記第１のクリップに対するシーン量を決定するステップと、前記第１のクリップの第１のシーン内の予測フレームの量を決定するステップと、前記第１のクリップに対するシーンの量、前記第１のクリップビット割当値、前記第１のシーン内のイントラコーディングフレームの量、及び前記第１のシーン内の予測フレームの量に少なくとも部分的に基づいて前記第１のシーンのビット割当値を計算するステップとを含む。
【００３７】
本発明の別の実施の形態は、ビデオクリップシーンとともに使用するビット割り当て方法であって、第１のシーンに対するビット割当値を計算するステップと、前記第１のシーン内の少なくとも第１のフレームを含む対応するフレームに対するビット割当値を計算するステップと、前記第１のフレーム内のマクロブロックに対応するビット割当値を計算するステップを含む。
【００３８】
本発明のさらなる別の実施の形態は、ビットを割り当てる装置であって、第１のシーン内に含まれるイントラコーディングフレームの数、前記第１のシーンに対する複雑度の判別、及び前記第１のシーン内に含まれるインターコーディングフレームの数に少なくとも部分的に基づいて、前記第１のシーンに対する第１のビット割当値を割り当てるように構成されている第１の命令と、現在のビット使用度及び目標のビット使用度に少なくとも部分的に基づいて前記第１のシーン内のフレームにビット割当値を割り当てるように構成されている第２の命令とを含む。
【００３９】
本発明のさらなる別の実施の形態は、ビット割当を設定する（bit budgeting）装置であって、少なくとも第１のビデオシーケンスに対するビット割当値を受信するように構成されている第１の命令と、前記第１のビデオシーケンスに対するシーンの量を決定するように構成されている第２の命令と、前記第１のビデオシーケンスの第１のシーン内の予測フレーム数を決定するように構成されている第３の命令と、前記第１のクリップのシーン量、前記第１のクリップビット割当値、前記第１のシーン内のイントラコーディングフレームの量、及び前記第１のシーン内の予測フレームの量に少なくとも部分的に基づいて、前記第１のシーンに対するビット割当値を決定するように構成されている第４の命令とを含む。
【００４０】
本発明の実施の形態は、シーンの変化を特定するための正確なシステム及び方法を提供する。誤り耐性を高めつつ、一般にインターコーディングよりも多いビット数を利用するシーン変化フレームがイントラコーディングされるため、シーン変化フレームを正確に判別することが、誤り耐性を効率よく実現するうえで重要である。一実施の形態では、第１の二乗平均平方根（ＲＭＳ）値は、第２のフレームに対して第１のフレームについて計算される。二階時間微分ＲＭＳ値は、第２のフレームに対する第１のフレームおよび第３のフレームに対する第２のフレームに関して計算される。二階時間微分ＲＭＳ値に少なくとも部分的に基づき、第２のフレームはシーン変化フレームとして指定される。フレームは、シーン変化検出に基づいて、適応的にグループ化される。後述するように、シーン変化を検出するために、差の絶対値の平均（ＭＡＤ）に基づく、及び／又はＲＭＳ極大値を求める、及び／又はＭＡＤ極大値を求める別の基準を使用することができる。
【００４１】
本発明の一実施の形態は、複数のフレームを持つデジタルビデオシーケンス内のシーン変化を検出する方法であって、第２のフレームに対する第１のフレームおよび第３のフレームに対する第２のフレームに関して第１の二乗平均平方根（ＲＭＳ）値を計算するステップと、前記第２のフレームに対する前記第１のフレームに関して第１の差の絶対値の平均（ＭＡＤ）値を計算するステップと、前記第１のＲＭＳ値が第１の基準を満たしているか否かを判別するステップと、前記第１のＭＡＤ値が第２の基準を満たしているか否かを判別するステップと、前記第１のＲＭＳ値が前記第１の基準を満たし、且つ前記第１のＭＡＤ値が前記第２の基準を満たしていると判断したことに、少なくとも部分的に応じて、前記第２のフレームをシーン変化フレームとして指定するステップとを含む。
【００４２】
本発明の別の実施の形態は、デジタルビデオシーケンス内のシーン変化を検出する方法であって、第２のフレームに対する第１のフレーム及び第３のフレームに対する第２のフレームに関して二階時間微分ＲＭＳ値を計算するステップと、前記二階微分値に少なくとも部分的に基づき、前記第２のフレームがシーン変化フレームであると判断するステップを含む。
【００４３】
本発明の別の実施の形態は、ビデオシーケンス内のシーン変化を識別する装置であって、プロセッサ読み取り可能なメモリ内に格納され、ビデオシーケンスの第２の部分に対する前記ビデオシーケンスの第１の部分に関して第１の二乗平均平方根（ＲＭＳ）値を計算するように構成されている第１の命令と、プロセッサ読み取り可能なメモリに格納され、二階時間微分ＲＭＳ値を計算するように構成されている第２の命令と、前記二階微分ＲＭＳ値に少なくとも部分的に基づいて前記ビデオシーケンスの前記第２の部分がイントラコーディングされるように構成されている第３の命令とを含む。
【００４４】
本発明の一実施の形態は、ビデオシーケンスのどの部分がイントラコーディングされるべきかを決定する方法であって、ビデオシーケンスの第１の部分に対する第１の二乗平均平方根（ＲＭＳ）値を計算するステップと、前記ビデオシーケンスの前記第１の部分に対する第１の差の絶対値の平均（ＭＡＤ）値を計算するステップと、前記第１のＲＭＳ値が第１の基準を満たしているか否かを判別するステップと、前記第１のＭＡＤ値が第２の基準を満たしているか否かを判別するステップと、前記第１のＲＭＳ値が第３の基準を満たしているか否かを判別するステップと、前記第１、第２、及び第３の基準のうちの少なくとも２つが満たされていることに、少なくとも部分的に応じて、イントラコーディング処理を実行させるステップとを含む。
【００４５】
本発明の別の実施の形態は、シーン変化検出装置であって、第１のフレーム情報入力及びＲＭＳ出力を備え、前記第１のフレーム情報入力で受信したフレーム情報に基づいて、少なくとも２つのフレーム間の２乗平均平方根差情報に対応する値を前記ＲＭＳ出力から出力するように構成されているＲＭＳ回路と、第２のフレーム情報入力及びＭＡＤ出力を備え、前記第２のフレーム情報入力で受信したフレーム情報に基づいて、少なくとも２つのフレーム間の差の絶対値の平均の情報に対応する値を前記ＭＡＤ出力から出力するように構成されているＭＡＤ回路と、前記ＲＭＳ出力及び前記ＭＡＤ出力に結合され、二乗平均平方根差情報に対応する値及び差の絶対値の平均の情報に対応する値に少なくとも部分的に基づいて、シーン変化フレームを検出し、シーン変化指定を行うように構成されているエバリュエータ回路とを備えている。
【発明を実施するための最良の形態】
【００４６】
本発明の好ましい実施の形態について、以下に図面を参照して説明する。これらの図面及び関連する説明は、本発明の実施例を説明するために用意したものであり、本発明の範囲を制限するものではない。
【００４７】
本発明は、ビデオ符号化に関するものであり、特にビデオ情報を圧縮し、かつ／又は誤り耐性のある方法で符号化して送信するシステム及び方法に関する。従って、本発明の実施の形態には、低ビットレート、雑音、誤りを起こしやすい環境であってもビデオ情報を送信できるという利点がある。本発明の実施の形態は、例えば、ＭＰＥＧ−４規格、ＭＰＥＧ−１、ＭＰＥＧ−２、Ｈ．２６１、Ｈ．２６２、Ｈ．２６３、Ｈ．２６３＋、Ｈ．２６３＋＋、及びＨ．２６Ｌ、及びさらに今後策定されるであろうビデオ規格など、さまざまなビデオ圧縮規格とともに使用することができる。ＭＰＥＧ−４規格の態様は、“Coding of Audio-Visual Objects: Systems”14496-1,
ISO/IEC JTC1/SC29/WG11 N2501, November 1998、及び“Coding
of Audio-Visual Objects: Visual”14496-2、ISO/IEC JTC1/SC29/WG11 N2502, November 1998で定義されており、またＭＰＥＧ−４ビデオ検証モデルは、“MPEG-4 Video Verification Model 17.0”ISO/IEC
JTC1/SC29/WG11 N3515, Beijing、China、July 2000で定義されている。
【００４８】
図１Ａは、本発明の一実施の形態に係るビデオ配給システムを実装するためのネットワーク接続されたシステムを示している。符号化コンピュータ１０２が、ビデオ信号を受信し、この信号は比較的コンパクトで堅牢な形式に符号化される。符号化コンピュータ１０２として、ソフトウェアを実行する汎用コンピュータを含む種々のタイプのマシン、及び専用ハードウェアを使用できる。符号化コンピュータ１０２は、衛星放送受信機１０４、ビデオカメラ１０６、テレビ会議端末１０８などを介して種々のソースからビデオシーケンスを受信することができる。ビデオカメラ１０６としては、ビデオカメラレコーダ、Ｗｅｂカメラ、無線デバイスに内蔵されたカメラなど、種々のカメラを使用できる。ビデオシーケンスはさらに、データストア１１０に格納することもできる。データストア１１０は、符号化コンピュータ１０２に内蔵のものでも、また外付けのものでもよい。データストア１１０は、テープ、ハードディスク、光ディスクなどのデバイスを備えることができる。当業者であれば、図１Ａに示されているデータストア１１０などのデータストアは、符号化されていないビデオ、符号化されたビデオ、又はその両方を格納できることを理解できるであろう。一実施の形態では、符号化コンピュータ１０２は、データストア１１０などのデータストアから符号化されていないビデオを取り出して、その符号化されていないビデオを符号化し、符号化されたビデオをデータストアに格納する。このデータストアは同じデータストアであっても別のデータストアであってもよい。ビデオのソースとして、最初にフィルム形式で撮影されたソースを使用できることが理解されるであろう。
【００４９】
符号化コンピュータ１０２は、符号化されたビデオを受信装置に配給し、受信装置が符号化されたビデオを復号化する。受信装置として、ビデオを表示することができる種々の装置を使用できる。例えば、ネットワーク接続されたシステムの図に示されている受信装置として、携帯電話１１２、パーソナルデジタルアシスタント（ＰＤＡ）１１４、ラップトップコンピュータ１１６、及びデスクトップコンピュータ１１８がある。受信装置は、通信ネットワーク１２０を通じて符号化コンピュータ１０２と通信できる。この通信ネットワークとして、無線通信ネットワークを含む種々の通信ネットワークを使用できる。当業者であれば、携帯電話１１２などの受信装置もビデオ信号を符号化コンピュータ１０２に送信するために使用できることを理解できるであろう。
【００５０】
符号化コンピュータ１０２、受信装置又はデコーダとしては、種々のコンピュータを使用できる。例えば、符号化コンピュータ１０２は、パーソナルコンピュータ、ワークステーション、サーバー、クライアント、ミニコンピュータ、メインフレームコンピュータ、ラップトップコンピュータ、個別コンピュータのネットワーク、モバイルコンピュータ、パームトップコンピュータ、ハンドヘルドコンピュータ、テレビ用セットトップボックス、インタラクティブテレビ、インタラクティブキオスク、パーソナルデジタルアシスタント、インタラクティブ無線通信デバイス、モバイルブラウザ、Ｗｅｂ対応携帯電話、パーソナルデジタルアシスタント（ＰＤＡ）、又はそれらの組み合わせなどの端末装置をはじめとするマイクロプロセッサ又はプロセッサ（以下、プロセッサと呼ぶ）制御装置とすることができる。例えば、エンコーダコンピュータをビデオカメラ１０６、携帯電話１１２、ＰＤＡ
１１４、ラップトップコンピュータ１１６、及び／又はデスクトップコンピュータ１１８に組み込むこともできる。コンピュータ１０２はさらに、キーボード、マウス、トラックボール、タッチパッド、又はタッチスクリーンなどの入力装置、及びコンピュータ画面、プリンタ、スピーカーなどの出力装置、又は既存又は今後開発されるその他の入力装置を備えることができる。
【００５１】
符号化コンピュータ１０２、ならびに、デコーダコンピュータとして、ユニプロセッサ又はマルチプロセッサマシンを使用できる。さらに、エンコーダ及びデコーダコンピュータは、ランダムアクセスメモリ（ＲＡＭ）、電気的消去可能プログラム可能読み出し専用メモリ（ＥＥＰＲＯＭ）、マスク読み出し専用メモリ、１回だけプログラム可能なメモリ、ハードディスク、フレキシブルディスク、レーザーディスクプレーヤー、ディジタルビデオ装置、コンパクトディスクＲＯＭ、ＤＶＤ−ＲＯＭ、その他の光媒体、ビデオテープ、オーディオテープ、磁気記録トラック、電子ネットワーク、及び例えば、プログラム及びデータなどの電子的内容を送信又は格納するためのその他の手法などのアドレス指定可能なストレージ媒体又はコンピュータアクセス可能な媒体を備えることができる。一実施の形態では、符号化及び復号化コンピュータは、ネットワークインターフェイスカード、モデム、赤外線（ＩＲ）ポート、無線ネットワークインターフェイス、又はネットワークに接続するのに適しているその他のネットワーク接続装置などのネットワーク通信装置を備える。さらに、コンピュータはＬｉｎｕｘ、Ｕｎｉｘ、Ｍｉｃｒｏｓｏｆｔ（登録商標）
Ｗｉｎｄｏｗｓ（登録商標）３．１、Ｍｉｃｒｏｓｏｆｔ（登録商標） Ｗｉｎｄｏｗｓ（登録商標）９５、Ｍｉｃｒｏｓｏｆｔ（登録商標） Ｗｉｎｄｏｗｓ（登録商標）９８、Ｍｉｃｒｏｓｏｆｔ（登録商標）
Ｗｉｎｄｏｗｓ（登録商標）ＮＴ、Ｍｉｃｒｏｓｏｆｔ（登録商標） Ｗｉｎｄｏｗｓ（登録商標）２０００、Ｍｉｃｒｏｓｏｆｔ（登録商標） Ｗｉｎｄｏｗｓ（登録商標）Ｍｅ、Ｍｉｃｒｏｓｏｆｔ（登録商標）
Ｗｉｎｄｏｗｓ（登録商標）ＸＰ、Ａｐｐｌｅｓ（登録商標）ＭａｃＯＳ（登録商標）、ＩＢＭ（登録商標）ＯＳ／２（登録商標）、Ｍｉｃｒｏｓｏｆｔ（登録商標） Ｗｉｎｄｏｗｓ（登録商標）ＣＥ、又はＰａｌｍ
ＯＳ（登録商標）などの適切なオペレーティングシステムを実行する。従来のように、適切なオペレーティングシステムは、無線ネットワークを含むネットワーク上で受け渡される全ての着信及び送信メッセージトラフィックを処理する、通信プロトコル実装を備えると都合がよい。他の実施の形態では、オペレーティングシステムはコンピュータの種類によって異なることもあるが、オペレーティングシステムは、ネットワークとの通信リンクを確立するために必要な適切な通信プロトコルを提供し続ける。
【００５２】
図１Ｂは、本発明の一実施の形態に係る符号化システム１００Ｂの一例を示す。本明細書で使用している、符号化システムという用語には、１つ又は複数のエンコーダが含まれる。符号化システム１００Ｂは、例えば、本明細書で説明しているように動作するプロセッサ、プログラムロジック、又はデータ及び命令を表すその他の基板構成のうちの１つ又は複数を備える。別の実施の形態では、符号化システム１００Ｂは、コントローラ回路、集積回路、ゲートアレイ、特定用途向け集積回路、プロセッサ回路、プロセッサ、汎用シングルチップ又はマルチチップマイクロプロセッサ、デジタルシグナルプロセッサ、組み込み型マイクロプロセッサ、マイクロコントローラなどを備え、コンピュータ読み取り可能なメモリに格納されている命令及びデータを含む、ソフトウェアコードを実行することができる。例えば、これには限定されないが、符号化システム１００Ｂは、１つ又は複数のリード有り、リード無し、又はボールグリッドアレイ半導体パッケージに、１つ又は複数の回路基板上に、及び／又は１つ又は複数のハイブリットパッケージを使用して収容されることができる。符号化システム１００Ｂの全部又は一部を、デスクトップコンピュータなどの固定端末、又は携帯電話、携帯コンピュータ、パーソナルデジタルアシスタント、ビデオカメラなどの携帯端末に組み込むことができる。符号化システム１００Ｂは、実施例では、符号化コンピュータ１０２に相当する。さらに、例えば、本発明による符号化システムを使用して、テレビ会議を実施し、動画又はその他のイメージを格納又は送信するのを補助することなどが可能である。
【００５３】
符号化システム１００Ｂは、ビデオ情報を符号化し、圧縮した後、デコーダに送信する。符号化システム１００Ｂは、前処理モジュール又は回路１０２Ｂ、ビット割り当てモジュール又は回路１０４Ｂ、及びエンコーダモジュール又は回路１０６Ｂを備えている。ビデオシーケンスアナライザを含む、前処理モジュール又は回路１０２Ｂを使用して、シーン変化の発生を検出し、指定されたフレーム、ＶＯＰ又はピクチャを、どのように符号化するかを決定する。
【００５４】
ビデオオブジェクトレイヤには、ＭＰＥＧ−４ではビデオオブジェクトプレーン（ＶＯＰ）と呼ぶ、異なる時間間隔での任意の形状の２Ｄ表現のシーケンスが含まれる。ＶＯＰ領域のそれぞれは、非矩形領域であり、シーン内の物体など、注目している特定のイメージ又はビデオコンテンツに対応することができる。ビデオオブジェクトプレーン（ＶＯＰ）は、１６×１６のサイズのマクロブロックに分割される。マクロブロックは、８×８サイズの６つのブロック単位で符号化され、そのうち４つのブロックは明度用、２つのブロックは色度用である。任意形状のＶＯＰからマクロブロック構造を得るためには、ＶＯＰの境界ボックス（bounding box）を計算し、マクロブロックサイズの倍数単位で拡張する。
【００５５】
ただし、最新のアプリケーションについては、また特に、いわゆる「単純プロファイル」を使用する無線アプリケーションについては、一般に、フレーム毎に１つのＶＯＰしかなく、これは矩形ＶＯＰである。わかりやすくするために、フレームという用語は、本明細書で使用しているように、ＭＰＥＧ−４
ＶＯＰなどのＶＯＰ、又はピクチャを含むこともできる。同様に、ＶＯＰという用語は、本明細書で使用しているように、フレームを意味する場合もある。ＭＰＥＧ−４では、ＶＯＰは、ビデオオブジェクトプレーンのグループ（ＧＯＶ）として構造化することができる。ＭＰＥＧ−２の用語を使うと、フレーム又はピクチャを、ピクチャのグループ（ＧＯＰ）に配列できるということである。わかりやすくするため、本明細書で使用している「シーン」という用語は、ＧＯＶ又はＧＯＰをも意味し、またその逆にＧＯＶ又はＧＯＰはシーンを意味する。
【００５６】
フレーム又はビデオオブジェクトを、イントラコーディングフレーム（「Ｉフレーム」又は「Ｉ−ＶＯＰ」）、予測フレーム（「Ｐフレーム」又は「Ｐ−ＶＯＰ」）、又は双方向フレーム（「Ｂフレーム」又は「Ｂ−ＶＯＰ」）として符号化することができる。ＭＰＥＧ−１はさらに、Ｄフレームにも対応している。Ｄフレームとは、動きベクトルを持たないフレームのことで、０ベクトルが仮定され、テクスチャＤＣＴデータを持つ。空間的冗長性を活かすため、離散コサイン変換（ＤＣＴ）を符号化されたフレームに対して実行し、その結果得られた係数を量子化する。
【００５７】
ＭＰＥＧ−４の単純プロファイルでは、Ｂフレーム又はＢ−ＶＯＰをサポートしていない。しかし、単純プロファイルではフレームのスキップ操作をサポートしている。得られるファイルサイズ又はビットレートを縮小するために、ビデオフレームをスキップすることができる。ＭＰＥＧ−４の単純プロファイルではＢフレーム又はＤフレームをサポートしていないため、以下の説明ではこのようなフレームを対象としない。しかしながら、本発明の実施の形態は、他のプロファイル及びその他の規格に従って、Ｂフレーム及びＤフレームとともに使用することができる。
【００５８】
フレームという用語は、インタレースフレーム又はノンインタレースフレーム、即ちプログレッシブフレームに対応する。インタレースフレームでは、各フレームは２つの別々のフィールドで構成され、それらはフレームを形成するために一緒に組み合わせされる。このようなインタレースは、ノンインタレース又はプログレッシブフレームでは実行されない。ノンインタレース又はプログレッシブビデオに関して説明しているが、当業者であれば、本明細書で説明している原理及び利点は、インタレースビデオ及びノンインタレースビデオの両方に適用できることが理解できるであろう。さらに、本発明の実施の形態は、ＭＰＥＧ−４に関して説明しているが、本明細書で説明している原理及び利点の種々の態様は、例えば、ＭＰＥＧ−１、ＭＰＥＧ−２、Ｈ．２６１、Ｈ．２６２、Ｈ．２６３、Ｈ．２６３＋、Ｈ．２６３＋＋、及びＨ．２６Ｌ、及び今後策定されるであろうビデオ規格など、他の種々のビデオ規格にも適用することができる。
【００５９】
イントラコーディングＩフレームは、通常、イメージ自体から得られる情報を含み、したがってＩフレームは、他のフレームと独立して復号化することができる。Ｐ及びＢフレームは、インターコーディングフレームとも呼ばれるが、それは、他のフレームから得られるデータに基づいて符号化されるからである。前処理モジュール１０２Ｂは、フレームに対応するフレームタイプ指定を含む、入力フレームタイプファイルと呼ばれるファイルを生成する。他の実施の形態では、フレームタイプ情報は、変数などを使用して符号化システム１００Ｂの他の部分に渡される。図１Ｂでは前処理モジュール１０２Ｂは符号化システム１００Ｂに含まれているように示されているが、前処理モジュール１０２Ｂは符号化システム１００Ｂの他の部分と物理的に切り離すことができる。そのような実施の形態では、前処理モジュール１０２Ｂは、復号化システム１００Ｂの残りの部分によって入力されるフレームタイプ指定を含むテキストファイルを、生成することができる。
【００６０】
多くの標準ＭＰＥＧ−４エンコーダは、１つのシーン、即ち、１つのＩフレームの後にＰフレーム又はＢフレームが続くもののみを処理することができるか、又はＭＰＥＧ−２符号化で通常行っているように、フレームｋ枚毎に通常のＩフレームを導入する。これらのアプローチでは、エンコーダの実装が簡単になるが、複数のシーンからなるクリップがどのように処理されるべきかを決定するという負担が、ユーザーにかかる。コーディングの効率を十分に高めるために、Ｉフレームの数を減らすか、又は最小限に抑えなければならない。誤り状態がなければ、Ｉフレームをシーン変化のみで使用するのが好ましい。したがって、シーン変化を正しく、正確に検出することが有益である。
【００６１】
本発明の一実施の形態に係るシーン変化検出プロセスの一例について説明する。実施例では、このプロセスはＹＵＶ−４：２：０ファイルに作用し、テキストファイルを出力する。実施例では、ＹＵＶ−４：２：０ファイルはフレームが連結されたヘッダのないファイルであり、フレーム毎に、（明度）Ｙピクセル値が最初に与えられ、その後、（色度−青）Ｃｂ値、そして（色度−赤）Ｃｒ値が与えられる。「４：２：０」という表現は、色度値が明度に関して、因数４でサブサンプリングされることを示す。特に、フレームのサイズ（ピクセル単位）をＷ×Ｈ（Ｗ：幅、Ｈ：高さ）とすると、Ｗ＊Ｈ個のＹ値（フレームピクセル毎に１つ）、（Ｗ／２）＊（Ｈ／２）個のＣｂ値、（Ｗ／２）＊（Ｈ／２）個のＣｒ値がフレーム毎にある。その結果、サイズＷ×Ｈのフレームを格納するために必要なフレームバッファサイズは合計で３＊Ｗ＊Ｈ／２バイトとなる。色度成分のサブサンプリングを行うために、垂直及び水平次元にそって因数２でサブサンプリングする。したがって、２×２ブロックは、４つの明度値、１つの色度−青、及び１つの色度−赤を持つ。他の実施の形態では、イメージデータを格納するのに別の形式を使用することもできる。
【００６２】
前処理モジュール１０２Ｂについて詳述する。前処理モジュール１０２Ｂは、フレームの評価と符号化の指定を実行する。後述するように、それぞれのフレームは、前処理モジュール１０２ＢによってＩフレーム、Ｐフレーム、又はスキップフレームとして指定される。別の実施の形態では、前処理モジュール１０２Ｂはさらに、フレームをＢフレーム又はＤフレームとして指定することもできる。Ｂフレーム符号化は、計算能力が十分に高く、帯域幅が確保されていて（Ｂフレームはスキップフレームよりも相当多くの帯域幅を占有する）、対応する規格によって許されている場合に実行できる。例えば、無線ネットワークで使用されるＭＰＥＧ−４の単純プロファイル構文は、Ｂフレームに対応していない。前処理モジュール１０２Ｂによって生成されるファイル形式例では、入力フレーム毎に１ラインを含み、各ラインにはフレームタイプ指定文字０、１、又は２を含んでいる。「０」はＩフレームを、「１」はＰフレームを、「２」はスキップフレームを表す。他の実施の形態では、双方向フレーム及びＤフレームに対して指定を行うことができる。
【００６３】
既に述べたように、シーン変化フレームは一般にイントラコーディングされる。シーン変化フレームを見つけるために、前処理モジュールのシーン変化分析により、色重み付け二乗平均平方根（ＲＭＳ）の計算と差の絶対値の平均（ＭＡＤ）の計算とを、ｉ番目のフレームＦiとｋ番目のフレームＦkとの間で実行する。ＲＭＳは次のように定義することができる。
【００６４】
【数１】
2008259230.tif 000003
ここで、Ｆ（ｘ，ｙ）はフレームＦ内の（ｘ，ｙ）番目のピクセルを表し、ｗ及びｈはそれぞれフレームの幅及び高さを表す。Ｙ（ｘ，ｙ）は、輝度値を示し、Ｕ（ｘ，ｙ）及びＶ（ｘ，ｙ）は２つの色度成分である。係数α、β、γは、それぞれ明度、色度−青、及び色度−赤成分の重み係数である。計算量を少なくするために、重み係数を固定することができる。例えば、重み係数を、α＝β＝γ＝１と設定することができる。
【００６５】
差の絶対値の平均（ＭＡＤ）測度は次のように定義することができる。
【００６６】
【数２】
2008259230.tif 000004
この例では、ＭＡＤは、２つの色度成分を含んでいる必要はない。
【００６７】
ＭＡＤ（Ｆi，Ｆk）及び／又はＲＭＳ（Ｆi，Ｆk）が選択した基準よりも大きい場合、このことは、Ｆiの内容が実質的にＦkと異なることを示している。従って、一実施の形態では、連続するフレーム間のＭＡＤ、ＭＡＤ（Ｆi-1，Ｆi）があらかじめ指定したしきい値よりも大きい場合、Ｆiはシーン変化フレームとして指定される。シーン変化フレームを指定するしきい値の一例は約２５である。
【００６８】
オプションにより、ＲＭＳの二階時間微分を使用して、以下のように、フレームがシーン変化フレームであるかを判別することができる。
【００６９】
【数３】
2008259230.tif 000005
式３によって定義されているように、ＲＭＳの二階時間微分は、現在のフレームＦiに対する前のフレームＦi-1のＲＭＳ値、次のフレームＦi+1に対する現在のフレームＦiのＲＭＳ値、それ以降のフレームＦi+2に対する次のフレームＦi+1のＲＭＳ値に基づいている。
【００７０】
ＲＭＳ値の二階時間微分は、Ｆiが図３に示されているようにシーン変化フレームである場合に比較的高い振幅を持つ負の値となる。従って、ＲＭＳ値の二階時間微分の絶対値があらかじめ指定したしきい値よりも大きい場合、Ｆiはシーン変化フレームとして指定される。図３に示されているように、菱形で示されているＲＭＳ値と三角形で示されているＲＭＳの二階微分との間に相関関係がある。したがって、一般にＲＭＳ値とＲＭＳの二階微分の値からシーン変化の正しい指示が得られる。シーン変化を判別するためのＲＭＳしきい値の二階微分の一例は−６．５である。
【００７１】
ＲＭＳの二階微分は良いピーク検出手段となるが、幾分雑音に敏感である。シーン変化判別の精度をさらに高めるために、一実施の形態では、ＭＡＤの時間的活動測定とＲＭＳの二階微分との両方が対応するしきい値以上である場合に、フレームがシーン変化フレームであると指定される。後述するように、シーン変化フレームがＩフレーム又はＩ−ＶＯＰとしてイントラコーディングされる。
【００７２】
特に、一実施例では、フレームのＭＡＤが２０を超えていて、ＲＭＳの二階微分が負であり、その絶対値が４よりも大きい場合、そのフレームはシーン変化として指定され、イントラモードでコーディングされる。他の実施例では、フレームのＲＭＳが４０を超えている、及び／又はＲＭＳの二階微分が負であり、その絶対値が８よりも大きい場合、そのフレームはシーン変化として指定され、イントラモードでコーディングされる及び又は。他の実施の形態では、他のしきい値を使用することができる。それとは別に、又はそれに加えて、フレームがシーン変化に該当するか否かをさらに示すものとして、ＲＭＳの二階微分に関して上記したの同様に、ＭＡＤの二階微分を使用することができる。
【００７３】
シーン変化が発生したことを判別するために、追加基準を使用することができる。例えば、一実施の形態では、ＭＡＤ値が極大値であるかどうか、即ち、前のフレームから問題のフレームに上昇し、その後問題のフレームから次のフレームに減少した否かを判別する。もしそうであれば、これは、問題のフレームがシーン変化フレームである可能性が高く、イントラコーディングされるべきであることを示している。さらに、ＲＭＳ値に関して類似の判別を行うことができる。例えば、ＲＭＳ値が極大値であるか否か、即ち、前のフレームから問題のフレームに上昇し、その後問題のフレームから次のフレームに減少したか否かを判別する。もしそうであれば、これもまた、問題のフレームがシーン変化フレームである可能性が高く、イントラコーディングされるべきであることを示している。
【００７４】
オプションとして、ＲＭＳ、ＲＭＳの二階微分、及びＭＡＤのうち少なくとも２つが対応する基準を満たしている場合に、フレームがイントラコーディングすべきシーン変化として指定される投票プロセス（voting process）を使用することができる。他の実施の形態では、ＲＭＳ及びＲＭＳの二階微分が対応する基準を満たしている場合、及びＭＡＤが極大値である場合に、フレームはシーン変化フレームとして指定される。さらに他の実施の形態では、ＲＭＳ及びＭＡＤが対応する基準を満たしている場合、及びＭＡＤが極大値である場合に、フレームはシーン変化フレームとして指定される。
【００７５】
コーディングの効率をさらに高め、ターゲットのビットレートを満たすために、１秒当たりの符号化すべきフレーム数をできる限り減らすのが好ましい。１秒当たりの符号化されるフレーム数を減らすために使用される方法の１つとして、符号化プロセスのスキップフレームがある。フレームスキップ手法の例として、固定フレームスキップと適応型フレームスキップの２つがある。従来のエンコーダでは、単純なスキップアルゴリズムに従って、複数のフレームを落としてフレームレートを下げている。例えば、従来のエンコーダは、ビデオクリップ内の５つのフレーム中の４つを落として、ビデオクリップを毎秒３０フレームのフレームレートから毎秒６フレームのフレームレートに変換する。
【００７６】
後述するように、固定フレームスキップは雑音の多い環境では優れた誤り耐性を持つ傾向があるが、適応型フレームスキップは雑音の少ない環境において良い視覚的結果を生じる傾向がある。オプションとして、前処理モジュール１０２Ｂは、下の式７で定義されているビットレート／フレームレートの式に基づき、ターゲット符号化フレームレートを計算し、適応型スキップと固定スキップを切り替えて、ターゲットの符号化フレームレートに追随することができる。
【００７７】
固定フレームスキップでは、入力ビデオフレームシーケンスは、ｋをサブサンプリング係数とすると、フレームｋ個毎に１つ保持することにより時間軸に沿ってサブサンプリングされる。例えば、
ｋ＝５、及び
元のビデオシーケンスのフレームレート＝２５フレーム／秒（ｆｐｓ）であれば、サブサンプリングされたシーケンスのフレームレート＝５ｆｐｓである。
【００７８】
適応型フレームスキップでは、固定フレームスキップのように、入力ビデオフレームシーケンスは、望みの、又は所定の平均フレームレートを得るために、時間軸に沿ってサブサンプリングされる又は。しかし、固定方式のスキップフレームではなく、適応型フレームスキップを使用すると、フレームスキップの速度は、不規則になり、シーケンス長に沿って変化する場合がある。低活動のフレームを識別してスキップし、シーン変化フレームを保持してイントラコーディングするのが好ましい。何らかの活動フレームのある非シーン変化はインターコーディングされる。そのスキップフレームは、視覚的活動に対する変化に基づいてインテリジェントに選択されているために、デコーダによって再現されたときの視覚的結果は、発生する誤りがないか、又は比較的少ないと仮定すると、固定フレームスキップの場合よりも優れている。
【００７９】
一実施の形態では、前処理モジュール１０２Ｂは、ＭＰＥＧビットストリーム内のビデオオブジェクトプレーン（ＶＯＰ）ヘッダにセットされている“ｎｏｔ＿ｃｏｄｅｄ”ビットフラグ又はインジケータを使用して、スキップフレームをコーディングする。ＭＰＥＧ−４ビデオパケットは、ＶＯＰヘッダ又はビデオパケットヘッダから始まり、その後に、ｍｏｔｉｏｎ＿ｓｈａｐｅ＿ｔｅｘｔｕｒｅ（）が続き、そしてｎｅｘｔ＿ｒｅｓｙｎｃ＿ｍａｒｋｅｒ（）又はｎｅｘｔ＿ｓｔａｒｔ＿ｃｏｄｅ（）で終わる。したがって、ＶＯＰは、特定のイメージシーケンス内容を指定し、輪郭、動き、及びテクスチャの情報をコーディングすることにより、別々のビデオオブジェクトレイヤ内にコーディングされる。
【００８０】
別の実施の形態では、スキップフレームが一緒にスキップされ、ビットストリーム内にＶＯＰヘッダ情報は挿入されない。スキップフレームを、デコーダで補間を使用することにより、又は前のフレームを繰り返すことによって再作成してもよい。デコーダは、先行フレームと後続の復号化フレームとの間でピクセル平均を取り、それらの時間差で重み付けすることによって補間を実行してもよい。
【００８１】
ビデオシーケンスのフレームレートに関する情報は、通常、Ｖｉｄｅｏ−Ｏｂｊｅｃｔ−Ｌａｙｅｒ（ＶＯＬ）ヘッダで搬送される。特に、ｖｏｐ＿ｔｉｍｅ＿ｉｎｃｒｅｍｅｎｔ＿ｒｅｓｏｌｕｔｉｏｎというパラメータにより、それぞれの符号化サイクルの時間単位数を決める。Ｖｉｄｅｏ−Ｏｂｊｅｃｔ−Ｐｌａｎｅ（ＶＯＰ）ヘッダ内のｖｏｐ＿ｔｉｍｅ＿ｉｎｃｒｅｍｅｎｔ値により、フレーム毎にタイムスタンプが付けられる。
【００８２】
ｖｏｐ＿ｔｉｍｅ＿ｉｎｃｒｅｍｅｎｔ＿ｒｅｓｏｌｕｔｉｏｎは、例えば、１６ビット符合なし整数値であってもよい。例えば、２５フレーム／秒（ｆｐｓ）の場合、ｖｏｐ＿ｔｉｍｅ＿ｉｎｃｒｅｍｅｎｔ＿ｒｅｓｏｌｕｔｉｏｎ＝２５で、ｖｏｐ＿ｔｉｍｅ＿ｉｎｃｒｅｍｅｎｔは値０．．．２４を循環する。７．５ｆｐｓの場合、ｖｏｐ＿ｔｉｍｅ＿ｉｎｃｒｅｍｅｎｔ＿ｒｅｓｏｌｕｔｉｏｎ＝７５で、ｖｏｐ＿ｔｉｍｅ＿ｉｎｃｒｅｍｅｎｔは値０、１０、２０、３０、４０、５０、６０、７０、５、１５、２５、３５、４５、５５、６５と循環する。したがって、シーケンスの最初の２つのフレームの復号が成功すると、正確なフレームレートが求められる。しかし、誤りを起こしやすい無線通信環境又はその他の誤りを起こしやすい環境では、任意の２つの連続するフレームを正常に受信し、復号することは保証できない。したがって、デコーダは、シーケンス全体のフレームレートを正しく判別できない場合がある。そのような理由から、一実施の形態では、エンコーダモジュール１０６ＢがＶＯＬヘッダ内の“ｆｉｘｅｄ＿ｖｏｐ＿ｒａｔｅ”フラグをセットし、デフォルトのフレームレートを（ｆｉｘｅｄ＿ｖｏｐ＿ｔｉｍｅ＿ｉｎｃｒｅｍｅｎｔの値を使って）供給する。この方法を使用すると、ＶＯＬヘッダが正常に復号された後、フレームレートの復号又は判別を正常に行える場合が多くなる。後に、ｆｉｘｅｄ＿ｖｏｐ＿ｔｉｍｅ＿ｉｎｃｒｅｍｅｎｔ値をデコーダのグローバル変数に格納し、その値を使用して特定のフレームを補間する必要があるかどうかを判別できる。補間するフレームは、エンコーダによってスキップされるフレームであるか、又は送信中に失われたフレームのいずれかである。したがって、正しい数のフレームを復号し、それによってオーディオストリームでの同期喪失問題を回避できるため、ＭＰＥＧ−４デコーダの誤り耐性の性能が高められる。
【００８３】
上記したように、誤りを起こしやすい環境では、誤り耐性を高めるために、適応型フレームスキップの代わりに固定フレームスキップを使用する。固定フレームスキップでは、フレームが落とされている、又はスキップされているときに、デコーダ側で判別しやすくなる。誤り耐性を高める別のアプローチとして、適応型フレームスキップを使用するが、ただしＶＯＰヘッダを供給する際にスキップフレームについてｎｏｔ＿ｃｏｄｅｄフラグをセットするという方法がある。このアプローチの欠点の１つは、頻繁なＶＯＰヘッダによりビットレートがわずかに増大するという点である。
【００８４】
図４Ａは、適応型フレームスキップの一例のプロセス４００を示している。このプロセスは、注目しているフレームに隣接するフレーム間の差の絶対値の平均を計算し、その計算に対して時間パラメータの重み付けを行うことによってフレーム列からフレームを選択的に落とすという点で反復的であり、シーンに対する影響が最小であるフレームが落とされる。この手順は、目的のビットレート及びフレームサイズに関係するターゲットのフレームレートが得られるまで繰り返し実行される。
【００８５】
プロセス４００は、開始状態４０２から始まり、状態４０４に進む。目的のフレームレートを設定又は指定する。目的のフレームレートは、ユーザーが指定することもでき、又は動的に決定することもできる。状態４０６に進み、特定のフレームを落としたことによって生じる、コスト関数、又は悪影響をシーン内の第１のフレームから最後のフレームまでの間の各フレームについて計算する。後で詳しく説明するが、コスト関数は、注目する特定のフレームを、接近して、もしくは最も接近して挟む、又はそのフレームに隣接するフレーム間の差の絶対値の平均（ＭＡＤ）、あるいは差の絶対値の平均の和（ＳＭＡＤ）に少なくとも一部分は基づくことができる。それとは別に、又はそれに加えて、コスト関数は、注目する特定のフレームを挟むフレームに関するＲＭＳの和（ＳＲＭＳ）に基づくことができる。
【００８６】
状態４０８に進むと、最小コストに関連付けられた、即ち、視覚的品質に対する悪影響が最小であるフレームはスキップされるか、又は落とされる。状態４１０において、残りのフレームによってターゲットフレームレートの条件が満たされるか否かを判別する。ターゲットフレームレートの条件が満たされる場合、適応型フレームレートスキッププロセス４００は終了状態４１４に進む。そうでない場合、プロセス４００は状態４１２に進み、コスト最小の残りのフレームが落とされる。最初のフレームから最後のフレームまでの間に残っている全てのフレームのコストが、現在残っているフレームに基づいて状態４１２で再計算され、コストが最小のフレームが落とされる。プロセス４００は、状態４１０と４１２を繰り返し、ターゲットフレームレートの条件が満たされるか、又はすでに連続してスキップされているフレームの数が指定の最大値に達すると、その繰り返しを終了する。プロセス４００はスキップするフレームを選択することに関して説明されているが、プロセス４００を同様に使用して、どのフレームを双方向符号化すべきかを決定することができる。
【００８７】
差の絶対値の平均の和に重みを付けたものを使用する適応型フレームスキップ選択プロセスの一実施例について詳しく説明する。フレームレートｒorigと望みのフレームレートｒdes（ここで、ｒorig＞ｒdes）の入力シーケンスが与えられた場合、ビデオシーケンスアナライザは、「積極的に」フレームをスキップする、即ちｒdes条件が満たされるまでスキップする。スキップする次のフレームを識別するために、コスト関数を指定する際にＭＡＤの重み付き和と２つのフレームの間の時間差を使用する。コスト関数が所定の基準を満たしているか、又は残りのスキップの候補のうち最小であるフレームはスキップされる。
【００８８】
例えば、図４Ｂを参照すると、積極的なアプローチを使用してＦ3、Ｆ5、Ｆ6、及びＦ8をすでにスキップしている場合、Ｆ4は、次のスキップフレームの候補とみなされる。Ｆ4がスキップされるかどうかを判別するために、Ｆ4がスキップされたと仮定してコスト関数を計算する。Ｆ4をスキップした後、Ｆ2及びＦ7がＦ3〜Ｆ6のスキップフレームの境界である左右のフレームになる。そのコスト関数は次のように定義される。
【００８９】
【数４】
2008259230.tif 000006
ここで、項
【数５】
2008259230.tif 000007
は、ＮＴＳＣフレームレート２９．９７フレーム／秒に関して元のフレームレートｒorigを正規化するために使用され、ＴＤは、時間差の単位（time difference
measure）を表す。もちろん、別の正規化又は異なる正規化も使用できる。
【００９０】
したがって、この例では、ＴＤは５（＝７−２）であり、λは重み係数である。この例では、実験で求められた重み係数値λ＝５．０で、適切な結果が得られる。それとは別に、重み係数値λは、動的に求めることもできる。現在の状態で、コスト関数が候補の中で最小であるフレームがスキップされる。このプロセスを繰り返し実行して、目的のフレームレートを得る。時間差の単位ＴＤを修正して、ｎ個を超える連続フレームがスキップされないようにする。例えば、同時にスキップできる連続フレームの最大数が予め４に設定されている場合、ＴＤは次のように修正することができる。
【００９１】
【数６】
2008259230.tif 000008
ここで、∞は無限大である。
【００９２】
オプションとして、計算の中で偶数（又は奇数）の座標ピクセルのみを使用すれば、ＭＡＤ計算の複雑度を減らすこともできるが、精度は低下する。たとえば、以下のとおりである。
【００９３】
【数７】
2008259230.tif 000009
スキップするフレームを適応的に決定する別のプロセス例では、誘起する空間的及び時間的な全歪みを、スキップ対象のフレーム毎に推定し、そのフレームが存在しなければ歪みが最小になるフレームをスキップする。後述するように、このプロセスではＭＡＤの和（ＳＭＡＤ）又はＲＭＳの和（ＳＲＭＳ）を使用する。都合がよいことに、全てのＭＡＤを再計算しなくてもよい。その代わりに、すでに計算されている適切なＭＡＤは、スキップ対象とみなされるフレームに依存して異なるように加算される。
【００９４】
一実施の形態では、このプロセスは次のように実行される。Ｆiが現在スキップ対象とみなされているフレームであると仮定する。例えば、Ｆiは図４Ｂ内のフレームＦ4であると仮定する。次に、Ｆjを前の非スキップフレーム、この例ではＦ2とし、フレームＦkは次の非スキップフレーム、この例ではＦ7を示すものとする。すると、コスト関数は次のように定義することができる。
【００９５】
【数８】
2008259230.tif 000010
ここで、ＳＭＡＤest（Ｆi，Ｆk）はフレーム（ｉ＋１），．．．（ｋ−１）をスキップしたときの推定空間歪みである。
【００９６】
式６ｂからわかるように、コスト関数は前のスキップフレームから寄与分を差し引く。歪みは次のように計算される。
【００９７】
【数９】
2008259230.tif 000011
ここで、φ（ｎ）は連続するスキップフレームの数に依存する係数であり、平均して、又は統計的サンプリングに基づいて、デコーダ側の補間フレームがどれだけ元のフレームと異なるかを考慮するものである。以下の表は、代表的なビデオシーケンスを使用して実験的に求められた係数値の例である。
【００９８】
【表１】
2008259230.tif 000012
これからわかるように、φ（ｎ）はスキップフレームの数が増えると増加する。
【００９９】
必要な計算複雑度及びリソースを低減するために、オプションとして、連続するフレーム（ｊ−１とｊ）の間のＭＡＤのみを使用して、上の式６ｂのように、スキップフレームの完全なセグメントの歪みを推定する。特定のフレームをスキップしたときに生じる追加歪みを計算し、時間成分を加える。
【０１００】
一実施の形態では、ユーザーが望みの符号化フレームレートを指定する。その望のフレームレートは、時間的及び空間的複雑度、フレームサイズ、フレームレート、及びターゲットビットレート又は圧縮比などのビデオシーケンス統計量に基づくことができる。別の実施の形態では、発見的手法により望みのフレームレートを選択することができる。以下は、１４４行、１行当たり１７６ピクセルを含む、Ｑｕａｒｔｅｒ
Ｃｏｍｍｏｎ Ｉｎｔｅｒｍｅｄｉａｔｅ Ｆｏｒｍａｔ（ＱＣＩＦ）フレームサイズに関して正規化された、フレームレートを計算する発見的方程式例である。
【０１０１】
【数１０】
2008259230.tif 000013
ここで、ｗ及びｈはフレーム次元である。符号化フレームレートが妥当な境界範囲内にあるためには、符号化フレームレートは次の範囲にあることが好ましい。
［１からソースフレームレートまで］
さらに、適応型フレームスキップを特定のシーンの時間的複雑度に依存しないものとするために、オプションとして重み係数λが、指定されたシーケンス全体の平均ＲＭＳ又はＭＡＤに等しくなるように設定される。
【０１０２】
したがって、どのフレームがシーン変化フレームであるかを判別し、スキップするフレームを適応的に選択するために、ビデオシーケンスアナライザに、ビデオシーケンス、フレーム幅、フレーム高さ、ソースフレームレート、ターゲットビットレート、及び誤り耐性フラグを以下の形式で与える。
【０１０３】
＜入力ファイル＞
＜幅＞ ＜高さ＞ ＜ソースフレームレート＞ ＜ターゲットビットレート＞ ＜誤り耐性フラグ＞
誤りが全くないか少ない場合に、誤り耐性は低いが視覚的結果に優れる適応型フレームスキップと、誤り耐性に優れるが視覚的結果が劣る固定フレームスキップとを切り替えるために、誤り耐性フラグはユーザーによってセットされる。
【０１０４】
一実施の形態では、図１Ｃに示されているように、ＲＭＳ回路１０２Ｃを使用して、上述のようにＲＭＳ値を計算し、ＲＭＳの二階微分回路１０４Ｃを使用して、上述のようにＲＭＳの二階微分を計算し、ＭＡＤ回路１０８Ｃを使用して、上述のようにＭＡＤ値を計算し、ＭＡＤの加算回路１１０Ｃを使用して、上述のようにＭＡＤ値の和を計算し、ＭＡＤの二階微分回路１１４Ｃを使用して、上述のようにＭＡＤの二階微分を計算する。ＲＭＳ回路１０２Ｃ、ＲＭＳの二階微分回路１０４Ｃ、ＭＡＤ回路１０８Ｃ、及びＭＡＤの加算回路１１０Ｃ、及びＭＡＤの二階微分回路１１４Ｃの出力に結合されているエバリュエータ回路１１２Ｃを使用して、いつシーン変化が発生したか、どのようなフレームをスキップするかを、上記した１つ又は複数の出力に基づいて決定する。もちろん、異なる実施の形態は、図１Ｃに示されている回路の全部又は一部を含んでいる必要はない。
【０１０５】
次に、ビット割り当てモジュール又は回路１０４Ｂについて説明する。ビット割り当てモジュール又は回路１０４Ｂは、シーン、フレーム、及び／又はマクロブロックレベルでビット割り当てを行う。ビット割り当てモジュール１０４Ｂはファイルを読み込むか、又は他の方法で、フレームタイプ指定を含む、前処理モジュール１０２Ｂによって生成された情報を受け取り、コーディングフレームに基づきそれぞれのシーン、ＧＯＶ、又はＧＯＰについてビット割当値（bit budget）を計算する。ビット割り当てモジュールにより、固定されたビット割当値の適切な分配が決定される。
【０１０６】
一実施例に関して後述するように、第１のイントラコーディングフレームは、シーンの先頭を定義する。イントラコーディングフレームの数とインターコーディングフレームの数に基づいてシーンに重みが割り当てられ、イントラコーディングされたフレームは、インターコーディングされたフレームよりも重い重み付けがなされ、イントラフレームを符号化するために必要なビットをより多く占有する。ビット割り当てモジュールは、現在のビット使用度と目標のビット使用度とを比較してシーン内の固定ビット割当値を配分し、その比較に基づいて、現在のフレームに対する量子化パラメータ又はステップサイズを調整する。
【０１０７】
特に、ビット割り当てモジュール１０４Ｂはまず、前処理モジュール１０２Ｂから入力されたフレームタイプファイルを解析する。次に、ＧＯＶの数又は量を計算する。計算されたビット割当値に基づき、エンコーダモジュール１０６Ｂが、後述のエンコーダパラメータファイルによる新規レート制御プロセスを使用してそれぞれのＧＯＶを符号化する。
【０１０８】
与えられたＧＯＶ又はシーンについて、コーディングされたフレームの数及び最初のフレーム及び最終フレームが知られている。以下の定義を使用し、以下の式８により、ＧＯＶ又はシーンのビット割当値を計算する。
【０１０９】
Ｎci＝ｓｃｅｎｅi又はＧＯＶi内のコーディングされたＰ−ＶＯＰ（予測、インターコーディングＶＯＰ）の数。
Ｂi＝シーンｉのビット割当値
Ｂ＝１つ又は複数のシーンを含むクリップのビット割当値
Ｎc＝クリップのコーディングフレームの数
Ｎs＝クリップ内のシーンの数。通常は、誤り耐性を高める目的で連続するＩフレームを含めない場合、Ｎs＝Ｉ−ＶＯＰ（イントラコーディングＶＯＰ）の数
Ｔc＝クリップ内のＶＯＰの相当する総数
【０１１０】
シーン又はＧＯＶのビット割当値を決定する方法の例を以下に示す。ＢiビットをＧＯＶ（ｉ）毎に割り当てる。この例の割り当てでは、１つのＩフレーム又はＩ−ＶＯＰに対するビット使用度は、Ｐフレーム又はＰ−ＶＯＰのビット使用度に近いか又は等しい（Ｒａｔｉｏ＿Ｏｆ＿Ｉ＿ｔｏ＿Ｐ＝１０）という想定がなされる。しかし、この方法は、１：１０の比を使用することに制限されていない。Ｂi及びＴcは、次のように決定される。
【０１１１】
Ｂi＝Ｂ＊（Ｎci＋Ｒａｔｉｏ＿Ｏｆ＿Ｉ＿ｔｏ＿Ｐ）／Ｔc 式８
及び
Ｔc＝Ｎc＋（Ｒａｔｉｏ＿Ｏｆ＿Ｉ＿ｔｏ＿Ｐ−１）＊Ｎs 式９
式８で定義されているように、与えられたシーンのビット割り当ては、シーン内のフレームの総数に基づいており、イントラコーディングフレームは、複数の予測フレームと同等に正規化される。複雑度及び計算のオーバーヘッドを減らすために、このビット割り当て公式の例では、各ＧＯＶ又はＧＯＰの空間的及び時間的複雑度を考慮しない。別の実施の形態では、十分な計算的及び時間的資源が利用できる場合に、ビット割り当て公式において、時間的及び空間的複雑度を考慮し、ＧＯＶ毎にさらに理にかなったビット割り当てを行うことができる。
【０１１２】
例えば、一実施の形態では、空間的及び時間的複雑度を考慮する２パス方式の符号化プロセスを使用する。第１のパスで、シーン変化を検出し、フレーム複雑度を収集する。第２のパスで、複雑度によって導き出されるビット割り当てを使用して実際の符号化を行う。
【０１１３】
第１のパスのプロセスについて詳述する。新しいＧＯＶ又はＧＯＰは、シーン変化インスタンスから始まる。２パスレート制御プロセスは、それぞれの時間的にセグメント分割されたＧＯＶについて実質的に一様な品質を備えるので、品質の変動はうまくＧＯＶ又はＧＯＰ境界に制限される。このアプローチを取ったのは、さまざまなシーン間のピーク信号対雑音比（ＰＳＮＲ）、二乗平均平方根誤差、又はその他のイメージ忠実度測定基準によって測定されるような品質変動の最小化を行うことが、人間の視覚認知に関してあまり有利とはいえないからである。
【０１１４】
相対的フレーム複雑度を特徴付ける場合、本発明の一実施の形態による複雑度測定は、使用する量子化パラメータ（ＱＰ）について比較的不変である。特に、Ｈiで表されるフレームヘッダ／構文及び動きベクトルなどの非テクスチャ情報のビットカウントは、量子化パラメータ（ＱＰ）の変化に関して一定であるか、又はほとんど一定であることが一般的である。これは、ＱＰの変化とともに変化する、テクスチャ情報のビットカウントと対照的である。例えば、ＭＰＥＧ−４
ＶＭ Ｒ−Ｑモデル［ＭＰＥＧ４ＶＭ］に基づいて、現在のフレームｉをコーディングするのに使用されるビット総数をＲiとすると、テクスチャビットＴi＝Ｒi−Ｈiは次のように表すことができる。
【０１１５】
【数１１】
2008259230.tif 000014
ここで、Ｍiは、ＱＰ（即ち、Ｑi）に関して実質的に不変な動き補正残差で計算したＭＡＤであり、ａ1及びａ2はＱＰ上のテクスチャビットＴiのＴａｙｌｏｒ展開係数である。係数ａ1及びａ2は、通常は同じ次数である、即ち同様の値を持つ。これからわかるように、ＱＰが低いほど、与えられたフレームを符号化するのに必要なテクスチャビット数は多くなる。
【０１１６】
複雑度の測定Ｃg,iは、動き及びテクスチャビットカウントの両方を対象とし、実質的にＱＰ不変である。一実施の形態では、Ｃg,iは、以下のように、与えられたフレームのテクスチャビットカウントと平均テクスチャビットカウントとの比、及び与えられたフレームの動きベクトルビットカウントと平均動きベクトルビットカウントとの比によって定義される。
【０１１７】
【数１２】
2008259230.tif 000015
ここで、ＭＶ(g,i)はフレーム（ｇ，ｉ）の動きベクトルビットカウントであり、
【数１３】
2008259230.tif 000016
は平均動きベクトルビットカウントであり、
【数１４】
2008259230.tif 000017
は平均テクスチャビットカウントである。得られた複雑度の測定Ｃg,iは実質的にＱＰ不変なので、フレーム複雑度は１パスで、ＱＰで生成することができる。計算で求められたフレーム複雑度は、これから説明するように、第２の符号化パスで利用される。
【０１１８】
図９に示されているように、第２パスのレート制御プロセス９００は３レベル階層、即ちシーン（ＧＯＶ又はＧＯＰ）レベルビット割り当て９０２、フレームレベルビット割り当て９０４、及びマクロブロックレベルＱＰ調整９０６に分かれており、得られたフレーム複雑度値Ｃg,iを使用する。
【０１１９】
複雑度によって導かれるシーン、ＧＯＶ、又はＧＯＰ、レベルビット割り当てについて、図１０を参照しながら説明する。ビットをそれぞれのシーンに割り当てるには、以下のように平均空間的複雑度
【数１５】
2008259230.tif 000018
を計算してＧＯＶ又はＧＯＰ毎に複雑度の測定を定義する。
【数１６】
2008259230.tif 000019
【０１２０】
次に、図１０に示されているように、ＧＯＶ又はＧＯＰレベル再帰的ビット割り当てプロセス１０００を適用する。状態１００２で、以下の設定で、初期化プロセスを実行する。
λ＝０
ビット割当値Ｂr（特定の数のＧＯＶ又はＧＯＰに対応する与えられた時間枠に対するビット割り当て）＝Ｂ
初期送信バッファ飽和度β1＝Ｔd×Ｒ
インデックス１のＧＯＶ又はＧＯＰの開始、即ち最初のＧＯＶ又はＧＯＰ。
【０１２１】
状態１００４で、以下の式によりビットがインデックスｇのシーン（ＧＯＶ又はＧＯＰ）に割り当てられる。
【０１２２】
【数１７】
2008259230.tif 000020
ここで、
Ｒ＝チャネルレート
Ｆ＝選択されたフレームレート
Ｎ(g)＝インデックスｇのＧＯＶ又はＧＯＰ内のフレーム数
λ＝バッファ変動と複雑度の要求との間の重み係数
であり、
【数１８】
2008259230.tif 000021
は、注目しているＧＯＶ又はＧＯＰに対応する与えられた時間枠の全シーン複雑度を定義する。
【０１２３】
λ＝０のケースは、送信バッファ制約条件を満たすことができる場合に好ましいフレーム複雑度に直接従うビット割り当て方式を表す。λ＝１．０の指定は、フレーム複雑度を考慮することなくビット割当値が均等に分配されるケースを表す。この場合、最初のフレームのみプリフェッチするだけでよいので、プリロードはほとんど必要なく、小容量のデコーダバッファが必要である。０＜λ＜１．０のケースは、バッファと品質制約条件との間のビット割り当てのトレードオフ関係を表す。
【０１２４】
状態１００６では、次の場合に、仮に割り当てられたビット割当値Ｂt(g)でバッファステータスを検査する。
βg-1＋Ｂt(g)−（Ｒ／Ｆ）×Ｎ(g)＜ＭａｒｇｉｎＦａｃｔｏｒ１×βmax
ここで、例えば、ＭａｒｇｉｎＦａｃｔｏｒ１＝０．８が、バッファ調整の安全マージン（最大バッファサイズの０．８）となる。
【０１２５】
そして、その割り当てが許容され、プロセス１０００が状態１００８に進む。そうでない場合、λの値に０．１などの係数を加算して調整し、プロセス１０００は状態１００４に戻る。
【０１２６】
状態１００８で、バッファステータスは次のように更新される。
βg＝βg-1＋Ｂt(g)−（Ｒ／Ｆ）×Ｎ(g)
残りの割当値Ｂrは次のように調整される。
Ｂr−Ｂt(g)
プロセス１００８は、状態１００２に戻り、λの値は０に設定される。次のインデックスｇ＋１のＧＯＶ又はＧＯＰの割り当てが実行される。
【０１２７】
ＧＯＶ又はＧＯＰシーンレベルビット割り当てにより、バッファと品質制約条件の両方を満たしながら、各ＧＯＶ又はＧＯＰにビット割当値を都合よく適切に割り当てることができる。しかし、それぞれのＧＯＶ又はＧＯＰ内の一定又は一貫した品質を得るために、フレームの複雑度に基づき、バッファ制約条件を満たしながら、それぞれのＧＯＶ又はＧＯＰ内のフレームに従ってビット割当値を割り当てるのが好ましい。図９に示されているフレームレベルビット割り当てプロセス９０４は、このようなフレームビット割り当てプロセスを実行し、これはＧＯＶ又はＧＯＰレベルのビット割り当てのためのプロセス１０００に類似している。しかし、ＧＯＰ又はＧＯＶに対応する変数を使用する代わりに、フレームに対応する変数を使用する。そこで、フレームについて以下が成り立つ。
Ｂf＝λ×（Ｒ／Ｆ）＋（１−λ）×Ｃ(g,i)×Ｂｇ’／（Ｃg'） 式１４
ここで、
Ｂｇ’＝ランニングビット＝（現在のＧＯＰへのビット割り当て−既にコーディングされたフレームに使用されたビット数）
Ｃｇ’＝ランニング複雑度＝（現在のＧＯＰの複雑度−既にコーディングされたフレームの複雑度）
Ｒ＝ターゲットビットレート
Ｆ＝フレームレート
一実施の形態では、以下の説明に従ってマクロブロックレベルＱＰ調整９０６を代わりに実行することができる。シーン及び上記で説明したフレームレベルビット割り当てプロセスでは、安全マージン（例えば最大バッファの０．８）がバッファ調整用に用意される。計算複雑度を低減するために、他の実施の形態では、１パスレート制御を使用して、全てのマクロブロックを同じ量子化パラメータ（ＱＰ）で量子化する。ＱＰ値は、以下の反復プロセスを使用してフレームレベルレート制御の一部として決定される。
【０１２８】
If
Bactual(ｉ)＞１.15*Bt(i), then QPli+l=QPi+l.
If Bactual(ｉ)≦１.15*Bt(i)
then if Bactual(ｉ)＜0.85*Bt(i)
QPi+l=QPi-1
else QPi+l=QPi.
//QPi+l が有効なQP範囲１〜３１にあることを保証するため、以下のクリッピング操作を実行
QPi+l=max(QPi+l,1);
QPi+l=min(QPi+l,31).
しかし、バッファが比較的小さい場合、後述するマクロブロックレベルレート制御プロセスを使用することができる。
【０１２９】
ＮMBが１フレーム内のマクロブロックの数とすると、ＭＡＤkはＭＢｋの平均の差の絶対値であり、ＱＰk-1は前のマクロブロックのＱＰである。従って、現在のＭＢｋのＱＰは、以下の規則に従って決定されるように、範囲［ＱＰk-1−２，ＱＰk-1＋２］にあると考えられる。
【０１３０】
【数１９】
2008259230.tif 000022
オプションとして、雑音の大きな環境では、マクロブロックビット割り当てプロセスを無効にするか、又は使用しないことで、ＱＰがそれぞれのマクロブロックについて同じであるとデコーダ側で仮定することができる。これにより、フレームの一部が破損していたり失われているときにデコーダは正しくないＱＰを使用しないようにできる。
【０１３１】
各ＧＯＶ又はＧＯＰのビット割当値を決定した後、ＩＭＰ４とも呼ばれる新規レート制御プロセスを使用して、計算で求められたビット割当値を満たすか又は実質的に満たす。従来のＭＰＥＧ−４レート制御は、多くのアプリケーションに対して適切なパフォーマンスを発揮する。例えば、多くの従来型のレート制御プロセスは多重シーンを明示的にサポートしていない。その代わりに、これらの従来型のレート制御プロセスでは、シーケンス全体が単一のシーンを含むと仮定しており、したがって満足できるレート制御を行うことができない。それに対して、本発明の一実施の形態では、シーン変化の発生を考慮し、レート制御機能を高めている。
【０１３２】
本発明の一実施の形態では、自己収束レート制御プロセスを使用し、ＱＰを量子化ステップサイズの半分に等しいとした場合に、各フレームの量子化パラメータＱＰを調整することによってそれぞれのＧＯＶのビット割当値を満たす。ＭＰＥＧ−４では、量子化パラメータＱＰは３１個の値［１〜３１］を持つことができる。レート制御プロセスでは、過去のビット使用度、未コーディングフレームの数、与えられたＧＯＶに対する残りのビットに基づいてＱＰを決定する。したがって、現在のビット使用度が割り当てられたビット割当値からある量又はパーセンテージ以上超えた場合に、量子化パラメータ、したがって量子化ステップサイズが増やされる。その代わりに、現在のビット使用度が割り当てられたビット割当値からある量又はパーセンテージを超えて下がった場合、量子化パラメータ、したがって量子化ステップサイズは減らされる。このプロセスは、以下の疑似コード例に従って実行することができる。
【０１３３】
if（現在のビット使用度＞割り当てられたビット割当値*Margin1）
QPnext=min(31,INT(QPcur+StepUpPrcnt*QPcur));
Else
if（現在のビット使用度＜割り当てられたビット割当値*Margin2）
QPnext=max(1,INT
(QPcur-StepDwnPrcnt* QPcur));
End
If.
ここで、
Ｍａｒｇｉｎ１は、現在のビット使用度が割り当てられたビット割当値を超えることを許す係数であり、システムが安定化する機会が得られる。例えば、Ｍａｒｇｉｎ１を１．１５に設定することで、現在のビット使用度が割り当てられたビット割当値を１５％だけ超えられる。
Ｍａｒｇｉｎ２は、現在のビット使用度が割り当てられたビット割当値を下回ることを許す係数であり、システムが安定化する機会が得られる。例えば、Ｍａｒｇｉｎ２を０．８５に設定することで、現在のビット使用度が割り当てられたビット割当値を１５％だけ下回ることができる。
ＳｔｅｐＵｐＰｒｃｎｔは、量子化パラメータをどれだけ増やすかということに関係する定数である。例えば、ＳｔｅｐＵｐＰｒｃｎｔを０．１に設定することができる。
ＳｔｅｐＤｗｎＰｒｃｎｔは、量子化パラメータをどれだけ減らすかということに関係する定数である。例えば、ＳｔｅｐＤｗｎＰｒｃｎｔを０．１に設定することができる。
【０１３４】
それぞれのＧＯＶを符号化した後、実際のビット使用度Ｂactを事前に割り当てられたビット割当値Ｂassと比較し、実際のビット使用度がビット割当値からある大きさ又はパーセンテージ（Ｍａｒｇｉｎ３、Ｍａｒｇｉｎ４）を超えて変化する場合に、Ｉフレームの量子化パラメータＱＰ（ＱＰＩ）は、必要に応じて、ある量（ＳｔｅｐＵｐ、ＳｔｅｐＤｗｎ）又はパーセンテージだけ上又は下に調整される。量子化パラメータ調整プロセスは、以下の疑似コード例に従って実行することができる。
【０１３５】
If
(Bact＞Margin3*Bass)
QPI=QPI+StepUp;
Else if(Bact＜Margin4*Bass)
QPI=QPI+StepDwn;
End If
ここで、例えば、
Margin3=1.2
Margin4=0.8
StepUp=2
StepDwn=-2
である。
【０１３６】
ＱＰＩの初期値を１０に設定し、Ｐ−ＶＯＰのＱＰの初期値を１２に設定できる。Ｉ−ＶＯＰの量子化パラメータＱＰＩが変更されると、続くＰフレームのＱＰ割り当ても変更される場合があることに注意されたい。
【０１３７】
一実施の形態では、エンコーダモジュール１０６Ｂは適応型動き変化検出を実行し、大きな伝搬誤りを効率よく低減することができる。特に、適応型イントラリフレッシュ（ＡＩＲ）を使用し、Ｐフレーム内のマクロブロックの選択的イントラコーディングによってＭＰＥＧデータストリーム内の誤り伝搬を低減する。そこで、ＡＩＲを使用することによって、フレームの検出された動き領域内でイントラコーディングしなければならないマクロブロックの数を決定するのを助けることができる。マクロブロックのイントラリフレッシュを実行することによって圧縮されたビットストリームの誤り耐性が高まるが、イントラコーディングされるマクロブロックの数を増やせば、これらのマクロブロックを符号化するために使用するビット数も増えることになる。さらに、固定ビットレートである場合、他の非イントラコーディングされたマクロブロックに対して量子化誤差が増えることになる。したがって、イントラコーディングするマクロブロックのパーセンテージ又は数を決定するために、帯域幅及びビット誤り確率（ＢＥＲ）が考慮される。
【０１３８】
さらに、エンコーダモジュール１０６Ｂは、オプションとして、循環イントラリフレッシュ（ＣＩＲ）を使用して、各フレーム内の所定数のマクロブロック（ＭＢ）を符号化している。したがって、ＣＩＲは周期的イントラリフレッシュを実行して、誤り伝搬の発生の可能性を制限している。
【０１３９】
一実施の形態では、循環イントラリフレッシュ（ＣＩＲ）及び適応型イントラリフレッシュ（ＡＩＲ）は以下のように実行される。ユーザーがＶＯＰ内のイントラマクロブロックの数をエンコーダパラメータファイルで指定する。ＶＯＰ内のイントラマクロブロックの数は、ターゲットビットレート、フレームレート、ビットバッファ使用度、チャネル雑音フィードバック、及びその他の送信関連パラメータによって決まる。エンコーダモジュール１０６Ｂは、各マクロブロックの動き量を推定し、イントラモードで符号化する重い動き領域を選択して、誤り耐性を高める。推定の結果は、マクロブロックレベルでリフレッシュマップに記録される。
【０１４０】
従来のリフレッシュマップ２０２の例は図２Ａに示されている。エンコーダモジュール１０６Ｂは、リフレッシュマップを参照し、イントラモードで現在のＶＯＰの指定されたマクロブロックを符号化するか否かを選択的に決定する。ＳＡＤ（差の絶対値の和）とＳＡＤthとを比較することによって動きの推定を実行する。ＳＡＤとは、現在のマクロブロックと前のＶＯＰの同じ場所のマクロブロックとの間の差の絶対値を加算した値のことである。都合のよいことに、ＳＡＤは、動き推定を実行したときにすでに計算されている。したがって、ＳＡＤ計算をＡＩＲプロセスの一部として繰り返す必要はない。ＳＡＤthは、与えられたマクロブロックが動き領域であるか否かを判別する際のしきい値として使用される。現在のマクロブロックのＳＡＤがＳＡＤthよりも大きい場合、このマクロブロックは動き領域とみなされる。
【０１４１】
マクロブロックが動き領域としてみなされると、これは、所定の回数だけイントラモードで符号化されるまで、動き領域の候補として残る。図２Ａに示されているリフレッシュマップ２０２の例では、この「所定の回数」の値は「１」に設定され、他の実施の形態では、この所定の回数は２又はそれ以上の値に設定することができる。図２Ｂのマップ２０４に示されているように、水平走査は、動き領域内でイントラモードで符号化される候補であるマクロブロックの間で決定のに使用される。
【０１４２】
従来のＡＩＲ処理について、４つのサンプルの連続するＶＯＰに適用されている図８Ａを参照して、これから詳しく説明する。ＡＩＲリフレッシュレート、即ち、ＶＯＰ内のイントラマクロブロックの固定された数が、あらかじめ決定されているのが好ましい。この例では、ＶＯＰ内のイントラマクロブロックの数は「２」に設定される。
【０１４３】
［１］第１のＶＯＰ−図８Ａ［ａ］及び［ｂ］
第１のＶＯＰは、要素８０２、８０４を含むシーン変化フレームである。したがって、第１のＶＯＰ内の全てのマクロブロックが、図８Ａ［ａ］に示されているように、イントラモードで符号化される。図８Ａ［ｂ］に示されているように、リフレッシュマップは「０」に設定されるが、０はイントラリフレッシュが実行されないことを示し、１はイントラリフレッシュを実行することを示しており、これは第１のＶＯＰが前のＶＯＰを参照せずに符号化されるからである。
【０１４４】
［２］第２のＶＯＰ−図８Ａ［ｃ］〜［ｆ］
第２のＶＯＰはＰ
ＶＯＰとしてインターコーディングされる。要素８０２、８０４は、１マクロブロック分下、１ブロック分右に移動している。イントラリフレッシュは、このＶＯＰでは実行されないが、それは、図８Ａ［ｃ］に示されているように、リフレッシュマップ内の全ての値がまだ０であるからである。エンコーダモジュール１０６Ｂは、それぞれのマクロブロックの動きを推定する。与えられたマクロブロックのＳＡＤがＳＡＤthよりも大きい場合、図８Ａ［ｅ］の斜線部に示されているように、与えられたそのマクロブロックは動き領域とみなされ、したがって、リフレッシュマップは、図８Ａ［ｆ］に示されているように更新され、動きマクロブロックに対応するリフレッシュマップエントリは１に設定される。
【０１４５】
［３］第３のＶＯＰ−図８Ａ［ｇ］〜［ｋ］
要素８０２、８０４は、さらに１マクロブロック分下、１ブロック分右に移動している。第３のＶＯＰが符号化されると、エンコーダモジュール１０６Ｂは図８Ａ［ｇ］で示されているリフレッシュマップを参照する。マクロブロックがイントラリフレッシュされるべきことをリフレッシュマップが示している場合、そのマクロブロックは、図８Ａ［ｈ］で「Ｘ」を含むマクロブロックにより示されているように、イントラモードで符号化される。イントラコーディングされたマクロブロックの対応するリフレッシュマップの値が、図８Ａ［ｉ］に示されているように、１だけ減らされる。
【０１４６】
減らされた値が０であれば、対応するマクロブロックは動き領域としてみなされない。先へ進むと、図８Ａ［ｊ］〜［ｋ］に示されているように、処理は実質的に第２のＶＯＰの処理と同じであり、与えられたマクロブロックのＳＡＤがＳＡＤthよりも大きい場合、その与えられたマクロブロックは動き領域とみなされる。リフレッシュマップは、図８Ａ［ｋ］に示されているように更新され、動きマクロブロックに対応するリフレッシュマップエントリは１に設定される。
【０１４７】
［４］第４のＶＯＰ−図８Ａ［ｌ］〜［ｐ］
この処理は、第３のＶＯＰと実質的に同じである。現在のマクロブロックがリフレッシュマップ内でそれと関連する１を持つ場合、これは、図８Ａ［ｍ］の「Ｘ」を含むマクロブロックにより示されているようにイントラモードで符号化される。イントラコーディングされたマクロブロックの対応するリフレッシュマップの値が、図８Ａ［ｎ］に示されているように、１だけ減らされる。
【０１４８】
減らされた値が０であれば、対応するマクロブロックは動き領域としてみなされない。与えられたマクロブロックのＳＡＤがＳＡＤthよりも大きい場合、この与えられたマクロブロックは動き領域としてみなされる。リフレッシュマップは、図８Ａ［ｐ］に示されているように更新される。
【０１４９】
他の実施の形態では、新規の拡張されたＡＩＲプロセスを次のように実行して、予測フレーム内のイントラコーディングされるべきマクロブロックを選択する。インターコード歪み値及びイントラコード歪み値が、インターコードビットレート及びイントラコードビットレートのように計算される。計算して求めたインターコード歪み値及びイントラコード歪み値の比較と、各マクロブロックのインターコードビットレート及びイントラコードビットレートの比較に基づいて、イントラコーディングされるべきマクロブロックに関する決定を下す。次に拡張されたＡＩＲプロセスについて詳述する。
【０１５０】
イントラコーディングする予測フレームマクロブロックを選択するために、マクロブロックが失われた、又は破損した場合生じるであろうと予想される歪みを推定する。予測又はイントラコーディングされたマクロブロックについては、予測範囲内の参照マクロブロックがイントラコーディングされる場合、歪みは低減され得る。
【０１５１】
図８Ｂを参照すると、予測パスと共に再帰的追跡を使用して、マクロブロックの予想される歪みを決定することができる。８０４Ｂから８１８Ｂ、８０６Ｂから８２０Ｂ、８２０Ｂから８２６Ｂ、８１２Ｂから８２２Ｂ、８１４Ｂから８２４Ｂ、８２２Ｂから８２８Ｂ、８２８Ｂから８３０Ｂへの波線は、動きベクトル（ＭＶ）が、前のフレーム内のマクロブロックから現在のフレーム内のマクロブロックへの符号化されたビットストリームの一部であることを示している。８０２Ｂから８１８Ｂ、８０６Ｂから８２０Ｂ、８１０Ｂから８２２Ｂ、８１６Ｂから８２４Ｂ、８１８Ｂから８２６Ｂ、８２４Ｂから８２８Ｂ、及び８２６Ｂから８３０Ｂへの線など、傾斜した実線は、ゼロ動きベクトルであることを示し、そこでは失われた動きベクトルはゼロに設定される。ゼロ動きベクトルは、誤り条件でデコーダによって使用され、そこでデコーダは、誤り補正のため、回復不可能なマクロブロックを前のフレームからの対応するマクロブロックで置き換える。これは、「基本補正」と呼ばれる、利用可能な誤り補正方法の１つにすぎないことに注意されたい。時間的補正や補助的動きベクトル補正などの他の補正方法も実行できる。オプションとして、再帰的追跡を実行するときに、これらの他の誤り補正戦略の効果を別々に並行して考慮する。図８Ｂにおいて、「ｐ」はパケット損失確率又はパケット損失率であり、ｑ＝（１−ｐ）である。
【０１５２】
与えられた現在マクロブロックを符号化しながら、エンコーダモジュール１０６Ｂは前のフレーム上で動き検索を実行し、現在のマクロブロックとの一致度が最も高い、又はそうでなければ適切な予測フレームであると判断されるマクロブロックを見つける。斜線の入っていない円で示されているマクロブロック８０２Ｂ、８０６Ｂ、８１０Ｂ、８１６Ｂ、８１８Ｂ、８２０Ｂ、８２６Ｂなどの前のフレームから見つけられたこのマクロブロックは、予測マクロブロックと呼ばれる。動き検索が実行された後、残差が計算され、さらに離散コサイン変換（ＤＣＴ）を使用して符号化され、その後、選択した量子化ステップ又は量子化パラメータ（ＱＰ）を使用して量子化され、可変長コーディング（ＶＬＣ）を使用してエントロピーコーディングされる。符号化されたビットストリームは、動きベクトル情報、残差のエントロピーコーディングされた量子化ＤＣＴ係数、及び対応するヘッダ情報からなる。
【０１５３】
デコーダは、符号化されたビットストリームを受信すると、コーディングされた情報を処理し、マクロブロックを再構成する。パケット喪失又はその他の誤り条件のせいで、マクロブロックに対する情報が欠損している場合、デコーダが、上記の基本補正などの１つ又は複数の誤り補正方法を使用して、対応するマクロブロックを補正するのが好ましい。上記のように、マクロブロックが欠損している場合、基本補正により、前のフレームから同じ空間位置にマクロブロックをコピーする。これは、ゼロ動きベクトルとゼロＤＣＴ係数を受け取ることに相当する。
【０１５４】
どのマクロブロックがイントラコーディングされるべきかを決定するために、一実施の形態では、エンコーダシステム１００に、対応するデコーダ回路を備えているので、デコーダのプロセスを模倣し、誤りが存在しない場合と、現在のマクロブロック（「ＭＢＣ」）だけに影響を及ぼす単一誤りのような、誤り１つ又は複数の誤りが存在する場合との両方で、デコーダが再構成するものを再構成することができる。例えば、誤りのない再構成及びと１つの誤りを仮定した再構成との差は、「補正誤り」又はＥＣと呼ばれる。ＥＣは以下のように定義される。
ＥＣ＝ＭＢＱ−ＭＢＣ
式１６
ここで、ＭＢＱは誤りのない再構成であり、ＭＢＣは単一誤りの再構成である。
【０１５５】
与えられたマクロブロックを次のフレームの予測マクロブロックとして使用する場合、与えられたマクロブロック上に存在する誤りは、動きベクトル及び次のフレームマクロブロックのＤＣＴ係数にさらに誤りがなくても、予測のため与えられたマクロブロックを使用する次のフレーム内のマクロブロックに伝搬する。与えられたフレーム内のマクロブロックから次のフレーム内の別のマクロブロックに誤りが伝搬するメカニズムを「誤り伝搬モデル」と呼ばれる。
【０１５６】
垂直、又は水平方向、又は垂直方向及び水平方向の両方のいずれかで、予測に半ピクセル精度を使用するときに、誤り減衰が発生する。ローパスフィルタに匹敵する誤り減衰は、半ピクセル動きが使用されるときに適用されるピクセル平均化操作のローパス周波数特性の結果生じる。したがって、エンコーダシステム１００Ｂで計算した補正誤りＥＣが与えられると、水平方向ＥＣｈ／２の半ピクセル動きを介して伝搬する誤り、垂直方向ＥＣｖ／２の半ピクセル動きを介して伝搬する誤り、及び水平方向と垂直方向ＥＣｈｖ／２の半ピクセル動きを介して伝搬する誤りを決定することができる。
【０１５７】
半ピクセル補間が図８Ｄに示されており、これは、整数値のピクセル位置、水平方向の半ピクセル位置、垂直方向の半ピクセル位置、水平方向及び垂直方向の半ピクセル位置を示している。
【０１５８】
通常はピクセル値に適用される半ピクセル平均化フィルタを補正誤りＥＣに適用し、以下の４種類の伝搬誤り配列を定義することができる。
ＥＣ０＝ＥＣ
ＥＣｈ／２＝水平半ピクセル動きによる誤り（図８Ｄのばつ「Ｘ」の位置で計算された値）
ＥＣｖ／２＝垂直半ピクセル動きによる誤り（図８Ｄの菱形の位置で計算された値）
ＥＣｈｖ／２＝水平及び垂直半ピクセル動きによる誤り（図８Ｄの正方形の位置で計算された値）
４種類の誤り配列のそれぞれについて、０平均の仮説のもとで誤差分散を近似する対応するエネルギーを計算する。
【０１５９】
これらの４つのケースに対する４つの誤差分散は、それぞれ次のように定義することができる。
（式１７）
σ2Ec，σ2Ech/2，σ2Ecv/2及びσ2Echv/2
その後、以下の４つの遷移又は強度係数を次のように定義することができる。
【０１６０】
【数２０】
2008259230.tif 000023
これらは、現在のマクロブロックの動きの可能な４つのケースに対応する。これらの量は、テーブル、ファイル、又はその他のレコード内に、現在のマクロブロック（ｍx，ｍy）、初期誤りエネルギーσ2Ec、及びコーディングモード（イントラ／インター）を符号化するために使用される動きベクトルとともに保存される。
【０１６１】
半ピクセル水平及び垂直伝搬強度は以下の式で近似することができる。
γhv/2＝γh/2＋γv/2＋γh/2γv/2 式１９
半ピクセル水平及び半ピクセル垂直動きの遷移係数を使用すれば、これによって、半ピクセル水平及び垂直伝搬強度又は遷移係数の計算に要する計算時間を短縮し、リソースを減らすことができる。さらに、伝搬強度は正でなければならない。したがって、負の伝搬強度の結果は丸めるか、又は０に設定される。
【０１６２】
図８Ｅに示されているように、動きベクトルＭＶは、１６ピクセルの行と列からなるグリッドに揃えられている現在のフレームＦｒａｍｅn内のマクロブロックを、必ずしも同じグリッドに揃えられていない予測フレームＦｒａｍｅn-1内の１６×１６ピクセルにマッピングすることができる。実際、図８Ｅに示されているように、Ｆｒａｍｅn内のマクロブロックは、予測フレーム内Ｆｒａｍｅn-1の最大４つまでのマクロブロックの一部分にマッピングされ得る。
【０１６３】
現在のフレーム内のマクロブロックの予測に使用される前のフレームからの可能な４つのマクロブロックのうちの１つ又は複数に存在する誤りは、現在のフレーム内のマクロブロックに反映される。誤りの関係はオーバーラップ面積と比例する。例えば、誤りの関係は、オーバーラップするピクセルの数に比例又はそれに基づくことができる。したがって、現在のフレーム内のマクロブロック毎に、インターモードでマクロブロックを符号化するときに使用することになる最大４つまでの予測マクロブロックが識別される。対応する動きベクトル情報を使用して、オーバーラップ面積を決定し、その面積に等しい又は関係する重み係数を使用して、次の式で定義されているように、オーバーラップ面積をマクロブロック面積全体に正規化する、例えば、２５６（１６×１６）に正規化する。
【０１６４】
【数２１】
2008259230.tif 000024
これは、前のフレーム内のブロックｉによる現在のフレーム内のマクロブロックｊ上の予想歪みを推定する。γi,jは、水平、垂直、又はその両方の方向に沿う動きのタイプ（半又は整数ピクセル動きベクトル）に応じて、すでに定義されている遷移係数γEC、γh/2、γv/2、及びγhv/2のうちの１つであり、ｗ(i,j)＝w1・h1／256はマクロブロックｊとマクロブロックｉの間のオーバーラップ面積（ｗ１×ｈ１）に関係する重み係数であることに注意されたい。項σ2u(i)は、マクロブロックｉの補正誤りσ2ECである。
【０１６５】
図８Ｂを参照すると、現在のＦｒａｍｅn内のマクロブロック８３０Ｂから始まり、Ｆｒａｍｅn-1内に、マクロブロック８３０Ｂを再生成するためにデコーダによって使用される２つのマクロブロック、即ち、通常の復号化のために使用されるマクロブロック８２６Ｂ、及び補正に使用されるマクロブロック８２８Ｂがある。Ｆｒａｍｅn-1内のマクロブロック８２６Ｂ、８２８Ｂはそれぞれ、上記のように、最大４つまでの揃えられたマクロブロックに対応する。同じ「復号化又は補正」方法をＦｒａｍｅn-1内の２つのマクロブロック８２６Ｂ、８２８Ｂに対して再帰的に適用し、Ｆｒａｍｅn-2内の４つのマクロブロック８１８Ｂ、８２４Ｂ、８２２Ｂ、８２０Ｂを見つけ、その後、８つのマクロブロック８０２Ｂ、８０４Ｂ、８０６Ｂ、８０８Ｂ、８１０Ｂ、８１２Ｂ、８１４Ｂ、８１６Ｂを含むＦｒａｍｅn-3に到達できる。ある一連の誤り／パケット損失が送信時に発生した場合、Ｆｒａｍｅn-3内の８つのマクロブロックのそれぞれが、現在のマクロブロックでＦｒａｍｅnに出現する可能性がある。これら８つの経路のそれぞれの確率は対応する分岐確率（ｐ／ｑ）の積であり、ここでｐはパケット損失確率であり、ｑ＝（１−ｐ）である。マクロブロック８３０Ｂへの特定の経路が発生する確率を求めるために、その経路に沿ってｐ及びｑの値を乗算する。したがって、１つの行内で２つのパケット損失が発生する場合のような確率ｐ2を持つ経路と、８１２Ｂ〜８３０Ｂにより定義された確率ｐ3である経路とが存在する。
【０１６６】
誤りの確率が比較的小さい（例えば、０．１）と仮定すると、確率ｐ2又はｐ3などの高次（ｐに関して）の経路は無視することができ、図８Ｂを図８Ｆに示されている経路に簡略化することができる。図８Ｂの経路の簡略化は、補正に使用するマクロブロックはそれ自体破損していない、即ち、２つのマクロブロックの間のある１つの経路における複数の誤り／パケット損失の確率を無視できるという仮定に基づいている。この仮定は常に正しいわけではないが、多くの場合正しい。
【０１６７】
このように簡略化されたマクロブロックの関係に基づき、上記の伝搬モデルを使用して、Ｆｒａｍｅnの現在のマクロブロックに対する予想歪みを推定することができる。予想歪みは、次の式で定義される。
Ｄ(n)＝ｐσ2EC(n)＋ｑＤ’(n−1) 式２０
ここで、Ｄ’（ｎ−１）は、Ｆｒａｍｅn-1からＦｒａｍｅnまでの可能な半ピクセル動きを考慮するために遷移係数によって修正されたＦｒａｍｅn-1の参照マクロブロックの予想歪みである。Ｆｒａｍｅn-1の参照ブロックに関してこの式を展開し、予想歪みを次のように定義する。
【０１６８】
【数２２】
2008259230.tif 000025
γ(n-1,n)は、Ｆｒａｍｅn-1からＦｒａｍｅnまでの動きベクトルに依存する、Ｆｒａｍｅn-1内の参照マクロブロックの４つの遷移係数（γEC、γh/2、γv/2、及びγhv/2）のうちの１つである。上で述べたのと同様に、Ｄ”（ｎ−２）は、Ｆｒａｍｅn-2からＦｒａｍｅn-1及びＦｒａｍｅn-1からＦｒａｍｅnまでの可能な半ピクセル動きを考慮するために、遷移係数によって修正されたＦｒａｍｅn-2の参照マクロブロックに関する予想歪みである。この項をさらに展開すると、予想歪みは次のように定義される。
【０１６９】
【数２３】
2008259230.tif 000026
Ｆｒａｍｅn-3がＩフレームであるか、又はフレームバッファが３フレームに制限又は制約されている場合、Ｄ’’’（ｎ−３）は０に等しい。そうでない場合、同じ手順を前のフレームのマクロブロックに再帰的に適用する。同様に、再帰的プロセスの実行中にイントラマクロブロックに遭遇した場合、歪みはｐσ2ECに等しいと仮定するが、それは、動きベクトルがなく、したがって誤り伝搬項がないからである。
【０１７０】
上の歪み方程式では、各フレーム内の最大４つの予測マクロブロックのうちのそれぞれの１つからの寄与分を全て加算し、Ｆｒａｍｅn内のターゲットマクロブロックとこれらのマクロブロックとの間でオーバーラップする面積に関係する、対応する重み係数を掛ける。
【０１７１】
前のフレームのそれぞれのマクロブロックについて格納されている情報を利用して、現在のＦｒａｍｅnのそれぞれのマクロブロックの予想歪みを計算することができる。この予想歪みは送信誤りによるものであり、それぞれのマクロブロックの量子化による歪みとは相関しないことに注意されたい。したがって、予想歪み項を量子化誤りに加えて、マクロブロック毎に全歪みを決定する必要がある。この全歪みのことを、「全インターモード歪み」又はＤTINTERと呼び、マクロブロックのインターモード符号化に関係する。
【０１７２】
イントラモードでは、予想歪みは次のように第１の項に簡略化される。
Ｄ(n)＝ｐσ2EC(n) 式２３
これは、ＤINTRAとも呼ばれる、マクロブロックの「全イントラモード歪み」を得るために、対応するイントラモード量子化歪みに加える必要がある予想誤り歪みを反映している。
【０１７３】
それぞれ、ＲTINTER及びＲTINTRAと呼ばれるインターモード符号化及びイントラモード符号化に、一定数のビットが必要である。これらのビットレートの差ΔＲ＝ＲINTRA−ＲINTERの差を、全歪みの差ΔＤ＝ＤINTRA−ＤINTERとともに使用することにより、最良のコーディングモードを選択することができる。
【０１７４】
エンコーダに十分なリソースと能力があれば、以下の式で与えられる、各マクロブロックのコスト関数を評価するために使用される最適な重み係数λを判別する必要のある完全な歪み率最適化を実行できる。
Ｃ＝Ｄ＋λＲ
式２４
その後、以下のイントラ／インター決定規則を求める。
【０１７５】
次の場合にイントラモードを選択する。
・ΔＲ＝０ならばΔＤ＜０
・ΔＲ＞０ならばΔＤ／ΔＲ＜−λ
・ΔＲ＜０ならばΔＤ／ΔＲ＞−λ
そうでなければインターモードを選択する。
【０１７６】
最適なλパラメータの決定は、オプションとして、可能な全てのＱＰとλの組み合わせを試すことによって達成されることに注意されたい。目的のビットレートよりも低い、又はオプションとして目的のビットレートに等しいビットストリームを出力する全ての組み合わせの中から歪みが最小である特定の組み合わせを選択する。
【０１７７】
その代わりに、エンコーダシステム１００は最初に、上記ケース（ΔＲ＝０ならばΔＤ＜０）のうち、λの全ての値に適用できる第１のケースを満たすマクロブロックと、さらに、自動的に第３のケースに適用される、ΔＲ＜０ならばΔＤ／ΔＲ≧０という条件を満たす全てのマクロブロックを選択することができる。次に、ΔＲ＞０のマクロブロックを、ひとまとめにし、比ΔＤ／ΔＲの昇順に順序付ける。同様に、ΔＲ＜０のマクロブロックを、ひとまとめにし、同じ比ΔＤ／ΔＲの降順に順序付ける。
【０１７８】
これは、各マクロブロックに対する比ΔＤ／ΔＲの値を表している図８Ｇに示されているグラフによって示されており、「ｘ」がΔＲ＞０のマクロブロックを示し、「ｏ」がΔＲ＜０のマクロブロックを示す。
【０１７９】
最大の負の値又は対応する定義済み基準を満たす負の値を持つ「ｘ」、及び最小の負の値又は対応する定義済み基準を満たす負の値を持つ「ｏ」が、イントラリフレッシュの候補として選択される。正の値を持つ「ｏ」はすでにイントラコーディングとして選択されており、正の値を持つ「ｘ」は自動的にイントラコーディングされるので完全に除外されることに注意されたい。実験結果から、「ｘ」で示されているΔＲ＞０であるマクロブロックが最も一般的なものであることが分かるが、一般に、コストをビット単位で考えた場合に、イントラモードのコストがインターモードのコストに比べて高いからである。したがって、オプションとして、ΔＲ＞０であるマクロブロックのみがイントラリフレッシュの対象とみなされる。イントラモードで符号化する追加マクロブロックの数を指定する、いわゆるリフレッシュレートは、最終的に選択される候補マクロブロックの数を指定するものである。
【０１８０】
リソースをあまり使わないプロセスでは、送信誤りによる各マクロブロックの予想歪みを計算するが、量子化誤りは無視するか、又は除外する。次に、イントラモードとインターモードとの予想歪みの差を、イントラコーディングするマクロブロックを選択する基準として使用でき、この基準に従って順序付けることによってマクロブロックが選択される。
【０１８１】
よって、適応型イントラリフレッシュ（ＡＩＲ）を使用することによって、フレームの検出された動き領域内でイントラコーディングされなければならないマクロブロックの数を決定することを補助することができる。ユーザーによってセットされ、エンコーダモジュール１０６Ｂによって読み込まれるＡＩＲビットを使用して、エンコーダパラメータファイル内でＡＩＲを有効、無効に設定できる。ＡＩＲが有効であれば、ユーザーはさらに、別のパラメータであるＡＩＲリフレッシュレートを指定する。ＡＩＲリフレッシュレートにより、１つのフレームの検出された動き領域内でイントラコーディングされなければならないマクロブロックの数が決まる。適応型動き変化の検出を利用すると、動き領域に誤りが発生した場合でも、大きな伝搬誤りを効率よく低減することができる。
【０１８２】
図８Ｈは、Ｅ−ＡＩＲプロセスの一実施の形態を示している。状態８０２Ｈにおいて、Ｆｒａｍｅ（ｎ）の注目している現在のマクロブロックに対する１つ又は複数の動きベクトルを受信する。状態８０４Ｈにおいて、この動きベクトルを使用して、現在のマクロブロックを決定する際に使用される前のＦｒａｍｅ（ｎ−１）からのマクロブロックを見つける。状態８０６Ｈにおいて、領域又はピクセル数に関して、Ｆｒａｍｅ（ｎ−１）内の見つかったマクロブロックのそれぞれをどれだけ使用して現在のマクロブロックを生成するかを決定する。状態８０８Ｈにおいて、オーバーラップ重み付け
【数２４】
2008259230.tif 000027
を含んで、誤差分散（σ2Ec、σ2Ech/2、σ2Ecv/2、σ2Echv/2、）を計算する。状態８０８Ｈにおいて、誤差分散に基づいて伝搬強度遷移量を計算する。状態８１２Ｈにおいて、Ｆｒａｍｅ（ｎ）のイントラ誤り歪みＤINTRAを計算する。状態８１４Ｈにおいて、Ｆｒａｍｅ（ｎ）のインター誤り歪みＤINTERを再帰的に計算する。上記のように、再帰的計算は、誤りがＦｒａｍｅ（ｎ）に伝搬する、Ｆｒａｍｅ（ｎ−１）、Ｆｒａｍｅ（ｎ−２）、．．．などの、前のフレームからの誤り歪み及び量子化歪みを含む可能性がある。繰り返しは所定の回数のフレーム生成に制限され、全て又は所定量のフレームバッファが使用されるか、又はイントラフレームに達したときに繰り返しが停止する。
【０１８３】
状態８１６において、ＤINTRAとＤINTERとの差を求めるか、又は別の手段で、ＤINTRAとＤINTERとを比較することによって値ΔＤ（DeltaD）を計算する。状態８１８Ｈにおいて、Ｆｒａｍｅ（ｎ）のイントラコーディング及びＦｒａｍｅ（ｎ）のインターコーディングを行うための、ビット量又はビットレートＲINTRA及びＲINTERをそれぞれ決定する。状態８２０Ｈにおいて、差ＤｅｌｔａＲを計算することによってＲINTRAとＲINTERとの比較を行う。状態８２２Ｈにおいて、説明した基準を用いてΔＲ（DeltaR）、ΔＤ（DeltaD）、及びλ（Lambda）に基づいてイントラコーディングするかインターコーディングするかの決定を下す。それとは別に、ΔＤ（DeltaD）が設定されているマクロブロックをイントラコーディングするように選択することもできる。例えば、Ｆｒａｍｅ（ｎ）のマクロブロックの全てについてΔＤ（DeltaD）を計算した後、最大のΔＤ（DeltaD）を持つ２つのマクロブロックをイントラコーディングする。マクロブロックのイントラコーディングの選択はさらに、この場合、Ｃｏｓｔ＝Ｒａｔｅ＋λ＊Ｄ、又はＤ＋λ＊Ｒとしたコスト計算に基づくこともでき、及び最高のＮ（＝ＡＩＲレート）を選択できる。
【０１８４】
図８Ｃは、循環イントラリフレッシュ、トレース８０２Ｃの使用と、すぐ上で説明した拡張されているＡＩＲ方法、トレース８０４Ｃの使用とを比較した実験結果をまとめたものである。全体的な利得は、ＰＳＮＲでほぼ１ｄＢである。一実施の形態では、付加的な計算負荷は約１０％である。
【０１８５】
ＡＩＲをより効果的に利用するために、従来の循環イントラリフレッシュ（ＣＩＲ）をＡＩＲと組み合わせる。ＶＯＰ内のイントラリフレッシュマクロブロックの数は、ＡＩＲ＿ｒｅｆｒｅｓｈ＿ｒａｔｅとＣＩＲ＿ｒｅｆｒｅｓｈ＿ｒａｔｅの和として定義される。ＡＩＲ＿ｒｅｆｒｅｓｈ＿ｒａｔｅマクロブロックは、ＡＩＲモードで符号化され、ＣＩＲ＿ｒｅｆｒｅｓｈ＿ｒａｔｅマクロブロックは、従来のＣＩＲモードで符号化される。これらの値は、エンコーダパラメータファイル内でユーザーが定義することができる。チャネル品質が低下する場合、高いＣＩＲ及びＡＩＲレートを割り当てるのが好ましい。さらに、Ｉフレーム間の距離が大きい場合、高いＣＩＲ及びＡＩＲレートを割り当てるのが好ましい。これらのレートは、誤り耐性とコーディング効率とのトレードオフの関係を改善するために、チャネル条件ならびに誤りコーディングパラメータに応じて変えるのが好ましい。
【０１８６】
エンコーダパラメータファイルは、上記のパラメータなど、さまざまな符号化パラメータを指定する。エンコーダパラメータファイルは、上記の前処理プロセスによって決定される符号化タイプを指定するフレームタイプファイルを読み込むことにより、前処理モジュールの出力とともに使用することができる。例えば、エンコーダパラメータファイルは、ＡＩＲ、ＣＩＲ、及びＳＭＣの有効化／無効化、ＡＩＲ及びＣＩＲリフレッシュレートの指定、各々のシーン、ＧＯＶ又はＧＯＰの先頭に２つのＩフレーム又はを含むことを有効又は無効にするために使用されるフラグを設定するフィールドを含む。
【０１８７】
エンコーダパラメータファイルは、次のパラメータ又はフィールドを含んでいる。
【０１８８】
【表２】
2008259230.tif 000028
誤り耐性をさらに高めるために、エンコーダモジュール１０６Ｂではヘッダ拡張コード（ＨＥＣ）を、連続するビデオパケットの全てのパケット又は全てのビデオパケットに挿入し、従来のエンコーダの場合のようにＶＯＰヘッダに続く第１のビデオパケット上だけで挿入するのではない。この方法だと、パケットが失われたり破損したりしても、後続のパケットを復号化して使用できるのでより好ましい。さらに、代表的な従来のデコーダであっても、追加のＨＥＣの使用はＭＰＥＧ−４ビットストリーム構文と互換性があるため、ＨＥＣの拡張使用する場合にも対応できる。シーケンス情報を含むヘッダを全てのパケットに追加することで、オーバーヘッドは１パケット当たり約４０ビット、又は約０．２％しか増えないが、復号化の改善は顕著である。
【０１８９】
さらに、誤り耐性を高めるために、オプションとして二次動き補正（ＳＭＣ）が提供される。ＳＭＣプロセスは、エンコーダモジュール１０６Ｂで実行され、補助動きベクトルを生成し、それぞれの予測フレームを２つの先行するフレームから別々に予測することができる。図５のシーケンス５０２は、ＳＭＣプロセスを示しており、ｋ番目のフレームは（ｋ−１）番目のフレーム及び（ｋ−２）番目のフレームの両方の動きベクトルを持つ。したがって、（ｋ−１）番目のフレームの動きベクトルが破損している場合、又は（ｋ−１）番目のフレーム自体が破損している場合であっても、ｋ番目のフレームを（ｋ−２）番目のフレームから、対応する動きベクトルを使用して予測することができる。したがって、（ｋ−２）番目のフレームからｋ番目のフレームまでの二次動きベクトルとも呼ばれる冗長動きベクトルを挿入することによって、デコーダ側のシーンイメージ品質が送信誤りから適切に保護される。例えば、送信中にｋ番目のフレームの全ての情報が破損した場合でも、ＳＭＣを使用して、図５にシーケンス５０４として示されているように、後の予測で使用されないようにｋ番目のフレームを除外することによって誤り伝搬を効果的に抑制することができる。
【０１９０】
ＳＭＣを実行するために、フレームバッファをエンコーダモジュール１０６Ｂに含め、時刻（ｔ−２）のときにすでに復号化されているフレームを格納する。このすでに復号化されているフレームを使って、二次動きベクトルを計算する。一実施の形態では、これらの冗長動きベクトルは、残差を生成するためにエンコーダでは使用されない。デコーダは、送信時にビットストリームが破損しているときに、及び一次動きベクトル又は対応するフレームが破損しているときに、二次動きベクトルを使用する。そうでない場合、デコーダで二次動きベクトルを使用する必要はない。オプションとして、完全な無制限の動き検索を実行して、これらの二次動きベクトルを決定することができる。フレーム（ｔ−２）と（ｔ−１）との間及びフレーム（ｔ−１）と（ｔ）との間の動きに関する情報を組み合わせて、これらの二次動きベクトルを推定することができる。このような理由から、後述するように、シーン変化後の最初のＰ−ＶＯＰ又はそれぞれのＰ−ＶＯＰに関する「ユーザーデータメカニズム」を介して、ＳＭＣデータをオプションとして含めることができる。ＳＭＣを最初のＰ−ＶＯＰのみに用意する利点は、誤りがないときに帯域幅が無駄にならず、コーディング効率が向上するという点である。しかし、全てのＰ−ＶＯＰ又は多数のＰ−ＶＯＰに対してＳＭＣを用意すると、特に重大な誤り状態の場合に、デコーダの堅牢性と復号化能力が高まる。
【０１９１】
Ｐ−ＶＯＰ毎に「ユーザーデータ」又は「ＳＭＣ」ビデオパケットと呼ばれる、追加のビデオパケットを使用して、これらの二次動きベクトルを送信する。このパケットには、標準動きベクトルの場合と同じ予測方法で、同じ可変長コードを使用して、現在のＰ−ＶＯＰの各マクロブロック又は選択されたマクロブロックの動きベクトルが含まれる。ＨＥＣがこの特別なＳＭＣビデオパケットに含まれており、このＰ−ＶＯＰに対する他のパケットが失われた場合でもＳＭＣビデオパケットを復号化することができる。一実施の形態では、このパケットは、ビットストリーム内の各Ｐ−ＶＯＰの最後に配置されている。ユーザー側で、エンコーダパラメータファイル内の対応するオプションを１又は０に設定することによって、ＳＭＣの使用を有効又は無効にすることができる。図６は、ビットストリーム内のパケットの相対位置を示す、ＳＭＣパケット６０２を含むパケット化されたビットストリームの例を示している。
【０１９２】
オプションとして、ＳＭＣパケットをＭＰＥＧ−４構文に適合させるために、将来ＭＰＥＧ規格委員会などによって割り当てられる他の一意的識別子コードを含む、いわゆる「ユーザーデータ開始コード」（１６進数コードＢ２）などをＨＥＣ及び動きベクトル情報の前に付ける。ユーザーデータ開始コードが入っていると、二次動きベクトルを使用できない標準デコーダは、このコードの後からビットストリーム内の次の開始コード、即ちこの場合ＶＯＰ開始コードまでの全てのビットを無視する。一実施の形態では、エンコーダは、ＳＭＣユーザーデータ拡張と他の人々が同じ規則に従ってビットストリームに含めることに決めたデータとを混同しないように、一意的な１６ビット識別子を含んでいる。
【０１９３】
誤り耐性をさらに高めるために、図７に示されているように、連続する２つのフレームのうちの第２のものが、シーン変化フレームでなく、通常であればインターコーディングされる十分に低い相対動きを持っていても、１つのシーン変化で、２つの連続するＩフレームが挿入される。即ち、シーン変化フレーム７０２がイントラコーディングされた後、次のフレーム７０４が自動的にイントラコーディングされる。したがって、１つのＩフレームが失われたとしても、デコーダは、フレーム７０２ならびにフレーム７０４から予測される予測フレーム７０６、７０８、７１０、７１２を復号化する動作を中止しない。第２のＩフレームの後のフレームは、Ｐフレーム又はＢフレームなどのイントラコーディングフレームとして符号化されていてもよい。
【０１９４】
２つの連続するＩフレームを使用すると、ＳＭＣの効率を落とすことなく、他のシーンのシーン内容を使用して現在のシーン内のフレームを予測するという事態をきちんと防止することができる。シーン内の最初の２つの連続するフレームはイントラコーディングされるので、一次動きベクトルも二次動きベクトルもＩフレームには挿入されない。
【０１９５】
連続するＩフレームを挿入する動作は、シーン変化フレーム及び次のフレームの両方をイントラコーディングフレームとして指定できる前処理モジュール１０２Ｂの制御下に置くことができる。その代わりに、エンコーダモジュール１０６Ｂは、前処理モジュール１０２Ｂによってイントラコーディングフレームとして指定されているフレームの後のフレームを自動的にイントラコーディングすることもできる。
【０１９６】
２つの連続するＩフレームを挿入するとビット割当値が増大し、ある送信ビットレートではコーディング効率が低下するが、誤りの発生しやすい環境では、そうすることで誤り耐性が高まるので、この非効率は補ってあまりある。「連続Ｉフレーム」フラグがエンコーダパラメータファイルに用意されており、これがＳＭＣフラグとは独立のものであってもよい。都合のよいことに、ＳＭＣモードがオンでなくても、又はシーン変化の後の（二重）Ｉフレームに続く最初のＰ−ＶＯＰだけについてオンであっても、２つの連続するＩフレームが各シーンの先頭に存在することを利用して、デコーダが送信誤りをより効率的に補正するようにできる。
【０１９７】
適応型イントラリフレッシュ（ＡＩＲ）は、オプションとして、エンコーダモジュール１０６Ｂ側でＳＭＣの副産物としてサポートすることができる。このモードは、最初のＰ−ＶＯＰだけ、又は全てのＰ−ＶＯＰについてＳＭＣを選択したときに有効になり、イントラモードで、フレーム（ｔ−１）及び（ｔ−２）からの予測マクロブロックとして、ＭＡＤ距離測定基準で測定された場合に著しく異なる２つのマクロブロックを持つマクロブロックを符号化する。例えば、しきい値は２０である。よって、現在のフレーム内の与えられたマクロブロックについて２つの予測マクロブロックの間のＭＡＤが２０よりも大きければ、このマクロブロックはイントラコーディングされる。
【０１９８】
エンコーダモジュール１０６Ｂはさらに、動き検出、残差計算などの一般的なエンコーダ機能も実行する。エンコーダ出力は、後で送信するために格納しておくことも、又は実質的にリアルタイムで、適切なデコーダを備える携帯電話などの受信端末に送信することもできる。
【０１９９】
誤り耐性を高めるために、一実施の形態では、Ｉｎｔｒａ＿ｄｃ＿ｖｌｃ＿ｔｈｒを「０」に設定し、フレーム又はＶＯＰ内のＤＣ
ＶＬＣを使用して、全てのＤＣ係数をコーディングする。さらに、ａｃ＿ｐｒｅｄ＿ｆｌａｇを全てのイントラマクロブロックに対して無効にすることができる。これらのオプションは両方とも、構文によって許可され、したがって、標準のデコーダによってサポートされ、送信で誤りが発生した場合でも品質を高められる。このような改善は、ＰＳＮＲで０．１〜０．２ｄＢのオーダーである。特に、データ分割が有効になっている場合、「ＩＮＴＥＲ
ＶＬＣ」テーブルとして知られているものを使用して、イントラマクロブロックの各８×８ＤＣＴブロックのＤＣ係数を６３個のＡＣ ＤＣＴ係数と一緒にコーディングするか、又は「ＩＮＴＲＡ
ＶＬＣ」テーブルとして知られているものを使用して、別々にエンコーディングすることができる。
【０２００】
ＩＮＴＲＡ
ＶＬＣテーブルを使用すると、次のように、ＤＣ係数に関するビットを、残り６３個のＡＣ係数に関するビットと分けることができる。
【０２０１】
マクロブロックを全てイントラコーディングするＩ−ＶＯＰに対しては、ＤＣデータビットはＤＣマーカー（ＤＣＭ）の前にヘッダビットと共に配置され、ＡＣ係数のデータビットはＤＣマーカーの後に配置される。
【０２０２】
Ｐ−ＶＯＰに対しては、ＤＣデータビットは動きマーカー（ＭＭ）の直後に、他の不可欠な又は重要な情報とともに配置され、ＡＣ係数に関するデータビットが続く。
【０２０３】
ＤＣ及びＡＣ情報をこのように分離することで、誤り耐性が高まるが、これは、破損したパケットに関しても、ＤＣＭ／ＭＭマーカーが復号化プロセスで正しくヒットしていれば、ＤＣデータが復号され、信頼できるからである。さらに、Ｐ−ＶＯＰに関して、リバーシブル可変長コード（ＲＶＬＣ）の順方向／逆方向復号化により、少なくとも１つの適切な最初の部分を明らかにできる。
【０２０４】
ＤＣデータを一緒にコーディングするか、又はＡＣ係数と別にするかを制御するために、「ｉｎｔｒａ＿ｄｃ＿ｖｌｃ＿ｔｈｒ」というフラグが、ＱＰ値に従って各マクロブロックをマッピングするＶＯＰ毎に使用される。この値を０に設定することは、ＱＰにかかわらず、全てのマクロブロックがＩＮＴＲＡ
ＤＣテーブルを使用し、ＤＣデータをＡＣ係数から分離することを意味する。これは、ＭＰＥＧ−４の標準構文要素であり、標準デコーダによってサポートされている。
【０２０５】
ａｃ＿ｐｒｅｄ＿ｆｌａｇは、ＩＮＴＲＡマクロブロックの特定のブロックについて、最上行及び第１列のＤＣＴ係数を、隣接するブロックと独立に、又は区別して、コーディングするか否かを示すもう１つのオプションである。誤り耐性を高めるために、ａｃ＿ｐｒｅｄ＿ｆｌａｇを０に設定するのが好ましい。
【０２０６】
一実施の形態では、前方誤り訂正（ＦＥＣ）を使用してソースレベルで誤り訂正をサポートしている。特に、リードソロモン（Reed-Solomon）を含むBose-Chaudhuri-Hocquenghem（ＢＣＨ）コードがサポートされている。当業者によく知られているように、ＢＣＨは、巡回冗長度符号コード（Cyclic Redundancy Code）に基づく誤り検出及び訂正方法である。ｋを情報ビットの数として、正の整数ｍ、ｍ＞３、ｔ＜２m-1について、ブロック長ｎが２m−１に等しく、ｎ−ｋ＜ｍｔのパリティ検査ビットを持つ２進数のＢＣＨコードがある。ＢＣＨコードは、少なくとも２ｔ＋１の最小距離を持つ。それぞれの２進ＢＣＨコード（ｎ、ｋ、ｔ）は、最大ｔビットまでの誤りを訂正でき、したがって、ｔ誤り訂正コードとも呼ばれる。
【０２０７】
ブロックサイズは異なっていてもよい。一実施の形態では、ブロックサイズとして５１１が使用される。ＦＥＣは基本ビデオビットストリーム（elementary video stream）のパケタイザ（packetizer）レベルで実行され、これはソースレベル誤り訂正とみなすことができる。対照的に、チャネルレベル誤り訂正では、多重化後にビットレベルで冗長性が入り込む。
【０２０８】
ＦＥＣは、ある程度のビット割当値と引き換えに、著しい誤り耐性を持つ。図１１は、前方誤り訂正のオーバーヘッドと平均のＢＥＲ訂正能力を対比したグラフの例を示す図である。図に示されているように、ＦＥＣ冗長性と誤り訂正能力との間には密接な関係があり、誤り耐性の強力な指標となっている。少なくとも予想ＢＥＲの２倍に対応するのが好ましい。
【０２０９】
本発明の一実施の形態では、ＦＥＣを全てのパケットデータに適用する代わりに、従来のアプローチに比べてより効率的で、生成される誤り訂正ビットが少ないプロセスを実行するが、それでも、著しい誤り訂正能力を持つ。ＦＥＣプロセスの一実施の形態では、オプションとして、パケットの選択した部分についてのみＦＥＣビットを生成し、特に、デコーダによってフレームシーケンスを再生する目的に関して、より本質的又は重要であると考えられる部分についてＦＥＣビットを生成することができる。さらに、ＦＥＣプロセスは体系的コードを持つ、即ち、ＦＥＣ訂正又はパリティビットは元のコーディングされていないデータビットと分離される。したがって、全てのＦＥＣビットが失われても、パケットの元の選択された部分はまだ潜在的に復号化可能である。さらに、一実施の形態では、ＦＥＣデータは符号化され、後述するようにＭＰＥＧ−４に準拠する方法で送信される。したがって、ＦＥＣデータを処理する機能のないデコーダがＦＥＣパケットを受信した場合でも、そのデコーダは、フレーム動き及びテクスチャデータを処理することができる。
【０２１０】
特に、ＦＥＣは、動きベクトル、ＤＣ係数、及びヘッダ情報などの重要なデータに効率良く適用され、重要でない又はあまり重要でないデータに対してはＦＥＣビットを生成しない。このより重要なデータは、パケット再同期フィールドと動きマーカーとの間に配置することができる。特に、指定されたフレーム又はＶＯＰについては、ＦＥＣコーディングをターゲットとする選択されたビットが、他のフレームパケットのビットと連結され、その連結されたビットに対してＦＥＣコードビットが生成される。
【０２１１】
一実施の形態では、与えられたフレーム又はＶＯＰに対して、フレームデータと同じ１つのパケット又は複数のパケットにＦＥＣビットを含めるのではなく、得られたＦＥＣビットを通常の１つのフレーム又は複数のＶＯＰパケットの後の追加パケットに入れ、ＭＰＥＧ互換性を確保する。
【０２１２】
さらに、データパケットが失われるか、又は動きマーカーを欠損している場合に、デコーダがきちんと復旧できるように、標準パケット毎に、ＦＥＣパケット内にパケット識別子が格納され、このとき、ＦＥＣビットを生成するために、何ビットを、及び／又はどのビットをどこで使用するかを示す対応する値と共に格納される。
【０２１３】
参照又は従来のＭＰＥＧ−４デコーダとの互換性を維持するために、この追加ＦＥＣパケットは、さらにユーザー定義データを識別するのに使用されるユーザーデータ識別子コード「ｕｓｅｒ＿ｄａｔａ＿ｓｔａｒｔ＿ｃｏｄｅ」を含んでおり、したがって、ＦＥＣパケットを処理する機能を持たない従来のデコーダによって無視される。さらに、誤りがない場合、ＦＥＣパケットは、ＦＥＣビットを処理する機能を持つデコーダによって使用されない。しかし、誤りが発生した場合、ＦＥＣ復号化により、重大な誤り状態にあっても、復号化の対象になるデータを復旧できる。
【０２１４】
そこで、上記のように、誤り耐性及び拡張した圧縮を実現することによって、本発明の実施の形態には、低ビットレートでノイズの多い環境であってもビデオ情報を送信できるという利点がある。例えば、本発明の実施の形態を利用すると、セルラーネットワークなどで正常にビデオ送信を実行することができる。
【０２１５】
本発明は、好ましいいくつかの実施の形態に関して説明されたが、当業者にとって明白な他の実施の形態も本発明の範囲内にある。
【図面の簡単な説明】
【０２１６】
【図１Ａ】ビデオ配信システムを実装するためのネットワーク接続されたシステム例を示す図である。
【図１Ｂ】本発明の一実施の形態に係るエンコーダのアーキテクチャ例を示す図である。
【図１Ｃ】本発明の一実施形態に係るエンコーダのアーキテクチャ例を示す図である。
【図２Ａ】本発明の一実施の形態と共に使用することができるリフレッシュマップ及びスキャン順序の例を示す図である。
【図２Ｂ】本発明の一実施の形態と共に使用することができるリフレッシュマップ及びスキャン順序の例を示す図である。
【図３】シーン変化を見つけるために使用されるビデオシーケンスの分析例を示す図である。
【図４Ａ】本発明の一実施の形態に係る適応型フレームスキップの例を示す図である。
【図４Ｂ】本発明の一実施の形態に係る適応型フレームスキップの例を示す図である。
【図５】二次動き補正の使用例を示す図である。
【図６】パケット化されたビットストリームの例を示す図である。
【図７】本発明の一実施の形態に係る連続Ｉフレームの使用例を示す図である。
【図８Ａ】適応型イントラリフレッシュのプロセス例を示す図である。
【図８Ｂ】適応型イントラリフレッシュのプロセス例を示す図である。
【図８Ｃ】適応型イントラリフレッシュのプロセス例を示す図である。
【図８Ｄ】適応型イントラリフレッシュのプロセス例を示す図である。
【図８Ｅ】適応型イントラリフレッシュのプロセス例を示す図である。
【図８Ｆ】適応型イントラリフレッシュのプロセス例を示す図である。
【図８Ｇ】適応型イントラリフレッシュのプロセス例を示す図である。
【図８Ｈ】適応型イントラリフレッシュのプロセス例を示す図である。
【図９】本発明の一実施の形態に係るレート制御プロセス例を示す図である。
【図１０】シーンレベル再帰的ビット割り当てプロセス例を示す図である。
【図１１】前方誤り訂正のオーバーヘッドと平均ＢＥＲ訂正能力を対比したグラフの一例を示す図である。
【図１Ａ】
2008259230.tif 000030
【図１Ｂ】
2008259230.tif 000031
【図１Ｃ】
2008259230.tif 000032
【図２Ａ】
2008259230.tif 000033
【図２Ｂ】
2008259230.tif 000034
【図３】
2008259230.tif 000035
【図４Ａ】
2008259230.tif 000036
【図４Ｂ】
2008259230.tif 000037
【図５】
2008259230.tif 000038
【図６】
2008259230.tif 000039
【図７】
2008259230.tif 000040
【図８Ａ】
2008259230.tif 000041
【図８Ｂ】
2008259230.tif 000042
【図８Ｃ】
2008259230.tif 000043
【図８Ｄ】
2008259230.tif 000044
【図８Ｅ】
2008259230.tif 000045
【図８Ｆ】
2008259230.tif 000046
【図８Ｇ】
2008259230.tif 000047
【図８Ｈ】
2008259230.tif 000048
【図９】
2008259230.tif 000049
【図１０】
2008259230.tif 000050
【図１１】
2008259230.tif 000051
【手続補正書】
【提出日】平成20年6月10日(2008.6.10)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のフレームを含むデジタルビデオシーケンス内のシーン変化を検出する方法であって、
第２のフレームに対する第１のフレーム及び第３のフレームに対する前記第２のフレームに関して、第１の二乗平均平方根（ＲＭＳ）値を計算するステップと、
前記第２のフレームに対する前記第１のフレームに関して、第１の差の絶対値の平均（ＭＡＤ）値を計算するステップと、
前記第１のＲＭＳ値が第１の基準を満たしているか否かを判別するステップと、
前記第１のＭＡＤ値が第２の基準を満たしているか否かを判別するステップと、
前記第１のＲＭＳ値が前記第１の基準を満たし、前記第１のＭＡＤ値が前記第２の基準を満たしていると判断することに、少なくとも部分的に応じて、前記第２のフレームをシーン変化フレームとして指定するステップとを含む方法。
【請求項２】
前記第１のＲＭＳ値が色重み付けされている請求項１に記載の方法。
【請求項３】
前記第２のフレームについてＩフレーム指定をファイルに格納し、第３のフレームについてＰフレーム指定を前記ファイルに格納するステップをさらに含む請求項１に記載の方法。
【請求項４】
前記第１のＲＭＳ値が、少なくとも部分的に、前記第１及び前記第２のフレームのピクセルの輝度値及びクロミナンス（chrominance）値に基づく請求項１に記載の方法。
【請求項５】
前記第１のＲＭＳ値が式
【数１】
2008259230.tif 000052
で定義され、Ｆiが前記第１のフレームであり、Ｆkが前記第２のフレームであり、Ｆ（ｘ，ｙ）がフレームＦ内の（ｘ，ｙ）番目のピクセルを表し、ｗがフレーム幅であり、ｈがフレーム高さであり、Ｙ（ｘ，ｙ）がピクセル輝度値に対応し、Ｕ（ｘ，ｙ）及びＶ（ｘ，ｙ）が色度成分に対応し、α、β、及びγがそれぞれ、明度、色度−青、及び色度−赤
の成分に対する重み係数である方法。
【請求項６】
α＝β＝γ＝１である請求項５に記載の方法。
【請求項７】
輝度値を使用し、色度成分を除外して前記第１のＭＡＤ値が計算される請求項１に記載の方法。
【請求項８】
前記第１の基準が第１のしきい値であり、前記第２の基準が第２のしきい値である請求項１に記載の方法。
【請求項９】
デジタルビデオシーケンス内のシーン変化を検出する方法であって、
第２のフレームに対する第１のフレーム及び第３のフレームに対する前記第２のフレームに関して、二階時間微分ＲＭＳ値を計算するステップと、
前記二階時間微分ＲＭＳ値に少なくとも部分的に基づき、前記第２のフレームがシーン変化フレームであると判断するステップとを含む方法。
【請求項１０】
前記第２のフレームがシーン変化フレームであるとの前記判断が、さらに、前記第１及び前記第２のフレームについて少なくとも明度情報を使用して計算された差の絶対値の平均値に基づく請求項９に記載の方法。
【請求項１１】
前記二階時間微分ＲＭＳ値が第１のしきい値以上である請求項９に記載の方法。
【請求項１２】
前記二階時間微分ＲＭＳ値が負であり、且つ第１の値よりも大きい絶対値を持つ場合に、前記第２のフレームがシーン変化フレームとして指定される請求項９に記載の方法。
【請求項１３】
第１のＲＭＳ値を計算するステップをさらに含み、前記第１のＲＭＳ値が色重み付けされ、前記第２の時間微分ＲＭＳ値が時間成分にのみ基づく請求項９に記載の方法。
【請求項１４】
前記二階時間微分ＲＭＳ値が（ＲＭＳ（Ｆi-1，Ｆi）−２ＲＭＳ（Ｆi，Ｆi+1）＋ＲＭＳ（Ｆi+1，Ｆi+2））に等しく、Ｆi-1が前記第１のフレームであり、Ｆiが前記第２のフレームであり、Ｆi+1が第３のフレームであり、Ｆi+2が第４のフレームである請求項９に記載の方法。
【請求項１５】
ビデオシーケンス内のシーン変化を識別する装置であって、
プロセッサ読み取り可能なメモリに格納される、ビデオシーケンスの第２の部分に対する前記ビデオシーケンスの第１の部分に関して、第１の二乗平均平方根（ＲＭＳ）を計算するように構成されている第１の命令と、
プロセッサ読み取り可能なメモリ内に格納される、二階時間微分ＲＭＳ値を計算するように構成されている第２の命令と、
前記二階時間微分ＲＭＳ値に少なくとも部分的に基づいて、前記ビデオシーケンスの第２の部分をイントラコーディングするように構成されている第３の命令とを有する装置。
【請求項１６】
前記第３の命令が、第１の部分及び前記第２の部分の少なくとも明度情報を使用して計算された差の絶対値の平均値に基づき、前記ビデオシーケンスの前記第２の部分をイントラコーディングするように、さらに構成されている請求項９に記載の装置。
【請求項１７】
前記第３の命令が、第１の基準を満たす前記ＲＭＳ値及び第２の基準を満たす前記二階時間微分ＲＭＳ値の両方に、少なくとも部分的に応じて、前記ビデオシーケンスの前記第２の部分をイントラコーディングするように、さらに構成されている請求項９に記載の装置。
【請求項１８】
前記第３の命令が、前記第２の部分をＩフレームとしてコーディングすることを指示するフラグを、プロセッサ読み取り可能なメモリ内に格納するように、さらに構成されている請求項９に記載の装置。
【請求項１９】
前記第１の部分が第１のフレームであり、前記第２の部分が第２のフレームである請求項９に記載の装置。
【請求項２０】
前記二階時間微分ＲＭＳ値が負であり、且つその絶対値が第１の値よりも大きい場合に、前記第３の命令が、前記第１の部分をシーン変化を含むものとして識別する請求項９に記載の方法。
【請求項２１】
前記第１のＲＭＳ値が色重み付けされている請求項９に記載の方法。
【請求項２２】
ビデオシーケンスのどの部分がイントラコーディングされるべきかを決定する方法であって、
ビデオシーケンスの第１の部分に対する第１の二乗平均平方根（ＲＭＳ）値を計算するステップと、
前記ビデオシーケンスの前記第１の部分に関する第１の差の絶対値の平均（ＭＡＤ）を計算するステップと、
前記第１のＲＭＳ値が第１の基準を満たしているか否かを判別するステップと、
前記第１のＭＡＤ値が第２の基準を満たしているか否かを判別するステップと、
前記第１のＭＡＤ値が第３の基準を満たしているか否かを判別するステップと、
前記第１、前記第２、及び前記第３の基準のうちの少なくとも２つが満たされていることに、少なくとも部分的に応じて、イントラコーディング処理を実行させるステップとを含む方法。
【請求項２３】
前記第３の基準が、前記ＭＡＤ値が極大値であることである請求項２２に記載の方法。
【請求項２４】
前記ビデオシーケンスの前記第１の部分が第１のフレームを含む請求項２２に記載の方法。
【請求項２５】
シーン変化検出装置であって、
第１のフレーム情報入力及びＲＭＳ出力を備え、前記第１のフレーム情報入力で受信したフレーム情報に基づき、少なくとも２つのフレームの間の差の二乗平均平方根（root mean squared differences）情報に対応する値を前記ＲＭＳ出力から出力するように構成されているＲＭＳ回路と、
第２のフレーム情報入力及びＭＡＤ出力を備え、前記第２のフレーム情報入力で受信したフレーム情報に基づき、少なくとも２つのフレームの間の差の絶対値の平均（mean absolute differences）情報に対応する値を前記ＭＡＤ出力から出力するように構成されているＭＡＤ回路と、
前記ＲＭＳ出力及び前記ＭＡＤ出力に結合され、差の二乗平均平方根情報に対応する値及び差の絶対値の平均情報に対応する値に少なくとも部分的に基づいて、シーン変化フレームを検出し、シーン変化の指定を行うように構成されているエバリュエータ回路とを備えるシーン変化検出装置。
【請求項２６】
第３の情報入力及び二階微分ＲＭＳ出力を備える二階微分ＲＭＳ回路をさらに備え、
前記二階微分ＲＭＳ回路が、前記第３のフレーム情報入力で受信したフレーム情報に基づいて、前記二階微分ＲＭＳ出力で差の二乗平均平方根の二階微分（second derivative root mean squared differences）情報に対応する値を出力するように構成され、
前記二階微分ＲＭＳ出力が前記エバリュエータ回路に結合されている請求項２５に記載の装置。
【請求項２７】
ビデオシーケンスとともに使用するビット割り当て方法であって、
少なくとも第１のクリップに対するクリップビット割当値を受信するステップと、
前記第１のクリップに対するシーン量を決定するステップと、
前記第１のクリップの第１のシーン内の予測フレームの量を決定するステップと、
前記第１のクリップに対する前記シーンの量、前記第１のクリップビット割当値、前記第１のシーン内のイントラコーディングフレームの量、及び前記第１のシーン内の予測フレームの量に少なくとも部分的に基づいて、前記第１のシーンのビット割当値を計算するステップとを含むビット割り当て方法。
【請求項２８】
前記第１のクリップ内の各シーンが、イントラコーディングフレームから始まる請求項２７に記載のビット割り当て方法。
【請求項２９】
前記クリップビット割当値に予測フレームの数と第１の定数との和を乗算し、前記クリップ内のイントラコーディングフレーム及び予測フレームの量と第２の定数を乗算したクリップシーンの数との和で除算することに、少なくとも部分的に基づいて、前記ビット割当値を計算する請求項２７に記載のビット割り当て方法。
【請求項３０】
前記第１のシーンがＧＯＶである請求項２７に記載のビット割り当て方法。
【請求項３１】
前記予測フレームがＰ−ＶＯＰである請求項２７に記載のビット割り当て方法。
【請求項３２】
前記第１のシーンの前記ビット割当値及び現在のビット使用度に基づいて、前記第１のシーン内の第１の予測フレームについて量子化パラメータを調整するステップをさらに含む請求項２７に記載のビット割り当て方法。
【請求項３３】
前記量子化パラメータの前記調整が第１の範囲に制限される請求項３２に記載のビット割り当て方法。
【請求項３４】
現在のビット使用度が前記第１のシーンの前記ビット割当値に関係する値よりも大きいという判断に、少なくとも部分的に応じて、前記第１のシーン内の第１の予測フレームの量子化パラメータを上方向に調整するステップを、さらに含む請求項２７に記載のビット割り当て方法。
【請求項３５】
ビデオクリップシーンとともに使用するビット割り当て方法であって、
第１のシーンに関するビット割当値を計算するステップと、
前記第１のシーン内の少なくとも第１のフレームを含む対応するフレームに関するビット割当値を計算するステップと、
前記第１のフレーム内のマクロブロックに対応するビット割当値を計算するステップとを含むビット割り当て方法。
【請求項３６】
前記第１のシーンがＧＯＰである請求項３５に記載のビット割り当て方法。
【請求項３７】
前記第１のシーンに関する前記ビット割当値が、前記第１のシーンの複雑度判別に少なくとも部分的に基づく請求項３５に記載のビット割り当て方法。
【請求項３８】
前記第１のフレームに関する前記ビット割当値が、量子化パラメータ不変基準に少なくとも部分的に基づく請求項３５に記載のビット割り当て方法。
【請求項３９】
前記第１のフレームに関する前記ビット割当値が、前記第１のフレーム内にあるテクスチャビットの数及び前記第１のフレームに対する動きベクトルビットの数に少なくとも部分的に基づく請求項３５に記載のビット割り当て方法。
【請求項４０】
前記第１のフレームに関する前記ビット割当値がさらに、第２のフレームに対する前記第１のフレームに対応する差の絶対値の平均値に基づく請求項３９に記載のビット割り当て方法。
【請求項４１】
前記第１のフレームに関する前記ビット割当値が、前記第１のシーンの前記ビット割当値、前記第１のシーン内のすでにコーディングされているフレームに使用されているビット量、前記第１のシーンの複雑度、及び前記第１のシーン内のすでにコーディングされているフレームの複雑度に、少なくとも部分的に基づく請求項３５に記載のビット割り当て方法。
【請求項４２】
１つの量子化パラメータ値を使用して前記第１のフレーム内の全てのマクロブロックを量子化する請求項３５に記載のビット割り当て方法。
【請求項４３】
量子化パラメータが、現在のビット使用度及び割当値が設定されたビット使用度に、少なくとも部分的に基づき前記第１のフレームマクロブロックに関して変えられる請求項３５に記載のビット割り当て方法。
【請求項４４】
ビットを割り当てる装置であって、
第１のシーン内に含まれるイントラコーディングフレームの数、前記第１のシーンに対する複雑度の判別、及び前記第１のシーン内に含まれるインターコーディングフレームの数に、少なくとも部分的に基づいて、前記第１のシーンに対する第１のビット割当値を割り当てるように構成されている第１の命令と、
現在のビット使用度及び目標ビット使用度に少なくとも部分的に基づいて、前記第１のシーン内のフレームにビット割当値を割り当てるように構成されている第２の命令とを有する装置。
【請求項４５】
前記現在のビット使用度及び前記目標ビット使用度に少なくとも部分的に基づいて、前記フレーム内のマクロブロックの量子化を変える請求項４４に記載の装置。
【請求項４６】
前記第１のシーン内の前記第１のフレームをイントラコーディングする請求項４４に記載の装置。
【請求項４７】
前記第１の命令が、前記インターコーディングフレームに割り当てる重みよりも大きい重みを前記インターコーディングフレームに割り当てる請求項４４に記載の装置。
【請求項４８】
ビット割当値を計算する装置であって、
少なくとも第１のビデオシーケンスに対するビット割当値を受信するように構成されている第１の命令と、
前記第１のビデオシーケンスに対するシーン量を決定するように構成されている第２の命令と、
前記第１のビデオシーケンスの第１のシーン内の予測フレーム数を決定するように構成されている第３の命令と、
前記第１のクリップの前記シーン量、前記第１のクリップビット割当値、前記第１のシーン内のイントラコーディングフレーム量、及び前記第１のシーン内の予測フレーム量に、少なくとも部分的に基づいて、前記第１のシーンに対するビット割当値を決定するように構成されている第４の命令とを有する装置。
【請求項４９】
前記第１のシーンがＧＯＶである請求項４８に記載の装置。
【請求項５０】
前記第１のシーンに対する前記ビット割当値が、バッファ状態に少なくとも部分的に基づく請求項４８に記載の装置。
【請求項５１】
前記第１のフレーム内にあるテクスチャビット数及び前記第１のフレームに対する動きベクトルビット数に少なくとも部分的に基づいて、第１のフレームに対するビット割当値を決定するように構成されている第５の命令を、さらに有する請求項４８に記載の装置。
【請求項５２】
前記第１のシーン内の第１のフレームのマクロブロックについて量子化パラメータを決定するように構成されている第５の命令を、さらに有する請求項４８に記載の装置。