【文献】
A.Fuldseth,Replacing slices with tiles for high level parallelism,Joint Collaborative Team on Video Coding(JCT-VC)of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 4th Meeting:Daegu,KR,20-28 January,2011 ,米国,JCT-VC,2011年 1月21日,JCTVC-D227,P.1-P.5,URL,http://phenix.it-sudparis.eu/jct/index.php
【文献】
Ye-Kui Wang,Ying Chen,In Suk Chong,Muhammed Coban,Marta Karczewicz,Dependency and loop filtering control over tile boundaries,Joint Collaborative Team on Video Coding(JCT-VC)of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 7th Meeting:Geneva,CH,21-30 November,2011,米国,JCTVC,2011年11月 9日,JCTVC-G317,P.1-P.7,URL,http://phenix.it-sudparis.eu/jct/index.php
(58)【調査した分野】(Int.Cl.,DB名)
前記1つまたは複数のループフィルタリング演算が、デブロッキングフィルタリング演算およびサンプル適応オフセットフィルタリング演算のうちの1つまたは複数を備える、請求項1または2に記載の方法。
前記第2のシンタックス要素は、ループフィルタリング演算が、水平方向において前記ピクチャ内のタイル境界を越えて許可されるかどうかを表す、請求項1または2に記載の方法。
前記第2のシンタックス要素は、ループフィルタリング演算が、垂直方向において前記ピクチャ内のタイル境界を越えて許可されるかどうかを表す、請求項1または2に記載の方法。
前記第2のシンタックス要素は、ループフィルタリング演算が、前記ピクチャ内の水平タイル境界を越えて許可されるかどうかを表し、前記方法は、ループフィルタリング演算が、前記ピクチャ内の垂直タイル境界を越えて許可されるかどうかを表す第3のシンタックス要素を復号すること
をさらに備える、請求項1に記載の方法。
前記第2のシンタックス要素に関する前記第1の値が、前記ピクチャのうちの1つのスライスに対応し、前記ループフィルタリング演算が、前記スライスが接するタイル境界を越えて許可されるかどうかを表す、請求項1または2に記載の方法。
前記方法がビデオデコーダによって実行され、前記第1のシンタックス要素に関する前記第1の値を復号することが、前記第1のシンタックス要素を受信することと、前記第1の値を決定することとを備える、請求項1に記載の方法。
前記方法がビデオエンコーダによって実行され、前記第1のシンタックス要素の前記第1の値を符号化することが、コード化されたビデオデータのビットストリーム中に含めるために前記第1の値をもつ前記第1のシンタックス要素を生成することを備える、請求項2に記載の方法。
前記1つまたは複数のループフィルタリング演算が、デブロッキングフィルタリング演算およびサンプル適応オフセットフィルタリング演算のうちの1つまたは複数を備える、請求項17または18に記載のデバイス。
前記1つまたは複数のプロセッサは、前記第1のシンタックス要素に関する第3の値を、複数のタイルに区分されたビデオデータの第3のピクチャについて復号するようにさらに構成され、ここにおいて、前記第1のシンタックス要素に関する前記第3の値は、ループフィルタリング演算が前記第3のピクチャ内の1つまたは複数のタイル境界を越えて許可されることを示す、請求項17に記載のデバイス。
前記第2のシンタックス要素に関する前記第1の値は、前記第1のシンタックス要素に関する前記第1の値に応答して、前記ループフィルタリング演算が許可される水平境界を表す値を備える、請求項17または18に記載のデバイス。
前記第2のシンタックス要素に関する前記第1の値は、前記第1のシンタックス要素に関する前記第1の値に応答して、前記ループフィルタリング演算が許可されない水平境界を表す値を備える、請求項17または18に記載のデバイス。
前記第2のシンタックス要素に関する前記第1の値は、前記第1のシンタックス要素に関する前記第1の値に応答して、前記ループフィルタリング演算が許可される垂直境界を表す値を備える、請求項17または18に記載のデバイス。
前記第2のシンタックス要素に関する前記第1の値は、前記第1のシンタックス要素に関する前記第1の値に応答して、前記ループフィルタリング演算が許可されない垂直境界を表す値を備える、請求項17または18に記載のデバイス。
前記第2のシンタックス要素は、前記第1のシンタックス要素に関する前記第1の値に応答して、ループフィルタリング演算が、水平方向において前記ピクチャ内のタイル境界を越えて許可されるかどうかを表す、請求項17または18に記載のデバイス。
前記1つまたは複数のプロセッサは、前記第1のシンタックス要素に関する前記第1の値に応答して、ループフィルタリング演算が、垂直方向において前記ピクチャ内のタイル境界を越えて許可されるかどうかを表す第2のシンタックス要素を復号するようにさらに構成された、請求項17または18に記載のデバイス。
前記第2のシンタックス要素は、ループフィルタリング演算が、前記ピクチャ内の水平タイル境界を越えて許可されるかどうかを表し、前記1つまたは複数のプロセッサは、ループフィルタリング演算が、前記ピクチャ内の垂直タイル境界を越えて許可されるかどうかを表す第3のシンタックス要素を復号することを行うようにさらに構成された、請求項17に記載のデバイス。
前記第2のシンタックス要素の前記第1の値が、前記ピクチャのうちの1つのスライスに対応し、前記スライスが接するタイル境界を越える前記ループフィルタリング演算が許可されるかどうかを表す、請求項17または18に記載のデバイス。
前記1つまたは複数のプロセッサは、前記第1のシンタックス要素を受信することと、前記第1の値を決定することとによって前記第1のシンタックス要素に関する前記第1の値を復号するようにさらに構成され、前記デバイスは、前記ピクチャを表示するように構成されたディスプレイをさらに備える、請求項17に記載のデバイス。
前記1つまたは複数のプロセッサは、コード化されたビデオデータのビットストリーム中に含めるために前記第1の値をもつ前記第1のシンタックス要素を生成することによって前記第1のシンタックス要素に関する前記第1の値を符号化するようにさらに構成され、前記デバイスは、前記ピクチャを生成するように構成されたカメラをさらに備える、請求項17に記載のデバイス。
前記1つまたは複数のループフィルタリング演算が、デブロッキングフィルタリング演算、適応ループフィルタリング演算、およびサンプル適応オフセットフィルタリング演算のうちの1つまたは複数を備える、請求項33に記載のデバイス。
前記第2のシンタックス要素に関する前記第1の値は、前記第1のシンタックス要素に関する前記第1の値に応答して、前記ループフィルタリング演算が許可される水平境界を表す値を備える、請求項33に記載のデバイス。
前記第2のシンタックス要素に関する前記第1の値は、前記第1のシンタックス要素に関する前記第1の値に応答して、前記ループフィルタリング演算が許可されない水平境界を表す値を備える、請求項33に記載のデバイス。
前記第2のシンタックス要素に関する前記第1の値は、前記第1のシンタックス要素に関する前記第1の値に応答して、前記ループフィルタリング演算が許可される垂直境界を表す値を備える、請求項33に記載のデバイス。
前記第2のシンタックス要素に関する前記第1の値は、前記第1のシンタックス要素に関する前記第1の値に応答して、前記ループフィルタリング演算が許可されない垂直境界を表す値を備える、請求項33に記載のデバイス。
前記第2のシンタックス要素は、前記第1のシンタックス要素に関する前記第1の値に応答して、ループフィルタリング演算が、水平方向において前記ピクチャ内のタイル境界を越えて許可されるかどうかを表す、請求項33に記載のデバイス。
前記第2のシンタックス要素は、前記第1のシンタックス要素に関する前記第1の値に応答して、ループフィルタリング演算が、垂直方向において前記ピクチャ内のタイル境界を越えて許可されるかどうかを表す、請求項33に記載のデバイス。
前記第2のシンタックス要素に関する前記第1の値は、前記第1のシンタックス要素に関する前記第1の値に応答して、ループフィルタリング演算が、前記ピクチャ内の水平タイル境界を越えて許可されるかどうかを表す値を備え、前記デバイスは、
前記第1のシンタックス要素に関する前記第1の値に応答して、ループフィルタリング演算が、前記ピクチャ内の垂直タイル境界を越えて許可されるかどうかを表す第3のシンタックス要素を復号するための手段
をさらに備える、請求項33に記載のデバイス。
前記第2のシンタックス要素に関する前記第1の値が、前記ピクチャのうちの1つのスライスに対応し、前記ループフィルタリング演算が前記スライスが接するタイル境界を越える許可されるかどうかを表す、請求項33に記載のデバイス。
前記デバイスがビデオデコーダを備え、前記第1のシンタックス要素に関する前記第1の値を復号するための前記手段が、前記第1のシンタックス要素を受信するための手段と、前記第1の値を決定するための手段とを備える、請求項33に記載のデバイス。
前記デバイスがビデオエンコーダを備え、前記第1のシンタックス要素に関する前記第1の値を復号するための前記手段が、コード化されたビデオデータのビットストリーム中に含めるために前記第1の値をもつ前記第1のシンタックス要素を生成するための手段を備える、請求項33に記載のデバイス。
【発明を実施するための形態】
【0015】
概して、本開示では、ビデオデータをコーディングするための技法について説明し、より詳細には、本開示では、ビデオデータのピクチャ(picture)内の複数のタイルの境界におけるループフィルタリング演算(loop filtering operations)を制御することを含む、ビデオコーディングのためのループフィルタリング演算に関する技法について説明する。タイル境界(tile boundaries)におけるループフィルタリング演算を制御することは、たとえば、タイル境界を越えるループフィルタリングがコーディング品質を改善するとき、それが可能にされることを許可するが、スライス(slice)の並列復号(parallel decoding)を可能にすることが望ましいことがある事例においてなど、望ましいときに、タイル境界を越える(across)ループフィルタリングが不能にされることをも許可し得る。本開示で説明する技法を使用して制御され得るループフィルタリング演算の例としては、デブロッキングフィルタリング演算(deblocking filtering operations)、適応ループフィルタリング(ALF:adaptive loop filtering)演算、およびサンプル適応オフセット(SAO:sample adaptive offset)フィルタリング演算(sample adaptive offset (SAO) filtering operations)がある。ループフィルタリングのこれらおよび他の態様について以下でより詳細に説明する。
【0016】
従来、ビデオコーダは、ビデオデータのピクチャを、ピクチャにわたってラスタ走査順序(たとえば、右から左および上から下)になるスライスに区分した。いくつかのビデオコーダは、現在、水平境界(horizontal boundary)と垂直境界(vertical boundary)とを使用して、ビデオデータのピクチャを複数のタイルに区分する。複数のタイルに区分されたとき、スライスは、タイルのエッジ間でラスタ走査順序になることが可能である。たとえば、ピクチャを6つのタイルに分割する、(ピクチャ自体の外側エッジを含まない)2つの水平タイル境界(horizontal tile boundaries)と1つの垂直タイル境界(vertical tile boundaries)とがあり得る。スライスは完全にタイル内に存在し得、各タイルは複数のスライスを含み得る。
【0017】
多くの事例では、ブロックのための様々なデータは、隣接する、前にコーディングされたブロックに基づいて予測され得る。たとえば、イントラ予測コーディングモードでは、現在ブロックのピクセル値は、隣接する、前にコーディングされたブロックを使用して予測される。同様に、動き情報予測、コーディングモード予測、およびエントロピーコーディングコンテキストは、隣接する、前にコーディングされたブロックからの情報を利用し得る。場合によっては、これらの隣接する、前にコーディングされたブロックは、タイル境界、たとえば、水平タイル境界または垂直タイル境界を越えて位置し得る。タイル境界を越えている別のブロックからのデータを利用するブロックを含むタイルは、タイルのブロックをコーディングすることが、異なるタイル中の異なるブロックに関係する情報に依存するので、「依存」していると言われる。
【0018】
場合によっては、タイル境界横断(cross-tile-boundary)予測を制限し、それによって、依存とは対照的に、タイルを独立にすることが有利であり得る。したがって、新生の高効率ビデオコーディング(HEVC)規格では、タイル境界横断予測が許可されるかどうかを表す値がシグナリングされる。特に、この値はシンタックス要素(syntax element)「tile_boundary_independence_idc」と呼ばれる。しかしながら、HEVC規格のいくつかのバージョンでは、この値は、イントラ予測情報、動き情報、コーディングモード情報など、いくつかの情報の使用にのみ関係し、ループフィルタリングに関係する情報には関係しない。HEVCのいくつかの実装形態では、ループフィルタリングは、「tile_boundary_independence_idc」の値にかかわらずタイル境界においてブロックエッジに適用される。これは、ループフィルタリング演算が実行されるとき、さもなければ独立してコーディングされるタイルが、別のタイルに依存するかまたは情報を与えることにつながり得る。これは、いくつかの事例では、複数のタイルの並列処理を妨げるなど、いくつかの欠点をもたらし得る。
【0019】
HEVCに含めるために提案されたいくつかのタイル方式では、ピクセル値予測を含むピクチャ内予測、動き予測、コーディングモード予測、およびエントロピーコーディングコンテキスト予測は、フラグ「tile_boundary_independence_idc」によってすべてのタイル境界を越えて制御され得るが、タイル境界を越えるループフィルタリングは制御されない。しかしながら、いくつかのシナリオでは、タイル境界を越えるループフィルタリングも実行されないことを意味する、異なる複数のタイルによってカバーされる1つまたは複数の領域を完全に独立してコーディングすることが望ましいことがある。2つのそのようなシナリオについて以下で説明する。
【0020】
第1のシナリオでは、ピクチャのシーケンスが9つの垂直タイル境界によって8つのタイルに均等に区分され、左端のタイルはタイル0であり、左端から2番目のタイルはタイル1であり、以下同様である。これらのピクチャの各々は少なくとも1つの予測(P)スライスを含んでおり、これは、コード化されたビットストリーム全体の中に復号順序においてピクチャのシーケンスの前にピクチャがあることを意味する。この例では、復号順序は出力順序と同じであると仮定する。ピクチャのシーケンス中のピクチャ0(すなわち、第1のピクチャ)では、タイル0中のすべてのLCUはイントラコーディングされ、他のタイル中のすべてのLCUはインターコーディングされる。ピクチャのシーケンス中のピクチャ1では、タイル1中のすべてのLCUはイントラコーディングされ、他のタイル中のすべてのLCUはインターコーディングされ、以下同様である。言い換えれば、ピクチャのシーケンス中のピクチャNでは、両端値を含む、0からピクチャのシーケンス中のピクチャの数−1までの範囲内のNの値について、タイルN/8(ここで「/」はモジュラ除算を示す)中のすべてのLCUはイントラコーディングされ、他のタイル中のすべてのLCUはインターコーディングされる。したがって、N/8が0に等しいインデックス値Nをもつ各ピクチャは、復号がそのピクチャから開始する場合、完全には正しく復号されない可能性がある初めの7つのピクチャを除いて、その後のすべてのピクチャが正しく復号され得るという点で、ランダムアクセスポイントとして使用され得る。
【0021】
上記のシナリオでは、ピクチャ2(および、N/8が2に等しいインデックス値Nをもつピクチャ)において、タイル2とタイル3との間のタイル境界、すなわち、リフレッシュエリアとも呼ばれる、境界の左側のエリアと、未リフレッシュエリアとも呼ばれる、境界の右側のエリアとの間の境界を越えるピクチャ内予測ならびにループフィルタリングを許可しないことが理想的である。概して、ピクチャNにおいて、タイルN/8とタイルN/8+1との間のタイル境界を越えるピクチャ内予測ならびにループフィルタリングを許可しないこと、および他のタイル境界を越えるピクチャ内予測ならびにループフィルタリングを許可することが理想的である。このようにして、クリーンで効率的な漸進的復号リフレッシュまたは漸進的ランダムアクセス機能が与えられ得る。
【0022】
第2のシナリオでは、ピクチャのシーケンス中の各ピクチャは2つ以上のタイルに区分され、複数のタイルのサブセットはすべてのピクチャ中で同じ矩形領域(rectangular region)をカバーし、すべてのピクチャのその領域は、同じピクチャおよび他のピクチャからの他の領域から独立して復号され得る。そのような領域は、独立して復号可能なサブピクチャ(sub-picture)とも呼ばれ、それは、復号能力およびネットワーク帯域幅などの制限ならびにユーザ選好により、いくつかのクライアントによって望まれる唯一の領域であり得る。そのようなシナリオでは、独立して復号可能なサブピクチャの境界でもあるタイル境界を越えるピクチャ内予測ならびにループフィルタリングを許可しないことが理想的である。このようにして、クリーンで効率的な関心領域(ROI)コーディングが行われ得る。
【0023】
本開示は、タイル境界が予測演算に関して独立と見なされるべきであるかどうかに加えて、タイル境界横断ループフィルタリング演算(cross-tile-boundary loop filtering operations)が許可されるかどうかをシグナリングするための技法を提供する。したがって、本開示は、タイル境界横断ループフィルタリングを制御するための、本開示では「tile_boundary_loop_filtering_idc」と呼ぶ新しいシンタックス要素を導入する。ループフィルタリング演算は、概して、デブロッキングフィルタリング、ALF、およびSAOのうちのいずれかを含む。概して、デブロッキングフィルタリングは、ブロッキネスアーティファクトを低減するためにブロックのエッジにおいて選択的に適用され、ALFはピクセル分類に基づいて適用され、SAOは直流(DC)値を変更するために使用される。
【0024】
本開示の技法によれば、たとえば、1つまたは複数の特定の境界について、あるいはフレーム内またはシーケンス内のすべてのタイルについて、タイル境界を越えるループフィルタリング演算が許可されるかどうかを示す値がシグナリングされ得る。そのような値は、シーケンスパラメータセット(SPS)またはピクチャパラメータセット(PPS)中でシグナリングされ得る。SPSはピクチャのシーケンスに適用され、PPSは個々のピクチャに適用される。タイル境界横断ループフィルタリングが許可されない事例では、タイル境界を越える値を利用しない他のタイプのループフィルタリングが使用され得る。
【0025】
いくつかの例では、タイル境界横断ループフィルタリング演算のより細かい制御が、追加のシグナリング値を使用することによって達成され得る。たとえば、第1の値が、タイル境界横断ループフィルタリング演算が許可されることを示すとき、追加の値が、タイル境界横断ループフィルタリング演算が水平タイル境界および/または垂直タイル境界について許可される(または許可されない)かどうかを具体的にシグナリングし得る。別の例として、第1の値が、タイル境界横断ループフィルタリング演算が許可されることを示すとき、追加の値が、ループフィルタリング演算がどのタイル境界について許可されるか(または許可されないか)を具体的にシグナリングし得る。たとえば、特定のタイル境界は、タイルインデックスのペアを使用して識別され得る。追加または代替として、いくつかの例では、タイル境界横断ループフィルタリングが、スライスが接するタイル境界について許可される(または許可されない)かどうかを示す値がスライスヘッダ中でシグナリングされ得る。
【0026】
以下の例示的な説明のうちのいくつかで明らかになるように、タイル境界横断ループフィルタリング、およびタイル境界を越えるループフィルタリングを実行することは、概して、異なる複数のタイル中にある少なくとも2つの異なるピクセルまたは2つの異なるブロックに関連する情報を利用するループフィルタリング演算を指す。タイル境界横断ループフィルタリングが不能にされる(たとえば、許可されない)とき、ただ1つのタイルのピクセルまたはブロックからの情報を利用するループフィルタリング演算は実行され得るが、2つ以上のタイルのピクセルまたはブロックからの情報を利用するループフィルタリング演算は不能にされないことがある。
【0027】
図1は、本開示の例による、タイル境界を越えるループフィルタリング演算を許可するようにおよび許可しないように構成され得る例示的なビデオ符号化および復号システム10を示すブロック図である。
図1に示すように、システム10は、通信チャネル16を介して符号化ビデオを宛先デバイス14に送信するソースデバイス12を含む。符号化ビデオデータはまた、記憶媒体34またはファイルサーバ36に記憶され得、必要に応じて宛先デバイス14によってアクセスされ得る。記憶媒体またはファイルサーバに記憶されたとき、ビデオエンコーダ20は、コード化されたビデオデータを記憶媒体に記憶するための、ネットワークインターフェース、コンパクトディスク(CD)、Blu−ray(登録商標)またはデジタルビデオディスク(DVD)バーナーまたはスタンピングファシリティデバイス、あるいは他のデバイスなど、別のデバイスにコード化されたビデオデータを与え得る。同様に、ネットワークインターフェース、CDまたはDVDリーダーなど、ビデオデコーダ30とは別個のデバイスが、記憶媒体からコード化されたビデオデータを取り出し、取り出されたデータをビデオデコーダ30に与え得る。
【0028】
ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆるスマートフォンなどの電話ハンドセット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソールなどを含む、多種多様なデバイスのいずれかを備え得る。多くの場合、そのようなデバイスはワイヤレス通信が可能であり得る。したがって、通信チャネル16は、符号化ビデオデータの送信に好適なワイヤレスチャネル、ワイヤードチャネル、またはワイヤレスチャネルとワイヤードチャネルとの組合せを備え得る。同様に、ファイルサーバ36は、インターネット接続を含む任意の標準データ接続を介して宛先デバイス14によってアクセスされ得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適である、ワイヤレスチャネル(たとえば、Wi−Fi(登録商標)接続)、ワイヤード接続(たとえば、DSL、ケーブルモデムなど)、または両方の組合せを含み得る。
【0029】
本開示の例による、タイル境界を越えるループフィルタリングを制御するための技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、たとえばインターネットを介したストリーミングビデオ送信、データ記憶媒体に記憶するためのデジタルビデオの符号化、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスト、および/またはビデオテレフォニーなどの適用例をサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
【0030】
図1の例では、ソースデバイス12は、ビデオソース18と、ビデオエンコーダ20と、変調器/復調器22と、送信機24とを含む。ソースデバイス12において、ビデオソース18は、ビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオを含んでいるビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェース、および/またはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステムなどのソース、あるいはそのようなソースの組合せを含み得る。一例として、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、いわゆるカメラフォンまたはビデオフォンを形成し得る。ただし、本開示で説明する技法は、概してビデオコーディングに適用可能であり得、ワイヤレスおよび/またはワイヤード適用例、あるいは符号化ビデオデータがローカルディスクに記憶された適用例に適用され得る。
【0031】
キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成されたビデオは、ビデオエンコーダ20によって符号化され得る。符号化されたビデオ情報は、ワイヤレス通信プロトコルなどの通信規格に従ってモデム22によって変調され、送信機24を介して宛先デバイス14に送信され得る。モデム22は、信号変調のために設計された様々なミキサ、フィルタ、増幅器または他の構成要素を含み得る。送信機24は、増幅器、フィルタ、および1つまたは複数のアンテナを含む、データを送信するために設計された回路を含み得る。
【0032】
ビデオエンコーダ20によって符号化された、キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成されたビデオはまた、後で消費するために記憶媒体34またはファイルサーバ36に記憶され得る。記憶媒体34は、Blu−rayディスク、DVD、CD−ROM、フラッシュメモリ、または符号化ビデオを記憶するための任意の他の好適なデジタル記憶媒体を含み得る。記憶媒体34に記憶された符号化ビデオは、次いで、復号および再生のために宛先デバイス14によってアクセスされ得る。
【0033】
ファイルサーバ36は、符号化ビデオを記憶することと、その符号化ビデオを宛先デバイス14に送信することとが可能な任意のタイプのサーバであり得る。例示的なファイルサーバは、(たとえば、ウェブサイトのための)ウェブサーバ、FTPサーバ、ネットワーク接続ストレージ(NAS)デバイス、ローカルディスクドライブ、または符号化ビデオデータを記憶することと、符号化ビデオデータを宛先デバイスに送信することとが可能な他のタイプのデバイスを含む。ファイルサーバ36からの符号化ビデオデータの送信は、ストリーミング送信、ダウンロード送信、または両方の組合せであり得る。ファイルサーバ36は、インターネット接続を含む任意の標準データ接続を介して宛先デバイス14によってアクセスされ得る。これは、ファイルサーバに記憶された符号化ビデオデータにアクセスするのに好適である、ワイヤレスチャネル(たとえば、Wi−Fi接続)、ワイヤード接続(たとえば、DSL、ケーブルモデム、イーサネット(登録商標)、USBなど)、または両方の組合せを含み得る。
【0034】
図1の例では、宛先デバイス14は、受信機26と、モデム28と、ビデオデコーダ30と、ディスプレイデバイス32とを含む。宛先デバイス14の受信機26はチャネル16を介して情報を受信し、モデム28はその情報を復調して、ビデオデコーダ30のための復調されたビットストリームを生成する。チャネル16を介して通信される情報は、ビデオデータを復号する際にビデオデコーダ30が使用する、ビデオエンコーダ20によって生成された様々なシンタックス情報を含み得る。そのようなシンタックス(syntax)はまた、記憶媒体34またはファイルサーバ36に記憶された符号化ビデオデータとともに含まれ得る。ビデオエンコーダ20およびビデオデコーダ30の各々は、ビデオデータを符号化または復号することが可能であるそれぞれのエンコーダデコーダ(コーデック)の一部を形成し得る。
【0035】
ディスプレイデバイス32は、宛先デバイス14と一体化されるかまたはその外部にあり得る。いくつかの例では、宛先デバイス14は、一体型ディスプレイデバイスを含み、また、外部ディスプレイデバイスとインターフェースするように構成され得る。他の例では、宛先デバイス14はディスプレイデバイスであり得る。概して、ディスプレイデバイス32は、復号ビデオデータをユーザに対して表示し、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを備え得る。
【0036】
図1の例では、通信チャネル16は、無線周波数(RF)スペクトルあるいは1つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体、あるいはワイヤレス媒体とワイヤード媒体との任意の組合せを備え得る。通信チャネル16は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースネットワークの一部を形成し得る。通信チャネル16は、概して、ワイヤード媒体またはワイヤレス媒体の任意の好適な組合せを含む、ビデオデータをソースデバイス12から宛先デバイス14に送信するのに好適な任意の通信媒体、または様々な通信媒体の集合体を表す。通信チャネル16は、ソースデバイス12から宛先デバイス14への通信を可能にするのに有用であり得るルータ、スイッチ、基地局、または任意の他の機器を含み得る。
【0037】
ビデオエンコーダ20およびビデオデコーダ30は、現在開発中の高効率ビデオコーディング(HEVC)規格などのビデオ圧縮規格に従って動作し得、HEVCテストモデル(HM)に準拠し得る。「HEVC Working Draft 8」または「WD8」と呼ばれる、HEVC規格の最近のドラフトは、2012年10月17日現在、http://phenix.int-evry.fr/jct/doc_end_user/documents/10_Stockholm/wg11/JCTVC-J1003-v8.zipからダウンロード可能である、文書JCTVC−J1003、Brossら、「High efficiency video coding (HEVC) text specification draft 8」、ITU−T SG16 WP3とISO/IEC JTC1/SC29/WG11とのビデオコーディング共同研究部会(JCT−VC)、10th Meeting: Stockholm、SE、2012年7月11〜20日に記載されている。
【0038】
代替的に、ビデオエンコーダ20およびビデオデコーダ30は、代替的にMPEG−4,Part10,Advanced Video Coding(AVC)と呼ばれるITU−T H.264規格など、他のプロプライエタリ規格または業界規格、あるいはそのような規格の拡張に従って動作し得る。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。他の例にはMPEG−2およびITU−T H.263がある。
【0039】
図1には示されていないが、いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30は、それぞれオーディオエンコーダおよびオーディオデコーダと統合され得、また、共通のデータストリームまたは別個のデータストリーム中のオーディオとビデオの両方の符号化を処理するための適切なMUX−DEMUXユニット、または他のハードウェアおよびソフトウェアを含み得る。適用可能な場合、いくつかの例では、MUX−DEMUXユニットはITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
【0040】
ビデオエンコーダ20およびビデオデコーダ30はそれぞれ、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダ回路のいずれか、またはそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアの命令を記憶し、1つまたは複数のプロセッサを使用してその命令をハードウェアで実行して、本開示の技法を実行し得る。ビデオエンコーダ20およびビデオデコーダ30の各々は1つまたは複数のエンコーダまたはデコーダ中に含まれ得、そのいずれも、それぞれのデバイスにおいて複合エンコーダ/デコーダ(コーデック)の一部として統合され得る。
【0041】
ビデオエンコーダ20は、ビデオコーディングプロセスにおいてタイル境界を越えるループフィルタリングを制御するための本開示の技法のいずれかまたはすべてを実装し得る。同様に、ビデオデコーダ30は、ビデオコーディングプロセスにおける適応ループフィルタリングのためのこれらの技法のいずれかまたはすべてを実装し得る。本開示で説明するビデオコーダは、ビデオエンコーダまたはビデオデコーダを指すことがある。同様に、ビデオコーディングユニットは、ビデオエンコーダまたはビデオデコーダを指すことがある。同様に、ビデオコーディングはビデオ符号化またはビデオ復号を指すことがある。
【0042】
HEVCのために提案された現在のALFでは、2つの適応モード(すなわち、ブロック適応モードおよび領域適応モード)が提案される。領域適応モードでは、フレームが16個の領域に分割され、各領域が線形フィルタ係数の1つのセット(複数のAC係数および1つのDC係数)を有することができ、1つの領域が同じフィルタ係数を他の領域と共有することができる。
図2は、適応ループフィルタのための領域ベースの分類を示す概念図である。
図2に示すように、フレーム120が16個の領域に分割される。これらの16個の領域の各々は、その領域によって使用される線形フィルタ係数の特定のセットを示す番号(0〜15)によって表される。それらの番号(0〜15)は、ビデオエンコーダとビデオデコーダの両方において記憶されるフィルタ係数の所定のセットに対するインデックス番号であり得る。一例では、ビデオエンコーダが、符号化ビデオビットストリーム中で、特定の領域のためにビデオエンコーダによって使用されるフィルタ係数のセットのインデックス番号をシグナリングし得る。シグナリングされたインデックスに基づいて、ビデオデコーダが、その領域のための復号プロセスにおいて使用するためにフィルタ係数の同じ所定のセットを取り出し得る。他の例では、フィルタ係数は各領域について明示的にシグナリングされる。
【0043】
ブロックベースのモードでは、フレームが4×4ブロックに分割され、各4×4ブロックが、方向およびアクティビティ情報を使用してメトリックを計算することによって、1つのクラスを導出する。各クラスについて、線形フィルタ係数の1つのセット(複数のAC係数および1つのDC係数)が使用され得、1つのクラスが同じフィルタ係数を他のクラスと共有することができる。
図3は、適応ループフィルタのためのブロックベースの分類を示す概念図である。
【0044】
方向とアクティビティとの計算、および方向とアクティビティとに基づいて得られるメトリックを以下に示す。
【0048】
Hor_act(i,j)は、概して、現在ピクセル(i,j)の水平アクティビティを指し、Vert_act(i,j)は、概して、現在ピクセル(i,j)の垂直アクティビティを指す。X(i,j)は、概して、ピクセル(i,j)のピクセル値を指す。H
Bは、4×4ブロックの水平アクティビティを指し、これは、
図3の例では、ピクセル(0,0)、(0,2)、(2,0)、および(2,2)のための水平アクティビティの和に基づいて判断または決定(determine)される。V
Bは、4×4ブロックの垂直アクティビティを指し、これは、この例では、ピクセル(0,0)、(0,2)、(2,0)、および(2,2)のための垂直アクティビティの和に基づいて判断または決定(determine)される。「<<1」は、2での乗算の演算を表す。H
BおよびV
Bの値に基づいて、方向が判断または決定(determine)され得る。一例として、H
Bの値がV
Bの値の2倍よりも大きい場合、方向は、垂直アクティビティよりも多くの水平アクティビティに対応し得る、方向1(すなわち水平)であると判断または決定(determine)され得る。V
Bの値がH
Bの値の2倍よりも大きい場合、方向は、水平アクティビティよりも多くの垂直アクティビティに対応し得る、方向2(すなわち垂直)であると判断または決定(determine)され得る。他の場合、方向は、水平アクティビティも垂直アクティビティも支配的でないことを意味する、方向0(すなわち方向なし)であると判断または決定(determine)され得る。他の標示と比も使用され得るので、様々な方向のための標示と、それらの方向を判断または決定(determine)するために使用された比とは、一例を構成するにすぎない。
【0049】
4×4ブロックのためのアクティビティ(L
B)は、水平アクティビティと垂直アクティビティとの和として判断または決定(determine)され得る。L
Bの値は範囲に分類され得る。この特定の例は5つの範囲を示しているが、より多いまたはより少ない範囲が同様に使用され得る。アクティビティと方向との組合せに基づいて、ピクセルの4×4ブロックのためのフィルタが選択され得る。一例として、フィルタは、アクティビティおよび方向とフィルタとの2次元マッピングに基づいて選択され得るか、またはアクティビティと方向とが組み合わされて単一のメトリックになり得、その単一のメトリックが使用されてフィルタが選択され得る(たとえば、メトリック=アクティビティ+5*方向)。
【0050】
図3に戻ると、ブロック140はピクセルの4×4ブロックを表す。この例では、ブロックベースのALFのためのアクティビティおよび方向のメトリックを計算するために16個のピクセルのうちの4つのみが使用される。4つのピクセルは、ピクセル141と標示されたピクセル(0,0)、ピクセル142と標示されたピクセル(2,0)、ピクセル143と標示されたピクセル(0,2)、およびピクセル144と標示されたピクセル(2,2)である。ピクセル141の水平アクティビティ(すなわち、hor_act(0,0))は、たとえば、左の隣接ピクセルと右の隣接ピクセルとに基づいて判断または決定(determine)される。右の隣接ピクセルは、ピクセル145と標示されている。左の隣接ピクセルは、4×4ブロックとは異なるブロック中にあり、
図3には示されていない。ピクセル142の垂直アクティビティ(すなわちver_act(2,0))は、たとえば、上の隣接ピクセルと下の隣接ピクセルとに基づいて判断または決定(determine)される。下の隣接ピクセルは、ピクセル146と標示されており、上の隣接ピクセルは、4×4ブロックとは異なるブロック中にあり、
図3には示されていない。ピクセル143および144について水平アクティビティおよび垂直アクティビティが同様にして計算され得る。
【0051】
HEVC規格において現在提案されているように、ALFは他のループフィルタ(たとえば、デブロッキングおよびSAO)とともに実行される。フィルタは、将来の参照のために記憶されたビデオデータにビデオコーディングデバイスによってフィルタが適用されるとき、「ループ内」で実行されると言われることがある。このようにして、ループ内フィルタリングされたビデオデータは、後でコーディングされるビデオデータによって参照のために使用され得る。その上、ビデオエンコーダとビデオデコーダの両方が、実質的に同じフィルタリングプロセスを実行するように構成され得る。ループフィルタは、他の順序も使用され得るが、たとえば、デブロッキングの後にSAOが続き、その後にALFが続くなど、特定の順序で処理され得る。HEVCの現在のワーキングドラフトでは、ループフィルタの各々はフレームベースである。しかしながら、ループフィルタのいずれかが(エントロピースライスを含む)スライスレベルにおいてまたはタイルレベルにおいて適用される場合、特殊なハンドリングがスライス境界およびタイル境界において有益であり得る。
【0052】
図4は、フレームの例示的な複数のタイルを示す概念図である。フレーム160は複数の最大コーディングユニット(LCU)162に分割され得る。2つ以上のLCUが矩形形状タイルにグループ化され得る。タイルベースのコーディングが可能にされたとき、各タイル内のコーディングユニットは、後続の複数のタイルをコーディングする前に一緒にコーディングされる(すなわち、符号化または復号される)。フレーム160について示すように、タイル161および163は、水平に配向され、水平境界と垂直境界の両方を有する。フレーム170について示すように、タイル171および173は、垂直に配向され、水平境界と垂直境界の両方を有する。
【0053】
図5は、フレームの例示的なスライスを示す概念図である。フレーム180は、そのフレームにわたるラスタ走査順序における複数の連続するLCU(182)からなるスライスに分割され得る。いくつかの例では、スライスは、均一な形状(たとえば、スライス181)を有し、フレーム中のLCUの1つまたは複数の完全な行を包含し得る。他の例では、スライスは、ラスタ走査順序における特定の数の連続するLCUとして定義され、不均一な形状を呈し得る。たとえば、フレーム190は、ラスタ走査順序における10個の連続するLCU(182)からなるスライス191に分割される。フレーム190は幅が8LCUしかなく、次の行における追加の2つのLCUがスライス191中に含まれる。
【0054】
図6は、スライス境界およびタイル境界における適応ループフィルタを示す概念図である。水平スライス境界および/またはタイル境界201が水平線として示されており、垂直タイル境界202が垂直線として示されている。
図3中のフィルタマスク200の丸は、スライスおよび/またはタイルにおいて再構成されたビデオブロックのピクセルに適用される、フィルタの係数を表す。すなわち、フィルタの係数の値は対応するピクセルの値に適用され得る。フィルタの中心が、フィルタリングされるべきピクセルの位置に(またはそのピクセルに極めて接近して)配置されると仮定すると、フィルタ係数は、その係数の位置とコロケートされるピクセルに対応すると言われることがある。フィルタの係数に対応するピクセルは、「サポートピクセル(supporting pixel)」と呼ばれることもあり、または総称して、フィルタのための「サポートのセット」と呼ばれることもある。フィルタマスク200中の各係数にそれの対応するピクセルの値を乗算することと、各得られた値を合計することとによって、(中心ピクセルマスク係数C0に対応する)現在ピクセル203のフィルタリングされた値が計算される。
【0055】
本開示では、「フィルタ」という用語は、概してフィルタ係数のセットを指す。たとえば、3×3フィルタは9つのフィルタ係数のセットによって定義され得、5×5フィルタは25個のフィルタ係数のセットによって定義され得、9×5フィルタは45個のフィルタ係数のセットによって定義され得るなどである。
図6に示すフィルタマスク200は、水平方向における7つのフィルタ係数と垂直方向における5つのフィルタ係数とを有する7×5フィルタであるが(各方向について中心フィルタ係数をカウント)、任意の数のフィルタ係数が本開示の技法に適用可能であり得る。「フィルタのセット」という用語は、概して、2つ以上のフィルタのグループを指す。たとえば、2つの3×3フィルタのセットは、9つのフィルタ係数の第1のセットと9つのフィルタ係数の第2のセットとを含むことができる。「フィルタサポート」と呼ばれることがある、「形状」という用語は、概して、特定のフィルタのためのフィルタ係数の行の数とフィルタ係数の列の数とを指す。たとえば、9×9は第1の形状の一例であり、7×5は第2の形状の一例であり、5×9は第3の形状の一例である。いくつかの事例では、フィルタは、ダイヤモンド形状、ダイヤモンド様形状、円形形状、円形様形状、六角形形状、八角形形状、十字形状、X字形状、T字形状、他の幾何学的形状を含む、非矩形形状、あるいは多数の他の形状または構成をとり得る。
図6中の例は十字形状であるが、他の形状が使用され得る。
【0056】
本開示は、タイル境界を越える、デブロッキングフィルタリング、ALF、およびSAOフィルタリングを含む、ループフィルタリングを制御するための技法を導入する。本開示では、例を使用していくつかの技法について説明する。これらの例は、ALFなど、1つのタイプのループフィルタリングのみを参照し得るが、本開示の技法はまた、他のタイプのループフィルタに、ならびにループフィルタの様々な組合せに適用され得ることを理解されたい。
【0057】
ループフィルタリングを制御することの一部として、ビデオエンコーダ20は、たとえば、1つまたは複数の特定の境界について、あるいはフレーム内またはシーケンス内のすべてのタイルについて、タイル境界を越えるループフィルタリングが可能にされるかどうかを示すシンタックス要素の値をコード化されたビットストリーム中に含め得る。いくつかの例では、ビデオエンコーダ20は、追加のシグナリングされた値をビットストリーム中でシグナリングすることによって、タイル境界横断ループフィルタリング演算のより細かい制御を用い得る。たとえば、第1のシンタックス要素が、タイル境界横断ループフィルタリング演算が許可されることを示すとき、ビデオエンコーダ20は、タイル境界横断ループフィルタリング演算が水平タイル境界および/または垂直タイル境界について許可される(または許可されない)かどうかを示す追加の値をビットストリーム中でシグナリングし得る。別の例として、第1の値が、タイル境界横断ループフィルタリング演算が許可されることを示すとき、ビデオエンコーダ20は、ループフィルタリング演算がどのタイル境界について許可される(または許可されない)かを具体的に識別するための追加の値をビットストリーム中でシグナリングし得る。たとえば、特定のタイル境界は、タイル境界に隣接する複数のタイルの1つまたは複数のタイルインデックスを使用して識別され得る。別の例では、ビデオエンコーダ20は、ビットストリーム中に一連のフラグを含め得、各フラグは特定の境界に対応し、フラグの値は、その特定の境界を越えるタイル境界横断ループフィルタリング演算が許可されるかどうかを示す。追加または代替として、いくつかの例では、タイル境界横断予測が、スライスが接するタイル境界について許可される(または許可されない)かどうかを示す値がスライスヘッダ中でシグナリングされ得る。
【0058】
上記で説明したように、いくつかのシナリオでは、タイル境界を越えるループフィルタリングが不能にされ得る。タイル境界を越えるループフィルタリングが不能にされ得ることの1つの理由は、隣接する複数のタイル中のピクセルが、まだコーディングされていないことがあり、したがって、いくつかのフィルタマスクとともに使用するために利用不可能になるからである。タイル境界を越えるループフィルタリングが不能にされる事例では、タイル境界を横断しないループフィルタリング演算は依然として実行され得る。これらの場合、利用不可能なピクセル(すなわち、現在スライスまたはタイルからスライス境界またはタイル境界の反対側にあるピクセル)のためにパディングされたデータが使用され得、フィルタリングは実行され得る。
【0059】
さらに、本開示は、パディングされたデータを使用せずに、タイル横断ループフィルタリングが不能にされるとき、タイル境界を越えるALFを実行するための技法を提案する。概して、本開示は、タイル境界の周辺で部分フィルタを使用することを提案する。部分フィルタは、フィルタリングプロセスのために一般に使用される1つまたは複数のフィルタ係数を使用しないフィルタである。一例では、本開示は、少なくともタイル境界の反対側のピクセルに対応するフィルタ係数が使用されない、部分フィルタを使用することを提案し、ただし、反対側は、概して、フィルタリングされているピクセルまたはピクセルのグループがそこから位置する境界を越えて位置する、タイル境界の側を指す。
【0060】
図7および
図8に、少なくとも1つのタイル境界にまたがるフィルタマスクの例を示す。タイル境界横断ループフィルタリングが特定のタイル境界について可能にされるとき、示されたすべてのフィルタサポート位置(すなわち、
図7および
図8中の黒丸と白丸の両方に対応するフィルタサポート位置)がフィルタリング演算のために使用され得る。タイル境界横断ループフィルタリングが特定のタイル境界について不能にされるとき、タイル境界を越えているフィルタサポート位置(すなわち、
図7および
図8中の白丸に対応するフィルタサポート位置)はループフィルタ演算のために使用されないが、タイル境界を横断しないフィルタサポート位置(すなわち、
図7および
図8中の黒丸に対応するフィルタサポート位置)は使用され得る。
【0061】
一例では、非対称部分フィルタがタイル境界の近くで使用され得る。
図7は、水平境界における非対称部分フィルタを示す概念図である。
図8は、垂直境界における非対称部分フィルタを示す概念図である。この手法では、タイル境界を越えるフィルタリングが不能にされる場合、利用可能なピクセル(すなわち、現在タイル内のピクセル)のみがフィルタリングのために使用される。タイル境界外のフィルタタップはスキップされる。したがって、パディングされたピクセルデータは使用されない。
図7および
図8中のフィルタは、フィルタマスクの中心の一方の側(水平側または垂直側のいずれか)で使用されるフィルタタップが他方の側よりも多いので、非対称と呼ばれる。フィルタマスク全体は使用されないので、フィルタ係数は、所望の結果を生成するために再正規化され得る。再正規化のための技法について以下でより詳細に説明する。
【0062】
図7のケース1では、フィルタマスク220の中心が、水平タイル境界からピクセルの1つの行離れている。フィルタマスク220は7×5フィルタであるので、垂直方向における1つのフィルタ係数が、水平境界を越えているピクセルに対応する。このフィルタ係数は白で示されている。タイル境界横断ループフィルタリングが可能にされる場合、タイル境界を越えているピクセルはループフィルタリング演算のために使用され得る。タイル境界横断ループフィルタリングが不能される場合、白いフィルタ係数に対応するピクセルはフィルタリングにおいて使用されないことがある。
【0063】
同様に、ケース2では、フィルタマスク225の中心が、水平タイル境界に隣接するピクセルの行上にある。この場合、2つのフィルタ係数が、水平境界を越えているピクセルに対応する。したがって、タイル境界横断ループフィルタリングが不能にされる場合、フィルタマスク225中の2つの白いフィルタ係数のいずれもループフィルタリングのために使用されない。タイル境界横断ループフィルタリングが可能にされる場合、タイル境界を越えているピクセルとそれらの対応するフィルタ係数の両方がループフィルタリング演算のために使用され得る。ケース1とケース2の両方において、タイル境界横断ループフィルタリングが可能にされるのか不能にされるのかにかかわらず、すべての黒いフィルタ係数が使用される。
【0064】
図8のケース3では、フィルタマスク234の中心が、垂直タイル境界からピクセルの2つの列離れている。フィルタマスク234は7×5フィルタであるので、水平方向における1つのフィルタ係数が、垂直境界を越えているピクセルに対応する。ここでも、このフィルタ係数は白で示されている。タイル境界横断ループフィルタリングが可能にされる場合、タイル境界を越えているピクセルおよびそれの対応するフィルタ係数がループフィルタリング演算のために使用され得る。タイル境界横断ループフィルタリングが不能にされる場合、タイル境界を越えているピクセルおよびそれの対応するフィルタ係数はフィルタリングにおいて使用されないことがある。
【0065】
同様に、ケース4では、フィルタマスク232の中心が、垂直タイル境界からピクセルの1つの列離れている。この場合、2つのフィルタ係数が、垂直境界を越えているピクセルに対応する。タイル境界横断ループフィルタリングが可能にされる場合、タイル境界を越えている2つピクセルおよびそれらの対応するフィルタ係数がループフィルタリング演算のために使用され得る。タイル境界横断ループフィルタリングが不能にされる場合、タイル境界を越えている2つのピクセルおよびそれらの対応するフィルタ係数はフィルタリングにおいて使用されないことがある。
【0066】
ケース5では、フィルタマスク230の中心が、垂直タイル境界に隣接するピクセルの列上にある。この場合、3つのフィルタ係数が、垂直境界を越えているピクセルに対応する。タイル境界横断ループフィルタリングが可能にされる場合、タイル境界を越えている3つピクセルおよびそれらの対応するフィルタ係数がループフィルタリング演算のために使用され得る。タイル境界横断ループフィルタリングが不能にされる場合、タイル境界を越えている3つのピクセルおよびそれらの対応するフィルタ係数はフィルタリングにおいて使用されないことがある。ケース3、4、および5のすべてにおいて、すべての黒いフィルタ係数が、タイル境界横断ループフィルタリングが可能にされるのか不能にされるのかにかかわらず使用される。
【0067】
別の例では、タイル境界横断ループフィルタリングが不能にされるとき、対称部分フィルタがタイル境界の近くに使用され得る。
図9は、水平境界における対称部分フィルタを示す概念図である。
図10は、垂直境界における対称部分フィルタを示す概念図である。
図7および
図8に示したような非対称部分フィルタの場合と同様に、この手法では、タイル境界横断ループフィルタリングが不能にされるとき、タイル境界を越えているピクセルおよびそれらの対応するフィルタ係数はループフィルタリング演算のために使用されないが、また、対称的フィルタマスクを保持するために、タイル境界を越えていないピクセルに対応するフィルタマスクのいくつかの係数も使用されない。
【0068】
たとえば、
図9のケース6では、フィルタマスク240中の1つのフィルタ係数が水平スライス境界またはタイル境界を越えている。タイル境界横断ループフィルタリングが不能にされるとき、フィルタマスクの反対側の、水平境界内の対応するフィルタ係数も使用されない。このようにして、中心係数の周りの垂直方向における係数の対称構成が保持される。
図9のケース7では、フィルタマスク242中の2つのフィルタ係数が水平境界を越えている。タイル境界横断ループフィルタリングが不能にされるとき、水平境界内の中心フィルタ係数の反対側の対応する2つのフィルタ係数も使用されない。垂直タイル境界について同様の例が
図10に示されている。ケース8では、1つのフィルタ係数が、垂直タイル境界を越えるピクセルに対応する。タイル境界横断ループフィルタリングが不能にされるとき、この係数、ならびにフィルタマスク250の水平部分の左側における別のピクセルは使用されない。2つの(ケース9)および4つの(ケース10)フィルタ係数が、垂直境界を越えているピクセルに対応するケースにおいて、フィルタマスク252および254のために同様のフィルタマスク調整が行われる。
【0069】
図7および
図8に示した非対称部分フィルタと同様に、タイル境界横断ループフィルタリングが不能にされるとき、対称部分フィルタのためにフィルタマスク全体は使用されない。したがって、フィルタ係数は再正規化され得る。再正規化のための技法について以下でより詳細に説明する。タイル境界横断ループフィルタリングが可能にされる事例では、
図9および
図10に示したすべてのフィルタ係数(すなわち、白いフィルタ係数と黒いフィルタ係数の両方)が、ループフィルタリング演算を実行するために使用され得る。
【0070】
部分フィルタ(たとえば、非対称部分フィルタまたは対称部分フィルタ)を適用すべきか否かは適応決定であり得る。
図7および
図9に示した例では、部分フィルタが、ケース2およびケース7のためにではなく、ケース1およびケース6のために使用され得る。未使用フィルタ係数の数がより大きいので、ケース2およびケース7のために部分フィルタを使用することは好ましくないことがある。代わりに、以下で説明する他の技法(たとえば、ミラーパディング、フィルタリングのスキップなど)がケース2およびケース7のために使用され得る。同様に、
図8および
図10に示した例では、部分フィルタリングの使用は、ケース5および10のためにではなく、ケース3、4、8、および9のために適用可能であり得る。
【0071】
部分フィルタを使用するという決定は他の基準にも基づき得る。たとえば、対応するピクセルが利用可能でない係数の数が何らかのしきい値よりも大きいとき、部分フィルタは使用されないことがある。対応するピクセルが利用可能でない係数値の和が何らかのしきい値よりも大きいとき、部分フィルタは使用されないことがある。別の例として、対応するピクセルが利用可能でない係数値の絶対値の和が何らかのしきい値よりも大きいとき、部分フィルタは使用されないことがある。
【0072】
・一致するピクセルが利用可能でない係数の数>Th1
・Sum(一致するピクセルが利用可能でない係数)>Th2
・Sum(abs(一致するピクセルが利用可能でない係数))>Th3
タイル境界の特定のスライスのための部分フィルタを適用すべきかどうかを決定するために、上記の条件のサブセットが選択され得る。
【0073】
本開示の別の例では、水平タイル境界のみについて部分フィルタリングが可能にされ得るが、垂直境界においては、ループフィルタリングは完全にスキップされる。より詳細には、一例では、ビデオコーダが、フィルタマスクが垂直タイル境界の反対側のピクセルを使用することになると判断または決定(determine)した場合、ループフィルタリングはそのピクセルについてスキップされることになる。他の例では、ビデオコーダが、フィルタマスクがコーディングユニット中の1つまたは複数のピクセルのために垂直タイル境界の反対側のピクセルを使用することになると判断または決定(determine)した場合、ALFはコーディングユニット全体についてスキップされることになる。本開示の別の例では、すべての境界において、ALFは完全にスキップされ得る。
【0074】
本開示の他の例では、部分フィルタリングが使用されないとき、追加の技法がタイル境界において適用され得る。一例では、ALFは、繰り返してパディングされたピクセルを使用するのではなく、スライス境界またはタイル境界の反対側のミラーリングされたパディングされたピクセルを使用し得る。ミラーリングされたピクセルは、スライス境界またはタイル境界の内側のピクセル値を反映する。たとえば、利用不可能なピクセルがタイル境界またはスライス境界に隣接する場合、それは、同じくその境界に隣接する、タイル境界またはスライス境界の内側のピクセルの値(すなわち、ミラー)をとることになる。同様に、利用不可能なピクセルが、タイル境界またはスライス境界から1行または1列離れている場合、それは、同じくその境界から1行または1列離れている、タイル境界またはスライス境界の内側のピクセルの値(すなわち、ミラー)をとることになり、以下同様である。
【0075】
別の例では、タイル境界またはスライス境界の反対側のピクセルのためのフィルタリングされた値は、a*パディングされたデータを使用するALF+b*事前フィルタリングされた出力、という式に従って計算され得、上式でa+b=1である。すなわち、パディングされたピクセル(すなわち、スライス境界またはタイル境界の反対側に追加されたピクセル)に、パディングされたピクセルに対応するALF係数を乗算し、定数「a」を乗算する。この値は、次いで、事前フィルタリングされたパディングされたピクセル値と定数「b」との乗算に加算され、上式でa+b=1である。
【0076】
対称および非対称部分フィルタのためのフィルタ係数の再正規化は、異なる方法で達成され得る。元のフィルタ係数がC_1,...,C_Nと標示され、Cが特定の係数の値である例について考えられたい。次に、C_1,...,C_M係数が、利用可能な対応するピクセルを有しない(すなわち、対応するピクセルがスライス境界またはタイル境界を越えている)と仮定されたい。再正規化されたフィルタ係数は以下のように定義され得る。
【0078】
例1では、Coeff_allは、互いに合計されたフィルタマスク中のすべての係数の値を表す。Coeff_partは、部分フィルタマスク中のすべての係数の値を表す。すなわち、利用不可能なピクセルに対応する係数の合計された値(C_1+...+C_M)がフィルタマスク中のすべての考えられる係数の和(Coeff_all)から減算される。New_coeffs_Ci’は、再正規化プロセスの後の部分係数におけるフィルタ係数の値を表す。上記の例1では、部分フィルタ中に残っている係数の値にフィルタマスク中のすべての考えられる係数の合計値(Coeff_all)を乗算し、それを部分フィルタマスク中のすべての係数の合計値(Coeff_part)で除算する。
【0079】
以下の例2に、部分フィルタ中のフィルタ係数を再正規化するための別の技法を示す。
【0080】
例2
C_i、i=M+1,...,Nのサブセットについて、C_k、k=1,...,Mを加算する
たとえば、
【数5】
【0081】
図11は、本開示で説明するビデオコーディングプロセスにおける、タイル境界を越えるループフィルタリングを制御するための技法を使用し得るビデオエンコーダ20の一例を示すブロック図である。ビデオエンコーダ20について、例示のためにHEVCコーディングのコンテキストにおいて説明するが、適応ループフィルタリングを必要とし得る他のコーディング規格または方法に関して本開示を限定するものではない。ビデオエンコーダ20は、ビデオフレーム内のCUのイントラコーディングおよびインターコーディングを実行し得る。イントラコーディングは、所与のビデオフレーム内のビデオデータの空間的冗長性を低減または除去するために空間的予測に依拠する。インターコーディングは、ビデオシーケンスの現在フレームと前にコーディングされたフレームとの間の時間的冗長性を低減または除去するために時間的予測に依拠する。イントラモード(Iモード)は、いくつかの空間ベースのビデオ圧縮モードのいずれかを指すことがある。単方向予測(Pモード)または双方向予測(Bモード)などのインターモードは、いくつかの時間ベースのビデオ圧縮モードのいずれかを指すことがある。
【0082】
図11に示すように、ビデオエンコーダ20は、符号化されるべきビデオフレーム内の現在ビデオブロックを受信する。
図11の例では、ビデオエンコーダ20は、動き補償ユニット44と、動き推定ユニット42と、イントラ予測モジュール46と、参照フレームバッファ64と、加算器50と、変換モジュール52と、量子化ユニット54と、エントロピー符号化ユニット56とを含む。
図11に示す変換モジュール52は、残差データのブロックに実際の変換または変換の組合せを適用するユニットであり、CUの変換ユニット(TU)と呼ばれることもある変換係数のブロックと混同されるべきでない。ビデオブロック再構成のために、ビデオエンコーダ20はまた、逆量子化ユニット58と、逆変換モジュール60と、加算器62と、デブロッキングフィルタ53と、SAOユニット55と、ALFユニット57とを含む。デブロッキングフィルタ53は、復元されたビデオからブロッキネスアーティファクトを除去するためにブロック境界をフィルタリングし得る。所望される場合、デブロッキングフィルタは、一般に、加算器62の出力をフィルタリングすることになる。
【0083】
符号化プロセス中に、ビデオエンコーダ20は、コーディングされるべきビデオフレームまたはスライスを受信する。フレームまたはスライスは、複数のビデオブロック、たとえば、最大コーディングユニット(LCU)に分割され得る。動き推定ユニット42および動き補償ユニット44は、時間圧縮を行うために、1つまたは複数の参照フレーム中の1つまたは複数のブロックに対して受信されたビデオブロックのインター予測コーディングを実行する。イントラ予測モジュール46は、空間圧縮を行うために、コーディングされるべきブロックと同じフレームまたはスライス中の1つまたは複数の隣接ブロックに対して受信されたビデオブロックのイントラ予測コーディングを実行し得る。
【0084】
モード選択ユニット40は、たとえば、各モードについてのレートひずみ結果に基づいて、コーディングモードのうちの1つ、すなわち、イントラまたはインターを選択し得、得られたイントラまたはインター予測ブロック(たとえば、予測ユニット(PU))を、残差ブロックデータを生成するために加算器50に与え、参照フレーム中で使用する符号化ブロックを再構成するために加算器62に与える。加算器62は、以下でより詳細に説明するように、予測ブロックを、そのブロックについての、逆変換モジュール60からの逆量子化され逆変換されたデータと合成して、符号化ブロックを再構成する。いくつかのビデオフレームはIフレームに指定され得、Iフレーム中のすべてのブロックはイントラ予測モードで符号化される。場合によっては、たとえば、動き推定ユニット42によって実行された動き探索によって得られたブロックの予測が不十分であったとき、イントラ予測モジュール46は、PフレームまたはBフレーム中のブロックのイントラ予測符号化を実行し得る。
【0085】
動き推定ユニット42と動き補償ユニット44とは、高度に統合され得るが、概念的な目的のために別々に示してある。動き推定(または動き探索)は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。動きベクトルは、たとえば、参照フレームの参照サンプルに対する、現在フレーム中の予測ユニットの変位を示し得る。動き推定ユニット42は、予測ユニットを参照フレームバッファ64に記憶された参照フレームの参照サンプルと比較することによってインターコード化されたフレームの予測ユニットの動きベクトルを計算する。参照サンプルは、絶対値差分和(SAD)、2乗差分和(SSD)、または他の差分メトリックによって判断または決定(determine)され得るピクセル差分に関して、コーディングされているPUを含むCUの部分にぴったり一致することがわかるブロックであり得る。参照サンプルは、参照フレームまたは参照スライス内のどこにでも発生し得、必ずしも、参照フレームまたはスライスのブロック(たとえば、コーディングユニット)境界において発生するとは限らない。いくつかの例では、参照サンプルは分数ピクセル位置において発生し得る。
【0086】
動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56と動き補償ユニット44とに送る。動きベクトルによって識別される参照フレームの部分は参照サンプルと呼ばれることがある。動き補償ユニット44は、たとえば、PUの動きベクトルによって識別される参照サンプルを取り出すことによって、現在CUの予測ユニットについての予測値を計算し得る。
【0087】
イントラ予測モジュール46は、動き推定ユニット42と動き補償ユニット44とによって実行されるインター予測の代替として、受信ブロックをイントラ予測し得る。イントラ予測モジュール46は、隣接する、前にコーディングされたブロック、たとえば、ブロックについての左から右へ、上から下への符号化順序を仮定すると、現在ブロックの上、右上、左上、または左のブロックに対して受信ブロックを予測し得る。イントラ予測モジュール46は多種多様なイントラ予測モードで構成され得る。たとえば、イントラ予測モジュール46は、符号化されているCUのサイズに基づいて、一定数の方向性予測モード、たとえば、35個の方向性予測モードで構成され得る。
【0088】
イントラ予測モジュール46は、たとえば、様々なイントラ予測モードの誤差値を計算し、最も低い誤差値を生じるモードを選択することによって、イントラ予測モードを選択し得る。方向性予測モードは、空間的に隣接するピクセルの値を合成し、その合成された値をPU中の1つまたは複数のピクセル位置に適用するための機能を含み得る。PU中のすべてのピクセル位置の値が計算されると、イントラ予測モジュール46は、PUと符号化されるべき受信ブロックとの間のピクセル差分に基づいて予測モードの誤差値を計算し得る。イントラ予測モジュール46は、許容できる誤差値を生じるイントラ予測モードが発見されるまでイントラ予測モードをテストし続け得る。イントラ予測モジュール46は、次いで、PUを加算器50に送り得る。
【0089】
ビデオエンコーダ20は、コーディングされている元のビデオブロックから、動き補償ユニット44またはイントラ予測モジュール46によって計算された予測データを減算することによって残差ブロックを形成する。加算器50は、この減算演算を実行する1つまたは複数の構成要素を表す。残差ブロックはピクセル差分値の2次元行列に対応し得、残差ブロック中の値の数は、残差ブロックに対応するPU中のピクセルの数と同じである。残差ブロック中の値は、PU中のコロケートピクセルの値と、コーディングされるべき元のブロック中のコロケートピクセルの値との間の差分、すなわち、誤差に対応し得る。差分は、コーディングされるブロックのタイプに応じてクロマ差分またはルーマ差分であり得る。
【0090】
変換モジュール52は、残差ブロックから1つまたは複数の変換ユニット(TU)を形成し得る。変換モジュール52は、複数の変換の中から変換を選択する。変換は、ブロックサイズ、コーディングモードなど、1つまたは複数のコーディング特性に基づいて選択され得る。変換モジュール52は、次いで、選択された変換をTUに適用して、変換係数の2次元アレイを備えるビデオブロックを生成する。変換モジュール52は、選択された変換パーティションを符号化ビデオビットストリーム中でシグナリングし得る。
【0091】
変換モジュール52は、得られた変換係数を量子化ユニット54に送り得る。量子化ユニット54は、次いで、その変換係数を量子化し得る。エントロピー符号化ユニット56が、次いで、走査モードに従って、行列中の量子化された変換係数の走査を実行し得る。本開示では、エントロピー符号化ユニット56が走査を実行するものとして説明する。ただし、他の例では、量子化ユニット54などの他の処理ユニットが走査を実行し得ることを理解されたい。
【0092】
変換係数が1次元アレイに走査されると、エントロピー符号化ユニット56は、CAVLC、CABAC、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC:syntax-based context-adaptive binary arithmetic coding)、または別のエントロピーコーディング方法などのエントロピーコーディングを係数に適用し得る。
【0093】
CAVLCを実行するために、エントロピー符号化ユニット56は、送信されるべきシンボルの可変長コードを選択し得る。VLCのコードワードは、相対的により短いコードがより可能性が高いシンボルに対応し、より長いコードがより可能性が低いシンボルに対応するように構築され得る。このようにして、VLCの使用は、たとえば、送信されるべき各シンボルのために等長コードワードを使用するよりも、ビット節約を達成し得る。
【0094】
CABACを実行するために、エントロピー符号化ユニット56は、送信されるべきシンボルを符号化するために、あるコンテキストに適用すべきコンテキストモデルを選択し得る。コンテキストは、たとえば、隣接値が非0であるか否かに関係し得る。エントロピー符号化ユニット56はまた、選択された変換を表す信号など、シンタックス要素をエントロピー符号化し得る。本開示の技法によれば、エントロピー符号化ユニット56は、コンテキストモデル選択のために使用されるファクタの中でも、たとえば、イントラ予測モードのためのイントラ予測方向、シンタックス要素に対応する係数の走査位置、ブロックタイプ、および/または変換タイプに基づいて、これらのシンタックス要素を符号化するために使用されるコンテキストモデルを選択し得る。
【0095】
エントロピー符号化ユニット56によるエントロピーコーディングの後に、得られた符号化ビデオは、ビデオデコーダ30などの別のデバイスに送信されるか、あるいは後で送信するかまたは取り出すためにアーカイブされ得る。
【0096】
場合によっては、エントロピー符号化ユニット56またはビデオエンコーダ20の別のユニットは、エントロピーコーディングに加えて、他のコーディング機能を実行するように構成され得る。たとえば、エントロピー符号化ユニット56は、CUおよびPUのコード化されたブロックパターン(CBP)値を判断または決定(determine)するように構成され得る。また、場合によっては、エントロピー符号化ユニット56は係数のランレングスコーディングを実行し得る。
【0097】
逆量子化ユニット58および逆変換モジュール60は、それぞれ逆量子化および逆変換を適用して、たとえば参照ブロックとして後で使用するために、ピクセル領域において残差ブロックを再構成する。動き補償ユニット44は、残差ブロックを参照フレームバッファ64のフレームのうちの1つの予測ブロックに加算することによって参照ブロックを計算し得る。動き補償ユニット44はまた、再構成された残差ブロックに1つまたは複数の補間フィルタを適用して、動き推定において使用するサブ整数ピクセル値を計算し得る。加算器62は、再構成された残差ブロックを、動き補償ユニット44によって生成された動き補償予測ブロックに加算して、再構成されたビデオブロックを生成する。
【0098】
加算器62は、残差ブロックを、動き補償ユニット44またはイントラ予測モジュール46によって生成される対応する予測ブロックと合成して、復号ブロックを形成する。ループフィルタ(デブロッキングフィルタ53、SAOユニット55、およびALFユニット57)は、次いで、上記で説明した技法によるループフィルタリングを実行する。特に、ループフィルタリング演算は、いくつかの複数のタイルについてはタイル境界を越えて許可され得、いくつかの複数のタイルについては、タイル境界を越えて実行されることが許可されないことがある。タイル境界を越えるループフィルタリング演算が許可されるかどうかを示すシンタックス要素が符号化ビデオビットストリーム中に含められ得る。
【0099】
ループフィルタリングの後に、フィルタリングされた再構成されたビデオブロックは、次いで参照フレームバッファ64に記憶される。再構成されたビデオブロックは、後続のビデオフレーム中のブロックをインターコーディングするために動き推定ユニット42および動き補償ユニット44によって参照ブロックとして使用され得る。
【0100】
図12は、符号化ビデオシーケンスを復号するビデオデコーダ30の一例を示すブロック図である。
図12の例では、ビデオデコーダ30は、エントロピー復号ユニット70と、動き補償ユニット72と、イントラ予測モジュール74と、逆量子化ユニット76と、逆変換ユニット78と、参照フレームバッファ82と、デブロッキングフィルタ75と、SAOユニット77と、ALFユニット79と、加算器80とを含む。ビデオデコーダ30は、いくつかの例では、ビデオエンコーダ20(
図11参照)に関して説明した符号化パスとは概して逆の復号パスを実行し得る。
【0101】
エントロピー復号ユニット70は、変換係数の1次元アレイを取り出すために、符号化ビットストリームに対してエントロピー復号プロセスを実行する。使用されるエントロピー復号プロセスは、ビデオエンコーダ20によって使用されたエントロピーコーディング(たとえば、CABAC、CAVLCなど)に依存する。エンコーダによって使用されたエントロピーコーディングプロセスは、符号化ビットストリーム中でシグナリングされるか、または所定のプロセスであり得る。
【0102】
いくつかの例では、エントロピー復号ユニット70(または逆量子化ユニット76)は、ビデオエンコーダ20のエントロピー符号化ユニット56(または量子化ユニット54)によって使用された走査モードをミラーリングする走査を使用して受信値を走査し得る。係数の走査は逆量子化ユニット76において実行され得るが、走査については、例示のために、エントロピー復号ユニット70によって実行されるものとして説明する。さらに、説明しやすいように別個の機能ユニットとして示されているが、ビデオデコーダ30のエントロピー復号ユニット70、逆量子化ユニット76、および他のユニットの構造および機能は互いに高度に統合され得る。
【0103】
逆量子化ユニット76は、ビットストリーム中で与えられ、エントロピー復号ユニット70によって復号された、量子化変換係数を逆量子化(inverse quantize)、すなわち、逆量子化(de-quantize)する。逆量子化プロセスは、たとえば、HEVCのために提案されたプロセスまたはH.264復号規格によって定義されたプロセスと同様の、従来のプロセスを含み得る。逆量子化プロセスは、量子化の程度を判断または決定(determine)し、同様に、適用されるべき逆量子化の程度を判断または決定(determine)するための、CUについてビデオエンコーダ20によって計算される量子化パラメータQPの使用を含み得る。逆量子化ユニット76は、係数が1次元アレイから2次元アレイに変換される前または変換された後に変換係数を逆量子化し得る。
【0104】
逆変換モジュール78は、逆量子化された変換係数に逆変換を適用する。いくつかの例では、逆変換モジュール78は、ビデオエンコーダ20からのシグナリングに基づいて、あるいはブロックサイズ、コーディングモードなどの1つまたは複数のコーディング特性から変換を推論することによって、逆変換を判断または決定(determine)し得る。いくつかの例では、逆変換モジュール78は、現在ブロックを含むLCUのための4分木のルートノードにおけるシグナリングされた変換に基づいて、現在ブロックに適用すべき変換を判断または決定(determine)し得る。代替的に、変換は、LCU4分木中のリーフノードCUのためのTU4分木のルートにおいてシグナリングされ得る。いくつかの例では、逆変換モジュール78は、逆変換モジュール78が、復号されている現在ブロックの変換係数に2つ以上の逆変換を適用する、カスケード逆変換を適用し得る。
【0105】
イントラ予測モジュール74は、シグナリングされたイントラ予測モードと、現在フレームの前に復号されたブロックからのデータとに基づいて、現在フレームの現在ブロックについての予測データを生成し得る。
【0106】
取り出された動き予測方向、参照フレームインデックス、および計算された現在動きベクトルに基づいて、動き補償ユニットは現在部分の動き補償ブロックを生成する。これらの動き補償ブロックは、本質的に、残差データを生成するために使用される予測ブロックを再現する。
【0107】
動き補償ユニット72は、動き補償ブロックを生成し、場合によっては、補間フィルタに基づいて補間を実行し得る。サブピクセル精度をもつ動き推定に使用されるべき補間フィルタの識別子は、シンタックス要素中に含まれ得る。動き補償ユニット72は、ビデオブロックの符号化中にビデオエンコーダ20によって使用された補間フィルタを使用して、参照ブロックのサブ整数ピクセルの補間値を計算し得る。動き補償ユニット72は、受信されたシンタックス情報に従って、ビデオエンコーダ20によって使用された補間フィルタを判断または決定(determine)し、その補間フィルタを使用して予測ブロックを生成し得る。
【0108】
さらに、動き補償ユニット72およびイントラ予測モジュール74は、HEVCの例では、(たとえば、4分木によって与えられる)シンタックス情報の一部を使用して、符号化ビデオシーケンスの(1つまたは複数の)フレームを符号化するために使用されたLCUのサイズを判断または決定(determine)し得る。動き補償ユニット72およびイントラ予測モジュール74はまた、シンタックス情報を使用して、符号化ビデオシーケンスのフレームの各CUがどのように分割されるか(および、同様に、サブCUがどのように分割されるか)を記述する分割情報を判断または決定(determine)し得る。シンタックス情報はまた、各分割がどのように符号化されるかを示すモード(たとえば、イントラまたはインター予測、およびイントラ予測の場合はイントラ予測符号化モード)と、各インター符号化PUについての1つまたは複数の参照フレーム(および/またはそれらの参照フレームの識別子を含んでいる参照リスト)と、符号化ビデオシーケンスを復号するための他の情報とを含み得る。
【0109】
加算器80は、残差ブロックを、動き補償ユニット72またはイントラ予測モジュール74によって生成される対応する予測ブロックと合成して、復号ブロックを形成する。ループフィルタ(デブロッキングフィルタ75、SAOユニット77、およびALFユニット79)は、次いで、上記で説明した技法によるループフィルタリングを実行する。特に、符号化ビットストリーム中のシンタックス要素は、いくつかのタイルについては、タイル境界を越えるループフィルタリング演算が実行されることを許可し得、いくつかのタイルについては、タイル境界を越えるループフィルタリング演算が実行されることを許可しないことがある。
【0110】
本開示の技法による、タイル境界を越えるループ内フィルタリングを制御するための例示的なシンタックスおよびセマンティクスについて次に説明する。ビデオエンコーダ20は、たとえば、説明するシンタックス要素を含むコード化されたビデオデータのビットストリームを生成するように構成され得、ビデオデコーダ30は、そのようなシンタックス要素をパースするように構成され得る。以下の表1は、本開示で説明するシンタックス要素がシーケンスパラメータセット中にどのように実装され得るかについての例を示す。以下の表2は、本開示で説明するシンタックス要素がピクチャパラメータセット中にどのように実装され得るかについての例を示す。
【表1】
【表2】
【0111】
上記の例では、0に等しいシンタックス要素「tile_boundary_loop_filtering_idc」は、すべてのタイル境界を越える、デブロッキングループフィルタリング、ALF、およびSAOを含む、ループフィルタリング演算が許可されないことを指定し得る。1に等しいシンタックス要素「tile_boundary_loop_filtering_idc」は、すべてのタイル境界を越えるループフィルタリング演算が許可されることを指定し得る。2に等しいシンタックス要素「tile_boundary_loop_filtering_idc」は、ループフィルタリング演算の許可がシンタックス要素「vertical_tile_boundary_loop_filtering_flag[i]」と「horizontal_tile_boundary_loop_filtering_flag[i]」とによって指定されることを示し得る。これらの値は、一例にすぎず、他の例では変更され得る。
【0112】
0に等しいシンタックス要素「vertical_tile_boundary_loop_filtering_flag[i]」は、i+1に等しいインデックス値をもつ垂直タイル境界を越えるループフィルタリング演算が許可されることを指定し得る。垂直タイル境界インデックスは、左側垂直ピクチャ境界について0であり、垂直タイル境界ごとに1だけ増加されて、左から右にカウントされる。1に等しいシンタックス要素「vertical_tile_boundary_loop_filtering_flag[i]」は、i+1に等しいインデックス値をもつ垂直タイル境界を越える、デブロッキングループフィルタリング、ALF、およびSAOを含む、ループフィルタリング演算が許可されないことを指定し得る。
【0113】
0に等しいシンタックス要素「horizontal_tile_boundary_loop_filtering_flag[i]」は、i+1に等しいインデックス値をもつ水平タイル境界を越えるループフィルタリング演算が許可されることを指定し得る。一例では、水平タイル境界インデックスは、上側水平ピクチャ境界について0であり、水平タイル境界ごとに1だけ増加されて、上から下にカウントされ得る。1に等しいシンタックス要素「horizontal_tile_boundary_loop_filtering_flag[i]」は、i+1に等しいインデックス値をもつ水平タイル境界を越えるループフィルタリング演算が許可されないことを指定し得る。
【0114】
例示的な復号プロセスでは、シンタックス要素「horizontal_tile_boundary_loop_filtering_flag」および「vertical_tile_boundary_loop_filtering_flag」が1に等しいとき、通常のフィルタリング演算が実行され得る。シンタックス要素「horizontal_tile_boundary_loop_filtering_flag」または「vertical_tile_boundary_loop_filtering_flag」が0に等しい場合、水平境界または垂直境界を越えるループ内フィルタリング演算は不能にされ得る。境界の近くのALF演算では、境界を越えているピクセルへのアクセスが必要とされ得、これは、パディングされたピクセルで時々代用され、これにより、フィルタリングされたとき、境界ピクセルにわたって視覚的品質が劣化し得る。したがって、上記で説明したように、境界を越えるALFフィルタリング演算の代替方法が使用され得る。
【0115】
別の例では、シンタックス要素「tile_boundary_loop_filtering_idc」は1ビットでコーディングされ得、0に等しいときには、前の例の場合のように、0に等しいシンタックス要素「tile_boundary_loop_filtering_idc」と同じセマンティクスを有し、1に等しいときには、0に等しいシンタックス要素「tile_boundary_loop_filtering_idc」と同じセマンティクスを有し、シンタックス要素「vertical_tile_boundary_loop_filtering_flag[i]」および「horizontal_tile_boundary_loop_filtering_flag[i]」は存在しない。言い換えれば、ループフィルタリング演算は、水平タイル境界と垂直タイル境界の両方について許可されるか、または水平タイル境界と垂直タイル境界の両方について許可されないかのいずれかであり得る。
【0116】
一例では、ループフィルタリング演算が許可されないタイル境界が明示的にシグナリングされ得、他のタイル境界を越えるループフィルタリング演算は許可され得る。代替として、ループフィルタリング演算が許可されるタイル境界が明示的にシグナリングされ得、他のタイル境界を越えるループフィルタリング演算は許可されないことがある。一例では、2つの隣接するタイル間の各タイル境界について、タイル境界を越えるループフィルタリング演算が許可されるかどうかを指定するためのフラグがビットストリーム中に含められ得る。
【0117】
上記のすべての例では、タイル境界はタイルインデックスのペアによって識別され得、各タイルインデックスはピクチャ中のタイルを識別する。タイルインデックスは、0から開始する、ピクチャ中のすべてのタイルのタイルラスタ走査順序に対するタイルのインデックスであり得る。
【0118】
一例では、各スライスについて、スライス中のすべてのLCUによってカバーされた領域内のすべてのタイル境界を越えるループフィルタリング演算が許可されるかどうかを指定するためのフラグがビットストリーム中に含められ得る。
【0119】
図13に、本開示による、タイル境界を越えるループフィルタリングを制御する例示的な方法を示すフローチャートを示す。
図13に示す技法は、ビデオエンコーダ20またはビデオデコーダ30のいずれかによって(概してビデオコーダによって)実装され得る。ビデオコーダは、複数のタイルに区分されたビデオデータの1つまたは複数のピクチャについて、ピクチャ内のタイル境界を越えるループフィルタリング演算が許可されるかどうかを表す値をコーディングするように構成される(302)。タイル境界を越えるループフィルタリング演算が許可されないことを示す値(304、いいえ)に応答して、ビデオコーダは、ピクチャのうちの少なくとも1つのタイル間の境界上でループフィルタリング演算を実行することなしにタイルをコーディングする(306)。たとえば、2つ以上のタイルを並列にコーディングすることが望ましい事例では、ループフィルタは許可されないことがある。ループフィルタリング演算が許可されることを示す値(304、はい)に応答して、次いで、ビデオコーダは、ループフィルタリング演算が許可される(または許可されない)1つまたは複数の境界を表す値を随意にコーディングする(308)。ビデオコーダは、たとえば、一連のフラグをコーディングし得、各フラグは特定の境界に対応し、フラグの値は、各境界についてタイル境界横断ループフィルタリングが許可されるのか許可されないのかを示す。ビデオコーダはまた、どの境界についてタイル境界横断ループフィルタリング演算が許可される(または許可されない)かの明示的指示をコーディングし得る。明示的指示は、たとえば、境界上の1つまたは複数のタイルのインデックスを含み得る。
【0120】
ビデオコーダは、ピクチャのうちの少なくとも1つのタイル間の少なくとも1つの境界上でループフィルタリング演算を実行する(310)。ループフィルタリング演算は、上記で説明したように、デブロッキングフィルタリング、適応ループフィルタリング、およびサンプル適応オフセットフィルタリングのうちの1つまたは複数を含み得る。
【0121】
図14に、本開示による、タイル境界を越えるループフィルタリングを制御する例示的な方法を示すフローチャートを示す。
図14に示す技法は、ビデオエンコーダ20またはビデオデコーダ30のいずれかによって(概してビデオコーダによって)実装され得る。ビデオコーダは、複数のタイルに区分されたビデオデータの1つまたは複数のピクチャについて、ピクチャ内のタイル境界を越えるループフィルタリング演算が許可されるかどうかを表す値をコーディングするように構成される(310)。値は、たとえば、3つの可能な値のうちの1つであり得、第1の値は、すべてのタイル境界を越えるループフィルタリングが許可されないことを示し、第2の値は、すべてのタイル境界を越えるループフィルタリングが許可されることを示し、第3の値は、水平境界および垂直境界のための別個のシンタックス要素が別々にコーディングされることを示す。タイル境界を越えるループフィルタリング演算が許可されないことを示す値(312、いいえ)に応答して、次いで、ビデオコーダは、ピクチャのうちの少なくとも1つのタイル間の境界を越えるループフィルタリング演算を実行することなしに複数のタイルをコーディングする(314)。すべてのタイル境界を越えるループフィルタリング演算が許可されることを示す値(316、はい)に応答して、次いで、ビデオコーダは、水平タイル境界および垂直タイル境界のうちの少なくとも1つを越えるループフィルタリング演算を実行する(318)。
【0122】
すべてのタイル境界を越えるループフィルタリング演算が許可されることも、すべてのタイル境界を越えるループフィルタリング演算が許可されないこともないことを示す値(316、いいえ)に応答して、次いで、ビデオコーダは、水平方向においてタイル境界を越えるループフィルタリング演算が許可されるかどうかを示す第2の値をコーディングする(320)。ビデオコーダはまた、垂直方向においてタイル境界を越えるループフィルタリング演算が許可されるかどうかを示す第3の値をコーディングする(322)。第2の値と第3の値とに基づいて、ビデオコーダは、複数のタイル間の水平境界、複数のタイル間の垂直境界、またはその両方を越えるフィルタリング演算を実行する(324)。
【0123】
図15に、本開示による、タイル境界を越えるループフィルタリングを制御する例示的な方法を示すフローチャートを示す。
図15に示す技法は、ビデオエンコーダ20またはビデオデコーダ30のいずれかによって(概してビデオコーダによって)実装され得る。ビデオコーダは、複数のタイルに区分されたビデオデータのピクチャについて、ピクチャ内の少なくとも1つのタイル境界を越えるループフィルタリング演算が許可されることを示す第1のシンタックス要素に関する第1の値をコーディングするように構成される(332)。ビデオコーダは、タイル境界を越えるループフィルタリング演算が許可されることを示す第1の値に応答して、少なくとも1つのタイル境界を越える1つまたは複数のループフィルタリング演算を実行する(334)。1つまたは複数のループフィルタリング演算は、たとえば、デブロッキングフィルタリング演算、適応ループフィルタリング演算、およびサンプル適応オフセットフィルタリング演算のうちの1つまたは複数を含み得る。ビデオコーダは、複数のタイルに区分されたビデオデータの第2のピクチャについて、ピクチャ内のタイル境界を越えるループフィルタリング演算が許可されないことを示すことができる第1のシンタックス要素に関する第2の値をコーディングする(336)。
【0124】
いくつかのビデオコーダでは、第1のシンタックス要素に関する第1の値は、ピクチャ内のすべてのタイル境界を越えるループフィルタリング演算が許可されることを示し得、他のビデオコーダでは、第1のシンタックス要素に関する第1の値は、タイル境界横断ループフィルタリング演算が許可される(または許可されない)境界を識別するために追加のシンタックス要素が使用されることを示し得る。第1の値が、タイル境界横断ループフィルタリング演算が許可される(または許可されない)境界を識別するために追加のシンタックス要素が使用されることを示すビデオコーダでは、ビデオコーダは、ループフィルタリング演算が許可される水平境界を表す値をコーディングし、および/またはループフィルタリング演算が許可されない水平境界を表す値をコーディングし得る。ビデオコーダは、ループフィルタリング演算が許可される垂直境界を表す値をコーディングし、および/またはループフィルタリング演算が許可されない垂直境界を表す値をコーディングし得る。
【0125】
第1の値が、タイル境界横断ループフィルタリング演算が許可される(または許可されない)境界を識別するために追加のシンタックス要素が使用されることを示すビデオコーダでは、ビデオコーダは、水平方向においてピクチャ内のタイル境界を越えるループフィルタリング演算が許可されるかどうかを表すシンタックス要素をコーディングし得、および/または垂直方向においてピクチャ内のタイル境界を越えるループフィルタリング演算が許可されるかどうかを表すシンタックス要素をコーディングし得る。
【0126】
第1の値が、タイル境界横断ループフィルタリング演算が許可される(または許可されない)境界を識別するために追加のシンタックス要素が使用されることを示すビデオコーダでは、ビデオコーダは、ピクチャ内のすべてのタイル境界を越えるループフィルタリング演算が許可されることを示すために第1のシンタックス要素に関する第3の値をコーディングし得る。
【0127】
図13〜
図15を参照しながら説明したビデオコーダは、ビデオデコーダまたはビデオエンコーダのいずれかであり得る。ビデオコーダがビデオデコーダであるとき、シンタックス要素の値をコーディングすることは、たとえば、シンタックス要素を受信することと、シンタックス要素の値を判断または決定(determine)することとを指すことがある。ビデオコーダがビデオエンコーダであるとき、シンタックス要素をコーディングすることは、たとえば、シンタックス要素がコード化されたビデオデータのビットストリーム中に含められ得るように、値をもつシンタックス要素を生成することを指すことがある。
【0128】
1つまたは複数の例では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せで実装され得る。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応するコンピュータ可読記憶媒体を含み得、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を可能にする任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、(1)非一時的である有形コンピュータ可読記憶媒体、あるいは(2)信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示で説明した技法の実装のための命令、コードおよび/またはデータ構造を取り出すために1つまたは複数のコンピュータあるいは1つまたは複数のプロセッサによってアクセスされ得る任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
【0129】
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。ただし、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時媒体を含まないが、代わりに非一時的有形記憶媒体を対象とすることを理解されたい。本明細書で使用するディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびBlu−rayディスク(disc)を含み、ディスク(disk)は、通常、データを磁気的に再生し、ディスク(disc)は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【0130】
命令は、1つまたは複数のデジタル信号プロセッサ(DSP)などの1つまたは複数のプロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、あるいは他の等価な集積回路またはディスクリート論理回路によって実行され得る。したがって、本明細書で使用する「プロセッサ」という用語は、前述の構造、または本明細書で説明した技法の実装に好適な他の構造のいずれかを指すことがある。さらに、いくつかの態様では、本明細書で説明した機能は、符号化および復号のために構成された専用のハードウェアおよび/またはソフトウェアモジュール内に与えられ得、あるいは複合コーデックに組み込まれ得る。また、本技法は、1つまたは複数の回路または論理要素中に十分に実装され得る。
【0131】
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置において実装され得る。本開示では、開示する技法を実行するように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットについて説明したが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェアおよび/またはファームウェアとともに、上記で説明した1つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わせられるか、または相互動作ハードウェアユニットの集合によって与えられ得る。
【0132】
様々な例について説明した。これらおよび他の例は以下の特許請求の範囲内に入る。
以下に本願出願当初の特許請求の範囲を付記する。
[C1]
ビデオデータをコーディングする方法であって、当該方法は下記を具備する、
複数のタイルに区分されたビデオデータのピクチャについて、第1のシンタックス要素に関する第1の値をコーディングすることであって、ここにおいて、前記第1のシンタックス要素に関する前記第1の値が、前記ピクチャ内の少なくとも1つのタイル境界を越えるループフィルタリング演算が許可されることを示し、
前記ループフィルタリング演算が前記タイル境界を越えて許可されることを示す前記第1の値に応答して、前記少なくとも1つのタイル境界を越える前記1つまたは複数のループフィルタリング演算を実行すること。
[C2]
前記1つまたは複数のループフィルタリング演算が、デブロッキングフィルタリング演算およびサンプル適応オフセットフィルタリング演算のうちの1つまたは複数を備える、C1に記載の方法。
[C3]
前記1つまたは複数のループフィルタリング演算が適応ループフィルタリング演算を備える、C1に記載の方法。
[C4]
前記第1のシンタックス要素に関する前記第1の値が、前記ピクチャ内のすべてのタイル境界を越えて許可されるループフィルタ処理演算を示す、C1に記載の方法。
[C5]
前記第1のシンタックス要素に関する第2の値を、複数のタイルに区分されたビデオデータの第2のピクチャについてコーディングすることであって、ここにおいて、前記第1のシンタックス要素に関する前記第2の値は、ループフィルタリング演算が前記第2のピクチャ内のタイル境界を越えて許可されないことを示す、C1に記載の方法。
[C6]
前記第2のピクチャの2つ以上のタイルを並列にコーディングすること
をさらに備える、C5に記載の方法。
[C7]
前記第1のシンタックス要素に関する第3の値を複数のタイルに区分されたビデオデータの第3のピクチャについてコーディングすることであって、ここにおいて、前記第1のシンタックス要素に関する前記第3の値は、前記第3のピクチャ内のすべてのタイル境界を越えてループフィルタリング演算が許可されることを示す、C1に記載の方法。
[C8]
前記第1のシンタックス要素に関する前記第1の値に応答して、前記ループフィルタリング演算が許可される水平境界を表す値をコーディングすること
をさらに備える、C1に記載の方法。
[C9]
前記第1のシンタックス要素に関する前記第1の値に応答して、前記ループフィルタリング演算が許可されない水平境界を表す値をコーディングすること
をさらに備える、C1に記載の方法。
[C10]
前記第1のシンタックス要素に関する前記第1の値に応答して、前記ループフィルタリング演算が許可される垂直境界を表す値をコーディングすること
をさらに備える、C1に記載の方法。
[C11]
前記第1のシンタックス要素に関する前記第1の値に応答して、前記ループフィルタリング演算が許可されない垂直境界を表す値をコーディングすること
をさらに備える、C1に記載の方法。
[C12]
前記第1のシンタックス要素に関する前記第1の値に応答して、ループフィルタリング演算が、水平方向において前記ピクチャ内のタイル境界を越えて許可されるかどうかを表す第2のシンタックス要素をコーディングすること
をさらに備える、C1に記載の方法。
[C13]
前記第1のシンタックス要素に関する前記第1の値に応答して、ループフィルタリング演算が、垂直方向において前記ピクチャ内のタイル境界を越えて許可されるかどうかを表す第2のシンタックス要素をコーディングすること
をさらに備える、C1に記載の方法。
[C14]
前記第1のシンタックス要素に関する前記第1の値に応答して、ループフィルタリング演算が、前記ピクチャ内の水平タイル境界を越えて許可されるかどうかを表す第2のシンタックス要素をコーディングすることと、ループフィルタリング演算が、前記ピクチャ内の垂直タイル境界を越えて許可されるかどうかを表す第3のシンタックス要素をコーディングすることと
をさらに備える、C1に記載の方法。
[C15]
前記第1の値が、前記ピクチャのうちの1つのスライスに対応し、前記ループフィルタリング演算が前記スライスが接するタイル境界を越えて許可されるかどうかを表す、C1に記載の方法。
[C16]
前記方法がビデオデコーダによって実行され、前記第1のシンタックス要素に関する前記第1の値をコーディングすることが、前記第1のシンタックス要素を受信することと、前記第1の値を決定することとを備える、C1に記載の方法。
[C17]
前記方法がビデオエンコーダによって実行され、前記第1のシンタックス要素の前記第1の値をコーディングすることが、コード化されたビデオデータのビットストリーム中に含めるために前記第1の値をもつ前記第1のシンタックス要素を生成することを備える、C1に記載の方法。
[C18]
ビデオデータをコーディングするためのデバイスであって、当該デバイスは下記の構成を具備する、
第1のシンタックス要素に関する第1の値を複数のタイルに区分されたビデオデータのピクチャについてコーディングするビデオコーダを備え、ここにおいて、前記第1のシンタックス要素に関する前記第1の値は、前記ピクチャ内の少なくとも1つのタイル境界を越えるループフィルタリング演算が許可されることを示し、前記タイル境界を越える前記ループフィルタリング演算が許可されることを示す前記第1の値に応答して、前記少なくとも1つのタイル境界を越える前記1つまたは複数のループフィルタリング演算を実行する。
[C19]
前記1つまたは複数のループフィルタリング演算が、デブロッキングフィルタリング演算およびサンプル適応オフセットフィルタリング演算のうちの1つまたは複数を備える、C18に記載のデバイス。
[C20]
前記第1のシンタックス要素に関する前記第1の値が、ループフィルタリング演算が前記ピクチャ内のすべてのタイル境界を越えて許可されるを示す、C18に記載のデバイス。
[C21]
前記ビデオコーダは、前記第1のシンタックス要素に関する第2の値を、複数のタイルに区分されたビデオデータの第2のピクチャについてコーディングすることであって、ここにおいて、前記第1のシンタックス要素に関する前記第2の値は、ループフィルタリング演算が前記第2のピクチャ内のタイル境界を越えて許可されないことを示す、C18に記載のデバイス。
[C22]
前記ビデオコーダが、前記第2のピクチャの2つ以上のタイルを並列にコーディングするようにさらに構成された、C21に記載のデバイス。
[C23]
前記ビデオコーダは、前記第1のシンタックス要素に関する第3の値を複数のタイルに区分されたビデオデータの第3のピクチャについてコーディングすることであって、ここにおいて、前記第1のシンタックス要素に関する前記第3の値は、ループフィルタリング演算が前記第3のピクチャ内のすべてのタイル境界を越えて許可されることを示す、C18に記載のデバイス。
[C24]
前記ビデオコーダは、前記第1のシンタックス要素に関する前記第1の値に応答して、前記ループフィルタリング演算が許可される水平境界を表す値をコーディングするようにさらに構成された、C18に記載のデバイス。
[C25]
前記ビデオコーダは、前記第1のシンタックス要素に関する前記第1の値に応答して、前記ループフィルタリング演算が許可されない水平境界を表す値をコーディングするようにさらに構成された、C18に記載のデバイス。
[C26]
前記ビデオコーダは、前記第1のシンタックス要素に関する前記第1の値に応答して、前記ループフィルタリング演算が許可される垂直境界を表す値をコーディングするようにさらに構成された、C18に記載のデバイス。
[C27]
前記ビデオコーダは、前記第1のシンタックス要素に関する前記第1の値に応答して、前記ループフィルタリング演算が許可されない垂直境界を表す値をコーディングするようにさらに構成された、C18に記載のデバイス。
[C28]
前記ビデオコーダは、前記第1のシンタックス要素に関する前記第1の値に応答して、ループフィルタリング演算が、水平方向において前記ピクチャ内のタイル境界を越えて許可されるかどうかを表す第2のシンタックス要素をコーディングするようにさらに構成された、C18に記載のデバイス。
[C29]
前記ビデオコーダは、前記第1のシンタックス要素に関する前記第1の値に応答して、ループフィルタリング演算が、垂直方向において前記ピクチャ内のタイル境界を越えて許可されるかどうかを表す第2のシンタックス要素をコーディングするようにさらに構成された、C18に記載のデバイス。
[C30]
前記ビデオコーダは、前記第1のシンタックス要素に関する前記第1の値に応答して、ループフィルタリング演算が、前記ピクチャ内の水平タイル境界を越えて許可されるかどうかを表す第2のシンタックス要素をコーディングすることと、ループフィルタリング演算が、前記ピクチャ内の垂直タイル境界を越えて許可されるかどうかを表す第3のシンタックス要素をコーディングすることとを行うようにさらに構成された、C18に記載のデバイス。
[C31]
前記第1の値が、前記ピクチャのうちの1つのスライスに対応し、前記スライスが接するタイル境界を越える前記ループフィルタリング演算が許可されるかどうかを表す、C18に記載のデバイス。
[C32]
前記ビデオコーダがビデオデコーダを備え、前記ビデオコーダが、前記第1のシンタックス要素を受信することと、前記第1の値を決定することとによって前記第1のシンタックス要素に関する前記第1の値をコーディングするようにさらに構成された、C18に記載のデバイス。
[C33]
前記ビデオコーダがビデオエンコーダを備え、前記ビデオコーダが、コード化されたビデオデータのビットストリーム中に含めるために前記第1の値をもつ前記第1のシンタックス要素を生成することによって前記第1のシンタックス要素に関する前記第1の値をコーディングするようにさらに構成された、C18に記載のデバイス。
[C34]
前記デバイスが、
集積回路と、
マイクロプロセッサと、
前記ビデオコーダを含むワイヤレス通信デバイスと
のうちの少なくとも1つを備える、C18に記載のデバイス。
[C35]
ビデオデータをコーディングするためのデバイスであって、当該デバイスは下記の構成を備える、
第1のシンタックス要素に関する第1の値を複数のタイルに区分されたビデオデータのピクチャについてコーディングするための手段であって、ここにおいて、前記第1のシンタックス要素に関する前記第1の値は、ループフィルタリング演算が前記ピクチャ内の少なくとも1つのタイル境界を越えて許可されることを示し、
前記タイル境界を越える前記ループフィルタリング演算が許可されることを示す前記第1の値に応答して、前記少なくとも1つのタイル境界を越える前記1つまたは複数のループフィルタリング演算を実行するための手段。
[C36]
前記1つまたは複数のループフィルタリング演算が、デブロッキングフィルタリング演算、適応ループフィルタリング演算、およびサンプル適応オフセットフィルタリング演算のうちの1つまたは複数を備える、C35に記載のデバイス。
[C37]
前記第1のシンタックス要素に関する前記第1の値が、ループフィルタリング演算前記ピクチャ内のすべてのタイル境界を越えて許可されるを示す、C35に記載のデバイス。
[C38]
前記第1のシンタックス要素に関する第2の値を、複数のタイルに区分されたビデオデータの第2のピクチャについて、コーディングするための手段であって、ここにおいて、前記第1のシンタックス要素に関する前記第2の値は、ループフィルタリング演算が前記第2のピクチャ内のタイル境界を越えて許可されないことを示す、C35に記載のデバイス。
[C39]
前記第2のピクチャの2つ以上のスライスを並列にコーディングするための手段
をさらに備える、C38に記載のデバイス。
[C40]
前記第1のシンタックス要素に関する第3の値を複数のタイルに区分されたビデオデータの第3のピクチャについてコーディングするための手段であって、ここにおいて、前記第1のシンタックス要素に関する前記第3の値は、ループフィルタリング演算が前記第3のピクチャ内のすべてのタイル境界を越えて許可されることを示す、C35に記載のデバイス。
[C41]
前記第1のシンタックス要素に関する前記第1の値に応答して、前記ループフィルタリング演算が許可される水平境界を表す値をコーディングするための手段
をさらに備える、C35に記載のデバイス。
[C42]
前記第1のシンタックス要素に関する前記第1の値に応答して、前記ループフィルタリング演算が許可されない水平境界を表す値をコーディングするための手段
をさらに備える、C35に記載のデバイス。
[C43]
前記第1のシンタックス要素に関する前記第1の値に応答して、前記ループフィルタリング演算が許可される垂直境界を表す値をコーディングするための手段
をさらに備える、C35に記載のデバイス。
[C44]
前記第1のシンタックス要素に関する前記第1の値に応答して、前記ループフィルタリング演算が許可されない垂直境界を表す値をコーディングするための手段
をさらに備える、C35に記載のデバイス。
[C45]
前記第1のシンタックス要素に関する前記第1の値に応答して、ループフィルタリング演算が、水平方向において前記ピクチャ内のタイル境界を越えて許可されるかどうかを表す第2のシンタックス要素をコーディングするための手段
をさらに備える、C35に記載のデバイス。
[C46]
前記第1のシンタックス要素に関する前記第1の値に応答して、ループフィルタリング演算が、垂直方向において前記ピクチャ内のタイル境界を越えて許可されるかどうかを表す第2のシンタックス要素をコーディングするための手段
をさらに備える、C35に記載のデバイス。
[C47]
前記第1のシンタックス要素に関する前記第1の値に応答して、ループフィルタリング演算が、前記ピクチャ内の水平タイル境界を越えて許可されるかどうかを表す第2のシンタックス要素をコーディングするための手段と、
前記第1のシンタックス要素に関する前記第1の値に応答して、ループフィルタリング演算が、前記ピクチャ内の垂直タイル境界を越えて許可されるかどうかを表す第3のシンタックス要素をコーディングするための手段と
をさらに備える、C35に記載のデバイス。
[C48]
前記第1の値が、前記ピクチャのうちの1つのスライスに対応し、前記ループフィルタリング演算が前記スライスが接するタイル境界を越えて許可されるかどうかを表す、C35に記載のデバイス。
[C49]
前記デバイスがビデオデコーダを備え、前記第1のシンタックス要素に関する前記第1の値をコーディングするための前記手段が、前記第1のシンタックス要素を受信するための手段と、前記第1の値を決定するための手段とを備える、C35に記載のデバイス。
[C50]
前記デバイスがビデオエンコーダを備え、前記第1のシンタックス要素に関する前記第1の値をコーディングするための前記手段が、コード化されたビデオデータのビットストリーム中に含めるために前記第1の値をもつ前記第1のシンタックス要素を生成することを備える、C35に記載のデバイス。
[C51]
1つまたは複数のプロセッサによって実行されたとき、前記1つまたは複数のプロセッサに、
前記第1のシンタックス要素に関する第1の値を、複数のタイルに区分されたビデオデータのピクチャについてコーディングすることであって、ここにおいて、前記第1のシンタックス要素に関する前記第1の値は、ループフィルタリング演算が前記ピクチャ内の少なくとも1つのタイル境界を越えて許可されることを示し、
前記ループフィルタリング演算が前記タイル境界を越えて許可されることを示す前記第1の値に応答して、前記少なくとも1つのタイル境界を越える前記1つまたは複数のループフィルタリング演算を実行することと
を行わせる命令を記憶する非一時的コンピュータ可読記憶媒体。