(57)【要約】【課題】  既存の構成の１つ以上の欠点をほぼ克服すること又は少なくとも改善すること。【解決手段】    画像のシーケンスのうちの現在の画像を圧縮する方法が開示される。現在の画像は所定の変換によって変換され（５０２）、複数のブロックに分割される変換係数の集合を提供する。符号化終了条件は少なくとも１つのブロックに関して判定され（７１４）、ブロックは一連のコーディングパスで符号化される（５０５）。現在のコーディングパスにおいて性能尺度は予測され、性能尺度が符号化終了条件を満たす場合、符号化は終了される。異なる色成分は異なる重み付けを施されても良い。【選択図】  図５
2005143105.tif 000002
【特許請求の範囲】
【請求項１】
画像のシーケンスのうちの現在の画像を圧縮する方法であって、
（ａ）  現在の画像を所定の変換によって変換して、変換係数の集合を提供する過程と、
（ｂ）  変換係数の集合を複数のブロックに分割する過程と、
（ｃ）  少なくとも１つのブロックに関して符号化終了条件を判定する過程と、
（ｄ）  少なくとも１つのブロックを一連のコーディングパスで符号化する過程と、
（ｅ）  現在のコーディングパスにおいて性能尺度を予測する過程と、
（ｆ）  予測された性能尺度が符号化終了条件を満たす場合、少なくとも１つのブロックの符号化を終了する過程と
を備えることを特徴とする方法。
【請求項２】
前記予測する過程は一連の後続するコーディングパスに関する性能尺度を予測し、前記終了する過程は前記後続するコーディングパスの前に前記少なくとも１つのブロックの符号化を終了することを特徴とする請求項１に記載の方法。
【請求項３】
前記予測する過程は、
（ｅ）（ｉ）既に符号化されている一連のコーディングパスの性能尺度の集合にモデルを適合する過程と、
（ｅ）（ｉｉ）前記モデルから前記後続するコーディングパスの前記性能尺度を推定する過程と
を備えることを特徴とする請求項２に記載の方法。
【請求項４】
前記性能尺度は速度−ひずみ傾きであり、前記予測された速度−ひずみ傾きが速度−ひずみカットオフ閾値未満である場合、前記符号化終了基準は成立することを特徴とする請求項１乃至３の何れか１項に記載の方法。
【請求項５】
１つ以上のブロックを前記シーケンス中の先行する画像の対応するブロックと比較する過程と、
前記比較する過程が所定の基準に従って前記１つ以上のブロックと前記対応する先行するブロックとの相違が小さいことを示す場合、前記１つ以上のブロックを静的ブロックとして分類する過程と
を更に含むことを特徴とする請求項１乃至４の何れか１項に記載の方法。
【請求項６】
符号化された前記ブロックが静的ブロックである場合、前記予測する過程は、前記符号化する過程が前記シーケンスの前記先行する画像中の対応するブロックの前記切捨てポイントの所定数のビットプレーン内にあるビットプレーンに到達する時に実行されるのみであることを特徴とする請求項５に記載の方法。
【請求項７】
静的ブロックに関して、前記符号化が前記シーケンスの先行する符号化画像の対応するブロックの切捨てビットプレーンと同一の前記ビットプレーンに到達する場合、符号化は終了することを特徴とする請求項５に記載の方法。
【請求項８】
所定数のビットプレーンが先行する画像の対応するブロックで符号化され且つ前記符号化する過程が前記所定数のビットプレーンをまだ符号化しない場合、前記少なくとも１つのブロックの符号化は前記終了する過程では終了しないことを特徴とする請求項１乃至７の何れか１項に記載の方法。
【請求項９】
一連のコーディングパス中に０でないクリーンアップパスが存在しない場合、前記少なくとも１つのブロックの符号化は前記終了する過程では終了しないことを特徴とする請求項１乃至８の何れか１項に記載の方法。
【請求項１０】
前記予測する過程は前記現在のコーディングパスに関する性能尺度を予測することを特徴とする請求項１に記載の方法。
【請求項１１】
前記比較する過程は１つ以上の前記ブロックに関するモーション検出パラメータを計算することを含むことを特徴とする請求項５に記載の方法。
【請求項１２】
前記モーション検出パラメータは、ブロックの２乗の和及びそれに対応する先行するブロックの２乗の和の積の平方根で除算された前記ブロックとそれに対応する先行するブロックとの内積から成ることを特徴とする請求項１１に記載の方法。
【請求項１３】
前記ブロックの前記モーション検出パラメータが閾値未満である場合、前記所定の基準はブロックに関して適合することを特徴とする請求項１１又は１２に記載の方法。
【請求項１４】
前記現在の画像が複数の色空間成分を参照して定義され、前記変換する課程、分割する課程、判定する課程、符号化する課程、予測する課程及び終了する課程が実行されて成分の第１の集合を符号化する方法であって、
前記符号化された成分の第１の集合と前記先行する画像の対応する符号化された成分とに基づく前記シーケンス中の先行する画像に関する前記現在の画像の圧縮度を推定する過程と、
前記推定された圧縮度に基づく前記符号化終了条件を重み付けする過程と、
前記重み付けされた符号化終了条件が到達するまで、前記現在の画像の成分の第２の集合を符号化する過程と
を更に含むことを特徴とする請求項１に記載の方法。
【請求項１５】
画像のシーケンスのうちの現在の画像を圧縮する方法であって、
（ａ）  現在の画像を所定の変換によって変換して、変換係数の集合を提供する過程と、
（ｂ）  変換係数の集合を複数のブロックに分割する過程と、
（ｃ）  少なくとも１つのブロックに関して符号化終了条件を判定する過程と、
（ｄ）  少なくとも１つのブロックを一連のコーディングパスで符号化する過程と、
（ｅ）  現在のコーディングパスにおいて、そのシリーズの中の次のコーディングパスに関して性能尺度を予測する過程と、
（ｆ）  予測された性能尺度が符号化終了条件を満たす場合、次のコーディングパスの前に少なくとも１つのブロックの符号化を終了する過程と
を備えることを特徴とする方法。
【請求項１６】
画像のシーケンスのうちの現在の画像を圧縮する方法であって、
（ａ）  現在の画像を所定の変換によって変換して、変換係数の集合を提供する過程と、
（ｂ）  変換係数の集合を複数のブロックに分割する過程と、
（ｃ）  ブロックをシーケンス中の先行する画像の対応するブロックと比較する過程と、
（ｄ）  比較する過程が少なくとも１つのブロックと対応する先行するブロックとの差は所定の基準に従って小さいことを示した場合、少なくとも１つのブロックを静的ブロックとして指定する過程と、
（ｅ）  現在の係数が静的ブロックに含まれる場合、現在の係数が対応する先行するブロックの切捨てビットプレーンと同じである切捨てビットプレーンに符号化されるように、変換係数を符号化して、圧縮ビットストリームを提供する過程と
を備えることを特徴とする方法。
【請求項１７】
画像のシーケンスのうちの、複数の色空間成分に関して定義される現在の画像を圧縮する方法であって、
現在の画像に関して符号化終了条件を判定する過程と、
符号化終了条件に達するまで、現在の画像の第１の組の成分を符号化する過程と、
符号化された第１の組の成分及びシーケンス中の先行する画像の対応する符号化成分に基づいて、先行する画像に対する現在の画像の圧縮度を推定する過程と、
推定された圧縮度に基づいて符号化終了条件に重み付けする過程と、
重み付き符号化終了条件に達するまで、現在の画像の第２の組の成分を符号化する過程と
を備えることを特徴とする方法。
【請求項１８】
前記推定する過程は、
前記符号化された成分の第１の組の実現ビットレートを測定することと、
前記先行する画像の対応する成分の実現ビットレートを検索することと、
前記実現ビットレートと前記検索された実現ビットレートとを比較することと、
前記比較に基づいて圧縮度を計算することとを含むことを特徴とする請求項１７に記載の方法。
【請求項１９】
前記現在の画像が前記先行する画像よりも圧縮度が高いと判定される場合、前記符号化終了条件の前記重み付けは前記第２の組の前記符号化の終了を遅延させることを特徴とする請求項１７又は１８に記載の方法。
【請求項２０】
前記現在の画像が前記先行する画像よりも圧縮度が低いと判定される場合、前記符号化終了条件の前記重み付けは前記第２の組の前記符号化の終了を促進させることを特徴とする請求項１７又は１８に記載の方法。
【請求項２１】
前記判定する課程は、前記現在の画像に関する速度−ひずみカットオフ閾値を判定することを含むことを特徴とする請求項１７乃至２０の何れか１項に記載の方法。
【請求項２２】
前記現在の画像の前記速度−ひずみカットオフ閾値は、前記シーケンス中の先行する画像の実現速度と前記先行する画像に関する前記速度−ひずみカットオフ閾値との関数であることを特徴とする請求項２１に記載の方法。
【請求項２３】
前記符号化する過程は、
所定の変換の前記現在の画像の現在の成分を変換して、変換係数の集合を提供することと、
前記変換係数の集合をブロックに分割することと、
前記符号化終了条件が適合されるまで各ブロックを符号化することと
を含むことを特徴とする請求項１７に記載の方法。
【請求項２４】
現在のコーディングパスの速度−ひずみ傾きが前記現在の成分の速度−ひずみカットオフ閾値よりも低い場合、前記符号化終了条件は適合されることを特徴とする請求項２３に記載の方法。
【請求項２５】
前記成分の第２の組が具備する輝度成分の前記符号化係数をトリミングする過程を更に含むことを特徴とする請求項１７に記載の方法。
【請求項２６】
前記トリミングすることは、前記現在の成分の前記重み付けされた速度−ひずみカットオフ閾値よりも低い速度−ひずみ傾きを有するコーディングパスに関する符号化データを廃棄することを含むことを特徴とする請求項２５に記載の方法。
【請求項２７】
画像のシーケンスのうちの現在の画像を圧縮する装置であって、
（ａ）  現在の画像を所定の変換によって変換して、変換係数の集合を提供する手段と、
（ｂ）  変換係数の集合を複数のブロックに分割する手段と、
（ｃ）  少なくとも１つのブロックに関して符号化終了条件を判定する手段と、
（ｄ）  少なくとも１つのブロックを一連のコーディングパスで符号化する手段と、
（ｅ）  現在のコーディングパスにおいて性能尺度を予測する手段と、
（ｆ）  予測された性能尺度が符号化終了条件を満たす場合、少なくとも１つのブロックの符号化を終了する手段と
を備えることを特徴とする装置。
【請求項２８】
画像のシーケンスのうちの現在の画像を圧縮する装置であって、
（ａ）  現在の画像を所定の変換によって変換して、変換係数の集合を提供する手段と、
（ｂ）  変換係数の集合を複数のブロックに分割する手段と、
（ｃ）  少なくとも１つのブロックに関して符号化終了条件を判定する手段と、
（ｄ）  少なくとも１つのブロックを一連のコーディングパスで符号化する手段と、
（ｅ）  現在のコーディングパスにおいて、そのシリーズの中の次のコーディングパスに関して性能尺度を予測する手段と、
（ｆ）  予測された性能尺度が符号化終了条件を満たす場合、次のコーディングパスの前に少なくとも１つのブロックの符号化を終了する手段と
を備えることを特徴とする装置。
【請求項２９】
画像のシーケンスのうちの現在の画像を圧縮する装置であって、
（ａ）  現在の画像を所定の変換によって変換して、変換係数の集合を提供する手段と、
（ｂ）  変換係数の集合を複数のブロックに分割する手段と、
（ｃ）  ブロックをシーケンス中の先行する画像の対応するブロックと比較する手段と、
（ｄ）  比較する手段が少なくとも１つのブロックと対応する先行するブロックとの差は所定の基準に従って小さいことを示した場合、少なくとも１つのブロックを静的ブロックとして指定する手段と、
（ｅ）  現在の係数が静的ブロックに含まれる場合、現在の係数が対応する先行するブロックの切捨てビットプレーンと同じである切捨てビットプレーンに符号化されるように、変換係数を符号化して、圧縮ビットストリームを提供する手段と
を備えることを特徴とする装置。
【請求項３０】
画像のシーケンスのうちの、複数の色空間成分に関して定義される現在の画像を圧縮する装置であって、
現在の画像に関して符号化終了条件を判定する手段と、
符号化終了条件に達するまで、現在の画像の第１の組の成分を符号化する手段と、
符号化された第１の組の成分及びシーケンス中の先行する画像の対応する符号化成分に基づいて、先行する画像に対する現在の画像の圧縮度を推定する手段と、
推定された圧縮度に基づいて符号化終了条件に重み付けする手段と、
重み付き符号化終了条件に達するまで、現在の画像の第２の組の成分を符号化する手段と
を備えることを特徴とする装置。
【請求項３１】
画像のシーケンスのうちの現在の画像を圧縮するシステムであって、
シーケンス中の先行する画像の圧縮を記述する情報を格納する記憶装置と、
前記記憶装置に接続され、
現在の画像を所定の変換によって変換して、変換係数の集合を提供し、
変換係数の集合を複数のブロックに分割し、
少なくとも１つのブロックに関して、シーケンス中の１つ以上の先行する画像に関する格納情報に従属する符号化終了条件を判定し、
少なくとも１つのブロックを一連のコーディングパスで符号化し、
現在のコーディングパスにおいて性能尺度を予測し、
予測された性能尺度が符号化終了条件を満たす場合、少なくとも１つのブロックの符号化を終了し、
現在の画像の圧縮を記述する情報を前記記憶装置に格納するプロセッサと
を備えることを特徴とするシステム。
【請求項３２】
画像のシーケンスのうちの現在の画像を圧縮するシステムであって、
シーケンス中の先行する画像の圧縮を記述する情報を格納する記憶装置と、
前記記憶装置に接続され、
現在の画像を所定の変換によって変換して、変換係数の集合を提供し、
変換係数の集合を複数のブロックに分割し、
少なくとも１つのブロックに関して、シーケンス中の１つ以上の画像に関する格納情報に従属する符号化終了条件を判定し、
少なくとも１つのブロックを一連のコーディングパスで符号化し、
現在のコーディングパスにおいて、一連のコーディングパスの中の次のコーディングパスに関する性能尺度を予測し、
予測された性能尺度が符号化終了条件を満たす場合、次のコーディングパスの前に少なくとも１つのブロックの符号化を終了し、
現在の画像の圧縮を記述する情報を前記記憶装置に格納するプロセッサと
を備えることを特徴とするシステム。
【請求項３３】
画像のシーケンスのうちの現在の画像を圧縮するシステムであって、
現在の画像及びシーケンス中の先行する画像の、現在の画像及び先行する画像に所定の変換を適用することにより獲得される変換係数を格納し、格納された変換係数が複数のブロックに分割されるような記憶装置と、
処理装置とを具備し、前記処理装置は、
（ａ）  現在の画像の各ブロックを先行する画像の対応するブロックと比較し、先行する画像の対応するブロックとほぼ同じである現在の画像のブロックを静的であると指定し、
（ｂ）  変換係数のうちの現在の係数が静的ブロックに含まれる場合、処理装置はその係数を先行する画像の対応するブロックの切捨てビットプレーンと同じである切捨てビットプレーンに符号化するように、現在の画像の変換係数を符号化して、圧縮ビットストリームを提供することを特徴とするシステム。
【請求項３４】
画像のシーケンスのうちの現在の画像を圧縮するシステムであって、
シーケンス中の先行する画像の圧縮バージョンを格納する記憶装置と、
処理装置とを具備し、前記処理装置は、
（ａ）  現在の画像に関する符号化終了条件を判定し、
（ｂ）  符号化終了条件に達するまで、現在の画像の第１の組の成分を符号化し、
（ｃ）  符号化された第１の組の成分及び記憶装置から受信された対応する符号化成分に基づいて、先行する画像に対する現在の画像の圧縮度を推定し、
（ｄ）  推定された圧縮度に基づいて符号化終了条件に重み付けし、
（ｅ）  重み付き符号化終了条件に達するまで、現在の画像の第２の組の成分を符号化することを特徴とするシステム。
【請求項３５】
画像のシーケンスのうちの現在の画像を圧縮する方法であって、
（ａ）現在の画像を所定の変換によって変換して、変換係数の集合を提供する過程と、
（ｂ）  変換係数の集合を複数のブロックに分割する過程と、
（ｃ）  少なくとも１つのブロックに関して符号化終了条件を判定する過程と、
（ｄ）  少なくとも１つのブロックを一連のコーディングパスで符号化する過程と、
（ｅ）  現在のコーディングパスにおいて性能尺度を予測する過程と、
（ｆ）  予測された性能尺度が符号化終了条件を満たす場合、少なくとも１つのブロックの符号化を終了する過程と
から成る方法を実行するためにプログラムコードが実行されるデータ処理装置の動作を制御するために、機械読み取り可能な記録媒体に記録された機械読み取り可能なプログラムコードを具備することを特徴とするコンピュータプログラム製品。
【請求項３６】
画像のシーケンスのうちの現在の画像を圧縮する方法であって、
（ａ）現在の画像を所定の変換によって変換して、変換係数の集合を提供する過程と、
（ｂ）  変換係数の集合を複数のブロックに分割する過程と、
（ｃ）  少なくとも１つのブロックに関して符号化終了条件を判定する過程と、
（ｄ）  少なくとも１つのブロックを一連のコーディングパスで符号化する過程と、
（ｅ）  現在のコーディングパスにおいて、そのシリーズにおける次のコーディングパスに関する性能尺度を予測する過程と、
（ｆ）  予測された性能尺度が符号化終了条件を満たす場合、次のコーディングパスの前に少なくとも１つのブロックの符号化を終了する過程と
から成る方法を実行するためにプログラムコードが実行されるデータ処理装置の動作を制御するために、機械読み取り可能な記録媒体に記録された機械読み取り可能なプログラムコードを具備することを特徴とするコンピュータプログラム製品。
【請求項３７】
画像のシーケンスのうちの現在の画像を圧縮する方法であって、
（ａ）  現在の画像を所定の変換によって変換して、変換係数の集合を提供する過程と、
（ｂ）  変換係数の集合を複数のブロックに分割する過程と、
（ｃ）  ブロックをシーケンス中の先行する画像の対応するブロックと比較する過程と、
（ｄ）  比較する過程が少なくとも１つのブロックと先行する画像の対応するブロックとの差は所定の基準に従って小さいことを示す場合、少なくとも１つのブロックを静的ブロックとして指定する過程と、
（ｅ）  現在の係数が静的ブロックに含まれる場合、現在の係数が先行する画像の対応するブロックの切り捨てビットプレーンと同じである切捨てビットプレーンに符号化されるように、変換係数を符号化して、圧縮ビットストリームを提供する過程と
から成る方法を実行するためにプログラムコードが実行されるデータ処理装置の動作を制御するために、機械読み取り可能な記録媒体に記録された機械読み取り可能なプログラムコードを具備することを特徴とするコンピュータプログラム製品。
【請求項３８】
画像のシーケンスのうちの、複数の色空間成分に関して定義される現在の画像を圧縮する方法であって、
現在の画像に関して符号化終了条件を判定する過程と、
符号化終了条件に達するまで、現在の画像の第１の組の成分を符号化する過程と、
符号化された第１の組の成分及びシーケンス中の先行する画像の対応する符号化成分に基づいて、先行する画像に対する現在の画像の圧縮度を推定する過程と、
推定された圧縮度に基づいて符号化終了条件に重み付けする過程と、
重み付き符号化終了条件に達するまで、現在の画像の第２の組の成分を符号化する過程と
から成る方法を実行するためにプログラムコードが実行されるデータ処理装置の動作を制御するために、機械読み取り可能な記録媒体に記録された機械読み取り可能なプログラムコードを具備することを特徴とするコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデジタルビデオ圧縮の分野に関する。特に、本発明は、ビデオフレームのシーケンスを符号化する方法及びビデオ符号化アプリケーションにおける速度制御に関する。本発明は、更に、ビデオフレームのシーケンスを符号化するための装置及びコンピュータプログラムに関する。
【背景技術】
【０００２】
デジタル画像及びデジタルビデオは、汎用コンピュータ、デジタルスチルカメラ及びデジタルビデオカメラを含めた数多くの装置に格納され、使用される。格納、メモリ及び帯域幅のコストを低減するために、デジタル画像及びデジタルビデオは、通常、圧縮形態で装置に格納される。広く使用されている画像圧縮の規格は「Joint Photographic Experts Group」、すなわち、ＪＰＥＧ規格である。画像圧縮に関する発展段階の新たな規格はＪＰＥＧ２０００規格である。ＪＰＥＧ及びＪＰＥＧ２０００は共に名目上は静止画像圧縮規格である。ＪＰＥＧは主に静止画像を圧縮するために使用されるが、大まかに「モーションＪＰＥＧ」として知られる様々なビデオ符号化フォーマットがある。モーションＪＰＥＧはＪＰＥＧを使用してビデオの各フレームを静止画像として符号化し、ビデオの全ての符号化フレームをモーションＪＰＥＧ符号化ストリームにラッピングするための圧縮ビデオストリームフォーマットを提供する。しかし、モーションＪＰＥＧは正式に規格化されたわけではない。現在、ＪＰＥＧ２０００規格は、ＪＰＥＧ２０００Final Committee Draft Version１．０、２０００年３月１６日、ＩＳＯ／ＩＥＣ ＦＣＤ１５４４４‐１（第Ｉ部）及びＪＰＥＧ２０００Final Committee Draft、２０００年１２月７日、ＩＳＯ／ＩＥＣ ＦＣＤ１５４４４‐２(第ＩＩ部）の２つの刊行物に記載されている静止画像圧縮モードを規定している。また、ＪＰＥＧ２０００規格は、MotionＪＰＥＧ２０００Final Committee Draft １．０、２００１年３月１４日、ＩＳＯ／ＩＥＣ ＦＣＤ１５４４４‐３（第ＩＩＩ部）に記載された、モーションＪＰＥＧ２０００として知られるビデオ符号化モードを規定している。モーションＪＰＥＧ２０００は、ビデオの個々のフレームがＪＰＥＧ２０００によって（静止画像モードで）符号化され、その結果得られる圧縮フレームが圧縮ビデオストリーム（例えば、ファイルフォーマット）にラッピングされるという点で、モーションＪＰＥＧに類似している。潜在的にはＪＰＥＧモーショングループ（モーションＪＰＥＧ又はモーションＪＰＥＧ２０００）より良好な圧縮を提供しうる、ＭＰＥＧグループなどの他のビデオ符号化フォーマットも存在しているが、ＪＰＥＧモーショングループはいくつかの異なる利点を提供する。加えて、モーションＪＰＥＧ２０００は静止画像モードにおけるＪＰＥＧ２０００に由来する一連の特徴を提供する。
【０００３】
本明細書の説明の便宜上、「ＪＰＥＧ２０００」という用語は、静止画像モードではＪＰＥＧ２０００規格、すなわち、静止画像（ビデオの１フレーム）を圧縮／伸張するための規格を表し、ビデオ圧縮／伸張モードのＪＰＥＧ２０００規格に言及する場合には「モーションＪＰＥＧ２０００」（ＭＪ２Ｋ）を表すために使用される。
【０００４】
画像又はビデオを圧縮する場合に実行されるべき重要な決定は、圧縮画像及び圧縮ビデオに対してどれほどの数のバイトを利用可能であるかということである。圧縮速度が速くなるほど、格納及び送信に要求されるバイトの数は少なくなる。その妥協点は、圧縮速度が増すにつれて、得られる伸張後の画像又はビデオの画質は一般に低下するということである。１つの目標は、許容しうる画質レベルを維持しつつ圧縮を最大にするか、あるいは一定のバイト数の中で画像又はビデオの画質を最大にすることである。所定の速度で画質を最大にするためにＪＰＥＧ２０００により推奨されている技法は、符号化後速度ひずみ最適化（ＰＶＲＤ−ｏｐｔ）と呼ばれる速度制御戦略を使用する方法である。最適化は、実際の符号化自体は完了しているが、利用可能なバイトバジェットを超過したときに採用される。そこで、例えば、実現可能な最高の画質で所望の目標ビットレートに適合させるように圧縮データをトリムバックする（すなわち、圧縮データの一部を放棄する）ためにＰＣＲＤ‐ｏｐｔが使用される。ＪＰＥＧ２０００により推奨されるＰＣＲＤ‐ｏｐｔを利用する圧縮方式の１つの問題点は、コードブロックが過剰符号化される、すなわち、必要な数より多くのコーディングパスが生成される場合が多いということである。余りに大きな過剰符号化は圧縮方式を遅延させる。更に、過剰符号化は中間圧縮データをバッファするために要求されるメモリの量を増加させる。
【０００５】
速度制御に加えて、画質に影響を及ぼす様々な重要な圧縮システムパラメータがある。例えば、ＪＰＥＧ及びＪＰＥＧ２０００においては、人間の視覚系統に相応する高周波数とは対照的に、低い周波数の重要性を強調するために１組のサブバンド又は係数重みが使用される。ＪＰＥＧ２０００では、それらは通常は「視覚重み」と呼ばれる。
【０００６】
ビデオシーケンスを圧縮すると、単一のフレームを符号化する場合に現れるのとは異なる一連のひずみが導入される。例えば、ＭＪ２Ｋビデオが復号され、表示される場合、フリッカと呼ばれる一種の急速に動く雑音としてひずみが現れる可能性がある。多くの場合、このフリッカは各々の伸張フレームでは容易にははっきりと見えず、復号ビデオを表示するときのようにフレームが急速に連続して表示されて初めて明白に現れる。更に、ＭＪ２Ｋは各ビデオフレームを独立して符号化するので、ＰＣＲＤ‐ｏｐｔが使用される場合、後続するフレームにおける対応するコードブロックはそれぞれ異なるビットプレーンに切捨てられることが多く、その結果、「コードブロック切捨てフリッカ」と呼ばれる別の形態のフリッカが現れる。フリッカを改善する手段として、人間の様々な視覚重み集合が提案されている。それらの視覚重みは、一般に、人間のコントラスト感度機能（ＣＳＦ）に従って取り出される。視覚重み付けは、通常、ＣＳＦに従って輝度成分及び色信号成分に対して固定重み付けすることから成る。しかし、フリッカを減少させるためのそのような特定の重みによる改善は十分なものではなく、更なる改善が依然として望ましい。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明の目的は、既存の構成の１つ以上の欠点をほぼ克服すること又は少なくとも改善することである。
【課題を解決するための手段】
【０００８】
本発明の第１の面によれば、画像のシーケンスのうちの現在の画像を圧縮する方法であって、
（ａ）  現在の画像を所定の変換によって変換して、変換係数の集合を提供する過程と、
（ｂ）  変換係数の集合を複数のブロックに分割する過程と、
（ｃ）  少なくとも１つのブロックに関して符号化終了条件を判定する過程と、
（ｄ）  少なくとも１つのブロックを一連のコーディングパスで符号化する過程と、
（ｅ）  現在のコーディングパスにおいて性能尺度を予測する過程と、
（ｆ）  予測された性能尺度が符号化終了条件を満たす場合、少なくとも１つのブロックの符号化を終了する過程とから成る方法が提供される。
【０００９】
本発明の第２の面によれば、画像のシーケンスのうちの現在の画像を圧縮する方法であって、
（ａ）  現在の画像を所定の変換によって変換して、変換係数の集合を提供する過程と、
（ｂ）  変換係数の集合を複数のブロックに分割する過程と、
（ｃ）  少なくとも１つのブロックに関して符号化終了条件を判定する過程と、
（ｄ）  少なくとも１つのブロックを一連のコーディングパスで符号化する過程と、
（ｅ）  現在のコーディングパスにおいて、そのシリーズの中の次のコーディングパスに関して性能尺度を予測する過程と、
（ｆ）  予測された性能尺度が符号化終了条件を満たす場合、次のコーディングパスの前に少なくとも１つのブロックの符号化を終了する過程とから成る方法が提供される。
【００１０】
本発明の第３の面によれば、画像のシーケンスのうちの現在の画像を圧縮する方法であって、
（ａ）  現在の画像を所定の変換によって変換して、変換係数の集合を提供する過程と、
（ｂ）  変換係数の集合を複数のブロックに分割する過程と、
（ｃ）  ブロックをシーケンス中の先行する画像の対応するブロックと比較する過程と、
（ｄ）  比較する過程が少なくとも１つのブロックと対応する先行するブロックとの差は所定の基準に従って小さいことを示した場合、少なくとも１つのブロックを静的ブロックとして指定する過程と、
（ｅ）  現在の係数が静的ブロックに含まれる場合、現在の係数が対応する先行するブロックの切捨てビットプレーンと同じである切捨てビットプレーンに符号化されるように、変換係数を符号化して、圧縮ビットストリームを提供する過程とから成る方法が提供される。
【００１１】
本発明の第４の面によれば、画像のシーケンスのうちの、複数の色空間成分に関して定義される現在の画像を圧縮する方法において、
現在の画像に関して符号化終了条件を判定する過程と、
符号化終了条件に達するまで、現在の画像の第１の組の成分を符号化する過程と、
符号化された第１の組の成分及びシーケンス中の先行する画像の対応する符号化成分に基づいて、先行する画像に対する現在の画像の圧縮度を推定する過程と、
推定された圧縮度に基づいて符号化終了条件に重み付けする過程と、
重み付き符号化終了条件に達するまで、現在の画像の第２の組の成分を符号化する過程とから成る方法が提供される。
【００１２】
本発明の別の面によれば、画像のシーケンスのうちの現在の画像を圧縮する装置であって、
（ａ）  現在の画像を所定の変換によって変換して、変換係数の集合を提供する手段と、
（ｂ）  変換係数の集合を複数のブロックに分割する手段と、
（ｃ）  少なくとも１つのブロックに関して符号化終了条件を判定する手段と、
（ｄ）  少なくとも１つのブロックを一連のコーディングパスで符号化する手段と、
（ｅ）  現在のコーディングパスにおいて性能尺度を予測する手段と、
（ｆ）  予測された性能尺度が符号化終了条件を満たす場合、少なくとも１つのブロックの符号化を終了する手段とを具備する装置が提供される。
【００１３】
本発明の別の面によれば、画像のシーケンスのうちの現在の画像を圧縮する装置であって、
（ａ）  現在の画像を所定の変換によって変換して、変換係数の集合を提供する手段と、
（ｂ）  変換係数の集合を複数のブロックに分割する手段と、
（ｃ）  少なくとも１つのブロックに関して符号化終了条件を判定する手段と、
（ｄ）  少なくとも１つのブロックを一連のコーディングパスで符号化する手段と、
（ｅ）  現在のコーディングパスにおいて、そのシリーズの中の次のコーディングパスに関して性能尺度を予測する手段と、
（ｆ）  予測された性能尺度が符号化終了条件を満たす場合、次のコーディングパスの前に少なくとも１つのブロックの符号化を終了する手段とを具備する装置が提供される。
【００１４】
本発明の別の面によれば、画像のシーケンスのうちの現在の画像を圧縮する装置であって、
（ａ）  現在の画像を所定の変換によって変換して、変換係数の集合を提供する手段と、
（ｂ）  変換係数の集合を複数のブロックに分割する手段と、
（ｃ）  ブロックをシーケンス中の先行する画像の対応するブロックと比較する手段と、
（ｄ）  比較する手段が少なくとも１つのブロックと対応する先行するブロックとの差は所定の基準に従って小さいことを示した場合、少なくとも１つのブロックを静的ブロックとして指定する手段と、
（ｅ）  現在の係数が静的ブロックに含まれる場合、現在の係数が対応する先行するブロックの切捨てビットプレーンと同じである切捨てビットプレーンに符号化されるように、変換係数を符号化して、圧縮ビットストリームを提供する手段とを具備する装置が提供される。
【００１５】
本発明の別の面によれば、画像のシーケンスのうちの、複数の色空間成分に関して定義される現在の画像を圧縮する装置において、
現在の画像に関して符号化終了条件を判定する手段と、
符号化終了条件に達するまで、現在の画像の第１の組の成分を符号化する手段と、
符号化された第１の組の成分及びシーケンス中の先行する画像の対応する符号化成分に基づいて、先行する画像に対する現在の画像の圧縮度を推定する手段と、
推定された圧縮度に基づいて符号化終了条件に重み付けする手段と、
重み付き符号化終了条件に達するまで、現在の画像の第２の組の成分を符号化する手段とを具備する装置が提供される。
【００１６】
本発明の別の面によれば、画像のシーケンスのうちの現在の画像を圧縮するシステムであって、
シーケンス中の先行する画像の圧縮を記述する情報を格納する記憶装置と、
前記記憶装置に接続され、
現在の画像を所定の変換によって変換して、変換係数の集合を提供し、
変換係数の集合を複数のブロックに分割し、
少なくとも１つのブロックに関して、シーケンス中の１つ以上の先行する画像に関する格納情報に従属する符号化終了条件を判定し、
少なくとも１つのブロックを一連のコーディングパスで符号化し、
現在のコーディングパスにおいて性能尺度を予測し、
予測された性能尺度が符号化終了条件を満たす場合、少なくとも１つのブロックの符号化を終了し、
現在の画像の圧縮を記述する情報を前記記憶装置に格納するプロセッサとを具備するシステムが提供される。
【００１７】
本発明の別の面によれば、画像のシーケンスのうちの現在の画像を圧縮するシステムであって、
シーケンス中の先行する画像の圧縮を記述する情報を格納する記憶装置と、
前記記憶装置に接続され、
現在の画像を所定の変換によって変換して、変換係数の集合を提供し、
変換係数の集合を複数のブロックに分割し、
少なくとも１つのブロックに関して、シーケンス中の１つ以上の画像に関する格納情報に従属する符号化終了条件を判定し、
少なくとも１つのブロックを一連のコーディングパスで符号化し、
現在のコーディングパスにおいて、一連のコーディングパスの中の次のコーディングパスに関する性能尺度を予測し、
予測された性能尺度が符号化終了条件を満たす場合、次のコーディングパスの前に少なくとも１つのブロックの符号化を終了し、
現在の画像の圧縮を記述する情報を前記記憶装置に格納するプロセッサとを具備するシステムが提供される。
【００１８】
本発明の別の面によれば、画像のシーケンスのうちの現在の画像を圧縮するシステムであって、
現在の画像及びシーケンス中の先行する画像の、現在の画像及び先行する画像に所定の変換を適用することにより獲得される変換係数を格納し、格納された変換係数が複数のブロックに分割されるような記憶装置と、
処理装置とを具備し、前記処理装置は、
（ａ）  現在の画像の各ブロックを先行する画像の対応するブロックと比較し、先行する画像の対応するブロックとほぼ同じである現在の画像のブロックを静的であると指定し、
（ｂ）  変換係数のうちの現在の係数が静的ブロックに含まれる場合、処理装置はその係数を先行する画像の対応するブロックの切捨てビットプレーンと同じである切捨てビットプレーンに符号化するように、現在の画像の変換係数を符号化して、圧縮ビットストリームを提供するシステムが提供される。
【００１９】
本発明の別の面によれば、画像のシーケンスのうちの現在の画像を圧縮するシステムであって、
シーケンス中の先行する画像の圧縮バージョンを格納する記憶装置と、
処理装置とを具備し、前記処理装置は、
（ａ）  現在の画像に関する符号化終了条件を判定し、
（ｂ）  符号化終了条件に達するまで、現在の画像の第１の組の成分を符号化し、
（ｃ）  符号化された第１の組の成分及び記憶装置から受信された対応する符号化成分に基づいて、先行する画像に対する現在の画像の圧縮度を推定し、
（ｄ）  推定された圧縮度に基づいて符号化終了条件に重み付けし、
（ｅ）  重み付き符号化終了条件に達するまで、現在の画像の第２の組の成分を符号化するシステムが提供される。
【００２０】
本発明の別の面によれば、画像のシーケンスのうちの現在の画像を圧縮する方法であって、
（ａ）  現在の画像を所定の変換によって変換して、変換係数の集合を提供する過程と、
（ｂ）  変換係数の集合を複数のブロックに分割する過程と、
（ｃ）  少なくとも１つのブロックに関して符号化終了条件を判定する過程と、
（ｄ）  少なくとも１つのブロックを一連のコーディングパスで符号化する過程と、
（ｅ）  現在のコーディングパスにおいて性能尺度を予測する過程と、
（ｆ）  予測された性能尺度が符号化終了条件を満たす場合、少なくとも１つのブロックの符号化を終了する過程とから成る方法を実行するためにプログラムコードが実行されるデータ処理装置の動作を制御するために、機械読み取り可能な記録媒体に記録された機械読み取り可能なプログラムコードを具備するコンピュータプログラム製品が提供される。
【００２１】
本発明の別の面によれば、画像のシーケンスのうちの現在の画像を圧縮する方法であって、
（ａ）  現在の画像を所定の変換によって変換して、変換係数の集合を提供する過程と、
（ｂ）  変換係数の集合を複数のブロックに分割する過程と、
（ｃ）  少なくとも１つのブロックに関して符号化終了条件を判定する過程と、
（ｄ）  少なくとも１つのブロックを一連のコーディングパスで符号化する過程と、
（ｅ）  現在のコーディングパスにおいて、そのシリーズにおける次のコーディングパスに関する性能尺度を予測する過程と、
（ｆ）  予測された性能尺度が符号化終了条件を満たす場合、次のコーディングパスの前に少なくとも１つのブロックの符号化を終了する過程とから成る方法を実行するためにプログラムコードが実行されるデータ処理装置の動作を制御するために、機械読み取り可能な記録媒体に記録された機械読み取り可能なプログラムコードを具備するコンピュータプログラム製品が提供される。
【００２２】
本発明の別の面によれば、画像のシーケンスのうちの現在の画像を圧縮する方法であって、
（ａ）  現在の画像を所定の変換によって変換して、変換係数の集合を提供する過程と、
（ｂ）  変換係数の集合を複数のブロックに分割する過程と、
（ｃ）  ブロックをシーケンス中の先行する画像の対応するブロックと比較する過程と、
（ｄ）  比較する過程が少なくとも１つのブロックと先行する画像の対応するブロックとの差は所定の基準に従って小さいことを示す場合、少なくとも１つのブロックを静的ブロックとして指定する過程と、
（ｅ）  現在の係数が静的ブロックに含まれる場合、現在の係数が先行する画像の対応するブロックの切り捨てビットプレーンと同じである切捨てビットプレーンに符号化されるように、変換係数を符号化して、圧縮ビットストリームを提供する過程とから成る方法を実行するためにプログラムコードが実行されるデータ処理装置の動作を制御するために、機械読み取り可能な記録媒体に記録された機械読み取り可能なプログラムコードを具備するコンピュータプログラム製品が提供される。
【００２３】
本発明の別の面によれば、画像のシーケンスのうちの、複数の色空間成分に関して定義される現在の画像を圧縮する方法であって、
現在の画像に関して符号化終了条件を判定する過程と、
符号化終了条件に達するまで、現在の画像の第１の組の成分を符号化する過程と、
符号化された第１の組の成分及びシーケンス中の先行する画像の対応する符号化成分に基づいて、先行する画像に対する現在の画像の圧縮度を推定する過程と、
推定された圧縮度に基づいて符号化終了条件に重み付けする過程と、
重み付き符号化終了条件に達するまで、現在の画像の第２の組の成分を符号化する過程とから成る方法を実行するためにプログラムコードが実行されるデータ処理装置の動作を制御するために、機械読み取り可能な記録媒体に記録された機械読み取り可能なプログラムコードを具備するコンピュータプログラム製品が提供される。
【００２４】
次に、図面を参照して、従来の技術のいくつかの面及び本発明のいくつかの実施例を説明する。
【発明を実施するための最良の形態】
【００２５】
添付の図面のうちの１つ以上の図面において、同じ図中符号を有するステップ及び／又は特徴を参照する場合、それらのステップ及び／又は特徴は、この明細書の便宜上、特に指定のない限り、同じ機能又は動作を有する。
【００２６】
ここで説明する構成の原理はビデオフレームのシーケンスの符号化に一般に適用されることが可能である。しかし、説明を容易にするため、ＭＪ２Ｋに関連して構成を説明する。しかし、本発明が説明される構成に限定されることは意図されていない。例えば、本発明はウェーブレット符号化に基づくいくつかのフレーム内ビデオ圧縮方法に適用できるであろう。
【００２７】
１．０  ＪＰＥＧ２０００の概要
本発明の様々な実現形態を説明する前に、本発明の理解を助けるためにＪＰＥＧ２０００の概要を簡単に説明する。以下の説明は本発明に最も大きく関連するＪＰＥＧ２０００の部分に集中している。更に、本発明の構成を説明する便宜上、ここで使用する用語は、特に指定のない限り、前述のＪＰＥＧ２０００刊行物（第Ｉ部、第ＩＩ部及び第ＩＩＩ部）で説明されている用語と同じである。
【００２８】
ＪＰＥＧ２０００画像の符号化の概要を図５に示す。ステップ５０１で、入力画像５００は任意に前処理される。この前処理はレベルシフティング及び成分変換を含む。例えば、入力ＲＧＢ色空間画像をＹＣｂＣｒ色空間画像に変換することができる。ステップ５０２では、離散的ウェーブレット変換とは無関係に、画像の各色空間成分が変換される。ステップ５０３では、ウェーブレット変換係数が整数値に量子化され、複数のコードブロックにタイリングされる。次に、ステップ５０４では、算術エンコーダによって、各コードブロックがビットプレーン又はその一部分で何らかの最小部分ビットプレーンまでエントロピー符号化される。この符号化が完了した後、速度制御のために、ＪＰＥＧ２０００規格により推奨されている符号化後速度−ひずみ最適化アルゴリズム（ＰＣＲＤ−ｏｐｔ）が使用される（ステップ５０５）。ステップ５０６では、ＪＰＥＧ２０００コードストリーム５０７を提供するために、符号化コードブロックがヘッダ情報と共にグルーピングされる。
【００２９】
ＪＰＥＧ２０００画像は、これらのステップの各々を逆の順序で実行することにより復号される。
【００３０】
次に、図５の符号化プロセスを更に詳細に説明する。
【００３１】
１．１  離散的ウェーブレット変換及び多重分解能復号
画像成分の単一レベル離散的ウェーブレット変換（ＤＷＴ）が図１に示されている。画像成分１１０は、４つ合わせて１つの単一レベルＤＷＴ画像１２０を形成する４つのサブバンドＬＬ１  １３０、ＨＬ１  １４０、ＬＨ１  １５０及びＨＨ１  １６０に分解される。ＤＷＴは画像の多重分解能記述を与える。ＬＬ１サブバンド１３０は低い分解能の画像成分を表す。特に、低分解能画像は行ごとに元の画像の公称で１／２の数の画素を含み、列ごとに元の画像の公称で１／２の数の画素を含む大きさで表現されている。
【００３２】
ＤＷＴ画像１２０（ＬＬ１、ＨＬ１、ＬＨ１及びＨＨ１サブバンド）に対して単一レベル逆ＤＷＴを実行して、元の画像１１０を得ることができる。従って、ＤＷＴ画像１２０は画像を暗黙に２つの分解能、すなわち、分解能１と呼ばれる元の画像の分解能と、分解能０と呼ばれるＬＬ１サブバンドの分解能で表現する。
【００３３】
ＬＬ１サブバンド１３０に対して別の単一レベルＤＷＴを実行することができる。ＬＬ１サブバンドを４つのサブバンドＬＬ２  １７０、ＨＬ２  １７２、ＬＨ２  １７４及びＨＨ２  １７６に解析すると、その結果、サブバンドＬＬ２、ＨＬ２、ＬＨ２、ＨＨ２、ＨＬ１、ＬＨ１及びＨＨ１を含む２レベルＤＷＴ画像１８０が得られる。ＬＬ２サブバンドは元の画像を更に低い分解能で表現（また、ＬＬ１サブバンドを同様により低い分解能で表現）する。特に、画像は行ごとに元の画像の公称で１／４の数の画素を含み、列ごとに元の画像の公称で１／４の数の画素を含む大きさで表現されている。サブバンドＨＬ１、ＬＨ１及びＨＨ１はレベル１サブバンドと呼ばれる。サブバンドＬＬ２、ＨＬ２、ＬＨ２及びＨＨ２はレベル２サブバンドと呼ばれる。便宜上、元の画像はＬＬ０サブバンドと呼ばれる。
【００３４】
更に後続するＬＬサブバンドに対して単一レベルＤＷＴを更に適用することにより、より高いレベルのＤＷＴ画像、及び画像成分の更に低い分解能の表現が得られる。１つのＳレベルＤＷＴはＬＬＳサブバンドと、サブバンドＨＬＳ、ＬＨＳ、ＨＨＳ、ＨＬ（Ｓ−１）、ＬＨ（Ｓ−１）、ＨＨ（Ｓ−１）、．．．、ＨＬ１、ＬＨ１及びＨＨ１とを含む。２文字から成るサブバンドの名称の後の数はＤＷＴレベルを表す。従って、ＨＬ（Ｓ−１）はレベルＳ−１におけるＨＬサブバンドを表す。ＳレベルＤＷＴは暗黙に（Ｓ＋１）の分解能で画像を表現する。それらの分解能は分解能０、分解能１、．．．、分解能Ｓと呼ばれる。分解能０はＬＬＳサブバンドを表し、分解能１はＬＬ（Ｓ−１）サブバンドを表し、それ以降も同様である。従って、分解能Ｓは元の画像を現す。
【００３５】
ＪＰＥＧ２０００は各画像成分に対してＤＷＴを使用する。各サブバンドは独立して符号化される。各サブバンドは圧縮画像コードストリームから独立して復号されることが可能である。例えば、単一レベルＤＷＴ画像の場合、ＬＬ１サブバンド（すなわち、画像の分解能０）はその他のレベル１サブバンドＨＬ１、ＬＨ１及びＨＨ１を復号せずに符号化され、表示されることが可能である。より高いレベルＤＷＴ画像の場合には、ＤＷＴ解析の各段階で様々なＬＬサブバンドを再構成することにより、画像の他の分解能バージョンを同様に復号し、表示することができる。例えば、３レベルＤＷＴ画像では、ＬＬ３、ＨＬ３、ＬＨ３及びＨＨ３の各サブバンドからＬＬ２サブバンドを再構成することにより、分解能１で画像を表示することができる。
【００３６】
１．２  コードブロック、コーディングパス及びレイヤ
ＪＰＥＧ２０００における変換画像の各サブバンドはコードブロックと呼ばれる複数のブロックにタイリングされる。図２は、ＨＬ１サブバンド１４０の１６のブロックへのタイリングを示し、そのうちの１つのブロック２１０が陰影により指示されている。各コードブロックはコードブロック係数の整数表現を与えるために量子化され、次に、ほぼ独立して（エントロピー）符号化される。各コードブロックは最上位ビットプレーンから最下位ビットプレーンの順に符号化される。公称で、ビットプレーンごとに３つのコーディングパスが存在する。
【００３７】
図３は、そのようなコードブロックの符号化を示す。コードブロック２１０は、場合によっては単純にコードブロック３２０と呼ばれる圧縮コードブロックへと符号化される。コードブロック３２０はコーディングパスコードセグメント３３０のシーケンスから構成されている。従って、コードブロックはコーディングパスコードセグメント（又は単にコーディングパス）の順序付きシーケンスである。
【００３８】
１つのコードブロックは複数のブロックレイヤに分割されることが可能である。説明を容易にするため、ここで使用される用語「ブロックレイヤ」は１つのコードブロックの、対応する画質レイヤに寄与するコードブロックを表す。各画質レイヤは画質を連続的に改善し、従って、デコーダは各レイヤに含まれるコードブロック寄与を順次復号することが可能であろう。従って、画質レイヤはあらゆる分解能における対応するブロックレイヤの集合体であるということができる。図３は、３つのレイヤ、すなわち、ブロックレイヤ０、３４０、ブロックレイヤ１、３５０及びブロックレイヤ２、３６０に分割されたコードブロックの一例を示す。各ブロックレイヤは負ではない数のコーディングパスを含む。第１のレイヤは第１の数のコーディングパスを含み、第２のレイヤは次の数のコーディングパスを含み、それ以降も同様である。コードブロックのブロックレイヤが空であっても良いことに注意することは重要である。図３の例はブロックレイヤごとに３つのコーディングパスがある場合を示す。
【００３９】
デコーダは、エントロピー符号化を元に戻すことにより、ブロックコードからコードブロックを再構成する。第１の数のコーディングパスのみを復号することにより、コードブロックの低画質表現が得られる。例えば、図３において、レイヤ０のみからコードブロックを再構成すること、又はレイヤ０及び１からコードブロックを再構成することが可能であろう。従って、いずれかのコーディングパス境界でブロックコードを切捨てると、その結果、コードブロックの低画質表現が得られる。このようなブロックの切捨ては量子化の１つの形態である。ビットプレーンを符号化することにより、コードブロックの埋め込み形態の量子化が実行される。コードブロックに含まれる余分のビットプレーンごとに、有効量子化ステップサイズは１／２に減少する。
【００４０】
画像の１つのレイヤは、対応するブロックレイヤの集合体から構成される。すなわち、レイヤ０はＤＷＴ画像におけるコードブロックごとのブロックレイヤ０から構成され、レイヤ１はコードブロックごとのブロックレイヤ１から構成され、それ以降も同様である。ブロックレイヤ内にコーディングパスが含まれないという意味で、ブロックレイヤは空であっても良い。レイヤ０のみを復号（また、適切な逆ＤＷＴ、成分変換などを実行）することにより、画像を復号できる。レイヤ０を復号することは、コードブロックごとにブロックレイヤ０を復号することを意味している。この場合、各コードブロック、従って、画像は圧縮画像コードストリームで表現されるより低い画質で復号される。
【００４１】
１．３  速度‐ひずみ最適化
先に説明したように、各コードブロックはいくつかのコーディングパスで符号化される。言うまでもなく、各コーディングパスの符号化は与えられるバイトバジェット全体から取り出されるビットを消費することができる。所定のコーディングパスの速度は、そのコーディングパス及びそれ以前の全てのコーディングパスにより消費されたバイトの数である。
【００４２】
「ひずみ」は、元の画像（又はブロック）と比較した場合の圧縮画像（又はブロック）と関連する画質劣化である。コードブロックのひずみは、現在のコーディングパスが最終コーディングパスである場合にどれほど多くのビデオ劣化が導入されるかを反映している。一般に、コーディングパスが増すにつれて、ひずみは減少する（すなわち、それと同等に画質は向上する）。多くの情報が符号化されるほど、デコーダから見てコードブロックの精度は向上する。
【００４３】
従って、各コーディングパスはそれと関連する速度尺度及びひずみ尺度を有し、それらの尺度は一体となって速度‐ひずみポイントを定義する。各コードブロックは、コーディングパスごとに対（速度、ひずみ）を構成する１組の速度‐ひずみポイントを有する。１組の速度−ひずみポイントは圧縮アルゴリズムの効率を特徴付けている。
【００４４】
コードブロックｎがｉ番目のコーディングパスで終了した場合、各コーディングパスと関連する速度をｒ０、ｒ１、ｒ２、．．．、ｒiとし、ひずみをｄ０、ｄ１、ｄ２、．．．、ｄiとする。合計速度は次の式により表され、
2005143105.tif 000003
（１）
全ひずみの尺度は次の式により表される。
2005143105.tif 000004
（２）
尚、速度‐ひずみポイント（ｒ０、ｄ０）は、コードストリームにコーディングパスが全く含まれていないポイントを表すことに注意する。「切捨てポイント」は最終コードストリームに含まれる最終コーディングパスである。切捨てポイントについては図８に関連して更に説明する。
【００４５】
先に述べたように、１つの目標は所定の速度におけるひずみを最小にすることである。すなわち、
2005143105.tif 000005
となるような
2005143105.tif 000006
（３）
を求めることである。式中、Ｒtotalは実際に実現された合計速度であり、コードブロックの異なる切捨てポイントに対して最小値を求める。この最適化問題はラグランジュの乗算器の方法を使用して解決されることが可能である。すなわち、
2005143105.tif 000007
（４）
が制約Ｒtotal≦Ｒdesiredの下で最小になるようなλ≧０（可能であれば）及びコードブロック切捨てポイントの集合ｉnを求めるのである。また、このコードブロック切捨てポイントの集合ｉnは制約を受ける問題（３）を解く。実際には、どのようなλによっても厳密な制約には適合しないと考えられるため、Ｒtotal〜Ｒdesiredが使用される（通常はＲtotal＜Ｒdesired）。
【００４６】
以下、図６を参照して、項（４）によって問題（３）を解く手続きを説明する。この手続きは図５のステップ５０５に相当する。手続きはステップ６０５で始まり、ブロックごとに各速度−ひずみポイントに対応する傾きを計算するステップ６１０へ進む。ｉｎコーディングパスを有するブロックｎの場合、速度−ひずみ傾きの集合λ０、λ１、λ２、．．．、λｉｎは次の式により表される。
2005143105.tif 000008
（５）
これらの傾きは減少してゆくと想定される。すなわち、コードブロックｎごとにλ０≧λ１≧λ２≧．．≧λｉｎとなる。λj＜λj+1であれば、コードブロックｎに関して可能な速度−ひずみポイントの集合から速度−ひずみポイント（ｒj，ｄj）が除去される。残る速度−ひずみポイントはその後に再度ラベル付けされ、傾きが再度計算される。このプロセスは、傾きがすべて減少するまで継続される。このプロセスの終了時に、ｋ≦ｉnとした場合にｋ個の速度−ひずみポイントが存在すると仮定すると、λ０≧λ１≧λ２≧．．≧λkとなる。この傾きの集合をブロックｎの速度−ひずみ傾きの集合という。あるいは、この傾きの集合はブロックｎの凸閉包に依存しているという。
【００４７】
次のステップ６２０では、初期傾きλが選択され、λlow及びλhighはそれぞれ０と∞に設定される。λ＝１０の傾きが初期傾きとして選択されるのが好ましい。ステップ６３０では、ブロックｎごとの最適終了ポイントinが判定され、最適関連合計速度Ｒ（λ）が計算される。これらの終了ポイントは（４）におけるラグランジュの最小化問題の解である。ステップ６３０については以下に更に詳細に説明する。
【００４８】
ステップ６３０が完了した後、Ｒ（λ）＜Ｒdesiredであるか否かを判定するために、決定ブロック６４０で検査が実行される。決定ブロック６４０が「ノー」を戻した場合、処理はステップ６５０へ続き、λlowがλに設定される。その後、処理はステップ６７０で再開する。決定ブロック６４０が「イエス」を戻した場合には、処理はステップ６６０へ続き、λhighがλに設定される。その後、処理はステップ６７０で再開する。
【００４９】
決定ブロック６７０では、Ｒ（λ）≦Ｒdesiredであるか否か及びＲ（λ）＞αＲdesiredであるか否かを判定するための検査が実行される。尚、αは１未満の何らかの速度許容差である。α＝０．９９が使用されるのが好ましい。図６には示されていないが、繰り返しカウントを保持すべきであり、このカウントを超えると、決定ブロック６７０は「イエス」を戻す。この繰り返しの目的は、手続きが無限ループに入るのを停止することである。決定ブロック６７０が「イエス」を戻した場合、処理はステップ６８５へ続く。ステップ６８５では、ブロックごとの最適切捨てポイント（ｉn）が出力される。その後、処理はステップ６９０で終了する。決定ブロック６７０が「ノー」を戻した場合には、処理はステップ６８０へ続く。ステップ６８０では、現在の傾きλが更新され、処理はステップ６３０に戻る。
【００５０】
ステップ６３０において最適合計速度及び関連する切捨てポイントは次のようにして計算される。ブロックｎに関して、λの動作傾きに対する最適切捨てポイントはｉnであり、
2005143105.tif 000009
（６）
となっている。尚、最適切捨てポイントｉnはλの関数である。従って、最適切捨てポイントと関連する速度rｉnはλの関数であり、合計最適速度は次の式により表される。
2005143105.tif 000010
（７）
（６）を満足させる２つ以上のｉnが存在する場合、可能な各々のｉnのレコードが保持される。それに対応して、異なる可能な合計最適速度の集合｛Ｒ（λ）｝が存在し、この有限集合の中に最小値Ｒmin（λ）及び最大値Ｒmax（λ）がある。決定ブロック６７０においてＲmin（λ）＜Ｒdesiredであり且つＲmax（λ）＞Ｒdesiredであれば、決定ブロック６７０は「イエス」を戻し、ステップ６８５で、Ｒdesired以下である最大のＲ（λ）に対応する切捨てポイントｉnの集合が出力される。式（４）を介して式（３）を解くためのこの手続きの数多くの変形が存在し、それらを上記の手続きの代わりに使用することは可能である。
【００５１】
切捨てポイントｉnと関連して、速度−ひずみ傾きλｉｎ（又はλｉｎ＋１）があり、切捨てポイントｉnにおけるコードブロックｎの速度−ひずみ傾きは傾きλｉｎである。
【００５２】
この最適化を使用して、所定の速度に対して画像を「最適に」符号化するために、コードブロックごとに保持すべきコーディングパスの数を判定することができる。それらのコーディングパスは、画像を符号化するための単一のレイヤを形成するためにコードブロックごとに符号化されることが可能である。また、最適化技法は１つの画像を符号化するためのいくつかのレイヤを構成するためにも使用できる。例えば、一方が画素ごとに１ビットの総合速度に対して最適なコーディングパス切捨てポイントの集合であり、他方は画素ごとに２ビットの総合速度に対して最適のコーディングパス切捨てポイントの集合であるような２つの切捨てポイントの集合を判定することができる。所定のコードブロックに対して、第２の集合に対応するコーディングパスは第１の集合に対応するコーディングパスと同じであるか、それより後のコーディングパスである。そこで、第１のレイヤは、第１の集合に従って判定された全てのコーディングパスを含めることにより構成される。第２のレイヤは、第１のレイヤには含まれていなかった、第２の集合に従った全てのコーディングパスを含めることにより形成される。
【００５３】
一般に、この最適化技法はここではＰＣＲＤ−ｏｐｔルーチンと呼ばれる。ＰＣＲＤ−ｏｐｔは圧縮後速度−ひずみ最適化の１つの形態である。この技法は、一般に、データが符号化された後に切り捨てポイントの最適集合を判定することを含む。この技法を使用することの欠点は、コードブロックの過剰符号化にある。例えば、いくつかのビットプレーンがその速度−ひずみ傾きを判定するために符号化されるが、それらはＰＣＲＤ−ｏｐｔが提供された後に初めて放棄される。
【００５４】
ＰＣＲＤ−ｏｐｔルーチンを適用した後のコーディングパス終了ポイントにおけるコードブロック切捨ては量子化の１つの形態であることに注意すべきである。終了ポイントの後に符号化されるブロックのビットプレーンは最終ビットストリームには含まれない。一般に、ＰＣＲＤ−ｏｐｔ量子化は固定精度２進フォーマットでＤＷＴ係数を表現するときに起こるいかなる量子化より重要であり、（切捨てプロセスにおいてビットプレーンが放棄されない場合を除いて）通常はＪＰＥＧ２０００で使用される明示量子化より重要である。
【００５５】
速度−ひずみ最適化の実際の有効度の重要な一面は、適切なひずみ関数の選択である。各コードブロックが属するサブバンドに従って、コードブロックごとに平均二乗誤差ひずみに重み付けするために、視覚重みを使用することができる。このように、より大きな重みを有するサブバンドからのコードブロックは、一般に、小さな重みを有するサブバンドからのコードブロックより高い画質に（すなわち、より多くの部分ビットプレーンによって）符号化される。
【００５６】
１．４  コーディングパス
各ビットプレーンの中で、コーディングは図４に示すようにストライプ指向走査に沿っている。各ストライプ４３０は４つのビット記号行を含み、各々のストライプの中で、ビット記号は経路４２０に従って列ごとに、左から右へ走査される。ビットプレーン符号化は、（一般に）０でない要素を含む最上位ビットプレーンから始まり、最下位ビットプレーンに向かって進む。各ビットプレーンは、通常、以下の３つのコーディングパスで符号化される。
【００５７】
１  有意性伝播パス−有意性状態はまだ無意に設定されているが、有意状態を有する８つの最近隣要素のうちの少なくとも１つを有する係数を符号化する。これは、有意性伝播パスが有意になりそうである係数を含むことを意味している。
【００５８】
２  マグニチュード精密化パス−以前のビットプレーンで有意になった係数を符号化する。これにより、ウェーブレット係数のマグニチュードは更に精密化される。
【００５９】
３  クリーンアップパス−所定のビットプレーンにおける最後のパスであり、先行するコーディングパスで符号化されなかった係数を含む。いくつかの係数が有意ではなく、有意の近隣要素を含まない場合、それらはランレングス符号化され、そうでない場合には、以前のコーディングパスの場合と同様にして符号化される。
通常、ビットプレーンは上記のコーディングパスの順序で符号化される。
【００６０】
１．５  コードストリーム構成
各分解能レベルにおけるいくつかのコードブロックはプレシンクトの中で回収され、１つのプレシンクトの中のブロックレイヤの集合は１つのパケットへと配列される。「プレシンクト」は、特定のＤＷＴレベルの各サブバンドにおける対応する領域を記述するために使用される用語である。単純なケースでは、プレシンクトは１つの分解能レベルのサブバンド全体（例えば、ＨＬ１サブバンド、ＬＨ１サブバンド及びＨＨ１サブバンド）である。パケットはＪＰＥＧ２０００圧縮コードストリームに対する基本ビルディングブロックであると考えることができ、１つのパケットは特定のプレシンクト、ブロックレイヤ及び分解能レベルからの全ての圧縮画像データを含む。
【００６１】
ＪＰＥＧ２０００ビットストリームはパケットのシーケンスを含む。各パケットは画像タイルの単一の分解能、（画質）レイヤ、成分及び空間領域に関する符号化画像情報を含む。ＪＰＥＧ２０００コードストリームはパケット及びヘッダ情報ブロックのシーケンスにより構成されている（詳細については、Ｊ２Ｋ規格を参照）。
【００６２】
２．０  モーションＪＰＥＧ２０００
モーションＪＰＥＧ２０００は、他のビデオフレームから独立した個々のビデオフレームのＪＰＥＧ２０００圧縮を含むビデオ圧縮システムである。ウェーブレット利用エンコーダとして、ビデオフレームの非無損失ＪＰＥＧ２０００圧縮は伸張出力にウェーブレットアーティファクトを導入する。所定の１つのビデオフレームに対して、視覚的に無損失であると考えられる非無損失圧縮のレベルが存在する。そのような視覚的に無損失の圧縮速度では、符号化プロセスにより導入されるウェーブレットアーティファクトのマグニチュードは小さく、１つの画像を見ている観測者がアーティファクトに気づくことはない。
【００６３】
しかし、各フレームがＪＰＥＧ２０００エンコーダを使用して独立して符号化されたビデオストリームにおいては、フレーム間のわずかな変化であっても、エンコーダが非線形の性質を有するために連続する復号フレームにきわめて大きく異なる複数組のウェーブレットアーティファクトを生じる可能性がある。１つの復号ビデオストリームの中で、それらのウェーブレットアーティファクトは、その基礎にある映像コンテンツの変化に単純に関連付けられないように急速に変化する。多くの場合、それらの変化は目に見えており、ビデオの個々のフレームを視覚的には許容できると考えられる場合であっても、変化を視覚的に許容できないこともある。それらの急速に変化するアーティファクト、すなわち、フリッカアーティファクトの問題は、アーティファクトがビットレートの低下に伴って大きくなり、より明白になるために、圧縮レベルが高くなるほどはるかに大きくなる。
【００６４】
いくつかの用途では、ビデオを固定ビットレートで、例えば、毎秒２４Ｍｂｉｔで符号化することが望ましい。ビデオにおける固定ビットレートを実現する自明の方法の１つは、各フレームを同じ量だけ圧縮する方法である。例えば、毎秒３０フレームの場合、毎秒２４Ｍｂｉｔの制約を満たすためには、各フレームは約８２０Ｋｂｉｔの目標ビットレートに圧縮されなければならない。ＪＰＥＧ２０００により推奨されている速度制御アルゴリズムはＰＣＲＤ−ｏｐｔであり、これは、各ビデオフレームの圧縮データが所望の目標速度に適合することを保証するために圧縮後に適用される。この方法を使用することの利点は、どのような速度が与えられても、アルゴリズムは所望の速度に到達するために各フレームにおける各コードブロックの実際の速度値及びひずみ値を使用するため、その速度に対して最適のビデオ画質を実現できることである。しかし、ＰＣＲＤ−ｏｐｔを使用することの欠点は、各コードブロックが実質的に過剰符号化されることである。算術符号化はＪＰＥＧ２０００における低速動作の１つであるので、特にビデオフレームがリアルタイムで圧縮されなければならないビデオアプリケーションにおいては、余りにも大きな過剰符号化は望ましくない。
【００６５】
２．１  フリッカアーティファクト
２．１．１  コードブロック切捨てポイントフリッカ
復号されたＭＪ２Ｋビデオにおけるフリッカアーティファクトは、ＭＪ２Ｋ符号化ビデオを視覚的に無損失に符号化できる最小ビットレートを制限し、それより低いどのビットレートでも符号化ビデオの画質を低下させる。ＭＪ２Ｋでは、速度‐ひずみ最適化アルゴリズムは、通常、各フレームに独立して適用される。これにより、コードブロックごとに圧縮ビットストリームに含まれるコーディングパスの数がフレーム間で、その基礎にあるビデオフート数の総変化に関連付けられないように変化するため、フリッカが発生するであろう。すなわち、所定のコードブロックの切捨てポイントは異なるビットプレーンの間で頻繁に変化し、その結果、後続するフレームの間でいくつかのウェーブレットアーティファクトが出現したり、消滅したりすることになる。例えば、いくつかの実験は、ビデオに多くのモーションが存在しない場合であっても、コードブロックのうちの２５％の切捨てポイントがフレームごとに変化することを示唆している。
【００６６】
各フレームに独立して速度‐ひずみ最適化を適用する通常の方法は、コードブロックが符号化されるビット深さの変化のために、得られる復号ビデオストリームが連続するフレームの中で出現し、消滅するウェーブレットアーティファクトを含むという点で不都合である。表１から表４はこの点を示している。
表１：フレーム１の１つのブロックの一部に対するＤＷＴ係数
2005143105.tif 000011
表２：１６の量子化ステップサイズを有する表１の係数に対する量子化ＤＷＴ係数
2005143105.tif 000012
表３：フレーム２の１つのブロックの一部に対するＤＷＴ係数
2005143105.tif 000013
表４：８の量子化ステップサイズを有する表３の係数に対する量子化ＤＷＴ係数
2005143105.tif 000014
ビデオシーケンスの一例の第１の符号化フレームからのＤＷＴ係数の可能な３×３サブセットを表１に示す。１６の量子化ステップサイズを有する対応する量子化値を表２に示す。次のフレームでは、視覚的コンテンツは非常に類似しており、ＤＷＴ係数の同じサブセットを表３に示す。それらは８のステップサイズで量子化され、その結果を表４に示す。それらの（有効）量子化ステップサイズは、ＪＰＥＧ２０００における明示量子化又は（ＰＣＲＤ−ｏｐｔプロセスの）ビットプレーン切捨てを介する暗黙量子化の結果であると考えることができるであろう。しかし、この例を説明する便宜上、それらの量子化ステップサイズはビットプレーン切捨ての結果であるものとする。類似するフレームにおける同じ対応するコードブロックが２倍異なる量子化閾値を有することは稀ではない。従って、表２と表４の値の相違からわかるように、典型的なデコーダはフレームごとの復号係数を著しく異なる値に逆量子化するであろう。これは、コードブロック間のＤＷＴ係数の差が極めて小さい場合であっても、（０と０でない値との間の遷移により発生する）ウェーブレットアーティファクトの出現と消滅をもたらし、また、（係数の大きさの変化により発生する）ウェーブレットアーティファクトの見かけの大きさと強さの変化をもたらす。
【００６７】
２．１．２ ウェーブレット係数フリッカ
ウェーブレット係数フリッカは、Ｊ２Ｋ符号化を使用するビデオストリームの小さな変化の非線形増幅が原因となって起こる。モーション及びシーンの変化による視覚的に重要な変化を保持しつつ、雑音に起因するウェーブレット係数のわずかな変化を除去することが望ましい。
【００６８】
２．２  実現形態
上述のビデオフレームのシーケンスを符号化する方法、並びに以下に説明する第１及び第２の構成は、方法の機能又は部分機能を実行する１つ以上の集積回路などの専用ハードウェアで実現されるのが好ましい。そのような専用ハードウェアはグラフィックプロセッサ、デジタルシグナルプロセッサ、又は１つ以上のマイクロプロセッサ及び関連メモリを含むであろう。
【００６９】
ビデオフレームのシーケンスを符号化する方法は、図２７に示すような、汎用コンピュータシステム２７００を使用して実施されても良く、このシステムにおいては、図５〜図７、図１０〜図２１、図２５及び図２６のプロセスがコンピュータシステム２７００内部で実行されるアプリケーションプログラムのようなソフトウェアとして実現される。特に、図５〜図７、図１０〜図２１、図２５又は図２６の方法のステップは、コンピュータにより実行されるソフトウェアの命令により実現される。命令は、各々が１つ以上の特定のタスクを実行する１つ以上のコードモジュールとして形成される。ソフトウェアは２つの別個の部分に分割されていても良く、その第１の部分は符号化方法を実行し、第２の部分は第１の部分とユーザとの間のユーザインタフェースを管理する。ソフトウェアは、例えば、以下に説明する記憶装置を含めたコンピュータ読み取り可能な媒体に格納されていても良い。ソフトウェアはコンピュータ読み取り可能な媒体からコンピュータにロードされ、その後、コンピュータにより実行される。そのようなソフトウェア又はコンピュータプログラムが記録されているコンピュータ読み取り可能な媒体は、コンピュータプログラム製品である。コンピュータにおけるコンピュータプログラム製品の使用は、ビデオフレームのシーケンスを符号化するための有利な装置を実現するのが好ましい。
【００７０】
コンピュータシステム２７００はコンピュータモジュール２７０１と、キーボード２７０２及びマウス２７０３などの入力装置と、プリンタ２７１５、表示装置２７１４及びスピーカ（図示せず）を含む出力装置とにより形成されている。変調器−復調器（モデム）トランシーバ装置２７１６はコンピュータモジュール２７０１により、例えば、電話回線２７２１又は他の機能媒体を介して接続可能である通信ネットワーク２７２０との間で通信を実行するために使用される。モデム２７１６はインターネット、及びローカルエリアネットワーク（ＬＡＮ）又はワイドエリアネットワーク（ＷＡＮ）などの他のネットワークシステムに対するアクセスを獲得するために使用されることが可能であり、実現形態によってはコンピュータモジュール２７０１に組み込まれていることもある。
【００７１】
コンピュータモジュール２７０１は、通常、少なくとも１つのプロセッサユニット２７０５と、例えば、半導体ランダムアクセスメモリ（ＲＡＭ）及び読み取り専用メモリ（ＲＯＭ）から形成されるメモリユニット２７０６とを含む。モジュール２７０１は、ビデオ表示装置２７１４及びスピーカに結合するオーディオビデオインタフェース２７０７と、キーボード２７０２及びマウス２７０３、更にオプションであるジョイスティック（図示せず）に対するＩ／Ｏインタフェース２７１３と、モデム２７１６及びプリンタ２７１５に対するインタフェース２７０８とを有するいくつかの入出力（Ｉ／Ｏ）インタフェースを更に含む。実現形態によっては、モデム２７１６はコンピュータモジュール２７０１の内部、例えば、インタフェース２７０８の内部に組み込まれていても良い。記憶装置２７０９が設けられており、通常、これはハードディスクドライブ２７１０及びフロッピー（登録商標）ディスクドライブ２７１１を含む。磁気テープドライブ（図示せず）が更に設けられていても良い。ＣＤ‐ＲＯＭドライブ２７１２は通常は不揮発性データ源として設けられる。コンピュータモジュール２７０１の構成要素２７０５〜２７１３は、通常、相互接続バス２７０４を介して、当業者に知られている従来通りのコンピュータシステム２７００の動作モードをもたらすように通信する。個々で説明する構成を実施できるコンピュータの例はＩＢＭＴＭ−ＰＣ及びその互換機、ＳＵＮＴＭ  Sparcstations又はそこから派生した類似のコンピュータシステムを含む。
【００７２】
通常、アプリケーションプログラムはハードディスクドライブ２７１０に常駐しており、その実行時にプロセッサ２７０５により読み取られ、制御される。プログラム及びネットワーク２７２０から取り出されるデータの中間格納は、おそらくはハードディスクドライブ２７１０と協調して、半導体メモリ２７０６を使用して実現される。場合によっては、アプリケーションプログラムはＣＤ‐ＲＯＭ又はフロッピー（登録商標）ディスクに符号化された状態でユーザに供給され、対応するドライブ２７１２又は２７１１を介して読み取られるか、あるいはユーザによりネットワーク２７２０からモデム装置２７１６を介して読み取られても良い。更に、ソフトウェアは他のコンピュータ読み取り可能な媒体からコンピュータシステム２７００にロードされることも可能である。ここで使用される用語「コンピュータ読み取り可能な媒体」は、実行及び／又は処理のためにコンピュータシステム２７００に命令及び／又はデータを提供することに関与するあらゆる記憶媒体又は伝送媒体を表す。記憶媒体の例は、コンピュータモジュール２７０１の中にある装置であるか又は外にある装置であるかに関わらず、フロッピー（登録商標）ディスク、磁気テープ、ＣＤ−ＲＯＭ、ハードディスクドライブ、ＲＯＭ又は集積回路、光磁気ディスク、又はＰＣＭＣＩＡカードなどのコンピュータ読み取り可能なカードを含む。伝送媒体の例は無線送信チャネル又は赤外線送信チャネル、並びに別のコンピュータ又はネットワーク接続された装置へのネットワーク接続、Ｅメール送信及びウェブサイトなどに記録された情報を含めたインターネット又はイントラネットを含む。
【００７３】
システム２７０１で実行されるソフトウェアにより生成される圧縮ビデオデータはコンピュータネットワーク２７２０を介して送信されても良い。あるいは、圧縮データは、後の使用に備えて、例えば、ハードディスクドライブ２７１０又はＣＤ‐ＲＯＭ２７１２に格納されても良い。
【００７４】
３．０  第１の構成
図７は、ビデオシーケンスを処理するための第１の構成の概要を示す。図７の方法のいくつかのステップは、図５の方法を使用して画像を処理するときに使用されるステップと同じである。しかし、図７では、それらのステップはループ７０１の中に挿入されており、ループ７０１を繰り返すたびに、ビデオシーケンスの１つのフレームが符号化される。
【００７５】
方法はステップ７００で始まり、ビデオシーケンスの各フレームを順次処理するためにループ７０１に入る。ビデオシーケンスの全てのフレームが処理されると、ステップ７０９でループ７０１から出て、方法はステップ７１０で終了する。
【００７６】
ループ７０１の中では、ステップ５０１で、プロセッサ２７０５において実行されるプログラムが現在の入力フレームに何らかの必要な前処理を適用する。先に１つの画像の符号化に関連して説明したように、そのような前処理はレベルシフティング又は成分変換を含むであろう。前処理が完了した後、プロセッサ２７０５はステップ５０２で現在の画像にウェーブレット変換を適用する。次に、ステップ５０３で、プロセッサ２７０５はウェーブレット変換係数を整数値に量子化する。量子化されたウェーブレット係数にフリッカ減少ステップ７１１が適用されるのが好ましい。しかし、フリッカ減少７１１が使用されない場合には、プロセス流れは直接にエントロピー符号化ステップ７０５へ続く。フリッカ減少ステップ７１１については、以下に図２４〜図２６を参照して章５．０で説明する。
【００７７】
エントロピー符号化ステップ７０５では、プロセッサ２７０５で実行されるプログラムはプロセスウェーブレット係数を複数のコードブロックとして配列し、各コードブロックは算術エンコーダによってビットプレーンで符号化される。各コードブロックの符号化は、過剰符号化の量を減少させるために、符号化方式７１４により管理される。符号化方式７１４については、図１５及び図１６を参照して章３．６で更に詳細に説明する。
【００７８】
ステップ７０５で実行される符号化は、コードブロックが属する成分を考慮に入れる成分重み付け方式７１３によっても影響を受ける。１つの実現形態では、成分はＹＣbCr色空間成分のうちの１つである。Ｙ成分は輝度成分であり、Ｃb成分及びＣr成分は色信号成分である。成分重み付け方式７１３については、図１３及び図１４を参照して章３．５で更に詳細に説明する。
【００７９】
更に、ステップ７０５でコードブロックの符号化を終了させるための決定は、静的ブロック切捨て安定化方式７１２により影響を受ける。静的ブロックのそのような切捨てについては、図１０〜図１２を参照して章３．４で更に詳細に説明する。
【００８０】
現在のビデオフレームのコードブロックについてエントロピー符号化７０５が完了すると、プロセッサ２７０５はステップ７０６で圧縮データを目標ビット数にトリミングする。トリミングステップ７０６はコードブロックの、カットオフ閾値以下である速度‐ひずみ傾きを有するコーディングパスを放棄する。カットオフ閾値を選択する方法については、以下の章３．３で説明する。
【００８１】
符号化後トリミングステップ７０６に変わる方法として、ＪＰＥＧ２０００規格により推奨されているＰＣＲＤ−ｏｐｔルーチンがエントロピー符号化データに適用されても良い。ＰＣＲＤ−ｏｐｔアルゴリズムは図７にステップ５０５として示されており、それが代替ステップであることを示すために破線の輪郭により示されている。
【００８２】
次に、ステップ５０６で、プロセッサ２７０５は符号化データをビットストリームに編成し、圧縮フレームを出力する。ビットストリームはネットワーク２７２０を介して送信されても良いし、あるいは後の使用に備えて、例えば、ＣＤ−ＲＯＭ２７１２に格納されても良い。
【００８３】
次に、ステップ７０９で、方法は現在のフレームがビデオシーケンスの最終フレームであるか否かを検査する。シーケンス中にまだフレームがあれば（ステップ７０９のＮｏオプション）、プロセス流れはステップ５０１に戻り、シーケンス中の次のフレームを処理する。現在のフレームが最終フレームである場合には（７０９のＹｅｓオプション）、ループ７０１は終了し、処理はステップ７１０で終了する。その後、圧縮ビデオシーケンスはコンピュータネットワーク２７２０を介して送信されても良いし、あるいは後の使用に備えて格納されても良い。圧縮ビデオデータはシステム２７００のようなシステムを使用して復号され、たとえば、ビデオ表示装置２７１４に表示されても良い。
【００８４】
先に説明した通り、第１の構成は符号化方法７１４、成分重み付け方法７１３及び静的ブロック切捨て安定化方法７１２を使用する。しかし、ビデオ圧縮のための別の構成においては、これら３つの方法の異なる組み合わせを使用することができる。例えば、３つの方法の各々を他の２つを使用せずにビデオ圧縮のために使用することが可能である。
【００８５】
３．１  用語
ビデオシーケンスに関して、ビデオがフレーム１，．．．，Ｆから構成されていると仮定する。実現されるフレームｆ∈｛１，．．．，Ｆ｝のビットレートはＲachievedであり、目標ビットレートはＲtargetである。フレームｆの速度−ひずみ傾き閾値をλfとする。速度−ひずみ傾きが閾値λfより小さければ、コードブロックのビットプレーン符号化は終了される。単一のビデオフレームの場合、Ｎ個のコードブロックがあり、コードブロックｎ∈｛１，．．．，Ｎ｝に対して、コーディングパスはinである。そこで、コードブロックｎに対して、そのコーディングパスｉnの速度−ひずみ傾きをλinとする。
【００８６】
以下に示す表記法は、ウェーブレット係数の量子化を記述するために導入される。ウェーブレット係数は（−１，１）内に入るように正規化され、各々の係数はＰ桁の精度をもって固定小数点２進表現を使用して記述される。すなわち、係数Ｃは次の式により表される。
2005143105.tif 000015
（８）
式中、ｓ＝±１は係数の符号であり、ａp∈｛０，１｝はＣの小数部のｐ番目の２進数字を表す。尚、この表現は、実数値ウェーブレット係数の有限精度による２進小数への明示量子化を示唆していることに注意する。従って、量子化閾値を論じる場合、それはこの明示量子化を参照するのではなく、速度−ひずみ最適化ルーチンの後に、ある１つのビットプレーンにおける各コードブロックの切捨てにより起こる暗黙量子化を参照している。
【００８７】
ビットプレーンＬにおけるビットプレーン切捨てにより係数Ｃを量子化する演算は、次の式により与えられる演算子Ｑ［Ｃ，Ｌ］として記述されても良い。
2005143105.tif 000016
（９）
すなわち、Ｑ［Ｃ，Ｌ］は、ＣのうちのはじめのＬ個の２進数字のみが保持されているＣの量子化値である。｜Ｃ｜は、ｓが１に設定されている場合のＱ［Ｃ，Ｌ］と等価であるウェーブレット係数のマグニチュードを表す。コードブロックの切捨てビットプレーンＬ及び切捨てポイントＴは次の式により関連付けられる。
2005143105.tif 000017
（１０）
式中、floorはどの実数もそれより小さく、最も近い整数により近似されるような演算子である。以下の説明中、ｆは現在のフレームを表し、（ｆ−１）は先行するフレームを表す。
【００８８】
コーディングパスｉnから構成されるコードブロックｎ８０１のビットプレーン符号化を示す図８を参照して示すように、「切捨てポイント」と「終了ポイント」とは明確に異なっている。尚、コードブロックｎの各ビットプレーンは３つの公称コーディングパス（有意性パス、マグニチュード精密化パス及びクリーンアップパス）のうちの１つで符号化される。
【００８９】
コードブロックｎの符号化はコーディングパスｉn＝１  ８１１で始まり、コーディングパスｉn＝２  ８１２へ進み、それ以降、最下位ビットプレーンを符号化する最終コーディングパス８１３に至るまで同様に進む。各コーディングパスの終了時に、符号化プロセスを終了させるべきか否かを判定するために決定が実行される。この決定は、以下に更に詳細に説明するいくつかの要因によって影響を受ける。図８の例では、コードブロックｎの符号化はコーディングパスｉn＝９の終了時に終了する。これをコードブロックｎの終了ポイント８０３という。最終圧縮コードストリームはコードブロックｎの切捨てポイント８０２までに生成された圧縮データを含む。第１の構成の符号化方式７１４においては、コードブロックｎの切捨てポイントは、通常、コードブロックｎの終了ポイントよりコーディングパス１つ分少ない。目標は、過剰符号化の量を最小にすることである。符号化プロセスを終了させるための決定は、実質的に、先行するフレームにおける対応するブロック（すなわち、ウェーブレットドメインの同じ場所）の切捨てポイントに基づいている。
【００９０】
３．２  フレーム間の情報の格納
第１のフレームを処理する場合を除いて、図７の方法は現在のフレームを符号化するときに先行するフレームからの情報を利用する。フレーム間の情報を格納するのに適するメモリ構成が図９に示されている。ビデオシーケンスはフレーム１ ９０１、フレーム２ ９０２、フレーム３ ９０３からフレームＦ９０５までから構成されている。
【００９１】
フレーム１ ９０１の符号化が完了すると、関連情報は、図２７に示されるメモリ２７０６の１つの領域であるのが好ましいメモリ９０６に格納される。格納された情報は、フレーム２ ９０２を符号化するときにプロセッサ２７０５により使用される。そこで、フレーム２の関連情報はメモリ９０６の格納情報と置き換えられ、フレーム３を処理するときに使用される。このようなメモリ９０６の順次更新は、最終フレーム９０５が処理されるまで続く。
【００９２】
ビデオフレームｆが処理された後、そのフレームのウェーブレット係数値はシーケンスの次のフレームを処理する際に使用するためにメモリの記憶場所９１５に格納される。１つの実現形態では、ウェーブレット係数値の全てが格納される。しかし、ビデオフレームのウェーブレット係数値のサブセットのみが格納されるのが好ましい。例えば、フリッカ減少方式７１１は２ビットしか必要としないため、章５．０で更に説明するように、切り捨てられた係数のうちの２つの最下位ビットのみが格納されれば良い。
【００９３】
ビデオフレームｆを処理した後、フレームｆの各コードブロックの切捨てポイントはメモリ９０６の記憶場所９１１に格納される。切捨てポイント情報は、次のフレームを順次処理する際に符号化を終了させるべきか否かを考慮するときに使用される。１つの実現形態では、記憶場所９１１は各コードブロックの切捨てビットプレーンＬnを格納する。この実現形態は、例えば、ビデオフレームの符号化中にＰＣＲＤ−ｏｐｔルーチンが使用される場合に使用できるであろう。
【００９４】
記憶場所９１１に各コードブロックｎの切捨てビットプレーンＬnを格納するもう１つの方法は、コードブロックごとに最終ビットストリームに含まれるコーディングパスの数を格納する。コーディングパスは０でないビットプレーンのみを符号化するために採用される。コーディングパスを要求する０でないビットプレーンに到達する前に、１つ以上の０であるビットプレーンに遭遇する可能性はある。コードブロックｎの０であるビットプレーンの数をＡnとする。
【００９５】
第１の構成において、記憶場所９１１に格納される値は次の式により表される。
2005143105.tif 000018
（１１）
式中、Inはコードブロックｎのビットストリームに含まれるコーディングパスの数である。尚、各ビットプレーンと関連するコーディングパスは通常は３つ存在していることに注意する。コードブロックの０であるビットプレーンの数はフレームごとに異なるため、各コードブロックにおける０であるビットプレーンを補償することにより、次のフレームにおける切捨てポイントの等価の位置を厳密に推定することができる。
【００９６】
１つのビデオフレームにおけるコードブロックごとの絶対切捨てビットプレーンは、切捨てポイントが判定された後に格納される。切捨てポイントの記憶場所９１１への格納は、図７のステップ５０６の間に起こるのが好ましい。
【００９７】
記憶場所９１３は、フレームの各成分について実現された速度を格納する。図９は、１つの実現形態においては、画像のＹ成分、Ｃb成分及びＣr成分である３つの成分を示す。尚、ビデオフレームについて実現される総合速度は成分ごとの実現速度の和であることに注意する。すなわち、
2005143105.tif 000019
（１２）
式中、Ｍは成分の数である。
【００９８】
フレームｆのカットオフ閾値λfは記憶場所９１２に格納される。目標速度Ｒtargetは記憶場所９１４に格納される。
【００９９】
記憶場所９１６はコードブロックｎごとの速度−ひずみ傾きを格納するために使用される。
【０１００】
３．３  カットオフ閾値の推定
画像を符号化するときに適切な速度制御を実行するためには、適切なカットオフ傾き閾値を選択することが重要である。ビデオシーケンスで現在の画像に関してλfを推定することは、先行するビデオフレームのカットオフ速度‐ひずみ傾き閾値λf-1及び先行するフレームの実現速度Ｒf-1achievedを使用することを含む。言い換えれば、フレームｆのλfは、λf-1、Ｒf-1achieved及び目標ビットレートＲtargetの関数である。
【０１０１】
第１の構成においては、λ1、すなわち、ビデオシーケンスにおける第１のフレームの傾き閾値はＰＣＲＤ−ｏｐｔアルゴリズムにより選択されるのが好ましいが、他の選択方法が使用されても良い。
【０１０２】
後続するフレームに関しては、ｆ≠１の場合のλfは次のように推定される。
2005143105.tif 000020
（１３）
及び
2005143105.tif 000021
（１４）
従って、現在のフレームに関して、プロセッサ２７０５は、メモリ９０６に格納されている先行するフレームからの値を使用して傾きカットオフ閾値を計算する。
【０１０３】
第１の構成においては、λfは符号化ステップに先立って現在のフレームに関して計算される。
【０１０４】
３．４  静的コードブロック切捨て安定化
第１の構成は静的ブロック切捨て安定化方式７１２を含む。図１０は、ビデオシーケンスの各フレームをＭＪ２Ｋフォーマットに圧縮する方法を示す。図１０は図７のステップの多くを含むが、静的ブロック切捨て安定化７１２を伴う符号化ステップ７０５に関して更に詳細に示す。特に、ステップ１００３から１００６は図７のステップ７０５及び７１２に対応している。
【０１０５】
方法はステップ７００で始まり、次に、ループ７０１に入る、ループが繰り返されるたびに、ビデオシーケンスの現在のフレームが圧縮される。全てのフレームが圧縮されると、ループ７０１は終了し、方法はステップ７１０で終了する。
【０１０６】
ループ７０１の中では、プロセッサ２７０５はステップ１００２で現在のビデオフレームｆに対してウェーブレット変換ステップを実行するが、それらのステップは前処理ステップ５０１、ウェーブレット変換ステップ５０２、量子化ステップ５０３及び、好ましくはフリッカ減少ステップ７１１を含む。
【０１０７】
次に、プロセッサ２７０５で実行されるプログラムは、ｆの各コードブロックｎfを符号化するためのループ１００３に入る。コードブロックごとに、ステップ１００４でモーション検出パラメータが計算される。このステップについては、図１１を参照して以下に更に詳細に説明する。ステップ１００４で、プロセッサ２７０５は現在のコードブロックｎfを先行するフレーム（ｆ−１）の対応するコードブロックｎf-1と比較する。コードブロックｎfとコードブロックｎf-1との間でモーションが検出されなければ、コードブロックｎfは「静的」であるとフラグ付けされる。そうでない場合には、コードブロックｎfは「非静的」コードブロックであるとフラグ付けされる。
【０１０８】
モーション検出パラメータが計算されると、ステップ１００５でフレームｆが符号化される。この符号化は符号化手続きを終了させる方法を使用する。ステップ１００５では、現在のコードブロックが静的であるか又は非静的であるかに応じて、様々に異なる終了戦略が適用される。ステップ１００５については、以下に図１２を参照して更に詳細に説明する。
【０１０９】
次に、ステップ１００６で、プロセッサは、フレームｆに関して処理すべきコードブロックがまだ存在しているか否かを判定するために試験を実行する。試験１００６が肯定の応答を戻した場合、方法はステップ１００４に戻って、フレームｆの次のコードブロックを処理する。しかし、試験１００６が否定の応答を戻した場合（すなわち、現在のフレームにそれ以上のコードブロックが存在しない場合）には、プロセス流れはステップ１００７へ進む。
【０１１０】
ステップ１００７で、プロセッサ２７０５は各コードブロックｎf∈［ｎ＝１，．．．，Ｎ］の切捨てポイントを判定し、格納する。尚、Ｎはｆにおけるコードブロックの総数である。各コードブロックｎfの切捨てポイントは、λin≦λfに対応する最大のポイントｉnを選択することにより判定される（すなわち、図７のステップ７０６）。別の実現形態は、ＪＰＥＧ２０００規格により推奨されているＰＣＲＤ−ｏｐｔルーチンを使用することを含む（すなわち、図７のステップ５０５）。他の速度制御戦略が使用されても良い。ステップ１００７で判定された切捨てポイントの集合は、次のフレームｆ＋１を処理するときに使用するためにメモリ９１１に格納される。
【０１１１】
次に、符号化値はビットストリームとして編成される（ステップ５０６）。
【０１１２】
ステップ７０９で、現在のフレームｆがビデオシーケンスの最終フレームであるか否かを判定するための試験が実行される。試験７０９が否定の応答を戻した場合、処理はステップ１００２に戻り、シーケンス中の次のフレームを処理する。試験７０９が肯定の応答を戻した場合（すなわち、それ以上のフレームが存在しない場合）には、ループ７０１から出て、方法はステップ７１０で終了する。
【０１１３】
３．４．１  コードブロック間のモーションの計算
モーション検出パラメータを計算するステップ１００４について、図１１を参照して更に詳細に説明する。パラメータ計算はステップ１１００で始まり、ステップ１１０１へ進み、モーション検出を実行するために使用される全ての必要なパラメータが０に初期設定される。
【０１１４】
初期設定されるパラメータは、コードブロックが静的ブロックであるか又は非静的ブロックであるかを示すために使用されるStaticBlockフラグと、Md（モーション検出パラメータ）である。Mdの計算で使用される３つのパラメータ、すなわち、CorrelCurrPrev、CorrelCurr及びCorrelPrevも０に初期設定される。
【０１１５】
第１の構成では、Mdは次のように計算されるのが好ましい相関係数である。
2005143105.tif 000022
（１５）
式中、ｘ1，ｘ2，...，ｘL及びｙ1，ｙ2，．．．，ｙLは、共にエントリ数Ｌを有する２つのベクトルＸ及びＹに対するエントリである。Ｘはコードブロックｎfのベクトル化表現であり、Ｙはコードブロックｎf-1に対応するベクトル化表現である。Ｌはコードブロックｎfのサイズである。例えば、コードブロックｎfが高さ×幅の大きさである場合、Ｌ＝高さ×幅である。
【０１１６】
変数の初期設定の後、ループ１１０２に入り、コードブロックｎfの各ウェーブレット係数を順次処理する。現在考慮されている係数はＣnである。係数ごとに、ステップ１１０３で、現在のフレームｆ＝１であるか否かを判定するために試験が実行される。ｆ＝１であれば（ステップ１１０３のＹｅｓオプション）、先行するフレームとの比較を実行することができず、ウェーブレット係数に対する修正なしにコードブロックｎfは符号化される。ステップ１１０２のＹｅｓオプションの場合、プロセス流れは直接にステップ１１０６へ進む。ステップ１１０３が否定の応答を戻した場合（すなわち、現在のフレームが第１のフレームではない場合）には、コードブロックｎfのあらゆるウェーブレット係数に対して、ステップ１１０４でメモリからコードブロックｎf-1の対応するウェーブレット係数が検索される。先行するフレームの係数は記憶場所９１５に格納される。
【０１１７】
ステップ１１０５で、変数CorrelCurrPrev、CorrelCurr及びCorrelPrevは次のように更新される。
2005143105.tif 000023
演算子＋＝は変数の以前の値に対する累積加算を表す。
現在のコードブロックの全ての係数Ｃnが処理され終わると、以下の合計が得られることが理解されるであろう。
【０１１８】
１．  Ｘがコードブロックｎfである場合、
2005143105.tif 000024
２．  Ｙがコードブロックｎf-1である場合、
2005143105.tif 000025
３．  Ｘがコードブロックｎfであり且つＹがコードブロックｎf-1である場合、
2005143105.tif 000026
ステップ１１０６で、シーケンス中の次のフレームを処理するときに使用するために、現在のコードブロックｎfのウェーブレット係数がメモリ９１５に格納される。ステップ１１０７で、コードブロックｎfの全てのウェーブレット係数が処理され終わったか否かを判定するために試験が実行される。試験９０７が肯定の応答を戻した場合（すなわち、ブロック中にそれ以上の係数が存在しない場合）、ループ１１０２を出て、処理流れはステップ１１０８へ進む。現在のコードブロックにまだ係数がある場合には（ステップ１１０７のＮｏオプション）、プロセス流れはステップ１１０３に戻る。
【０１１９】
ステップ１１０８では、式（１５）を使用してMdが計算される。ステップ１１０９で、Mdが閾値Tsより大きいか否かを判定するために試験が実行される。Mdが閾値より大きい場合（ステップ１１０９のＹｅｓオプション）、ステップ１１１０で、StaticBlockフラグは、現在のコードブロックが先行するコードブロックと極めて大きく相関していることを示す１に設定される。Mdが閾値より小さい場合には（ステップ１１０９のＮｏオプション）、StaticBlockは０で変わらないままである。プロセス流れはステップ１００５で戻る。
【０１２０】
第１の構成では、閾値Tsは０．９に設定される。他の値も可能である。１つの実現形態においては、異なるＤＷＴレベルに対して異なるTsの値が使用される。別の実現形態では、画像の異なる成分に対して異なるTsの値が使用される。Tsの値が低くなるほど、安定化プロセスの効率は高くなる。しかし、画質との間に妥協点がある。
【０１２１】
フレーム間で係数ごとに２ビットしか格納されない場合、相関係数Mdはそれら２つの利用可能なビットのみを使用して計算される。このようにして計算される相関成分でも、フレーム間のモーションの変化を示す。
【０１２２】
３．４．２  ブロックを符号化する際のモーション検出パラメータの使用
図１２は、ステップ１００４で計算されたモーション検出パラメータが現在のコードブロックｎfの符号化を終了させるべきか否かを判定するときにどのように使用されるかを示す。図１２のステップはステップ１００５に対応している。
【０１２３】
ステップ１２０１で、現在の符号化パスＴfは０に設定される。次に、ステップ１２０３で、先行するビデオフレームの対応するコードブロックｎf-1の切捨てポイントＴ（ｆ−１）がメモリ９１１から検索される。
【０１２４】
次に、ステップ１２０５で、通常のＪＰＥＧ２０００符号化方法を使用してコードブロックｎfが符号化される。次に、ステップ１２０７で、現在のブロックのStaticBlockフラグが１に設定されているか否かを判定するために試験が実行される。現在のブロックが静的ブロックであれば（ステップ１２０７のＹｅｓオプション）、プロセス流れはステップ１２０９へ進む。しかし、現在のブロックが静的ブロックではない場合には（ステップ１２０７のＮｏオプション）、プロセス流れはステップ１２１１へ進む。
【０１２５】
ステップ１２０９で、プロセッサ２７０５は現在のコーディングパスＴ（ｆ）の値をＴ（ｆ−１）の値と比較する。Ｔf=Ｔ（ｆ−１）であり且つ現在のコードブロックが静的コードブロックである場合（ステップ１２０９のＹｅｓオプション）、現在のコードブロックの符号化はステップ１２１２で終了される。
【０１２６】
しかし、Ｔ（ｆ）がまだＴ（ｆ−１）と等しくない場合には（ステップ１２０９のＮｏオプション）、プロセス流れはステップ１２１１へ進む。
【０１２７】
現在のブロックが静的ブロックではない場合又はＴfがまだＴ（ｆ−１）と等しくない場合には、ステップ１２１１が実行される。ステップ１２１１では、現在のブロックについてまだコーディングパスが存在するか否かを判定するために試験が実行される。まだコーディングパスがあれば（ステップ１２１１のＹｅｓオプション）、プロセス流れはステップ１２０５に戻る。しかし、現在のブロックについてそれ以上コーディングパスが存在しない場合には（ステップ１２１１のＮｏオプション）、現在のブロックの符号化はステップ１２１２で終了する。
【０１２８】
ステップ１２１２で現在のブロックの符号化が完了すると、処理はステップ１００６で再開する。
【０１２９】
３．５  フレーム従属成分重み付け
第１の構成は、各ビデオフレームの画像成分に適応重み付けする方法を提供する。このフレーム従属成分重み付け方法７１３は、ＹＣbＣr色空間において輝度成分と色信号成分に対して異なるカットオフ速度−ひずみ閾値λfを使用する。以下の説明中、成分０は輝度成分Ｙを表し、成分１及び２は、それぞれ、色信号成分Ｃb及びＣrを表す。輝度成分は色信号成分より大きい影響を認知画質に対して及ぼし、従って、重み付け方法７１３は色信号成分を犠牲にしても輝度成分の符号化を優先する。
【０１３０】
異なる成分に対する重み付けλfは、視覚重み付けを適用する方法に対する改善である。図１３及び図１４をそれぞれ参照して、２つの二者択一的な重み付け方法を説明する。これら２つの方法のいずれにおいても、現在のフレームの圧縮度は先行するフレームに関して判定される。第１のバージョンでは、圧縮度は色信号成分に基づいて推定される。フレームがより多く圧縮可能である（すなわち、色信号成分を符号化するために要求されるビットの数がより少ない）と判定された場合、輝度成分に割り当てられるビットバジェットは増加する。
【０１３１】
重み付け方法７１３の第２のバージョンでは、輝度成分の符号化はある１つのひずみレベルに維持され、色信号成分の符号化は、輝度成分の過剰符号化がある場合にそれを補償するために重み付けされる。
【０１３２】
更に、方法７１３の第１のバージョンは、ビデオフレームの圧縮データを色信号成分に限定されるようにトリミングさせることができる。従って、フレームの輝度成分の圧縮が余りにも寛容であった場合には、そのフレームの色信号成分からより多くのデータをトリミングして、ビットを節約することになる。
【０１３３】
３．５．１  輝度カットオフ閾値の重み付け
図１３は、輝度カットオフ閾値が潜在的に調整される成分重み付け方式７１３を示す。図７を参照すると、図１３は、成分重み付け方式７１３を利用する符号化ステップ７０５に関して更に詳細に示している。明瞭にするため、図１３は図７のステップの一部を再現している。例えば、図１３のステップ１３００、１３０１、１３１２及び１３１３は図７のステップ７００、７０１、７０９及び７１０に対応している。成分重み付け方式がビデオシーケンスの各フレームに順次適用されることを強調するために、それらのステップは図１３でも保たれている。
【０１３４】
フレーム従属成分重み付けの方法７１３はステップ１３００で始まり、次に、プロセッサ２７０５がビデオシーケンスの各フレームを順次処理するループ１３０１に入る。ループ１３０１では、プロセッサ２７０５は第１のパスでビデオシーケンスの第１のフレームを処理し、後続するパスの間にビデオの後続するフレームを処理する。ビデオの全てのフレームが処理され終わった後、ステップ１３１２でループ１３０１を出て、方法はステップ１３１３で終了する。
【０１３５】
ループ１３０１の中のステップ１３０２で、プロセッサ２７０５は、まず、章３．３で先に説明したように現在のフレームｆのカットオフ閾値λfを判定する。また、現在のフレームは、現在のフレームを符号化するためのビットバジェットを判定する目標ビットレートを有する。
【０１３６】
次に、（図７のステップ５０１〜５０３で示されるように）前処理、成分変換及び量子化などの通常のＪ２Ｋ符号化ステップがプロセッサ２７０５により実行される。次に、ループ１３０３に入り、ビデオフレームの各成分を順次処理する。ループ１３０３では、プロセッサ２７０５は、まず、色信号成分を処理し、その後の最終パスで輝度成分を処理する。すなわち、ループ１３０３は成分を１、２、続いて０の順に処理する。
【０１３７】
ステップ１３０４では、現在の成分が２つの色信号成分のうちの一方であるか否かを判定するために、プロセッサ２７０５により試験が実行される。試験１３０４が肯定の応答を戻した場合、ステップ１３０２で判定されたλfを使用して通常のＪ２Ｋ符号化プロセスに従って現在の成分を符号化するために、ステップ１３０５が実行される。現在の成分が符号化された後、ステップ１３０６で、プロセッサ２７０５は現在の成分が成分２であるか否かを判定するために試験を実行する。現在の成分が１であれば（ステップ１３０６のＮｏオプション）、処理はステップ１３０８へ続き、現在の成分と関連する値がメモリ９０６にセーブされる。特に、現在の成分の実現速度が記憶場所９１３にセーブされる。
【０１３８】
次のステップ１３０９で、プロセッサ２７０５は現在の成分が最後の成分であるか否かを判定するために試験を実行する。試験１３０９が否定の応答を戻した場合、プロセス流れはステップ１３０４に戻り、次の成分を処理する。
【０１３９】
現在の成分が２である場合には（ステップ１３０６のＹｅｓオプション）、メモリ９０６から先行するフレームの統計値を検索するためにステップ１３０７が実行される。検索される統計値は先行するフレームｆ−１の実現成分速度Ｒachievedを含む。ステップ１３０７では、プロセッサは輝度成分を符号化するときに使用されるべきλfの重み付けを更に計算する。重み付けは、現在のビデオフレームの総合圧縮度を推定するために、現在のフレームｆと先行するビデオフレームｆ−１の双方の色信号成分の実現速度を使用する。例えば、現在の成分の実現速度が先行するビデオフレームの実現速度より速い場合、現在のビデオフレームは先行するビデオフレームと比較して圧縮度が低いと思われる。第１の構成はこの情報を使用して、輝度成分をより有効に符号化する。
【０１４０】
ステップ１３０７で現在のフレームがより圧縮度が高いと判定された場合、輝度成分の実現速度を増加させるようにλfが重み付けされるのが好ましい。現在のフレームがより圧縮度が高いとき、それは色信号成分を符号化するのに使用されるビットの数がより少なく、従って、フレームの目標ビットレート内にとどまりつつ、輝度成分を符号化するためにより多くのビットを利用できることを意味している。
【０１４１】
ステップ１３０７で、プロセッサ２７０５は次の式に従ってλfを調整する。
2005143105.tif 000027
（１６）
式中、Rfmachievedは現在のフレームｆにおける成分ｍの実現速度であり、R(f-1)machievedは先行するフレームｆ−１における成分ｍの実現速度である。
【０１４２】
現在のフレームが先行するフレームより低い圧縮度である場合、式（１６）の重み付け係数は１に限定される。重み付け係数を１に限定する理由は、輝度が色信号成分より大きな影響を認知画質に対して及ぼすからである。従って、圧縮度の低いフレームの場合、輝度成分の符号化は妥協されない。そこで、色信号成分をトリミングすることが必要になるであろう（以下のステップ１３１０を参照）。
【０１４３】
ステップ１３０７が完了した後、プロセス流れはステップ１３０８へ進み、現在の係数の実現速度がメモリ９０６に格納される。
【０１４４】
現在の成分が輝度成分であれば（ステップ１３０４のＮｏオプション）、ステップ１３１４で、ステップ１３０７で判定された調整済みλfを使用して成分の符号化が実行される。尚、ステップ１３０７でλfが減少された場合、一般に、そうでない場合よりも多くのコーディングパスが輝度成分の符号化に使用される。ステップ１３１４の後、プロセス流れはステップ１３０８へ進み、実現速度をメモリ９０６にセーブする。
【０１４５】
現在のビデオフレームｆの全ての成分が処理された後（ステップ１３０９のＹｅｓオプション）、ステップ１３１０に入り、データがトリミングを要求するか否か、すなわち、目標ビットレートを超過したか否かを判定する。トリミングが要求されていれば（ステップ１３１０のＹｅｓオプション）、成分１及び２の圧縮データをトリミングするためにステップ１３１１が実行される。圧縮データのトリミングは、λin≦Ｚ（所定の閾値）である成分１及び２のコードブロックｎfのコーディングパスｉnの圧縮データを放棄することから成る。閾値Ｚは次のように判定されるのが好ましい。
2005143105.tif 000028
（１７）
トリミングステップ１３１０及び１３１１は図７の符号化後トリミングステップ７０６に対応している。
【０１４６】
ステップ１３１１が完了した後、ステップ１３１２は、現在のフレームが最終フレームであるか否かを検査する。フレームが残っていれば（ステップ１３１２のＮｏオプション）、プロセス流れはステップ１３０２に戻り、次のフレームを処理する。それ以上フレームが存在しない場合には、プロセスはステップ１３１３で終了する。
【０１４７】
トリミングプロセスが要求されない場合（ステップ１３１０のＮｏオプション）、ステップ１３１１を飛び越し、処理はステップ１３１２へ続く。
【０１４８】
３．５．２  色信号カットオフ閾値の重み付け
図１４は、フレーム従属成分重み付け方式７１３の別の実現形態を示す。この場合、輝度成分のカットオフは調整されず、推定された圧縮度に従って色信号成分の重み付けが重み付けされる。
【０１４９】
方法は１４００で始まり、ビデオシーケンスの各フレームを順次処理するループ１４０１に入る。全てのビデオフレームが処理された後、ステップ１４１０でループ１４０１から出て、方法は１４１１で終了する。
【０１５０】
ループ１４０１の中で、ステップ１４０２において、プロセッサ２７０５は現在のビデオフレームｆのカットオフ閾値λfを判定する。ステップ１４０２はステップ１３０２と同じであり、章３．３で説明した手続きを使用する。次に、現在のフレームに対して前処理及び成分変換などの通常のＪ２Ｋ符号化処理ステップ（図７のステップ５０１〜５０３）が実行される。
【０１５１】
次に、ステップ１４０３で、現在のビデオフレームの各成分を順次処理するためのループに入る。ループ１４０３において、プロセッサ２７０５は、まず、輝度成分を処理し、次に後続するパスで色信号成分の各々を順次処理する。従って、ループ１４０３は成分を０、１、２の順に処理することになる。
【０１５２】
ステップ１４０４では、現在の成分が輝度成分であるか否かを判定するために試験が実行される。試験１４０４が肯定の応答を戻した場合、プロセス流れはステップ１４０６へ進み、ステップ１４０２で判定されたλfを使用して、通常のＪ２Ｋ符号化プロセスに従って成分を符号化する。成分が符号化された後、ステップ１４０７はメモリ９０６から先行するビデオフレームｆ−１の関連統計値を検索する。特に、先行するフレームで実現された速度がメモリ９１３から検索される。
【０１５３】
ステップ１４０７は、色信号成分を符号化するときに使用されるべきλfの重み付けを更に判定する。現在のフレームｆ（ステップ１４０６で判定される）と先行するフレームｆ−１の双方の輝度成分の実現速度に基づいて、現在のビデオフレームの総合圧縮度を推定することができる。従って、ｆの輝度成分の実現速度がｆ−１の輝度成分より高ければ、ビデオｆの圧縮度はビデオフレームｆ−１より低いと思われる。これに従って、ｆの色信号成分の実現速度を低減するために、カットオフ閾値λfが重み付けされる。
【０１５４】
閾値λfは次の式に従って重み付けされるのが好ましい。
2005143105.tif 000029
（１８）
式中、ｍ＝０、すなわち、輝度成分である。
【０１５５】
現在の成分に対して符号化が完了した後、次のフレームを処理するときに使用するのに備えて成分の実現速度をメモリ９１６にセーブするためにステップ１４０８が実行される。
【０１５６】
現在の成分が色信号成分の一方である場合には（ステップ１４０４のＮｏオプション）、ステップ１４０５で、先にステップ１４０７で判定された重み付きλfを使用して現在の色信号成分が符号化される。プロセッサ２７０５で実行されるプログラムは次にステップ１４０８へ進み、現在の成分の実現速度をメモリ９１３にセーブする。
【０１５７】
次に、ステップ１４０９は現在の成分が最後の成分であるか否かを検査する。フレームの他の成分が存在する場合、プロセス流れはステップ１４０４に戻り、次の成分を処理する。全ての成分が処理され終わっている場合には（ステップ１４０９のＹｅｓオプション）、ステップ１４１０は現在のフレームが最終フレームであるか否かを検査する。全てのフレームが処理され終わっている場合（ステップ１４１０のＹｅｓオプション）、ループ１４０１から出て、方法は１４１１で終了する。そうでない場合には（ステップ１４１０のＮｏオプション）、プロセス流れはステップ１４０２に戻り、次のフレームを順次処理する。
【０１５８】
３．６  符号化方式
第１の構成は、現在のビデオフレームｆのコードブロックｎfごとの過剰符号化の量を減少させる符号化方式７１４を使用する。符号化方式７１４は、フレームｆ中のコードブロックの符号化を終了させるべき時点を決定するために、ビデオシーケンスの先行するフレームにおけるコードブロックの切捨てポイントを使用する。
【０１５９】
図１５は、図７の符号化プロセスで使用された符号化方式７１４を示す。明瞭にするため、図１５は図７のステップの全てではないが、その一部を再現している。プロセスはステップ７００で始まり、ビデオシーケンスの各フレームｆを順次処理するためのループ７０１に入る。ループ７０１は第１回目の繰り返しでビデオシーケンスの第１のフレームを処理し、後続する繰り返しの中で、ループ７０１はビデオの対応する後続フレームを処理する。ビデオの全てのフレームが処理された後、ステップ７０９でループ７０１を出て、方法はステップ７１０で終了する。
【０１６０】
ループ７０１の中で、符号化方法は図１５に示されていないいくつかのステップを実行する。ビデオフレームごとに、方法はカットオフ閾値λfを推定し（図１３のステップ１３０２）、次に、プロセッサ２７０５は前処理、離散的ウェーブレット変換（ＤＷＴ）及び量子化から成る標準Ｊ２Ｋ符号化ステップ（図７のステップ５０１〜５０３）を実行する。次に、ループ７０１は、ビデオフレームｆの各コードブロックｎfを順次処理するための別のループ１５０２に入る。全てのコードブロックｎfが処理され終わった後、ステップ１５０９でループ１５０２を出て、処理は、コードブロックｎfの切捨てポイントを格納するステップ１５１０へ続く。
【０１６１】
ループ１５０２の中で、ステップ１５０３において、プロセッサ２７０５は先行するフレームｆ−１の対応するコードブロックｎf-1の切捨てポイントをメモリ９０６から検索する。尚、第１のフレームを符号化するときに使用すべき先行するフレームからの情報は存在しないので、第１のフレームは特殊ケースとして扱われることに注意する。従って、第１のフレームの場合、ステップ１５０３及び１５０４は省略され、第１のフレームの符号化はステップ１５０５で始まる。
【０１６２】
ステップ１５０４では、現在のコードブロックｎfの符号化を進めるべきか否かを判定するために試験が実行される。ステップ１５０４は、現在のコードブロックが静的ブロックであるか否か及びコードブロックｎf-1が符号化されたか否か（すなわち、ビットストリームの中で有意ビットプレーンが符号化されたか否か）を検査する。コードブロックｎfが静的ブロックであるか否かを判定するための手続きについては、先に図１１を参照して説明した。コードブロックｎfが静的コードブロックであると判定され、コードブロックｎf-1は符号化されていなかった場合（ステップ１５０４のＹｅｓオプション）、処理はステップ１５０９へ進み、コードブロックｎfの符号化は実行されない。しかし、試験１５０４が否定の応答を戻した場合には（ステップ１５０４のＮｏオプション）、プロセス流れはステップ１５０５へ進む。
【０１６３】
ステップ１５０５では、コードブロックｎfの各コーディングパスを符号化するためのループに入る。特定の１つのコードブロックについて符号化すべきコーディングパスの最大数は、符号化に先立って判定される（図示せず）。パスの最大数は標準ＪＰＥＧ２０００方法を使用して判定される。尚、Ｊ２Ｋでは、ビットプレーンごとに名目上は３つのコーディングパスが存在することに注意する。
【０１６４】
ループ１５０５の中で、ステップ１５０６においては、プロセッサ２７０５はコードブロックｎfの量子化ウェーブレット係数を符号化する。最初にループ１５０５に入るとき、ステップ１５０６はクリーンアップパスを実行する。それに続く繰り返しでは、ステップ１５０６は、有意性伝播パスから再開する前に、有意性伝播パス、マグニチュード精密化パス又はクリーンアップパスをこの順序で実行する。１つのコーディングパスを符号化した後、符号化ステップ１５０６は現在のコーディングパスと関連するひずみ値及び速度を判定する。ひずみ及び速度は、現在のコーディングパスの後に符号化を終了させるべきか否かを判定するために使用される。終了試験はコーディングパス１５０６が完了するたびにステップ１５０７で実行されるが、この試験については以下に図１６を参照して更に詳細に説明する。
【０１６５】
終了試験１５０７が否定であり且つ処理すべきそれ以上のコーディングパスが存在しない場合、処理はステップ１５０６に戻り、次のコーディングパスを処理する。しかし、終了試験１５０７が肯定であれば、現在のコーディングパスは最終コーディングパスと判定され、プロセス流れはステップ１５０８へ進み、コードブロックｎfの符号化を終了する。
【０１６６】
ステップ１５０７は、コードブロックｎfの終了ポイントを確定する。次に、ステップ１５０８で、コードブロックｎfに対してトリミングが適用される。トリミングは、コードブロックｎfの切捨てポイントを判定することと、速度−ひずみ傾きλin≦λfを有するコーディングパスｉnの圧縮データを放棄することから成る。ステップ１５０８で実行されるトリミングは、ステップ７０６の符号化後トリミングに対応している。
【０１６７】
トリミングが完了した後、ステップ１５０９で、プロセッサ２７０５は現在のコードブロックが最後のコードブロックであるか否かを試験する。処理すべきコードブロックがそれ以上存在しない場合（ステップ１５０９のＮｏオプション）、処理はステップ１５０３に戻る。しかし、全てのコードブロックが処理され終わっている場合には（ステップ１５０９のＹｅｓオプション）、ループ１５０２から出る。
【０１６８】
全てのコードブロックが処理された後、図１５には示されていないが、いくつかの標準Ｊ２Ｋ符号化ステップが実行される。符号化ステップはビットストリーム編成（図７のステップ５０６）を含む。
【０１６９】
次に、ステップ１５１０で、次のビデオフレーム（ｆ＋１）を処理するときに使用するために、全てのコードブロックの切捨てポイントがメモリ９１１に格納される。次に、ステップ７０９は現在のフレームが最終フレームであるか否かを試験する。これが当てはまらない場合（ステップ７０９のＮｏオプション）、プロセス流れはステップ１５０２に戻り、シーケンス中の次のフレームを符号化する。それ以上のフレームが存在しない場合には（ステップ７０９のＹｅｓオプション）、方法はステップ７１０で終了する。
【０１７０】
３．６．１  終了基準
次に、図１６を参照して、コードブロックｎｆの終了ポイントを判定する手続きを更に詳細に説明する。図１６において、ステップ１６０３〜１６０８は図１５のステップ１５０７に対応している。第１の構成では、コーディングパスの後にコードブロックｎfを終了させるための決定はコードブロックｎf-1の切捨てポイントを利用する。
【０１７１】
図１６を参照すると、図１５を参照して先に説明したようにコードブロックｎfの各コーディングパスを処理するためにループ１５０５に入る。要求される全てのコーディングパスを符号化した後、ループ１５０５を出て、プロセス流れはステップ１５０８へ進み、符号化プロセスを終了する。尚、コードブロックｎfの符号化プロセスの終了は、通常、コードブロックｎfの最終コーディングパスを符号化する前に起こることに注意する。
【０１７２】
ステップ１６０３は、現在のコードブロックｎfが静的コードブロックであるか否か及び現在の符号化プロセスが対応するコードブロックｎf-1と同じ切捨てポイント（ビットプレーン）に到達したか否かを試験する。これら２つの条件に適合していると（ステップ１６０３のＹｅｓオプション）、コードブロックｎfの符号化は終了し、プロセス流れはステップ１５０８へ進み、符号化を終了する。しかし、現在のコードブロックが静的ブロックではない場合又は対応する先行するコードブロックの切捨てポイントにまだ到達していない場合には（ステップ１６０３のＮｏオプション）、プロセス流れはステップ１６０４へ進み、更に終了試験が実行される。コードブロックが静的ブロックであるか否かを判定する手続きについては、先に図１１に関して説明した。
【０１７３】
コードブロックｎfに対して、符号化ステップ１５０６は現在のコーディングパスｉnの速度−ひずみ傾きλinを計算する。ステップ１６０４は、速度−ひずみ傾きλinが現在のフレームのカットオフ閾値λfより大きいか否かを試験する。カットオフ閾値の計算については先に章３．３で説明した。現在のコーディングパスの速度‐ひずみ傾きがカットオフ閾値より大きい場合（ステップ１６０４のＮｏオプション）、処理はステップ１５０６に戻り、次のコーディングパスを符号化する（すなわち、ｉn＝ｉn＋１）。しかし、現在のコーディングパスの速度‐ひずみ傾きがカットオフ閾値より小さい場合には（ステップ１６０４のＹｅｓオプション）、プロセス流れはステップ１６０５へ進み、更に試験が実行される。
【０１７４】
ステップ１６０５はループ１５０５においてコードブロックｎfに関してそれまでに処理されたすべてのコーディングパスを検査し、０でないλinを有するクリーンアップコーディングパスが存在するか否か、すなわち、現在のコードブロックについて少なくとも１つのクリーンアップパスで有意ビットが符号化されたか否かを判定する。試験１６０５が肯定の応答を戻した場合（すなわち、クリーンアップパスで以前に有意ビットが符号化されていた場合）、プロセス流れはステップ１６０６へ進み、更に試験が実行される。試験１６０５が否定である場合（すなわち、０でないλinを有するクリーンアップコーディングパスが存在する場合）には、プロセス流れはステップ１５０６に戻り、次のコーディングパスを符号化する。
【０１７５】
ステップ１６０６では、プロセッサ２７０５は、コードブロックｎf-1で３つ以上の有意ビットプレーンが符号化されたか否かを試験する。試験１６０６が否定の応答を戻した場合、処理はステップ１６０８へ続く。試験１６０６が肯定の応答を戻した場合（すなわち、コードブロックｎf-1で３つ以上の有意ビットプレーンが符号化されていた場合）には、ステップ１６０７で別の試験が実行される。ステップ１６０７で、コードブロックｎｆについてそれまでに３つ以上の有意ビットプレーンが符号化されていた場合（ステップ１６０７のＹｅｓオプション）、処理はステップ１６０８へ続く。しかし、試験１６０７が否定の応答を戻した場合には、処理はステップ１５０６に戻り、次のコーディングパスを処理する。
【０１７６】
ステップ１６０８では、ステップ１５０６でコーディングパスｉnにより生成された圧縮データがＡバイトの長さを超えるか否かを判定するために、更に試験が実行される。第１の構成では、Ａ＝３バイトであるのが好ましい。試験１６０８が否定の応答を戻した場合、処理はステップ１５０６に戻り、別のコーディングパスを処理する。しかし、試験１６０８が肯定の応答を戻した場合（すなわち、生成されたコード語がＡバイトを超える場合）には、ループ１５０５を出て、プロセス流れはステップ１５０８で再開する。ループ１５０５を出ることにより、現在のコーディングパスはコードブロックの終了ポイントとして確定される。
【０１７７】
第１の構成の変形においては、例えば、バイトがクリーンアップパスなどの特定の種類のコーディングパスによりコード語に寄与されたか否かを検査するなど、追加の終了条件も可能である。更に、異なる値のＡを使用しても良いであろう。
【０１７８】
３．７  符号化後トリミング
先に述べた通り、第１の構成は、以下に図１７を参照して説明する符号化後トリミングの方法を使用する。図１７のステップは図７のステップ７０６に対応しており、図１５のステップ１５０８のトリミングにおいても使用される。トリミング方法は、１つのコードブロックの符号化が終了した後に一度適用される。コードブロックを符号化することにより、第１のコーディングパスから符号化が終了した最終コーディングパスまでの一連のコーディングパスが得られる。各コーディングパスと関連して、速度−ひずみ傾きが存在する。
【０１７９】
トリミング方法はステップ１７００で始まり、コードブロックｎfの第１のコーディングパスから始めて、コードブロックｎfのコーディングパスを巡って繰り返すためのループ１７０１に入る。
【０１８０】
ループ１７０１の中で、ステップ１７０２では、プロセッサ２７０５は、現在のコーディングパスｉnの速度−ひずみ傾きλinが現在のフレームｆのカットオフ閾値λf以下であるか否かを判定する。試験１７０２が否定の応答を戻した場合（すなわち、λin＞λf）、現在のコーディングパスはコード語に含められるべく保持され、処理はステップ１７０３へ進み、現在のコーディングパスがコードブロックｎfの最後のコーディングパスであるか否かを判定する。現在のコーディングパスが最後のコーディングパスではない場合（ステップ１７０３のＮｏオプション）、ステップ１７０４はコーディングパスｉnの指標を増分し、プロセス制御はステップ１７０２に戻り、次のコーディングパスを考慮する。符号化は最大数のコーディングパスまでしか進まない。試験１７０３が肯定の応答を戻した場合（すなわち、現在のコーディングパスが最後のコーディングパスである場合）には、ループ１７０１を出て、トリミング方法はステップ１７０６で終了する。
【０１８１】
λin≦λfであれば（すなわち、ステップ１７０２のＹｅｓオプション）、コーディングパスinと関連する圧縮データはステップ１７０５で放棄され、方法はステップ１７０６で終了するので、後続するコーディングパスは放棄される。
【０１８２】
トリミングが完了した後、最後に残っているコーディングパスがコードブロックｎfの切捨てポイントである。
【０１８３】
方法１７００は、システム２７０１がコードブロックｎfの符号化を完了した後に実行されるのが好ましい。方法１７００はコードブロックｎfの圧縮データをトリミングするために使用され、トリミングの後も残っている圧縮データはビデオフレームｆの最終ビットストリームを構成するために保持される。この方法は、コードブロックをλfにより判定される切捨てポイントに切り捨てることとして考えられることも可能である。
【０１８４】
別の実現形態においては、トリミング方法７０６はＭＪ２Ｋ符号化プロセスの間のいくつかの場所で、例えば、１つのサブバンドを符号化した後又は分解能レベルを符号化した後のいずれかで実現されることが可能である。
【０１８５】
符号化後トリミング方法７０６は符号化後ひずみ最適化の一形態として考えられることが可能であり、ひずみの最適化が符号化に先立って判定されるλfの値を使用して実現されるという点で、ＪＰＥＧ２０００により推奨されているＰＣＲＤ−ｏｐｔアルゴリズムとは異なる。この方法とは対照的に、ＰＣＲＤ−ｏｐｔは符号化の後にλfを選択する。
【０１８６】
４．０  第２の構成
ビデオシーケンスを圧縮するための第２の構成が図１８に示されている。第２の構成は図７に関して説明した第１の構成と共通する要素をいくつか有するが、異なる符号化方式が使用されるという点で異なっている。現在のコードブロックについてコーディングパスを符号化するとき、第２の構成は次のコーディングパスの速度−ひずみ傾きを予測し、符号化を終了させるべきか否かを判定する際に、予測された傾きを使用する。
【０１８７】
そこで、図１８を参照して、ビデオシーケンスを処理するための第２の構成の概要を説明する。方法は７００で始まり、次に、ビデオシーケンスの第１のフレームから始めて、シーケンスの各フレームｆを順次処理するためのループ７０１に入る。全てのフレームが処理された後、ステップ７０９でループを出て、方法１８００はステップ７１０で終了する。
【０１８８】
ループ７０１の中で、ステップ５０１において、プロセッサ２７０５は、必要に応じたレベルシフティング及び成分変換を含めて、現在のフレームの必要な前処理を実行する。前処理後、ステップ５０２で、プロセッサ２７０５により画像に離散的ウェーブレット変換が適用される。次に、ステップ５０３で、ウェーブレット変換された係数が整数値に量子化される。ウェーブレット係数を量子化した後、プロセッサ２７０５はフリッカ減少方式７１１を適用するのが好ましい。ここまでの方法の流れは第１の構成の方法と同じである。
【０１８９】
次に、ステップ１８０５で、現在の画像の処理済み量子化ウェーブレット係数が複数のコードブロックとして配列され、各コードブロックは算術エンコーダによってビットプレーンで符号化される。コードブロックの符号化１８０５は、起こりうる場合に過剰符号化を回避するための符号化方式１８１４により管理される。
【０１９０】
加えて、コードブロックｎfの符号化１８０５は先に説明した成分重み付け方式７１３を利用するのが好ましい。更に、コードブロックｎfを符号化している間、先に説明した静的ブロック切捨て安定化方式７１２により、ステップ１８０５の符号化プロセスを終了させるための決定が実行されるのが好ましい。
【０１９１】
現在のフレームｆのコードブロックについて符号化が完了した後、更に速度制御を実行するために、符号化後トリミング方式７０６が任意に適用される。
【０１９２】
次に、ステップ５０６で、圧縮ビデオフレームを出力するために、フレームｆの符号化データがビットストリームとして編成される。圧縮フレームはコンピュータネットワーク２７２０を介して送信されても良いし、あるいは後の使用に備えて、例えば、ＣＤ‐ＲＯＭ２７１２に格納されても良い。
【０１９３】
ステップ７０９では、ｆがビデオシーケンス中の最後のビデオフレームであるか否かを判定するための試験に入る。試験７０９が否定の応答を戻した場合、処理はステップ５０１に戻り、次のビデオフレームを処理する。試験７０９が肯定の応答を戻した場合には、ループ７０１を出て、方法はステップ７１０で終了する。
【０１９４】
４．１  速度−ひずみ傾きの予測を伴う符号化方式
第２の構成は、各コードブロックの過剰符号化を回避するために符号化方法１８１４を使用する。次に、図１９を参照して、符号化方式１８１４を使用するエントロピー符号化１８０５を説明する。明瞭にするため、図１８のステップの全てではないが、その一部が図１９でも再現されている。
【０１９５】
方法はステップ７００で始まり、第１のフレームから始めて、ビデオの各フレームｆを順次処理するループ７０１に入る。ビデオの全てのフレームを処理し終わった後、ステップ７０９でループ７０１を出て、方法はステップ７１０で終了する。
【０１９６】
ループ７０１の中で、プロセッサ２７０５は、ビデオフレームごとに、前処理、ＤＷＴ及び量子化などの通常のＪ２Ｋ符号化ステップ（図１９には示されていないステップ５０１〜５０３）を実行する。次に、方法は、フレームｆ中の各コードブロックｎfを処理するための別のループ１９０２に入る。１つのビデオフレームの全てのコードブロックを処理した後、１９１０でループ１９０２を出る。続くステップ１９１１は各コードブロックｎfの切捨てポイントを格納する。
【０１９７】
ループ１９０２の中で、ステップ１９０３において、プロセッサ２７０５は、まず、コードブロックｎf-1の切捨てポイントを検索する。尚、ｆ＝１である場合、それは特殊ケースとして扱われるため、このステップを飛び越すことに注意する。第１のフレームの場合には、ステップ１９０３に入らずに、処理はステップ１９０４に入る。
【０１９８】
ステップ１９０４では、コードブロックｎfの符号化を進めるべきか否かを判定するために試験が実行される。コードブロックｎfが静的コードブロックであると判定され且つコードブロックｎf-1が符号化されていなかった場合、試験１９０４は肯定であり、その場合、処理はステップ１９１０へ進み、コードブロックｎfに対して符号化は実行されない。コードブロックが静的ブロックであるか否かを判定する手続きについては、先に図１１を参照して説明した。
【０１９９】
しかし、試験１９０４が否定の応答を戻した場合には、現在のコードブロックを符号化するためにプロセス流れはステップ１９０５へ進む。ステップ１９０５で、コードブロックｎfの各コーディングパスｉnを符号化するためのループに入る。特定の１つのコードブロックに対して符号化すべきコーディングパスの最大数は、符号化に先立って判定される。尚、Ｊ２Ｋの場合、ビットプレーンごとに名目上は３つのコーディングパスが存在することに注意する。
【０２００】
ステップ１９０６は、通常のＪＰＥＧ２０００符号化方法を使用して現在のコードブロックの現在のコーディングパスを符号化する。初めにループ１９０５に入った後、ステップ１９０６はクリーンアップパスを実行する。後続する繰り返しにおいては、ステップ１９０６は、有意性伝播パスによってサイクルを再開する前に、有意性伝播パス、マグニチュード精密化パス及びクリーンアップパスをこの順序で実行する。ステップ１９０６は、現在のコーディングパスｉnと関連するひずみ値及び速度を判定する。
【０２０１】
次に、ステップ１９０７で、次のコーディングパスｉn+1の速度−ひずみ傾きλin＋１を推定するために、プロセッサ２７０５により速度値及びひずみ値が使用される。推定は、現在のコードブロックについてそれまで処理されたコーディングパスの以前の速度‐ひずみ傾きに基づいて実行される。推定方法については、以下に図２１を参照して更に詳細に説明する。
【０２０２】
次に、ステップ１９０８は、現在のコーディングパスの後で符号化プロセスを終了すべきか否かを試験する。終了試験１９０８が否定であり且つ処理すべきコーディングパスがまだ存在している場合、プロセス流れはステップ１９０６に戻り、次のコーディングパスを符号化する。しかし、終了試験１９０８が肯定である場合には、それは現在のコーディングパスが最終コーディングパスであると判定されたことを意味しているため、プロセス流れはステップ１９０９へ進み、コードブロックｎfの符号化を終了する。符号化プロセスを終了させることは、算術符号化エンジンを終了させること、資源クリーンアップなどを含む。
【０２０３】
符号化が完了すると、ステップ１９１０は処理すべきコードブロックがまだ存在しているか否かを試験する。存在していれば（ステップ１９１０のＹｅｓオプション）、処理はステップ１９０３に戻り、次のコードブロックを処理する。試験１９１０が否定の応答を戻した場合には、ステップ１９１０でループ１９０２を出る。全てのコードブロックが処理された後、ビットストリーム編成などのＪ２Ｋ符号化ステップが実行される（図示せず）。
【０２０４】
ステップ１９１１では、次のビデオフレームを処理するときに使用するために、全てのコードブロックの切捨てポイントがメモリ９０６に格納される。次に、ステップ７０９は現在のフレームが最終フレームであるか否かを試験する。試験７０９が肯定の応答を戻した場合、プロセス流れはステップ１９０２に戻り、次のフレームを処理する。試験７０９が否定の応答を戻した場合には、ループ７０１を出て、方法はステップ７１０で終了する。
【０２０５】
４．１．１  終了基準
図２０（ａ）及び図２０（ｂ）は、ステップ１９０８の終了試験を説明するフローチャートである。明瞭にするため、図２０（ａ）及び図２０（ｂ）は図１９のステップの全てではないが、その一部を再現している。現在のコーディングパスの後にコードブロックｎfの符号化を終了すべきか否かの決定は、次のコーディングパスの推定速度−ひずみ傾きλin＋１及びコードブロックｎf-1の切捨てポイントを使用する。
【０２０６】
図２０（ａ）及び図２０（ｂ）を参照すると、ステップ１９０５で、ビデオフレームｆの現在のコードブロックの各コーディングパスの符号化を処理するためのループに入る。要求される全てのコーディングパスについて符号化を実行した後、ステップ１９０９でループ１９０５を出て、現在のコードブロックの符号化プロセスを終了する。
【０２０７】
ループ１９０５は、現在のコードブロックの第１のコーディングパスから最後のコーディングパスまでコーディングパス（ｉn）を繰り返す。まず、ステップ１９０６は、先に説明したように、３つのパスのうちの１つでコードブロックｎfの量子化ウェーブレット係数を符号化する。次に、ステップ２００３では、コードブロックｎfが静的コードブロックとして分類されるか否か及びコードブロックｎf-1の最後のＢ個のビットプレーンの中に符号化が到達しているか否か（すなわち、現在のコードブロックの符号化ビットプレーンがコードブロックｎf-1の切捨てビットプレーンからＢ個のビットプレーンを減算したビットプレーンを超えているか否か）を判定するために試験が実行される。Ｂ＝１であるのが好ましいが、他の値のＢを使用することも可能である。試験２００３が否定の応答を戻した場合、処理はステップ２００５へ続き、λin＋１は推定されない。しかし、試験２００３が肯定の応答を戻した場合には、ステップ１９０７でλin＋１が推定される。
【０２０８】
処理はステップ２００５へ続き、コードブロックｎfが静的コードブロックであるか否か及びコーディングパスｉnがコードブロックｎf-1の切捨てポイントと等しいか否かを判定するために試験が実行される。試験２００５が肯定の応答を戻した場合、コードブロックｎfの符号化は終了し、プロセス流れはステップ１９０９へ進み、符号化を終了する。試験２００５が否定の応答を戻した場合には、ステップ２００６で更に試験が実行される。
【０２０９】
ステップ２００６は推定されたλin＋１（ステップ１９０７で判定される）がλfより大きいか否かを試験する。これが当てはまる場合、処理はステップ１９０６に戻り、コードブロックｎfの次のコーディングパス（すなわち、ｉn=ｉn＋１）を符号化する。試験２００６が肯定である場合（すなわち、推定された速度‐ひずみ傾きがカットオフ閾値より小さい場合）には、ステップ２００７で更に試験が実行される。
【０２１０】
ステップ２００７は、既に符号化されているコーディングパスの中で０ではないクリーンアップパス速度−ひずみ傾きを求めて試験する。それが存在しない場合、処理はステップ１９０６に戻り、次のコーディングパスを処理する。言い換えれば、ステップ２００７はコードブロックｎfについてそれまでに処理された全てのコーディングパスｉnを検査し、０でないλinを有するクリーンアップコーディングパスが存在するか否かを判定するのである。試験２００７が肯定である場合、ステップ２００８で更に試験が実行される。
【０２１１】
ステップ２００８は、コードブロックｎf-1において３つ以上の有意ビットプレーンが符号化されたか否かを判定する。試験２００８が否定の応答を戻した場合、処理は２０１０へ続く。試験２００８が肯定の応答を戻した場合には、ステップ２００９はコードブロックｎfにおいてこれまでに３つ以上の有意ビットプレーンが符号化されているか否かを試験する。これが当てはまる場合、処理はステップ２０１０へ続く。しかし、試験２００９が否定の応答を戻した場合（すなわち、符号化されているビットプレーンが２つに満たない場合）には、処理はステップ１９０６に戻り、次のコーディングパスを符号化する。
【０２１２】
ステップ２０１０では、ステップ１９０６においてコーディングパスｉnにより生成された圧縮データの長さがＥバイトを超えるか否かを判定するために更に試験が実行される。第２の構成においては、Ｅ＝３バイトであるのが好ましい。試験２０１０が否定の応答を戻した場合、処理はステップ１９０６に戻り、更にコーディングパスを処理する。試験２０１０が肯定の応答を戻した場合には、ループ１９０５を出て、コードブロックｎfの符号化プロセスは１９０９で終了する。
【０２１３】
尚、ステップ１９０７でλin＋１の推定を実行するために使用されるコードブロックｎfのλinは、コードブロックｎfの速度−ひずみ凸閉包上に位置する傾きであることに注意する。言い換えれば、コードブロックｎfの凸閉包はコーディングパスが終了するごとに計算されるということになる。
【０２１４】
第２の構成の更に別の変形においては、図２０（ａ）及び図２０（ｂ）のステップ２００３〜２０１０で説明された符号化終了条件とは別の追加終了条件を含めることができる。
【０２１５】
４．１．２  次の速度‐ひずみ傾きの推定
λin＋１を推定する方法が図２１に示されている。図２１のステップはステップ１９０７に対応している。
【０２１６】
ステップ２１０１で、コードブロックｎfについてそれまでに生成された速度−ひずみ傾きポイントの凸閉包が形成される。凸閉包は次のようにして形成される。
【０２１７】
１．  コードブロックｎfについて各コーディングパスの速度−ひずみ傾きをグラフに表す。図２２は、速度−ひずみ傾きとコーディングパスとの関係を表すグラフの一例を示す。ｙ軸は速度−ひずみ傾きであり、ｘ軸は対応するコーディングパスである。図２２の例は８つのコーディングパスに関わる傾きを示す。傾き２２０８は第１のコーディングパスに対応し、傾き２２０７は第２のコーディングパスに対応し、傾き２２０６は第３のコーディングパスに対応し、それ以降も同様であり、第８のコーディングパスに対応する傾き２２０１に至る。一般に、連続するコーディングパスごとに傾きは小さくなるが、その減少は単調ではない。
【０２１８】
２．  コードブロックｎfの最後のコーディングパスから、第１のコーディングパスに向かって逆戻りし、速度−ひずみ傾きの値が増加しない場合、速度−ひずみ傾きを０に設定する。図２２の例では、傾き２２０１から始めて、傾き２２０２の値は傾き２２０１の値より小さいため、速度−ひずみ傾き２２０２は０に設定される。傾き２２０３の値は速度−ひずみ傾き２２０１より大きいため、速度−ひずみ傾き２２０３は凸閉包に含まれる。同様に、傾き２２０４は凸閉包に含まれるが、傾き２２０５は０に設定される。このプロセスが傾き２２０８まで繰り返される。
【０２１９】
コーディングパスｉnの速度−ひずみ傾きλinが凸閉包上にない場合、その速度−ひずみ傾きは０に設定される。凸閉包が形成されると、ステップ２１０２は凸閉包上の速度‐ひずみ傾きを通る直線を当てはめる。これは図２３に示されており、直線２３０１は図２２の凸閉包の傾きに当てはめられている。
【０２２０】
ステップ２１０３では、速度−ひずみ傾きλin＋１を推定するために、当てはめられた直線が線形補外される。例えば、図２３を参照すると、コーディングパス９（２３０３）の速度−ひずみ傾きλin＋１２３０３は、それが直線２３０１上に位置すると仮定することにより推定される。
【０２２１】
他の変形においては、λin＋１の推定はこれまで説明した線形推定ではなく、他の形態の推定によって（例えば、スプライン推定を使用して）獲得される。更に、別の推定プロセスの変形例は、ステップ２１０１で凸閉包を形成せずに、クリーンアップパスのみのλin値を使用する。
【０２２２】
５．０  フリッカ減少
図７及び図１８に示すように、第１及び第２の構成はフリッカ減少方法７１１を利用するのが好ましい。
【０２２３】
モーションＪＰＥＧ２０００の非線形量子化プロセスは、元のビデオシーケンスに存在するセンサ雑音を増幅する。この雑音増幅を安定化させることが望ましい。モーションＪＰＥＧ２０００においては、現在のフレームのウェーブレット係数を平滑化するために先行するフレームのウェーブレット係数を使用するような平滑化技法が使用されてきた。係数の格納と関連するメモリのコストは著しく高いものになる可能性がある。
【０２２４】
しかし、フリッカアーティファクトを回避するために、先行するフレームのウェーブレット係数の全てを格納する必要はない。全ての係数ではなく、１つの係数のうちの２ビットのみを使用して平滑化を実現できる。従って、先行するフレームの係数を格納するときに３２ビットが通常に使用された場合、以下に説明する２ビット平滑化技法は先行するフレーム全体を格納するために要求されるメモリを１／１６に減少させる。
【０２２５】
雑音の非線形増幅をウェーブレット係数のビットパターンの中における雑音の伝播としてみなすことができる。以下に図２４〜図２６を参照して説明する技法は、現在のフレームのウェーブレット係数のビットを介して伝播する増幅を平滑化する。要求されるのは、先行するフレームの対応する係数のうちの２ビットのみである。
【０２２６】
いくつかの制約の下で、現在のウェーブレット係数に下記の公式を適用することにより、フリッカは平滑化される。
2005143105.tif 000030
（１９）
式中、｜Ｃf｜は係数のマグニチュードを表し、ａp∈｛０，１｝である。
【０２２７】
先に定義した通り、値ａpは係数の小数部のｐ番目の２進数字を表す。指標ｆは現在のフレームを表し、（ｆ−１）は先行するフレームを表す。
【０２２８】
切捨てビットプレーンＬ（ｆ）は係数を平滑化するための基準として使用されるため、式（１９）の重要なパラメータである。Ｌ（ｆ）は現在のフレームにおける切捨てビットプレーンである。しかし、切捨てビットプレーンはコードブロックの符号化が完了するまで利用できないであろう。従って、その代わりに、構成は対応する先行するコードブロックの切捨てビットプレーンＬ（ｆ−１）を利用する。
【０２２９】
式１９の方法バージョンは次のようになる。
2005143105.tif 000031
（２０）
図２４は、フリッカ平滑化技法７１１で使用される２進数字の位置を示す概略図である。図２４は、現在のフレームｆにおける係数２４０４と、先行するフレーム（ｆ−１）における対応する係数２４０２とを示す。図示の便宜上、それら２つの係数は８ビットを有するものとして示されている。係数２４０２の最上位ビットはビット２４０６であり、係数２４０２の最下位ビットはビット２４０９である。ビットの指標付けは最上位ビットで始まり、最下位ビットに到達するまで増分される。
【０２３０】
線２４１０はフレーム（ｆ−１）における係数の切捨てビットプレーンＬ（ｆ−１）を表す。この例では、係数２４０２の３つの最下位ビットが放棄される。
【０２３１】
ビット２４０７はａL(f-1)-1f-1である。ビット２４０８はａL(f-1)f-1である。ビット２４０７及び２４０８は係数２４０２の切捨て形態の2つの最下位ビットである。
【０２３２】
現在のフレームｆの係数２４０４において、ビット２４１３はａL(f-1)-1fである。ビット２４１４はａL(f-1)fである。ビット２４１５はａL(f-1)+1fである。従って、係数２４０４がビットプレーンＬ（ｆ−１）で切り捨てられた場合、ビット２４１５が放棄される最上位のビットであり、ビット２４１３及び２４１４は係数２４０４の切捨て形態に残る２つの最下位ビットである。
【０２３３】
フリッカ減少技法は信号と雑音を区別しない。その結果、現在のフレームｆのウェーブレット係数が先行するフレームｆ−１の対応するウェーブレット係数と異なるとき、その差が真に信号に存在しており、雑音の結果ではないとしても、現在の係数は平滑化される。しかし、ウェーブレット係数のマグニチュードの変化はごくわずかであるため、それは顕著ではない。
【０２３４】
図２５は、係数ごとに先行するフレームからの２ビットを使用してモーションＪＰＥＧ２０００ビデオシーケンスのフリッカを減少させる技法のフローチャートを示す。フリッカ平滑化はプロセスのステップ２５０４及び２５０８で実行される。図２５のその他のステップは標準モーションＪＰＥＧ２０００符号化技法を使用して実現されることが可能である。
【０２３５】
方法はステップ２５００で始まり、必要な全ての変数が初期設定される。次に、ビデオシーケンスにおいて一度に１フレームを圧縮するためのループ２５０１が開始される。ループ２５０１が全てのフレームを処理し終わると、ステップ２５０９でループから出て、処理はステップ２５１０で終了する。
【０２３６】
ループ２５０１の中で、ステップ２５０２において現在のフレームに離散的ウェーブレット変換(ＤＷＴ）が適用される。次に、各々の繰り返しが現在のフレームの１つのコードブロックを符号化するループ２５０３に入る。
【０２３７】
ステップ２５０４では、現在のコードブロックのウェーブレット係数に２ビットフリッカ平滑化技法が適用される。ステップ２５０４については、図２６を参照して更に詳細に説明する。
【０２３８】
次に、ステップ２５０５で、現在のコードブロックの算術符号化が処理される。次に、ステップ２５０６で、プロセッサ２７０５は現在のコードブロックがフレーム中の最後のコードブロックであるか否かを検査する。フレーム中にコードブロックがまだ存在している場合（ステップ２５０６のＮｏオプション）、プロセス制御はステップ２５０４に戻り、次のコードブロックが処理される。現在のブロックが現在のフレームにおける最後のブロックである場合には（ステップ２５０６のＹｅｓオプション）、プロセス流れはステップ２５０７へ進む。
【０２３９】
ステップ２５０７では、目標ビットレートに適合するように、全てのコードブロックの切捨て深さが判定される。ステップ２５０７に適する技法は、先に図６を参照して説明した、ＪＰＥＧ２０００規格により推奨されているＰＣＲＤ−ｏｐｔアルゴリズムである。切捨てポイント情報を提供するために、他のビットレート制御技法が使用されても良い。この切捨てポイント情報はモーションＪＰＥＧ２０００規格に従ったデコーダの必要条件である。現在のフレームのコードブロックの切捨てポイントは、次のフレームを符号化するときに使用するためにメモリに格納される。
【０２４０】
ステップ２５０８では、現在のフレームの各ウェーブレット係数の２つのビットａL(f)f及びａL(f)-1fが取り出される。係数ごとに取り出される２つのビットは、ビデオシーケンスの次のフレームを処理するときに使用するためにメモリに格納される。
【０２４１】
次に、ステップ２５０９で、プロセッサ２７０５は現在のフレームがビデオシーケンス中の最終フレームであるか否かを検査する。残っているフレームがある場合（ステップ２５０９のＮｏオプション）、プロセス流れはステップ２５０２に戻り、次のフレームにＤＷＴが適用される。しかし、現在のフレームが最終フレームである場合には（ステップ２５０９のＹｅｓオプション）、処理はステップ２５１０で終了する。
【０２４２】
図２６は、ステップ２５０４の２ビットウェーブレット係数平滑化を更に詳細に示すフローチャートである。２ビットフリッカ平滑化技法はステップ２６００で始まる。次に、ステップ２６０１は現在のフレームがシーケンス中の第１のフレームであるか否かを試験する。第１のフレームより以前のフレームに関連する情報を利用することは不可能であるので、第１のフレームを２ビット平滑化技法により平滑化することはできない。現在のフレームが第１のフレームである場合（ステップ２６０１のＹｅｓオプション）、制御流れはステップ２６１２で終了する。これにより、全アルゴリズムは平滑化アルゴリズムのステップを迂回し、ステップ２５０５へ続く。
【０２４３】
現在のフレームがシーケンス中の第１のフレームではない場合には（ステップ２６０１のＮｏオプション）、制御流れはステップ２６０２へ進み、現在のコードブロック中の各係数が考慮されるループに入る。
【０２４４】
ループ２６０２の中の第１のステップであるステップ２６０３で、メモリからフレーム（ｆ−１）の対応する係数の２つの格納ビット（ａL(f-1)及びａL(f-1)-1）が検索される。図２４に示す例では、ステップ２６０３で検索される２つのビットはビット２４０７及び２４０８、すなわち、先行するフレームの対応する係数の２つの最下位ビットである。
【０２４５】
ステップ２６０３はフレーム（ｆ−１）の対応するコードブロックの切捨てポイントＴを更に検索する。この先行する切捨てポイントＴ（ｆ−１）は、ステップ２５０８で説明したようにメモリに格納されている。切捨てビットプレーンＬ（ｆ−１）は次の式を適用することにより得られるであろう。
2005143105.tif 000032
（２１）
式中、floorはどの実数もそれより小さく、最も近い整数により近似されるような演算子である。
【０２４６】
次に、ステップ２６０４で、現在の係数Ｃfの２進数字が検索される。次に、ステップ２６０５は現在の係数が平滑化を要求するか否かを判定する。
【０２４７】
ステップ２６０５で使用するのに適する試験は次の通りである。
2005143105.tif 000033
（２２）
式中、演算子｜｜は論理ＯＲであり、＝＝は双方のオペランドが同じ値を有する場合にＴＲＵＥを戻す演算子であり、＆＆は論理ＡＮＤであり、！＝（すなわち、等しくない）はオペランドが互いに異なる場合にＴＲＵＥを戻す演算子である。
【０２４８】
論理ＯＲの左側のオペランドは、ビットプレーンＬ（ｆ−１）で切り捨てられた現在の係数のマグニチュードを検査する。これは次の加算に相当する。
2005143105.tif 000034
（２３）
式（２３）の和が０より大きい場合、それは、ビットプレーンＬ（ｆ−１）で切り捨てられた現在の係数の少なくとも１つの２進数字が１であることを示唆する。図２４の例では、論理ＯＲの左側の表現はビット２４１２〜２４１４のうちの少なくとも１つが０でないかを試験する。式（２２）の表現がＴＲＵＥである場合、それは現在の係数がビットストリームに符号化されそうであることを示唆し、従って、現在の係数に２ビット平滑化を適用することが適切である。
【０２４９】
式（２２）における論理ＯＲの右側の表現は、切捨てビットプレーンが先行するフレームの切捨てビットプレーンと同じままであるときに現在の係数が符号化されないと思われる場合にＴＲＵＥである。しかし、論理ＯＲの右側の表現は、現在の係数に２ビット平滑化技法を適用することを望ましくする特定のビットの集合体を識別する。
【０２５０】
まず、表現は式（２３）の和が０に等しいか否かを検査する。これは、現在の係数がビットプレーンＬ（ｆ−１）で切り捨てられる場合、現在の係数の残る全ての２進数字が０であることを示唆している。図２４の例において、この条件はビット２４１２〜２４１４の全てが０に等しい場合に満たされるであろう。これが当てはまるとき、現在の係数は符号化されないと思われる。
【０２５１】
表現の第２の項は、現在の係数の切捨て形態に次に上位のビットが追加されるときに、現在の係数の有意性を見る。図２４の例では、考慮されるこの追加ビットはビット２４１５である。第２の表現は、以下に示す和を含む。
2005143105.tif 000035
（２４）
図２４を参照すると、式（２２）において論理ＯＲの右側の表現により識別される特定のビットの集合体は、ビット２４０８が「１」であり、ビット２４１５が「１」であり且つビット２４１２〜２４１４は全て「０」である場合に現れる。
【０２５２】
現在の係数が平滑化を要求しない場合（ステップ２６０５のＮｏオプション）、制御流れは平滑化ステップ２６０６及び２６０７を迂回して、ステップ２６１０へ進む。しかし、平滑化が要求される場合には（ステップ２６０５のＹｅｓオプション）、制御流れはステップ２６０６へ進み、現在の係数のマグニチュードが平滑化される。
【０２５３】
ステップ２６０６の平滑化は式（２０）の適用により実行される。あるいは、平滑化ステップ２６０６に対して次のルックアップテーブルを使用することが可能である。
表５：現在の係数を修正するためのルックアップテーブル
2005143105.tif 000036
表５において、初めの３つの列で指定される条件が満たされるとき、第４の列に示される量が現在の係数のＬ（ｆ−１）切捨てビットプレーンに追加される。表５は、ａL(f-1)fとａL(f-1)f-1が異なる場合に限って適用される。式(２０)からわかるように、切捨てビットプレーンＬ（ｆ−１）におけるビットがフレームｆとフレーム（ｆ−１）とで同じであるとき、現在の係数は不変である。
【０２５４】
次のステップ２６０７では、ウェーブレット係数の符号が復元される。
【０２５５】
次に、ステップ２６１０で、プロセッサ２７０５は現在の係数がコードブロックにおける最後の係数であるか否かを検査する。コードブロックに係数がまだ残っている場合（ステップ２６１０のＮｏオプション）、プロセス流れはステップ２６０３に戻り、次の係数を処理する。しかし、現在の係数がコードブロックの最後の係数である場合には（ステップ２６１０のＹｅｓオプション）、ステップ２６１１で２ビットウェーブレット係数平滑化は終了し、全アルゴリズムは図２５のステップ２５０５へ進む。
【０２５６】
ステップ２６０５に他の条件を追加することができる。例えば、下記の条件を試験しても良い。
2005143105.tif 000037
この条件は、コードブロックの切捨てビットプレーンがフレーム（ｆ−２）からフレーム（ｆ−１）まで変化しなかったことを保証するために使用される。これにより、フレーム（ｆ−１）から現在のフレームｆまでに切捨てビットプレーンが変化しなかった確率がより高くなる。この条件を使用するために、フレーム（ｆ−２）の各コードブロックの切り捨てポイントを格納することができるであろう。あるいは、変化が起こったか否かを示すフラグを格納することも可能であろう。
【０２５７】
更に、いくつかの望ましくないアーティファクトを回避するために、ステップ２６０５で条件
2005143105.tif 000038
及び
2005143105.tif 000039
を使用することができる。
【０２５８】
現在の係数の２つのビットを格納するために必要とされるメモリを更に縮小することが可能である。ステップ２５０８では、４種類の２ビット語、すなわち、（０，０）、（０，１）、（１，０）及び（１，１）のみが格納される。関連する適用状況において、発明者は格納される２ビット語は８０％を越える割合で（０，０）であることを認めた。従って、単一のビット０を使用して（０，０）語を格納し且つ他の語を１０１，１１０及び１１１としてそれぞれ格納することにより、ウェーブレット係数ごとに平均でメモリを更に１．４ビットまで縮小することができる。他の技法を使用して、この数字を更に減少させることは可能であろう。
【０２５９】
２ビットウェーブレット係数平滑化技法は、１つのフレームの全ての成分に適用されるのが好ましい。それでも尚、いくつかの実験によれば、ＹＣbＣr色空間を使用するとき、Ｙ成分のみの平滑化がフリッカによって起こる視覚的アーティファクトを著しく減少させるのに十分であったことがわかっている。Ｙ成分のみを平滑化した場合、その結果、必要とされるメモリをウェーブレット係数当たり１ビット未満まで減少させることが可能であろう（例えば、４：２：０ＹＣbＣr色空間を使用してウェーブレット係数当たり０．９５ビット）。
【０２６０】
２ビットウェーブレット係数平滑化技法は１つのフレームの１つの成分の全てのコードブロックに適用されるのが好ましい。しかし、ＤＷＴ分解能レベルのレベル１、２及び３にのみ平滑化技法を適用することが可能である。これにより、フリッカアーティファクトを著しく減少させつつ、ビットを格納するために要求されるメモリは更に縮小されるであろう。
【０２６１】
方法の１つの実現形態においては、係数を切り捨てるために使用される切捨てビットプレーンＬはセンサ雑音の関数として選択されても良い。
【０２６２】
先に概要を述べた通り、現在のフレームｆにおけるウェーブレット係数の修正は先行するフレーム（ｆ−１）からのウェーブレット係数当たり２つのビットに基づいている。尚、相関係数Mdを計算する場合、最終フレーム（ｆ−１）のウェーブレット係数も必要とされることに注意する。相関係数は、モーションに起因する対応するコードブロックの間の変化を示すために使用される。ウェーブレット係数当たりわずか２ビットの精度で計算された場合、相関係数はモーションの変化を示す。従って、図２６の方法により現在の係数をフィルタリングするときに使用される２つのビットで、十分に相関係数を計算できるのである。
【０２６３】
６．０  産業上の適用可能性
以上の説明から、説明された構成は映像及びコンピュータの産業分野に適用可能であることが明白である。
【０２６４】
以上、本発明のいくつかの実施例のみを説明したが、それらの実施例は単なる例であって、限定的な意味を持たず、本発明の趣旨から逸脱せずに変形及び／又は変更を実施することができる。例えば、入力画像に離散的ウェーブレット変換（ＤＷＴ）を適用する場合を例として方法を説明したが、ここで説明した方法は、離散的コサイン変換（ＤＣＴ）などの異なる変換が入力画像に対して適用される場合にも使用されることが可能である。
【図面の簡単な説明】
【０２６５】
【図１】従来のＪＰＥＧ２０００規格に従った元の画像成分の対応する単一レベルＤＷＴ画像及び２レベルＤＷＴ画像への変換を示す図。
【図２】従来のＪＰＥＧ２０００規格に従ったサブバンドの複数のコードブロックへのタイリングを示す図。
【図３】従来のＪＰＥＧ２０００規格に従ったコードブロックの複数のブロックレイヤへの符号化を示す図。
【図４】従来のＪＰＥＧ２０００規格に従ったコードブロックにおけるコーディングパスのストライプ指向走査を示す図。
【図５】入力画像をＪＰＥＧ２０００フォーマットに圧縮する方法のフローチャート。
【図６】図５の方法で使用するためのＰＣＲＤ−ｏｐｔアルゴリズムのフローチャート。
【図７】本発明の開示に従ってビデオ画像を圧縮する第１の構成のフローチャート。
【図８】切捨てポイントと終了ポイントの相違を示す概略図。
【図９】図７の方法を適用するときにフレーム間情報を格納する際に使用するためのメモリ構造を示す概略ブロック線図。
【図１０】図７の静的ブロック切捨て安定化の方法のフローチャート。
【図１１】図１０の方法においてモーション検出パラメータを計算する方法のフローチャート。
【図１２】図１０の方法において図１１のモーション検出パラメータがどのように使用されるかを示すフローチャート。
【図１３】図７の方法で使用するためのフレーム利用成分重み付けの第１の方法のフローチャート。
【図１４】図７の方法で使用するためのフレーム利用成分重み付けの別の方法のフローチャート。
【図１５】図７の方法で使用するための符号化方式のフローチャート。
【図１６】図１５の方法で使用するための終了条件のフローチャート。
【図１７】図１５の方法で使用するための符号化後トリミングの方法のフローチャート。
【図１８】本発明の開示に従ってビデオ画像を圧縮する第２の構成のフローチャート。
【図１９】図１８の第２の構成と共に使用するための符号化方式のフローチャート。
【図２０（ａ）】図１９の方法で使用するための終了条件のフローチャート。
【図２０（ｂ）】図１９の方法で使用するための終了条件のフローチャート。
【図２１】図２０（ａ）及び図２０（ｂ）の方法で使用するための、次のコーディングパスの速度‐ひずみ傾きを予測する方法のフローチャート。
【図２２】コーディングパスの数と、速度−ひずみ傾きとの関係の一例を示すグラフ。
【図２３】図２２のグラフの凸閉包を示す図。
【図２４】連続するフレームにおける２つの対応する係数の一例を示す図。
【図２５】フリッカ減少のために２ビット平滑化を使用してビデオのフレームのシーケンスをモーションＪＰＥＧ２０００フォーマットに圧縮する方法のフローチャート。
【図２６】図２５の方法で使用するための係数平滑化ステップ２５０４のフローチャート。
【図２７】ここで説明する構成を実施できる汎用コンピュータの概略ブロック線図。
【符号の説明】
【０２６６】
２７００…汎用コンピュータシステム、２７０１…コンピュータモジュール、２７０２…キーボード、２７０３…マウス、２７０４…相互接続バス、２７０５…プロセッサユニット、２７０６…メモリユニット、２７０７…オーディオビデオインタフェース、２７０８…インタフェース、２７０９…記憶装置、２７１０…ハードディスクドライブ、２７１１…フロッピー（登録商標）ディスクドライブ、２７１２…ＣＤ‐ＲＯＭドライブ、２７１３…Ｉ／Ｏインタフェース、２７１４…表示装置、２７１５…プリンタ、２７１６…モデムトランシーバ装置、２７２０…通信ネットワーク、２７２１…電話回線
【図１】
2005143105.tif 000040
【図２】
2005143105.tif 000041
【図３】
2005143105.tif 000042
【図４】
2005143105.tif 000043
【図５】
2005143105.tif 000044
【図６】
2005143105.tif 000045
【図７】
2005143105.tif 000046
【図８】
2005143105.tif 000047
【図９】
2005143105.tif 000048
【図１０】
2005143105.tif 000049
【図１１】
2005143105.tif 000050
【図１２】
2005143105.tif 000051
【図１３】
2005143105.tif 000052
【図１４】
2005143105.tif 000053
【図１５】
2005143105.tif 000054
【図１６】
2005143105.tif 000055
【図１７】
2005143105.tif 000056
【図１８】
2005143105.tif 000057
【図１９】
2005143105.tif 000058
【図２０（ａ）】
2005143105.tif 000059
【図２０（ｂ）】
2005143105.tif 000060
【図２１】
2005143105.tif 000061
【図２２】
2005143105.tif 000062
【図２３】
2005143105.tif 000063
【図２４】
2005143105.tif 000064
【図２５】
2005143105.tif 000065
【図２６】
2005143105.tif 000066
【図２７】
2005143105.tif 000067