JP6858277B2 - 方向性イントラ予測コーディング - Google Patents

方向性イントラ予測コーディング Download PDF

Info

Publication number
JP6858277B2
JP6858277B2 JP2019561283A JP2019561283A JP6858277B2 JP 6858277 B2 JP6858277 B2 JP 6858277B2 JP 2019561283 A JP2019561283 A JP 2019561283A JP 2019561283 A JP2019561283 A JP 2019561283A JP 6858277 B2 JP6858277 B2 JP 6858277B2
Authority
JP
Japan
Prior art keywords
filter
current block
pixel
block
pixels
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.)
Active
Application number
JP2019561283A
Other languages
English (en)
Other versions
JP2020520163A (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.)
Google LLC
Original Assignee
Google LLC
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
Priority claimed from US15/590,274 external-priority patent/US10225578B2/en
Priority claimed from US15/790,516 external-priority patent/US10992939B2/en
Application filed by Google LLC filed Critical Google LLC
Publication of JP2020520163A publication Critical patent/JP2020520163A/ja
Application granted granted Critical
Publication of JP6858277B2 publication Critical patent/JP6858277B2/ja
Active 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/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
    • 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • 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

Landscapes

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

Description

デジタルビデオストリームは、一連のフレームまたは静止画像を使用してビデオを表現し得る。デジタルビデオは、例えば、ビデオ会議、高解像度ビデオエンターテイメント、ビデオ広告、またはユーザにより生成されたビデオの共有を含む、種々のアプリケーションに使用され得る。デジタルビデオストリームは、大量のデータを含み、ビデオデータの処理、送信、または保存のために、コンピューティングデバイスの大量の計算または通信リソースを消費する可能性がある。圧縮および他の符号化技術を含む種々のアプローチが、ビデオストリームにおいてデータ量を削減するために提案されている。
空間的類似性に基づく符号化は、フレームまたは画像を、同じフレームまたは画像内の他のブロックに基づいて予測されるブロックに分割することにより実行され得る。ブロックおよび予測ブロックの間の差分(すなわち、残留誤差)は、ビットストリームにおいて圧縮および符号化される。復号化器は、この差分および参照フレームを使用して、フレームまたは画像を再構築する。
特に、必要とされる計算リソースおよび必要な帯域幅とストレージ要件とに関して、このような符号化プロセスの効率を改善する必要がある。従って、本明細書では、方向性イントラ予測を使用してブロックを符号化および復号化するための態様、特徴、要素、および実装形態が開示される。
開示される実装形態の一態様は、イントラ予測モードを使用して現在のブロックをコーディングする方法であり、イントラ予測モードは、予測角度を含む。方法は、予測角度を使用して現在のブロックの周辺の参照画素に適用するフィルタを決定し、フィルタを使用して参照画素をフィルタリングして修正された参照画素を生成し、イントラ予測モードおよび修正された参照画素を使用して、現在のブロックに対する予測ブロックを生成することを含む。フィルタの決定には、現在のブロックのサイズも使用し得る。従って、符号化効率を向上させることができる。予測角度は、任意の特定の軸に関連し得る。
フィルタを決定することは、予測角度と現在のブロックの左のエッジに平行な垂直線との間の差を生成することを含み得る。
フィルタを決定することは、差および現在のブロックのサイズをテーブルのインデックスと比較することを含むことができ、テーブルの各エントリは、フィルタカーネルの識別子を含み、フィルタを決定することは、差に応答する第1の識別子のフィルタカーネルおよび第1の識別子と対をなすインデックスに対応するサイズからフィルタを決定することを含むことができる。
識別子は、異なる重みを有する複数のローパスフィルタのうちの1つの識別子、フィルタリングをバイパスする識別子、またはアップサンプリングフィルタの識別子のうちの少なくとも1つを含み得る。
任意選択で、アップサンプリングフィルタは、最小予測ブロックサイズを有するブロックに対してのみ利用可能である。
フィルタを決定することは、現在のブロックのサイズを使用してフィルタを決定することを含むことができ、現在のブロックのサイズは、現在のブロックのエッジを形成する画素のカーディナリティを含む。
フィルタを決定することは、現在のブロックのサイズを使用してフィルタを決定することを含むことができ、現在のブロックのサイズは、現在のブロックの高さおよび幅の合計を含む。
任意選択で、フィルタはnタップフィルタであり、nは奇数の整数であり、参照画素をフィルタリングすることは、以前にコーディングされたブロックから少なくとも(n−1)/2個の隣接する参照画素を有しない参照画素のうちの任意のものを除外しつつ、現在のブロックに隣接する行または列のうちの少なくとも1つにおいて参照画素をフィルタリングすることを含む。
参照画素をフィルタリングすることは、イントラ予測モードが左上画素位置を使用する場合にのみ、参照画素の左上画素をフィルタリングすることを含み得る。
任意選択で、方法は、復号化器により、符号化されたビットストリームから、参照画素にフィルタを適用するか否かのインジケータを復号化することをさらに含む。
別の態様は、イントラ予測モードを使用して現在のブロックを符号化または復号化するための、メモリおよびプロセッサを含む装置である。イントラ予測モードは、予測角度を含む。プロセッサは、メモリに格納された命令を実行し、予測角度を使用して現在のブロックの周辺の参照画素に適用するフィルタを決定し、フィルタを使用して参照画素をフィルタリングして修正された参照画素を生成し、イントラ予測モードおよび修正された参照画素を使用して、現在のブロックに対する予測ブロックを生成するように構成されている。現在のブロックのサイズを使用してフィルタを決定することもできる。
任意選択で、参照画素は、現在のブロックの上の行の第1の画素、現在のブロックの左の列の第2の画素のうちの少なくとも1つを含み、フィルタを決定する命令は、予測角度および列に平行な垂直線を使用して、第1の画素に対する第1のフィルタおよび第2の画素に対する第2のフィルタを決定する命令をさらに含む。
フィルタを決定する命令は、フィルタ強度を決定する命令を含むことができ、フィルタ強度はフィルタを識別する。
フィルタを決定する命令は、フィルタ強度を決定する命令を含むことができ、フィルタ強度はフィルタを識別する。
任意選択で、装置は、複数の利用可能なフィルタカーネルのうちの1つのインジケータを含むそれぞれのエントリのインデックスとしてブロックの複数の予測角度および複数のサイズを使用するメモリに格納された第1のテーブルと、複数の利用可能なフィルタカーネルのうちの1つのインジケータを含むそれぞれのエントリのインデックスとして、複数の予測角度および複数のサイズを使用するメモリに格納された第2のテーブルとをさらに備える。フィルタを決定する命令は、第1のテーブルを使用して、全ての利用可能なイントラ予測モードの定義された適切なサブセット内のインター予測モードを有する現在のブロックに隣接する少なくとも1つのブロックに応答するフィルタを決定する命令と、それ以外の場合は第2のテーブルを使用してフィルタを決定する命令とを含み得る。
任意選択で、定義された適切なサブセットは、AV1コーデックによって定義されたSMOOTH_PRED、SMOOTH_H_PRED、およびSMOOTH_V_PREDを含む。
第2のテーブルのエントリは、複数の予測角度の第1の予測角度と対をなすことができ、複数のサイズの第1のサイズは、第1の予測角度および第1のサイズと対をなす第1のテーブルのエントリよりも低いレベルのフィルタリングを示す。
別の態様は、イントラ予測モードを使用して現在のタイルの現在のブロックを符号化または復号化するための、メモリおよびプロセッサを含む装置である。プロセッサは、メモリに格納されている命令を実行して、予測角度と現在のブロックの第1エッジに平行な第1の線との間の第1の角度デルタを使用して第1のフィルタを決定し、予測角度と、第1のエッジに直交する現在のブロックの第2のエッジに平行な第2の線との間の第2の角度デルタを使用して第2のフィルタを決定し、第1のフィルタを使用して、現在のブロックに隣接する行または列のうちの一方に位置する現在のブロックの周辺の参照画素のうちの第1の画素をフィルタリングして、第1の修正された参照画素を生成し、第2のフィルタを使用して、現在のブロックに隣接する行または列のうちの他方に位置する現在のブロックの周辺の参照画素のうちの第2の画素をフィルタリングして、第2の修正された参照画素を生成し、イントラ予測モード、第1の修正された参照画素、および第2の修正された参照画素を使用して、現在のブロックに対する予測ブロックを生成するように構成されている。現在のブロックのサイズを使用して、第1のフィルタ、および/または第2のフィルタを決定することもできる。
第1の角度デルタは、予測角度と90度との差の絶対値であり、第2の角度デルタは、予測角度と180度との差の絶対値であってよく、命令は、第1の修正された参照画素および第2の修正された参照画素を生成する前に、行および列の交点においてコーナー画素をフィルタリングする命令をさらに含み得る。
任意選択で、予測角度は、複数の利用可能な予測角度のうちの1つであり、予測角度は、定義された値の範囲の整数を乗じてベース予測角度を加算した定数に等しく、命令は、符号化されたビットストリームから、ベース予測角度のインジケータおよび整数を復号化する命令をさらに含み、整数は、不均一で適応可能な確率モデルを使用して符号化されている。
上述の任意の特徴は、本発明の任意の特定の態様または実施形態で使用され得ることに留意されたい。
本開示のこれらおよび他の態様は、実施形態の以下の詳細な説明、添付の特許請求の範囲および添付の図面において開示される。
本明細書の記載は、添付の図面を参照し、いくつかの図面に亘って同様の参照番号が同様の構成を参照している。
ビデオ符号化および復号化システムの概略図である。 送信局または受信局を実装し得るコンピューティングデバイスの一例のブロック図である。 符号化され、続いて復号化されるビデオストリームの図である。 本開示の実装形態による符号化器のブロック図である。 本開示の実装形態による復号化器のブロック図である。 本開示の実装形態による、イントラ予測モードを使用して現在のブロックをコーディングするためのプロセスのフローチャート図である。 本開示の実装形態による現在のブロックのイントラ予測の図である。 本開示の実装形態による周辺画素のフィルタリングの例のダイアグラムである。 本開示の実装形態による方向性イントラ予測モードの図である。 本開示の実装形態による方向性イントラ予測モードの図である。 本開示の実装形態による方向性イントラ予測モードの図である。 本開示の実装形態による90度の予測角度を有するイントラ予測モードの図である。 本開示の実装形態による135度の予測角度を有するイントラ予測モードの図である。
前述のように、ビデオストリームのコーディングに関連する圧縮方式は、画像をブロックに分割すること、1つまたは複数の技術を使用して出力ビットストリームに含まれる情報を制限するデジタルビデオ出力ビットストリーム(すなわち、符号化ビットストリーム)を生成することを含み得る。受信されたビットストリームは、復号化されて、制限された情報からブロックおよびソース画像を再生成することができる。ビデオストリーム、またはフレームやブロックなどのその一部を符号化することは、ビデオストリームの空間的類似性を使用して、コーディング効率を向上させることを含み得る。例えば、ビデオストリームの現在のブロックは、以前にコーディングされた画素値、または以前にコーディングされた画素値の組み合わせと、現在のブロック内の画素値との間の差(残差)を識別することに基づいて符号化され得る。
空間的類似性を使用した符号化は、イントラ予測として知られている。イントラ予測は、現在のブロックの周辺の画素を使用して、すなわち、現在のブロックと同じフレームにあるが、現在のブロックの境界外にある画素を使用して、ビデオストリームのフレームの現在のブロックの画素値を予測しようと試みる。イントラ予測は、本明細書で予測角度と呼ばれる予測の方向に沿って実行されることが可能であり、各方向は、イントラ予測モードに対応し得る。イントラ予測モードは、予測されている現在のブロックの周辺の画素を使用できる。現在のブロックの周辺の画素は、現在のブロックの外側の画素である。現在のブロックの周辺の画素は、現在のブロックの境界に接触する画素であり得る。イントラ予測モードは、符号化器により、復号化器へ通知され得る。
多くの異なるイントラ予測モードがサポートされ得る。いくつかのイントラ予測モードは、周辺画素のうちの少なくとも1つを使用して生成された予測ブロック内のすべての画素に対して単一の値を使用する。他は、方向性イントラ予測モードと呼ばれ、各々は、対応する予測角度を有する。イントラ予測モードは、例えば、水平イントラ予測モード、垂直イントラ予測モード、および他のさまざまな方向性イントラ予測モードを含み得る。そのため、予測角度は0〜360度の間の任意の角度であり得る。いくつかの実装形態では、予測角度は、0〜270度の間の任意の角度であり得る。利用可能な予測角度は、すべての可能な予測角度のサブセットであってもよい。例えば、コーデックは、0〜360度の間の50〜60の予測角度に対応する利用可能な予測モードを有し得る。
さまざまな方向性イントラ予測モードを使用して、以前にコーディングされたブロックからの画素値を角度線(水平、垂直、および水平および/または垂直からのオフセット方向を含む)に沿って伝播し、ブロックを予測できる。すなわち、現在のブロックは、周辺画素からの参照画素を投影して予測ブロックを形成することにより、予測され得る。周辺画素は、水平および垂直線からオフセットされ得る特定の角度または方向で、現在のブロックの左および上方(すなわち、上部)境界にある画素を含み得る。参照画素は、例えば、周辺画素の実際の画素値、または周辺画素のいくつかの(加重平均のような)平均画素値であってよく、角度方向に伝播して予測ブロックを形成する。周辺画素は、他の方法で組み合わせられて、参照画素を生成できる。
図9A〜図9Cは、本開示の実装形態による方向性イントラ予測モードの図である。方向性イントラ予測モードは、本明細書では方向性予測モードとも呼ばれ得る。方向性予測モード902は、0〜90度の間の予測角度を有するイントラ予測モードを示している。そのようなイントラ予測モードは、ゾーン1に属すると言及され得る。方向性予測モード904は、90〜180度の間の予測角度を有するイントラ予測モードを示している。そのようなイントラ予測モードは、ゾーン2に属すると言及され得る。方向性予測モード906は、90〜180度の間の予測角度を有するイントラ予測モードを示している。そのようなイントラ予測モードは、ゾーン3に属すると言及され得る。例示された方向性予測モード902〜906の各々は、現在のブロック912に適合する寸法を有する予測ブロックを生成するために使用され得る。
図9A〜図9Cは、現在のブロックの上の行の第1の画素908、および現在のブロックの左側の列の第2の画素910をも示している。左上の画素914も示されている。第1の画素908、第2の画素910、および左上の画素914を使用して、予測ブロックを生成することができる。いくつかの実装形態では、ゾーン1の方向性予測(すなわち、0〜90の間の予測角度を有するイントラ予測モード)は、予測ブロックを生成するために、第1の画素908を使用するが、第2の画素910を使用しなくてもよく、ゾーン2の方向性予測(すなわち、90〜180の間の予測角度を有するイントラ予測モード)は、第1の画素908、第2の画素910、および左上の画素914を使用して予測ブロックを生成し、ゾーン3の方向性予測(すなわち、180〜270の間の予測角度を有するイントラ予測モード)は、予測ブロックを生成するために、第2の画素910を使用するが、第1の画素908を使用しなくてもよい。
図10Aは、本開示の実装形態による90度の予測角度を有するイントラ予測モードの図である。図10Aは、予測されるべき4×4ブロック(現在のブロックとも呼ばれる)に対する予測ブロック1000の生成を示し、図9のゾーン2(すなわち、方向性予測モード904)における方向性予測に対応する。図10Aのイントラ予測モードは、列の各画素が矢印の方向に隣接する周辺画素A〜Dの値に等しい値セットを有するように、周辺画素A〜Dを予測ブロック1000の列の下方に伝播する。
図10Bは、本開示の実装形態による135度の予測角度を有するイントラ予測モードの図である。図10Bは、4×4の現在のブロックに対する予測ブロック1002の生成を示し、図9のゾーン2における方向性予測に対応する。図10Bのイントラ予測モードは、周辺画素値を、135度の線(すなわち、線1006)に沿って右および下に伝播して、予測ブロック1002を形成する。周辺画素値は、例えば、フレームの4×4の現在のブロックに隣接するブロックからの周辺画素1008のいくつか(すなわち、画素AからR)を含み、現在のブロックに対する予測ブロック1002を形成することができる。図10Bの135度イントラ予測モードは、周辺画素1008の画素値を使用して予測ブロック1002を生成することを示しているが、例えば、周辺画素のいくつか(例えば、2、3、またはそれ以上)の線形結合(例えば、加重平均)を使用して、ブロックを通って延びる線に沿って予測ブロック1002の画素値を予測することができる。例えば、画素位置1004に対し線1006のうちの1つに沿って伝播される画素値は、画素値K、L、およびMの(例えば、重み付けされた)平均から形成され得る。
いくつかのビデオ信号(例えば、高解像度ビデオまたは4Kビデオの信号など)の画素は、比較的滑らかな勾配を有する。そのため、これらのビデオ信号は、多くの高周波成分を含まない場合がある。むしろ、低周波成分が、主にそのようなビデオ信号を構成する。鋭い予測角度を有するイントラ予測モードでは、予測信号の周波数がより高くなり、ひいては高周波歪みが発生する可能性がある。
本開示の実装形態は、イントラ予測エッジフィルタリングを使用して、ビデオ圧縮を改善し、および/または歪みを低減することができる。上記のように、イントラ予測モードは、現在のブロックの周辺の画素を使用する。イントラ予測エッジフィルタリングは、現在のブロックの周辺の画素の少なくともいくつかに(例えば、ローパス)フィルタを適用し、結果として修正された画素を生成し、修正された画素を使用して予測ブロックを生成することにより、歪みを除去することが可能である。
本明細書で開示されるイントラ予測エッジフィルタリングが実装され得る環境を最初に説明した後に、詳細が説明される。
図1は、ビデオ符号化及び復号化システム100の概略図である。送信局102は、例えば、図2に記載されているようなハードウェアの内部構成を有するコンピュータとすることができる。しかしながら、送信局102の他の適切な実装形態も可能である。例えば、送信局102の処理を複数の装置に分散させることができる。
ネットワーク104は、ビデオストリームの符号化および復号化のために、送信局102および受信局106を接続することができる。具体的には、ビデオストリームを送信局102で符号化することができ、符号化されたビデオストリームを受信局106で復号化することができる。ネットワーク104は、例えばインターネットであってもよい。ネットワーク104は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、仮想プライベートネットワーク(VPN)、携帯電話ネットワーク、または送信局102から、この例では、受信局106にビデオストリームを転送する任意の他の手段とすることができる。
受信局106は、一例では、図2に記載されたようなハードウェアの内部構成を有するコンピュータとすることができる。しかしながら、受信局106の他の適切な実装形態も可能である。例えば、受信局106の処理を複数の装置に分散させることができる。
ビデオ符号化および復号化システム100の他の実装形態も可能である。例えば、実装形態はネットワーク104を省略することができる。別の実装形態では、ビデオストリームを符号化し、後で受信局106またはメモリを有する任意の他の装置に送信するために格納することができる。一実装形態では、受信局106は、符号化されたビデオストリームを(例えば、ネットワーク104、コンピュータバス、および/または何らかの通信経路を介して)受信し、後の復号化のためにビデオストリームを格納する。一実装形態では、ネットワーク104を介して符号化されたビデオを伝送するためにリアルタイム転送プロトコル(RTP:real−timetransport protocol)が使用される。別の実装形態では、例えば、ハイパーテキスト転送プロトコル(HTTP:HypertextTransfer Protocol)ベースのビデオストリーミングプロトコルなどのRTP以外の転送プロトコルが使用されてもよい。
ビデオ会議システムで使用される場合、例えば、送信局102および/または受信局106は、以下に説明するように、ビデオストリームを符号化および復号化する能力を含むことができる。例えば、受信局106は、ビデオ会議サーバ(例えば、送信局102)から符号化されたビデオビットストリームを受信して復号化および視聴し、さらにそのビデオビットストリームを他の参加者による復号化および視聴のために符号化してビデオ会議サーバに送信するビデオ会議参加者であってよい。
図2は、送信局または受信局を実装することができるコンピューティングデバイス200の一例のブロック図である。例えば、コンピューティングデバイス200は、図1の送信局102および受信局106の一方または両方を実装することができる。コンピューティングデバイス200は、複数のコンピューティングデバイスを含むコンピューティングシステムの形態、または例えば、携帯電話、タブレットコンピュータ、ラップトップコンピュータ、ノートブックコンピュータ、デスクトップコンピュータなどの単一のコンピューティングデバイスの形態とすることができる。
コンピューティングデバイス200内のCPU202は、中央処理装置とすることができる。代替的に、CPU202は、現在存在するか、または今後開発される情報を操作または処理することができる任意の他のタイプのデバイスまたは複数のデバイスであってもよい。開示された実装形態は、図示のような単一のプロセッサ、例えばCPU202で実施することができるが、複数のプロセッサを使用して速度と効率の利点を達成することができる。
コンピューティングデバイス200内のメモリ204は、実装形態では読み出し専用メモリ(ROM)デバイスまたはランダムアクセスメモリ(RAM)デバイスであってもよい。任意の他の適切なタイプの記憶装置をメモリ204として使用することができる。メモリ204は、CPU202がバス212を使用してアクセスするコードおよびデータ206を含むことができる。メモリ204は、オペレーティングシステム208およびアプリケーションプログラム210をさらに含むことができ、アプリケーションプログラム210は、本明細書に記載された方法をCPU202が実行するのを可能にする少なくとも1つのプログラムを含む。例えば、アプリケーションプログラム210は、アプリケーション1〜Nを含むことができ、アプリケーション1〜Nは、本明細書で説明する方法を実行するビデオコーディングアプリケーションをさらに含む。コンピューティングデバイス200はまた、例えば、携帯型であるコンピューティングデバイス200と共に使用されるメモリカードとすることができる二次ストレージ214を含むことができる。ビデオ通信セッションは、かなりの量の情報を含み得るので、それらは、二次ストレージ214に全体的または部分的に記憶され、処理のために必要に応じてメモリ204にロードされる。
コンピューティングデバイス200は、ディスプレイ218などの1つまたは複数の出力デバイスを含むこともできる。ディスプレイ218は、一例では、ディスプレイを、タッチ入力を感知するように動作可能なタッチセンシティブエレメントと組み合わせたタッチセンシティブディスプレイであってもよい。ディスプレイ218は、バス212を介してCPU202に接続することができる。ユーザがコンピューティングデバイス200をプログラムするかまたは他の方法で使用することを可能にする他の出力デバイスが、ディスプレイ218に加えて、またはディスプレイ218に代えて設けられてもよい。出力デバイスがディスプレイであるか、またはディスプレイを含む場合、ディスプレイは、液晶ディスプレイ(LCD)、陰極線管(CRT)ディスプレイ、または有機LED(OLED)ディスプレイなどの発光ダイオード(LED)ディスプレイを含む様々な方法で実施することができる。
コンピューティングデバイス200は、コンピューティングデバイス200を操作するユーザの画像等の画像を検出することができる、例えば、カメラなどの撮像デバイス220、または現在または将来開発される任意の他の撮像デバイス220を含むか、または撮像デバイス220と通信することができる。撮像デバイス220は、コンピューティングデバイス200を操作するユーザの方に向けられるように配置することができる。一例では、撮像デバイス220の位置および光軸は、視野が、ディスプレイ218に直接隣接する領域であって、その領域からディスプレイ218が視認可能な領域を含むように構成することができる。
コンピューティングデバイス200は、コンピューティングデバイス200の近くの音を感知することができる、例えば、マイクロホンなどの音声感知デバイス222、または現在または今後開発される任意の他の音声感知デバイスを含むか、またはそれと通信することができる。音声感知デバイス222は、コンピューティングデバイス200を操作するユーザの方に向けられ、かつユーザがコンピューティングデバイス200を操作している間にユーザによって発せられた、例えば音声、他の発話を受信するように構成することができる。
図2は、コンピューティングデバイス200のCPU202およびメモリ204が単一のユニットに統合されていることを示しているが、他の構成を利用することもできる。CPU202の動作は、直接的にまたはローカルエリアネットワークまたは他のネットワークを介して接続することができる複数のマシン(各マシンは1つまたは複数のプロセッサを有する)にわたって分散させることができる。メモリ204は、ネットワークベースのメモリのように複数のマシンに分散するか、またはコンピューティングデバイス200の動作を実行する複数のマシンにおけるメモリとすることができる。本明細書では単一のバスとして示されているが、コンピューティングデバイス200のバス212は、複数のバスから構成することができる。さらに、二次ストレージ214は、コンピューティングデバイス200の他の構成要素に直接接続されるか、またはネットワークを介してアクセスされ、かつメモリカードなどの単一の統合されたユニットまたは複数のメモリカードなどの複数のユニットを含むことができる。従って、コンピューティングデバイス200は、多種多様な構成で実装され得る。
図3は、符号化され、続いて復号化されるビデオストリーム300の一例の図である。ビデオストリーム300は、ビデオシーケンス302を含む。次のレベルでは、ビデオシーケンス302は、複数の隣接フレーム304を含む。3つのフレームが隣接フレーム304として示されているが、ビデオシーケンス302は任意の数の隣接フレーム304を含むことができる。隣接フレーム304はさらに、個々のフレーム、例えばフレーム306に細分化することができる。次のレベルでは、フレーム306は、一連のセグメント308またはプレーンに分割することができる。セグメント308は、例えば、並列処理を可能にするフレームのサブセットとすることができる。セグメント308は、ビデオデータを別々の色に分離することができるフレームのサブセットとすることができる。例えば、カラービデオデータのフレーム306は、輝度プレーン(luminanceplane)および2つの色度プレーン(chrominance plane)を含むことができる。セグメント308は、異なる解像度でサンプリングすることができる。
フレーム306がセグメント308に分割されているか否かにかかわらず、フレーム306は、さらに、フレーム306内の例えば16×16画素に対応するデータを含むことができるブロック310に細分化されてもよい。ブロック310は、1つまたは複数のセグメント308の画素データからのデータを含むように構成され得る。ブロック310は、4×4画素、8×8画素、16×8画素、8×16画素、16×16画素、またはそれより大きいような任意の他の適切なサイズであってもよい。
図4は、本開示の実装形態による符号化器400のブロック図である。符号化器400は、例えばメモリ204などのメモリに格納されたコンピュータソフトウェアプログラムを提供するなどして、上述のように送信局102内で実装され得る。コンピュータソフトウェアプログラムは、CPU202等のプロセッサよる実行時に、送信局102に本明細書で説明される方法でビデオデータを符号化させる機械命令を含むことができる。符号化器400は、例えば、送信局102に含まれる専用のハードウェアとして実装されることも可能である。符号化器400は、ビデオストリーム300を入力として使用してフォワードパス(実線の接続線で示す)において様々な機能を実行して、符号化または圧縮されたビットストリーム420を生成するイントラ予測/インター予測ステージ402、変換ステージ404、量子化ステージ406、およびエントロピー符号化ステージ408を有する。符号化器400は、将来のブロックの符号化のためのフレームを再構成する再構成パス(点線の接続線で示す)をも含む。図4において、符号化器400は、再構成パスにおいて様々な機能を実行する以下のステージ、すなわち、逆量子化ステージ410、逆変換ステージ412、再構成ステージ414、およびループフィルタリングステージ416を有する。符号化器400の他の構成的な変形例を使用してビデオストリーム300を符号化することができる。
ビデオストリーム300が符号化のために提示されると、フレーム306はブロックの単位で処理され得る。イントラ予測/インター予測ステージ402において、ブロックは、イントラフレーム予測(イントラ予測とも称される)またはインターフレーム予測(インター予測とも称される)、または両方の組み合わせを用いて符号化され得る。いずれの場合でも、予測ブロックが形成され得る。イントラ予測の場合、予測ブロックの全てまたは一部が、以前に符号化され、かつ再構成された現在のフレーム内のサンプルから形成され得る。インター予測の場合、予測ブロックの全てまたは一部が、動きベクトルを用いて決定された1つまたは複数の以前に構築された参照フレーム内のサンプルから形成され得る。
次に、引き続き図4を参照して、イントラ予測/インター予測ステージ402において予測ブロックが現在のブロックから減算され、残差ブロック(残差とも呼ばれる)が生成される。変換ステージ404は、ブロックベースの変換を使用して、残差を、例えば周波数領域の変換係数に変換する。このようなブロックベースの変換には、例えば、離散コサイン変換(DCT:DiscreteCosine Transform)および非対称離散サイン変換(ADST:Asymmetric Discrete Sine Transform)が含まれる。他のブロックベースの変換も可能である。さらに、異なる変換の組み合わせを単一の残差に適用することができる。変換の適用の一例では、DCTは、残差ブロックを周波数領域に変換し、ここで、変換係数値は、空間周波数に基づいている。行列の左上の最低周波数(DC)係数、および行列の右下の最高周波数係数。予測ブロックのサイズ、従って結果の残差ブロックは、変換ブロックのサイズと異なる可能性があることは注目に値する。例えば、予測ブロックは、別々の変換が適用される、より小さなブロックに分割され得る。
量子化ステージ406は、変換係数を、量子化値または量子化レベルを使用して量子化変換係数と呼ばれる離散量子値に変換する。例えば、変換係数は、量子化値で除算され、切り捨てられてもよい。次に、量子化された変換係数は、エントロピー符号化ステージ408によってエントロピー符号化される。エントロピーコーディングは、トークンツリーおよびバイナリツリーを含む任意の数の技術を使用して実行されてもよい。例えば、使用される予測のタイプ、変換タイプ、動きベクトルおよび量子化値を含み得る、ブロックを復号化するために使用される他の情報とともに、エントロピー符号化された係数は、圧縮されたビットストリーム420に出力される。ブロックを復号するための情報は、圧縮されたビットストリーム420内のブロック、フレーム、スライス、および/またはセクションヘッダにエントロピーコーディングされ得る。圧縮されたビットストリーム420は、符号化されたビデオストリームまたは符号化されたビデオビットストリームとも称され、これらの用語は本明細書では互換的に使用される。
符号化器400および復号化器500(以下に説明する)の両方が、圧縮されたビットストリーム420を復号化するために同じ参照フレームおよびブロックを使用することを確実にするために、図4における再構成パス(点線の接続線で示す)が使用される。再構成パスは、逆量子化ステージ410で量子化された変換係数を逆量子化すること、および逆変換ステージ412で逆量子化された変換係数を逆変換して微分残差ブロック(微分残差とも称される)を生成することを含む以下により詳細に説明される復号化プロセス中に行われる機能と同様の機能を実行する。再構成ステージ414において、イントラ予測/インター予測ステージ402で予測された予測ブロックを微分残差に加えて、再構成されたブロックが作成される。ブロック化アーチファクトなどの歪みを低減するために、ループフィルタリングステージ416が再構成されたブロックに適用される。
符号化器400の他の変形例を使用して圧縮されたビットストリーム420を符号化することができる。例えば、非変換ベースの符号化器400は、あるブロックまたはフレームに関して変換ステージ404を使用せずに残差信号を直接量子化することができる。別の実装形態では、符号化器400は、量子化ステージ406と逆量子化ステージ410とを組み合わせて単一のステージとすることができる。
図5は、本開示の実装による復号化器500のブロック図である。復号化器500は、例えば、メモリ204に格納されたコンピュータソフトウェアプログラムを提供することによって、受信局106で実装され得る。コンピュータソフトウェアプログラムは、CPU202などのプロセッサによる実行時に、受信局106に、本明細書において説明される方法でビデオデータを復号化させる機械命令を含む。復号化器500は、例えば、送信局102または受信局106に含まれるハードウェアで実装されることも可能である。復号化器500は、上述の符号化器400の再構成パスと同様に、一例では、様々な機能を実行して圧縮されたビットストリーム420から出力ビデオストリーム516を生成するための以下のステージ、すなわち、エントロピー復号化ステージ502、逆量子化ステージ504、逆変換ステージ506、イントラ予測/インター予測ステージ508、再構成ステージ510、ループフィルタリングステージ512、およびデブロッキングフィルタリングステージ514を含む。圧縮されたビットストリーム420を復号化するために復号化器500の他の構造的な変形例を使用することができる。
圧縮されたビットストリーム420が復号化のために提示されると、圧縮されたビットストリーム420内のデータ要素が、エントロピー復号化ステージ502によって復号化されて、一組の量子化変換係数が生成される。逆量子化ステージ504は、(例えば、量子化された変換係数に量子化値を乗算することにより)量子化された変換係数を逆量子化し、逆変換ステージ506は、選択された変換タイプを使用して逆量子化された変換係数を逆変換して、符号化器400における逆変換ステージ412によって生成されたものと同一である微分残差を生成する。圧縮されたビットストリーム420から復号化されたヘッダ情報を使用して、復号化器500は、イントラ予測/インター予測ステージ508を用いて、例えばイントラ予測/インター予測ステージ402において、符号化器400で生成されたのと同じ予測ブロックを作成する。再構成ステージ510において、予測ブロックを微分残差に加えて再構成ブロックが作成される。ループフィルタリングステージ512は、ブロッキングアーチファクトを低減するために再構成されたブロックに適用される。再構成されたブロックに他のフィルタリングを適用することができる。この例では、ブロッキング歪を低減するためにデブロッキングフィルタリングステージ514が再構成ブロックに適用され、その結果が出力ビデオストリーム516として出力される。出力ビデオストリーム516は、復号化されたビデオストリームとも呼ばれ、用語は本明細書では互換的に使用される。
復号化器500の他の変形例を使用して、圧縮されたビットストリーム420を復号化することができる。例えば、復号化器500は、デブロッキングフィルタリングステージ514を用いずに出力ビデオストリーム516を生成することができる。復号化器500のいくつかの実装形態では、デブロッキングフィルタリングステージ514は、ループフィルタリングステージ512の前に適用される。追加的または代替的に、符号化器400は、ループフィルタリングステージ416に加えて、デブロッキングフィルタリングステージを含む。
図6は、本開示の実装形態による、イントラ予測モードを使用して現在のブロックをコーディングするためのプロセス600のフローチャート図である。これらの例では、イントラ予測モードは、対応する予測角度を有し、現在のブロックの周辺の画素を使用する(例えば、方向性イントラ予測モードが使用される)。現在のブロックの周辺の画素は、現在のブロックと同じビデオフレーム内の以前に予測された画素であり得る。
プロセス600は、例えば、送信局102または受信局106などのコンピューティングデバイスによって実行され得るソフトウェアプログラムとして実装されることが可能である。ソフトウェアプログラムは、メモリ204または二次ストレージ214などのメモリに格納され、CPU202のようなプロセッサにより実行されて、コンピューティングデバイスにプロセス600を実行させることができる機械可読命令を含み得る。プロセス600は、符号化器、復号化器、または符号化器および復号化器の両方で実装され得る。少なくともいくつかの実装形態では、プロセス600は、図4の符号化器400のイントラ/インター予測ステージ402によって全体的または部分的に実行され得る。他の実装形態では、プロセス600は、図5の復号化器500のイントラ/インター予測ステージ508によって全体的または部分的に実行され得る。
プロセス600は、専用のハードウェアまたはファームウェアを使用して実装され得る。いくつかのコンピューティングデバイスは、複数のメモリ、複数のプロセッサ、またはその両方を有し得る。プロセス600のステップまたは動作は、異なるプロセッサ、メモリ、またはその両方を使用して分散され得る。単数での「プロセッサ」または「メモリ」という用語の使用は、1つのプロセッサまたは1つのメモリを有するコンピューティングデバイスのみならず、記載されたステップのいくつかまたは全てのステップの実施において使用され得る複数のプロセッサまたは複数のメモリを有するデバイスをも包含する。
602において、プロセス600は、イントラ予測角度を使用して、現在のブロックの参照画素に適用するフィルタを決定する。本明細書でより詳細に説明するように、現在のブロックサイズも使用され得る。現在のブロックの参照画素は、予測ブロックを生成する際に使用するためのイントラ予測モードによって示されるものであり得る。参照画素は、図9A〜図10Bを参照して説明したように、現在のブロックの周辺の画素の少なくともいくつかであり得る。プロセス600は、図7および図8に関して説明したように、フィルタを決定することができる。
図7は、本開示の実装形態による現在のブロックのイントラ予測の図である。この図は、現在のブロック702を含むフレーム700の一部を示している。現在のブロック702は、8×8のブロックとして示されている。しかしながら、任意のブロックサイズが可能である。例えば、現在のブロックは、4×4、8×8、16×16、32×32のサイズ(すなわち、寸法)、または任意の他の正方形または長方形ブロックサイズを有し得る。現在のブロック702は、現在のフレームのブロックであり得る。別の例では、現在のフレームは、各々がブロックの集合を含む(図3のセグメント308のような)セグメント、タイルなどに分割することができ、現在のブロックはパーティションのブロックである。例えば、現在のフレームは、4つのタイル(例えば、左上タイル、右上タイル、左下タイル、および右下タイル)に分割され得る。各タイルはブロックを含み、その少なくともいくつかは、本開示に従って処理することができる。タイルのブロックは、異なるサイズであり得る。例えば、8×8のブロックは、隣接する16×16の左ブロックを有し得る。本明細書で使用されるタイルは、フレームまたはフレームのパーティションを指す。タイルのブロックは、タイルのスキャン順序に基づいて処理され得る。タイルは、フレームのスキャン順序に基づいて処理され得る。
この例では、現在のブロック702は、方向線730によって示されるような予測角度を有するイントラ予測モードを使用してイントラ予測される。上記のように、予測角度は、0〜360度の間の任意の角度であり得る。予測モードは、現在のブロック702の周辺の画素を使用する。周辺画素は、現在のブロック702の外側にあり、かつ現在のフレーム内にある画素である。周辺画素は、現在のブロック702に隣接する1つまたは複数の行および列を含み得る。図7の周辺画素は、行における第1の画素704、および列における第2の画素706を含む。第1の画素704は、画素708および710の間の8つの水平画素を含む(例えば、8×8の現在のブロック702の水平寸法に対応する)。第2の画素706は、画素712および714の間の8つの垂直画素を含む(例えば、8×8の現在のブロック702の垂直寸法に対応する)。周辺画素は、左上画素とも呼ばれるコーナー画素716を含むことができ、これは、第1の画素704と第2の画素706との交点にある。
第1の画素704は、現在のブロックの上方(すなわち、上部)に示され、第2の画素706は、現在のブロック702の左側に示されている。しかしながら、必ずしもそうである必要はない。水平画素および周辺の垂直画素は、現在のタイルのスキャン順序に基づいて選択され得る。例えば、ラスタースキャンの順序では、タイルのブロックは、左上のブロックから右下のブロックまで行ごとに処理され得る。例えば、スキャン順序が右下から左上である場合、第1の画素(例えば、水平周辺画素)は現在のブロックの下にあり、第2の画素(例えば、垂直周辺画素)は現在のブロックの右側にあり得る。ジグザグまたは他のスキャン順序も可能である。図7では、第1の画素704は水平画素の1つの行を含むように描かれ、第2の画素706は垂直画素の1つの列を含むように描かれている。これは、必ずしもそうである必要はない。第1の画素704は、1つまたは複数の画素の行を含むことができる。第2の画素706は、1つまたは複数の画素の列を含むことができる。コーナー画素716は、単一の左上の画素であるが、これらの代替実装形態では、1つより多い画素を含むことができ、および/または現在のブロック702に対して異なる位置に配置され得る。
イントラ予測モード(すなわち、予測角度)に応じて、追加の周辺画素が使用されて、イントラ予測を実行することが可能である。水平および/または垂直方向の追加の画素の数は、現在のブロック702の水平および/または垂直の寸法とそれぞれ同じであり得るが、同じである必要はない。
追加の画素は、利用可能な場合、以前に復号化または予測された画素であり得る。例えば、第2の画素706は、追加の画素719を含むものとして描かれている。追加の画素719は、現在のブロック702と同じタイル内の隣接する以前に予測または復号化されたブロックの画素であり得る。
追加の画素は、拡張画素(extendedpixels)であり得る。拡張画素は、近隣の画素(すなわち、隣接する、以前に予測または復号化されたブロックからの画素)が使用できない場合に使用され得る。例えば、現在のブロックが現在のタイルの境界(すなわち、垂直エッジおよび/または水平エッジ)の隣にある(すなわち、隣接している)場合、近隣の画素は使用できない場合がある。別の例として、必要な画素を含む近隣のブロックが現在のブロックの前に復号化または予測されていない場合、近隣の画素は利用できない場合がある。
拡張画素は、他の隣接する周辺画素から得ることが可能である。ここで、第1の画素704は、拡張画素718(影付き画素として示されている)を含むものとして示されている。一例では、拡張画素718は、現在のブロック702の水平寸法と一致する(例えば、スキャン順序の方向において)最後の周辺画素値の値を拡張することにより得ることができる。例えば、拡張画素718の各々の値は、最後の画素710の値に設定され得る。左から右および上から下へのスキャン順序では、最後の画素710は、左から右へのスキャン順序において最も右の画素であるため、第1の画素704の最後の非拡張画素であり、最後の画素722は、上から下へのスキャン順序において最も下の画素であるため、第2の画素706の最後の非拡張画素である。図7は、拡張水平画素(すなわち、拡張画素718)のみを示しているが、拡張垂直画素も可能である。例えば、追加の画素719が利用可能でなかった場合、第2の画素706は、もしイントラ予測モードにより必要とされるならば、現在のブロック702の垂直寸法と一致する画素714の値をすべてが使用する拡張垂直画素を含み得る。
ブロックのいくつかの配置および場所においては、エッジに沿った予測に使用できる画素が存在しない。例えば、ブロックがブロックの上部に隣接する画素を有しない場合や、ブロックの左に画素を有しない場合がある。図9A〜図10Bから決定され得るように、ゾーン1イントラ予測モードは、上部の参照画素のみを使用し、ゾーン3イントラ予測モードは左の参照画素のみを使用し、ゾーン2イントラ予測モードは上部および左の参照画素の両方を使用する。使用可能な画素のみに依存するモードだけにイントラ予測モードを制限することは可能であるが、圧縮効率が低下する可能性がある。かわりに、上方/上部または左のエッジが利用できない場合、画素値が他のエッジからコピーされ得る。画素値は、利用できないエッジに最も近い(例えば、空間的に最も近い)画素からのものであり得る。一例として図7を用いると、画素712の画素値は、現在のブロック702の上方の行が利用できない場合には、第1の画素704および拡張画素718に対応する水平画素に対して、および任意選択で上方コーナー画素716に対して使用され得る。同様に、画素708の画素値は、現在のブロック702の左側の列が利用できない場合には、第2の画素706および追加の画素719に対応する垂直画素に対して、および任意選択で上方コーナー画素716に対して使用され得る。このイノベーションにより、他の利点の中でも特に、タイル境界での予測の不連続性が回避される。
プロセス600は、予測角度に基づいて、現在のブロック702の周辺の画素に適用するフィルタを決定する。一例において、現在のブロックの上のエッジ(すなわち、水平エッジ)に垂直な線と予測角度との間の差は、フィルタを決定するために使用される。別の言い方をすれば、フィルタは、現在のブロック702の左のエッジに平行な垂直線および予測角度に基づいて決定され得る。フィルタを決定することは、第1の画素704のための(すなわち、それに適用される)第1のフィルタおよび第2の画素706のための第2のフィルタを決定することを含み得る。
例えば、第1の画素704(すなわち、現在のブロックの上方の周辺画素)に適用される第1のフィルタは、角度デルタ732に基づいて決定され得る。角度デルタ732は、現在のブロック702の左のエッジに平行な垂直線である線728と、方向線730によって示される予測角との間の角度である。第2のフィルタは、角度デルタ734に基づいて決定され得る。角度デルタ734は、現在のブロック702の上のエッジに平行な水平線726と、方向線730によって示される予測角度との間の角度である。
一例では、角度デルタ732および角度デルタ734は、次の式を使用して予測角度に基づいて計算され得る。
角度デルタ732=ABS(予測角度−90)
角度デルタ734=ABS(予測角度−180)
すなわち、第1の画素704(例えば、水平線に沿った周辺画素)については、角度デルタ732は、予測角度と90度との間の差の絶対値であり、第2の画素706(例えば、垂直線に沿った周辺画素)については、角度デルタ734は、予測角度と180度との間の差の絶対値であってよい。
角度デルタに加えて、プロセス600は、現在のブロックのサイズに基づいてフィルタを決定することができる。プロセス600により決定されるフィルタは、ローパスnタップフィルタであってよい。変数nは、奇数の整数であり得る。例えば、3タップフィルタは、図8に関して以下で説明される。しかしながら、他のタイプのフィルタおよびフィルタサイズが選択され得る。
場合によっては、プロセス600は、角度デルタおよびブロックサイズに基づいてフィルタ強度を決定し得る。例えば、表1は、角度デルタおよび現在のブロックサイズ、具体的にはブロックエッジの寸法(すなわち、画素全体の数またはカーディナリティ)に基づくフィルタ強度を示す。角度デルタ、ブロックエッジ寸法、および対応するフィルタ強度の値の範囲は、表1に示す例から変化し得る。
Figure 0006858277
強度が増加するフィルタ(例えば、修正された画素値は、現在の画素値よりも隣接する画素値からのより高い割合の寄与を受ける)は、角度デルタが増加するにつれて選択され得る。例えば、16×16ブロックについて、角度デルタが4〜7の場合、強度1のフィルタが選択され得る一方、角度デルタが16〜31の場合、強度3のフィルタが選択される。ゼロのフィルタ強度は、フィルタが選択されない(すなわち、フィルタリングが実行されない)ことを示し得る。8×8ブロックの場合、フィルタリングは、8を超える角度デルタについて開始できる。16×16ブロックの場合、フィルタリングは、4を超える角度デルタについて開始できる。32×32ブロックの場合、フィルタリングは、0を超える角度デルタについて開始できる。ゼロのフィルタ強度は、プロセス600が周辺画素のフィルタリングをバイパスすることを意味し得る(すなわち、周辺画素にフィルタリングを適用しない)。
表1の使用の例として、現在のブロックが32×32ブロックであり、予測モードが垂直予測モードであると仮定する(図10Aに関して説明したように)。そのため、角度デルタ732はゼロである(すなわち、ABS(90−90))。表1の最初の行によると、デルタ値がゼロの場合、フィルタはゼロ強度になる。ゼロ強度のフィルタは、フィルタリングなしに対応し得る。従って、予測角度が90度の場合、第1の画素(例えば、現在のブロックの上方にある周辺画素)に対してフィルタリングは実行されない。角度デルタ734は、90(すなわち、絶対値(180−90))である。表1は、(32、90)の間の角度デルタに対して強度3のフィルタを示しているが、プロセス600は、第2の画素(例えば、現在のブロックの左側にある周辺画素)をフィルタリングしない場合があり、これは、図10Aについて説明されたように、左の画素(すなわち、図10AのJ−R)は、垂直イントラ予測モードに必要とされないからである。
別の例として、現在のブロックが16×16ブロックであり、予測モードが図10Bに示すように135度の予測角度を有すると仮定する。従って、角度デルタ732(現在のブロックの上方の第1の画素の角度デルタ)の値は、45(すなわち、ABS(135−90))であり、強度3のフィルタとなる。同様に、角度デルタ734(現在のブロックの左の第2の画素の角度デルタ)も45(すなわち、ABS(135−180))であり、強度3のフィルタとなる。
さらに別の例として、プロセス600は、角度デルタが閾値と比較される場合にフィルタを決定することができる。例えば、角度デルタが90度の閾値より大きい場合、フィルタは決定されない。フィルタが決定されない場合、周辺画素のフィルタリングはバイパスされる。例えば、現在のブロックが8×8ブロックであり、予測モードが195度の予測角度を有すると仮定する。従って、角度デルタ732(現在のブロックの上方の第1の画素の角度デルタ)の値は、105(すなわち、ABS(195−90))である。表1は、角度デルタが90より大きい場合、フィルタリングのエントリがないことを示している。この結果は、図9に関して上述したように、計算された角度デルタに対応する周辺画素を使用して予測ブロックを生成することができないことを示し得る。そのため、これらの画素のフィルタリングは不要である。あるいは、たとえ周辺画素が予測ブロックの生成に使用される場合でも、角度デルタが閾値(例えば90度)より大きい場合、フィルタリングはバイパスされる。この例では、角度デルタ734(現在のブロックの左の第2の画素の角度デルタ)は15(すなわち、ABS(195−180))であり、強度1のフィルタとなる。
いくつかの例では、4×4ブロックに対してフィルタが選択されていない。対照的に、表1の例では、特定の角度デルタに対する最小予測ブロックサイズは、エントリ「アップ」で示されるように、予測エッジに沿って画素をアップサンプリングすることによって処理される。この例では、最小予測ブロックサイズは、4×4画素である。本明細書で説明される特定のエッジに対するアップサンプリングの使用は、使用される変換カーネルに応じて、本明細書で説明される他のフィルタリングを使用して達成可能なゲインよりも画像データのゲインを改善できる。アップサンプリングフィルタの例が、以下に説明される。
上述のように602においてフィルタを決定することは、フィルタの強度またはタイプを決定することを含む。フィルタ強度を選択することにより、それに応じてフィルタを決定することができる。すなわち、フィルタの強度またはタイプの各々は、それぞれのフィルタに関連付けられ得る。上記のフィルタの強度またはタイプの各々は、それぞれのフィルタとともに、フィルタカーネルを形成し得る。フィルタの例は、重み(1,2,1)を有する3タップフィルタ、および重み(5,6,5)を有する3タップフィルタを含む。他のフィルタも可能である。フィルタカーネルの1つの可能なセットは、以下の表2に含まれている。
Figure 0006858277
この例によれば、フィルタ強度1は、(1,2,1)フィルタに対応する。フィルタ強度2は、フィルタ(5,6,5)に対応する。フィルタ強度3は、フィルタ(2,4,4,4,2)に対応する。フィルタ強度ゼロは、フィルタリングが実行されないことを示す(すなわち、フィルタリングはバイパスされる)。あるいは、フィルタ強度ゼロは、重み(0,1,0)を有するフィルタに対応し得る。アップサンプリングフィルタについては、以下で詳しく説明される。他のフィルタも可能である。
別の例では、フィルタ強度は、符号化ビットレートを調整する量子化パラメータにさらに基づいてもよく、アクティビティ測定(例えば分散値)に基づいてもよい。量子化パラメータは、現在のブロック(すなわち、ブロックレベルの量子化パラメータ)、現在のブロックを含む現在のフレーム(フレームレベルの量子化パラメータ)、またはその両方に対して使用でき得る。ブロックレベルの量子化パラメータは、ブロックヘッダにおいて符号化器によって符号化され、ブロックヘッダから復号化器によって復号化され得る。フレームレベルの量子化パラメータは、フレームヘッダにおいて符号化器によって符号化され、フレームヘッダから復号化器により復号化され得る。ブロックレベルの量子化パラメータが利用できない場合、フレームレベルの量子化パラメータが、ブロックレベルの量子化パラメータとして使用され得る。比較的低い量子化パラメータは、現在のフレーム(または場合によっては現在のブロック)においてより詳細を示し、比較的高い量子化パラメータは、現在のフレーム(またはブロック)においてより低い詳細を示す。そのため、量子化パラメータを使用してフィルタ強度を変調し得る。例えば、フィルタの強度は、量子化パラメータの値に比例し得る。すなわち、より弱いフィルタリングが、量子化パラメータのより低い値に適用され、より強いフィルタリングが、量子化パラメータのより高い値に適用され得る。この例の1つの適用では、角度デルタおよび/またはブロックサイズによって決定されるフィルタリング強度は(およびその結果フィルタは)、下限を下回る量子化パラメータの値に対して1の値だけ減少され、上限を上回る量子化パラメータの値に対して1の値だけ増加され得る。量子化パラメータをフィルタ選択に組み込むか、またはフィルタ適用に組み込んで修正値を取得するバリエーションが可能である。
上記の例では、ブロックの2つのエッジ(例えば、上および左のエッジ)に沿って参照画素をフィルタリングする異なるフィルタについて説明している。同じフィルタの選択が、各エッジに対して利用できる場合もあれば、各エッジが、他のエッジに対して利用可能なものとは異なる1つまたは複数のフィルタ選択を有する場合もある。同じまたは異なるフィルタ強度が、各エッジに対して使用され得る。例えば、各エッジのフィルタを選択するために、異なる角度デルタを考慮する必要はない。代わりに、(イントラ予測モードにより示されるような)支配的な予測エッジの角度デルタを使用して、両方のエッジに対して単一のフィルタを選択できる。すなわち、より大きな角度デルタが使用される。支配的な予測エッジの角度デルタを使用すると、他の角度デルタを使用してその予測エッジのフィルタを決定する場合に発生するよりも強いフィルタを他の予測エッジの参照画素に適用できる。他のバリエーションも可能である。例えば、角度デルタを使用する代わりに、イントラ予測角度の絶対値を値の範囲と比較して、フィルタを決定することができる。
プロセス600は、異なる寸法を有するブロックのフィルタ選択に表1を使用することができるが、プロセス600は、いくつかの実装形態においてのみ正方形ブロックのフィルタ選択に表1を使用する。これは、正方形ブロックよりも非正方形ブロックの方が表1の効果が低いためである。別の実装形態では、ブロックのエッジ寸法の代わりに、ブロックの寸法の組み合わせをテーブルへの入力として使用し得る。ブロックの寸法の組み合わせは、ブロックの高さおよび幅の合計であってよく、本明細書では予測高さおよび予測幅とも呼ばれる。例えば、予測高さおよび予測幅は、画素において指定され得る。
以下の表3は、このような代替実装形態の例である。
Figure 0006858277
以下の表4は、このような代替実装形態の別の例である。
Figure 0006858277
表1と同様に、表3および表4における角度デルタ、予測ブロックの寸法、および対応するフィルタ強度の値は、示されている値とは異なる場合がある。入力としてのイントラ予測モード(角度デルタで表される)および予測ブロックサイズ(ブロックエッジ寸法またはブロックの幅および高さの合計で表される)の組み合わせを反映するデータのグループ化と、出力としてのそれらに関連するフィルタ強度(またはフィルタ)は本明細書の表に含まれているが、その入力および出力を対にする任意の他の配置またはグループ化が可能である。
いくつかの実装形態では、602においてフィルタを決定することは、現在のブロックの少なくとも1つの近隣のブロックの予測モードに基づいてフィルタを決定することを含み得る。少なくとも1つの近隣のブロックの予測モードに基づいてフィルタを決定することは、現在のブロックの左の1つまたは複数のブロック、現在のブロックの上方の1つまたは複数のブロック、または現在のブロックの左の1つまたは複数のブロックおよび上方の1つまたは複数のブロックのイントラ予測モードを決定することを含み得る。少なくとも1つの近隣のブロックの予測モードに基づいてフィルタを決定することは、定義された数の近隣のブロックが第1の予測モードを使用する場合にフィルタを決定するための第1の手法を使用すること、そうでない場合にはフィルタを決定するための第2の手法を使用することをさらに含み得る。第1の手法は、イントラ予測モードおよび予測ブロックサイズのそれぞれのフィルタとのペアリングの第1のグループから第1のフィルタを選択することを含み得る。ペアリングの第1のグループは、例えば表3である。第2の手法は、イントラ予測モードおよび予測ブロックサイズのそれぞれのフィルタとのペアリングの第2のグループから第2のフィルタを選択することを含み得る。ペアリングの第2のグループは、例えば表4である。
定義された数の近隣のブロックは、1つまたは複数のブロックであり得る。考慮される近隣のブロックの予測モードは、イントラ予測モードであり得る。現在のブロックが参照画素のより大きなフィルタリングの恩恵を受ける可能性が高いことを近隣のブロックの予測モードが示す場合、比較的強いフィルタを使用するペアリングのグループが選択され得る。そうでない場合、比較的弱いフィルタを使用するペアリングのグループが選択され得る。一例では、ブロックが滑らかな勾配を有することを示す予測モードを使用して、1つまたは複数の近隣のブロックが符号化される場合、現在のブロックは、より大きなフィルタリングの恩恵を受ける可能性が高い。AV1コーデックでは、このような予測モードは、SMOOTH_PRED、SMOOTH_H_PRED、およびSMOOTH_V_PREDイントラモードを含む。この例では、現在のブロックの左のブロックまたは現在のブロックの上方のブロック、あるいはその両方が、SMOOTH_PRED、SMOOTH_H_PRED、およびSMOOTH_V_PREDで構成されるグループからのイントラ予測モードを使用する場合、フィルタは表4を使用して決定される。そうでない場合、フィルタは表3を使用して決定される。
604において、プロセス600は、フィルタを使用して、参照画素をフィルタリングする。フィルタリングは、本明細書では修正された画素または修正されたエッジ画素とも呼ばれる修正された参照画素をもたらす。フィルタリングは、図8を参照してさらに説明される。
図8は、本開示の実装形態による周辺または参照画素のフィルタリングの例のダイアグラム800である。ダイアグラム800は、周辺画素802を識別する。周辺画素802は、602においてプロセス600によって決定されたフィルタおよび/またはフィルタ強度に基づいてフィルタリングされる。フィルタリングは、修正された画素812をもたらす。周辺画素802は、図7の第1の画素704および/または第2の画素706であり得る。
フィルタ強度がゼロの場合、プロセス600は804においてフィルタリングをバイパスする。すなわち、プロセス600は、周辺画素のフィルタリングを実行しない。従って、修正された画素812は、周辺画素802と同じである。フィルタ強度が1である場合、修正された画素812は、806において、周辺画素に重み(1,2,1)を有する3タップフィルタを適用することから生じ得る。フィルタ強度が2である場合、重み(5,6,5)を有する3タップフィルタが、808において周辺画素に適用され、修正された画素812を生成する。フィルタ強度が3である場合、プロセス600は、810において重み(2,4,4,4,2)を有する5タップフィルタを周辺画素に適用して、修正された画素812を生成する。あるいは、フィルタ強度が3である場合、重み(5,6,5)を有する3タップフィルタが選択され得る。
一実装形態では、フィルタは、フィルタ強度に基づいて複数回適用され得る。例えば、フィルタ強度が3に等しいときに(5,6,5)フィルタが選択された場合、そのフィルタは、2回適用されて、修正された画素812を取得できる。すなわち、フィルタは、最初に周辺画素802に適用され、中間画素をもたらし、次に中間画素に適用されて、修正された画素812を得る。
本明細書でフィルタの適用とも呼ばれるフィルタリングの例が提供される。一般に、すべてのエッジ予測子(本願明細書では参照画素とも呼ばれる)がフィルタリングされ得る。以下で説明するように、左上の画素(図7の画素716など)、拡張サンプル(図7の拡張画素718など)、および最後に使用可能な上方/上部画素(図7の画素710など)および左の画素(図7の画素722など)は、フィルタリングされなくてもよい。
808において、フィルタ強度が2の場合に(5,6,5)フィルタを図7の画素724に適用することは、次のように実行される。
Figure 0006858277
画素のフィルタリングでは、フィルタリングされる画素が隣接する画素の中央にくるように、他の隣接する画素を使用できる。すなわち、サイズnのフィルタ(すなわち、nタップフィルタ)に対し、プロセス600は、予測される画素の各側で(n−1)/2画素を使用することができる。例えば、3タップフィルタに対し、1(すなわち、(3−1)/2)個の画素が、フィルタリングされる画素の各側で使用され得る。本例では、画素724は、画素714と画素725との間の中心にある。画素をフィルタリングするのに十分な数の隣接する画素が利用できない場合、プロセス600は、その画素のフィルタリングを除外することができる。例えば、画素722は上方の近隣の画素736を有するが、下方の近隣の画素は有していない。従って、プロセス600は、画素722のフィルタリングを除外することができる。そのような場合、804に関して説明したように、画素722のフィルタリングはバイパスされる。すなわち、プロセス600は、周辺画素が、現在のブロックの上方または下方の行(または左または右の列)であり、周辺画素が、少なくとも(n−1)/2個の隣接する左の周辺画素または右の周辺画素(または周辺画素の上方または下方の隣接する周辺画素)を有しない場合、複数の周辺画素のうちのある周辺画素をフィルタリングから除外する(すなわち、バイパスする)。一部の実装形態では、利用可能な画素が不十分な場合、最初または最後の利用可能な画素が拡張され得る。例えば、画素708が5タップフィルタでフィルタリングされる場合、画素716の値は、左に1ポジション拡張され(複製されるとも言われる)、必要な追加値を作成できる。
画素710のフィルタリングは、バイパスされ得る。画素710は、左の近隣の画素738を有する。しかしながら、右の近隣の画素740は、拡張画素であるため(その値が画素710と同じであることを意味する)、プロセス600は、画素710のフィルタリングをバイパスすることができる。あるいは、プロセス600は、前述のように左の近隣の画素738および右の近隣の画素740を使用して画素710をフィルタリングすることができる。
一例では、コーナー画素716のようなコーナー画素のフィルタリングは、バイパスされ得る。この画素は、ゾーン1またはゾーン3のイントラ予測モードのいずれにおいても使用されないため、コーナー画素のフィルタリングをバイパスするかどうかは、現在のブロックのイントラ予測モードに基づき得る。例えば、イントラ予測モードがゾーン2である場合、コーナー画素はフィルタリングされ得る。コーナー画素は、隣接する第1の画素および隣接する左の画素を使用してフィルタリングされ得る。例えば、コーナー画素716は、画素708(例えば、その隣接する水平画素)および画素712(例えば、その隣接する垂直画素)を使用してフィルタリングされ得る。第1の画素(第1の画素704など)が現在のブロックの上方の水平な列を形成し、第2の画素(第2の画素706など)が現在のブロックの左の垂直な列を形成する場合、コーナー画素716は、上で簡単に述べたように、左上の画素(upper−leftpixelまたはtop−left pixel)と呼ばれ得る。上方および/または左のエッジの参照画素がフィルタリングされた後に、コーナー画素がフィルタリングされる可能性がある。コーナー画素が、任意の他の画素よりも前にフィルタリングされることがより望ましい。
図8には示されていないが、「アップ」と指定されたフィルタ強度の場合、周辺画素802は、アップサンプリング/アップサンプルフィルタを使用してアップサンプリングされ、修正された画素812を生成することができる。アップサンプリングフィルタは、4画素の長さを有するブロックエッジのための2×アップサンプルフィルタであり得る。このフィルタを使用して、エッジごとに8個のハーフサンプル位置を補間できる。4タップフィルタ(−1,9,9,−1)が使用され得る。エッジに対するアップサンプリングを実装できる擬似コードが続き、edge[9]は、第1のエッジまたは第2のエッジに沿った参照画素を含み、upsample[i]は、現在の画素iのアップサンプリングされた値を含み、upsample[8]は、修正された画素812などの修正された画素を含む。
Figure 0006858277
関数round()は、より一般的には、round(x)−(x+csum/2)/csumとして定義でき、ここで、csumは、フィルタ係数の合計である。アップサンプリングフィルタが使用される場合、クリッピング関数を適用して、出力値を画素範囲(例えば、8,10,または12ビット)に制限できる。クリッピング関数は、round()関数の一部として適用され得る。本明細書で説明されるアップサンプリングフィルタの例では、−1の係数により、フィルタリングされた値が範囲を超えることを可能とする。
606において、プロセス600は、イントラ予測モードおよび修正された参照画素(図8の修正された画素812など)を使用して、現在のブロックの予測ブロックを生成する。
前述のように、複数のイントラ予測モードが利用可能である。現在のブロックのイントラ予測モードは、いくつかのまたはすべての利用可能なイントラおよびインター予測モードで現在のブロックを符号化することのビットコスト(レート)を、それぞれの予測モードを使用して現在のブロックを符号化することからもたらされるエラー(現在のブロックと比較した再構成されたブロックの歪み)と比較するレート歪み計算を介してプロセス600の前に好ましくは選択される。予測ブロックを生成するために選択される予測モードは、一般に、レート歪み値が最小の予測モードである。
利用可能な複数のイントラ予測モードは、方向性/角度イントラ予測モード、および角度または方向に従って画素を予測しないイントラ予測モードの両方を含む。プロセス600は、決定された予測モードが方向性/角度イントラ予測モードである場合に生じるステップを説明している。いくつかの実装形態では、8つの方向性/角度イントラ予測モードのみが利用可能であり、これは、例えば、45、63、90、117、135、153、180、および207度の予測角度を有するモードを含み、これらのベース予測角度の各々は、それぞれのベース方向性モードに関連し得る。他の実装形態では、追加の方向性/角度イントラ予測モードが利用可能である。例えば、各ベース方向性モードに対してデルタパラメータを追加することで、追加の予測角度がサポートされ得る。追加の予測角度は、次のように定義され得る。
Figure 0006858277
この定式化では、nominal_angleはベース方向性モードの角度に対応し、angle_deltaは定義された範囲内の整数であり、angle_stepは整数値である。変数angle_deltaは、上記のように計算された角度デルタとは異なり、例では、angle_deltaは[−3,3]の事前定義された範囲にある。変数angle_stepも事前定義され得る。変数nominal_angleが90度、変数angle_deltaが−2、変数angle_stepが3の例では、イントラ予測モードに対する実際の予測角度は、90+(−2*3)=84度である。追加の方向性モードの使用は、特定のブロックサイズに対しては無効化され得る。例えば、8×8画素よりも小さいブロックは、任意のベース方向性モードにわたり追加の方向性モードを使用することを許可されない場合がある。変数angle_deltaおよびangle_stepは、より多くの角度、従ってより多くの方向性モードが、より大きなブロックに対して利用できるように定義され得る。例えば、angle_deltaに対する[−3,3]の事前定義された範囲と、angle_stepに対する値3は、56個の角度を提供する。これらの値は、16×16画素以上のブロックサイズに制限され得る。この例では、16×16画素未満のブロックサイズでは、より少ない角度が使用可能であり得る。変数angle_deltaが[−2,2]の範囲を有し、angle_stepが4の値を有する場合、結果として角度が少なくなる組み合わせが1つ生じる。この組み合わせは、40個の角度をもたらす。
予測ブロックを生成するために使用され得る擬似コードの一例は次のとおりである。この例では、前述の修正された画素812を使用して4×4予測ブロックが生成される(pred[16])。
Figure 0006858277
符号化器によって実行される場合、プロセス600は、符号化されたビットストリーム(図4の圧縮されたビットストリーム420など)において、現在のブロックの参照画素にフィルタを適用するインジケータ(例えば、1つまたは複数の構文要素)を符号化することができる。インジケータは、ブロック、フレーム、スライス、および/またはタイルヘッダに符号化され得る。例えば、インジケータは、現在のブロックの予測から生じる残差ブロックのヘッダに符号化されてもよい。復号化器によって実行される場合、プロセス600は、符号化されたビットストリーム(例えば、図5の圧縮されたビットストリーム420)から、現在のブロックの参照画素にフィルタを適用するためのインジケータを復号化することができる。例えば、インジケータは、1つまたは複数のフィルタ、フィルタ強度、フィルタの重み、またはそれらの組み合わせを識別できる。インジケータは、復号化器がイントラ予測エッジフィルタリングを適用することを通知できる。そのような場合、復号化器は、プロセス600を実行して、現在のブロックを表す符号化されたビットストリームから復号化された現在の残差を復号化するための予測ブロックを生成することができる。例えば、インジケータは、フィルタ強度を変調するよう復号化器に示すタイルレベルまたはブロックレベルのパラメータであり得る。復号化器は、量子化パラメータを使用して変調を実行できる。
インジケータに加えて、符号化器は、現在のブロックを復号化するために、(例えば、イントラ/インター予測ステージ508で)予測ブロックを生成するための復号化器による使用のために、(例えば、イントラ/インター予測ステージ402で)現在のブロックを予測するために使用された予測モードをビットストリームに符号化してもよい。例えば、符号化器は、ベース方向性モードの第2のインジケータを符号化できる。追加の方向性モードが現在のブロックで利用可能であり、現在のブロックの予測に使用される場合、符号化器は、angle_deltaの値の定義された範囲内でangle_deltaの値をコーディングすることもできる。値は、ブロックのヘッダ(すなわち、残差ブロックのヘッダ)、ブロックが配置されているスライス、および/またはブロックが配置されているフレームにコーディングされ得る。angle_deltaのエントロピーコーディングは、本明細書で適応確率モデルとも呼ばれる均一で非適応の確率モデルを使用して実行され得る。いくつかの実装形態では、このモデルは、コンテキストモデルに置き換えられ得る。コンテキストモデルは、例えば、イントラ予測モードのコンテキスト(例えば、現在のブロックが、垂直または水平角度によって支配される方向性予測モードを使用して予測されるかどうか、すなわち、方向性予測モードの角度が、それぞれ90度または180度に近いか)、およびイントラ予測モードの他のブロックによる相対的な使用に応じて変化し得る。一実装形態によれば、以下のコードは、angle_deltaのエントロピーコーディングのためのコンテキストモデル(すなわち、不均一な適応累積分布関数(cdf))を表す。
Figure 0006858277
ここで、DIRECTIONAL_MODESは、ベース方向性モードの数、ここでは定数8であり、利用可能なangle_delta値に基づくMAX_ANGLE_DELTAは、この例では3に等しい。
一例では、コンテキストモデルのサイズは、56ワードである(これは、8個のベース方向性モードに7個のangle_delta値を掛けたものに等しい)。コンテキストは、以前にコーディングされたブロックを使用して適応する。コンテキストは、各キーフレームの開始時にデフォルトcdfにリセットされ得る。デフォルトcdfは、確率の表により表され得る。デフォルトのcdfの一例は次のとおりである。
Figure 0006858277
関数AOM_ICDF()は、cdfを反転して、0から開始して32768まで増加する代わりに、32768から開始して0に減少するようにする。
上述の符号化および復号化の態様は、いくつかの符号化および復号化技術を示す。しかしながら、符号化および復号化は、特許請求の範囲で使用されるそれらの用語として圧縮、圧縮解除、変換、または任意の他の処理またはデータの変更を意味し得ることを理解されたい。
本明細書では、「例」または「実装形態」という用語は、例、事例、または例証として用いられることを意味するために使用される。本明細書において「例」または「実装形態」と記載された任意の態様または設計は、必ずしも他の態様または設計に対して好ましいまたは有利であるとして解釈されるべきではない。むしろ、「例」または「実装形態」という言葉の使用は、具体的な方法で概念を提示することを意図している。本出願で使用される場合、用語「または」は、排他的な「または」ではなく、包括的な「または」を意味することが意図される。即ち、他に明記されていない限り、または文脈から明らかでない限り、「XはAまたはBを含む」とは、任意の自然な包含的置換(naturalinclusive permutations)を意味することを意図する。即ち、「XはAまたはBを含む」は、XがAを含む場合、XがBを含む場合、またはXがAおよびBの両方を含む場合のいずれにおいても満足される。さらに、本出願および添付の特許請求の範囲で使用される冠詞「a」および「an」は、他に明記されない限り、または単数形に向けられる文脈から明らかでない限り、「1つまたは複数」を意味すると一般に解釈されるべきである。さらに、「実装形態」または「一実装形態」という用語の使用は、そのように記載されない限り、同じ実施形態または実装形態を意味することを意図するものではない。
送信局102および/または受信局106(ならびに、符号化器400および復号化器500が含む、それに記憶され、かつ/またはそれによって実行されるアルゴリズム、方法、命令など)の実装形態は、ハードウェア、ソフトウェア、またはそれらの任意の組み合わせにおいて実現することができる。ハードウェアは、例えば、コンピュータ、知的財産(IP)コア、特定用途向け集積回路(ASIC:application−specificintegrated circuits)、プログラマブル論理アレイ、光プロセッサ、プログラマブル論理コントローラ、マイクロコード、マイクロコントローラ、サーバ、マイクロプロセッサ、デジタル信号プロセッサ、または他の適切な回路を含むことができる。特許請求の範囲において、「プロセッサ」という用語は、前述のハードウェアのいずれかを単独でまたは組み合わせて含むものとして理解されるべきである。用語「信号」および「データ」は互換的に使用される。さらに、送信局102および受信局106の一部は、必ずしも同じ方法で実装される必要はない。
さらに、一態様では、例えば、送信局102または受信局106は、実行時に、本明細書に記載された個々の方法、アルゴリズム、および/または命令をのうちのいずれかを実行するコンピュータプログラムを備えたコンピュータまたはプロセッサを使用して実装され得る。加えて、または代替的に、例えば、本明細書に記載された方法、アルゴリズム、または命令のいずれかを実行するための他のハードウェアを含むことができる専用コンピュータ/プロセッサを利用することができる。
送信局102および受信局106は、例えば、ビデオ会議システム内のコンピュータ上で実装され得る。あるいは、送信局102はサーバ上で実装されてもよく、受信局106はサーバとは別のハンドヘルド通信デバイスのようなデバイス上で実装されてもよい。この場合、送信局102は、符号化器400を使用してコンテンツを符号化されたビデオ信号に符号化し、符号化されたビデオ信号を通信デバイスに送信することができる。通信デバイスは、復号化器500を使用して符号化されたビデオ信号を復号化することができる。あるいは、通信デバイスは、通信デバイス上に局所的に格納されたコンテンツ、例えば、送信局102によって送信されなかったコンテンツを復号化することができる。他の送信局102および受信局106の実装スキームが利用可能である。例えば、受信局106は、ポータブル通信デバイスではなく、一般に固定のパーソナルコンピュータであってもよく、かつ/または符号化器400を含むデバイスは、復号化器500を含んでもよい。
さらに、本開示の実装形態の全部または一部は、例えば有形のコンピュータ使用可能またはコンピュータ可読媒体からアクセス可能なコンピュータプログラム製品の形態を取ることができる。コンピュータ使用可能またはコンピュータ可読媒体は、例えば、任意のプロセッサによって、またはそれに関連して使用するために、プログラムを有形的に収容、格納、通信、または輸送することができる任意のデバイスであり得る。媒体は、例えば、電子、磁気、光学、電磁気、または半導体デバイスであり得る。他の適切な媒体も利用可能である。
上述した実施形態、実装形態、および態様は、本開示の理解を容易にするために記載されており、本開示を限定するものではない。一方、本開示は、添付の特許請求の範囲内に含まれる様々な改変および均等の構成を包含することを意図しており、その範囲は、法律で許容されるようなすべての改変および均等の構造を包含するように最も広い解釈が与えられるべきである。

