(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022084028
(43)【公開日】2022-06-06
(54)【発明の名称】ビデオコーディングのためにブロックの複数のクラスのためのフィルタをマージすること
(51)【国際特許分類】
H04N 19/117 20140101AFI20220530BHJP
H04N 19/136 20140101ALI20220530BHJP
H04N 19/14 20140101ALI20220530BHJP
H04N 19/82 20140101ALI20220530BHJP
H04N 19/46 20140101ALI20220530BHJP
【FI】
H04N19/117
H04N19/136
H04N19/14
H04N19/82
H04N19/46
【審査請求】有
【請求項の数】43
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2022020409
(22)【出願日】2022-02-14
(62)【分割の表示】P 2018542776の分割
【原出願日】2017-02-15
(11)【特許番号】
(45)【特許公報発行日】2022-05-27
(31)【優先権主張番号】62/295,461
(32)【優先日】2016-02-15
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】62/324,776
(32)【優先日】2016-04-19
(33)【優先権主張国・地域又は機関】US
(31)【優先権主張番号】15/432,857
(32)【優先日】2017-02-14
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】595020643
【氏名又は名称】クゥアルコム・インコーポレイテッド
【氏名又は名称原語表記】QUALCOMM INCORPORATED
(74)【代理人】
【識別番号】100108855
【弁理士】
【氏名又は名称】蔵田 昌俊
(74)【代理人】
【識別番号】100158805
【弁理士】
【氏名又は名称】井関 守三
(74)【代理人】
【識別番号】100112807
【弁理士】
【氏名又は名称】岡田 貴志
(72)【発明者】
【氏名】マルタ・カルチェビチ
(72)【発明者】
【氏名】ウェイ-ジュン・チェン
(72)【発明者】
【氏名】リ・ジャン
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159RC12
5C159TA69
5C159TC02
5C159TC10
5C159TD05
5C159UA16
(57)【要約】 (修正有)
【課題】ビデオ品質を改善する適応ループフィルタ処理方法、デバイス及び記憶媒体を提供する。
【解決手段】デバイスは、ビデオデータを記憶するメモリと、回路に実装される1つ又は複数の処理ユニットと、を含む。1つ又は複数の処理ユニットは、ビデオデータの現在ピクチャのブロックのクラスのための複数のフィルタを構築する。フィルタによる処理方法は、複数のフィルタ係数のセットを生成することと、複数のフィルタのサブセットのために、サブセットの対応するフィルタのためのフィルタ係数のセットのうちの1つを識別する夫々のインデックスを決定することと、現在ピクチャの現在ブロックを復号することと、現在ブロックのためのクラスを決定することと、現在ブロックのためのクラスに対応する複数のフィルタのうちのフィルタを選択することと、選択されたフィルタを使用して現在ブロックの少なくとも1つのピクセルをフィルタ処理することと、を行う。
【選択図】
図7
【特許請求の範囲】
【請求項1】
ビデオデータの復号されたブロックをフィルタ処理する方法であって、
ビデオデータの現在ピクチャのブロックのクラスのための複数のフィルタを構築すること、ここにおいて、前記複数のフィルタを構築することは、
生成されるべきフィルタ係数のセットの数を決定することと、
前記数の、フィルタ係数のセットを生成することと、
前記複数のフィルタのサブセットのために、前記サブセットの前記対応するフィルタのための前記フィルタ係数のセットのうちの1つを識別するそれぞれのインデックスを決定することと
を備える、と、
前記現在ピクチャの現在ブロックを復号することと、
前記現在ブロックのためのクラスを決定することと、
前記現在ブロックのための前記クラスに対応する前記複数のフィルタのうちのフィルタを選択することと、
前記選択されたフィルタを使用して前記現在ブロックの少なくとも1つのピクセルをフィルタ処理することと
を備える、方法。
【請求項2】
前記それぞれのインデックスは、両端値を含む[0,フィルタ係数のセットの数-1]の前記範囲内にある、
請求項1に記載の方法。
【請求項3】
少なくとも1つのピクセルの1つまたは複数の勾配を計算することと、
フィルタサポート領域または前記選択されたフィルタの係数のうちの1つに対して実施されるべき幾何学的変換を選択することと
をさらに備え、前記幾何学的変換を選択することは、前記少なくとも1つのピクセルの前記勾配の向きに対応する前記幾何学的変換を選択すること備える、
請求項1に記載の方法。
【請求項4】
前記幾何学的変換は、回転、対角反転、または垂直反転のうちの1つを備える、
請求項3に記載の方法。
【請求項5】
前記フィルタサポート領域は、前記選択されたフィルタの係数がそれに適用されるべきである、前記現在ブロックの前記少なくとも1つのピクセルに対する複数の隣接ピクセルを備え、前記少なくとも1つのピクセルをフィルタ処理することは、前記選択されたフィルタの、前記係数または前記フィルタサポート領域のいずれかに対して前記幾何学的変換を実施することを備える、
請求項3に記載の方法。
【請求項6】
前記複数のフィルタを構築することは、
前記複数のフィルタの前記サブセットに対応する前記クラスと別個の少なくとも1つのクラスのために、固定フィルタが前記クラスのフィルタ係数のセットを予測するために使用されるかどうかを示すフラグの値を決定することと、
固定フィルタが、前記フィルタ係数のセットを予測するために使用されることを示す前記フラグの前記値に応答して、固定フィルタのセットへのインデックス値を決定することと、前記インデックス値によって識別された前記固定フィルタのセットの固定フィルタを使用して、前記クラスの前記フィルタ係数のセットを予測することと
を備える、請求項1に記載の方法。
【請求項7】
前記複数のフィルタを構築することは、
前記クラスの前記予測されたフィルタ係数のセットに適用されるべきオフセット値を決定することと、
前記クラスのための前記フィルタを構築するために前記クラスの前記予測されたフィルタ係数のセットに前記オフセット値を適用することと
をさらに備える、請求項6に記載の方法。
【請求項8】
前記複数のフィルタを構築することは、
前記複数のフィルタの前記サブセットに対応する前記クラスと別個の前記クラスのサブセットのいずれかのための前記フィルタ係数のセットのいずれも前記固定フィルタのいずれかから予測されないこと、
前記クラスの前記サブセットのすべてのための前記フィルタ係数のセットのすべてが前記固定フィルタのうちの少なくとも1つから予測されること、または
前記クラスの前記サブセットの前記フィルタ係数のセットのいくつかが前記固定フィルタのうちの1つまたは複数から予測されること
のうちの1つを表す値を決定することをさらに備える、請求項1に記載の方法。
【請求項9】
前記複数のクラスのいずれかのための前記フィルタ係数のセットのいずれも前記固定フィルタのいずれかから予測されないことを前記値が表すとき、前記1つまたは複数の固定フィルタのうちの固定フィルタを表すインデックス値の決定を防止することをさらに備える、
請求項8に記載の方法。
【請求項10】
前記複数のクラスのすべてのための前記フィルタ係数のセットのすべてが前記固定フィルタのうちの少なくとも1つから予測されることを前記値が表すとき、前記対応するクラスのための前記フィルタ係数のセットがそれから予測される前記固定フィルタのうちの前記1つを表す前記複数のクラスの各々のためのインデックス値を決定することをさらに備える、
請求項8に記載の方法。
【請求項11】
前記複数のクラスの前記フィルタ係数のセットのうちのいくつかが前記固定フィルタのうちの1つまたは複数から予測されることを前記値が表すとき、
前記複数のクラスのどれが前記固定フィルタのうちの1つまたは複数から予測されるフィルタ係数のセットに対応するかを決定することと、
前記固定フィルタのうちの1つまたは複数から予測される前記フィルタ係数のセットの各々のために、前記対応するフィルタ係数のセットがそれから予測される前記1つまたは複数の固定フィルタのうちの前記固定フィルタを表すインデックス値を決定することと をさらに備える、請求項8に記載の方法。
【請求項12】
前記現在ブロックを復号することより前に前記現在ブロックを符号化することをさらに備える、
請求項1に記載の方法。
【請求項13】
前記方法は、ワイヤレス通信デバイス上で実行可能であり、前記デバイスは、
前記ビデオデータを記憶するように構成されたメモリと、
前記メモリに記憶された前記ビデオデータを処理するための命令を実行するように構成されたプロセッサと、
前記ビデオデータを受信し、前記メモリに前記ビデオデータを記憶するように構成された受信機と
を備える、請求項1に記載の方法。
【請求項14】
前記ワイヤレス通信デバイスは、セルラー電話であり、前記ビデオデータは、受信機によって受信され、セルラー通信規格に従って変調される、
請求項13に記載の方法。
【請求項15】
ビデオデータの復号されたブロックをフィルタ処理するデバイスであって、
前記ビデオデータを記憶するように構成されたメモリと、
回路において実装される1つまたは複数の処理ユニットと
を備え、前記1つまたは複数のプロセッサは、
前記ビデオデータの現在ピクチャのブロックのクラスのための複数のフィルタを構築すること、ここにおいて、前記複数のフィルタを構築することは、前記1つまたは複数の処理ユニットが、
生成されるべきフィルタ係数のセットの数を決定することと、
前記数の、フィルタ係数のセットを生成することと、
前記複数のフィルタのサブセットのために、前記サブセットの前記対応するフィルタのための前記フィルタ係数のセットのうちの1つを識別するそれぞれのインデックスを決定することと
を行うように構成される、と、
前記現在ピクチャの現在ブロックを復号することと、
前記現在ブロックのためのクラスを決定することと、
前記現在ブロックのための前記クラスに対応する前記複数のフィルタのうちのフィルタを選択することと、
前記選択されたフィルタを使用して前記現在ブロックの少なくとも1つのピクセルをフィルタ処理することと
を行うように構成される、デバイス。
【請求項16】
前記それぞれのインデックスは、両端値を含む[0,フィルタ係数のセットの数-1]の前記範囲内にある、
請求項15に記載のデバイス。
【請求項17】
前記1つまたは複数の処理ユニットは、
前記少なくとも1つのピクセルの1つまたは複数の勾配を計算することと、
フィルタサポート領域または前記選択されたフィルタの係数のうちの1つに対して実施されるべき幾何学的変換を選択することと
を行うようにさらに構成され、前記幾何学的変換を選択するために、前記処理ユニットは、前記少なくとも1つのピクセルの前記勾配の向きに対応する前記幾何学的変換を選択することを行うように構成される、
請求項15に記載のデバイス。
【請求項18】
前記幾何学的変換は、回転、対角反転、または垂直反転のうちの1つを備える、
請求項17に記載のデバイス。
【請求項19】
前記フィルタサポート領域は、前記選択されたフィルタの係数がそれに適用されるべきである、前記現在ブロックの前記少なくとも1つのピクセルに対する複数の隣接ピクセルを備え、前記1つまたは複数の処理ユニットは、前記選択されたフィルタの、前記係数または前記フィルタサポート領域のいずれかに対して前記幾何学的変換を実施する要に構成される、
請求項17に記載のデバイス。
【請求項20】
前記複数のフィルタを構築するために、前記1つまたは複数の処理ユニットは、
前記複数のフィルタの前記サブセットに対応する前記クラスと別個の少なくとも1つのクラスのために、固定フィルタが前記クラスのフィルタ係数のセットを予測するために使用されるかどうかを示すフラグの値を決定することと、
固定フィルタが、前記フィルタ係数のセットを予測するために使用されることを示す前記フラグの前記値に応答して、固定フィルタのセットへのインデックス値を決定することと、前記インデックス値によって識別された前記固定フィルタのセットの固定フィルタを使用して、前記クラスの前記フィルタ係数のセットを予測することと
を行うように構成される、請求項15に記載のデバイス。
【請求項21】
前記複数のフィルタを構築するために、前記1つまたは複数の処理ユニットは、
前記クラスの前記予測されたフィルタ係数のセットに適用されるべきオフセット値を決定することと、
前記クラスのための前記フィルタを構築するために前記クラスの前記予測されたフィルタ係数のセットに前記オフセット値を適用することと
を行うように構成される、請求項20に記載のデバイス。
【請求項22】
前記複数のフィルタを構築するために、前記1つまたは複数の処理ユニットは、
前記複数のフィルタの前記サブセットに対応する前記クラスと別個の前記クラスのサブセットのいずれかのための前記フィルタ係数のセットのいずれも前記固定フィルタのいずれかから予測されないこと、
前記クラスの前記サブセットのすべてのための前記フィルタ係数のセットのすべてが前記固定フィルタのうちの少なくとも1つから予測されること、または
前記クラスの前記サブセットの前記フィルタ係数のセットのいくつかが前記固定フィルタのうちの1つまたは複数から予測されること
のうちの1つを表す値を決定するようにさらに構成される、請求項15に記載のデバイス。
【請求項23】
前記1つまたは複数の処理ユニットは、前記複数のクラスのいずれかのための前記フィルタ係数のセットのいずれも前記固定フィルタのいずれかから予測されないことを前記値が表すとき、前記1つまたは複数の固定フィルタのうちの固定フィルタを表すインデックス値の決定を防止することを行うようにさらに構成される、
請求項22に記載のデバイス。
【請求項24】
前記1つまたは複数の処理ユニットは、前記複数のクラスのすべてのための前記フィルタ係数のセットのすべてが前記固定フィルタのうちの少なくとも1つから予測されることを前記値が表すとき、前記対応するクラスのための前記フィルタ係数のセットがそれから予測される前記固定フィルタのうちの前記1つを表す前記複数のクラスの各々のためのインデックス値を決定することを行うようにさらに構成される、
請求項22に記載のデバイス。
【請求項25】
前記1つまたは複数の処理ユニットは、前記複数のクラスの前記フィルタ係数のセットのうちのいくつかが前記固定フィルタのうちの1つまたは複数から予測されることを前記値が表すとき、
前記複数のクラスのどれが前記固定フィルタのうちの1つまたは複数から予測されるフィルタ係数のセットに対応するかを決定することと、
前記固定フィルタのうちの1つまたは複数から予測される前記フィルタ係数のセットの各々のために、前記対応するフィルタ係数のセットがそれから予測される前記1つまたは複数の固定フィルタのうちの前記固定フィルタを表すインデックス値を決定することと を行うようにさらに構成される、請求項22に記載のデバイス。
【請求項26】
前記1つまたは複数の処理ユニットは、前記現在ブロックを復号することより前に、前記現在ブロックを符号化するようにさらに構成される、
請求項15に記載のデバイス。
【請求項27】
前記デバイスは、ワイヤレス通信デバイスであり、
前記現在ピクチャを含むビデオデータを受信するように構成される受信機をさらに備える、
請求項15に記載のデバイス。
【請求項28】
前記ワイヤレス通信デバイスは、セルラー電話であり、前記ビデオデータは、前記受信機によって受信され、セルラー通信規格に従って変調される、
請求項27に記載のデバイス。
【請求項29】
ビデオデータの復号されたブロックをフィルタ処理するデバイスであって、
ビデオデータの現在ピクチャのブロックのクラスのための複数のフィルタを構築するための手段、ここにおいて、前記複数のフィルタを前記構築するための手段は、
生成されるべきフィルタ係数のセットの数を決定するための手段と、
フィルタ係数のセットを生成するための手段と、
前記複数のフィルタのサブセットのために、前記サブセットの前記対応するフィルタのための前記フィルタ係数のセットのうちの1つを識別するそれぞれのインデックスを決定するための手段と
を備える、と、
前記現在ピクチャの現在ブロックを復号するための手段と、
前記現在ブロックのためのクラスを決定するための手段と、
前記現在ブロックのための前記クラスに対応する前記複数のフィルタのうちのフィルタを選択するための手段と、
前記選択されたフィルタを使用して前記現在ブロックの少なくとも1つのピクセルをフィルタ処理するための手段と
を備える、デバイス。
【請求項30】
前記それぞれのインデックスは、両端値を含む[0,フィルタ係数のセットの数-1]の前記範囲内にある、
請求項29に記載のデバイス。
【請求項31】
前記少なくとも1つのピクセルの1つまたは複数の勾配を計算するための手段と、
フィルタサポート領域または前記選択されたフィルタの係数のうちの1つに対して実施されるべき幾何学的変換を選択するための手段と
をさらに備え、前記幾何学的変換を前記選択するための手段は、前記少なくとも1つのピクセルの前記勾配の向きに対応する前記幾何学的変換を選択するための手段を備える、 請求項29に記載のデバイス。
【請求項32】
前記複数のフィルタを前記構築するための手段は、
前記複数のフィルタの前記サブセットに対応する前記クラスと別個の少なくとも1つのクラスのために、固定フィルタが前記クラスのフィルタ係数のセットを予測するために使用されるかどうかを示すフラグの値を決定するための手段と、
固定フィルタが、前記フィルタ係数のセットを予測するために使用されることを示す前記フラグの前記値に応答して、固定フィルタのセットへのインデックス値を決定するための手段と、
前記インデックス値によって識別された前記固定フィルタのセットの固定フィルタを使用して、前記クラスの前記フィルタ係数のセットを予測するための手段と
を備える、請求項29に記載のデバイス。
【請求項33】
前記複数のフィルタを前記構築するための手段は、
前記複数のフィルタの前記サブセットに対応する前記クラスと別個の前記クラスのサブセットのいずれかのための前記フィルタ係数のセットのいずれも前記固定フィルタのいずれかから予測されないこと、
前記クラスの前記サブセットのすべてのための前記フィルタ係数のセットのすべてが前記固定フィルタのうちの少なくとも1つから予測されること、または
前記クラスの前記サブセットの前記フィルタ係数のセットのいくつかが前記固定フィルタのうちの1つまたは複数から予測されること
のうちの1つを表す値を決定するための手段をさらに備える、請求項29に記載のデバイス。
【請求項34】
前記現在ブロックを復号することより前に前記現在ブロックを符号化することをさらに備える、
請求項29に記載のデバイス。
【請求項35】
命令を記憶したコンピュータ可読記憶媒体であって、前記命令は、実行されたとき、プロセッサに、
ビデオデータの現在ピクチャのブロックのクラスのための複数のフィルタを構築すること、ここにおいて、前記プロセッサに、前記複数のフィルタを構築することを行わせる前記命令は、前記プロセッサに、
生成されるべきフィルタ係数のセットの数を決定することと、
前記数の、フィルタ係数のセットを生成することと、
前記複数のフィルタのサブセットのために、前記サブセットの前記対応するフィルタのための前記フィルタ係数のセットのうちの1つを識別するそれぞれのインデックスを決定することと
を行わせる命令を備える、と、
前記現在ピクチャの現在ブロックを復号することと、
前記現在ブロックのためのクラスを決定することと、
前記現在ブロックのための前記クラスに対応する前記複数のフィルタのうちのフィルタを選択することと、
前記選択されたフィルタを使用して前記現在ブロックの少なくとも1つのピクセルをフィルタ処理することと
を行わせる命令を備える、コンピュータ可読記憶媒体。
【請求項36】
前記それぞれのインデックスは、両端値を含む[0,フィルタ係数のセットの数-1]の前記範囲内にある、
請求項35に記載のコンピュータ可読記憶媒体。
【請求項37】
プロセッサに、
少なくとも1つのピクセルの1つまたは複数の勾配を計算することと、
フィルタサポート領域または前記選択されたフィルタの係数のうちの1つに対して実施されるべき幾何学的変換を選択することと
を行わせる命令をさらに備え、前記プロセッサに、前記幾何学的変換を選択することを行わせる前記命令は、前記プロセッサに、前記少なくとも1つのピクセルの前記勾配の向きに対応する前記幾何学的変換を選択することを行わせる命令を備える、
請求項35に記載のコンピュータ可読記憶媒体。
【請求項38】
前記プロセッサに、前記複数のフィルタを構築することを行わせる前記命令は、前記プロセッサに、
前記複数のフィルタの前記サブセットに対応する前記クラスと別個の少なくとも1つのクラスのために、固定フィルタが前記クラスのフィルタ係数のセットを予測するために使用されるかどうかを示すフラグの値を決定することと、
固定フィルタが、前記フィルタ係数のセットを予測するために使用されることを示す前記フラグの前記値に応答して、固定フィルタのセットへのインデックス値を決定することと、前記インデックス値によって識別された前記固定フィルタのセットの固定フィルタを使用して、前記クラスの前記フィルタ係数のセットを予測することと
を行わせる命令を備える、請求項35に記載のコンピュータ可読記憶媒体。
【請求項39】
前記プロセッサに、前記複数のフィルタを構築することを行わせる前記命令は、前記プロセッサに、
前記複数のフィルタの前記サブセットに対応する前記クラスと別個の前記クラスのサブセットのいずれかのための前記フィルタ係数のセットのいずれも前記固定フィルタのいずれかから予測されないこと、
前記クラスの前記サブセットのすべてのための前記フィルタ係数のセットのすべてが前記固定フィルタのうちの少なくとも1つから予測されること、または
前記クラスの前記サブセットの前記フィルタ係数のセットのいくつかが前記固定フィルタのうちの1つまたは複数から予測されること
のうちの1つを表す値を決定することを行わせる命令をさらに備える、請求項35に記載のコンピュータ可読記憶媒体。
【請求項40】
前記プロセッサに、前記現在ブロックを復号することより前に、前記現在ブロックを符号化することを行わせる命令をさらに備える、
請求項35に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【関連出願】
【0001】
[0001]本出願は、各々の内容全体が参照により本明細書に組み込まれる、2016年2月15日に出願された米国仮出願第62/295,461号、および2016年4月19日に出願された米国仮出願第62/324,776号の利益を主張する。
【技術分野】
【0002】
[0002]本開示はビデオコーディングに関する。
【背景技術】
【0003】
[0003]デジタルビデオ能力は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダー、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラーまたは衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲にわたるデバイスに組み込まれ得る。デジタルビデオデバイスは、MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4,Part10,アドバンストビデオコーディング(AVC:Advanced Video Coding)、最近確定されたITU-T H.265,高効率ビデオコーディング(HEVC:High Efficiency Video Coding)規格によって定義された規格、およびそのような規格の拡張に記載されているビデオ圧縮技法などのビデオ圧縮技法を実装する。ビデオデバイスは、そのようなビデオ圧縮技法を実装することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および/または記憶し得る。
【0004】
[0004]ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を低減または除去するために空間(イントラピクチャ)予測および/または時間(インターピクチャ)予測を実施する。ブロックベースのビデオコーディングでは、ビデオスライス(すなわち、ビデオフレームまたはビデオフレームの一部分)が、ツリーブロック、コーディングユニット(CU)および/またはコーディングノードと呼ばれることもあるビデオブロックに区分され得る。ピクチャのイントラコード化(I)スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間予測を使用して符号化される。ピクチャのインターコード化(PまたはB)スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間予測、または他の参照ピクチャ中の参照サンプルに対する時間予測を使用し得る。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
【0005】
[0005]空間予測または時間予測は、コーディングされるべきブロックのための予測ブロックを生じる。残差データは、コーディングされるべき元のブロックと予測ブロックとの間のピクセル差を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指す動きベクトルに従って符号化され、残差データは、コード化ブロックと予測ブロックとの間の差分を示す。イントラコード化ブロックは、イントラコーディングモードと残差データとに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換され、残差変換係数が生じ得、その残差変換係数は、次いで量子化され得る。最初に2次元アレイで構成される量子化変換係数は、変換係数の1次元ベクトルを生成するためにスキャンされ得、なお一層の圧縮を達成するために、エントロピーコーディングが適用され得る。
【発明の概要】
【0006】
[0006]概して、本開示は、適応ループフィルタ処理(ALF)など、フィルタ処理に関係する技法について説明する。特に、ビデオデータのブロックの異なるクラスのためのフィルタを生成するための様々な技法が、ビデオエンコーダまたはビデオデコーダなど、ビデオコーダによって実施され得る。一例では、ビデオコーダは、フィルタ係数の複数のセットを構築し、ブロックの様々なクラスのためのフィルタ係数のセットへのインデックスをコーディングし得、ここで、各インデックスは、ブロックの対応するクラスのためのフィルタ係数のセットを識別する。別の例では、ビデオコーダは、前に生成されたフィルタのフィルタ係数のセットを使用することと、フィルタサポート領域に、またはフィルタ係数自体に(回転、垂直反転、または対角反転などの)幾何学的変換を適用することとによって、ブロックのクラスのためのフィルタを生成し得る。さらに別の例では、ビデオコーダは、固定フィルタ、または前にコーディングされたピクチャのフィルタのいずれかから、ブロックのクラスのためのフィルタ係数を予測し得る。
【0007】
[0007]一例では、ビデオデータの復号されたブロックをフィルタ処理する方法が、ビデオデータの現在ピクチャの現在ブロックを復号することと、現在ブロックのピクセルをフィルタ処理するために使用されるべきフィルタを(適応ループフィルタ処理(ALF)に従ってなど)選択することと、選択されたフィルタの、フィルタサポート領域または係数のうちの1つに対して実施されるべき幾何学的変換を選択することと、選択されたフィルタの、フィルタサポート領域または係数のいずれかに対して幾何学的変換を実施することと、幾何学的変換を実施することの後に、選択されたフィルタを使用して現在ブロックの少なくとも1つのピクセルをフィルタ処理することとを含む。
【0008】
[0008]別の例では、ビデオデータの復号されたブロックをフィルタ処理するためのデバイスが、ビデオデータを記憶するように構成されたメモリと、回路において実装される1つまたは複数のプロセッサとを含み、1つまたは複数のプロセッサは、ビデオデータの現在ピクチャの現在ブロックを復号することと、現在ブロックのピクセルをフィルタ処理するために使用されるべきフィルタを(適応ループフィルタ処理(ALF)に従ってなど)選択することと、選択されたフィルタの、フィルタサポート領域または係数のうちの1つに対して実施されるべき幾何学的変換を選択することと、幾何学的変換を実施することの後に、選択されたフィルタを使用して現在ブロックの少なくとも1つのピクセルをフィルタ処理することとを行うように構成される。
【0009】
[0009]別の例では、ビデオデータの復号されたブロックをフィルタ処理するためのデバイスが、ビデオデータの現在ピクチャの現在ブロックを復号するための手段と、現在ブロックのピクセルをフィルタ処理するために使用されるべきフィルタを(適応ループフィルタ処理(ALF)に従ってなど)選択するための手段と、選択されたフィルタの、フィルタサポート領域または係数のうちの1つに対して実施されるべき幾何学的変換を選択するための手段と、選択されたフィルタの、フィルタサポート領域または係数のいずれかに対して幾何学的変換を実施するための手段と、幾何学的変換を実施することの後に、選択されたフィルタを使用して現在ブロックの少なくとも1つのピクセルをフィルタ処理するための手段とを含む。
【0010】
[0010]別の例では、(非一時的コンピュータ可読記憶媒体などの)コンピュータ可読記憶媒体が、実行されたとき、プロセッサに、ビデオデータの現在ピクチャの現在ブロックを復号することと、現在ブロックのピクセルをフィルタ処理するために使用されるべきフィルタを(適応ループフィルタ処理(ALF)に従ってなど)選択することと、選択されたフィルタの、フィルタサポート領域または係数のうちの1つに対して実施されるべき幾何学的変換を選択することと、選択されたフィルタの、フィルタサポート領域または係数のいずれかに対して幾何学的変換を実施することと、幾何学的変換を実施することの後に、選択されたフィルタを使用して現在ブロックの少なくとも1つのピクセルをフィルタ処理することとを行わせる命令を記憶している。
【0011】
[0011]別の例では、ビデオデータの復号されたブロックをフィルタ処理する方法が、ビデオデータの現在ピクチャのブロックのクラスのための複数のフィルタを構築することを含み、ここにおいて、複数のフィルタを構築することは、クラスの各々のために、固定フィルタが、クラスのフィルタ係数のセットを予測するために使用されるかどうかを決定することと、固定フィルタが、フィルタ係数のセットを予測するために使用されると決定したことに応答して、クラスの固定フィルタのセットへのインデックス値を決定することと、インデックス値によって識別された固定フィルタのセットの固定フィルタを使用して、クラスのフィルタ係数のセットを予測することと、ビデオデータの現在ピクチャの現在ブロックを復号することと、現在ブロックのためのクラスを決定することと、現在ブロックのためのクラスに対応する複数のフィルタのうちのフィルタを選択することと、選択されたフィルタを使用して現在ブロックの少なくとも1つのピクセルをフィルタ処理することとを備える。
【0012】
[0012]別の例では、ビデオデータの復号されたブロックをフィルタ処理するためのデバイスが、ビデオデータを記憶するように構成されたメモリと、回路において実装される1つまたは複数の処理ユニットとを含み、1つまたは複数の処理ユニットは、ビデオデータの現在ピクチャのブロックのクラスのための複数のフィルタを構築することを行うように構成され、ここにおいて、クラスの各々のために複数のフィルタを構築するために、1つまたは複数の処理ユニットは、固定フィルタが、クラスのフィルタ係数のセットを予測するために使用されるかどうかを決定することと、固定フィルタが、フィルタ係数のセットを予測するために使用されると決定したことに応答して、クラスの固定フィルタのセットへのインデックス値を決定することと、インデックス値によって識別された固定フィルタのセットの固定フィルタを使用して、クラスのフィルタ係数のセットを予測することと、ビデオデータの現在ピクチャの現在ブロックを復号することと、現在ブロックのためのクラスを決定することと、現在ブロックのためのクラスに対応する複数のフィルタのうちのフィルタを選択することと、選択されたフィルタを使用して現在ブロックの少なくとも1つのピクセルをフィルタ処理することとを行うように構成される。
【0013】
[0013]別の例では、ビデオデータの復号されたブロックをフィルタ処理するためのデバイスが、ビデオデータの現在ピクチャのブロックのクラスのための複数のフィルタを構築するための手段を含み、ここにおいて、複数のフィルタを構築するための手段は、固定フィルタが、クラスの各々のフィルタ係数のセットを予測するために使用されるかどうかを決定するための手段と、固定フィルタが、フィルタ係数のセットを予測するために使用されると決定したことに応答して、クラスの固定フィルタのセットへのインデックス値を決定するための手段と、インデックス値によって識別された固定フィルタのセットの固定フィルタを使用して、クラスのフィルタ係数のセットを予測するための手段とを備える。本デバイスは、ビデオデータの現在ピクチャの現在ブロックを復号するための手段と、現在ブロックのためのクラスを決定するための手段と、現在ブロックのためのクラスに対応する複数のフィルタのうちのフィルタを選択するための手段と、選択されたフィルタを使用して現在ブロックの少なくとも1つのピクセルをフィルタ処理するための手段とをさらに含む。
【0014】
[0014]別の例では、(非一時的コンピュータ可読記憶媒体などの)コンピュータ可読記憶媒体が、実行されたとき、プロセッサに、ビデオデータの現在ピクチャのブロックのクラスのための複数のフィルタを構築することを行わせる命令を記憶しており、ここにおいて、プロセッサに、複数のフィルタを構築することを行わせる命令は、プロセッサに、クラスの各々のために、固定フィルタが、クラスのフィルタ係数のセットを予測するために使用されるかどうかを決定することと、固定フィルタが、フィルタ係数のセットを予測するために使用されると決定したことに応答して、クラスの固定フィルタのセットへのインデックス値を決定することと、インデックス値によって識別された固定フィルタのセットの固定フィルタを使用して、クラスのフィルタ係数のセットを予測することと、ビデオデータの現在ピクチャの現在ブロックを復号することと、現在ブロックのためのクラスを決定することと、現在ブロックのためのクラスに対応する複数のフィルタのうちのフィルタを選択することと、選択されたフィルタを使用して現在ブロックの少なくとも1つのピクセルをフィルタ処理することとを行わせる命令を備える。
【0015】
[0015]別の例では、ビデオデータの復号されたブロックをフィルタ処理する方法が、ビデオデータの現在ピクチャのブロックのクラスのための複数のフィルタを構築することと、ここにおいて、複数のフィルタを構築することは、生成されるべきフィルタ係数のセットの数を決定することと、その数の、フィルタ係数のセットを生成することと、複数のフィルタのサブセットのために、サブセットの対応するフィルタのためのフィルタ係数のセットのうちの1つを識別するそれぞれのインデックスを決定することとを備え、現在ピクチャの現在ブロックを復号することと、現在ブロックのためのクラスを決定することと、現在ブロックのためのクラスに対応する複数のフィルタのうちのフィルタを選択することと、選択されたフィルタを使用して現在ブロックの少なくとも1つのピクセルをフィルタ処理することとを含む。
【0016】
[0016]別の例では、ビデオデータの復号されたブロックをフィルタ処理するためのデバイスが、ビデオデータを記憶するように構成されたメモリと、回路において実装される1つまたは複数の処理ユニットとを含み、1つまたは複数の処理ユニットは、ビデオデータの現在ピクチャのブロックのクラスのための複数のフィルタを構築することと、ここにおいて、複数のフィルタを構築するために、1つまたは複数の処理ユニットは、生成されるべきフィルタ係数のセットの数を決定することと、その数の、フィルタ係数のセットを生成することと、複数のフィルタのサブセットのために、サブセットの対応するフィルタのためのフィルタ係数のセットのうちの1つを識別するそれぞれのインデックスを決定することとを行うように構成され、現在ピクチャの現在ブロックを復号することと、現在ブロックのためのクラスを決定することと、現在ブロックのためのクラスに対応する複数のフィルタのうちのフィルタを選択することと、選択されたフィルタを使用して現在ブロックの少なくとも1つのピクセルをフィルタ処理することとを行うように構成される。
【0017】
[0017]別の例では、ビデオデータの復号されたブロックをフィルタ処理するためのデバイスが、ビデオデータの現在ピクチャのブロックのクラスのための複数のフィルタを構築するための手段を含み、ここにおいて、複数のフィルタを構築するための手段は、生成されるべきフィルタ係数のセットの数を決定するための手段と、その数の、フィルタ係数のセットを生成するための手段と、複数のフィルタのサブセットのために、サブセットの対応するフィルタのためのフィルタ係数のセットのうちの1つを識別するそれぞれのインデックスを決定するための手段とを備え、本デバイスは、現在ピクチャの現在ブロックを復号するための手段と、現在ブロックのためのクラスを決定するための手段と、現在ブロックのためのクラスに対応する複数のフィルタのうちのフィルタを選択するための手段と、選択されたフィルタを使用して現在ブロックの少なくとも1つのピクセルをフィルタ処理するための手段とをさらに含む。
【0018】
[0018]別の例では、コンピュータ可読記憶媒体が、実行されたとき、プロセッサに、ビデオデータの現在ピクチャのブロックのクラスのための複数のフィルタを構築することと、ここにおいて、プロセッサに、複数のフィルタを構築することを行わせる命令は、プロセッサに、フィルタ係数の複数のセットを生成することと、複数のフィルタのサブセットのために、サブセットの対応するフィルタのためのフィルタ係数のセットのうちの1つを識別するそれぞれのインデックスを決定することとを行わせる命令を備え、現在ピクチャの現在ブロックを復号することと、現在ブロックのためのクラスを決定することと、現在ブロックのためのクラスに対応する複数のフィルタのうちのフィルタを選択することと、選択されたフィルタを使用して現在ブロックの少なくとも1つのピクセルをフィルタ処理することとを行わせる命令を記憶している。
【0019】
[0019]1つまたは複数の例の詳細が添付の図面および以下の説明に記載される。他の特徴、目的、および利点は、説明および図面、ならびに特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【0020】
【
図1】本開示で説明される技法を利用し得る例示的なビデオ符号化および復号システムを示すブロック図。
【
図2】アクティビティメトリックおよび方向メトリックのための範囲の、フィルタへのマッピングを示す概念図。
【
図3】フィルタ係数差分をシグナリングするための例示的なパターンを示す概念図。
【
図4】本開示で説明される技法を実装し得る例示的なビデオエンコーダを示すブロック図。
【
図5】本開示で説明される技法を実装し得る例示的なビデオデコーダを示すブロック図。
【
図6】(たとえば、ビデオ符号化プロセス中に)ビデオエンコーダによって、復号されたピクチャのブロックをフィルタ処理するための例示的な方法を示すフローチャート。
【
図7】(たとえば、ビデオ復号プロセス中に)ビデオデコーダによって、復号されたピクチャのブロックをフィルタ処理するための例示的な方法を示すフローチャート。
【
図8】(たとえば、ビデオ符号化プロセス中に)ビデオエンコーダによって、復号されたピクチャのブロックをフィルタ処理するための例示的な方法を示すフローチャート。
【
図9】(たとえば、ビデオ復号プロセス中に)ビデオデコーダによって、復号されたピクチャのブロックをフィルタ処理するための例示的な方法を示すフローチャート。
【
図10】(たとえば、ビデオ符号化プロセス中に)ビデオエンコーダによって、復号されたピクチャのブロックをフィルタ処理するための例示的な方法を示すフローチャート。
【
図11】(たとえば、ビデオ復号プロセス中に)ビデオデコーダによって、復号されたピクチャのブロックをフィルタ処理するための例示的な方法を示すフローチャート。
【発明を実施するための形態】
【0021】
[0031]一般的なビデオエンコーダでは、元のビデオシーケンスのフレームは、イントラモード(Iモード)またはインターモード(Pモード)で符号化される、矩形領域またはブロックに区分される。ブロックは、DCTコーディングなど、何らかの種類の変換コーディングを使用してコーディングされる。しかしながら、純粋な変換ベースのコーディングは、ピクセルのブロック間相関を考慮することなしに、特定のブロック内のピクセル間相関を低減するにすぎず、純粋な変換ベースのコーディングは、依然として、送信のための高いビットレートを生成する。現在のデジタル画像コーディング規格は、ブロック間のピクセル値の相関を低減するいくつかの方法をも活用する。以下の説明において明らかにされるように、ビデオコーディングという用語は、本開示では、ビデオ符号化またはビデオ復号のいずれかを総称的に指すために使用され得る。
【0022】
[0032]概して、Pモードで符号化されたブロックは、前にコーディングおよび送信されたフレームのうちの1つから予測される。ブロックの予測情報は、2次元(2D)動きベクトルによって表される。Iモードで符号化されたブロックの場合、被予測ブロックは、同じフレーム内のすでに符号化された隣接ブロックからの空間予測を使用して形成される。予測誤差、すなわち、符号化されているブロックと被予測ブロックとの間の差分は、何らかの離散変換の重み付けされた基底関数のセットとして表される。変換は、一般に、8×8または4×4ブロックベースで実施される。重み、すなわち、変換係数はその後量子化される。量子化は情報の損失をもたらし、したがって、量子化係数は、元の係数よりも低い精度を有する。
【0023】
[0033]量子化変換係数は、動きベクトルおよび何らかの制御情報とともに、完全なコード化シーケンス表現を形成し、シンタックス要素と呼ばれる。エンコーダからデコーダへの送信より前に、シンタックス要素は、シンタックス要素を表すために使用されるビットの数をさらに低減するようにエントロピー符号化される。
【0024】
[0034]デコーダにおいて、現在フレーム中のブロックは、エンコーダの場合と同様の方法でそれの予測を最初に構築することによって、および予測に圧縮された予測誤差を加算することによって取得される。圧縮された予測誤差は、量子化係数を使用して変換基底関数を重み付けすることによって見つけられる。再構築されたフレームと元のフレームとの間の差分は、再構築誤差と呼ばれる。
【0025】
[0035]復号されたビデオの品質をさらに改善するために、ビデオデコーダは、再構築されたビデオブロックに対して1つまたは複数のフィルタ処理演算を実施することができる。これらのフィルタ処理演算の例は、デブロッキングフィルタ処理と、サンプル適応オフセット(SAO)フィルタ処理と、適応ループフィルタ処理(ALF)とを含む。これらのフィルタ処理演算のためのパラメータは、ビデオエンコーダによって決定され、符号化ビデオビットストリーム中で明示的にシグナリングされるか、またはビデオデコーダによって暗黙的に決定されるかのいずれかであり得る。
【0026】
[0036]本開示は、ビデオ符号化および/またはビデオ復号プロセスにおいて再構築されたビデオデータをフィルタ処理することに関連する技法について説明し、より詳細には、本開示は、ALFに関係する技法について説明する。本開示によれば、フィルタ処理がエンコーダにおいて適用され、エンコーダにおいて適用されたフィルタ処理をデコーダが識別することを可能にするために、フィルタ情報がビットストリーム中で符号化される。ビデオエンコーダは、いくつかの異なるフィルタ処理シナリオをテストし、レートひずみ分析に基づいて、再構築されたビデオ品質と圧縮品質との間の所望のトレードオフを生成するフィルタまたはフィルタのセットを選定し得る。ビデオデコーダは、フィルタ情報を含む符号化ビデオデータを受信し、ビデオデータを復号し、フィルタ処理情報に基づいてフィルタ処理を適用する。このようにして、ビデオデコーダは、ビデオエンコーダにおいて適用された同じフィルタ処理を適用する。
【0027】
[0037]本開示では、「フィルタ」という用語は、概して、フィルタ係数のセットを指す。たとえば、3×3フィルタは、9つのフィルタ係数のセットによって定義され得、5×5フィルタは、25個のフィルタ係数のセットによって定義され得、9×5フィルタは、45個のフィルタ係数のセットによって定義され得、以下同様である。「フィルタのセット」という用語は、概して、2つ以上のフィルタのグループを指す。たとえば、2つの3×3フィルタのセットは、9つのフィルタ係数の第1のセットと、9つのフィルタ係数の第2のセットとを含むことができる。「フィルタサポート」と呼ばれることがある「形状」という用語は、概して、特定のフィルタのための、フィルタ係数の行の数と、フィルタ係数の列の数とを指す。たとえば、9×9は第1の形状の例であり、7×5は第2の形状の例であり、5×9は第3の形状の例である。いくつかの事例では、フィルタは、ダイヤモンド形状、ダイヤモンド様形状、円形形状、円形様形状、六角形形状、八角形形状、クロス形状、X形状、T形状、他の幾何学的形状、あるいは多数の他の形状または構成を含む非矩形形状をとり得る。この場合、非矩形フィルタサポートについて、フィルタ係数の数は異なり得る。たとえば、9×9ダイヤモンドフィルタサポートの場合、9×9ダイヤモンドフィルタは、(9×9/4+1)個のフィルタ係数のセットによって定義され得る。
【0028】
[0038]
図1は、本開示で説明される技法を実装し得る例示的なビデオ符号化および復号システム10を示すブロック図である。
図1に示されているように、システム10は、宛先デバイス14によって後で復号されるべき符号化ビデオデータを生成するソースデバイス12を含む。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの電話ハンドセット、いわゆる「スマート」パッド、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲のデバイスのいずれかを備え得る。いくつかの場合には、ソースデバイス12および宛先デバイス14は、ワイヤレス通信のために装備され得る。
【0029】
[0039]宛先デバイス14は、リンク16を介して復号されるべき符号化ビデオデータを受信し得る。リンク16は、ソースデバイス12から宛先デバイス14に符号化ビデオデータを移動することが可能な任意のタイプの媒体またはデバイスを備え得る。一例では、リンク16は、ソースデバイス12が、符号化ビデオデータをリアルタイムで宛先デバイス14に直接送信することを可能にするための通信媒体を備え得る。符号化されたビデオデータは、ワイヤレス通信プロトコルなどの通信規格に従って変調され、宛先デバイス14に送信され得る。通信媒体は、無線周波数(RF)スペクトルまたは1つまたは複数の物理伝送ラインなど、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースのネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス12から宛先デバイス14への通信を可能にするために有用であり得る任意の他の機器を含み得る。
【0030】
[0040]代替的に、符号化データは、出力インターフェース22からストレージデバイス26に出力され得る。同様に、符号化データは、入力インターフェースによってストレージデバイス26からアクセスされ得る。ストレージデバイス26は、ハードドライブ、Blu-ray(登録商標)ディスク、DVD、CD-ROM、フラッシュメモリ、揮発性または不揮発性メモリ、あるいは符号化ビデオデータを記憶するための任意の他の好適なデジタル記憶媒体など、様々な分散したまたはローカルでアクセスされるデータ記憶媒体のいずれかを含み得る。さらなる一例では、ストレージデバイス26は、ソースデバイス12によって生成された符号化ビデオを保持し得るファイルサーバまたは別の中間ストレージデバイスに対応し得る。宛先デバイス14は、ストリーミングまたはダウンロードを介して、ストレージデバイス26から、記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化ビデオデータを記憶し、その符号化ビデオデータを宛先デバイス14に送信することが可能な任意のタイプのサーバであり得る。例示的なファイルサーバとしては、(たとえば、ウェブサイトのための)ウェブサーバ、FTPサーバ、ネットワーク接続ストレージ(NAS)デバイス、またはローカルディスクドライブがある。宛先デバイス14は、インターネット接続を含む、任意の標準のデータ接続を通して符号化ビデオデータにアクセスし得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適であるワイヤレスチャネル(たとえば、Wi-Fi(登録商標)接続)、ワイヤード接続(たとえば、DSL、ケーブルモデムなど)、またはその両方の組合せを含み得る。ストレージデバイス26からの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであり得る。
【0031】
[0041]本開示の技法は、必ずしもワイヤレス適用例または設定に限定されるとは限らない。本技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、および/またはビデオテレフォニーなどの適用例をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
【0032】
[0042]
図1の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、出力インターフェース22とを含む。場合によっては、出力インターフェース22は、変調器/復調器(モデム)および/または送信機を含み得る。ソースデバイス12において、ビデオソース18は、ビデオキャプチャデバイス、たとえば、ビデオカメラ、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および/またはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムなどのソース、あるいはそのようなソースの組合せを含み得る。一例として、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、いわゆるカメラフォンまたはビデオフォンを形成し得る。ただし、本開示で説明される技法は、概してビデオコーディングに適用可能であり得、ワイヤレスおよび/またはワイヤード適用例に適用され得る。
【0033】
[0043]キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成されたビデオは、ビデオエンコーダ20によって符号化され得る。符号化ビデオデータは、ソースデバイス12の出力インターフェース22を介して宛先デバイス14に直接送信され得る。符号化ビデオデータは、さらに(または代替的に)、復号および/または再生のための宛先デバイス14または他のデバイスによる後のアクセスのためにストレージデバイス26上に記憶され得る。
【0034】
[0044]宛先デバイス14は、入力インターフェース28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。場合によっては、入力インターフェース28は受信機および/またはモデムを含み得る。宛先デバイス14の入力インターフェース28は、リンク16を介して符号化ビデオデータを受信する。リンク16を介して通信され、またはストレージデバイス26上に与えられた符号化ビデオデータは、ビデオデータを復号する際に、ビデオデコーダ30など、ビデオデコーダが使用するためのビデオエンコーダ20によって生成される様々なシンタックス要素を含み得る。そのようなシンタックス要素は、通信媒体上で送信されるか、記憶媒体上に記憶されるか、またはファイルサーバ上に記憶される符号化ビデオデータとともに含まれ得る。
【0035】
[0045]ディスプレイデバイス32は、宛先デバイス14と一体化されるかまたはその外部にあり得る。いくつかの例では、宛先デバイス14は、一体型ディスプレイデバイスを含み、また、外部ディスプレイデバイスとインターフェースするように構成され得る。他の例では、宛先デバイス14はディスプレイデバイスであり得る。概して、ディスプレイデバイス32は、復号されたビデオデータをユーザに表示し、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
【0036】
[0046]ビデオエンコーダ20およびビデオデコーダ30は、最近確定された高効率ビデオコーディング(HEVC)規格などのビデオ圧縮規格に従って動作し得、HEVCテストモデル(HM:HEVC Test Model)に準拠し得る。代替的に、ビデオエンコーダ20およびビデオデコーダ30は、代替的にMPEG-4,Part 10,アドバンストビデオコーディング(AVC)と呼ばれるITU-T H.264規格など、他のプロプライエタリ規格または業界規格、あるいはそのような規格の拡張に従って動作し得る。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。ビデオ圧縮規格の他の例としては、MPEG-2およびITU-T H.263がある。
【0037】
[0047]本開示の技法は、説明を簡単にするためにHEVC用語を利用し得る。しかしながら、本開示の技法がHEVCに限定されると仮定されるべきでなく、実際は、本開示の技法が、HEVCの後継規格およびその拡張において実装され得ることが明示的に企図される。
【0038】
[0048]
図1には示されていないが、いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30は、それぞれオーディオエンコーダおよびオーディオデコーダと統合され得、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するために、適切なMUX-DEMUXユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、いくつかの例では、MUX-DEMUXユニットは、ITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
【0039】
[0049]ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダ回路のいずれか、あるいはそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアのための命令を記憶し、本開示の技法を実施するために1つまたは複数のプロセッサを使用してその命令をハードウェアで実行し得る。ビデオエンコーダ20およびビデオデコーダ30の各々は1つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも、それぞれのデバイスにおいて複合エンコーダ/デコーダ(コーデック)の一部として統合され得る。
【0040】
[0050]上記で紹介されたように、JCT-VCはHEVC規格の開発を最近確定した。HEVC規格化の取り組みは、HEVCテストモデル(HM)と呼ばれるビデオコーディングデバイスの発展的モデルに基づいていた。HMは、たとえば、ITU-T H.264/AVCに従う既存のデバイスに対してビデオコーディングデバイスのいくつかの追加の能力を仮定する。たとえば、H.264は9つのイントラ予測符号化モードを与えるが、HMは35個ものイントラ予測符号化モードを与え得る。
【0041】
[0051]HEVCおよび他のビデオコーディング仕様では、ビデオシーケンスは一般に一連のピクチャを含む。ピクチャは「フレーム」と呼ばれることもある。ピクチャは、SL、SCb、およびSCrと示される3つのサンプルアレイを含み得る。SLはルーマサンプルの2次元アレイ(すなわち、ブロック)である。SCbはCbクロミナンスサンプルの2次元アレイである。SCrはCrクロミナンスサンプルの2次元アレイである。クロミナンスサンプルは、本明細書では「クロマ」サンプルと呼ばれることもある。他の事例では、ピクチャはモノクロームであり得、ルーマサンプルのアレイのみを含み得る。
【0042】
[0052]ピクチャの符号化表現を生成するために、ビデオエンコーダ20はコーディングツリーユニット(CTU:coding tree unit)のセットを生成し得る。CTUの各々は、ルーマサンプルのコーディングツリーブロックと、クロマサンプルの2つの対応するコーディングツリーブロックと、それらのコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。モノクロームピクチャまたは3つの別々の色平面を有するピクチャでは、CTUは、単一のコーディングツリーブロックと、そのコーディングツリーブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。コーディングツリーブロックはサンプルのN×Nブロックであり得る。CTUは「ツリーブロック」または「最大コーディングユニット」(LCU:largest coding unit)と呼ばれることもある。HEVCのCTUは、H.264/AVCなど、他の規格のマクロブロックに広い意味で類似し得る。しかしながら、CTUは、必ずしも特定のサイズに限定されるとは限らず、1つまたは複数のコーディングユニット(CU)を含み得る。スライスは、ラスタスキャン順序で連続的に順序付けられた整数個のCTUを含み得る。
【0043】
[0053]コード化CTUを生成するために、ビデオエンコーダ20は、コーディングツリーブロックをコーディングブロックに分割するためにCTUのコーディングツリーブロックに対して4分木区分を再帰的に実施し得、したがって「コーディングツリーユニット」という名称がある。コーディングブロックはサンプルのN×Nブロックであり得る。CUは、ルーマサンプルアレイとCbサンプルアレイとCrサンプルアレイとを有するピクチャのルーマサンプルのコーディングブロックと、そのピクチャのクロマサンプルの2つの対応するコーディングブロックと、それらのコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。モノクロームピクチャまたは3つの別々の色平面を有するピクチャでは、CUは、単一のコーディングブロックと、そのコーディングブロックのサンプルをコーディングするために使用されるシンタックス構造とを備え得る。
【0044】
[0054]ビデオエンコーダ20は、CUのコーディングブロックを1つまたは複数の予測ブロックに区分し得る。予測ブロックは、同じ予測が適用されるサンプルの矩形(すなわち、正方形または非正方形)ブロックである。CUの予測ユニット(PU)は、ルーマサンプルの予測ブロックと、クロマサンプルの2つの対応する予測ブロックと、それらの予測ブロックを予測するために使用されるシンタックス構造とを備え得る。モノクロームピクチャまたは3つの別々の色平面を有するピクチャでは、PUは、単一の予測ブロックと、その予測ブロックを予測するために使用されるシンタックス構造とを備え得る。ビデオエンコーダ20は、CUの各PUのルーマ予測ブロック、Cb予測ブロック、およびCr予測ブロックのための予測ルーマブロック、予測Cbブロック、および予測Crブロックを生成し得る。
【0045】
[0055]ビデオエンコーダ20は、PUのための予測ブロックを生成するためにイントラ予測またはインター予測を使用し得る。ビデオエンコーダ20がPUの予測ブロックを生成するためにイントラ予測を使用する場合、ビデオエンコーダ20は、PUに関連するピクチャの復号されたサンプルに基づいてPUの予測ブロックを生成し得る。ビデオエンコーダ20が、PUの予測ブロックを生成するためにインター予測を使用する場合、ビデオエンコーダ20は、PUに関連するピクチャ以外の1つまたは複数のピクチャの復号されたサンプルに基づいてPUの予測ブロックを生成し得る。
【0046】
[0056]ビデオエンコーダ20がCUの1つまたは複数のPUのための予測ルーマブロック、予測Cbブロック、および予測Crブロックを生成した後、ビデオエンコーダ20は、CUのためのルーマ残差ブロックを生成し得る。CUのルーマ残差ブロック中の各サンプルは、CUの予測ルーマブロックのうちの1つ中のルーマサンプルとCUの元のルーマコーディングブロック中の対応するサンプルとの間の差分を示す。さらに、ビデオエンコーダ20はCUのためのCb残差ブロックを生成し得る。CUのCb残差ブロック中の各サンプルは、CUの予測Cbブロックのうちの1つ中のCbサンプルとCUの元のCbコーディングブロック中の対応するサンプルとの間の差分を示し得る。ビデオエンコーダ20はCUのためのCr残差ブロックをも生成し得る。CUのCr残差ブロック中の各サンプルは、CUの予測Crブロックのうちの1つ中のCrサンプルとCUの元のCrコーディングブロック中の対応するサンプルとの間の差分を示し得る。
【0047】
[0057]さらに、ビデオエンコーダ20は、CUのルーマ残差ブロックとCb残差ブロックとCr残差ブロックとを1つまたは複数のルーマ変換ブロックとCb変換ブロックとCr変換ブロックとに分解するために4分木区分を使用し得る。変換ブロックは、同じ変換が適用されるサンプルの矩形(たとえば、正方形または非正方形)ブロックである。CUの変換ユニット(TU)は、ルーマサンプルの変換ブロックと、クロマサンプルの2つの対応する変換ブロックと、変換ブロックサンプルを変換するために使用されるシンタックス構造とを備え得る。したがって、CUの各TUは、ルーマ変換ブロック、Cb変換ブロック、およびCr変換ブロックに関連し得る。TUに関連するルーマ変換ブロックはCUのルーマ残差ブロックのサブブロックであり得る。Cb変換ブロックはCUのCb残差ブロックのサブブロックであり得る。Cr変換ブロックはCUのCr残差ブロックのサブブロックであり得る。モノクロームピクチャまたは3つの別々の色平面を有するピクチャでは、TUは、単一の変換ブロックと、その変換ブロックのサンプルを変換するために使用されるシンタックス構造とを備え得る。
【0048】
[0058]ビデオエンコーダ20は、TUのためのルーマ係数ブロックを生成するために、TUのルーマ変換ブロックに1つまたは複数の変換を適用し得る。係数ブロックは変換係数の2次元アレイであり得る。変換係数はスカラー量であり得る。ビデオエンコーダ20は、TUのためのCb係数ブロックを生成するために、TUのCb変換ブロックに1つまたは複数の変換を適用し得る。ビデオエンコーダ20は、TUのためのCr係数ブロックを生成するために、TUのCr変換ブロックに1つまたは複数の変換を適用し得る。
【0049】
[0059]係数ブロック(たとえば、ルーマ係数ブロック、Cb係数ブロックまたはCr係数ブロック)を生成した後に、ビデオエンコーダ20は、係数ブロックを量子化し得る。量子化は、概して、変換係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮を行うプロセスを指す。ビデオエンコーダ20が係数ブロックを量子化した後に、ビデオエンコーダ20は、量子化変換係数を示すシンタックス要素をエントロピー符号化し得る。たとえば、ビデオエンコーダ20は、量子化変換係数を示すシンタックス要素に対してコンテキスト適応型バイナリ算術コーディング(CABAC:Context-Adaptive Binary Arithmetic Coding)を実施し得る。
【0050】
[0060]ビデオエンコーダ20は、コード化ピクチャと関連データとの表現を形成するビットのシーケンスを含むビットストリームを出力し得る。ビットストリームは、NALユニットのシーケンスを備え得る。NALユニットは、NALユニット中のデータのタイプの指示と、必要に応じてエミュレーション防止ビットが点在させられたRBSPの形態でそのデータを含んでいるバイトとを含んでいる、シンタックス構造である。NALユニットの各々は、NALユニットヘッダを含み、RBSPをカプセル化する。NALユニットヘッダは、NALユニットタイプコードを示すシンタックス要素を含み得る。NALユニットのNALユニットヘッダによって指定されるNALユニットタイプコードは、NALユニットのタイプを示す。RBSPは、NALユニット内にカプセル化された整数個のバイトを含んでいるシンタックス構造であり得る。いくつかの事例では、RBSPはゼロビットを含む。
【0051】
[0061]異なるタイプのNALユニットは、異なるタイプのRBSPをカプセル化し得る。たとえば、第1のタイプのNALユニットはPPSのためのRBSPをカプセル化し得、第2のタイプのNALユニットはコード化スライスのためのRBSPをカプセル化し得、第3のタイプのNALユニットはSEIメッセージのためのRBSPをカプセル化し得、以下同様である。(パラメータセットおよびSEIメッセージのためのRBSPとは対照的に)ビデオコーディングデータのためのRBSPをカプセル化するNALユニットは、VCL NALユニットと呼ばれることがある。
【0052】
[0062]ビデオデコーダ30は、ビデオエンコーダ20によって生成されたビットストリームを受信し得る。さらに、ビデオデコーダ30は、ビットストリームからシンタックス要素を取得するために、ビットストリームをパースし得る。ビデオデコーダ30は、ビットストリームから取得されたシンタックス要素に少なくとも部分的に基づいてビデオデータのピクチャを再構築し得る。ビデオデータを再構築するためのプロセスは、概して、ビデオエンコーダ20によって実施されるプロセスの逆であり得る。さらに、ビデオデコーダ30は、現在CUのTUに関連する係数ブロックを逆量子化(inverse quantize)し得る。ビデオデコーダ30は、現在CUのTUに関連する変換ブロックを再構築するために、係数ブロックに対して逆変換を実施し得る。ビデオデコーダ30は、現在CUのPUのための予測ブロックのサンプルを現在CUのTUの変換ブロックの対応するサンプルに加算することによって、現在CUのコーディングブロックを再構築し得る。ピクチャの各CUのためのコーディングブロックを再構築することによって、ビデオデコーダ30はピクチャを再構築し得る。
【0053】
[0063]ビデオコーディングの分野において、復号されたビデオ信号の品質を向上させるためにフィルタ処理を適用することは、一般的である。フィルタは、フィルタ処理されたフレームが将来のフレームの予測のために使用されないポストフィルタとして、またはフィルタ処理されたフレームが将来のフレームを予測するために使用され得るループ内フィルタとして適用され得る。フィルタは、たとえば、元の信号と復号されたフィルタ処理された信号との間の誤差を最小限に抑えることによって設計され得る。変換係数と同様に、フィルタh(k,l)、k=-K,...,K、l=-K,...Kの係数は、量子化され、
【0054】
【0055】
コーディングされ、デコーダに送られ得る。normFactorは、通常、2nに等しい。normFactorの値が大きいほど、量子化がより正確になり、これは、一般に、より良い性能を与える量子化フィルタ係数f(k,l)を生じる。一方、normFactorのより大きい値は、一般に、より多くのビットを送信することを必要とする係数f(k,l)を生成する。
【0056】
[0064]デコーダにおいて、復号されたフィルタ係数f(k,l)は、以下のように再構築された画像R(i,j)に適用され、
【0057】
【0058】
ここで、iおよびjは、フレーム内のピクセルの座標である。
【0059】
[0065]ALFは、HEVCにおいて提案され、様々なワーキングドラフト、およびテストモデルソフトウェア、すなわち、HEVCテストモデル(または「HM」)中に含まれたが、ALFは、HEVCの最終バージョン中に含まれない。関連技術の間で、HEVCテストモデルバージョンHM-3.0におけるフィルタ設計が、概して、最も効率的な設計と見なされた。
【0060】
[0066]HM-3.0におけるALFは、ピクチャレベル最適化に基づく。すなわち、フィルタ係数は、全フレームがコーディングされた後に導出される。ルーマ成分のための2つのモード、すなわち、ブロックベースの適応(BA)および領域ベースの適応(RA)があった。これらの2つのモードは、同じフィルタ形状およびフィルタ処理演算ならびにシンタックス要素を共有する。2つのモード間の唯一の違いは分類方法である。
【0061】
[0067]HM-3.0におけるブロックベースの適応を用いた適応ループフィルタ処理(ALF)が、ループ内フィルタの一例である。ルーマ成分のためのALFの場合、全ピクチャ中の4×4ブロックは、異なる特性を有する画像中の領域のための異なるフィルタがあるべきであるという仮定の下で、ブロックの方向性(最高3つの方向)と、ブロックの2Dラプラシアンアクティビティ(最高5つのアクティビティ値)とに基づいて分類される。方向性Dおよび量子化アクティビティAの計算は、式(2)~(5)に示されており、
【0062】
【0063】
ここで、R(i,j)は、4×4ブロックの左上に対する相対座標(i,j)をもつ再構築されたピクセルを示す。Aは、HM-3.0に記載されているように両端値を含む0~4の範囲にさらに量子化され、Aの量子化値は、
【0064】
【0065】
(以下、[数4]の記載をA^と記載する)として示されることになる。
【0066】
[0068]全体で、各ブロックは、15(5×3)個のクラスのうちの1つにカテゴリー分類され得、インデックスは、ブロックのDのおよびA^の値に従って、各4×4ブロックに割り当てられる:5D+A^。したがって、ALFパラメータの最高15個のセットが、ピクチャのルーマ成分のためにシグナリングされ得る。シグナリングコストを節約するために、クラスは、クラスインデックス値に沿ってマージされ得る。各クラス(またはマージされたクラス)のために、フィルタ係数のセットがシグナリングされ得る。さらに、HM-3.0では、ALFがCUに適用されるかどうかを示すためのフラグが、CUレベルにおいてシグナリングされる。
【0067】
[0069]本開示の技法によれば、(ビデオエンコーダ20またはビデオデコーダ30などの)ビデオコーディングデバイスが、復号されたビデオデータのフィルタ処理を実施し得る。フィルタ係数をシグナリングするためのユニットは、ピクチャ/フレーム、スライス、タイルなどであり得ることに留意されたい。簡単のために、以下の説明は、主に、ユニットをピクチャとして扱う。しかしながら、本開示の技法は、ピクチャレベルALFシグナリングに限定されない。以下でより詳細に説明されるように、ビデオエンコーダ20がビデオデータのピクチャを符号化した後に、ビデオエンコーダ20は、その後、たとえば、参照ピクチャとして使用するためにピクチャを復号し得る。このようにして、ビデオエンコーダ20は、ビデオデータを符号化および復号する。ビデオエンコーダ20およびビデオデコーダ30は、「ループ内」フィルタ処理プロセスとしてフィルタ処理を実施し、その後符号化および/または復号されるピクチャのための参照ピクチャとしてその後使用される、復号されたピクチャにALFを適用し得る。「ビデオコーダ」の本開示における説明は、ビデオエンコーダ20などのビデオエンコーダ、およびビデオデコーダ30などのビデオデコーダの説明として理解されるべきである。
【0068】
[0070]本開示の技法によれば、(ビデオエンコーダ20および/またはビデオデコーダ30などの)ビデオコーダは、ブロックの様々なクラスのためのフィルタを構築し得る。ビデオコーダは、たとえば、ブロックのピクセルから計算された勾配の方向性に基づいて、ブロックを分類し得る。ビデオコーダは、水平方向勾配、垂直方向勾配、45度対角方向勾配、または135度対角方向勾配のうちの1つまたは複数を計算し得る。概して、ビデオコーダは、ブロックの各クラスのための異なるフィルタを構築し得る。しかしながら、いくつかの場合には、ビデオコーダは、ブロックの2つまたはそれ以上のクラスによって使用されるフィルタ係数のセットを計算し得る。たとえば、ビデオコーダは、フィルタ係数の複数のセットを計算し得る。ビデオコーダは、さらに、フィルタ係数の複数のセット中のフィルタ係数の1つのセットを識別する、ブロックのクラスの各々(またはブロックのクラスのサブセット)のためのインデックスをコーディングし得る。したがって、ビデオコーダが、ブロックの2つまたはそれ以上のクラスのための同じインデックスをコーディングする場合、ブロックのそれらのクラスは、フィルタ係数の同じセット、すなわち、コード化インデックス値に対応するフィルタ係数のセットを使用することになる。
【0069】
[0071]追加または代替として、ビデオコーダは、ブロックの少なくとも1つのクラスのために、フィルタが、同じフィルタを使用することによって生成されるべきであることを示し得るが、幾何学的変換がフィルタのフィルタサポート領域またはフィルタ係数のいずれかに適用される。したがって、同じクラスインデックスをもつブロックの場合でも、フィルタサポートは、幾何学的変換により異なり得る。機能的に、フィルタサポート領域に幾何学的変換を適用することは、フィルタ係数に幾何学的変換を適用することと同じ数学的結果を生じ、したがって、ビデオコーダは、フィルタサポート領域またはフィルタ係数のいずれかに幾何学的変換を適用し得る。この例では、ビデオコーダは、ブロックの現在のクラスのために、幾何学的変換タイプ(たとえば、回転、対角反転、または垂直反転、あるいは非幾何学的変換)を識別するデータ、ならびにそれのフィルタ係数が、ブロックの現在のクラスのための生成されたフィルタのために使用されるべきである、前に構築されたフィルタをコーディングし得る。
【0070】
[0072]追加または代替として、ビデオコーダは、少なくとも1つの固定フィルタが、ブロックのクラスのためのフィルタ係数を予測するために使用されるかどうかを示す(たとえば、フラグの)値をコーディングし得る。すなわち、フラグは、たとえば、ブロックのクラスのフィルタのためのフィルタ係数が、固定フィルタから予測されるか、あるいは代わりに前にコーディングされたピクチャのフィルタから、または固定フィルタもしくは前にコーディングされたピクチャからのフィルタのいずれかからの予測なしに予測(または継承)されることを示し得る。いくつかの例では、ビデオコーダは、ブロックの各クラスのための複数の固定フィルタで構成され得る。そのような例では、ビデオコーダは、さらに、フィルタ係数が固定フィルタから予測されることを値が示すとき、ブロックのクラスのための現在のフィルタのフィルタ係数を予測するために使用されるべき複数の固定フィルタのうちの1つを識別する、複数の固定フィルタへのインデックスをコーディングし得る。
【0071】
[0073]いくつかの例では、ビデオコーダは、さらに、クラスのいずれかのためのフィルタ係数のいずれも固定フィルタから予測されないこと、またはすべてのフィルタ係数が固定フィルタから予測されること、または固定フィルタから予測されるいくつかのフィルタ係数があるが、他のフィルタ係数は固定フィルタから予測されないことのいずれかを示す情報をコーディングし得る。フィルタ係数のいずれも固定フィルタから予測されないとき、ビデオコーダは、複数の固定フィルタへのインデックスを表すデータのコーディングを回避(たとえば、省略または防止)し得る。一方、フィルタ係数の一部または全部が固定フィルタから予測されるとき、ビデオコードは、さらに、1つのクラスのためのフィルタが固定フィルタから予測されるか否か各クラスのためのフラグをコーディングし得る。さらに、ビデオコーダは、固定フィルタから予測されるフィルタ係数のセットのためのそれぞれの複数の固定フィルタへのインデックスをコーディングし得、ここで、インデックスは、対応するフィルタ係数がそれから予測されるべきである参照固定フィルタを識別する。さらに、ビデオコーダは、対応するフィルタ係数を予測するために、インデックスによって識別された固定フィルタを使用し得る。予測の後に、ビデオコーダは、さらに、被予測フィルタ係数と実際のフィルタ係数値との間の差分を表す残差値(たとえば、オフセット値)をコーディングし得る。
【0072】
[0074]ビデオコーダは、単独でまたは組み合わせてこれらの技法を適用し得る。たとえば、ビデオコーダは、フィルタ係数の複数のセットを明示的にコーディングし、フィルタ係数の複数のセットへのブロックのクラスの第1のセットのためのインデックスをコーディングし、固定フィルタ、または1つまたは複数の参照ピクチャのフィルタのいずれかから、ブロックのクラスの第2のセットのフィルタのためのフィルタ係数を予測コーディングし得る。代替的に、ビデオコーダは、固定フィルタから、または1つまたは複数の前にコーディングされたピクチャのフィルタからのいずれかから予測されたフィルタ係数の複数のセットの各々をコーディングし、次いで、ブロックのクラスの各々のために、フィルタ係数のセットのうちの1つを識別するインデックスをコーディングし得る。また別の例として、ビデオコーダは、上記の技法のいずれかを使用してブロックのクラスの第1のセットのためのフィルタ係数をコーディングし、幾何学的変換を識別するデータと、フィルタ係数をそれから継承すべきブロックのクラスの第1のセットのうちの1つを識別するデータとを含む、ブロックのクラスの第2のセットのための幾何学的変換情報をコーディングし得る。
【0073】
[0075]
図2は、BA(ブロックベースの適応)分類のために使用される15個の(クラスとも呼ばれる)グループを示す概念図である。
図2の例では、フィルタは、アクティビティメトリックのための値の範囲(すなわち、範囲0~範囲4)および方向メトリックにマッピングされる。
図2中の方向メトリックは、式3から上記の0、1、および2の値に対応し得る、無方向、水平、および垂直の値を有するものとして示されている。
図2の特定の例は、15個のグループにマッピングされる、6つの異なるフィルタ(すなわち、フィルタ1、フィルタ2...フィルタ6)を示すが、より多いまたはより少ないフィルタが同様に使用され得る。
図2は、グループ221~235として識別される15個のグループをもつ例を示すが、より多いまたはより少ないグループも使用され得る。たとえば、アクティビティメトリックのための5つの範囲の代わりに、より多いまたはより少ない範囲が使用され、より多いまたはより少ないグループを生じ得る。追加または代替として、3つの方向のみの代わりに、追加の方向(たとえば、45度方向および135度方向)も使用され得る。たとえば、アクティビティメトリックの5つの範囲が、5つの方向(たとえば、無方向、水平、垂直、45-対角、および135-対角)とともに使用された場合、25個のグループが、分類のために使用され、25個のグループの各々は、フィルタにマッピングされることになる。
【0074】
[0076]ピクチャ中の両方のクロマ成分のために、フィルタ係数の単一のセットが適用され得る。参照ピクチャのフィルタ係数は、記憶され、現在ピクチャのフィルタ係数として再利用されることを可能にされ得る。現在ピクチャは、参照ピクチャのために記憶されたフィルタ係数を使用することを選択し、フィルタ係数シグナリングをバイパスし得る。この場合、参照ピクチャのうちの1つへのインデックスのみが、シグナリングされる必要があり、示された参照ピクチャの記憶されたフィルタ係数は、現在ピクチャのために継承される。
【0075】
[0077]本開示の技法によれば、フィルタ処理の前に、ビデオコーダ(たとえば、ビデオエンコーダ20またはビデオデコーダ30)は、ALFを実行する前の再構築された(1つまたは複数の)ピクセルの勾配の向きに応じて、フィルタサポート領域中のピクセル(式(1)においてフィルタ処理された係数によって乗算されたピクセル)に、回転、対角および垂直反転など、いくつかの幾何学的変換を適用し得る。これらの変換は、ピクチャ内の異なる領域間の類似度、たとえば、それらの方向性を増加させ得る。これは、デコーダに送られなければならないフィルタの数を低減し、したがって、フィルタを表すために必要とされるビットの数を低減するか、または代替的に再構築誤差を低減することができる。フィルタサポート領域に変換を適用することは、フィルタ係数に直接、変換を適用することと等価である。したがって、ビデオコーダは、代わりに、フィルタサポート領域の代わりにフィルタ係数に変換を適用し得る。
【0076】
[0078]すでに紹介された他の技法と一緒に、またはそれらとは無関係にのいずれかで使用され得る本開示の別の技法によれば、フィルタ係数を表すために必要とされるビットの数を低減するために、ビデオコーダは、ブロックの異なるクラスをマージし得る。しかしながら、HM-3.0の場合とは異なり、クラスの任意のセットが、Cの非連続値を有するクラスさえ、マージされ得る。どのクラスがマージされるかに関する情報は、クラスの各々(たとえば、25個のクラスの各々)のためにインデックスiCを送ることによって与えられる。同じインデックスiCを有するクラスは、同じフィルタf(k,l)を共有する。したがって、ビデオコーダは、フィルタ係数の複数のセットを生成し、複数のクラスの各々のために、インデックス値iCを表すデータをコーディングし得、ここで、Cは、1からクラスの数の間の値であり得、iCは、クラスCのためのフィルタ係数のセットを識別するフィルタ係数の生成されたセットへのインデックスである。
【0077】
[0079]すでに紹介された他の技法と一緒に、またはそれらとは無関係にのいずれかで使用され得る本開示の別の技法によれば、HM-3.0に記載されているALFに対する別の変更は、ビデオコーダ(たとえば、ビデオエンコーダ20またはビデオデコーダ30)が、たとえば、オフライントレーニングによって取得され、フィルタ係数を予測コーディングするために各クラスに割り当てられた、n個の固定フィルタのセットを使用し得ることである。フィルタ係数が固定フィルタからそれのために予測される各クラスのために、ビデオコーダは、n個の固定フィルタのうちのどの1つが使用されるかを表すデータをコーディングし得る。別の例では、いくつかのクラスは、n個の固定フィルタの同じセットが割り当てられ得、さらにはn個の固定フィルタの同じセットが、すべてのクラスに割り当てられ得る。固定フィルタが所与のクラスのために選択されるときでも、適応フィルタの係数は、このクラスのために依然としてシグナリングされ得る。再構築された画像に適用され得るフィルタの係数は、この場合、シグナリングされた係数f(k,l)と固定フィルタ係数との和になる。クラスの数は、異なる固定フィルタがクラスのために選定された場合でも、同じシグナリングされた係数f(k,l)を共有することができる。
【0078】
[0080]次に、上記で紹介された技法の例示的な実装形態が説明される。一例では、各N×Nブロックは、それの方向性Dとアクティビティの量子化値A^とに基づいて、25個のクラスのうちの1つにカテゴリー分類される:
C=5D+A^ (6)
【0079】
[0081]水平勾配、垂直勾配、および2つの対角勾配の値は、1-Dラプラシアンを使用して計算される:
【0080】
【0081】
[0082]これらの例では、gvは垂直勾配を表し、ghは水平勾配を表し、gd1は45度対角勾配を表し、gd2は135度対角勾配を表す。
【0082】
[0083]インデックスiおよびjは、N×Nブロック中の左上ピクセルの座標を指す。方向性Dを割り当てるために、水平および垂直勾配の最大値および最小値の比、
【0083】
【0084】
と、2つの対角勾配の最大値と最小値との比、
【0085】
【0086】
とが互いに比較され、しきい値t1およびt2のセットを用いて、
ステップ1。
【0087】
【0088】
の両方である場合、Dは0に設定される(ブロックは「テクスチャ」としてカテゴリー分類される)。
ステップ2。
【0089】
【0090】
である場合、ステップ3から続き、他の場合、ステップ4から続く。
ステップ3。
【0091】
【0092】
である場合、Dは2に設定され、他の場合、Dは1に設定される(ブロックは、それぞれ、「強水平/垂直」または「水平/垂直」としてカテゴリー分類される)。
ステップ4。
【0093】
【0094】
である場合、Dは4に設定され、他の場合、Dは3に設定される(ブロックは、それぞれ、「強対角」または「対角」としてカテゴリー分類される)。
【0095】
[0084]アクティビティ値Aは次のように計算される。
【0096】
【0097】
[0085]Aは、両端値を含む0~4の範囲にさらに量子化され、量子化値はA^として示される:
A=min(15,(24・A)>>13)およびA^=Q[A]、ここで、
Q={0,1,2,2,2,2,2,3,3,3,3,3,3,3,3,4}。 (14)
【0098】
[0086]最高25個のフィルタがシグナリングされ、各クラスについて1つシグナリングされ得る。フィルタ係数を表すために必要とされるビットの数を低減するために、異なるクラスがマージされ得る。しかしながら、HM-3.0の場合とは異なり、クラスの任意のセットが、Cの非連続値を有するクラスさえ、マージされ得る。どのクラスがマージされるかに関する情報は、25個のクラスの各々のために、インデックスiCをコーディングすることによって与えられる。同じインデックスiCを有するクラスは、同じフィルタf(k,l)を共有する。
【0099】
[0087]各ブロックをフィルタ処理する前に、回転または対角および垂直反転など、単純な幾何学的変換が、そのブロックのために計算された勾配値に応じて、フィルタ係数f(k,l)に適用され得る。これは、フィルタサポート領域中のピクセルにこれらの変換を適用することと等価である。アイデアは、ALFが適用される異なるブロックを、それらの方向性を整合させることによって、より類似させることである。幾何学的変換は次のように定義される、
【0100】
【0101】
ここで、Kがフィルタのサイズであり、0≦k、l≦K-1が係数座標であり、したがって、ロケーション(0,0)が左上隅にあり、ロケーション(K-1,K-1)が右下隅にある。式(7)~(10)を使用して計算された勾配値と、式(15)中で指定される幾何学的変換との間のマッピングが、表1中に与えられている。
【0102】
【0103】
[0088]いくつかの例では、フィルタ係数の予測は、固定フィルタからのものであり得る。フィルタ係数の時間予測は、インターコード化フレームについてのコーディング効率を改善し得る。時間予測が利用可能でない(イントラフレーム)ときのコーディング効率を改善するために、n個の固定フィルタのセットが、各クラスに割り当てられる。いくつかの例では、25個のクラスの各々のために、固定フィルタが使用された場合、フラグがシグナリングされ、必要な場合、選定されたフィルタのインデックスがシグナリングされる。いくつかの例では、フラグの値は、固定フィルタが使用されるかどうかを示し得る。いくつかの例では、必要な場合、選定されたフィルタを表すインデックスがシグナリングされ得る。代替的に、以下の3つの例示的な定義された事例のうちの1つが、使用され得る。第1の事例では、25個のクラスのフィルタのいずれも、固定フィルタから予測されない。第2の事例では、クラスのすべてのフィルタが、固定フィルタから予測される。第3の事例では、いくつかのクラスに関連するフィルタが、固定フィルタから予測され、クラスの残りに関連するフィルタは、固定フィルタから予測されない。
【0104】
[0089]上記の3つの例示的な事例のうちのどれが適用されるかを示すための変数が、コーディングされ得る。さらに、以下が適用され得る。
・ 変数が事例1を示す場合、固定フィルタのインデックスをさらにシグナリングする必要はない。
・ さもなければ、変数が事例2を示す場合、各クラスのための選択された固定フィルタのインデックスがコーディングされる。
・ さもなければ、変数が事例3を示す場合、各クラスのための1ビットが最初にシグナリングされ得、固定フィルタが使用される場合、インデックスがさらにシグナリングされ得る。
【0105】
[0090]固定フィルタが所与のクラスのために選択されるときでも、適応フィルタの係数は、このクラスのために依然として送られ得る。再構築された画像に適用されることになるフィルタの係数は、この場合、シグナリングされた係数f(k,l)と固定フィルタ係数との和になる。クラスの数は、異なる固定フィルタがクラスのために選定された場合でも、同じ係数f(k,l)を共有することができる。一代替形態では、イントラフレームに適用される固定フィルタは、PまたはBスライスなど、インターコード化フレームにも適用され得る。
【0106】
[0091]
図3は、フィルタ係数差分をシグナリングするための例示的なパターンを示す概念図である。以下の技法は、1つまたは複数の固定フィルタ、たとえば、固定フィルタのための係数値を定義するために使用され得る。一例では、固定フィルタは、オフライントレーニングから導出され、最大フィルタタップ(たとえば、9×9ダイヤモンドフィルタ形状)のためのフィルタ係数のみが定義される。導出されたフィルタ係数と、選択された固定フィルタとの間の差分をコーディングする前に、ビデオコーダは、最初に、フィルタ係数差分をシグナリングするパターンを示すインデックスをコーディングし得る。たとえば、9×9対称ダイヤモンドフィルタ形状のための固定フィルタが、
図3に示されており、ここにおいて、フィルタ係数はF
iによって示される(iは両端値を含む0~20の範囲中にある)。
図3に示されているように、シグナリングされたパターンインデックスが、5×5ダイヤモンドフィルタ形状を示し、そのフィルタ係数が、固定フィルタから予測されるとき、
図3のグレーのエリアに位置する導出されたフィルタ係数の値は、そのまま保たれ、これらの位置についての差分をシグナリングする必要はない(すなわち、これらのグレーの位置についての差分は0に等しい)。この場合、ビデオコーダは、導出された係数と固定フィルタ係数(F0~F6)との間の差分を定義するデータをコーディングする。代替的に、ビデオコーダは、DC係数(すなわち、F6)の差分を定義するデータをコーディングする必要はないが、代わりに、他のコード化差分値に関するDC係数のための差分を導出する。この場合、フィルタ係数が固定フィルタから予測されるとき、9×9ダイヤモンドフィルタ処理プロセスが常に適用されることに留意されたい。
【0107】
[0092]別の例では、固定フィルタのM個のバージョンがあらかじめ定義され得、ここにおいて、Mは、サポートされるフィルタ形状の総数を示す。ビデオコーダは、最初に、選択されたフィルタ形状のインデックスをコーディングし、次いで、フィルタ形状に関連する選択された固定フィルタのインデックスを表すデータをコーディングし得る。この場合、(Mの値に依存する)複数の異なるフィルタ処理プロセスがサポートされることに留意されたい。
【0108】
[0093]
図4は、本開示で説明される技法を実装し得る例示的なビデオエンコーダ20を示すブロック図である。ビデオエンコーダ20は、ビデオスライス内のビデオブロックのイントラコーディングおよびインターコーディングを実施し得る。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオの空間冗長性を低減または除去するために空間予測に依拠する。インターコーディングは、ビデオシーケンスの隣接するフレームまたはピクチャ内のビデオの時間冗長性を低減または除去するために時間予測に依拠する。イントラモード(Iモード)は、いくつかの空間ベースの圧縮モードのいずれかを指すことがある。単方向予測(Pモード)または双予測(Bモード)などのインターモードは、いくつかの時間ベースの圧縮モードのいずれかを指すことがある。
【0109】
[0094]
図4の例では、ビデオエンコーダ20は、ビデオデータメモリ33と、区分ユニット35と、予測処理ユニット41と、加算器50と、変換処理ユニット52と、量子化ユニット54と、エントロピー符号化ユニット56とを含む。予測処理ユニット41は、動き推定ユニット(MEU)42と、動き補償ユニット(MCU)44と、イントラ予測ユニット46とを含む。ビデオブロック再構築のために、ビデオエンコーダ20はまた、逆量子化ユニット58と、逆変換処理ユニット60と、加算器62と、ALFユニット64と、復号ピクチャバッファ(DPB:decoded picture buffer)66とを含む。
【0110】
[0095]
図4に示されているように、ビデオエンコーダ20はビデオデータを受信し、受信されたビデオデータをビデオデータメモリ33に記憶する。ビデオデータメモリ33は、ビデオエンコーダ20の構成要素によって符号化されるべきビデオデータを記憶し得る。ビデオデータメモリ33に記憶されるビデオデータは、たとえば、ビデオソース18から取得され得る。DPB66は、たとえば、イントラコーディングモードまたはインターコーディングモードでビデオエンコーダ20によってビデオデータを符号化する際に使用するための参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ33およびDPB66は、同期DRAM(SDRAM)を含むダイナミックランダムアクセスメモリ(DRAM)、磁気抵抗RAM(MRAM)、抵抗性RAM(RRAM(登録商標))、または他のタイプのメモリデバイスなど、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ33およびDPB66は、同じメモリデバイスまたは別々のメモリデバイスによって与えられ得る。様々な例では、ビデオデータメモリ33は、ビデオエンコーダ20の他の構成要素とともにオンチップであるか、またはそれらの構成要素に対してオフチップであり得る。
【0111】
[0096]区分ユニット35はビデオデータメモリ33からビデオデータを取り出し、ビデオデータをビデオブロックに区分する。この区分はまた、たとえば、LCUおよびCUの4分木構造に従って、スライス、タイル、または他のより大きいユニットへの区分、ならびにビデオブロック区分を含み得る。ビデオエンコーダ20は、概して、符号化されるべきビデオスライス内のビデオブロックを符号化する構成要素を示している。スライスは、複数のビデオブロックに(および、場合によっては、タイルと呼ばれるビデオブロックのセットに)分割され得る。予測処理ユニット41は、誤差結果(たとえばコーディングレートおよびひずみレベル)に基づいて現在ビデオブロックについて、複数のイントラコーディングモードのうちの1つ、または複数のインターコーディングモードのうちの1つなど、複数の可能なコーディングモードのうちの1つを選択し得る。予測処理ユニット41は、得られたイントラコード化ブロックまたはインターコード化ブロックを、残差ブロックデータを生成するために加算器50に与え、参照ピクチャとして使用するための符号化ブロックを再構築するために加算器62に与え得る。
【0112】
[0097]予測処理ユニット41内のイントラ予測ユニット46は、空間圧縮を行うために、コーディングされるべき現在ブロックと同じフレームまたはスライス中の1つまたは複数の隣接ブロックに対して現在ビデオブロックのイントラ予測を実施し得る。予測処理ユニット41内の動き推定ユニット42および動き補償ユニット44は、時間圧縮を行うために、1つまたは複数の参照ピクチャ中の1つまたは複数の参照ブロックに対して現在ビデオブロックのインター予測を実施する。
【0113】
[0098]動き推定ユニット42は、ビデオシーケンスの所定のパターンに従ってビデオスライスのためのインター予測モードを決定するように構成され得る。所定のパターンは、シーケンス中のビデオスライスをPスライスまたはBスライスとして指定し得る。動き推定ユニット42と動き補償ユニット44とは、高度に統合され得るが、概念的な目的のために別個に示されている。動き推定ユニット42によって実施される動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、参照ピクチャ内の予測ブロックに対する現在ビデオフレームまたはピクチャ内のビデオブロックのPUの変位を示し得る。
【0114】
[0099]予測ブロックは、絶対差分和(SAD)、2乗差分和(SSD)、または他の差分メトリックによって決定され得るピクセル差分に関して、コーディングされるべきビデオブロックのPUにぴったり一致することがわかるブロックである。いくつかの例では、ビデオエンコーダ20は、DPB66に記憶された参照ピクチャのサブ整数ピクセル位置の値を計算し得る。たとえば、ビデオエンコーダ20は、参照ピクチャの1/4ピクセル位置、1/8ピクセル位置、または他の分数ピクセル位置の値を補間し得る。したがって、動き推定ユニット42は、フルピクセル位置と分数ピクセル位置とに対して動き探索を実施し、分数ピクセル精度で動きベクトルを出力し得る。
【0115】
[0100]動き推定ユニット42は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによって、インターコード化スライスにおけるビデオブロックのPUのための動きベクトルを計算する。参照ピクチャは、第1の参照ピクチャリスト(リスト0)または第2の参照ピクチャリスト(リスト1)から選択され得、それらの参照ピクチャリストの各々は、DPB66に記憶された1つまたは複数の参照ピクチャを識別する。動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56と動き補償ユニット44とに送る。
【0116】
[0101]動き補償ユニット44によって実施される動き補償は、動き推定によって決定された動きベクトルに基づいて予測ブロックをフェッチまたは生成すること、場合によってはサブピクセル精度への補間を実施することを伴い得る。現在ビデオブロックのPUのための動きベクトルを受信すると、動き補償ユニット44は、動きベクトルが参照ピクチャリストのうちの1つにおいてそれを指す予測ブロックの位置を特定し得る。ビデオエンコーダ20は、コーディングされている現在ビデオブロックのピクセル値から予測ブロックのピクセル値を減算し、ピクセル差分値を形成することによって、残差ビデオブロックを形成する。ピクセル差分値は、ブロックの残差データを形成し、ルーマ差分成分とクロマ差分成分の両方を含み得る。加算器50は、この減算演算を実施する1つまたは複数の構成要素を表す。動き補償ユニット44はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ30が使用するためのビデオブロックとビデオスライスとに関連するシンタックス要素を生成し得る。
【0117】
[0102]予測処理ユニット41が、イントラ予測またはインター予測のいずれかを介して、現在ビデオブロックのための予測ブロックを生成した後、ビデオエンコーダ20は、現在ビデオブロックから予測ブロックを減算することによって残差ビデオブロックを形成する。残差ブロック中の残差ビデオデータは、1つまたは複数のTU中に含まれ、変換処理ユニット52に適用され得る。変換処理ユニット52は、離散コサイン変換(DCT:discrete cosine transform)または概念的に同様の変換などの変換を使用して、残差ビデオデータを残差変換係数に変換する。変換処理ユニット52は、残差ビデオデータをピクセル領域から周波数領域などの変換領域に変換し得る。
【0118】
[0103]変換処理ユニット52は、得られた変換係数を量子化ユニット54に送り得る。量子化ユニット54は、ビットレートをさらに低減するために変換係数を量子化する。量子化プロセスは、係数の一部または全部に関連するビット深度を低減し得る。量子化の程度は、量子化パラメータを調整することによって修正され得る。いくつかの例では、量子化ユニット54は、次いで、量子化変換係数を含む行列のスキャンを実施し得る。代替的に、エントロピー符号化ユニット56がスキャンを実施し得る。
【0119】
[0104]量子化の後に、エントロピー符号化ユニット56は量子化変換係数をエントロピー符号化する。たとえば、エントロピー符号化ユニット56は、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)、確率間隔区分エントロピー(PIPE)コーディングあるいは別のエントロピー符号化方法または技法を実施し得る。エントロピー符号化ユニット56によるエントロピー符号化に続いて、符号化ビットストリームは、ビデオデコーダ30に送信されるか、あるいはビデオデコーダ30が後で送信するかまたは取り出すためにアーカイブされ得る。エントロピー符号化ユニット56はまた、コーディングされている現在ビデオスライスのための動きベクトルと他のシンタックス要素とをエントロピー符号化し得る。
【0120】
[0105]逆量子化ユニット58および逆変換処理ユニット60は、参照ピクチャの参照ブロックとして後で使用するためにピクセル領域において残差ブロックを再構築するために、それぞれ逆量子化および逆変換を適用する。動き補償ユニット44は、残差ブロックを参照ピクチャリストのうちの1つ内の参照ピクチャのうちの1つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット44はまた、動き推定において使用するためのサブ整数ピクセル値を計算するために、再構築された残差ブロックに1つまたは複数の補間フィルタを適用し得る。加算器62は、再構築されたブロックを生成するために、再構築された残差ブロックを、動き補償ユニット44よって生成された動き補償予測ブロックに加算する。
【0121】
[0106]ALFユニット64は、再構築されたブロック(たとえば、加算器62の出力)をフィルタ処理し、参照ブロックとして使用するために、フィルタ処理された再構築されたブロックをDPB66に記憶する。参照ブロックは、後続のビデオフレームまたはピクチャ中のブロックをインター予測するために、動き推定ユニット42と動き補償ユニット44とによって参照ブロックとして使用され得る。
図4には明示的に示されていないが、ビデオエンコーダ20は、デブロックフィルタ、サンプル適応オフセット(SAO)フィルタ、または別のタイプのループフィルタのうちの1つまたは複数など、追加のフィルタを含み得る。デブロックフィルタは、たとえば、再構築されたビデオからブロッキネスアーティファクトを除去するために、フィルタブロック境界にデブロッキングフィルタ処理を適用する。SAOフィルタは、全体的コーディング品質を改善するために、再構築されたピクセル値にオフセットを適用し得る。いくつかの実装形態では、SAOは、フィルタ処理の特殊な場合または特殊モードであり得る。(ループ中またはループ後の)追加のループフィルタも使用され得る。
【0122】
[0107]ALFユニット64は、単独でまたはビデオエンコーダ20の他の構成要素とともに、本開示で説明される様々なALF技法を実施するように構成され得る。たとえば、加算器62の出力は、(予測処理ユニット41、変換処理ユニット52、および量子化ユニット54などの)ビデオエンコーダ20の他の要素によって前に符号化された復号されたビデオデータである。したがって、ALFユニット64は、本開示の技法に従って、復号されたビデオデータをフィルタ処理し得る。特に、ALFユニット64は、ALFユニット64が、参照ピクチャとしてその後使用され、後続のピクチャを予測するために予測処理ユニット41によって使用されるためにDPB66に記憶される、復号されたピクチャをフィルタ処理するという点で、「ループ内」フィルタ処理プロセスとしてフィルタ処理を実施する。
【0123】
[0108]本開示の技法によれば、ALFユニット64は、ブロックの様々なクラスのためのフィルタを構築し得る。ALFユニット64は、たとえば、ブロックのピクセルから計算された勾配の方向性に基づいて、ブロックを分類し得る。概して、ALFユニット64は、ブロックの各クラスのための異なるフィルタを構築し得る。しかしながら、いくつかの場合には、ALFユニット64は、ブロックの2つまたはそれ以上のクラスによって使用されるフィルタ係数のセットを計算し得る。たとえば、ALFユニット64は、フィルタ係数の複数のセットを計算し得る。ALFユニット64は、さらに、フィルタ係数の複数のセット中のフィルタ係数の1つのセットを識別する、ブロックのクラスの各々(またはブロックのクラスのサブセット)のためのインデックス値を符号化し得る。ALFユニット64は、ブロックのクラスの各々のためのインデックスを指定するデータ構造を構築し、エントロピー符号化され、ビットストリーム中に含まれるために、そのデータ構造をエントロピー符号化ユニット56に与え得る。エントロピー符号化ユニット56は、データ構造をエントロピー符号化し、そのデータ構造を、たとえば、スライスヘッダ、ピクチャパラメータセット、または他のそのようなデータ構造に追加し得る。したがって、ALFユニット64が、ブロックの2つまたはそれ以上のクラスのための同じインデックスを符号化する場合、ブロックのそれらのクラスは、フィルタ係数の同じセット、すなわち、符号化インデックス値に対応するフィルタ係数のセットを使用することになる。
【0124】
[0109]追加または代替として、ALFユニット64は、ブロックの少なくとも1つのクラスのために、フィルタが、ブロックの異なるクラスと同じフィルタ係数を使用することによって生成されるべきであることを示し得るが、幾何学的変換がフィルタのフィルタサポート領域またはフィルタ係数のいずれかに適用される。機能的に、フィルタサポート領域に幾何学的変換を適用することは、フィルタ係数に幾何学的変換を適用することと同じ数学的結果を生じ、したがって、ALFユニット64は、フィルタサポート領域またはフィルタ係数のいずれかに幾何学的変換を適用し得る。この例では、ALFユニット64は、ブロックの現在のクラスのために、幾何学的変換タイプ(たとえば、回転、対角反転、または垂直反転)を識別するデータ、ならびにそれのフィルタ係数が、ブロックの現在のクラスのための生成されたフィルタのために使用されるべきである、前に構築されたフィルタを符号化し得る。再び、ALFユニット64は、そのようなデータをエントロピー符号化ユニット56に与え得、エントロピー符号化ユニット56は、そのデータをエントロピー符号化し、たとえば、スライスヘッダまたはピクチャパラメータセットなど、データ構造にそのデータを追加し得る。
【0125】
[0110]追加または代替として、ALFユニット64は、固定フィルタが、ブロックのクラスのためのフィルタ係数のセットを予測するために使用されるかどうかを示す(たとえば、フラグの)値を符号化し得る。同様に、ALFユニット64は、たとえば、スライスヘッダ、ピクチャパラメータセット、または他のそのようなデータ構造の一部としてエントロピー符号化されるために、これらの値をエントロピー符号化ユニット56に与え得る。フラグは、たとえば、ブロックのクラスのフィルタのためのフィルタ係数が、固定フィルタから予測されるか、または代わりに参照ピクチャのフィルタから予測(または継承)されるかのいずれかであることを示し得る。いくつかの例では、ALFユニット64は、ブロックの各クラスのための複数の固定フィルタで構成され得る。そのような例では、ALFユニット64は、さらに、フィルタ係数が固定フィルタから予測されることを値が示すとき、ブロックのクラスのための現在のフィルタのフィルタ係数を予測するために使用されるべき複数の固定フィルタのうちの1つを識別する、複数の固定フィルタへのインデックスを符号化し得る。
【0126】
[0111]いくつかの例では、ALFユニット64は、さらに、クラスのいずれかのためのフィルタ係数のいずれも固定フィルタから予測されないこと、すべてのフィルタ係数が固定フィルタから予測されること、または固定フィルタから予測されるいくつかのフィルタ係数があるが、他のフィルタ係数は固定フィルタから予測されないことのいずれかを示す情報を符号化し得る。フィルタ係数のいずれも固定フィルタから予測されないとき、ALFユニット64は、複数の固定フィルタへのインデックスを表すデータの符号化を回避(たとえば、省略または防止)し得る。一方、フィルタ係数の一部または全部が固定フィルタから予測されるとき、ALFユニット64は、固定フィルタから予測されるフィルタ係数のセットのためのそれぞれの複数の固定フィルタへのインデックスを符号化し得、ここで、インデックスは、対応するフィルタ係数がそれから予測されるべきである参照固定フィルタを識別する。さらに、ALFユニット64は、対応するフィルタ係数を予測するために、インデックスによって識別された固定フィルタを使用し得る。予測の後に、ALFユニット64は、さらに、被予測フィルタ係数と実際のフィルタ係数値との間の差分を表す残差値(たとえば、オフセット値)を符号化し得る。
【0127】
[0112]ALFユニット64は、単独でまたは組み合わせてこれらの技法を適用し得る。たとえば、ALFユニット64は、フィルタ係数の複数のセットを明示的に符号化し、フィルタ係数の複数のセットへのブロックのクラスの第1のセットのためのインデックスを符号化し、固定フィルタ、またはDPB66中の1つまたは複数の参照ピクチャのフィルタのいずれかから、ブロックのクラスの第2のセットのフィルタのためのフィルタ係数を予測符号化し得る。代替的に、ALFユニット64は、固定フィルタから、またはDPB66中の1つまたは複数の参照ピクチャのフィルタからのいずれかから予測されたフィルタ係数の複数のセットの各々を符号化し、次いで、ブロックのクラスの各々のために、フィルタ係数のセットのうちの1つを識別するインデックスを符号化し得る。また別の例として、ALFユニット64は、上記の技法のいずれかを使用してブロックのクラスの第1のセットのためのフィルタ係数を符号化し、幾何学的変換を識別するデータと、フィルタ係数をそれから継承すべきブロックのクラスの第1のセットのうちの1つを識別するデータとを含む、ブロックのクラスの第2のセットのための幾何学的変換情報を符号化し得る。
【0128】
[0113]ブロックのクラスのためのインデックスをどのように選択すべきか、固定フィルタからフィルタ係数を予測すべきかまたはDPB66の参照ピクチャからフィルタ係数を予測すべきか、および/または上記で説明されたように幾何学的変換を使用してブロックのクラスのためのフィルタを生成すべきかどうかを決定するために、ビデオエンコーダ20は、ピクチャまたはピクチャのシーケンスに対して様々な符号化パスを実行し、ALFユニット64に、ピクチャ中のブロックの様々なクラスに様々なフィルタ処理技法を適用させ得る。ビデオエンコーダ20は、フィルタ係数とフィルタ係数予測技法とのどの組合せが、最良のレートひずみ最適化(RDO:rate distortion optimization)メトリックを生じるかを決定するために、復号された、フィルタ処理されたピクチャのためのRDOメトリックを計算し得る。ビデオエンコーダ20は、次いで、各ピクチャのための最良のRDOメトリックを生じるフィルタ処理技法の組合せに基づいて、各ピクチャのための、フィルタ係数とフィルタ処理技法とを選択し得る。
【0129】
[0114]
図5は、本開示で説明される技法を実装し得る例示的なビデオデコーダ30を示すブロック図である。
図5の例では、ビデオデコーダ30は、ビデオデータメモリ78と、エントロピー復号ユニット80と、予測処理ユニット81と、逆量子化ユニット86と、逆変換処理ユニット88と、加算器90と、復号ピクチャバッファ(DPB)94とを含む。予測処理ユニット81は、動き補償ユニット82とイントラ予測ユニット84とを含む。ビデオデコーダ30は、いくつかの例では、
図4からのビデオエンコーダ20に関して説明された符号化パスに概して相反する復号パスを実施し得る。
【0130】
[0115]復号プロセス中に、ビデオデコーダ30は、ビデオエンコーダ20から、符号化ビデオスライスのビデオブロックと、関連するシンタックス要素とを表す符号化ビットストリームを受信する。ビデオデコーダ20は、受信された符号化ビデオビットストリームをビデオデータメモリ78に記憶する。ビデオデータメモリ78は、ビデオデコーダ30の構成要素によって復号されるべき、符号化ビデオビットストリームなどのビデオデータを記憶し得る。ビデオデータメモリ78に記憶されたビデオデータは、たとえば、リンク16を介して、ストレージデバイス26から、またはカメラなどのローカルビデオソースから、または物理データ記憶媒体にアクセスすることによって取得され得る。ビデオデータメモリ78は、符号化ビデオビットストリームからの符号化ビデオデータを記憶するコード化ピクチャバッファ(CPB)を形成し得る。DPB94は、たとえば、イントラコーディングモードまたはインターコーディングモードでビデオデコーダ30によってビデオデータを復号する際に使用するための参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ78およびDPB94は、DRAM、SDRAM、MRAM、RRAM、または他のタイプのメモリデバイスなど、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ78およびDPB94は、同じメモリデバイスまたは別々のメモリデバイスによって与えられ得る。様々な例では、ビデオデータメモリ78は、ビデオデコーダ30の他の構成要素とともにオンチップであるか、またはそれらの構成要素に対してオフチップであり得る。
【0131】
[0116]ビデオデコーダ30のエントロピー復号ユニット80は、量子化係数、動きベクトル、および他のシンタックス要素を生成するために、ビデオデータメモリ78に記憶されたビデオデータをエントロピー復号する。エントロピー復号ユニット80は、予測処理ユニット81に動きベクトルと他のシンタックス要素とを転送する。ビデオデコーダ30は、ビデオスライスレベルおよび/またはビデオブロックレベルのシンタックス要素を受信し得る。
【0132】
[0117]ビデオスライスがイントラコード化(I)スライスとしてコーディングされたとき、予測処理ユニット81のイントラ予測ユニット84は、シグナリングされたイントラ予測モードと、現在のフレームまたはピクチャの前に復号されたブロックからのデータとに基づいて、現在ビデオスライスのビデオブロックのための予測データを生成し得る。ビデオフレームがインターコード化スライス(たとえば、BスライスまたはPスライス)としてコーディングされたとき、予測処理ユニット81の動き補償ユニット82は、エントロピー復号ユニット80から受信された動きベクトルおよび他のシンタックス要素に基づいて現在ビデオスライスのビデオブロックのための予測ブロックを生成する。予測ブロックは、参照ピクチャリストのうちの1つの中の参照ピクチャのうちの1つから生成され得る。ビデオデコーダ30は、DPB94に記憶された参照ピクチャに基づいて、デフォルトの構築技法を使用して、参照フレームリスト、すなわち、リスト0とリスト1とを構築し得る。
【0133】
[0118]動き補償ユニット82は、動きベクトルと他のシンタックス要素とをパースすることによって現在ビデオスライスのビデオブロックのための予測情報を決定し、復号されている現在ビデオブロックのための予測ブロックを生成するために、その予測情報を使用する。たとえば、動き補償ユニット82は、ビデオスライスのビデオブロックをコーディングするために使用される予測モード(たとえば、イントラまたはインター予測)と、インター予測スライスタイプ(たとえば、BスライスまたはPスライス)と、スライスのための参照ピクチャリストのうちの1つまたは複数のための構築情報と、スライスの各インター符号化ビデオブロックのための動きベクトルと、スライスの各インターコード化ビデオブロックのためのインター予測ステータスと、現在ビデオスライス中のビデオブロックを復号するための他の情報とを決定するために、受信されたシンタックス要素のうちのいくつかを使用する。
【0134】
[0119]動き補償ユニット82はまた、補間フィルタに基づいて補間を実施し得る。動き補償ユニット82は、参照ブロックのサブ整数ピクセルのための補間値を計算するために、ビデオブロックの符号化中にビデオエンコーダ20によって使用された補間フィルタを使用し得る。この場合、動き補償ユニット82は、受信されたシンタックス要素からビデオエンコーダ20によって使用された補間フィルタを決定し、予測ブロックを生成するためにその補間フィルタを使用し得る。
【0135】
[0120]逆量子化ユニット86は、ビットストリーム中で与えられ、エントロピー復号ユニット80によって復号された量子化変換係数を逆量子化、すなわち、量子化解除する。逆量子化プロセスは、量子化の程度を決定し、同様に、適用されるべき逆量子化の程度を決定するための、ビデオスライス中のビデオブロックごとにビデオエンコーダ20によって計算される量子化パラメータの使用を含み得る。逆変換処理ユニット88は、ピクセル領域において残差ブロックを生成するために、逆変換、たとえば、逆DCT、逆整数変換、または概念的に同様の逆変換プロセスを変換係数に適用する。
【0136】
[0121]予測処理ユニットが、たとえば、イントラまたはインター予測を使用して現在ビデオブロックのための予測ブロックを生成した後、ビデオデコーダ30は、逆変換処理ユニット88からの残差ブロックを動き補償ユニット82によって生成された対応する予測ブロックと加算することによって、再構築されたビデオブロックを形成する。加算器90は、この加算演算を実施する1つまたは複数の構成要素を表す。ALFユニット92は、たとえば、本開示で説明されるフィルタ技法のうちの1つまたは複数を使用して、再構築されたビデオブロックをフィルタ処理する。
【0137】
[0122]
図5には明示的に示されていないが、ビデオデコーダ30はまた、デブロッキングフィルタ、SAOフィルタ、または他のタイプのフィルタのうちの1つまたは複数を含み得る。ピクセル遷移を平滑化するか、または場合によってはビデオ品質を改善するために、(コーディングループ中またはコーディングループ後のいずれかの)他のループフィルタも使用され得る。所与のフレームまたはピクチャ中の復号ビデオブロックは、次いで、その後の動き補償のために使用される参照ピクチャを記憶するDPB94に記憶される。DPB94は、
図1のディスプレイデバイス32などのディスプレイデバイス上での後の提示のために、復号されたビデオを記憶する追加のメモリの一部であるか、または追加のメモリとは別個であり得る。
【0138】
[0123]ALFユニット92は、単独でまたはビデオデコーダ30の他の構成要素とともに、特許請求の範囲セクションならびに他のセクションで説明される技法を含む本開示で説明される様々な技法を実施するように構成され得る。たとえば、加算器90の出力は、復号されたビデオデータである。したがって、ALFユニット92は、本開示の技法に従って、復号されたビデオデータをフィルタ処理し得る。特に、ALFユニット92は、ALFユニット92が、参照ピクチャとしてその後使用され、後続のピクチャを予測するために予測処理ユニット81によって使用されるためにDPB94に記憶される、復号されたピクチャをフィルタ処理するという点で、「ループ内」フィルタ処理プロセスとしてフィルタ処理を実施する。
【0139】
[0124]ALFユニット92は、単独でまたは組み合わせて本開示の技法を適用し得る。たとえば、ALFユニット92は、スライスヘッダまたはピクチャパラメータセットなど、ビットストリームからの復号されたデータに基づいて、フィルタ係数の複数のセットを明示的に復号し、フィルタ係数の複数のセットへのブロックのクラスの第1のセットのためのインデックスを復号し、固定フィルタ、またはDPB94中の1つまたは複数の参照ピクチャのフィルタのいずれかから、ブロックのクラスの第2のセットのフィルタのためのフィルタ係数を予測復号し得る。代替的に、ALFユニット92は、スライスヘッダまたはピクチャパラメータセットなど、ビットストリームからの復号されたデータに基づいて、固定フィルタから、またはDPB94中の1つまたは複数の参照ピクチャのフィルタからのいずれかから予測されたフィルタ係数の複数のセットの各々を復号し、次いで、ブロックのクラスの各々のために、フィルタ係数のセットのうちの1つを識別するインデックスを復号し得る。また別の例として、ALFユニット92は、スライスヘッダまたはピクチャパラメータセットなど、ビットストリームからの復号されたデータに基づいて、上記の技法のいずれかを使用してブロックのクラスの第1のセットのためのフィルタ係数を復号し、幾何学的変換を識別するデータと、フィルタ係数をそれから継承すべきブロックのクラスの第1のセットのうちの1つを識別するデータとを含む、ブロックのクラスの第2のセットのための幾何学的変換情報を復号し得る。したがって、概して、
【0140】
[0125]いくつかの例では、ALFユニット92は、ブロックの様々なクラスのためのフィルタを構築し得る。ALFユニット92は、たとえば、ブロックのピクセルから計算された勾配の方向性に基づいて、ブロックを分類し得る。概して、ALFユニット92は、ブロックの各クラスのための異なるALFを構築し得る。しかしながら、いくつかの場合には、ALFユニット92は、ブロックの2つまたはそれ以上のクラスによって使用されるフィルタ係数のセットを計算し得る。たとえば、ALFユニット92は、フィルタ係数の複数のセットを計算し得る。ALFユニット92は、さらに、フィルタ係数の複数のセット中のフィルタ係数の1つのセットを識別する、ブロックのクラスの各々(またはブロックのクラスのサブセット)のためのインデックス値を復号し得る。エントロピー復号ユニット80は、ブロックのクラスの各々のためのインデックスを指定するデータ構造をエントロピー復号し、そのデータ構造をALFユニット92に与え得る。エントロピー復号ユニット56は、そのデータ構造を、たとえば、スライスヘッダ、ピクチャパラメータセット、または他のそのようなデータ構造からエントロピー復号し得る。したがって、ALFユニット92が、ブロックの2つまたはそれ以上のクラスのための同じインデックスを復号する場合、ブロックのそれらのクラスは、フィルタ係数の同じセット、すなわち、復号されたインデックス値に対応するフィルタ係数のセットを使用することになる。
【0141】
[0126]追加または代替として、ALFユニット92は、ブロックの少なくとも1つのクラスのために、フィルタが、ブロックの異なるクラスと同じフィルタ係数を使用することによって生成されるべきであることを示し得るが、幾何学的変換がフィルタのフィルタサポート領域またはフィルタ係数のいずれかに適用される。機能的に、フィルタサポート領域に幾何学的変換を適用することは、フィルタ係数に幾何学的変換を適用することと同じ数学的結果を生じ、したがって、ALFユニット92は、フィルタサポート領域またはフィルタ係数のいずれかに幾何学的変換を適用し得る。この例では、ALFユニット92は、ブロックの現在のクラスのために、幾何学的変換タイプ(たとえば、回転、対角反転、または垂直反転)を識別するデータ、ならびにそれのフィルタ係数が、ブロックの現在のクラスのための生成されたフィルタのために使用されるべきである、前に構築されたフィルタを復号し得る。再び、エントロピー復号ユニット80は、そのようなデータをエントロピー復号し、復号されたデータをALFユニット92に与え得る。データは、たとえば、スライスヘッダまたはピクチャパラメータセットなど、データ構造中に含まれ得る。
【0142】
[0127]追加または代替として、エントロピー復号ユニット80は、固定フィルタが、ブロックのクラスのためのフィルタ係数のセットを予測するために使用されるかどうかを示す(たとえば、フラグの)値をエントロピー復号し得る。同様に、エントロピー復号ユニット80は、これらの値をALFユニット92に与え得る。エントロピー復号ユニット80は、スライスヘッダ、ピクチャパラメータセット、または他のそのようなデータ構造の一部からのデータを復号し得る。フラグは、たとえば、ブロックのクラスのフィルタのためのフィルタ係数が、固定フィルタから予測されるか、または代わりに参照ピクチャのフィルタから予測(または継承)されるかのいずれかであることを示し得る。いくつかの例では、ALFユニット92は、ブロックの各クラスのための複数の固定フィルタで構成され得る。そのような例では、ALFユニット92は、さらに、フィルタ係数が固定フィルタから予測されることを値が示すとき、ブロックのクラスのための現在のフィルタのフィルタ係数を予測するために使用されるべき複数の固定フィルタのうちの1つを識別する、複数の固定フィルタへのインデックスを復号し得る。
【0143】
[0128]いくつかの例では、ALFユニット92は、さらに、クラスのいずれかのためのフィルタ係数のいずれも固定フィルタから予測されないこと、すべてのフィルタ係数が固定フィルタから予測されること、または固定フィルタから予測されるいくつかのフィルタ係数があるが、他のフィルタ係数は固定フィルタから予測されないことのいずれかを示すエントロピー復号された情報を受信し得る。フィルタ係数のいずれも固定フィルタから予測されないとき、ALFユニット92(またはエントロピー復号ユニット80)は、複数の固定フィルタへのインデックスを表すデータの復号を回避(たとえば、省略または防止)し得る。一方、フィルタ係数の一部または全部が固定フィルタから予測されるとき、ALFユニット92は、固定フィルタから予測されるフィルタ係数のセットのためのそれぞれの複数の固定フィルタへのインデックスを復号し得、ここで、インデックスは、対応するフィルタ係数がそれから予測されるべきである参照固定フィルタを識別する。さらに、ALFユニット92は、対応するフィルタ係数を予測するために、インデックスによって識別された固定フィルタを使用し得る。予測の後に、ALFユニット92は、さらに、被予測フィルタ係数と実際のフィルタ係数値との間の差分を表す残差値(たとえば、オフセット値)を復号し得る。
【0144】
[0129]
図6は、(たとえば、ビデオ符号化プロセス中に)ビデオエンコーダによって、復号されたピクチャのブロックをフィルタ処理するための例示的な方法を示すフローチャートである。例および説明の目的で、
図6の方法は、
図4のビデオエンコーダ20に関して説明される。
【0145】
[0130]最初に、ビデオエンコーダ20はピクチャを符号化する(100)。たとえば、ビデオエンコーダ20は、
図4に関して上記で説明されたように、ピクチャのブロックをイントラ予測またはインター予測し、被予測ブロックのための残差を計算し、残差データを変換および量子化し、ピクチャのための予測情報および量子化変換係数をエントロピー符号化し得る。その後、ビデオエンコーダ20は、たとえば、残差値を再生するために、量子化変換係数を逆量子化および逆変換し、次いで、被予測ブロックに残差値を加算することによって、ピクチャを復号する(102)。
【0146】
[0131]次いで、ALFユニット64は、ブロックの様々なクラスのためのフィルタ係数を計算する(104)。たとえば、ALFユニット64は、ブロックのための電位勾配に基づいて、ブロックのクラスを決定し得る。ALFユニット64は、次いで、計算されたフィルタ係数からブロックのクラスのためのフィルタを生成する(106)。ALFユニット64は、本開示のフィルタを生成するための様々な技法のいずれかを使用し得る。たとえば、ブロックの少なくともいくつかのクラスのために、ALFユニット64は、計算されたフィルタ係数の複数のセットへのインデックスを選択し得、ここで、ブロックの各クラスのためのインデックスは、ブロックの対応するクラスのためのフィルタを生成するために使用するための計算されたフィルタ係数のセットを識別する。追加または代替として、ブロックの少なくともいくつかのクラスのために、ALFユニット64は、使用されるべき前に生成されたフィルタ、ならびにフィルタサポート領域または前に生成されたフィルタのフィルタ係数のうちの少なくとも1つに適用されるべき幾何学的変換を示すデータを生成し得る。追加または代替として、ブロックの少なくともいくつかのクラスのために、ALFユニット64は、固定フィルタまたは参照ピクチャのフィルタのいずれかからフィルタ係数を予測し、フィルタ係数がそれから予測されるべきである固定フィルタまたは参照ピクチャのいずれかを示すデータを生成し得る。
【0147】
[0132]さらに、ビデオエンコーダ20は、ブロックの様々なクラスのためのフィルタを定義するデータを符号化する(108)。たとえば、フィルタが、フィルタ係数の複数のセットへのインデックスを使用してそれのために生成されるべきであるブロックのクラスのために、エントロピー符号化ユニット56は、ブロックのそれらのクラスのためのインデックスをエントロピー符号化し得る。追加または代替として、フィルタが、前に生成されたフィルタおよび幾何学的変換を使用してそれのために生成されるべきであるブロックのクラスのために、エントロピー符号化ユニット56は、前に生成されたフィルタおよび適用されるべき幾何学的変換(たとえば、回転、垂直反転、または対角反転)を識別するデータをエントロピー符号化し得る。追加または代替として、フィルタが、固定フィルタから予測されたフィルタ係数を使用してそれのために生成されるべきであるブロックのクラスのために、エントロピー符号化ユニット56は、フィルタ係数が、固定フィルタから予測されるべきであるのか、参照ピクチャのフィルタから予測されるべきであるのかを示すデータ、ならびに固定フィルタまたは参照ピクチャの指示をエントロピー符号化し得る。
【0148】
[0133]ALFユニット64はまた、対応するフィルタを使用して、復号されたピクチャのブロックをフィルタ処理する(110)。すなわち、ピクチャの各ブロックのために、ALFユニット64は、勾配を計算し、勾配に基づいてブロックのためのクラスを決定し得る。ALFユニット64は、さらに、クラスに対応するフィルタを選択し得る。ALFユニット64は、次いで、ブロックのためのクラスに対応するフィルタを使用して、ブロックの各ピクセルをフィルタ処理し得る。
【0149】
[0134]このようにして、
図6の方法は、ビデオデータの現在ピクチャのブロックのクラスのための複数のフィルタを構築することを含むビデオデータの復号されたブロックをフィルタ処理する方法の一例を表し、ここにおいて、複数のフィルタを構築することは、クラスの各々のために、固定フィルタが、クラスのフィルタ係数のセットを予測するために使用されるかどうかを決定することと、固定フィルタが、フィルタ係数のセットを予測するために使用されると決定したことに応答して、クラスの固定フィルタのセットへのインデックス値を決定することと、インデックス値によって識別された固定フィルタのセットの固定フィルタを使用して、クラスのフィルタ係数のセットを予測することと、ビデオデータの現在ピクチャの現在ブロックを復号することと、現在ブロックのためのクラスを決定することと、現在ブロックのためのクラスに対応する複数のフィルタのうちのフィルタを選択することと、選択されたフィルタを使用して現在ブロックの少なくとも1つのピクセルをフィルタ処理することとを備える。
【0150】
[0135]
図7は、(たとえば、ビデオ復号プロセス中に)ビデオデコーダによって、復号されたピクチャのブロックをフィルタ処理するための例示的な方法を示すフローチャートである。例および説明の目的で、
図6の方法は、
図5のビデオデコーダ30に関して説明される。
【0151】
[0136]最初に、ビデオデコーダ30はピクチャを復号する(120)。たとえば、ビデオデコーダ30は、
図5に関して上記で説明されたように、ピクチャのための予測情報および量子化変換係数をエントロピー復号し、予測情報に基づいてピクチャのブロックをイントラ予測またはインター予測し、残差データを再生するために量子化変換係数を逆量子化および逆変換し、ブロックを再生するために、被予測ブロックと残差データとを組み合わせ得る。
【0152】
[0137]さらに、エントロピー復号ユニット80は、ブロックの様々なクラスのためのフィルタを定義するデータをエントロピー復号する(122)。たとえば、エントロピー復号ユニット80は、フィルタが、フィルタ係数の複数のセットへのインデックスを使用してそれのために生成されるべきであるブロックのクラスを示すデータをエントロピー復号し、ブロックのそれらのクラスのためのインデックスをエントロピー復号し得る。追加または代替として、エントロピー復号ユニット80は、フィルタが、前に生成されたフィルタおよび幾何学的変換を使用してそれのために生成されるべきであるブロックのクラスを示すデータ、ならびに前に生成されたフィルタおよび適用されるべき幾何学的変換(たとえば、回転、垂直反転、または対角反転)を識別するデータをエントロピー復号し得る。追加または代替として、エントロピー復号ユニット80は、フィルタが、固定フィルタから予測されたフィルタ係数を使用してそれのために生成されるべきであるブロックのクラスを示すデータ、およびフィルタ係数が、固定フィルタから予測されるべきであるのか、参照ピクチャのフィルタから予測されるべきであるのかを示すデータ、ならびに固定フィルタまたは参照ピクチャの指示をエントロピー復号し得る。
【0153】
[0138]次いで、ALFユニット92は、ブロックの様々なクラスのためのフィルタ係数を計算する(124)。たとえば、ALFユニット92は、ブロックのための電位勾配に基づいて、ブロックのクラスを決定し得る。ALFユニット92は、次いで、上記で説明されたように、フィルタをどのように生成すべきかを表すエントロピー復号されたデータに基づいて、計算されたフィルタ係数からブロックのクラスのためのフィルタを生成する(126)。ALFユニット92は、本開示のフィルタを生成するための様々な技法のいずれかを使用し得る。たとえば、ブロックの少なくともいくつかのクラスのために、ALFユニット92は、計算されたフィルタ係数の複数のセットへのインデックスをエントロピー復号ユニット80から受信し得、ここで、ブロックの各クラスのためのインデックスは、ブロックの対応するクラスのためのフィルタを生成するために使用するための計算されたフィルタ係数のセットを識別する。追加または代替として、ブロックの少なくともいくつかのクラスのために、ALFユニット92は、使用されるべき前に生成されたフィルタ、ならびにフィルタサポート領域または前に生成されたフィルタのフィルタ係数のうちの少なくとも1つに適用されるべき幾何学的変換を示すデータをエントロピー復号ユニット80から受信し得る。追加または代替として、ブロックの少なくともいくつかのクラスのために、ALFユニット92は、エントロピー復号ユニット80から受信されたデータによって示されるように、固定フィルタまたは参照ピクチャのフィルタのいずれかからフィルタ係数を予測し、フィルタ係数がそれから予測されるべきである固定フィルタまたは参照ピクチャのいずれかを示すデータを生成し得る。
【0154】
[0139]ALFユニット92は、次いで、対応するフィルタを使用して、復号されたピクチャのブロックをフィルタ処理する(128)。すなわち、ピクチャの各ブロックのために、ALFユニット92は、勾配を計算し、勾配に基づいてブロックのためのクラスを決定し得る。ALFユニット92は、さらに、クラスに対応するフィルタを選択し得る。ALFユニット92は、次いで、ブロックのためのクラスに対応するフィルタを使用して、ブロックの各ピクセルをフィルタ処理し得る。
【0155】
[0140]このようにして、
図7の方法は、ビデオデータの現在ピクチャのブロックのクラスのための複数のフィルタを構築することを含むビデオデータの復号されたブロックをフィルタ処理する方法の一例を表し、ここにおいて、複数のフィルタを構築することは、クラスの各々のために、固定フィルタが、クラスのフィルタ係数のセットを予測するために使用されるかどうかを決定することと、固定フィルタが、フィルタ係数のセットを予測するために使用されると決定したことに応答して、クラスの固定フィルタのセットへのインデックス値を決定することと、インデックス値によって識別された固定フィルタのセットの固定フィルタを使用して、クラスのフィルタ係数のセットを予測することと、ビデオデータの現在ピクチャの現在ブロックを復号することと、現在ブロックのためのクラスを決定することと、現在ブロックのためのクラスに対応する複数のフィルタのうちのフィルタを選択することと、選択されたフィルタを使用して現在ブロックの少なくとも1つのピクセルをフィルタ処理することとを備える。
【0156】
[0141]
図8は、(たとえば、ビデオ符号化プロセス中に)ビデオエンコーダによって、復号されたピクチャのブロックをフィルタ処理するための例示的な方法を示すフローチャートである。例および説明の目的で、
図8の方法は、
図4のビデオエンコーダ20に関して説明される。
【0157】
[0142]最初に、ビデオエンコーダ20はピクチャを符号化する(140)。たとえば、ビデオエンコーダ20は、
図4に関して上記で説明されたように、ピクチャのブロックをイントラ予測またはインター予測し、被予測ブロックのための残差を計算し、残差データを変換および量子化し、ピクチャのための予測情報および量子化変換係数をエントロピー符号化し得る。その後、ビデオエンコーダ20は、たとえば、残差値を再生するために、量子化変換係数を逆量子化および逆変換し、次いで、被予測ブロックに残差値を加算することによって、ピクチャを復号する(142)。
【0158】
[0143]次いで、ALFユニット64は、ピクチャのブロックのクラスのためのフィルタを(適応ループフィルタ処理(ALF)に従ってなど)選択する(144)。ALFユニット64は、たとえば、ブロックの1つまたは複数のピクセルのために計算された勾配に基づいて、クラスを選択し得る。代替的に、ALFユニット64は、ブロックの他の特性に基づいて、ブロックのためのクラスを決定し得る。
【0159】
[0144]本開示の技法によれば、ALFユニット64は、ブロックの勾配を計算する(146)。ALFユニット64は、さらに、計算された勾配に基づいて、幾何学的変換を決定および実施する(148)。たとえば、ALFユニット64は、上記で説明されたように表1の技法に従って幾何学的変換を決定し得る。ALFユニット64は、選択されたフィルタの係数、または選択されたフィルタのフィルタサポート領域(たとえば、選択されたフィルタを使用してフィルタ処理されるべきピクセルに対する隣接ピクセル)のいずれかに幾何学的変換を適用し得る。ALFユニット64は、次いで、選択されたフィルタを使用して、復号されたピクチャのブロックをフィルタ処理する(150)。すなわち、ALFユニット64は、選択されたフィルタを使用してブロックの各ピクセルをフィルタ処理する。
【0160】
[0145]このようにして、
図8の方法は、ビデオデータの現在ピクチャの現在ブロックを復号することと、現在ブロックのピクセルをフィルタ処理するために使用されるべきフィルタを(適応ループフィルタ処理(ALF)に従ってなど)選択することと、選択されたフィルタの、フィルタサポート領域または係数のうちの1つに対して実施されるべき幾何学的変換を選択することと、選択されたフィルタの、フィルタサポート領域または係数のいずれかに対して幾何学的変換を実施することと、幾何学的変換を実施することの後に、選択されたフィルタを使用して現在ブロックの少なくとも1つのピクセルをフィルタ処理することとを含むビデオデータの復号されたブロックをフィルタ処理する方法の一例を表す。
【0161】
[0146]
図9は、(たとえば、ビデオ復号プロセス中に)ビデオデコーダによって、復号されたピクチャのブロックをフィルタ処理するための例示的な方法を示すフローチャートである。例および説明の目的で、
図9の方法は、
図5のビデオデコーダ30に関して説明される。
【0162】
[0147]最初に、ビデオデコーダ30は、たとえば、予測のためのシンタックス要素の値および量子化変換係数をエントロピー復号し、残差値を再生するために、量子化変換係数を逆量子化および逆変換し、次いで、被予測ブロックに残差値を加算することによって、ピクチャを復号する(160)。次いで、ALFユニット92は、ピクチャのブロックのクラスのためのフィルタを(適応ループフィルタ処理(ALF)に従ってなど)選択する(162)。ALFユニット92は、たとえば、ブロックの1つまたは複数のピクセルのために計算された勾配に基づいて、クラスを選択し得る。代替的に、ALFユニット92は、ブロックの他の特性に基づいて、ブロックのためのクラスを決定し得る。
【0163】
[0148]本開示の技法によれば、ALFユニット92は、ブロックの勾配を計算する(164)。ALFユニット92は、さらに、計算された勾配に基づいて、幾何学的変換を決定および実施する(166)。たとえば、ALFユニット92は、上記で説明されたように表1の技法に従って幾何学的変換を決定し得る。ALFユニット92は、選択されたフィルタの係数、または選択されたフィルタのフィルタサポート領域(たとえば、選択されたフィルタを使用してフィルタ処理されるべきピクセルに対する隣接ピクセル)のいずれかに幾何学的変換を適用し得る。ALFユニット92は、次いで、選択されたフィルタを使用して、復号されたピクチャのブロックをフィルタ処理する(168)。すなわち、ALFユニット92は、選択されたフィルタを使用してブロックの各ピクセルをフィルタ処理する。
【0164】
[0149]このようにして、
図9の方法は、ビデオデータの現在ピクチャの現在ブロックを復号することと、現在ブロックのピクセルをフィルタ処理するために使用されるべきフィルタを(適応ループフィルタ処理(ALF)に従ってなど)選択することと、選択されたフィルタの、フィルタサポート領域または係数のうちの1つに対して実施されるべき幾何学的変換を選択することと、選択されたフィルタの、フィルタサポート領域または係数のいずれかに対して幾何学的変換を実施することと、幾何学的変換を実施することの後に、選択されたフィルタを使用して現在ブロックの少なくとも1つのピクセルをフィルタ処理することとを含むビデオデータの復号されたブロックをフィルタ処理する方法の一例を表す。
【0165】
[0150]
図10は、(たとえば、ビデオ符号化プロセス中に)ビデオエンコーダによって、復号されたピクチャのブロックをフィルタ処理するための例示的な方法を示すフローチャートである。例および説明の目的で、
図10の方法は、
図4のビデオエンコーダ20に関して説明される。
【0166】
[0151]最初に、ビデオエンコーダ20はピクチャを符号化する(170)。たとえば、ビデオエンコーダ20は、
図4に関して上記で説明されたように、ピクチャのブロックをイントラ予測またはインター予測し、被予測ブロックのための残差を計算し、残差データを変換および量子化し、ピクチャのための予測情報および量子化変換係数をエントロピー符号化し得る。その後、ビデオエンコーダ20は、たとえば、残差値を再生するために、量子化変換係数を逆量子化および逆変換し、次いで、被予測ブロックに残差値を加算することによって、ピクチャを復号する(172)。
【0167】
[0152]次いで、ALFユニット64は、固定フィルタを使用してピクチャのブロックのクラスのためのフィルタの係数を(適応ループフィルタ処理(ALF)に従ってなど)予測する(174)。ALFユニット64は、たとえば、ブロックの1つまたは複数のピクセルのために計算された勾配に基づいて、クラスを選択し得る。代替的に、ALFユニット64は、ブロックの他の特性に基づいて、ブロックのためのクラスを決定し得る。いくつかの例では、複数の固定フィルタが、ブロックの各クラスのために利用可能であり得、ALFユニット64は、どれが最良のレートひずみ性能を生じるかを決定するために、利用可能な固定フィルタの各々をテストし得る。ALFユニット64は、次いで、ブロックの各クラスのための最良のレートひずみ性能を生じる固定フィルタを選択するか、または参照ピクチャの参照フィルタがより良いレートひずみ性能を生じる場合、参照フィルタを選択し得る。ALFユニット64は、次いで、固定フィルタのうちのどれがブロックの各クラスのために使用されるか(および追加または代替として、特定のクラスのためのフィルタが参照ピクチャの参照フィルタから予測されるかどうか)を示すフラグを符号化する(176)。
【0168】
[0153]ALFユニット64は、次いで、復号されたピクチャのブロックの各クラスのためのフィルタを選択し(178)、たとえば、ブロックのために計算された勾配に基づいて、復号されたピクチャのブロックの各々のためのクラスを決定し(180)、選択されたフィルタを使用してブロックをフィルタ処理する(182)。再び、ALFユニット64は、どのフィルタが最良のレートひずみ性能を生じるかを決定するために、ブロックの各クラスのための異なるフィルタをテストし得る。本開示の技法によれば、いくつかの例では、ALFユニット64は、マージされたクラスの各々が同じフィルタを使用するように、ブロックの2つまたはそれ以上のクラスをマージし得る。その上、ビデオエンコーダ20は、フィルタのうちのどれがブロックの各クラスのために使用されるべきであるかを示すデータを符号化し得る。
【0169】
[0154]このようにして、
図10の方法は、ビデオデータの現在ピクチャのブロックのクラスのための複数のフィルタを構築することを含むビデオデータの復号されたブロックをフィルタ処理する方法の一例を表し、ここにおいて、ビデオデータの現在ピクチャのブロックのクラスのための複数のフィルタを構築すること、ここにおいて、複数のフィルタを構築することは、クラスの各々のために、固定フィルタが、クラスのフィルタ係数のセットを予測するために使用されるかどうかを決定することと、固定フィルタが、フィルタ係数のセットを予測するために使用されると決定したことに応答して、クラスの固定フィルタのセットへのインデックス値を決定することと、インデックス値によって識別された固定フィルタのセットの固定フィルタを使用して、クラスのフィルタ係数のセットを予測することと、ビデオデータの現在ピクチャの現在ブロックを復号することと、現在ブロックのためのクラスを決定することと、現在ブロックのためのクラスに対応する複数のフィルタのうちのフィルタを選択することと、選択されたフィルタを使用して現在ブロックの少なくとも1つのピクセルをフィルタ処理することとを備える。
【0170】
[0155]
図11は、(たとえば、ビデオ復号プロセス中に)ビデオデコーダによって、復号されたピクチャのブロックをフィルタ処理するための例示的な方法を示すフローチャートである。例および説明の目的で、
図11の方法は、
図5のビデオデコーダ30に関して説明される。
【0171】
[0156]最初に、ビデオデコーダ30は、たとえば、予測のためのシンタックス要素の値および量子化変換係数をエントロピー復号し、残差値を再生するために、量子化変換係数を逆量子化および逆変換し、次いで、被予測ブロックに残差値を加算することによって、ビデオデータのピクチャを復号する(190)。
【0172】
[0157]次いで、ALFユニット92は、フィルタの係数が、固定フィルタから予測されるべきであるかどうかを示すフラグ、およびいくつかの例では、フィルタ係数が固定フィルタから予測されるべきである場合、固定フィルタを識別するデータを復号する(192)。ALFユニット92は、次いで、(この例において、フィルタ係数が固定フィルタから予測されるべきであると仮定すると)固定フィルタを使用してフィルタの係数を予測する(194)。他の例では、ALFユニット92は、フィルタ係数が固定フィルタから予測されないことをフラグが示す場合、参照ピクチャの参照フィルタからフィルタ係数を予測し得る。
【0173】
[0158]ALFユニット92は、次いで、復号されたピクチャのブロックの各クラスのためのフィルタを選択し(196)、たとえば、ブロックのために計算された勾配に基づいて、復号されたピクチャのブロックの各々のためのクラスを決定し(198)、選択されたフィルタを使用してブロックをフィルタ処理する(200)。ALFユニット92は、ブロックの各クラスのための、そのクラスのブロックのピクセルをフィルタ処理するために使用されるべきフィルタを識別するデータを復号し得る。
【0174】
[0159]このようにして、
図11の方法は、ビデオデータの現在ピクチャのブロックのクラスのための複数のフィルタを構築することを含むビデオデータの復号されたブロックをフィルタ処理する方法の一例を表し、ここにおいて、複数のフィルタを構築することは、クラスの各々のために、固定フィルタが、クラスのフィルタ係数のセットを予測するために使用されるかどうかを決定することと、固定フィルタが、フィルタ係数のセットを予測するために使用されると決定したことに応答して、クラスの固定フィルタのセットへのインデックス値を決定することと、インデックス値によって識別された固定フィルタのセットの固定フィルタを使用して、クラスのフィルタ係数のセットを予測することと、ビデオデータの現在ピクチャの現在ブロックを復号することと、現在ブロックのためのクラスを決定することと、現在ブロックのためのクラスに対応する複数のフィルタのうちのフィルタを選択することと、選択されたフィルタを使用して現在ブロックの少なくとも1つのピクセルをフィルタ処理することとを備える。
【0175】
[0160]1つまたは複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得るか、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、(1)非一時的である有形コンピュータ可読記憶媒体、あるいは(2)信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明された技法の実装のための命令、コードおよび/またはデータ構造を取り出すために、1つまたは複数のコンピュータまたは1つまたは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
【0176】
[0161]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD-ROMまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用されるディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびBlu-rayディスク(disc)を含み、ここで、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
【0177】
[0162]命令は、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、あるいは他の等価な集積回路またはディスクリート論理回路など、1つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用される「プロセッサ」という用語は、上記の構造、または、本明細書で説明された技法の実装に好適な任意の他の構造のいずれかを指すことがある。さらに、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成された専用ハードウェアおよび/またはソフトウェアモジュール内に与えられるか、あるいは複合コーデックに組み込まれ得る。また、本技法は、1つまたは複数の回路または論理要素で十分に実装され得る。したがって、プロセッサは、固定ハードウェア処理回路、プログラマブル処理回路ならびに/あるいは固定処理回路およびプログラマブル処理回路の両方の組合せとして実装された1つまたは複数のプロセッサを備える様々な集積処理回路のいずれかによって形成され得る。
【0178】
[0163]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置で実装され得る。本開示では、開示される技法を実施するように構成されたデバイスの機能的態様を強調するために、様々な構成要素、モジュール、またはユニットが説明されたが、それらの構成要素、モジュール、またはユニットは、必ずしも異なるハードウェアユニットによる実現を必要とするとは限らない。むしろ、上記で説明されたように、様々なユニットが、好適なソフトウェアおよび/またはファームウェアとともに、上記で説明された1つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作可能なハードウェアユニットの集合によって与えられ得る。
【0179】
[0164]様々な例が説明された。これらおよび他の例は、以下の特許請求の範囲内に入る。
【手続補正書】
【提出日】2022-03-16
【手続補正1】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項1】
ビデオデータの復号されたブロックをフィルタ処理する方法であって、
ビデオデータの現在ピクチャのブロックのクラスのための複数のフィルタを決定すること、ここにおいて、ブロックの前記クラスは、ブロックの第1のクラスのための第1の方向性を表す第1の勾配およびブロックの前記第1のクラスのための第1のアクティビティを有するブロックの前記第1のクラスと、ブロックの第2のクラスのための第2の方向性を表す第2の勾配およびブロックの前記第2のクラスのための第2のアクティビティを有するブロックの前記第2のクラスとを含み、前記第1のクラスは前記第2のクラスとは異なっており、前記複数のフィルタを決定することは、
生成されるべきフィルタ係数のセットの数を決定することと、
前記数の、フィルタ係数のセットを生成することと、
前記複数のフィルタのサブセットのために、前記サブセットの前記対応するフィルタのための前記フィルタ係数のセットのうちの1つを識別するそれぞれのインデックスを決定することと
を備える、と、
前記現在ピクチャの現在ブロックを復号することと、ここにおいて、前記復号することは、前記現在ブロックを予測することを含み、
前記現在ブロックのための勾配および前記現在ブロックのためのアクティビティにしたがって前記第1のクラスまたは前記第2のクラスのうちの1つであるとして前記現在ブロックのためのクラスを決定することと、前記現在ブロックのための前記勾配は、前記現在ブロックのための方向性を表し、
前記現在ブロックのための前記クラスに対応する前記複数のフィルタのうちの前記フィルタの1つを、選択されたフィルタとして選択することと、
前記選択されたフィルタを使用して前記現在ブロックの少なくとも1つのピクセルをフィルタ処理することと
を備える、方法。
【請求項2】
前記それぞれのインデックスは、両端値を含む[0,フィルタ係数のセットの数-1]の前記範囲内にある、
請求項1に記載の方法。
【請求項3】
前記少なくとも1つのピクセルの1つまたは複数の勾配を計算することと、
フィルタサポート領域または前記選択されたフィルタの係数のうちの1つに対して実施されるべき幾何学的変換を選択することと
をさらに備え、前記幾何学的変換を選択することは、前記少なくとも1つのピクセルの前記勾配の方向性に対応する前記幾何学的変換を選択すること備える、
請求項1に記載の方法。
【請求項4】
前記幾何学的変換は、回転、対角反転、または垂直反転のうちの1つを備える、
請求項3に記載の方法。
【請求項5】
前記フィルタサポート領域は、前記選択されたフィルタの係数がそれに適用されるべきである、前記現在ブロックの前記少なくとも1つのピクセルに対する複数の隣接ピクセルを備え、前記少なくとも1つのピクセルをフィルタ処理することは、前記選択されたフィルタの、前記係数または前記フィルタサポート領域のいずれかに対して前記幾何学的変換を実施することを備える、
請求項3に記載の方法。
【請求項6】
前記複数のフィルタを決定することは、
前記複数のフィルタの前記サブセットに対応する前記クラスと別個の少なくとも1つのクラスのために、固定フィルタが前記クラスのフィルタ係数のセットを予測するために使用されるかどうかを示すフラグの値を決定することと、
固定フィルタが、前記フィルタ係数のセットを予測するために使用されることを示す前記フラグの前記値に応答して、固定フィルタのセットへのインデックス値を決定することと、前記インデックス値によって識別された前記固定フィルタのセットの固定フィルタを使用して、前記クラスの前記フィルタ係数のセットを予測することと
を備える、請求項1に記載の方法。
【請求項7】
前記複数のフィルタを決定することは、
前記クラスの前記予測されたフィルタ係数のセットに適用されるべきオフセット値を決定することと、
前記クラスのための前記フィルタを決定するために前記クラスの前記予測されたフィルタ係数のセットに前記オフセット値を適用することと
をさらに備える、請求項6に記載の方法。
【請求項8】
前記複数のフィルタを決定することは、
前記複数のフィルタの前記サブセットに対応する前記クラスと別個の前記クラスのサブセットのいずれかのための前記フィルタ係数のセットのいずれも前記固定フィルタのいずれかから予測されないこと、
前記クラスの前記サブセットのすべてのための前記フィルタ係数のセットのすべてが前記固定フィルタのうちの少なくとも1つから予測されること、または
前記クラスの前記サブセットの前記フィルタ係数のセットのいくつかが前記固定フィルタのうちの1つまたは複数から予測されること
のうちの1つを表す値を決定することをさらに備える、請求項6に記載の方法。
【請求項9】
前記複数のクラスのいずれかのための前記フィルタ係数のセットのいずれも前記固定フィルタのいずれかから予測されないことを前記値が表すとき、前記1つまたは複数の固定フィルタのうちの固定フィルタを表すインデックス値の決定を防止することをさらに備える、
請求項8に記載の方法。
【請求項10】
前記複数のクラスのすべてのための前記フィルタ係数のセットのすべてが前記固定フィルタのうちの少なくとも1つから予測されることを前記値が表すとき、前記対応するクラスのための前記フィルタ係数のセットがそれから予測される前記固定フィルタのうちの前記1つを表す前記複数のクラスの各々のためのインデックス値を決定することをさらに備える、
請求項8に記載の方法。
【請求項11】
前記複数のクラスの前記フィルタ係数のセットのうちのいくつかが前記固定フィルタのうちの1つまたは複数から予測されることを前記値が表すとき、
前記複数のクラスのどれが前記固定フィルタのうちの1つまたは複数から予測されるフィルタ係数のセットに対応するかを決定することと、
前記固定フィルタのうちの1つまたは複数から予測される前記フィルタ係数のセットの各々のために、前記対応するフィルタ係数のセットがそれから予測される前記1つまたは複数の固定フィルタのうちの前記固定フィルタを表すインデックス値を決定することと
をさらに備える、請求項8に記載の方法。
【請求項12】
前記現在ブロックを復号することより前に前記現在ブロックを符号化することをさらに備える、
請求項1に記載の方法。
【請求項13】
前記方法は、ワイヤレス通信デバイス上で実行可能であり、前記デバイスは、
前記ビデオデータを記憶するように構成されたメモリと、
前記メモリに記憶された前記ビデオデータを処理するための命令を実行するように構成されたプロセッサと、
前記ビデオデータを受信し、前記メモリに前記ビデオデータを記憶するように構成された受信機と
を備える、請求項1に記載の方法。
【請求項14】
前記ワイヤレス通信デバイスは、セルラー電話であり、前記ビデオデータは、受信機によって受信され、セルラー通信規格に従って変調される、
請求項13に記載の方法。
【請求項15】
ビデオデータの復号されたブロックをフィルタ処理するデバイスであって、
前記ビデオデータを記憶するように構成されたメモリと、
回路において実装される1つまたは複数の処理ユニットと
を備え、前記1つまたは複数のプロセッサは、
ビデオデータの現在ピクチャのブロックのクラスのための複数のフィルタを決定すること、ここにおいて、ブロックの前記クラスは、ブロックの第1のクラスのための第1の方向性を表す第1の勾配およびブロックの前記第1のクラスのための第1のアクティビティを有するブロックの前記第1のクラスと、ブロックの第2のクラスのための第2の方向性を表す第2の勾配およびブロックの前記第2のクラスのための第2のアクティビティを有するブロックの前記第2のクラスとを含み、前記第1のクラスは前記第2のクラスとは異なっており、前記複数のフィルタを決定するために、前記1つまたは複数の処理ユニットが、
生成されるべきフィルタ係数のセットの数を決定することと、
前記数の、フィルタ係数のセットを生成することと、
前記複数のフィルタのサブセットのために、前記サブセットの前記対応するフィルタのための前記フィルタ係数のセットのうちの1つを識別するそれぞれのインデックスを決定することと
を行うように構成される、と、
前記現在ピクチャの現在ブロックを復号することと、ここにおいて、前記現在ブロックを復号するために、前記1つまたは複数の処理ユニットは、前記現在ブロックを予測するように構成され、
前記現在ブロックのための勾配および前記現在ブロックのためのアクティビティにしたがって前記第1のクラスまたは前記第2のクラスのうちの1つであるとして前記現在ブロックのためのクラスを決定することと、前記現在ブロックのための前記勾配は、前記現在ブロックのための方向性を表し、
前記現在ブロックのための前記クラスに対応する前記複数のフィルタのうちの前記フィルタの1つを、選択されたフィルタとして選択することと、
前記選択されたフィルタを使用して前記現在ブロックの少なくとも1つのピクセルをフィルタ処理することと
を行うように構成される、デバイス。
【請求項16】
前記それぞれのインデックスは、両端値を含む[0,フィルタ係数のセットの数-1]の前記範囲内にある、
請求項15に記載のデバイス。
【請求項17】
前記1つまたは複数の処理ユニットは、
前記少なくとも1つのピクセルの1つまたは複数の勾配を計算することと、
フィルタサポート領域または前記選択されたフィルタの係数のうちの1つに対して実施されるべき幾何学的変換を選択することと
を行うようにさらに構成され、前記幾何学的変換を選択するために、前記1つまたは複数の処理ユニットは、前記少なくとも1つのピクセルの前記勾配の方向性に対応する前記幾何学的変換を選択することを行うように構成される、
請求項15に記載のデバイス。
【請求項18】
前記幾何学的変換は、回転、対角反転、または垂直反転のうちの1つを備える、
請求項17に記載のデバイス。
【請求項19】
前記フィルタサポート領域は、前記選択されたフィルタの係数がそれに適用されるべきである、前記現在ブロックの前記少なくとも1つのピクセルに対する複数の隣接ピクセルを備え、前記1つまたは複数の処理ユニットは、前記選択されたフィルタの、前記係数または前記フィルタサポート領域のいずれかに対して前記幾何学的変換を実施するように構成される、
請求項17に記載のデバイス。
【請求項20】
前記複数のフィルタを決定するために、前記1つまたは複数の処理ユニットは、
前記複数のフィルタの前記サブセットに対応する前記クラスと別個の少なくとも1つのクラスのために、固定フィルタが前記クラスのフィルタ係数のセットを予測するために使用されるかどうかを示すフラグの値を決定することと、
固定フィルタが、前記フィルタ係数のセットを予測するために使用されることを示す前記フラグの前記値に応答して、固定フィルタのセットへのインデックス値を決定することと、前記インデックス値によって識別された前記固定フィルタのセットの固定フィルタを使用して、前記クラスの前記フィルタ係数のセットを予測することと
を行うように構成される、請求項15に記載のデバイス。
【請求項21】
前記複数のフィルタを決定するために、前記1つまたは複数の処理ユニットは、
前記クラスの前記予測されたフィルタ係数のセットに適用されるべきオフセット値を決定することと、
前記クラスのための前記フィルタを決定するために前記クラスの前記予測されたフィルタ係数のセットに前記オフセット値を適用することと
を行うように構成される、請求項20に記載のデバイス。
【請求項22】
前記複数のフィルタを決定するために、前記1つまたは複数の処理ユニットは、
前記複数のフィルタの前記サブセットに対応する前記クラスと別個の前記クラスのサブセットのいずれかのための前記フィルタ係数のセットのいずれも前記固定フィルタのいずれかから予測されないこと、
前記クラスの前記サブセットのすべてのための前記フィルタ係数のセットのすべてが前記固定フィルタのうちの少なくとも1つから予測されること、または
前記クラスの前記サブセットの前記フィルタ係数のセットのいくつかが前記固定フィルタのうちの1つまたは複数から予測されること
のうちの1つを表す値を決定するようにさらに構成される、請求項21に記載のデバイス。
【請求項23】
前記1つまたは複数の処理ユニットは、前記複数のクラスのいずれかのための前記フィルタ係数のセットのいずれも前記固定フィルタのいずれかから予測されないことを前記値が表すとき、前記1つまたは複数の固定フィルタのうちの固定フィルタを表すインデックス値の決定を防止することを行うようにさらに構成される、
請求項22に記載のデバイス。
【請求項24】
前記1つまたは複数の処理ユニットは、前記複数のクラスのすべてのための前記フィルタ係数のセットのすべてが前記固定フィルタのうちの少なくとも1つから予測されることを前記値が表すとき、前記対応するクラスのための前記フィルタ係数のセットがそれから予測される前記固定フィルタのうちの前記1つを表す前記複数のクラスの各々のためのインデックス値を決定することを行うようにさらに構成される、
請求項22に記載のデバイス。
【請求項25】
前記1つまたは複数の処理ユニットは、前記複数のクラスの前記フィルタ係数のセットのうちのいくつかが前記固定フィルタのうちの1つまたは複数から予測されることを前記値が表すとき、
前記複数のクラスのどれが前記固定フィルタのうちの1つまたは複数から予測されるフィルタ係数のセットに対応するかを決定することと、
前記固定フィルタのうちの1つまたは複数から予測される前記フィルタ係数のセットの各々のために、前記対応するフィルタ係数のセットがそれから予測される前記1つまたは複数の固定フィルタのうちの前記固定フィルタを表すインデックス値を決定することと
を行うようにさらに構成される、請求項22に記載のデバイス。
【請求項26】
前記1つまたは複数の処理ユニットは、前記現在ブロックを復号することより前に、前記現在ブロックを符号化するようにさらに構成される、
請求項15に記載のデバイス。
【請求項27】
前記デバイスは、ワイヤレス通信デバイスであり、
前記現在ピクチャを含むビデオデータを受信するように構成される受信機をさらに備える、
請求項15に記載のデバイス。
【請求項28】
前記ワイヤレス通信デバイスは、セルラー電話であり、前記ビデオデータは、前記受信機によって受信され、セルラー通信規格に従って変調される、
請求項27に記載のデバイス。
【請求項29】
ビデオデータの復号されたブロックをフィルタ処理するデバイスであって、
ビデオデータの現在ピクチャのブロックのクラスのための複数のフィルタを決定するための手段、ここにおいて、ブロックの前記クラスは、ブロックの第1のクラスのための第1の方向性を表す第1の勾配およびブロックの前記第1のクラスのための第1のアクティビティを有するブロックの前記第1のクラスと、ブロックの第2のクラスのための第2の方向性を表す第2の勾配およびブロックの前記第2のクラスのための第2のアクティビティを有するブロックの前記第2のクラスとを含み、前記第1のクラスは前記第2のクラスとは異なっており、前記複数のフィルタを前記決定するための手段は、
生成されるべきフィルタ係数のセットの数を決定するための手段と、
フィルタ係数の複数のセットを生成するための手段と、
前記複数のフィルタのサブセットのために、前記サブセットの前記対応するフィルタのための前記フィルタ係数のセットのうちの1つを識別するそれぞれのインデックスを決定するための手段と
を備える、と、
前記現在ピクチャの現在ブロックを復号するための手段と、ここにおいて、前記現在ブロックを前記復号するための手段は、前記現在ブロックを予測するための手段を含み、
前記現在ブロックのための勾配および前記現在ブロックのためのアクティビティにしたがって前記第1のクラスまたは前記第2のクラスのうちの1つであるとして前記現在ブロックのためのクラスを決定するための手段と、前記現在ブロックのための前記勾配は、前記現在ブロックのための方向性を表し、
前記現在ブロックのための前記クラスに対応する前記複数のフィルタのうちの前記フィルタの1つを、選択されたフィルタとして選択するための手段と、
前記選択されたフィルタを使用して前記現在ブロックの少なくとも1つのピクセルをフィルタ処理するための手段と
を備える、デバイス。
【請求項30】
前記それぞれのインデックスは、両端値を含む[0,フィルタ係数のセットの数-1]の前記範囲内にある、
請求項29に記載のデバイス。
【請求項31】
前記少なくとも1つのピクセルの1つまたは複数の勾配を計算するための手段と、
フィルタサポート領域または前記選択されたフィルタの係数のうちの1つに対して実施されるべき幾何学的変換を選択するための手段と
をさらに備え、前記幾何学的変換を前記選択するための手段は、前記少なくとも1つのピクセルの前記勾配の方向性に対応する前記幾何学的変換を選択するための手段を備える、
請求項29に記載のデバイス。
【請求項32】
前記複数のフィルタを前記決定するための手段は、
前記複数のフィルタの前記サブセットに対応する前記クラスと別個の少なくとも1つのクラスのために、固定フィルタが前記クラスのフィルタ係数のセットを予測するために使用されるかどうかを示すフラグの値を決定するための手段と、
固定フィルタが、前記フィルタ係数のセットを予測するために使用されることを示す前記フラグの前記値に応答して、固定フィルタのセットへのインデックス値を決定するための手段と、
前記インデックス値によって識別された前記固定フィルタのセットの固定フィルタを使用して、前記クラスの前記フィルタ係数のセットを予測するための手段と
を備える、請求項29に記載のデバイス。
【請求項33】
前記複数のフィルタを前記決定するための手段は、
前記複数のフィルタの前記サブセットに対応する前記クラスと別個の前記クラスのサブセットのいずれかのための前記フィルタ係数のセットのいずれも前記固定フィルタのいずれかから予測されないこと、
前記クラスの前記サブセットのすべてのための前記フィルタ係数のセットのすべてが前記固定フィルタのうちの少なくとも1つから予測されること、または
前記クラスの前記サブセットの前記フィルタ係数のセットのいくつかが前記固定フィルタのうちの1つまたは複数から予測されること
のうちの1つを表す値を決定するための手段をさらに備える、請求項32に記載のデバイス。
【請求項34】
前記現在ブロックを復号することより前に前記現在ブロックを符号化するための手段をさらに備える、
請求項29に記載のデバイス。
【請求項35】
命令を記憶した非一時的コンピュータ可読記憶媒体であって、前記命令は、実行されたとき、プロセッサに、
ビデオデータの現在ピクチャのブロックのクラスのための複数のフィルタを決定すること、ここにおいて、ブロックの前記クラスは、ブロックの第1のクラスのための第1の方向性を表す第1の勾配およびブロックの前記第1のクラスのための第1のアクティビティを有するブロックの前記第1のクラスと、ブロックの第2のクラスのための第2の方向性を表す第2の勾配およびブロックの前記第2のクラスのための第2のアクティビティを有するブロックの前記第2のクラスとを含み、前記第1のクラスは前記第2のクラスとは異なっており、前記プロセッサに、前記複数のフィルタを決定することを行わせる前記命令は、前記プロセッサに、
生成されるべきフィルタ係数のセットの数を決定することと、
前記数の、フィルタ係数のセットを生成することと、
前記複数のフィルタのサブセットのために、前記サブセットの前記対応するフィルタのための前記フィルタ係数のセットのうちの1つを識別するそれぞれのインデックスを決定することと
を行わせる命令を備える、と、
前記現在ピクチャの現在ブロックを復号することと、ここにおいて、前記プロセッサに前記現在ブロックを復号することを行わせる前記命令は、前記プロセッサに前記現在ブロックを予測することを行わせる命令を備え、
前記現在ブロックのための勾配および前記現在ブロックのためのアクティビティにしたがって前記第1のクラスまたは前記第2のクラスのうちの1つであるとして前記現在ブロックのためのクラスを決定することと、前記現在ブロックのための前記勾配は、前記現在ブロックのための方向性を表し、
前記現在ブロックのための前記クラスに対応する前記複数のフィルタのうちの前記フィルタの1つを、選択されたフィルタとして選択することと、
前記選択されたフィルタを使用して前記現在ブロックの少なくとも1つのピクセルをフィルタ処理することと
を行わせる、非一時的コンピュータ可読記憶媒体。
【請求項36】
前記それぞれのインデックスは、両端値を含む[0,フィルタ係数のセットの数-1]の前記範囲内にある、
請求項35に記載の非一時的コンピュータ可読記憶媒体。
【請求項37】
前記プロセッサに、
前記少なくとも1つのピクセルの1つまたは複数の勾配を計算することと、
フィルタサポート領域または前記選択されたフィルタの係数のうちの1つに対して実施されるべき幾何学的変換を選択することと
を行わせる命令をさらに備え、前記プロセッサに、前記幾何学的変換を選択することを行わせる前記命令は、前記プロセッサに、前記少なくとも1つのピクセルの前記勾配の方向性に対応する前記幾何学的変換を選択することを行わせる命令を備える、
請求項35に記載の非一時的コンピュータ可読記憶媒体。
【請求項38】
前記プロセッサに、前記複数のフィルタを決定することを行わせる前記命令は、前記プロセッサに、
前記複数のフィルタの前記サブセットに対応する前記クラスと別個の少なくとも1つのクラスのために、固定フィルタが前記クラスのフィルタ係数のセットを予測するために使用されるかどうかを示すフラグの値を決定することと、
固定フィルタが、前記フィルタ係数のセットを予測するために使用されることを示す前記フラグの前記値に応答して、固定フィルタのセットへのインデックス値を決定することと、前記インデックス値によって識別された前記固定フィルタのセットの固定フィルタを使用して、前記クラスの前記フィルタ係数のセットを予測することと
を行わせる命令を備える、請求項35に記載の非一時的コンピュータ可読記憶媒体。
【請求項39】
前記プロセッサに、前記複数のフィルタを決定することを行わせる前記命令は、前記プロセッサに、
前記複数のフィルタの前記サブセットに対応する前記クラスと別個の前記クラスのサブセットのいずれかのための前記フィルタ係数のセットのいずれも前記固定フィルタのいずれかから予測されないこと、
前記クラスの前記サブセットのすべてのための前記フィルタ係数のセットのすべてが前記固定フィルタのうちの少なくとも1つから予測されること、または
前記クラスの前記サブセットの前記フィルタ係数のセットのいくつかが前記固定フィルタのうちの1つまたは複数から予測されること
のうちの1つを表す値を決定することを行わせる命令をさらに備える、請求項38に記載の非一時的コンピュータ可読記憶媒体。
【請求項40】
前記プロセッサに、前記現在ブロックを復号することより前に、前記現在ブロックを符号化することを行わせる命令をさらに備える、
請求項35に記載の非一時的コンピュータ可読記憶媒体。
【請求項41】
前記複数のフィルタのうちの少なくとも1つは、ブロックの前記クラスのうちの2つ以上に対応する、請求項1に記載の方法。
【請求項42】
ブロックの前記クラスのうちの前記2つ以上は非連続である、請求項41に記載の方法。
【請求項43】
前記方向性は、水平、垂直、または対角のうちの1つを備える、請求項3に記載の方法。
【手続補正2】
【補正対象書類名】明細書
【補正対象項目名】0179
【補正方法】変更
【補正の内容】
【0179】
[0164]様々な例が説明された。これらおよび他の例は、以下の特許請求の範囲内に入る。
以下に、本願の出願当初の特許請求の範囲に記載された発明を付記する。
[C1]
ビデオデータの復号されたブロックをフィルタ処理する方法であって、
ビデオデータの現在ピクチャのブロックのクラスのための複数のフィルタを構築すること、ここにおいて、前記複数のフィルタを構築することは、
生成されるべきフィルタ係数のセットの数を決定することと、
前記数の、フィルタ係数のセットを生成することと、
前記複数のフィルタのサブセットのために、前記サブセットの前記対応するフィルタのための前記フィルタ係数のセットのうちの1つを識別するそれぞれのインデックスを決定することと
を備える、と、
前記現在ピクチャの現在ブロックを復号することと、
前記現在ブロックのためのクラスを決定することと、
前記現在ブロックのための前記クラスに対応する前記複数のフィルタのうちのフィルタを選択することと、
前記選択されたフィルタを使用して前記現在ブロックの少なくとも1つのピクセルをフィルタ処理することと
を備える、方法。
[C2]
前記それぞれのインデックスは、両端値を含む[0,フィルタ係数のセットの数-1]の前記範囲内にある、
C1に記載の方法。
[C3]
少なくとも1つのピクセルの1つまたは複数の勾配を計算することと、
フィルタサポート領域または前記選択されたフィルタの係数のうちの1つに対して実施されるべき幾何学的変換を選択することと
をさらに備え、前記幾何学的変換を選択することは、前記少なくとも1つのピクセルの前記勾配の向きに対応する前記幾何学的変換を選択すること備える、
C1に記載の方法。
[C4]
前記幾何学的変換は、回転、対角反転、または垂直反転のうちの1つを備える、
C3に記載の方法。
[C5]
前記フィルタサポート領域は、前記選択されたフィルタの係数がそれに適用されるべきである、前記現在ブロックの前記少なくとも1つのピクセルに対する複数の隣接ピクセルを備え、前記少なくとも1つのピクセルをフィルタ処理することは、前記選択されたフィルタの、前記係数または前記フィルタサポート領域のいずれかに対して前記幾何学的変換を実施することを備える、
C3に記載の方法。
[C6]
前記複数のフィルタを構築することは、
前記複数のフィルタの前記サブセットに対応する前記クラスと別個の少なくとも1つのクラスのために、固定フィルタが前記クラスのフィルタ係数のセットを予測するために使用されるかどうかを示すフラグの値を決定することと、
固定フィルタが、前記フィルタ係数のセットを予測するために使用されることを示す前記フラグの前記値に応答して、固定フィルタのセットへのインデックス値を決定することと、前記インデックス値によって識別された前記固定フィルタのセットの固定フィルタを使用して、前記クラスの前記フィルタ係数のセットを予測することと
を備える、C1に記載の方法。
[C7]
前記複数のフィルタを構築することは、
前記クラスの前記予測されたフィルタ係数のセットに適用されるべきオフセット値を決定することと、
前記クラスのための前記フィルタを構築するために前記クラスの前記予測されたフィルタ係数のセットに前記オフセット値を適用することと
をさらに備える、C6に記載の方法。
[C8]
前記複数のフィルタを構築することは、
前記複数のフィルタの前記サブセットに対応する前記クラスと別個の前記クラスのサブセットのいずれかのための前記フィルタ係数のセットのいずれも前記固定フィルタのいずれかから予測されないこと、
前記クラスの前記サブセットのすべてのための前記フィルタ係数のセットのすべてが前記固定フィルタのうちの少なくとも1つから予測されること、または
前記クラスの前記サブセットの前記フィルタ係数のセットのいくつかが前記固定フィルタのうちの1つまたは複数から予測されること
のうちの1つを表す値を決定することをさらに備える、C1に記載の方法。
[C9]
前記複数のクラスのいずれかのための前記フィルタ係数のセットのいずれも前記固定フィルタのいずれかから予測されないことを前記値が表すとき、前記1つまたは複数の固定フィルタのうちの固定フィルタを表すインデックス値の決定を防止することをさらに備える、
C8に記載の方法。
[C10]
前記複数のクラスのすべてのための前記フィルタ係数のセットのすべてが前記固定フィルタのうちの少なくとも1つから予測されることを前記値が表すとき、前記対応するクラスのための前記フィルタ係数のセットがそれから予測される前記固定フィルタのうちの前記1つを表す前記複数のクラスの各々のためのインデックス値を決定することをさらに備える、
C8に記載の方法。
[C11]
前記複数のクラスの前記フィルタ係数のセットのうちのいくつかが前記固定フィルタのうちの1つまたは複数から予測されることを前記値が表すとき、
前記複数のクラスのどれが前記固定フィルタのうちの1つまたは複数から予測されるフィルタ係数のセットに対応するかを決定することと、
前記固定フィルタのうちの1つまたは複数から予測される前記フィルタ係数のセットの各々のために、前記対応するフィルタ係数のセットがそれから予測される前記1つまたは複数の固定フィルタのうちの前記固定フィルタを表すインデックス値を決定することと をさらに備える、C8に記載の方法。
[C12]
前記現在ブロックを復号することより前に前記現在ブロックを符号化することをさらに備える、
C1に記載の方法。
[C13]
前記方法は、ワイヤレス通信デバイス上で実行可能であり、前記デバイスは、
前記ビデオデータを記憶するように構成されたメモリと、
前記メモリに記憶された前記ビデオデータを処理するための命令を実行するように構成されたプロセッサと、
前記ビデオデータを受信し、前記メモリに前記ビデオデータを記憶するように構成された受信機と
を備える、C1に記載の方法。
[C14]
前記ワイヤレス通信デバイスは、セルラー電話であり、前記ビデオデータは、受信機によって受信され、セルラー通信規格に従って変調される、
C13に記載の方法。
[C15]
ビデオデータの復号されたブロックをフィルタ処理するデバイスであって、
前記ビデオデータを記憶するように構成されたメモリと、
回路において実装される1つまたは複数の処理ユニットと
を備え、前記1つまたは複数のプロセッサは、
前記ビデオデータの現在ピクチャのブロックのクラスのための複数のフィルタを構築すること、ここにおいて、前記複数のフィルタを構築することは、前記1つまたは複数の処理ユニットが、
生成されるべきフィルタ係数のセットの数を決定することと、
前記数の、フィルタ係数のセットを生成することと、
前記複数のフィルタのサブセットのために、前記サブセットの前記対応するフィルタのための前記フィルタ係数のセットのうちの1つを識別するそれぞれのインデックスを決定することと
を行うように構成される、と、
前記現在ピクチャの現在ブロックを復号することと、
前記現在ブロックのためのクラスを決定することと、
前記現在ブロックのための前記クラスに対応する前記複数のフィルタのうちのフィルタを選択することと、
前記選択されたフィルタを使用して前記現在ブロックの少なくとも1つのピクセルをフィルタ処理することと
を行うように構成される、デバイス。
[C16]
前記それぞれのインデックスは、両端値を含む[0,フィルタ係数のセットの数-1]の前記範囲内にある、
C15に記載のデバイス。
[C17]
前記1つまたは複数の処理ユニットは、
前記少なくとも1つのピクセルの1つまたは複数の勾配を計算することと、
フィルタサポート領域または前記選択されたフィルタの係数のうちの1つに対して実施されるべき幾何学的変換を選択することと
を行うようにさらに構成され、前記幾何学的変換を選択するために、前記処理ユニットは、前記少なくとも1つのピクセルの前記勾配の向きに対応する前記幾何学的変換を選択することを行うように構成される、
C15に記載のデバイス。
[C18]
前記幾何学的変換は、回転、対角反転、または垂直反転のうちの1つを備える、
C17に記載のデバイス。
[C19]
前記フィルタサポート領域は、前記選択されたフィルタの係数がそれに適用されるべきである、前記現在ブロックの前記少なくとも1つのピクセルに対する複数の隣接ピクセルを備え、前記1つまたは複数の処理ユニットは、前記選択されたフィルタの、前記係数または前記フィルタサポート領域のいずれかに対して前記幾何学的変換を実施する要に構成される、
C17に記載のデバイス。
[C20]
前記複数のフィルタを構築するために、前記1つまたは複数の処理ユニットは、
前記複数のフィルタの前記サブセットに対応する前記クラスと別個の少なくとも1つのクラスのために、固定フィルタが前記クラスのフィルタ係数のセットを予測するために使用されるかどうかを示すフラグの値を決定することと、
固定フィルタが、前記フィルタ係数のセットを予測するために使用されることを示す前記フラグの前記値に応答して、固定フィルタのセットへのインデックス値を決定することと、前記インデックス値によって識別された前記固定フィルタのセットの固定フィルタを使用して、前記クラスの前記フィルタ係数のセットを予測することと
を行うように構成される、C15に記載のデバイス。
[C21]
前記複数のフィルタを構築するために、前記1つまたは複数の処理ユニットは、
前記クラスの前記予測されたフィルタ係数のセットに適用されるべきオフセット値を決定することと、
前記クラスのための前記フィルタを構築するために前記クラスの前記予測されたフィルタ係数のセットに前記オフセット値を適用することと
を行うように構成される、C20に記載のデバイス。
[C22]
前記複数のフィルタを構築するために、前記1つまたは複数の処理ユニットは、
前記複数のフィルタの前記サブセットに対応する前記クラスと別個の前記クラスのサブセットのいずれかのための前記フィルタ係数のセットのいずれも前記固定フィルタのいずれかから予測されないこと、
前記クラスの前記サブセットのすべてのための前記フィルタ係数のセットのすべてが前記固定フィルタのうちの少なくとも1つから予測されること、または
前記クラスの前記サブセットの前記フィルタ係数のセットのいくつかが前記固定フィルタのうちの1つまたは複数から予測されること
のうちの1つを表す値を決定するようにさらに構成される、C15に記載のデバイス。
[C23]
前記1つまたは複数の処理ユニットは、前記複数のクラスのいずれかのための前記フィルタ係数のセットのいずれも前記固定フィルタのいずれかから予測されないことを前記値が表すとき、前記1つまたは複数の固定フィルタのうちの固定フィルタを表すインデックス値の決定を防止することを行うようにさらに構成される、
C22に記載のデバイス。
[C24]
前記1つまたは複数の処理ユニットは、前記複数のクラスのすべてのための前記フィルタ係数のセットのすべてが前記固定フィルタのうちの少なくとも1つから予測されることを前記値が表すとき、前記対応するクラスのための前記フィルタ係数のセットがそれから予測される前記固定フィルタのうちの前記1つを表す前記複数のクラスの各々のためのインデックス値を決定することを行うようにさらに構成される、
C22に記載のデバイス。
[C25]
前記1つまたは複数の処理ユニットは、前記複数のクラスの前記フィルタ係数のセットのうちのいくつかが前記固定フィルタのうちの1つまたは複数から予測されることを前記値が表すとき、
前記複数のクラスのどれが前記固定フィルタのうちの1つまたは複数から予測されるフィルタ係数のセットに対応するかを決定することと、
前記固定フィルタのうちの1つまたは複数から予測される前記フィルタ係数のセットの各々のために、前記対応するフィルタ係数のセットがそれから予測される前記1つまたは複数の固定フィルタのうちの前記固定フィルタを表すインデックス値を決定することと を行うようにさらに構成される、C22に記載のデバイス。
[C26]
前記1つまたは複数の処理ユニットは、前記現在ブロックを復号することより前に、前記現在ブロックを符号化するようにさらに構成される、
C15に記載のデバイス。
[C27]
前記デバイスは、ワイヤレス通信デバイスであり、
前記現在ピクチャを含むビデオデータを受信するように構成される受信機をさらに備える、
C15に記載のデバイス。
[C28]
前記ワイヤレス通信デバイスは、セルラー電話であり、前記ビデオデータは、前記受信機によって受信され、セルラー通信規格に従って変調される、
C27に記載のデバイス。
[C29]
ビデオデータの復号されたブロックをフィルタ処理するデバイスであって、
ビデオデータの現在ピクチャのブロックのクラスのための複数のフィルタを構築するための手段、ここにおいて、前記複数のフィルタを前記構築するための手段は、
生成されるべきフィルタ係数のセットの数を決定するための手段と、
フィルタ係数のセットを生成するための手段と、
前記複数のフィルタのサブセットのために、前記サブセットの前記対応するフィルタのための前記フィルタ係数のセットのうちの1つを識別するそれぞれのインデックスを決定するための手段と
を備える、と、
前記現在ピクチャの現在ブロックを復号するための手段と、
前記現在ブロックのためのクラスを決定するための手段と、
前記現在ブロックのための前記クラスに対応する前記複数のフィルタのうちのフィルタを選択するための手段と、
前記選択されたフィルタを使用して前記現在ブロックの少なくとも1つのピクセルをフィルタ処理するための手段と
を備える、デバイス。
[C30]
前記それぞれのインデックスは、両端値を含む[0,フィルタ係数のセットの数-1]の前記範囲内にある、
C29に記載のデバイス。
[C31]
前記少なくとも1つのピクセルの1つまたは複数の勾配を計算するための手段と、
フィルタサポート領域または前記選択されたフィルタの係数のうちの1つに対して実施されるべき幾何学的変換を選択するための手段と
をさらに備え、前記幾何学的変換を前記選択するための手段は、前記少なくとも1つのピクセルの前記勾配の向きに対応する前記幾何学的変換を選択するための手段を備える、 C29に記載のデバイス。
[C32]
前記複数のフィルタを前記構築するための手段は、
前記複数のフィルタの前記サブセットに対応する前記クラスと別個の少なくとも1つのクラスのために、固定フィルタが前記クラスのフィルタ係数のセットを予測するために使用されるかどうかを示すフラグの値を決定するための手段と、
固定フィルタが、前記フィルタ係数のセットを予測するために使用されることを示す前記フラグの前記値に応答して、固定フィルタのセットへのインデックス値を決定するための手段と、
前記インデックス値によって識別された前記固定フィルタのセットの固定フィルタを使用して、前記クラスの前記フィルタ係数のセットを予測するための手段と
を備える、C29に記載のデバイス。
[C33]
前記複数のフィルタを前記構築するための手段は、
前記複数のフィルタの前記サブセットに対応する前記クラスと別個の前記クラスのサブセットのいずれかのための前記フィルタ係数のセットのいずれも前記固定フィルタのいずれかから予測されないこと、
前記クラスの前記サブセットのすべてのための前記フィルタ係数のセットのすべてが前記固定フィルタのうちの少なくとも1つから予測されること、または
前記クラスの前記サブセットの前記フィルタ係数のセットのいくつかが前記固定フィルタのうちの1つまたは複数から予測されること
のうちの1つを表す値を決定するための手段をさらに備える、C29に記載のデバイス。
[C34]
前記現在ブロックを復号することより前に前記現在ブロックを符号化することをさらに備える、
C29に記載のデバイス。
[C35]
命令を記憶したコンピュータ可読記憶媒体であって、前記命令は、実行されたとき、プロセッサに、
ビデオデータの現在ピクチャのブロックのクラスのための複数のフィルタを構築すること、ここにおいて、前記プロセッサに、前記複数のフィルタを構築することを行わせる前記命令は、前記プロセッサに、
生成されるべきフィルタ係数のセットの数を決定することと、
前記数の、フィルタ係数のセットを生成することと、
前記複数のフィルタのサブセットのために、前記サブセットの前記対応するフィルタのための前記フィルタ係数のセットのうちの1つを識別するそれぞれのインデックスを決定することと
を行わせる命令を備える、と、
前記現在ピクチャの現在ブロックを復号することと、
前記現在ブロックのためのクラスを決定することと、
前記現在ブロックのための前記クラスに対応する前記複数のフィルタのうちのフィルタを選択することと、
前記選択されたフィルタを使用して前記現在ブロックの少なくとも1つのピクセルをフィルタ処理することと
を行わせる命令を備える、コンピュータ可読記憶媒体。
[C36]
前記それぞれのインデックスは、両端値を含む[0,フィルタ係数のセットの数-1]の前記範囲内にある、
C35に記載のコンピュータ可読記憶媒体。
[C37]
プロセッサに、
少なくとも1つのピクセルの1つまたは複数の勾配を計算することと、
フィルタサポート領域または前記選択されたフィルタの係数のうちの1つに対して実施されるべき幾何学的変換を選択することと
を行わせる命令をさらに備え、前記プロセッサに、前記幾何学的変換を選択することを行わせる前記命令は、前記プロセッサに、前記少なくとも1つのピクセルの前記勾配の向きに対応する前記幾何学的変換を選択することを行わせる命令を備える、
C35に記載のコンピュータ可読記憶媒体。
[C38]
前記プロセッサに、前記複数のフィルタを構築することを行わせる前記命令は、前記プロセッサに、
前記複数のフィルタの前記サブセットに対応する前記クラスと別個の少なくとも1つのクラスのために、固定フィルタが前記クラスのフィルタ係数のセットを予測するために使用されるかどうかを示すフラグの値を決定することと、
固定フィルタが、前記フィルタ係数のセットを予測するために使用されることを示す前記フラグの前記値に応答して、固定フィルタのセットへのインデックス値を決定することと、前記インデックス値によって識別された前記固定フィルタのセットの固定フィルタを使用して、前記クラスの前記フィルタ係数のセットを予測することと
を行わせる命令を備える、C35に記載のコンピュータ可読記憶媒体。
[C39]
前記プロセッサに、前記複数のフィルタを構築することを行わせる前記命令は、前記プロセッサに、
前記複数のフィルタの前記サブセットに対応する前記クラスと別個の前記クラスのサブセットのいずれかのための前記フィルタ係数のセットのいずれも前記固定フィルタのいずれかから予測されないこと、
前記クラスの前記サブセットのすべてのための前記フィルタ係数のセットのすべてが前記固定フィルタのうちの少なくとも1つから予測されること、または
前記クラスの前記サブセットの前記フィルタ係数のセットのいくつかが前記固定フィルタのうちの1つまたは複数から予測されること
のうちの1つを表す値を決定することを行わせる命令をさらに備える、C35に記載のコンピュータ可読記憶媒体。
[C40]
前記プロセッサに、前記現在ブロックを復号することより前に、前記現在ブロックを符号化することを行わせる命令をさらに備える、
C35に記載のコンピュータ可読記憶媒体。
【外国語明細書】