(57)【特許請求の範囲】
【請求項１】
コンピュータにより実施される、適応型品質回復フィルタ処理の方法であって、当該方法は、
再構築されたフレームのビデオデータを取得するステップと、
前記ビデオデータの再構築されたフレームについて、複数のブロック領域適応組み合わせを生成するステップであって、
再構築されたフレームを複数の領域に分割するステップと、
領域フィルタを各領域に関係付けるステップであって、前記領域フィルタは、前記の対応する領域内の画素値に関係する一組のフィルタ係数を有する、ステップと、
前記再構築されたフレームを形成するブロックをブロック内の画素値の異なる勾配に関係する分類に分類するステップと、
個々の分類のためのブロックフィルタと前記分類に割り当てられたブロックの画素値に関係するフィルタ係数の組とを関係付けるステップと、
を含む生成するステップと、
前記再構築されたフレーム上の領域フィルタおよびブロックフィルタの両方を用いて、前記再構築されたフレームの前記画素値を変更するステップとを含み、
当該方法は、領域フィルタ計算から除外され、かつ前記組み合わせの一部であるように選択された１つまたは複数のブロック分類に属する前記再構築されたフレーム上のブロックに形成された開口部を除いて、前記再構築されたフレーム上の前記領域フィルタを用いるステップを含み、前記ブロックフィルタは、前記開口部においてブロックデータと共に使用され、
当該方法は、反復を形成することにより、前記組み合わせにおける前記ブロックの領域配置を変更するステップであって、組み合わせの各反復は、異なる数の
（１）フィルタを共有するブロック分類、または
（２）フィルタを共有する領域、または
（１）および（２）の任意の組み合わせを有する、ステップと、
複数の前記組み合わせのうちのどの反復が、前記再構築されたフレームの前記画素値を変更するために用いる最も低いレート歪を生じさせるかを判断するステップと、を含み、前記組み合わせの初期配置は、前記組み合わせの反復を形成することができる領域およびブロック分類の数に関して最大限度を確立し、
当該方法は、
ブロックベースのフィルタ処理なしに実行される領域ベースのフィルタ処理と、
領域ベースのフィルタ処理なしに実行されるブロックベースのフィルタ処理と、のうちの少なくとも一方、または両方の代替的な組み合わせを含み、
レート歪みは、誤差値、一定ラムダ値、およびフィルタ係数ビットのカウントに関係するラグランジアン値を含み、
前記組み合わせのうちの少なくとも１つは、前記の利用可能なブロック分類のすべてよりも少なくなるように制限され、
前記領域またはブロックの反復は、前記フレーム全体の異なる数のフィルタに関係し、最大数のフィルタと１つのフィルタとの間で１ずつ増加し、
前記代替的な組み合わせは、前記ブロックベースのフィルタ処理のために異なるブロックサイズを用いる代替物を含み、少なくとも１つの代替的な組み合わせは、４×４ブロック解析に基づき、少なくとも１つの他の代替的な組み合わせは、８×８ブロック解析に基づき、
前記フレームは、任意選択で最高１６個のフィルタに関係する１６個の領域に最初に分割され、１６個までのブロック分類が前記ブロックを分類するために利用可能であり、
各代替的な組み合わせは、所定の総数に等しい、いくつかの異なる領域フィルタといくつかの含まれる異なるブロック分類フィルタとを有し、前記総数は１６であり、
１６個の利用可能な領域フィルタおよび１６個の利用可能な０から１５まで番号付けされたブロック分類は、前記分類の番号が高いほどブロック内の画素値の前記勾配が高くなり、前記複数の組み合わせは、
１２個の領域フィルタおよびブロック分類１２〜１５と、
８個の領域フィルタおよびブロック分類８〜１５と、
４個の領域フィルタおよびブロック分類４〜１５と、のうちの少なくとも１つの組み合わせを少なくとも最初に含み、
前記再構築されたフレームは、４×４に配列された１６個の領域で定義され、前記領域フィルタは、各番号が同じフィルタを参照するように番号付けされ、前記再構築されたフレームの列の左から右に、および上から下に参照し、前記複数の組み合わせは、
前記１６個の領域における合計１２個の領域フィルタについて、０，１，４，５，１１，２，３，５，１０，９，８，６，１０，７，７，６と、
前記１６個の領域における合計８個の領域フィルタについて、０，０，２，２，７，１，１，３，７，５，５，３，６，６，４，４と、
前記１６個の領域における合計４個の領域フィルタについて、０，０，０，１，３，０，１，１，３，３，２，１，３，２，２，２と、のうちの少なくとも１つを少なくとも最初に含み、
当該方法は、
対称係数、非対称係数、および係数を有していないホールを含み、かつ前記ホールの位置の上、下、右、および左の隣接する係数である係数のパターンを有するフィルタを用いるステップであって、前記フィルタは、１０個の固有の係数を含む１９個の係数位置を有し、前記フィルタは、９×９のクロス、３×３の長方形、ならびに前記フィルタの斜めのエッジを形成し、前記斜めのエッジと前記クロスおよび長方形との間に前記ホールを配置する３つの係数位置を有する菱形形状である、ステップと、
フィルタ係数値を符号化または復号する代わりに、予め記憶されたフィルタ係数値を有する予め記憶されたフィルタに対応するコードブック値を符号化または復号するステップと、
値がフィルタ係数により頻繁に用いられるほどより短くなるコードを有する複数の可変長符号化（ＶＬＣ）テーブルのうちの少なくとも１つを適応可能に選択することを含む、前記フィルタ係数を符号化するステップであって、同じ係数値の前記コードは、同じフィルタのどのフィルタ係数位置が符号化されているかに応じて変化し、フィルタ係数値がフィルタ係数位置に対する値のカバー範囲内にある場合には、単一コードを符号化し、かつ、前記フィルタ係数値が前記フィルタ係数位置に対する値のカバー範囲の外側にある場合には、エスケープコードおよび切り詰めたゴロムコードを符号化することを含むカバー符号化を用いることを含む、ステップと、
他のテーブルからの結果と比較して最小のビット数が得られる前記ＶＬＣテーブルを選択するステップとを含む、方法。
【請求項２】
ディスプレイと、
メモリと、
前記メモリおよび前記ディスプレイに通信可能に結合された少なくとも１つのプロセッサと、
を含み、
前記少なくとも１つのプロセッサは、
再構築されたフレームのビデオデータを取得するステップと、
前記ビデオデータの再構築されたフレームについて、複数のブロック領域適応組み合わせを生成するステップであって、
再構築されたフレームを複数の領域に分割するステップと、
領域フィルタを各領域に関係付けるステップであって、前記領域フィルタは、前記の対応する領域内の画素値に関係する一組のフィルタ係数を有する、ステップと、
前記再構築されたフレームを形成するブロックをブロック内の画素値の異なる勾配に関係する分類に分類するステップと、
個々の分類のためのブロックフィルタと前記分類に割り当てられたブロックの画素値に関係するフィルタ係数の組とを関係付けるステップと、
を含む生成するステップと、
前記再構築されたフレーム上の領域フィルタおよびブロックフィルタの両方を用いて、前記再構築されたフレームの前記画素値を変更するステップとを実行するように構成され、
前記少なくとも１つのプロセッサは、
領域フィルタ計算から除外され、かつ前記組み合わせの一部であるように選択された１つまたは複数のブロック分類に属する前記再構築されたフレーム上のブロックに形成された開口部を除いて、前記再構築されたフレーム上の前記領域フィルタを用いるステップであって、前記ブロックフィルタは、前記開口部においてブロックデータと共に使用される、ステップと、
反復を形成することにより、前記組み合わせにおける前記ブロックの領域配置を変更するステップであって、組み合わせの各反復は、異なる数の
（１）フィルタを共有するブロック分類、または
（２）フィルタを共有する領域、または
（１）および（２）の任意の組み合わせを有する、ステップと、
複数の前記組み合わせのうちのどの反復が、前記再構築されたフレームの前記画素値を変更するために用いる最も低いレート歪を生じさせるかを判断するステップであって、前記組み合わせの初期配置は、前記組み合わせの反復を形成することができる領域およびブロック分類の数に関して最大限度を確立し、
前記組み合わせは、
ブロックベースのフィルタ処理なしに実行される領域ベースのフィルタ処理と、
領域ベースのフィルタ処理なしに実行されるブロックベースのフィルタ処理と、のうちの少なくとも一方、または両方の代替的な組み合わせを含み、
レート歪みは、誤差値、一定ラムダ値、およびフィルタ係数ビットのカウントに関係するラグランジアン値を含み、
前記組み合わせのうちの少なくとも１つは、前記の利用可能なブロック分類のすべてよりも少なくなるように制限され、
前記領域またはブロックの反復は、前記フレーム全体の異なる数のフィルタに関係し、最大数のフィルタと１つのフィルタとの間で１ずつ増加し、
前記代替的な組み合わせは、前記ブロックベースのフィルタ処理のために異なるブロックサイズを用いる代替物を含み、少なくとも１つの代替的な組み合わせは、４×４ブロック解析に基づき、少なくとも１つの他の代替的な組み合わせは、８×８ブロック解析に基づき、
前記フレームは、任意選択で最高１６個のフィルタに関係する１６個の領域に最初に分割され、１６個までのブロック分類が前記ブロックを分類するために利用可能であり、
各代替的な組み合わせは、所定の総数に等しい、いくつかの異なる領域フィルタといくつかの含まれる異なるブロック分類フィルタとを有し、前記総数は１６であり、
１６個の利用可能な領域フィルタおよび１６個の利用可能な０から１５まで番号付けされたブロック分類は、前記分類の番号が高いほどブロック内の画素値の前記勾配が高くなり、前記複数の組み合わせは、
１２個の領域フィルタおよびブロック分類１２〜１５と、
８個の領域フィルタおよびブロック分類８〜１５と、
４個の領域フィルタおよびブロック分類４〜１５と、のうちの少なくとも１つの組み合わせを少なくとも最初に含み、
前記再構築されたフレームは、４×４に配列された１６個の領域で定義され、前記領域フィルタは、各番号が同じフィルタを参照するように番号付けされ、前記再構築されたフレームの列の左から右に、および上から下に参照し、前記複数の組み合わせは、
前記１６個の領域における合計１２個の領域フィルタについて、０，１，４，５，１１，２，３，５，１０，９，８，６，１０，７，７，６と、
前記１６個の領域における合計８個の領域フィルタについて、０，０，２，２，７，１，１，３，７，５，５，３，６，６，４，４と、
前記１６個の領域における合計４個の領域フィルタについて、０，０，０，１，３，０，１，１，３，３，２，１，３，２，２，２と、のうちの少なくとも１つを少なくとも最初に含む、ステップと、
対称係数、非対称係数、および係数を有していないホールを含み、かつ前記ホールの位置の上、下、右、および左の隣接する係数である係数のパターンを有するフィルタを用いるステップであって、前記フィルタは、１０個の固有の係数を含む１９個の係数位置を有し、前記フィルタは、９×９のクロス、３×３の長方形、ならびに前記フィルタの斜めのエッジを形成し、前記斜めのエッジと前記クロスおよび長方形との間に前記ホールを配置する３つの係数位置を有する菱形形状である、ステップと、
フィルタ係数値を符号化または復号する代わりに、予め記憶されたフィルタ係数値を有する予め記憶されたフィルタに対応するコードブック値を符号化または復号するステップと、
値がフィルタ係数により頻繁に用いられるほどより短くなるコードを有する複数の可変長符号化（ＶＬＣ）テーブルのうちの少なくとも１つを適応可能に選択することを含む、前記フィルタ係数を符号化するステップであって、同じ係数値の前記コードは、同じフィルタのどのフィルタ係数位置が符号化されているかに応じて変化し、フィルタ係数値がフィルタ係数位置に対する値のカバー範囲内にある場合には、単一コードを符号化し、かつ、前記フィルタ係数値が前記フィルタ係数位置に対する値のカバー範囲の外側にある場合には、エスケープコードおよび切り詰めたゴロムコードを符号化することを含むカバー符号化を用いることを含む、ステップと、
他のテーブルからの結果と比較して最小のビット数が得られる前記ＶＬＣテーブルを選択するステップとを実行するようにさらに構成される、システム。
【請求項３】
命令を含む少なくとも１つのコンピュータプログラムであって、前記命令は、コンピューティングデバイスによって実行された場合に、前記コンピューティングデバイスに対して、
再構築されたフレームのビデオデータを取得させ、
再構築されたフレームを複数の領域に分割するステップと、
領域フィルタを各領域に関係付けるステップであって、前記領域フィルタは、前記の対応する領域内の画素値に関係する一組のフィルタ係数を有する、ステップと、
前記再構築されたフレームを形成するブロックをブロック内の画素値の異なる勾配に関係する分類に分類するステップと、
個々の分類のためのブロックフィルタと前記分類に割り当てられたブロックの画素値に関係するフィルタ係数の組とを関係付けるステップとを含んで、前記ビデオデータの再構築されたフレームについて、複数のブロック領域適応組み合わせを生成させ、かつ、
前記再構築されたフレーム上の領域フィルタおよびブロックフィルタの両方を用いて、前記再構築されたフレームの前記画素値を変更させ、
前記命令は、前記コンピューティングデバイスに対して、
領域フィルタ計算から除外され、かつ前記組み合わせの一部であるように選択された１つまたは複数のブロック分類に属する前記再構築されたフレーム上のブロックに形成された開口部を除いて、前記再構築されたフレーム上の前記領域フィルタを使用させ、前記ブロックフィルタは、前記開口部においてブロックデータと共に使用され、
反復を形成することにより、前記組み合わせにおける前記ブロックの領域配置を変更させ、組み合わせの各反復は、異なる数の
（１）フィルタを共有するブロック分類、または
（２）フィルタを共有する領域、または
（１）および（２）の任意の組み合わせを有し、
複数の前記組み合わせのうちのどの反復が、前記再構築されたフレームの前記画素値を変更するために用いる最も低いレート歪を生じさせるかを判断させ、前記組み合わせの初期配置は、前記組み合わせの反復を形成することができる領域およびブロック分類の数に関して最大限度を確立し、
前記組み合わせは、
ブロックベースのフィルタ処理なしに実行される領域ベースのフィルタ処理と、
領域ベースのフィルタ処理なしに実行されるブロックベースのフィルタ処理と、のうちの少なくとも一方、または両方の代替的な組み合わせを含み、
レート歪みは、誤差値、一定ラムダ値、およびフィルタ係数ビットのカウントに関係するラグランジアン値を含み、
前記組み合わせのうちの少なくとも１つは、前記の利用可能なブロック分類のすべてよりも少なくなるように制限され、
前記領域またはブロックの反復は、前記フレーム全体の異なる数のフィルタに関係し、最大数のフィルタと１つのフィルタとの間で１ずつ増加し、
前記代替的な組み合わせは、前記ブロックベースのフィルタ処理のために異なるブロックサイズを用いる代替物を含み、少なくとも１つの代替的な組み合わせは、４×４ブロック解析に基づき、少なくとも１つの他の代替的な組み合わせは、８×８ブロック解析に基づき、
前記フレームは、任意選択で最高１６個のフィルタに関係する１６個の領域に最初に分割され、１６個までのブロック分類が前記ブロックを分類するために利用可能であり、
各代替的な組み合わせは、所定の総数に等しい、いくつかの異なる領域フィルタといくつかの含まれる異なるブロック分類フィルタとを有し、前記総数は１６であり、
１６個の利用可能な領域フィルタおよび１６個の利用可能な０から１５まで番号付けされたブロック分類は、前記分類の番号が高いほどブロック内の画素値の前記勾配が高くなり、前記複数の組み合わせは、
１２個の領域フィルタおよびブロック分類１２〜１５と、
８個の領域フィルタおよびブロック分類８〜１５と、
４個の領域フィルタおよびブロック分類４〜１５と、のうちの少なくとも１つの組み合わせを少なくとも最初に含み、
前記再構築されたフレームは、４×４に配列された１６個の領域で定義され、前記領域フィルタは、各番号が同じフィルタを参照するように番号付けされ、前記再構築されたフレームの列の左から右に、および上から下に参照し、前記複数の組み合わせは、
前記１６個の領域における合計１２個の領域フィルタについて、０，１，４，５，１１，２，３，５，１０，９，８，６，１０，７，７，６と、
前記１６個の領域における合計８個の領域フィルタについて、０，０，２，２，７，１，１，３，７，５，５，３，６，６，４，４と、
前記１６個の領域における合計４個の領域フィルタについて、０，０，０，１，３，０，１，１，３，３，２，１，３，２，２，２と、のうちの少なくとも１つを少なくとも最初に含み、
対称係数、非対称係数、および係数を有していないホールを含み、かつ前記ホールの位置の上、下、右、および左の隣接する係数である係数のパターンによりフィルタを使用させ、前記フィルタは、１０個の固有の係数を含む１９個の係数位置を有し、前記フィルタは、９×９のクロス、３×３の長方形、ならびに前記フィルタの斜めのエッジを形成し、前記斜めのエッジと前記クロスおよび長方形との間に前記ホールを配置する３つの係数位置を有する菱形形状であり、
フィルタ係数値を符号化または復号する代わりに、予め記憶されたフィルタ係数値を有する予め記憶されたフィルタに対応するコードブック値を符号化または復号させ、
値がフィルタ係数により頻繁に用いられるほどより短くなるコードを有する複数の可変長符号化（ＶＬＣ）テーブルのうちの少なくとも１つを適応可能に選択することを含んで、前記フィルタ係数を符号化させ、同じ係数値の前記コードは、同じフィルタのどのフィルタ係数位置が符号化されているかに応じて変化し、フィルタ係数値がフィルタ係数位置に対する値のカバー範囲内にある場合には、単一コードを符号化し、かつ、前記フィルタ係数値が前記フィルタ係数位置に対する値のカバー範囲の外側にある場合には、エスケープコードおよび切り詰めたゴロムコードを符号化することを含むカバー符号化を用いることを含み、
他のテーブルからの結果と比較して最小のビット数が得られる前記ＶＬＣテーブルを選択させる、コンピュータプログラム。
【請求項４】
符号器であって、
フレームを再構築し、各々がフレームの領域と関係する係数のパターンを有する複数のフィルタを含む適応型品質回復フィルタを含む復号ループを含み、前記フィルタのパターンのうちの少なくとも１つは、
菱形形状と、
対称係数と、
非対称係数と、
係数を有していないとともに、上、下、左、および右の係数に隣接する少なくとも１つのホールと、
前記菱形形状のコーナーを形成する端部を有する前記係数のクロス形状と、
前記クロス形状をオーバーラップする前記係数の長方形と、
係数によって形成され、前記菱形形状のエッジを形成する斜めのエッジとを含み、
前記長方形のコーナーを形成する前記係数は、非対称係数であり、
前記フィルタは、１０個の固有の係数を含む１９個の係数位置を有し、前記フィルタは、９×９のクロス、３×３の長方形、ならびに前記フィルタの斜めのエッジを形成し、前記斜めのエッジと前記クロスおよび長方形との間に前記ホールを配置する３つの係数位置を有する菱形形状であり、
前記符号器は、適応型品質回復フィルタを含み、前記適応型品質回復フィルタは、
領域フィルタ計算から除外され、かつ前記組み合わせの一部であるように選択された１つまたは複数のブロック分類に属する前記再構築されたフレーム上のブロックに形成された開口部を除いて、前記再構築されたフレーム上の領域フィルタを使用し、ブロックフィルタは、前記開口部においてブロックデータと共に使用され、
反復を形成することにより、前記組み合わせにおける前記ブロックの領域配置を変更し、組み合わせの各反復は、異なる数の
（１）フィルタを共有するブロック分類、または
（２）フィルタを共有する領域、または
（１）および（２）の任意の組み合わせを有し、
複数の前記組み合わせのうちのどの反復が、前記再構築されたフレームの画素値を変更するために用いる最も低いレート歪を生じさせるかを判断し、前記組み合わせの初期配置は、前記組み合わせの反復を形成することができる領域およびブロック分類の数に関して最大限度を確立し、
前記組み合わせは、
ブロックベースのフィルタ処理なしに実行される領域ベースのフィルタ処理と、
領域ベースのフィルタ処理なしに実行されるブロックベースのフィルタ処理と、のうちの少なくとも一方、または両方の代替的な組み合わせを含み、
レート歪みは、誤差値、一定ラムダ値、およびフィルタ係数ビットのカウントに関係するラグランジアン値を含み、
前記組み合わせのうちの少なくとも１つは、前記の利用可能なブロック分類のすべてよりも少なくなるように制限され、
前記領域またはブロックの反復は、前記フレーム全体の異なる数のフィルタに関係し、最大数のフィルタと１つのフィルタとの間で１ずつ増加し、
前記代替的な組み合わせは、前記ブロックベースのフィルタ処理のために異なるブロックサイズを用いる代替物を含み、少なくとも１つの代替的な組み合わせは、４×４ブロック解析に基づき、少なくとも１つの他の代替的な組み合わせは、８×８ブロック解析に基づき、
前記フレームは、任意選択で最高１６個のフィルタに関係する１６個の領域に最初に分割され、１６個までのブロック分類が前記ブロックを分類するために利用可能であり、
各代替的な組み合わせは、所定の総数に等しい、いくつかの異なる領域フィルタといくつかの含まれる異なるブロック分類フィルタとを有し、前記総数は１６であり、
１６個の利用可能な領域フィルタおよび１６個の利用可能な０から１５まで番号付けされたブロック分類は、前記分類の番号が高いほどブロック内の画素値の勾配が高くなり、前記複数の組み合わせは、
１２個の領域フィルタおよびブロック分類１２〜１５と、
８個の領域フィルタおよびブロック分類８〜１５と、
４個の領域フィルタおよびブロック分類４〜１５と、のうちの少なくとも１つの組み合わせを少なくとも最初に含み、
前記再構築されたフレームは、４×４に配列された１６個の領域で定義され、前記領域フィルタは、各番号が同じフィルタを参照するように番号付けされ、前記再構築されたフレームの列の左から右に、および上から下に参照し、前記複数の組み合わせは、
前記１６個の領域における合計１２個の領域フィルタについて、０，１，４，５，１１，２，３，５，１０，９，８，６，１０，７，７，６と、
前記１６個の領域における合計８個の領域フィルタについて、０，０，２，２，７，１，１，３，７，５，５，３，６，６，４，４と、
前記１６個の領域における合計４個の領域フィルタについて、０，０，０，１，３，０，１，１，３，３，２，１，３，２，２，２と、のうちの少なくとも１つを少なくとも最初に含み、
フィルタ係数値を符号化または復号する代わりに、予め記憶されたフィルタ係数値を有する予め記憶されたフィルタに対応するコードブック値を符号化または復号し、
値がフィルタ係数により頻繁に用いられるほどより短くなるコードを有する複数の可変長符号化（ＶＬＣ）テーブルのうちの少なくとも１つを適応可能に選択することを含んで、前記フィルタ係数を符号化し、同じ係数値の前記コードは、同じフィルタのどのフィルタ係数位置が符号化されているかに応じて変化し、フィルタ係数値がフィルタ係数位置に対する値のカバー範囲内にある場合には、単一コードを符号化し、かつ、前記フィルタ係数値が前記フィルタ係数位置に対する値のカバー範囲の外側にある場合には、エスケープコードおよび切り詰めたゴロムコードを符号化することを含むカバー符号化を用いることを含み、
他のテーブルからの結果と比較して最小のビット数が得られる前記ＶＬＣテーブルを選択するように構成される、符号器。
【請求項５】
コンピューティングデバイス上で実行されることに応答して、前記コンピューティングデバイスに対して、請求項１に記載の方法を実行させる複数の命令を含む少なくとも１つの機械可読媒体。
【請求項６】
請求項１に記載の方法を実行するための手段を含む装置。
【請求項７】
請求項３に記載のコンピュータプログラムを記憶したコンピュータ読み取り可能な記憶媒体。
【発明の詳細な説明】
【背景技術】
【０００１】
Ｈ．２６４またはＨ．２６５／ＨＥＶＣ（高効率ビデオ符号化）規格などの既存のビデオ符号化規格を用いた符号化に要求される限定されたビットレートまたは帯域幅を用いる一方で、ビデオ解像度の増大、および高品質ビデオ画像に対する期待の高まりによって、ビデオの効率的な画像データ圧縮に対する高い要求が存在する。上記規格は、不十分な圧縮／品質の問題に対処するために従来の手法の拡張された形式を用いているが、結果は依然として限定的である。
【０００２】
改良を使用することができる１つの特定の領域は、再構築された信号の品質である。たとえば、ビデオ信号（ビデオシーケンスのフレームに関係する）がエンコーダの予測ループ内で逆量子化および逆変換によって再構築されると、再構築された信号を清浄にするために一般的に使用される装置は、デブロッキングフィルタ（ＤＢＦ）、サンプル適応型オフセット（ＳＡＯ）フィルタ、およびフィルタ係数を算出するためにウィーナーフィルタを用いる適応可能ループフィルタ（ＡＬＦ）などのインループフィルタ処理を含むことができる。ＨＥＶＣ規格は、その規格内にＳＡＯを組み込んだが、一貫した利得をロバストに提供するＡＬＦを得ることが困難であることを含む多くの理由により、一般的にはＡＬＦを組み込まず、ＡＬＦの機能のいくつかはより低い複雑さでＳＡＯによって達成することができる。ＡＬＦを使用した場合であっても、ＡＬＦは、元のビデオ画像に対する再構築された画像の優れた整合を提供しない。このために、しばしば比較的低品質の予測信号を生成することになり、より効率的な符号化で必要とされるよりも、より多くの帯域幅を占有する比較的大きな予測誤差ビットコストを同様に生成する。
【０００３】
本明細書に記載する題材は、例示のために示しており、添付の図面に限定するためではない。説明を簡単かつ明瞭にするために、図面に示す要素は必ずしも縮尺通りに描かれているわけではない。たとえば、いくつかの要素の寸法は、明瞭にするために、他の要素に対して誇張されている場合がある。さらに、適切と考えられる場合には、符号は、対応するまたは類似する要素を示すために図面間で繰り返されている。図面は下記の通りである。
【図面の簡単な説明】
【０００４】
【図１】ビデオ符号化システムのためのエンコーダの例示的な図である。
【図２】ビデオ符号化システムのためのデコーダの例示的な図である。
【図３】ビデオ符号化用の適応型品質回復フィルタ処理を示すフローチャートである。
【図４】適応型品質回復フィルタ処理の例示的な一般的な処理を示すフローチャートである。
【図５Ａ】エンコーダにおけるビデオ符号化用の、かつコードブックなしに用いるための、適応型品質回復フィルタ処理の流れを示すフローチャートである。
【図５Ｂ】エンコーダにおけるビデオ符号化用の、かつコードブックなしに用いるための、適応型品質回復フィルタ処理の流れを示すフローチャートである。
【図５Ｃ】エンコーダにおけるビデオ符号化用の、かつコードブックなしに用いるための、適応型品質回復フィルタ処理の流れを示すフローチャートである。
【図５Ｄ】エンコーダにおけるビデオ符号化用の、かつコードブックなしに用いるための、適応型品質回復フィルタ処理の流れを示すフローチャートである。
【図５Ｅ】エンコーダにおけるビデオ符号化用の、かつコードブックなしに用いるための、適応型品質回復フィルタ処理の流れを示すフローチャートである。
【図５Ｆ】エンコーダにおけるビデオ符号化用の、かつコードブックなしに用いるための、適応型品質回復フィルタ処理の流れを示すフローチャートである。
【図５Ｇ】エンコーダにおけるビデオ符号化用の、かつコードブックなしに用いるための、適応型品質回復フィルタ処理の流れを示すフローチャートである。
【図５Ｈ】エンコーダにおけるビデオ符号化用の、かつコードブックなしに用いるための、適応型品質回復フィルタ処理の流れを示すフローチャートである。
【図６】フィルタ係数の配置を有する適応型品質回復フィルタの形状を示す図である。
【図７】複数の領域に分割された例示的なフレームを示す図である。
【図８】適応型品質フィルタ処理のための領域をマージすることによる、領域ベースおよびブロックベースの反復を説明するテーブルである。
【図９】適応型品質回復フィルタ処理のための第１のブロック領域の代替的な組み合わせの領域に分割されたフレームを示す図である。
【図１０】適応型品質回復フィルタ処理のための第２のブロック領域の代替的な組み合わせの領域に分割された別のフレームを示す図である。
【図１１】第２のブロック領域の代替的な組み合わせで使用されるブロックの分類のテーブルである。
【図１２】適応型品質回復フィルタ処理のための第３のブロック領域の代替的な組み合わせの領域に分割された別のフレームを示す図である。
【図１３】第３のブロック領域の代替的な組み合わせで使用されるブロックの分類のテーブルである。
【図１４】適応型品質回復フィルタ処理のための第５のブロック領域の代替的な組み合わせの領域に分割された別のフレームを示す図である。
【図１５】第５のブロック領域の代替的な組み合わせで使用されるブロックの分類のテーブルである。
【図１６】第７のブロック領域の代替的な組み合わせで使用されるブロックの分類のテーブルである。
【図１７Ａ】本明細書の適応型品質回復フィルタ処理を用いたフィルタ係数の符号化を説明するための可変長符号化テーブルである。
【図１７Ｂ−１】本明細書の適応型品質回復フィルタ処理を用いたフィルタ係数の符号化を説明するための可変長符号化テーブルである。
【図１７Ｂ−２】本明細書の適応型品質回復フィルタ処理を用いたフィルタ係数の符号化を説明するための可変長符号化テーブルである。
【図１７Ｃ−１】本明細書の適応型品質回復フィルタ処理を用いたフィルタ係数の符号化を説明するための可変長符号化テーブルである。
【図１７Ｃ−２】本明細書の適応型品質回復フィルタ処理を用いたフィルタ係数の符号化を説明するための可変長符号化テーブルである。
【図１７Ｄ−１−１】本明細書の適応型品質回復フィルタ処理を用いたフィルタ係数の符号化を説明するための可変長符号化テーブルである。
【図１７Ｄ−１−２】本明細書の適応型品質回復フィルタ処理を用いたフィルタ係数の符号化を説明するための可変長符号化テーブルである。
【図１７Ｄ−２−１】本明細書の適応型品質回復フィルタ処理を用いたフィルタ係数の符号化を説明するための可変長符号化テーブルである。
【図１７Ｄ−２−２】本明細書の適応型品質回復フィルタ処理を用いたフィルタ係数の符号化を説明するための可変長符号化テーブルである。
【図１７Ｄ−２−３】本明細書の適応型品質回復フィルタ処理を用いたフィルタ係数の符号化を説明するための可変長符号化テーブルである。
【図１７Ｅ−１−１】本明細書の適応型品質回復フィルタ処理を用いたフィルタ係数の符号化を説明するための可変長符号化テーブルである。
【図１７Ｅ−１−２】本明細書の適応型品質回復フィルタ処理を用いたフィルタ係数の符号化を説明するための可変長符号化テーブルである。
【図１７Ｅ−１−３】本明細書の適応型品質回復フィルタ処理を用いたフィルタ係数の符号化を説明するための可変長符号化テーブルである。
【図１７Ｅ−２−１】本明細書の適応型品質回復フィルタ処理を用いたフィルタ係数の符号化を説明するための可変長符号化テーブルである。
【図１７Ｅ−２−２】本明細書の適応型品質回復フィルタ処理を用いたフィルタ係数の符号化を説明するための可変長符号化テーブルである。
【図１７Ｅ−２−３】本明細書の適応型品質回復フィルタ処理を用いたフィルタ係数の符号化を説明するための可変長符号化テーブルである。
【図１７Ｆ−１−１】本明細書の適応型品質回復フィルタ処理を用いたフィルタ係数の符号化を説明するための可変長符号化テーブルである。
【図１７Ｆ−１−２】本明細書の適応型品質回復フィルタ処理を用いたフィルタ係数の符号化を説明するための可変長符号化テーブルである。
【図１７Ｆ−１−３】本明細書の適応型品質回復フィルタ処理を用いたフィルタ係数の符号化を説明するための可変長符号化テーブルである。
【図１７Ｆ−２−１】本明細書の適応型品質回復フィルタ処理を用いたフィルタ係数の符号化を説明するための可変長符号化テーブルである。
【図１７Ｆ−２−２】本明細書の適応型品質回復フィルタ処理を用いたフィルタ係数の符号化を説明するための可変長符号化テーブルである。
【図１７Ｇ−１−１】本明細書の適応型品質回復フィルタ処理を用いたフィルタ係数の符号化を説明するための可変長符号化テーブルである。
【図１７Ｇ−１−２】本明細書の適応型品質回復フィルタ処理を用いたフィルタ係数の符号化を説明するための可変長符号化テーブルである。
【図１７Ｇ−２−１】本明細書の適応型品質回復フィルタ処理を用いたフィルタ係数の符号化を説明するための可変長符号化テーブルである。
【図１７Ｇ−２−２】本明細書の適応型品質回復フィルタ処理を用いたフィルタ係数の符号化を説明するための可変長符号化テーブルである。
【図１７Ｈ−１−１】本明細書の適応型品質回復フィルタ処理を用いたフィルタ係数の符号化を説明するための可変長符号化テーブルである。
【図１７Ｈ−１−２】本明細書の適応型品質回復フィルタ処理を用いたフィルタ係数の符号化を説明するための可変長符号化テーブルである。
【図１７Ｈ−１−３】本明細書の適応型品質回復フィルタ処理を用いたフィルタ係数の符号化を説明するための可変長符号化テーブルである。
【図１７Ｈ−２−１】本明細書の適応型品質回復フィルタ処理を用いたフィルタ係数の符号化を説明するための可変長符号化テーブルである。
【図１７Ｈ−２−２】本明細書の適応型品質回復フィルタ処理を用いたフィルタ係数の符号化を説明するための可変長符号化テーブルである。
【図１７Ｈ−２−３】本明細書の適応型品質回復フィルタ処理を用いたフィルタ係数の符号化を説明するための可変長符号化テーブルである。
【図１７Ｉ−１−１】本明細書の適応型品質回復フィルタ処理を用いたフィルタ係数の符号化を説明するための可変長符号化テーブルである。
【図１７Ｉ−１−２】本明細書の適応型品質回復フィルタ処理を用いたフィルタ係数の符号化を説明するための可変長符号化テーブルである。
【図１７Ｉ−１−３】本明細書の適応型品質回復フィルタ処理を用いたフィルタ係数の符号化を説明するための可変長符号化テーブルである。
【図１７Ｉ−２−１】本明細書の適応型品質回復フィルタ処理を用いたフィルタ係数の符号化を説明するための可変長符号化テーブルである。
【図１７Ｉ−２−２】本明細書の適応型品質回復フィルタ処理を用いたフィルタ係数の符号化を説明するための可変長符号化テーブルである。
【図１７Ｉ−２−３】本明細書の適応型品質回復フィルタ処理を用いたフィルタ係数の符号化を説明するための可変長符号化テーブルである。
【図１７Ｊ−１−１】本明細書の適応型品質回復フィルタ処理を用いたフィルタ係数の符号化を説明するための可変長符号化テーブルである。
【図１７Ｊ−１−２】本明細書の適応型品質回復フィルタ処理を用いたフィルタ係数の符号化を説明するための可変長符号化テーブルである。
【図１７Ｊ−１−３】本明細書の適応型品質回復フィルタ処理を用いたフィルタ係数の符号化を説明するための可変長符号化テーブルである。
【図１７Ｊ−２−１】本明細書の適応型品質回復フィルタ処理を用いたフィルタ係数の符号化を説明するための可変長符号化テーブルである。
【図１７Ｊ−２−２】本明細書の適応型品質回復フィルタ処理を用いたフィルタ係数の符号化を説明するための可変長符号化テーブルである。
【図１７Ｊ−２−３】本明細書の適応型品質回復フィルタ処理を用いたフィルタ係数の符号化を説明するための可変長符号化テーブルである。
【図１７Ｋ−１】本明細書の適応型品質回復フィルタ処理を用いたフィルタ係数の符号化を説明するための可変長符号化テーブルである。
【図１７Ｋ−２】本明細書の適応型品質回復フィルタ処理を用いたフィルタ係数の符号化を説明するための可変長符号化テーブルである。
【図１７Ｌ】本明細書の適応型品質回復フィルタ処理を用いたフィルタ係数の符号化を説明するための可変長符号化テーブルである。
【図１８Ａ】デコーダのための、コードブックを用いない適応型品質回復フィルタ処理を示すフローチャートである。
【図１８Ｂ】デコーダのための、コードブックを用いない適応型品質回復フィルタ処理を示すフローチャートである。
【図１９Ａ】エンコーダで使用するための、コードブックを用いた適応型品質回復フィルタ処理を示す詳細なフローチャートである。
【図１９Ｂ】エンコーダで使用するための、コードブックを用いた適応型品質回復フィルタ処理を示す詳細なフローチャートである。
【図１９Ｃ】エンコーダで使用するための、コードブックを用いた適応型品質回復フィルタ処理を示す詳細なフローチャートである。
【図１９Ｄ】エンコーダで使用するための、コードブックを用いた適応型品質回復フィルタ処理を示す詳細なフローチャートである。
【図１９Ｅ】エンコーダで使用するための、コードブックを用いた適応型品質回復フィルタ処理を示す詳細なフローチャートである。
【図１９Ｆ】エンコーダで使用するための、コードブックを用いた適応型品質回復フィルタ処理を示す詳細なフローチャートである。
【図１９Ｇ】エンコーダで使用するための、コードブックを用いた適応型品質回復フィルタ処理を示す詳細なフローチャートである。
【図１９Ｈ】エンコーダで使用するための、コードブックを用いた適応型品質回復フィルタ処理を示す詳細なフローチャートである。
【図２０Ａ】デコーダで使用するための、コードブックを用いた適応型品質回復フィルタ処理を示す詳細なフローチャートである。
【図２０Ｂ】デコーダで使用するための、コードブックを用いた適応型品質回復フィルタ処理を示す詳細なフローチャートである。
【図２１】コンテンツ適応型品質回復フィルタ処理を提供するための動作の例示的なシステムを示す図である。
【図２２】例示的なシステムを示す図である。
【図２３】別の例示的なシステムを示す図である。
【図２４】別の例示的なデバイスを示す図であり、すべては本開示の少なくともいくつかの実施形態により構成されている。
【発明を実施するための形態】
【０００５】
ここで１つまたは複数の実施形態について、添付した図面を参照して説明する。特定の構成および配置が説明されているが、これは例示のためだけであることを理解されたい。当業者であれば、本明細書の趣旨および範囲から逸脱することなく、他の構成および配置を使用することができることを認識するであろう。本明細書で説明される技術および／または配置が本明細書に記載されたもの以外の他の様々なシステムおよび用途でも利用され得ることは、当業者には明らかであろう。
【０００６】
下記の説明では、たとえば、システムオンチップ（ＳｏＣ）アーキテクチャなどのアーキテクチャにおいて実現することができる様々な実施形態を記載しているが、本明細書で説明する技術および／または配置の実施形態は、特定のアーキテクチャおよび／またはコンピューティングシステムに限定されるものではなく、同様の目的のための任意のアーキテクチャおよび／またはコンピューティングシステムにより実施されることができる。例として、たとえば複数の集積回路（ＩＣ）チップおよび／もしくはパッケージ、ならびに／または様々なコンピューティングデバイスおよび／もしくはセットトップボックス、スマートフォンなどの家電（ＣＥ）デバイスを用いた様々なアーキテクチャは、本明細書で説明される技術および／または配置を実装することができる。さらに、下記の説明では、ロジックの実施形態、システム構成要素のタイプおよび相関関係、ロジック分割／統合選択などの多くの具体的な詳細を記載している場合があるが、特許請求される主題はそのような特定の詳細なしに実施されることができる。他の例では、制御構造や完全ソフトウェア命令シーケンスなどのいくつかの題材は、本明細書に開示される題材を不明瞭にしないために、詳細に示していない場合がある。
【０００７】
本明細書に開示される題材は、ハードウェア、ファームウェア、ソフトウェア、またはこれらの任意の組み合わせで実施されることができる。本明細書に開示される題材はまた、機械可読媒体に格納された命令として実施されることができ、それは１つまたは複数のプロセッサによって読み出されて実行され得る。機械可読媒体は、機械（たとえば、コンピューティングデバイス）によって読み取り可能な形式で情報を格納または伝送するための任意の媒体および／または機構を含むことができる。たとえば、機械可読媒体は、読み出し専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、磁気ディスク記憶媒体、光記憶媒体、フラッシュメモリデバイス、電気的、光学的、音響的もしくは他の形態の伝搬信号（たとえば、搬送波、赤外線信号、デジタル信号など）、およびその他を含むことができる。別の形態では、非一時的なコンピュータ可読媒体などの物品は、一時的な信号自体を含まない点を除き、上記の例または他の例のいずれかと共に使用されることができる。それは、ＲＡＭなどのような「一時的な」方式で一時的にデータを保持することができる、信号自体以外の要素を含んでいる。
【０００８】
本明細書における「一実施形態」、「実施形態」、「例示的な実施形態」などへの言及は、説明される実施形態が特定の特徴、構造、または特性を含むことができることを示すが、必ずしもすべての実施形態が特定の特徴、構造、または特性を含まなくてもよい。さらに、そのような語句は、必ずしも同じ実施形態を指しているわけではない。さらに、特定の特徴、構造、または特性が実施形態と組み合わせて記載されている場合には、本明細書で明示的に述べているか否かに関わらず、他の実施形態と組み合わせてそのような特徴、構造、または特性を実現することは、当業者の知識の範囲内であると考えられる。
【０００９】
ビデオ符号化用の高コンテンツ適応型品質回復フィルタ処理に関するシステム、物品、および方法を下記に説明する。
【００１０】
上述したように、ビデオ符号化を向上させる１つの方法は、ＨＥＶＣおよび同様のビデオ符号化規格を拡張することにより、予測信号の品質を向上させるのに同様に役立つことができる再構築された信号の品質を向上させて、全体的なより高い圧縮効率を達成することである。具体的には、復号されたビデオ品質を符号化ループ内で整合フィルタ処理によってさらに向上させることができれば、再構築された画像品質を向上させるだけでなく、予測エラービットコストを低減する予測信号の品質の向上におけるフィードバック効果も有することになるので、ビデオ圧縮効率／品質をさらに向上させる。換言すれば、フレーム間ビデオ符号化における全体的なビデオ圧縮効率および圧縮利得は、符号化されなければならない残留データの量を低減するために、再構築されたビデオの画素データを入力ビデオとより良好に一致させるように、再構築されたビデオをフィルタ処理することによって向上させることができる。
【００１１】
本明細書に記載する適応型品質回復（ＡＱＲ）フィルタ処理手法は、ＨＥＶＣ  ＨＭ７．１手法よりも良好な結果を提供することができるが、それは大きなフィルタ形状の使用に通常関係する複雑さを著しく増加させずに、より大きなフィルタ処理領域をカバーする、より効果的なフィルタ形状を使用しているからである。ここでは、文脈に応じて、フィルタまたはフィルタ形状は、画素位置（たとえばフィルタ形状の中心）上に配置されてその位置における画素値を変更するフィルタ係数（図６）のパターンを指すことができる。一形態では、フィルタ（固定係数値を有する）をフレームの領域または一部にのみ使用することができるので、フレームは、すべてが同一のパターンを有するが、特定の領域では異なる係数値を有するいくつかのフィルタを有することができる。一例によれば、フィルタ形状内の画素位置が係数値を有しないように、フィルタ形状はホールを用いてより大きく形成されるので、パターンの外形寸法は比較的大きいままとなる。このようなフィルタは、同様にフィルタに必要な異なる係数の数を低減するために、下記に述べるように対称係数および非対称係数の両方を有することができる。
【００１２】
ＡＱＲフィルタの効率を向上させる別の方法は、フレームのコンテンツに応じて調整可能な適応型フィルタを提供することである。したがって、一形態では、フィルタ係数は、１つまたは複数のフレーム全体に対して固定されたフィルタ係数を有するのではなく、フレームごとに、および、局所的適応と呼ばれる同一のフレームの異なる領域ごとに、独立に算出される。局所的適応に基づいてフィルタ係数を決定する２つの方法は、下記でより詳細に説明する領域に基づく方法およびブロックに基づく方法による。一般的には、領域に基づく方法では、フレームを形成するいくつかの物理的にマッピングされた領域の各々について、異なるフィルタが提供される。領域は、いくつかのＬＣＵを含むのに十分な大きさとすることができる。領域が組み合わされ、またはより正確にフィルタを共有する最小レート歪みについて、異なる反復をテストすることができる。領域に基づく方法は、帯域幅については非常に効率的であるが、比較的大きな予測誤差が依然として生じ得るようにあまりに不正確な場合もある。
【００１３】
別の形態では、ブロックに基づく方法は、各クラスは、ブロック内の画素値の階調の量を示す、いくつかのブロックの分類を提供する。ブロックは、４×４または８×８画素のように小さくてもよい。領域に基づく方法の場合のように、異なるクラスのブロックが同じフィルタを共有する反復は、どの反復を用いるのが最良であるかを決定するためにテストされる。ブロックに基づく方法は、領域に基づく方法よりもはるかに正確であり得るが、より多くのビットを使う場合がある。さらに、これまでのところ、これら２つの方法をバランスさせる解決策は決定されていない。本明細書では、本開示は、両方の方法の最も良い利点を保持するために、領域およびブロックに基づく方法の組み合わせを提供する。したがって、下記に詳細に説明するように、使用する最良のブロック領域の組み合わせを決定するために、１つまたは複数のフレームについて、代替的なブロック領域（ＢＲ）の組み合わせまたは配置をテストする。一形態によれば、ＡＱＲフィルタ手法は、領域およびブロックフィルタ処理手法の最良のものを、完全なブロック適応型から完全な領域適応型までの範囲にスケーリングできる単一アルゴリズムに結合し、さらにいくつかのタイプのコンテンツの符号化に必要となるであろうブロックと領域との組み合わせも提供する。このように、領域方法とブロック方法とのこの組み合わせにより、ＡＱＲフィルタは、高コンテンツ適応型の解決策を提供するものとして説明される。
【００１４】
本明細書のＡＱＲフィルタ処理手法はまた、フィルタ形状からの利得がフィルタ形状を符号化する任意の追加コストを上回ることを保証しようとして、わずかに大きいフィルタ形状に関係するフィルタ係数の効率的な符号化を導入する。ビデオシーケンスの各フレームは、１６個までの異なるフィルタを有することができると仮定すると（それははるかに低くすることができるが）、各々は符号化する１０個のフィルタ係数を有し、これらのフィルタ係数のすべてを符号化することはビットを多く使うことになるので、効率的な符号化が必要になる。これらの場合に圧縮利得を向上させる１つの方法として、１つの手法によって、ＡＱＲフィルタはまた、フレームごとに複数の異なるフィルタ係数を符号化することによって生じる損失を容易に相殺する高い圧縮利得を維持する効率的な符号化処理を用いる。これは、値がフィルタ係数値としてより頻繁に用いられるほど符号がより短くなる、任意選択の複数の可変長符号化（ＶＬＣ）テーブルを提供することによって達成される。
【００１５】
次により詳細に、図１を参照すると、適応型品質回復フィルタ処理を行うための例示的なビデオ符号化システム１００が、本開示の少なくともいくつかの実施形態により構成されている。種々の実施形態では、ビデオ符号化システム１００は、上述した１つまたは複数の規格に従って、ビデオ符号化を行い、および／またはビデオコーデックを実装するように構成されることができる。さらに、様々な形態で、ビデオ符号化システム１００は、画像プロセッサは、ビデオプロセッサ、および／または媒体プロセッサの一部として実装されることができ、インター予測、イントラ予測、予測符号化、および／または残留予測を行うことができる。種々の実施形態では、システム１００は、１つまたは複数の規格または仕様、たとえば、高効率ビデオ符号化（ＨＥＶＣ）規格（ＩＳＯ／ＩＥＣ  ＪＴＣ／ＳＣ２９／ＷＧ１１およびＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３、「高効率ビデオ符号化（ＨＥＶＣ）テキスト仕様原稿８」（ＪＣＴＶＣ−Ｊ１００３＿ｄ７）、２０１２年７月を参照）、およびＨＥＶＣ  ＨＭ７．１などに従って、ビデオ圧縮および展開を実行し、および／またはビデオコーデックを実装することができる。システム１００および／または他のシステム、方式、もしくは処理は、ＨＥＶＣ規格の文脈で本明細書において説明されることができるが、本開示は、任意の特定のビデオ符号化規格もしくは仕様、またはその拡張に必ずしも限定されるものではない。
【００１６】
本明細書中で使用される「符号器」という用語は、エンコーダおよび／またはデコーダを指すことができる。同様に、本明細書で使用される「符号化」という用語は、エンコーダによる符号化および／またはデコーダによる復号を指すことができる。符号器、エンコーダ、またはデコーダは、エンコーダおよびデコーダの両方の構成要素を有することができる。
【００１７】
いくつかの例では、ビデオ符号化システム１００は、明瞭にするために図１には示されていない追加の項目を含むことができる。たとえば、ビデオ符号化システム１００は、プロセッサ、無線周波数型（ＲＦ）送受信機、ディスプレイ、および／またはアンテナを含むことができる。さらに、ビデオ符号化システム１００は、明瞭にするために図１には示されていない、スピーカ、マイク、加速度計、メモリと、ルータ、およびネットワーク・インターフェース・ロジックなどの追加の項目を含んでもよい。
【００１８】
たとえばビデオ符号化システム１００では、システムは、ビデオフレームのシーケンスに関するデータの形式で現在のビデオ情報を圧縮のために受け取ることができるエンコーダであってもよい。システム１００は、各フレームをより小さいより管理しやすいユニットに分割して、フレームを予測と比較することができる。差または残差が元のフレームと予測との間で判定された場合には、結果として得られる残差は変換され、量子化されて、それからエントロピー符号化され、デコーダへビットストリームで送信される。これらの動作を実行するために、システム１００は、画像再配列部１０２、予測ユニット分割器１０４、差分器１０６、残差分割器１０８、変換部１１０、量子化器１１２、エントロピーエンコーダ１１４、ならびに種々のユニットと通信し、および／またはそれらを管理するレート歪み最適化器（ＲＤＯ）および／またはレート制御器１１６を含むことができる。制御器１１６は、正しい運動分割サイズ、正しい符号化分割サイズ、予測参照タイプの最良選択、およびモードの最良選択、ならびにＣＢＲ（固定ビットレート）符号化が有効になっている場合に全体的なビットレートを管理することの、レート歪みまたはシーン特性に基づく局所的適応選択を含む符号化の多くの態様を管理する。
【００１９】
量子化器１１２の出力はまた、デコーダで生成される同じ予測を生成するためにエンコーダに設けられた復号ループ１５０に提供されることができる。このように、復号ループ１５０は、逆量子化部１１８および逆変換部１２０を用いてフレームを再構築し、残差アセンブラ１２２、加算器１２４、および予測ユニットアセンブラ１２６を用いて、各フレーム内で使用されるユニットを再構築する。次に復号ループ１５０は、対応する元のフレームと一致するように、再構築された画像の品質を向上させるためのフィルタを提供する。これは、デブロッキングフィルタ１２８、サンプル適応型オフセット（ＳＡＯ）フィルタ１３０、適応型品質回復（ＡＱＲ）フィルタ１３２（下記に示す詳細の主題である）、復号画像バッファ１３４、動き推定モジュール１３６、動き補償モジュール１３８、およびフレーム内予測モジュール１４０を含むことができる。動き補償モジュール１３８およびフレーム内予測モジュール１４０の両方は、特定のフレームの最良予測モードを選択するセレクタ１４２に予測を提供する。図１に示すように、予測フレームまたはフレームの一部の形式のセレクタ１４２の予測出力は、次に、残差を生成する減算器１０６、およびフレームを再構築するために逆量子化からの残差に予測を加算する復号ループ内の加算器１２４の両方に提供される。
【００２０】
より具体的には、フレームの形式のビデオデータを画像再配列部１０２に提供することができる。再配列部１０２は、符号化するのに必要とする順序で入力ビデオシーケンス内にフレームを配置する。たとえば、基準フレームは、それらが基準となるフレームより前に符号化される。画像再配列部はまた、Ｉフレーム（フレーム内符号化）、Ｐフレーム（以前の基準フレームからのフレーム間符号化）、およびＢフレーム（以前のフレーム、後続のフレーム、またはその両方から符号化することができる双方向フレーム）などの分類にフレームを割り当てることができる。いずれの場合にも、フレーム全体が同じ分類であってもよいし、異なって分類されるスライスを有してもよく（したがって、ＩフレームはＩスライスを含むことができる）、下記同様である。Ｉスライスでは、空間予測が用いられ、１つの形態では、フレーム自体のデータからのみ用いられる。Ｐスライスでは、時間（空間ではなく）予測は、フレーム間の動きを推定することによって行われることができる。Ｂスライスでは、２つの動きベクトルは、分割ユニット（ＰＵ）当たり２つの動き推定値を表し（下記に説明する）、時間予測または動き推定のために使用されることができる。換言すれば、たとえば、Ｂスライスは、Ｂスライスに対して過去、未来、または両方からのフレーム上のスライスから予測することができる。さらに、動きは、表示順序に関して過去または将来のいずれかで発生する複数の画像から推定されることができる。様々な実施形態では、動きは、上述したサイズに対応する様々な符号化ユニット（ＣＵ）またはＰＵレベルで推定されることができる。
【００２１】
具体的には、ＨＥＶＣ規格が使用されている場合には、予測ユニット分割器１０４は、フレームを予測ユニットに分割することができる。これは、符号化ユニット（ＣＵ）（大符号化ユニット（ＬＣＵ）とも呼ばれる）を用いることを含むことができる。この規格では、現在のフレームは、符号化分割器１０７によって符号化ツリーブロックの１つまたは複数のスライスに分割することにより、圧縮のために分割されることができる（たとえば、対応する彩度サンプルを有する６４×６４輝度サンプル）。各符号化ツリーブロックはまた、クワッドツリー分割方式で符号化ユニット（ＣＵ）に分割されることができる。さらに、クワッドツリーの各リーフＣＵは、動き補償予測のための分割ユニット（ＰＵ）に分割されることができる。本開示による様々な実施形態では、ＣＵは、これに限らないが、６４×６４、３２×３２、１６×１６、および８×８などの様々なサイズを有することができ、一方、２Ｎ×２Ｎ  ＣＵでは、対応するＰＵはまた、これに限らないが、２Ｎ×２Ｎ、２Ｎ×Ｎ、Ｎ×２Ｎ、Ｎ×Ｎ、２Ｎ×０．５Ｎ、２Ｎ×１．５Ｎ、０．５Ｎ×２Ｎ、および１．５Ｎ×２Ｎを含む様々なサイズを有することができる。しかし、上記は単なる例示的なＣＵ分割ならびにＰＵ分割形状およびサイズにすぎず、本開示は任意の特定のＣＵ分割ならびにＰＵ分割形状および／またはサイズに限定されないことに留意されたい。
【００２２】
本明細書で使用する「ブロック」という用語は、ＨＥＶＣなどのビデオデータのＣＵまたはＰＵ、あるいは４×４または８×８または他の形状のブロックを指すことができる。いくつかの代替例では、これは、別に定義されない限り、Ｈ．２６４／ＡＶＣなどのビデオまたは画素データのマクロブロックの分割としてブロックを考慮することを含んでもよい。
【００２３】
またビデオ符号化システム１００では、ＬＣＵ、ＣＵ、および／またはＰＵユニットに分割された現在のビデオフレームを、動き推定モジュールおよび推定器１３６に提供することができる。システム１００は、ラスタースキャン順に、画像の指定された単位において現在のフレームを処理することができる。ビデオ符号化システム１００がインター予測モードで動かされる場合には、動き推定モジュール１３６は、現在のビデオフレームおよび基準ビデオフレームに応答して動きベクトルを生成することができる。次に動き補償モジュール１３８は、基準ビデオフレームおよび動き推定モジュール１３６から提供された動きベクトルを用いて、予測フレームを生成することができる。
【００２４】
次に予測されたフレームを減算器１０６で現在のフレームから減算することができ、得られた残差は残差符号化分割器１０８に提供される。符号化分割器１０８は、残差を１つまたは複数の幾何学的スライスおよび／またはブロックに分割することができ、１つの形態によればＣＵを圧縮のためにさらに変換ユニット（ＴＵ）に分割することもでき、結果を変換モジュール１１０に提供されることができる。関連するブロックまたはユニットは、いくつかの例を挙げれば、可変ブロックサイズ離散コサイン変換（ＶＢＳ  ＤＣＴ）および／または４×４離散サイン変換（ＤＳＴ）を用いて係数に変換される。制御器１１６によって設定された量子化パラメータ（Ｑｐ）を用いて、量子化器１１２は、次に、係数に対して非可逆圧縮を用いる。生成された一組の量子化された変換係数は、再配列され、エントロピー符号化モジュール１１４によりエントロピー符号化されて、ビデオ符号化システム１００によって提供される圧縮されたビットストリーム（たとえば、ネットワーク・アブストラクション・レイヤ（ＮＡＬ）ビットストリーム）の一部を生成することができる。種々の実施形態では、ビデオ符号化システム１００によって提供されるビットストリームは、各ブロックを復号するために使用されるサイド情報（たとえば、予測モード、量子化パラメータ、動きベクトル情報、分割情報、ループ内フィルタ処理情報（デブロッキング情報（ｄｂｉ）、ＳＡＯフィルタ情報（ｓｆｉ）、およびＡＱＲフィルタ情報（ｑｒｉ））など）に加えてエントロピー符号化された係数を含むことができ、送信または格納のために本明細書で説明する他のシステムおよび／またはデバイスに提供されることができる。
【００２５】
量子化モジュール１１２の出力はまた、逆量子化部１１８および逆変換モジュール１２０に提供されることができる。逆量子化部１１８および逆変換モジュール１２０は、変換部１１０および量子化モジュール１１２によって行われる動作の逆を実施することができる。次に残差アセンブラ部１２２は、ＴＵから残差ＣＵを再構築することができる。次に残差アセンブラ部１２２の出力は、加算器１２４で予測されたフレームと結合され、粗い再構築されたフレームを生成することができる。次に予測ユニットアセンブラ１２６は、ＰＵからフレームＣＵを再構築し、ＣＵからＬＣＵを再構築して、フレーム再構築を完了する。
【００２６】
再構築されたフレームの品質は、次にデブロッキングフィルタ１２８、サンプル適応型オフセット（ＳＡＯ）フィルタ１３０、ならびに品質解析器およびコンテンツ適応型品質回復（ＡＱＲ）フィルタ１３２（ここではＡＱＲフィルタと呼ぶ）によりフレームを実行することにより、より正確にされる。デブロッキングフィルタ１２８は、ブロックエッジを平滑化し、符号化の間に導入され得る可視ブロックノイズを除去する。ＳＡＯフィルタ１３０は、誤った強度シフトを調整するために、画素値に加算するオフセットを提供する。ＡＱＲフィルタ１３２は、フィルタ係数の１つまたは複数のセットまたはパターンを用いるが、それはフレーム、スライス、および／またはブロックの復号された画素に適用された場合に、復号された画素を元のフレーム、スライス、および／またはブロックデータの対応する画素により近くなるように変更でき、より正確でより高品質な復号されたフレームを提供する。このフレームは、次回の予測のための符号化ループで使用される場合に、次のフレームの符号化のためのより低い予測誤差を生成し、その符号化効率をさらに向上させ、この処理をフレームごとに繰り返す。一形態によれば、品質解析器およびＡＱＲフィルタ１３２は、復号されたフレームおよび元のフレームを解析して、最良の結果を生成するＡＱＲフィルタの係数を算出し、符号化された係数はｑｒｉ（ＡＱＲ情報）としてビットストリーム内に配置される。ｑｒｉはまた、ＡＱＲフィルタを再生して使用するデコーダに必要とされ得るフィルタブロックおよび／または領域ＯＮ／ＯＦＦマップ、ブロックおよび／または領域マージマップなどを含むことができる。ＡＱＲフィルタ１３２は、任意選択的にコードブック１３１を用いて、個々の係数値ではなくビットストリーム中により短いコードブックインデックスを配置してもよい。デコーダは、インデックスを復号して係数値を得るために同じコードブックを有してもよい。ＡＱＲフィルタについては、下記でより詳細に説明する。
【００２７】
フィルタ処理されたフレームは、次に復号画像バッファ１３４に提供され、上で説明したように、フレームは、動き補償のための対応する予測フレームを構築するための基準フレームとして使用されることができる。ビデオ符号化システム１００がイントラ予測モードで動かされる場合には、フレーム内予測モジュール１４０は、本明細書でより詳細には説明されないイントラ予測方式を行うために、再構築されたフレームを用いることができる。
【００２８】
図２を参照すると、システム２００は、デコーダを有してもよいし、またはデコーダであってもよく、ビットストリームの形式で符号化されたビデオデータを受け取ることができる。システム２００は、エントロピー復号モジュール２０２でビットストリームを処理して、画素データおよび量子化された残差係数、ならびに動きベクトル、予測モード、分割、量子化パラメータ、およびフィルタ情報（ｄｂｉ、ｓｆｉ、ｑｒｉ）などを抽出することができる。システム２００は、次に逆量子化モジュール２０４および逆変換モジュール２０６を用いて、残差画素データを再構築することができる。システム２００は、次いで、残差符号化アセンブラ２０８、予測されたフレームに残差を加算する加算器２１０、および予測ユニットアセンブラ２１２を用いることができる。システム２００はまた、ビットストリームのシンタックスで示され、かつ予測モードセレクタ（シンタックス制御モジュールとも呼ばれる）２２６により実施される符号化モードに応じて、イントラ予測モジュール２２４を含む第１の経路、あるいはデブロッキングフィルタ処理モジュール２１４、サンプル適応型オフセットフィルタ処理モジュール２１６、およびコンテンツ適応型品質回復（ＡＱＲ）モジュール２１８を含む第２の経路のいずれかを用いる復号ループを使用して、得られたデータを復号することができる。ＡＱＲフィルタ２１８は、エンコーダからの係数を用いてフィルタのパターンまたは形状を再構築し、それからフィルタを用いて画素値を変更する。任意選択的に、ビットストリームは、コードブック２１９にアクセスするために用いられるインデックスを運んで、ＡＱＲフィルタ係数値に対応するコードブックから選択されたフィルタ（係数の組）を取得することができる。この第２の経路は、基準フレームとして使用するための、再構築されるとともにフィルタ処理されたフレームを格納し、ならびに、表示するため、または後で見るために格納するために、再構築されたフレームを送信する復号画像バッファを含むことができる。動き補償予測器２２２は、復号画像バッファ２２０から再構築されたフレームを読み出し、さらにビットストリームから動きベクトルを読み出して、予測されたフレームを再構築する。予測モードセレクタは、フレームごとに正しいモードを設定する。システム１００および２００に関して本明細書で説明したモジュールの機能性は、下記で詳細に説明されるＡＱＲフィルタ１３２および２１８を除いて、当技術分野で良く認識されており、本明細書では詳細には説明しない。
【００２９】
例示的な一実施形態では、代替的なブロック領域の組み合わせが、使用するのに最良の組み合わせを決定するために生成され、下記のようにフレームに用いるのに最良の（または最少の）数のフィルタを同様に決定する。
【００３０】
図３を参照すると、フローチャートは、本開示の少なくともいくつかの実施形態により構成された例示的な処理３００を示す。一般的に、処理３００は、上述したビデオ符号化用の高コンテンツ適応型品質回復のためのコンピュータにより実施される方法を提供することができる。図示された実施形態では、処理３００は、偶数に番号付けされた動作３０２〜３１０のうちの１つまたは複数によって示される、１つもしくは複数の動作、機能、または操作を含むことができる。非限定的な例として、処理３００は、図１、図２に関して説明された動作を参照してここで説明されることになるとともに、例示的なシステム１００、２００、または後述される２２００に関して説明されることができる。
【００３１】
処理３００は、「再構築されたフレームのビデオデータを取得する」こと（３０２）を含むことができ、それは特に、一例として逆量子化を有する復号ループおよびＡＱＲフィルタを有するインループフィルタ処理による。
【００３２】
処理３００はまた、「ビデオデータの再構築されたフレームについて複数の代替的なブロック領域適応組み合わせを生成する」こと（３０４）を含むことができる、換言すれば、結果として生じる圧縮利得の低下を最小にしつつ（すなわち、結果として得られるレート歪みを最小にする）、予測残差の大幅な低減を提供するブロック領域（ＢＲ）ベースの組み合わせを生成するために、下記に説明するように特定のブロック分類のブロックを特定の領域配置と結合することが最良の結果を生成する、ということが見いだされた。一例によれば、領域は、ある領域から隣接する領域への画素値のジャンプをほぼ最小限に抑えるために、フレームの順にフィルタ番号が数値的に付される。領域はまた、後述されるようにフィルタを共有するように配置される。図１０は、フレーム１０００上で０〜１１の番号を付した領域フィルタを有する１６個の領域のこのような例示的な配置を示す。また、例示的なブロック領域の組み合わせ１０００により、ブロック・アクティビティ・クラス４、５（１６の分類のうちの分類１２〜１５）のみが図１０のこの領域配置と結合されて、結果として生じるレート歪みを最小にしつつ、元のフレームと再構築されたフレームとの間の残差を低減するために、より正確な再構築されたフレームを最終的に形成する有利な組み合わせを形成することができる。これについては、下記でより詳細に説明する。
【００３３】
このように、ブロック領域（ＢＲ）組み合わせ生成動作は、「再構築されたフレームを複数の領域に分割する」こと（３０６）を含むことができ、一例として１６の領域を含むことができるが、他の量も用いられる。この動作はまた、「領域フィルタを各領域に関係付け、領域フィルタは、対応する領域内の画素値に関係する一組のフィルタ係数を有する」こと（３０８）を含むことができる。このように、一形態では、各フィルタは、フィルタが割り当てられた領域内の画素値に関係する係数値を有する。また、下記に説明するように、領域にフィルタが割り当てられている限り、これは、単一のフィルタを複数の領域に関係付けることができる状況を含んでいる。これは、領域が依然として別々に参照され、または別々に番号付けされていても、領域をマージすると呼ばれる（単一のフィルタがマージされた領域間で共有される）。
【００３４】
処理３００はまた、「再構築されたフレームを形成するブロックをブロック内の画素値の異なる勾配に関係する分類に分類する」こと（３１０）を含むことができる。これは、フレーム内の個々のブロックについて、ブロック内の画素値の勾配量を示す複数の分類の中でブロックの分類を決定することを含む。一形態では、１６の分類があり、上述した例示的なフレーム１０００では、分類のうちの４つのみがこのフレームのために使用される。
【００３５】
処理３００はまた、「個々の分類のためのブロックフィルタと分類に割り当てられたブロックの画素値に関係するフィルタ係数の組とを関係付ける」こと（３１２）を含むことができる。領域フィルタおよび領域と同様に、各ブロック分類に関係するブロックフィルタがあってもよく、下記に説明するように、単一のフィルタが、共有されることができるか、または複数の分類と関係付けられることができる。
【００３６】
処理３００はまた、「再構築されたフレーム上の領域フィルタおよびブロックフィルタの両方を用いて、再構築されたフレームの画素データを変更する」こと（３１４）を含むことができ、特に、最低レート歪みが生じる代替的なＢＲ組み合わせ（あるいは領域およびブロック分類をマージする異なる方法を考慮するそれらの反復）を選択する。選択されたＢＲ組み合わせ（あるいはＢＲ組み合わせの繰り返し）のブロックフィルタおよび／または領域フィルタは、たとえばエンコーダによる予測もしくは他の解析目的であるか、または、デコーダによるフレームもしくは画像の表示のためであるかに関わらず、再構築されたフレームの画素値を変更するために使用されることができる。
【００３７】
ここで図４を参照すると、フローチャートは、本開示の少なくともいくつかの実施形態により構成された例示的な符号化処理４００を示す。一般的に、処理４００は、ビデオ符号化用の高コンテンツ適応型品質回復フィルタ処理のためのコンピュータにより実施される別の方法を提供することができる。図示された実施形態では、処理４００は、偶数に番号付けされた動作４０２〜４２８のうちの１つまたは複数によって示される、１つもしくは複数の動作、機能、または操作を含むことができる。非限定的な例として、処理４００は、図１〜図３および図５〜図１７に関して説明された動作を参照してここで説明されることになるとともに、例示的なシステム１００、２００、および／または後述される２２００を参照して説明されることができる。
【００３８】
処理４００は、元のビデオ（またはその結果データ）、および一形態では復号ループ内の再構築されたフレームを受け取ることを最初に含み、次に、輝度またはＹ画素データを用いて「一組のＢＲ分割候補を選択する」（４０２）。候補の導出／選択は、最低歪み、最小ビット数、最良レート歪みのトレードオフ、現在のフレーム画像（アクティビティまたはオブジェクト）に対する最良一致などに基づくことができる。図４に示す処理では、最良のＢＲ分割候補が確立されると、ＢＲの各領域またはブロックに対応する最適な（複数の）フィルタが、現在の復号されたＹフレームを現在の元のＹフレームと比較することによって算出される。このフィルタ算出は、たとえば、ウィーナーフィルタであってもなくてもよいが、特定のフィルタ形状、このフィルタ形状の対称または非対称係数の特定の配置、この形状の各フィルタ係数の特定の精度などを用いることができる。このフィルタの選択はまた、最良のコンテンツ適応、最良のレート歪みのトレードオフなどに依存する場合がある。下記に説明する代替的な処理５００（図５）では、所与の候補からの最良のＢＲ組み合わせの最初の選択がなく、ＢＲ組み合わせのすべてが、最良のＢＲ分割配置を決定するためにレート歪みのトレードオフについてテストされる。
【００３９】
その後、Ｙフレームは、領域およびブロッククラスの一定量に分割され、一例では、１６個のセグメント（各セグメントは、領域、またはブロッククラスであってもよい）４０４とすることができるが、他の量を用いてもよい。次にＢＲセグメント（領域、またはブロッククラス）は、Ｎ個のフィルタにマージされ（４０６）、より具体的には、どの領域またはブロッククラスがフィルタを共有すべきかが判断され、これはフレーム上で何個のフィルタＮが用いられるかを同様に示す。これは、１〜１６個のフィルタであってもよい。１つの手法では、１６の異なる反復がテストされ、１〜１６個のフィルタを有する各反復がテストされるまで、各反復は１つの付加的な結合を有する。
【００４０】
最大相関を保ちつつ、ペアノもしくはヒルベルト走査、または２Ｄ空間を１Ｄ空間に変換する他の空間充填曲線走査（space  filling  curve  scan）に沿って、領域は隣接する領域とマージすることができる。同様に、ブロッククラスは、アクティビティクラス（ここでは６つのレベルが定義される）の組み合わせに基づいて、そしてアクティブクラスについては、下記に説明するように方向（水平方向、垂直方向、または無方向）にさらに基づいて、隣接するブロッククラスとマージすることができる。マージの各反復または反復において、新しい一組のウィーナーフィルタが結果として得られた減少した数の領域および／またはブロッククラスについて算出され、レート／歪みトレードオフ（ＲＤ）値が反復ごとに、ある場合には、最後に残った領域およびブロッククラスのマージを含むすべてマージ可能性がなくなるまで、算出される。１６回の反復から最小のＲＤ値を提供するマージ解は、フィルタ処理される輝度（Ｙ）フレームの成功したＢＲ分割解であると考えられるが、この処理は符号化されたフレームのすべてについて繰り返される。レートＲ（ビット）の算出は、マージの反復に応じて、フィルタの係数の符号化のビットコスト×フィルタ数を加算することを含む。歪みＤは、復号されたフレームとフィルタ処理された復号されたフレームとの差信号の絶対値として算出することができ、代替的な公式はこの差信号の誤差の２乗を用いてもよい。
【００４１】
Ｕ、Ｖについては、ＵおよびＶ値は、通常、フレーム全体の色成分ごとに１つのフィルタのみで処理される。Ｎは１に設定される（４０８）。
【００４２】
処理４００は次に、下記に詳細に説明するが、Ｎ個のウィーナーフィルタを計算すること（４１０）を含み、それは使用されるフィルタの各々についてフィルタ係数を導出する計算である。処理４００は、次に任意選択的に、コードブック４１４（または前述した符号１３１）からＮ個のコードブックフィルタを検索して選択すること（４１２）を含むことができる。コードブックは、種々の特性（シャープネス、コントラスト、動きなど）を有するテストビデオシーケンスを用いるテストケースで取得され、かつ本明細書で用いられた同じフィルタの形状およびサイズを有するフィルタ（たとえばフィルタ係数の組）を含むが、コードブックは選択するための複数のフィルタ形状およびサイズを有してもよい。１つの手法によれば、各フィルタは、単一８ビットの２進コードに対応することができ、本明細書の例示的なフィルタのパターン６００の１６個の係数を送信する必要がなくなる。格納されたコードブックフィルタは、たとえば差分絶対値の和（ＳＡＤ）および／または平均二乗誤差（ＭＳＥ）方法を用いて、コードブックフィルタ係数を、フィルタが使用されることになるフレーム画素データ（例えば対応する領域）と比較することにより、可能性のある使用のために選択されることができる。選択された各フィルタについて、算出されたフィルタおよびコードブックからのフィルタの両方が、レート歪み最適化（ＲＤＯ）解析を用いて共に解析され、より低いレート歪みを有するフィルタが使用のために選択される（４１６）。しかし、各フィルタは、ＬＣＵ単位（または他のブロック単位）によりＬＣＵ上で比較され、ＡＱＲフィルタを全く用いない場合よりもレート歪みが良好かどうかを判断する。ＯＮ／ＯＦＦフラグが、ＡＱＲフィルタを使用するか否かの選択に応じて算出される（４１８）。コードブックのオプションが利用可能である場合には、適応型品質回復（ＡＱＲ）フラグ（ａｑｒ＿ｃｂｏｏｋ＿ｆｌａｇ）が設定され、コードブックがオプションではない場合には、ＡＱＲフラグは設定されない（この場合には、ＡＱＲフィルタＢＲフレームは、使用されるか、または使用されない）。
【００４３】
処理４００は、次にＡＱＲフラグ（ならびにａｑｒ＿ｃｂｏｏｋ＿ａｑｒフラグ）を符号化する動作（４２０）を含むことができ、輝度Ｙ成分について、フィルタの個数ならびにマージ情報が符号化される（４２２）。可変長符号化（ＶＬＣ）方法が過去のフィルタ４２８に基づいて選択され（４２４）、すべての３成分（Ｙ、Ｕ、Ｖ）についてフィルタを符号化する。ＶＬＣ方法は、単一フレームについて複数のＡＱＲフィルタを符号化するにもかかわらず圧縮利得を維持または低減するために、最も頻度の高い係数値に対して最短のコードを用いることによって、フィルタ係数を符号化するためのバイナリＶＬＣの代替的なテーブルを用いる。
【００４４】
図５Ａ〜図５Ｈを参照すると、ここでより詳細に、フローチャートは、本開示の少なくともいくつかの実施形態により構成された例示的な処理５００を示す。一般的に、処理５００は、上述したビデオ符号化用の高コンテンツ適応型品質回復のためのコンピュータにより実施される方法を提供することができる。図示された実施形態では、処理５００は、図５Ａ〜図５Ｈに示すように番号付けされた動作５０１〜５９２のうちの１つまたは複数によって示される、１つもしくは複数の動作、機能、または操作を含むことができる。非限定的な例として、処理５００は、図１、図２および図６〜図１７に関して説明された動作を参照してここで説明されることになるとともに、例示的なシステム１００、２００、または後述される２２００に関して説明されることができる。
【００４５】
処理５００は、コードブックなしのエンコーダ用ＡＱＲフィルタ処理を対象とする。１つの手法では、第１の画像（フレームまたは画像）Ｐ［ｃＩｄｘ］が入力され（５０１）、成分インデックスｃＩｄｘは０＝輝度Ｙ、１＝彩度Ｕ、および２＝彩度Ｖとして指定されている。動作５０３〜５５８のうちの様々なものが各成分について繰り返される。各成分について解析および符号化が完了されると、処理は収集されたデータを符号化し、シーケンスの最後のフレームに到達するまで、次のフレームまたは画像に移動する（動作５９０および５９２）。
【００４６】
処理５００は、成分インデックスｃＩｄｘが０かどうかをチェックすること（５０３）を含むことができる。そうである場合には、輝度Ｙ値が解析される。そうでなければ、処理は動作５３３における彩度ＵまたはＶの解析に進む。Ｙ値を続けると、ブロック領域（ＢＲ）組み合わせカウンタインデックスｂｒＩｄｘが０に設定され（５０４）、レート歪み値Ｄｖａｌは無限大に設定される。Ｙ値Ｐ［ｃＩｄｘ］の現在のフレームのすべてのＬＣＵのＡＱＲフラグが１に設定される（５０５）。各フラグは、ＡＱＲフィルタを用いる場合と用いない場合でどちらがレート歪みがより良好かを示す。チェックすること（５０６）は、ＢＲ組み合わせの最大数に到達したか否か、ここではＢｒＩｄｘが８未満であるか否か（８個の利用可能な代替的なＢＲ組み合わせを参照する）を判断するために行われる。そうである場合には、Ｙフレームが１６個の領域およびブロック分類に分割され（５０７）、解析されている現在のＢＲ組み合わせに応じて、フィルタ番号が個別に割り当てられるか、または共有するように割り当てられる。選択されたＢＲ組み合わせは、Ｙフレームについての最初のブロック分類および領域配置であり、続いて下記に説明するようにレート歪みを最適化（あるいは、一例ではより正確に、最小化）するように変更される。
【００４７】
具体的には、ＢＲ組み合わせを理解するために、フィルタ形状、ブロックに基づく適応および領域に基づく適応が最初に理解されるべきである。図６を参照すると、フィルタ６００は、ここでは特定のパターンに配置された１組のフィルタ係数を参照し、それはフレーム内の各領域およびブロックを解析するために使用されることができる。より進歩したフィルタ６００が用いられ、それはフィルタ処理された画素（中心画素Ｃ１３）の周囲のより広いエリアをカバーすることができ、一般的に誤差（予測残差）をさらに低減することができる。図示された例では、フィルタ６００は、ここでは菱形形状に形成された３３タップ（係数またはサンプル）を有するフレームの９×９エリアの部分集合である。フィルタ６００は、９×９のクロス、３×３の矩形（矩形のコーナーがクロスに加えられる）、および菱形のコーナーを結び、菱形の外縁を形成する対角線で形成され得る。番号が付された各正方形６０２は、タップまたは係数位置６０４であり、フィルタが画素データのフレームにわたって覆われ横断されるときの画素位置に対応する。述べたように、３３個のタップがある。タップは、部分的に対称であり、説明する一形態では中心点に関して点対称である。換言すれば、係数（またはタップ）Ｃ０、Ｃ２、Ｃ４、およびＣ７は中心点Ｃ１３について上下対称であり、係数Ｃ９〜Ｃ１２は点Ｃ１３について左右対称であり、斜めのエッジ係数Ｃ１、Ｃ３、およびＣ５は点１３について対角対称であり、これら３つの係数の各々は、図示されたように４回使用される。対称位置は同じ係数値を有する（たとえば、Ｃ５は共に同じ値を有する）ので、対称値のうちの１つだけを符号化すればよい。フィルタ６００はまた、少なくとも矩形のコーナーＣ６、Ｃ８、Ｃ１４、およびＣ１５、ならびに中心Ｃ１３では部分的に非対称であってもよい。したがって、この例では、フィルタは、３３個のタップで符号化される１６個の固有の係数だけを有する。
【００４８】
フィルタ形状はまた、パターン内にホールを配置することによって拡大される。ホールは、ここでは一般的に、係数を有しないが、空間のすべての４辺（上、下、右、および左）に隣接する係数を有する正方形または画素位置または空間６０８と呼ぶ。たとえば９×９個の係数の完全な正方形または菱形を用いることは、はるかに正確であり得るが、ビットロードコストが過大である。単にクロスおよび小さい矩形を使用する他の公知のパターンは、小さすぎて、しばしば不正確である。ホールならびに対称および非対称係数による拡大は、Ｃ１３位置の中心画素値の正確な画素値を得るために、比較的大きな数の係数に考慮する妥協点を提供する。
【００４９】
一形態では、中心Ｃ１３は、０〜５１１の正の値（輝度または彩度値）を有するが、０〜１０２３などの他の実施例が存在してもよい。非中心係数は、−２５６〜２５５の正および負の値を有することができる。これについては、フィルタ係数の符号化に関して下記でより詳細に説明する。
【００５０】
図１０を参照すると、上述したように、領域に基づく適応（ＲＡ）は局所的適応の一形態である。領域に基づく適応により、フレームは複数の重複しない領域に分割され、少なくとも最初は、１つの局所的フィルタが各領域に適用された。ここでは、もしあれば、どの領域が同じフィルタを共有できるかを判断するために、領域が結合される。ＲＡは、隣接する画素間の高い相関を利用して、隣接する領域では、隣接する画素のフィルタ係数は類似しており、フィルタ係数レートを節約するために共有され得ると仮定する。この適応は、１つの局所領域の明確な構造および繰り返しパターンを有する１つの映像に適している。たとえば、１つの画像は、上方部分のブルーの空、中間部分のグレーの建物、そして下方部分のグリーンの草で構成されている。領域は、画像の内容を概ね追跡することができるが、優先度は同じサイズである領域を形成することにある。したがって、一例では、フレーム１０００は領域に分割され、ここでは、たとえばサイズがほぼ同じである１６個の領域に分割される。領域は、ＬＣＵの正確な倍数にサイズ設定することができるので、ＬＣＵの境界も領域の境界を形成する。一形態では、すべての領域を同じサイズにできない場合には、領域の端の行または列が他の領域よりもわずかに小さいまたは大きいエリアを有することができる。あるいは、領域は、たとえば画像の内容によってサイズがわずかに異なってもよい。多くの代替例が存在する。
【００５１】
例示的なフレーム１０００では、物理的に隣接する数値的に番号付けされた領域に対して１つの領域が、１つのフレーム行の終わりから次の行の始まりまでラスター順に領域に番号付けすることにより発生し得るような画素値の大きすぎるジャンプを有しないように、領域が順序付けされる。したがって、この場合では、フレーム１０００は２Ｄの画像において、最初の１６領域の順序付けの一例を示す。これは、この例では、フレームを介して数値的に続く１６点の１Ｄデータに４ｘ４の２Ｄのデータをマッピングする特定の空間充填曲線と見なすことができる。フレームは多くの異なる数の領域に分割できることを理解されたい。
【００５２】
またフレーム１０００では、文脈に応じて、領域内の数字をフィルタ番号とすることができ、フレーム（図示されたように２つのフィルタ５など）内の番号の重複は、２つの領域がフィルタ（フィルタ５）を共有することを示し、これらの領域は結合またはマージされていると考えられる。具体的には、ＲＡでは各領域が１つのフィルタを有することができるが、ビット予算に応じて、個々のフィルタが著しく異ならない場合には、隣接する領域は時には効率のためにフィルタを共有するべきである。エンコーダ側では、領域マージアルゴリズムは、後述されるＲＤＯ処理に基づいて隣接領域をマージする種々のバージョンを試行することによって領域の最良のグループ分けを見つけることができる。１つの極端な場合では、すべての領域が１つのフィルタを共有し、他の極端な場合では、各領域がそれ自体のフィルタを有する。デコーダに送信するためのフィルタのマッピングについても下記で説明する。
【００５３】
図１６を参照すると、ブロックに基づく適応では、ブロック適応型モードは、局所的配向ならびにラプラシアン・ブロック・アクティビティおよび方向情報を用いた反復により、４×４ブロックを１６の分類に分類する。言い換えれば、ラプラシアン方程式は、ブロック内の画素値勾配（ｃＩｄｘ成分（ここでは輝度Ｙ））および階調の方向を決定するために使用される。テーブル１６００に示すように、１６の分類内の階調量は６アクティビティクラス（０〜５）にグループ分けされ、方向＝０は水平であり、方向＝１は垂直であり、方向＝２は優位な方向がないことを意味する。
【００５４】
ラプラシアンアクティビティおよび方向情報は、各４ｘ４ブロック内の画素を用いて下記のように算出される。
【００５５】
【数１】
0006334006.tif 000002
【００５６】
ここで（ｉ，ｊ）は、ブロック内の画素である。次に、２Ｄラプラシアンアクティビティは、Ｖ４×４およびＨ４×４を加算し、その出力を６つのアクティビティクラス（すなわち、０〜５）に量子化することによって算出される。上述したように、方向は、下記のように、無方向（０）、水平方向（１）、および垂直方向（２）の３つのカテゴリのうちの１つに分類される。
【００５７】
Ｈ４×４≧２Ｖ４×４であれば、方向は１である。
Ｖ４×４≧２Ｈ４×４であれば、方向は２である。
そうでなければ、方向は０である。
【００５８】
２Ｄラプラシアン・アクティビティ・クラスおよび方向に基づいて、ブロックに基づくクラスがテーブル１６００を用いて導出され、ＢＡの１６のクラスが得られる（なお、方向に関係なく０アクティビティクラスについては、分類は０である）。これらの式は、ブロックが一形態により領域よりも小さいものであれば、一例として８×８ブロックまたは他のブロックなどのいくつかの異なるブロックサイズにも適用することができる。
【００５９】
図７、図８を参照すると、領域およびブロック分類が理解され、ブロック領域に基づく代替的な組み合わせが説明されることができる。輝度については、ブロック領域（ＢＲ）方法の１つの目標は、画像を重なり合わない複数のセグメント（領域またはブロック分類とすることができる）に分割し、セグメントごとに、レート歪み（ＲＤ）が最小になるように１つのフィルタが適用されることである。１６セグメント（たとえば、１６領域について１６フィルタ）から開始して、グリーディ（貪欲）アルゴリズムがセグメント（およびフィルタ）の数を１に減らし、それによって画像のセグメント（すなわちフィルタ）の最適下限数を求めることができる。換言すれば、いくつかの領域変動（または反復）が、第１の領域の反復がすべての１６個のフィルタを有するように各反復によりフィルタを共有する領域のうちの２つを組み合わせることにより形成され、次の反復は１５個のフィルタを形成するマージを有し、そして次の反復は前のマージを維持し、合計１４個のフィルタに対して別の１つを加え、下記同様である。最良領域反復は、最低レート歪みを有するものである。図７、図８は、領域反復処理の一例を提供し、処理５００の説明と共に下記でより詳細に説明される。
【００６０】
この同じ手順はまた、ブロック反復１６〜１をテストする場合のブロック分類にも適用することができ、この場合には、各反復が分類の異なるマージを有しており、ここで、単一のフィルタが分類のすべてによって共有されるまで、２つ以上の分類は同じフィルタを共有することができ、最小レート歪みを有するブロック反復が、使用のために選択されることができる。異なる領域反復は、特定のブロック分類と組み合わせて、符号化に使用されることができる最終ＢＲ組み合わせ配置を形成するために使用される。
【００６１】
図９〜図１６を参照すると、図示された例は、領域の異なる配置を各々提供する８つの異なる代替的なＢＲ組み合わせを提供する。これらのＢＲ組み合わせは、領域およびブロック分類についての初期配置を提供し、それは、すべてのＢＲ組み合わせおよび反復の中から、使用するための最小レート歪みを有するブロックの領域配置を決定するために、フィルタを共有する領域およびブロック分類をマージすることによって変更される。下記は、初期ＢＲ組み合わせである。
【００６２】
第１のＢＲ組み合わせ（ＢＲ１）を有するビデオフレーム９００（図９）は、各領域に１つの異なるフィルタを有する０〜１５の番号が付けられた１６領域を使用し、領域は番号付けされている。領域、そして言い換えると領域フィルタは、上述したように隣接領域間の画素値の差分が最小となるような順序で番号が付けられている。このＢＲ組み合わせでは、フレーム９００は、領域のみに分割される（ブロッククラスは使用されない）。さらに、ＢＲ組み合わせでは、フレームに使用される領域の最終番号は必ずしも１６にはならないが（番号１６は可能な領域の最大数を表すにすぎない）、実際にはマージにより、１〜１６の任意の数であってもよいし、フレームごとに、ビットレートごとに、およびコンテンツごとに異なっていてもよい。
【００６３】
第２の組み合わせ（ＢＲ２）（図１０）は、上述した領域配置を使用しているが、１６領域を有するフレーム１０００では、５、６、７、１０の領域がマージされており、１２個の領域フィルタのみが使用され、０〜１１の番号が付けられている点が異なっている。図１１を参照すると、テーブル１１００に示すように、４つのブロック分類（１２〜１５）がフレーム１０００に使用されている。ブロックデータは、フレーム１０００を形成する領域データに形成された開口部を埋めるために使用される。言い換えれば、ブロックデータの位置における領域データをブロックデータに置き換える。一実施例によれば、ブロックは、４×４であって、たとえば、例示的な目的のためにランダムな位置に示すブロック分類１４などのブロック分類のうちの１つを有するブロック１００２などである。完全な隣接する連続した領域はフレームを形成することができるが、フレーム１０００は、領域が４ｘ４の開口部などのホールまたは開口部を有する場合を示しており、選択されたクラスのブロックがこれらの領域から除去され（あるいは、より正確には、領域計算から除去され）、これらの開口部を埋めるブロック１００２がフィルタ計算のために別個に検討される。また、一形態では、ＢＲ組み合わせは、領域の数とブロック分類の数との総数を１６などの固定数に等しくすることができ、これは、この例ではＢＲ組み合わせのそれぞれについて同じである。総数１６（１２領域および４ブロッククラス）は、フレームの分割の所望の柔軟性と、マージの反復数が大きくなるにつれて生じる複雑さと、追加ビットコスト対品質利得利益と、の間の妥当なトレードオフを提供する。さらに、このＢＲ組み合わせでは、フレームに使用される領域およびブロッククラスの最終番号は必ずしもそれぞれ１２および４でなくてもよく、これらの番号はそれぞれ可能な領域またはブロッククラスの最大数を表すにすぎない。
【００６４】
図１２、図１３を参照すると、第３のＢＲ組み合わせ（ＢＲ３）は１６の領域を有するフレーム１２００を有し、領域の各々が１つの他の領域にマージされ、８個の異なる領域フィルタ（０〜７）だけが用いられる。この場合には、テーブル１３００に示すように、８つのブロック分類だけが、フレーム１２００に、ここでは３つの最もアクティブなアクティビティクラス３〜５において用いられる。ここでは、分類のうちの１つが、テーブル１３００に示すようにアクティビティクラス３および４が方向＝０のフィルタ／分類８を共有するようにマージされている。したがって、ブロックフィルタ（または、使用される分類）は９分類のための８〜１５である（７〜１５ではなく）。上述したように、領域はべたの領域ではなく、開口部のある領域であって、開口部は特定のクラスのブロックの切り抜き部を表す。また、８領域（フィルタ）と８ブロッククラス（フィルタ）との総数は、ＢＲ３について１６である。前に示したように、領域およびブロッククラスの最終番号は８および８でなくてもよく、領域またはブロッククラスごとに、１〜８の異なる番号であってもよい。
【００６５】
第４のＢＲ組み合わせ（ＢＲ４）は、４×４ブロックの代わりに８×８ブロックが用いられていることを除けば、ＢＲ３と同じである。効率的であることが分かるよう用いることができるブロックのサイズについては、他の選択肢が存在することを理解されたい。そうでなければ、べたではなく切り抜き部または開口部のある領域に関する初期の特徴、ならびに最大許容値である領域およびブロッククラスの数が依然として適用される。
【００６６】
図１４、図１５を参照すると、第５のＢＲ組み合わせ（ＢＲ５）が、４つの異なる領域フィルタ（０〜３）だけが用いられる１６の領域を有するフレーム１４００と共に示される。各領域フィルタは、４つの領域で共有されており、領域／フィルタは、上述したように領域から領域へ大きな画素値のジャンプを回避する数値的順序を維持するように番号付けされている。このＢＲ組み合わせにおいても、テーブル１５００に示すように、アクティビティクラス２〜５（より低いアクティビティクラス０〜１を省略）の１２のブロック分類（４〜１５）が使用される。さらに述べるように、領域は、べたでなくてもよく、考慮するブロックのクラスに対応するブロックのサイズで切り出されたホールまたは開口部を有してもよい。また上述したように、領域およびブロッククラスの最終番号は４および１２でなくてもよく、これらの数は可能な最大の領域またはブロッククラスを示しており、実際の領域の数は１〜４であってもよく、ブロッククラスの実際の数は１〜１２であってもよい。
【００６７】
第６のＢＲ組み合わせ（ＢＲ６）は、４×４ブロックの代わりに８×８ブロックが用いられていることを除けば、ＢＲ５と同じである。他のブロックサイズが同様に本明細書の実施例のいずれかに用いられることができることが理解されるであろう。先に述べたように、領域はべたではなくて開口部またはホールを形成する切り抜き部を有していてもよく、領域およびブロッククラスの数は最大許容値である。
【００６８】
図１６を参照すると、第７のＢＲ組み合わせ（ＢＲ７）では、領域は使用されず、ブロック分類だけが使用され、一形態では、アクティビティクラス０〜５に分類された分類０〜１５が用いられ、テーブル１６００に示す通りである。前に示したように、ブロッククラスの最終番号はマージにより１６未満であってもよい。上述したように、アクティビティクラス０はすべての方向０〜２について同じであり、残りの分類はテーブル１６００に示すように横切るように番号付けされている。
【００６９】
第８のＢＲ組み合わせ（ＢＲ８）では、ＢＲ組み合わせは、４×４ブロックの代わりに８×８ブロックが用いられていることを除けば、ＢＲ７と同じである。前のように、ここでブロッククラスは、このＢＲ組み合わせについて許可されたブロッククラスの最大数であればよい。
【００７０】
これらの代替的なＢＲ組み合わせが最も効率的であることが分かるが、本明細書で説明するように８つの組み合わせよりも多いまたは少ない多くの他の組み合わせ、ならびに異なる領域およびブロック配置を有する組み合わせを使用できることが理解されよう。たとえば、コンテンツがあまり複雑ではない場合には（たとえば、頭および肩のビデオ会議タイプのコンテンツ）、計算の複雑さを低減し、オーバーヘッドを低減するために、８より少ない組み合わせを使用してもよい。さらに、コンテンツが大量の詳細で平坦な領域の組み合わせを含み、かつ、より高いビットレートを許容することができれば、８より大きい組み合わせが望ましい場合がある。
【００７１】
処理５００に戻って、「ｂｒＩｄｘによってＹフレームを１６クラスの領域／ブロックに分割する」こと（５０７）は、フレームを１６の領域に分割することにより解析されるＢＲ組み合わせを確立し、解析されるＢＲ組み合わせ配置に従って領域フィルタを確立し、初期ＢＲ組み合わせパラメータに従ってＢＲ組み合わせに使用されるブロック分類を確立することを意味する。図示された例では、これらは、フレーム／テーブル９００〜１６００（図９〜図１６）により提供されるＢＲ組み合わせ配置である。
【００７２】
２パスカウンタｒを０に設定して（５０８）、すべてのＬＣＵがフィルタ係数値を確立するための計算に含まれている初期パスを提供し、後述のパスは、フィルタなしでレート歪みがより少ないＬＣＵをより正確に省略することにより、補正されたフィルタ係数値を算出する（したがって、フィルタ処理なしでうまくいく）。処理５００は、フラグが１に設定されたＬＣＵだけが使用されるように、１６クラス（フレーム分割または領域）に従って１６のウィーナー自己相関行列Ｒｘｘ［０…１５］および相互相関ベクトルＲｘｙ［０…１５］を収集すること（５０９）を含む。最初のパスでは、Ｙ（またはＵまたはＶ）フレームのすべてのＬＣＵが１に設定される（５０５）。
【００７３】
ウィーナーフィルタの確立されている行列については、適応型フィルタ処理の基本理論により、相互相関および自己相関行列が蓄積され、それから次のようにウィナーホップ方程式を解くことにより最適なウィーナーフィルタを算出することができる。
【００７４】
ｘ（ｎ）は入力信号（フィルタ処理前の再構築されたフレームの画素データ）、ｙ（ｎ）は出力（フィルタ処理後の再構築されたフレームの画素データ）、ｄ（ｎ）は元のフレームのデータとすると、ｈ（ｎ）はフィルタ係数を表し、ｎは１次元空間におけるサンプルの位置である（この定式化は本来１次元信号を意図したものであり、画像は２次元なので式は一般化されているが、概念は依然として適用する）。フィルタ出力は下記のようになる。
【００７５】
【数２】
0006334006.tif 000003
【００７６】
誤差信号は下記のようになる。
【００７７】
【数３】
0006334006.tif 000004
【００７８】
平均二乗誤差は、
【００７９】
【数４】
0006334006.tif 000005
【００８０】
であり、ベクトル形式では、
【００８１】
【数５】
0006334006.tif 000006
【００８２】
である。ここで、Ｐｄはスカラーであり、相互相関行ベクトルは下記のようになる。
【００８３】
【数６】
0006334006.tif 000007
【００８４】
自己相関行列は、
【００８５】
【数７】
0006334006.tif 000008
【００８６】
であり、各行列は、サンプルの収集から導出される（繰り返すが、１次元信号を意図しているが、２Ｄ画像について一般化した場合には、サンプルの収集は、スライス、フレーム、領域、またはブロッククラスを意味することができる）。最小誤差を見つけるために、下記のように導関数を求めて、０に設定する。
【００８７】
【数８】
0006334006.tif 000009
【００８８】
ｈについて解くと、ウィーナーホップ方程式は次のようになる。
【００８９】
【数９】
0006334006.tif 000010
【００９０】
ウィーナーホップ方程式は、平均二乗誤差における最適なフィルタ係数を決定し、得られたフィルタを「ウィナー」フィルタと呼ぶことができる。上式において、ｈはフィルタ係数のベクトルであり、Ｒｘｘは自己相関行列（または基準フレームのブロックデータ）であり、Ｒｄｘは相互相関行列／行ベクトル（ソースフレームと基準フレームのブロックデータとの間）である。
【００９１】
ここで、ウィーナー行列を形成し収集する操作は、フィルタＦ［ｉ］について１６の可能性のある領域（あるいはセグメントまたはビン）ごとに１組の行列（ＲｘｘおよびＲｄｘ）を有することを指す。
【００９２】
その後に、１６のセグメント（または領域）またはビンをカウントダウンするためにｎＳｅｇが１６に設定され（５１０）、レート歪み最小値（ＲＤｍｉｎ）が無限大に設定される。セグメントカウンタｉが０に設定され（５１１）、総推定コストＣが０に設定され、総推定誤差Ｅが０に設定される。次に、処理５００は、ウィーナーホップ方程式を用いて（上述したように）Ｒｘｘ［ｉ］およびＲｘｙ［ｉ］からウィーナーフィルタＦ［ｉ］を計算すること（５１２）を含む。これは、解析されている特定のｎＳｅｇについてフィルタＦ［ｉ］のフィルタ係数を設定することになる。
【００９３】
フィルタ係数が設定されると、処理５００は、Ｆ［ｉ］を符号化することの推定コストをＣに加算すること（５１３）に進む。このように、全ビットとフィルタ係数を符号化するのに必要とされるビットをカウントして合計し、Ｃに加算する。同様に、Ｆ［ｉ］を適用することの推定誤差が誤差Ｅに加算される（５１４）。誤差Ｅは、フィルタ処理後の再構築された画素データと元のデータとの差である。次にｉカウンタを１だけ進めて（５１５）、ｉがｎＳｅｇよりも大きいか否かを判断するようにチェックして（５１６）、Ｙフレームについて最後の領域またはセグメントに到達したか否かをテストする。Ｙフレーム（ＹフレームのすべてのフィルタＦ［ｉ］を含む）の総レート歪み（ＲＤ）が次式により算出される（５１７）。
ＲＤ＝Ｅ＋Ｌａｍｂｄａ×Ｃ                          （１８）
ここで、Ｌａｍｂｄａ＝１．５×λｍｏｄｅ、λｍｏｄｅ＝α×Ｗｋ×２（（ＱＰ−１２）／３．０）であり、符号化構成および画像タイプに依存する重み係数Ｗｋ（たとえばＩフレームでは０．５７、階層０のＢフレームでは０．４４２など）、量子化パラメータＱｐ、ならびにαパラメータに依存し、ここで、
【００９４】
【数１０】
0006334006.tif 000011
【００９５】
であり、ここで、１．０の値は非基準フレームに用いられ、１．０−Ｃｌｉｐ３（．．）の値は基準フレームに用いられる。処理５００は次に、ＲＤがこれまで算出された最小のＲＤであるか否かを見るために、ＲＤ＜ＲＤｍｉｎであるか否かを判断すること（５１８）を含む。そうである場合には、ＲＤがＲＤｍｉｎとして設定され（５１９）、ｎＦｉｌｔ［ｃＩｄｘ］がｎＳｅｇ（Ｙフレームについての最小値フィルタ）として設定され、ここでｎＦｉｌｔ［ｃＩｄｘ］は（Ｙ，Ｕ，またはＶ）フレームのフィルタの総数である。
【００９６】
フレームのＲＤは、実際には、領域フィルタおよびブロックフィルタからのＲＤを互いに加算することを含むことを理解されたい。これについては、下記でより詳細に説明する。
【００９７】
図７を参照すると、フレーム７００が１６の領域（４×４）に分割された例示的なフレームとして示されており、開始領域もしくはＬＣＵフィルタ番号および終了領域もしくはＬＣＵフィルタ番号を示している。このように、１つの領域は０  ０を有し、別の領域は１  １を有し、開始時および終了時で同じ番号であって、その領域はマージされていないことを示している。領域５、６、７および８についても同様である（マージされていない）が、たとえば境界領域であることによりサイズが小さいので、見やすさのために、開始および終了の領域もしくはＬＣＵフィルタ番号の両方を示していない。図７では、ｙＣｏｒｒは相互相関ベクトルを表し、ＥＣｏｒｒは自己相関行列を表し、ｐｉｘＡｃｃは画素の累積値（平均値算出用）を表す。本明細書で他のフレームについて説明したように、領域は、領域から領域への画素値変化が最小となるように順序付けられる。
【００９８】
図８を参照すると、処理５００は、最小推定誤差をもたらす１対の隣接するクラスをマージするためにグリーディ（貪欲）アルゴリズムを実行すること（５２０）を含むことができる。例示的なマージ変動（または反復）テーブル８００は、その行およびその行（１６〜１）で使用されるフィルタの数に対応する反復数（ｎＳｅｇに対応）、ならびにフィルタＦ［ｉ］に対応する列ごとのビン（フィルタラベル番号に対応）を含む。テーブル内の各正方形は、同じフィルタを共有し、したがってマージされた開始領域および終了領域（または共に列挙された２つの領域のＬＣＵであり、図５のクラスとも呼ばれる）を示している。たとえば、行１６は、領域ごとに１つ、１６個のフィルタが使用されることを示すにすぎない。１６個の領域フィルタが使用される場合のビン（またはフィルタラベル番号）１５については、この領域フィルタ１５は、領域／ＬＣＵ１５で開始および終了に用いられる。反復１では、１つのフィルタ（フィルタ０）が領域０〜１５のすべてに使用される。反復５は、ビン（またはフィルタ）３で１つのマージを有しており、ビンまたはフィルタ３は、領域３で開始、および領域４で終了に用いられ、合計１５個のフィルタが使用される。反復１４は、ビン３および７で２つのマージを有し、下記同様である。誤差およびビットコスト（係数ビットまたはｃｏｅｆｆｂｉｔｓ）が算出されると、テーブル８００に示すようにレート歪み（またはラグランジアン（Lagrangian、ラグランジュ））が反復（または行）ごとに算出される。テーブルが算出され、またはより正確には、同様のテーブルが２回、すなわち領域に基づくフィルタについて１回、およびブロックに基づくフィルタについて１回算出される。これはより高い計算をもたらすであろうと考えられるが、すべての領域およびブロッククラスの組み合わせの合計が１６（純粋な領域に基づくフィルタ計算で用いられた同じ数）に維持されるので、実際にはそうではない。同じフレームについて得られたＲＤ（ブロック領域）は、反復ごとに足し合わされる。１６のすベての反復が完了した後に、最小レート歪み領域ならびに対応する領域およびブロック配置が、領域およびブロックフィルタに使用するための最良の候補として選択され得る。あるいは、領域およびブロック分類のマージ反復ならびにＲＤを別々に算出してもよく、２つの最良の候補反復（一方は領域に基づき、他方はブロックに基づく）を加算して、フレームごとの最終ＲＤを形成する。
【００９９】
特定の代替的なＢＲ組み合わせについて、一形態では、１６〜１個のフィルタによる反復についてレート歪みの合計を常に計算する代わりに、図示されたＢＲ組み合わせＢＲ１〜ＢＲ８などの各予め設定されたＢＲ組み合わせが、しきい値または初期配置として機能し、ＢＲ組み合わせが共有される領域およびブロックフィルタの最大数および配置を設定する。この場合には、システムは、ＢＲ組み合わせにより提供される最大数で開始し、その時点から領域およびブロックフィルタについてフレーム全体で共有される１つのフィルタまで動作するマージにより反復をテストする。たとえば、ＢＲ２（図１２、図１３）は、８個の領域フィルタ（フィルタごとに１つのマージを有する０〜７）を用いる。反復処理は、８個のフィルタで開始し、それから１つのフィルタまで下方にインクリメントして、フレーム全体で共有される１つのフィルタまで下がる途中で反復ごとにレート歪みを算出する。この処理は、ＢＲ２の初期の８つのブロック分類と同様である。レート歪みは、８つのブロック分類から１つのブロック分類まで反復ごとに決定される。
【０１００】
処理５００に戻ると、一対のクラスまたは領域がマージされると、次の反復を解析するためにｎＳｅｇがｎＳｅｇ−１に設定され（５２１）、ｎＳｅｇ＜＝０であるか否かが判断される（５２２）。そうでない場合には、処理は動作５１１に戻り、次のセグメントまたは反復を解析し、動作５１１〜５２１を繰り返して、テーブル８００と同様の反復ごとにレート歪みを決定する。そうである場合には、とにかくフィルタが使用されるべきか否かが判断される。このように、色成分ＹのＬＣＵごとに、フィルタ処理した歪み（ＤＦ）およびフィルタ処理しない歪み（ＤＷＦ）を算出し（５２３）、ＤＦ＞ＤＷＦであれば、ＬＣＵ  ＡＱＲフラグを０にリセットする（そのＬＣＵについてはフィルタ処理を省略すべきであることを示す）。
【０１０１】
処理５００は、次に、２パスカウンタｒを１だけ進めて（５２４）、ｒ＞１か否かを判断する（５２５）。そうでなければ、動作５０９〜５２２が繰り返され、フィルタ係数は、フィルタ処理により改善されたＬＣＵのみを用いて算出される（動作５０９を参照）。ｒが１よりも大きい場合には、処理５００は次に、現在のレートひずみ値ＲＤｖａｌ＜ＲＤｍｉｎか否かを判断する（５２６）。そうであれば、ＲＤｖａｌはＲＤｍｉｎに設定され（５２７）、ｂｒＩｄｘＭｉｎはｂｒＩｄｘに設定され、現在のＢＲ組み合わせ（またはその反復）が最小レート歪みを有することを示す。そうでなければ、この動作はスキップされる。いずれにしても、処理５００は、次の代替的なＢＲ組み合わせを解析するために、ｂｒＩｄｘをｂｒＩｄｘ＋１に設定すること（５２８）に進む。最後のＢＲ組み合わせ（ＢＲ８または他の最大ＢＲ数）に達したかどうかが判断される（５２９）。そうであれば、Ｙフレームは、ｂｒＩｄｘＭｉｎによって１６のブロッククラスに分割される（５３０）。ＢｒＩｄｘが最大数であるか否かに関わらず、処理５００は、ＢｒＩｄｘが最大数（ここでは８）より大きいかどうかを見るためにチェックに進む。そうでなければ、処理は、次のＢＲ組み合わせにより動作５０５〜５２０を繰り返す。そうであれば、処理は、色成分が完了したか否かをチェックする。
【０１０２】
具体的には、そうであれば、処理は、ｃＩｄｘ＞０であるか否か（Ｙ、Ｕ、またはＶデータが解析されているか否か）をチェックする（５３２）。ＵまたはＶが解析されている場合には、Ｐ［ｃＩｄｘ］のすべてのＬＣＵのＡＱＲフラグが１に設定され（５３３）、ｒカウンタが０に設定され（５３４）、ｎＦｉｌｔ［ｃＩｄｘ］が１に設定される。ウィーナー行列は、フラグが１に設定されているＬＣＵだけが使用されるように、Ｐ［ｃＩｄｘ］について収集され（５３５）、ウィーナーフィルタＦは、ウィーナーホップ方程式を用いて算出される（５３６）。解析されている成分がＹ、ＵまたはＶであるかに関わらず、処理は再び合流して、フィルタ処理を省略するためにＬＣＵ  ＡＱＲフラグを０に設定するべきかどうかを判断するために、ＤＦとＤＷＦとが比較される（５３７）。カウンタｒがｒ＋１に設定され（５３８）、ｒ＞１であるか否かがチェックされる（５３９）。そうでなければ、処理は、１に設定されたＬＣＵのみで再びウィーナー方程式を実行する（０に設定されたものを省略する）。ｒ＞１が真である場合には、Ｐ［ｃＩｄｘ］色成分のすべてのＬＣＵのＡＱＲフラグが再び１にリセットされ（５４０）、歪みＤＦとＤＷＦとが比較されて、ＤＦ＞ＤＷＦである任意のＬＣＵは、フラグが０に設定される（５４１）。
【０１０３】
その後、カウンタｉが０に設定され（５４２）、フレームの総ビットコストｃｏｓｔＡｑｒが同様に０に設定される。総ビットコストｃｏｓｔＡｑｒは、ｃｏｓｔＡｑｒにＥｓｔＣｏｓｔ（Ｆ［ｃＩｄｘ］［ｉ］）を加算することにより算出され（５４３）、それは成分ｃＩｄｘ（成分は、輝度Ｙ、またはＵもしくはＶなどの彩度とすることができる）のｉ番目のフィルタのビットコストである。カウンタｉがｉ＋１に設定され（５４４）、次にｎＦｉｌｔ［ｃＩｄｘ］がｉより大きいかどうかを見るためにチェックされる（５４５）。そうでなければ、処理は、動作５４３に戻って、次のフィルタの歪みでｃｏｓｔＡｑｒに加算する。そうであれば、ｃｏｓｔＡｑｒは、ｃｏｓｔＡｑｒとセグメントの数およびマージ間隔を指定するために用いられるオーバーヘッドとの和に設定される（５４６）。全色成分Ｐ［ｃＩｄｘ］の歪みｄｉｓｔＡｑｒの推定値がＡＱＲフィルタを使用して算出され（５４７）、ＡＱＲフィルタ処理なしの全色成分Ｐ［ｃＩｄｘ］の歪みｄｉｓｔＯｆｆの推定値が算出される（５４８）。レート歪みＲＤＡｑｒが、Ｌａｍｄａ×ｃｏｓｔＡｑｒにｄｉｓｔＡｑｒを加えることによって算出される（５４９）。ＲＤＡｑｒは、次にＤｉｓｔＯｆｆに対してチェックされる（５５０）。ＲＤＡｑｒ（ビットコストを考慮した総歪み）がｄｉｓｔＯｆｆより小さければ、その（Ｙ，Ｕ，またはＶ）フレームのフィルタを使用するために、フレームおよび成分［ｃＩｄｘ］のａｑｒ＿ｆｌａｇ［ｃＩｄｘ］が１に設定される（５５２）。そうでなければ、ａｑｒ＿ｆｌａｇ［ｃＩｄｘ］は０に設定される（５５４）（フィルタは、色成分を有するそのフレームに使用されない）。いずれにしても、処理５００は、ｃＩｄｘをｃＩｄｘ＋１に設定すること（５５６）に進み、それからｃＩｄｘが３より大きいか否かをチェックする（５５８）。そうでなければ、処理５００は、動作５０３に戻って、次の色成分（たとえばＵまたはＶ）について解析を行う。そうであれば、ｃＩｄｘが０に設定され（５６０）、解析されているフレームの各色成分のデータの符号化を開始する。
【０１０４】
フレームのａｑｒ＿ｆｌａｇ［ｃＩｄｘ］が符号化され（５６２）、次に１に等しいかどうかを見るためにチェックされて、フィルタ処理が有効にされる（５６４）。そうでなければ、処理５００は、この色成分の符号化をスキップし、動作５８６に進んで、符号化のための次の色成分に移動する。そうであれば（かつ、このフレーム上のこの成分についてフィルタ処理が有効にされた場合には）、現在の成分がＹであるかどうか（ｃＩｄｘ＝０？）が判断される（５６６）。成分が彩度ＵまたはＶである場合（ｃＩｄｘ＝１または２）には、ゴロム符号器がＵまたはＶフレームのフィルタ係数符号化（ＣＣ）方法として選択され（５７４）、一形態では、ＨＭ７．１  ＨＥＶＣと同様に選択される。
【０１０５】
Ｙフレームが現在のフレームである場合には、フレームのセグメント（またはフィルタ）の数およびマージ情報が符号化される（５６８）。複数のフィルタと領域との関係を導出するために、領域とフィルタとの間のマッピング情報がデコーダに送出されるべきである。フィルタの数に関するシンタックス要素が、最初に送出される。このシンタックス要素は、３つの場合、すなわち使用される１つのフィルタ、２つのフィルタ、または２つより多いフィルタのうちの１つを示す。一例では、フレームは、０〜４に番号付けされた（ラベルされた）５つのフィルタ（またはマージした領域）を使用する領域０〜１５を有してもよい。したがって、領域０〜１５の１つの可能な実施例によれば、領域０〜３はフィルタ０を使用し、領域４〜５はフィルタ１を使用し、領域６〜１０はフィルタ２を使用し、領域１１〜１２はフィルタ３を使用し、領域１３〜１５はフィルタ４を使用する。この実施例では、１６のクラス／領域および５つの異なるフィルタがあり、これらの間のマッピングは、［０，０，０，０，１，１，２，２，２，２，２，３，３，４，４，４］のように記述することができ、差分パルス符号変調（ＤＰＣＭ）符号化を用いて、［０，０，０，０，１，０，１，０，０，０，０，１，０，１，０，０］のように符号化することができる。１つのフィルタまたは２つのフィルタがフレーム全体に使用される場合には、このマッピング情報は必要とされないことに留意されたい。１つのフィルタを用いる場合には、すべての領域をマージしなければならないので、マージ情報を符号化する必要はない。２つのフィルタを用いる場合には、第２のフィルタが適用を開始するインデックスが送信される。そして、３ビットのＢＲ組み合わせ選択（ｂｒＩｄｘＭｉｎ）が符号化され（５７０）、ここでは８つのうちの、または他の組の予め設定されたＢＲ組み合わせのうちの、どの代替的なＢＲ組み合わせを、フレームの反復を決定するための基礎として使用すべきであるかを示す。
【０１０６】
図１７Ａ〜図１７Ｌを参照すると、次に過去のフレームフィルタを使用して最良の係数符号化（ＣＣ）方法が算出される（５７２）。より具体的には、輝度に対するフィルタ係数の符号化のために、いくつかの代替的な符号化方法のうちの１つを選択することができる。本実施例では、８つの異なるカバーに基づく方法と同様に、ゴロム指数に基づく方法が利用可能である。シーケンスの最初のフレームまたはシーンチェンジフレームなどの、符号化履歴が利用できない場合には、単純なｋ次ＥｘｐＧｏｌｏｍｂ符号器が使用される（ｍｅｔｈｏｄ＝０）。単純なｋ次ＥｘｐＧｏｌｏｍｂ符号器（図１７Ａに示すように係数位置ごとにｋが異なる）が、輝度フィルタのフィルタ係数を符号化するために使用される。図示された例では、ｋ次ゴロムＶＬＣテーブル１（図１７Ａ）は、０〜４の範囲のｋ値を有する１６個の係数（Ｃ０〜Ｃ１５）を示している。提案された適応型符号化に使用されるｋ次ＥｘｐＧｏｌｏｍｂは、提案されたフィルタ形状の１６個のフィルタ位置のｋ値を使用する。ｋ次ゴロムＶＬＣテーブル２は、係数値に対応し、ｋ値に依存するバイナリコードを示している。−３３〜３３の最も頻繁に使用される範囲のテーブルの一部のみが示されているが、残りのテーブルは、すべての係数値をカバーするように推定されることができる。バイナリコードは、次に、デコーダによる復号のためにビットストリームに書き込まれる。
【０１０７】
フィルタ履歴が利用可能である場合には、適応型符号化機構は、各フレームにおいてＡＱＲ符号化方法を選択するために、前に処理されたフレームからのフィルタを用いることによって、輝度フィルタに提供されることができる。一実施例によれば、履歴が存在しない場合のｋ次ＥｘｐＧｏｌｏｍｂ方法の他に、可変長符号化を使用する８つのカバー方法であってもよく、それぞれテーブル４〜１１（図１７Ｄ−１〜図１７Ｋ）に対応する。テーブル３（図１７Ｃ）は、カバー方法のいずれかに利用可能な切り詰めたゴロム（ＴＧ）符号化のための符号を提供し、テーブル１２（図１７Ｌ）は、非０中心係数（本明細書で提供されるフィルタのパターン６００の係数Ｃ１３）のための符号を提供する。主カバーテーブル４〜１１はそれぞれ分割され、たとえば、図１７Ｄ−１は係数Ｃ０〜Ｃ７の符号値を示し、図１７Ｄ−２は係数Ｃ８〜Ｃ１５の符号値を示す。
【０１０８】
フィルタ係数の符号化のためのカバー方法は、ゴロム符号器とは異なり、別々に各係数位置で最も頻繁に発生する係数に特定のＶＬＣを割り当てることを可能にする。この機構は、すべての係数位置について使用される。しかし、各フィルタ係数位置は、それ自体のカバーが割り当てられている。Ｇｏｌｏｍｂ符号と共に合計８組のカバーＶＬＣが、フレームごとに適応可能に切り換えられる。これは、適切なテーブルが選択された場合には、顕著なビット節約になる。各係数位置において、カバー方法は、「カバー」外の値を指示するエスケープコード（ＥＳＣ）を用いつつ、特定のＶＬＣを有する値の範囲を「カバーする」。したがって、値がカバーの内側であれば、単一のＶＬＣ符号がその値を符号化するために使用される。しかし、フィルタ係数値がカバーの外側にある場合には、エスケープコードが最初に符号化され、続いて、切り捨てられたゴロム（ＴＧ）符号器を用いて最近接範囲限界値を有する値の微分を符号化する。たとえば、所与の係数値のカバーを［−７，．．，１５］と仮定する。値３は、カバーの内側にあるので、値３に対応するＶＬＣ符号により単純に符号化される。たとえば、その値が−１０であって、カバーの外側にある場合には、エスケープコードワードＥＳＣが最初に符号化され（符号化された値は、カバーの外にあることを示す）、次に最近接範囲限界値（ここでは−７）を有する微分が計算され、−１０−（−７）＝−３が得られる。次に、−３が切り捨てられたゴロム（ＴＧ）符号により符号化され、それは０が有効な値ではない単純なゴロム符号器であり、これにより各非０ゴロム符号の１ビットのプレフィックスが削除される（なお、微分は理論的には（−∞．．−１］Ｕ［１．．∞）の範囲である）。
【０１０９】
たとえばテーブル４（図１７Ｄ−１）を見ると、エスケープコード（ＥＳＣ）がフィルタ係数ごとに最上行に沿って列挙され、フィルタ係数値がテーブルの側部に沿って列挙されている。テーブル４では、列挙された係数値は−３０〜６６であり（ただし、他のテーブルは異なる範囲を列挙してもよい）、ここで−６〜６は係数Ｃ０に対するカバー範囲と考えられる。−３０より小さい、または６６より大きい任意の値は、それらの限界値として同じ符号を受け取る。カバー範囲（−６〜６）の係数値については、その値は単に列挙されたバイナリ符号化で符号化されるにすぎない。範囲外の任意の値、たとえば−９については、その値はＥＳＣ＋ＴＧ［−３］により符号化され、これは−９から最近接カバー範囲限界（−６）を引くと−３なので、エスケープコードと切り捨てられたゴロム符号化ＴＧ［−３］との和を意味している。この微分が決定されると、ＴＧ［−３］のバイナリコードをテーブル３（図１７Ｃ）で調べることができる。他のテーブル５〜１１も同様に動作する。
【０１１０】
非対称係数位置Ｃ１４およびＣ１５については、予測値微分が実際の値の代わりに符号化される。符号化される予測値微分を算出するために、係数Ｃ８が係数Ｃ１４の予測として使用され、係数Ｃ６が係数Ｃ１５の予測として使用される。
【０１１１】
８つのカバー符号化方法（テーブル４〜１１に対応）の各々は、異なるカバー範囲を有することができる。カバー符号化テーブルはまた、テーブル間で同じ係数番号（または位置）を有する同じ係数値に対して異なるバイナリコードを有する。１つの手法よれば、最良のテーブルは、いわば「しらみつぶし」により見いだされ、各ＶＬＣテーブルがテストされ、そして、最小のビット数を生成するテーブル、言い換えると圧縮を最大にするテーブルが最良のテーブルであると考えられる。このテーブル（またはテーブルのインデックス）は、次にビットストリームで送出され、デコーダがフィルタ係数を復号するために同じテーブルを使用することができる。代替例では、いくつかのコンテンツ解析ノウハウが利用できる場合には、すべてより少ない数のＶＬＣテーブルをテストすることができる。テーブルなどを選択するためには、いくらかの考慮すべきオーバーヘッドがあるが、これは、通常、些細なものである。
【０１１２】
ＶＬＣテーブルの生成は、下記の説明に基づいている。開始するための、ビデオ符号化における適応型アルゴリズム（ここでは、ＱＲフィルタ係数の適応型エントロピー符号化）についての３つの理由は、（１）符号化されているビデオコンテンツ自体の画像特性（詳細／詳細でない、低速／高速動き、…）、（２）ビットレートなどの記憶／伝送帯域幅の制約、および（３）（高い）ビデオ品質（または同等であるが、高圧縮）の期待値である。この３つは共に、挑戦的ではない（容易な）ものから、低、中間、高、そして非常に挑戦的なものにまで及ぶ動作点を表している。一般に、挑戦するレベルが高いほど、より多くの適応性が必要とされる傾向がある。複雑さなどの他の実際的な問題が存在するが、これはここでは無視する。
【０１１３】
本明細書で提供される適応型システムは、いくつかの実施例による複数のＶＬＣテーブルを必要する高圧縮の必要性を高めるが、相対的に低い復号複雑性を依然として維持しており、それはここでは算術符号化のタイプの方式を使用せずに回避された。したがって、ＶＬＣテーブルの中から選択するための機構は、ＶＬＣから十分に高い圧縮利得を提供しなければならず、そうでなければ、適応型ＱＲフィルタの利得はより小さく見えるであろう。システムはまた、複雑になるすぎると機能しなくなる（またはビットを使いすぎる）ので、単純なままであるべきである。本システムは、８つのＶＬＣテーブルの組に基づくシステムを用いて、これらのトレードオフを行う（さらに各係数はそれ自体のＶＬＣテーブルを用いてもよい）。テーブル選択のオーバーヘッドと符号化係数の可能性のある利益との間で効率良くバランスをとることを可能にするので、８つのテーブルが用いられる。８つテーブルは、ヒューリスティックおよび実験（コンテンツおよびビットレート／量子化器に基づく）に基づいてトレードオフとして構築され選択された。このように、他の数のテーブルも適切に動作することができる。
【０１１４】
テーブル４〜１１の具体的な係数カバーは、多数のビデオシーケンスのＱＲフィルタ係数を収集し、異なるビットレートおよび量子化値の下で統計的に処理し（平均、分散、ヒストグラムなど）、望むならコレクションまたは組を作成し、発生確率に基づいて各イベントにコードワードを割り当てることにより、導出することができる。通常、グループおよび／または組は十分に異なって作成されるので、隣接する範囲の間でいくらかのオーバーラップがあるが、新たな組を追加する圧縮利得の利益があるべきである。テーブル４〜１１は、一般的には、テーブル４からテーブル９までの範囲で広く増加していく係数のいくつかのサブセットを表すが、傾向は必ずしもテーブル１０〜１１に連続していない。実際には、テーブルのいくつかは追加のコンテンツを用いた実験において作成され、カバー範囲のサイズは他のテーブルと適合しないように後で追加されたにすぎない。エンコーダの観点、ＶＬＣテーブル選択の観点、圧縮の観点、または復号の観点から、テーブルの順序は重要ではない。
【０１１５】
このように、データのいくつかはいくつかの単調な傾向に追従するが、すべてがそうなるわけではない。実際に、全体およびカバー範囲の問題は、異なる長さのＶＬＣコードほど重要ではないが、（実際に各係数は全領域を可能にし、指定された範囲は、符号化が最も効率的であるが、より長いが使用可能なビットであるエスケープコードを用いて全範囲を扱う）異なるテーブルの同じ係数に割り当てられることができる。上述したように、ＶＬＣコード長は、係数値の出現頻度に依存する。フィルタ係数値が多く発生するほど、より短い符号がテーブルによってフィルタ係数値に割り当てられる。
【０１１６】
図１７Ｌを参照すると、中心係数Ｃ１３は、他のすべての係数の和から予測される。中心微分は０である可能性が最も高い。それが０であれば、中心係数は符号化されない。しかし、中心値が０でない場合には、テーブル１２（図１７Ｌ）に列挙されているエスケープコードワード（Ｅｓｃ  ＶＬＣコード）が、０でない中心を示すためにＣ１２係数で使用される。次に、中心の実際の値は切り捨てられたゴロム符号器で符号化され、最後に符号化される（すべての非中心係数の和はデコーダで算出することができる）。具体的には、テーブル１２は、中心係数（Ｃ１３）と非中心係数の和との差分が０でないことを示すエスケープコードを列挙している。さらに、この場合に、０でない差分は最後の非中心係数と共に符号化され、エスケープコードの後に中心係数（Ｃ１３）の差分が続き、その後に最後の非中心係数が続く。
【０１１７】
下記の付録Ａは、テーブル４〜１１の一部の例示的な実施形態を示す「Ｃ」プログラムコードのサンプル部分を示す。
【０１１８】
再び処理５００に戻り、係数符号化方法が計算され選択されると、フレーム内のすべてのフィルタを符号化するためのカウンタｉが０に設定され（５７６）、Ｆ［ｃＩｄｘ］［ｉ］のフィルタ係数が選択された係数符号化（ＣＣ）方法により符号化される（５７８）。処理５００は次に、ｉに１を加算し（５８０）、ｉ＞ｎＦｉｌｔ［ｃＩｄｘ］であるかどうかをチェックする（５８２）。そうでなければ、処理は、符号化動作５７８に戻って次のフィルタを符号化する。そうであれば、ＬＣＵごとに、処理５００は、成分Ｐ［ｃＩｄｘ］についてコンテンツ適応型バイナリ算術符号化（ＣＡＢＡＣ）によりＬＣＵ  ＯＮ／ＯＦＦフラグを符号化し（５８４）、成分により、ＬＣＵをフィルタ処理すべきか否かを示す。
【０１１９】
処理５００は次に、１を加算することによって成分値ｃＩｄｘを変更すること（５８６）、およびｃＩｄｘが３より大きいか否かを判断すること（５８８）を含むことができる。そうでなければ、処理５００は、動作５６２に戻って、フラグをセットし、次の色成分のデータを符号化する。そうであれば、最後のフレーム（または画像（ｐｉｃ））に到達したか否かを判断する（５９０）。そうであれば、処理は、このビデオシーケンスについて終了する。そうでなければ、画像順序カウント（ＰＯＣ）においてＰが次の画像またはフレームに設定され（５９２）、処理は動作５０２に戻って、次のフレームまたは画像で処理を再開する。
【０１２０】
図１８Ａ、図１８Ｂを参照すると、フローチャートは、デコーダにおける、コードブックを使用しない、本開示の少なくともいくつかの実施形態により構成された例示的なＡＱＲフィルタ処理１８００を示す。一般的に、処理１８００は、ビデオ符号化用の高コンテンツ適応型品質回復のためのコンピュータにより実施される別の方法を提供することができる。図示された実施形態では、処理１８００は、偶数に番号付けされた動作１８０２〜１８３６のうちの１つまたは複数によって示される、１つもしくは複数の動作、機能、または操作を含むことができる。非限定的な例として、処理１８００は、図１、図２および図６〜図１７に関して説明された動作を参照してここで説明されることになるとともに、例示的なシステム１００、２００、または後述される２２００に関して説明されることができる。
【０１２１】
処理１８００は、Ｐ［０］＝Ｙ、Ｐ［１］＝Ｕ、およびＰ［２］＝Ｖである画像データＰを有するビットストリームを入力すること（１８０２）を含むことができる。色成分インデックスカウンタｃＩｄｘが０に設定され（１８０４）、ａｑｒ＿ｆｌｇ［ｃＩｄｘ］フラグが、復号され（１８０６）、フラグが１に等しい（フィルタ処理が成分（Ｙ、ＵまたはＶフレーム）について有効であることを示す）かどうかを調べるためにチェックされる（１８０８）。そうでなければ、処理は動作１８３０へ移って、同一のフレームの次の色成分を解析する。そうであれば、処理１８００は、ｃＩｄｘ＝Ｙ（輝度）かどうかをチェックする（１８１０）。そうでなければ、ゴロムデコーダが係数符号化（ＣＣ）方法として選択される。しかし、そうであれば、フィルタの個数ｎＦｉｌｔ（またはセグメント）およびマージ情報が復号され（１８１２）、３ビットの選択された代替的なＢＲ組み合わせインデックス（ｂｒＩｄｘＭｉｎ）が復号される（１８１４）。
【０１２２】
１つの手法によれば、デコーダは、過去のフレームフィルタから最良の係数符号化方法ＣＣ（０〜８）を計算するために、エンコーダにおいて解析を繰り返すことができる。たとえば、デコーダは、エンコーダにおいて計算される最後の５フレーム分のフィルタテーブルの選択の同じ頻度を計算することにより、エンコーダで使用される係数の復号のために暗黙的に同じテーブルを選択し、この情報を明示的に送る必要がなくなる。上で説明した方法０〜８の中から最良の係数符号化（ＣＣ）方法が、デコーダにより計算される（１８１６）。上述したように、過去のフレームフィルタ履歴が存在しない場合には、ｋ次ＥｘｐＧｏｌｏｍｂ符号器が選択され、そうでなければカバー方法のうちの１つが選択される。あるいは、ＶＬＣテーブル自体の識別がビットストリームに明示的に含まれてもよく、フィルタ係数を復号するために使用されることができる。この手法は、しかし、最良のＶＬＣテーブルの識別をデコーダに明示的に送信するために必要とされる追加のビットコストにより、さらなるオーバーヘッドを発生させる。デコーダで使用する最良のテーブルを暗黙的に推定することにより、あるいは、エンコーダにより使用される最良のテーブルの識別子を必要な回数だけビットストリームから復号することにより、Ｆ［ｃＩｄｘ］［ｉ］のフィルタ係数を選択された係数符号化（ＣＣ）方式により復号する（１８２２）ことができる。また、フィルタカウンタｉが０に設定される（１８２０）。
【０１２３】
フィルタ係数を復号した後、１をｉに加算し（１８２４）、ｉ＞ｎＦｉｌｔ［ｃＩｄｘ］であるか否か（フレームの最小フィルタを解析したか否か）を判断するためにチェックする（１８２６）。そうでなければ、処理は、係数復号動作１８２２に戻って、次のフィルタの係数を復号する。そうであれば、ＬＣＵごとに、処理１８００は、成分Ｐ［ｃＩｄｘ］についてコンテンツ適応型バイナリ算術符号化（ＣＡＢＡＣ）によりＬＣＵ  ＯＮ／ＯＦＦフラグを復号する（１８２８）。次に、１をｃＩｄｘに加算して（１８３０）、ｃＩｄｘが３より大きいか否かを判断するためにチェックする（１８３２）。そうでなければ、処理１８００は動作１８０６に戻って、次の色成分（ＵまたはＶ）フレームを解析する。そうであれば、最後の画像（またはフレーム）が復号されたか否かをチェックする（１８３４）。そうであれば、処理は終了する。そうでなければ、ＰがＰＯＣの順で次の画像に設定され、処理は動作１８０４に戻り、次の画像を復号する。フィルタ係数が復号されると、それらは、フィルタ処理された再構築されたフレームを導出するために、適切なフィルタ、ＬＣＵ、および成分（Ｙ，Ｕ，またはＶ）フレームで使用されることができる。
【０１２４】
下記は、コードブックのないＡＱＲフィルタ処理を組み込むＨＥＶＣビットストリームシンタックスのサンプル擬似コードである。
【０１２５】
頭字語は下記の通りである。
ｕｖｌｃ（ｖ）−値ｖの符号なしのＶＬＣ符号化
ｓｖｌｃ（ｖ）−値ｖの符号付きのＶＬＣ符号化
ｇｌｍｂ（ｖ）−値ｖのゴロム符号化
ｃｏｖｒ（ｖ）−値ｖのカバーＶＬＣ符号化
ｔｇｃ（ｖ）−値ｖの切り捨てられたゴロム符号化（０でない場合）
ｃｂａｃ（ｖ）−値ｖのＣＡＢＡＣ符号化
【０１２６】
【表１】
0006334006.tif 000012
【０１２７】
【表２−１】
0006334006.tif 000013
【表２−２】
0006334006.tif 000014
【０１２８】
【表３】
0006334006.tif 000015
【０１２９】
図１９Ａ〜図１９Ｈを参照すると、処理１９００は、コードブックを用いたＡＱＲフィルタ処理の例示的な方法であり、フィルタ処理のための圧縮利得を増加させるために、フィルタシステムは、フィルタ構造およびより長いフィルタ係数の符号化ではなく、デコーダにより短い符号を送信する選択肢を提供する。処理１９００は、本開示の少なくともいくつかの実施形態により構成されている。一般的に、処理１９００は、ビデオ符号化用の高コンテンツ適応型品質回復のためのコンピュータにより実施される別の方法を提供することができる。図示された実施形態では、処理１９００は、図１９Ａ〜図１９Ｈに示すように番号付けされた動作１９０２〜１９８８のうちの１つまたは複数によって示される、１つもしくは複数の動作、機能、または操作を含むことができる。非限定的な例として、処理１９００は、図１、図２および図６〜図１７に関して説明された動作を参照してここで説明されることになるとともに、例示的なシステム１００、２００、または後述される２２００に関して説明されることができる。
【０１３０】
処理１９００は、本明細書で説明したコードブックを対象とする動作を除いて、処理５００に類似している。したがって、最初に、ＡＱＲフィルタを有効にするＡＱＲフラグに加えて、コードブックフラグ（ａｑｒ＿ｃｂｏｏｋ＿ｆｌａｇ）を付加する。類似性の観点から、類似する動作については再度説明をすることはせず、処理５００を参照されたい。異なる動作は次の通りである。
【０１３１】
フィルタのフィルタ係数を計算することを含む処理５００の動作に加えて、処理１９００は、予め設定されたフィルタ係数を有する予め設定されたまたは所定のフィルタのコードブックを使用する動作を含むことができるので、完全なフィルタ係数値の代わりに、より短い符号をエンコーダからデコーダに送信することができる。この場合には、他の計算された処理（ＢＲ組み合わせおよびマージテスト）に加えてコードブック値が使用され、最低レート歪みが得られる方法（コードブックに対して計算された）が使用するために選択される。このように、一形態では、下記に説明する異なる動作が、処理５００の動作のいずれかを直接に置き換えるのではなく、処理５００に追加される。他の代替例では、コードブックは、上述した３つの処理（ＢＲ組み合わせ、マージ反復、およびコードブック）のうちの利用可能な唯一の処理であってもよい。
【０１３２】
具体的には、動作１９４２までは、処理１９００は、処理５００と同じか類似していてもよく、それはカウンタｉを０に設定し、ｃｏｓｔＡｑｒが０に設定される同様の動作５４２を有する。動作１９４２では、ｃｏｓｔＡｑｒが同様に０に設定される。しかし、処理１９００では、次の動作は、フィルタｎＦｉｌｔ［ｃＩｄｘ］を最も近いコードブックフィルタに適合させること（１９４４）とすることができる。これは、最良のコードブックフィルタの代表を見いだすためのコードブック検索を含むことができる。したがって、この場合には、コードブックは、各フィルタが本明細書で説明した単一菱形形状のフィルタに対応する１６個の係数の係数セットを含む、複数の代替的なフィルタを含むことができる。一形態では、コードブックは、本明細書で説明した単一菱形形状に対応するフィルタだけでなく、他の形状も同様に含むことができ、それらのいくつかは菱形形状ほど複雑ではないが、他はより複雑であってもよく、これらのフィルタは、単一コードブックとしてまたはサブコードブックの形式で構成されることができる。一形態では、コードブックは、１つのサブコードブックが輝度（Ｙ）フィルタを含むことができ、他のサブコードブックが彩度Ｕフィルタおよび彩度Ｖフィルタなどを含むことができるような、輝度／彩度サブコードブックから構成されることができる。別の形態では、コードブックはまた、異なるタイプのフィルタを含むことができ、いくつかは低細部の領域に適用することができ、他は模様のある領域に適用することができ、さらに他は端部に適用することができる。これらのフィルタは、異なるタイプのコンテンツに適していてもよいし、単一のコードブックとして暗示的に、または別個のサブコードブックとして明示的に構成されてもよい。使用されるコードブック戦略に応じて、最良のフィルタ（係数セット）を見つけるための探索は、容易でも難しくてもよいし、コンテンツに大きく依存してもしなくてもよいし、ビットレートの効率が良くても悪くてもよいし、メモリ集中であってもなくてもよいし、あるいは柔軟であってもなくてもよい。さらに任意のコードブックまたはサブコードブックは、ＲＯＭ、またはＲＡＭなどのダイナミックメモリに、あるいは他の手段によって、ルックアップテーブルとして実装されることができる。
【０１３３】
処理１９００は、次に、対応するｃＩｄｘ要素（またはセグメント）内の有効なＬＣＵに、対応するＡＱＲフィルタを適用することによって、歪みｄｉｓｔＡｑｒを推定すること（１９４６）を含むことができる。処理１９００は、対応するｃＩｄｘ要素内の有効なＬＣＵに、対応するＡＱＲフィルタを適用することによって、歪みｄｉｓｔＣｂＡｑｒ（コードブックを有する歪み）を推定すること（１９４８）に進む。ＡＱＲフィルタおよびコードブックフィルタの両方のビットコストが推定される（１９５０）。ｃｏｓｔＡｑｒは、処理５００の動作５４３と同様にＥｓｔＣｏｓｔ（Ｆ［ｃＩｄｘ］［ｉ］）にｃｏｓｔＡｑｒを加算することにより算出され、ここでＥｓｔＣｏｓｔ（Ｆ［ｃＩｄｘ］［ｉ］）は解析されているフィルタの推定されたコストである。同様に、コードブックコストの合計ｃｏｓｔＣｂＡｑｒは、ＥｓｔＣｏｓｔ（ＦＣｂ［ｃＩｄｘ］［ｉ］）にｃｏｓｔＣｂＡｑｒを加えることによって算出される。ｃｏｓｔＣｂＡｑｒおよびｃｏｓｔＡｑｒの両方は、最初に０に設定される。
【０１３４】
処理１９００は、Ｅ＋Ｌａｍｂｄａ×Ｃなどの前述したＲＤ計算と同様に、レート歪みＲＤＡｑｒおよびＲＤＣｂＡｑｒを計算すること（１９５２）を含む。ＲＤＣｂＡｑｒ＜ＲＤＡｑｒであるか否かを判断するためにチェックが実行され（１９５４）、そうであれば、コードブックフラグａｑｒ＿ｃｂｏｏｋ＿ｆｌａｇが１（有効）に設定され（１９５５）、そうでなければ０に設定される（１９５６）。これは、フィルタ［ｉ］について、コードブック方法が、計算された方法よりも、そして言い換えるとそのフィルタに対応するセグメント（または領域またはブロック分類）よりも良好であるか否かを判断する。
【０１３５】
このコードブックフラグが設定された後に、処理５００と同様の動作に戻る。したがって、フィルタカウンタｉがｉ＋１に設定され（１９５８）、ｉ＞ｎＦｉｌｔ［ｃＩｄｘ］であるか否かが判断される（１９６０）。そうでなければ、次のフィルタが解析され、処理は動作１９４４に戻って、次のコードブックフィルタを検索する。フレームのフィルタのすべてが解析された場合には、処理１９００は次に、動作５４６と同様の動作１９６３に進み、最終的なブロックの領域配置を決定するための２つの動作がその点から先に同様に継続し、処理５００で説明したようにその配置を符号化する。１つの違いは、処理１９００がここで、フィルタの数およびマージ情報を符号化することに加えて、コードブックインデックス、ある場合には８ビットのコードブックインデックスを符号化することを含んでいるということである（動作１９７６）。実際的な理由から、サイズ２５６〜５１２フィルタ（各フィルタは１６個の係数からなる）のコードブックは、フィルタの選択量、コードブックの記憶量、コードブックの検索の複雑さ、およびコードブックにインデックスを付けるためのビットオーバーヘッドを可能にする合理的な妥協を提供する。たとえば、コードブックサイズが２５６である場合には、０〜２５５の範囲の値を有する８ビットコードは、２５６個の格納されたフィルタのうちの任意の１つにインデックスを付けることができる。
【０１３６】
図２０Ａ、図２０Ｂを参照すると、処理２０００は、コードブックを用いたＡＱＲフィルタ処理のためのデコーダの動作を提供する。処理２０００は、偶数に番号付けされた動作もしくは機能２００２〜２０４０を含み、システム１００、２００および２２００を含む、本明細書に記載した実施形態の多くに適用する。この処理２０００は、処理１８００と同様であり、同様の動作は繰り返されない。異なる動作は次の通りである。
【０１３７】
フラグａｑｒ＿ｆｌａｇ［ｃＩｄｘ］が復号されるが（動作２００６）、このフラグもフィルタ処理が有効であるかどうかを調べるために同様にチェックされる。そうでなければ、復号はコードブックを用いない場合と同じまたは同様に動作２０２２まで継続して、そこで復号されたコードブックフラグａｑｒ＿ｃｂｏｏｋ＿ｆｌａｇが１（有効）に設定されているか否かをチェックする。そうであれば、コードブックインデックスが復号されて（２０２４）、フィルタ係数を検索する。この動作の後に、コードブックフラグが１または０に設定されているか否かに関わらず、処理２０００は、処理１８００と同様に、選択された係数符号化（ＣＣ）方法によりＦ［ｃＩｄｘ］［ｉ］の係数を復号すること（２０２６）に進む。次に、復号処理２０００は、そこから処理１８００と同様に継続する。フィルタ係数が復号されると、それらはフィルタ処理された再構築されたフレームを導出するために、適切なフィルタ、ＬＣＵ、および成分（Ｙ，Ｕ，またはＶ）フレームで使用されることができる。
【０１３８】
ここで図２１を参照すると、システム２２００は、動作で示した例示的なＡＱＲフィルタ処理２１００に用いられることができ、本開示の少なくともいくつかの実施形態により構成されることができる。図示された実施形態では、処理２１００は、偶数に番号付けされた操作２１０２〜２１２６のうちの１つまたは複数によって示され、かつ代替的にもしくは任意に組み合わせて使用される、１つもしくは複数の動作、機能、または操作を含むことができる。非限定的な例として、処理２１００は、本明細書に記載した実施形態のいずれかに関して説明された動作を参照してここで説明されることになる。
【０１３９】
図示された実施形態では、システム２２００は、論理部もしくは論理回路もしくはモジュール２２５０などを有する処理部２２２０、および／またはそれらの組み合わせを含むことができる。一例として、論理回路またはモジュール２２５０は、ビデオエンコーダ１００および／またはビデオデコーダ２００を含むことができる。いずれかの符号器または両方は、それぞれＡＱＲフィルタ部２２５２もしくは２２５４、および任意選択的にコードブック２２５６および２２５８をそれぞれ含むことができる（破線で示す）。図２２に示すように、システム２２００は特定のモジュールに関係する動作または操作のうちの１つの特定のセットを含むことができるが、これらの動作または操作は、ここに示す特定のモジュールとは異なるモジュールに関係付けてもよい。
【０１４０】
処理２１００は、「元のフレームおよび再構築されたフレームのビデオデータを取得する」こと（２１０２）を含むことができ、システム、または具体的にはＡＱＲフィルタ部は、再構築されたフレームの画素データへのアクセスを取得することができる。これらのフレームは、すでにデブロッキングおよび／またはＳＡＯフィルタによりフィルタ処理されていてもよいし、されていなくてもよい。データは、システム２２００または２３００で説明したように、ＲＡＭもしくはＲＯＭから、または他の永続的もしくは一時的なメモリ、メモリドライブ、またはライブラリから取得されるか、または読み出されることができる。アクセスは、たとえば、進行中のビデオストリームの解析のために連続的なアクセスであってもよい。
【０１４１】
処理２１００は、「少なくとも１つの再構築されたフレームと共に使用するための複数の代替的なブロック領域適応組み合わせを生成する」こと（２１０４）を含むことができる。上記で説明したように、これは、ＢＲ１〜ＢＲ８（図９〜図１６のフレーム／テーブル９００〜１６００）などの一組の代替的なブロック領域組み合わせを展開するための発見的方法を使用することを含むことができる。再構築されたフレームは複数の領域に分割され、各領域には領域フィルタが割り当てられ、領域フィルタは複数の領域で共有されてもよいし、されなくてもよい。特定のブロック分類のブロックに１つまたは複数のブロックフィルタが割り当てられたフレームに、１つまたは複数の開口部が形成される。同じＢＲ組み合わせが、複数の再構築されたフレームのために使用されることができる。
【０１４２】
処理２１００は、処理５００または１９００で説明したように、特に解析中のＢＲ組み合わせのフィルタ値を形成するために、「ブロック領域組み合わせのフィルタ係数値を計算する」こと（２１０６）を含むことができる。一例によれば、ウィーナーホップ方程式を使用することができ、フィルタのパターンは、ホールがある菱形形状のフィルタ６００（図６）であってもよいし、そうでなくてもよい。
【０１４３】
処理２１００は、「領域および／またはブロック分類をマージすることによりブロック領域組み合わせの反復を形成し、最小レート歪みを有する反復を決定する」こと（２１０８）を含むことができる。上述したように、各ＢＲ組み合わせは、初期配置として用いられることができ、それから最低レート歪みの配置を決定するために変更される。単一の領域フィルタおよび単一のブロックフィルタがフレーム全体に使用されるまで、各反復によりフィルタを共有する領域および／またはブロック分類のうちの２つをマージすることによって、配置を変更することができる。反復ごとにレート歪みを決定するために、ラグランジュ方程式を用いることができる。
【０１４４】
処理２１００は、任意選択的に「コードブックからのフィルタ係数、およびこれまでの最小レート歪みを有する反復を決定する」こと（２１１０）（破線で示す）を含むことができる。これは、与えられたＢＲ組み合わせにおいて、ＢＲ組み合わせの反復を解析しながら、コードブックフィルタを、保存されたフィルタ係数と共に、使用することを含むことができる。最良のコードブックの反復を最良の計算された反復と比較して、これらの中から最低レート歪みを有する反復を決定することができる。
【０１４５】
処理２１００は、次に、「フレームおよび／またはＬＣＵ（または他のブロックユニット）に基づいて、ＡＱＲフィルタ処理をしない場合よりもＡＱＲフィルタ処理をした方がフレームおよび／またはＬＣＵがより低いレート歪みを有するか否かを判断する」こと（２１１２）を含むことができる。このように、このシステムは、すべてのＬＣＵ（または他のフレームサブユニット）および／またはフレームをチェックして、ＡＱＲフィルタ処理がフィルタなしの符号化よりも良好であるか否かを判断することができる。
【０１４６】
処理２１００は、ＡＱＲフィルタ処理のために承認されたＬＣＵおよびフレームにおいて最良の反復の符号化に進むことができる。一例では、これは、「係数値の頻度に依存する符号長を有する可変長符号化により最小レート歪みを有する反復のフィルタ係数を符号化する」こと（２１１４）を含むことができる。これは、特定のフレームもしくは反復の特定の場所でコードブックのどのフィルタを使用するべきかを示すコードブックのコードを符号化することに加えられることができる。
【０１４７】
処理２１００はまた、「ＡＱＲフィルタ処理をしない場合よりもＡＱＲフィルタ処理をした場合の方がより低いレート歪みを有するフレームおよび／またはＬＣＵについてのみ、ＡＱＲフィルタ処理データを符号化する」こと（２１１６）に進むことができる。このように、ＡＱＲフィルタ処理なしでより低い歪みを有するフレームまたはＬＣＵ（または、他のサイズであってもよい）については、ＡＱＲフィルタ処理データは符号化されて送信されないので、それによりビットレートの負荷をさらに低減する。
【０１４８】
処理２１００は、次に、「符号化されたデータを有するビットストリームを送信する」こと（２１１８）を含むことができ、それからデコーダ２００が「フィルタ処理フラグ、ＢＲ組み合わせの識別、マージ情報、およびフィルタ係数を復号する」こと（２１２０）を含むことができる。次に処理２１００は、コードブックフィルタを備えている場合に、「フィルタ処理されるフレームおよびＬＣＵのフラグをチェックする」こと（２１２２）、「計算されたフィルタ係数を復号する」こと（２１２４）、ならびに「コードブックからフィルタを取得する」こと（２１２６）に進むことができる。これは、コードブックの特定のフィルタに対応する８ビットコードなどの符号を最初に復号し、次にそのフィルタに含まれているフィルタ係数およびフィルタのパターン情報のすべてを復号することを含むことができる。
【０１４９】
処理２１００は、「再構築されたフレームの画素データを、フィルタを使用して変更する」こと（２１２８）、それから「シーケンスが終了するまで複数のフレームについて繰り返す」こと（２１３０）を含むことができる。再構築されたフレームは、次に表示および予測のために提供されることができる（２１３２）。
【０１５０】
一般に、処理２１００は、必要に応じて、順次にまたは並行して任意の回数だけ繰り返されることができる。さらに、一般に、エンコーダ１００およびデコーダ２００によって使用されるような論理部または論理モジュールは、少なくとも部分的に、ハードウェア、ソフトウェア、ファームウェア、またはこれらの任意の組み合わせで実施されることができる。図示されたように、いくつかの実施形態では、エンコーダおよびデコーダ１００／２００は、プロセッサ２２０３により実施されることができる。他の実施形態では、符号器１００／２００、は、１つまたは複数の他の中央処理装置により実装されるハードウェアまたはソフトウェアによって実施されることができる。一般に、符号器１００／２００および／または本明細書で説明した動作は、システムレベルで可能にされることができる。しかし、ＡＱＲフィルタ、復号ループの他のフィルタ、および／または用いられる圧縮方式または圧縮比のタイプを制御することを可能にするためのいくつかの部分は、たとえば、ユーザレベルで提供され、または調整され得る。
【０１５１】
例示的な処理３００、４００、５００、１８００、１９００、２０００、または２１００は、例示した順序で示された動作のすべての作業を含むことができるが、本開示はこれに限定されず、様々な実施例では、本明細書の処理のいずれかの実施形態は、図示した、および／または図示とは異なる順序における動作のサブセットのみの作業を含むことができる。
【０１５２】
実施形態では、本明細書に記載した特徴は、１つまたは複数のコンピュータプログラム製品によって提供される命令に応答して実行されてもよい。このようなプログラム製品は、たとえば、プロセッサによって実行された場合に、本明細書に記載した機能を提供することができる命令を提供する信号担持媒体を含むことができる。コンピュータプログラム製品は、１つまたは複数の機械可読媒体の任意の形態で提供されることができる。したがって、たとえば、１つまたは複数のプロセッサコアを含むプロセッサは、１つまたは複数の機械可読媒体によりプロセッサに搬送されたプログラムコードおよび／または命令もしくは命令セットに応答して、本明細書に記載された１つまたは複数の特徴を実行することができる。一般に、機械可読媒体は、本明細書に記載した装置および／またはシステムのいずれかに対して、本明細書に記載した特徴の少なくとも一部を実施させることができるプログラムコードおよび／または命令もしくは命令セットの形式でソフトウェアを運搬することができる。前述したように、別の形態では、非一時的なコンピュータ可読媒体などの非一時的な物品は、一時的な信号自体を含まない点を除き、上記の例または他の例のいずれかと共に使用されることができる。それは、ＲＡＭなどのような「一時的な」方式で一時的にデータを保持することができる、信号自体以外の要素を含んでいる。
【０１５３】
本明細書に記載した任意の実施形態で用いられるように、「モジュール」という用語は、本明細書に記載した機能を提供するように構成されたソフトウェア論理、ファームウェア論理、および／またはハードウェア論理の任意の組み合わせを指す。ソフトウェアは、ソフトウェアパッケージ、コードおよび／または命令セットもしくは命令として具体化することができ、「ハードウェア」は、本明細書に記載した任意の実施形態で使用されるように、たとえば、単独であるいは任意の組み合わせで、配線接続回路、プログラム可能な回路、ステートマシン回路、および／またはプログラム可能な回路により実行される命令を記憶するファームウェアを含むことができる。モジュールは、一括してまたは個別に、より大きなシステム、たとえば、集積回路（ＩＣ）、システムオンチップ（ＳｏＣ）などの一部を形成する回路として実現されることができる。たとえば、モジュールは、本明細書に記載した符号化システムのソフトウェア、ファームウェア、またはハードウェアを介して実施するための論理回路において実現されることができる。
【０１５４】
本明細書に記載した任意の実施形態で用いられるように、「論理部」という用語は、本明細書に記載した機能を提供するように構成されたファームウェア論理、および／またはハードウェア論理の任意の組み合わせを指す。「ハードウェア」は、本明細書に記載した任意の実施形態で使用されるように、たとえば、単独であるいは任意の組み合わせで、配線接続回路、プログラム可能な回路、ステートマシン回路、および／またはプログラム可能な回路により実行される命令を記憶するファームウェアを含むことができる。論理部は、一括してまたは個別に、より大きなシステム、たとえば、集積回路（ＩＣ）、システムオンチップ（ＳｏＣ）などの一部を形成する回路として実現されることができる。たとえば、論理部は、本明細書で説明した符号化システムの実施形態のファームウェアまたはハードウェアのための論理回路において実現されることができる。当業者であれば、ハードウェアおよび／またはファームウェアによって実行される動作は、ソフトウェアにより代替的に実施されることができ、ソフトウェアはソフトウェアパッケージ、コードおよび／または命令セットもしくは命令として実現されることができることを認識し、またその論理部がその機能を実現するためにソフトウェアの一部を利用することができることを認識するであろう。
【０１５５】
図２２を参照すると、ビデオシーケンスの再構築されたフレームの適応型品質回復（ＡＱＲ）フィルタ処理を提供するための例示的なビデオ符号化システム２２００は、本開示の少なくともいくつかの実施形態により構成されることができる。図示した実施形態では、システム２２００は、１つまたは複数の中央処理装置またはプロセッサ２２０３、表示装置２２０５、ならびに１つまたは複数のメモリストア２２０４を含むことができる。中央処理装置２２０３、メモリストア２２０４、および／または表示装置２２０５は、たとえば、バス、配線、または他のアクセスを介して互いに通信可能とすることができる。種々の実施形態では、表示装置２２０５は、システム２２００に統合されるか、またはシステム２２００とは別個に実施されることができる。
【０１５６】
図２２に示すように、かつ上述したように、処理部２２２０は、エンコーダ１００および／またはデコーダ２００を有する論理回路２２５０を有することができる。いずれかまたは両方の符号器は、本明細書に記載し、かつ本明細書に記載した処理により説明された機能の多くを提供するために、ＡＱＲフィルタ２２５２または２２５４を有することができ、任意選択的にＡＱＲフィルタコードブック２２５６を有することもできる。
【０１５７】
理解されるように、図２２に示すモジュールは、ソフトウェアおよび／もしくはハードウェアモジュール、ならびに／または、ソフトウェアもしくはハードウェアもしくはこれらの組み合わせによって実現されることができるモジュールを含むことができる。たとえば、モジュールは処理部２２２０を介してソフトウェアとして実現されることができ、あるいはモジュールは専用のハードウェア部分により実現されることもできる。さらに、図示したメモリストア２２０４は、たとえば、処理部２２２０用のメモリと共有されてもよい。ＡＱＲフィルタデータは、上述した選択肢のいずれかに記憶されることができ、あるいはこれらの選択肢の組み合わせに記憶されることもでき、あるいは他の場所に記憶されることもできる。また、システム２２００は、様々な方法で実現されることができる。たとえば、システム２２００（表示装置２２０５を除く）は、グラフィックスプロセッサ、クァッドコア中央処理装置、および／またはメモリコントローラ入力／出力（Ｉ／Ｏ）モジュールを有する単一のチップまたはデバイスとして実現されることができる。他の例では、システム２２００（この場合も表示装置２２０５を除く）は、チップセットとして実現されることができる。
【０１５８】
プロセッサ２２０３は、たとえば、マイクロプロセッサ、マルチコアプロセッサ、特定用途向け集積回路、チップ、チップセット、プログラマブル論理デバイス、グラフィックスカード、集積グラフィックス、または汎用グラフィックス処理装置などを含む任意の適切な実施を含むことができる。さらに、メモリストア２２０４は、揮発性メモリ（たとえば、スタティックランダムアクセスメモリ（ＳＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）など）または不揮発性メモリ（たとえば、フラッシュメモリなど）などの任意のタイプのメモリとすることができる。非限定的な例では、メモリストア２２０４はまた、キャッシュメモリにより実現されてもよい。様々な実施例では、システム２２００は、チップセットまたはシステムオンチップとして実現されてもよい。
【０１５９】
図２３を参照すると、本開示および種々の実施形態による例示的なシステム２３００は、メディアシステムとすることができるが、システム２３００はこの文脈に限定されない。たとえば、システム２３００は、パーソナルコンピュータ（ＰＣ）、ラップトップコンピュータ、ウルトララップトップコンピュータ、タブレット、タッチパッド、ポータブルコンピュータ、ハンドヘルドコンピュータ、パームトップコンピュータ、携帯情報端末（ＰＤＡ）、携帯電話、携帯電話／ＰＤＡの組み合わせ、テレビ、スマートデバイス（たとえば、スマートフォン、スマートタブレットまたはスマートテレビ）、モバイルインターネットデバイス（ＭＩＤ）、メッセージングデバイス、およびデータ通信デバイスなどに組み込まれることができる。
【０１６０】
種々の実施形態では、システム２３００は、ディスプレイ２３２０に通信可能に結合されたプラットフォーム２３０２を含む。プラットフォーム２３０２は、コンテンツサービスデバイス２３３０またはコンテンツ配信デバイス２３４０、または他の類似のコンテンツソースなどのコンテンツデバイスからコンテンツを受け取ることができる。１つまたは複数のナビゲーション機能を含むナビゲーションコントローラ２３５０は、たとえば、プラットフォーム２３０２および／またはディスプレイ２３２０と対話するために使用されることができる。これらの構成要素の各々については、下記でより詳細に説明する。
【０１６１】
種々の実施形態では、プラットフォーム２３０２は、チップセット２３０５、プロセッサ２３１０、メモリ２３１２、記憶装置２３１４、グラフィックスサブシステム２３１５、アプリケーション２３１６、および／または無線部２３１８の任意の組み合わせを含むことができる。チップセット２３０５は、プロセッサ２３１０、メモリ２３１２、記憶装置２３１４、グラフィックスサブシステム２３１５、アプリケーション２３１６、および／または無線部２３１８の間の相互通信を提供することができる。たとえば、チップセット２３０５は、記憶装置２３１４との相互通信を提供することができるストレージアダプタ（図示せず）を含むことができる。
【０１６２】
プロセッサ２３１０は、複合命令セットコンピュータ（ＣＩＳＣ）または縮小命令セットコンピュータ（ＲＩＳＣ）プロセッサ、ｘ８６命令セット互換プロセッサ、マルチコア、あるいは他の任意のマイクロプロセッサまたは中央処理装置（ＣＰＵ）として実現されることができる。種々の実施形態では、プロセッサ２３１０は、デュアルコアプロセッサ、およびデュアルコア・モバイルプロセッサなどであってもよい。
【０１６３】
メモリ２３１２は、限定しないが、ランダムアクセスメモリ（ＲＡＭ）、ダイナミックランダムアクセスメモリ（ＤＲＡＭ）、またはスタティックＲＡＭ（ＳＲＡＭ）などの揮発性メモリデバイスとして実現されることができる。
【０１６４】
記憶装置２３１４は、限定しないが、磁気ディスクドライブ、光ディスクドライブ、テープドライブ、内部記憶装置、付加記憶装置、フラッシュメモリ、バッテリバックアップされたＳＤＲＡＭ（シンクロナスＤＲＡＭ）、および／またはネットワークアクセス可能な記憶装置などの不揮発性記憶装置として実現されることができる。種々の実施形態では、記憶装置２３１４は、たとえば、複数のハードドライブが含まれる場合に、貴重なデジタル媒体のための記憶性能拡張保護を高める技術を含むことができる。
【０１６５】
グラフィックスサブシステム２３１５は、表示用の静止画像またはビデオなどの画像処理を行うことができる。グラフィックスサブシステム２３１５は、たとえば、グラフィックス処理装置（ＧＰＵ）または視覚処理装置（ＶＰＵ）であってもよい。アナログまたはデジタルインターフェースは、グラフィックスサブシステム２３１５とディスプレイ２３２０とを通信可能に接続するために使用されることができる。たとえば、インターフェースは、高精細マルチメディアインターフェース、表示ポート、無線ＨＤＭＩ(登録商標)、および／または無線ＨＤ対応技術のいずれであってもよい。グラフィックスサブシステム２３１５は、プロセッサ２３１０またはチップセット２３０５に統合されることができる。いくつかの実施形態では、グラフィックスサブシステム２３１５は、チップセット２３０５に通信可能に接続されたスタンドアロンカードであってもよい。
【０１６６】
本明細書に記載したグラフィックスおよび／またはビデオ処理技術は、様々なハードウェアアーキテクチャにおいて実現されることができる。たとえば、グラフィックスおよび／またはビデオ機能は、チップセット内に統合されることができる。あるいは、別個のグラフィックスおよび／またはビデオプロセッサを用いてもよい。さらに別の実施形態として、グラフィックスおよび／またはビデオ機能は、マルチコアプロセッサを含む汎用プロセッサにより提供されることができる。他の実施形態では、機能は、家庭用電子デバイスで実現されてもよい。
【０１６７】
無線部２３１８は、種々の好適な無線通信技術を使用して信号を送信および受信することができる１つまたは複数の無線部を含むことができる。このような技術は、１つまたは複数の無線ネットワークを介した通信を含むことができる。例示的な無線ネットワークは、（これらに限定されないが）無線ローカルエリアネットワーク（ＷＬＡＮ）、無線パーソナルエリアネットワーク（ＷＰＡＮ）、無線メトロポリタンエリアネットワーク（ＷＭＡＮ）、セルラーネットワーク、および衛星ネットワークを含む。このようなネットワークを介した通信では、無線部２３１８は、任意のバージョンの１つまたは複数の適用可能な規格に従って動作することができる。
【０１６８】
種々の実施形態では、ディスプレイ２３２０は、任意のテレビタイプのモニタまたはディスプレイを含むことができる。ディスプレイ２３２０は、たとえば、コンピュータディスプレイ画面、タッチスクリーンディスプレイ、ビデオモニタ、テレビジョン類似装置、および／またはテレビを含むことができる。ディスプレイ２３２０は、デジタルおよび／またはアナログであってもよい。種々の実施形態では、ディスプレイ２３２０は、ホログラフィックディスプレイであってもよい。また、ディスプレイ２３２０は、視覚的な投影を受け取ることができる透明な表面であってもよい。このように投影は、情報、画像、および／またはオブジェクトの種々の形態を伝えることができる。たとえば、このような投影は、モバイル拡張現実（ＭＡＲ）アプリケーションの視覚的オーバーレイであってもよい。１つまたは複数のソフトウェアアプリケーション２３１６の制御下で、プラットフォーム２３０２は、ディスプレイ２３２０上にユーザインターフェース２３２２を表示することができる。
【０１６９】
様々な実施形態では、コンテンツサービスデバイス２３３０は、任意の国内の、国際的な、および／または独立したサービスによってホストされ、たとえばインターネットを介してプラットフォーム２３０２にアクセス可能であってもよい。コンテンツサービスデバイス２３３０は、プラットフォーム２３０２および／またはディスプレイ２３２０に接続されることができる。プラットフォーム２３０２および／またはコンテンツサービスデバイス２３３０は、ネットワーク２３６０との間でメディア情報を通信（たとえば、送信および／または受信）するために、ネットワーク２３６０に接続されることができる。コンテンツ配信デバイス２３４０もまた、プラットフォーム２３０２および／またはディスプレイ２３２０に接続されることができる。
【０１７０】
様々な実施形態では、コンテンツサービスデバイス２３３０は、ケーブルテレビボックス、パーソナルコンピュータ、ネットワーク、電話、デジタル情報および／またはコンテンツの配信が可能なインターネット使用可能デバイスまたは機器、ならびにコンテンツプロバイダとプラットフォーム２３０２および／またはディスプレイ２３２０との間で、ネットワーク２３６０を介してまたは直接に、コンテンツを一方向または双方向に通信可能な他の任意の同様のデバイスを含んでもよい。コンテンツは、ネットワーク２３６０を介してシステム２３００の構成要素のいずれか１つとコンテンツプロバイダとの間で一方向および／または双方向に通信できることを理解されたい。コンテンツの例としては、たとえばビデオ、音楽、医療およびゲーム情報などを含む任意のメディア情報を挙げることができる。
【０１７１】
コンテンツサービスデバイス２３３０は、メディア情報、デジタル情報、および／または他のコンテンツを含むケーブルテレビ番組などのコンテンツを受信することができる。コンテンツプロバイダの例としては、任意のケーブルまたは衛星テレビまたはラジオまたはインターネットコンテンツプロバイダを挙げることができる。提供した実施例は、いかなる形であれ、本開示による実施を限定するものではない。
【０１７２】
種々の実施形態では、プラットフォーム２３０２は、１つまたは複数のナビゲーション機能を有するナビゲーションコントローラ２３５０からの制御信号を受け取ることができる。コントローラ２３５０のナビゲーション機能は、たとえばユーザインターフェース２３２２と対話するために用いられることができる。実施形態では、ナビゲーションコントローラ２３５０は、ユーザがコンピュータに空間的（たとえば、連続的な多次元）データを入力することを可能にするコンピュータハードウェア構成要素（具体的には、ヒューマン・インターフェース・デバイス）とすることができるポインティングデバイスであってもよい。グラフィカルユーザインターフェース（ＧＵＩ）などの多くのシステム、ならびにテレビおよびモニタは、ユーザが物理的なジェスチャを用いてコンピュータまたはテレビへのデータを制御し、提供することを可能にする。
【０１７３】
コントローラ２３５０のナビゲーション機能の動きは、ディスプレイ上に表示されるポインタ、カーソル、フォーカスリング、または他の視覚表示の動きによりディスプレイ（たとえば、ディスプレイ２３２０）上に複製されることができる。たとえば、ソフトウェアアプリケーション２３１６の制御の下に、ナビゲーションコントローラ２３５０に配置されたナビゲーション機能は、たとえば、ユーザインターフェース２３２２上に表示された仮想的なナビゲーション機能にマッピングされてもよい。実施形態では、コントローラ２３５０は、別個の構成要素でなくてもよく、プラットフォーム２３０２および／またはディスプレイ２３２０に統合されてもよい。しかし、本発明は、本明細書に図示および記載した要素または文脈に限定されない。
【０１７４】
種々の実施形態では、ドライバ（図示せず）は、たとえば、使用可能であれば、ユーザが初期起動後にボタンにタッチしてテレビのようにプラットフォーム２３０２を直ちにオン・オフすることを可能にする技術を含むことができる。プログラム論理は、プラットフォームが「オフ」である場合であっても、プラットフォーム２３０２が、メディアアダプタまたは他のコンテンツサービスデバイス２３３０またはコンテンツ配信デバイス２３４０にコンテンツをストリーミングすることを可能にすることができる。さらに、チップセット２３０５は、たとえば、７．１サラウンドサウンドオーディオおよび／または高精細（７．１）サラウンドサウンドオーディオのためのハードウェアおよび／またはソフトウェアサポートを含むことができる。ドライバは、統合されたグラフィックスプラットフォームのためのグラフィックスドライバを含むことができる。実施形態では、グラフィックスドライバは、周辺装置相互接続（ＰＣＩ）エクスプレス・グラフィックス・カードを含むことができる。
【０１７５】
種々の実施態様では、システム２３００に示された構成要素のいずれか１つまたは複数は統合されることができる。たとえば、プラットフォーム２３０２およびコンテンツサービスデバイス２３３０は統合されることができ、あるいはプラットフォーム２３０２およびコンテンツ配信デバイス２３４０は統合されることができ、あるいはプラットフォーム２３０２、コンテンツサービスデバイス２３３０、およびコンテンツ配信デバイス２３４０は統合されることができる。種々の実施形態では、プラットフォーム２３０２およびディスプレイ２３２０を一体化したユニットとすることができる。たとえば、ディスプレイ２３２０およびコンテンツサービスデバイス２３３０は統合されてもよく、あるいはディスプレイ２３２０およびコンテンツ配信デバイス２３４０は統合されてもよい。これらの実施例は、本開示を限定するものではない。
【０１７６】
種々の実施形態では、システム２３００は、無線システム、有線システム、またはその両方の組み合わせとして実施されてもよい。無線システムとして実施される場合には、システム２３００は、１つもしくは複数のアンテナ、送信機、受信機、送受信機、増幅器、フィルタ、および制御論理などの、無線共有媒体を介して通信するのに適した構成要素およびインターフェースを含むことができる。無線共有媒体の一例としては、ＲＦスペクトルなどの無線スペクトルの一部を挙げることができる。有線システムとして実施される場合には、システム２３００は、入力／出力（Ｉ／Ｏ）アダプタ、Ｉ／Ｏアダプタを対応する有線通信媒体と接続する物理的なコネクタ、ネットワーク・インターフェース・カード（ＮＩＣ）、ディスクコントローラ、ビデオコントローラ、オーディオコントローラなどの、有線通信媒体を介して通信するのに適した構成要素およびインターフェースを含むことができる。有線通信媒体の例としては、配線、ケーブル、金属リード、プリント回路基板（ＰＣＢ）、バックプレーン、スイッチファブリック、半導体材料、ツイストペア配線、同軸ケーブル、および光ファイバなどを挙げることができる。
【０１７７】
プラットフォーム２３０２は、情報を通信するために１つまたは複数の論理的もしくは物理的なチャネルを確立することができる。情報は、メディア情報および制御情報を含むことができる。メディア情報とは、ユーザ向けのコンテンツを表す任意のデータを指すことができる。コンテンツの例としては、たとえば、音声通話、ビデオ会議、ストリーミングビデオ、電子メール（「Ｅメール」）メッセージ、ボイスメールメッセージは、英数字記号、グラフィックス、画像、ビデオ、およびテキストなどからのデータを挙げることができる。音声通話からのデータは、たとえば、音声情報、沈黙時間、背景雑音、コンフォートノイズ、および音などであってもよい。制御情報は、自動化されたシステムのためのコマンド、命令、または制御ワードを表す任意のデータを指すことができる。たとえば、制御情報は、システムを介してメディア情報をルーティングするために、あるいは所定の方法でメディア情報を処理するノードに指示するために使用されることができる。しかし、実施形態は、図２３に図示および記載した要素または文脈に限定されない。
【０１７８】
上述したように、システム２２００または２３００は、様々な物理的なスタイルまたはフォームファクタにおいて実現されることができる。図２４は、システム２２００または２３００を実現することができる小さなフォームファクタのデバイス２４００の実施形態を示す。実施形態では、たとえば、デバイス２４００は、無線機能を有するモバイル・コンピューティング・デバイスとして実現されることができる。モバイル・コンピューティング・デバイスは、処理システムおよび１つもしくは複数の電池などのモバイル電力源もしくは電源を有する任意のデバイスを指すことができる。
【０１７９】
上述したように、モバイル・コンピューティング・デバイスの例としては、パーソナルコンピュータ（ＰＣ）、ラップトップコンピュータ、ウルトララップトップコンピュータ、タブレット、タッチパッド、ポータブルコンピュータ、ハンドヘルドコンピュータ、パームトップコンピュータ、携帯情報端末（ＰＤＡ）、携帯電話、携帯電話／ＰＤＡの組み合わせ、テレビ、スマートデバイス（たとえば、スマートフォン、スマートタブレットまたはスマートテレビ）、モバイルインターネットデバイス（ＭＩＤ）、メッセージングデバイス、およびデータ通信デバイスなどを挙げることができる。
【０１８０】
モバイル・コンピューティング・デバイスの例としてはまた、手首コンピュータ、指コンピュータ、リングコンピュータ、眼鏡コンピュータ、ベルトクリップコンピュータ、アームバンドコンピュータ、靴コンピュータ、衣服コンピュータ、および他のウェアラブルコンピュータなどの、人が装着するように構成されたコンピュータを挙げることができる。様々な実施形態では、たとえば、モバイル・コンピューティング・デバイスは、音声通信および／またはデータ通信だけでなく、コンピュータアプリケーションも実行することができるスマートフォンとして実現されてもよい。いくつかの実施形態は、例としてスマートフォンとして実現されるモバイル・コンピューティング・デバイスによって説明されることができるが、他の実施形態は他の無線モバイル・コンピューティング・デバイスを用いて実現されてもよいことを理解されたい。実施形態は、この文脈に限定されない。
【０１８１】
図２４に示すように、デバイス２４００は、筐体２４０２、ディスプレイ２４０４、入力／出力（Ｉ／Ｏ）デバイス２４０６、およびアンテナ２４０８を含むことができる。デバイス２４００はまた、ナビゲーション機能２４１２を含むことができる。ディスプレイ２４０４は、モバイル・コンピューティング・デバイスに適切な情報を表示するための任意の適切なディスプレイユニットを含んでもよい。Ｉ／Ｏデバイス２４０６は、モバイル・コンピューティング・デバイスに情報を入力するための任意の適切なＩ／Ｏデバイスを含むことができる。Ｉ／Ｏデバイス２４０６の例としては、英数字キーボード、数字キーパッド、タッチパッド、入力キー、ボタン、スイッチ、ロッカースイッチ、マイクロフォン、スピーカ、音声認識デバイス、およびソフトウェアなどを挙げることができる。情報はまた、マイクロフォン（図示せず）によってデバイス２４００に入力されることができる。このような情報は、音声認識デバイス（図示せず）によってデジタル化することができる。実施形態は、この文脈に限定されない。
【０１８２】
種々の実施形態は、ハードウェア要素、ソフトウェア要素、または両者の組み合わせを用いて実施されることができる。ハードウェア要素の例としては、プロセッサ、マイクロプロセッサ、回路、回路素子（たとえばトランジスタ、抵抗器、キャパシタ、インダクタなど）、集積回路、特定用途向け集積回路（ＡＳＩＣ）、プログラマブル・ロジック・デバイス（ＰＬＤ）、デジタル信号プロセッサ（ＤＳＰ）、フィールド・プログラマブル・ゲートアレイ（ＦＰＧＡ）、論理ゲート、レジスタ、半導体デバイス、チップ、マイクロチップ、およびチップセットなどを挙げることができる。ソフトウェアの例としては、ソフトウェアコンポーネント、プログラム、アプリケーション、コンピュータプログラム、アプリケーションプログラム、システムプログラム、機械プログラム、オペレーティング・システム・ソフトウェア、ミドルウェア、ファームウェア、ソフトウェアモジュール、ルーチン、サブルーチン、関数、方法、手順、ソフトウェアインターフェース、アプリケーション・プログラム・インターフェース（ＡＰＩ）、命令セット、コンピューティングコード、コンピュータコード、コードセグメント、コンピュータ・コード・セグメント、ワード、値、シンボル、またはこれらの任意の組み合わせを挙げることができる。実施形態がハードウェア要素および／またはソフトウェア要素を用いて実現されるかどうかを判断することは、所望の計算レート、電力レベル、耐熱性、処理サイクルバジェット、入力データレート、出力データレート、メモリリソース、データバス速度、および他の設計または性能の制約などの、任意の数の要因によって変化してもよい。
【０１８３】
上述した１つまたは複数の態様は、プロセッサ内の様々な論理を表す機械可読媒体上に格納された代表的な命令によって実施されることができ、この命令は機械によって読み出されると、機械に対して本明細書に記載した技術を実行するためのロジックを作製させる。このような表現は、「ＩＰコア」として知られ、有形の機械可読媒体に格納され、論理またはプロセッサを実際に作製する製造装置にロードするために様々なカスタマまたはメーカーに供給されてもよい。
【０１８４】
本明細書に記載した特定の特徴について、様々な実施形態を参照して説明してきたが、この説明は限定的な意味で解釈されることを意図するものではない。したがって、本明細書に記載した実施形態、ならびに他の実施態様の、本開示が関係する当業者にとって明らかな様々な変更は、本開示の趣旨および範囲内にあると見なされる。
【０１８５】
下記の実施例は、付加的な実施形態に関するものである。
【０１８６】
適応型品質回復フィルタ処理のコンピュータにより実施される方法は、再構築されたフレームのビデオデータを取得するステップと、ビデオデータの再構築されたフレームについて、複数の代替的なブロック領域適応組み合わせを生成するステップと、を含む。この生成するステップは、再構築されたフレームを複数の領域に分割するステップと、領域フィルタを各領域に関係付けるステップであって、領域フィルタは、対応する領域内の画素値に関係する一組のフィルタ係数を有する、ステップと、再構築されたフレームを形成するブロックをブロック内の画素値の異なる勾配に関係する分類に分類するステップと、個々の分類のためのブロックフィルタと分類に割り当てられたブロックの画素値に関係するフィルタ係数の組とを関係付けるステップと、を含む。本方法はまた、再構築されたフレーム上の領域フィルタおよびブロックフィルタの両方を用いて、再構築されたフレームの画素値を変更するステップを含む。
【０１８７】
他の手法によれば、本方法は、領域フィルタ計算から除外され、かつ組み合わせの一部であるように選択された１つまたは複数のブロック分類に属する再構築されたフレーム上のブロックに形成された開口部を除いて、再構築されたフレーム上の領域フィルタを用いるステップを含み、ブロックフィルタは、開口部においてブロックデータと共に使用され、本方法は、反復を形成することにより、組み合わせにおけるブロックの領域配置を変更するステップを含み、組み合わせの各反復は、異なる数の（１）フィルタを共有するブロック分類、または（２）フィルタを共有する領域、または（１）および（２）の任意の組み合わせを有する。本方法はまた、複数の組み合わせのうちのどの反復が、再構成フレームの画素値を変更するために用いる最も低いレート歪を生じさせるかを判断するステップを含み、組み合わせの初期配置は、組み合わせの反復を形成することができる領域およびブロック分類の数に関して最大限度を確立する。
【０１８８】
本方法はまた、ブロックベースのフィルタ処理なしに実行される領域ベースのフィルタ処理と、領域ベースのフィルタ処理なしに実行されるブロックベースのフィルタ処理と、のうちの少なくとも一方、または両方の代替的な組み合わせを含む。この方法では、レート歪みは、誤差値、一定ラムダ値、およびフィルタ係数ビットのカウントに関係するラグランジアン値を含み、組み合わせのうちの少なくとも１つは、利用可能なブロック分類のすべてよりも少なくなるように制限され、領域またはブロックの反復は、フレーム全体の異なる数のフィルタに関係し、最大数のフィルタと１つのフィルタとの間で１ずつ増加し、代替的な組み合わせは、ブロックベースのフィルタ処理のために異なるブロックサイズを用いる代替物を含み、少なくとも１つの代替的な組み合わせは、４×４ブロック解析に基づき、少なくとも１つの他の代替的な組み合わせは、８×８ブロック解析に基づき、フレームは、任意選択で最高１６個のフィルタに関係する１６個の領域に最初に分割され、１６個までのブロック分類がブロックを分類するために利用可能であり、各代替的な組み合わせは、所定の総数に等しい、いくつかの異なる領域フィルタといくつかの含まれる異なるブロック分類フィルタとを有し、総数は１６であり、１６個の利用可能な領域フィルタおよび１６個の利用可能な０から１５まで番号付けされたブロック分類は、分類の番号が高いほどブロック内の画素値の勾配が高くなり、複数の組み合わせは、（１）１２個の領域フィルタおよびブロック分類１２〜１５と、（２）８個の領域フィルタおよびブロック分類８〜１５と、（３）４個の領域フィルタおよびブロック分類４〜１５と、のうちの少なくとも１つの組み合わせを少なくとも最初に含み、再構築されたフレームは、４×４に配列された１６個の領域で定義され、領域フィルタは、各番号が同じフィルタを参照するように番号付けされ、再構築されたフレームの列の左から右に、および上から下に参照し、複数の組み合わせは、
１６個の領域における合計１２個の領域フィルタについて、０，１，４，５，１１，２，３，５，１０，９，８，６，１０，７，７，６と、
１６個の領域における合計８個の領域フィルタについて、０，０，２，２，７，１，１，３，７，５，５，３，６，６，４，４と、
１６個の領域における合計４個の領域フィルタについて、０，０，０，１，３，０，１，１，３，３，２，１，３，２，２，２と、のうちの少なくとも１つを少なくとも最初に含む。
【０１８９】
本方法はまた、対称係数、非対称係数、および係数を有していないホールを含み、かつホールの位置の上、下、右、および左の隣接する係数である係数のパターンを有するフィルタを用いるステップであって、フィルタは、１０個の固有の係数を含む１９個の係数位置を有し、フィルタは、９×９のクロス、３×３の長方形、ならびにフィルタの斜めのエッジを形成し、斜めのエッジとクロスおよび長方形との間にホールを配置する３つの係数位置を有する菱形形状である、ステップと、フィルタ係数値を符号化または復号する代わりに、予め記憶されたフィルタ係数値を有する予め記憶されたフィルタに対応するコードブック値を符号化または復号するステップと、値がフィルタ係数により頻繁に用いられるほどより短くなるコードを有する複数の可変長符号化（ＶＬＣ）テーブルのうちの少なくとも１つを適応可能に選択することを含む、フィルタ係数を符号化するステップであって、同じ係数値のコードは、同じフィルタのどのフィルタ係数位置が符号化されているかに応じて変化し、フィルタ係数値がフィルタ係数位置に対する値のカバー範囲内にある場合には、単一コードを符号化し、かつ、フィルタ係数値がフィルタ係数位置に対する値のカバー範囲の外側にある場合には、エスケープコードおよび切り詰めたゴロムコードを符号化することを含むカバー符号化を用いることを含む、ステップと、他のテーブルからの結果と比較して最小のビット数が得られるＶＬＣテーブルを選択するステップと、を含む。
【０１９０】
システムは、ディスプレイと、メモリと、メモリおよびディスプレイに通信可能に結合された少なくとも１つのプロセッサと、を含み、少なくとも１つのプロセッサは、再構築されたフレームのビデオデータを取得するステップと、ビデオデータの再構築されたフレームについて、複数の代替的なブロック領域適応組み合わせを生成するステップであって、再構築されたフレームを複数の領域に分割するステップと、領域フィルタを各領域に関係付けるステップであって、領域フィルタは、対応する領域内の画素値に関係する一組のフィルタ係数を有する、ステップと、再構築されたフレームを形成するブロックをブロック内の画素値の異なる勾配に関係する分類に分類するステップと、個々の分類のためのブロックフィルタと分類に割り当てられたブロックの画素値に関係するフィルタ係数の組とを関係付けるステップと、を含む生成するステップと、再構築されたフレーム上の領域フィルタおよびブロックフィルタの両方を用いて、再構築されたフレームの画素値を変更するステップとを実行するように構成される。
【０１９１】
このシステムの他の手法によれば、プロセッサは、同様に、領域フィルタ計算から除外され、かつ組み合わせの一部であるように選択された１つまたは複数のブロック分類に属する再構築されたフレーム上のブロックに形成された開口部を除いて、再構築されたフレーム上の領域フィルタを用いるステップであって、ブロックフィルタは、開口部においてブロックデータと共に使用される、ステップを実行するとともに、反復を形成することにより、組み合わせにおけるブロックの領域配置を変更するステップであって、組み合わせの各反復は、異なる数の（１）フィルタを共有するブロック分類、または（２）フィルタを共有する領域、または（１）および（２）の任意の組み合わせを有する、ステップを実行するように構成される。システムは、複数の組み合わせのうちのどの反復が、再構築されたフレームの画素値を変更するために用いる最も低いレート歪を生じさせるかを判断するステップであって、組み合わせの初期配置は、組み合わせの反復を形成することができる領域およびブロック分類の数に関して最大限度を確立する、ステップを実行する。
【０１９２】
システムはまた、ブロックベースのフィルタ処理なしに実行される領域ベースのフィルタ処理と、領域ベースのフィルタ処理なしに実行されるブロックベースのフィルタ処理と、のうちの少なくとも一方、または両方の代替的な組み合わせを含む。このシステムでは、レート歪みは、誤差値、一定ラムダ値、およびフィルタ係数ビットのカウントに関係するラグランジアン値を含み、組み合わせのうちの少なくとも１つは、利用可能なブロック分類のすべてよりも少なくなるように制限され、領域またはブロックの反復は、フレーム全体の異なる数のフィルタに関係し、最大数のフィルタと１つのフィルタとの間で１ずつ増加し、代替的な組み合わせは、ブロックベースのフィルタ処理のために異なるブロックサイズを用いる代替物を含み、少なくとも１つの代替的な組み合わせは、４×４ブロック解析に基づき、少なくとも１つの他の代替的な組み合わせは、８×８ブロック解析に基づき、フレームは、任意選択で最高１６個のフィルタに関係する１６個の領域に最初に分割され、１６個までのブロック分類がブロックを分類するために利用可能であり、各代替的な組み合わせは、所定の総数に等しい、いくつかの異なる領域フィルタといくつかの含まれる異なるブロック分類フィルタとを有し、総数は１６であり、１６個の利用可能な領域フィルタおよび１６個の利用可能な０から１５まで番号付けされたブロック分類は、分類の番号が高いほどブロック内の画素値の勾配が高くなり、複数の組み合わせは、（１）１２個の領域フィルタおよびブロック分類１２〜１５と、（２）８個の領域フィルタおよびブロック分類８〜１５と、（３）４個の領域フィルタおよびブロック分類４〜１５と、のうちの少なくとも１つの組み合わせを少なくとも最初に含み、再構築されたフレームは、４×４に配列された１６個の領域で定義され、領域フィルタは、各番号が同じフィルタを参照するように番号付けされ、再構築されたフレームの列の左から右に、および上から下に参照し、複数の組み合わせは、
１６個の領域における合計１２個の領域フィルタについて、０，１，４，５，１１，２，３，５，１０，９，８，６，１０，７，７，６と、
１６個の領域における合計８個の領域フィルタについて、０，０，２，２，７，１，１，３，７，５，５，３，６，６，４，４と、
１６個の領域における合計４個の領域フィルタについて、０，０，０，１，３，０，１，１，３，３，２，１，３，２，２，２と、のうちの少なくとも１つを少なくとも最初に含む。
【０１９３】
システムはまた、対称係数、非対称係数、および係数を有していないホールを含み、かつホールの位置の上、下、右、および左の隣接する係数である係数のパターンを有するフィルタを用いるステップであって、フィルタは、１０個の固有の係数を含む１９個の係数位置を有し、フィルタは、９×９のクロス、３×３の長方形、ならびにフィルタの斜めのエッジを形成し、斜めのエッジとクロスおよび長方形との間にホールを配置する３つの係数位置を有する菱形形状である、ステップと、フィルタ係数値を符号化または復号する代わりに、予め記憶されたフィルタ係数値を有する予め記憶されたフィルタに対応するコードブック値を符号化または復号するステップと、値がフィルタ係数により頻繁に用いられるほどより短くなるコードを有する複数の可変長符号化（ＶＬＣ）テーブルのうちの少なくとも１つを適応可能に選択することを含む、フィルタ係数を符号化するステップであって、同じ係数値のコードは、同じフィルタのどのフィルタ係数位置が符号化されているかに応じて変化し、フィルタ係数値がフィルタ係数位置に対する値のカバー範囲内にある場合には、単一コードを符号化し、かつ、フィルタ係数値がフィルタ係数位置に対する値のカバー範囲の外側にある場合には、エスケープコードおよび切り詰めたゴロムコードを符号化することを含むカバー符号化を用いることを含む、ステップと、他のテーブルからの結果と比較して最小のビット数が得られるＶＬＣテーブルを選択するステップと、を実行するように構成されるプロセッサを有する。
【０１９４】
命令を含むコンピュータ可読メモリであって、命令は、コンピューティングデバイスによって実行された場合に、コンピューティングデバイスに対して、再構築されたフレームのビデオデータを取得させ、再構築されたフレームを複数の領域に分割するステップと、領域フィルタを各領域に関係付けるステップであって、領域フィルタは、対応する領域内の画素値に関係する一組のフィルタ係数を有する、ステップと、再構築されたフレームを形成するブロックをブロック内の画素値の異なる勾配に関係する分類に分類するステップと、個々の分類のためのブロックフィルタと分類に割り当てられたブロックの画素値に関係するフィルタ係数の組とを関係付けるステップとを含んで、ビデオデータの再構築されたフレームについて、複数の代替的なブロック領域適応組み合わせを生成させ、かつ、再構築されたフレーム上の領域フィルタおよびブロックフィルタの両方を用いて、再構築されたフレームの画素値を変更させる。
【０１９５】
製品はまた、コンピューティングデバイスに対して、領域フィルタ計算から除外され、かつ組み合わせの一部であるように選択された１つまたは複数のブロック分類に属する再構築されたフレーム上のブロックに形成された開口部を除いて、再構築されたフレーム上の領域フィルタを使用させ、ブロックフィルタは、開口部においてブロックデータと共に使用され、反復を形成することにより、組み合わせにおけるブロックの領域配置を変更させ、組み合わせの各反復は、異なる数の（１）フィルタを共有するブロック分類、または（２）フィルタを共有する領域、または（１）および（２）の任意の組み合わせを有する、命令を有する。
【０１９６】
命令は、コンピューティングデバイスに対して、複数の組み合わせのうちのどの反復が、再構成フレームの画素値を変更するために用いる最も低いレート歪を生じさせるかを判断させ、組み合わせの初期配置は、組み合わせの反復を形成することができる領域およびブロック分類の数に関して最大限度を確立し、組み合わせは、ブロックベースのフィルタ処理なしに実行される領域ベースのフィルタ処理と、領域ベースのフィルタ処理なしに実行されるブロックベースのフィルタ処理と、のうちの少なくとも一方、または両方の代替物を含み、レート歪みは、誤差値、一定ラムダ値、およびフィルタ係数ビットのカウントに関係するラグランジアン値を含み、組み合わせのうちの少なくとも１つは、利用可能なブロック分類のすべてよりも少なくなるように制限され、領域またはブロックの反復は、フレーム全体の異なる数のフィルタに関係し、最大数のフィルタと１つのフィルタとの間で１ずつ増加し、代替的な組み合わせは、ブロックベースのフィルタ処理のために異なるブロックサイズを用いる代替物を含み、少なくとも１つの代替的な組み合わせは、４×４ブロック解析に基づき、少なくとも１つの他の代替的な組み合わせは、８×８ブロック解析に基づき、フレームは、任意選択で最高１６個のフィルタに関係する１６個の領域に最初に分割され、１６個までのブロック分類がブロックを分類するために利用可能であり、各代替的な組み合わせは、所定の総数に等しい、いくつかの異なる領域フィルタといくつかの含まれる異なるブロック分類フィルタとを有し、総数は１６であり、１６個の利用可能な領域フィルタおよび１６個の利用可能な０から１５まで番号付けされたブロック分類は、分類の番号が高いほどブロック内の画素値の勾配が高くなり、複数の組み合わせは、（１）１２個の領域フィルタおよびブロック分類１２〜１５と、（２）８個の領域フィルタおよびブロック分類８〜１５と、（３）４個の領域フィルタおよびブロック分類４〜１５と、のうちの少なくとも１つの組み合わせを少なくとも最初に含む。
【０１９７】
命令について、再構築されたフレームは、４×４に配列された１６個の領域で定義され、領域フィルタは、各番号が同じフィルタを参照するように番号付けされ、再構築されたフレームの列の左から右に、および上から下に参照し、複数の組み合わせは、
１６個の領域における合計１２個の領域フィルタについて、０，１，４，５，１１，２，３，５，１０，９，８，６，１０，７，７，６と、
１６個の領域における合計８個の領域フィルタについて、０，０，２，２，７，１，１，３，７，５，５，３，６，６，４，４と、
１６個の領域における合計４個の領域フィルタについて、０，０，０，１，３，０，１，１，３，３，２，１，３，２，２，２と、のうちの少なくとも１つを少なくとも最初に含む。
【０１９８】
命令は、コンピューティングデバイスに対して、対称係数、非対称係数、および係数を有していないホールを含み、かつホールの位置の上、下、右、および左の隣接する係数である係数のパターンによりフィルタを使用させ、フィルタは、１０個の固有の係数を含む１９個の係数位置を有し、フィルタは、９×９のクロス、３×３の長方形、ならびにフィルタの斜めのエッジを形成し、斜めのエッジとクロスおよび長方形との間にホールを配置する３つの係数位置を有する菱形形状であり、フィルタ係数値を符号化または復号する代わりに、予め記憶されたフィルタ係数値を有する予め記憶されたフィルタに対応するコードブック値を符号化または復号させ、値がフィルタ係数により頻繁に用いられるほどより短くなるコードを有する複数の可変長符号化（ＶＬＣ）テーブルのうちの少なくとも１つを適応可能に選択することを含んで、フィルタ係数を符号化させ、同じ係数値のコードは、同じフィルタのどのフィルタ係数位置が符号化されているかに応じて変化し、フィルタ係数値がフィルタ係数位置に対する値のカバー範囲内にある場合には、単一コードを符号化し、かつ、フィルタ係数値がフィルタ係数位置に対する値のカバー範囲の外側にある場合には、エスケープコードおよび切り詰めたゴロムコードを符号化することを含むカバー符号化を用いることを含み、他のテーブルからの結果と比較して最小のビット数が得られるＶＬＣテーブルを選択させる。
【０１９９】
符号器は、フレームを再構築し、各々がフレームの領域と関係する係数のパターンを有する複数のフィルタを含む適応型品質回復フィルタを含む復号ループを含み、フィルタのパターンのうちの少なくとも１つは、菱形形状と、対称係数と、非対称係数と、係数を有していないとともに、上、下、左、および右の係数に隣接する少なくとも１つのホールと、菱形形状のコーナーを形成する端部を有する係数のクロス形状と、クロス形状をオーバーラップする係数の長方形と、係数によって形成され、菱形形状のエッジを形成する斜めのエッジと、を含む。
【０２００】
符号器において、長方形のコーナーを形成する係数は、非対称係数であり、フィルタは、１０個の固有の係数を含む１９個の係数位置を有し、フィルタは、９×９のクロス、３×３の長方形、ならびにフィルタの斜めのエッジを形成し、斜めのエッジとクロスおよび長方形との間にホールを配置する３つの係数位置を有する菱形形状である。
【０２０１】
符号器は、適応型品質回復フィルタを含み、適応型品質回復フィルタは、領域フィルタ計算から除外され、かつ組み合わせの一部であるように選択された１つまたは複数のブロック分類に属する再構築されたフレーム上のブロックに形成された開口部を除いて、再構築されたフレーム上の領域フィルタを使用し、ブロックフィルタは、開口部においてブロックデータと共に使用され、反復を形成することにより、組み合わせにおけるブロックの領域配置を変更し、組み合わせの各反復は、異なる数の（１）フィルタを共有するブロック分類、または（２）フィルタを共有する領域、または（１）および（２）の任意の組み合わせを有する、ように構成される。
【０２０２】
フィルタはまた、複数の組み合わせのうちのどの反復が、再構築されたフレームの画素値を変更するために用いる最も低いレート歪を生じさせるかを判断し、組み合わせの初期配置は、組み合わせの反復を形成することができる領域およびブロック分類の数に関して最大限度を確立し、組み合わせは、ブロックベースのフィルタ処理なしに実行される領域ベースのフィルタ処理と、領域ベースのフィルタ処理なしに実行されるブロックベースのフィルタ処理と、のうちの少なくとも一方、または両方の代替物を含み、レート歪みは、誤差値、一定ラムダ値、およびフィルタ係数ビットのカウントに関係するラグランジアン値を含み、組み合わせのうちの少なくとも１つは、利用可能なブロック分類のすべてよりも少なくなるように制限され、領域またはブロックの反復は、フレーム全体の異なる数のフィルタに関係し、最大数のフィルタと１つのフィルタとの間で１ずつ増加し、代替的な組み合わせは、ブロックベースのフィルタ処理のために異なるブロックサイズを用いる代替物を含み、少なくとも１つの代替的な組み合わせは、４×４ブロック解析に基づき、少なくとも１つの他の代替的な組み合わせは、８×８ブロック解析に基づき、フレームは、任意選択で最高１６個のフィルタに関係する１６個の領域に最初に分割され、１６個までのブロック分類がブロックを分類するために利用可能であり、各代替的な組み合わせは、所定の総数に等しい、いくつかの異なる領域フィルタといくつかの含まれる異なるブロック分類フィルタとを有し、総数は１６であり、１６個の利用可能な領域フィルタおよび１６個の利用可能な０から１５まで番号付けされたブロック分類は、分類の番号が高いほどブロック内の画素値の勾配が高くなり、複数の組み合わせは、（１）１２個の領域フィルタおよびブロック分類１２〜１５と、（２）８個の領域フィルタおよびブロック分類８〜１５と、（３）４個の領域フィルタおよびブロック分類４〜１５と、のうちの少なくとも１つの組み合わせを少なくとも最初に含む、ように構成される。
【０２０３】
またフィルタについて、再構築されたフレームは、４×４に配列された１６個の領域で定義され、領域フィルタは、各番号が同じフィルタを参照するように番号付けされ、再構築されたフレームの列の左から右に、および上から下に参照し、複数の組み合わせは、
１６個の領域における合計１２個の領域フィルタについて、０，１，４，５，１１，２，３，５，１０，９，８，６，１０，７，７，６と、
１６個の領域における合計８個の領域フィルタについて、０，０，２，２，７，１，１，３，７，５，５，３，６，６，４，４と、
１６個の領域における合計４個の領域フィルタについて、０，０，０，１，３，０，１，１，３，３，２，１，３，２，２，２と、のうちの少なくとも１つを少なくとも最初に含む。
【０２０４】
符号器はまた、フィルタ係数値を符号化または復号する代わりに、予め記憶されたフィルタ係数値を有する予め記憶されたフィルタに対応するコードブック値を符号化または復号し、値がフィルタ係数により頻繁に用いられるほどより短くなるコードを有する複数の可変長符号化（ＶＬＣ）テーブルのうちの少なくとも１つを適応可能に選択することを含んで、フィルタ係数を符号化し、同じ係数値のコードは、同じフィルタのどのフィルタ係数位置が符号化されているかに応じて変化し、フィルタ係数値がフィルタ係数位置に対する値のカバー範囲内にある場合には、単一コードを符号化し、かつ、フィルタ係数値がフィルタ係数位置に対する値のカバー範囲の外側にある場合には、エスケープコードおよび切り詰めたゴロムコードを符号化することを含むカバー符号化を用いることを含み、他のテーブルからの結果と比較して最小のビット数が得られるＶＬＣテーブルを選択するように構成される。
【０２０５】
別の実施例では、少なくとも１つの機械可読媒体は、コンピューティングデバイス上で実行されることに応答して、コンピューティングデバイスに対して、上記の実施例のいずれか１つによる方法を実行させる複数の命令を含むことができる。
【０２０６】
さらに別の実施例では、装置は、上記の実施例のいずれか１つによる方法を実行するための手段を含むことができる。
【０２０７】
上記の実施例は、特徴の特定の組み合わせを含むことができる。しかし、上記の実施例はこれに限定されるものではなく、様々な実施形態では、上記の実施例は、明示的に列挙されたそれらの特徴と比較して、そのような特徴のサブセットのみを行うこと、そのような特徴の異なる順序を行うこと、そのような特徴の異なる組み合わせを行うこと、および／または付加的な特徴を行うことを含むことができる。たとえば、例示的な方法に関して記載したすべての特徴は、例示的な装置、例示的なシステム、および／または例示的な物品に関して実施されることができ、逆もまた同様である。
【０２０８】
【表４−１】
0006334006.tif 000016
【表４−２】
0006334006.tif 000017
【表４−３】
0006334006.tif 000018
【表４−４】
0006334006.tif 000019
【図１】
0006334006.tif 000020
【図２】
0006334006.tif 000021
【図３】
0006334006.tif 000022
【図４】
0006334006.tif 000023
【図５Ａ】
0006334006.tif 000024
【図５Ｂ】
0006334006.tif 000025
【図５Ｃ】
0006334006.tif 000026
【図５Ｄ】
0006334006.tif 000027
【図５Ｅ】
0006334006.tif 000028
【図５Ｆ】
0006334006.tif 000029
【図５Ｇ】
0006334006.tif 000030
【図５Ｈ】
0006334006.tif 000031
【図６】
0006334006.tif 000032
【図７】
0006334006.tif 000033
【図８】
0006334006.tif 000034
【図９】
0006334006.tif 000035
【図１０】
0006334006.tif 000036
【図１１】
0006334006.tif 000037
【図１２】
0006334006.tif 000038
【図１３】
0006334006.tif 000039
【図１４】
0006334006.tif 000040
【図１５】
0006334006.tif 000041
【図１６】
0006334006.tif 000042
【図１７Ａ】
0006334006.tif 000043
【図１７Ｂ−１】
0006334006.tif 000044
【図１７Ｂ−２】
0006334006.tif 000045
【図１７Ｃ−１】
0006334006.tif 000046
【図１７Ｃ−２】
0006334006.tif 000047
【図１７Ｄ−１−１】
0006334006.tif 000048
【図１７Ｄ−１−２】
0006334006.tif 000049
【図１７Ｄ−２−１】
0006334006.tif 000050
【図１７Ｄ−２−２】
0006334006.tif 000051
【図１７Ｄ−２−３】
0006334006.tif 000052
【図１７Ｅ−１−１】
0006334006.tif 000053
【図１７Ｅ−１−２】
0006334006.tif 000054
【図１７Ｅ−１−３】
0006334006.tif 000055
【図１７Ｅ−２−１】
0006334006.tif 000056
【図１７Ｅ−２−２】
0006334006.tif 000057
【図１７Ｅ−２−３】
0006334006.tif 000058
【図１７Ｆ−１−１】
0006334006.tif 000059
【図１７Ｆ−１−２】
0006334006.tif 000060
【図１７Ｆ−１−３】
0006334006.tif 000061
【図１７Ｆ−２−１】
0006334006.tif 000062
【図１７Ｆ−２−２】
0006334006.tif 000063
【図１７Ｇ−１−１】
0006334006.tif 000064
【図１７Ｇ−１−２】
0006334006.tif 000065
【図１７Ｇ−２−１】
0006334006.tif 000066
【図１７Ｇ−２−２】
0006334006.tif 000067
【図１７Ｈ−１−１】
0006334006.tif 000068
【図１７Ｈ−１−２】
0006334006.tif 000069
【図１７Ｈ−１−３】
0006334006.tif 000070
【図１７Ｈ−２−１】
0006334006.tif 000071
【図１７Ｈ−２−２】
0006334006.tif 000072
【図１７Ｈ−２−３】
0006334006.tif 000073
【図１７Ｉ−１−１】
0006334006.tif 000074
【図１７Ｉ−１−２】
0006334006.tif 000075
【図１７Ｉ−１−３】
0006334006.tif 000076
【図１７Ｉ−２−１】
0006334006.tif 000077
【図１７Ｉ−２−２】
0006334006.tif 000078
【図１７Ｉ−２−３】
0006334006.tif 000079
【図１７Ｊ−１−１】
0006334006.tif 000080
【図１７Ｊ−１−２】
0006334006.tif 000081
【図１７Ｊ−１−３】
0006334006.tif 000082
【図１７Ｊ−２−１】
0006334006.tif 000083
【図１７Ｊ−２−２】
0006334006.tif 000084
【図１７Ｊ−２−３】
0006334006.tif 000085
【図１７Ｋ−１】
0006334006.tif 000086
【図１７Ｋ−２】
0006334006.tif 000087
【図１７Ｌ】
0006334006.tif 000088
【図１８Ａ】
0006334006.tif 000089
【図１８Ｂ】
0006334006.tif 000090
【図１９Ａ】
0006334006.tif 000091
【図１９Ｂ】
0006334006.tif 000092
【図１９Ｃ】
0006334006.tif 000093
【図１９Ｄ】
0006334006.tif 000094
【図１９Ｅ】
0006334006.tif 000095
【図１９Ｆ】
0006334006.tif 000096
【図１９Ｇ】
0006334006.tif 000097
【図１９Ｈ】
0006334006.tif 000098
【図２０Ａ】
0006334006.tif 000099
【図２０Ｂ】
0006334006.tif 000100
【図２１】
0006334006.tif 000101
【図２２】
0006334006.tif 000102
【図２３】
0006334006.tif 000103
【図２４】
0006334006.tif 000104