Claims (12)

  1. イントラ予測モードを使用して現在のブロックを符号化または復号化するための装置であって、前記イントラ予測モードは予測角度を含み、前記現在のブロックの周辺の画素を使用し、前記装置は、
    前記予測角度および前記現在のブロックサイズを使用して、強度の異なる複数のフィルタであって、最小予測ブロックサイズを有するブロックに対してのみ利用可能なアップサンプリングフィルタを含む前記複数のフィルタのうち前記現在のブロックの周辺の画素に適用するフィルタを決定し、
    決定した前記フィルタを使用して、前記現在のブロックの周辺の画素のうちの少なくともいくつかをフィルタリングして、修正された画素を生成し、
    前記イントラ予測モードおよび前記修正された画素を使用して、前記現在のブロックに対する予測ブロックを生成する、
    装置。
  2. 前記現在のブロックの周辺の画素は、前記現在のブロックの上の行の第1の画素、および前記現在のブロックの左の列の第2の画素を含み、前記フィルタを決定することは、
    前記予測角度および前記列に平行な垂直線を使用して、前記第1の画素に対する第1のフィルタおよび前記第2の画素に対する第2のフィルタを決定することをさらに含む、請求項1に記載の装置。
  3. 前記第1のフィルタおよび前記第2のフィルタを決定することは、前記現在のブロックのサイズおよび/または前記現在のブロックの量子化パラメータにさらに基づいている、請求項2に記載の装置。
  4. 前記フィルタを決定することは、フィルタ強度を決定することを含み、
    前記現在のブロックの周辺の画素のうちの少なくともいくつかをフィルタリングすることは、
    前記フィルタ強度に基づいて、前記フィルタを複数回適用することをさらに含む、請求項1乃至3のいずれか一項に記載の装置。
  5. 前記装置は、さらに、符号化されたビットストリームから、前記現在のブロックの周辺の画素に前記フィルタを適用するためのインジケータを復号化する、請求項1乃至4のいずれか一項に記載の装置。
  6. イントラ予測モードを使用して現在のブロックを符号化または復号化するための方法であって、前記イントラ予測モードは予測角度を含み、前記現在のブロックの周辺の画素を使用し、前記方法は、
    前記予測角度および前記現在のブロックサイズに基づいて、最小予測ブロックサイズを有するブロックに対してのみ利用可能なアップサンプリングフィルタを含む前記複数のフィルタのうち前記現在のブロックの周辺の画素のうちの少なくともいくつかに適用するフィルタを選択すること、
    決定した前記フィルタを使用して、前記現在のブロックの周辺の画素のうちの少なくともいくつかをフィルタリングして、修正された画素を生成すること、
    前記イントラ予測モードおよび前記修正された画素を使用して、前記現在のブロックに対する予測ブロックを生成すること
    を含む、
    方法。
  7. 前記予測角度に基づいて、前記現在のブロックの周辺の画素のうちの少なくともいくつかに適用するフィルタを選択することは、
    前記予測角度が角度の閾値を下回っており、前記現在のブロックのサイズがサイズの閾値を下回っている場合に、バイパスフィルタを選択することを含む、請求項6に記載の方法。
  8. 前記フィルタは、3つのフィルタを含むフィルタのセットから選択され、前記フィルタは、重み値5、6および5を備える、請求項6または7に記載の方法。
  9. 前記予測角度に基づいて、前記現在のブロックの周辺の画素のうちの少なくともいくつかに適用するフィルタを選択することは、
    前記予測角度に基づいてフィルタ強度を決定すること、
    前記フィルタ強度に基づいて前記フィルタを選択すること
    を含む、請求項6に記載の方法。
  10. イントラ予測モードを使用して現在のブロックを符号化または復号化するための装置であって、前記イントラ予測モードは予測角度を含み、前記現在のブロックの周辺の画素を使用し、前記装置は、
    メモリと、
    プロセッサと
    を備え、前記プロセッサは、前記メモリに格納された命令を実行して、
    前記予測角度および前記現在のブロックのサイズに基づいて、強度の異なる複数のフィルタであって、最小予測ブロックサイズを有するブロックに対してのみ利用可能なアップサンプリングフィルタを含む前記複数のフィルタのうち前記現在のブロックの周辺の画素のうちの少なくともいくつかに適用するフィルタを選択し、
    決定した前記フィルタを使用して、前記現在のブロックの周辺の画素のうちの少なくともいくつかをフィルタリングして、修正された画素を生成し、
    前記イントラ予測モードおよび前記修正された画素を使用して、前記現在のブロックに対する予測ブロックを生成する
    ように構成さる、
    装置。
  11. 前記現在のブロックのサイズに基づいて、前記現在のブロックの周辺の画素のうちの少なくともいくつかに適用するフィルタを選択することは、
    前記予測角度が角度の閾値を下回っており、前記現在のブロックのサイズがサイズの閾値を下回っている場合に、バイパスフィルタを選択することを含む、請求項10に記載の装置。
  12. 前記現在のブロックのサイズに基づいて、前記現在のブロックの周辺の画素のうちの少なくともいくつかに適用するフィルタを選択することは、
    前記現在のブロックのサイズが4×4であるという条件で、前記フィルタとしてバイパスフィルタを選択することを含む、請求項10に記載の装置。
