JP2014535224A - ビデオコーディングのための二次境界フィルタリング - Google Patents

ビデオコーディングのための二次境界フィルタリング Download PDF

Info

Publication number
JP2014535224A
JP2014535224A JP2014540126A JP2014540126A JP2014535224A JP 2014535224 A JP2014535224 A JP 2014535224A JP 2014540126 A JP2014540126 A JP 2014540126A JP 2014540126 A JP2014540126 A JP 2014540126A JP 2014535224 A JP2014535224 A JP 2014535224A
Authority
JP
Japan
Prior art keywords
block
post
boundary
value
prediction
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2014540126A
Other languages
English (en)
Other versions
JP5833250B2 (ja
Inventor
ファン・デア・オーウェラ、ゲールト
カークゼウィックズ、マルタ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2014535224A publication Critical patent/JP2014535224A/ja
Application granted granted Critical
Publication of JP5833250B2 publication Critical patent/JP5833250B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/80Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation
    • H04N19/82Details of filtering operations specially adapted for video compression, e.g. for pixel interpolation involving filtering within a prediction loop
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/117Filters, e.g. for pre-processing or post-processing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/50Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding
    • H04N19/593Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using predictive coding involving spatial prediction techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

一例では、ビデオコーディングデバイスは、予測後ブロックを形成するためにビデオデータのブロックの一次境界に沿った画素の値を使用してビデオデータのブロックをイントラ予測し、ブロックの二次境界のデータを使用して、予測後ブロックをフィルタリングすべきかどうかを判定し、予測後ブロックをフィルタリングするとの判定に応答して、二次境界のデータを使用して、予測後ブロックをフィルタリングするように構成される。ビデオコーディングデバイスは、しきい値とのラプラシアン値またはグラディエント差値の比較に基づいて、予測後ブロックをフィルタリングすべきかどうかを判定することができる。予測後ブロックをフィルタリングすべきかどうかの判定は、境界関係、たとえば、別の境界に対するある境界の関係または予測後ブロックの画素値に対する境界の関係に少なくとも部分的に基づくものとすることができる。

Description

本願は、その内容全体が参照によって本明細書に組み込まれている、2011年11月4日に出願した米国仮出願第61/556,038号の利益を主張するものである。
本開示は、ビデオコーディングに関し、より具体的には、ビデオデータのイントラ予測コーディングに関する。
デジタルビデオ機能は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップコンピュータまたはデスクトップコンピュータ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレイヤ、ビデオゲーミングデバイス、ビデオゲームコンソール、セルラ無線電話機または衛星無線電話機、ビデオ会議デバイス、および類似物を含む広範囲のデバイスに組み込まれ得る。デジタルビデオデバイスは、デジタルビデオ情報をより効率的に送信し、受信するために、MPEG−2、MPEG−4、ITU−T H.263またはITU−T H.264/MPEG−4、Part 10、Advanced Video Coding(AVC)によって定義される標準規格およびそのような標準規格の拡張に記載の技法など、ビデオ圧縮技法を実施する。
ビデオ圧縮技法は、ビデオシーケンスに固有の冗長性を減らすか除去するために、空間予測および/または時間予測を実行する。ブロックベースのビデオコーディングのために、ビデオフレームまたはスライスは、ブロックに区分され得る。各ブロックは、さらに区分され得る。イントラコーディングされた(I)フレームまたはスライス内のブロックは、隣接ブロックに関する空間予測を使用して符号化される。インターコーディングされた(PまたはB)フレームまたはスライス内のブロックは、同一のフレームもしくはスライス内の隣接ブロックに関する空間予測または他の基準フレームに関する時間予測を使用することができる。
一般に、本開示は、ビデオデータのイントラ予測コーディング中に二次境界フィルタリング(secondary boundary filtering)を実行すべきかどうかを判定する技法を説明する。二次境界フィルタリングを実行すべきかどうかの判断は、数学的な境界関係、たとえば、現在のブロックの境界の間の関係または現在のブロックの境界と現在のブロックの画素値との間の関係に基づくものとすることができる。数学的な境界関係は、いくつかの例では、ラプラシアン値またはグラディエント差に対応することができる。
一例では、方法は、予測後ブロックを形成するために、ビデオデータのブロックの一次境界に沿った画素の値を使用して、ブロックをイントラ予測することと、ブロックの二次境界のデータを使用して予測後ブロックをフィルタリングすべきかどうかを判定することと、予測後ブロックをフィルタリングすべきであるとの判定に応答して、二次境界のデータを使用して予測後ブロックをフィルタリングすることとを含む。
別の例では、デバイスは、予測後ブロックを形成するために、ビデオデータのブロックの一次境界に沿った画素の値を使用して、ブロックをイントラ予測し、ブロックの二次境界のデータを使用して予測後ブロックをフィルタリングすべきかどうかを判定し、予測後ブロックをフィルタリングすべきであるとの判定に応答して、二次境界のデータを使用して予測後ブロックをフィルタリングするように構成されたビデオコーダを含む。
別の例では、デバイスは、予測後ブロックを形成するために、ビデオデータのブロックの一次境界に沿った画素の値を使用して、ブロックをイントラ予測するための手段と、ブロックの二次境界のデータを使用して予測後ブロックをフィルタリングすべきかどうかを判定するための手段と、予測後ブロックをフィルタリングすべきであるとの判定に応答して、二次境界のデータを使用して予測後ブロックをフィルタリングするための手段とを含む。
別の例では、コンピュータ可読記憶媒体は、実行された時に、プロセッサに、予測後ブロックを形成するために、ビデオデータのブロックの一次境界に沿った画素の値を使用して、ブロックをイントラ予測させ、ブロックの二次境界のデータを使用して予測後ブロックをフィルタリングすべきかどうかを判定させ、予測後ブロックをフィルタリングすべきであるとの判定に応答して、二次境界のデータを使用して予測後ブロックをフィルタリングさせる命令が格納される。
1つまたは複数の例の詳細は、添付図面および下の説明で示される。他の特徴、目的、および利点は、その説明および図面ならびに特許請求の範囲から明白になる。
二次境界フィルタリングを実行すべきかどうかを判定する技法を利用することができる例のビデオ符号化および復号システムを示すブロック図。 二次境界フィルタリングを実行すべきかどうかを判定する技法を実施することができるビデオ符号器の例を示すブロック図。 二次境界フィルタリングを実行すべきかどうかを判定する技法を実施することができるビデオ復号器の例を示すブロック図。 HEVCでのさまざまなイントラ予測モード方向を示す概念図。 ラプラシアンに基づく基準境界サンプルの間の境界関係の計算を示す概念図。 ラプラシアンに基づく基準境界サンプルの間の境界関係の計算を示す概念図。 現在のブロックを符号化する例の方法を示す流れ図。 ビデオデータの現在のブロックを復号する例の方法を示す流れ図。 本開示の技法による二次境界フィルタリングを実行すべきかどうかを判定する例の方法を示す流れ図。
一般に、本開示は、イントラ予測コーディング中の画素の処理に関する。具体的には、本開示は、ビデオデータのブロックのイントラ予測コーディング中に二次境界フィルタリングをイネーブルしまたは(完全にまたは部分的に)ディスエーブルする技法を説明するものである。二次境界フィルタリングは、一次境界のデータを使用して予測された予測後ブロックを、二次境界のデータを使用してフィルタリングすることと説明することもできる。すなわち、ブロックのイントラ予測は、一次境界のデータを使用してブロックを予測することと、二次境界を使用してブロックをフィルタリングするかどうかを判定することと、その後、ブロックをフィルタリングするとの判定に応答して、予測後ブロックを二次境界のデータを使用してフィルタリングすることとを含むことができる。
二次境界フィルタリングは、予測ユニット内で画素の変更された値を作るために、二次境界の画素の値と予測ユニット内の画素の値とにさまざまなフィルタのいずれかを適用することを含むことができる。二次境界フィルタリングは、一般に、二次境界の1つまたは複数の値を使用して、予測後ブロックの1つまたは複数の画素のオフセット値を計算することと、それぞれの画素にオフセット値を適用することとを含むことができる。
境界は、左側境界または上境界(すなわち、上側の境界)に対応することができる。予測ユニットは、方向性イントラ予測モードおよび非方向性イントラ予測モードなど、さまざまなイントラ予測モードを介して生成され得る。非方向性イントラ予測モードは、たとえば、DCモードおよびプレーナモードを含むことができる。方向性イントラ予測モードは、本開示で説明されるように、相対的に水平のイントラ予測モード(relatively horizontal intra-prediction mode)と、相対的に垂直のイントラ予測モード(relatively vertical intra-prediction mode)と、相対的に対角のイントラ予測モード(relatively diagonal intra-prediction mode)とを含むことができる。相対的に水平のイントラ予測モードは、左側境界のデータを使用して、予測後ブロックを生成するのに使用され、相対的に垂直のイントラ予測モードは、上側境界のデータを使用して、予測後ブロックを生成するのに使用される。
したがって、上で説明されるように、一次境界は、予測後ブロックが相対的に水平のイントラ予測モードを使用して生成される時には、左側境界と考えることができ、予測後ブロックが相対的に垂直のイントラ予測モードを使用して生成される時には、上側境界と考えることができる。二次境界は、予測後ブロックが相対的に水平のイントラ予測モードを使用して生成される時には、上側境界と考えることができ、予測後ブロックが相対的に垂直のイントラ予測モードを使用して生成される時には、左側境界と考えることができる。
ビデオブロックは、コーディングユニット(CU)と、予測ユニット(PU)と、変換ユニット(TU)とを含むことができる。ブロック境界は、CUとPUとTUとの間で発生する可能性がある。すなわち、ブロック境界は、2つの隣接するブロック、たとえば隣接するCU、PU、またはTUの間の共通のエッジに対応することができる。CUは、一般に、1つまたは複数のPUと1つまたは複数のTUとを含むビデオデータのブロックを指す。PUは、一般に、イントラ予測によるものであれインター予測によるものであれ、予測されたデータのブロックに対応し、TUは、残差データのブロックに対応する。残差データは、一般に、生のコーディングされていないビデオデータと予測されたビデオデータすなわち対応するPU内の画素の値との間の画素ごとの差に対応する。HEVC Working Draft version 4(WD4)は、イントラPUサイズに応じて、プレーナとDCと33個までの方向性モードとの、輝度成分に関するイントラ予測モードを指定する。HEVC WD4は、Bross他、WD4:Working Draft 4 of High Efficiency Video Coding,Joint Collaborative Team on Video Coding (JCT−VC) of ITU−T SG16 WP3 and ISO/IEC JTC1/SC29/WG11、6th Meeting、イタリア国トリノ、2011年7月14〜22日に記載されている。モード依存イントラスムージング(Mode-Dependent Intra Smoothing、MDIS)法は、モードとPUサイズとに応じて、イントラ予測の前の基準境界サンプルの低域フィルタリングを含む。DC予測フィルタリング法および簡略化(simplification)は、DC予測されたPUの境界にまたがってフィルタリングを適用する。
イントラ予測されたブロック(すなわち、イントラ予測されたPU、本明細書では「予測後ブロック」とも称する)の間の境界付近の画素を処理するいくつかの技法は、フィルタリングと、グラディエントベースの予測と、両方向予測とを含む。グラディエントベースの予測では、2つの基準境界サンプルの間の差が、計算され(いくつかの場合に、補間が必要になる可能性がある)、重みを付けられ、水平予測または垂直予測に応じて、イントラPU境界に沿った少なくとも1つの列または行に加算され得る。両方向予測では、方向の両端の基準サンプル(すなわち、画素)が、使用され得(いくつかの場合に、補間が必要になる可能性がある)、二次境界上の基準サンプルが、重みを付けられ、予測されたイントラPUサンプルに加算され得る。言い換えると、たとえば一次境界のデータを使用する、予測後ブロックの生成の後に、ビデオコーダは、予測後ブロックのデータを変更するために、予測後ブロックのデータ(たとえば、画素値)を二次境界の値と数学的に組み合わせるフィルタを適用することができる。
いくつかの例では、2つの基準サンプルの間の重みを付けられたグラディエントが、垂直予測モードと水平予測モードとに関して、イントラPU境界に沿った少なくとも1つの列または行に加算され得る。いくつかの例では、フィルタが、プレーナ予測モードに従って生成されたPUの境界にまたがって適用され、イントラ予測方向に応じて、2タップフィルタが、二次境界に適用され得る。いくつかの例では、対角2タップフィルタが、プレーナ予測モードに従って生成されたPUの境界にまたがって第1のフィルタを必ずしも適用せずに、イントラ予測方向に応じて二次境界にまたがって適用され得る。
ビデオコーディング方法の評価は、通常、Bjontegaard Deltaビットレート(BDレート)の削減の評価を含む。そのような評価は、ひずみ(すなわち、コーディングされたビデオデータから再現できるデータとオリジナルビデオデータとの間の差)に対するビットレート(すなわち、ビデオデータを表すのに使用されるビット数)の比較を含む。一般に、BDレートを減らす技法は、好ましいビデオコーディング技法を反映する。上で議論された境界フィルタリングの方法は、いくつかのビデオシーケンスについてBDレートを減らすが、いくつかの場合に、二次境界フィルタリングは、望ましくないBDレート損失を導入する。本開示は、BDレート損失が導入される場合に、二次境界フィルタリングの適用に対して保護する技法を提供する。
より具体的には、本開示は、二次境界フィルタリングについてBDレート損失をもたらすケースを検出する技法を提供する。これらの技法は、二次境界フィルタリングをイネーブルすべきなのか(完全にまたは部分的に)ディスエーブルすべきなのかを判定できるという点で、二次境界フィルタリングの保護論理と説明され得る。検出が肯定的である場合には、二次境界フィルタリングは、BDレート性能を改善するために、部分的にまたは完全にディスエーブルされ得る。たとえば、高コントラストを有し、頻繁な遷移を含むテキスト領域を含むシーケンスについて、二次境界フィルタリングは、基準境界からの関係しないサンプルをイントラPUに伝搬させる。
本開示の技法は、基準境界のサンプルの間または基準境界サンプルとイントラPUサンプル(すなわち、予測後ブロックの画素値)との間の数学的関係を計算することを含む。これらの数学的関係は、たとえば、ラプラシアンまたはグラディエント差の計算に基づくものとすることができる。これらの関係の計算からの結果は、二次境界フィルタリングを適用するか、または(部分的にまたは完全に)ディスエーブルするか判断するために、しきい値と比較され得る。しきい値は、符号化/復号の間に計算されまたはシグナリングされる所定の定数(潜在的に、量子化パラメータなどのパラメータに依存する)とすることができる。数学的関係は、符号器と復号器との両方によって、または符号器のみによって計算され得、後者の場合に、符号器は、二次境界シグナリングを適用すべきかどうか、またはどの部分が適用されるべきなのかを復号器にシグナリングすることができる。
図1は、二次境界フィルタリングを実行すべきかどうかを判定する技法を利用することができる例のビデオ符号化および復号システム10を示すブロック図である。図1に示されているように、システム10は、コンピュータ可読媒体16を介して宛先デバイス14に符号化されたビデオを供給するソースデバイス12を含む。ソースデバイス12および宛先デバイス14は、広範囲のデバイスのいずれをも備えることができる。本開示の技法は、無線テレビジョン放送、ケーブルテレビジョン伝送、衛星テレビジョン伝送、インターネットビデオ伝送、記憶媒体に符号化される符号化されたデジタルビデオ、または他のシナリオに適用することができる。したがって、コンピュータ可読媒体16は、符号化されたビデオデータの伝送に適するワイヤレス媒体もしくは有線媒体またはディスク、ハードドライブ、もしくは類似物などのコンピュータ可読記憶媒体の任意の組合せを備えることができる。
図1の例では、ソースデバイス12は、ビデオソース18と、ビデオ符号器20と、出力インターフェース22とを含む。宛先デバイス14は、入力インターフェース28と、ビデオ復号器30と、ディスプレイデバイス32とを含む。本開示によれば、ソースデバイス12のビデオ符号器20は、二次境界フィルタリングを実行すべきかどうかを判定する技法を適用するように構成され得る。他の例では、ソースデバイスおよび宛先デバイスは、他のコンポーネントまたは配置を含むことができる。たとえば、ソースデバイス12は、外部カメラなどの外部ビデオソース18からビデオデータを受け取ることができる。同様に、宛先デバイス14は、一体化されたディスプレイデバイスを含むのではなく、外部ディスプレイデバイスとインターフェースすることができる。
図1の図示されたシステム10は、単に1つの例である。二次境界フィルタリングを実行すべきかどうかを判定する技法は、任意のデジタルビデオ符号化デバイスおよび/またはデジタルビデオ復号デバイスによって実行され得る。全般的に、本開示の技法は、ビデオ符号化デバイスによって実行されるが、この技法は、通常は「コーデック」と称するビデオ符号器/復号器によっても実行され得る。さらに、本開示の技法は、ビデオプリプロセッサによっても実行され得る。ソースデバイス12および宛先デバイス14は、ソースデバイス12が宛先デバイス14への伝送のためにコーディングされたビデオデータを生成する、そのようなコーディングデバイスの単なる例である。いくつかの例では、デバイス12、14は、デバイス12、14のそれぞれがビデオ符号化コンポーネントとビデオ復号コンポーネントとを含む、実質的に対称の形で動作することができる。したがって、システム10は、たとえばビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、またはビデオ電話のための、ビデオデバイス12とビデオデバイス14との間の一方向または両方向のビデオ伝送をサポートすることができる。
ソースデバイス12のビデオソース18は、ビデオカメラなどのビデオキャプチャデバイス、以前にキャプチャされたビデオを含むビデオアーカイブ、および/またはビデオコンテンツプロバイダからのビデオフィードを含むことができる。さらなる代替案として、ビデオソース18は、ソースビデオとしてコンピュータグラフィックスベースのデータ、または生ビデオとアーカイブされたビデオとコンピュータ生成ビデオとの組合せを生成することができる。いくつかの場合に、ビデオソース18が、ビデオカメラである場合に、ソースデバイス12および宛先デバイス14は、いわゆるカメラ付き電話機またはビデオフォンを形成することができる。しかし、上で言及したように、本開示で説明される技法は、ビデオコーディング全般に適用可能とすることができ、ワイヤレスアプリケーションおよび/または有線アプリケーションに適用され得る。どの場合にも、キャプチャされたビデオ、以前にキャプチャされたビデオ、またはコンピュータ生成されたビデオは、ビデオ符号器20によって符号化され得る。符号化されたビデオ情報は、出力インターフェース22によってコンピュータ可読媒体16に出力され得る。
コンピュータ可読媒体16は、ワイヤレスブロードキャストもしくは有線ネットワーク伝送などの過渡的媒体またはハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、Blu−ray(登録商標)ディスク、もしくは他のコンピュータ可読媒体などの記憶媒体(すなわち、固定記憶媒体)を含むことができる。いくつかの例では、ネットワークサーバ(図示せず)は、ソースデバイス12から符号化されたビデオデータを受信し、たとえばネットワーク伝送を介して、符号化されたビデオデータを宛先デバイス14に供給することができる。同様に、ディスクスタンピング施設などの媒体生産施設のコンピューティングデバイスは、ソースデバイス12から符号化されたビデオデータを受信し、符号化されたビデオデータを含むディスクを生産することができる。したがって、コンピュータ可読媒体16は、さまざまな例で、さまざまな形の1つまたは複数のコンピュータ可読媒体を含むと理解され得る。
宛先デバイス14の入力インターフェース28は、コンピュータ可読媒体16から情報を受け取る。コンピュータ可読媒体16の情報は、ブロックおよび他のコーディングされたユニット、たとえばGOPの特性および/または処理を記述するシンタックス要素を含む、ビデオ復号器30によっても使用される、ビデオ符号器20によって定義されたシンタックス情報を含むことができる。ディスプレイデバイス32は、復号されたビデオデータをユーザに表示し、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなど、さまざまなディスプレイデバイスのいずれをも備えることができる。
図1の例では、コンピュータ可読媒体16は、ラジオ周波数(RF)スペクトルまたは1つもしくは複数の物理伝送線などの任意のワイヤレス媒体または有線媒体、あるいはワイヤレス媒体と有線媒体との任意の組合せを備えることができる。コンピュータ可読媒体16は、ローカルエリアネットワーク、広域ネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースのネットワークの一部を形成することができる。コンピュータ可読媒体16は、全体的に、有線媒体またはワイヤレス媒体の任意の適切な組合せを含む、ソースデバイス12から宛先デバイス14にビデオデータを伝送する任意の適切な通信媒体または異なる通信媒体の集合を表す。コンピュータ可読媒体16は、ルータ、スイッチ、基地局、またはソースデバイス12から宛先デバイス14への通信を容易にするのに有用である可能性がある任意の他の機器を含むことができる。
ビデオ符号器20およびビデオ復号器30は、MPEG−4、Part 10、Advanced Video Coding(AVC)とも称するITU−T H.264標準規格などのビデオ圧縮標準規格に従って動作することができる。しかし、本開示の技法は、特定のコーディング標準規格に限定されない。他の例は、MPEG−2およびITU−T H.263を含む。図1には示されていないが、いくつかの態様では、ビデオ符号器20およびビデオ復号器30は、それぞれ、共通のデータストリームまたは別々のデータストリーム内でのオーディオとビデオとの両方の符号化を処理するために、オーディオ符号器およびオーディオ復号器と一体化され得、適当なマルチプレクサ−デマルチプレクサユニットまたは他のハードウェアおよびソフトウェアを含むことができる。適用可能な場合に、マルチプレクサ−デマルチプレクサユニットは、ITU H.223マルチプレクサプロトコルまたはユーザデータグラムプロトコル(UDP)などの他のプロトコルに従うことができる。
ITU−T H.264/MPEG−4(AVC)標準規格は、ジョイントビデオチーム(JVT)と称する共同パートナーシップの産物として、ISO/IEC動画専門家グループ(MPEG)と一緒にITU−Tビデオ符号化専門家グループ(VCEG)によって考案された。いくつかの態様では、本開示で説明される技法は、全般的にH.264標準規格に従うデバイスに適用され得る。H.264標準規格は、本明細書でH.264標準規格もしくはH.264仕様またはH.264/AVC標準規格もしくはH.264/AVC仕様と称する場合がある、2005年3月付のITU−T Study GroupによるITU−T Recommendation H.264,Advanced Video Coding for generic audiovisual servicesに記載されている。ジョイントビデオチーム(JVT)は、H.264/MPEG−4 AVCに対する拡張に取り組み続けている。
ビデオ符号器20およびビデオ復号器30は、それぞれ、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、またはその任意の組合せなど、さまざまな適切な符号器回路網のいずれかとして実施され得る。ビデオ符号器20およびビデオ復号器30は、それぞれのカメラ、コンピュータ、モバイルデバイス、加入者デバイス、ブロードキャストデバイス、セットトップボックス、サーバ、または類似物内の組み合わされた符号器/復号器(コーデック)の一部としていずれもが一体化され得る1つまたは複数の符号器または復号器内に含まれ得る。
ビデオシーケンスは、通常、一連のビデオフレームを含む。グループオブピクチャ(GOP)は、一般に、一連の1つまたは複数のビデオフレームを備える。GOPは、GOPのヘッダ、GOPの1つまたは複数のフレームのヘッダ、または他所に、GOPに含まれるフレームの数を記述するシンタックスデータを含むことができる。各フレームは、それぞれのフレームの符号化モードを記述するフレームシンタックスデータを含むことができる。ビデオ符号器20は、通常、ビデオデータを符号化するために、個々のビデオフレーム内のビデオブロックに作用する。ビデオブロックは、ブロックまたはブロックのパーティションに対応することができる。ビデオブロックは、固定されたまたは可変のサイズを有することができ、指定されたコーディング標準規格に従って、サイズにおいて異なることができる。各ビデオフレームは、複数のスライスを含むことができる。各スライスは、サブブロックとも称するパーティションに配置され得る複数のブロックを含むことができる。
一例として、ITU−T H.264標準規格は、輝度成分の16×16、8×8、または4×4およびクロマ成分の8x8などのさまざまなブロックサイズでのイントラ予測、ならびに輝度成分の16x16、16x8、8x16、8x8、8x4、4x8、および4x4とクロマ成分の対応するスケーリングされたサイズとなどのさまざまなブロックサイズでのインター予測をサポートする。本開示では、「NxN」および「N×N(N by N)」は、たとえば16x16画素または16×16(16 by 16)画素など、垂直次元および水平次元に関してブロックの画素寸法を指すのに交換可能に使用される場合がある。一般に、16x16ブロックは、垂直方向に16画素(y=16)、水平方向に16画素(x=16)を有する。同様に、NxNブロックは、一般に、垂直方向にN画素、水平方向にN画素を有し、Nは、非負の整数を表す。ブロック内の画素は、行および列に配置され得る。さらに、ブロックは、必ずしも、垂直方向と同一の水平方向の画素数を有する必要がない。たとえば、ブロックは、NxM画素を備えることができ、Mは、必ずしもNと同一ではない。
16×16未満のブロックサイズは、16×16ブロックのパーティションと呼ばれる場合がある。ビデオブロックは、画素領域の画素データのブロックまたは、たとえば、コーディングされたビデオブロックと予測ビデオブロックとの間の画素差を表す残差ビデオブロックデータへの離散コサイン変換(DCT)、整数変換、ウェーブレット変換、もしくは概念的に類似する変換の適用の後の、変換領域の変換係数のブロックを備えることができる。いくつかの場合に、ビデオブロックは、変換領域の量子化された変換係数のブロックを備えることができる。
より小さいビデオブロックは、より高い解像度をもたらすことができ、ビデオフレームのうちで高いレベルの詳細を含む位置に使用され得る。一般に、ブロックおよび時々サブブロックと称するさまざまなパーティションは、ビデオブロックと考えられ得る。さらに、スライスは、ブロックおよび/またはサブブロックなどの複数のビデオブロックと考えられ得る。各スライスは、ビデオフレームの独立に復号可能なユニットとすることができる。代替案では、フレーム自体を、復号可能な単位とすることができ、あるいは、フレームの他の部分を、復号可能な単位と定義することができる。「コーディングされたユニット」または「コーディングユニット」という用語は、フレーム全体、フレームのスライス、シーケンスとも称するグループオブピクチャ(GOP)、または適用可能なコーディング技法に従って定義される別の独立に復号可能なユニットなど、ビデオフレームの独立に復号可能なユニットを指すことができる。
符号化されたビデオデータは、予測データと残差データとを含むことができる。ビデオ符号器は、イントラ予測モードまたはインター予測モード中に予測データを作ることができる。イントラ予測は、一般に、同一ピクチャの隣接する以前にコーディングされたブロックに対する相対的なピクチャのブロックの予測を含む。インター予測は、以前にコーディングされたピクチャのデータに対する相対的なピクチャのブロックの予測を含む。
イントラ予測またはインター予測に従って、ビデオ符号器は、ブロックの残差値を計算することができる。残差値は、一般に、ブロックの予測されたデータとブロックの真の値との間の差に対応する。ブロックの残差値をさらに圧縮するために、残差値は、できる限り多くのデータ(「エネルギー」とも称する)をできる限り少数の係数に短縮する、変換係数のセットに変換され得る。変換係数は、オリジナルブロックと同一サイズとすることができる係数の2次元行列に対応する。言い換えると、オリジナルブロック内の画素と同様に多数の変換係数がある可能性がある。しかし、変換に起因して、変換係数の多くは、0と等しい値を有する可能性がある。
次に、ビデオ符号器は、ビデオデータをさらに圧縮するために、変換係数を量子化することができる。量子化は、一般に、相対的に広い範囲内の値を相対的に狭い範囲内の値にマッピングし、したがって、量子化された変換係数を表すのに必要なデータの量を減らす。量子化プロセスは、係数の一部またはすべてに関連するビット深さを減らすことができる。たとえば、nビット値は、量子化中にmビット値に丸められ得、nは、mより大きい。量子化に続いて、ビデオ符号器は、変換係数をスキャンし、量子化された変換係数を含む2次元行列から1次元ベクトルを作ることができる。複数の0値の量子化された変換係数がある可能性があるので、ビデオ符号器は、0の値を有する量子化された変換係数に達した時にスキャンを停止し、したがって、1次元ベクトル内の係数の数を減らすように構成され得る。スキャンは、より高いエネルギー(したがって、より低い周波数)の係数を配列の前部に配置し、より低いエネルギー(したがって、より高い周波数)の係数を配列の後部に配置するように設計され得る。
次に、ビデオ符号器は、データをさらに圧縮するために、結果の配列をエントロピ符号化することができる。いくつかの例では、ビデオ符号器は、たとえばコンテキスト適応型可変長コーディング(context-adaptive variable-length coding、CAVLC)を使用して、配列のさまざまな可能な量子化された変換係数を表すのに可変長コード(VLC)を使用するように構成され得る。他の例では、ビデオ符号器は、たとえばコンテキスト適応型バイナリ算術コーディング(context-adaptive binary arithmetic coding、CABAC)を使用して、結果の量子化された係数を符号化するのに2進算術コーディングを使用するように構成され得る。
ビデオ符号器20は、さらに、ブロックベースのシンタックスデータ、フレームベースのシンタックスデータ、およびGOPベースのシンタックスデータなどのシンタックスデータを、たとえばフレームヘッダ、ブロックヘッダ、スライスヘッダ、またはGOPヘッダ内で、ビデオ復号器30に送ることができる。GOPシンタックスデータは、それぞれのGOP内のフレームの数を記述することができ、フレームシンタックスデータは、対応するフレームを符号化するのに使用される符号化/予測モードを示すことができる。
現在は高効率ビデオ符号化(HEVC)と称する新しいビデオコーディング標準規格を開発する努力が、現在進行中である。やがて来る標準規格は、H.265とも称する。標準化の努力は、HEVCテストモデル(HM)と称するビデオコーディングデバイスのモデルに基づく。HMは、たとえばITU−T H.264/AVCに従うデバイスを超えるビデオコーディングデバイスの複数の能力を前提とする。たとえば、H.264は、9つのイントラ予測符号化モードを提供するが、HMは、33個もの多数のイントラ予測符号化モードを提供する。
HMは、ビデオデータのブロックをコーディングユニット(CU)と称する。ビットストリーム内のシンタックスデータは、画素数に関して最大のコーディングユニットである最大コーディングユニット(LCU)を定義することができる。一般に、CUは、CUがサイズの区別を有しないことを除いて、H.264のマクロブロックに似た目的を有する。したがって、CUをサブCUに分割することができる。一般に、本開示でのCUへの参照は、ピクチャの最大コーディングユニットまたはLCUのサブCUを指す可能性がある。LCUは、サブCUに分割され得、各サブCUは、サブCUに分割され得る。ビットストリームのシンタックスデータは、CU深さと称する、LCUを分割できる最大回数を定義することができる。したがって、ビットストリームは、最小コーディングユニット(SCU)をも定義することができる。本開示は、CU、PU、またはTUのいずれかを指すのに、「ブロック」という用語をも使用する。
LCUは、4分木データ構造に関連するものとすることができる。一般に、4分木データ構造は、1CUあたり1つのノードを含み、ルートノードはLCUに対応する。あるCUが4つのサブCUに分割される場合には、CUに対応するノードは、4つの葉ノードを有し、各葉ノードは、サブCUのうちの1つに対応する。4分木データ構造の各ノードは、対応するCUのシンタックスデータを提供することができる。たとえば、4分木内のノードは、そのノードに対応するCUがサブCUに分割されるかどうかを示す分割フラグを含むことができる。CUのシンタックス要素は、再帰的に定義され得、CUがサブCUに分割されるかどうかに依存することができる。
分割されないCUは、1つまたは複数の予測ユニット(PU)を含むことができる。一般に、PUは、対応するCUのすべてまたは一部を表し、PUの基準サンプルを取り出すためのデータを含む。たとえば、PUがイントラモード符号化される時には、PUは、そのPUのイントラ予測モードを記述するデータを含むことができる。別の例として、PUがインターモード符号化される時には、PUは、そのPUの動きベクトルを定義するデータを含むことができる。動きベクトルを定義するデータは、たとえば、動きベクトルの水平成分、動きベクトルの垂直成分、動きベクトルの解像度(たとえば、1/4画素精度または1/8画素精度)、動きベクトルがポイントする基準フレーム、および/または動きベクトルの基準リスト(たとえば、リスト0またはリスト1)を記述することができる。PU(1つまたは複数)を定義するCUのデータは、たとえば、1つまたは複数のPUへのCUの区分を記述することもできる。区分モードは、CUがコーディングされない、イントラ予測モード符号化される、またはインター予測モード符号化される、のどれであるのかの間で異なる可能性がある。
1つまたは複数のPUを有するCUは、1つまたは複数の変換ユニット(TU)を含むこともできる。PUを使用する予測に続いて、ビデオ符号器は、CUのうちでPUに対応する部分の残差値を計算することができる。残差値は、変換され、スキャンされ、量子化され得る。TUは、必ずしもPUのサイズに制限されない。したがって、TUは、同一CUの対応するPUより大きくても小さくてもよい。いくつかの例では、TUの最大サイズは、対応するCUのサイズに対応することができる。
上で注記したように、イントラ予測は、同一のピクチャの以前にコーディングされたCUからのピクチャの現在のCUのPUの予測を含む。より具体的には、ビデオ符号器は、特定のイントラ予測モードを使用して、あるピクチャの現在のCUをイントラ予測することができる。HM符号器は、33個までの方向性イントラ予測モードおよび2つの非方向性イントラ予測モードを用いて構成され得る。
HM符号器は、ブロックのイントラ予測モードの使用可能なセットがブロックのサイズに基づいて異なるように構成され得る。すなわち、予測ユニット(PU)のサイズは、そのPUについて使用可能なイントラ予測モードの数を決定することができ、これらのイントラ予測モードから、符号器は、そのPUを予測するためのイントラ予測モードを選択することができる。下の表1に、予測ユニットサイズとそのサイズのPUについて使用可能な方向性イントラ予測モードの数との間の対応の一例を示す。
Figure 2014535224
本開示の技法によれば、ビデオ符号器20は、二次境界フィルタリングをイネーブルすべきかまたはディスエーブルすべきかを判定するように構成され得る。すなわち、ビデオ符号器20およびビデオ復号器30は、一次境界を使用して予測されたビデオデータのイントラ予測されたブロックに、二次境界のデータを使用するフィルタを適用すべきかどうかを判定するように構成され得る。ビデオ符号器20は、ビデオデータの特定のブロックについてビデオ復号器30が二次境界フィルタリングを実行すべきかどうかを示す情報をビデオ復号器30に供給するように構成され得る。代替案では、ビデオ復号器30は、二次境界フィルタリングを実行すべきかどうかを判定するために、ビデオ符号器20の技法に似た技法を実行することができる。どちらの場合でも、ビデオ復号器30は、ビデオデータのイントラコーディングされたブロックの間の境界について二次境界フィルタリングを実行すべきかどうかを判定するように構成され得る。
より具体的には、ビデオ符号器20およびビデオ復号器30は、ビデオデータのあるブロックをイントラ予測するように構成され得る。イントラ予測モードは、たとえば、下でより詳細に説明される図4に示された方向性イントラ予測モードを含む。他のイントラ予測モードは、DCモードおよびプレーナモードなどの非方向性イントラ予測モードを含む。ある種の方向性イントラ予測モードは、相対的に水平または相対的に垂直として説明され得、他の方向性イントラ予測モードは、相対的に対角として説明され得る。
本開示で説明されるように、相対的に水平および相対的に垂直のイントラ予測モードは、対応するブロックを予測するのに1つの一次境界からのデータを利用するモードであり、相対的に対角のイントラ予測モードは、対応するブロックを予測するのに2つの境界からのデータを利用するモードである。たとえば、相対的に水平の予測モードは、ブロックを予測するのにブロックの左側境界からのデータを利用するが、相対的に垂直の予測モードは、ブロックを予測するのにブロックの上側境界からのデータを利用する。したがって、左側境界は、相対的に水平の予測モードについて一次境界と考えられ得、上側境界は、相対的に垂直の予測モードについて一次境界と考えられ得る。
その一方で、相対的に対角のイントラ予測モードは、左側境界と上側境界との両方のデータを使用し、したがって、上側境界および左側境界は、これらのモードについて一次境界とは考えられない。代替案では、他の例で、相対的に対角のイントラ予測モードについて、両方の境界が、一次と考えられ得、あるいは、より大きい重みを与えられる境界(予測への寄与に関して)が、一次と考えられ得る。DCモードおよびプレーナモードなどの非方向性イントラ予測モードについて、上側境界と左側境界との両方が、一次境界と考えられ得る。同様に、両方の境界からのデータが、非方向性イントラ予測モードの場合に二次境界フィルタリングを実行するのに使用され得る。
本開示の技法によれば、一次境界のデータを使用する(たとえば、相対的に水平または相対的に垂直の方向性イントラ予測モードを使用する)ブロックのイントラ予測の後に、ビデオ符号器20およびビデオ復号器30は、ブロックの二次境界のデータを使用して、予測後ブロックをフィルタリングすべきかどうかを判定することができる。たとえば、現在のブロックの左側境界のデータを一次境界として使用して予測後ブロックを形成した後に、ビデオ符号器20およびビデオ復号器30は、上側境界のデータを二次境界として使用して、予測後ブロックをフィルタリングすべきかどうかを判定することができる。上で議論されたように、左側境界のデータを一次境界として使用して予測後ブロックを形成することは、相対的に水平のイントラ予測モードを使用して現在のブロックをイントラ予測することから生じる可能性がある。別の例として、現在のブロックの上側境界のデータを一次境界として使用して予測後ブロックを形成した後に、ビデオ符号器20およびビデオ復号器30は、左側境界のデータを二次境界として使用して、予測後ブロックをフィルタリングすべきかどうかを判定することができる。やはり上で議論されたように、上側境界のデータを一次境界として使用して予測後ブロックを形成することは、相対的に垂直のイントラ予測モードを使用して現在のブロックをイントラ予測することから生じる可能性がある。
予測後ブロックに二次境界フィルタを適用すべきかどうかを判定するために、ビデオ符号器20は(一例として)、境界関係を表す値を計算することができる。そのような値は、境界関係値と称する場合があるが、二次境界の値に対する一次境界の値の間の関係を記述することができ、あるいは、予測後ブロック自体に対する一次境界および/または二次境界のいずれかの値の間の関係を記述することができる。境界関係値を計算した後に、ビデオ符号器20は、値がしきい値を超えるかどうかに基づいて、予測後ブロックに二次境界フィルタを適用すべきかどうかを判定することができる。ビデオ符号器20は、たとえばラプラシアンまたはグラディエント差を使用して、境界関係値を計算することができる。
ビデオ復号器30も、ビデオ符号器20に似て、境界関係値を計算することができる。代替案では、ビデオ符号器20は、予測後ブロックをフィルタリングすべきかどうかを示すシグナリングデータをコーディングするように構成され得る。すなわち、ビデオ符号器20は、二次境界のデータを使用して、予測後ブロックをフィルタリングすべきかどうかを表すシンタックス情報を符号化することができる。同様に、ビデオ復号器30は、二次境界のデータを使用して、予測後ブロックをフィルタリングすべきかどうかを表すシンタックス情報を復号するように構成され得る。したがって、二次境界値を計算するのではなく、ビデオ復号器30は、復号されたシンタックスデータに基づいて、二次境界のデータを使用して、予測後ブロックを選択的にフィルタリングすることができる。
上で議論されたように、ビデオ符号器20およびビデオ復号器30は、二次境界のデータを使用して、一次境界のデータを使用して予測された予測後ブロックをフィルタリングすべきかどうかを判定するように構成され得る。そのようなフィルタリングは、二次境界フィルタリングと称される場合がある。一般に、二次境界フィルタリングは、二次境界のデータを使用して、予測後ブロックのデータを変更することを含む。たとえば、二次境界に沿った1つまたは複数の画素の値は、予測後ブロックの1つまたは複数の画素の値を変更するために、数学的に適用され得る。二次境界フィルタリングの一例として、一次境界を使用するイントラ予測されたブロック内で作られた画素値ごとに、オフセットが、二次境界の2つの特定の画素値の間の重み付きの差に基づいて計算され得る。オフセットは、変更された画素値を作るために、予測後ブロック内の画素値に加算され得る。
ビデオ符号器20およびビデオ復号器30は、予測後ブロックが二次境界のデータを使用してフィルタリングされたか否かにかかわりなく、イントラ予測されたブロックをコーディングすることもできる。すなわち、予測後ブロックがフィルタリングされなかった場合には、ビデオ符号器20およびビデオ復号器30は、予測後ブロックを使用してブロックをコーディングすることができる。具体的には、ビデオ符号器20は、予測後ブロックとオリジナルブロックとの間の画素ごとの差を表す残差値を計算し、その後、残差値をコーディングする(たとえば、変換し、量子化し、エントロピコーディングする)ことができる。ビデオ復号器30は、同様に、残差値を復号し、ブロックを復号するために、残差値を予測後ブロックと組み合わせることができる。
その一方で、予測後ブロックが、二次境界フィルタリングされた場合には、ビデオ符号器20およびビデオ復号器30は、フィルタリングされた予測後ブロックを使用してブロックをコーディングすることができる。具体的には、ビデオ符号器20は、フィルタリングされた予測後ブロックとオリジナルブロックとの間の画素ごとの差を表す残差値を計算し、その後、残差値をコーディングする(たとえば、変換し、量子化し、エントロピコーディングする)ことができる。ビデオ復号器30は、同様に、残差値を復号し、ブロックを復号するために、残差値をフィルタリングされた予測後ブロックと組み合わせることができる。
ビデオ符号器20およびビデオ復号器30は、それぞれ、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理回路網、ソフトウェア、ハードウェア、ファームウェア、またはその任意の組合せなど、適用可能なさまざまな適切な符号器回路網または復号器回路網のいずれかとして実施され得る。ビデオ符号器20およびビデオ復号器30の各々は、組み合わされた符号器/復号器(コーデック)の一部としていずれもが一体化され得る1つまたは複数の符号器または復号器内に含まれ得る。ビデオ符号器20および/またはビデオ復号器30を含む装置は、集積回路、マイクロプロセッサ、および/またはセルラ電話機などのワイヤレス通信デバイスを備えることができる。
この形で、ビデオ符号器20およびビデオ復号器30は、それぞれ、予測後ブロックを形成するためにブロックの一次境界に沿った画素の値を使用してビデオデータのブロックをイントラ予測し、ブロックの二次境界のデータを使用して、予測後ブロックをフィルタリングすべきかどうかを判定し、予測後ブロックをフィルタリングすべきであるとの判定に応答して、二次境界のデータを使用して予測後ブロックをフィルタリングするように構成されたビデオコーダの例を表す。
上で注記したように、ビデオデータのブロックのイントラ予測は、たとえば相対的に水平または相対的に垂直のイントラ予測モードを使用する、ビデオデータの現在のブロックのイントラ予測を含むことができる。図4に関してより詳細に議論されるように、本開示の相対的に水平または相対的に垂直のイントラ予測モードは、主に現在のブロックの1つの境界のデータを利用するイントラ予測モードである。一次境界は、たとえば、左側境界または上側境界に対応することができる。具体的には、左側境界は、1つまたは複数の左に隣接するブロックの画素を含み、上側境界は、1つまたは複数の上に隣接するブロックの画素を含む。
本開示は、主に、相対的に水平または相対的に垂直のイントラ予測モードの使用に対応するものとしてこれらの技法を説明するが、これらの技法は、相対的に対角のイントラ予測モードならびに/またはDCモードおよびプレーナモードなどの非方向性イントラ予測モードにも適用され得る。たとえば、DCモードおよびプレーナモードでは、両方の境界が、一次境界および二次境界と考えられ得る。
予測後ブロックをフィルタリングすべきかどうかの判定は、上で議論されたように、ラプラシアン境界関係値および/またはグラディエント差境界関係値を計算することを含むことができる。さらに、予測後ブロックをフィルタリングすべきかどうかの判定は、境界関係値をしきい値と比較することを含むことができる。しきい値は、境界関係値が計算された形に固有とすることができる。たとえば、第1のしきい値は、ラプラシアン境界関係値について定義され得、第2のしきい値は、グラディエント差境界関係値に関して定義され得る。いくつかの例では、境界関係値がしきい値未満である時に、二次境界フィルタリングは、イネーブルされ得る。
図2は、二次境界フィルタリングを実行すべきかどうかを判定する技法を実施することができるビデオ符号器20の例を示すブロック図である。ビデオ符号器20は、ブロックまたはブロックのパーティションもしくはサブパーティションを含むビデオフレーム内のブロックのイントラコーディングおよびインターコーディングを実行することができる。イントラコーディングは、所与のビデオフレーム内のビデオ内の空間的冗長性を減らすか除去するために、空間予測に頼る。インターコーディングは、ビデオシーケンスの隣接するフレーム内のビデオ内の時間的冗長性を減らすか除去するために、時間予測に頼る。イントラモード(Iモード)は、複数の空間ベースの圧縮モードのいずれをも指すことができ、単一方向予測(Pモード)または両方向予測(Bモード)などのインターモードは、複数の時間ベースの圧縮モードのいずれをも指すことができる。インターモード符号化のコンポーネントが図2に示されているが、ビデオ符号器20が、さらに、イントラモード符号化のコンポーネントを含むことができることを理解されたい。しかし、そのようなコンポーネントは、簡潔さおよび明瞭さのために図示されていない。
図2に示されているように、ビデオ符号器20は、符号化されるビデオフレーム内の現在のビデオブロックを受け取る。図2の例では、ビデオ符号器20は、モード選択ユニット40と、基準フレームメモリ64と、合計器50と、変換処理ユニット52と、量子化ユニット54と、エントロピコーディングユニット56とを含む。モード選択ユニット40は、動き補償ユニット44と、動き推定ユニット42と、イントラ予測ユニット46と、フィルタリングユニット66と、パーティションユニット48とを含む。ビデオブロック再構成に関して、ビデオ符号器20は、逆量子化ユニット58と、逆変換ユニット60と、合計器62とを含む。さらに、ビデオ符号器20は、合計器62の出力をデブロッキングし、デブロッキングされたビデオデータを基準フレームメモリ64に格納することができるデブロッカ(図示せず)を含むことができる。
符号化プロセス中に、ビデオ符号器20は、コーディングされるビデオフレームまたはスライスを受け取る。フレームまたはスライスは、複数のビデオブロックに分割され得る。動き推定ユニット42および動き補償ユニット44は、時間圧縮を提供するために、1つまたは複数の基準フレーム内の1つまたは複数のブロックに対する相対的な受け取られたブロックのインター予測コーディングを実行する。イントラ予測ユニット46は、その代わりに、空間圧縮を提供するために、コーディングされるブロックと同一のフレームまたはスライス内の1つまたは複数の隣接するブロックに対する相対的な受け取られたビデオブロックのイントラ予測コーディングを実行することができる。本開示の技法によれば、下でより詳細に説明されるように、イントラ予測ユニット46は、たとえば二次境界フィルタリングを実行するために、予測後ブロックをフィルタリングするためにフィルタリングユニット66を利用することができる。ビデオ符号器20は、たとえば、ビデオデータのブロックごとに適当なコーディングモードを選択するために、複数のコーディングパスを実行することができる。
さらに、パーティションユニット48は、以前のコーディングパスでの以前の区分方式の評価に基づいて、ビデオデータのブロックをサブブロックに区分することができる。たとえば、パーティションユニット48は、当初に、フレームまたはスライスをLCUに区分し、LCUのそれぞれを、レートひずみ分析(たとえば、レートひずみ最適化)に基づいてサブCUに区分することができる。モード選択ユニット40は、さらに、サブCUへのLCUの区分を示す4分木データ構造を作ることができる。4分木の葉ノードCUは、1つまたは複数のPUおよび1つまたは複数のTUを含むことができる。
モード選択ユニット40は、たとえば誤差結果に基づいて、コーディングモードの一方すなわちイントラまたはインターを選択し、結果のイントラコーディングまたはインターコーディングされたブロックを、残差ブロックデータを生成するために合計器50に、基準フレームとして使用される符号化されたブロックを再構成するために合計器62に、供給することができる。モード選択ユニット40は、動きベクトル、イントラモードインジケータ、パーティション情報、および他のそのようなシンタックス情報などのシンタックス要素をエントロピコーディングユニット56に供給もする。
動き推定ユニット42および動き補償ユニット44は、非常に統合されたものとすることができるが、概念的な目的のために別々に図示されている。動き推定は、ビデオブロックの動きを推定する動きベクトルを生成するプロセスである。たとえば、動きベクトルは、現在のフレーム(または他のコーディングされたユニット)内のコーディングされつつある現在のブロックに対する相対的な予測基準フレーム(または他のコーディングされたユニット)内の予測ブロックの変位を示すことができる。予測ブロックは、絶対差の合計(SAD)、平方差の合計(SSD)、または他の差メトリックによって判定され得る画素差に関して、コーディングされるブロックによく一致することがわかったブロックである。動きベクトルは、ブロックのパーティションの変位を示すこともできる。動き補償は、動き推定によって決定される動きベクトルに基づいて予測ブロックを取り出しまたは生成することを含むことができる。やはり、動き推定ユニット42および動き補償ユニット44は、いくつかの例で、機能的に統合され得る。
動き推定ユニット42は、ビデオブロックを基準フレームメモリ64内の基準フレームのビデオブロックと比較することによって、インターコーディングされたフレームのビデオブロックの動きベクトルを計算する。動き補償ユニット44は、基準フレーム、たとえばIフレームまたはPフレームのサブ整数画素を補間することもできる。一例として、ITU H.264標準規格には、2つのリストすなわち、符号化されつつある現在のフレームより早い表示順序を有する基準フレームを含むリスト0と、符号化されつつある現在のフレームより遅い表示順序を有する基準フレームを含むリスト1とが記載されている。したがって、基準フレームメモリ64内に格納されるデータは、これらのリストに従って編成され得る。
動き推定ユニット42は、基準フレームメモリ64からの1つまたは複数の基準フレームのブロックを、現在のフレーム、たとえばPフレームまたはBフレームの符号化されるブロックと比較する。基準フレームメモリ64内の基準フレームが、サブ整数画素の値を含む時には、動き推定ユニット42によって計算される動きベクトルは、基準フレームのサブ整数画素位置を参照する可能性がある。動き推定ユニット42および/または動き補償ユニット44は、サブ整数画素位置の値が基準フレームメモリ64に格納されていない場合に、基準フレームメモリ64に格納された基準フレームのサブ整数画素位置の値を計算するようにも構成され得る。動き推定ユニット42は、計算された動きベクトルをエントロピコーディングユニット56および動き補償ユニット44に送る。動きベクトルによって識別される基準フレームブロックは、予測ブロックと称する場合がある。動き補償ユニット44は、予測ブロックに基づいて予測データを計算することができる。
イントラ予測ユニット46は、上で説明された動き推定ユニット42および動き補償ユニット44によって実行されるインター予測の代替案として、現在のブロックをイントラ予測することができる。具体的には、イントラ予測ユニット46は、現在のブロックを符号化するのに使用されるイントラ予測モードを決定することができる。いくつかの例では、イントラ予測ユニット46は、たとえば別々の符号化パス中に、さまざまなイントラ予測モードを使用して現在のブロックを符号化することができ、イントラ予測ユニット46(または、いくつかの例ではモード選択ユニット40)は、テストされたモードから、使用すべき適当なイントラ予測モードを選択することができる。
たとえば、イントラ予測ユニット46は、さまざまなテストされたイントラ予測モードについてレートひずみ分析を使用してレートひずみ値を計算することができ、テストされたモードの中で最良のレートひずみ特性を有するイントラ予測モードを選択することができる。レートひずみ分析は、全般的に、符号化されたブロックと、符号化されたブロックを作るために符号化されたオリジナルの符号化されていないブロックとの間のひずみ(または誤差)の量ならびに符号化されたブロックを作るのに使用されたビットレート(すなわち、ビット数)を判定する。イントラ予測ユニット46は、どのイントラ予測モードがブロックについて最良のレートひずみ値を示すかを判定するために、さまざまな符号化されたブロックのひずみおよびレートから比を計算することができる。ブロックのイントラ予測モードを選択した後に、イントラ予測ユニット46は、ブロックについて選択されたイントラ予測モードを示す情報をエントロピコーディングユニット56に供給することができる。
本開示の技法によれば、イントラ予測ユニット46は、ビデオデータのブロック(たとえば、PU)のイントラ予測コーディング中に、二次境界フィルタリングを選択的にイネーブルしまたは(完全にまたは部分的に)ディスエーブルすることができる。具体的には、イントラ予測ユニット46またはモード選択ユニット40は、現在のブロック、たとえば現在のPUの2つの境界、たとえば左に隣接する境界と上に隣接する境界との間の境界関係を表す値を計算することができる。代替案では、イントラ予測ユニット46またはモード選択ユニット40は、現在のブロック(たとえば、現在のPU)の境界と現在のブロックの画素値との間の境界関係を表す値を計算することができる。
一般に、フィルタリングユニット66は、イントラ予測ユニット46の代わりに、境界関係に少なくとも部分的に基づいて、ビデオデータの予測後ブロックをフィルタリングする。より具体的には、本開示の技法(図5に関してより詳細に説明される)によれば、イントラ予測ユニット46は、ビデオデータのイントラ予測されたブロックの二次境界フィルタリングをイネーブルすべきかまたはディスエーブルすべきかを判定することができる。二次境界フィルタリングの選択的なイネーブルまたはディスエーブルは、ブロック、たとえばPUの予測された値を改善することができ、これによって、そのブロックのBDレートを改善することができる。イントラ予測ユニット46(またはモード選択ユニット40)が、二次境界フィルタリングをイネーブルする時には、フィルタリングユニット66は、ビデオデータの予測後ブロック(たとえば、PU)をフィルタリングすることができる。モード選択ユニット40は、予測後ブロック(または、フィルタリングユニット66によるフィルタリングの後に、フィルタリングされた予測後ブロック)を合計器50に供給することもできる。
二次境界を使用して、予測後ブロックをフィルタリングするために、フィルタリングユニット66は、二次境界の1つまたは複数の値を使用して、予測後ブロックの個々の画素Pijを変更することができる。たとえば、(i,j)が、位置(i,j)の予測後ブロックの画素に対応し、予測後ブロックの左上角が、位置(0,0)にあるものとする。Pijは、予測後ブロックの位置(i,j)の画素に対応するものとする。P’ijは、位置(i,j)のフィルタリングされた画素すなわち、フィルタリングユニット66によって変更されたPijの値を有する画素に対応するものとする。フィルタリングユニット66は、次のように、相対的に垂直のイントラ予測モードを使用して予測された予測後ブロックのP’ijを計算することができる。
Figure 2014535224
ここで、αは、0と1との間の分数であり、それぞれ垂直モードおよび水平モードについてjおよびiに従って選択され、RLiは、Pijに対応する左側境界内の基準サンプル(すなわち、左側境界内の位置iにある画素)を表し、Liは、現在のブロックの左列内の位置iにある基準サンプルを表す。一例では、j(i)=0の時にα=1/2であり、j(i)=1の時にα=1/4であり、j(i)=2の時にα=1/8であり、j(i)=3,4の時にα=1/16である。
フィルタリングユニット66は、次のように、相対的に水平のイントラモードを使用して予測された予測後ブロックのP’ijを計算することができる。
Figure 2014535224
ここで、αは、0と1との間の分数であり、それぞれ垂直モードおよび水平モードについてjおよびiに従って選択され(上で注記したように)、RAjは、Pijに対応する上側境界内の基準サンプル(すなわち、上側境界内の位置jにある画素)を表し、Ajは、現在のブロックの上の行内の位置jにある基準サンプルを表す。上で注記したように、一例では、j(i)=0の時にα=1/2であり、j(i)=1の時にα=1/4であり、j(i)=2の時にα=1/8であり、j(i)=3,4の時にα=1/16である。
モード選択ユニット40は、イントラ予測ユニット46がビデオデータの現在のブロックを予測するのに使用するために、相対的に水平または相対的に垂直のイントラ予測モードを選択することができる。イントラ予測ユニット46は、相対的に水平または相対的に垂直のイントラ予測モードに従って、一次境界のデータを使用して予測後ブロック(たとえば、PU)を形成することができる。一次境界は、たとえば、相対的に水平のモードについてブロックの左側境界または相対的に垂直のモードについてブロックの上側境界に対応することができる。二次境界は、そのブロックの、一次境界とは異なる境界に対応することができる。たとえば、二次境界は、一次境界が左側境界である時には上側境界に対応することができ、一次境界が上側境界である時には左側境界に対応することができる。モード選択ユニット40は、さらに、ブロックの二次境界のデータを使用して、予測後ブロック(すなわち、相対的に水平または相対的に垂直のイントラ予測モードのいずれかを使用するイントラ予測から生じる予測後ブロック)をフィルタリングすべきかどうか(すなわち、二次境界フィルタリングを実行すべきかどうか)を判定することができる。
いくつかの例では、モード選択ユニット40は、境界関係を表す値(本明細書では、境界関係値とも称する)を計算することができる。モード選択ユニット40は、一次境界の1つまたは複数の画素の値と二次境界の1つまたは複数の画素の画素値と、または一次境界と二次境界とのうちの少なくとも1つの1つまたは複数の画素の値と予測後ブロックの1つまたは複数の画素の画素値とのいずれかを表すために、境界関係値を計算することができる。モード選択ユニット40は、しきい値との境界関係値の比較に基づいて、二次境界を使用して、予測後ブロックをフィルタリングすべきかどうかを判定することができる。
いくつかの例では、境界関係値の計算は、ラプラシアン値の計算を含むことができる。たとえば、イントラ予測ユニット46が、相対的に水平のイントラ予測モードを使用してブロックを予測する時に、モード選択ユニット40は、式
Figure 2014535224
に従ってラプラシアン値を計算することができる。
この例の関数では、TR[k]は、ブロックの左エッジから始まる上側境界に沿ったk番目の画素に対応し、Nは、ブロックの幅を表す整数値である。より具体的には、ブロックの上側境界に沿った画素は、0からNまででインデクシングされ得、0は、ブロックの左端画素を表し、Nは、ブロックの右端画素を表し、ブロックの幅は、(N+1)である。
別の例として、イントラ予測ユニット46が、相対的に垂直のイントラ予測モードを使用してブロックを予測する時に、モード選択ユニット40は、式
Figure 2014535224
に従ってラプラシアン値を計算することができる。
この例の関数では、SR[j]は、ブロックの上エッジから始まる左側境界に沿ったj番目の画素に対応し、Nは、ブロックの高さを表す整数値である。より具体的には、ブロックの左側境界に沿った画素は、0からNまででインデクシングされ得、0は、ブロックの上端画素を表し、Nは、ブロックの下端画素を表し、ブロックの高さは、(N+1)である。
上では主に、相対的に水平または相対的に垂直のイントラ予測モードなど、方向性イントラ予測モードの使用に関して説明されるが、本開示の技法は、DCモードまたはプレーナモードなどの非方向性イントラ予測モードから生じる予測後ブロックに二次境界フィルタリングを適用すべきかどうかを判定するためにも適用され得る。その場合に、ラプラシアン値の計算は、次の式に従って実行され得る。
Figure 2014535224
上の例と同様に、この例では、TR[k]は、ブロックの左エッジから始まる上側境界に沿ったk番目の画素に対応し、SR[j]は、ブロックの上エッジから始まる左側境界に沿ったj番目の画素に対応する。この例では、ブロックは、正方形であると仮定され、値Nは、ブロックの高さと幅との両方を表す整数値である。上で注記されたように、ブロックの最初の画素(左端の画素と右端の画素と)の0インデクシングを仮定すると、高さは、幅と等しいものとすることができ、幅と高さとの両方が、(N+1)と等しいものとすることができる。
他の例では、モード選択ユニット40は、グラディエント差値として境界関係値を計算することができる。たとえば、イントラ予測ユニット46が、相対的に水平のイントラ予測モードを使用して予測後ブロックを計算する時に、モード選択ユニット40は、式
Figure 2014535224
に従って境界関係値を計算することができる。
上の例と同様に、この例では、TR[k]は、ブロックの左エッジから始まる上側境界に沿ったk番目の画素に対応し、Nは、ブロックの幅を表す整数値である。P(i,j)は、この例で位置(i,j)の予測ブロックの画素に対応する。
別の例として、イントラ予測ユニット46が、相対的に垂直のイントラ予測モードを使用して予測後ブロックを計算する時に、モード選択ユニット40は、式
Figure 2014535224
に従って境界関係値を計算することができる。
上の例と同様に、この例では、SR[j]は、ブロックの上エッジから始まる左側境界に沿ったj番目の画素に対応し、Nは、ブロックの高さを表す整数値である。
どの場合でも、モード選択ユニット40は、たとえば境界関係値をしきい値と比較することによって、予測後ブロックを二次境界フィルタリングすべきかどうかを判定することができる。いくつかの例では、モード選択ユニット40は、さまざまな特性、たとえば、境界関係値がラプラシアン値またはグラディエント差値のどちらであるのかに基づいて、異なるしきい値を定義するデータを含むことができる。モード選択ユニット40が、予測後ブロックを二次境界フィルタリングしなければならないと判定する場合には、フィルタリングユニット66は、二次境界フィルタをブロックに適用することができる。すなわち、イントラ予測ユニット46は、予測後ブロックを表すデータをフィルタリングユニット66に送ることができ、フィルタリングユニット66は、二次境界のデータを使用してそのデータを変更することができる。イントラ予測ユニット46またはモード選択ユニット40は、どの境界が一次境界と考えられ、どの境界が二次境界と考えられるのかを示すデータをフィルタリングユニット66に送ることもできる。フィルタリングユニット66は、二次境界フィルタリングを実行するために、基準フレームメモリ64から二次境界のデータを取り出すことができる。
ビデオ符号器20は、コーディングされつつあるオリジナルビデオブロックから、モード選択ユニット40からの予測データ(すなわち、予測後ブロック)を減算することによって、残差ビデオブロックを形成する。合計器50は、この減算動作を実行する1つまたは複数のコンポーネントを表す。残差ビデオブロックは、予測された(おそらくはフィルタリングされた)ブロックと予測後ブロックが対応するオリジナルブロックとの間の画素ごとの差を表す。より具体的には、モード選択ユニット40が、予測後ブロックを二次境界フィルタリングを使用してフィルタリングしないと判定する時に、モード選択ユニット40は、予測後ブロックを合計器50に送ることができる。その代わりに、モード選択ユニット40が、予測後ブロックが二次境界フィルタリングされなければならないと判定する時には、モード選択ユニット40は、フィルタリングされた予測後ブロック(フィルタリングユニット66によって実行される二次境界フィルタリングから生じる)を合計器50に送ることができる。この形で、ビデオ符号器20は、予測後ブロックをフィルタリングしないという判定に応答して、予測後ブロックを使用してブロック(すなわち、予測後ブロックが対応するオリジナルブロック)を符号化し、予測後ブロックをフィルタリングするという判定に応答して、フィルタリングされた予測後ブロックを使用してブロックを符号化することができる。
変換処理ユニット52は、残差ブロックに離散コサイン変換(DCT)または概念的に類似する変換などの変換を適用し、残差変換係数値を備えるビデオブロックを作る。変換処理ユニット52は、概念的にDCTに類似する、H.264標準規格またはやがて来るHEVC標準規格によって定義されるものなどの他の変換を実行することができる。ウェーブレット変換、整数変換、サブバンド変換、または他のタイプの変換も、使用され得る。どの場合でも、変換処理ユニット52は、残差ブロックに変換を適用し、残差変換係数のブロックを作る。変換は、画素値領域からの残差情報を、周波数領域などの変換領域に変換することができる。量子化ユニット54は、ビットレートをさらに下げるために、残差変換係数を量子化する。量子化プロセスは、係数の一部またはすべてに関連するビット深さを減らすことができる。量子化の度合は、量子化パラメータを調整することによって変更され得る。
量子化に続いて、エントロピコーディングユニット56が、量子化された変換係数をエントロピコーディングする。たとえば、エントロピコーディングユニット56は、コンテキスト適応型可変長コーディング(CAVLC)、コンテキスト適応型バイナリ算術コーディング(CABAC)、または別のエントロピコーディング技法を実行することができる。エントロピコーディングユニット56は、動きベクトル、イントラモードインジケータ、パーティション情報、および類似物など、モード選択ユニット40からのシンタックス要素をもエントロピコーディングすることができる。エントロピコーディングユニット56によるエントロピコーディングに続いて、符号化されたビデオは、別のデバイスに送信され、または後の送信もしくは取出しのためにアーカイブされ得る。コンテキスト適応型バイナリ算術コーディングの場合に、コンテキストは、隣接するブロックに基づくものとすることができる。
いくつかの場合に、エントロピコーディングユニット56またはビデオ符号器20の別のユニットは、エントロピコーディングに加えて、他のコーディング機能を実行するように構成され得る。たとえば、エントロピコーディングユニット56は、ブロックおよびパーティションのCBP値を判定するように構成され得る。また、いくつかの場合に、エントロピコーディングユニット56は、ブロックまたはそのパーティション内の係数のランレングスコーディングを実行することができる。具体的には、エントロピコーディングユニット56は、さらなる圧縮のためにブロックまたはパーティション内の変換係数をスキャンし、ゼロのランを符号化するために、ジグザグスキャンまたは他のスキャンパターンを適用することができる。エントロピコーディングユニット56は、符号化されたビデオビットストリーム内での伝送のために適当なシンタックス要素を有するヘッダ情報を構成することもできる。
逆量子化ユニット58および逆変換ユニット60は、たとえば基準ブロックとしての後の使用のために、画素領域の残差ブロックを再構成するために、それぞれ逆量子化および逆変換を適用する。動き補償ユニット44は、残差ブロックに基準フレームメモリ64のフレームのうちの1つの予測ブロックを加算することによって、基準ブロックを計算することができる。動き補償ユニット44は、動き推定で使用されるサブ整数画素値を計算するために、再構成された残差ブロックに1つまたは複数の補間フィルタを適用することもできる。合計器62は、基準フレームメモリ64に格納される再構成されたビデオブロックを作るために、動き補償ユニット44によって作られた動き補償された予測ブロックに再構成された残差ブロックを加算する。再構成されたビデオブロックは、動き推定ユニット42および動き補償ユニット44によって、後続ビデオフレームのブロックをインターコーディングするための基準ブロックとして使用され得る。
この形で、ビデオ符号器20は、予測後ブロックを形成するためにビデオデータブロックの一次境界に沿った画素の値を使用してビデオデータのブロックをイントラ予測し、ブロックの二次境界のデータを使用して、予測後ブロックをフィルタリングすべきかどうかを判定し、予測後ブロックをフィルタリングするとの判定に応答して、二次境界のデータを使用して、予測後ブロックをフィルタリングするように構成されたビデオコーダの例を表す。
図3は、二次境界フィルタリングを実行すべきかどうかを判定する技法を実施することができるビデオ復号器30の例を示すブロック図である。図3の例では、ビデオ復号器30は、エントロピ復号ユニット70と、動き補償ユニット72と、イントラ予測ユニット74と、フィルタリングユニット84と、逆量子化ユニット76と、逆変換ユニット78と、基準フレームメモリ82と、合計器80とを含む。いくつかの例では、ビデオ復号器30は、合計器80の出力をフィルタリングし、デブロッキングされたビデオデータを基準フレームメモリ82に格納することができるデブロッカ(図示せず)を含むことができる。ビデオ復号器30は、いくつかの例で、ビデオ符号器20(図2)に関して説明された復号パスに全般的に相反する復号パスを実行することができる。
動き補償ユニット72は、エントロピ復号ユニット70から受け取られた動きベクトルに基づいて予測データを生成することができる。動き補償ユニット72は、基準フレームメモリ82内の基準フレーム内の予測ブロックを識別するために、ビットストリーム内で受け取られた動きベクトルを使用することができる。イントラ予測ユニット74は、空間的に隣接するブロックから予測ブロックを形成するために、ビットストリーム内で受け取られたイントラ予測モードを使用することができる。
本開示の技法によれば、イントラ予測ユニット74は、ビデオデータのブロック(たとえば、PU)のイントラ予測コーディング中に二次境界フィルタリングを選択的にイネーブルしまたは(完全にまたは部分的に)ディスエーブルすることができる。具体的には、イントラ予測ユニット74は、現在のブロック、たとえば現在のPUの2つの境界、たとえば左に隣接する境界と上に隣接する境界との間の境界関係を表す値を計算することができる。代替案では、イントラ予測ユニット74は、現在のブロック(たとえば、現在のPU)の境界と現在のブロックの画素値との間の境界関係を表す値を計算することができる。
そのような例では、イントラ予測ユニット74は、境界関係に少なくとも部分的に基づいて、ビデオデータの現在のブロックに対応する予測後ブロックをフィルタリングすべきかどうかを選択的に判定する。より具体的には、本開示の技法(たとえば、図5に関してより詳細に説明される)によれば、イントラ予測ユニット74は、ビデオデータのイントラ予測されたブロックの二次境界フィルタリングをイネーブルすべきかまたはディスエーブルすべきかを判定することができる。二次境界フィルタリングの選択的なイネーブルまたはディスエーブルは、ブロック、たとえばPUの予測された値を改善することができ、これによって、そのブロックのBDレートを改善することができる。
イントラ予測ユニット74が、境界関係値を計算する例では、イントラ予測ユニット74は、図2に関して議論されたように、ビデオ符号器20に実質的に類似する形で、境界関係値を計算することができる。たとえば、イントラ予測ユニット74は、ラプラシアン値を計算することができる。一例として、イントラ予測ユニット74が、相対的に水平のイントラ予測モード(たとえば、イントラ予測モードを表す現在のブロックのシンタックスデータによって示される)を使用してブロックを予測する時に、イントラ予測ユニット74は、次式に従ってラプラシアン値を計算することができる。
Figure 2014535224
この例の関数では、TR[k]は、ブロックの左エッジから始まる上側境界に沿ったk番目の画素に対応し、Nは、ブロックの幅を表す整数値である。より具体的には、ブロックの上側境界に沿った画素は、0からNまででインデクシングされ得、0は、ブロックの左端画素を表し、Nは、ブロックの右端画素を表し、ブロックの幅は、(N+1)である。
別の例として、イントラ予測ユニット74が、相対的に垂直のイントラ予測モード(やはり、イントラ予測モードを示すシンタックスデータによる)を使用してブロックを予測する時に、イントラ予測ユニット74は、式
Figure 2014535224
に従ってラプラシアン値を計算することができる。
この例の関数では、SR[j]は、ブロックの上エッジから始まる左側境界に沿ったj番目の画素に対応し、Nは、ブロックの高さを表す整数値である。より具体的には、ブロックの左側境界に沿った画素は、0からNまででインデクシングされ得、0は、ブロックの上端画素を表し、Nは、ブロックの下端画素を表し、ブロックの高さは、(N+1)である。
上では主に、相対的に水平および相対的に垂直のイントラ予測モードなど、方向性イントラ予測モードの使用に関して説明されたが、本開示の技法は、DCモードまたはプレーナモードなどの非方向性イントラ予測モードから生じる予測後ブロックに二次境界フィルタリングを適用すべきかどうかを判定するためにも適用され得る。その場合に、ラプラシアン値の計算は、次の式に従って実行され得る。
Figure 2014535224
上の例と同様に、この例では、TR[k]は、ブロックの左エッジから始まる上側境界に沿ったk番目の画素に対応し、SR[j]は、ブロックの上エッジから始まる左側境界に沿ったj番目の画素に対応する。この例では、ブロックは、正方形であると仮定され、値Nは、ブロックの高さと幅との両方を表す整数値である。上で注記されたように、ブロックの最初の画素(いちばん左端の画素といちばん上の画素と)の0インデクシングを仮定すると、高さは、幅と等しいものとすることができ、幅と高さとの両方が、(N+1)と等しいものとすることができる。
他の例では、イントラ予測ユニット74は、グラディエント差値として境界関係値を計算することができる。たとえば、イントラ予測ユニット74が、相対的に水平のイントラ予測モードを使用して予測後ブロックを計算する時に、イントラ予測ユニット74は、式
Figure 2014535224
に従って境界関係値(グラディエント差値に対応する)を計算することができる。
上の例と同様に、この例では、TR[k]は、ブロックの左エッジから始まる上側境界に沿ったk番目の画素に対応し、Nは、ブロックの幅を表す整数値である。P(i,j)は、この例で位置(i,j)の予測ブロックの画素に対応する。
別の例として、イントラ予測ユニット74が、相対的に垂直のイントラ予測モードを使用して予測後ブロックを計算する時に、イントラ予測ユニット74は、式
Figure 2014535224
に従って境界関係値(グラディエント差値に対応する)を計算することができる。
上の例と同様に、この例では、SR[j]は、ブロックの上エッジから始まる左側境界に沿ったj番目の画素に対応し、Nは、ブロックの高さを表す整数値である。
どの場合でも、イントラ予測ユニット74は、たとえば境界関係値をしきい値と比較することによって、予測後ブロックを二次境界フィルタリングすべきかどうかを判定することができる。いくつかの例では、イントラ予測ユニット74は、さまざまな特性、たとえば、境界関係値がラプラシアン値またはグラディエント差値のどちらであるのかに基づいて、異なるしきい値を定義するデータを含むことができる。そのようなしきい値は、事前に定義されまたはビデオ符号器から受け取られるシンタックス要素から判定されるものとすることができる。
イントラ予測ユニット74が、予測後ブロックを二次境界フィルタリングしなければならないと判定する場合には、フィルタリングユニット84は、二次境界フィルタをブロックに適用することができる。すなわち、イントラ予測ユニット74は、予測後ブロックを表すデータをフィルタリングユニット84に送ることができ、フィルタリングユニット84は、二次境界のデータを使用してそのデータを変更することができる。イントラ予測ユニット74は、どの境界が一次境界と考えられ、どの境界が二次境界と考えられるのかを示すデータをフィルタリングユニット84に送ることもできる。フィルタリングユニット84は、二次境界フィルタリングを実行するために、基準フレームメモリ82から二次境界のデータを取り出すことができる。
二次境界を使用して、予測後ブロックをフィルタリングするために、フィルタリングユニット84は、図2のビデオ符号器20のフィルタリングユニット66に関して説明された技法に実質的に類似するものとすることができる形で、二次境界の1つまたは複数の値を使用して、予測後ブロックの個々の画素Pijを変更することができる。すなわち、フィルタリングユニット84は、二次境界フィルタリングがイネーブルされる時に、予測後ブロックのデータをフィルタリングするために、適宜、式(1)および/または(2)を実行することができる。たとえば、(i,j)が、位置(i,j)の予測後ブロックの画素に対応し、予測後ブロックの左上角が、位置(0,0)にあるものとする。Pijは、予測後ブロックの位置(i,j)の画素に対応するものとする。P’ijは、位置(i,j)のフィルタリングされた画素すなわち、フィルタリングユニット84によって変更されたPijの値を有する画素に対応するものとする。フィルタリングユニット84は、次のように、相対的に垂直のイントラ予測モードを使用して予測された予測後ブロックのP’ijを計算することができる。
Figure 2014535224
ここで、αは、0と1との間の分数であり、それぞれ垂直モードおよび水平モードについてjおよびiに従って選択され、RLiは、Pijに対応する左側境界内の基準サンプル(すなわち、左側境界内の位置iにある画素)を表し、Liは、現在のブロックの左列内の位置iにある基準サンプルを表す。一例では、j(i)=0の時にα=1/2であり、j(i)=1の時にα=1/4であり、j(i)=2の時にα=1/8であり、j(i)=3,4の時にα=1/16である。
フィルタリングユニット84は、次のように、相対的に水平のイントラモードを使用して予測された予測後ブロックのP’ijを計算することができる。
Figure 2014535224
ここで、αは、0と1との間の分数であり、それぞれ垂直モードおよび水平モードについてjおよびiに従って選択され(上で注記したように)、RAjは、Pijに対応する上側境界内の基準サンプル(すなわち、上側境界内の位置jにある画素)を表し、Ajは、上の行内の位置jにある基準サンプルを表す。上で注記したように、一例では、j(i)=0の時にα=1/2であり、j(i)=1の時にα=1/4であり、j(i)=2の時にα=1/8であり、j(i)=3,4の時にα=1/16である。
他の例では、イントラ予測ユニット74は、二次境界フィルタリングを実行すべきかどうかを示すシンタックス要素を受け取ることができる。そのような例では、イントラ予測ユニット74は、境界関係値を計算する必要がない。その代わりに、イントラ予測ユニット74は、シンタックス要素の値に基づいて、二次境界フィルタリングを実行すべきかどうかを判定することができる。図2に関して議論されたように、ビデオ符号器20などのビデオ符号器は、特定の予測後ブロックについて二次境界フィルタリングを実行すべきかどうかを判定するために、境界関係値を計算し、境界関係値をしきい値と比較し、その後、判定を示すシンタックス要素を符号化することができる。したがって、ビデオ復号器30は、相対的に水平または相対的に垂直のイントラ予測モードから生じる予測後ブロックをフィルタリングすべきかどうかを判定するために、シンタックス要素を復号することができる。
逆量子化ユニット76は、ビットストリーム内で供給され、エントロピ復号ユニット70によって復号された量子化された変換係数を逆量子化すなわち量子化解除する。逆量子化プロセスは、従来のプロセス、たとえば、H.264復号標準規格またはやがて来るHEVC標準規格によって定義されるプロセスを含むことができる。逆量子化プロセスは、量子化の度合および同様に適用すべき逆量子化の度合を判定するためにブロックごとにビデオ復号器30によって計算された量子化パラメータQPYの使用をも含むことができる。
逆量子化ユニット58は、画素領域の残差ブロックを作るために、変換係数に逆変換、たとえば逆DCT、逆整数変換、または概念的に類似する逆変換プロセスを適用する。動き補償ユニット72は、おそらくは補間フィルタに基づく補間を実行して、動き補償されたブロックを作る。サブ画素精度を有する動き推定に使用される補間フィルタの識別子は、シンタックス要素に含まれ得る。動き補償ユニット72は、基準ブロックのサブ整数画素の補間された値を計算するために、ビデオブロックの符号化中にビデオ符号器20によって使用された補間フィルタを使用することができる。動き補償ユニット72は、受け取られたシンタックス情報に従ってビデオ符号器20によって使用された補間フィルタを判定し、予測ブロックを作るのにその補間フィルタを使用することができる。
動き補償ユニット72は、符号化されたビデオシーケンスのフレーム(1つまたは複数)を符号化するのに使用されたブロックのサイズと、符号化されたビデオシーケンスのフレームの各ブロックがどのように区分されるのかを記述するパーティション情報と、各パーティションがどのように符号化されるのかを示すモードと、インター符号化されたブロックまたはパーティションごとに1つまたは複数の基準フレーム(および基準フレームリスト)と、符号化されたビデオシーケンスを復号するための他の情報とを判定するために、シンタックス情報の一部を使用する。代替案では、上で議論されたように、イントラ予測ユニット74は、ビデオデータのブロックをイントラ予測することができる。さらに、イントラ予測ユニット74は、やはり上で議論されるように、フィルタリングユニット84に予測後ブロックをフィルタリングさせるべきかどうかを判定することができる。
合計器80は、復号されたブロックを形成するために、残差ブロックを、動き補償ユニット72またはイントラ予測ユニット74によって生成された対応する予測ブロックと合計する。より具体的には、本開示の教示に従って、イントラ予測ユニット74が、予測後ブロックを作り、二次境界フィルタリングを実行すべきではないと判定する時に、合計器80は、残差ブロックを対応する予測後ブロックと合成する。その一方で、イントラ予測ユニット74が、予測後ブロックを作り、フィルタリングユニット84に二次境界フィルタリングを実行させる時に、合計器80は、残差ブロックを対応するフィルタリングされた予測後ブロックと組み合わせる。望まれる場合に、デブロッキングフィルタも、ブロッキネスアーチファクトを除去するために、復号されたブロックをフィルタリングするために適用され得る。デブロッキングフィルタが、本開示の二次境界フィルタリングプロセスとは別々であることを理解されたい。復号されたビデオブロックは、次に基準フレームメモリ82に格納され、基準フレームメモリ82は、後続の動き補償またはイントラ予測のために基準ブロックを提供し、ディスプレイデバイス(図1のディスプレイデバイス32など)上の提示のために復号されたビデオをも作る。
この形で、ビデオ復号器30は、予測後ブロックを形成するためにブロックの一次境界に沿った画素の値を使用してビデオデータのブロックをイントラ予測し、ブロックの二次境界のデータを使用して、予測後ブロックをフィルタリングすべきかどうかを判定し、予測後ブロックをフィルタリングするとの判定に応答して、二次境界のデータを使用して、予測後ブロックをフィルタリングするように構成されたビデオコーダの例を表す。
図4は、HEVCでのさまざまなイントラ予測モード方向を示す概念図である。イントラ予測モードは、全般的に、括弧内の数の識別子ならびに垂直(v)または水平(h)のいずれかからの相対オフセットを使用して示される。この例では、モード(2)は、一般に、非方向性であるDC予測モードに対応するので、スキップされる。プレーナモードなどの他の非方向性イントラ予測モードも、図4から省略されている。
図4の例では、方向性イントラ予測モードは、相対的に水平または相対的に垂直のいずれかとして示され得る。水平に対して相対的に示されるモード(たとえば、h+n、ただしn∈[0,8])は、相対的に水平と言われ、垂直に対して相対的に示されるモード(たとえば、v+n、ただしn∈[0,8])は、この例では相対的に垂直と言われる。他の方向性モードは、相対的に対角と考えられ、破線を有する矢印によって表される。そのような相対的に対角のイントラ予測モードは、h−n、ただしn∈[1, 7])およびv−n、ただしn∈[1,8])と定義されるモードを含む。
方向性イントラ予測モード(相対的に水平と、相対的に垂直と、相対的に対角とを含む)について、二次境界は、相対的に水平のモード(HORからHOR+8まで)およびモード(HOR−1からHOR−7)を含む相対的に対角のモードについて、上PU境界と定義され、相対的に垂直のモード(VERからVER+8まで)およびモード(VER−1からVER−8)を含む相対的に対角のモードについて、横(左)PU境界と定義される。一般に、二次境界フィルタリングを実行すべきかどうかを判定するための、お互いまたは予測ユニットの画素に対する境界の比較は、現在のブロックと隣接する以前にコーディングされたブロック、たとえば現在のブロックの左または上のブロックとの間の境界のデータを分析することに対応する。
したがって、境界関係への言及は、現在のブロックと隣接する以前にコーディングされたブロックとの間の2つの境界の間または現在のブロックと隣接する以前にコーディングされたブロックとの間の2つの境界のうちの1つと現在のブロックの画素値(たとえば、現在のブロックのPUの画素値)とに対する数学的関係を含むと理解されなければならない。そのような数学的関係は、たとえば、ラプラシアン計算およびグラディエント差計算を含むことができる。
図5Aおよび図5Bは、ラプラシアンに基づく基準境界サンプルの間の境界関係の計算を示す概念図である。図5Aは、画素106A〜106P(画素106)を含むブロック100を示す。ブロック100は、画素104A〜104D(画素104)によって定義される上側境界および画素102A〜102Dによって定義される左側境界に隣接する。この例では、ブロック100は、4x4ブロックであり、これは、ブロック100が4画素の高さおよび4画素の幅を有することを意味する。画素106は、座標(i,j)を使用して言及され得、iおよびjは、[0,3]に含まれる。したがって、ブロック100の高さおよび幅は、Nによって表され得、N=3である。具体的には、ブロック100の高さおよび幅は、N+1(したがって、この例では4)である。図5Bのブロック110は、同様に、画素116A〜116Pを含み、画素114A〜114D(画素114)によって定義される上側境界および画素112A〜112D(画素112)によって定義される左側境界に隣接する。ブロック100と同様に、図5Bのブロック110は、4x4ブロックである。
図5Aおよび図5Bの矢印は、ブロック100、110のイントラ予測方向を表す。これらの例では、ブロック100は、相対的に水平の予測方向を使用して予測され、ブロック110は、相対的に垂直の予測方向を使用して予測される。したがって、ブロック100の一次境界は、画素102によって定義される左側境界であり、ブロック100の二次境界は、画素104によって定義される上側境界である。その一方で、ブロック110の一次境界は、画素114によって定義される上側境界であり、ブロック110の二次境界は、画素112によって定義される左側境界である。
上基準境界サンプル(図5Aでは画素104、図5Bでは画素114によって定義される)は、TR[i](i=0…N)によっても表され得、横基準境界サンプル(図5Aでは画素102、図5Bでは画素112によって定義される)は、SR[i](i=0…N)によっても表され得る。これらの例では、「境界サンプル」は、現在のブロックの境界の画素値であり、境界は、現在のブロックに対する相対的な、隣接する以前にコーディングされたブロックの画素を含む。イントラPUサンプル(すなわち、図5Aの画素106および図5Bの画素116など、PUの予測された画素値)は、P[k,l](k,l=0…N)によって表される。次の擬似コードは、方向性イントラ予測モードの場合のラプラシアンに基づく基準境界サンプルの間の関係の例の計算を示す。
Figure 2014535224
この擬似コードでは、ラプラシアンの絶対値が、2つの隣接する基準境界位置について、すなわち、TR[N−1]およびTR[N−2]またはSR[N−1]およびSR[N−2]を中心として計算される。一般に、ラプラシアンは、少なくとも1つの位置について計算され得、複数の位置の場合には、ラプラシアンは、基準境界位置に沿ってまばらに分布しまたはこれに隣接する可能性がある。さらに、この技法は、1つの基準境界線から複数の基準境界線に拡張され得る。
したがって、図5Aの例では、ブロック100について、ラプラシアン値は、次式として計算され得る。
Figure 2014535224
同様に、図5Bの例では、ブロック110について、ラプラシアン値は、次式として計算され得る。
Figure 2014535224
非方向性のDCイントラ予測モードおよびプレーナイントラ予測モードの場合には、「二次」境界は、上と横(左)との両方のイントラPU境界によって定義され得る。次の擬似コードは、例の解を示す。
Figure 2014535224
グラディエント差に基づく代替の数学的関係が、使用され得る。これは、方向性イントラ予測モードについて次の擬似コードを用いて示される。
Figure 2014535224
ラプラシアンベースの関係と同様に、DCイントラモードおよびプレーナイントラモードについて、両方の境界が、一緒に処理され得る。一般的な場合に、少なくとも1つのグラディエント差が、計算され得、複数のグラディエント差の場合に、これらは、イントラPU境界に沿ってまばらにまたはお互いに隣接して配置され得る。さらに、グラディエント差は、複数の基準境界線およびTR[i]サンプルとSR[i]サンプルとの間のグラディエント差に拡張され得る。さらなる拡張は、イントラPU全体および基準境界からのサンプルを含めることとすることができる。
さらに、各二次境界フィルタリング技法(フィルタリング、グラディエントベースの、両方向のなど)は、その技法をイネーブルしまたはディスエーブルするための、それ自体の専用の保護論理およびしきい値を有することができる。各方向性または非方向性のイントラ予測モードは、適当な二次境界フィルタリング技法をイネーブルしまたはディスエーブルするための、それ自体の専用の保護論理およびしきい値を有することができる。テーブルが、二次境界フィルタリング技法をイネーブルしまたはディスエーブルするために、しきい値(適当な保護論理に対応する)と一緒に、方向性イントラ予測モードまたは非方向性イントラ予測モードごとに適用すべき二次境界フィルタリング技法をルックアップするのに使用され得る。代替案では、この情報は、符号器によって復号器に(たとえば、ビデオ符号器20によってビデオ復号器30に)シグナリングされ得る。したがって、符号器は、さまざまな例で、二次境界フィルタリングを実行すべきかどうかまたは二次境界フィルタリングを実行すべきかどうかを判定するための判断基準を復号器にシグナリングすることができる。さらに別の例では、ビデオ復号器は、先験的に二次境界フィルタリングを実行すべきかどうかを判定する判断基準を伴って構成され得る。
図6は、現在のブロックを符号化する例の方法を示す流れ図である。現在のブロックは、現在のCUまたは現在のCUの一部を備えることができる。ビデオ符号器20(図1および図2)に関して説明されるが、他のデバイスが、図6の方法に類似する方法を実行するように構成され得ることを理解されたい。
この例では、ビデオ符号器20は、当初に、イントラ予測を使用して現在のブロックを予測する(120)。たとえば、ビデオ符号器20は、現在のブロックの1つまたは複数の予測ユニット(PU)を計算することができる。本開示の技法によれば、ビデオ符号器20は、イントラ予測モード、たとえば、相対的に水平または相対的に垂直のイントラ予測モードを使用して現在のブロックを予測することができる。いくつかの例では、ビデオ符号器20は、相対的に対角のイントラ予測モードまたはDCモードもしくはプレーナモードなどの非方向性イントラ予測モードを使用して現在のブロックを予測することができる。
次に、ビデオ符号器20は、二次境界フィルタリングを実行すべきかどうかを判定することができる(122)。二次境界フィルタリングを実行すべきかどうかを判定する例の方法は、下で図8に関してより詳細に説明される。次に、ビデオ符号器20は、二次境界フィルタリングが決定される場合に、予測後ブロックをフィルタリングすることができる(124)。すなわち、イントラ予測ユニット46が、予測後ブロックを形成することができ、フィルタリングユニット66(図2)が、二次境界に沿った画素の値を使用して、予測後ブロックの値をフィルタリングすることができる。
次に、ビデオ符号器20は、たとえば変換ユニット(TU)を作るために、現在のブロックの残差ブロックを計算することができる(126)。残差ブロックを計算するために、ビデオ符号器20は、オリジナルのコーディングされていないブロックと現在のブロックの予測後ブロックとの間の差を計算することができる。具体的には、本開示の技法によれば、ビデオ符号器20は、二次境界フィルタリングが決定されない時にはオリジナルブロックと予測後ブロックとの間の差として、二次境界フィルタリングが決定される時にはオリジナルブロックとフィルタリングされた予測後ブロックとの間の差として、残差ブロックを計算することができる。
次に、ビデオ符号器20は、残差ブロックの係数を変換し、量子化することができる(128)。次に、ビデオ符号器20は、残差ブロックの量子化された変換係数をスキャンすることができる(130)。スキャン中にまたはスキャンの後に、ビデオ符号器20は、係数をエントロピ符号化することができる(132)。たとえば、ビデオ符号器20は、CAVLCまたはCABACを使用して係数を符号化することができる。次に、ビデオ符号器20は、ブロックのエントロピコーディングされたデータを出力することができる(134)。
この形で、図6の方法は、予測後ブロックを形成するためにビデオデータブロックの一次境界に沿った画素の値を使用してビデオデータのブロックをイントラ予測することと、ブロックの二次境界のデータを使用して、予測後ブロックをフィルタリングすべきかどうかを判定することと、予測後ブロックをフィルタリングするとの判定に応答して、二次境界のデータを使用して、予測後ブロックをフィルタリングすることとを含む方法の例を表す。
図7は、ビデオデータの現在のブロックを復号する例の方法を示す流れ図である。現在のブロックは、現在のCUまたは現在のCUの一部を備えることができる。ビデオ復号器30(図1および図3)に関して説明されるが、他のデバイスが、図7の方法に類似する方法を実行するように構成され得ることを理解されたい。
ビデオ復号器30は、現在のブロックの予測ブロックを計算するために、イントラ予測を使用して現在のブロックを予測することができる(140)。たとえば、ビデオ復号器30は、現在のブロックの1つまたは複数の予測ユニット(PU)を計算することができる。具体的には、ビデオ復号器30は、現在のブロックのイントラ予測モード表示をエントロピ復号することができる。本開示の教示によれば、ビデオ復号器30は、イントラ予測モード、たとえば、相対的に水平または相対的に垂直のイントラ予測モードを使用して現在のブロックを予測することができる。いくつかの例では、ビデオ復号器30は、相対的に対角のイントラ予測モードまたはDCモードもしくはプレーナモードなどの非方向性イントラ予測モードを使用して現在のブロックを予測することができる。
次に、ビデオ復号器30は、二次境界フィルタリングを実行すべきかどうかを判定する(142)。二次境界フィルタリングを実行すべきかどうかを判定する例の方法は、下で図8に関してより詳細に説明される。次に、ビデオ復号器30は、二次境界フィルタリングが決定される場合に、予測後ブロックをフィルタリングすることができる(144)。すなわち、イントラ予測ユニット74が、予測後ブロックを形成することができ、フィルタリングユニット84(図3)が、二次境界に沿った画素の値を使用して、予測後ブロックの値をフィルタリングすることができる。
ビデオ復号器30は、現在のブロックに対応する残差ブロックの係数のエントロピコーディングされたデータなど、現在のブロックのエントロピコーディングされたデータを受け取ることもできる(146)。ビデオ復号器30は、残差ブロックの係数を再現するために、エントロピコーディングされたデータをエントロピ復号することができる(148)。次に、ビデオ復号器30は、量子化された変換係数のブロックを作成するために、再現された係数を逆スキャンすることができる(150)。次に、ビデオ復号器30は、残差ブロックを作るために、係数を逆量子化し、逆変換することができる(152)。最終的に、ビデオ復号器30は、予測後ブロックと残差ブロックとを組み合わせる(154)ことによって、現在のブロックを復号することができる。具体的には、ビデオ復号器30は、二次境界フィルタリングが決定されない時に、残差ブロックを予測後ブロックと組み合わせることができる。その一方で、二次境界フィルタリングが決定される時には、ビデオ復号器30は、残差ブロックをフィルタリングされた予測後ブロックと組み合わせることができる。
この形で、図7の方法は、予測後ブロックを形成するためにビデオデータブロックの一次境界に沿った画素の値を使用してビデオデータのブロックをイントラ予測することと、ブロックの二次境界のデータを使用して、予測後ブロックをフィルタリングすべきかどうかを判定することと、予測後ブロックをフィルタリングするとの判定に応答して、二次境界のデータを使用して、予測後ブロックをフィルタリングすることとを含む方法の例を表す。
図8は、本開示の技法による二次境界フィルタリングを実行すべきかどうかを判定する例の方法を示す流れ図である。図8の方法は、ビデオ符号器20(たとえば、イントラ予測ユニット46)および/またはビデオ復号器30(たとえば、イントラ予測ユニット74)、あるいは他のビデオデータ処理デバイスによって実行され得る。例において、図8の方法は、ビデオ符号器20に関して説明されるが、類似する方法が、ビデオ復号器30によって実行され得ることを理解されたい。いくつかの例では、図8の方法のステップ162〜168は、図6の方法のステップ122と図7の方法のステップ142とに対応することができる。
当初に、ビデオ符号器20は、ビデオデータのブロックをイントラ予測することができる(160)。たとえば、ビデオ符号器20は、ビデオデータのブロックを符号化するのに使用すべきイントラモードを選択し、その後、ビデオデータのイントラコーディングされたブロックを復号することができる。ビデオ復号器30は、図8の方法を実行する時に、受信されたシンタックス情報によって示されるイントラモードを使用して、ビデオデータのコーディングされたブロックを復号することができる。
ビデオデータのイントラコーディングされたブロックを予測した後に、ビデオ符号器20は、そのブロックの境界関係を表す値を計算することができる(162)。境界関係は、ある境界と別の境界と(たとえば、上側境界と左側境界と)の間または境界とイントラPUサンプルとの間の数学的関係を含むことができる。いくつかの例では、境界関係は、ラプラシアン値を備えることができ、他の例では、境界関係は、グラディエント差に基づくものとすることができる。
たとえば、ブロックが、相対的に水平の方向性イントラ予測モードを使用して予測された場合に、ビデオ符号器20は、上に隣接するブロック内の画素の値からラプラシアン値を計算することができる。たとえば、図5Aに示され、図5Aに関して議論されるように、ビデオ符号器20は、|TR[N−2]−2*TR[N−1]+TR[N]|と|TR[N−3]−2*TR[N−2]+TR[N−1]|との最大値としてラプラシアン値を計算することができる。別の例として、ブロックが、相対的に垂直の方向性イントラ予測モードを使用して予測された場合に、ビデオ符号器20は、左に隣接するブロック内の画素の値からラプラシアン値を計算することができる。たとえば、図5Bに示され、図5Bに関して議論されるように、ビデオ符号器20は、|SR[N−2]−2*SR[N−1]+SR[N]|と|SR[N−3]−2*SR[N−2]+SR[N−1]|との最大値としてラプラシアン値を計算することができる。
別の例として、ブロックは、DCモードまたはプレーナモードなど、非方向性イントラ予測モードを使用して予測された場合がある。いくつかの例では、ブロックが、非方向性モードを使用してイントラ予測される時に、ビデオ符号器20は、|TR[N−2]−2*TR[N−1]+TR[N]|と、|TR[N−3]−2*TR[N−2]+TR[N−1]|と、|SR[N−2]−2*SR[N−1]+SR[N]|と、|SR[N−3]−2*SR[N−2]+SR[N−1]|との最大値としてラプラシアン値を計算することができる。
他の例では、ビデオ符号器20は、境界関係としてのグラディエント差に基づいて数学的関係を計算することができる。たとえば、ビデオ符号器20は、相対的に水平の方向モードについて|TR[N]−P[N,0]|と、|TR[N−1]−P[N−1,0]|と、|TR[N]−P[N−1,0]|、と|TR[N−1]−P[N,0]|との最大値として、相対的に垂直の方向モードについて|SR[N]−P[0,N]|と、|SR[N−1]−P[0,N−1]|と、|SR[N]−P[0,N−1]|と、|SR[N−1]−P[0,N]|との最大値として、グラディエント差値を計算することができる。ビデオ符号器20は、非方向性モードに関するラプラシアン値に実質的に類似する形で、非方向性モードについてグラディエント差値を計算するようにも構成され得る。
境界関係を表す値(本明細書では境界関係値とも称する)を計算した後に、ビデオ符号器20は、その値がしきい値未満であるかどうかを判定することができる(164)。値がしきい値未満である(164の「YES」分岐)場合には、ビデオ符号器20は、二次境界フィルタリングをイネーブルすることができる(166)。その一方で、値がしきい値未満ではない(たとえば、しきい値以上)(164の「NO」分岐)場合には、ビデオ符号器20は、二次境界フィルタリングをディスエーブルすることができる(168)。しきい値以上の値は、二次境界フィルタリングがイネーブルされる場合に、BDレートが劣化することを示すことができる。この形で、ビデオ符号器20および/またはビデオ復号器30は、ビデオデータのイントラ予測されたブロックについて二次境界フィルタリングをイネーブルすべきかまたはディスエーブルすべきかを判定することができる。
1つまたは複数の例では、説明される機能は、ハードウェア、ソフトウェア、ファームウェア、またはその任意の組合せで実施され得る。ソフトウェアで実施される場合に、機能は、コンピュータ可読媒体上の1つまたは複数の命令またはコードとして格納されまたは送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形の媒体に対応するコンピュータ可読記憶媒体またはたとえば通信プロトコルに従ってある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体を含むことができる。この形で、コンピュータ可読媒体は、一般に(1)非一時的な有形のコンピュータ可読記憶媒体または(2)信号もしくは搬送波などの通信媒体に対応することができる。データ記憶媒体は、本開示で説明される技法の実施態様の命令、コード、および/またはデータ構造を取り出すために1つまたは複数のコンピュータあるいは1つまたは複数のプロセッサによってアクセスされ得る任意の使用可能な媒体とすることができる。コンピュータプログラム製品は、コンピュータ可読媒体を含むことができる。
限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMもしくは他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、フラッシュメモリ、または命令もしくはデータ構造の形で所望のプログラムコードを格納するのに使用でき、コンピュータによってアクセスできる任意の他の媒体を備えることができる。また、すべての接続は、当然、コンピュータ可読媒体と呼ばれる。たとえば、命令が、ウェブサイト、サーバ、または他のリモートソースから同軸ケーブル、光ファイバケーブル、より対線、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して送信される場合に、同軸ケーブル、光ファイバケーブル、より対線、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれる。しかし、コンピュータ可読記憶媒体およびデータ記憶媒体が、接続、搬送波、信号、または他の一時的媒体を含まず、その代わりに、非一時的な有形の記憶媒体を対象とすることを理解されたい。ディスク(diskおよびdisc)は、本明細書で使用される時に、コンパクトディスク(CD)と、レーザーディスク(登録商標)と、光ディスクと、デジタル多用途ディスク(DVD)と、フロッピ(登録商標)ディスクと、Blu−ray(登録商標)ディスクとを含み、diskは、通常はデータを磁気的に再現し、discは、データを、レーザを用いて光学的に再現する。上記の組合せも、コンピュータ可読媒体の範囲に含まれなければならない。
命令は、1つまたは複数のデジタル信号プロセッサ、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブル論理アレイ(FPGA)、または他の同等の集積回路網もしくはディスクリート論理回路網などの1つまたは複数のプロセッサによって実行され得る。したがって、「プロセッサ」という用語は、本明細書で使用される時に、前述の構造または本明細書で説明される技法の実施に適する任意の他の構造のいずれをも指すことができる。さらに、いくつかの態様では、本明細書で説明される機能性は、符号化および復号のために構成された専用のハードウェアモジュールおよび/またはソフトウェアモジュール内で提供され、あるいは組み合わされたコーデックに組み込まれ得る。また、この技法は、1つまたは複数の回路または論理要素内で完全に実施され得る。
本開示の技法は、ワイヤレスハンドセット、集積回路(IC)、またはICのセット(たとえば、チップセット)を含むさまざまなデバイスまたは装置で実施され得る。さまざまなコンポーネント、モジュール、またはユニットは、開示される技法を実行するように構成されたデバイスの機能的態様を強調するために本開示で説明されるが、必ずしも、異なるハードウェアユニットによる実現を必要としない。そうではなく、上で説明されるように、さまざまなユニットは、コーデックハードウェアユニットに組み合わされ、または、適切なソフトウェアおよび/またはファームウェアに関連する、上で説明された1つまたは複数のプロセッサを含む相互動作可能なハードウェアユニットの集合によって提供され得る。
さまざまな例が説明された。これらおよび他の例は、次の特許請求の範囲の範囲に含まれる。
さまざまな例が説明された。これらおよび他の例は、次の特許請求の範囲の範囲に含まれる。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
[1]予測後ブロックを形成するために、ビデオデータのブロックの一次境界に沿った画素の値を使用して、前記ブロックをイントラ予測することと、
前記ブロックの二次境界のデータを使用して前記予測後ブロックをフィルタリングすべきかどうかを判定することと、
前記予測後ブロックをフィルタリングすべきであるとの判定に応答して、前記二次境界のデータを使用して前記予測後ブロックをフィルタリングすることと
を備える、ビデオデータをコーディングする方法。
[2]前記二次境界の前記データを使用して前記予測後ブロックをフィルタリングすべきかどうかを判定することは、境界関係を表す値を計算することを備える、[1]に記載の方法。
[3]前記予測後ブロックをフィルタリングすべきかどうかを判定することは、前記計算された値のしきい値との比較に基づいて前記予測後ブロックをフィルタリングすべきかどうかを判定することを備える、[2]に記載の方法。
[4]前記値は、前記一次境界の1つまたは複数の画素の画素値と前記二次境界の1つまたは複数の画素の画素値との間の関係を表す、[2]に記載の方法。
[5]前記値は、前記一次境界および前記二次境界のうちの少なくとも1つの1つまたは複数の画素の画素値と前記予測後ブロックの1つまたは複数の画素の画素値との間の関係を表す、[2]に記載の方法。
[6]前記値を計算することは、ラプラシアン値を計算することを備える、[2]に記載の方法。
[7]前記ブロックをイントラ予測することは、相対的に水平のイントラ予測モードを使用して前記ブロックを予測することを備え、前記ラプラシアン値を計算することは、|TR[N−2]−2*TR[N−1]+TR[N]|と|TR[N−3]−2*TR[N−2]+TR[N−1]|との最大値を計算することを備え、前記二次境界は、上側境界を備え、TR[k]は、前記ブロックの左エッジから始まる上境界に沿ったk番目の画素に対応し、Nは、前記ブロックの幅を表す整数値である、[6]に記載の方法。
[8]前記ブロックをイントラ予測することは、相対的に垂直のイントラ予測モードを使用して前記ブロックを予測することを備え、前記ラプラシアン値を計算することは、|SR[N−2]−2*SR[N−1]+SR[N]|と|SR[N−3]−2*SR[N−2]+SR[N−1]|との最大値を計算することを備え、前記二次境界は、左側境界を備え、SR[j]は、前記ブロックの上エッジから始まる前記左側境界に沿ったj番目の画素に対応し、Nは、前記ブロックの高さを表す整数値である、[6]に記載の方法。
[9]前記ブロックをイントラ予測することは、非方向性イントラ予測モードを使用して前記ブロックを予測することを備え、前記ラプラシアン値を計算することは、|TR[N−2]−2*TR[N−1]+TR[N]|と、|TR[N−3]−2*TR[N−2]+TR[N−1]|と、|SR[N−2]−2*SR[N−1]+SR[N]|と、|SR[N−3]−2*SR[N−2]+SR[N−1]|との最大値を計算することを備え、TR[k]は、前記ブロックの左エッジから始まる上側境界に沿ったk番目の画素に対応し、SR[j]は、前記ブロックの上エッジから始まる左側境界に沿ったj番目の画素に対応し、前記ブロックは、正方形ブロックを備え、Nは、前記ブロックの幅および高さを表す整数値である、[6]に記載の方法。
[10]非方向性イントラ予測モードを使用して前記ブロックをイントラ予測することは、DCモードおよびプレーナモードのうちの1つを使用して前記ブロックを予測することを備える、[9]に記載の方法。
[11]前記値を計算することは、グラディエント差値を計算することを備える、[2]に記載の方法。
[12]前記ブロックをイントラ予測することは、相対的に水平のイントラ予測モードを使用して前記ブロックを予測することを備え、前記グラディエント差値を計算することは、|TR[N]−P[N,0]|と、|TR[N−1]−P[N−1,0]|と、|TR[N]−P[N−1,0]|と、|TR[N−1]−P[N,0]|との最大値を計算することを備え、前記二次境界は、上側境界を備え、TR[k]は、前記ブロックの左エッジから始まる上境界に沿ったk番目の画素に対応し、Nは、前記ブロックの幅を表す整数値であり、P[i,j]は、位置[i,j]の前記予測後ブロックの画素に対応する、[11]に記載の方法。
[13]前記ブロックをイントラ予測することは、相対的に垂直のイントラ予測モードを使用して前記ブロックを予測することを備え、前記グラディエント差値を計算することは、|SR[N]−P[0,N]|と、|SR[N−1]−P[0,N−1]|と、|SR[N]−P[0,N−1]|と、|SR[N−1]−P[0,N]|との最大値を計算することを備え、SR[j]は、前記ブロックの上エッジから始まる左側境界に沿ったj番目の画素に対応し、Nは、前記ブロックの高さを表す整数値であり、P[i,j]は、位置[i,j]の前記予測後ブロックの画素に対応する、[11]に記載の方法。
[14]前記予測後ブロックをフィルタリングすべきではないとの判定に応答して、前記予測後ブロックを使用して前記ブロックをコーディングすることと、
前記予測後ブロックをフィルタリングすべきであるとの判定に応答して、前記フィルタリングされた予測後ブロックを使用して前記ブロックをコーディングすることと
をさらに備える、[1]に記載の方法。
[15]前記予測後ブロックを使用して前記ブロックをコーディングすることは、前記予測後ブロックに復号された残差値を加算することを備える、前記予測後ブロックを使用して前記ブロックを復号することを備え、
前記フィルタリングされた予測後ブロックを使用して前記ブロックをコーディングすることは、前記フィルタリングされた予測後ブロックに前記復号された残差値を加算することを備える、前記フィルタリングされた予測後ブロックを使用して前記ブロックを復号することを備える、
[14]に記載の方法。
[16]イントラ予測することは、前記ブロックに使用すべきイントラ予測モードを選択することと、前記選択されたイントラ予測モードを使用して前記ブロックを予測することとを備え、
前記予測後ブロックを使用して前記ブロックをコーディングすることは、前記ブロックと前記予測後ブロックとの間の差を表す残差値を計算することを備える、前記予測後ブロックを使用して前記ブロックを符号化することを備え、
前記フィルタリングされた予測後ブロックを使用して前記ブロックをコーディングすることは、前記ブロックと前記フィルタリングされた予測後ブロックとの間の差を表す残差値を計算することを備える、前記フィルタリングされた予測後ブロックを使用して前記ブロックを符号化することを備える、
[14]に記載の方法。
[17]前記二次境界のデータを使用して前記予測後ブロックをフィルタリングすべきかどうかを表すシンタックス情報をコーディングすることをさらに備える、[1]に記載の方法。
[18]予測後ブロックを形成するために、ビデオデータのブロックの一次境界に沿った画素の値を使用して、前記ブロックをイントラ予測し、前記ブロックの二次境界のデータを使用して前記予測後ブロックをフィルタリングすべきかどうかを判定し、前記予測後ブロックをフィルタリングすべきであるとの判定に応答して、前記二次境界のデータを使用して前記予測後ブロックをフィルタリングするように構成されたビデオコーダを備える、ビデオデータをコーディングするデバイス。
[19]前記二次境界の前記データを使用して前記予測後ブロックをフィルタリングすべきかどうかを判定するために、前記ビデオコーダは、境界関係を表す値を計算するように構成される、[18]に記載のデバイス。
[20]前記ビデオコーダは、前記計算された値のしきい値との比較に基づいて前記予測後ブロックをフィルタリングすべきかどうかを判定するように構成される、[19]に記載のデバイス。
[21]前記値は、前記一次境界の1つまたは複数の画素の画素値と前記二次境界の1つまたは複数の画素の画素値との間の関係ならびに前記一次境界および前記二次境界のうちの少なくとも1つの1つまたは複数の画素の画素値と前記予測後ブロックの1つまたは複数の画素の画素値との間の関係のうちの1つを表す、[19]に記載のデバイス。
[22]前記値を計算するために、前記ビデオコーダは、ラプラシアン値を計算するように構成される、[18]に記載のデバイス。
[23]前記値を計算するために、前記ビデオコーダは、グラディエント差値を計算するように構成される、[18]に記載のデバイス。
[24]前記ビデオコーダは、前記予測後ブロックをフィルタリングすべきではないとの判定に応答して、前記予測後ブロックを使用して前記ブロックをコーディングし、前記予測後ブロックをフィルタリングすべきであるとの判定に応答して、前記フィルタリングされた予測後ブロックを使用して前記ブロックをコーディングするようにさらに構成される、[18]に記載のデバイス。
[25]予測後ブロックを形成するために、ビデオデータのブロックの一次境界に沿った画素の値を使用して、前記ブロックをイントラ予測するための手段と、
前記ブロックの二次境界のデータを使用して前記予測後ブロックをフィルタリングすべきかどうかを判定するための手段と、
前記予測後ブロックをフィルタリングすべきであるとの判定に応答して、前記二次境界のデータを使用して前記予測後ブロックをフィルタリングするための手段と
を備える、ビデオデータをコーディングするデバイス。
[26]前記二次境界の前記データを使用して前記予測後ブロックをフィルタリングすべきかどうかを判定するための前記手段は、境界関係を表す値を計算するための手段を備える、[25]に記載のデバイス。
[27]前記予測後ブロックをフィルタリングすべきかどうかを判定するための前記手段は、前記計算された値のしきい値との比較に基づいて前記予測後ブロックをフィルタリングすべきかどうかを判定するための手段を備える、[26]に記載のデバイス。
[28]前記値は、前記一次境界の1つまたは複数の画素の画素値と前記二次境界の1つまたは複数の画素の画素値との間の関係ならびに前記一次境界および前記二次境界のうちの少なくとも1つの1つまたは複数の画素の画素値と前記予測後ブロックの1つまたは複数の画素の画素値との間の関係のうちの1つを表す、[26]に記載のデバイス。
[29]前記値を計算するための前記手段は、ラプラシアン値を計算するための手段を備える、[25]に記載のデバイス。
[30]前記値を計算するための前記手段は、グラディエント差値を計算するための手段を備える、[25]に記載のデバイス。
[31]前記予測後ブロックをフィルタリングすべきではないとの判定に応答して、前記予測後ブロックを使用して前記ブロックをコーディングするための手段と、
前記予測後ブロックをフィルタリングすべきであるとの判定に応答して、前記フィルタリングされた予測後ブロックを使用して前記ブロックをコーディングするための手段と
をさらに備える、[25]に記載のデバイス。
[32]実行された時に、プロセッサに、
予測後ブロックを形成するために、ビデオデータのブロックの一次境界に沿った画素の値を使用して、前記ブロックをイントラ予測させる命令と、
前記ブロックの二次境界のデータを使用して前記予測後ブロックをフィルタリングすべきかどうかを判定させる命令と、
前記予測後ブロックをフィルタリングすべきであるとの判定に応答して、前記二次境界のデータを使用して前記予測後ブロックをフィルタリングさせる命令と
が格納されたコンピュータ可読記憶媒体。
[33]前記プロセッサに前記二次境界の前記データを使用して前記予測後ブロックをフィルタリングすべきかどうかを判定させる前記命令は、前記プロセッサに境界関係を表す値を計算させる命令を備える、[32]に記載のコンピュータ可読記憶媒体。
[34]前記プロセッサに前記予測後ブロックをフィルタリングすべきかどうかを判定させる前記命令は、前記プロセッサに前記計算された値のしきい値との比較に基づいて前記予測後ブロックをフィルタリングすべきかどうかを判定させる命令を備える、[33]に記載のコンピュータ可読記憶媒体。
[35]前記値は、前記一次境界の1つまたは複数の画素の画素値と前記二次境界の1つまたは複数の画素の画素値との間の関係ならびに前記一次境界および前記二次境界のうちの少なくとも1つの1つまたは複数の画素の画素値と前記予測後ブロックの1つまたは複数の画素の画素値との間の関係のうちの1つを表す、[33]に記載のコンピュータ可読記憶媒体。
[36]前記プロセッサに前記値を計算させる前記命令は、前記プロセッサにラプラシアン値を計算させる命令を備える、[32]に記載のコンピュータ可読記憶媒体。
[37]前記プロセッサに前記値を計算させる前記命令は、前記プロセッサにグラディエント差値を計算させる命令を備える、[32]に記載のコンピュータ可読記憶媒体。
[38]前記プロセッサに、
前記予測後ブロックをフィルタリングすべきではないとの判定に応答して、前記予測後ブロックを使用して前記ブロックをコーディングさせる命令と、
前記予測後ブロックをフィルタリングすべきであるとの判定に応答して、前記フィルタリングされた予測後ブロックを使用して前記ブロックをコーディングさせる命令と
をさらに備える、[32]に記載のコンピュータ可読記憶媒体。

