(57)【特許請求の範囲】
【請求項１】
予測後ブロックを形成するために、ビデオデータのブロックの一次境界に沿った画素の値を使用して、前記ブロックをイントラ予測することと、
前記ブロックの二次境界のデータを使用して前記予測後ブロックをフィルタリングすべきかどうかを判定することと、ここにおいて、前記二次境界は前記一次境界に対して垂直である、
前記ブロックをコーディングする前に、前記予測後ブロックをフィルタリングすべきであるとの判定に応答して、前記二次境界のデータを使用して前記予測後ブロックをフィルタリングすることと
を備える、ビデオデータをコーディングする方法。
【請求項２】
前記二次境界の前記データを使用して前記予測後ブロックをフィルタリングすべきかどうかを判定することは、境界関係を表す値を計算することを備える、請求項１に記載の方法。
【請求項３】
前記予測後ブロックをフィルタリングすべきかどうかを判定することは、前記計算された値のしきい値との比較に基づいて前記予測後ブロックをフィルタリングすべきかどうかを判定することを備える、請求項２に記載の方法。
【請求項４】
前記値は、前記一次境界の１つまたは複数の画素の画素値と前記二次境界の１つまたは複数の画素の画素値との間の関係を表す、請求項２に記載の方法。
【請求項５】
前記値は、前記一次境界および前記二次境界のうちの少なくとも１つの境界の１つまたは複数の画素の画素値と前記予測後ブロックの１つまたは複数の画素の画素値との間の関係を表す、請求項２に記載の方法。
【請求項６】
前記値を計算することは、ラプラシアン値を計算することを備える、請求項２に記載の方法。
【請求項７】
前記ブロックをイントラ予測することは、相対的に水平のイントラ予測モードを使用して前記ブロックを予測することを備え、前記ラプラシアン値を計算することは、｜ＴＲ［Ｎ−２］−２＊ＴＲ［Ｎ−１］＋ＴＲ［Ｎ］｜と｜ＴＲ［Ｎ−３］−２＊ＴＲ［Ｎ−２］＋ＴＲ［Ｎ−１］｜との最大値を計算することを備え、前記二次境界は、上側境界を備え、ＴＲ［ｋ］は、前記ブロックの左エッジから始まる上境界に沿ったｋ番目の画素に対応し、Ｎは、前記ブロックの幅を表す整数値である、請求項６に記載の方法。
【請求項８】
前記ブロックをイントラ予測することは、相対的に垂直のイントラ予測モードを使用して前記ブロックを予測することを備え、前記ラプラシアン値を計算することは、｜ＳＲ［Ｎ−２］−２＊ＳＲ［Ｎ−１］＋ＳＲ［Ｎ］｜と｜ＳＲ［Ｎ−３］−２＊ＳＲ［Ｎ−２］＋ＳＲ［Ｎ−１］｜との最大値を計算することを備え、前記二次境界は、左側境界を備え、ＳＲ［ｊ］は、前記ブロックの上エッジから始まる前記左側境界に沿ったｊ番目の画素に対応し、Ｎは、前記ブロックの高さを表す整数値である、請求項６に記載の方法。
【請求項９】
前記ブロックをイントラ予測することは、非方向性イントラ予測モードを使用して前記ブロックを予測することを備え、前記ラプラシアン値を計算することは、｜ＴＲ［Ｎ−２］−２＊ＴＲ［Ｎ−１］＋ＴＲ［Ｎ］｜と、｜ＴＲ［Ｎ−３］−２＊ＴＲ［Ｎ−２］＋ＴＲ［Ｎ−１］｜と、｜ＳＲ［Ｎ−２］−２＊ＳＲ［Ｎ−１］＋ＳＲ［Ｎ］｜と、｜ＳＲ［Ｎ−３］−２＊ＳＲ［Ｎ−２］＋ＳＲ［Ｎ−１］｜との最大値を計算することを備え、ＴＲ［ｋ］は、前記ブロックの左エッジから始まる上側境界に沿ったｋ番目の画素に対応し、ＳＲ［ｊ］は、前記ブロックの上エッジから始まる左側境界に沿ったｊ番目の画素に対応し、前記ブロックは、正方形ブロックを備え、Ｎは、前記ブロックの幅および高さを表す整数値である、請求項６に記載の方法。
【請求項１０】
非方向性イントラ予測モードを使用して前記ブロックをイントラ予測することは、ＤＣモードおよびプレーナモードのうちの１つを使用して前記ブロックを予測することを備える、請求項９に記載の方法。
【請求項１１】
前記値を計算することは、グラディエント差値を計算することを備える、請求項２に記載の方法。
【請求項１２】
前記ブロックをイントラ予測することは、相対的に水平のイントラ予測モードを使用して前記ブロックを予測することを備え、前記グラディエント差値を計算することは、｜ＴＲ［Ｎ］−Ｐ［Ｎ，０］｜と、｜ＴＲ［Ｎ−１］−Ｐ［Ｎ−１，０］｜と、｜ＴＲ［Ｎ］−Ｐ［Ｎ−１，０］｜と、｜ＴＲ［Ｎ−１］−Ｐ［Ｎ，０］｜との最大値を計算することを備え、前記二次境界は、上側境界を備え、ＴＲ［ｋ］は、前記ブロックの左エッジから始まる上境界に沿ったｋ番目の画素に対応し、Ｎは、前記ブロックの幅を表す整数値であり、Ｐ［ｉ，ｊ］は、位置［ｉ，ｊ］の前記予測後ブロックの画素に対応する、請求項１１に記載の方法。
【請求項１３】
前記ブロックをイントラ予測することは、相対的に垂直のイントラ予測モードを使用して前記ブロックを予測することを備え、前記グラディエント差値を計算することは、｜ＳＲ［Ｎ］−Ｐ［０，Ｎ］｜と、｜ＳＲ［Ｎ−１］−Ｐ［０，Ｎ−１］｜と、｜ＳＲ［Ｎ］−Ｐ［０，Ｎ−１］｜と、｜ＳＲ［Ｎ−１］−Ｐ［０，Ｎ］｜との最大値を計算することを備え、ＳＲ［ｊ］は、前記ブロックの上エッジから始まる左側境界に沿ったｊ番目の画素に対応し、Ｎは、前記ブロックの高さを表す整数値であり、Ｐ［ｉ，ｊ］は、位置［ｉ，ｊ］の前記予測後ブロックの画素に対応する、請求項１１に記載の方法。
【請求項１４】
前記予測後ブロックをフィルタリングすべきではないとの判定に応答して、前記予測後ブロックを使用して前記ブロックをコーディングすることと、
前記予測後ブロックをフィルタリングすべきであるとの判定に応答して、前記フィルタリングされた予測後ブロックを使用して前記ブロックをコーディングすることと
をさらに備える、請求項１に記載の方法。
【請求項１５】
前記予測後ブロックを使用して前記ブロックをコーディングすることは、前記予測後ブロックに復号された残差値を加算することを備える、前記予測後ブロックを使用して前記ブロックを復号することを備え、
前記フィルタリングされた予測後ブロックを使用して前記ブロックをコーディングすることは、前記フィルタリングされた予測後ブロックに前記復号された残差値を加算することを備える、前記フィルタリングされた予測後ブロックを使用して前記ブロックを復号することを備える、
請求項１４に記載の方法。
【請求項１６】
イントラ予測することは、前記ブロックに使用すべきイントラ予測モードを選択することと、前記選択されたイントラ予測モードを使用して前記ブロックを予測することとを備え、
前記予測後ブロックを使用して前記ブロックをコーディングすることは、前記ブロックと前記予測後ブロックとの間の差を表す残差値を計算することを備える、前記予測後ブロックを使用して前記ブロックを符号化することを備え、
前記フィルタリングされた予測後ブロックを使用して前記ブロックをコーディングすることは、前記ブロックと前記フィルタリングされた予測後ブロックとの間の差を表す残差値を計算することを備える、前記フィルタリングされた予測後ブロックを使用して前記ブロックを符号化することを備える、
請求項１４に記載の方法。
【請求項１７】
前記二次境界のデータを使用して前記予測後ブロックをフィルタリングすべきかどうかを表すシンタックス情報をコーディングすることをさらに備える、請求項１に記載の方法。
【請求項１８】
予測後ブロックを形成するために、ビデオデータのブロックの一次境界に沿った画素の値を使用して、前記ブロックをイントラ予測し、前記ブロックの二次境界のデータを使用して前記予測後ブロックをフィルタリングすべきかどうかを判定し、ここにおいて、前記二次境界は前記一次境界に対して垂直であり、前記ブロックをコーディングする前に、前記予測後ブロックをフィルタリングすべきであるとの判定に応答して、前記二次境界のデータを使用して前記予測後ブロックをフィルタリングするように構成されたビデオコーダを備える、ビデオデータをコーディングするデバイス。
【請求項１９】
前記二次境界の前記データを使用して前記予測後ブロックをフィルタリングすべきかどうかを判定するために、前記ビデオコーダは、境界関係を表す値を計算するように構成される、請求項１８に記載のデバイス。
【請求項２０】
前記ビデオコーダは、前記計算された値のしきい値との比較に基づいて前記予測後ブロックをフィルタリングすべきかどうかを判定するように構成される、請求項１９に記載のデバイス。
【請求項２１】
前記値は、前記一次境界の１つまたは複数の画素の画素値と前記二次境界の１つまたは複数の画素の画素値との間の関係ならびに前記一次境界および前記二次境界のうちの少なくとも１つの境界の１つまたは複数の画素の画素値と前記予測後ブロックの１つまたは複数の画素の画素値との間の関係のうちの１つを表す、請求項１９に記載のデバイス。
【請求項２２】
前記値を計算するために、前記ビデオコーダは、ラプラシアン値を計算するように構成される、請求項１８に記載のデバイス。
【請求項２３】
前記値を計算するために、前記ビデオコーダは、グラディエント差値を計算するように構成される、請求項１８に記載のデバイス。
【請求項２４】
前記ビデオコーダは、前記予測後ブロックをフィルタリングすべきではないとの判定に応答して、前記予測後ブロックを使用して前記ブロックをコーディングし、前記予測後ブロックをフィルタリングすべきであるとの判定に応答して、前記フィルタリングされた予測後ブロックを使用して前記ブロックをコーディングするようにさらに構成される、請求項１８に記載のデバイス。
【請求項２５】
予測後ブロックを形成するために、ビデオデータのブロックの一次境界に沿った画素の値を使用して、前記ブロックをイントラ予測するための手段と、
前記ブロックの二次境界のデータを使用して前記予測後ブロックをフィルタリングすべきかどうかを判定するための手段と、ここにおいて、前記二次境界は前記一次境界に対して垂直である、
前記ブロックをコーディングする前に、前記予測後ブロックをフィルタリングすべきであるとの判定に応答して、前記二次境界のデータを使用して前記予測後ブロックをフィルタリングするための手段と
を備える、ビデオデータをコーディングするデバイス。
【請求項２６】
前記二次境界の前記データを使用して前記予測後ブロックをフィルタリングすべきかどうかを判定するための前記手段は、境界関係を表す値を計算するための手段を備える、請求項２５に記載のデバイス。
【請求項２７】
前記予測後ブロックをフィルタリングすべきかどうかを判定するための前記手段は、前記計算された値のしきい値との比較に基づいて前記予測後ブロックをフィルタリングすべきかどうかを判定するための手段を備える、請求項２６に記載のデバイス。
【請求項２８】
前記値は、前記一次境界の１つまたは複数の画素の画素値と前記二次境界の１つまたは複数の画素の画素値との間の関係ならびに前記一次境界および前記二次境界のうちの少なくとも１つの境界の１つまたは複数の画素の画素値と前記予測後ブロックの１つまたは複数の画素の画素値との間の関係のうちの１つを表す、請求項２６に記載のデバイス。
【請求項２９】
前記値を計算するための前記手段は、ラプラシアン値を計算するための手段を備える、請求項２５に記載のデバイス。
【請求項３０】
前記値を計算するための前記手段は、グラディエント差値を計算するための手段を備える、請求項２５に記載のデバイス。
【請求項３１】
前記予測後ブロックをフィルタリングすべきではないとの判定に応答して、前記予測後ブロックを使用して前記ブロックをコーディングするための手段と、
前記予測後ブロックをフィルタリングすべきであるとの判定に応答して、前記フィルタリングされた予測後ブロックを使用して前記ブロックをコーディングするための手段と
をさらに備える、請求項２５に記載のデバイス。
【請求項３２】
実行された時に、プロセッサに、
予測後ブロックを形成するために、ビデオデータのブロックの一次境界に沿った画素の値を使用して、前記ブロックをイントラ予測させる命令と、
前記ブロックの二次境界のデータを使用して前記予測後ブロックをフィルタリングすべきかどうかを判定させる命令と、ここにおいて、前記二次境界は前記一次境界に対して垂直である、
前記ブロックをコーディングする前に、前記予測後ブロックをフィルタリングすべきであるとの判定に応答して、前記二次境界のデータを使用して前記予測後ブロックをフィルタリングさせる命令と
が格納されたコンピュータ可読記憶媒体。
【請求項３３】
前記プロセッサに前記二次境界の前記データを使用して前記予測後ブロックをフィルタリングすべきかどうかを判定させる前記命令は、前記プロセッサに境界関係を表す値を計算させる命令を備える、請求項３２に記載のコンピュータ可読記憶媒体。
【請求項３４】
前記プロセッサに前記予測後ブロックをフィルタリングすべきかどうかを判定させる前記命令は、前記プロセッサに前記計算された値のしきい値との比較に基づいて前記予測後ブロックをフィルタリングすべきかどうかを判定させる命令を備える、請求項３３に記載のコンピュータ可読記憶媒体。
【請求項３５】
前記値は、前記一次境界の１つまたは複数の画素の画素値と前記二次境界の１つまたは複数の画素の画素値との間の関係ならびに前記一次境界および前記二次境界のうちの少なくとも１つの境界の１つまたは複数の画素の画素値と前記予測後ブロックの１つまたは複数の画素の画素値との間の関係のうちの１つを表す、請求項３３に記載のコンピュータ可読記憶媒体。
【請求項３６】
前記プロセッサに前記値を計算させる前記命令は、前記プロセッサにラプラシアン値を計算させる命令を備える、請求項３２に記載のコンピュータ可読記憶媒体。
【請求項３７】
前記プロセッサに前記値を計算させる前記命令は、前記プロセッサにグラディエント差値を計算させる命令を備える、請求項３２に記載のコンピュータ可読記憶媒体。
【請求項３８】
前記プロセッサに、
前記予測後ブロックをフィルタリングすべきではないとの判定に応答して、前記予測後ブロックを使用して前記ブロックをコーディングさせる命令と、
前記予測後ブロックをフィルタリングすべきであるとの判定に応答して、前記フィルタリングされた予測後ブロックを使用して前記ブロックをコーディングさせる命令と
をさらに備える、請求項３２に記載のコンピュータ可読記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本願は、その内容全体が参照によって本明細書に組み込まれている、２０１１年１１月４日に出願した米国仮出願第６１／５５６，０３８号の利益を主張するものである。
【０００２】
本開示は、ビデオコーディングに関し、より具体的には、ビデオデータのイントラ予測コーディングに関する。
【背景技術】
【０００３】
デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末（ＰＤＡ）、ラップトップコンピュータまたはデスクトップコンピュータ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレイヤ、ビデオゲーミングデバイス、ビデオゲームコンソール、セルラ無線電話機または衛星無線電話機、ビデオ会議デバイス、および類似物を含む広範囲のデバイスに組み込まれ得る。デジタルビデオデバイスは、デジタルビデオ情報をより効率的に送信し、受信するために、ＭＰＥＧ−２、ＭＰＥＧ−４、ＩＴＵ−Ｔ  Ｈ．２６３またはＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４、Ｐａｒｔ  １０、Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）によって定義される標準規格およびそのような標準規格の拡張に記載の技法など、ビデオ圧縮技法を実施する。
【０００４】
ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を減らすか除去するために、空間予測および／または時間予測を実行する。ブロックベースのビデオコーディングのために、ビデオフレームまたはスライスは、ブロックに区分され得る。各ブロックは、さらに区分され得る。イントラコーディングされた（Ｉ）フレームまたはスライス内のブロックは、隣接ブロックに関する空間予測を使用して符号化される。インターコーディングされた（ＰまたはＢ）フレームまたはスライス内のブロックは、同一のフレームもしくはスライス内の隣接ブロックに関する空間予測または他の基準フレームに関する時間予測を使用することができる。
【発明の概要】
【０００５】
一般に、本開示は、ビデオデータのイントラ予測コーディング中に二次境界フィルタリング（secondary boundary filtering）を実行すべきかどうかを判定する技法を説明する。二次境界フィルタリングを実行すべきかどうかの判断は、数学的な境界関係、たとえば、現在のブロックの境界の間の関係または現在のブロックの境界と現在のブロックの画素値との間の関係に基づくものとすることができる。数学的な境界関係は、いくつかの例では、ラプラシアン値またはグラディエント差に対応することができる。
【０００６】
一例では、方法は、予測後ブロックを形成するために、ビデオデータのブロックの一次境界に沿った画素の値を使用して、ブロックをイントラ予測することと、ブロックの二次境界のデータを使用して予測後ブロックをフィルタリングすべきかどうかを判定することと、予測後ブロックをフィルタリングすべきであるとの判定に応答して、二次境界のデータを使用して予測後ブロックをフィルタリングすることとを含む。
【０００７】
別の例では、デバイスは、予測後ブロックを形成するために、ビデオデータのブロックの一次境界に沿った画素の値を使用して、ブロックをイントラ予測し、ブロックの二次境界のデータを使用して予測後ブロックをフィルタリングすべきかどうかを判定し、予測後ブロックをフィルタリングすべきであるとの判定に応答して、二次境界のデータを使用して予測後ブロックをフィルタリングするように構成されたビデオコーダを含む。
【０００８】
別の例では、デバイスは、予測後ブロックを形成するために、ビデオデータのブロックの一次境界に沿った画素の値を使用して、ブロックをイントラ予測するための手段と、ブロックの二次境界のデータを使用して予測後ブロックをフィルタリングすべきかどうかを判定するための手段と、予測後ブロックをフィルタリングすべきであるとの判定に応答して、二次境界のデータを使用して予測後ブロックをフィルタリングするための手段とを含む。
【０００９】
別の例では、コンピュータ可読記憶媒体は、実行された時に、プロセッサに、予測後ブロックを形成するために、ビデオデータのブロックの一次境界に沿った画素の値を使用して、ブロックをイントラ予測させ、ブロックの二次境界のデータを使用して予測後ブロックをフィルタリングすべきかどうかを判定させ、予測後ブロックをフィルタリングすべきであるとの判定に応答して、二次境界のデータを使用して予測後ブロックをフィルタリングさせる命令が格納される。
【００１０】
１つまたは複数の例の詳細は、添付図面および下の説明で示される。他の特徴、目的、および利点は、その説明および図面ならびに特許請求の範囲から明白になる。
【図面の簡単な説明】
【００１１】
【図１】二次境界フィルタリングを実行すべきかどうかを判定する技法を利用することができる例のビデオ符号化および復号システムを示すブロック図。
【図２】二次境界フィルタリングを実行すべきかどうかを判定する技法を実施することができるビデオ符号器の例を示すブロック図。
【図３】二次境界フィルタリングを実行すべきかどうかを判定する技法を実施することができるビデオ復号器の例を示すブロック図。
【図４】ＨＥＶＣでのさまざまなイントラ予測モード方向を示す概念図。
【図５Ａ】ラプラシアンに基づく基準境界サンプルの間の境界関係の計算を示す概念図。
【図５Ｂ】ラプラシアンに基づく基準境界サンプルの間の境界関係の計算を示す概念図。
【図６】現在のブロックを符号化する例の方法を示す流れ図。
【図７】ビデオデータの現在のブロックを復号する例の方法を示す流れ図。
【図８】本開示の技法による二次境界フィルタリングを実行すべきかどうかを判定する例の方法を示す流れ図。
【発明を実施するための形態】
【００１２】
一般に、本開示は、イントラ予測コーディング中の画素の処理に関する。具体的には、本開示は、ビデオデータのブロックのイントラ予測コーディング中に二次境界フィルタリングをイネーブルしまたは（完全にまたは部分的に）ディスエーブルする技法を説明するものである。二次境界フィルタリングは、一次境界のデータを使用して予測された予測後ブロックを、二次境界のデータを使用してフィルタリングすることと説明することもできる。すなわち、ブロックのイントラ予測は、一次境界のデータを使用してブロックを予測することと、二次境界を使用してブロックをフィルタリングするかどうかを判定することと、その後、ブロックをフィルタリングするとの判定に応答して、予測後ブロックを二次境界のデータを使用してフィルタリングすることとを含むことができる。
【００１３】
二次境界フィルタリングは、予測ユニット内で画素の変更された値を作るために、二次境界の画素の値と予測ユニット内の画素の値とにさまざまなフィルタのいずれかを適用することを含むことができる。二次境界フィルタリングは、一般に、二次境界の１つまたは複数の値を使用して、予測後ブロックの１つまたは複数の画素のオフセット値を計算することと、それぞれの画素にオフセット値を適用することとを含むことができる。
【００１４】
境界は、左側境界または上境界（すなわち、上側の境界）に対応することができる。予測ユニットは、方向性イントラ予測モードおよび非方向性イントラ予測モードなど、さまざまなイントラ予測モードを介して生成され得る。非方向性イントラ予測モードは、たとえば、ＤＣモードおよびプレーナモードを含むことができる。方向性イントラ予測モードは、本開示で説明されるように、相対的に水平のイントラ予測モード（relatively horizontal intra-prediction mode）と、相対的に垂直のイントラ予測モード（relatively vertical intra-prediction mode）と、相対的に対角のイントラ予測モード（relatively diagonal intra-prediction mode）とを含むことができる。相対的に水平のイントラ予測モードは、左側境界のデータを使用して、予測後ブロックを生成するのに使用され、相対的に垂直のイントラ予測モードは、上側境界のデータを使用して、予測後ブロックを生成するのに使用される。
【００１５】
したがって、上で説明されるように、一次境界は、予測後ブロックが相対的に水平のイントラ予測モードを使用して生成される時には、左側境界と考えることができ、予測後ブロックが相対的に垂直のイントラ予測モードを使用して生成される時には、上側境界と考えることができる。二次境界は、予測後ブロックが相対的に水平のイントラ予測モードを使用して生成される時には、上側境界と考えることができ、予測後ブロックが相対的に垂直のイントラ予測モードを使用して生成される時には、左側境界と考えることができる。
【００１６】
ビデオブロックは、コーディングユニット（ＣＵ）と、予測ユニット（ＰＵ）と、変換ユニット（ＴＵ）とを含むことができる。ブロック境界は、ＣＵとＰＵとＴＵとの間で発生する可能性がある。すなわち、ブロック境界は、２つの隣接するブロック、たとえば隣接するＣＵ、ＰＵ、またはＴＵの間の共通のエッジに対応することができる。ＣＵは、一般に、１つまたは複数のＰＵと１つまたは複数のＴＵとを含むビデオデータのブロックを指す。ＰＵは、一般に、イントラ予測によるものであれインター予測によるものであれ、予測されたデータのブロックに対応し、ＴＵは、残差データのブロックに対応する。残差データは、一般に、生のコーディングされていないビデオデータと予測されたビデオデータすなわち対応するＰＵ内の画素の値との間の画素ごとの差に対応する。ＨＥＶＣ  Ｗｏｒｋｉｎｇ  Ｄｒａｆｔ  ｖｅｒｓｉｏｎ  ４（ＷＤ４）は、イントラＰＵサイズに応じて、プレーナとＤＣと３３個までの方向性モードとの、輝度成分に関するイントラ予測モードを指定する。ＨＥＶＣ  ＷＤ４は、Ｂｒｏｓｓ他、ＷＤ４：Ｗｏｒｋｉｎｇ  Ｄｒａｆｔ  ４  ｏｆ  Ｈｉｇｈ  Ｅｆｆｉｃｉｅｎｃｙ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ，Ｊｏｉｎｔ  Ｃｏｌｌａｂｏｒａｔｉｖｅ  Ｔｅａｍ  ｏｎ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  （ＪＣＴ−ＶＣ）  ｏｆ  ＩＴＵ−Ｔ  ＳＧ１６  ＷＰ３  ａｎｄ  ＩＳＯ／ＩＥＣ  ＪＴＣ１／ＳＣ２９／ＷＧ１１、６ｔｈ  Ｍｅｅｔｉｎｇ、イタリア国トリノ、２０１１年７月１４〜２２日に記載されている。モード依存イントラスムージング（Mode-Dependent Intra Smoothing、ＭＤＩＳ）法は、モードとＰＵサイズとに応じて、イントラ予測の前の基準境界サンプルの低域フィルタリングを含む。ＤＣ予測フィルタリング法および簡略化（simplification）は、ＤＣ予測されたＰＵの境界にまたがってフィルタリングを適用する。
【００１７】
イントラ予測されたブロック（すなわち、イントラ予測されたＰＵ、本明細書では「予測後ブロック」とも称する）の間の境界付近の画素を処理するいくつかの技法は、フィルタリングと、グラディエントベースの予測と、両方向予測とを含む。グラディエントベースの予測では、２つの基準境界サンプルの間の差が、計算され（いくつかの場合に、補間が必要になる可能性がある）、重みを付けられ、水平予測または垂直予測に応じて、イントラＰＵ境界に沿った少なくとも１つの列または行に加算され得る。両方向予測では、方向の両端の基準サンプル（すなわち、画素）が、使用され得（いくつかの場合に、補間が必要になる可能性がある）、二次境界上の基準サンプルが、重みを付けられ、予測されたイントラＰＵサンプルに加算され得る。言い換えると、たとえば一次境界のデータを使用する、予測後ブロックの生成の後に、ビデオコーダは、予測後ブロックのデータを変更するために、予測後ブロックのデータ（たとえば、画素値）を二次境界の値と数学的に組み合わせるフィルタを適用することができる。
【００１８】
いくつかの例では、２つの基準サンプルの間の重みを付けられたグラディエントが、垂直予測モードと水平予測モードとに関して、イントラＰＵ境界に沿った少なくとも１つの列または行に加算され得る。いくつかの例では、フィルタが、プレーナ予測モードに従って生成されたＰＵの境界にまたがって適用され、イントラ予測方向に応じて、２タップフィルタが、二次境界に適用され得る。いくつかの例では、対角２タップフィルタが、プレーナ予測モードに従って生成されたＰＵの境界にまたがって第１のフィルタを必ずしも適用せずに、イントラ予測方向に応じて二次境界にまたがって適用され得る。
【００１９】
ビデオコーディング方法の評価は、通常、Ｂｊｏｎｔｅｇａａｒｄ  Ｄｅｌｔａビットレート（ＢＤレート）の削減の評価を含む。そのような評価は、ひずみ（すなわち、コーディングされたビデオデータから再現できるデータとオリジナルビデオデータとの間の差）に対するビットレート（すなわち、ビデオデータを表すのに使用されるビット数）の比較を含む。一般に、ＢＤレートを減らす技法は、好ましいビデオコーディング技法を反映する。上で議論された境界フィルタリングの方法は、いくつかのビデオシーケンスについてＢＤレートを減らすが、いくつかの場合に、二次境界フィルタリングは、望ましくないＢＤレート損失を導入する。本開示は、ＢＤレート損失が導入される場合に、二次境界フィルタリングの適用に対して保護する技法を提供する。
【００２０】
より具体的には、本開示は、二次境界フィルタリングについてＢＤレート損失をもたらすケースを検出する技法を提供する。これらの技法は、二次境界フィルタリングをイネーブルすべきなのか（完全にまたは部分的に）ディスエーブルすべきなのかを判定できるという点で、二次境界フィルタリングの保護論理と説明され得る。検出が肯定的である場合には、二次境界フィルタリングは、ＢＤレート性能を改善するために、部分的にまたは完全にディスエーブルされ得る。たとえば、高コントラストを有し、頻繁な遷移を含むテキスト領域を含むシーケンスについて、二次境界フィルタリングは、基準境界からの関係しないサンプルをイントラＰＵに伝搬させる。
【００２１】
本開示の技法は、基準境界のサンプルの間または基準境界サンプルとイントラＰＵサンプル（すなわち、予測後ブロックの画素値）との間の数学的関係を計算することを含む。これらの数学的関係は、たとえば、ラプラシアンまたはグラディエント差の計算に基づくものとすることができる。これらの関係の計算からの結果は、二次境界フィルタリングを適用するか、または（部分的にまたは完全に）ディスエーブルするか判断するために、しきい値と比較され得る。しきい値は、符号化／復号の間に計算されまたはシグナリングされる所定の定数（潜在的に、量子化パラメータなどのパラメータに依存する）とすることができる。数学的関係は、符号器と復号器との両方によって、または符号器のみによって計算され得、後者の場合に、符号器は、二次境界シグナリングを適用すべきかどうか、またはどの部分が適用されるべきなのかを復号器にシグナリングすることができる。
【００２２】
図１は、二次境界フィルタリングを実行すべきかどうかを判定する技法を利用することができる例のビデオ符号化および復号システム１０を示すブロック図である。図１に示されているように、システム１０は、コンピュータ可読媒体１６を介して宛先デバイス１４に符号化されたビデオを供給するソースデバイス１２を含む。ソースデバイス１２および宛先デバイス１４は、広範囲のデバイスのいずれをも備えることができる。本開示の技法は、無線テレビジョン放送、ケーブルテレビジョン伝送、衛星テレビジョン伝送、インターネットビデオ伝送、記憶媒体に符号化される符号化されたデジタルビデオ、または他のシナリオに適用することができる。したがって、コンピュータ可読媒体１６は、符号化されたビデオデータの伝送に適するワイヤレス媒体もしくは有線媒体またはディスク、ハードドライブ、もしくは類似物などのコンピュータ可読記憶媒体の任意の組合せを備えることができる。
【００２３】
図１の例では、ソースデバイス１２は、ビデオソース１８と、ビデオ符号器２０と、出力インターフェース２２とを含む。宛先デバイス１４は、入力インターフェース２８と、ビデオ復号器３０と、ディスプレイデバイス３２とを含む。本開示によれば、ソースデバイス１２のビデオ符号器２０は、二次境界フィルタリングを実行すべきかどうかを判定する技法を適用するように構成され得る。他の例では、ソースデバイスおよび宛先デバイスは、他のコンポーネントまたは配置を含むことができる。たとえば、ソースデバイス１２は、外部カメラなどの外部ビデオソース１８からビデオデータを受け取ることができる。同様に、宛先デバイス１４は、一体化されたディスプレイデバイスを含むのではなく、外部ディスプレイデバイスとインターフェースすることができる。
【００２４】
図１の図示されたシステム１０は、単に１つの例である。二次境界フィルタリングを実行すべきかどうかを判定する技法は、任意のデジタルビデオ符号化デバイスおよび／またはデジタルビデオ復号デバイスによって実行され得る。全般的に、本開示の技法は、ビデオ符号化デバイスによって実行されるが、この技法は、通常は「コーデック」と称するビデオ符号器／復号器によっても実行され得る。さらに、本開示の技法は、ビデオプリプロセッサによっても実行され得る。ソースデバイス１２および宛先デバイス１４は、ソースデバイス１２が宛先デバイス１４への伝送のためにコーディングされたビデオデータを生成する、そのようなコーディングデバイスの単なる例である。いくつかの例では、デバイス１２、１４は、デバイス１２、１４のそれぞれがビデオ符号化コンポーネントとビデオ復号コンポーネントとを含む、実質的に対称の形で動作することができる。したがって、システム１０は、たとえばビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、またはビデオ電話のための、ビデオデバイス１２とビデオデバイス１４との間の一方向または両方向のビデオ伝送をサポートすることができる。
【００２５】
ソースデバイス１２のビデオソース１８は、ビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオを含むビデオアーカイブ、および／またはビデオコンテンツプロバイダからのビデオフィードを含むことができる。さらなる代替案として、ビデオソース１８は、ソースビデオとしてコンピュータグラフィックスベースのデータ、または生ビデオとアーカイブされたビデオとコンピュータ生成ビデオとの組合せを生成することができる。いくつかの場合に、ビデオソース１８が、ビデオカメラである場合に、ソースデバイス１２および宛先デバイス１４は、いわゆるカメラ付き電話機またはビデオフォンを形成することができる。しかし、上で言及したように、本開示で説明される技法は、ビデオコーディング全般に適用可能とすることができ、ワイヤレスアプリケーションおよび／または有線アプリケーションに適用され得る。どの場合にも、キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成されたビデオは、ビデオ符号器２０によって符号化され得る。符号化されたビデオ情報は、出力インターフェース２２によってコンピュータ可読媒体１６に出力され得る。
【００２６】
コンピュータ可読媒体１６は、ワイヤレスブロードキャストもしくは有線ネットワーク伝送などの過渡的媒体またはハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、Ｂｌｕ−ｒａｙ（登録商標）ディスク、もしくは他のコンピュータ可読媒体などの記憶媒体（すなわち、固定記憶媒体）を含むことができる。いくつかの例では、ネットワークサーバ（図示せず）は、ソースデバイス１２から符号化されたビデオデータを受信し、たとえばネットワーク伝送を介して、符号化されたビデオデータを宛先デバイス１４に供給することができる。同様に、ディスクスタンピング施設などの媒体生産施設のコンピューティングデバイスは、ソースデバイス１２から符号化されたビデオデータを受信し、符号化されたビデオデータを含むディスクを生産することができる。したがって、コンピュータ可読媒体１６は、さまざまな例で、さまざまな形の１つまたは複数のコンピュータ可読媒体を含むと理解され得る。
【００２７】
宛先デバイス１４の入力インターフェース２８は、コンピュータ可読媒体１６から情報を受け取る。コンピュータ可読媒体１６の情報は、ブロックおよび他のコーディングされたユニット、たとえばＧＯＰの特性および／または処理を記述するシンタックス要素を含む、ビデオ復号器３０によっても使用される、ビデオ符号器２０によって定義されたシンタックス情報を含むことができる。ディスプレイデバイス３２は、復号されたビデオデータをユーザに表示し、陰極線管（ＣＲＴ）、液晶ディスプレイ（ＬＣＤ）、プラズマディスプレイ、有機発光ダイオード（ＯＬＥＤ）ディスプレイ、または別のタイプのディスプレイデバイスなど、さまざまなディスプレイデバイスのいずれをも備えることができる。
【００２８】
図１の例では、コンピュータ可読媒体１６は、ラジオ周波数（ＲＦ）スペクトルまたは１つもしくは複数の物理伝送線などの任意のワイヤレス媒体または有線媒体、あるいはワイヤレス媒体と有線媒体との任意の組合せを備えることができる。コンピュータ可読媒体１６は、ローカルエリアネットワーク、広域ネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースのネットワークの一部を形成することができる。コンピュータ可読媒体１６は、全体的に、有線媒体またはワイヤレス媒体の任意の適切な組合せを含む、ソースデバイス１２から宛先デバイス１４にビデオデータを伝送する任意の適切な通信媒体または異なる通信媒体の集合を表す。コンピュータ可読媒体１６は、ルータ、スイッチ、基地局、またはソースデバイス１２から宛先デバイス１４への通信を容易にするのに有用である可能性がある任意の他の機器を含むことができる。
【００２９】
ビデオ符号器２０およびビデオ復号器３０は、ＭＰＥＧ−４、Ｐａｒｔ  １０、Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ（ＡＶＣ）とも称するＩＴＵ−Ｔ  Ｈ．２６４標準規格などのビデオ圧縮標準規格に従って動作することができる。しかし、本開示の技法は、特定のコーディング標準規格に限定されない。他の例は、ＭＰＥＧ−２およびＩＴＵ−Ｔ  Ｈ．２６３を含む。図１には示されていないが、いくつかの態様では、ビデオ符号器２０およびビデオ復号器３０は、それぞれ、共通のデータストリームまたは別々のデータストリーム内でのオーディオとビデオとの両方の符号化を処理するために、オーディオ符号器およびオーディオ復号器と一体化され得、適当なマルチプレクサ−デマルチプレクサユニットまたは他のハードウェアおよびソフトウェアを含むことができる。適用可能な場合に、マルチプレクサ−デマルチプレクサユニットは、ＩＴＵ  Ｈ．２２３マルチプレクサプロトコルまたはユーザデータグラムプロトコル（ＵＤＰ）などの他のプロトコルに従うことができる。
【００３０】
ＩＴＵ−Ｔ  Ｈ．２６４／ＭＰＥＧ−４（ＡＶＣ）標準規格は、ジョイントビデオチーム（ＪＶＴ）と称する共同パートナーシップの産物として、ＩＳＯ／ＩＥＣ動画専門家グループ（ＭＰＥＧ）と一緒にＩＴＵ−Ｔビデオ符号化専門家グループ（ＶＣＥＧ）によって考案された。いくつかの態様では、本開示で説明される技法は、全般的にＨ．２６４標準規格に従うデバイスに適用され得る。Ｈ．２６４標準規格は、本明細書でＨ．２６４標準規格もしくはＨ．２６４仕様またはＨ．２６４／ＡＶＣ標準規格もしくはＨ．２６４／ＡＶＣ仕様と称する場合がある、２００５年３月付のＩＴＵ−Ｔ  Ｓｔｕｄｙ  ＧｒｏｕｐによるＩＴＵ−Ｔ  Ｒｅｃｏｍｍｅｎｄａｔｉｏｎ  Ｈ．２６４，Ａｄｖａｎｃｅｄ  Ｖｉｄｅｏ  Ｃｏｄｉｎｇ  ｆｏｒ  ｇｅｎｅｒｉｃ  ａｕｄｉｏｖｉｓｕａｌ  ｓｅｒｖｉｃｅｓに記載されている。ジョイントビデオチーム（ＪＶＴ）は、Ｈ．２６４／ＭＰＥＧ−４  ＡＶＣに対する拡張に取り組み続けている。
【００３１】
ビデオ符号器２０およびビデオ復号器３０は、それぞれ、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、またはその任意の組合せなど、さまざまな適切な符号器回路網のいずれかとして実施され得る。ビデオ符号器２０およびビデオ復号器３０は、それぞれのカメラ、コンピュータ、モバイルデバイス、加入者デバイス、ブロードキャストデバイス、セットトップボックス、サーバ、または類似物内の組み合わされた符号器／復号器（コーデック）の一部としていずれもが一体化され得る１つまたは複数の符号器または復号器内に含まれ得る。
【００３２】
ビデオシーケンスは、通常、一連のビデオフレームを含む。グループオブピクチャ（ＧＯＰ）は、一般に、一連の１つまたは複数のビデオフレームを備える。ＧＯＰは、ＧＯＰのヘッダ、ＧＯＰの１つまたは複数のフレームのヘッダ、または他所に、ＧＯＰに含まれるフレームの数を記述するシンタックスデータを含むことができる。各フレームは、それぞれのフレームの符号化モードを記述するフレームシンタックスデータを含むことができる。ビデオ符号器２０は、通常、ビデオデータを符号化するために、個々のビデオフレーム内のビデオブロックに作用する。ビデオブロックは、ブロックまたはブロックのパーティションに対応することができる。ビデオブロックは、固定されたまたは可変のサイズを有することができ、指定されたコーディング標準規格に従って、サイズにおいて異なることができる。各ビデオフレームは、複数のスライスを含むことができる。各スライスは、サブブロックとも称するパーティションに配置され得る複数のブロックを含むことができる。
【００３３】
一例として、ＩＴＵ−Ｔ  Ｈ．２６４標準規格は、輝度成分の１６×１６、８×８、または４×４およびクロマ成分の８ｘ８などのさまざまなブロックサイズでのイントラ予測、ならびに輝度成分の１６ｘ１６、１６ｘ８、８ｘ１６、８ｘ８、８ｘ４、４ｘ８、および４ｘ４とクロマ成分の対応するスケーリングされたサイズとなどのさまざまなブロックサイズでのインター予測をサポートする。本開示では、「ＮｘＮ」および「Ｎ×Ｎ（Ｎ  ｂｙ  Ｎ）」は、たとえば１６ｘ１６画素または１６×１６（１６  ｂｙ  １６）画素など、垂直次元および水平次元に関してブロックの画素寸法を指すのに交換可能に使用される場合がある。一般に、１６ｘ１６ブロックは、垂直方向に１６画素（ｙ＝１６）、水平方向に１６画素（ｘ＝１６）を有する。同様に、ＮｘＮブロックは、一般に、垂直方向にＮ画素、水平方向にＮ画素を有し、Ｎは、非負の整数を表す。ブロック内の画素は、行および列に配置され得る。さらに、ブロックは、必ずしも、垂直方向と同一の水平方向の画素数を有する必要がない。たとえば、ブロックは、ＮｘＭ画素を備えることができ、Ｍは、必ずしもＮと同一ではない。
【００３４】
１６×１６未満のブロックサイズは、１６×１６ブロックのパーティションと呼ばれる場合がある。ビデオブロックは、画素領域の画素データのブロックまたは、たとえば、コーディングされたビデオブロックと予測ビデオブロックとの間の画素差を表す残差ビデオブロックデータへの離散コサイン変換（ＤＣＴ）、整数変換、ウェーブレット変換、もしくは概念的に類似する変換の適用の後の、変換領域の変換係数のブロックを備えることができる。いくつかの場合に、ビデオブロックは、変換領域の量子化された変換係数のブロックを備えることができる。
【００３５】
より小さいビデオブロックは、より高い解像度をもたらすことができ、ビデオフレームのうちで高いレベルの詳細を含む位置に使用され得る。一般に、ブロックおよび時々サブブロックと称するさまざまなパーティションは、ビデオブロックと考えられ得る。さらに、スライスは、ブロックおよび／またはサブブロックなどの複数のビデオブロックと考えられ得る。各スライスは、ビデオフレームの独立に復号可能なユニットとすることができる。代替案では、フレーム自体を、復号可能な単位とすることができ、あるいは、フレームの他の部分を、復号可能な単位と定義することができる。「コーディングされたユニット」または「コーディングユニット」という用語は、フレーム全体、フレームのスライス、シーケンスとも称するグループオブピクチャ（ＧＯＰ）、または適用可能なコーディング技法に従って定義される別の独立に復号可能なユニットなど、ビデオフレームの独立に復号可能なユニットを指すことができる。
【００３６】
符号化されたビデオデータは、予測データと残差データとを含むことができる。ビデオ符号器は、イントラ予測モードまたはインター予測モード中に予測データを作ることができる。イントラ予測は、一般に、同一ピクチャの隣接する以前にコーディングされたブロックに対する相対的なピクチャのブロックの予測を含む。インター予測は、以前にコーディングされたピクチャのデータに対する相対的なピクチャのブロックの予測を含む。
【００３７】
イントラ予測またはインター予測に従って、ビデオ符号器は、ブロックの残差値を計算することができる。残差値は、一般に、ブロックの予測されたデータとブロックの真の値との間の差に対応する。ブロックの残差値をさらに圧縮するために、残差値は、できる限り多くのデータ（「エネルギー」とも称する）をできる限り少数の係数に短縮する、変換係数のセットに変換され得る。変換係数は、オリジナルブロックと同一サイズとすることができる係数の２次元行列に対応する。言い換えると、オリジナルブロック内の画素と同様に多数の変換係数がある可能性がある。しかし、変換に起因して、変換係数の多くは、０と等しい値を有する可能性がある。
【００３８】
次に、ビデオ符号器は、ビデオデータをさらに圧縮するために、変換係数を量子化することができる。量子化は、一般に、相対的に広い範囲内の値を相対的に狭い範囲内の値にマッピングし、したがって、量子化された変換係数を表すのに必要なデータの量を減らす。量子化プロセスは、係数の一部またはすべてに関連するビット深さを減らすことができる。たとえば、ｎビット値は、量子化中にｍビット値に丸められ得、ｎは、ｍより大きい。量子化に続いて、ビデオ符号器は、変換係数をスキャンし、量子化された変換係数を含む２次元行列から１次元ベクトルを作ることができる。複数の０値の量子化された変換係数がある可能性があるので、ビデオ符号器は、０の値を有する量子化された変換係数に達した時にスキャンを停止し、したがって、１次元ベクトル内の係数の数を減らすように構成され得る。スキャンは、より高いエネルギー（したがって、より低い周波数）の係数を配列の前部に配置し、より低いエネルギー（したがって、より高い周波数）の係数を配列の後部に配置するように設計され得る。
【００３９】
次に、ビデオ符号器は、データをさらに圧縮するために、結果の配列をエントロピ符号化することができる。いくつかの例では、ビデオ符号器は、たとえばコンテキスト適応型可変長コーディング（context-adaptive variable-length coding、ＣＡＶＬＣ）を使用して、配列のさまざまな可能な量子化された変換係数を表すのに可変長コード（ＶＬＣ）を使用するように構成され得る。他の例では、ビデオ符号器は、たとえばコンテキスト適応型バイナリ算術コーディング（context-adaptive binary arithmetic coding、ＣＡＢＡＣ）を使用して、結果の量子化された係数を符号化するのに２進算術コーディングを使用するように構成され得る。
【００４０】
ビデオ符号器２０は、さらに、ブロックベースのシンタックスデータ、フレームベースのシンタックスデータ、およびＧＯＰベースのシンタックスデータなどのシンタックスデータを、たとえばフレームヘッダ、ブロックヘッダ、スライスヘッダ、またはＧＯＰヘッダ内で、ビデオ復号器３０に送ることができる。ＧＯＰシンタックスデータは、それぞれのＧＯＰ内のフレームの数を記述することができ、フレームシンタックスデータは、対応するフレームを符号化するのに使用される符号化／予測モードを示すことができる。
【００４１】
現在は高効率ビデオ符号化（ＨＥＶＣ）と称する新しいビデオコーディング標準規格を開発する努力が、現在進行中である。やがて来る標準規格は、Ｈ．２６５とも称する。標準化の努力は、ＨＥＶＣテストモデル（ＨＭ）と称するビデオコーディングデバイスのモデルに基づく。ＨＭは、たとえばＩＴＵ−Ｔ  Ｈ．２６４／ＡＶＣに従うデバイスを超えるビデオコーディングデバイスの複数の能力を前提とする。たとえば、Ｈ．２６４は、９つのイントラ予測符号化モードを提供するが、ＨＭは、３３個もの多数のイントラ予測符号化モードを提供する。
【００４２】
ＨＭは、ビデオデータのブロックをコーディングユニット（ＣＵ）と称する。ビットストリーム内のシンタックスデータは、画素数に関して最大のコーディングユニットである最大コーディングユニット（ＬＣＵ）を定義することができる。一般に、ＣＵは、ＣＵがサイズの区別を有しないことを除いて、Ｈ．２６４のマクロブロックに似た目的を有する。したがって、ＣＵをサブＣＵに分割することができる。一般に、本開示でのＣＵへの参照は、ピクチャの最大コーディングユニットまたはＬＣＵのサブＣＵを指す可能性がある。ＬＣＵは、サブＣＵに分割され得、各サブＣＵは、サブＣＵに分割され得る。ビットストリームのシンタックスデータは、ＣＵ深さと称する、ＬＣＵを分割できる最大回数を定義することができる。したがって、ビットストリームは、最小コーディングユニット（ＳＣＵ）をも定義することができる。本開示は、ＣＵ、ＰＵ、またはＴＵのいずれかを指すのに、「ブロック」という用語をも使用する。
【００４３】
ＬＣＵは、４分木データ構造に関連するものとすることができる。一般に、４分木データ構造は、１ＣＵあたり１つのノードを含み、ルートノードはＬＣＵに対応する。あるＣＵが４つのサブＣＵに分割される場合には、ＣＵに対応するノードは、４つの葉ノードを有し、各葉ノードは、サブＣＵのうちの１つに対応する。４分木データ構造の各ノードは、対応するＣＵのシンタックスデータを提供することができる。たとえば、４分木内のノードは、そのノードに対応するＣＵがサブＣＵに分割されるかどうかを示す分割フラグを含むことができる。ＣＵのシンタックス要素は、再帰的に定義され得、ＣＵがサブＣＵに分割されるかどうかに依存することができる。
【００４４】
分割されないＣＵは、１つまたは複数の予測ユニット（ＰＵ）を含むことができる。一般に、ＰＵは、対応するＣＵのすべてまたは一部を表し、ＰＵの基準サンプルを取り出すためのデータを含む。たとえば、ＰＵがイントラモード符号化される時には、ＰＵは、そのＰＵのイントラ予測モードを記述するデータを含むことができる。別の例として、ＰＵがインターモード符号化される時には、ＰＵは、そのＰＵの動きベクトルを定義するデータを含むことができる。動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度（たとえば、１／４画素精度または１／８画素精度）、動きベクトルがポイントする基準フレーム、および／または動きベクトルの基準リスト（たとえば、リスト０またはリスト１）を記述することができる。ＰＵ（１つまたは複数）を定義するＣＵのデータは、たとえば、１つまたは複数のＰＵへのＣＵの区分を記述することもできる。区分モードは、ＣＵがコーディングされない、イントラ予測モード符号化される、またはインター予測モード符号化される、のどれであるのかの間で異なる可能性がある。
【００４５】
１つまたは複数のＰＵを有するＣＵは、１つまたは複数の変換ユニット（ＴＵ）を含むこともできる。ＰＵを使用する予測に続いて、ビデオ符号器は、ＣＵのうちでＰＵに対応する部分の残差値を計算することができる。残差値は、変換され、スキャンされ、量子化され得る。ＴＵは、必ずしもＰＵのサイズに制限されない。したがって、ＴＵは、同一ＣＵの対応するＰＵより大きくても小さくてもよい。いくつかの例では、ＴＵの最大サイズは、対応するＣＵのサイズに対応することができる。
【００４６】
上で注記したように、イントラ予測は、同一のピクチャの以前にコーディングされたＣＵからのピクチャの現在のＣＵのＰＵの予測を含む。より具体的には、ビデオ符号器は、特定のイントラ予測モードを使用して、あるピクチャの現在のＣＵをイントラ予測することができる。ＨＭ符号器は、３３個までの方向性イントラ予測モードおよび２つの非方向性イントラ予測モードを用いて構成され得る。
【００４７】
ＨＭ符号器は、ブロックのイントラ予測モードの使用可能なセットがブロックのサイズに基づいて異なるように構成され得る。すなわち、予測ユニット（ＰＵ）のサイズは、そのＰＵについて使用可能なイントラ予測モードの数を決定することができ、これらのイントラ予測モードから、符号器は、そのＰＵを予測するためのイントラ予測モードを選択することができる。下の表１に、予測ユニットサイズとそのサイズのＰＵについて使用可能な方向性イントラ予測モードの数との間の対応の一例を示す。
【表１】
0005833250.tif 000002
【００４８】
本開示の技法によれば、ビデオ符号器２０は、二次境界フィルタリングをイネーブルすべきかまたはディスエーブルすべきかを判定するように構成され得る。すなわち、ビデオ符号器２０およびビデオ復号器３０は、一次境界を使用して予測されたビデオデータのイントラ予測されたブロックに、二次境界のデータを使用するフィルタを適用すべきかどうかを判定するように構成され得る。ビデオ符号器２０は、ビデオデータの特定のブロックについてビデオ復号器３０が二次境界フィルタリングを実行すべきかどうかを示す情報をビデオ復号器３０に供給するように構成され得る。代替案では、ビデオ復号器３０は、二次境界フィルタリングを実行すべきかどうかを判定するために、ビデオ符号器２０の技法に似た技法を実行することができる。どちらの場合でも、ビデオ復号器３０は、ビデオデータのイントラコーディングされたブロックの間の境界について二次境界フィルタリングを実行すべきかどうかを判定するように構成され得る。
【００４９】
より具体的には、ビデオ符号器２０およびビデオ復号器３０は、ビデオデータのあるブロックをイントラ予測するように構成され得る。イントラ予測モードは、たとえば、下でより詳細に説明される図４に示された方向性イントラ予測モードを含む。他のイントラ予測モードは、ＤＣモードおよびプレーナモードなどの非方向性イントラ予測モードを含む。ある種の方向性イントラ予測モードは、相対的に水平または相対的に垂直として説明され得、他の方向性イントラ予測モードは、相対的に対角として説明され得る。
【００５０】
本開示で説明されるように、相対的に水平および相対的に垂直のイントラ予測モードは、対応するブロックを予測するのに１つの一次境界からのデータを利用するモードであり、相対的に対角のイントラ予測モードは、対応するブロックを予測するのに２つの境界からのデータを利用するモードである。たとえば、相対的に水平の予測モードは、ブロックを予測するのにブロックの左側境界からのデータを利用するが、相対的に垂直の予測モードは、ブロックを予測するのにブロックの上側境界からのデータを利用する。したがって、左側境界は、相対的に水平の予測モードについて一次境界と考えられ得、上側境界は、相対的に垂直の予測モードについて一次境界と考えられ得る。
【００５１】
その一方で、相対的に対角のイントラ予測モードは、左側境界と上側境界との両方のデータを使用し、したがって、上側境界および左側境界は、これらのモードについて一次境界とは考えられない。代替案では、他の例で、相対的に対角のイントラ予測モードについて、両方の境界が、一次と考えられ得、あるいは、より大きい重みを与えられる境界（予測への寄与に関して）が、一次と考えられ得る。ＤＣモードおよびプレーナモードなどの非方向性イントラ予測モードについて、上側境界と左側境界との両方が、一次境界と考えられ得る。同様に、両方の境界からのデータが、非方向性イントラ予測モードの場合に二次境界フィルタリングを実行するのに使用され得る。
【００５２】
本開示の技法によれば、一次境界のデータを使用する（たとえば、相対的に水平または相対的に垂直の方向性イントラ予測モードを使用する）ブロックのイントラ予測の後に、ビデオ符号器２０およびビデオ復号器３０は、ブロックの二次境界のデータを使用して、予測後ブロックをフィルタリングすべきかどうかを判定することができる。たとえば、現在のブロックの左側境界のデータを一次境界として使用して予測後ブロックを形成した後に、ビデオ符号器２０およびビデオ復号器３０は、上側境界のデータを二次境界として使用して、予測後ブロックをフィルタリングすべきかどうかを判定することができる。上で議論されたように、左側境界のデータを一次境界として使用して予測後ブロックを形成することは、相対的に水平のイントラ予測モードを使用して現在のブロックをイントラ予測することから生じる可能性がある。別の例として、現在のブロックの上側境界のデータを一次境界として使用して予測後ブロックを形成した後に、ビデオ符号器２０およびビデオ復号器３０は、左側境界のデータを二次境界として使用して、予測後ブロックをフィルタリングすべきかどうかを判定することができる。やはり上で議論されたように、上側境界のデータを一次境界として使用して予測後ブロックを形成することは、相対的に垂直のイントラ予測モードを使用して現在のブロックをイントラ予測することから生じる可能性がある。
【００５３】
予測後ブロックに二次境界フィルタを適用すべきかどうかを判定するために、ビデオ符号器２０は（一例として）、境界関係を表す値を計算することができる。そのような値は、境界関係値と称する場合があるが、二次境界の値に対する一次境界の値の間の関係を記述することができ、あるいは、予測後ブロック自体に対する一次境界および／または二次境界のいずれかの値の間の関係を記述することができる。境界関係値を計算した後に、ビデオ符号器２０は、値がしきい値を超えるかどうかに基づいて、予測後ブロックに二次境界フィルタを適用すべきかどうかを判定することができる。ビデオ符号器２０は、たとえばラプラシアンまたはグラディエント差を使用して、境界関係値を計算することができる。
【００５４】
ビデオ復号器３０も、ビデオ符号器２０に似て、境界関係値を計算することができる。代替案では、ビデオ符号器２０は、予測後ブロックをフィルタリングすべきかどうかを示すシグナリングデータをコーディングするように構成され得る。すなわち、ビデオ符号器２０は、二次境界のデータを使用して、予測後ブロックをフィルタリングすべきかどうかを表すシンタックス情報を符号化することができる。同様に、ビデオ復号器３０は、二次境界のデータを使用して、予測後ブロックをフィルタリングすべきかどうかを表すシンタックス情報を復号するように構成され得る。したがって、二次境界値を計算するのではなく、ビデオ復号器３０は、復号されたシンタックスデータに基づいて、二次境界のデータを使用して、予測後ブロックを選択的にフィルタリングすることができる。
【００５５】
上で議論されたように、ビデオ符号器２０およびビデオ復号器３０は、二次境界のデータを使用して、一次境界のデータを使用して予測された予測後ブロックをフィルタリングすべきかどうかを判定するように構成され得る。そのようなフィルタリングは、二次境界フィルタリングと称される場合がある。一般に、二次境界フィルタリングは、二次境界のデータを使用して、予測後ブロックのデータを変更することを含む。たとえば、二次境界に沿った１つまたは複数の画素の値は、予測後ブロックの１つまたは複数の画素の値を変更するために、数学的に適用され得る。二次境界フィルタリングの一例として、一次境界を使用するイントラ予測されたブロック内で作られた画素値ごとに、オフセットが、二次境界の２つの特定の画素値の間の重み付きの差に基づいて計算され得る。オフセットは、変更された画素値を作るために、予測後ブロック内の画素値に加算され得る。
【００５６】
ビデオ符号器２０およびビデオ復号器３０は、予測後ブロックが二次境界のデータを使用してフィルタリングされたか否かにかかわりなく、イントラ予測されたブロックをコーディングすることもできる。すなわち、予測後ブロックがフィルタリングされなかった場合には、ビデオ符号器２０およびビデオ復号器３０は、予測後ブロックを使用してブロックをコーディングすることができる。具体的には、ビデオ符号器２０は、予測後ブロックとオリジナルブロックとの間の画素ごとの差を表す残差値を計算し、その後、残差値をコーディングする（たとえば、変換し、量子化し、エントロピコーディングする）ことができる。ビデオ復号器３０は、同様に、残差値を復号し、ブロックを復号するために、残差値を予測後ブロックと組み合わせることができる。
【００５７】
その一方で、予測後ブロックが、二次境界フィルタリングされた場合には、ビデオ符号器２０およびビデオ復号器３０は、フィルタリングされた予測後ブロックを使用してブロックをコーディングすることができる。具体的には、ビデオ符号器２０は、フィルタリングされた予測後ブロックとオリジナルブロックとの間の画素ごとの差を表す残差値を計算し、その後、残差値をコーディングする（たとえば、変換し、量子化し、エントロピコーディングする）ことができる。ビデオ復号器３０は、同様に、残差値を復号し、ブロックを復号するために、残差値をフィルタリングされた予測後ブロックと組み合わせることができる。
【００５８】
ビデオ符号器２０およびビデオ復号器３０は、それぞれ、１つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ（ＤＳＰ）、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、ディスクリート論理回路網、ソフトウェア、ハードウェア、ファームウェア、またはその任意の組合せなど、適用可能なさまざまな適切な符号器回路網または復号器回路網のいずれかとして実施され得る。ビデオ符号器２０およびビデオ復号器３０の各々は、組み合わされた符号器／復号器（コーデック）の一部としていずれもが一体化され得る１つまたは複数の符号器または復号器内に含まれ得る。ビデオ符号器２０および／またはビデオ復号器３０を含む装置は、集積回路、マイクロプロセッサ、および／またはセルラ電話機などのワイヤレス通信デバイスを備えることができる。
【００５９】
この形で、ビデオ符号器２０およびビデオ復号器３０は、それぞれ、予測後ブロックを形成するためにブロックの一次境界に沿った画素の値を使用してビデオデータのブロックをイントラ予測し、ブロックの二次境界のデータを使用して、予測後ブロックをフィルタリングすべきかどうかを判定し、予測後ブロックをフィルタリングすべきであるとの判定に応答して、二次境界のデータを使用して予測後ブロックをフィルタリングするように構成されたビデオコーダの例を表す。
【００６０】
上で注記したように、ビデオデータのブロックのイントラ予測は、たとえば相対的に水平または相対的に垂直のイントラ予測モードを使用する、ビデオデータの現在のブロックのイントラ予測を含むことができる。図４に関してより詳細に議論されるように、本開示の相対的に水平または相対的に垂直のイントラ予測モードは、主に現在のブロックの１つの境界のデータを利用するイントラ予測モードである。一次境界は、たとえば、左側境界または上側境界に対応することができる。具体的には、左側境界は、１つまたは複数の左に隣接するブロックの画素を含み、上側境界は、１つまたは複数の上に隣接するブロックの画素を含む。
【００６１】
本開示は、主に、相対的に水平または相対的に垂直のイントラ予測モードの使用に対応するものとしてこれらの技法を説明するが、これらの技法は、相対的に対角のイントラ予測モードならびに／またはＤＣモードおよびプレーナモードなどの非方向性イントラ予測モードにも適用され得る。たとえば、ＤＣモードおよびプレーナモードでは、両方の境界が、一次境界および二次境界と考えられ得る。
【００６２】
予測後ブロックをフィルタリングすべきかどうかの判定は、上で議論されたように、ラプラシアン境界関係値および／またはグラディエント差境界関係値を計算することを含むことができる。さらに、予測後ブロックをフィルタリングすべきかどうかの判定は、境界関係値をしきい値と比較することを含むことができる。しきい値は、境界関係値が計算された形に固有とすることができる。たとえば、第１のしきい値は、ラプラシアン境界関係値について定義され得、第２のしきい値は、グラディエント差境界関係値に関して定義され得る。いくつかの例では、境界関係値がしきい値未満である時に、二次境界フィルタリングは、イネーブルされ得る。
【００６３】
図２は、二次境界フィルタリングを実行すべきかどうかを判定する技法を実施することができるビデオ符号器２０の例を示すブロック図である。ビデオ符号器２０は、ブロックまたはブロックのパーティションもしくはサブパーティションを含むビデオフレーム内のブロックのイントラコーディングおよびインターコーディングを実行することができる。イントラコーディングは、所与のビデオフレーム内のビデオ内の空間的冗長性を減らすか除去するために、空間予測に頼る。インターコーディングは、ビデオシーケンスの隣接するフレーム内のビデオ内の時間的冗長性を減らすか除去するために、時間予測に頼る。イントラモード（Ｉモード）は、複数の空間ベースの圧縮モードのいずれをも指すことができ、単一方向予測（Ｐモード）または両方向予測（Ｂモード）などのインターモードは、複数の時間ベースの圧縮モードのいずれをも指すことができる。インターモード符号化のコンポーネントが図２に示されているが、ビデオ符号器２０が、さらに、イントラモード符号化のコンポーネントを含むことができることを理解されたい。しかし、そのようなコンポーネントは、簡潔さおよび明瞭さのために図示されていない。
【００６４】
図２に示されているように、ビデオ符号器２０は、符号化されるビデオフレーム内の現在のビデオブロックを受け取る。図２の例では、ビデオ符号器２０は、モード選択ユニット４０と、基準フレームメモリ６４と、合計器５０と、変換処理ユニット５２と、量子化ユニット５４と、エントロピコーディングユニット５６とを含む。モード選択ユニット４０は、動き補償ユニット４４と、動き推定ユニット４２と、イントラ予測ユニット４６と、フィルタリングユニット６６と、パーティションユニット４８とを含む。ビデオブロック再構成に関して、ビデオ符号器２０は、逆量子化ユニット５８と、逆変換ユニット６０と、合計器６２とを含む。さらに、ビデオ符号器２０は、合計器６２の出力をデブロッキングし、デブロッキングされたビデオデータを基準フレームメモリ６４に格納することができるデブロッカ（図示せず）を含むことができる。
【００６５】
符号化プロセス中に、ビデオ符号器２０は、コーディングされるビデオフレームまたはスライスを受け取る。フレームまたはスライスは、複数のビデオブロックに分割され得る。動き推定ユニット４２および動き補償ユニット４４は、時間圧縮を提供するために、１つまたは複数の基準フレーム内の１つまたは複数のブロックに対する相対的な受け取られたブロックのインター予測コーディングを実行する。イントラ予測ユニット４６は、その代わりに、空間圧縮を提供するために、コーディングされるブロックと同一のフレームまたはスライス内の１つまたは複数の隣接するブロックに対する相対的な受け取られたビデオブロックのイントラ予測コーディングを実行することができる。本開示の技法によれば、下でより詳細に説明されるように、イントラ予測ユニット４６は、たとえば二次境界フィルタリングを実行するために、予測後ブロックをフィルタリングするためにフィルタリングユニット６６を利用することができる。ビデオ符号器２０は、たとえば、ビデオデータのブロックごとに適当なコーディングモードを選択するために、複数のコーディングパスを実行することができる。
【００６６】
さらに、パーティションユニット４８は、以前のコーディングパスでの以前の区分方式の評価に基づいて、ビデオデータのブロックをサブブロックに区分することができる。たとえば、パーティションユニット４８は、当初に、フレームまたはスライスをＬＣＵに区分し、ＬＣＵのそれぞれを、レートひずみ分析（たとえば、レートひずみ最適化）に基づいてサブＣＵに区分することができる。モード選択ユニット４０は、さらに、サブＣＵへのＬＣＵの区分を示す４分木データ構造を作ることができる。４分木の葉ノードＣＵは、１つまたは複数のＰＵおよび１つまたは複数のＴＵを含むことができる。
【００６７】
モード選択ユニット４０は、たとえば誤差結果に基づいて、コーディングモードの一方すなわちイントラまたはインターを選択し、結果のイントラコーディングまたはインターコーディングされたブロックを、残差ブロックデータを生成するために合計器５０に、基準フレームとして使用される符号化されたブロックを再構成するために合計器６２に、供給することができる。モード選択ユニット４０は、動きベクトル、イントラモードインジケータ、パーティション情報、および他のそのようなシンタックス情報などのシンタックス要素をエントロピコーディングユニット５６に供給もする。
【００６８】
動き推定ユニット４２および動き補償ユニット４４は、非常に統合されたものとすることができるが、概念的な目的のために別々に図示されている。動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。たとえば、動きベクトルは、現在のフレーム（または他のコーディングされたユニット）内のコーディングされつつある現在のブロックに対する相対的な予測基準フレーム（または他のコーディングされたユニット）内の予測ブロックの変位を示すことができる。予測ブロックは、絶対差の合計（ＳＡＤ）、平方差の合計（ＳＳＤ）、または他の差メトリックによって判定され得る画素差に関して、コーディングされるブロックによく一致することがわかったブロックである。動きベクトルは、ブロックのパーティションの変位を示すこともできる。動き補償は、動き推定によって決定される動きベクトルに基づいて予測ブロックを取り出しまたは生成することを含むことができる。やはり、動き推定ユニット４２および動き補償ユニット４４は、いくつかの例で、機能的に統合され得る。
【００６９】
動き推定ユニット４２は、ビデオブロックを基準フレームメモリ６４内の基準フレームのビデオブロックと比較することによって、インターコーディングされたフレームのビデオブロックの動きベクトルを計算する。動き補償ユニット４４は、基準フレーム、たとえばＩフレームまたはＰフレームのサブ整数画素を補間することもできる。一例として、ＩＴＵ  Ｈ．２６４標準規格には、２つのリストすなわち、符号化されつつある現在のフレームより早い表示順序を有する基準フレームを含むリスト０と、符号化されつつある現在のフレームより遅い表示順序を有する基準フレームを含むリスト１とが記載されている。したがって、基準フレームメモリ６４内に格納されるデータは、これらのリストに従って編成され得る。
【００７０】
動き推定ユニット４２は、基準フレームメモリ６４からの１つまたは複数の基準フレームのブロックを、現在のフレーム、たとえばＰフレームまたはＢフレームの符号化されるブロックと比較する。基準フレームメモリ６４内の基準フレームが、サブ整数画素の値を含む時には、動き推定ユニット４２によって計算される動きベクトルは、基準フレームのサブ整数画素位置を参照する可能性がある。動き推定ユニット４２および／または動き補償ユニット４４は、サブ整数画素位置の値が基準フレームメモリ６４に格納されていない場合に、基準フレームメモリ６４に格納された基準フレームのサブ整数画素位置の値を計算するようにも構成され得る。動き推定ユニット４２は、計算された動きベクトルをエントロピコーディングユニット５６および動き補償ユニット４４に送る。動きベクトルによって識別される基準フレームブロックは、予測ブロックと称する場合がある。動き補償ユニット４４は、予測ブロックに基づいて予測データを計算することができる。
【００７１】
イントラ予測ユニット４６は、上で説明された動き推定ユニット４２および動き補償ユニット４４によって実行されるインター予測の代替案として、現在のブロックをイントラ予測することができる。具体的には、イントラ予測ユニット４６は、現在のブロックを符号化するのに使用されるイントラ予測モードを決定することができる。いくつかの例では、イントラ予測ユニット４６は、たとえば別々の符号化パス中に、さまざまなイントラ予測モードを使用して現在のブロックを符号化することができ、イントラ予測ユニット４６（または、いくつかの例ではモード選択ユニット４０）は、テストされたモードから、使用すべき適当なイントラ予測モードを選択することができる。
【００７２】
たとえば、イントラ予測ユニット４６は、さまざまなテストされたイントラ予測モードについてレートひずみ分析を使用してレートひずみ値を計算することができ、テストされたモードの中で最良のレートひずみ特性を有するイントラ予測モードを選択することができる。レートひずみ分析は、全般的に、符号化されたブロックと、符号化されたブロックを作るために符号化されたオリジナルの符号化されていないブロックとの間のひずみ（または誤差）の量ならびに符号化されたブロックを作るのに使用されたビットレート（すなわち、ビット数）を判定する。イントラ予測ユニット４６は、どのイントラ予測モードがブロックについて最良のレートひずみ値を示すかを判定するために、さまざまな符号化されたブロックのひずみおよびレートから比を計算することができる。ブロックのイントラ予測モードを選択した後に、イントラ予測ユニット４６は、ブロックについて選択されたイントラ予測モードを示す情報をエントロピコーディングユニット５６に供給することができる。
【００７３】
本開示の技法によれば、イントラ予測ユニット４６は、ビデオデータのブロック（たとえば、ＰＵ）のイントラ予測コーディング中に、二次境界フィルタリングを選択的にイネーブルしまたは（完全にまたは部分的に）ディスエーブルすることができる。具体的には、イントラ予測ユニット４６またはモード選択ユニット４０は、現在のブロック、たとえば現在のＰＵの２つの境界、たとえば左に隣接する境界と上に隣接する境界との間の境界関係を表す値を計算することができる。代替案では、イントラ予測ユニット４６またはモード選択ユニット４０は、現在のブロック（たとえば、現在のＰＵ）の境界と現在のブロックの画素値との間の境界関係を表す値を計算することができる。
【００７４】
一般に、フィルタリングユニット６６は、イントラ予測ユニット４６の代わりに、境界関係に少なくとも部分的に基づいて、ビデオデータの予測後ブロックをフィルタリングする。より具体的には、本開示の技法（図５に関してより詳細に説明される）によれば、イントラ予測ユニット４６は、ビデオデータのイントラ予測されたブロックの二次境界フィルタリングをイネーブルすべきかまたはディスエーブルすべきかを判定することができる。二次境界フィルタリングの選択的なイネーブルまたはディスエーブルは、ブロック、たとえばＰＵの予測された値を改善することができ、これによって、そのブロックのＢＤレートを改善することができる。イントラ予測ユニット４６（またはモード選択ユニット４０）が、二次境界フィルタリングをイネーブルする時には、フィルタリングユニット６６は、ビデオデータの予測後ブロック（たとえば、ＰＵ）をフィルタリングすることができる。モード選択ユニット４０は、予測後ブロック（または、フィルタリングユニット６６によるフィルタリングの後に、フィルタリングされた予測後ブロック）を合計器５０に供給することもできる。
【００７５】
二次境界を使用して、予測後ブロックをフィルタリングするために、フィルタリングユニット６６は、二次境界の１つまたは複数の値を使用して、予測後ブロックの個々の画素Ｐijを変更することができる。たとえば、（ｉ，ｊ）が、位置（ｉ，ｊ）の予測後ブロックの画素に対応し、予測後ブロックの左上角が、位置（０，０）にあるものとする。Ｐijは、予測後ブロックの位置（ｉ，ｊ）の画素に対応するものとする。Ｐ’ijは、位置（ｉ，ｊ）のフィルタリングされた画素すなわち、フィルタリングユニット６６によって変更されたＰijの値を有する画素に対応するものとする。フィルタリングユニット６６は、次のように、相対的に垂直のイントラ予測モードを使用して予測された予測後ブロックのＰ’ijを計算することができる。
【数１】
0005833250.tif 000003
【００７６】
ここで、αは、０と１との間の分数であり、それぞれ垂直モードおよび水平モードについてｊおよびｉに従って選択され、ＲＬiは、Ｐijに対応する左側境界内の基準サンプル（すなわち、左側境界内の位置ｉにある画素）を表し、Ｌiは、現在のブロックの左列内の位置ｉにある基準サンプルを表す。一例では、ｊ（ｉ）＝０の時にα＝１／２であり、ｊ（ｉ）＝１の時にα＝１／４であり、ｊ（ｉ）＝２の時にα＝１／８であり、ｊ（ｉ）＝３，４の時にα＝１／１６である。
【００７７】
フィルタリングユニット６６は、次のように、相対的に水平のイントラモードを使用して予測された予測後ブロックのＰ’ijを計算することができる。
【数２】
0005833250.tif 000004
【００７８】
ここで、αは、０と１との間の分数であり、それぞれ垂直モードおよび水平モードについてｊおよびｉに従って選択され（上で注記したように）、ＲＡjは、Ｐijに対応する上側境界内の基準サンプル（すなわち、上側境界内の位置ｊにある画素）を表し、Ａjは、現在のブロックの上の行内の位置ｊにある基準サンプルを表す。上で注記したように、一例では、ｊ（ｉ）＝０の時にα＝１／２であり、ｊ（ｉ）＝１の時にα＝１／４であり、ｊ（ｉ）＝２の時にα＝１／８であり、ｊ（ｉ）＝３，４の時にα＝１／１６である。
【００７９】
モード選択ユニット４０は、イントラ予測ユニット４６がビデオデータの現在のブロックを予測するのに使用するために、相対的に水平または相対的に垂直のイントラ予測モードを選択することができる。イントラ予測ユニット４６は、相対的に水平または相対的に垂直のイントラ予測モードに従って、一次境界のデータを使用して予測後ブロック（たとえば、ＰＵ）を形成することができる。一次境界は、たとえば、相対的に水平のモードについてブロックの左側境界または相対的に垂直のモードについてブロックの上側境界に対応することができる。二次境界は、そのブロックの、一次境界とは異なる境界に対応することができる。たとえば、二次境界は、一次境界が左側境界である時には上側境界に対応することができ、一次境界が上側境界である時には左側境界に対応することができる。モード選択ユニット４０は、さらに、ブロックの二次境界のデータを使用して、予測後ブロック（すなわち、相対的に水平または相対的に垂直のイントラ予測モードのいずれかを使用するイントラ予測から生じる予測後ブロック）をフィルタリングすべきかどうか（すなわち、二次境界フィルタリングを実行すべきかどうか）を判定することができる。
【００８０】
いくつかの例では、モード選択ユニット４０は、境界関係を表す値（本明細書では、境界関係値とも称する）を計算することができる。モード選択ユニット４０は、一次境界の１つまたは複数の画素の値と二次境界の１つまたは複数の画素の画素値と、または一次境界と二次境界とのうちの少なくとも１つの１つまたは複数の画素の値と予測後ブロックの１つまたは複数の画素の画素値とのいずれかを表すために、境界関係値を計算することができる。モード選択ユニット４０は、しきい値との境界関係値の比較に基づいて、二次境界を使用して、予測後ブロックをフィルタリングすべきかどうかを判定することができる。
【００８１】
いくつかの例では、境界関係値の計算は、ラプラシアン値の計算を含むことができる。たとえば、イントラ予測ユニット４６が、相対的に水平のイントラ予測モードを使用してブロックを予測する時に、モード選択ユニット４０は、式
【数３】
0005833250.tif 000005
【００８２】
に従ってラプラシアン値を計算することができる。
【００８３】
この例の関数では、ＴＲ［ｋ］は、ブロックの左エッジから始まる上側境界に沿ったｋ番目の画素に対応し、Ｎは、ブロックの幅を表す整数値である。より具体的には、ブロックの上側境界に沿った画素は、０からＮまででインデクシングされ得、０は、ブロックの左端画素を表し、Ｎは、ブロックの右端画素を表し、ブロックの幅は、（Ｎ＋１）である。
【００８４】
別の例として、イントラ予測ユニット４６が、相対的に垂直のイントラ予測モードを使用してブロックを予測する時に、モード選択ユニット４０は、式
【数４】
0005833250.tif 000006
【００８５】
に従ってラプラシアン値を計算することができる。
【００８６】
この例の関数では、ＳＲ［ｊ］は、ブロックの上エッジから始まる左側境界に沿ったｊ番目の画素に対応し、Ｎは、ブロックの高さを表す整数値である。より具体的には、ブロックの左側境界に沿った画素は、０からＮまででインデクシングされ得、０は、ブロックの上端画素を表し、Ｎは、ブロックの下端画素を表し、ブロックの高さは、（Ｎ＋１）である。
【００８７】
上では主に、相対的に水平または相対的に垂直のイントラ予測モードなど、方向性イントラ予測モードの使用に関して説明されるが、本開示の技法は、ＤＣモードまたはプレーナモードなどの非方向性イントラ予測モードから生じる予測後ブロックに二次境界フィルタリングを適用すべきかどうかを判定するためにも適用され得る。その場合に、ラプラシアン値の計算は、次の式に従って実行され得る。
【数５】
0005833250.tif 000007
【００８８】
上の例と同様に、この例では、ＴＲ［ｋ］は、ブロックの左エッジから始まる上側境界に沿ったｋ番目の画素に対応し、ＳＲ［ｊ］は、ブロックの上エッジから始まる左側境界に沿ったｊ番目の画素に対応する。この例では、ブロックは、正方形であると仮定され、値Ｎは、ブロックの高さと幅との両方を表す整数値である。上で注記されたように、ブロックの最初の画素（左端の画素と右端の画素と）の０インデクシングを仮定すると、高さは、幅と等しいものとすることができ、幅と高さとの両方が、（Ｎ＋１）と等しいものとすることができる。
【００８９】
他の例では、モード選択ユニット４０は、グラディエント差値として境界関係値を計算することができる。たとえば、イントラ予測ユニット４６が、相対的に水平のイントラ予測モードを使用して予測後ブロックを計算する時に、モード選択ユニット４０は、式
【数６】
0005833250.tif 000008
【００９０】
に従って境界関係値を計算することができる。
【００９１】
上の例と同様に、この例では、ＴＲ［ｋ］は、ブロックの左エッジから始まる上側境界に沿ったｋ番目の画素に対応し、Ｎは、ブロックの幅を表す整数値である。Ｐ（ｉ，ｊ）は、この例で位置（ｉ，ｊ）の予測ブロックの画素に対応する。
【００９２】
別の例として、イントラ予測ユニット４６が、相対的に垂直のイントラ予測モードを使用して予測後ブロックを計算する時に、モード選択ユニット４０は、式
【数７】
0005833250.tif 000009
【００９３】
に従って境界関係値を計算することができる。
【００９４】
上の例と同様に、この例では、ＳＲ［ｊ］は、ブロックの上エッジから始まる左側境界に沿ったｊ番目の画素に対応し、Ｎは、ブロックの高さを表す整数値である。
【００９５】
どの場合でも、モード選択ユニット４０は、たとえば境界関係値をしきい値と比較することによって、予測後ブロックを二次境界フィルタリングすべきかどうかを判定することができる。いくつかの例では、モード選択ユニット４０は、さまざまな特性、たとえば、境界関係値がラプラシアン値またはグラディエント差値のどちらであるのかに基づいて、異なるしきい値を定義するデータを含むことができる。モード選択ユニット４０が、予測後ブロックを二次境界フィルタリングしなければならないと判定する場合には、フィルタリングユニット６６は、二次境界フィルタをブロックに適用することができる。すなわち、イントラ予測ユニット４６は、予測後ブロックを表すデータをフィルタリングユニット６６に送ることができ、フィルタリングユニット６６は、二次境界のデータを使用してそのデータを変更することができる。イントラ予測ユニット４６またはモード選択ユニット４０は、どの境界が一次境界と考えられ、どの境界が二次境界と考えられるのかを示すデータをフィルタリングユニット６６に送ることもできる。フィルタリングユニット６６は、二次境界フィルタリングを実行するために、基準フレームメモリ６４から二次境界のデータを取り出すことができる。
【００９６】
ビデオ符号器２０は、コーディングされつつあるオリジナルビデオブロックから、モード選択ユニット４０からの予測データ（すなわち、予測後ブロック）を減算することによって、残差ビデオブロックを形成する。合計器５０は、この減算動作を実行する１つまたは複数のコンポーネントを表す。残差ビデオブロックは、予測された（おそらくはフィルタリングされた）ブロックと予測後ブロックが対応するオリジナルブロックとの間の画素ごとの差を表す。より具体的には、モード選択ユニット４０が、予測後ブロックを二次境界フィルタリングを使用してフィルタリングしないと判定する時に、モード選択ユニット４０は、予測後ブロックを合計器５０に送ることができる。その代わりに、モード選択ユニット４０が、予測後ブロックが二次境界フィルタリングされなければならないと判定する時には、モード選択ユニット４０は、フィルタリングされた予測後ブロック（フィルタリングユニット６６によって実行される二次境界フィルタリングから生じる）を合計器５０に送ることができる。この形で、ビデオ符号器２０は、予測後ブロックをフィルタリングしないという判定に応答して、予測後ブロックを使用してブロック（すなわち、予測後ブロックが対応するオリジナルブロック）を符号化し、予測後ブロックをフィルタリングするという判定に応答して、フィルタリングされた予測後ブロックを使用してブロックを符号化することができる。
【００９７】
変換処理ユニット５２は、残差ブロックに離散コサイン変換（ＤＣＴ）または概念的に類似する変換などの変換を適用し、残差変換係数値を備えるビデオブロックを作る。変換処理ユニット５２は、概念的にＤＣＴに類似する、Ｈ．２６４標準規格またはやがて来るＨＥＶＣ標準規格によって定義されるものなどの他の変換を実行することができる。ウェーブレット変換、整数変換、サブバンド変換、または他のタイプの変換も、使用され得る。どの場合でも、変換処理ユニット５２は、残差ブロックに変換を適用し、残差変換係数のブロックを作る。変換は、画素値領域からの残差情報を、周波数領域などの変換領域に変換することができる。量子化ユニット５４は、ビットレートをさらに下げるために、残差変換係数を量子化する。量子化プロセスは、係数の一部またはすべてに関連するビット深さを減らすことができる。量子化の度合は、量子化パラメータを調整することによって変更され得る。
【００９８】
量子化に続いて、エントロピコーディングユニット５６が、量子化された変換係数をエントロピコーディングする。たとえば、エントロピコーディングユニット５６は、コンテキスト適応型可変長コーディング（ＣＡＶＬＣ）、コンテキスト適応型バイナリ算術コーディング（ＣＡＢＡＣ）、または別のエントロピコーディング技法を実行することができる。エントロピコーディングユニット５６は、動きベクトル、イントラモードインジケータ、パーティション情報、および類似物など、モード選択ユニット４０からのシンタックス要素をもエントロピコーディングすることができる。エントロピコーディングユニット５６によるエントロピコーディングに続いて、符号化されたビデオは、別のデバイスに送信され、または後の送信もしくは取出しのためにアーカイブされ得る。コンテキスト適応型バイナリ算術コーディングの場合に、コンテキストは、隣接するブロックに基づくものとすることができる。
【００９９】
いくつかの場合に、エントロピコーディングユニット５６またはビデオ符号器２０の別のユニットは、エントロピコーディングに加えて、他のコーディング機能を実行するように構成され得る。たとえば、エントロピコーディングユニット５６は、ブロックおよびパーティションのＣＢＰ値を判定するように構成され得る。また、いくつかの場合に、エントロピコーディングユニット５６は、ブロックまたはそのパーティション内の係数のランレングスコーディングを実行することができる。具体的には、エントロピコーディングユニット５６は、さらなる圧縮のためにブロックまたはパーティション内の変換係数をスキャンし、ゼロのランを符号化するために、ジグザグスキャンまたは他のスキャンパターンを適用することができる。エントロピコーディングユニット５６は、符号化されたビデオビットストリーム内での伝送のために適当なシンタックス要素を有するヘッダ情報を構成することもできる。
【０１００】
逆量子化ユニット５８および逆変換ユニット６０は、たとえば基準ブロックとしての後の使用のために、画素領域の残差ブロックを再構成するために、それぞれ逆量子化および逆変換を適用する。動き補償ユニット４４は、残差ブロックに基準フレームメモリ６４のフレームのうちの１つの予測ブロックを加算することによって、基準ブロックを計算することができる。動き補償ユニット４４は、動き推定で使用されるサブ整数画素値を計算するために、再構成された残差ブロックに１つまたは複数の補間フィルタを適用することもできる。合計器６２は、基準フレームメモリ６４に格納される再構成されたビデオブロックを作るために、動き補償ユニット４４によって作られた動き補償された予測ブロックに再構成された残差ブロックを加算する。再構成されたビデオブロックは、動き推定ユニット４２および動き補償ユニット４４によって、後続ビデオフレームのブロックをインターコーディングするための基準ブロックとして使用され得る。
【０１０１】
この形で、ビデオ符号器２０は、予測後ブロックを形成するためにビデオデータブロックの一次境界に沿った画素の値を使用してビデオデータのブロックをイントラ予測し、ブロックの二次境界のデータを使用して、予測後ブロックをフィルタリングすべきかどうかを判定し、予測後ブロックをフィルタリングするとの判定に応答して、二次境界のデータを使用して、予測後ブロックをフィルタリングするように構成されたビデオコーダの例を表す。
【０１０２】
図３は、二次境界フィルタリングを実行すべきかどうかを判定する技法を実施することができるビデオ復号器３０の例を示すブロック図である。図３の例では、ビデオ復号器３０は、エントロピ復号ユニット７０と、動き補償ユニット７２と、イントラ予測ユニット７４と、フィルタリングユニット８４と、逆量子化ユニット７６と、逆変換ユニット７８と、基準フレームメモリ８２と、合計器８０とを含む。いくつかの例では、ビデオ復号器３０は、合計器８０の出力をフィルタリングし、デブロッキングされたビデオデータを基準フレームメモリ８２に格納することができるデブロッカ（図示せず）を含むことができる。ビデオ復号器３０は、いくつかの例で、ビデオ符号器２０（図２）に関して説明された復号パスに全般的に相反する復号パスを実行することができる。
【０１０３】
動き補償ユニット７２は、エントロピ復号ユニット７０から受け取られた動きベクトルに基づいて予測データを生成することができる。動き補償ユニット７２は、基準フレームメモリ８２内の基準フレーム内の予測ブロックを識別するために、ビットストリーム内で受け取られた動きベクトルを使用することができる。イントラ予測ユニット７４は、空間的に隣接するブロックから予測ブロックを形成するために、ビットストリーム内で受け取られたイントラ予測モードを使用することができる。
【０１０４】
本開示の技法によれば、イントラ予測ユニット７４は、ビデオデータのブロック（たとえば、ＰＵ）のイントラ予測コーディング中に二次境界フィルタリングを選択的にイネーブルしまたは（完全にまたは部分的に）ディスエーブルすることができる。具体的には、イントラ予測ユニット７４は、現在のブロック、たとえば現在のＰＵの２つの境界、たとえば左に隣接する境界と上に隣接する境界との間の境界関係を表す値を計算することができる。代替案では、イントラ予測ユニット７４は、現在のブロック（たとえば、現在のＰＵ）の境界と現在のブロックの画素値との間の境界関係を表す値を計算することができる。
【０１０５】
そのような例では、イントラ予測ユニット７４は、境界関係に少なくとも部分的に基づいて、ビデオデータの現在のブロックに対応する予測後ブロックをフィルタリングすべきかどうかを選択的に判定する。より具体的には、本開示の技法（たとえば、図５に関してより詳細に説明される）によれば、イントラ予測ユニット７４は、ビデオデータのイントラ予測されたブロックの二次境界フィルタリングをイネーブルすべきかまたはディスエーブルすべきかを判定することができる。二次境界フィルタリングの選択的なイネーブルまたはディスエーブルは、ブロック、たとえばＰＵの予測された値を改善することができ、これによって、そのブロックのＢＤレートを改善することができる。
【０１０６】
イントラ予測ユニット７４が、境界関係値を計算する例では、イントラ予測ユニット７４は、図２に関して議論されたように、ビデオ符号器２０に実質的に類似する形で、境界関係値を計算することができる。たとえば、イントラ予測ユニット７４は、ラプラシアン値を計算することができる。一例として、イントラ予測ユニット７４が、相対的に水平のイントラ予測モード（たとえば、イントラ予測モードを表す現在のブロックのシンタックスデータによって示される）を使用してブロックを予測する時に、イントラ予測ユニット７４は、次式に従ってラプラシアン値を計算することができる。
【数８】
0005833250.tif 000010
【０１０７】
この例の関数では、ＴＲ［ｋ］は、ブロックの左エッジから始まる上側境界に沿ったｋ番目の画素に対応し、Ｎは、ブロックの幅を表す整数値である。より具体的には、ブロックの上側境界に沿った画素は、０からＮまででインデクシングされ得、０は、ブロックの左端画素を表し、Ｎは、ブロックの右端画素を表し、ブロックの幅は、（Ｎ＋１）である。
【０１０８】
別の例として、イントラ予測ユニット７４が、相対的に垂直のイントラ予測モード（やはり、イントラ予測モードを示すシンタックスデータによる）を使用してブロックを予測する時に、イントラ予測ユニット７４は、式
【数９】
0005833250.tif 000011
【０１０９】
に従ってラプラシアン値を計算することができる。
【０１１０】
この例の関数では、ＳＲ［ｊ］は、ブロックの上エッジから始まる左側境界に沿ったｊ番目の画素に対応し、Ｎは、ブロックの高さを表す整数値である。より具体的には、ブロックの左側境界に沿った画素は、０からＮまででインデクシングされ得、０は、ブロックの上端画素を表し、Ｎは、ブロックの下端画素を表し、ブロックの高さは、（Ｎ＋１）である。
【０１１１】
上では主に、相対的に水平および相対的に垂直のイントラ予測モードなど、方向性イントラ予測モードの使用に関して説明されたが、本開示の技法は、ＤＣモードまたはプレーナモードなどの非方向性イントラ予測モードから生じる予測後ブロックに二次境界フィルタリングを適用すべきかどうかを判定するためにも適用され得る。その場合に、ラプラシアン値の計算は、次の式に従って実行され得る。
【数１０】
0005833250.tif 000012
【０１１２】
上の例と同様に、この例では、ＴＲ［ｋ］は、ブロックの左エッジから始まる上側境界に沿ったｋ番目の画素に対応し、ＳＲ［ｊ］は、ブロックの上エッジから始まる左側境界に沿ったｊ番目の画素に対応する。この例では、ブロックは、正方形であると仮定され、値Ｎは、ブロックの高さと幅との両方を表す整数値である。上で注記されたように、ブロックの最初の画素（いちばん左端の画素といちばん上の画素と）の０インデクシングを仮定すると、高さは、幅と等しいものとすることができ、幅と高さとの両方が、（Ｎ＋１）と等しいものとすることができる。
【０１１３】
他の例では、イントラ予測ユニット７４は、グラディエント差値として境界関係値を計算することができる。たとえば、イントラ予測ユニット７４が、相対的に水平のイントラ予測モードを使用して予測後ブロックを計算する時に、イントラ予測ユニット７４は、式
【数１１】
0005833250.tif 000013
【０１１４】
に従って境界関係値（グラディエント差値に対応する）を計算することができる。
【０１１５】
上の例と同様に、この例では、ＴＲ［ｋ］は、ブロックの左エッジから始まる上側境界に沿ったｋ番目の画素に対応し、Ｎは、ブロックの幅を表す整数値である。Ｐ（ｉ，ｊ）は、この例で位置（ｉ，ｊ）の予測ブロックの画素に対応する。
【０１１６】
別の例として、イントラ予測ユニット７４が、相対的に垂直のイントラ予測モードを使用して予測後ブロックを計算する時に、イントラ予測ユニット７４は、式
【数１２】
0005833250.tif 000014
【０１１７】
に従って境界関係値（グラディエント差値に対応する）を計算することができる。
【０１１８】
上の例と同様に、この例では、ＳＲ［ｊ］は、ブロックの上エッジから始まる左側境界に沿ったｊ番目の画素に対応し、Ｎは、ブロックの高さを表す整数値である。
【０１１９】
どの場合でも、イントラ予測ユニット７４は、たとえば境界関係値をしきい値と比較することによって、予測後ブロックを二次境界フィルタリングすべきかどうかを判定することができる。いくつかの例では、イントラ予測ユニット７４は、さまざまな特性、たとえば、境界関係値がラプラシアン値またはグラディエント差値のどちらであるのかに基づいて、異なるしきい値を定義するデータを含むことができる。そのようなしきい値は、事前に定義されまたはビデオ符号器から受け取られるシンタックス要素から判定されるものとすることができる。
【０１２０】
イントラ予測ユニット７４が、予測後ブロックを二次境界フィルタリングしなければならないと判定する場合には、フィルタリングユニット８４は、二次境界フィルタをブロックに適用することができる。すなわち、イントラ予測ユニット７４は、予測後ブロックを表すデータをフィルタリングユニット８４に送ることができ、フィルタリングユニット８４は、二次境界のデータを使用してそのデータを変更することができる。イントラ予測ユニット７４は、どの境界が一次境界と考えられ、どの境界が二次境界と考えられるのかを示すデータをフィルタリングユニット８４に送ることもできる。フィルタリングユニット８４は、二次境界フィルタリングを実行するために、基準フレームメモリ８２から二次境界のデータを取り出すことができる。
【０１２１】
二次境界を使用して、予測後ブロックをフィルタリングするために、フィルタリングユニット８４は、図２のビデオ符号器２０のフィルタリングユニット６６に関して説明された技法に実質的に類似するものとすることができる形で、二次境界の１つまたは複数の値を使用して、予測後ブロックの個々の画素Ｐijを変更することができる。すなわち、フィルタリングユニット８４は、二次境界フィルタリングがイネーブルされる時に、予測後ブロックのデータをフィルタリングするために、適宜、式（１）および／または（２）を実行することができる。たとえば、（ｉ，ｊ）が、位置（ｉ，ｊ）の予測後ブロックの画素に対応し、予測後ブロックの左上角が、位置（０，０）にあるものとする。Ｐijは、予測後ブロックの位置（ｉ，ｊ）の画素に対応するものとする。Ｐ’ijは、位置（ｉ，ｊ）のフィルタリングされた画素すなわち、フィルタリングユニット８４によって変更されたＰijの値を有する画素に対応するものとする。フィルタリングユニット８４は、次のように、相対的に垂直のイントラ予測モードを使用して予測された予測後ブロックのＰ’ijを計算することができる。
【数１３】
0005833250.tif 000015
【０１２２】
ここで、αは、０と１との間の分数であり、それぞれ垂直モードおよび水平モードについてｊおよびｉに従って選択され、ＲＬiは、Ｐijに対応する左側境界内の基準サンプル（すなわち、左側境界内の位置ｉにある画素）を表し、Ｌiは、現在のブロックの左列内の位置ｉにある基準サンプルを表す。一例では、ｊ（ｉ）＝０の時にα＝１／２であり、ｊ（ｉ）＝１の時にα＝１／４であり、ｊ（ｉ）＝２の時にα＝１／８であり、ｊ（ｉ）＝３，４の時にα＝１／１６である。
【０１２３】
フィルタリングユニット８４は、次のように、相対的に水平のイントラモードを使用して予測された予測後ブロックのＰ’ijを計算することができる。
【数１４】
0005833250.tif 000016
【０１２４】
ここで、αは、０と１との間の分数であり、それぞれ垂直モードおよび水平モードについてｊおよびｉに従って選択され（上で注記したように）、ＲＡjは、Ｐijに対応する上側境界内の基準サンプル（すなわち、上側境界内の位置ｊにある画素）を表し、Ａjは、上の行内の位置ｊにある基準サンプルを表す。上で注記したように、一例では、ｊ（ｉ）＝０の時にα＝１／２であり、ｊ（ｉ）＝１の時にα＝１／４であり、ｊ（ｉ）＝２の時にα＝１／８であり、ｊ（ｉ）＝３，４の時にα＝１／１６である。
【０１２５】
他の例では、イントラ予測ユニット７４は、二次境界フィルタリングを実行すべきかどうかを示すシンタックス要素を受け取ることができる。そのような例では、イントラ予測ユニット７４は、境界関係値を計算する必要がない。その代わりに、イントラ予測ユニット７４は、シンタックス要素の値に基づいて、二次境界フィルタリングを実行すべきかどうかを判定することができる。図２に関して議論されたように、ビデオ符号器２０などのビデオ符号器は、特定の予測後ブロックについて二次境界フィルタリングを実行すべきかどうかを判定するために、境界関係値を計算し、境界関係値をしきい値と比較し、その後、判定を示すシンタックス要素を符号化することができる。したがって、ビデオ復号器３０は、相対的に水平または相対的に垂直のイントラ予測モードから生じる予測後ブロックをフィルタリングすべきかどうかを判定するために、シンタックス要素を復号することができる。
【０１２６】
逆量子化ユニット７６は、ビットストリーム内で供給され、エントロピ復号ユニット７０によって復号された量子化された変換係数を逆量子化すなわち量子化解除する。逆量子化プロセスは、従来のプロセス、たとえば、Ｈ．２６４復号標準規格またはやがて来るＨＥＶＣ標準規格によって定義されるプロセスを含むことができる。逆量子化プロセスは、量子化の度合および同様に適用すべき逆量子化の度合を判定するためにブロックごとにビデオ復号器３０によって計算された量子化パラメータＱＰYの使用をも含むことができる。
【０１２７】
逆量子化ユニット５８は、画素領域の残差ブロックを作るために、変換係数に逆変換、たとえば逆ＤＣＴ、逆整数変換、または概念的に類似する逆変換プロセスを適用する。動き補償ユニット７２は、おそらくは補間フィルタに基づく補間を実行して、動き補償されたブロックを作る。サブ画素精度を有する動き推定に使用される補間フィルタの識別子は、シンタックス要素に含まれ得る。動き補償ユニット７２は、基準ブロックのサブ整数画素の補間された値を計算するために、ビデオブロックの符号化中にビデオ符号器２０によって使用された補間フィルタを使用することができる。動き補償ユニット７２は、受け取られたシンタックス情報に従ってビデオ符号器２０によって使用された補間フィルタを判定し、予測ブロックを作るのにその補間フィルタを使用することができる。
【０１２８】
動き補償ユニット７２は、符号化されたビデオシーケンスのフレーム（１つまたは複数）を符号化するのに使用されたブロックのサイズと、符号化されたビデオシーケンスのフレームの各ブロックがどのように区分されるのかを記述するパーティション情報と、各パーティションがどのように符号化されるのかを示すモードと、インター符号化されたブロックまたはパーティションごとに１つまたは複数の基準フレーム（および基準フレームリスト）と、符号化されたビデオシーケンスを復号するための他の情報とを判定するために、シンタックス情報の一部を使用する。代替案では、上で議論されたように、イントラ予測ユニット７４は、ビデオデータのブロックをイントラ予測することができる。さらに、イントラ予測ユニット７４は、やはり上で議論されるように、フィルタリングユニット８４に予測後ブロックをフィルタリングさせるべきかどうかを判定することができる。
【０１２９】
合計器８０は、復号されたブロックを形成するために、残差ブロックを、動き補償ユニット７２またはイントラ予測ユニット７４によって生成された対応する予測ブロックと合計する。より具体的には、本開示の教示に従って、イントラ予測ユニット７４が、予測後ブロックを作り、二次境界フィルタリングを実行すべきではないと判定する時に、合計器８０は、残差ブロックを対応する予測後ブロックと合成する。その一方で、イントラ予測ユニット７４が、予測後ブロックを作り、フィルタリングユニット８４に二次境界フィルタリングを実行させる時に、合計器８０は、残差ブロックを対応するフィルタリングされた予測後ブロックと組み合わせる。望まれる場合に、デブロッキングフィルタも、ブロッキネスアーチファクトを除去するために、復号されたブロックをフィルタリングするために適用され得る。デブロッキングフィルタが、本開示の二次境界フィルタリングプロセスとは別々であることを理解されたい。復号されたビデオブロックは、次に基準フレームメモリ８２に格納され、基準フレームメモリ８２は、後続の動き補償またはイントラ予測のために基準ブロックを提供し、ディスプレイデバイス（図１のディスプレイデバイス３２など）上の提示のために復号されたビデオをも作る。
【０１３０】
この形で、ビデオ復号器３０は、予測後ブロックを形成するためにブロックの一次境界に沿った画素の値を使用してビデオデータのブロックをイントラ予測し、ブロックの二次境界のデータを使用して、予測後ブロックをフィルタリングすべきかどうかを判定し、予測後ブロックをフィルタリングするとの判定に応答して、二次境界のデータを使用して、予測後ブロックをフィルタリングするように構成されたビデオコーダの例を表す。
【０１３１】
図４は、ＨＥＶＣでのさまざまなイントラ予測モード方向を示す概念図である。イントラ予測モードは、全般的に、括弧内の数の識別子ならびに垂直（ｖ）または水平（ｈ）のいずれかからの相対オフセットを使用して示される。この例では、モード（２）は、一般に、非方向性であるＤＣ予測モードに対応するので、スキップされる。プレーナモードなどの他の非方向性イントラ予測モードも、図４から省略されている。
【０１３２】
図４の例では、方向性イントラ予測モードは、相対的に水平または相対的に垂直のいずれかとして示され得る。水平に対して相対的に示されるモード（たとえば、ｈ＋ｎ、ただしｎ∈［０，８］）は、相対的に水平と言われ、垂直に対して相対的に示されるモード（たとえば、ｖ＋ｎ、ただしｎ∈［０，８］）は、この例では相対的に垂直と言われる。他の方向性モードは、相対的に対角と考えられ、破線を有する矢印によって表される。そのような相対的に対角のイントラ予測モードは、ｈ−ｎ、ただしｎ∈［１，  ７］）およびｖ−ｎ、ただしｎ∈［１，８］）と定義されるモードを含む。
【０１３３】
方向性イントラ予測モード（相対的に水平と、相対的に垂直と、相対的に対角とを含む）について、二次境界は、相対的に水平のモード（ＨＯＲからＨＯＲ＋８まで）およびモード（ＨＯＲ−１からＨＯＲ−７）を含む相対的に対角のモードについて、上ＰＵ境界と定義され、相対的に垂直のモード（ＶＥＲからＶＥＲ＋８まで）およびモード（ＶＥＲ−１からＶＥＲ−８）を含む相対的に対角のモードについて、横（左）ＰＵ境界と定義される。一般に、二次境界フィルタリングを実行すべきかどうかを判定するための、お互いまたは予測ユニットの画素に対する境界の比較は、現在のブロックと隣接する以前にコーディングされたブロック、たとえば現在のブロックの左または上のブロックとの間の境界のデータを分析することに対応する。
【０１３４】
したがって、境界関係への言及は、現在のブロックと隣接する以前にコーディングされたブロックとの間の２つの境界の間または現在のブロックと隣接する以前にコーディングされたブロックとの間の２つの境界のうちの１つと現在のブロックの画素値（たとえば、現在のブロックのＰＵの画素値）とに対する数学的関係を含むと理解されなければならない。そのような数学的関係は、たとえば、ラプラシアン計算およびグラディエント差計算を含むことができる。
【０１３５】
図５Ａおよび図５Ｂは、ラプラシアンに基づく基準境界サンプルの間の境界関係の計算を示す概念図である。図５Ａは、画素１０６Ａ〜１０６Ｐ（画素１０６）を含むブロック１００を示す。ブロック１００は、画素１０４Ａ〜１０４Ｄ（画素１０４）によって定義される上側境界および画素１０２Ａ〜１０２Ｄによって定義される左側境界に隣接する。この例では、ブロック１００は、４ｘ４ブロックであり、これは、ブロック１００が４画素の高さおよび４画素の幅を有することを意味する。画素１０６は、座標（ｉ，ｊ）を使用して言及され得、ｉおよびｊは、［０，３］に含まれる。したがって、ブロック１００の高さおよび幅は、Ｎによって表され得、Ｎ＝３である。具体的には、ブロック１００の高さおよび幅は、Ｎ＋１（したがって、この例では４）である。図５Ｂのブロック１１０は、同様に、画素１１６Ａ〜１１６Ｐを含み、画素１１４Ａ〜１１４Ｄ（画素１１４）によって定義される上側境界および画素１１２Ａ〜１１２Ｄ（画素１１２）によって定義される左側境界に隣接する。ブロック１００と同様に、図５Ｂのブロック１１０は、４ｘ４ブロックである。
【０１３６】
図５Ａおよび図５Ｂの矢印は、ブロック１００、１１０のイントラ予測方向を表す。これらの例では、ブロック１００は、相対的に水平の予測方向を使用して予測され、ブロック１１０は、相対的に垂直の予測方向を使用して予測される。したがって、ブロック１００の一次境界は、画素１０２によって定義される左側境界であり、ブロック１００の二次境界は、画素１０４によって定義される上側境界である。その一方で、ブロック１１０の一次境界は、画素１１４によって定義される上側境界であり、ブロック１１０の二次境界は、画素１１２によって定義される左側境界である。
【０１３７】
上基準境界サンプル（図５Ａでは画素１０４、図５Ｂでは画素１１４によって定義される）は、ＴＲ［ｉ］（ｉ＝０…Ｎ）によっても表され得、横基準境界サンプル（図５Ａでは画素１０２、図５Ｂでは画素１１２によって定義される）は、ＳＲ［ｉ］（ｉ＝０…Ｎ）によっても表され得る。これらの例では、「境界サンプル」は、現在のブロックの境界の画素値であり、境界は、現在のブロックに対する相対的な、隣接する以前にコーディングされたブロックの画素を含む。イントラＰＵサンプル（すなわち、図５Ａの画素１０６および図５Ｂの画素１１６など、ＰＵの予測された画素値）は、Ｐ［ｋ，ｌ］（ｋ，ｌ＝０…Ｎ）によって表される。次の擬似コードは、方向性イントラ予測モードの場合のラプラシアンに基づく基準境界サンプルの間の関係の例の計算を示す。
【数１５】
0005833250.tif 000017
【０１３８】
この擬似コードでは、ラプラシアンの絶対値が、２つの隣接する基準境界位置について、すなわち、ＴＲ［Ｎ−１］およびＴＲ［Ｎ−２］またはＳＲ［Ｎ−１］およびＳＲ［Ｎ−２］を中心として計算される。一般に、ラプラシアンは、少なくとも１つの位置について計算され得、複数の位置の場合には、ラプラシアンは、基準境界位置に沿ってまばらに分布しまたはこれに隣接する可能性がある。さらに、この技法は、１つの基準境界線から複数の基準境界線に拡張され得る。
【０１３９】
したがって、図５Ａの例では、ブロック１００について、ラプラシアン値は、次式として計算され得る。
【数１６】
0005833250.tif 000018
【０１４０】
同様に、図５Ｂの例では、ブロック１１０について、ラプラシアン値は、次式として計算され得る。
【数１７】
0005833250.tif 000019
【０１４１】
非方向性のＤＣイントラ予測モードおよびプレーナイントラ予測モードの場合には、「二次」境界は、上と横（左）との両方のイントラＰＵ境界によって定義され得る。次の擬似コードは、例の解を示す。
【数１８】
0005833250.tif 000020
【０１４２】
グラディエント差に基づく代替の数学的関係が、使用され得る。これは、方向性イントラ予測モードについて次の擬似コードを用いて示される。
【数１９】
0005833250.tif 000021
【０１４３】
ラプラシアンベースの関係と同様に、ＤＣイントラモードおよびプレーナイントラモードについて、両方の境界が、一緒に処理され得る。一般的な場合に、少なくとも１つのグラディエント差が、計算され得、複数のグラディエント差の場合に、これらは、イントラＰＵ境界に沿ってまばらにまたはお互いに隣接して配置され得る。さらに、グラディエント差は、複数の基準境界線およびＴＲ［ｉ］サンプルとＳＲ［ｉ］サンプルとの間のグラディエント差に拡張され得る。さらなる拡張は、イントラＰＵ全体および基準境界からのサンプルを含めることとすることができる。
【０１４４】
さらに、各二次境界フィルタリング技法（フィルタリング、グラディエントベースの、両方向のなど）は、その技法をイネーブルしまたはディスエーブルするための、それ自体の専用の保護論理およびしきい値を有することができる。各方向性または非方向性のイントラ予測モードは、適当な二次境界フィルタリング技法をイネーブルしまたはディスエーブルするための、それ自体の専用の保護論理およびしきい値を有することができる。テーブルが、二次境界フィルタリング技法をイネーブルしまたはディスエーブルするために、しきい値（適当な保護論理に対応する）と一緒に、方向性イントラ予測モードまたは非方向性イントラ予測モードごとに適用すべき二次境界フィルタリング技法をルックアップするのに使用され得る。代替案では、この情報は、符号器によって復号器に（たとえば、ビデオ符号器２０によってビデオ復号器３０に）シグナリングされ得る。したがって、符号器は、さまざまな例で、二次境界フィルタリングを実行すべきかどうかまたは二次境界フィルタリングを実行すべきかどうかを判定するための判断基準を復号器にシグナリングすることができる。さらに別の例では、ビデオ復号器は、先験的に二次境界フィルタリングを実行すべきかどうかを判定する判断基準を伴って構成され得る。
【０１４５】
図６は、現在のブロックを符号化する例の方法を示す流れ図である。現在のブロックは、現在のＣＵまたは現在のＣＵの一部を備えることができる。ビデオ符号器２０（図１および図２）に関して説明されるが、他のデバイスが、図６の方法に類似する方法を実行するように構成され得ることを理解されたい。
【０１４６】
この例では、ビデオ符号器２０は、当初に、イントラ予測を使用して現在のブロックを予測する（１２０）。たとえば、ビデオ符号器２０は、現在のブロックの１つまたは複数の予測ユニット（ＰＵ）を計算することができる。本開示の技法によれば、ビデオ符号器２０は、イントラ予測モード、たとえば、相対的に水平または相対的に垂直のイントラ予測モードを使用して現在のブロックを予測することができる。いくつかの例では、ビデオ符号器２０は、相対的に対角のイントラ予測モードまたはＤＣモードもしくはプレーナモードなどの非方向性イントラ予測モードを使用して現在のブロックを予測することができる。
【０１４７】
次に、ビデオ符号器２０は、二次境界フィルタリングを実行すべきかどうかを判定することができる（１２２）。二次境界フィルタリングを実行すべきかどうかを判定する例の方法は、下で図８に関してより詳細に説明される。次に、ビデオ符号器２０は、二次境界フィルタリングが決定される場合に、予測後ブロックをフィルタリングすることができる（１２４）。すなわち、イントラ予測ユニット４６が、予測後ブロックを形成することができ、フィルタリングユニット６６（図２）が、二次境界に沿った画素の値を使用して、予測後ブロックの値をフィルタリングすることができる。
【０１４８】
次に、ビデオ符号器２０は、たとえば変換ユニット（ＴＵ）を作るために、現在のブロックの残差ブロックを計算することができる（１２６）。残差ブロックを計算するために、ビデオ符号器２０は、オリジナルのコーディングされていないブロックと現在のブロックの予測後ブロックとの間の差を計算することができる。具体的には、本開示の技法によれば、ビデオ符号器２０は、二次境界フィルタリングが決定されない時にはオリジナルブロックと予測後ブロックとの間の差として、二次境界フィルタリングが決定される時にはオリジナルブロックとフィルタリングされた予測後ブロックとの間の差として、残差ブロックを計算することができる。
【０１４９】
次に、ビデオ符号器２０は、残差ブロックの係数を変換し、量子化することができる（１２８）。次に、ビデオ符号器２０は、残差ブロックの量子化された変換係数をスキャンすることができる（１３０）。スキャン中にまたはスキャンの後に、ビデオ符号器２０は、係数をエントロピ符号化することができる（１３２）。たとえば、ビデオ符号器２０は、ＣＡＶＬＣまたはＣＡＢＡＣを使用して係数を符号化することができる。次に、ビデオ符号器２０は、ブロックのエントロピコーディングされたデータを出力することができる（１３４）。
【０１５０】
この形で、図６の方法は、予測後ブロックを形成するためにビデオデータブロックの一次境界に沿った画素の値を使用してビデオデータのブロックをイントラ予測することと、ブロックの二次境界のデータを使用して、予測後ブロックをフィルタリングすべきかどうかを判定することと、予測後ブロックをフィルタリングするとの判定に応答して、二次境界のデータを使用して、予測後ブロックをフィルタリングすることとを含む方法の例を表す。
【０１５１】
図７は、ビデオデータの現在のブロックを復号する例の方法を示す流れ図である。現在のブロックは、現在のＣＵまたは現在のＣＵの一部を備えることができる。ビデオ復号器３０（図１および図３）に関して説明されるが、他のデバイスが、図７の方法に類似する方法を実行するように構成され得ることを理解されたい。
【０１５２】
ビデオ復号器３０は、現在のブロックの予測ブロックを計算するために、イントラ予測を使用して現在のブロックを予測することができる（１４０）。たとえば、ビデオ復号器３０は、現在のブロックの１つまたは複数の予測ユニット（ＰＵ）を計算することができる。具体的には、ビデオ復号器３０は、現在のブロックのイントラ予測モード表示をエントロピ復号することができる。本開示の教示によれば、ビデオ復号器３０は、イントラ予測モード、たとえば、相対的に水平または相対的に垂直のイントラ予測モードを使用して現在のブロックを予測することができる。いくつかの例では、ビデオ復号器３０は、相対的に対角のイントラ予測モードまたはＤＣモードもしくはプレーナモードなどの非方向性イントラ予測モードを使用して現在のブロックを予測することができる。
【０１５３】
次に、ビデオ復号器３０は、二次境界フィルタリングを実行すべきかどうかを判定する（１４２）。二次境界フィルタリングを実行すべきかどうかを判定する例の方法は、下で図８に関してより詳細に説明される。次に、ビデオ復号器３０は、二次境界フィルタリングが決定される場合に、予測後ブロックをフィルタリングすることができる（１４４）。すなわち、イントラ予測ユニット７４が、予測後ブロックを形成することができ、フィルタリングユニット８４（図３）が、二次境界に沿った画素の値を使用して、予測後ブロックの値をフィルタリングすることができる。
【０１５４】
ビデオ復号器３０は、現在のブロックに対応する残差ブロックの係数のエントロピコーディングされたデータなど、現在のブロックのエントロピコーディングされたデータを受け取ることもできる（１４６）。ビデオ復号器３０は、残差ブロックの係数を再現するために、エントロピコーディングされたデータをエントロピ復号することができる（１４８）。次に、ビデオ復号器３０は、量子化された変換係数のブロックを作成するために、再現された係数を逆スキャンすることができる（１５０）。次に、ビデオ復号器３０は、残差ブロックを作るために、係数を逆量子化し、逆変換することができる（１５２）。最終的に、ビデオ復号器３０は、予測後ブロックと残差ブロックとを組み合わせる（１５４）ことによって、現在のブロックを復号することができる。具体的には、ビデオ復号器３０は、二次境界フィルタリングが決定されない時に、残差ブロックを予測後ブロックと組み合わせることができる。その一方で、二次境界フィルタリングが決定される時には、ビデオ復号器３０は、残差ブロックをフィルタリングされた予測後ブロックと組み合わせることができる。
【０１５５】
この形で、図７の方法は、予測後ブロックを形成するためにビデオデータブロックの一次境界に沿った画素の値を使用してビデオデータのブロックをイントラ予測することと、ブロックの二次境界のデータを使用して、予測後ブロックをフィルタリングすべきかどうかを判定することと、予測後ブロックをフィルタリングするとの判定に応答して、二次境界のデータを使用して、予測後ブロックをフィルタリングすることとを含む方法の例を表す。
【０１５６】
図８は、本開示の技法による二次境界フィルタリングを実行すべきかどうかを判定する例の方法を示す流れ図である。図８の方法は、ビデオ符号器２０（たとえば、イントラ予測ユニット４６）および／またはビデオ復号器３０（たとえば、イントラ予測ユニット７４）、あるいは他のビデオデータ処理デバイスによって実行され得る。例において、図８の方法は、ビデオ符号器２０に関して説明されるが、類似する方法が、ビデオ復号器３０によって実行され得ることを理解されたい。いくつかの例では、図８の方法のステップ１６２〜１６８は、図６の方法のステップ１２２と図７の方法のステップ１４２とに対応することができる。
【０１５７】
当初に、ビデオ符号器２０は、ビデオデータのブロックをイントラ予測することができる（１６０）。たとえば、ビデオ符号器２０は、ビデオデータのブロックを符号化するのに使用すべきイントラモードを選択し、その後、ビデオデータのイントラコーディングされたブロックを復号することができる。ビデオ復号器３０は、図８の方法を実行する時に、受信されたシンタックス情報によって示されるイントラモードを使用して、ビデオデータのコーディングされたブロックを復号することができる。
【０１５８】
ビデオデータのイントラコーディングされたブロックを予測した後に、ビデオ符号器２０は、そのブロックの境界関係を表す値を計算することができる（１６２）。境界関係は、ある境界と別の境界と（たとえば、上側境界と左側境界と）の間または境界とイントラＰＵサンプルとの間の数学的関係を含むことができる。いくつかの例では、境界関係は、ラプラシアン値を備えることができ、他の例では、境界関係は、グラディエント差に基づくものとすることができる。
【０１５９】
たとえば、ブロックが、相対的に水平の方向性イントラ予測モードを使用して予測された場合に、ビデオ符号器２０は、上に隣接するブロック内の画素の値からラプラシアン値を計算することができる。たとえば、図５Ａに示され、図５Ａに関して議論されるように、ビデオ符号器２０は、｜ＴＲ［Ｎ−２］−２＊ＴＲ［Ｎ−１］＋ＴＲ［Ｎ］｜と｜ＴＲ［Ｎ−３］−２＊ＴＲ［Ｎ−２］＋ＴＲ［Ｎ−１］｜との最大値としてラプラシアン値を計算することができる。別の例として、ブロックが、相対的に垂直の方向性イントラ予測モードを使用して予測された場合に、ビデオ符号器２０は、左に隣接するブロック内の画素の値からラプラシアン値を計算することができる。たとえば、図５Ｂに示され、図５Ｂに関して議論されるように、ビデオ符号器２０は、｜ＳＲ［Ｎ−２］−２＊ＳＲ［Ｎ−１］＋ＳＲ［Ｎ］｜と｜ＳＲ［Ｎ−３］−２＊ＳＲ［Ｎ−２］＋ＳＲ［Ｎ−１］｜との最大値としてラプラシアン値を計算することができる。
【０１６０】
別の例として、ブロックは、ＤＣモードまたはプレーナモードなど、非方向性イントラ予測モードを使用して予測された場合がある。いくつかの例では、ブロックが、非方向性モードを使用してイントラ予測される時に、ビデオ符号器２０は、｜ＴＲ［Ｎ−２］−２＊ＴＲ［Ｎ−１］＋ＴＲ［Ｎ］｜と、｜ＴＲ［Ｎ−３］−２＊ＴＲ［Ｎ−２］＋ＴＲ［Ｎ−１］｜と、｜ＳＲ［Ｎ−２］−２＊ＳＲ［Ｎ−１］＋ＳＲ［Ｎ］｜と、｜ＳＲ［Ｎ−３］−２＊ＳＲ［Ｎ−２］＋ＳＲ［Ｎ−１］｜との最大値としてラプラシアン値を計算することができる。
【０１６１】
他の例では、ビデオ符号器２０は、境界関係としてのグラディエント差に基づいて数学的関係を計算することができる。たとえば、ビデオ符号器２０は、相対的に水平の方向モードについて｜ＴＲ［Ｎ］−Ｐ［Ｎ，０］｜と、｜ＴＲ［Ｎ−１］−Ｐ［Ｎ−１，０］｜と、｜ＴＲ［Ｎ］−Ｐ［Ｎ−１，０］｜、と｜ＴＲ［Ｎ−１］−Ｐ［Ｎ，０］｜との最大値として、相対的に垂直の方向モードについて｜ＳＲ［Ｎ］−Ｐ［０，Ｎ］｜と、｜ＳＲ［Ｎ−１］−Ｐ［０，Ｎ−１］｜と、｜ＳＲ［Ｎ］−Ｐ［０，Ｎ−１］｜と、｜ＳＲ［Ｎ−１］−Ｐ［０，Ｎ］｜との最大値として、グラディエント差値を計算することができる。ビデオ符号器２０は、非方向性モードに関するラプラシアン値に実質的に類似する形で、非方向性モードについてグラディエント差値を計算するようにも構成され得る。
【０１６２】
境界関係を表す値（本明細書では境界関係値とも称する）を計算した後に、ビデオ符号器２０は、その値がしきい値未満であるかどうかを判定することができる（１６４）。値がしきい値未満である（１６４の「ＹＥＳ」分岐）場合には、ビデオ符号器２０は、二次境界フィルタリングをイネーブルすることができる（１６６）。その一方で、値がしきい値未満ではない（たとえば、しきい値以上）（１６４の「ＮＯ」分岐）場合には、ビデオ符号器２０は、二次境界フィルタリングをディスエーブルすることができる（１６８）。しきい値以上の値は、二次境界フィルタリングがイネーブルされる場合に、ＢＤレートが劣化することを示すことができる。この形で、ビデオ符号器２０および／またはビデオ復号器３０は、ビデオデータのイントラ予測されたブロックについて二次境界フィルタリングをイネーブルすべきかまたはディスエーブルすべきかを判定することができる。
【０１６３】
１つまたは複数の例では、説明される機能は、ハードウェア、ソフトウェア、ファームウェア、またはその任意の組合せで実施され得る。ソフトウェアで実施される場合に、機能は、コンピュータ可読媒体上の１つまたは複数の命令またはコードとして格納されまたは送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形の媒体に対応するコンピュータ可読記憶媒体またはたとえば通信プロトコルに従ってある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体を含むことができる。この形で、コンピュータ可読媒体は、一般に（１）非一時的な有形のコンピュータ可読記憶媒体または（２）信号もしくは搬送波などの通信媒体に対応することができる。データ記憶媒体は、本開示で説明される技法の実施態様の命令、コード、および／またはデータ構造を取り出すために１つまたは複数のコンピュータあるいは１つまたは複数のプロセッサによってアクセスされ得る任意の使用可能な媒体とすることができる。コンピュータプログラム製品は、コンピュータ可読媒体を含むことができる。
【０１６４】
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ（登録商標）、ＣＤ−ＲＯＭもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、フラッシュメモリ、または命令もしくはデータ構造の形で所望のプログラムコードを格納するのに使用でき、コンピュータによってアクセスできる任意の他の媒体を備えることができる。また、すべての接続は、当然、コンピュータ可読媒体と呼ばれる。たとえば、命令が、ウェブサイト、サーバ、または他のリモートソースから同軸ケーブル、光ファイバケーブル、より対線、デジタル加入者回線（ＤＳＬ）、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して送信される場合に、同軸ケーブル、光ファイバケーブル、より対線、ＤＳＬ、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかし、コンピュータ可読記憶媒体およびデータ記憶媒体が、接続、搬送波、信号、または他の一時的媒体を含まず、その代わりに、非一時的な有形の記憶媒体を対象とすることを理解されたい。ディスク（ｄｉｓｋおよびｄｉｓｃ）は、本明細書で使用される時に、コンパクトディスク（ＣＤ）と、レーザーディスク（登録商標）と、光ディスクと、デジタル多用途ディスク（ＤＶＤ）と、フロッピ（登録商標）ディスクと、Ｂｌｕ−ｒａｙ（登録商標）ディスクとを含み、ｄｉｓｋは、通常はデータを磁気的に再現し、ｄｉｓｃは、データを、レーザを用いて光学的に再現する。上記の組合せも、コンピュータ可読媒体の範囲に含まれなければならない。
【０１６５】
命令は、１つまたは複数のデジタル信号プロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラマブル論理アレイ（ＦＰＧＡ）、または他の同等の集積回路網もしくはディスクリート論理回路網などの１つまたは複数のプロセッサによって実行され得る。したがって、「プロセッサ」という用語は、本明細書で使用される時に、前述の構造または本明細書で説明される技法の実施に適する任意の他の構造のいずれをも指すことができる。さらに、いくつかの態様では、本明細書で説明される機能性は、符号化および復号のために構成された専用のハードウェアモジュールおよび／またはソフトウェアモジュール内で提供され、あるいは組み合わされたコーデックに組み込まれ得る。また、この技法は、１つまたは複数の回路または論理要素内で完全に実施され得る。
【０１６６】
本開示の技法は、ワイヤレスハンドセット、集積回路（ＩＣ）、またはＩＣのセット（たとえば、チップセット）を含むさまざまなデバイスまたは装置で実施され得る。さまざまなコンポーネント、モジュール、またはユニットは、開示される技法を実行するように構成されたデバイスの機能的態様を強調するために本開示で説明されるが、必ずしも、異なるハードウェアユニットによる実現を必要としない。そうではなく、上で説明されるように、さまざまなユニットは、コーデックハードウェアユニットに組み合わされ、または、適切なソフトウェアおよび／またはファームウェアに関連する、上で説明された１つまたは複数のプロセッサを含む相互動作可能なハードウェアユニットの集合によって提供され得る。
【０１６７】
さまざまな例が説明された。これらおよび他の例は、次の特許請求の範囲の範囲に含まれる。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［１］予測後ブロックを形成するために、ビデオデータのブロックの一次境界に沿った画素の値を使用して、前記ブロックをイントラ予測することと、
前記ブロックの二次境界のデータを使用して前記予測後ブロックをフィルタリングすべきかどうかを判定することと、
前記予測後ブロックをフィルタリングすべきであるとの判定に応答して、前記二次境界のデータを使用して前記予測後ブロックをフィルタリングすることと
を備える、ビデオデータをコーディングする方法。
［２］前記二次境界の前記データを使用して前記予測後ブロックをフィルタリングすべきかどうかを判定することは、境界関係を表す値を計算することを備える、［１］に記載の方法。
［３］前記予測後ブロックをフィルタリングすべきかどうかを判定することは、前記計算された値のしきい値との比較に基づいて前記予測後ブロックをフィルタリングすべきかどうかを判定することを備える、［２］に記載の方法。
［４］前記値は、前記一次境界の１つまたは複数の画素の画素値と前記二次境界の１つまたは複数の画素の画素値との間の関係を表す、［２］に記載の方法。
［５］前記値は、前記一次境界および前記二次境界のうちの少なくとも１つの１つまたは複数の画素の画素値と前記予測後ブロックの１つまたは複数の画素の画素値との間の関係を表す、［２］に記載の方法。
［６］前記値を計算することは、ラプラシアン値を計算することを備える、［２］に記載の方法。
［７］前記ブロックをイントラ予測することは、相対的に水平のイントラ予測モードを使用して前記ブロックを予測することを備え、前記ラプラシアン値を計算することは、｜ＴＲ［Ｎ−２］−２＊ＴＲ［Ｎ−１］＋ＴＲ［Ｎ］｜と｜ＴＲ［Ｎ−３］−２＊ＴＲ［Ｎ−２］＋ＴＲ［Ｎ−１］｜との最大値を計算することを備え、前記二次境界は、上側境界を備え、ＴＲ［ｋ］は、前記ブロックの左エッジから始まる上境界に沿ったｋ番目の画素に対応し、Ｎは、前記ブロックの幅を表す整数値である、［６］に記載の方法。
［８］前記ブロックをイントラ予測することは、相対的に垂直のイントラ予測モードを使用して前記ブロックを予測することを備え、前記ラプラシアン値を計算することは、｜ＳＲ［Ｎ−２］−２＊ＳＲ［Ｎ−１］＋ＳＲ［Ｎ］｜と｜ＳＲ［Ｎ−３］−２＊ＳＲ［Ｎ−２］＋ＳＲ［Ｎ−１］｜との最大値を計算することを備え、前記二次境界は、左側境界を備え、ＳＲ［ｊ］は、前記ブロックの上エッジから始まる前記左側境界に沿ったｊ番目の画素に対応し、Ｎは、前記ブロックの高さを表す整数値である、［６］に記載の方法。
［９］前記ブロックをイントラ予測することは、非方向性イントラ予測モードを使用して前記ブロックを予測することを備え、前記ラプラシアン値を計算することは、｜ＴＲ［Ｎ−２］−２＊ＴＲ［Ｎ−１］＋ＴＲ［Ｎ］｜と、｜ＴＲ［Ｎ−３］−２＊ＴＲ［Ｎ−２］＋ＴＲ［Ｎ−１］｜と、｜ＳＲ［Ｎ−２］−２＊ＳＲ［Ｎ−１］＋ＳＲ［Ｎ］｜と、｜ＳＲ［Ｎ−３］−２＊ＳＲ［Ｎ−２］＋ＳＲ［Ｎ−１］｜との最大値を計算することを備え、ＴＲ［ｋ］は、前記ブロックの左エッジから始まる上側境界に沿ったｋ番目の画素に対応し、ＳＲ［ｊ］は、前記ブロックの上エッジから始まる左側境界に沿ったｊ番目の画素に対応し、前記ブロックは、正方形ブロックを備え、Ｎは、前記ブロックの幅および高さを表す整数値である、［６］に記載の方法。
［１０］非方向性イントラ予測モードを使用して前記ブロックをイントラ予測することは、ＤＣモードおよびプレーナモードのうちの１つを使用して前記ブロックを予測することを備える、［９］に記載の方法。
［１１］前記値を計算することは、グラディエント差値を計算することを備える、［２］に記載の方法。
［１２］前記ブロックをイントラ予測することは、相対的に水平のイントラ予測モードを使用して前記ブロックを予測することを備え、前記グラディエント差値を計算することは、｜ＴＲ［Ｎ］−Ｐ［Ｎ，０］｜と、｜ＴＲ［Ｎ−１］−Ｐ［Ｎ−１，０］｜と、｜ＴＲ［Ｎ］−Ｐ［Ｎ−１，０］｜と、｜ＴＲ［Ｎ−１］−Ｐ［Ｎ，０］｜との最大値を計算することを備え、前記二次境界は、上側境界を備え、ＴＲ［ｋ］は、前記ブロックの左エッジから始まる上境界に沿ったｋ番目の画素に対応し、Ｎは、前記ブロックの幅を表す整数値であり、Ｐ［ｉ，ｊ］は、位置［ｉ，ｊ］の前記予測後ブロックの画素に対応する、［１１］に記載の方法。
［１３］前記ブロックをイントラ予測することは、相対的に垂直のイントラ予測モードを使用して前記ブロックを予測することを備え、前記グラディエント差値を計算することは、｜ＳＲ［Ｎ］−Ｐ［０，Ｎ］｜と、｜ＳＲ［Ｎ−１］−Ｐ［０，Ｎ−１］｜と、｜ＳＲ［Ｎ］−Ｐ［０，Ｎ−１］｜と、｜ＳＲ［Ｎ−１］−Ｐ［０，Ｎ］｜との最大値を計算することを備え、ＳＲ［ｊ］は、前記ブロックの上エッジから始まる左側境界に沿ったｊ番目の画素に対応し、Ｎは、前記ブロックの高さを表す整数値であり、Ｐ［ｉ，ｊ］は、位置［ｉ，ｊ］の前記予測後ブロックの画素に対応する、［１１］に記載の方法。
［１４］前記予測後ブロックをフィルタリングすべきではないとの判定に応答して、前記予測後ブロックを使用して前記ブロックをコーディングすることと、
前記予測後ブロックをフィルタリングすべきであるとの判定に応答して、前記フィルタリングされた予測後ブロックを使用して前記ブロックをコーディングすることと
をさらに備える、［１］に記載の方法。
［１５］前記予測後ブロックを使用して前記ブロックをコーディングすることは、前記予測後ブロックに復号された残差値を加算することを備える、前記予測後ブロックを使用して前記ブロックを復号することを備え、
前記フィルタリングされた予測後ブロックを使用して前記ブロックをコーディングすることは、前記フィルタリングされた予測後ブロックに前記復号された残差値を加算することを備える、前記フィルタリングされた予測後ブロックを使用して前記ブロックを復号することを備える、
［１４］に記載の方法。
［１６］イントラ予測することは、前記ブロックに使用すべきイントラ予測モードを選択することと、前記選択されたイントラ予測モードを使用して前記ブロックを予測することとを備え、
前記予測後ブロックを使用して前記ブロックをコーディングすることは、前記ブロックと前記予測後ブロックとの間の差を表す残差値を計算することを備える、前記予測後ブロックを使用して前記ブロックを符号化することを備え、
前記フィルタリングされた予測後ブロックを使用して前記ブロックをコーディングすることは、前記ブロックと前記フィルタリングされた予測後ブロックとの間の差を表す残差値を計算することを備える、前記フィルタリングされた予測後ブロックを使用して前記ブロックを符号化することを備える、
［１４］に記載の方法。
［１７］前記二次境界のデータを使用して前記予測後ブロックをフィルタリングすべきかどうかを表すシンタックス情報をコーディングすることをさらに備える、［１］に記載の方法。
［１８］予測後ブロックを形成するために、ビデオデータのブロックの一次境界に沿った画素の値を使用して、前記ブロックをイントラ予測し、前記ブロックの二次境界のデータを使用して前記予測後ブロックをフィルタリングすべきかどうかを判定し、前記予測後ブロックをフィルタリングすべきであるとの判定に応答して、前記二次境界のデータを使用して前記予測後ブロックをフィルタリングするように構成されたビデオコーダを備える、ビデオデータをコーディングするデバイス。
［１９］前記二次境界の前記データを使用して前記予測後ブロックをフィルタリングすべきかどうかを判定するために、前記ビデオコーダは、境界関係を表す値を計算するように構成される、［１８］に記載のデバイス。
［２０］前記ビデオコーダは、前記計算された値のしきい値との比較に基づいて前記予測後ブロックをフィルタリングすべきかどうかを判定するように構成される、［１９］に記載のデバイス。
［２１］前記値は、前記一次境界の１つまたは複数の画素の画素値と前記二次境界の１つまたは複数の画素の画素値との間の関係ならびに前記一次境界および前記二次境界のうちの少なくとも１つの１つまたは複数の画素の画素値と前記予測後ブロックの１つまたは複数の画素の画素値との間の関係のうちの１つを表す、［１９］に記載のデバイス。
［２２］前記値を計算するために、前記ビデオコーダは、ラプラシアン値を計算するように構成される、［１８］に記載のデバイス。
［２３］前記値を計算するために、前記ビデオコーダは、グラディエント差値を計算するように構成される、［１８］に記載のデバイス。
［２４］前記ビデオコーダは、前記予測後ブロックをフィルタリングすべきではないとの判定に応答して、前記予測後ブロックを使用して前記ブロックをコーディングし、前記予測後ブロックをフィルタリングすべきであるとの判定に応答して、前記フィルタリングされた予測後ブロックを使用して前記ブロックをコーディングするようにさらに構成される、［１８］に記載のデバイス。
［２５］予測後ブロックを形成するために、ビデオデータのブロックの一次境界に沿った画素の値を使用して、前記ブロックをイントラ予測するための手段と、
前記ブロックの二次境界のデータを使用して前記予測後ブロックをフィルタリングすべきかどうかを判定するための手段と、
前記予測後ブロックをフィルタリングすべきであるとの判定に応答して、前記二次境界のデータを使用して前記予測後ブロックをフィルタリングするための手段と
を備える、ビデオデータをコーディングするデバイス。
［２６］前記二次境界の前記データを使用して前記予測後ブロックをフィルタリングすべきかどうかを判定するための前記手段は、境界関係を表す値を計算するための手段を備える、［２５］に記載のデバイス。
［２７］前記予測後ブロックをフィルタリングすべきかどうかを判定するための前記手段は、前記計算された値のしきい値との比較に基づいて前記予測後ブロックをフィルタリングすべきかどうかを判定するための手段を備える、［２６］に記載のデバイス。
［２８］前記値は、前記一次境界の１つまたは複数の画素の画素値と前記二次境界の１つまたは複数の画素の画素値との間の関係ならびに前記一次境界および前記二次境界のうちの少なくとも１つの１つまたは複数の画素の画素値と前記予測後ブロックの１つまたは複数の画素の画素値との間の関係のうちの１つを表す、［２６］に記載のデバイス。
［２９］前記値を計算するための前記手段は、ラプラシアン値を計算するための手段を備える、［２５］に記載のデバイス。
［３０］前記値を計算するための前記手段は、グラディエント差値を計算するための手段を備える、［２５］に記載のデバイス。
［３１］前記予測後ブロックをフィルタリングすべきではないとの判定に応答して、前記予測後ブロックを使用して前記ブロックをコーディングするための手段と、
前記予測後ブロックをフィルタリングすべきであるとの判定に応答して、前記フィルタリングされた予測後ブロックを使用して前記ブロックをコーディングするための手段と
をさらに備える、［２５］に記載のデバイス。
［３２］実行された時に、プロセッサに、
予測後ブロックを形成するために、ビデオデータのブロックの一次境界に沿った画素の値を使用して、前記ブロックをイントラ予測させる命令と、
前記ブロックの二次境界のデータを使用して前記予測後ブロックをフィルタリングすべきかどうかを判定させる命令と、
前記予測後ブロックをフィルタリングすべきであるとの判定に応答して、前記二次境界のデータを使用して前記予測後ブロックをフィルタリングさせる命令と
が格納されたコンピュータ可読記憶媒体。
［３３］前記プロセッサに前記二次境界の前記データを使用して前記予測後ブロックをフィルタリングすべきかどうかを判定させる前記命令は、前記プロセッサに境界関係を表す値を計算させる命令を備える、［３２］に記載のコンピュータ可読記憶媒体。
［３４］前記プロセッサに前記予測後ブロックをフィルタリングすべきかどうかを判定させる前記命令は、前記プロセッサに前記計算された値のしきい値との比較に基づいて前記予測後ブロックをフィルタリングすべきかどうかを判定させる命令を備える、［３３］に記載のコンピュータ可読記憶媒体。
［３５］前記値は、前記一次境界の１つまたは複数の画素の画素値と前記二次境界の１つまたは複数の画素の画素値との間の関係ならびに前記一次境界および前記二次境界のうちの少なくとも１つの１つまたは複数の画素の画素値と前記予測後ブロックの１つまたは複数の画素の画素値との間の関係のうちの１つを表す、［３３］に記載のコンピュータ可読記憶媒体。
［３６］前記プロセッサに前記値を計算させる前記命令は、前記プロセッサにラプラシアン値を計算させる命令を備える、［３２］に記載のコンピュータ可読記憶媒体。
［３７］前記プロセッサに前記値を計算させる前記命令は、前記プロセッサにグラディエント差値を計算させる命令を備える、［３２］に記載のコンピュータ可読記憶媒体。
［３８］前記プロセッサに、
前記予測後ブロックをフィルタリングすべきではないとの判定に応答して、前記予測後ブロックを使用して前記ブロックをコーディングさせる命令と、
前記予測後ブロックをフィルタリングすべきであるとの判定に応答して、前記フィルタリングされた予測後ブロックを使用して前記ブロックをコーディングさせる命令と
をさらに備える、［３２］に記載のコンピュータ可読記憶媒体。
【図１】
0005833250.tif 000022
【図２】
0005833250.tif 000023
【図３】
0005833250.tif 000024
【図４】
0005833250.tif 000025
【図５Ａ】
0005833250.tif 000026
【図５Ｂ】
0005833250.tif 000027
【図６】
0005833250.tif 000028
【図７】
0005833250.tif 000029
【図８】
0005833250.tif 000030