JP2019561283A 2017-05-09 2018-02-15 方向性イントラ予測コーディング Active JP6858277B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US15/590,274 2017-05-09
US15/590,274 US10225578B2 (en) 2017-05-09 2017-05-09 Intra-prediction edge filtering
US15/790,516 2017-10-23
US15/790,516 US10992939B2 (en) 2017-10-23 2017-10-23 Directional intra-prediction coding
PCT/US2018/018309 WO2018208349A1 (en) 2017-05-09 2018-02-15 Directional intra-prediction coding

Publications (2)

Publication Number Publication Date
JP2020520163A JP2020520163A (ja) 2020-07-02
JP6858277B2 true JP6858277B2 (ja) 2021-04-14

Family

ID=61527535

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019561283A Active JP6858277B2 (ja) 2017-05-09 2018-02-15 方向性イントラ予測コーディング

Country Status (4)

Country Link
EP (1) EP3622713A1 (ja)
JP (1) JP6858277B2 (ja)
CN (1) CN110622515A (ja)
WO (1) WO2018208349A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11438583B2 (en) * 2018-11-27 2022-09-06 Tencent America LLC Reference sample filter selection in intra prediction
JP7256658B2 (ja) * 2019-03-01 2023-04-12 キヤノン株式会社 画像符号化装置及びその制御方法及びプログラム
SG11202110936PA (en) 2019-04-12 2021-11-29 Beijing Bytedance Network Technology Co Ltd Chroma coding mode determination based on matrix-based intra prediction
JP7403555B2 (ja) 2019-04-16 2023-12-22 北京字節跳動網絡技術有限公司 イントラコーディングモードにおけるマトリクスの導出
CN117097912A (zh) 2019-05-01 2023-11-21 北京字节跳动网络技术有限公司 基于矩阵的帧内预测的上下文编码
CN113812150B (zh) 2019-05-01 2023-11-28 北京字节跳动网络技术有限公司 使用滤波的基于矩阵的帧内预测
BR112021022868A2 (pt) 2019-05-22 2022-01-04 Beijing Bytedance Network Tech Co Ltd Método de processamento de vídeos, aparelho para processar dados de vídeo e meios de armazenamento e gravação não transitórios legíveis por computador
CN113924775B (zh) 2019-05-31 2023-11-14 北京字节跳动网络技术有限公司 基于矩阵的帧内预测中的限制的上采样
WO2020244610A1 (en) 2019-06-05 2020-12-10 Beijing Bytedance Network Technology Co., Ltd. Context determination for matrix-based intra prediction
CN110166773B (zh) * 2019-06-25 2021-08-31 浙江大华技术股份有限公司 帧内预测方法、视频编码方法、视频处理装置、存储介质
EP4042689A4 (en) 2019-10-28 2023-06-07 Beijing Bytedance Network Technology Co., Ltd. SIGNALING AND SYNTAX ANALYSIS BASED ON A COLOR COMPONENT
US11546625B2 (en) 2020-08-19 2023-01-03 Tencent America LLC Delta angle signaling method for luma blocks
US11595665B2 (en) 2021-02-11 2023-02-28 Qualcomm Incorporated Upsampling reference pixels for intra-prediction in video coding

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2006346583B2 (en) * 2006-07-28 2011-04-28 Kabushiki Kaisha Toshiba Image encoding and decoding method and apparatus
KR101510108B1 (ko) * 2009-08-17 2015-04-10 삼성전자주식회사 영상의 부호화 방법 및 장치, 그 복호화 방법 및 장치
US10142630B2 (en) * 2010-12-10 2018-11-27 Texas Instruments Incorporated Mode adaptive intra prediction smoothing in video coding
KR101739579B1 (ko) * 2011-01-04 2017-05-24 에스케이 텔레콤주식회사 코딩 유닛 단위 병렬 인트라예측을 이용한 부호화/복호화 방법 및 장치
BR112016013761B1 (pt) * 2014-05-23 2023-03-14 Huawei Technologies Co., Ltd Método e aparelho para reconstruir blocos de imagem utilizando predição, e meio de armazenamento legível por computador