Claims (38)

  1. 予測後ブロックを形成するために、ビデオデータのブロックの一次境界に沿った画素の値を使用して、前記ブロックをイントラ予測することと、
    前記ブロックの二次境界のデータを使用して前記予測後ブロックをフィルタリングすべきかどうかを判定することと、
    前記予測後ブロックをフィルタリングすべきであるとの判定に応答して、前記二次境界のデータを使用して前記予測後ブロックをフィルタリングすることと
    を備える、ビデオデータをコーディングする方法。
  2. 前記二次境界の前記データを使用して前記予測後ブロックをフィルタリングすべきかどうかを判定することは、境界関係を表す値を計算することを備える、請求項1に記載の方法。
  3. 前記予測後ブロックをフィルタリングすべきかどうかを判定することは、前記計算された値のしきい値との比較に基づいて前記予測後ブロックをフィルタリングすべきかどうかを判定することを備える、請求項2に記載の方法。
  4. 前記値は、前記一次境界の1つまたは複数の画素の画素値と前記二次境界の1つまたは複数の画素の画素値との間の関係を表す、請求項2に記載の方法。
  5. 前記値は、前記一次境界および前記二次境界のうちの少なくとも1つの1つまたは複数の画素の画素値と前記予測後ブロックの1つまたは複数の画素の画素値との間の関係を表す、請求項2に記載の方法。
  6. 前記値を計算することは、ラプラシアン値を計算することを備える、請求項2に記載の方法。
  7. 前記ブロックをイントラ予測することは、相対的に水平のイントラ予測モードを使用して前記ブロックを予測することを備え、前記ラプラシアン値を計算することは、|TR[N−2]−2*TR[N−1]+TR[N]|と|TR[N−3]−2*TR[N−2]+TR[N−1]|との最大値を計算することを備え、前記二次境界は、上側境界を備え、TR[k]は、前記ブロックの左エッジから始まる上境界に沿ったk番目の画素に対応し、Nは、前記ブロックの幅を表す整数値である、請求項6に記載の方法。
  8. 前記ブロックをイントラ予測することは、相対的に垂直のイントラ予測モードを使用して前記ブロックを予測することを備え、前記ラプラシアン値を計算することは、|SR[N−2]−2*SR[N−1]+SR[N]|と|SR[N−3]−2*SR[N−2]+SR[N−1]|との最大値を計算することを備え、前記二次境界は、左側境界を備え、SR[j]は、前記ブロックの上エッジから始まる前記左側境界に沿ったj番目の画素に対応し、Nは、前記ブロックの高さを表す整数値である、請求項6に記載の方法。
  9. 前記ブロックをイントラ予測することは、非方向性イントラ予測モードを使用して前記ブロックを予測することを備え、前記ラプラシアン値を計算することは、|TR[N−2]−2*TR[N−1]+TR[N]|と、|TR[N−3]−2*TR[N−2]+TR[N−1]|と、|SR[N−2]−2*SR[N−1]+SR[N]|と、|SR[N−3]−2*SR[N−2]+SR[N−1]|との最大値を計算することを備え、TR[k]は、前記ブロックの左エッジから始まる上側境界に沿ったk番目の画素に対応し、SR[j]は、前記ブロックの上エッジから始まる左側境界に沿ったj番目の画素に対応し、前記ブロックは、正方形ブロックを備え、Nは、前記ブロックの幅および高さを表す整数値である、請求項6に記載の方法。
  10. 非方向性イントラ予測モードを使用して前記ブロックをイントラ予測することは、DCモードおよびプレーナモードのうちの1つを使用して前記ブロックを予測することを備える、請求項9に記載の方法。
  11. 前記値を計算することは、グラディエント差値を計算することを備える、請求項2に記載の方法。
  12. 前記ブロックをイントラ予測することは、相対的に水平のイントラ予測モードを使用して前記ブロックを予測することを備え、前記グラディエント差値を計算することは、|TR[N]−P[N,0]|と、|TR[N−1]−P[N−1,0]|と、|TR[N]−P[N−1,0]|と、|TR[N−1]−P[N,0]|との最大値を計算することを備え、前記二次境界は、上側境界を備え、TR[k]は、前記ブロックの左エッジから始まる上境界に沿ったk番目の画素に対応し、Nは、前記ブロックの幅を表す整数値であり、P[i,j]は、位置[i,j]の前記予測後ブロックの画素に対応する、請求項11に記載の方法。
  13. 前記ブロックをイントラ予測することは、相対的に垂直のイントラ予測モードを使用して前記ブロックを予測することを備え、前記グラディエント差値を計算することは、|SR[N]−P[0,N]|と、|SR[N−1]−P[0,N−1]|と、|SR[N]−P[0,N−1]|と、|SR[N−1]−P[0,N]|との最大値を計算することを備え、SR[j]は、前記ブロックの上エッジから始まる左側境界に沿ったj番目の画素に対応し、Nは、前記ブロックの高さを表す整数値であり、P[i,j]は、位置[i,j]の前記予測後ブロックの画素に対応する、請求項11に記載の方法。
  14. 前記予測後ブロックをフィルタリングすべきではないとの判定に応答して、前記予測後ブロックを使用して前記ブロックをコーディングすることと、
    前記予測後ブロックをフィルタリングすべきであるとの判定に応答して、前記フィルタリングされた予測後ブロックを使用して前記ブロックをコーディングすることと
    をさらに備える、請求項1に記載の方法。
  15. 前記予測後ブロックを使用して前記ブロックをコーディングすることは、前記予測後ブロックに復号された残差値を加算することを備える、前記予測後ブロックを使用して前記ブロックを復号することを備え、
    前記フィルタリングされた予測後ブロックを使用して前記ブロックをコーディングすることは、前記フィルタリングされた予測後ブロックに前記復号された残差値を加算することを備える、前記フィルタリングされた予測後ブロックを使用して前記ブロックを復号することを備える、
    請求項14に記載の方法。
  16. イントラ予測することは、前記ブロックに使用すべきイントラ予測モードを選択することと、前記選択されたイントラ予測モードを使用して前記ブロックを予測することとを備え、
    前記予測後ブロックを使用して前記ブロックをコーディングすることは、前記ブロックと前記予測後ブロックとの間の差を表す残差値を計算することを備える、前記予測後ブロックを使用して前記ブロックを符号化することを備え、
    前記フィルタリングされた予測後ブロックを使用して前記ブロックをコーディングすることは、前記ブロックと前記フィルタリングされた予測後ブロックとの間の差を表す残差値を計算することを備える、前記フィルタリングされた予測後ブロックを使用して前記ブロックを符号化することを備える、
    請求項14に記載の方法。
  17. 前記二次境界のデータを使用して前記予測後ブロックをフィルタリングすべきかどうかを表すシンタックス情報をコーディングすることをさらに備える、請求項1に記載の方法。
  18. 予測後ブロックを形成するために、ビデオデータのブロックの一次境界に沿った画素の値を使用して、前記ブロックをイントラ予測し、前記ブロックの二次境界のデータを使用して前記予測後ブロックをフィルタリングすべきかどうかを判定し、前記予測後ブロックをフィルタリングすべきであるとの判定に応答して、前記二次境界のデータを使用して前記予測後ブロックをフィルタリングするように構成されたビデオコーダを備える、ビデオデータをコーディングするデバイス。
  19. 前記二次境界の前記データを使用して前記予測後ブロックをフィルタリングすべきかどうかを判定するために、前記ビデオコーダは、境界関係を表す値を計算するように構成される、請求項18に記載のデバイス。
  20. 前記ビデオコーダは、前記計算された値のしきい値との比較に基づいて前記予測後ブロックをフィルタリングすべきかどうかを判定するように構成される、請求項19に記載のデバイス。
  21. 前記値は、前記一次境界の1つまたは複数の画素の画素値と前記二次境界の1つまたは複数の画素の画素値との間の関係ならびに前記一次境界および前記二次境界のうちの少なくとも1つの1つまたは複数の画素の画素値と前記予測後ブロックの1つまたは複数の画素の画素値との間の関係のうちの1つを表す、請求項19に記載のデバイス。
  22. 前記値を計算するために、前記ビデオコーダは、ラプラシアン値を計算するように構成される、請求項18に記載のデバイス。
  23. 前記値を計算するために、前記ビデオコーダは、グラディエント差値を計算するように構成される、請求項18に記載のデバイス。
  24. 前記ビデオコーダは、前記予測後ブロックをフィルタリングすべきではないとの判定に応答して、前記予測後ブロックを使用して前記ブロックをコーディングし、前記予測後ブロックをフィルタリングすべきであるとの判定に応答して、前記フィルタリングされた予測後ブロックを使用して前記ブロックをコーディングするようにさらに構成される、請求項18に記載のデバイス。
  25. 予測後ブロックを形成するために、ビデオデータのブロックの一次境界に沿った画素の値を使用して、前記ブロックをイントラ予測するための手段と、
    前記ブロックの二次境界のデータを使用して前記予測後ブロックをフィルタリングすべきかどうかを判定するための手段と、
    前記予測後ブロックをフィルタリングすべきであるとの判定に応答して、前記二次境界のデータを使用して前記予測後ブロックをフィルタリングするための手段と
    を備える、ビデオデータをコーディングするデバイス。
  26. 前記二次境界の前記データを使用して前記予測後ブロックをフィルタリングすべきかどうかを判定するための前記手段は、境界関係を表す値を計算するための手段を備える、請求項25に記載のデバイス。
  27. 前記予測後ブロックをフィルタリングすべきかどうかを判定するための前記手段は、前記計算された値のしきい値との比較に基づいて前記予測後ブロックをフィルタリングすべきかどうかを判定するための手段を備える、請求項26に記載のデバイス。
  28. 前記値は、前記一次境界の1つまたは複数の画素の画素値と前記二次境界の1つまたは複数の画素の画素値との間の関係ならびに前記一次境界および前記二次境界のうちの少なくとも1つの1つまたは複数の画素の画素値と前記予測後ブロックの1つまたは複数の画素の画素値との間の関係のうちの1つを表す、請求項26に記載のデバイス。
  29. 前記値を計算するための前記手段は、ラプラシアン値を計算するための手段を備える、請求項25に記載のデバイス。
  30. 前記値を計算するための前記手段は、グラディエント差値を計算するための手段を備える、請求項25に記載のデバイス。
  31. 前記予測後ブロックをフィルタリングすべきではないとの判定に応答して、前記予測後ブロックを使用して前記ブロックをコーディングするための手段と、
    前記予測後ブロックをフィルタリングすべきであるとの判定に応答して、前記フィルタリングされた予測後ブロックを使用して前記ブロックをコーディングするための手段と
    をさらに備える、請求項25に記載のデバイス。
  32. 実行された時に、プロセッサに、
    予測後ブロックを形成するために、ビデオデータのブロックの一次境界に沿った画素の値を使用して、前記ブロックをイントラ予測させる命令と、
    前記ブロックの二次境界のデータを使用して前記予測後ブロックをフィルタリングすべきかどうかを判定させる命令と、
    前記予測後ブロックをフィルタリングすべきであるとの判定に応答して、前記二次境界のデータを使用して前記予測後ブロックをフィルタリングさせる命令と
    が格納されたコンピュータ可読記憶媒体。
  33. 前記プロセッサに前記二次境界の前記データを使用して前記予測後ブロックをフィルタリングすべきかどうかを判定させる前記命令は、前記プロセッサに境界関係を表す値を計算させる命令を備える、請求項32に記載のコンピュータ可読記憶媒体。
  34. 前記プロセッサに前記予測後ブロックをフィルタリングすべきかどうかを判定させる前記命令は、前記プロセッサに前記計算された値のしきい値との比較に基づいて前記予測後ブロックをフィルタリングすべきかどうかを判定させる命令を備える、請求項33に記載のコンピュータ可読記憶媒体。
  35. 前記値は、前記一次境界の1つまたは複数の画素の画素値と前記二次境界の1つまたは複数の画素の画素値との間の関係ならびに前記一次境界および前記二次境界のうちの少なくとも1つの1つまたは複数の画素の画素値と前記予測後ブロックの1つまたは複数の画素の画素値との間の関係のうちの1つを表す、請求項33に記載のコンピュータ可読記憶媒体。
  36. 前記プロセッサに前記値を計算させる前記命令は、前記プロセッサにラプラシアン値を計算させる命令を備える、請求項32に記載のコンピュータ可読記憶媒体。
  37. 前記プロセッサに前記値を計算させる前記命令は、前記プロセッサにグラディエント差値を計算させる命令を備える、請求項32に記載のコンピュータ可読記憶媒体。
  38. 前記プロセッサに、
    前記予測後ブロックをフィルタリングすべきではないとの判定に応答して、前記予測後ブロックを使用して前記ブロックをコーディングさせる命令と、
    前記予測後ブロックをフィルタリングすべきであるとの判定に応答して、前記フィルタリングされた予測後ブロックを使用して前記ブロックをコーディングさせる命令と
    をさらに備える、請求項32に記載のコンピュータ可読記憶媒体。
