(57)【特許請求の範囲】
【請求項１】
符号化ビデオに対するデブロッキングパラメータを判定する方法であって、
デブロッキングベクトルに従って復号化ピクチャのデブロッキングを実行するステップと、ここで、前記デブロッキングベクトルは、それぞれが当該デブロッキングベクトルの各次元となるデブロッキングパラメータで表わされる；
前記デブロッキングされた復号化ピクチャからデブロッキング誤差を推定するステップと、
前記推定された誤差が所定の閾値を上回る場合には、ベクトルの次元によって表される各デブロッキングパラメータに対して、
前記次元の各々において前記デブロッキングベクトルを進め、
前記進められた次元に従って前記復号化ピクチャをデブロッキングし、
前記進められた次元に従ってデブロッキングされた前記復号化ピクチャからデブロッキング誤差を推定するステップと、
前記ベクトルの次元それぞれに対して算出された前記推定されたデブロッキング誤差を表す傾斜ベクトルに従って、次の反復における前記デブロッキングベクトルを変更するステップと
を反復することを特徴とする方法。
【請求項２】
前記推定された誤差が前記閾値を上回らない場合、符号化ピクチャデータ及び前記デブロッキングベクトルの識別子を復号器へ送信するステップを更に備えることを特徴とする請求項１に記載の方法。
【請求項３】
前記デブロッキング誤差が所定の閾値を下回るまで前記方法を反復するステップを更に備えることを特徴とする請求項１に記載の方法。
【請求項４】
前記方法の２回目の反復において、
最初の反復と前記２回目の反復との間の推定された誤差の変化率を推定するステップと、
前記変化率が第２の閾値を下回る場合に、符号化ピクチャデータ及び前記デブロッキングベクトルの識別子を復号器へ送信するステップと、
を更に備えることを特徴とする請求項１に記載の方法。
【請求項５】
前記傾斜の大きさが第２の閾値を下回る場合に、符号化ピクチャデータ及び前記デブロッキングベクトルの識別子を復号器へ送信するステップを更に備えることを特徴とする請求項１に記載の方法。
【請求項６】
前記方法の後続の反復において、
前記変更されたデブロッキングベクトルが前記方法の前の反復において使用されたデブロッキングベクトルと一致するかを判定するステップと、
前記変更されたデブロッキングベクトルが前記方法の前の反復において使用されたデブロッキングベクトルと一致する場合、符号化ピクチャデータ及び前記デブロッキングベクトルの識別子を復号器へ送信するステップと、
を更に備えることを特徴とする請求項１に記載の方法。
【請求項７】
前記進めるステップは、前記次元の各々において前記デブロッキングベクトルを増分するステップを備えることを特徴とする請求項１に記載の方法。
【請求項８】
前記進めるステップは、前記次元の各々において前記デブロッキングベクトルを先行の反復の前記傾斜により判定された方向に調整するステップを備えることを特徴とする請求項１に記載の方法。
【請求項９】
最初の反復の前記デブロッキングベクトルではデフォルト値が設定されることを特徴とする請求項１に記載の方法。
【請求項１０】
最初の反復の前記デブロッキングベクトルは、先行ピクチャに対して前記方法を実行することにより最終的に取得されたデブロッキングベクトルの値に設定されることを特徴とする請求項１に記載の方法。
【請求項１１】
最初の反復の前記デブロッキングベクトルは、現在のピクチャと共通の符号化の割り当てを有する先行ピクチャに対して前記方法を実行することにより最終的に取得されたデブロッキングベクトルの値に設定されることを特徴とする請求項１に記載の方法。
【請求項１２】
最初の反復の前記デブロッキングベクトルは、現在のピクチャと同様の動き特性を有する先行ピクチャに対して前記方法を実行することにより最終的に取得されたデブロッキングベクトルの値に設定されることを特徴とする請求項１に記載の方法。
【請求項１３】
前記デブロッキングピクチャの前記推定される誤差は、前記デブロッキングされた復号化ピクチャとフィルタリングされていないソースピクチャデータとの比較から判定されることを特徴とする請求項１に記載の方法。
【請求項１４】
前記デブロッキングピクチャの前記推定される誤差は、前記デブロッキングされた復号化ピクチャとフィルタリングされたソースピクチャデータとの比較から判定されることを特徴とする請求項１に記載の方法。
【請求項１５】
ビデオ符号化方法であって、
動き補償によりソースピクチャのブロックを符号化するステップと、
参照ピクチャのブロックを復号するステップと、ここで、当該ステップは、
反復傾斜利用探索処理によりデブロッキングフィルタリング動作のパラメータを推定するステップと、
最終的に推定されたデブロッキングパラメータに従って、復号化された参照ピクチャをデブロッキングフィルタリングするステップとを含む；
参照ピクチャ記憶装置に前記デブロッキングピクチャを格納するステップと、
前記符号化ピクチャのデータ及び前記最終的に推定されたデブロッキングパラメータをチャネルへ送信するステップとを備え、
前記反復傾斜利用探索処理は、
デブロッキングベクトルに従って復号化ピクチャのデブロッキングを実行するステップと、ここで、前記デブロッキングベクトルは、それぞれが当該デブロッキングベクトルの各次元となるデブロッキングパラメータで表わされる；
前記デブロッキングされた復号化ピクチャからデブロッキング誤差を推定するステップと、
前記推定された誤差が所定の閾値を上回る場合には、ベクトルの次元によって表される各デブロッキングパラメータに対して、
前記次元の各々において前記デブロッキングベクトルを進め、
前記進められた次元に従って前記復号化ピクチャをデブロッキングし、
前記進められた次元に従ってデブロッキングされた前記復号化ピクチャからデブロッキング誤差を推定するステップと、
前記ベクトルの次元それぞれに対して算出された前記推定されたデブロッキング誤差を表す傾斜ベクトルに従って、次の反復における前記デブロッキングベクトルを変更するステップと
を有することを特徴とする方法。
【請求項１６】
前記推定された誤差が前記閾値を上回らない場合、符号化ピクチャデータ及び前記デブロッキングベクトルの識別子を復号器へ送信するステップを更に備えることを特徴とする請求項１５に記載の方法。
【請求項１７】
前記デブロッグ誤差が所定の閾値を下回るまで前記方法を反復させるステップを更に備えることを特徴とする請求項１５に記載の方法。
【請求項１８】
前記方法の２回目の反復において、
最初の反復と前記２回目の反復との間の推定された誤差の変化率を推定するステップと、
前記変化率が第２の閾値を下回る場合、符号化ピクチャデータ及び前記デブロッキングベクトルの識別子を復号器へ送信するステップと、
を更に備えることを特徴とする請求項１５に記載の方法。
【請求項１９】
前記傾斜の大きさが第２の閾値を下回る場合、符号化ピクチャデータ及び前記デブロッキングベクトルの識別子を復号器へ送信するステップを更に備えることを特徴とする請求項１５に記載の方法。
【請求項２０】
前記方法の後続の反復において、
前記変更されたデブロッキングベクトルが前記方法の前の反復において使用されたデブロッキングベクトルと一致するかを判定するステップと、
前記変更されたデブロッキングベクトルが前記方法の前の反復において使用されたデブロッキングベクトルと一致する場合、符号化ピクチャデータ及び前記デブロッキングベクトルの識別子を復号器へ送信するステップと、
を更に備えることを特徴とする請求項１５に記載の方法。
【請求項２１】
前記進めるステップは、前記次元の各々において前記デブロッキングベクトルを増分するステップを備えることを特徴とする請求項１５に記載の方法。
【請求項２２】
前記進めることは、前記次元の各々において前記デブロッキングベクトルを先行の反復の前記傾斜により判定された方向に調整することを備えることを特徴とする請求項１５記載の方法。
【請求項２３】
最初の反復の前記デブロッキングベクトルにはデフォルト値が設定されることを特徴とする請求項１５に記載の方法。
【請求項２４】
最初の反復の前記デブロッキングベクトルには、先行ピクチャに対して前記方法を実行することにより最終的に取得されたデブロッキングベクトルの値が設定されることを特徴とする請求項１５に記載の方法。
【請求項２５】
最初の反復の前記デブロッキングベクトルには、現在のピクチャと共通の符号化の割り当てを有する先行ピクチャに対して前記方法を実行することにより最終的に取得されたデブロッキングベクトルの値が設定されることを特徴とする請求項１５に記載の方法。
【請求項２６】
最初の反復の前記デブロッキングベクトルには、現在のピクチャと同様の動き特性を有する先行ピクチャに対して前記方法を実行することにより最終的に取得されたデブロッキングベクトルの値が設定されることを特徴とする請求項１５に記載の方法。
【請求項２７】
前記デブロッキングピクチャの前記推定される誤差は、前記デブロッキングされた復号化ピクチャとフィルタリングされていないソースピクチャデータとの比較から判定されることを特徴とする請求項１５に記載の方法。
【請求項２８】
前記デブロッキングピクチャの前記推定される誤差は、前記デブロッキングされた復号化ピクチャとフィルタリングされたソースピクチャデータとの比較から判定されることを特徴とする請求項１５に記載の方法。
【請求項２９】
ビデオ符号化装置であって、
ソースピクチャ及び予測ブロックに対する入力を有するブロックベース符号器と、
前記ブロックベース符号器に接続される予測器と、
ここで前記予測器は、
デブロッキングフィルタと反復傾斜利用探索処理によりデブロッキングパラメータを推定する制御論理とを含み、参照ピクチャの符号化ブロックを復号化するブロックベース復号器と、
デブロッキングピクチャに対する参照ピクチャ記憶装置とを含む；
前記符号化ピクチャのデータ及び前記最終的に推定されたデブロッキングパラメータを格納する送信バッファとを備え、
前記反復傾斜利用探索処理では、
デブロッキングベクトルに従って復号化ピクチャのデブロッキングを実行し、
ここで、前記デブロッキングベクトルは、それぞれが当該デブロッキングベクトルの各次元となるデブロッキングパラメータで表わされる；
前記デブロッキングされた復号化ピクチャからデブロッキング誤差を推定し、
前記推定された誤差が所定の閾値を上回る場合には、ベクトルの次元によって表される各デブロッキングパラメータに対して、
前記次元の各々において前記デブロッキングベクトルを進め、
前記進められた次元に従って前記復号化ピクチャをデブロッキングし、
前記進められた次元に従ってデブロッキングされた前記復号化ピクチャからデブロッキング誤差を推定し、
前記ベクトルの次元それぞれに対して算出された前記推定されたデブロッキング誤差を表す傾斜ベクトルに従って、次の反復における前記デブロッキングベクトルを変更する
ことを行うことを特徴とするビデオ符号化装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ビデオ符号化に関し、特に、動き補償符号化の一部として補間フィルタを使用するビデオ符号化システムに関する。
【背景技術】
【０００２】
通常、ビデオコーデックは、元の静止画像用ＪＰＥＧ符号器に使用されるのとほぼ同様に、本明細書中で「画素ブロック」と呼ばれる画素のブロックに対して離散コサイン変換（「ＤＣＴ」）を使用してビデオフレームを符号化する。最初のフレーム（「フレーム内（イントラ）」フレームと呼ばれる）は、独立フレームとして符号化、及び送信される。後続フレームは、シーン内のオブジェクトの小さい動きのためゆっくり変化するものとしてモデル化される、動き補償（「ＭＣ」）と呼ばれる技術を使用するフレーム間モードで効率的に符号化される。この場合、先に符号化されたフレームにおける位置からの画素ブロックの変位は、予測画素ブロックとソース画像からの画素ブロックとの間の差分の符号化表現と共に動きベクトルとして送信される。
【０００３】
動き補償の簡単な説明を以下に示す。図１及び図２は、動き補償画像符号器／復号器システムを示すブロック図である。システムは、圧縮画像の記憶容量及び計算を減少すると同時に高度な圧縮及び適応性を付与するために、変換符号化（画素の画素ブロックのＤＣＴの形態である）と予測符号化（差分パルス符号変調（「ＰＣＭ」）の形態である）とを組み合わせる。変換領域において動き補償を実行することが困難であるため、フレーム間符号器における第１のステップは動き補償予測誤差を作成することである。この計算は、符号器及び復号器の双方において１つ以上のフレーム記憶装置を必要とする。結果として得られた誤差信号は、ＤＣＴを使用して変換され、適応量子化器により量子化され、可変長符号器（「ＶＬＣ」）を使用してエントロピ符号化され、チャネルを介する送信のためにバッファに入れられる。
【０００４】
動き推定器は、図３に示すように動作する。最も単純な形態において、現在のフレームは、本明細書中で「ｍｃブロック」と呼ばれる例えば１６×１６又は８×８の一定のサイズの動き補償ブロックに分割される。しかし、特に高度なビデオ符号化であるＩＴＵ−Ｔ勧告Ｈ．２６４のＨ．２６４等の新規のコーデックにおいて、可変サイズのｍｃブロックが使用されることが多い。実際、非矩形のｍｃブロックも研究及び提案されてきた。一般に、ｍｃブロックのサイズは画素ブロックのサイズ以上である。
【０００５】
更に、動き補償の最も単純な形態において、図３に示すように、先行の復号化フレームが参照フレームとして使用される。しかし、特にＨ．２６４等の新規のコーデックにおいて、多くの可能な参照フレームのうちの１つが同様に使用されてもよい。実際、適切な信号伝送を用いる場合、異なる参照フレームが各ｍｃブロックに対して使用されてもよい。
【０００６】
現在のフレーム内の各ｍｃブロックは、参照フレーム内の変位ｍｃブロックの集合と比較されることで、現在のｍｃブロックを最適に予測するものが決定される。最良のマッチングｍｃブロックが見つけられた場合、参照ｍｃブロックの変位を指定する動きベクトルが決定される。
【０００７】
空間的冗長の利用
ビデオは連続する静止画像でもあるので、ＪＰＥＧと同様の技術を使用して何らかの圧縮を達成できる。そのような圧縮方法はフレーム内符号化技術と呼ばれ、ビデオの各フレームは個別に且つ独立して圧縮又は符号化される。フレーム内符号化は、フレームにおける隣接画素間に存在する空間的冗長を利用する。フレーム内符号化のみを使用して符号化されたフレームを「Ｉフレーム」と呼ばれる。
【０００８】
時間的冗長の利用
「順方向予測」と呼ばれる上述の単方向の動き推定においては、符号化対象フレーム内の目標ｍｃブロックは、「参照フレーム」と呼ばれる先行フレーム内の同一サイズのｍｃブロックの集合とマッチングされる。目標ｍｃブロックと「最良のマッチング」参照フレーム内のｍｃブロックが参照ｍｃブロックとして使用される。その後、予測誤差が目標ｍｃブロックと参照ｍｃブロックとの間の差分として計算される。一般に、予測ｍｃブロックは参照フレーム内の符号化されたｍｃブロックの境界と一致しない。この最良のマッチング参照ｍｃブロックの位置は、参照ｍｃブロックと目標ｍｃブロックとの間の変位を記述する動きベクトルにより示される。動きベクトル情報は同様に符号化され、予測誤差と共に送信される。順方向予測を使用して符号化されたフレームは「Ｐフレーム」と呼ばれる。
【０００９】
予測誤差自体は、上述した概要におけるＤＣＴを用いるフレーム内符号化技術を使用して送信される。
【００１０】
双方向時間的予測
「動き補償補間」とも呼ばれる双方向時間的予測は、現在のビデオコーデックの重要な特徴である。双方向予測を用いて符号化されるフレームは、通常は先行フレーム及び後続フレームである２つの参照フレームを使用する。しかし、特にＨ．２６４等の新規のコーデックにおいて、多くの可能な参照フレームのうちの２つが同様に使用されてもよい。実際、適切な信号伝送を用いる場合、異なる参照フレームが各ｍｃブロックに対して使用できる。
【００１１】
双方向符号化されるフレーム内の目標ｍｃブロックは、先行の参照フレームからのｍｃブロックにより予測されるか（順方向予測）、後続の参照フレームからのｍｃブロックにより予測されるか（逆方向予測）、あるいは各参照フレームから１つずつの２つのｍｃブロックの平均により予測される（補間）。いずれの場合も、参照フレームからの予測ｍｃブロックが動きベクトルと関連付けられるため、各ｍｃブロックに対して最大２つの動きベクトルが双方向予測の場合に使用される。双方向予測フレーム内のｍｃブロックに対する動き補償補間を図４に示す。双方向予測を使用して符号化されたフレームは「Ｂフレーム」と呼ばれる。
【００１２】
双方向予測は多くの利点を提供する。主要な利点は、得られる圧縮が順方向（単方向）予測のみから得られる圧縮より通常は高いことである。同一のピクチャ品質を取得するために、双方向予測フレームは順方向予測のみを使用するフレームより少ないビットで符号化可能である。
【００１３】
しかし、フレームがシーケンス外で符号化される必要があるため、双方向予測では符号化処理において余分な遅延が発生する。更に、ｍｃブロックのマッチング（最も多くの計算を必要とする符号化手順）が目標ｍｃブロック毎に先行の参照フレームに対して１回及び後続の参照フレームに対して１回の、２回実行される必要があるため、符号化が更に複雑になる。
【００１４】
双方向予測に対する一般的な符号器アーキテクチャ
図５は、一般的な双方向ビデオ符号器を示す。フレームの再順序付けは符号化前に実行されると仮定する。すなわち、Ｂフレームの予測に使用されるＩ又はＰフレームは、対応するＢフレームのいずれかの前に符号化及び送信される必要がある。このコーデックにおいて、Ｂフレームは参照フレームとして使用されない。アーキテクチャを変更することにより、ＢフレームはＨ．２６４のように参照フレームとして使用可能である。
【００１５】
入力ビデオは、動き補償推定器／予測器に送られ、予測が減算器のマイナス入力に送られる。各ｍｃブロックに対して、フレーム間／フレーム内分類器は、入力画素と減算器の予測誤差出力とを比較する。通常、平均二乗予測誤差が平均二乗画素値を上回る場合、フレーム内ｍｃブロックが決定される。画素及び予測誤差の双方のＤＣＴを含む更に複雑な比較により性能が若干向上するが、これは通常はコストに見合うと考えられない。
【００１６】
フレーム内ｍｃブロックの場合、予測は０に設定される。フレーム内ｍｃブロック以外の場合、予測は上述のように予測器から入力される。予測誤差はＤＣＴ及び量子化器を通過した後、符号化及び多重化されてバッファに送出される。
【００１７】
量子化されたレベルは、逆量子化器により再構成ＤＣＴ係数に変換され、逆数は符号化された予測誤差を生成するために逆ＤＣＴ部（「ＩＤＣＴ」）により変換される。加算器は、予測誤差に予測を加算し、符号化された画素値を生成するために結果を例えば０〜２５５の範囲にクリップする。
【００１８】
Ｂフレームの場合、動き補償推定器／予測器はピクチャ記憶装置に保持される先行フレーム及び後続フレームの双方を使用する。
【００１９】
Ｉフレーム及びＰフレームの場合、加算器により出力された符号化画素は後続ピクチャ記憶装置に書き込まれ、それと同時に、古い画素は後続ピクチャ記憶装置から先行ピクチャ記憶装置にコピーされる。実際は、これはメモリアドレスの単純な変更により通常は達成される。
【００２０】
また、実際は、符号化画素はピクチャ記憶装置に入力される前に適応デブロッキングフィルタによりフィルタリングされてもよい。これにより、特に符号化アーティファクトが可視になる低ビットレートに対して動き補償予測が向上される。
【００２１】
量子化アダプタと関連する符号化統計プロセッサは出力ビットレートを制御し、ピクチャの品質を可能な限り最適化する。
【００２２】
双方向予測に対する一般的な復号器アーキテクチャ
図６は、一般的な双方向ビデオ復号器を示す。これは、逆処理を使用する符号器の画素再構成部分に対応する構造を有する。フレームの再順序付けは復号化及びビデオ出力の後に行われると仮定する。補間フィルタは、符号器と同様に動き補償予測器の出力に対して配置される。
【００２３】
小数動きベクトルの変位
図３及び図４は、現在のフレーム内の復号化中の現在のｍｃブロックの位置に対して垂直及び水平方向に変位している参照フレーム内の参照ｍｃブロックを示す。変位量は、動きベクトルと呼ばれる２次元ベクトル［ｄｘ，ｄｙ］により表される。動きベクトルは符号化及び送信されてもよく、あるいは復号器内に既存の情報から推定されてもよい。その場合、動きベクトルは送信されない。双方向予測の場合、送信される各ｍｃブロックは２つの動きベクトルを必要とする。
【００２４】
最も単純な形態において、ｄｘ及びｄｙは、参照ｍｃブロックを変位させるための水平方向の画素数及び垂直方向の行数を表す符号付き整数である。この場合、参照ｍｃブロックは参照記憶装置から適切な画素を単に読み出すことにより取得される。
【００２５】
しかし、新規のビデオコーデックにおいて、ｄｘ及びｄｙが小数値をとれるようにすることが有益であることが分かっている。一般に、そのようなビデオコーデックでは１／４画素、すなわち整数±０．２５、０．５又は０．７５までの変位精度が可能である。
【００２６】
小数動きベクトルは、参照記憶装置からの画素の単純な読み出し以上の動作を必要とする。参照記憶装置の画素間の場所に対する参照ｍｃブロック値を取得するために、それらの間を補間する必要がある。
【００２７】
単純な双線形補間はかなり適切に動作する。しかし、実際は、特にこの目的のために設計された２次元補間フィルタを使用するのが有益であることが分かっている。実際、性能及び実用性上の理由で、フィルタはシフト不変フィルタではない場合が多い。その代わり、小数動きベクトルの異なる値が異なる補間フィルタを利用してもよい。
【００２８】
適応補間フィルタを使用する動き補償
最適な動き補償補間フィルタは多くの要因に依存する。例えば、シーン内のオブジェクトは純粋な平行移動をしない場合がある。オブジェクトは２次元及び３次元の双方において回転する場合がある。他の要因は、ズーム、カメラの動き、並びに影又は種々の照明により生じる光の変動を含む。
【００２９】
カメラの特徴は、それらのセンサの特定の特性により変化する。例えば、多くのコンシューマ向けカメラは本来インターレースを施され、それらの出力はインターレース解除及びフィルタリングされ、インターレースアーティファクトが存在しない高画質のピクチャが提供される。低輝度状態によりフレーム毎の露光時間が増加した場合、移動オブジェクトの動きに依存するぼけが生じる。画素は正方形でなくてもよい。
【００３０】
従って、多くの例において、動き補償補間フィルタが上記の外的要因及び他の外的要因に適応する場合、性能が向上される。そのようなシステムにおいて、補間フィルタは、各フレームにわたり現在のｍｃブロックと対応する参照ｍｃブロックとの間の平均二乗誤差を最小化することにより設計される。これらは、いわゆるウィナーフィルタ(Wiener filter)である。その場合、フィルタ係数は、実際の動き補償符号化において使用される各フレームの最初に量子化され且つ送信される。Ｈ．２６４及び同様のコーデックにおいて、少数のデブロッキングパラメータのみが定期的に調整可能である。更に、フィルタ動作が非線形であるため、通常のウィナーフィルタ設計を適用できない。
【００３１】
従って、符号化中にデブロッキングフィルタのパラメータを選択する効率的な方式が当分野において必要とされる。
【図面の簡単な説明】
【００３２】
【図１】図１は、従来のビデオ符号器を示すブロック図である。
【図２】図２は、従来のビデオ復号器を示すブロック図である。
【図３】図３は、動き補償予測の原理を示す図である。
【図４】図４は、双方向時間的予測の原理を示す図である。
【図５】図５は、従来の双方向ビデオ符号器を示すブロック図である。
【図６】図６は、従来の双方向ビデオ復号器を示すブロック図である。
【図７】図７は、本発明の実施形態と共に使用するのに適した符号器／復号器システムを示す図である。
【図８】図８は、本発明の一実施形態に係るビデオ符号器を概略的に示すブロック図である。
【図９】図９は、本発明の一実施形態に係る方法を示す図である。
【図１０】図１０は、本発明の一実施形態に係る傾斜探索方法の動作例を示す図である。
【図１１】図１１は、本発明の別の実施形態に係る方法を示す図である。
【図１２】図１２は、本発明の別の実施形態に係る傾斜探索方法の動作例を示す図である。
【図１３】図１３は、本発明の一実施形態に係るビデオ復号器を概略的に示すブロック図である。
【発明を実施するための形態】
【００３３】
本発明の実施形態は、符号化ビデオに対するデブロッキングパラメータを選択するための反復方法を提供する。この方法によると、復号化ピクチャは多次元デブロッキングベクトルに関連するパラメータに従ってデブロッキングされ、「デブロッキング誤差」と呼ばれる誤差がそれから推定される。推定された誤差が所定の閾値を上回る場合、各々が各次元において現在のデブロッキングベクトルから進められた別のデブロッキングベクトルが作成される。方法は、進められた各ベクトルに従って復号化ピクチャをデブロッキングし、進められた各ベクトルのデブロッキングの各々から誤差を推定する。最後に、デブロッキングベクトルは、ベクトルの次元の推定されたデブロッキング誤差から導出される傾斜に従って、次の反復に対して変更される。この傾斜利用探索方法は、効率的な方法でデブロッキングパラメータの最終的な集合に収束する。
【００３４】
図７は、本発明と共に使用するのに適した符号器／復号器システム１００を示す。図中、ネットワーク１３０を介して復号器１２０と通信する符号器１１０が提供される。符号器１１０は、カメラ装置を介して符号器においてローカルに取り込まれるか又は記憶装置（不図示）から検索されるソースビデオのデータストリームに対して符号化動作を実行する。符号化動作はソースビデオデータの帯域幅を減少し、そこから符号化ビデオを生成する。符号器１１０は、ネットワーク１３０を介して復号器１２０へ符号化ビデオを送信する。復号器１２０は、符号器１１０により実行された符号化動作を反転して、符号化ビデオデータから回復ビデオデータストリームを生成する。通常、符号器１１０により実行される符号化動作は不可逆処理であるため、回復ビデオデータはソースビデオデータの不正確な複製となる。復号器１２０は、表示装置上に回復ビデオデータをレンダリングするか、あるいは後で使用するために回復ビデオデータを格納する。
【００３５】
図示するように、ネットワーク１３０は符号器１１０から復号器１２０に符号化ビデオデータを転送する。ネットワーク１３０は、１つ又は複数の有線又は無線通信ネットワーク、コンピュータネットワーク、あるいはそれらの組み合わせとして提供される。更に、ネットワーク１３０は、電気記憶装置、光学記憶装置又は磁気記憶装置等の記憶ユニットとして提供されてもよい。
【００３６】
図８は、本発明と共に使用するのに適した符号器を概略的に示すブロック図である。符号器２００は、ブロックベース符号化チェーン２１０及び予測部２２０を含む。
【００３７】
ブロックベース符号化チェーン２１０は、減算器２１２、変換部２１４、量子化器２１６及び可変長符号器２１８を含む。減算器２１２は、ソース画像から入力ｍｃブロックを受信し、予測部２２０から予測ｍｃブロックを受信する。減算器２１２は、入力ｍｃブロックから予測ｍｃブロックを減算して残余画素のブロックを生成する。変換部２１４は、通常は離散コサイン変換（「ＤＣＴ」）又はウェーブレット変換である空間変換に従って、ｍｃブロックの残余データを変換係数のアレイに変換する。量子化器２１６は、量子化パラメータ（「ＱＰ」）に従って各ブロックの変換係数を切り縮める(turncate）。切り縮めに使用されたＱＰ値は、チャネルで復号器へ送信される。可変長符号器２１８は、例えば可変長符号化アルゴリズムであるエントロピ符号化アルゴリズムに従って、量子化された係数を符号化する。可変長符号化の後、各ｍｃブロックの符号化データはバッファ２４０に格納され、チャネルを介する復号器への送信を待機する。
【００３８】
予測部２２０は、逆量子化部２２２、逆変換部２２４、加算器２２６、デブロッキングフィルタ２２８、参照ピクチャキャッシュ２３０、動き補償予測器２３２及び動き推定器２３４を含む。逆量子化部２２２は、量子化器２１６により使用されたＱＰに従って符号化ビデオデータを量子化する。逆変換部２２４は、再量子化された係数を画素領域に変換する。加算器２２６は、逆変換部２２４から出力された残余画素と動き補償予測器２３２からの予測動きデータとを加算する。デブロッキングフィルタ２２８は、同一フレームの回復ｍｃブロックと他の回復ｍｃブロックとの間の継ぎ目の回復画像データをフィルタリングする。参照ピクチャキャッシュ２３０は、後で受信されるｍｃブロックの符号化中に参照フレームとして使用するために回復フレームを格納する。
【００３９】
動き補償予測器２３２は、ブロック符号器２１０が使用する予測ｍｃブロックを生成する。動き推定器２３４は、符号化中のソース画像と参照ピクチャキャッシュ２３０に格納された参照フレームとの間の画像の動きを推定する。動き推定器２３４は使用される推定モード（例えば、単方向Ｐ符号化又は双方向Ｂ符号化）を選択し、そのような予測符号化で使用する動きベクトルを生成する。動きベクトルは動き補償予測器２３２及びチャネルに出力される。それに応答して、動き補償予測器２３２は参照ピクチャキャッシュ２３０から予測ｍｃブロックを検索し、ブロック符号器２１０に予測ブロックを出力する。オプションとして、動き補償予測器２３２は、ブロック符号器２１０に出力する前に、検索されたｍｃブロックに対して補間フィルタリングを実行する（不図示）。
【００４０】
デブロッキングフィルタ２２８の動作は制御パラメータに基づいて変動する。符号器において、制御論理（不図示）は、予測部により生成された符号化画像データを再検討し、符号化画像データとソース画像のデータとを比較して、符号化誤差を最小化するパラメータを判定する。一実施形態において、選択処理は、パラメータの適切な集合に迅速に収束するための候補パラメータ値を介する傾斜探索処理により強化される。適切なパラメータが選択されると、パラメータ識別子は復号化において使用するために復号器へ送信される。例えばデブロッキングパラメータは、ピクチャ内のｍｃブロック又はより大きいエンティティ（例えば、マクロブロック又はスライス）毎に送信される。デブロッキングパラメータは、符号化ｍｃブロックの他のデータ（例えば、動きベクトル、量子化パラメータ及び符号化された残余）と共に送信される。
【００４１】
図９は、本発明の一実施形態に係る方法３００を示す。この方法３００は、ソースピクチャの符号化及び復号化から開始し（ブロック３１０）、現在のデブロッキングベクトルに関連するデブロッキングパラメータを使用してピクチャに対してデブロッキングを実行する（ブロック３２０）。方法３００の最初の反復において、ベクトルはデフォルト値に設定される。方法３００は、デブロッキングピクチャに関連する誤差を計算し（ブロック３３０）、誤差と所定の閾値とを比較する（ブロック３４０）。誤差が所定の閾値を下回る場合、方法３００は符号化ピクチャデータ及び現在のデブロッキングベクトルを復号器へ送信し（ブロック３５０）、現在のピクチャに対する処理を終了する。
【００４２】
デブロッキングパラメータは、複数の値を有するＮ次元ベクトルを表すと考えられる。例えばＨ．２６４は、画像符号化において符号器により定義される２つのパラメータ、すなわちｓｌｉｃｅ＿ａｌｐｈａ＿ｃ０＿ｏｆｆｓｅｔ＿ｄｉｖ２及びｓｌｉｃｅ＿ｂｅｔａ＿ｏｆｆｓｅｔ＿ｄｉｖ２（本明細書中で「α」及び「β」と呼ぶ）を定義する。Ｈ．２６４の実現例に適用される場合、デブロッキングパラメータは２次元ベクトルであると考えられる。図９の方法３００において考えられる場合、将来の符号化プロトコルは、３次元空間、４次元空間又は５次元以上の空間として表される更なる種類のデブロッキングパラメータを定義してもよい。
【００４３】
ブロック３４０の比較において誤差が閾値を上回ると判定される場合、方法３００は新規のデブロッキングベクトルに対する多次元探索を実行する。詳細には、方法３００は各次元ｉにおいて個別に現在のベクトルを増分する（ブロック３６０）。方法３００は、増分された各ベクトルに関連するパラメータを使用して復号化ピクチャのデブロッキングを実行し（ブロック３７０）、元のピクチャとデブロッキングピクチャとの間の誤差を計算する（ブロック３８０）。Ｎ次元ベクトル空間において、Ｎ個のデブロッキングピクチャ及びそれらから取得されるＮ個の誤差値が存在する。方法３００は、ブロック３３０で取得された誤差値とブロック３８０で各次元の計算から取得された誤差とを比較することにより傾斜値(gradient value)を計算する（ブロック３９０）。方法３００は、傾斜から新規のベクトルを生成し（ブロック４００）、ブロック３２０に戻って解析の別の反復を実行する。
【００４４】
傾斜ベクトル(gradient vector))はＮ次元ベクトルであり、各次元ｉの成分はブロック３３０からのデブロッキング誤差とブロック３８０から取得された次元誤差との比較により取得される。例えば傾斜ベクトルＧは、傾斜ベクトルの各成分Ｇｉに対して以下のように計算される：
Ｇ＝［Ｇ1，Ｇ2，．．．，ＧN］
式中、Ｇi＝ｅｒｒi−ｅｒｒDBLK
方法３００は、以下のようにして新規のデブロッキングベクトルＶを更に生成する：
【００４５】
【数１】
0005579936.tif 000002
式中、ｗはアルゴリズムのステップサイズを表し、各次元成分Ｖiは整数値を有するように丸められる。ステップサイズｗはプログラム可能値であって、通常は各次元におけるデブロッキングベクトル空間のサイズに基づいて設定される。
【００４６】
Ｈ．２６４の実現例に適用される場合、例えば方法３００はＧ＝［ｅｒｒα−ｅｒｒDBLK，ｅｒｒβ−ｅｒｒDBLK］として傾斜ベクトルＧを生成する。式中、ｅｒｒα及びｅｒｒβはそれぞれ、ブロック３８０により取得されるα次元及びβ次元における誤差値である。方法３００は、以下のようにして新規のデブロッキングベクトル［α，β］newを更に生成する：
【００４７】
【数２】
0005579936.tif 000003
式中、［α，β］newは整数値を有するように同様に丸められる。実際は、ｗ＝１．４の値の場合に満足な結果が得られる。
【００４８】
動作中、反復を数回行うことにより、図９の傾斜探索方法３００が閾値を下回る誤差を生成する（ブロック３４０）デブロッキングパラメータの集合に収束することが予想される。方法３００の他の実施形態は、誤差が十分に小さい状態が達成される前に動作を終了するための他のテストを含む。
【００４９】
例えば符号化ピクチャが復号化された後（ブロック３１０）、方法３００は復号化誤差を計算し、それと別の閾値とを比較する（ブロック４１０）。復号化誤差が閾値を下回る場合、方法３００はデブロッキングパラメータを伴わずに符号化ピクチャを復号器へ送信する（ブロック４２０）。そのようなテストは適切な画質を達成するためにデブロッキングが不要であると有利に判定するため、ブロック３２０〜４００の動作を実行するために必要な処理リソースが節約される。
【００５０】
別の実施形態において、ブロック３４０で判定された誤差が閾値を上回る場合、方法３００は現在の反復と先行の反復との間の誤差の変化（「Δ誤差」と示す）を更に判定する。最初の反復の実行時、現在の誤差値及びブロック４１０で取得された復号化誤差値からΔ誤差を導出してもよい。あるいは、最初の反復においてブロック４２０は省略される。方法３００は、Δ誤差の値と別の閾値とを比較する（ブロック４３０）。Δ誤差の値が所定の閾値を上回る場合、これは、傾斜探索方法の収束率が方法３００の更なる実行に値するほど十分に画像の改善を向上する可能性が低いことを示す。この場合、方法３００はブロック３５０へ進み、符号化ピクチャのデータ及びデブロッキングベクトルを復号器へ送信する。
【００５１】
更なる一実施形態において、方法３００が新規のベクトルを設定した後（ブロック４００）、方法３００は新規のベクトルが方法の何らかの前の反復において使用されたかを判定する（ブロック４４０）。新規のベクトルが前の反復において使用された場合、これは、方法３００の更なる実行が現在の反復までに取得された結果以上に画像の改善を向上する可能性が低いことを示す。この場合、方法３００はブロック３５０へ進み、符号化ピクチャのデータ及びブロック４００の動作の前に取得されたデブロッキングベクトルを復号器へ送信する。
【００５２】
更に別の実施形態において、ブロック３５０へ進むほど十分に小さい誤差が生成されずにブロック３２０〜４００の反復が所定の回数実行された場合には、方法３００は終了する。
【００５３】
多くの実現例において、デブロッキングパラメータの各次元の可能な値の範囲は有限である。例えばＨ．２６４の実現例において、α値及びβ値はそれぞれ−６〜６の値を有する整数である必要がある。一実施形態において、特定の次元ｉにおいてベクトルを増分する処理（ブロック３６０）により増分された値が正当な値を超過する場合（例えば、α＝７）、増分された値は制限値に設定される必要があり（α＝６）、各次元に関連するブロック３７０及び３８０の処理は省略される。その場合、各次元に関連する誤差ｉの値はブロック３３０で導出される誤差値に等しいと推定される。
【００５４】
更なる一実施形態において、方法３００が誤差値から傾斜を計算する場合（ブロック３９０）、方法３００はブロック３３０で取得されたデブロッキング誤差に対する傾斜の大きさの比率を更に計算し、比率と別の閾値とを比較する（ブロック４５０）。比率が閾値を下回る場合、方法３００はブロック３５０へ進み、符号化ピクチャのデータ及びブロック３２０で使用されたデブロッキングベクトルを復号器へ送信する。
【００５５】
実現例において、ブロック３４０、４１０及び４３０〜４５０における比較に使用される閾値は個々の必要性に適するように調整されるプログラム可能値である。閾値は静的な事前プログラム値として設定される。あるいは、それらは動作中に動的に変化する。例えば閾値は、各ピクチャに割り当てられた符号化動作の種類（例えば、Ｉ、Ｐ又はＢ符号化）に基づいて変動してもよく、あるいはピクチャを符号化するために使用された量子化パラメータに基づいて変動してもよい。閾値は、符号器における符号化動作を支配した目標ビットレートの割り当てに基づいて変動してもよい。更に、閾値は、ビデオデータが符号化される対象である例えば大画面装置（ラップトップ、タブレットコンピュータ）又は小画面装置（ポータブルメディアプレーヤ、スマートフォン）である目標復号器を記述するデータに基づいて変動してもよい。
【００５６】
図１０は、デブロッキングマトリクスの例に実行される図９の傾斜探索方法の動作を示す。図示されるように、デブロッキングマトリクスは、値α、βにより指標付けされる１３×１３の２次元マトリクスである。本例は、Ｈ．２６４の実現例において使用されるデブロッキングマトリクスに対応する。α値及びβ値により指標付けされる各セルの場所は、復号器により適用されるデブロッキングパラメータの集合に関連する。動作中、符号器はα及びβの識別子を送信し、復号器は格納されたマトリクスからデブロッキングフィルタパラメータを検索するためにそれらを使用する。
【００５７】
方法の最初の反復において、デブロッキングベクトル５１０は例えば［０，０］であるデフォルト値に設定される。第１のデブロッキング動作は、デブロッキングベクトル５１０に関連するパラメータを使用して実行される。それから取得される誤差が方法を終了するのに不十分である場合、デブロッキングベクトルは各次元において増分される。２次元ベクトル空間において、これにより一対の増分されたベクトル５２０、５３０が得られる。増分された各ベクトル５２０、５３０に関連するパラメータをそれぞれ使用する一対のデブロッキング動作が実行される。傾斜ベクトルＧは、一対のデブロッキング動作に関連する誤差値及び元のデブロッキングベクトル５１０から取得された誤差値から導出される。その後、傾斜ベクトルＧから導出される更新されたデブロッキングベクトル５４０を使用して別の反復が実行され、そこから取得された誤差が方法の動作を終了するのに不十分である場合、別の対の増分されたベクトル５５０、５６０が計算される。停止点に到達するまで動作は続行し、新規のデブロッキングベクトル、増分されたデブロッキングベクトル及び傾斜ベクトルを生成する（不図示）。
【００５８】
２次元の例における図９の方法の動作は、以下の処理フローにより実行される。
現在のピクチャを符号化する.
現在のピクチャを復号化する.
Ｅ０←デブロッキングされていない復号化ピクチャのＭＳＥ（現在のピクチャ−復号化ピクチャ）.
Ｉｆ  Ｅ０＜ｔ１の場合：
送信する：
ピクチャの圧縮ビット及び
デブロッキングパラメータ（デブロッキングが行われていないことを示す）.
後続ピクチャの動き補償符号化における参照として、参照ピクチャキャッシュにデブロッキングされていない復号化ピクチャを格納する,
現在のピクチャに対する処理を終了する.
Ｅｌｓｅ，
デブロッキングが行われていないことを示すために、デブロッキングパラメータベクトル［Ａ０，Ｂ０］＝［＊，＊］を設定する.
デブロッキングパラメータベクトル［Ａ１，Ｂ１］＝［０，０］を設定する.
ピクチャを保持するために一時格納ＴＳ０及びＴＳ１を確立する.
ＴＳ０←デブロッキングされていない復号化ピクチャ.
ＰＴ．１：ベクトル［Ａ１，Ｂ１］から取得されたパラメータを用いて復号化ピクチャをデブロッキングする.
ＴＳ１←デブロッキングピクチャ
元のピクチャとデブロッキングピクチャとの間の平均二乗誤差Ｅ１を計算する.
Ｉｆ  Ｅ１＜ｔｅ：
送信する：
ピクチャの圧縮ビット及び
デブロッキングパラメータＡ１及びＢ１.
参照ピクチャキャッシュにＴＳ１を格納する.
現在のピクチャに対する処理を終了する.
Ｅｌｓｅ，  ｉｆ  Ｅ１／Ｅ０＞ｔｉ：
送信する：
ピクチャの圧縮ビット及び
デブロッキングパラメータＡ０及びＢ０.
参照ピクチャキャッシュにＴＳ０を格納する.
現在のピクチャに対する処理を終了する.
Ｉｆ  ［Ａ１＋１，Ｂ１］＝［Ａ０，Ｂ０］の場合、Ｅ２←Ｅ０を設定する.
Ｅｌｓｅ，  Ｅ２←Ｅ１を設定する.
Ｉｆ  ［Ａ１＋１，Ｂ１］≠［Ａ０，Ｂ０］、且つ、Ａ１＜６：
ベクトル［Ａ１＋１，Ｂ１］から取得されたパラメータを使用して、復号化ピクチャをデブロッキングする.
元のピクチャとデブロッキングピクチャとの間の平均二乗誤差Ｅ２を計算する.
Ｉｆ  ［Ａ１，Ｂ１＋１］＝［Ａ０，Ｂ０］  Ｅ３←Ｅ０を設定する.
Ｅｌｓｅ，  Ｅ３←Ｅ１を設定する.
Ｉｆ  ［Ａ１，Ｂ１＋１］≠［Ａ０，Ｂ０］且つＢ１＜６：
ベクトル［Ａ１，Ｂ１＋１］から取得されたパラメータを使用して、復号化ピクチャをデブロッキングする.
元のピクチャとデブロッキングピクチャとの間の平均二乗誤差Ｅ３を計算する.
Ｇ＝［Ｅ２−Ｅ１，Ｅ３−Ｅ１］として傾斜ベクトルＧを計算する.
Ｉｆ  ｜Ｇ｜／Ｅ１＜ｔｓ：
送信する：
ピクチャの圧縮ビット及び
デブロッキングパラメータＡ１及びＢ１.
基準ピクチャキャッシュにＴＳ１を格納する.
現在のピクチャに対する処理を終了する.
Ｅｌｓｅ，
デブロッキングパラメータベクトル［Ａ０，Ｂ０］＝［Ａ１，Ｂ１］を設定する.
Ｅ０＝Ｅ１を設定する.
ＴＳ０←ＴＳ１を設定する.
履歴テーブルに［Ａ１，Ｂ１］を格納する.
新規のデブロッキングパラメータベクトル［Ａ１，Ｂ１］←［Ａ１，Ｂ１］−ｗ×Ｇ／｜Ｇ｜を計算する。ここで、新規のＡ１及びＢ１は範囲［−６，６］内の整数に丸められる。
【００５９】
Ｉｆ  ［Ａ１，Ｂ１］が履歴テーブルと一致する：
送信する：
ピクチャの圧縮ビット及び
デブロッキングパラメータＡ０及びＢ０.
基準ピクチャキャッシュにＴＳ０を格納する.
現在のピクチャに対する処理を終了する.
Ｅｌｓｅ
新規のベクトル［Ａ１，Ｂ１］を用いて、ＰＴ．１から開始する次の反復を実行する.
【００６０】
図１１は、本発明の一実施形態に係る方法６００を示す。方法６００は、ソースピクチャの符号化及び復号化から開始し（ブロック６１０）、現在のデブロッキングベクトルに関連するデブロッキングパラメータを使用してピクチャに対してデブロッキングを実行する（ブロック６２０）。方法６００の最初の反復において、ベクトルはデフォルト値に設定される。方法６００は、デブロッキングピクチャに関連する誤差を計算し（ブロック６３０）、誤差と所定の閾値とを比較する（ブロック６４０）。誤差が所定の閾値を下回る場合、方法６００は符号化ピクチャデータ及び現在のデブロッキングベクトルを復号器へ送信し（ブロック６５０）、現在のピクチャに対する処理を終了する。
【００６１】
デブロッキングベクトルは、複数の値を有するＮ次元ベクトルを表すと考えられる。図９の実施形態と同様に、Ｈ．２６４の実現例に適用される場合、αパラメータ及びβパラメータは２次元ベクトルであると考えられる。図１１の方法６００において考えられる場合、将来の符号化プロトコルは、３次元空間、４次元空間又は５次元以上の空間として表される更なる種類のデブロッキングパラメータを定義してもよい。
【００６２】
ブロック６４０の比較において誤差が閾値を上回ると判定される場合、方法６００は新規のデブロッキングベクトルに対する多次元探索を実行する。詳細には、方法６００は次元ｉに対する支配的探索方向に従って各次元ｉにおいて個別に現在のベクトルを進める（ブロック６６０）。方法６００は、進められた各ベクトルに関連するパラメータを使用して復号化ピクチャのデブロッキングを実行し（ブロック６７０）、元のピクチャとデブロッキングピクチャとの間の誤差を計算する（ブロック６８０）。Ｎ次元ベクトル空間において、Ｎ個のデブロッキングピクチャ及びそれらから取得されるＮ個の誤差値が存在する。方法６００は、ブロック６３０で取得された誤差値とブロック６８０で各次元の計算から取得された誤差とを比較することにより傾斜値を計算する（ブロック６９０）。方法６００は、傾斜から新規のベクトルを生成し（ブロック７００）、ブロック６２０に戻って解析の別の反復を実行する。
【００６３】
傾斜ベクトルはＮ次元ベクトルであり、各次元ｉの成分はブロック６３０からのデブロッキング誤差とブロック６８０から取得された次元誤差との比較により取得される。例えば傾斜ベクトルＧは、傾斜ベクトルの各成分Ｇiに対して以下のように計算される：
Ｇ＝［Ｇ1，Ｇ2，．．．，ＧN］
式中、Ｇi＝（ｅｒｒi−ｅｒｒDBLK）・ＤＩＲi。上記の式において、ＤＩＲiは各次元に対する支配的探索方向を表し、値−１又は１を有する。
【００６４】
方法６００は、以下のようにして新規のデブロッキングベクトルＶを更に生成する：
【００６５】
【数３】
0005579936.tif 000004
式中、ｗはアルゴリズムのステップサイズを表し、各次元成分Ｖiは整数値を有するように丸められる。ステップサイズｗは、通常は各次元におけるデブロッキングベクトル空間のサイズに基づいて設定されるプログラマブル値である。
【００６６】
Ｈ．２６４の実現例に適用される場合、例えば方法６００はＧ＝［（ｅｒｒα−ｅｒｒDBLK）・ＤＩＲα，（ｅｒｒβ−ｅｒｒDBLK）・ＤＩＲβ］として傾斜ベクトルＧを生成する。式中、ｅｒｒα及びｅｒｒβはそれぞれ、ブロック３８０により取得されるα次元及びβ次元における誤差値であり、ＤＩＲα及びＤＩＲβはそれぞれα次元及びβ次元における探索方向の指標を表す。方法６００は、以下のようにして新規のデブロッキングベクトル［α，β］newを更に生成する：
【００６７】
【数４】
0005579936.tif 000005
式中、［α，β］newは整数値を有するように同様に丸められる。実際は、ｗ＝１．４の値の場合に満足な結果が得られる。
【００６８】
動作中、反復を数回行うことにより、図１１の傾斜探索方法６００が閾値を下回る誤差を生成する（ブロック６４０）デブロッキングパラメータの集合に収束することが予想される。方法６００の他の実施形態は、誤差が十分に小さい状態が達成される前に動作を終了するための他のテストを含む。
【００６９】
例えば符号化ピクチャが復号化された後（ブロック６１０）、方法６００は復号化誤差を計算し、それと別の閾値とを比較する（ブロック７１０）。復号化誤差が閾値を下回る場合、方法６００はデブロッキングパラメータを伴わずに符号化ピクチャを復号器へ送信する（ブロック７２０）。そのようなテストは適切な画質を達成するためにデブロッキングが不要であると有利に判定するため、ブロック６２０〜７００の動作を実行するために必要な処理リソースが節約される。
【００７０】
別の実施形態において、ブロック６４０で判定された誤差が閾値を上回る場合、方法６００は現在の反復と先行の反復との間の誤差の変化（「Δ誤差」と示す）を更に判定する。最初の反復の実行時、現在の誤差値及びブロック７１０で取得された復号化誤差値からΔ誤差を導出してもよい。あるいは、最初の反復においてブロック７２０は省略される。方法６００は、Δ誤差の値と別の閾値とを比較する（ブロック７３０）。Δ誤差の値が所定の閾値を上回る場合、これは傾斜探索方法の収束率が方法６００の更なる実行に値するほど十分に画像の改善を向上する可能性が低いことを示す。この場合、方法６００はブロック６５０へ進み、符号化ピクチャのデータ及びデブロッキングベクトルを復号器へ送信する。
【００７１】
更なる一実施形態において、方法６００が新規のベクトルを設定した後（ブロック７００）、方法６００は新規のベクトルが方法の何らかの前の反復において使用されたかを判定する（ブロック７４０）。新規のベクトルが前の反復において使用された場合、これは、方法６００の更なる実行が現在の反復までに取得された結果以上に画像の改善を向上する可能性が低いことを示す。この場合、方法６００はブロック６５０へ進み、符号化ピクチャのデータ及びブロック７００の動作の前に取得されたデブロッキングベクトルを復号器へ送信する。
【００７２】
更に別の実施形態において、ブロック６５０へ進むほど十分に小さい誤差が生成されずにブロック６２０〜７００の反復が所定の回数実行された場合、方法６００は終了する。
【００７３】
多くの実現例において、デブロッキングパラメータの各次元の可能な値の範囲は有限である。例えばＨ．２６４の実現例において、α値及びβ値はそれぞれ−６〜６の値を有する整数である必要がある。一実施形態において、特定の次元ｉにおいてベクトルを進める処理（ブロック６６０）により進められた値が正当な値を超える場合（例えば、α＝−７）、増分された値は制限値に設定される必要があり（α＝−６）、各次元に関連するブロック６７０及び６８０の処理は省略される。その場合、各次元に関連する誤差ｉの値はブロック６３０で導出される誤差値に等しいと推定される。
【００７４】
更なる一実施形態において、方法６００が誤差値から傾斜を計算する場合（ブロック６９０）、方法６００はブロック６３０で取得されたデブロッキング誤差に対する傾斜の大きさの比率を更に計算し、比率と別の閾値とを比較する（ブロック７５０）。比率が閾値を下回る場合、方法６００はブロック６５０へ進み、符号化ピクチャのデータ及びブロック６２０で使用されたデブロッキングベクトルを復号器へ送信する。
【００７５】
実現例において、ブロック６４０、７１０及び７３０〜７５０における比較に使用される閾値は個々の必要性に適するように調整されるプログラム可能な値である。閾値は静的な事前プログラム値として設定される。あるいは、それらは動作中に動的に変動する。例えば閾値は、各ピクチャに割り当てられた符号化動作の種類（例えば、Ｉ、Ｐ又はＢ符号化）に基づいて変動してもよく、あるいはピクチャを符号化するために使用された量子化パラメータに基づいて変動してもよい。閾値は、符号器における符号化動作を支配した目標ビットレートの割り当てに基づいて変動してもよい。更に、閾値は、ビデオデータが符号化される対象である例えば大画面装置（ラップトップ、タブレットコンピュータ）又は小画面装置（ポータブルメディアプレーヤ、スマートフォン）である目標復号器を記述するデータに基づいて変動してもよい。
【００７６】
図１２は、デブロッキングマトリクスの例に実行される図１１の傾斜探索方法の動作を示す。図示されるように、デブロッキングマトリクスは、値α、βにより指標付けされる１３×１３の２次元マトリクスである。本例は、Ｈ．２６４の実現例において使用されるデブロッキングマトリクスに対応する。α値及びβ値により指標付けされる各セルの場所は、復号器により適用されるデブロッキングパラメータの集合に関連する。動作中、符号器はα及びβの識別子を送信し、復号器は格納されたマトリクスからデブロッキングフィルタパラメータを検索するためにそれらを使用する。
【００７７】
方法の最初の反復において、デブロッキングベクトル８１０は例えば［０，０］であるデフォルト値に設定される。第１のデブロッキング動作は、デブロッキングベクトル８１０に関連するパラメータを使用して実行される。それから取得される誤差が方法を終了するのに不十分である場合、デブロッキングベクトルはデフォルト方向に従って各次元において進められる。２次元ベクトル空間において、これにより一対の増分されたベクトル８２０、８３０が得られる。増分された各ベクトル８２０、８３０に関連するパラメータをそれぞれ使用する一対のデブロッキング動作が実行される。傾斜ベクトルＧは、一対のデブロッキング動作に関連する誤差値及び元のデブロッキングベクトル８１０から取得された誤差値から導出される。その後、傾斜ベクトルＧから導出される更新されたデブロッキングベクトル８４０を使用して別の反復が実行され、そこから取得された誤差が方法の動作を終了するのに不十分である場合、別の対の進められたベクトル８５０、８６０が計算される。２回目の反復において、次元ベクトル８５０、８６０は、最初の反復の傾斜ベクトルＧの負数に対応する方向に進められる。停止点に到達するまで動作は続行し、新規のデブロッキングベクトル、増分されたデブロッキングベクトル及び傾斜ベクトルを生成する（不図示）。
【００７８】
２次元の例における図１１の方法の動作は、以下の処理フローにより実行される。
現在のピクチャを符号化する.
現在のピクチャを復号化する.
Ｅ０←デブロッキングされていない復号化ピクチャのＭＳＥ（現在のピクチャ−復号化ピクチャ）.
Ｉｆ  Ｅ０＜ｔ１：
送信する：
ピクチャの圧縮ビット及び
デブロッキングパラメータ（デブロッキングが行われていないことを示す）.
後続ピクチャの動き補償符号化における基準として、基準ピクチャキャッシュにデブロッキングされていない復号化ピクチャを格納する.
現在のピクチャに対する処理を終了する.
Ｅｌｓｅ，
デブロッキングが行われていないことを示すために、デブロッキングパラメータベクトル［Ａ０，Ｂ０］＝［＊，＊］を設定する.
デブロッキングパラメータベクトル［Ａ１，Ｂ１］＝［０，０］を設定する.
ピクチャを保持するために一時格納ＴＳ０及びＴＳ１を確立する.
傾斜係数ＧＡ＝１及びＧＢ＝１を設定する.
ＴＳ０←デブロッキングされていない復号化ピクチャ.
ＰＴ．１：ベクトル［Ａ１，Ｂ１］から取得されたパラメータを用いて復号化ピクチャをデブロッキングする.
ＴＳ１←デブロッキングピクチャ.
元のピクチャとデブロッキングピクチャとの間の平均二乗誤差Ｅ１を計算する.
Ｉｆ  Ｅ１＜ｔｅ：
送信する：
ピクチャの圧縮ビット及び
デブロッキングパラメータＡ１及びＢ１.
参照ピクチャキャッシュにＴＳ１を格納する.
現在のピクチャに対する処理を終了する.
Ｅｌｓｅ，  ｉｆ  Ｅ１／Ｅ０＞ｔｉ：
送信する：
ピクチャの圧縮ビット及び
デブロッキングパラメータＡ０及びＢ０.
参照ピクチャキャッシュにＴＳ０を格納する.
現在のピクチャに対する処理を終了する.
Ｉｆ  ［Ａ１＋ＧＡ，Ｂ１］＝［Ａ０，Ｂ０］の場合、  Ｅ２←Ｅ０を設定する.
Ｅｌｓｅ，  Ｅ２←Ｅ１を設定する.
Ｉｆ  ［Ａ１＋ＧＡ，Ｂ１］≠［Ａ０，Ｂ０］且つ｜Ａ１＋ＧＡ｜≦６：
ベクトル［Ａ１＋ＧＡ，Ｂ１］から取得されたパラメータを使用して、復号化ピクチャをデブロッキングする.
元のピクチャとデブロッキングピクチャとの間の平均二乗誤差Ｅ２を計算する,
Ｉｆ  ［Ａ１，Ｂ１＋ＧＢ］＝［Ａ０，Ｂ０］  Ｅ３←Ｅ０を設定する.
Ｅｌｓｅ，  Ｅ３←Ｅ１を設定する.
Ｉｆ  ［Ａ１，Ｂ１＋ＧＢ］≠［Ａ０，Ｂ０］且つ｜Ｂ１＋ＧＢ｜≦６：
ベクトル［Ａ１，Ｂ１＋ＧＢ］から取得されたパラメータを使用して、復号化ピクチャをデブロッキングする.
元のピクチャとデブロッキングピクチャとの間の平均二乗誤差Ｅ３を計算する.
Ｇ＝［（Ｅ２−Ｅ１）×ＧＡ，（Ｅ３−Ｅ１）×ＧＢ］として傾斜ベクトルＧを計算する.
Ｉｆ  ｜Ｇ｜／Ｅ１＜ｔｓ：
送信する：
ピクチャの圧縮ビット及び
デブロッキングパラメータＡ１及びＢ１.
参照ピクチャキャッシュにＴＳ１を格納する.
現在のピクチャに対する処理を終了する.
Ｅｌｓｅ，
デブロッキングパラメータベクトル［Ａ０，Ｂ０］＝［Ａ１，Ｂ１］を設定する.
Ｅ０＝Ｅ１を設定する.
ＴＳ０←ＴＳ１を設定する.
｜Ｅ１−Ｅ２｜＞ｔａの場合、ＧＡ＝符号（（Ｅ１−Ｅ２）×ＧＡ）を設定する.
｜Ｅ１−Ｅ３｜＞ｔｂの場合、ＧＢ＝符号（（Ｅ１−Ｅ３）×ＧＢ）を設定する.
履歴テーブルに［Ａ１，Ｂ１］を格納する.
新規のデブロッキングパラメータベクトル［Ａ１，Ｂ１］←［Ａ１，Ｂ１］−ｗ×Ｇ／｜Ｇ｜を計算する.ここで、新規のＡ１及びＢ１は範囲［−６，６］内の整数に丸められる.
Ｉｆ  ［Ａ１，Ｂ１］が履歴テーブルと一致する：
送信する：
ピクチャの圧縮ビット及び
デブロッキングパラメータＡ０及びＢ０.
基準ピクチャキャッシュにＴＳ０を格納する.
現在のピクチャに対する処理を終了する.
Ｅｌｓｅ，  新規のベクトル［Ａ１，Ｂ１］を用いて、ＰＴ．１から開始する次の反復を実行する.
【００７９】
上記の方法において、値ｗはデブロッキングマトリクス内の傾斜ベクトルＧの計算中に使用されるストライド長を表す。上述のように、ストライド長ｗは１．４等の所定の値に設定される。別の実施形態において、ストライド長ｗは動的に設定される。例えばストライド長ｗはより大きい値（３．５等）に設定され、方法の動作中に改善される。そのような一実施形態において、ストライド長ｗは、ｗ＝ａ＊ｗ（式中、ａ＜１）又はｗ＝ｗ−ａに従う倍率により減少される。更に、ストライド長ｗの減少はデブロッキングフィルタの性能の観測可能な誤差に基づいて動的に設定されてもよい。新規のデブロッキング動作の各々（上記のブロック３２０又は６２０）が実行される場合、現在の反復のデブロッキング誤差と先行の反復のデブロッキング誤差とが比較される。誤差値の比率が所定の閾値を下回る場合（例えば、｜ｅi+1／ｅi｜＞ｔｈ）、ストライド長は比率が閾値を上回る場合より積極的に修正される。
【００８０】
上記の実施形態において、方法３００及び６００は最初の反復のデブロッキングベクトルをデブロッキングマトリクスの中心（例えば、［０，０］）に初期化した。他の実施形態は、収束を高速化するためにデブロッキングベクトルを他の値に初期化してもよい。例えば一実施形態において、デブロッキングベクトルは先行ピクチャに対する方法の実行において最終的に取得されたベクトルに最初に設定される。あるいは、デブロッキングベクトルは、符号化の種類が共通する先行ピクチャ（例えば、Ｂピクチャに対して動作している場合は先行のＢピクチャ、あるいはＰピクチャに対して動作している場合は先行のＰピクチャ）の処理において最終的に取得されたベクトルに最初に設定される。更に別の実施形態において、初期デブロッキングベクトルは、処理中のピクチャと同様の動きベクトルを示すか又は共通の基準ピクチャを参照する先行ピクチャの処理において取得されたベクトルの値に設定される。あるいは、デブロッキングベクトルは、量子化パラメータ、画素のアスペクト比、符号化速度、ノイズレベル又は画像の複雑性等の共通の符号化パラメータを示す他のピクチャの処理から取得された値に最初に設定される。
【００８１】
本発明の原理は、種々の誤差計算を用いて適用される。例えば、ブロック３３０及び３８０（図９）又はブロック６３０及び６８０（図１１）で実行される誤差計算は、
【００８２】
【数５】
0005579936.tif 000006
の形態である対象ピクチャ間の平均二乗誤差を計算することにより計算される。式中、ｐ１、ｐ２は一対のフレームからの画素を表し、ｉ、ｊはピクチャ内の画素の場所を表す。画素値は閾値と比較可能なスカラー値であってもよい。
【００８３】
別の実施形態において、誤差計算は、
【００８４】
【数６】
0005579936.tif 000007
の形態の重み付け平均二乗誤差計算として実行される。式中、ｄi,jは復号化ブロック間の最近接境界から各画素までの距離を表す。そのような一実施形態は、ブロック化アーチファクトが最も目立つ傾向にあるブロック境界で生じる誤差に相対的に大きい重みを割り当てる。
【００８５】
更なる一実施形態において、誤差計算は、ブロック境界のエッジから所定の距離内に存在し且つ数学的に共通の符号を示す各画素の誤差を合計する。各画素の誤差は、エッジからの距離に従って重み付けされてもよい。結果は、ピクチャにわたり平均二乗される。本実施形態において、誤差計算は、ブロックのエッジ付近の画素に大きい重みを割り当てるだけではなく、エッジに沿う共通の誤差にも大きい重みを付与する。共通の符号を有する誤差はランダムノイズ誤差より可視である傾向がある。
【００８６】
別の実施形態において、平均二乗誤差の基準を使用する代わりに、誤差計算は主観的に有意味の誤差を考慮する誤差モデルを使用して実行される。例えば誤差計算は、元のビデオと符号化ビデオとの間の誤差が目立たない最短視距離(Minimum Viewing Distance)（「ＭＶＤ」）を計算する。この尺度をゼロ最小可知歪み(zero Just Noticeable Distortion)（「ＪＮＤ」）に対する最短視距離とも呼ぶ。本実施形態において、ＪＮＤ値は、同時係属出願であるｓ．ｎ．１２／４１５，３４０号「Ｑｕａｌｉｔｙ  Ｍｅｔｒｉｃｓ  ｆｏｒ  Ｃｏｄｅｄ  Ｖｉｄｅｏ  Ｕｓｉｎｇ  Ｊｕｓｔ  Ｎｏｔｉｃｅａｂｌｅ  Ｄｉｆｆｅｒｅｎｃｅ  Ｍｏｄｅｌｓ」において開示されるように計算される。ブロック３４０（図９）又は６４０（図１１）において、計算されたＭＶＤが所定の閾値を下回る場合、方法はそれぞれブロック３５０又は６５０へ進む。
【００８７】
上記の説明において、誤差計算はソースピクチャと復号化されデブロッキングされたピクチャとの間の誤差を判定するものとして説明された。別の実施形態において、誤差計算は、フィルタリングされていないソースピクチャではなくフィルタリングされたソースピクチャを使用して実行される。このように、上述の方法は各ピクチャ（又はピクチャの一部）にわたり、フィルタリングされた符号化されていない現在のｍｃブロックと符号化され且つデブロッキングされた現在のｍｃブロックとの間の誤差を計算する。符号化されていない現在のｍｃブロックをフィルタリングするために使用されるフィルタは、標準化されるか又は復号器に通信される必要がない。それらは、上述のパラメータ等のパラメータ、あるいは入力ビデオにおけるノイズレベル等の復号器が認識していない他のパラメータに適応してもよい。鮮明なエッジに更なる重みを付与するために、それらは高い空間周波数を強調する。
【００８８】
図１３は、本発明の一実施形態に係る復号器９００の簡略なブロック図を示す。復号器９００は、可変長復号器９１０、逆量子化器９２０、逆変換部９３０、加算器９４０、フレームバッファ９５０及びデブロッキングフィルタ９６０を含む。復号器９００は、参照ピクチャキャッシュ９７０及び動き補償予測器９８０を含む予測部を更に含む。
【００８９】
可変長復号器９１０は、チャネルバッファから受信したデータを復号化する。可変長復号器９１０は、逆量子化器９２０に符号化係数データを転送し、動き補償予測器９８０に動きベクトルを転送し、デブロッキングフィルタ９６０にデブロッキングベクトルデータを転送する。逆量子化器９２０は、逆可変長復号器９１０から受信した係数データに量子化パラメータを乗算する。逆変換部９３０は、逆量子化器９２０から受信した逆量子化された係数データを画素データに変換する。その名称が示す通り、逆変換部９３０は、符号器の変換部により実行された変換動作（例えば、ＤＣＴ又はウェーブレット変換）の逆を実行する。加算器９４０は、各画素に対して、逆変換部９３０により取得された残余画素データと動き補償予測器９８０から取得した予測画素データとを加算する。加算器９４０は回復ｍｃブロックデータを出力し、回復フレームがそれから構成され且つ表示装置（不図示）においてレンダリングされる。フレームバッファ９５０は復号化ｍｃブロックを蓄積し、それらから再構成フレームを構築する。デブロッキングフィルタ９６０は、チャネルにより識別されたフィルタリングパラメータに従って、回復フレームデータに対してデブロッキングフィルタリング動作を実行する。
【００９０】
動き補償予測は、参照ピクチャキャッシュ９７０及び動き補償予測器９８０を介して行われる。参照ピクチャキャッシュ９７０は、参照フレームとして識別されたフレーム（例えば、復号化Ｉ又はＰフレーム）に対するデブロッキングフィルタ９６０により出力された回復画像データを格納する。動き補償予測器９８０は、チャネルから受信したｍｃブロックの動きベクトルデータに応答して、参照ピクチャキャッシュ９７０から参照ｍｃブロックを検索する。動き補償予測器は、加算器９４０に参照ｍｃブロックを出力する。
【００９１】
上述の説明において、本発明の種々の実施形態に従って構成されるビデオ符号化システムにおいて使用される機能ブロックが識別された。実際は、これらのシステムは、内蔵ビデオカメラを備える移動装置（例えば、カメラ付き電話、娯楽システム及びコンピュータ）等の種々の装置、並びに／又はテレビ会議機器及びカメラ利用可能デスクトップコンピュータ等の有線通信システムにおいて適用される。いくつかの応用例において、上述の機能ブロックは、ブロックがコンピュータプログラムの別個の要素として提供される一体型ソフトウェアシステムの要素として提供される。他の応用例において、機能ブロックは、デジタル信号プロセッサ又は特定用途向け集積回路内の機能単位等の処理システムの個別の回路構成要素として提供される。本発明の更に他の応用例は、専用ハードウェア及びソフトウェア構成要素の複合システムとして実現される。更に、本明細書中で説明される機能ブロックは、別個のユニットとして提供される必要がない。例えば、図８はブロックベース符号化チェーン２１０及び予測部２２０の構成要素を別個のユニットとして示すが、１つ以上実施形態において、それらの一部又は全てが一体化されてもよく、それらは別個のユニットである必要がない。特に指示されない限り、そのような実現例の詳細は本発明の動作にとって重要ではない。
【００９２】
本明細書において、本発明のいくつかの実施形態が特に示され且つ／又は説明される。しかし、本発明の変更及び変形は、本発明の趣旨の範囲から逸脱せずに上記の教示及び添付の特許請求の範囲の範囲に含まれることが理解されるだろう。
【図１】
0005579936.tif 000008
【図２】
0005579936.tif 000009
【図３】
0005579936.tif 000010
【図４】
0005579936.tif 000011
【図５】
0005579936.tif 000012
【図６】
0005579936.tif 000013
【図８】
0005579936.tif 000014
【図９】
0005579936.tif 000015
【図１０】
0005579936.tif 000016
【図１１】
0005579936.tif 000017
【図１２】
0005579936.tif 000018
【図１３】
0005579936.tif 000019
【図７】
0005579936.tif 000020