Also Published As

Publication number Publication date
CN110622515A (zh) 2019-12-27
EP3622713A1 (en) 2020-03-18
WO2018208349A1 (en) 2018-11-15
JP2020520163A (ja) 2020-07-02

Similar Documents

Publication Publication Date Title
JP6858277B2 (ja) 方向性イントラ予測コーディング
US10992939B2 (en) Directional intra-prediction coding
US10798408B2 (en) Last frame motion vector partitioning
US10735767B2 (en) Transform coefficient coding using level maps
US11039131B2 (en) Intra-prediction for smooth blocks in image/video
CN110800299B (zh) 用于对图像数据的块进行熵代码化的扫描顺序自适应
JP6761033B2 (ja) 前フレーム残差を用いた動きベクトル予測
CN113491129B (zh) 图像/视频压缩中的自适应滤波器帧内预测模式
US10506256B2 (en) Intra-prediction edge filtering
US20180020240A1 (en) Hybrid transform scheme for video coding
US20180160117A1 (en) Restoration in video coding using domain transform recursive filters
CN110741636B (zh) 用于视频编码的变换块级扫描顺序选择
EP3332552A1 (en) Mixed boolean-token ans coefficient coding
EP3673653B1 (en) Embedding information about token tree traversal
JP2022514505A (ja) ビットレート削減のためのビデオストリーム適応フィルタリング
JP2020522185A (ja) 複合動き補償予測
CN117957839A (zh) 使用上下文设计的滤波器过滤侧信息
WO2024081011A1 (en) Filter coefficient derivation simplification for cross-component prediction
WO2024081010A1 (en) Region-based cross-component prediction

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20191127

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20191127

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20191127

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20200115

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20200121

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20200615

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200622

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200720

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20200907

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201110

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20201221

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210127

C60 Trial request (containing other claim documents, opposition documents)

Free format text: JAPANESE INTERMEDIATE CODE: C60

Effective date: 20210127

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20210204

C21 Notice of transfer of a case for reconsideration by examiners before appeal proceedings

Free format text: JAPANESE INTERMEDIATE CODE: C21

Effective date: 20210208

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: 20210222

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210323

R150 Certificate of patent or registration of utility model

Ref document number: 6858277

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250