(57)【要約】一例では、デバイスは、ビデオデータを記憶するように構成されたメモリと、回路において実装される１つまたは複数の処理ユニットとを含み、１つまたは複数の処理ユニットは、ビデオデータの現在ピクチャのブロックのクラスのための複数のフィルタを構築すること、ここにおいて、複数のフィルタを構築するために、１つまたは複数の処理ユニットは、複数のフィルタ係数のセットを生成することと、複数のフィルタのサブセットのために、サブセットの対応するフィルタのためのフィルタ係数のセットのうちの１つを識別するそれぞれのインデックスを決定することとを行うように構成される、と、現在ピクチャの現在ブロックを復号することと、現在ブロックのためのクラスを決定することと、現在ブロックのためのクラスに対応する複数のフィルタのうちのフィルタを選択することと、選択されたフィルタを使用して現在ブロックの少なくとも１つのピクセルをフィルタ処理することとを行うように構成される。【選択図】図７
2019505143.tif 000002
【特許請求の範囲】
【請求項１】
ビデオデータの復号されたブロックをフィルタ処理する方法であって、
ビデオデータの現在ピクチャのブロックのクラスのための複数のフィルタを構築すること、ここにおいて、前記複数のフィルタを構築することは、
生成されるべきフィルタ係数のセットの数を決定することと、
前記数の、フィルタ係数のセットを生成することと、
前記複数のフィルタのサブセットのために、前記サブセットの前記対応するフィルタのための前記フィルタ係数のセットのうちの１つを識別するそれぞれのインデックスを決定することと
を備える、と、
前記現在ピクチャの現在ブロックを復号することと、
前記現在ブロックのためのクラスを決定することと、
前記現在ブロックのための前記クラスに対応する前記複数のフィルタのうちのフィルタを選択することと、
前記選択されたフィルタを使用して前記現在ブロックの少なくとも１つのピクセルをフィルタ処理することと
を備える、方法。
【請求項２】
前記それぞれのインデックスは、両端値を含む［０，フィルタ係数のセットの数−１］の前記範囲内にある、
請求項１に記載の方法。
【請求項３】
少なくとも１つのピクセルの１つまたは複数の勾配を計算することと、
フィルタサポート領域または前記選択されたフィルタの係数のうちの１つに対して実施されるべき幾何学的変換を選択することと
をさらに備え、前記幾何学的変換を選択することは、前記少なくとも１つのピクセルの前記勾配の向きに対応する前記幾何学的変換を選択すること備える、
請求項１に記載の方法。
【請求項４】
前記幾何学的変換は、回転、対角反転、または垂直反転のうちの１つを備える、
請求項３に記載の方法。
【請求項５】
前記フィルタサポート領域は、前記選択されたフィルタの係数がそれに適用されるべきである、前記現在ブロックの前記少なくとも１つのピクセルに対する複数の隣接ピクセルを備え、前記少なくとも１つのピクセルをフィルタ処理することは、前記選択されたフィルタの、前記係数または前記フィルタサポート領域のいずれかに対して前記幾何学的変換を実施することを備える、
請求項３に記載の方法。
【請求項６】
前記複数のフィルタを構築することは、
前記複数のフィルタの前記サブセットに対応する前記クラスと別個の少なくとも１つのクラスのために、固定フィルタが前記クラスのフィルタ係数のセットを予測するために使用されるかどうかを示すフラグの値を決定することと、
固定フィルタが、前記フィルタ係数のセットを予測するために使用されることを示す前記フラグの前記値に応答して、固定フィルタのセットへのインデックス値を決定することと、前記インデックス値によって識別された前記固定フィルタのセットの固定フィルタを使用して、前記クラスの前記フィルタ係数のセットを予測することと
を備える、請求項１に記載の方法。
【請求項７】
前記複数のフィルタを構築することは、
前記クラスの前記予測されたフィルタ係数のセットに適用されるべきオフセット値を決定することと、
前記クラスのための前記フィルタを構築するために前記クラスの前記予測されたフィルタ係数のセットに前記オフセット値を適用することと
をさらに備える、請求項６に記載の方法。
【請求項８】
前記複数のフィルタを構築することは、
前記複数のフィルタの前記サブセットに対応する前記クラスと別個の前記クラスのサブセットのいずれかのための前記フィルタ係数のセットのいずれも前記固定フィルタのいずれかから予測されないこと、
前記クラスの前記サブセットのすべてのための前記フィルタ係数のセットのすべてが前記固定フィルタのうちの少なくとも１つから予測されること、または
前記クラスの前記サブセットの前記フィルタ係数のセットのいくつかが前記固定フィルタのうちの１つまたは複数から予測されること
のうちの１つを表す値を決定することをさらに備える、請求項１に記載の方法。
【請求項９】
前記複数のクラスのいずれかのための前記フィルタ係数のセットのいずれも前記固定フィルタのいずれかから予測されないことを前記値が表すとき、前記１つまたは複数の固定フィルタのうちの固定フィルタを表すインデックス値の決定を防止することをさらに備える、
請求項８に記載の方法。
【請求項１０】
前記複数のクラスのすべてのための前記フィルタ係数のセットのすべてが前記固定フィルタのうちの少なくとも１つから予測されることを前記値が表すとき、前記対応するクラスのための前記フィルタ係数のセットがそれから予測される前記固定フィルタのうちの前記１つを表す前記複数のクラスの各々のためのインデックス値を決定することをさらに備える、
請求項８に記載の方法。
【請求項１１】
前記複数のクラスの前記フィルタ係数のセットのうちのいくつかが前記固定フィルタのうちの１つまたは複数から予測されることを前記値が表すとき、
前記複数のクラスのどれが前記固定フィルタのうちの１つまたは複数から予測されるフィルタ係数のセットに対応するかを決定することと、
前記固定フィルタのうちの１つまたは複数から予測される前記フィルタ係数のセットの各々のために、前記対応するフィルタ係数のセットがそれから予測される前記１つまたは複数の固定フィルタのうちの前記固定フィルタを表すインデックス値を決定することと
をさらに備える、請求項８に記載の方法。
【請求項１２】
前記現在ブロックを復号することより前に前記現在ブロックを符号化することをさらに備える、
請求項１に記載の方法。
【請求項１３】
前記方法は、ワイヤレス通信デバイス上で実行可能であり、前記デバイスは、
前記ビデオデータを記憶するように構成されたメモリと、
前記メモリに記憶された前記ビデオデータを処理するための命令を実行するように構成されたプロセッサと、
前記ビデオデータを受信し、前記メモリに前記ビデオデータを記憶するように構成された受信機と
を備える、請求項１に記載の方法。
【請求項１４】
前記ワイヤレス通信デバイスは、セルラー電話であり、前記ビデオデータは、受信機によって受信され、セルラー通信規格に従って変調される、
請求項１３に記載の方法。
【請求項１５】
ビデオデータの復号されたブロックをフィルタ処理するデバイスであって、
前記ビデオデータを記憶するように構成されたメモリと、
回路において実装される１つまたは複数の処理ユニットと
を備え、前記１つまたは複数のプロセッサは、
前記ビデオデータの現在ピクチャのブロックのクラスのための複数のフィルタを構築すること、ここにおいて、前記複数のフィルタを構築することは、前記１つまたは複数の処理ユニットが、
生成されるべきフィルタ係数のセットの数を決定することと、
前記数の、フィルタ係数のセットを生成することと、
前記複数のフィルタのサブセットのために、前記サブセットの前記対応するフィルタのための前記フィルタ係数のセットのうちの１つを識別するそれぞれのインデックスを決定することと
を行うように構成される、と、
前記現在ピクチャの現在ブロックを復号することと、
前記現在ブロックのためのクラスを決定することと、
前記現在ブロックのための前記クラスに対応する前記複数のフィルタのうちのフィルタを選択することと、
前記選択されたフィルタを使用して前記現在ブロックの少なくとも１つのピクセルをフィルタ処理することと
を行うように構成される、デバイス。
【請求項１６】
前記それぞれのインデックスは、両端値を含む［０，フィルタ係数のセットの数−１］の前記範囲内にある、
請求項１５に記載のデバイス。
【請求項１７】
前記１つまたは複数の処理ユニットは、
前記少なくとも１つのピクセルの１つまたは複数の勾配を計算することと、
フィルタサポート領域または前記選択されたフィルタの係数のうちの１つに対して実施されるべき幾何学的変換を選択することと
を行うようにさらに構成され、前記幾何学的変換を選択するために、前記処理ユニットは、前記少なくとも１つのピクセルの前記勾配の向きに対応する前記幾何学的変換を選択することを行うように構成される、
請求項１５に記載のデバイス。
【請求項１８】
前記幾何学的変換は、回転、対角反転、または垂直反転のうちの１つを備える、
請求項１７に記載のデバイス。
【請求項１９】
前記フィルタサポート領域は、前記選択されたフィルタの係数がそれに適用されるべきである、前記現在ブロックの前記少なくとも１つのピクセルに対する複数の隣接ピクセルを備え、前記１つまたは複数の処理ユニットは、前記選択されたフィルタの、前記係数または前記フィルタサポート領域のいずれかに対して前記幾何学的変換を実施する要に構成される、
請求項１７に記載のデバイス。
【請求項２０】
前記複数のフィルタを構築するために、前記１つまたは複数の処理ユニットは、
前記複数のフィルタの前記サブセットに対応する前記クラスと別個の少なくとも１つのクラスのために、固定フィルタが前記クラスのフィルタ係数のセットを予測するために使用されるかどうかを示すフラグの値を決定することと、
固定フィルタが、前記フィルタ係数のセットを予測するために使用されることを示す前記フラグの前記値に応答して、固定フィルタのセットへのインデックス値を決定することと、前記インデックス値によって識別された前記固定フィルタのセットの固定フィルタを使用して、前記クラスの前記フィルタ係数のセットを予測することと
を行うように構成される、請求項１５に記載のデバイス。
【請求項２１】
前記複数のフィルタを構築するために、前記１つまたは複数の処理ユニットは、
前記クラスの前記予測されたフィルタ係数のセットに適用されるべきオフセット値を決定することと、
前記クラスのための前記フィルタを構築するために前記クラスの前記予測されたフィルタ係数のセットに前記オフセット値を適用することと
を行うように構成される、請求項２０に記載のデバイス。
【請求項２２】
前記複数のフィルタを構築するために、前記１つまたは複数の処理ユニットは、
前記複数のフィルタの前記サブセットに対応する前記クラスと別個の前記クラスのサブセットのいずれかのための前記フィルタ係数のセットのいずれも前記固定フィルタのいずれかから予測されないこと、
前記クラスの前記サブセットのすべてのための前記フィルタ係数のセットのすべてが前記固定フィルタのうちの少なくとも１つから予測されること、または
前記クラスの前記サブセットの前記フィルタ係数のセットのいくつかが前記固定フィルタのうちの１つまたは複数から予測されること
のうちの１つを表す値を決定するようにさらに構成される、請求項１５に記載のデバイス。
【請求項２３】
前記１つまたは複数の処理ユニットは、前記複数のクラスのいずれかのための前記フィルタ係数のセットのいずれも前記固定フィルタのいずれかから予測されないことを前記値が表すとき、前記１つまたは複数の固定フィルタのうちの固定フィルタを表すインデックス値の決定を防止することを行うようにさらに構成される、
請求項２２に記載のデバイス。
【請求項２４】
前記１つまたは複数の処理ユニットは、前記複数のクラスのすべてのための前記フィルタ係数のセットのすべてが前記固定フィルタのうちの少なくとも１つから予測されることを前記値が表すとき、前記対応するクラスのための前記フィルタ係数のセットがそれから予測される前記固定フィルタのうちの前記１つを表す前記複数のクラスの各々のためのインデックス値を決定することを行うようにさらに構成される、
請求項２２に記載のデバイス。
【請求項２５】
前記１つまたは複数の処理ユニットは、前記複数のクラスの前記フィルタ係数のセットのうちのいくつかが前記固定フィルタのうちの１つまたは複数から予測されることを前記値が表すとき、
前記複数のクラスのどれが前記固定フィルタのうちの１つまたは複数から予測されるフィルタ係数のセットに対応するかを決定することと、
前記固定フィルタのうちの１つまたは複数から予測される前記フィルタ係数のセットの各々のために、前記対応するフィルタ係数のセットがそれから予測される前記１つまたは複数の固定フィルタのうちの前記固定フィルタを表すインデックス値を決定することと
を行うようにさらに構成される、請求項２２に記載のデバイス。
【請求項２６】
前記１つまたは複数の処理ユニットは、前記現在ブロックを復号することより前に、前記現在ブロックを符号化するようにさらに構成される、
請求項１５に記載のデバイス。
【請求項２７】
前記デバイスは、ワイヤレス通信デバイスであり、
前記現在ピクチャを含むビデオデータを受信するように構成される受信機をさらに備える、
請求項１５に記載のデバイス。
【請求項２８】
前記ワイヤレス通信デバイスは、セルラー電話であり、前記ビデオデータは、前記受信機によって受信され、セルラー通信規格に従って変調される、
請求項２７に記載のデバイス。
【請求項２９】
ビデオデータの復号されたブロックをフィルタ処理するデバイスであって、
ビデオデータの現在ピクチャのブロックのクラスのための複数のフィルタを構築するための手段、ここにおいて、前記複数のフィルタを前記構築するための手段は、
生成されるべきフィルタ係数のセットの数を決定するための手段と、
フィルタ係数のセットを生成するための手段と、
前記複数のフィルタのサブセットのために、前記サブセットの前記対応するフィルタのための前記フィルタ係数のセットのうちの１つを識別するそれぞれのインデックスを決定するための手段と
を備える、と、
前記現在ピクチャの現在ブロックを復号するための手段と、
前記現在ブロックのためのクラスを決定するための手段と、
前記現在ブロックのための前記クラスに対応する前記複数のフィルタのうちのフィルタを選択するための手段と、
前記選択されたフィルタを使用して前記現在ブロックの少なくとも１つのピクセルをフィルタ処理するための手段と
を備える、デバイス。
【請求項３０】
前記それぞれのインデックスは、両端値を含む［０，フィルタ係数のセットの数−１］の前記範囲内にある、
請求項２９に記載のデバイス。
【請求項３１】
前記少なくとも１つのピクセルの１つまたは複数の勾配を計算するための手段と、
フィルタサポート領域または前記選択されたフィルタの係数のうちの１つに対して実施されるべき幾何学的変換を選択するための手段と
をさらに備え、前記幾何学的変換を前記選択するための手段は、前記少なくとも１つのピクセルの前記勾配の向きに対応する前記幾何学的変換を選択するための手段を備える、
請求項２９に記載のデバイス。
【請求項３２】
前記複数のフィルタを前記構築するための手段は、
前記複数のフィルタの前記サブセットに対応する前記クラスと別個の少なくとも１つのクラスのために、固定フィルタが前記クラスのフィルタ係数のセットを予測するために使用されるかどうかを示すフラグの値を決定するための手段と、
固定フィルタが、前記フィルタ係数のセットを予測するために使用されることを示す前記フラグの前記値に応答して、固定フィルタのセットへのインデックス値を決定するための手段と、
前記インデックス値によって識別された前記固定フィルタのセットの固定フィルタを使用して、前記クラスの前記フィルタ係数のセットを予測するための手段と
を備える、請求項２９に記載のデバイス。
【請求項３３】
前記複数のフィルタを前記構築するための手段は、
前記複数のフィルタの前記サブセットに対応する前記クラスと別個の前記クラスのサブセットのいずれかのための前記フィルタ係数のセットのいずれも前記固定フィルタのいずれかから予測されないこと、
前記クラスの前記サブセットのすべてのための前記フィルタ係数のセットのすべてが前記固定フィルタのうちの少なくとも１つから予測されること、または
前記クラスの前記サブセットの前記フィルタ係数のセットのいくつかが前記固定フィルタのうちの１つまたは複数から予測されること
のうちの１つを表す値を決定するための手段をさらに備える、請求項２９に記載のデバイス。
【請求項３４】
前記現在ブロックを復号することより前に前記現在ブロックを符号化することをさらに備える、
請求項２９に記載のデバイス。
【請求項３５】
命令を記憶したコンピュータ可読記憶媒体であって、前記命令は、実行されたとき、プロセッサに、
ビデオデータの現在ピクチャのブロックのクラスのための複数のフィルタを構築すること、ここにおいて、前記プロセッサに、前記複数のフィルタを構築することを行わせる前記命令は、前記プロセッサに、
生成されるべきフィルタ係数のセットの数を決定することと、
前記数の、フィルタ係数のセットを生成することと、
前記複数のフィルタのサブセットのために、前記サブセットの前記対応するフィルタのための前記フィルタ係数のセットのうちの１つを識別するそれぞれのインデックスを決定することと
を行わせる命令を備える、と、
前記現在ピクチャの現在ブロックを復号することと、
前記現在ブロックのためのクラスを決定することと、
前記現在ブロックのための前記クラスに対応する前記複数のフィルタのうちのフィルタを選択することと、
前記選択されたフィルタを使用して前記現在ブロックの少なくとも１つのピクセルをフィルタ処理することと
を行わせる命令を備える、コンピュータ可読記憶媒体。
【請求項３６】
前記それぞれのインデックスは、両端値を含む［０，フィルタ係数のセットの数−１］の前記範囲内にある、
請求項３５に記載のコンピュータ可読記憶媒体。
【請求項３７】
プロセッサに、
少なくとも１つのピクセルの１つまたは複数の勾配を計算することと、
フィルタサポート領域または前記選択されたフィルタの係数のうちの１つに対して実施されるべき幾何学的変換を選択することと
を行わせる命令をさらに備え、前記プロセッサに、前記幾何学的変換を選択することを行わせる前記命令は、前記プロセッサに、前記少なくとも１つのピクセルの前記勾配の向きに対応する前記幾何学的変換を選択することを行わせる命令を備える、
請求項３５に記載のコンピュータ可読記憶媒体。
【請求項３８】
前記プロセッサに、前記複数のフィルタを構築することを行わせる前記命令は、前記プロセッサに、
前記複数のフィルタの前記サブセットに対応する前記クラスと別個の少なくとも１つのクラスのために、固定フィルタが前記クラスのフィルタ係数のセットを予測するために使用されるかどうかを示すフラグの値を決定することと、
固定フィルタが、前記フィルタ係数のセットを予測するために使用されることを示す前記フラグの前記値に応答して、固定フィルタのセットへのインデックス値を決定することと、前記インデックス値によって識別された前記固定フィルタのセットの固定フィルタを使用して、前記クラスの前記フィルタ係数のセットを予測することと
を行わせる命令を備える、請求項３５に記載のコンピュータ可読記憶媒体。
【請求項３９】
前記プロセッサに、前記複数のフィルタを構築することを行わせる前記命令は、前記プロセッサに、
前記複数のフィルタの前記サブセットに対応する前記クラスと別個の前記クラスのサブセットのいずれかのための前記フィルタ係数のセットのいずれも前記固定フィルタのいずれかから予測されないこと、
前記クラスの前記サブセットのすべてのための前記フィルタ係数のセットのすべてが前記固定フィルタのうちの少なくとも１つから予測されること、または
前記クラスの前記サブセットの前記フィルタ係数のセットのいくつかが前記固定フィルタのうちの１つまたは複数から予測されること
のうちの１つを表す値を決定することを行わせる命令をさらに備える、請求項３５に記載のコンピュータ可読記憶媒体。
【請求項４０】
前記プロセッサに、前記現在ブロックを復号することより前に、前記現在ブロックを符号化することを行わせる命令をさらに備える、
請求項３５に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【関連出願】
【０００１】
[0001]本出願は、各々の内容全体が参照により本明細書に組み込まれる、２０１６年２月１５日に出願された米国仮出願第６２／２９５，４６１号、および２０１６年４月１９日に出願された米国仮出願第６２／３２４，７７６号の利益を主張する。
【技術分野】
【０００２】
[0002]本開示はビデオコーディングに関する。
【背景技術】
【０００３】
[0003]デジタルビデオ能力は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダー、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラーまたは衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３、ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４，Ｐａｒｔ１０，アドバンストビデオコーディング（ＡＶＣ：Advanced Video Coding）、最近確定されたＩＴＵ−Ｔ  Ｈ．２６５，高効率ビデオコーディング（ＨＥＶＣ：High Efficiency Video Coding）規格によって定義された規格、およびそのような規格の拡張に記載されているビデオ圧縮技法などのビデオ圧縮技法を実装する。ビデオデバイスは、そのようなビデオ圧縮技法を実装することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および／または記憶し得る。
【０００４】
[0004]ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために空間（イントラピクチャ）予測および／または時間（インターピクチャ）予測を実施する。ブロックベースのビデオコーディングでは、ビデオスライス（すなわち、ビデオフレームまたはビデオフレームの一部分）が、ツリーブロック、コーディングユニット（ＣＵ）および／またはコーディングノードと呼ばれることもあるビデオブロックに区分され得る。ピクチャのイントラコード化（Ｉ）スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間予測を使用して符号化される。ピクチャのインターコード化（ＰまたはＢ）スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間予測、または他の参照ピクチャ中の参照サンプルに対する時間予測を使用し得る。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
【０００５】
[0005]空間予測または時間予測は、コーディングされるべきブロックのための予測ブロックを生じる。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトルに従って符号化され、残差データは、コード化ブロックと予測ブロックとの間の差分を示す。イントラコード化ブロックは、イントラコーディングモードと残差データとに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換され、残差変換係数が生じ得、その残差変換係数は、次いで量子化され得る。最初に２次元アレイで構成される量子化変換係数は、変換係数の１次元ベクトルを生成するためにスキャンされ得、なお一層の圧縮を達成するために、エントロピーコーディングが適用され得る。
【発明の概要】
【０００６】
[0006]概して、本開示は、適応ループフィルタ処理（ＡＬＦ）など、フィルタ処理に関係する技法について説明する。特に、ビデオデータのブロックの異なるクラスのためのフィルタを生成するための様々な技法が、ビデオエンコーダまたはビデオデコーダなど、ビデオコーダによって実施され得る。一例では、ビデオコーダは、フィルタ係数の複数のセットを構築し、ブロックの様々なクラスのためのフィルタ係数のセットへのインデックスをコーディングし得、ここで、各インデックスは、ブロックの対応するクラスのためのフィルタ係数のセットを識別する。別の例では、ビデオコーダは、前に生成されたフィルタのフィルタ係数のセットを使用することと、フィルタサポート領域に、またはフィルタ係数自体に（回転、垂直反転、または対角反転などの）幾何学的変換を適用することとによって、ブロックのクラスのためのフィルタを生成し得る。さらに別の例では、ビデオコーダは、固定フィルタ、または前にコーディングされたピクチャのフィルタのいずれかから、ブロックのクラスのためのフィルタ係数を予測し得る。
【０００７】
[0007]一例では、ビデオデータの復号されたブロックをフィルタ処理する方法が、ビデオデータの現在ピクチャの現在ブロックを復号することと、現在ブロックのピクセルをフィルタ処理するために使用されるべきフィルタを（適応ループフィルタ処理（ＡＬＦ）に従ってなど）選択することと、選択されたフィルタの、フィルタサポート領域または係数のうちの１つに対して実施されるべき幾何学的変換を選択することと、選択されたフィルタの、フィルタサポート領域または係数のいずれかに対して幾何学的変換を実施することと、幾何学的変換を実施することの後に、選択されたフィルタを使用して現在ブロックの少なくとも１つのピクセルをフィルタ処理することとを含む。
【０００８】
[0008]別の例では、ビデオデータの復号されたブロックをフィルタ処理するためのデバイスが、ビデオデータを記憶するように構成されたメモリと、回路において実装される１つまたは複数のプロセッサとを含み、１つまたは複数のプロセッサは、ビデオデータの現在ピクチャの現在ブロックを復号することと、現在ブロックのピクセルをフィルタ処理するために使用されるべきフィルタを（適応ループフィルタ処理（ＡＬＦ）に従ってなど）選択することと、選択されたフィルタの、フィルタサポート領域または係数のうちの１つに対して実施されるべき幾何学的変換を選択することと、幾何学的変換を実施することの後に、選択されたフィルタを使用して現在ブロックの少なくとも１つのピクセルをフィルタ処理することとを行うように構成される。
【０００９】
[0009]別の例では、ビデオデータの復号されたブロックをフィルタ処理するためのデバイスが、ビデオデータの現在ピクチャの現在ブロックを復号するための手段と、現在ブロックのピクセルをフィルタ処理するために使用されるべきフィルタを（適応ループフィルタ処理（ＡＬＦ）に従ってなど）選択するための手段と、選択されたフィルタの、フィルタサポート領域または係数のうちの１つに対して実施されるべき幾何学的変換を選択するための手段と、選択されたフィルタの、フィルタサポート領域または係数のいずれかに対して幾何学的変換を実施するための手段と、幾何学的変換を実施することの後に、選択されたフィルタを使用して現在ブロックの少なくとも１つのピクセルをフィルタ処理するための手段とを含む。
【００１０】
[0010]別の例では、（非一時的コンピュータ可読記憶媒体などの）コンピュータ可読記憶媒体が、実行されたとき、プロセッサに、ビデオデータの現在ピクチャの現在ブロックを復号することと、現在ブロックのピクセルをフィルタ処理するために使用されるべきフィルタを（適応ループフィルタ処理（ＡＬＦ）に従ってなど）選択することと、選択されたフィルタの、フィルタサポート領域または係数のうちの１つに対して実施されるべき幾何学的変換を選択することと、選択されたフィルタの、フィルタサポート領域または係数のいずれかに対して幾何学的変換を実施することと、幾何学的変換を実施することの後に、選択されたフィルタを使用して現在ブロックの少なくとも１つのピクセルをフィルタ処理することとを行わせる命令を記憶している。
【００１１】
[0011]別の例では、ビデオデータの復号されたブロックをフィルタ処理する方法が、ビデオデータの現在ピクチャのブロックのクラスのための複数のフィルタを構築することを含み、ここにおいて、複数のフィルタを構築することは、クラスの各々のために、固定フィルタが、クラスのフィルタ係数のセットを予測するために使用されるかどうかを決定することと、固定フィルタが、フィルタ係数のセットを予測するために使用されると決定したことに応答して、クラスの固定フィルタのセットへのインデックス値を決定することと、インデックス値によって識別された固定フィルタのセットの固定フィルタを使用して、クラスのフィルタ係数のセットを予測することと、ビデオデータの現在ピクチャの現在ブロックを復号することと、現在ブロックのためのクラスを決定することと、現在ブロックのためのクラスに対応する複数のフィルタのうちのフィルタを選択することと、選択されたフィルタを使用して現在ブロックの少なくとも１つのピクセルをフィルタ処理することとを備える。
【００１２】
[0012]別の例では、ビデオデータの復号されたブロックをフィルタ処理するためのデバイスが、ビデオデータを記憶するように構成されたメモリと、回路において実装される１つまたは複数の処理ユニットとを含み、１つまたは複数の処理ユニットは、ビデオデータの現在ピクチャのブロックのクラスのための複数のフィルタを構築することを行うように構成され、ここにおいて、クラスの各々のために複数のフィルタを構築するために、１つまたは複数の処理ユニットは、固定フィルタが、クラスのフィルタ係数のセットを予測するために使用されるかどうかを決定することと、固定フィルタが、フィルタ係数のセットを予測するために使用されると決定したことに応答して、クラスの固定フィルタのセットへのインデックス値を決定することと、インデックス値によって識別された固定フィルタのセットの固定フィルタを使用して、クラスのフィルタ係数のセットを予測することと、ビデオデータの現在ピクチャの現在ブロックを復号することと、現在ブロックのためのクラスを決定することと、現在ブロックのためのクラスに対応する複数のフィルタのうちのフィルタを選択することと、選択されたフィルタを使用して現在ブロックの少なくとも１つのピクセルをフィルタ処理することとを行うように構成される。
【００１３】
[0013]別の例では、ビデオデータの復号されたブロックをフィルタ処理するためのデバイスが、ビデオデータの現在ピクチャのブロックのクラスのための複数のフィルタを構築するための手段を含み、ここにおいて、複数のフィルタを構築するための手段は、固定フィルタが、クラスの各々のフィルタ係数のセットを予測するために使用されるかどうかを決定するための手段と、固定フィルタが、フィルタ係数のセットを予測するために使用されると決定したことに応答して、クラスの固定フィルタのセットへのインデックス値を決定するための手段と、インデックス値によって識別された固定フィルタのセットの固定フィルタを使用して、クラスのフィルタ係数のセットを予測するための手段とを備える。本デバイスは、ビデオデータの現在ピクチャの現在ブロックを復号するための手段と、現在ブロックのためのクラスを決定するための手段と、現在ブロックのためのクラスに対応する複数のフィルタのうちのフィルタを選択するための手段と、選択されたフィルタを使用して現在ブロックの少なくとも１つのピクセルをフィルタ処理するための手段とをさらに含む。
【００１４】
[0014]別の例では、（非一時的コンピュータ可読記憶媒体などの）コンピュータ可読記憶媒体が、実行されたとき、プロセッサに、ビデオデータの現在ピクチャのブロックのクラスのための複数のフィルタを構築することを行わせる命令を記憶しており、ここにおいて、プロセッサに、複数のフィルタを構築することを行わせる命令は、プロセッサに、クラスの各々のために、固定フィルタが、クラスのフィルタ係数のセットを予測するために使用されるかどうかを決定することと、固定フィルタが、フィルタ係数のセットを予測するために使用されると決定したことに応答して、クラスの固定フィルタのセットへのインデックス値を決定することと、インデックス値によって識別された固定フィルタのセットの固定フィルタを使用して、クラスのフィルタ係数のセットを予測することと、ビデオデータの現在ピクチャの現在ブロックを復号することと、現在ブロックのためのクラスを決定することと、現在ブロックのためのクラスに対応する複数のフィルタのうちのフィルタを選択することと、選択されたフィルタを使用して現在ブロックの少なくとも１つのピクセルをフィルタ処理することとを行わせる命令を備える。
【００１５】
[0015]別の例では、ビデオデータの復号されたブロックをフィルタ処理する方法が、ビデオデータの現在ピクチャのブロックのクラスのための複数のフィルタを構築することと、ここにおいて、複数のフィルタを構築することは、生成されるべきフィルタ係数のセットの数を決定することと、その数の、フィルタ係数のセットを生成することと、複数のフィルタのサブセットのために、サブセットの対応するフィルタのためのフィルタ係数のセットのうちの１つを識別するそれぞれのインデックスを決定することとを備え、現在ピクチャの現在ブロックを復号することと、現在ブロックのためのクラスを決定することと、現在ブロックのためのクラスに対応する複数のフィルタのうちのフィルタを選択することと、選択されたフィルタを使用して現在ブロックの少なくとも１つのピクセルをフィルタ処理することとを含む。
【００１６】
[0016]別の例では、ビデオデータの復号されたブロックをフィルタ処理するためのデバイスが、ビデオデータを記憶するように構成されたメモリと、回路において実装される１つまたは複数の処理ユニットとを含み、１つまたは複数の処理ユニットは、ビデオデータの現在ピクチャのブロックのクラスのための複数のフィルタを構築することと、ここにおいて、複数のフィルタを構築するために、１つまたは複数の処理ユニットは、生成されるべきフィルタ係数のセットの数を決定することと、その数の、フィルタ係数のセットを生成することと、複数のフィルタのサブセットのために、サブセットの対応するフィルタのためのフィルタ係数のセットのうちの１つを識別するそれぞれのインデックスを決定することとを行うように構成され、現在ピクチャの現在ブロックを復号することと、現在ブロックのためのクラスを決定することと、現在ブロックのためのクラスに対応する複数のフィルタのうちのフィルタを選択することと、選択されたフィルタを使用して現在ブロックの少なくとも１つのピクセルをフィルタ処理することとを行うように構成される。
【００１７】
[0017]別の例では、ビデオデータの復号されたブロックをフィルタ処理するためのデバイスが、ビデオデータの現在ピクチャのブロックのクラスのための複数のフィルタを構築するための手段を含み、ここにおいて、複数のフィルタを構築するための手段は、生成されるべきフィルタ係数のセットの数を決定するための手段と、その数の、フィルタ係数のセットを生成するための手段と、複数のフィルタのサブセットのために、サブセットの対応するフィルタのためのフィルタ係数のセットのうちの１つを識別するそれぞれのインデックスを決定するための手段とを備え、本デバイスは、現在ピクチャの現在ブロックを復号するための手段と、現在ブロックのためのクラスを決定するための手段と、現在ブロックのためのクラスに対応する複数のフィルタのうちのフィルタを選択するための手段と、選択されたフィルタを使用して現在ブロックの少なくとも１つのピクセルをフィルタ処理するための手段とをさらに含む。
【００１８】
[0018]別の例では、コンピュータ可読記憶媒体が、実行されたとき、プロセッサに、ビデオデータの現在ピクチャのブロックのクラスのための複数のフィルタを構築することと、ここにおいて、プロセッサに、複数のフィルタを構築することを行わせる命令は、プロセッサに、フィルタ係数の複数のセットを生成することと、複数のフィルタのサブセットのために、サブセットの対応するフィルタのためのフィルタ係数のセットのうちの１つを識別するそれぞれのインデックスを決定することとを行わせる命令を備え、現在ピクチャの現在ブロックを復号することと、現在ブロックのためのクラスを決定することと、現在ブロックのためのクラスに対応する複数のフィルタのうちのフィルタを選択することと、選択されたフィルタを使用して現在ブロックの少なくとも１つのピクセルをフィルタ処理することとを行わせる命令を記憶している。
【００１９】
[0019]１つまたは複数の例の詳細が添付の図面および以下の説明に記載される。他の特徴、目的、および利点は、説明および図面、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００２０】
【図１】本開示で説明される技法を利用し得る例示的なビデオ符号化および復号システムを示すブロック図。
【図２】アクティビティメトリックおよび方向メトリックのための範囲の、フィルタへのマッピングを示す概念図。
【図３】フィルタ係数差分をシグナリングするための例示的なパターンを示す概念図。
【図４】本開示で説明される技法を実装し得る例示的なビデオエンコーダを示すブロック図。
【図５】本開示で説明される技法を実装し得る例示的なビデオデコーダを示すブロック図。
【図６】（たとえば、ビデオ符号化プロセス中に）ビデオエンコーダによって、復号されたピクチャのブロックをフィルタ処理するための例示的な方法を示すフローチャート。
【図７】（たとえば、ビデオ復号プロセス中に）ビデオデコーダによって、復号されたピクチャのブロックをフィルタ処理するための例示的な方法を示すフローチャート。
【図８】（たとえば、ビデオ符号化プロセス中に）ビデオエンコーダによって、復号されたピクチャのブロックをフィルタ処理するための例示的な方法を示すフローチャート。
【図９】（たとえば、ビデオ復号プロセス中に）ビデオデコーダによって、復号されたピクチャのブロックをフィルタ処理するための例示的な方法を示すフローチャート。
【図１０】（たとえば、ビデオ符号化プロセス中に）ビデオエンコーダによって、復号されたピクチャのブロックをフィルタ処理するための例示的な方法を示すフローチャート。
【図１１】（たとえば、ビデオ復号プロセス中に）ビデオデコーダによって、復号されたピクチャのブロックをフィルタ処理するための例示的な方法を示すフローチャート。
【発明を実施するための形態】
【００２１】
[0031]一般的なビデオエンコーダでは、元のビデオシーケンスのフレームは、イントラモード（Ｉモード）またはインターモード（Ｐモード）で符号化される、矩形領域またはブロックに区分される。ブロックは、ＤＣＴコーディングなど、何らかの種類の変換コーディングを使用してコーディングされる。しかしながら、純粋な変換ベースのコーディングは、ピクセルのブロック間相関を考慮することなしに、特定のブロック内のピクセル間相関を低減するにすぎず、純粋な変換ベースのコーディングは、依然として、送信のための高いビットレートを生成する。現在のデジタル画像コーディング規格は、ブロック間のピクセル値の相関を低減するいくつかの方法をも活用する。以下の説明において明らかにされるように、ビデオコーディングという用語は、本開示では、ビデオ符号化またはビデオ復号のいずれかを総称的に指すために使用され得る。
【００２２】
[0032]概して、Ｐモードで符号化されたブロックは、前にコーディングおよび送信されたフレームのうちの１つから予測される。ブロックの予測情報は、２次元（２Ｄ）動きベクトルによって表される。Ｉモードで符号化されたブロックの場合、被予測ブロックは、同じフレーム内のすでに符号化された隣接ブロックからの空間予測を使用して形成される。予測誤差、すなわち、符号化されているブロックと被予測ブロックとの間の差分は、何らかの離散変換の重み付けされた基底関数のセットとして表される。変換は、一般に、８×８または４×４ブロックベースで実施される。重み、すなわち、変換係数はその後量子化される。量子化は情報の損失をもたらし、したがって、量子化係数は、元の係数よりも低い精度を有する。
【００２３】
[0033]量子化変換係数は、動きベクトルおよび何らかの制御情報とともに、完全なコード化シーケンス表現を形成し、シンタックス要素と呼ばれる。エンコーダからデコーダへの送信より前に、シンタックス要素は、シンタックス要素を表すために使用されるビットの数をさらに低減するようにエントロピー符号化される。
【００２４】
[0034]デコーダにおいて、現在フレーム中のブロックは、エンコーダの場合と同様の方法でそれの予測を最初に構築することによって、および予測に圧縮された予測誤差を加算することによって取得される。圧縮された予測誤差は、量子化係数を使用して変換基底関数を重み付けすることによって見つけられる。再構築されたフレームと元のフレームとの間の差分は、再構築誤差と呼ばれる。
【００２５】
[0035]復号されたビデオの品質をさらに改善するために、ビデオデコーダは、再構築されたビデオブロックに対して１つまたは複数のフィルタ処理演算を実施することができる。これらのフィルタ処理演算の例は、デブロッキングフィルタ処理と、サンプル適応オフセット（ＳＡＯ）フィルタ処理と、適応ループフィルタ処理（ＡＬＦ）とを含む。これらのフィルタ処理演算のためのパラメータは、ビデオエンコーダによって決定され、符号化ビデオビットストリーム中で明示的にシグナリングされるか、またはビデオデコーダによって暗黙的に決定されるかのいずれかであり得る。
【００２６】
[0036]本開示は、ビデオ符号化および／またはビデオ復号プロセスにおいて再構築されたビデオデータをフィルタ処理することに関連する技法について説明し、より詳細には、本開示は、ＡＬＦに関係する技法について説明する。本開示によれば、フィルタ処理がエンコーダにおいて適用され、エンコーダにおいて適用されたフィルタ処理をデコーダが識別することを可能にするために、フィルタ情報がビットストリーム中で符号化される。ビデオエンコーダは、いくつかの異なるフィルタ処理シナリオをテストし、レートひずみ分析に基づいて、再構築されたビデオ品質と圧縮品質との間の所望のトレードオフを生成するフィルタまたはフィルタのセットを選定し得る。ビデオデコーダは、フィルタ情報を含む符号化ビデオデータを受信し、ビデオデータを復号し、フィルタ処理情報に基づいてフィルタ処理を適用する。このようにして、ビデオデコーダは、ビデオエンコーダにおいて適用された同じフィルタ処理を適用する。
【００２７】
[0037]本開示では、「フィルタ」という用語は、概して、フィルタ係数のセットを指す。たとえば、３×３フィルタは、９つのフィルタ係数のセットによって定義され得、５×５フィルタは、２５個のフィルタ係数のセットによって定義され得、９×５フィルタは、４５個のフィルタ係数のセットによって定義され得、以下同様である。「フィルタのセット」という用語は、概して、２つ以上のフィルタのグループを指す。たとえば、２つの３×３フィルタのセットは、９つのフィルタ係数の第１のセットと、９つのフィルタ係数の第２のセットとを含むことができる。「フィルタサポート」と呼ばれることがある「形状」という用語は、概して、特定のフィルタのための、フィルタ係数の行の数と、フィルタ係数の列の数とを指す。たとえば、９×９は第１の形状の例であり、７×５は第２の形状の例であり、５×９は第３の形状の例である。いくつかの事例では、フィルタは、ダイヤモンド形状、ダイヤモンド様形状、円形形状、円形様形状、六角形形状、八角形形状、クロス形状、Ｘ形状、Ｔ形状、他の幾何学的形状、あるいは多数の他の形状または構成を含む非矩形形状をとり得る。この場合、非矩形フィルタサポートについて、フィルタ係数の数は異なり得る。たとえば、９×９ダイヤモンドフィルタサポートの場合、９×９ダイヤモンドフィルタは、（９×９／４＋１）個のフィルタ係数のセットによって定義され得る。
【００２８】
[0038]図１は、本開示で説明される技法を実装し得る例示的なビデオ符号化および復号システム１０を示すブロック図である。図１に示されているように、システム１０は、宛先デバイス１４によって後で復号されるべき符号化ビデオデータを生成するソースデバイス１２を含む。ソースデバイス１２および宛先デバイス１４は、デスクトップコンピュータ、ノートブック（すなわち、ラップトップ）コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲のデバイスのいずれかを備え得る。いくつかの場合には、ソースデバイス１２および宛先デバイス１４は、ワイヤレス通信のために装備され得る。
【００２９】
[0039]宛先デバイス１４は、リンク１６を介して復号されるべき符号化ビデオデータを受信し得る。リンク１６は、ソースデバイス１２から宛先デバイス１４に符号化ビデオデータを移動することが可能な任意のタイプの媒体またはデバイスを備え得る。一例では、リンク１６は、ソースデバイス１２が、符号化ビデオデータをリアルタイムで宛先デバイス１４に直接送信することを可能にするための通信媒体を備え得る。符号化されたビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス１４に送信され得る。通信媒体は、無線周波数（ＲＦ）スペクトルまたは１つまたは複数の物理伝送ラインなど、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースのネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス１２から宛先デバイス１４への通信を可能にするために有用であり得る任意の他の機器を含み得る。
【００３０】
[0040]代替的に、符号化データは、出力インターフェース２２からストレージデバイス２６に出力され得る。同様に、符号化データは、入力インターフェースによってストレージデバイス２６からアクセスされ得る。ストレージデバイス２６は、ハードドライブ、Ｂｌｕ−ｒａｙ（登録商標）ディスク、ＤＶＤ、ＣＤ−ＲＯＭ、フラッシュメモリ、揮発性または不揮発性メモリ、あるいは符号化ビデオデータを記憶するための任意の他の好適なデジタル記憶媒体など、様々な分散したまたはローカルでアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる一例では、ストレージデバイス２６は、ソースデバイス１２によって生成された符号化ビデオを保持し得るファイルサーバまたは別の中間ストレージデバイスに対応し得る。宛先デバイス１４は、ストリーミングまたはダウンロードを介して、ストレージデバイス２６から、記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶し、その符号化ビデオデータを宛先デバイス１４に送信することが可能な任意のタイプのサーバであり得る。例示的なファイルサーバとしては、（たとえば、ウェブサイトのための）ウェブサーバ、ＦＴＰサーバ、ネットワーク接続ストレージ（ＮＡＳ）デバイス、またはローカルディスクドライブがある。宛先デバイス１４は、インターネット接続を含む、任意の標準のデータ接続を通して符号化ビデオデータにアクセスし得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適であるワイヤレスチャネル（たとえば、Ｗｉ−Ｆｉ（登録商標）接続）、ワイヤード接続（たとえば、ＤＳＬ、ケーブルモデムなど）、またはその両方の組合せを含み得る。ストレージデバイス２６からの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであり得る。
【００３１】
[0041]本開示の技法は、必ずしもワイヤレス適用例または設定に限定されるとは限らない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム１０は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および／またはビデオテレフォニーなどの適用例をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
【００３２】
[0042]図１の例では、ソースデバイス１２は、ビデオソース１８と、ビデオエンコーダ２０と、出力インターフェース２２とを含む。場合によっては、出力インターフェース２２は、変調器／復調器（モデム）および／または送信機を含み得る。ソースデバイス１２において、ビデオソース１８は、ビデオキャプチャデバイス、たとえば、ビデオカメラ、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および／またはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムなどのソース、あるいはそのようなソースの組合せを含み得る。一例として、ビデオソース１８がビデオカメラである場合、ソースデバイス１２および宛先デバイス１４は、いわゆるカメラフォンまたはビデオフォンを形成し得る。ただし、本開示で説明される技法は、概してビデオコーディングに適用可能であり得、ワイヤレスおよび／またはワイヤード適用例に適用され得る。
【００３３】
[0043]キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成されたビデオは、ビデオエンコーダ２０によって符号化され得る。符号化ビデオデータは、ソースデバイス１２の出力インターフェース２２を介して宛先デバイス１４に直接送信され得る。符号化ビデオデータは、さらに（または代替的に）、復号および／または再生のための宛先デバイス１４または他のデバイスによる後のアクセスのためにストレージデバイス２６上に記憶され得る。
【００３４】
[0044]宛先デバイス１４は、入力インターフェース２８と、ビデオデコーダ３０と、ディスプレイデバイス３２とを含む。場合によっては、入力インターフェース２８は受信機および／またはモデムを含み得る。宛先デバイス１４の入力インターフェース２８は、リンク１６を介して符号化ビデオデータを受信する。リンク１６を介して通信され、またはストレージデバイス２６上に与えられた符号化ビデオデータは、ビデオデータを復号する際に、ビデオデコーダ３０など、ビデオデコーダが使用するためのビデオエンコーダ２０によって生成される様々なシンタックス要素を含み得る。そのようなシンタックス要素は、通信媒体上で送信されるか、記憶媒体上に記憶されるか、またはファイルサーバ上に記憶される符号化ビデオデータとともに含まれ得る。
【００３５】
[0045]ディスプレイデバイス３２は、宛先デバイス１４と一体化されるかまたはその外部にあり得る。いくつかの例では、宛先デバイス１４は、一体型ディスプレイデバイスを含み、また、外部ディスプレイデバイスとインターフェースするように構成され得る。他の例では、宛先デバイス１４はディスプレイデバイスであり得る。概して、ディスプレイデバイス３２は、復号されたビデオデータをユーザに表示し、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
【００３６】
[0046]ビデオエンコーダ２０およびビデオデコーダ３０は、最近確定された高効率ビデオコーディング（ＨＥＶＣ）規格などのビデオ圧縮規格に従って動作し得、ＨＥＶＣテストモデル（ＨＭ：HEVC Test Model）に準拠し得る。代替的に、ビデオエンコーダ２０およびビデオデコーダ３０は、代替的にＭＰＥＧ−４，Ｐａｒｔ  １０，アドバンストビデオコーディング（ＡＶＣ）と呼ばれるＩＴＵ−Ｔ  Ｈ．２６４規格など、他のプロプライエタリ規格または業界規格、あるいはそのような規格の拡張に従って動作し得る。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオ圧縮規格の他の例としては、ＭＰＥＧ−２およびＩＴＵ−Ｔ  Ｈ．２６３がある。
【００３７】
[0047]本開示の技法は、説明を簡単にするためにＨＥＶＣ用語を利用し得る。しかしながら、本開示の技法がＨＥＶＣに限定されると仮定されるべきでなく、実際は、本開示の技法が、ＨＥＶＣの後継規格およびその拡張において実装され得ることが明示的に企図される。
【００３８】
[0048]図１には示されていないが、いくつかの態様では、ビデオエンコーダ２０およびビデオデコーダ３０は、それぞれオーディオエンコーダおよびオーディオデコーダと統合され得、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するために、適切なＭＵＸ−ＤＥＭＵＸユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、いくつかの例では、ＭＵＸ−ＤＥＭＵＸユニットは、ＩＴＵ  Ｈ．２２３マルチプレクサプロトコル、またはユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに準拠し得る。
【００３９】
[0049]ビデオエンコーダ２０およびビデオデコーダ３０はそれぞれ、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダ回路のいずれか、あるいはそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアのための命令を記憶し、本開示の技法を実施するために１つまたは複数のプロセッサを使用してその命令をハードウェアで実行し得る。ビデオエンコーダ２０およびビデオデコーダ３０の各々は１つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも、それぞれのデバイスにおいて複合エンコーダ／デコーダ（コーデック）の一部として統合され得る。
【００４０】
[0050]上記で紹介されたように、ＪＣＴ−ＶＣはＨＥＶＣ規格の開発を最近確定した。ＨＥＶＣ規格化の取り組みは、ＨＥＶＣテストモデル（ＨＭ）と呼ばれるビデオコーディングデバイスの発展的モデルに基づいていた。ＨＭは、たとえば、ＩＴＵ−Ｔ  Ｈ．２６４／ＡＶＣに従う既存のデバイスに対してビデオコーディングデバイスのいくつかの追加の能力を仮定する。たとえば、Ｈ．２６４は９つのイントラ予測符号化モードを与えるが、ＨＭは３５個ものイントラ予測符号化モードを与え得る。
【００４１】
[0051]ＨＥＶＣおよび他のビデオコーディング仕様では、ビデオシーケンスは一般に一連のピクチャを含む。ピクチャは「フレーム」と呼ばれることもある。ピクチャは、ＳL、ＳCb、およびＳCrと示される３つのサンプルアレイを含み得る。ＳLはルーマサンプルの２次元アレイ（すなわち、ブロック）である。ＳCbはＣｂクロミナンスサンプルの２次元アレイである。ＳCrはＣｒクロミナンスサンプルの２次元アレイである。クロミナンスサンプルは、本明細書では「クロマ」サンプルと呼ばれることもある。他の事例では、ピクチャはモノクロームであり得、ルーマサンプルのアレイのみを含み得る。
【００４２】
[0052]ピクチャの符号化表現を生成するために、ビデオエンコーダ２０はコーディングツリーユニット（ＣＴＵ：coding tree unit）のセットを生成し得る。ＣＴＵの各々は、ルーマサンプルのコーディングツリーブロックと、クロマサンプルの２つの対応するコーディングツリーブロックと、それらのコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。モノクロームピクチャまたは３つの別々の色平面を有するピクチャでは、ＣＴＵは、単一のコーディングツリーブロックと、そのコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。コーディングツリーブロックはサンプルのＮ×Ｎブロックであり得る。ＣＴＵは「ツリーブロック」または「最大コーディングユニット」（ＬＣＵ：largest coding unit）と呼ばれることもある。ＨＥＶＣのＣＴＵは、Ｈ．２６４／ＡＶＣなど、他の規格のマクロブロックに広い意味で類似し得る。しかしながら、ＣＴＵは、必ずしも特定のサイズに限定されるとは限らず、１つまたは複数のコーディングユニット（ＣＵ）を含み得る。スライスは、ラスタスキャン順序で連続的に順序付けられた整数個のＣＴＵを含み得る。
【００４３】
[0053]コード化ＣＴＵを生成するために、ビデオエンコーダ２０は、コーディングツリーブロックをコーディングブロックに分割するためにＣＴＵのコーディングツリーブロックに対して４分木区分を再帰的に実施し得、したがって「コーディングツリーユニット」という名称がある。コーディングブロックはサンプルのＮ×Ｎブロックであり得る。ＣＵは、ルーマサンプルアレイとＣｂサンプルアレイとＣｒサンプルアレイとを有するピクチャのルーマサンプルのコーディングブロックと、そのピクチャのクロマサンプルの２つの対応するコーディングブロックと、それらのコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。モノクロームピクチャまたは３つの別々の色平面を有するピクチャでは、ＣＵは、単一のコーディングブロックと、そのコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。
【００４４】
[0054]ビデオエンコーダ２０は、ＣＵのコーディングブロックを１つまたは複数の予測ブロックに区分し得る。予測ブロックは、同じ予測が適用されるサンプルの矩形（すなわち、正方形または非正方形）ブロックである。ＣＵの予測ユニット（ＰＵ）は、ルーマサンプルの予測ブロックと、クロマサンプルの２つの対応する予測ブロックと、それらの予測ブロックを予測するために使用されるシンタックス構造とを備え得る。モノクロームピクチャまたは３つの別々の色平面を有するピクチャでは、ＰＵは、単一の予測ブロックと、その予測ブロックを予測するために使用されるシンタックス構造とを備え得る。ビデオエンコーダ２０は、ＣＵの各ＰＵのルーマ予測ブロック、Ｃｂ予測ブロック、およびＣｒ予測ブロックのための予測ルーマブロック、予測Ｃｂブロック、および予測Ｃｒブロックを生成し得る。
【００４５】
[0055]ビデオエンコーダ２０は、ＰＵのための予測ブロックを生成するためにイントラ予測またはインター予測を使用し得る。ビデオエンコーダ２０がＰＵの予測ブロックを生成するためにイントラ予測を使用する場合、ビデオエンコーダ２０は、ＰＵに関連するピクチャの復号されたサンプルに基づいてＰＵの予測ブロックを生成し得る。ビデオエンコーダ２０が、ＰＵの予測ブロックを生成するためにインター予測を使用する場合、ビデオエンコーダ２０は、ＰＵに関連するピクチャ以外の１つまたは複数のピクチャの復号されたサンプルに基づいてＰＵの予測ブロックを生成し得る。
【００４６】
[0056]ビデオエンコーダ２０がＣＵの１つまたは複数のＰＵのための予測ルーマブロック、予測Ｃｂブロック、および予測Ｃｒブロックを生成した後、ビデオエンコーダ２０は、ＣＵのためのルーマ残差ブロックを生成し得る。ＣＵのルーマ残差ブロック中の各サンプルは、ＣＵの予測ルーマブロックのうちの１つ中のルーマサンプルとＣＵの元のルーマコーディングブロック中の対応するサンプルとの間の差分を示す。さらに、ビデオエンコーダ２０はＣＵのためのＣｂ残差ブロックを生成し得る。ＣＵのＣｂ残差ブロック中の各サンプルは、ＣＵの予測Ｃｂブロックのうちの１つ中のＣｂサンプルとＣＵの元のＣｂコーディングブロック中の対応するサンプルとの間の差分を示し得る。ビデオエンコーダ２０はＣＵのためのＣｒ残差ブロックをも生成し得る。ＣＵのＣｒ残差ブロック中の各サンプルは、ＣＵの予測Ｃｒブロックのうちの１つ中のＣｒサンプルとＣＵの元のＣｒコーディングブロック中の対応するサンプルとの間の差分を示し得る。
【００４７】
[0057]さらに、ビデオエンコーダ２０は、ＣＵのルーマ残差ブロックとＣｂ残差ブロックとＣｒ残差ブロックとを１つまたは複数のルーマ変換ブロックとＣｂ変換ブロックとＣｒ変換ブロックとに分解するために４分木区分を使用し得る。変換ブロックは、同じ変換が適用されるサンプルの矩形（たとえば、正方形または非正方形）ブロックである。ＣＵの変換ユニット（ＴＵ）は、ルーマサンプルの変換ブロックと、クロマサンプルの２つの対応する変換ブロックと、変換ブロックサンプルを変換するために使用されるシンタックス構造とを備え得る。したがって、ＣＵの各ＴＵは、ルーマ変換ブロック、Ｃｂ変換ブロック、およびＣｒ変換ブロックに関連し得る。ＴＵに関連するルーマ変換ブロックはＣＵのルーマ残差ブロックのサブブロックであり得る。Ｃｂ変換ブロックはＣＵのＣｂ残差ブロックのサブブロックであり得る。Ｃｒ変換ブロックはＣＵのＣｒ残差ブロックのサブブロックであり得る。モノクロームピクチャまたは３つの別々の色平面を有するピクチャでは、ＴＵは、単一の変換ブロックと、その変換ブロックのサンプルを変換するために使用されるシンタックス構造とを備え得る。
【００４８】
[0058]ビデオエンコーダ２０は、ＴＵのためのルーマ係数ブロックを生成するために、ＴＵのルーマ変換ブロックに１つまたは複数の変換を適用し得る。係数ブロックは変換係数の２次元アレイであり得る。変換係数はスカラー量であり得る。ビデオエンコーダ２０は、ＴＵのためのＣｂ係数ブロックを生成するために、ＴＵのＣｂ変換ブロックに１つまたは複数の変換を適用し得る。ビデオエンコーダ２０は、ＴＵのためのＣｒ係数ブロックを生成するために、ＴＵのＣｒ変換ブロックに１つまたは複数の変換を適用し得る。
【００４９】
[0059]係数ブロック（たとえば、ルーマ係数ブロック、Ｃｂ係数ブロックまたはＣｒ係数ブロック）を生成した後に、ビデオエンコーダ２０は、係数ブロックを量子化し得る。量子化は、概して、変換係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮を行うプロセスを指す。ビデオエンコーダ２０が係数ブロックを量子化した後に、ビデオエンコーダ２０は、量子化変換係数を示すシンタックス要素をエントロピー符号化し得る。たとえば、ビデオエンコーダ２０は、量子化変換係数を示すシンタックス要素に対してコンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ：Context-Adaptive Binary Arithmetic Coding）を実施し得る。
【００５０】
[0060]ビデオエンコーダ２０は、コード化ピクチャと関連データとの表現を形成するビットのシーケンスを含むビットストリームを出力し得る。ビットストリームは、ＮＡＬユニットのシーケンスを備え得る。ＮＡＬユニットは、ＮＡＬユニット中のデータのタイプの指示と、必要に応じてエミュレーション防止ビットが点在させられたＲＢＳＰの形態でそのデータを含んでいるバイトとを含んでいる、シンタックス構造である。ＮＡＬユニットの各々は、ＮＡＬユニットヘッダを含み、ＲＢＳＰをカプセル化する。ＮＡＬユニットヘッダは、ＮＡＬユニットタイプコードを示すシンタックス要素を含み得る。ＮＡＬユニットのＮＡＬユニットヘッダによって指定されるＮＡＬユニットタイプコードは、ＮＡＬユニットのタイプを示す。ＲＢＳＰは、ＮＡＬユニット内にカプセル化された整数個のバイトを含んでいるシンタックス構造であり得る。いくつかの事例では、ＲＢＳＰはゼロビットを含む。
【００５１】
[0061]異なるタイプのＮＡＬユニットは、異なるタイプのＲＢＳＰをカプセル化し得る。たとえば、第１のタイプのＮＡＬユニットはＰＰＳのためのＲＢＳＰをカプセル化し得、第２のタイプのＮＡＬユニットはコード化スライスのためのＲＢＳＰをカプセル化し得、第３のタイプのＮＡＬユニットはＳＥＩメッセージのためのＲＢＳＰをカプセル化し得、以下同様である。（パラメータセットおよびＳＥＩメッセージのためのＲＢＳＰとは対照的に）ビデオコーディングデータのためのＲＢＳＰをカプセル化するＮＡＬユニットは、ＶＣＬ  ＮＡＬユニットと呼ばれることがある。
【００５２】
[0062]ビデオデコーダ３０は、ビデオエンコーダ２０によって生成されたビットストリームを受信し得る。さらに、ビデオデコーダ３０は、ビットストリームからシンタックス要素を取得するために、ビットストリームをパースし得る。ビデオデコーダ３０は、ビットストリームから取得されたシンタックス要素に少なくとも部分的に基づいてビデオデータのピクチャを再構築し得る。ビデオデータを再構築するためのプロセスは、概して、ビデオエンコーダ２０によって実施されるプロセスの逆であり得る。さらに、ビデオデコーダ３０は、現在ＣＵのＴＵに関連する係数ブロックを逆量子化（inverse quantize）し得る。ビデオデコーダ３０は、現在ＣＵのＴＵに関連する変換ブロックを再構築するために、係数ブロックに対して逆変換を実施し得る。ビデオデコーダ３０は、現在ＣＵのＰＵのための予測ブロックのサンプルを現在ＣＵのＴＵの変換ブロックの対応するサンプルに加算することによって、現在ＣＵのコーディングブロックを再構築し得る。ピクチャの各ＣＵのためのコーディングブロックを再構築することによって、ビデオデコーダ３０はピクチャを再構築し得る。
【００５３】
[0063]ビデオコーディングの分野において、復号されたビデオ信号の品質を向上させるためにフィルタ処理を適用することは、一般的である。フィルタは、フィルタ処理されたフレームが将来のフレームの予測のために使用されないポストフィルタとして、またはフィルタ処理されたフレームが将来のフレームを予測するために使用され得るループ内フィルタとして適用され得る。フィルタは、たとえば、元の信号と復号されたフィルタ処理された信号との間の誤差を最小限に抑えることによって設計され得る。変換係数と同様に、フィルタｈ（ｋ，ｌ）、ｋ＝−Ｋ，．．．，Ｋ、ｌ＝−Ｋ，．．．Ｋの係数は、量子化され、
【００５４】
【数１】
2019505143.tif 000003
【００５５】
コーディングされ、デコーダに送られ得る。ｎｏｒｍＦａｃｔｏｒは、通常、２nに等しい。ｎｏｒｍＦａｃｔｏｒの値が大きいほど、量子化がより正確になり、これは、一般に、より良い性能を与える量子化フィルタ係数ｆ（ｋ，ｌ）を生じる。一方、ｎｏｒｍＦａｃｔｏｒのより大きい値は、一般に、より多くのビットを送信することを必要とする係数ｆ（ｋ，ｌ）を生成する。
【００５６】
[0064]デコーダにおいて、復号されたフィルタ係数ｆ（ｋ，ｌ）は、以下のように再構築された画像Ｒ（ｉ，ｊ）に適用され、
【００５７】
【数２】
2019505143.tif 000004
【００５８】
ここで、ｉおよびｊは、フレーム内のピクセルの座標である。
【００５９】
[0065]ＡＬＦは、ＨＥＶＣにおいて提案され、様々なワーキングドラフト、およびテストモデルソフトウェア、すなわち、ＨＥＶＣテストモデル（または「ＨＭ」）中に含まれたが、ＡＬＦは、ＨＥＶＣの最終バージョン中に含まれない。関連技術の間で、ＨＥＶＣテストモデルバージョンＨＭ−３．０におけるフィルタ設計が、概して、最も効率的な設計と見なされた。
【００６０】
[0066]ＨＭ−３．０におけるＡＬＦは、ピクチャレベル最適化に基づく。すなわち、フィルタ係数は、全フレームがコーディングされた後に導出される。ルーマ成分のための２つのモード、すなわち、ブロックベースの適応（ＢＡ）および領域ベースの適応（ＲＡ）があった。これらの２つのモードは、同じフィルタ形状およびフィルタ処理演算ならびにシンタックス要素を共有する。２つのモード間の唯一の違いは分類方法である。
【００６１】
[0067]ＨＭ−３．０におけるブロックベースの適応を用いた適応ループフィルタ処理（ＡＬＦ）が、ループ内フィルタの一例である。ルーマ成分のためのＡＬＦの場合、全ピクチャ中の４×４ブロックは、異なる特性を有する画像中の領域のための異なるフィルタがあるべきであるという仮定の下で、ブロックの方向性（最高３つの方向）と、ブロックの２Ｄラプラシアンアクティビティ（最高５つのアクティビティ値）とに基づいて分類される。方向性Ｄおよび量子化アクティビティＡの計算は、式（２）〜（５）に示されており、
【００６２】
【数３】
2019505143.tif 000005
【００６３】
ここで、Ｒ（ｉ，ｊ）は、４×４ブロックの左上に対する相対座標（ｉ，ｊ）をもつ再構築されたピクセルを示す。Ａは、ＨＭ−３．０に記載されているように両端値を含む０〜４の範囲にさらに量子化され、Ａの量子化値は、
【００６４】
【数４】
2019505143.tif 000006
【００６５】
（以下、［数４］の記載をＡ＾と記載する）として示されることになる。
【００６６】
[0068]全体で、各ブロックは、１５（５×３）個のクラスのうちの１つにカテゴリー分類され得、インデックスは、ブロックのＤのおよびＡ＾の値に従って、各４×４ブロックに割り当てられる：５Ｄ＋Ａ＾。したがって、ＡＬＦパラメータの最高１５個のセットが、ピクチャのルーマ成分のためにシグナリングされ得る。シグナリングコストを節約するために、クラスは、クラスインデックス値に沿ってマージされ得る。各クラス（またはマージされたクラス）のために、フィルタ係数のセットがシグナリングされ得る。さらに、ＨＭ−３．０では、ＡＬＦがＣＵに適用されるかどうかを示すためのフラグが、ＣＵレベルにおいてシグナリングされる。
【００６７】
[0069]本開示の技法によれば、（ビデオエンコーダ２０またはビデオデコーダ３０などの）ビデオコーディングデバイスが、復号されたビデオデータのフィルタ処理を実施し得る。フィルタ係数をシグナリングするためのユニットは、ピクチャ／フレーム、スライス、タイルなどであり得ることに留意されたい。簡単のために、以下の説明は、主に、ユニットをピクチャとして扱う。しかしながら、本開示の技法は、ピクチャレベルＡＬＦシグナリングに限定されない。以下でより詳細に説明されるように、ビデオエンコーダ２０がビデオデータのピクチャを符号化した後に、ビデオエンコーダ２０は、その後、たとえば、参照ピクチャとして使用するためにピクチャを復号し得る。このようにして、ビデオエンコーダ２０は、ビデオデータを符号化および復号する。ビデオエンコーダ２０およびビデオデコーダ３０は、「ループ内」フィルタ処理プロセスとしてフィルタ処理を実施し、その後符号化および／または復号されるピクチャのための参照ピクチャとしてその後使用される、復号されたピクチャにＡＬＦを適用し得る。「ビデオコーダ」の本開示における説明は、ビデオエンコーダ２０などのビデオエンコーダ、およびビデオデコーダ３０などのビデオデコーダの説明として理解されるべきである。
【００６８】
[0070]本開示の技法によれば、（ビデオエンコーダ２０および／またはビデオデコーダ３０などの）ビデオコーダは、ブロックの様々なクラスのためのフィルタを構築し得る。ビデオコーダは、たとえば、ブロックのピクセルから計算された勾配の方向性に基づいて、ブロックを分類し得る。ビデオコーダは、水平方向勾配、垂直方向勾配、４５度対角方向勾配、または１３５度対角方向勾配のうちの１つまたは複数を計算し得る。概して、ビデオコーダは、ブロックの各クラスのための異なるフィルタを構築し得る。しかしながら、いくつかの場合には、ビデオコーダは、ブロックの２つまたはそれ以上のクラスによって使用されるフィルタ係数のセットを計算し得る。たとえば、ビデオコーダは、フィルタ係数の複数のセットを計算し得る。ビデオコーダは、さらに、フィルタ係数の複数のセット中のフィルタ係数の１つのセットを識別する、ブロックのクラスの各々（またはブロックのクラスのサブセット）のためのインデックスをコーディングし得る。したがって、ビデオコーダが、ブロックの２つまたはそれ以上のクラスのための同じインデックスをコーディングする場合、ブロックのそれらのクラスは、フィルタ係数の同じセット、すなわち、コード化インデックス値に対応するフィルタ係数のセットを使用することになる。
【００６９】
[0071]追加または代替として、ビデオコーダは、ブロックの少なくとも１つのクラスのために、フィルタが、同じフィルタを使用することによって生成されるべきであることを示し得るが、幾何学的変換がフィルタのフィルタサポート領域またはフィルタ係数のいずれかに適用される。したがって、同じクラスインデックスをもつブロックの場合でも、フィルタサポートは、幾何学的変換により異なり得る。機能的に、フィルタサポート領域に幾何学的変換を適用することは、フィルタ係数に幾何学的変換を適用することと同じ数学的結果を生じ、したがって、ビデオコーダは、フィルタサポート領域またはフィルタ係数のいずれかに幾何学的変換を適用し得る。この例では、ビデオコーダは、ブロックの現在のクラスのために、幾何学的変換タイプ（たとえば、回転、対角反転、または垂直反転、あるいは非幾何学的変換）を識別するデータ、ならびにそれのフィルタ係数が、ブロックの現在のクラスのための生成されたフィルタのために使用されるべきである、前に構築されたフィルタをコーディングし得る。
【００７０】
[0072]追加または代替として、ビデオコーダは、少なくとも１つの固定フィルタが、ブロックのクラスのためのフィルタ係数を予測するために使用されるかどうかを示す（たとえば、フラグの）値をコーディングし得る。すなわち、フラグは、たとえば、ブロックのクラスのフィルタのためのフィルタ係数が、固定フィルタから予測されるか、あるいは代わりに前にコーディングされたピクチャのフィルタから、または固定フィルタもしくは前にコーディングされたピクチャからのフィルタのいずれかからの予測なしに予測（または継承）されることを示し得る。いくつかの例では、ビデオコーダは、ブロックの各クラスのための複数の固定フィルタで構成され得る。そのような例では、ビデオコーダは、さらに、フィルタ係数が固定フィルタから予測されることを値が示すとき、ブロックのクラスのための現在のフィルタのフィルタ係数を予測するために使用されるべき複数の固定フィルタのうちの１つを識別する、複数の固定フィルタへのインデックスをコーディングし得る。
【００７１】
[0073]いくつかの例では、ビデオコーダは、さらに、クラスのいずれかのためのフィルタ係数のいずれも固定フィルタから予測されないこと、またはすべてのフィルタ係数が固定フィルタから予測されること、または固定フィルタから予測されるいくつかのフィルタ係数があるが、他のフィルタ係数は固定フィルタから予測されないことのいずれかを示す情報をコーディングし得る。フィルタ係数のいずれも固定フィルタから予測されないとき、ビデオコーダは、複数の固定フィルタへのインデックスを表すデータのコーディングを回避（たとえば、省略または防止）し得る。一方、フィルタ係数の一部または全部が固定フィルタから予測されるとき、ビデオコードは、さらに、１つのクラスのためのフィルタが固定フィルタから予測されるか否か各クラスのためのフラグをコーディングし得る。さらに、ビデオコーダは、固定フィルタから予測されるフィルタ係数のセットのためのそれぞれの複数の固定フィルタへのインデックスをコーディングし得、ここで、インデックスは、対応するフィルタ係数がそれから予測されるべきである参照固定フィルタを識別する。さらに、ビデオコーダは、対応するフィルタ係数を予測するために、インデックスによって識別された固定フィルタを使用し得る。予測の後に、ビデオコーダは、さらに、被予測フィルタ係数と実際のフィルタ係数値との間の差分を表す残差値（たとえば、オフセット値）をコーディングし得る。
【００７２】
[0074]ビデオコーダは、単独でまたは組み合わせてこれらの技法を適用し得る。たとえば、ビデオコーダは、フィルタ係数の複数のセットを明示的にコーディングし、フィルタ係数の複数のセットへのブロックのクラスの第１のセットのためのインデックスをコーディングし、固定フィルタ、または１つまたは複数の参照ピクチャのフィルタのいずれかから、ブロックのクラスの第２のセットのフィルタのためのフィルタ係数を予測コーディングし得る。代替的に、ビデオコーダは、固定フィルタから、または１つまたは複数の前にコーディングされたピクチャのフィルタからのいずれかから予測されたフィルタ係数の複数のセットの各々をコーディングし、次いで、ブロックのクラスの各々のために、フィルタ係数のセットのうちの１つを識別するインデックスをコーディングし得る。また別の例として、ビデオコーダは、上記の技法のいずれかを使用してブロックのクラスの第１のセットのためのフィルタ係数をコーディングし、幾何学的変換を識別するデータと、フィルタ係数をそれから継承すべきブロックのクラスの第１のセットのうちの１つを識別するデータとを含む、ブロックのクラスの第２のセットのための幾何学的変換情報をコーディングし得る。
【００７３】
[0075]図２は、ＢＡ（ブロックベースの適応）分類のために使用される１５個の（クラスとも呼ばれる）グループを示す概念図である。図２の例では、フィルタは、アクティビティメトリックのための値の範囲（すなわち、範囲０〜範囲４）および方向メトリックにマッピングされる。図２中の方向メトリックは、式３から上記の０、１、および２の値に対応し得る、無方向、水平、および垂直の値を有するものとして示されている。図２の特定の例は、１５個のグループにマッピングされる、６つの異なるフィルタ（すなわち、フィルタ１、フィルタ２．．．フィルタ６）を示すが、より多いまたはより少ないフィルタが同様に使用され得る。図２は、グループ２２１〜２３５として識別される１５個のグループをもつ例を示すが、より多いまたはより少ないグループも使用され得る。たとえば、アクティビティメトリックのための５つの範囲の代わりに、より多いまたはより少ない範囲が使用され、より多いまたはより少ないグループを生じ得る。追加または代替として、３つの方向のみの代わりに、追加の方向（たとえば、４５度方向および１３５度方向）も使用され得る。たとえば、アクティビティメトリックの５つの範囲が、５つの方向（たとえば、無方向、水平、垂直、４５−対角、および１３５−対角）とともに使用された場合、２５個のグループが、分類のために使用され、２５個のグループの各々は、フィルタにマッピングされることになる。
【００７４】
[0076]ピクチャ中の両方のクロマ成分のために、フィルタ係数の単一のセットが適用され得る。参照ピクチャのフィルタ係数は、記憶され、現在ピクチャのフィルタ係数として再利用されることを可能にされ得る。現在ピクチャは、参照ピクチャのために記憶されたフィルタ係数を使用することを選択し、フィルタ係数シグナリングをバイパスし得る。この場合、参照ピクチャのうちの１つへのインデックスのみが、シグナリングされる必要があり、示された参照ピクチャの記憶されたフィルタ係数は、現在ピクチャのために継承される。
【００７５】
[0077]本開示の技法によれば、フィルタ処理の前に、ビデオコーダ（たとえば、ビデオエンコーダ２０またはビデオデコーダ３０）は、ＡＬＦを実行する前の再構築された（１つまたは複数の）ピクセルの勾配の向きに応じて、フィルタサポート領域中のピクセル（式（１）においてフィルタ処理された係数によって乗算されたピクセル）に、回転、対角および垂直反転など、いくつかの幾何学的変換を適用し得る。これらの変換は、ピクチャ内の異なる領域間の類似度、たとえば、それらの方向性を増加させ得る。これは、デコーダに送られなければならないフィルタの数を低減し、したがって、フィルタを表すために必要とされるビットの数を低減するか、または代替的に再構築誤差を低減することができる。フィルタサポート領域に変換を適用することは、フィルタ係数に直接、変換を適用することと等価である。したがって、ビデオコーダは、代わりに、フィルタサポート領域の代わりにフィルタ係数に変換を適用し得る。
【００７６】
[0078]すでに紹介された他の技法と一緒に、またはそれらとは無関係にのいずれかで使用され得る本開示の別の技法によれば、フィルタ係数を表すために必要とされるビットの数を低減するために、ビデオコーダは、ブロックの異なるクラスをマージし得る。しかしながら、ＨＭ−３．０の場合とは異なり、クラスの任意のセットが、Ｃの非連続値を有するクラスさえ、マージされ得る。どのクラスがマージされるかに関する情報は、クラスの各々（たとえば、２５個のクラスの各々）のためにインデックスｉCを送ることによって与えられる。同じインデックスｉCを有するクラスは、同じフィルタｆ（ｋ，ｌ）を共有する。したがって、ビデオコーダは、フィルタ係数の複数のセットを生成し、複数のクラスの各々のために、インデックス値ｉCを表すデータをコーディングし得、ここで、Ｃは、１からクラスの数の間の値であり得、ｉCは、クラスＣのためのフィルタ係数のセットを識別するフィルタ係数の生成されたセットへのインデックスである。
【００７７】
[0079]すでに紹介された他の技法と一緒に、またはそれらとは無関係にのいずれかで使用され得る本開示の別の技法によれば、ＨＭ−３．０に記載されているＡＬＦに対する別の変更は、ビデオコーダ（たとえば、ビデオエンコーダ２０またはビデオデコーダ３０）が、たとえば、オフライントレーニングによって取得され、フィルタ係数を予測コーディングするために各クラスに割り当てられた、ｎ個の固定フィルタのセットを使用し得ることである。フィルタ係数が固定フィルタからそれのために予測される各クラスのために、ビデオコーダは、ｎ個の固定フィルタのうちのどの１つが使用されるかを表すデータをコーディングし得る。別の例では、いくつかのクラスは、ｎ個の固定フィルタの同じセットが割り当てられ得、さらにはｎ個の固定フィルタの同じセットが、すべてのクラスに割り当てられ得る。固定フィルタが所与のクラスのために選択されるときでも、適応フィルタの係数は、このクラスのために依然としてシグナリングされ得る。再構築された画像に適用され得るフィルタの係数は、この場合、シグナリングされた係数ｆ（ｋ，ｌ）と固定フィルタ係数との和になる。クラスの数は、異なる固定フィルタがクラスのために選定された場合でも、同じシグナリングされた係数ｆ（ｋ，ｌ）を共有することができる。
【００７８】
[0080]次に、上記で紹介された技法の例示的な実装形態が説明される。一例では、各Ｎ×Ｎブロックは、それの方向性Ｄとアクティビティの量子化値Ａ＾とに基づいて、２５個のクラスのうちの１つにカテゴリー分類される：
Ｃ＝５Ｄ＋Ａ＾          （６）
【００７９】
[0081]水平勾配、垂直勾配、および２つの対角勾配の値は、１−Ｄラプラシアンを使用して計算される：
【００８０】
【数５】
2019505143.tif 000007
【００８１】
[0082]これらの例では、ｇvは垂直勾配を表し、ｇhは水平勾配を表し、ｇd1は４５度対角勾配を表し、ｇd2は１３５度対角勾配を表す。
【００８２】
[0083]インデックスｉおよびｊは、Ｎ×Ｎブロック中の左上ピクセルの座標を指す。方向性Ｄを割り当てるために、水平および垂直勾配の最大値および最小値の比、
【００８３】
【数６】
2019505143.tif 000008
【００８４】
と、２つの対角勾配の最大値と最小値との比、
【００８５】
【数７】
2019505143.tif 000009
【００８６】
とが互いに比較され、しきい値ｔ1およびｔ2のセットを用いて、
ステップ１。
【００８７】
【数８】
2019505143.tif 000010
【００８８】
の両方である場合、Ｄは０に設定される（ブロックは「テクスチャ」としてカテゴリー分類される）。
ステップ２。
【００８９】
【数９】
2019505143.tif 000011
【００９０】
である場合、ステップ３から続き、他の場合、ステップ４から続く。
ステップ３。
【００９１】
【数１０】
2019505143.tif 000012
【００９２】
である場合、Ｄは２に設定され、他の場合、Ｄは１に設定される（ブロックは、それぞれ、「強水平／垂直」または「水平／垂直」としてカテゴリー分類される）。
ステップ４。
【００９３】
【数１１】
2019505143.tif 000013
【００９４】
である場合、Ｄは４に設定され、他の場合、Ｄは３に設定される（ブロックは、それぞれ、「強対角」または「対角」としてカテゴリー分類される）。
【００９５】
[0084]アクティビティ値Ａは次のように計算される。
【００９６】
【数１２】
2019505143.tif 000014
【００９７】
[0085]Ａは、両端値を含む０〜４の範囲にさらに量子化され、量子化値はＡ＾として示される：
Ａ＝ｍｉｎ（１５，（２４・Ａ）＞＞１３）およびＡ＾＝Ｑ［Ａ］、ここで、  
Ｑ＝｛０，１，２，２，２，２，２，３，３，３，３，３，３，３，３，４｝。        （１４）
【００９８】
[0086]最高２５個のフィルタがシグナリングされ、各クラスについて１つシグナリングされ得る。フィルタ係数を表すために必要とされるビットの数を低減するために、異なるクラスがマージされ得る。しかしながら、ＨＭ−３．０の場合とは異なり、クラスの任意のセットが、Ｃの非連続値を有するクラスさえ、マージされ得る。どのクラスがマージされるかに関する情報は、２５個のクラスの各々のために、インデックスｉCをコーディングすることによって与えられる。同じインデックスｉCを有するクラスは、同じフィルタｆ（ｋ，ｌ）を共有する。
【００９９】
[0087]各ブロックをフィルタ処理する前に、回転または対角および垂直反転など、単純な幾何学的変換が、そのブロックのために計算された勾配値に応じて、フィルタ係数ｆ（ｋ，ｌ）に適用され得る。これは、フィルタサポート領域中のピクセルにこれらの変換を適用することと等価である。アイデアは、ＡＬＦが適用される異なるブロックを、それらの方向性を整合させることによって、より類似させることである。幾何学的変換は次のように定義される、
【０１００】
【数１３】
2019505143.tif 000015
【０１０１】
ここで、Ｋがフィルタのサイズであり、０≦ｋ、ｌ≦Ｋ−１が係数座標であり、したがって、ロケーション（０，０）が左上隅にあり、ロケーション（Ｋ−１，Ｋ−１）が右下隅にある。式（７）〜（１０）を使用して計算された勾配値と、式（１５）中で指定される幾何学的変換との間のマッピングが、表１中に与えられている。
【０１０２】
【表１】
2019505143.tif 000016
【０１０３】
[0088]いくつかの例では、フィルタ係数の予測は、固定フィルタからのものであり得る。フィルタ係数の時間予測は、インターコード化フレームについてのコーディング効率を改善し得る。時間予測が利用可能でない（イントラフレーム）ときのコーディング効率を改善するために、ｎ個の固定フィルタのセットが、各クラスに割り当てられる。いくつかの例では、２５個のクラスの各々のために、固定フィルタが使用された場合、フラグがシグナリングされ、必要な場合、選定されたフィルタのインデックスがシグナリングされる。いくつかの例では、フラグの値は、固定フィルタが使用されるかどうかを示し得る。いくつかの例では、必要な場合、選定されたフィルタを表すインデックスがシグナリングされ得る。代替的に、以下の３つの例示的な定義された事例のうちの１つが、使用され得る。第１の事例では、２５個のクラスのフィルタのいずれも、固定フィルタから予測されない。第２の事例では、クラスのすべてのフィルタが、固定フィルタから予測される。第３の事例では、いくつかのクラスに関連するフィルタが、固定フィルタから予測され、クラスの残りに関連するフィルタは、固定フィルタから予測されない。
【０１０４】
[0089]上記の３つの例示的な事例のうちのどれが適用されるかを示すための変数が、コーディングされ得る。さらに、以下が適用され得る。  
・  変数が事例１を示す場合、固定フィルタのインデックスをさらにシグナリングする必要はない。  
・  さもなければ、変数が事例２を示す場合、各クラスのための選択された固定フィルタのインデックスがコーディングされる。  
・  さもなければ、変数が事例３を示す場合、各クラスのための１ビットが最初にシグナリングされ得、固定フィルタが使用される場合、インデックスがさらにシグナリングされ得る。
【０１０５】
[0090]固定フィルタが所与のクラスのために選択されるときでも、適応フィルタの係数は、このクラスのために依然として送られ得る。再構築された画像に適用されることになるフィルタの係数は、この場合、シグナリングされた係数ｆ（ｋ，ｌ）と固定フィルタ係数との和になる。クラスの数は、異なる固定フィルタがクラスのために選定された場合でも、同じ係数ｆ（ｋ，ｌ）を共有することができる。一代替形態では、イントラフレームに適用される固定フィルタは、ＰまたはＢスライスなど、インターコード化フレームにも適用され得る。
【０１０６】
[0091]図３は、フィルタ係数差分をシグナリングするための例示的なパターンを示す概念図である。以下の技法は、１つまたは複数の固定フィルタ、たとえば、固定フィルタのための係数値を定義するために使用され得る。一例では、固定フィルタは、オフライントレーニングから導出され、最大フィルタタップ（たとえば、９×９ダイヤモンドフィルタ形状）のためのフィルタ係数のみが定義される。導出されたフィルタ係数と、選択された固定フィルタとの間の差分をコーディングする前に、ビデオコーダは、最初に、フィルタ係数差分をシグナリングするパターンを示すインデックスをコーディングし得る。たとえば、９×９対称ダイヤモンドフィルタ形状のための固定フィルタが、図３に示されており、ここにおいて、フィルタ係数はＦiによって示される（ｉは両端値を含む０〜２０の範囲中にある）。図３に示されているように、シグナリングされたパターンインデックスが、５×５ダイヤモンドフィルタ形状を示し、そのフィルタ係数が、固定フィルタから予測されるとき、図３のグレーのエリアに位置する導出されたフィルタ係数の値は、そのまま保たれ、これらの位置についての差分をシグナリングする必要はない（すなわち、これらのグレーの位置についての差分は０に等しい）。この場合、ビデオコーダは、導出された係数と固定フィルタ係数（Ｆ０〜Ｆ６）との間の差分を定義するデータをコーディングする。代替的に、ビデオコーダは、ＤＣ係数（すなわち、Ｆ６）の差分を定義するデータをコーディングする必要はないが、代わりに、他のコード化差分値に関するＤＣ係数のための差分を導出する。この場合、フィルタ係数が固定フィルタから予測されるとき、９×９ダイヤモンドフィルタ処理プロセスが常に適用されることに留意されたい。
【０１０７】
[0092]別の例では、固定フィルタのＭ個のバージョンがあらかじめ定義され得、ここにおいて、Ｍは、サポートされるフィルタ形状の総数を示す。ビデオコーダは、最初に、選択されたフィルタ形状のインデックスをコーディングし、次いで、フィルタ形状に関連する選択された固定フィルタのインデックスを表すデータをコーディングし得る。この場合、（Ｍの値に依存する）複数の異なるフィルタ処理プロセスがサポートされることに留意されたい。
【０１０８】
[0093]図４は、本開示で説明される技法を実装し得る例示的なビデオエンコーダ２０を示すブロック図である。ビデオエンコーダ２０は、ビデオスライス内のビデオブロックのイントラコーディングおよびインターコーディングを実施し得る。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオの空間冗長性を低減または除去するために空間予測に依拠する。インターコーディングは、ビデオシーケンスの隣接するフレームまたはピクチャ内のビデオの時間冗長性を低減または除去するために時間予測に依拠する。イントラモード（Ｉモード）は、いくつかの空間ベースの圧縮モードのいずれかを指すことがある。単方向予測（Ｐモード）または双予測（Ｂモード）などのインターモードは、いくつかの時間ベースの圧縮モードのいずれかを指すことがある。
【０１０９】
[0094]図４の例では、ビデオエンコーダ２０は、ビデオデータメモリ３３と、区分ユニット３５と、予測処理ユニット４１と、加算器５０と、変換処理ユニット５２と、量子化ユニット５４と、エントロピー符号化ユニット５６とを含む。予測処理ユニット４１は、動き推定ユニット（ＭＥＵ）４２と、動き補償ユニット（ＭＣＵ）４４と、イントラ予測ユニット４６とを含む。ビデオブロック再構築のために、ビデオエンコーダ２０はまた、逆量子化ユニット５８と、逆変換処理ユニット６０と、加算器６２と、ＡＬＦユニット６４と、復号ピクチャバッファ（ＤＰＢ：decoded picture buffer）６６とを含む。
【０１１０】
[0095]図４に示されているように、ビデオエンコーダ２０はビデオデータを受信し、受信されたビデオデータをビデオデータメモリ３３に記憶する。ビデオデータメモリ３３は、ビデオエンコーダ２０の構成要素によって符号化されるべきビデオデータを記憶し得る。ビデオデータメモリ３３に記憶されるビデオデータは、たとえば、ビデオソース１８から取得され得る。ＤＰＢ６６は、たとえば、イントラコーディングモードまたはインターコーディングモードでビデオエンコーダ２０によってビデオデータを符号化する際に使用するための参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ３３およびＤＰＢ６６は、同期ＤＲＡＭ（ＳＤＲＡＭ）を含むダイナミックランダムアクセスメモリ（ＤＲＡＭ）、磁気抵抗ＲＡＭ（ＭＲＡＭ）、抵抗性ＲＡＭ（ＲＲＡＭ（登録商標））、または他のタイプのメモリデバイスなど、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ３３およびＤＰＢ６６は、同じメモリデバイスまたは別々のメモリデバイスによって与えられ得る。様々な例では、ビデオデータメモリ３３は、ビデオエンコーダ２０の他の構成要素とともにオンチップであるか、またはそれらの構成要素に対してオフチップであり得る。
【０１１１】
[0096]区分ユニット３５はビデオデータメモリ３３からビデオデータを取り出し、ビデオデータをビデオブロックに区分する。この区分はまた、たとえば、ＬＣＵおよびＣＵの４分木構造に従って、スライス、タイル、または他のより大きいユニットへの区分、ならびにビデオブロック区分を含み得る。ビデオエンコーダ２０は、概して、符号化されるべきビデオスライス内のビデオブロックを符号化する構成要素を示している。スライスは、複数のビデオブロックに（および、場合によっては、タイルと呼ばれるビデオブロックのセットに）分割され得る。予測処理ユニット４１は、誤差結果（たとえばコーディングレートおよびひずみレベル）に基づいて現在ビデオブロックについて、複数のイントラコーディングモードのうちの１つ、または複数のインターコーディングモードのうちの１つなど、複数の可能なコーディングモードのうちの１つを選択し得る。予測処理ユニット４１は、得られたイントラコード化ブロックまたはインターコード化ブロックを、残差ブロックデータを生成するために加算器５０に与え、参照ピクチャとして使用するための符号化ブロックを再構築するために加算器６２に与え得る。
【０１１２】
[0097]予測処理ユニット４１内のイントラ予測ユニット４６は、空間圧縮を行うために、コーディングされるべき現在ブロックと同じフレームまたはスライス中の１つまたは複数の隣接ブロックに対して現在ビデオブロックのイントラ予測を実施し得る。予測処理ユニット４１内の動き推定ユニット４２および動き補償ユニット４４は、時間圧縮を行うために、１つまたは複数の参照ピクチャ中の１つまたは複数の参照ブロックに対して現在ビデオブロックのインター予測を実施する。
【０１１３】
[0098]動き推定ユニット４２は、ビデオシーケンスの所定のパターンに従ってビデオスライスのためのインター予測モードを決定するように構成され得る。所定のパターンは、シーケンス中のビデオスライスをＰスライスまたはＢスライスとして指定し得る。動き推定ユニット４２と動き補償ユニット４４とは、高度に統合され得るが、概念的な目的のために別個に示されている。動き推定ユニット４２によって実施される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、参照ピクチャ内の予測ブロックに対する現在ビデオフレームまたはピクチャ内のビデオブロックのＰＵの変位を示し得る。
【０１１４】
[0099]予測ブロックは、絶対差分和（ＳＡＤ）、２乗差分和（ＳＳＤ）、または他の差分メトリックによって決定され得るピクセル差分に関して、コーディングされるべきビデオブロックのＰＵにぴったり一致することがわかるブロックである。いくつかの例では、ビデオエンコーダ２０は、ＤＰＢ６６に記憶された参照ピクチャのサブ整数ピクセル位置の値を計算し得る。たとえば、ビデオエンコーダ２０は、参照ピクチャの１／４ピクセル位置、１／８ピクセル位置、または他の分数ピクセル位置の値を補間し得る。したがって、動き推定ユニット４２は、フルピクセル位置と分数ピクセル位置とに対して動き探索を実施し、分数ピクセル精度で動きベクトルを出力し得る。
【０１１５】
[0100]動き推定ユニット４２は、ＰＵの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコード化スライスにおけるビデオブロックのＰＵのための動きベクトルを計算する。参照ピクチャは、第１の参照ピクチャリスト（リスト０）または第２の参照ピクチャリスト（リスト１）から選択され得、それらの参照ピクチャリストの各々は、ＤＰＢ６６に記憶された１つまたは複数の参照ピクチャを識別する。動き推定ユニット４２は、計算された動きベクトルをエントロピー符号化ユニット５６と動き補償ユニット４４とに送る。
【０１１６】
[0101]動き補償ユニット４４によって実施される動き補償は、動き推定によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成すること、場合によってはサブピクセル精度への補間を実施することを伴い得る。現在ビデオブロックのＰＵのための動きベクトルを受信すると、動き補償ユニット４４は、動きベクトルが参照ピクチャリストのうちの１つにおいてそれを指す予測ブロックの位置を特定し得る。ビデオエンコーダ２０は、コーディングされている現在ビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって、残差ビデオブロックを形成する。ピクセル差分値は、ブロックの残差データを形成し、ルーマ差分成分とクロマ差分成分の両方を含み得る。加算器５０は、この減算演算を実施する１つまたは複数の構成要素を表す。動き補償ユニット４４はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ３０が使用するためのビデオブロックとビデオスライスとに関連するシンタックス要素を生成し得る。
【０１１７】
[0102]予測処理ユニット４１が、イントラ予測またはインター予測のいずれかを介して、現在ビデオブロックのための予測ブロックを生成した後、ビデオエンコーダ２０は、現在ビデオブロックから予測ブロックを減算することによって残差ビデオブロックを形成する。残差ブロック中の残差ビデオデータは、１つまたは複数のＴＵ中に含まれ、変換処理ユニット５２に適用され得る。変換処理ユニット５２は、離散コサイン変換（ＤＣＴ：discrete cosine transform）または概念的に同様の変換などの変換を使用して、残差ビデオデータを残差変換係数に変換する。変換処理ユニット５２は、残差ビデオデータをピクセル領域から周波数領域などの変換領域に変換し得る。
【０１１８】
[0103]変換処理ユニット５２は、得られた変換係数を量子化ユニット５４に送り得る。量子化ユニット５４は、ビットレートをさらに低減するために変換係数を量子化する。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって修正され得る。いくつかの例では、量子化ユニット５４は、次いで、量子化変換係数を含む行列のスキャンを実施し得る。代替的に、エントロピー符号化ユニット５６がスキャンを実施し得る。
【０１１９】
[0104]量子化の後に、エントロピー符号化ユニット５６は量子化変換係数をエントロピー符号化する。たとえば、エントロピー符号化ユニット５６は、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）、シンタックスベースコンテキスト適応型バイナリ算術コーディング（ＳＢＡＣ）、確率間隔区分エントロピー（ＰＩＰＥ）コーディングあるいは別のエントロピー符号化方法または技法を実施し得る。エントロピー符号化ユニット５６によるエントロピー符号化に続いて、符号化ビットストリームは、ビデオデコーダ３０に送信されるか、あるいはビデオデコーダ３０が後で送信するかまたは取り出すためにアーカイブされ得る。エントロピー符号化ユニット５６はまた、コーディングされている現在ビデオスライスのための動きベクトルと他のシンタックス要素とをエントロピー符号化し得る。
【０１２０】
[0105]逆量子化ユニット５８および逆変換処理ユニット６０は、参照ピクチャの参照ブロックとして後で使用するためにピクセル領域において残差ブロックを再構築するために、それぞれ逆量子化および逆変換を適用する。動き補償ユニット４４は、残差ブロックを参照ピクチャリストのうちの１つ内の参照ピクチャのうちの１つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット４４はまた、動き推定において使用するためのサブ整数ピクセル値を計算するために、再構築された残差ブロックに１つまたは複数の補間フィルタを適用し得る。加算器６２は、再構築されたブロックを生成するために、再構築された残差ブロックを、動き補償ユニット４４よって生成された動き補償予測ブロックに加算する。
【０１２１】
[0106]ＡＬＦユニット６４は、再構築されたブロック（たとえば、加算器６２の出力）をフィルタ処理し、参照ブロックとして使用するために、フィルタ処理された再構築されたブロックをＤＰＢ６６に記憶する。参照ブロックは、後続のビデオフレームまたはピクチャ中のブロックをインター予測するために、動き推定ユニット４２と動き補償ユニット４４とによって参照ブロックとして使用され得る。図４には明示的に示されていないが、ビデオエンコーダ２０は、デブロックフィルタ、サンプル適応オフセット（ＳＡＯ）フィルタ、または別のタイプのループフィルタのうちの１つまたは複数など、追加のフィルタを含み得る。デブロックフィルタは、たとえば、再構築されたビデオからブロッキネスアーティファクトを除去するために、フィルタブロック境界にデブロッキングフィルタ処理を適用する。ＳＡＯフィルタは、全体的コーディング品質を改善するために、再構築されたピクセル値にオフセットを適用し得る。いくつかの実装形態では、ＳＡＯは、フィルタ処理の特殊な場合または特殊モードであり得る。（ループ中またはループ後の）追加のループフィルタも使用され得る。
【０１２２】
[0107]ＡＬＦユニット６４は、単独でまたはビデオエンコーダ２０の他の構成要素とともに、本開示で説明される様々なＡＬＦ技法を実施するように構成され得る。たとえば、加算器６２の出力は、（予測処理ユニット４１、変換処理ユニット５２、および量子化ユニット５４などの）ビデオエンコーダ２０の他の要素によって前に符号化された復号されたビデオデータである。したがって、ＡＬＦユニット６４は、本開示の技法に従って、復号されたビデオデータをフィルタ処理し得る。特に、ＡＬＦユニット６４は、ＡＬＦユニット６４が、参照ピクチャとしてその後使用され、後続のピクチャを予測するために予測処理ユニット４１によって使用されるためにＤＰＢ６６に記憶される、復号されたピクチャをフィルタ処理するという点で、「ループ内」フィルタ処理プロセスとしてフィルタ処理を実施する。
【０１２３】
[0108]本開示の技法によれば、ＡＬＦユニット６４は、ブロックの様々なクラスのためのフィルタを構築し得る。ＡＬＦユニット６４は、たとえば、ブロックのピクセルから計算された勾配の方向性に基づいて、ブロックを分類し得る。概して、ＡＬＦユニット６４は、ブロックの各クラスのための異なるフィルタを構築し得る。しかしながら、いくつかの場合には、ＡＬＦユニット６４は、ブロックの２つまたはそれ以上のクラスによって使用されるフィルタ係数のセットを計算し得る。たとえば、ＡＬＦユニット６４は、フィルタ係数の複数のセットを計算し得る。ＡＬＦユニット６４は、さらに、フィルタ係数の複数のセット中のフィルタ係数の１つのセットを識別する、ブロックのクラスの各々（またはブロックのクラスのサブセット）のためのインデックス値を符号化し得る。ＡＬＦユニット６４は、ブロックのクラスの各々のためのインデックスを指定するデータ構造を構築し、エントロピー符号化され、ビットストリーム中に含まれるために、そのデータ構造をエントロピー符号化ユニット５６に与え得る。エントロピー符号化ユニット５６は、データ構造をエントロピー符号化し、そのデータ構造を、たとえば、スライスヘッダ、ピクチャパラメータセット、または他のそのようなデータ構造に追加し得る。したがって、ＡＬＦユニット６４が、ブロックの２つまたはそれ以上のクラスのための同じインデックスを符号化する場合、ブロックのそれらのクラスは、フィルタ係数の同じセット、すなわち、符号化インデックス値に対応するフィルタ係数のセットを使用することになる。
【０１２４】
[0109]追加または代替として、ＡＬＦユニット６４は、ブロックの少なくとも１つのクラスのために、フィルタが、ブロックの異なるクラスと同じフィルタ係数を使用することによって生成されるべきであることを示し得るが、幾何学的変換がフィルタのフィルタサポート領域またはフィルタ係数のいずれかに適用される。機能的に、フィルタサポート領域に幾何学的変換を適用することは、フィルタ係数に幾何学的変換を適用することと同じ数学的結果を生じ、したがって、ＡＬＦユニット６４は、フィルタサポート領域またはフィルタ係数のいずれかに幾何学的変換を適用し得る。この例では、ＡＬＦユニット６４は、ブロックの現在のクラスのために、幾何学的変換タイプ（たとえば、回転、対角反転、または垂直反転）を識別するデータ、ならびにそれのフィルタ係数が、ブロックの現在のクラスのための生成されたフィルタのために使用されるべきである、前に構築されたフィルタを符号化し得る。再び、ＡＬＦユニット６４は、そのようなデータをエントロピー符号化ユニット５６に与え得、エントロピー符号化ユニット５６は、そのデータをエントロピー符号化し、たとえば、スライスヘッダまたはピクチャパラメータセットなど、データ構造にそのデータを追加し得る。
【０１２５】
[0110]追加または代替として、ＡＬＦユニット６４は、固定フィルタが、ブロックのクラスのためのフィルタ係数のセットを予測するために使用されるかどうかを示す（たとえば、フラグの）値を符号化し得る。同様に、ＡＬＦユニット６４は、たとえば、スライスヘッダ、ピクチャパラメータセット、または他のそのようなデータ構造の一部としてエントロピー符号化されるために、これらの値をエントロピー符号化ユニット５６に与え得る。フラグは、たとえば、ブロックのクラスのフィルタのためのフィルタ係数が、固定フィルタから予測されるか、または代わりに参照ピクチャのフィルタから予測（または継承）されるかのいずれかであることを示し得る。いくつかの例では、ＡＬＦユニット６４は、ブロックの各クラスのための複数の固定フィルタで構成され得る。そのような例では、ＡＬＦユニット６４は、さらに、フィルタ係数が固定フィルタから予測されることを値が示すとき、ブロックのクラスのための現在のフィルタのフィルタ係数を予測するために使用されるべき複数の固定フィルタのうちの１つを識別する、複数の固定フィルタへのインデックスを符号化し得る。
【０１２６】
[0111]いくつかの例では、ＡＬＦユニット６４は、さらに、クラスのいずれかのためのフィルタ係数のいずれも固定フィルタから予測されないこと、すべてのフィルタ係数が固定フィルタから予測されること、または固定フィルタから予測されるいくつかのフィルタ係数があるが、他のフィルタ係数は固定フィルタから予測されないことのいずれかを示す情報を符号化し得る。フィルタ係数のいずれも固定フィルタから予測されないとき、ＡＬＦユニット６４は、複数の固定フィルタへのインデックスを表すデータの符号化を回避（たとえば、省略または防止）し得る。一方、フィルタ係数の一部または全部が固定フィルタから予測されるとき、ＡＬＦユニット６４は、固定フィルタから予測されるフィルタ係数のセットのためのそれぞれの複数の固定フィルタへのインデックスを符号化し得、ここで、インデックスは、対応するフィルタ係数がそれから予測されるべきである参照固定フィルタを識別する。さらに、ＡＬＦユニット６４は、対応するフィルタ係数を予測するために、インデックスによって識別された固定フィルタを使用し得る。予測の後に、ＡＬＦユニット６４は、さらに、被予測フィルタ係数と実際のフィルタ係数値との間の差分を表す残差値（たとえば、オフセット値）を符号化し得る。
【０１２７】
[0112]ＡＬＦユニット６４は、単独でまたは組み合わせてこれらの技法を適用し得る。たとえば、ＡＬＦユニット６４は、フィルタ係数の複数のセットを明示的に符号化し、フィルタ係数の複数のセットへのブロックのクラスの第１のセットのためのインデックスを符号化し、固定フィルタ、またはＤＰＢ６６中の１つまたは複数の参照ピクチャのフィルタのいずれかから、ブロックのクラスの第２のセットのフィルタのためのフィルタ係数を予測符号化し得る。代替的に、ＡＬＦユニット６４は、固定フィルタから、またはＤＰＢ６６中の１つまたは複数の参照ピクチャのフィルタからのいずれかから予測されたフィルタ係数の複数のセットの各々を符号化し、次いで、ブロックのクラスの各々のために、フィルタ係数のセットのうちの１つを識別するインデックスを符号化し得る。また別の例として、ＡＬＦユニット６４は、上記の技法のいずれかを使用してブロックのクラスの第１のセットのためのフィルタ係数を符号化し、幾何学的変換を識別するデータと、フィルタ係数をそれから継承すべきブロックのクラスの第１のセットのうちの１つを識別するデータとを含む、ブロックのクラスの第２のセットのための幾何学的変換情報を符号化し得る。
【０１２８】
[0113]ブロックのクラスのためのインデックスをどのように選択すべきか、固定フィルタからフィルタ係数を予測すべきかまたはＤＰＢ６６の参照ピクチャからフィルタ係数を予測すべきか、および／または上記で説明されたように幾何学的変換を使用してブロックのクラスのためのフィルタを生成すべきかどうかを決定するために、ビデオエンコーダ２０は、ピクチャまたはピクチャのシーケンスに対して様々な符号化パスを実行し、ＡＬＦユニット６４に、ピクチャ中のブロックの様々なクラスに様々なフィルタ処理技法を適用させ得る。ビデオエンコーダ２０は、フィルタ係数とフィルタ係数予測技法とのどの組合せが、最良のレートひずみ最適化（ＲＤＯ：rate distortion optimization）メトリックを生じるかを決定するために、復号された、フィルタ処理されたピクチャのためのＲＤＯメトリックを計算し得る。ビデオエンコーダ２０は、次いで、各ピクチャのための最良のＲＤＯメトリックを生じるフィルタ処理技法の組合せに基づいて、各ピクチャのための、フィルタ係数とフィルタ処理技法とを選択し得る。
【０１２９】
[0114]図５は、本開示で説明される技法を実装し得る例示的なビデオデコーダ３０を示すブロック図である。図５の例では、ビデオデコーダ３０は、ビデオデータメモリ７８と、エントロピー復号ユニット８０と、予測処理ユニット８１と、逆量子化ユニット８６と、逆変換処理ユニット８８と、加算器９０と、復号ピクチャバッファ（ＤＰＢ）９４とを含む。予測処理ユニット８１は、動き補償ユニット８２とイントラ予測ユニット８４とを含む。ビデオデコーダ３０は、いくつかの例では、図４からのビデオエンコーダ２０に関して説明された符号化パスに概して相反する復号パスを実施し得る。
【０１３０】
[0115]復号プロセス中に、ビデオデコーダ３０は、ビデオエンコーダ２０から、符号化ビデオスライスのビデオブロックと、関連するシンタックス要素とを表す符号化ビットストリームを受信する。ビデオデコーダ２０は、受信された符号化ビデオビットストリームをビデオデータメモリ７８に記憶する。ビデオデータメモリ７８は、ビデオデコーダ３０の構成要素によって復号されるべき、符号化ビデオビットストリームなどのビデオデータを記憶し得る。ビデオデータメモリ７８に記憶されたビデオデータは、たとえば、リンク１６を介して、ストレージデバイス２６から、またはカメラなどのローカルビデオソースから、または物理データ記憶媒体にアクセスすることによって取得され得る。ビデオデータメモリ７８は、符号化ビデオビットストリームからの符号化ビデオデータを記憶するコード化ピクチャバッファ（ＣＰＢ）を形成し得る。ＤＰＢ９４は、たとえば、イントラコーディングモードまたはインターコーディングモードでビデオデコーダ３０によってビデオデータを復号する際に使用するための参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ７８およびＤＰＢ９４は、ＤＲＡＭ、ＳＤＲＡＭ、ＭＲＡＭ、ＲＲＡＭ、または他のタイプのメモリデバイスなど、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ７８およびＤＰＢ９４は、同じメモリデバイスまたは別々のメモリデバイスによって与えられ得る。様々な例では、ビデオデータメモリ７８は、ビデオデコーダ３０の他の構成要素とともにオンチップであるか、またはそれらの構成要素に対してオフチップであり得る。
【０１３１】
[0116]ビデオデコーダ３０のエントロピー復号ユニット８０は、量子化係数、動きベクトル、および他のシンタックス要素を生成するために、ビデオデータメモリ７８に記憶されたビデオデータをエントロピー復号する。エントロピー復号ユニット８０は、予測処理ユニット８１に動きベクトルと他のシンタックス要素とを転送する。ビデオデコーダ３０は、ビデオスライスレベルおよび／またはビデオブロックレベルのシンタックス要素を受信し得る。
【０１３２】
[0117]ビデオスライスがイントラコード化（Ｉ）スライスとしてコーディングされたとき、予測処理ユニット８１のイントラ予測ユニット８４は、シグナリングされたイントラ予測モードと、現在のフレームまたはピクチャの前に復号されたブロックからのデータとに基づいて、現在ビデオスライスのビデオブロックのための予測データを生成し得る。ビデオフレームがインターコード化スライス（たとえば、ＢスライスまたはＰスライス）としてコーディングされたとき、予測処理ユニット８１の動き補償ユニット８２は、エントロピー復号ユニット８０から受信された動きベクトルおよび他のシンタックス要素に基づいて現在ビデオスライスのビデオブロックのための予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの１つの中の参照ピクチャのうちの１つから生成され得る。ビデオデコーダ３０は、ＤＰＢ９４に記憶された参照ピクチャに基づいて、デフォルトの構築技法を使用して、参照フレームリスト、すなわち、リスト０とリスト１とを構築し得る。
【０１３３】
[0118]動き補償ユニット８２は、動きベクトルと他のシンタックス要素とをパースすることによって現在ビデオスライスのビデオブロックのための予測情報を決定し、復号されている現在ビデオブロックのための予測ブロックを生成するために、その予測情報を使用する。たとえば、動き補償ユニット８２は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード（たとえば、イントラまたはインター予測）と、インター予測スライスタイプ（たとえば、ＢスライスまたはＰスライス）と、スライスのための参照ピクチャリストのうちの１つまたは複数のための構築情報と、スライスの各インター符号化ビデオブロックのための動きベクトルと、スライスの各インターコード化ビデオブロックのためのインター予測ステータスと、現在ビデオスライス中のビデオブロックを復号するための他の情報とを決定するために、受信されたシンタックス要素のうちのいくつかを使用する。
【０１３４】
[0119]動き補償ユニット８２はまた、補間フィルタに基づいて補間を実施し得る。動き補償ユニット８２は、参照ブロックのサブ整数ピクセルのための補間値を計算するために、ビデオブロックの符号化中にビデオエンコーダ２０によって使用された補間フィルタを使用し得る。この場合、動き補償ユニット８２は、受信されたシンタックス要素からビデオエンコーダ２０によって使用された補間フィルタを決定し、予測ブロックを生成するためにその補間フィルタを使用し得る。
【０１３５】
[0120]逆量子化ユニット８６は、ビットストリーム中で与えられ、エントロピー復号ユニット８０によって復号された量子化変換係数を逆量子化、すなわち、量子化解除する。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するための、ビデオスライス中のビデオブロックごとにビデオエンコーダ２０によって計算される量子化パラメータの使用を含み得る。逆変換処理ユニット８８は、ピクセル領域において残差ブロックを生成するために、逆変換、たとえば、逆ＤＣＴ、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用する。
【０１３６】
[0121]予測処理ユニットが、たとえば、イントラまたはインター予測を使用して現在ビデオブロックのための予測ブロックを生成した後、ビデオデコーダ３０は、逆変換処理ユニット８８からの残差ブロックを動き補償ユニット８２によって生成された対応する予測ブロックと加算することによって、再構築されたビデオブロックを形成する。加算器９０は、この加算演算を実施する１つまたは複数の構成要素を表す。ＡＬＦユニット９２は、たとえば、本開示で説明されるフィルタ技法のうちの１つまたは複数を使用して、再構築されたビデオブロックをフィルタ処理する。
【０１３７】
[0122]図５には明示的に示されていないが、ビデオデコーダ３０はまた、デブロッキングフィルタ、ＳＡＯフィルタ、または他のタイプのフィルタのうちの１つまたは複数を含み得る。ピクセル遷移を平滑化するか、または場合によってはビデオ品質を改善するために、（コーディングループ中またはコーディングループ後のいずれかの）他のループフィルタも使用され得る。所与のフレームまたはピクチャ中の復号ビデオブロックは、次いで、その後の動き補償のために使用される参照ピクチャを記憶するＤＰＢ９４に記憶される。ＤＰＢ９４は、図１のディスプレイデバイス３２などのディスプレイデバイス上での後の提示のために、復号されたビデオを記憶する追加のメモリの一部であるか、または追加のメモリとは別個であり得る。
【０１３８】
[0123]ＡＬＦユニット９２は、単独でまたはビデオデコーダ３０の他の構成要素とともに、特許請求の範囲セクションならびに他のセクションで説明される技法を含む本開示で説明される様々な技法を実施するように構成され得る。たとえば、加算器９０の出力は、復号されたビデオデータである。したがって、ＡＬＦユニット９２は、本開示の技法に従って、復号されたビデオデータをフィルタ処理し得る。特に、ＡＬＦユニット９２は、ＡＬＦユニット９２が、参照ピクチャとしてその後使用され、後続のピクチャを予測するために予測処理ユニット８１によって使用されるためにＤＰＢ９４に記憶される、復号されたピクチャをフィルタ処理するという点で、「ループ内」フィルタ処理プロセスとしてフィルタ処理を実施する。
【０１３９】
[0124]ＡＬＦユニット９２は、単独でまたは組み合わせて本開示の技法を適用し得る。たとえば、ＡＬＦユニット９２は、スライスヘッダまたはピクチャパラメータセットなど、ビットストリームからの復号されたデータに基づいて、フィルタ係数の複数のセットを明示的に復号し、フィルタ係数の複数のセットへのブロックのクラスの第１のセットのためのインデックスを復号し、固定フィルタ、またはＤＰＢ９４中の１つまたは複数の参照ピクチャのフィルタのいずれかから、ブロックのクラスの第２のセットのフィルタのためのフィルタ係数を予測復号し得る。代替的に、ＡＬＦユニット９２は、スライスヘッダまたはピクチャパラメータセットなど、ビットストリームからの復号されたデータに基づいて、固定フィルタから、またはＤＰＢ９４中の１つまたは複数の参照ピクチャのフィルタからのいずれかから予測されたフィルタ係数の複数のセットの各々を復号し、次いで、ブロックのクラスの各々のために、フィルタ係数のセットのうちの１つを識別するインデックスを復号し得る。また別の例として、ＡＬＦユニット９２は、スライスヘッダまたはピクチャパラメータセットなど、ビットストリームからの復号されたデータに基づいて、上記の技法のいずれかを使用してブロックのクラスの第１のセットのためのフィルタ係数を復号し、幾何学的変換を識別するデータと、フィルタ係数をそれから継承すべきブロックのクラスの第１のセットのうちの１つを識別するデータとを含む、ブロックのクラスの第２のセットのための幾何学的変換情報を復号し得る。したがって、概して、
【０１４０】
[0125]いくつかの例では、ＡＬＦユニット９２は、ブロックの様々なクラスのためのフィルタを構築し得る。ＡＬＦユニット９２は、たとえば、ブロックのピクセルから計算された勾配の方向性に基づいて、ブロックを分類し得る。概して、ＡＬＦユニット９２は、ブロックの各クラスのための異なるＡＬＦを構築し得る。しかしながら、いくつかの場合には、ＡＬＦユニット９２は、ブロックの２つまたはそれ以上のクラスによって使用されるフィルタ係数のセットを計算し得る。たとえば、ＡＬＦユニット９２は、フィルタ係数の複数のセットを計算し得る。ＡＬＦユニット９２は、さらに、フィルタ係数の複数のセット中のフィルタ係数の１つのセットを識別する、ブロックのクラスの各々（またはブロックのクラスのサブセット）のためのインデックス値を復号し得る。エントロピー復号ユニット８０は、ブロックのクラスの各々のためのインデックスを指定するデータ構造をエントロピー復号し、そのデータ構造をＡＬＦユニット９２に与え得る。エントロピー復号ユニット５６は、そのデータ構造を、たとえば、スライスヘッダ、ピクチャパラメータセット、または他のそのようなデータ構造からエントロピー復号し得る。したがって、ＡＬＦユニット９２が、ブロックの２つまたはそれ以上のクラスのための同じインデックスを復号する場合、ブロックのそれらのクラスは、フィルタ係数の同じセット、すなわち、復号されたインデックス値に対応するフィルタ係数のセットを使用することになる。
【０１４１】
[0126]追加または代替として、ＡＬＦユニット９２は、ブロックの少なくとも１つのクラスのために、フィルタが、ブロックの異なるクラスと同じフィルタ係数を使用することによって生成されるべきであることを示し得るが、幾何学的変換がフィルタのフィルタサポート領域またはフィルタ係数のいずれかに適用される。機能的に、フィルタサポート領域に幾何学的変換を適用することは、フィルタ係数に幾何学的変換を適用することと同じ数学的結果を生じ、したがって、ＡＬＦユニット９２は、フィルタサポート領域またはフィルタ係数のいずれかに幾何学的変換を適用し得る。この例では、ＡＬＦユニット９２は、ブロックの現在のクラスのために、幾何学的変換タイプ（たとえば、回転、対角反転、または垂直反転）を識別するデータ、ならびにそれのフィルタ係数が、ブロックの現在のクラスのための生成されたフィルタのために使用されるべきである、前に構築されたフィルタを復号し得る。再び、エントロピー復号ユニット８０は、そのようなデータをエントロピー復号し、復号されたデータをＡＬＦユニット９２に与え得る。データは、たとえば、スライスヘッダまたはピクチャパラメータセットなど、データ構造中に含まれ得る。
【０１４２】
[0127]追加または代替として、エントロピー復号ユニット８０は、固定フィルタが、ブロックのクラスのためのフィルタ係数のセットを予測するために使用されるかどうかを示す（たとえば、フラグの）値をエントロピー復号し得る。同様に、エントロピー復号ユニット８０は、これらの値をＡＬＦユニット９２に与え得る。エントロピー復号ユニット８０は、スライスヘッダ、ピクチャパラメータセット、または他のそのようなデータ構造の一部からのデータを復号し得る。フラグは、たとえば、ブロックのクラスのフィルタのためのフィルタ係数が、固定フィルタから予測されるか、または代わりに参照ピクチャのフィルタから予測（または継承）されるかのいずれかであることを示し得る。いくつかの例では、ＡＬＦユニット９２は、ブロックの各クラスのための複数の固定フィルタで構成され得る。そのような例では、ＡＬＦユニット９２は、さらに、フィルタ係数が固定フィルタから予測されることを値が示すとき、ブロックのクラスのための現在のフィルタのフィルタ係数を予測するために使用されるべき複数の固定フィルタのうちの１つを識別する、複数の固定フィルタへのインデックスを復号し得る。
【０１４３】
[0128]いくつかの例では、ＡＬＦユニット９２は、さらに、クラスのいずれかのためのフィルタ係数のいずれも固定フィルタから予測されないこと、すべてのフィルタ係数が固定フィルタから予測されること、または固定フィルタから予測されるいくつかのフィルタ係数があるが、他のフィルタ係数は固定フィルタから予測されないことのいずれかを示すエントロピー復号された情報を受信し得る。フィルタ係数のいずれも固定フィルタから予測されないとき、ＡＬＦユニット９２（またはエントロピー復号ユニット８０）は、複数の固定フィルタへのインデックスを表すデータの復号を回避（たとえば、省略または防止）し得る。一方、フィルタ係数の一部または全部が固定フィルタから予測されるとき、ＡＬＦユニット９２は、固定フィルタから予測されるフィルタ係数のセットのためのそれぞれの複数の固定フィルタへのインデックスを復号し得、ここで、インデックスは、対応するフィルタ係数がそれから予測されるべきである参照固定フィルタを識別する。さらに、ＡＬＦユニット９２は、対応するフィルタ係数を予測するために、インデックスによって識別された固定フィルタを使用し得る。予測の後に、ＡＬＦユニット９２は、さらに、被予測フィルタ係数と実際のフィルタ係数値との間の差分を表す残差値（たとえば、オフセット値）を復号し得る。
【０１４４】
[0129]図６は、（たとえば、ビデオ符号化プロセス中に）ビデオエンコーダによって、復号されたピクチャのブロックをフィルタ処理するための例示的な方法を示すフローチャートである。例および説明の目的で、図６の方法は、図４のビデオエンコーダ２０に関して説明される。
【０１４５】
[0130]最初に、ビデオエンコーダ２０はピクチャを符号化する（１００）。たとえば、ビデオエンコーダ２０は、図４に関して上記で説明されたように、ピクチャのブロックをイントラ予測またはインター予測し、被予測ブロックのための残差を計算し、残差データを変換および量子化し、ピクチャのための予測情報および量子化変換係数をエントロピー符号化し得る。その後、ビデオエンコーダ２０は、たとえば、残差値を再生するために、量子化変換係数を逆量子化および逆変換し、次いで、被予測ブロックに残差値を加算することによって、ピクチャを復号する（１０２）。
【０１４６】
[0131]次いで、ＡＬＦユニット６４は、ブロックの様々なクラスのためのフィルタ係数を計算する（１０４）。たとえば、ＡＬＦユニット６４は、ブロックのための電位勾配に基づいて、ブロックのクラスを決定し得る。ＡＬＦユニット６４は、次いで、計算されたフィルタ係数からブロックのクラスのためのフィルタを生成する（１０６）。ＡＬＦユニット６４は、本開示のフィルタを生成するための様々な技法のいずれかを使用し得る。たとえば、ブロックの少なくともいくつかのクラスのために、ＡＬＦユニット６４は、計算されたフィルタ係数の複数のセットへのインデックスを選択し得、ここで、ブロックの各クラスのためのインデックスは、ブロックの対応するクラスのためのフィルタを生成するために使用するための計算されたフィルタ係数のセットを識別する。追加または代替として、ブロックの少なくともいくつかのクラスのために、ＡＬＦユニット６４は、使用されるべき前に生成されたフィルタ、ならびにフィルタサポート領域または前に生成されたフィルタのフィルタ係数のうちの少なくとも１つに適用されるべき幾何学的変換を示すデータを生成し得る。追加または代替として、ブロックの少なくともいくつかのクラスのために、ＡＬＦユニット６４は、固定フィルタまたは参照ピクチャのフィルタのいずれかからフィルタ係数を予測し、フィルタ係数がそれから予測されるべきである固定フィルタまたは参照ピクチャのいずれかを示すデータを生成し得る。
【０１４７】
[0132]さらに、ビデオエンコーダ２０は、ブロックの様々なクラスのためのフィルタを定義するデータを符号化する（１０８）。たとえば、フィルタが、フィルタ係数の複数のセットへのインデックスを使用してそれのために生成されるべきであるブロックのクラスのために、エントロピー符号化ユニット５６は、ブロックのそれらのクラスのためのインデックスをエントロピー符号化し得る。追加または代替として、フィルタが、前に生成されたフィルタおよび幾何学的変換を使用してそれのために生成されるべきであるブロックのクラスのために、エントロピー符号化ユニット５６は、前に生成されたフィルタおよび適用されるべき幾何学的変換（たとえば、回転、垂直反転、または対角反転）を識別するデータをエントロピー符号化し得る。追加または代替として、フィルタが、固定フィルタから予測されたフィルタ係数を使用してそれのために生成されるべきであるブロックのクラスのために、エントロピー符号化ユニット５６は、フィルタ係数が、固定フィルタから予測されるべきであるのか、参照ピクチャのフィルタから予測されるべきであるのかを示すデータ、ならびに固定フィルタまたは参照ピクチャの指示をエントロピー符号化し得る。
【０１４８】
[0133]ＡＬＦユニット６４はまた、対応するフィルタを使用して、復号されたピクチャのブロックをフィルタ処理する（１１０）。すなわち、ピクチャの各ブロックのために、ＡＬＦユニット６４は、勾配を計算し、勾配に基づいてブロックのためのクラスを決定し得る。ＡＬＦユニット６４は、さらに、クラスに対応するフィルタを選択し得る。ＡＬＦユニット６４は、次いで、ブロックのためのクラスに対応するフィルタを使用して、ブロックの各ピクセルをフィルタ処理し得る。
【０１４９】
[0134]このようにして、図６の方法は、ビデオデータの現在ピクチャのブロックのクラスのための複数のフィルタを構築することを含むビデオデータの復号されたブロックをフィルタ処理する方法の一例を表し、ここにおいて、複数のフィルタを構築することは、クラスの各々のために、固定フィルタが、クラスのフィルタ係数のセットを予測するために使用されるかどうかを決定することと、固定フィルタが、フィルタ係数のセットを予測するために使用されると決定したことに応答して、クラスの固定フィルタのセットへのインデックス値を決定することと、インデックス値によって識別された固定フィルタのセットの固定フィルタを使用して、クラスのフィルタ係数のセットを予測することと、ビデオデータの現在ピクチャの現在ブロックを復号することと、現在ブロックのためのクラスを決定することと、現在ブロックのためのクラスに対応する複数のフィルタのうちのフィルタを選択することと、選択されたフィルタを使用して現在ブロックの少なくとも１つのピクセルをフィルタ処理することとを備える。
【０１５０】
[0135]図７は、（たとえば、ビデオ復号プロセス中に）ビデオデコーダによって、復号されたピクチャのブロックをフィルタ処理するための例示的な方法を示すフローチャートである。例および説明の目的で、図６の方法は、図５のビデオデコーダ３０に関して説明される。
【０１５１】
[0136]最初に、ビデオデコーダ３０はピクチャを復号する（１２０）。たとえば、ビデオデコーダ３０は、図５に関して上記で説明されたように、ピクチャのための予測情報および量子化変換係数をエントロピー復号し、予測情報に基づいてピクチャのブロックをイントラ予測またはインター予測し、残差データを再生するために量子化変換係数を逆量子化および逆変換し、ブロックを再生するために、被予測ブロックと残差データとを組み合わせ得る。
【０１５２】
[0137]さらに、エントロピー復号ユニット８０は、ブロックの様々なクラスのためのフィルタを定義するデータをエントロピー復号する（１２２）。たとえば、エントロピー復号ユニット８０は、フィルタが、フィルタ係数の複数のセットへのインデックスを使用してそれのために生成されるべきであるブロックのクラスを示すデータをエントロピー復号し、ブロックのそれらのクラスのためのインデックスをエントロピー復号し得る。追加または代替として、エントロピー復号ユニット８０は、フィルタが、前に生成されたフィルタおよび幾何学的変換を使用してそれのために生成されるべきであるブロックのクラスを示すデータ、ならびに前に生成されたフィルタおよび適用されるべき幾何学的変換（たとえば、回転、垂直反転、または対角反転）を識別するデータをエントロピー復号し得る。追加または代替として、エントロピー復号ユニット８０は、フィルタが、固定フィルタから予測されたフィルタ係数を使用してそれのために生成されるべきであるブロックのクラスを示すデータ、およびフィルタ係数が、固定フィルタから予測されるべきであるのか、参照ピクチャのフィルタから予測されるべきであるのかを示すデータ、ならびに固定フィルタまたは参照ピクチャの指示をエントロピー復号し得る。
【０１５３】
[0138]次いで、ＡＬＦユニット９２は、ブロックの様々なクラスのためのフィルタ係数を計算する（１２４）。たとえば、ＡＬＦユニット９２は、ブロックのための電位勾配に基づいて、ブロックのクラスを決定し得る。ＡＬＦユニット９２は、次いで、上記で説明されたように、フィルタをどのように生成すべきかを表すエントロピー復号されたデータに基づいて、計算されたフィルタ係数からブロックのクラスのためのフィルタを生成する（１２６）。ＡＬＦユニット９２は、本開示のフィルタを生成するための様々な技法のいずれかを使用し得る。たとえば、ブロックの少なくともいくつかのクラスのために、ＡＬＦユニット９２は、計算されたフィルタ係数の複数のセットへのインデックスをエントロピー復号ユニット８０から受信し得、ここで、ブロックの各クラスのためのインデックスは、ブロックの対応するクラスのためのフィルタを生成するために使用するための計算されたフィルタ係数のセットを識別する。追加または代替として、ブロックの少なくともいくつかのクラスのために、ＡＬＦユニット９２は、使用されるべき前に生成されたフィルタ、ならびにフィルタサポート領域または前に生成されたフィルタのフィルタ係数のうちの少なくとも１つに適用されるべき幾何学的変換を示すデータをエントロピー復号ユニット８０から受信し得る。追加または代替として、ブロックの少なくともいくつかのクラスのために、ＡＬＦユニット９２は、エントロピー復号ユニット８０から受信されたデータによって示されるように、固定フィルタまたは参照ピクチャのフィルタのいずれかからフィルタ係数を予測し、フィルタ係数がそれから予測されるべきである固定フィルタまたは参照ピクチャのいずれかを示すデータを生成し得る。
【０１５４】
[0139]ＡＬＦユニット９２は、次いで、対応するフィルタを使用して、復号されたピクチャのブロックをフィルタ処理する（１２８）。すなわち、ピクチャの各ブロックのために、ＡＬＦユニット９２は、勾配を計算し、勾配に基づいてブロックのためのクラスを決定し得る。ＡＬＦユニット９２は、さらに、クラスに対応するフィルタを選択し得る。ＡＬＦユニット９２は、次いで、ブロックのためのクラスに対応するフィルタを使用して、ブロックの各ピクセルをフィルタ処理し得る。
【０１５５】
[0140]このようにして、図７の方法は、ビデオデータの現在ピクチャのブロックのクラスのための複数のフィルタを構築することを含むビデオデータの復号されたブロックをフィルタ処理する方法の一例を表し、ここにおいて、複数のフィルタを構築することは、クラスの各々のために、固定フィルタが、クラスのフィルタ係数のセットを予測するために使用されるかどうかを決定することと、固定フィルタが、フィルタ係数のセットを予測するために使用されると決定したことに応答して、クラスの固定フィルタのセットへのインデックス値を決定することと、インデックス値によって識別された固定フィルタのセットの固定フィルタを使用して、クラスのフィルタ係数のセットを予測することと、ビデオデータの現在ピクチャの現在ブロックを復号することと、現在ブロックのためのクラスを決定することと、現在ブロックのためのクラスに対応する複数のフィルタのうちのフィルタを選択することと、選択されたフィルタを使用して現在ブロックの少なくとも１つのピクセルをフィルタ処理することとを備える。
【０１５６】
[0141]図８は、（たとえば、ビデオ符号化プロセス中に）ビデオエンコーダによって、復号されたピクチャのブロックをフィルタ処理するための例示的な方法を示すフローチャートである。例および説明の目的で、図８の方法は、図４のビデオエンコーダ２０に関して説明される。
【０１５７】
[0142]最初に、ビデオエンコーダ２０はピクチャを符号化する（１４０）。たとえば、ビデオエンコーダ２０は、図４に関して上記で説明されたように、ピクチャのブロックをイントラ予測またはインター予測し、被予測ブロックのための残差を計算し、残差データを変換および量子化し、ピクチャのための予測情報および量子化変換係数をエントロピー符号化し得る。その後、ビデオエンコーダ２０は、たとえば、残差値を再生するために、量子化変換係数を逆量子化および逆変換し、次いで、被予測ブロックに残差値を加算することによって、ピクチャを復号する（１４２）。
【０１５８】
[0143]次いで、ＡＬＦユニット６４は、ピクチャのブロックのクラスのためのフィルタを（適応ループフィルタ処理（ＡＬＦ）に従ってなど）選択する（１４４）。ＡＬＦユニット６４は、たとえば、ブロックの１つまたは複数のピクセルのために計算された勾配に基づいて、クラスを選択し得る。代替的に、ＡＬＦユニット６４は、ブロックの他の特性に基づいて、ブロックのためのクラスを決定し得る。
【０１５９】
[0144]本開示の技法によれば、ＡＬＦユニット６４は、ブロックの勾配を計算する（１４６）。ＡＬＦユニット６４は、さらに、計算された勾配に基づいて、幾何学的変換を決定および実施する（１４８）。たとえば、ＡＬＦユニット６４は、上記で説明されたように表１の技法に従って幾何学的変換を決定し得る。ＡＬＦユニット６４は、選択されたフィルタの係数、または選択されたフィルタのフィルタサポート領域（たとえば、選択されたフィルタを使用してフィルタ処理されるべきピクセルに対する隣接ピクセル）のいずれかに幾何学的変換を適用し得る。ＡＬＦユニット６４は、次いで、選択されたフィルタを使用して、復号されたピクチャのブロックをフィルタ処理する（１５０）。すなわち、ＡＬＦユニット６４は、選択されたフィルタを使用してブロックの各ピクセルをフィルタ処理する。
【０１６０】
[0145]このようにして、図８の方法は、ビデオデータの現在ピクチャの現在ブロックを復号することと、現在ブロックのピクセルをフィルタ処理するために使用されるべきフィルタを（適応ループフィルタ処理（ＡＬＦ）に従ってなど）選択することと、選択されたフィルタの、フィルタサポート領域または係数のうちの１つに対して実施されるべき幾何学的変換を選択することと、選択されたフィルタの、フィルタサポート領域または係数のいずれかに対して幾何学的変換を実施することと、幾何学的変換を実施することの後に、選択されたフィルタを使用して現在ブロックの少なくとも１つのピクセルをフィルタ処理することとを含むビデオデータの復号されたブロックをフィルタ処理する方法の一例を表す。
【０１６１】
[0146]図９は、（たとえば、ビデオ復号プロセス中に）ビデオデコーダによって、復号されたピクチャのブロックをフィルタ処理するための例示的な方法を示すフローチャートである。例および説明の目的で、図９の方法は、図５のビデオデコーダ３０に関して説明される。
【０１６２】
[0147]最初に、ビデオデコーダ３０は、たとえば、予測のためのシンタックス要素の値および量子化変換係数をエントロピー復号し、残差値を再生するために、量子化変換係数を逆量子化および逆変換し、次いで、被予測ブロックに残差値を加算することによって、ピクチャを復号する（１６０）。次いで、ＡＬＦユニット９２は、ピクチャのブロックのクラスのためのフィルタを（適応ループフィルタ処理（ＡＬＦ）に従ってなど）選択する（１６２）。ＡＬＦユニット９２は、たとえば、ブロックの１つまたは複数のピクセルのために計算された勾配に基づいて、クラスを選択し得る。代替的に、ＡＬＦユニット９２は、ブロックの他の特性に基づいて、ブロックのためのクラスを決定し得る。
【０１６３】
[0148]本開示の技法によれば、ＡＬＦユニット９２は、ブロックの勾配を計算する（１６４）。ＡＬＦユニット９２は、さらに、計算された勾配に基づいて、幾何学的変換を決定および実施する（１６６）。たとえば、ＡＬＦユニット９２は、上記で説明されたように表１の技法に従って幾何学的変換を決定し得る。ＡＬＦユニット９２は、選択されたフィルタの係数、または選択されたフィルタのフィルタサポート領域（たとえば、選択されたフィルタを使用してフィルタ処理されるべきピクセルに対する隣接ピクセル）のいずれかに幾何学的変換を適用し得る。ＡＬＦユニット９２は、次いで、選択されたフィルタを使用して、復号されたピクチャのブロックをフィルタ処理する（１６８）。すなわち、ＡＬＦユニット９２は、選択されたフィルタを使用してブロックの各ピクセルをフィルタ処理する。
【０１６４】
[0149]このようにして、図９の方法は、ビデオデータの現在ピクチャの現在ブロックを復号することと、現在ブロックのピクセルをフィルタ処理するために使用されるべきフィルタを（適応ループフィルタ処理（ＡＬＦ）に従ってなど）選択することと、選択されたフィルタの、フィルタサポート領域または係数のうちの１つに対して実施されるべき幾何学的変換を選択することと、選択されたフィルタの、フィルタサポート領域または係数のいずれかに対して幾何学的変換を実施することと、幾何学的変換を実施することの後に、選択されたフィルタを使用して現在ブロックの少なくとも１つのピクセルをフィルタ処理することとを含むビデオデータの復号されたブロックをフィルタ処理する方法の一例を表す。
【０１６５】
[0150]図１０は、（たとえば、ビデオ符号化プロセス中に）ビデオエンコーダによって、復号されたピクチャのブロックをフィルタ処理するための例示的な方法を示すフローチャートである。例および説明の目的で、図１０の方法は、図４のビデオエンコーダ２０に関して説明される。
【０１６６】
[0151]最初に、ビデオエンコーダ２０はピクチャを符号化する（１７０）。たとえば、ビデオエンコーダ２０は、図４に関して上記で説明されたように、ピクチャのブロックをイントラ予測またはインター予測し、被予測ブロックのための残差を計算し、残差データを変換および量子化し、ピクチャのための予測情報および量子化変換係数をエントロピー符号化し得る。その後、ビデオエンコーダ２０は、たとえば、残差値を再生するために、量子化変換係数を逆量子化および逆変換し、次いで、被予測ブロックに残差値を加算することによって、ピクチャを復号する（１７２）。
【０１６７】
[0152]次いで、ＡＬＦユニット６４は、固定フィルタを使用してピクチャのブロックのクラスのためのフィルタの係数を（適応ループフィルタ処理（ＡＬＦ）に従ってなど）予測する（１７４）。ＡＬＦユニット６４は、たとえば、ブロックの１つまたは複数のピクセルのために計算された勾配に基づいて、クラスを選択し得る。代替的に、ＡＬＦユニット６４は、ブロックの他の特性に基づいて、ブロックのためのクラスを決定し得る。いくつかの例では、複数の固定フィルタが、ブロックの各クラスのために利用可能であり得、ＡＬＦユニット６４は、どれが最良のレートひずみ性能を生じるかを決定するために、利用可能な固定フィルタの各々をテストし得る。ＡＬＦユニット６４は、次いで、ブロックの各クラスのための最良のレートひずみ性能を生じる固定フィルタを選択するか、または参照ピクチャの参照フィルタがより良いレートひずみ性能を生じる場合、参照フィルタを選択し得る。ＡＬＦユニット６４は、次いで、固定フィルタのうちのどれがブロックの各クラスのために使用されるか（および追加または代替として、特定のクラスのためのフィルタが参照ピクチャの参照フィルタから予測されるかどうか）を示すフラグを符号化する（１７６）。
【０１６８】
[0153]ＡＬＦユニット６４は、次いで、復号されたピクチャのブロックの各クラスのためのフィルタを選択し（１７８）、たとえば、ブロックのために計算された勾配に基づいて、復号されたピクチャのブロックの各々のためのクラスを決定し（１８０）、選択されたフィルタを使用してブロックをフィルタ処理する（１８２）。再び、ＡＬＦユニット６４は、どのフィルタが最良のレートひずみ性能を生じるかを決定するために、ブロックの各クラスのための異なるフィルタをテストし得る。本開示の技法によれば、いくつかの例では、ＡＬＦユニット６４は、マージされたクラスの各々が同じフィルタを使用するように、ブロックの２つまたはそれ以上のクラスをマージし得る。その上、ビデオエンコーダ２０は、フィルタのうちのどれがブロックの各クラスのために使用されるべきであるかを示すデータを符号化し得る。
【０１６９】
[0154]このようにして、図１０の方法は、ビデオデータの現在ピクチャのブロックのクラスのための複数のフィルタを構築することを含むビデオデータの復号されたブロックをフィルタ処理する方法の一例を表し、ここにおいて、ビデオデータの現在ピクチャのブロックのクラスのための複数のフィルタを構築すること、ここにおいて、複数のフィルタを構築することは、クラスの各々のために、固定フィルタが、クラスのフィルタ係数のセットを予測するために使用されるかどうかを決定することと、固定フィルタが、フィルタ係数のセットを予測するために使用されると決定したことに応答して、クラスの固定フィルタのセットへのインデックス値を決定することと、インデックス値によって識別された固定フィルタのセットの固定フィルタを使用して、クラスのフィルタ係数のセットを予測することと、ビデオデータの現在ピクチャの現在ブロックを復号することと、現在ブロックのためのクラスを決定することと、現在ブロックのためのクラスに対応する複数のフィルタのうちのフィルタを選択することと、選択されたフィルタを使用して現在ブロックの少なくとも１つのピクセルをフィルタ処理することとを備える。
【０１７０】
[0155]図１１は、（たとえば、ビデオ復号プロセス中に）ビデオデコーダによって、復号されたピクチャのブロックをフィルタ処理するための例示的な方法を示すフローチャートである。例および説明の目的で、図１１の方法は、図５のビデオデコーダ３０に関して説明される。
【０１７１】
[0156]最初に、ビデオデコーダ３０は、たとえば、予測のためのシンタックス要素の値および量子化変換係数をエントロピー復号し、残差値を再生するために、量子化変換係数を逆量子化および逆変換し、次いで、被予測ブロックに残差値を加算することによって、ビデオデータのピクチャを復号する（１９０）。
【０１７２】
[0157]次いで、ＡＬＦユニット９２は、フィルタの係数が、固定フィルタから予測されるべきであるかどうかを示すフラグ、およびいくつかの例では、フィルタ係数が固定フィルタから予測されるべきである場合、固定フィルタを識別するデータを復号する（１９２）。ＡＬＦユニット９２は、次いで、（この例において、フィルタ係数が固定フィルタから予測されるべきであると仮定すると）固定フィルタを使用してフィルタの係数を予測する（１９４）。他の例では、ＡＬＦユニット９２は、フィルタ係数が固定フィルタから予測されないことをフラグが示す場合、参照ピクチャの参照フィルタからフィルタ係数を予測し得る。
【０１７３】
[0158]ＡＬＦユニット９２は、次いで、復号されたピクチャのブロックの各クラスのためのフィルタを選択し（１９６）、たとえば、ブロックのために計算された勾配に基づいて、復号されたピクチャのブロックの各々のためのクラスを決定し（１９８）、選択されたフィルタを使用してブロックをフィルタ処理する（２００）。ＡＬＦユニット９２は、ブロックの各クラスのための、そのクラスのブロックのピクセルをフィルタ処理するために使用されるべきフィルタを識別するデータを復号し得る。
【０１７４】
[0159]このようにして、図１１の方法は、ビデオデータの現在ピクチャのブロックのクラスのための複数のフィルタを構築することを含むビデオデータの復号されたブロックをフィルタ処理する方法の一例を表し、ここにおいて、複数のフィルタを構築することは、クラスの各々のために、固定フィルタが、クラスのフィルタ係数のセットを予測するために使用されるかどうかを決定することと、固定フィルタが、フィルタ係数のセットを予測するために使用されると決定したことに応答して、クラスの固定フィルタのセットへのインデックス値を決定することと、インデックス値によって識別された固定フィルタのセットの固定フィルタを使用して、クラスのフィルタ係数のセットを予測することと、ビデオデータの現在ピクチャの現在ブロックを復号することと、現在ブロックのためのクラスを決定することと、現在ブロックのためのクラスに対応する複数のフィルタのうちのフィルタを選択することと、選択されたフィルタを使用して現在ブロックの少なくとも１つのピクセルをフィルタ処理することとを備える。
【０１７５】
[0160]１つまたは複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、１つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得るか、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、（１）非一時的である有形コンピュータ可読記憶媒体、あるいは（２）信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明された技法の実装のための命令、コードおよび／またはデータ構造を取り出すために、１つまたは複数のコンピュータまたは１つまたは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
【０１７６】
[0161]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（登録商標）、ＣＤ−ＲＯＭまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用されるディスク（disk）およびディスク（disc）は、コンパクトディスク（disc）（ＣＤ）、レーザーディスク（登録商標）（disc）、光ディスク（disc）、デジタル多用途ディスク（disc）（ＤＶＤ）、フロッピー（登録商標）ディスク（disk）およびＢｌｕ−ｒａｙディスク（disc）を含み、ここで、ディスク（disk）は、通常、データを磁気的に再生し、ディスク（disc）は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
【０１７７】
[0162]命令は、１つまたは複数のデジタル信号プロセッサ（ＤＳＰ）、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、あるいは他の等価な集積回路またはディスクリート論理回路など、１つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用される「プロセッサ」という用語は、上記の構造、または、本明細書で説明された技法の実装に好適な任意の他の構造のいずれかを指すことがある。さらに、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成された専用ハードウェアおよび／またはソフトウェアモジュール内に与えられるか、あるいは複合コーデックに組み込まれ得る。また、本技法は、１つまたは複数の回路または論理要素で十分に実装され得る。したがって、プロセッサは、固定ハードウェア処理回路、プログラマブル処理回路ならびに／あるいは固定処理回路およびプログラマブル処理回路の両方の組合せとして実装された１つまたは複数のプロセッサを備える様々な集積処理回路のいずれかによって形成され得る。
【０１７８】
[0163]本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）またはＩＣのセット（たとえば、チップセット）を含む、多種多様なデバイスまたは装置で実装され得る。本開示では、開示される技法を実施するように構成されたデバイスの機能的態様を強調するために、様々な構成要素、モジュール、またはユニットが説明されたが、それらの構成要素、モジュール、またはユニットは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明されたように、様々なユニットが、好適なソフトウェアおよび／またはファームウェアとともに、上記で説明された１つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作可能なハードウェアユニットの集合によって与えられ得る。
【０１７９】
[0164]様々な例が説明された。これらおよび他の例は、以下の特許請求の範囲内に入る。
【図１】
2019505143.tif 000017
【図２】
2019505143.tif 000018
【図３】
2019505143.tif 000019
【図４】
2019505143.tif 000020
【図５】
2019505143.tif 000021
【図６】
2019505143.tif 000022
【図７】
2019505143.tif 000023
【図８】
2019505143.tif 000024
【図９】
2019505143.tif 000025
【図１０】
2019505143.tif 000026
【図１１】
2019505143.tif 000027
【国際調査報告】
2019505143.tif 000028
2019505143.tif 000029
2019505143.tif 000030
2019505143.tif 000031