JP2014540126A 2011-11-04 2012-11-02 ビデオコーディングのための二次境界フィルタリング Expired - Fee Related JP5833250B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201161556038P 2011-11-04 2011-11-04
US61/556,038 2011-11-04
US13/666,610 US9282344B2 (en) 2011-11-04 2012-11-01 Secondary boundary filtering for video coding
US13/666,610 2012-11-01
PCT/US2012/063276 WO2013067320A1 (en) 2011-11-04 2012-11-02 Secondary boundary filtering for video coding

Publications (2)

Publication Number Publication Date
JP2014535224A true JP2014535224A (ja) 2014-12-25
JP5833250B2 JP5833250B2 (ja) 2015-12-16

Family

ID=47192161

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014540126A Expired - Fee Related JP5833250B2 (ja) 2011-11-04 2012-11-02 ビデオコーディングのための二次境界フィルタリング

Country Status (6)

Country Link
US (2) US9282344B2 (ja)
EP (1) EP2774368B1 (ja)
JP (1) JP5833250B2 (ja)
KR (1) KR101589852B1 (ja)
CN (1) CN104041045B (ja)
WO (1) WO2013067320A1 (ja)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20110113561A (ko) * 2010-04-09 2011-10-17 한국전자통신연구원 적응적인 필터를 이용한 인트라 예측 부호화/복호화 방법 및 그 장치
US9282344B2 (en) 2011-11-04 2016-03-08 Qualcomm Incorporated Secondary boundary filtering for video coding
US8660374B1 (en) * 2011-12-23 2014-02-25 Massachusetts Institute Of Technology Selecting transform paths for compressing visual data
WO2015101329A1 (en) * 2014-01-02 2015-07-09 Mediatek Singapore Pte. Ltd. Method and apparatus for intra prediction coding with boundary filtering control
US9438923B2 (en) * 2014-06-05 2016-09-06 Blackberry Limited Apparatus and method to support encoding and decoding video data
KR20180040577A (ko) * 2015-08-17 2018-04-20 엘지전자 주식회사 인트라 예측 모드 기반 영상 처리 방법 및 이를 위한 장치
US10750174B2 (en) 2015-08-28 2020-08-18 Kt Corporation Method and device for deriving a prediction sample in decoding/encoding video signal using binary and quad trees
US10425648B2 (en) * 2015-09-29 2019-09-24 Qualcomm Incorporated Video intra-prediction using position-dependent prediction combination for video coding
JP2018533871A (ja) * 2015-11-11 2018-11-15 サムスン エレクトロニクス カンパニー リミテッド ビデオ復号方法及びその装置、並びにビデオ符号化方法及びその装置
MX2018006091A (es) * 2015-11-17 2018-11-09 Awei Tech Co Ltd Metodo y aparato para filtracion adaptativa de muestras para codificacion de video.
CN114286091A (zh) * 2016-09-05 2022-04-05 Lg电子株式会社 图像编码和解码方法、比特流存储介质及数据传输方法
US10728548B2 (en) 2017-04-04 2020-07-28 Futurewei Technologies, Inc. Processing reference samples used for intra-prediction of a picture block
CN107801024B (zh) * 2017-11-09 2019-07-12 北京大学深圳研究生院 一种用于帧内预测的边界滤波方法
CN107896330B (zh) * 2017-11-29 2019-08-13 北京大学深圳研究生院 一种用于帧内和帧间预测的滤波方法
KR102625609B1 (ko) * 2017-12-08 2024-01-16 파나소닉 인텔렉츄얼 프로퍼티 코포레이션 오브 아메리카 이미지 인코딩 장치, 이미지 디코딩 장치, 이미지 인코딩 방법 및 이미지 디코딩 방법
CN108492370B (zh) * 2018-03-02 2020-05-22 中国地质大学(武汉) 基于TV和各向异性Laplacian正则项的三角网格滤波方法
CN112272950A (zh) * 2018-06-18 2021-01-26 交互数字Vc控股公司 帧内预测中的平面和dc模式的边界滤波
US11140388B2 (en) * 2019-09-06 2021-10-05 Tencent America LLC Method and apparatus for non-linear loop filtering
CN113612992B (zh) * 2021-07-01 2023-11-03 杭州未名信科科技有限公司 一种针对avs3硬件编码器的快速帧内编码单元的编码方法
US11917144B2 (en) * 2021-09-29 2024-02-27 Mediatek Inc. Efficient in-loop filtering for video coding

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011126349A2 (ko) * 2010-04-09 2011-10-13 한국전자통신연구원 적응적 필터를 이용한 인트라 예측 수행 방법 및 장치
WO2011134641A1 (en) * 2010-04-26 2011-11-03 Panasonic Corporation Filtering mode for intra prediction inferred from statistics of surrounding blocks

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6236764B1 (en) * 1998-11-30 2001-05-22 Equator Technologies, Inc. Image processing circuit and method for reducing a difference between pixel values across an image boundary
US7457362B2 (en) 2003-10-24 2008-11-25 Texas Instruments Incorporated Loop deblock filtering of block coded video in a very long instruction word processor
KR101379255B1 (ko) * 2007-04-06 2014-03-28 삼성전자주식회사 미분 방정식을 이용한 인트라 예측 부호화, 복호화 방법 및장치
KR100973657B1 (ko) 2007-11-01 2010-08-02 경희대학교 산학협력단 디블록킹 필터링을 포함하는 코덱 사이의 트랜스코딩 방법 및 장치
FR2923637A1 (fr) * 2007-11-09 2009-05-15 Canon Kk Procede, dispositif d'identification d'un ensemble de pixels dont les valeurs sont destinees a etre utilisees pour determiner la valeur d'un pixel
EP2081386A1 (en) * 2008-01-18 2009-07-22 Panasonic Corporation High precision edge prediction for intracoding
US9596485B2 (en) * 2008-10-27 2017-03-14 Sk Telecom Co., Ltd. Motion picture encoding/decoding apparatus, adaptive deblocking filtering apparatus and filtering method for same, and recording medium
CN102342104B (zh) * 2009-03-06 2015-07-01 汤姆森特许公司 预测图像数据块的方法、实现所述方法的解码和编码设备
US20100329362A1 (en) 2009-06-30 2010-12-30 Samsung Electronics Co., Ltd. Video encoding and decoding apparatus and method using adaptive in-loop filter
CA2785036A1 (en) 2010-02-05 2011-08-11 Telefonaktiebolaget L M Ericsson (Publ) De-blocking filtering control
US9185430B2 (en) 2010-03-15 2015-11-10 Mediatek Singapore Pte. Ltd. Deblocking filtering method and deblocking filter
WO2011127964A2 (en) * 2010-04-13 2011-10-20 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Apparatus for intra predicting a block, apparatus for reconstructing a block of a picture, apparatus for reconstructing a block of a picture by intra prediction
EP4336841A3 (en) * 2011-07-19 2024-03-20 Tagivan Ii Llc Coding method
US9161046B2 (en) * 2011-10-25 2015-10-13 Qualcomm Incorporated Determining quantization parameters for deblocking filtering for video coding
US9282344B2 (en) 2011-11-04 2016-03-08 Qualcomm Incorporated Secondary boundary filtering for video coding

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2011126349A2 (ko) * 2010-04-09 2011-10-13 한국전자통신연구원 적응적 필터를 이용한 인트라 예측 수행 방법 및 장치
WO2011134641A1 (en) * 2010-04-26 2011-11-03 Panasonic Corporation Filtering mode for intra prediction inferred from statistics of surrounding blocks

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6015021229; J.Lainema and K.Ugur: 'Directional intra prediction smoothing' Joint Collaborative Team on Video Coding(JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 6th Me JCTVC-F456, 20110701, P.1-P.4, JCTVC *

Also Published As

Publication number Publication date
CN104041045B (zh) 2017-10-31
EP2774368A1 (en) 2014-09-10
KR20140098768A (ko) 2014-08-08
US20130114708A1 (en) 2013-05-09
US9282344B2 (en) 2016-03-08
US9838718B2 (en) 2017-12-05
JP5833250B2 (ja) 2015-12-16
CN104041045A (zh) 2014-09-10
WO2013067320A1 (en) 2013-05-10
EP2774368B1 (en) 2016-01-06
KR101589852B1 (ko) 2016-01-28
US20160191951A1 (en) 2016-06-30

Similar Documents

Publication Publication Date Title
JP5833250B2 (ja) ビデオコーディングのための二次境界フィルタリング
EP3417615B1 (en) Merging filters for multiple classes of blocks for video coding
US9008175B2 (en) Intra smoothing filter for video coding
JP6165798B2 (ja) イントラ予測を使用したビデオ符号化
EP2727353B1 (en) Video coding using adaptive motion vector resolution
JP6165840B2 (ja) クロマスライスレベルqpオフセットおよびデブロッキング
US9912944B2 (en) Simplified non-square quadtree transforms for video coding
KR101632776B1 (ko) 비디오 코딩에 대한 구문 엘리먼트들의 공동 코딩
US20110317757A1 (en) Intra prediction mode signaling for finer spatial prediction directions
IL230254A (en) Review video coding coefficients
JP2013543713A (ja) ビデオ符号化のための適応動きベクトル解像度信号伝達
JP2013543317A (ja) ジョイントコンテキストモデルを使用した係数のエントロピー符号化
EP2772054A1 (en) Non-square transforms in intra-prediction video coding
JP2015504294A (ja) ビデオ・コーディングのための色データのデブロッキング
KR20140016983A (ko) 비디오 코딩을 위한 런-모드 기반 계수 코딩

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150525

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150602

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150827

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150929

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151028

R150 Certificate of patent or registration of utility model

Ref document number: 5833250

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees