JP2019534624A - ビデオコーディングのための変換選択 - Google Patents

ビデオコーディングのための変換選択 Download PDF

Info

Publication number
JP2019534624A
JP2019534624A JP2019517272A JP2019517272A JP2019534624A JP 2019534624 A JP2019534624 A JP 2019534624A JP 2019517272 A JP2019517272 A JP 2019517272A JP 2019517272 A JP2019517272 A JP 2019517272A JP 2019534624 A JP2019534624 A JP 2019534624A
Authority
JP
Japan
Prior art keywords
block
transform
current
video
current block
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.)
Pending
Application number
JP2019517272A
Other languages
English (en)
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 JP2019534624A publication Critical patent/JP2019534624A/ja
Pending legal-status Critical Current

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/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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • 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/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
    • H04N19/137Motion inside a coding unit, e.g. average field, frame or block difference
    • 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
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • 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
    • 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/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • H04N19/45Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder performing compensation of the inverse transform mismatch, e.g. Inverse Discrete Cosine Transform [IDCT] mismatch
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive coding
    • 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/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding

Landscapes

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

Abstract

ビデオコーディングのためのデバイスは、現在のピクチャの現在ブロックの予測ブロックの特性を決定することと、特性に基づいて、現在ブロックを復号するための変換を識別することと、現在ブロックについての残差ブロックを決定するために係数を逆変換することと、現在ブロックを復号するために、残差ブロックを現在ブロックの予測ブロックに追加することと、を行うように構成される。

Description

[0001] 本出願は、2016年10月1日に出願された米国特許仮出願第62/403,112号の利益を主張し、それのすべての内容は、参照によってここに組み込まれる。
[技術分野]
[0002] 本開示は、ビデオ符号化およびビデオ復号に関する。
[0003] デジタルビデオ能力は、デジタルテレビ、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、e−bookリーダ、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲーミングデバイス、ビデオゲームコンソール、セルラまたは衛星無線電話、いわゆる「スマートフォン」、ビデオテレビ会議デバイス、ビデオストリーミングデバイス等を含む幅広いデバイスに組み込まれることができる。デジタルビデオデバイスは、MPEG−2、MPEG−4、ITU−T H.263、ITU−T H.264/MPEG−4、Part10、アドバンストビデオコーディング(AVC:Advanced Video Coding)、最近完成された高効率ビデオコーディング(HEVC:High Efficiency Video Coding)規格、およびそのような規格の拡張によって定義された規格に説明されるもののようなビデオ圧縮技法をインプリメントする。ビデオデバイスは、そのようなビデオ圧縮技法をインプリメントすることによって、より効率的にデジタルビデオ情報を送信、受信、符号化、復号および/または記憶し得る。
[0004] ビデオ圧縮技法は、ビデオシーケンスに内在する冗長性を減少させるまたは削除するために、空間(イントラピクチャ)予測および/または時間(インターピクチャ)予測を実施(perform)する。ブロックベースビデオコーディングについては、ビデオスライス(すなわち、ビデオフレームまたはビデオフレームの一部)は、複数のビデオブロックに区分され得、それはまた、ツリーブロック(tree block)、コーディングユニット(CU:coding unit)および/またはコーディングノードとも呼ばれ得る。ピクチャのイントラコード化(I)スライス中のビデオブロックは、同じピクチャ内の隣接ブロックにおける参照サンプルに対する空間的予測を使用して符号化される。ピクチャのインターコード化(PまたはB)スライス中のビデオブロックは、同じピクチャ内の隣接ブロックにおける参照サンプルに対する空間的予測、または他の参照ピクチャ(reference picture)における参照サンプルに対する時間的予測を使用し得る。ピクチャはフレームと呼ばれ得、参照ピクチャは参照フレームと呼ばれ得る。
[0005] 空間または時間的予測は、コード化されることになるブロック(block)についての予測ブロック(predictive block)をもたらす。残差データ(residual data)は、コーディングされることになる元のブロックと予測ブロックとの間のピクセル差分を表す。インターコード化ブロックは、予測ブロックを形成する参照サンプルのブロックを指し示す動きベクトル(motion vector)、およびコード化ブロックと予測ブロックとの間の差を示す残差データに従って符号化される。イントラコード化ブロックは、イントラコーディングモードおよび残差データに従って符号化される。さらなる圧縮のために、残差データは、ピクセル領域から変換領域に変換され得、残差変換係数をもたらし、それは次いで量子化され得る。量子化された変換係数は、最初は2次元アレイで配列されているが、変換係数(transform coefficients)の1次元ベクトルを生み出すために走査され得、より一層の圧縮を達成するためにエントロピーコーディングが適用され得る。
[0006] 本開示は、残差データのコーディングのための変換(transform)を決定する(determine)ことに関する技法を説明する。より具体的には、本開示は、ビデオエンコーダ(video encoder)およびビデオデコーダ(video decoder)の両方において、残差ブロック(residual block)をコード化するために使用される変換が、ほとんど明示的なシグナリングなしにシグナリングされることができるか、または一部のケースでは、全く明示的なシグナリングなしにされることができ、それにより帯域幅(bandwidth)を節約するような、ある特定の変換情報(transform information)を導出するための技法を説明する。
[0007] 一例では、ビデオデータ(video data)を復号する(decode)ための方法は、現在のピクチャ(current picture)の現在ブロック(current block)の予測ブロックの特性(characteristic)を決定することと、特性に基づいて、現在ブロックを復号するための変換(transform)を識別する(identify)ことと、現在ブロックについての残差ブロックを決定するために、変換係数を逆変換(inverse transform)することと、現在ブロックを復号するために、残差ブロックを現在ブロックの予測ブロックに追加(add)することと、を含む。
[0008] 別の例では、ビデオデータを復号するためのデバイス(device)は、ビデオデータを記憶するように構成されるメモリと、ビデオデータの現在のピクチャの現在ブロックの予測ブロックの特性を決定することと、特性に基づいて、現在ブロックを復号するための変換を識別することと、現在ブロックについての残差ブロックを決定するために、変換係数のセットを逆変換することと、現在ブロックを復号するために、残差ブロックを現在ブロックの予測ブロックに追加(add)することと、を行うように構成される1つまたは複数のプロセッサ(processor)と、を含む。
[0009] 別の例では、ビデオデータを復号するための装置は、現在のピクチャの現在ブロックの予測ブロックの特性を決定するための手段と、特性に基づいて、現在ブロックを復号するための変換を識別するための手段と、現在ブロックについての残差ブロックを決定するために、変換係数を逆変換するための手段と、現在ブロックを復号するために、残差ブロックを現在ブロックの予測ブロックに追加するための手段と、を含む。
[0010] 別の例では、1つまたは複数のプロセッサによって実行されると、1つまたは複数のプロセッサに、現在のピクチャの現在ブロックの予測ブロックの特性を決定することと、特性に基づいて、現在ブロックを復号するための変換を識別することと、現在ブロックについての残差ブロックを決定するために、変換係数のセットを逆変換することと、現在ブロックを復号するために、残差ブロックを現在ブロックの予測ブロックに追加することと、を行わせる命令(instruction)を記憶するためのコンピュータ読み取り可能な媒体(computer-readable medium)。
[0011] 本開示の1つまたは複数の態様の詳細は、添付の図面および以下の説明に記載される。本開示に説明される技法の他の特徴、目的、および利点は、説明および図面、および特許請求の範囲から明らかとなる。
[0012] 図1は、本開示で説明される技法を利用し得る例示的なビデオ符号化および復号システムを例示するブロック図である。 [0013] 図2Aは、変換タイプ(transform type)の例を例示する表である。 図2Bは、変換タイプの例を例示する表である。 図2Cは、変換タイプの例を例示する表である。 図2Dは、変換タイプの例を例示する表である。 図2Eは、変換タイプの例を例示する表である。 [0014] 図3は、高効率ビデオコーディング(HEVC)における残差四分木(residual quadtree)に基づく変換スキームの例を例示する概念図である。 [0015] 図4は、HEVCにおけるコーディンググループに基づく係数走査の例を例示する概念図である。 [0016] 図5は、二次変換の例を示す。 [0017] 図6は、KLT処理のフローチャートの例を示す。 [0018] 図7は、ビデオデコーダ30(またはビデオエンコーダ20)によって実施され得るテンプレートマッチング処理(template matching process)の例を示す。 [0019] 図8は、本開示で説明される技法をインプリメントし得る例示的なビデオエンコーダを例示するブロック図である。 [0020] 図9は、本開示で説明される技法をインプリメントし得る例示的なビデオデコーダを例示するブロック図である。 [0021] 図10は、本開示で説明される例示的なビデオ復号技法を例示するフローダイアグラムである。
詳細な説明
[0022] 本開示は、残差データのコーディングのために使用される1つまたは複数の変換(transform)を決定することに関する技法を説明する。より具体的には、本開示は、ビデオエンコーダおよびビデオデコーダの両方において、残差ブロックをコード化するために使用される変換が、ほとんど明示的なシグナリングなしにシグナリングされることができるか、または一部のケースでは、全く明示的なシグナリングなしにされることができ、それにより変換をシグナリングすることに関連するシグナリングオーバヘッド(signaling overhead)を潜在的に減少させるような、ある特定の変換情報を導出するための技法を説明する。本開示の技法は、HEVC(高効率ビデオコーディング)のような既存のビデオコーデックのうちのいずれかのものと併せて使用され得るか、またはH.266規格およびその拡張のような将来のビデオコーディング規格で使用するための効率的なコーディングツールであり得る。
[0023] 本開示における様々な技法は、ビデオコーダを参照して説明され得、それはビデオエンコーダまたはビデオデコーダのいずれをも示すことができる総称を意図したものである。そうでないと明示的に述べられていない限り、ビデオエンコーダまたはビデオデコーダに関して説明される技法は、ビデオエンコーダまたはビデオデコーダのうちの他方によって実施されることはできないと見なされるべきではない。例えば、多くの事例において、ビデオデコーダは、符号化されたビデオデータを復号するために、ビデオエンコーダと同じ、または時には逆の(reciprocal)コーディング技法を実施する。多くの事例において、ビデオエンコーダはまた、ビデオ復号ループ(video decoding loop)を含み、よってビデオエンコーダは、ビデオデータを符号化することの一部として、ビデオ復号を実施する。したがって、そうでないと述べられていない限り、ビデオデコーダに関して本開示で説明される技法はまた、ビデオエンコーダによっても実施され得、逆もまた同様である。
[0024] 本開示はまた、現在ブロック、現在のピクチャ等のような用語も使用し得る。本開示の文脈においては、現在(current)という用語は、例えば、前にまたは既にコード化されたブロックまたはピクチャ、あるいはまだコード化されていないブロックまたはピクチャとは対照的に、現在コード化されている(currently being coded)ブロックまたはピクチャを識別するように意図されている。
[0025] 図1は、本開示で説明される技法を利用し得る例示的なビデオ符号化および復号システム(video encoding and decoding system)10を例示するブロック図である。図1に示されるように、システム10は、宛先デバイス(destination device)14によって後に復号されることとなる、符号化されたビデオデータを生成するソースデバイス(source device)12を含む。ソースデバイス12および宛先デバイス14は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンのような電話ハンドセット(telephone handset)、いわゆる「スマート」パッド、テレビ、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲーミングコンソール、ビデオストリーミングデバイス、または同様のものを含む多様なデバイスのうちの任意のものを備え得る。一部のケースでは、ソースデバイス12および宛先デバイス14は、ワイヤレス通信(wireless communication)のために装備され得る。
[0026] 宛先デバイス14は、リンク16を介して、復号されることとなる符号化されたビデオデータを受信し得る。リンク16は、符号化されたビデオデータをソースデバイス12から宛先デバイス14に転送することができるいかなるタイプの媒体またはデバイスも備え得る。一例では、リンク16は、ソースデバイス12が、リアルタイムで直接的に宛先デバイス14に符号化されたビデオデータを送信することを可能にする通信媒体を備え得る。符号化されたビデオデータは、ワイヤレス通信プロトコルのような通信規格(communication standard)に従って変調され、宛先デバイス14に送信され得る。通信媒体は、無線周波数(RF)スペクトルまたは1つまたは複数の物理送信経路のようないかなるワイヤレスまたはワイヤード通信媒体も備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットのようなグローバルネットワークのような、パケットベースのネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス12から宛先デバイス14への通信を容易にするために有益であり得る任意の他の機器を含み得る。
[0027] 別の例では、符号化されたデータは、出力インタフェース22から記憶デバイス26へと出力され得る。同様に、符号化されたデータは、入力インタフェースによって記憶デバイス26からアクセスされ得る。記憶デバイス26は、ハードドライブ、Blu−ray(登録商標)ディスク、DVD、CD−ROM、フラッシュメモリ、揮発性または不揮発性メモリ、または符号化されたビデオデータを記憶するための任意の他の好適なデジタル記憶媒体のような、多様な分配型の、または局所的にアクセスされるデータ記憶媒体のうちのいずれのものも含み得る。さらなる例では、記憶デバイス26は、ソースデバイス12によって生成される符号化されるビデオを保持し得るファイルサーバまたは別の中間記憶デバイスに対応し得る。宛先デバイス14は、ストリーミングまたはダウンロードを介して、記憶デバイス26からの記憶されたビデオデータにアクセスし得る。ファイルサーバは、符号化されたビデオデータを記憶する、およびその符号化されたビデオデータを宛先デバイス14に送信することができるいかなるタイプのサーバでもあり得る。例示的なファイルサーバは、(例えば、ウェブサイトのための)ウェブサーバ、FTPサーバ、ネットワーク接続ストレージ(NAS:network attached storage)デバイス、またはローカルディスクドライブを含む。宛先デバイス14は、インターネット接続を含む任意の規格データ接続を通して、符号化されたビデオデータにアクセスし得る。これは、ワイヤレスチャネル(例えば、Wi−Fi接続)、ワイヤード接続(例えば、DSL、ケーブルモデム等)、またはファイルサーバに記憶された符号化されたビデオデータにアクセスするのに適したそれら両方の組合せを含み得る。記憶デバイス26からの符号化されたビデオデータの送信は、ストリーミング送信、ダウンロード送信、またはそれら両方の組合せであり得る。
[0028] 本開示の技法は、ワイヤレスアプリケーションまたはセッティングに必ずしも限定されない。これら技法は、無線テレビブロードキャスト、ケーブルテレビ送信、衛星テレビ送信、例えばインターネットを介したストリーミングビデオ送信、データ記憶媒体上で記憶するためのデジタルビデオの符号化、データ記憶媒体上に記憶されたデジタルビデオの復号、または他のアプリケーションのような、多様なマルチメディアアプリケーションのうちの任意のものをサポートしてビデオコーディング(video coding)に適用され得る。いくつかの例では、システム10は、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティングおよび/またはビデオ電話のようなアプリケーションをサポートするために、一方向または双方向のビデオ送信をサポートするように構成され得る。
[0029] 図1の例では、ソースデバイス(source device)12は、ビデオソース18、ビデオエンコーダ20、および出力インタフェース22を含む。一部のケースでは、出力インタフェース22は、変調器/復調器(モデム)および/または送信機を含み得る。ソースデバイス12では、ビデオソース18は、ビデオキャプチャデバイス、例えばビデオカメラ、前にキャプチャされたビデオを含むビデオアーカイブ、ビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインタフェース、および/またはソースビデオとしてコンピュータグラフィックスデータを生成するためのコンピュータグラフィックスシステム、またはそのようなソースの組合せのようなソースを含み得る。1つの例として、ビデオソース18がビデオカメラである場合、ソースデバイス12および宛先デバイス14は、いわゆるカメラ電話またはビデオ電話を形成し得る。しかしながら、本開示で説明される技法は、一般的にはビデオコーディングに適用可能であり得、および、ワイヤレスおよび/またはワイヤードアプリケーションに適用され得る。
[0030] キャプチャされたか、事前にキャプチャされたか、またはコンピュータによって生成されたビデオは、ビデオエンコーダ20によって符号化され得る。符号化されたビデオデータは、ソースデバイス12の出力インタフェース22を介して宛先デバイス14に直接的に送信され得る。符号化されたビデオデータはまた(または代替的に)、復号および/または再生のための宛先デバイス14または他のデバイスによる後のアクセスのために記憶デバイス26上へと記憶され得る。
[0031] 宛先デバイス14は、入力インタフェース28、ビデオデコーダ30、およびディスプレイデバイス32を含む。一部のケースでは、入力インタフェース28は、受信機()および/またはモデムを含み得る。宛先デバイス14の入力インタフェース28は、リンク16を介して符号化されたビデオデータを受信する。記憶デバイス26上に提供された、またはリンク16を介して通信された符号化されたビデオデータは、ビデオデータを復号する際にビデオデコーダ30のようなビデオデコーダによって使用されるための、ビデオエンコーダ20によって生成される多様なシンタックス要素(syntax element)を含み得る。そのようなシンタックス要素は、通信媒体上で送信される、記憶媒体上に記憶される、またはファイルサーバ上に記憶される符号化されたビデオデータと共に含まれ得る。
[0032] ディスプレイデバイス32は、宛先デバイス14に統合され得るか、または宛先デバイス14の外部にあり得る。いくつかの例では、宛先デバイス14は、統合されたディスプレイデバイスを含み得、また外部のディスプレイデバイスとインタフェースするようにも構成され得る。他の例では、宛先デバイス14は、ディスプレイデバイスであり得る。一般に、ディスプレイデバイス32は、復号されたビデオデータをユーザに表示し、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスのような多様なディスプレイデバイスのうちのいずれのものも備え得る。
[0033] ビデオエンコーダ20およびビデオデコーダ30は、最近完成された高効率ビデオコーディング(HEVC)規格のようなビデオ圧縮規格に従って動作し得る。ビデオエンコーダ20およびビデオデコーダ30は、ISO/IEC Motion Picture Experts Group (MPEG)およびITU-T Video Coding Experts Group (VCEG)のJCT−3V(Joint Collaboration Team on 3D Video Coding Extension Development)ならびにJCT−VC(Joint Collaboration Team on Video Coding)によって開発されたスケーラブル拡張(SHVC)、マルチビュー拡張(MV−HEVC)、または範囲拡張(range extension)のようなHEVC拡張に従ってさらに動作し得る。
[0034] ビデオエンコーダ20およびビデオデコーダ30はまた、代替的にISO/IEC MPEG−4、Part10と呼ばれるITU−T H.264規格、アドバンストビデオコーディング(AVC)、またはそのような規格の拡張、例えば、スケーラブルビデオコーディング(SVC)およびマルチビュービデオコーディング(MVC)拡張のような他の専有または工業規格(proprietary or industry standards)に従って動作し得る。しかしながら、本開示の技法はいかなる特定のコーディング規格にも限定されない。 ビデオ圧縮規格の他の例は、ITU−T H.261、ISO/IEC MPEG−1Visual、ITU−T H.262またはISO/IEC MPEG−2Visual、ITU−T H.263、およびISO/IEC MPEG−4Visualを含む。
[0035] ITU−T VCEG(Q6/16)およびISO/IEC MPEG(JTC1/SC29/WG11)は、現在のHEVC規格(それの、スクリーンコンテンツコーディングおよびハイダイナミックレンジコーディングのための近い将来の拡張および現在の拡張を含む)の圧縮能力を大幅に上回る圧縮能力を有する、将来のビデオコーディング技術の標準化についての潜在的な必要性を現在検討中である。これらのグループは、この分野のそれらの専門家によって提案された圧縮技術設計を評価するために、JVET(Joint Video Exploration Team)として知られる連携した取り組みにおいて、この調査活動について協力して取り組んでいる。JVETは、2015年10月19〜21日の間に最初に開かれた。参照ソフトウェアの1つのバージョン、すなわち、Joint Exploration Model 2 (JEM 2)は、https://jvet.hhi.fraunhofer.de/svn/svn_HMJEMSoftware/tags/HM-16.6-JEM-2.0/.からダウンロードされることができる。JEM2のためのアルゴリズムは、J. Chen, E. Alshina, G. J. Sullivan, J.-R. Ohm, J. Boyce, “Algorithm description of Joint Exploration Test Model 2”, JVET-B1001, San Diego, Mar. 2016に説明されており、その説明は参照によってここに組み込まれる。参照ソフトウェアの別のバージョン、すなわち、Joint Exploration Model 3 (JEM 3)は、https://jvet.hhi.fraunhofer.de/svn/svn_HMJEMSoftware/tags/HM-16.6-JEM-3.0/.からダウンロードされることができる。JEM3についてのアルゴリズムの説明はまた、JVET−C1001とも呼ばれ得、参照によってここに組み込まれる。
[0036] 本開示の技法は、説明を容易にするためにHEVC用語を利用し得る。しかしながら、本開示の技法はHEVCに限定されると見なされるべきではなく、実際には本開示の技法は、HEVCの後継の規格、例えばH.266およびそれの拡張においてインプリメントされ得ることが明示的に考慮されている。
[0037] 図1には示されていないが、いくつかの態様では、ビデオエンコーダ20およびビデオデコーダ30は各々、オーディオエンコーダおよびデコーダと統合され得、オーディオおよびビデオの両方を共通データストリームまたは別々のデータストリームにおいて符号化することに対処するために、適したMUX−DEMUXユニット、または他のハードウェアおよびソフトウェアを含み得る。該当する場合、いくつかの例では、MUX−DEMUXユニットは、ITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)のような他のプロトコルに準拠し得る。
[0038] ビデオエンコーダ20およびビデオデコーダ30は各々、1つまたは複数のマイクロプロセッサ、デジタルシグナルプロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェア、またはそれらの任意の組合せのような多様な好適なエンコーダ回路構成またはデコーダ回路構成のうちのいずれとしてもインプリメントされ得る。これらの技法が部分的にソフトウェアにおいてインプリメントされるとき、デバイスは、ソフトウェアのための命令を、好適な、非一時的なコンピュータ読み取り可能な媒体に記憶し、本開示の技法を実施するために1つまたは複数のプロセッサを使用してハードウェアにおいてそれら命令を実行し得る。ビデオエンコーダ20およびビデオデコーダ30の各々は、1つまたは複数のエンコーダまたはデコーダに含まれ得、それらのうちのいずれも、それぞれのデバイスにおいて、組み合わせられたエンコーダ/デコーダ(CODEC)の一部として、統合され得る。
[0039] HEVCおよび他のビデオコーディング仕様では、ビデオシーケンスは典型的に、一連のピクチャを含む。ピクチャはまた、「フレーム(frame)」とも呼ばれ得る。1つの例示的なアプローチでは、ピクチャは、S、SCb、およびSCrと示される3つのサンプルアレイを含み得る。そのような例示的なアプローチでは、Sは、ルーマサンプル(luma sample)の2次元アレイ(すなわちブロック)である。SCbは、Cbクロミナンスサンプルの2次元アレイである。SCrは、Crクロミナンスサンプルの2次元アレイである。クロミナンスサンプルはまた、ここにおいて「クロマ(chroma)」サンプルとも呼ばれ得る。他の事例では、ピクチャはモノクロであり得、ルーマサンプルのアレイのみを含み得る。
[0040] ピクチャの符号化された表現を生成するために、ビデオエンコーダ20は、コーディングツリーユニット(CTU:coding tree unit)のセットを生成し得る。CTUの各々は、ルーマサンプルのコーティングツリーブロック(coding tree block)、クロマサンプルの2つの対応するコーティングツリーブロック、およびそれらコーティングツリーブロックのサンプルをコード化するために使用されるシンタックス構造(syntax structure)を備え得る。モノクロピクチャまたは3つの別々の色平面を有するピクチャにおいては、CTUは、単一のコーティングツリーブロック、およびそのコーティングツリーブロックのサンプルをコード化するために使用されるシンタックス構造を備え得る。コーティングツリーブロックは、サンプルのNxNブロックであり得る。CTUはまた、「ツリーブロック(tree block)」または「最大コーディングユニット(largest coding unit)」(LCU)とも呼ばれ得る。HEVCのCTUは、H.264/AVCのような他の規格のマクロブロックとおおまかに類似し得る。しかしながら、CTUは必ずしも特定のサイズに限定されず、1つまたは複数のコーディングユニット(CU:coding unit)を含み得る。スライスは、ラスター走査順序で連続して並べられた整数個のCTUを含み得る。
[0041] コード化されたCTUを生成するために、ビデオエンコーダ20は、コーティングツリーブロックをコーディングブロック(coding block)へと分割するために、CTUのコーティングツリーブロックに対して四分木区分(quad-tree partitioning)を再帰的に実施し得るので、よって「コーディングツリーユニット」という名が付いている。コーディングブロックは、サンプルのNxNブロックであり得る。CUは、ルーマサンプルアレイ、Cbサンプルアレイ、およびCrサンプルアレイを有するピクチャの、ルーマサンプルのコーディングブロック、およびクロマサンプルの2つの対応するコーディングブロック、ならびにそれらコーディングブロックのサンプルをコード化するために使用されるシンタックス構造を備え得る。モノクロピクチャまたは3つの別々の色平面を有するピクチャでは、CUは、単一のコーディングブロック、およびそのコーディングブロックのサンプルをコード化するために使用されるシンタックス構造を備え得る。
[0042] ビデオエンコーダ20は、CUのコーディングブロックを1つまたは複数の予測ブロックへと区分し得る。予測ブロックは、同じ予測が適用されるサンプルの長方形(すなわち、正方形または非正方形の)ブロックである。CUの予測ユニット(PU:prediction unit)は、ルーマサンプルの予測ブロック、クロマサンプルの2つの対応する予測ブロック、およびそれら予測ブロックを予測するために使用されるシンタックス構造を備え得る。モノクロピクチャまたは3つの別々の色平面を有するピクチャでは、PUは、単一の予測ブロック、およびその予測ブロックを予測するために使用されるシンタックス構造を備え得る。ビデオエンコーダ20は、CUの各PUのルーマ、Cb、およびCr予測ブロックについての予測的なルーマ、Cb、およびCrブロックを生成し得る。
[0043] ビデオエンコーダ20は、PUについての予測ブロックを生成するためにイントラ予測(intra prediction)またはインター予測(inter prediction)を使用し得る。ビデオエンコーダ20があるPUの予測ブロックを生成するためにイントラ予測を使用する場合、ビデオエンコーダ20は、そのPUに関連するピクチャの復号されたサンプルに基づいて、PUの予測ブロックを生成し得る。ビデオエンコーダ20があるPUの予測ブロックを生成するためにインター予測を使用する場合、ビデオエンコーダ20は、そのPUに関連するピクチャ以外の1つまたは複数のピクチャの復号されたサンプルに基づいて、そのPUの予測ブロックを生成し得る。
[0044] ビデオエンコーダ20がCUの1つまたは複数のPUについての予測的なルーマ、Cb、およびCrブロックを生成した後、ビデオエンコーダ20は、CUについてのルーマ残差ブロックを生成し得る。CUのルーマ残差ブロック中の各サンプルは、CUの予測的なルーマブロックのうちの1つ中のルーマサンプルと、CUの元のルーマコーディングブロック中の対応するサンプルとの間の差を示す。加えて、ビデオエンコーダ20は、CUについてのCb残差ブロックを生成し得る。CUのCb残差ブロック中の各サンプルは、CUの予測的なCbブロックのうちの1つ中のCbサンプルと、CUの元のCbコーディングブロック中の対応するサンプルとの間の差を示し得る。ビデオエンコーダ20はまた、CUについてのCr残差ブロックを生成し得る。CUのCr残差ブロック中の各サンプルは、CUの予測的なCrブロックのうちの1つ中のCrサンプルと、CUの元のCrコーディングブロック中の対応するサンプルとの間の差を示し得る。
[0045] さらに、ビデオエンコーダ20は、CUのルーマ、Cb、およびCr残差ブロックを1つまたは複数のルーマ、Cb、およびCr変換ブロック(transform block)へと分解するために四分木区分を使用し得る。変換ブロックは、同じ変換が適用されるサンプルの長方形(例えば、正方形または非正方形)のブロックである。CUの変換ユニット(TU:transform unit)は、ルーマサンプルの変換ブロック、クロマサンプルの2つの対応する変換ブロック、およびそれら変換ブロックサンプルを変換するために使用されるシンタックス構造を備え得る。したがって、CUの各TUは、ルーマ変換ブロック、Cb変換ブロック、およびCr変換ブロックに関連し得る。TUに関連するルーマ変換ブロックは、CUのルーマ残差ブロックのサブブロックであり得る。Cb変換ブロックは、CUのCb残差ブロックのサブブロックであり得る。Cr変換ブロックは、CUのCr残差ブロックのサブブロックであり得る。モノクロピクチャまたは3つの別々の色平面を有するピクチャでは、TUは、単一の変換ブロック、およびその変換ブロックのサンプルを変換するために使用されるシンタックス構造を備え得る。
[0046] ビデオエンコーダ20は、TUのルーマ変換ブロックに対して1つまたは複数の変換を適用してそのTUについてのルーマ係数ブロックを生成し得る。係数ブロックは、変換係数の2次元アレイであり得る。変換係数は、スカラー量であり得る。ビデオエンコーダ20は、TUのCb変換ブロックに対して1つまたは複数の変換を適用してそのTUについてのCb係数ブロックを生成し得る。ビデオエンコーダ20は、TUのCr変換ブロックに対して1つまたは複数の変換を適用してそのTUについてのCr係数ブロックを生成し得る。
[0047] 係数ブロック(例えば、ルーマ係数ブロック、Cb係数ブロック、またはCr係数ブロック)を生成した後、ビデオエンコーダ20は、その係数ブロックを量子化し得る。量子化は一般的には、変換係数を表すために使用されるデータの量を可能な限り減少させるために変換係数が量子化される処理を指し、それはさらなる圧縮を提供する。ビデオエンコーダ20が係数ブロックを量子化した後、ビデオエンコーダ20は、量子化された変換係数を示すシンタックス要素をエントロピー符号化し得る。例えば、ビデオエンコーダ20は、量子化された変換係数を示すシンタックス要素に対してコンテキスト適応型バイナリ算術コーディング(CABAC:Context-Adaptive Binary Arithmetic Coding)を実施し得る。
[0048] ビデオエンコーダ20は、コード化されたピクチャの表現を形成するビットのシーケンスおよび関連するデータを含むビットストリームを出力し得る。ビットストリームは、ネットワーク抽象レイヤ(NAL:Network Abstraction Layer)ユニットのシーケンスを備え得る。NALユニットは、NALユニット中のデータのタイプのインジケーションと、必要に応じてエミュレーション防止ビットが組み入れられたローバイトシーケンスペイロード(RBSP:raw byte sequence payload)の形式でそのデータを含むバイトとを含む、シンタックス構造である。NALユニットの各々は、NALユニットヘッダを含み、RBSPをカプセル化する。NALユニットヘッダは、NALユニットタイプコードを示すシンタックス要素を含み得る。NALユニットのNALユニットヘッダによって指定されるNALユニットタイプコードは、NALユニットのタイプを示す。RBSPは、NALユニット内にカプセル化された整数個のバイトを含むシンタックス構造であり得る。いくつかの事例では、RBSPはゼロビットを含む。
[0049] 異なるタイプのNALユニットは、異なるタイプのRBSPをカプセル化し得る。例えば、第1のタイプのNALユニットは、PPSについてのRBSPをカプセル化し得、第2のタイプのNALユニットは、コード化されたスライスについてのRBSPをカプセル化し得、第3のタイプのNALユニットは、SEIメッセージについてのRBSPをカプセル化し得る、等である。(SEIメッセージおよびパラメータセットについてのRBSPとは対照的に)ビデオコーディングデータについてのRBSPをカプセル化するNALユニットは、VCL NALユニットと呼ばれ得る。
[0050] ビデオデコーダ30は、ビデオエンコーダ20によって生成されるビットストリームを受信し得る。加えて、ビデオデコーダ30は、ビットストリームからシンタックス要素を取得するために、ビットストリームをパース(parse)し得る。ビデオデコーダ30は、ビットストリームから取得されたシンタックス要素に少なくとも部分的に基づいて、ビデオデータのピクチャを再構成し得る。ビデオデータを再構成するための処理は、ビデオエンコーダ20によって実施される処理と概して逆の関係(generally reciprocal to)であり得る。加えて、ビデオデコーダ30は、現在CUのTUに関連する係数ブロックを逆量子化し得る。ビデオデコーダ30は、現在CUのTUに関連する変換ブロックを再構成するために係数ブロックに対して逆変換を実施し得る。ビデオデコーダ30は、現在CUのPUについての予測ブロックのサンプルを現在CUのTUの変換ブロックの対応するサンプルに追加することによって現在CUのコーディングブロックを再構成し得る。ピクチャの各CUについてのコーディングブロックを再構成することによって、ビデオデコーダ30は、ピクチャを再構成し得る。
[0051] 以下は、離散サインおよびコサイン変換の説明である。ビデオエンコーダ20およびビデオデコーダは、残差ビデオデータをコード化するために、変換および逆変換をそれぞれ使用し得る。変換は、入力信号の代替的な表現を導出する処理を示す。例えば、変換は、(例えば、ビデオ符号化においては)ピクセル領域から周波数領域へ、または(例えば、ビデオ復号においては)周波数領域からピクセル領域へ、値を変換する。Nポイントのベクトルx=[x,x,…,xN−1および所与のベクトルのセット{Φ,Φ,…,ΦM−1}を所与とすると、xは、Φ,Φ,…,ΦM−1の一次結合を使用して正確に表されるまたは近似されることができ、それは、以下の様に定式化されることができ、
Figure 2019534624
ここで、
Figure 2019534624
は、xの近似値であるかまたはxに等しい可能性があり、ベクトルf=[f,f,f,..,fM−1]は、変換係数ベクトル(transform coefficient vector)と呼ばれ、{Φ,Φ,…,ΦM−1}は変換基底ベクトル(transform basis vector)である。
[0052] ビデオコーディングのシナリオでは、変換係数は、大体非相関およびスパース(roughly non-correlated and sparse)である、すなわち、入力ベクトルxのエネルギは、いくつかの変換係数に対してのみに集中(compacted)され、残りの大多数の変換係数は典型的には0に近い。例えば、ビデオエンコーダが変換ブロックを係数ブロックに変換するとき、係数ブロック中の非ゼロ係数(nonzero coefficient)値は、係数ブロックの左上角(top-left corner)においてまとめてグループ化される傾向があり、他の係数値の大多数はゼロである。係数ブロックの左上角の近くにグループ化される非ゼロ係数は低周波数成分を反映するのに対して、ゼロになる傾向がある係数ブロックの右下角(bottom-right corner)近くの係数値は、高周波数成分を反映する。
[0053] 特定の入力データを所与とすると、エネルギ集中の観点から最適な変換は、いわゆるカルーネンレーベ変換(KLT:Karhunen-Loeve transform)であり、それは変換基底ベクトルとして入力データの共分散行列(covariance matrix)の固有ベクトル(eigen vector)を使用する。ゆえに、KLTは、実際にはデータ依存型変換であり、一般的な数学的定式化を有しない。しかしながら、ある特定の仮定の下で、例えば、入力データが一次固定マルコフ過程(a first-order stationary Markov process)を形成するとき、対応するKLTは実際ユニタリ変換のシヌソイダルファミリ(sinusoidal family)のメンバであることが文献において証明されており、それはJain, A.K., A sinusoidal family of unitary transforms, IEEE Trans. on Pattern Analysis and Machine Intelligence, 1, 356, 1979に説明されている。ユニタリ変換のシヌソイダルファミリは、以下のように定式化される変換基底ベクトルを使用した変換を示し、
Figure 2019534624
ここでeは2.71828におおよそ等しい自然対数の底であり、A、B、およびθは一般に複素数であり、mの値に依存する。
[0054] (一次固定マルコフ過程についての)離散フーリエ、コサイン、サイン、およびKLTを含むいくつかの周知の変換は、ユニタリ変換のこのシヌソイダルファミリのメンバである。S. A. Martucci, "Symmetric convolution and the discrete sine and cosine transforms," IEEE Trans. Sig. Processing SP-42, 1038-1051 (1994)、によれば、完全な離散コサイン変換(DCT:discrete cosine transform)および離散サイン変換(DST:discrete sine transform)ファミリは、異なるタイプに基づいた合計16個の変換を含み、それはすなわち、A、B、およびθの異なる値であり、異なるタイプのDCTおよびDSTの完全な定義は以下に与えられる。
[0055] 入力Nポイントベクトルがx=[x,x,…,xN−1と示され、それがマトリックスを乗算することによってy=[y,y,…,yN−1と示される別のNポイント変換係数ベクトルへと変換されると仮定すると、それの処理は、以下の変換定式化のうちの1つに従ってさらに例示されることができ、ここでkは、両端値を含む0〜N−1にわたる:
Figure 2019534624
Figure 2019534624
Figure 2019534624
[0056] 上記は、異なるDCTおよびDSTタイプの例を提供し、全体で16種の変換タイプが存在する。変換タイプ(transform type)は、変換基底関数(transform basis function)の数学的定式化によって規定される。変換タイプと変換サイズとは混同されるべきではない。変換タイプは、基底関数を指し、それに対して変換サイズは変換のサイズを指す。例えば、4ポイントDST−VIIおよび8ポイントDST−VIIは、Nの値(例えば、4ポイントまたは8ポイント)に関わらず同じ変換タイプを有する。
[0057] 一般性を失うことなく、上記変換タイプはすべて、以下の一般化された定式化を使用して表されることができる:
Figure 2019534624
ここでTは、DCT Type−I〜DCT Type−VIII、またはDST Type−I〜DST Type−VIII等の1つのある特定の変換の定義によって指定される変換マトリックス(transform matrix)であり、Tの行ベクトル、例えば、[Ti,0,Ti,1,Ti,2,…,Ti,N-1]は、i番目の変換基底ベクトルである。Nポイント入力ベクトルに対して適用される変換は、Nポイント変換と呼ばれる。
[0058] 上記の変換定式化は、1−D入力データxに対して適用されるものであるが、それは以下のようなマトリックス乗算公式において表されることができることにもまた留意されたい
y=T・x
ここでTは、変換マトリックスを示し、xは入力データベクトルを示し、yは出力変換係数ベクトルを示す。
[0059] 例えば、ビデオエンコーダは、変換係数ベクトルを生成するためにマトリックスの乗算y=T・xを実施し得る。ビデオデコーダは、変換係数ベクトルから変換ベクトルを生成するために逆マトリックス乗算(inverse matrix multiplication)を実施し得る。
[0060] 上で紹介されたような変換は、1−D入力データに対して適用され、変換はまた2−D入力データソースについても拡張されることができる。Xは入力MxNデータアレイであると仮定する。2−D入力データに対して変換を適用する典型的な方法は、分離可能なおよび分離不可能な2−D変換を含む。
[0061] 分離可能な2−D変換は、連続的にXの水平および垂直ベクトルに対して1−D変換を適用し、以下のように定式化される:
Y=C・X・R
ここでCおよびRは所与のMxMおよびNxN変換マトリックスをそれぞれ示す。
[0062] 定式化から、CはXの列ベクトルに対する1−D変換に適用され、一方でRはXの行ベクトルに対する1−D変換に適用されることを見て取ることができる。本開示の後半では、簡潔さのために、CおよびRを左(垂直)および右(水平)変換として表し、それらの両方は変換ペアを形成する。CがRに等しく、直交マトリックスである場合がある。そのような場合には、分離可能な2−D変換は、1つの変換マトリックスのみによって決定される。
[0063] 分離不可能な2−D変換は、例として以下の数学的マッピングを行うことによって、Xの全要素を単一のベクトル、つまりX’へと最初に再編成した:
X′(i・N+j)=Xi,j
[0064] 次いで1−D変換T’が以下のようにX’に対して適用される:
Y=T′・X
ここでT’は、(M*N)x(M*N)変換マトリックスである。
[0065] ビデオコーディングでは、分離可能な2−D変換が典型的に適用される、なぜなら分離可能な2−D変換は典型的に、1−D変換に比べてより少ない演算(加算、乗算)カウントを使用するからである。以下により詳細に説明されるように、本開示は、ビデオエンコーダおよびビデオデコーダが左および右変換を決定するのに用いる例示的な技法を説明する。
[0066] 例えば、ビデオエンコーダおよびビデオデコーダは、複数の変換サブセットを決定し得、各変換サブセットは複数の候補変換を識別する。16種の可能性のある変換(例えば、DCT−1〜DCT−8およびDST−1〜DST−8)の例として、ビデオエンコーダおよびビデオデコーダは、3つの変換サブセットを決定し得、それら変換サブセットの各々は、16種の変換のうちの2つ以上を含む。ビデオエンコーダおよびビデオデコーダは、3つの変換サブセットのうちの1つを選択して、その選択された変換サブセットから左変換(例えば、C)を決定し、および3つの変換サブセットのうちの1つを選択して、その選択された変換サブセットから右変換(例えば、R)を決定し得る。選択された変換サブセットは、異なるサブセットまたは同じサブセットであり得る。
[0067] 変換効率(transform efficiency)は、異なる基準によって測定されることができ、1つの伝統的な測定は、変換効率の定義であり、以下に説明されるような変換コーディング利得(transform coding gain)である:
Figure 2019534624
ここでσ Ynは、変換係数Y(n)の分散(variance)である。より多くの例がまたhttp://web.stanford.edu/class/ee398a/handouts/lectures/07-TransformCoding.pdfにおいても見つけられ得る。
[0068] 以下は、HEVCにおいて適用される変換タイプの説明である。H.264/AVCのような例示的なビデオコーデックでは、4ポイントおよび8ポイント離散コサイン変換(DCT)Type−IIの整数の近似値は、イントラおよびインター予測残差の両方に対して適用される。イントラ予測残差は、イントラ予測からの残差を指し、インター予測残差は、インター予測からの残差を指す。残差、インター予測およびイントラ予測はすべて以下に、より詳細に説明される。一般に、残差ブロックは、複数の変換ブロックへと分割される。ビデオ符号化では、変換は、係数ブロックを生成するために、変換ブロックの各々に適用される。ビデオ復号では、変換は、変換ブロックを生成するおよび残差ブロックを再構成するために、係数ブロックの各々に適用される。
[0069] 残差サンプルの様々な統計値により良く順応するために、より新しい世代のビデオコーデックでは、DCT Type−II以外のより柔軟なタイプの変換が利用される。例えば、HEVCでは、4ポイントType−VII離散サイン変換(DST)の整数の近似値が、イントラ予測残差のために利用され、それは、DST Type−VIIがイントラ予測方向に沿って生成される残差ベクトルについてDCT Type−IIより効率的であること、例えば、DST Type−VIIが水平イントラ予測方向によって生成される行残差ベクトルについてDCT Type−IIより効率的であること、が理論的に証明されており、かつ実験的に正当性が立証されている。例えば、J. Han、A. SaxenaおよびK. Rose、“Towards jointly optimal spatial prediction and adaptive transform in video/image coding,” IEEE International Conference on Acoustics, Speech and Signal Processing (ICASSP), March 2010, pp. 726-729参照。
[0070] HEVCでは、4ポイントDST Type−VIIの整数の近似値は、4x4ルーマイントラ予測残差ブロックに対してのみ適用される(ルーマイントラ予測残差ブロックは、以下により詳細に説明される)。HEVCで使用される4ポイントDST−VIIは、図2Aに示される。
[0071] HEVCでは、4x4ルーマイントラ予測残差ブロックでない残差ブロックについて、4ポイント、8ポイント、16ポイント、および32ポイントのDCT Type−IIの整数の近似値がまた適用される。図2Bは、4ポイントDCT−IIの例を例示し、図2Cは、8ポイントDCT−IIの例を例示し、図2Dは、16ポイントDCT−IIの例を例示し、および図2Eは、32ポイントDCT−IIの例を例示する。図2A〜図2Eは、タイプIIの異なるサイズのDCTの例を例示し、図2A〜図2Eと同様に、異なるタイプのNポイントDCTおよびDSTの例がある。
[0072] 上述したように、CUは1つまたは複数のTUを含む。以下は、HEVCにおける残差四分木に基づく変換スキームを説明する。残差ブロックの様々な特性に適応するために、残差四分木(RQT:residual quadtree)を使用した変換コーディング構造がHEVCにおいて適用され、それはhttp://www.hhi.fraunhofer.de/fields-of-competence/image-processing/research-groups/image-video-coding/hevc-high-efficiency-video-coding/transform-coding-using-the-residual-quadtree-rqt.htmlに簡単に説明されている。
[0073] 上述したように、各ピクチャはCTUへと分割され、それらは特定のタイルまたはスライスについてラスター走査順序でコード化される。CTUは、四角ブロック(square block)であり、四分木のルート(root)、すなわち、コーディングツリー(coding tree)を表す。CTUサイズは、8×8〜64×64のルーマサンプルにわたり得るが、典型的には64×64が使用される。各CTUは、コーディングユニット(CU)と呼ばれるより小さい四角ブロックにさらに分割されることができる。CTUが再帰的にCUへと分割された後、各CUは、予測ユニット(PU)および変換ユニット(TU)へとさらに分割される。CUのTUへの区分は、四分木アプローチに基づいて再帰的に実行されるので、よって各CUの残差信号は、ツリー構造、つまり残差四分木(RQT)によってコード化される。RQTは、TUサイズに4×4から32×32までのルーマサンプルを許す。
[0074] 図3は、CUが「a」〜「j」の文字でラベル付けされた10個のTUと対応するブロック区分を含む例を示す。RQTの各ノードは、実際、変換ユニット(TU)である。個々のTUは、深さ優先ツリー巡回順序(depth-first tree traversal order)で処理され、それは、アルファベット順として図3に例示されており、それは深さ優先巡回での再帰的なZスキャンに従う(follows a recursive Z-scan)。四分木アプローチは、残差信号の様々な空間−周波数特性に対する変換の適応を可能にする。典型的には、より大きな変換ブロックサイズは、より大きな空間のサポートを有するものであり、より良い周波数分解能を提供する。しかしながら、より小さい変換ブロックサイズは、より小さい空間のサポートを有するものであり、より良い空間分解能を提供する。これら2つ、空間分解能と周波数分解能との間のトレードオフは、例えばレートひずみ最適化技法に基づいて、(例えば、ビデオエンコーダ20による)エンコーダモード決定によって選ばれる。レートひずみ最適化技法は、コーディングビットと復元ひずみとの重み付けされた合計、すなわち、レートひずみコスト(rate-distortion cost)をコーディングモード(coding mode)(例えば、特定のRQT分割構造)ごとに計算し、最小のレートひずみコスト(least rate-distortion cost)を有するコーディングモードを最良のモードとして選択する。
[0075] RQTにおいて3つのパラメータ、つまりツリーの最大深度、最小許容変換サイズ、および最大許容変換サイズが定義される。最小および最大変換サイズは、4×4〜32×32サンプルにわたる範囲内で変化することができ、それは、前段落で言及したサポートされたブロック変換に対応する。RQTの最大許容深度は、TUの数を制限する。ゼロに等しい最大深度は、各含まれたTB(変換ブロック)が最大許容変換サイズ、例えば32x32に到達する場合にCB(コーディングブロック)がそれ以上分割されることができないことを意味する。
[0076] すべてのこれらのパラメータは、RQT構造と相互作用し、およびRQT構造に影響を与える。ルートCBサイズが64×64であり、最大深度がゼロに等しく、最大変換サイズが32×32に等しい場合を検討する。このケースでは、CBは少なくとも一旦区分される必要があるが、その理由はもしそうでなければそれが64×64のTBをもたらすことになり、それは許容されていないからである。HEVCでは、より大きなサイズの変換、例えば64x64の変換は、主として、すべてを考慮すると割に限定されたそれの利益、および比較的より小さな解像度のビデオ(relatively smaller resolution videos)についての比較的高い複雑性が理由で、採用されない。
[0077] RQTパラメータ、すなわち、最大RQT深度、最小および最大変換サイズは、シーケンスパラメータセットレベルにおいてビットストリーム中で送信される。RQT深度に関して、イントラおよびインターコード化されたCU(すなわち、イントラ予測された符号化されたCUまたはインター予測された復号されたCUまたはイントラ予測された符号化されたCUまたはインター予測されたCU)について、異なる値が指定されシグナリングされることができる。
[0078] 四分木変換が、イントラおよびインター残差ブロックの両方に対して適用される。典型的には、同じサイズの現在の残差四分木区分のDCT−II変換が、残差ブロックに対して適用される。しかしながら、現在の残差四分木ブロックが4x4であり、イントラ予測によって生成される場合、上記の4x4DST−VII変換が適用される。
[0079] 以下は、HEVCにおける係数コーディングを説明する。TUサイズに関わらず、変換ユニットの残差は、オーバーラップ(overlap)していない係数グループ(CG:coefficient group)を用いてコード化され、各々はTUの4x4ブロックの係数を含む。例えば、32x32のTUは合計64のCGを有し、16x16のTUは合計16のCGを有する。TU内のCGは、ある特定の事前に定義された走査順序に従ってコード化される。各CGをコード化するとき、現在のCG内の係数は、4x4ブロックのためのある特定の事前に定義された走査順序に従って走査およびコード化される。図4は、4つのCGを含む8x8のTUについての係数走査を例示する。
[0080] 色成分ごとに、初めに1つのフラグが、現在の変換ユニットが少なくとも1つの非ゼロ係数を有するかどうかを示すためにシグナリングされ得る。少なくとも1つの非ゼロ係数が存在する場合、変換ユニット内の係数走査順序における最後の有効係数の位置が次いで、変換ユニットの左上角に対するコーディネーション(coordination)を用いて明示的にコード化される。そのコーディネーションの垂直または水平成分は、それのプリフィックスおよびサフィックスによって表され、ここでプリフィックスはトランケーティド・ライス(TR:truncated rice)を用いて2値化され、サフィックスは、固定長を用いて2値化される。
[0081] last_sig_coeff_x_prefixの値は、変換ブロック内の走査順序における最後の有効係数の列の位置のプリフィックスを指定する。last_sig_coeff_x_prefixの値は、両端値を含む0〜(log2TrafoSize<<1)−1の範囲にあるものとする。
[0082] last_sig_coeff_y_prefixの値は、変換ブロック内の走査順序における最後の有効係数の行の位置のプリフィックスを指定する。last_sig_coeff_y_prefixの値は、両端値を含む0〜(log2TrafoSize<<1)−1の範囲にあるものとする。
[0083] last_sig_coeff_x_suffixの値は、変換ブロック内の走査順序における最後の有効係数の列の位置のサフィックスを指定する。last_sig_coeff_x_suffixの値は、両端値を含む0〜(1<<((last_sig_coeff_x_prefix>>1)−1))−1の範囲にあるものとする。
[0084] 変換ブロック内の走査順序における最後の有効係数の列の位置LastSignificantCoeffXは、以下の様に導出される:
−last_sig_coeff_x_suffixが存在しない場合、以下が適用される:
LastSignificantCoeffX=last_sig_coeff_x_prefix
−もしそうでなければ(last_sig_coeff_x_suffixが存在すれば)以下が適用される:
LastSignificantCoeffX=(1<<((last_sig_coeff_x_prefix>>1)−1))*(2+(last_sig_coeff_x_prefix&1))+last_sig_coeff_x_suffix
[0085] last_sig_coeff_y_suffixの値は、変換ブロック内の走査順序における最後の有効係数の行の位置のサフィックスを指定する。last_sig_coeff_y_suffixの値は、両端値を含む0〜(1<<((last_sig_coeff_y_prefix>>1)−1))−1の範囲にあるものとする。
[0086] 変換ブロック内の走査順序における最後の有効係数の行の位置LastSignificantCoeffYは、以下の様に導出される:
−last_sig_coeff_y_suffixが存在しない場合、以下が適用される:
LastSignificantCoeffY=last_sig_coeff_y_prefix

−もしそうでなければ(last_sig_coeff_y_suffixが存在すれば)以下が適用される:
LastSignificantCoeffY=(1<<((last_sig_coeff_y_prefix>>1)−1))*(2+(last_sig_coeff_y_prefix&1))+last_sig_coeff_y_suffix
[0087] scanIdxの値が2に等しいとき、座標は以下の様にスワップされる:
(LastSignificantCoeffX,LastSignificantCoeffY)=Swap(LastSignificantCoeffX,LastSignificantCoeffY)
[0088] そのようなコード化される位置と、またCGの係数走査順序とを用いると、1つのフラグがさらに(走査順序で)最後のCG以外のCGについてシグナリングされ、それは、それが非ゼロ係数を含むかどうかを示す。非ゼロ係数を包含し得るそれらのCGについて、有効フラグ、係数の絶対値、およびサイン情報は、事前に定義された4x4の係数走査順序に従って係数ごとにさらにコード化され得る。
[0089] 上述したように、本開示で説明される技法は、ビデオエンコーダ20が変換ブロックを係数ブロックに変換するために適用する変換を決定するための方法と、ビデオデコーダ30が係数ブロックを変換ブロックに変換するために(例えば、逆変換として)適用する変換を決定するための方法を説明する。以下は、イントラおよびインター予測残差のための複数の変換(例えば、残差ブロックがイントラ予測から生成される場合についての、および残差ブロックがインター予測から生成される場合についての異なる変換タイプ)を説明する。
[0090] 一部のケースでは、DST Type−VIIは従来のDCT Type−IIに比べて効率的にイントラコーディング効率を改善することができるにも関わらず、変換効率は比較的限定されている、なぜなら、予測残差は様々な統計値を提示し、かつDCT Type−IIおよびDST Type−VIIの固定された使用は、すべての可能性のあるケースに効率的に適応することができないからである。いくつか技法が異なる複数のケースに適応するために提案されている。
[0091] S.-C. Lim、D.-Y. Kim、S. Jeong、J. S. Choi、H. ChoiおよびY.-L. Lee、“Rate-distortion optimized adaptive transform coding,” Opt. Eng., vol. 48, no. 8, pp. 087004-1-087004-14, Aug. 2009には、予測残余(prediction residue)についてのDCTまたはDSTの整数バージョンを適応的に用いる新しい変換スキームが提案され、各ブロックについて、DCTまたはDST変換が予測残余のために使用されるかどうかがシグナリングされる。Y. YeおよびM. Karczewicz、“Improved H.264 intra coding based on bidirectional intra prediction, directional transform, and adaptive coefficient scanning,” in Proc. 15th IEEE Int. Conf. Image Process., Oct. 2008, pp. 2116-2119では、モード依存型変換(MDDT:mode dependent transform m)が適用されるように、KLTペアとして事前に定義された、一意の対の変換(CおよびR)に各イントラ予測モードがマッピングされることができることが提案されている。この方法で、異なるイントラ予測モードについて異なるKLT変換が使用されることができるが、しかしながら、いずれの変換が使用されることになるかは事前に定義され、イントラ予測モードに依存する。
[0092] しかしながら、X. Zhao、L. Zhang、S. W. Ma、およびW. Gao、“Video coding with rate-distortion optimized transform,” IEEE Trans. Circuits Syst. Video Technol., vol. 22, no. 1, pp. 138-151, Jan. 2012では、より多くの変換が使用されることができ、およびオフライントレーニング処理(off-line training process)から導出される事前に定義された変換候補(transform candidate)のセットからの変換に対するインデックスが明示的にシグナリングされる。MDDTと同様に、各イントラ予測方向は、それの一意のセットの対の変換を有し得る。インデックスは、どの変換ペアがそのセットから選ばれるかを指定するためにシグナリングされる。例えば、最も小さいブロックサイズ4x4について4つまでの垂直KLT変換と4つまでの水平KLT変換が存在し、よって16個の組合せが選ばれ得る。より大きなブロックサイズについては、より少ない数の組合せが使用される。「Video coding with rate−distortion optimized transform」において提案された方法がイントラおよびインター予測残差の両方に適用される。インター予測残差については、16個までの組合せのKLT変換が選ばれることができ、それらの組合せ(4x4については4つ、および8x8については16個)のうちの1つに対するインデックスがブロックごとにシグナリングされる。
[0093] A. SaxenaおよびF. Fernandes、“DCT/DST-based transform coding for intra prediction in image/video coding,” IEEE Trans. Image ProcessingおよびC. Yeo、Y. H. Tan、Z. Li、およびS. Rahardja、“Mode-dependent transforms for coding directional intra prediction residuals,” IEEE Trans. Circuits Syst. Video Technol., vol. 22, no. 4, pp. 545-554, 2012では、複数の変換が使用されるが、しかしながら、(典型的には訓練(train)される必要がある)KLT変換を使用する代わりに、DCT(DCT−II)またはDST(DST−VII)のいずれかが、(左および右変換(例えば、CおよびR)の両方が同じである状態で)変換ユニットのために使用され、どちらが使用されるかはシグナリングされるフラグによって決定される。F. Zou、O. C. Au、C. Pang、J. Dai、およびF. Lu、“Rate-Distortion Optimized Transforms Based on the Lloyd-Type Algorithm for Intra Block Coding ,” IEEE Journal of Selected Topics in Signal Processing, Volume:7 , Issue: 6, Nov. 2013では、いくつかの事前に定義されたKLT変換ペアが使用され、コーディングユニットについて変換ペアに対するインデックスが(導出される代わりに)シグナリングされて、その結果コーディングユニットの各変換ユニットは同じ対の変換を使用する。
[0094] J. An、X. Zhao、X. GuoおよびS. Lei、“Non-CE7: Boundary-Dependent Transform for Inter-Predicted Residue,” JCTVC-G281では、TUのインター予測された残差について複数の変換が、CU内のそれらのロケーションに従って選ばれる。CおよびR変換の両方は、DST−VIIおよびフリップされたバージョンのDST−VIIから選ばれる。ゆえに、4つまでの組合せが、CU内のTUについて可能性がある。しかしながら、組み合せはPUのロケーションによって完全に決定されるので、どの組合せが使用されているかをシグナリングする必要はない。
[0095] エンハンストマルチプル変換(EMT:enhanced multiple transform)の態様がこれより説明されることとなる。JEMでは、EMT(また時には適応型マルチプル変換(Adaptive Multiple Transform)、すなわち、AMTと呼ばれることもある)がインターおよびイントラコード化ブロックの両方についての残差コーディングに関して提案されている。このEMTスキームの態様は、2016年1月25日に出願された米国特許出願15/005,736に説明されている。EMTは、HEVCにおける現在の変換以外のDCT/DSTファミリからの複数の選択された変換を利用する。新しく導入された変換マトリックスは、DST−VII、DCT−VIII、DST−IおよびDCT−Vである。以下の表は、選択されたDST/DCTの基底関数を示す
[0096] 変換マトリックスの直交性を保つために、変換マトリックスは、HEVCにおける変換マトリックスよりも正確に量子化される。16ビットの範囲内に変換された係数の中間値を保つために、水平変換の後におよび垂直変換の後に、すべての係数は、現在のHEVC変換で使用される右シフトと比較して2ビット分多く右にシフトされる。
[0097] AMTは、幅および高さの両方が64よりも小さいかまたは64に等しいCUに適用され、AMTが適用されるかどうかは、CUレベルフラグによって制御される。CUレベルフラグが0に等しいとき、残余を符号化するためにCUにおいてDCT−IIが適用される。AMTが可能にされたCU内のルーマコーディングブロックについては、2つの追加的なフラグが、使用されることになる水平および垂直変換を識別するためにシグナリングされる。
[0098] イントラ残余(残差)コーディング(intra residue (residual) coding)については、異なるイントラ予測モードの異なる残差統計値に起因して、モード依存型変換候補選択処理(mode-dependent transform candidate selection process)が使用される。3つの変換サブセットが表1に示されるように定義されており、変換サブセットは、表2に定められたようなイントラ予測モードに基づいて選択される。
Figure 2019534624
[0099] サブセットの概念を用いると、変換サブセットは、初めに、CU−レベルAMTフラグが1に等しいCUのイントラ予測モードを使用して表1に基づいて識別される。その後、水平および垂直変換の各々について、表2に従って、識別された変換サブセット中の2つの変換候補のうちの1つが、ラグを伴って明示的にシグナリングされたに基づいて、選択される。
Figure 2019534624
[0100] インター予測残差については、しかしながら、DST−VIIおよびDCT−VIIIから構成される1つの変換セットのみが、すべてのインターモードについて、および水平および垂直変換の両方について、使用される。
[0101] 分離不可能な二次変換(NSST:non-separable secondary transform)の態様がこれより説明される。JEMでは、モード依存型NSSTがフォワードコア変換と量子化との間で(エンコーダにおいて)、および量子化解除(de-quantization)と逆コア変換(inverse core transform)との間で(デコーダサイドにおいて)適用される。モード依存型NSST(MDNSST:mode dependent NSST)の態様は、両方2016年9月20日に出願された米国特許出願第15/270,455号および第15/270,507号に説明されている。図5は、二次変換の例を示す。図5に示されるように、MDNSSTは、イントラコード化CU内の変換係数の4×4のサブグループごとに独立して実施され、イントラCUにおいてのみ適用される。
[0102] 分離不可能な変換のアプリケーションは、例として入力を使用して以下の様に説明される。分離不可能な変換を適用するために、4x4の入力ブロックX
Figure 2019534624
は、ベクトル
Figure 2019534624
Figure 2019534624
として表される。
[0103] 分離不可能な変換は、
Figure 2019534624
として計算され、ここで、
Figure 2019534624
は、変換係数ベクトルを示し、Tは16x16の変換マトリックスである。16x1の係数ベクトル
Figure 2019534624
は、そのブロックについての走査順序を使用して4x4ブロック(水平、垂直または対角)として、続いて再編成される。より小さいインデックスを有する係数は、4x4の係数ブロック内により小さい走査インデックスを用いて配置され得る。
[0104] 合計11×3(方向性モードについて)6+1×2(非方向性モードについて)の分離不可能な変換マトリックスが存在し、ここで11は、方向性イントラ予測モード(directional intra prediction mode)についての変換セットの数であり、各変換セットは、3つの変換マトリックスを含む。一方、非方向性モード、すなわち、平面、DCおよびLMについては、2つの変換マトリックスを含む1つの変換セットのみが適用される。イントラ予測モードから変換セットへのマッピングは、表3に定義される。ルーマ/クロマ変換係数に適用される変換セットは、表3に従って、対応するルーマ/クロマイントラ予測モードによって指定される。
[0105] 各変換セットについて、選択された分離不可能な二次変換候補はさらに、明示的にシグナリングされたCU−レベルMDNSSTインデックスによって指定される。インデックスは、変換係数の後にイントラCUごとに一度ビットストリーム内でシグナリングされ、および切り捨て単項バナライゼーション(truncated unary banalization)が使用される。平面またはDCモード(planar or DC mode)の場合は、切り捨て値(truncated value)は2であり、角度イントラ予測モード(angular intra prediction mode)については3である。このMDNSSTインデックスは、1つより多くの非ゼロ係数がCU内にあるときにのみ、シグナリングされる。値がシグナリングされないとき、デフォルト値はゼロである。このシンタックス要素のゼロ値は、二次変換が現在CUに対して適用されないことを示し、値1〜3は、セットからのいずれの二次変換が適用されるべきかを示す。
[0106] JEMでは、MDNSSTは、変換スキップモード(transform skip mode)でコード化されたブロックには適用されない。MDNSSTインデックスがCUについてシグナリングされ、ゼロに等しくないとき、MDNSSTは、CUにおいて変換スキップモードでコード化されたコンポーネントのブロックのためには使用されるべきでない。変換スキップモードにおいてコード化されたすべてのコンポーネントのブロックを有するCUのとき、MDNSSTインデックスはCUについてシグナリングされない。
Figure 2019534624
[0107] エンコーダサイドでは、CUレベルRDチェックがCUについてのNSSTインデックスを選択するために使用される。つまり、イントラコード化されたCUについては、CUレベルRDチェックは、ループインデックスとしてNSSTインデックス値を使用することによって4回ループされる。エンコーダ速度を加速させるために、ループの早期の停止が適用される。より大きな値を有するNSSTインデックスについてのRDチェックは、より小さい値を有するNSSTインデックスについての現在CU内に非ゼロの変換された係数が存在しないとき、スキップされる。
[0108] 信号依存型変換(SDT:signal-dependent transform)の態様がこれより説明される。C. Lanらによる“Exploiting non-local correlation via signal-dependent transform (SDT).” IEEE Journal of Selected Topics in Signal Processing 5.7 (2011): 1298-1308に説明されているように、フレーム内におよび複数のフレームにわたって多くの同様のパッチが存在することを考慮すると、SDTはそのような相関を探索し、KLTによってコーディングパフォーマンスを向上させることができる。この訓練されたKLTは、エネルギをより効率的にコンパクトにすることを意図する変換の役割を果たす。この文脈では、パッチは、ビデオデータのブロックを指す。しかしながら、パッチは、ビデオデータのCU、PU、またはTUのようなシグナリングされた区分と必ずしも1対1の対応を有しない。パッチは、例えば、部分的にのみCU、PU、またはTUとオーバーラップし得るか、あるいは複数のCU、PU、またはTUのうちのいくつかまたはすべてとオーバーラップし得る。
[0109] 図6は、非ローカル相関(non-local correlation)を探索するKLTのフローチャートの例を示す。図6におけるフローチャートは、この概念を説明する。Cによって示される現在のコーディングブロックについて、初めに、コーディングブロックの予測ブロックpおよび再構成されたレフトアップテンプレートtから構成された参照パッチRが取得される。次いで、この参照パッチは、再構成された領域にわたってN個の最も類似したパッチを探索するために使用される。最後に、これらのブロックおよび予測ブロックに基づいた1次元KLTが計算される。コーディングブロックは、同様の候補ブロックの集まりについてデコーダにおいて知られていない。予測ブロックおよび再構成されたテンプレートは、元のブロックを使用する代わりに同様のブロックの探索をガイドするために使用される。このツールは、様々なブロックサイズ4x4、8x8、16x16および32x32のために使用される。
[0110] カルーネンレーベ変換(KLT)は、エネルギ集中効率から最適な変換であると考えられている。再構成された領域上を探索することによって、参照パッチと最も類似したN個のブロックx,i=1,2,…,Nが取得される。ここで、x=(xi1,xi2,…,xiDであり、およびDは、変換ブロックサイズであるベクトル次元(vector dimension)を示す。例として、4x4のコーディングブロックについてNは16である。それらのブロックからの予測pは減算され、u,i=1,2,…,Nとして残差ブロックを取得し、ここで
Figure 2019534624
である。これらの残差ブロックは、KLT導出についての平均ゼロのトレーニングサンプル(training sample)として使用される。これらのN個のトレーニングサンプルは、U=(u,u,…,u)によって表されることができ、それはD×Nマトリックスである。共分散行列Σは、
Σ=UU (1)
とイニデート(inidated)されることができる。ここでこの共分散行列の次元(dimension)は、D×Dである。KLTの基底(base)は、すると、この共分散行列の固有ベクトルである。自然のイメージ/ビデオコンテンツについては、候補数Nを100と選択することは、良好なパフォーマンスのために十分であり得る。
[0111] 固有値分解(eigenvalue decomposition)についての計算複雑性(computation complexity)は、0(D)である。Dが16である4x4ブロックについては、複雑性は0(16)であり、それは許容可能である。大きいブロックについては、複雑性は非常に高い可能性がある。Dが1024である32x32のブロックについては、時間複雑性は、例えば、4x4ブロックについてのものよりも262144倍遅い可能性があり、それはコーディングフレームワークにおいて潜在的に許容できない。
[0112] この点を考慮すると、大きいブロックサイズのKLTを実現可能にするために速いアルゴリズムが利用される。Σの次元(dimension)は、D×Dである。しかしながら、UUは、N×Nとして格段により低い次元を有する。方程式を満たすΣ′=UUの固有ベクトルΦは、
UΦ=ΦΛ (22)
と計算され得る。
Φは、固有ベクトルマトリックス(eigenvector matrix)を示し、一方、Λは、固有値が対角要素である対角マトリックスを表す。方程式(2)の両側は、Uで乗算されることができ、以下が得られる:
UU UΦ=UΦΛ (23)
この方程式にブラケットを付けると以下が得られる:
(UU)(UΦ)=(UΦ)Λ (24)
[0113] UΦの列ベクトルは、それらの対応する固有値がマトリックスΛの対角要素であるUUの固有ベクトルである。φ=UΦとする。これは、高次元共分散行列UUの固有ベクトルが低次元共分散行列UUから取得された固有ベクトルΦでUを乗算することによって取得されることができることを示す。φおよびΛの次元は、両方D×Nである。UUのすべての他(D−N)の固有ベクトルは、ゼロの固有ベクトルを有する。シュミット直交化は、D×Dの固有ベクトルマトリックスを得るためにこれらの(D−N)固有ベクトルを満たすために使用され得る。
[0114] マトリックス乗算のための複雑性を減少させるために、取得されたN個の固有ベクトルがKLT変換を実施するために使用されることができ、残りの(D−N)の変換係数はゼロのままにされる。これは、パフォーマンスを減弱させない可能性がある、なぜなら、第1のN個の投影(projections)は信号エネルギの大部分をカバーすることができ、一方で基底(base)はコーディングブロックと高度に相関しているサンプルから訓練(train)されることができるからである。
[0115] 説明されたKLTは、JEM内のコーディングブロックに対してブロックレベルにおいてインプリメントされる。イメージ/ビデオコンテンツに対する高い適応性を有するために、提案されたスキームは、4x4、8x8、16x16および32x32のコーディングブロックにおける提案されたKLTをサポートする。JEMのエンコーダサイドにおいて、SDTおよびアドバンストマルチプル変換(AMT:advanced multiple transform)のうちの最良の変換モードを決定するためにレートひずみ最適化が利用される。説明されたKLT方法は、JEMに含められるが、極端に高い複雑性に起因して、この方法は、デフォルトでは無効にされている。
[0116] 変換をシグナリングするための既存の技法には、いくつか問題が見られ得る。1つの例として、インターコード化ブロックに対して適用される上記の説明されたAMT方法、すなわち「インターAMT」について、3ビットまでのオーバヘッドがいずれの変換が実際に適用されるかを示すために、ブロックごとにシグナリングされる必要があり、それはインターコーディングにとっては非常にコストの大きな(expensive)ものである。オーバヘッドビットが変換選択について同様の効率で節約される場合、全体的なコーディングパフォーマンスは改善され得る。上で説明されたSDTについての潜在的な問題の別の例としては、インプリメンテーションのために必要とされる符号器の複雑性が、同様のイメージパッチに対する大規模なデコーダ探索とKLTマトリックスを導出するための大規模な計算の両方が必要であることに起因して高すぎることであり得る。同様のイメージパッチを使用したオンライン更新変換関数の概念が利用される場合であってしかしそれがより低い複雑性においてである場合、この技法は、既存のハードウェアを用いてインプリメントするためにより実用的であり得る。潜在的な問題の別の例として、現在のピクチャ中のあるイメージブロックと、現在利用されていない、時間的距離の観点から現在のピクチャに近い別のピクチャにおける別のブロックとの間に時間的な統計上の相関が存在する。この時間的な統計上の相関は、コーディング効率のさらなる改善のために変換を選択または導出するために利用され得る。本開示は、上述した様々な問題に対処し得る技法を紹介する。上で述べた問題を潜在的に解決するため、本開示は以下の技法を提案する。説明される技法のうちのいくつかはまた、イントラコード化およびインターコード化ブロックの両方に適用され得る。
[0117] 以下の技法は、独立して、または任意の組合せにおいて、ビデオエンコーダ20およびビデオデコーダ30によって適用され得る。ビデオエンコーダ20およびビデオデコーダ30は、例えば、現在のピクチャの現在ブロックの予測ブロックの特性を決定する、および特性に基づいて、現在ブロックを復号するための変換を識別するように構成され得る。以下により詳細に説明されることになるように、予測ブロックの特性は、例えば、現在ブロックの隣接している再構成されたサンプル(neighboring reconstructed samples)の値、予測ブロックにおけるエッジの存在(a presence of an edge)、予測ブロックにおける分散の量(an amount of variance)、予測ブロックにおけるエッジ方向(edge direction)、予測ブロックのコーディングモード、予測ブロックについての適応ループフィルタ分類(adaptive loop filter classification)、または予測ブロックの何らかの他のそのような特性であり得る。以下により詳細に説明されるように、ビデオエンコーダ20およびビデオデコーダ30は、ビデオデータの現在ブロックのための1つまたは複数の変換を決定するために、様々な方法でこれらの特性を使用することができる。
[0118] 1つの例示的な技法に従って、現在ブロックと何らかの類似性を有する1つのまたはいくつかのイメージ/ビデオ(再構成されたかまたは残差のいずれかの)ブロック(パッチ)が、ビデオエンコーダ20およびビデオデコーダ30の両方によって探索および位置特定(locate)される。位置特定されたブロックは、事前に定義されたKLTのセット、または異なるタイプのDCT/DST変換等の、事前に定義された変換候補のグループからの1つのまたは複数の変換候補(変換サブセット)を識別するために使用される。識別された1つの変換が、現在残差ブロックに対する変換として適用される、または複数の識別された変換のうちの1つが、現在残差ブロックに対する変換として適用される。以下により詳細に説明されるように、ビデオエンコーダ20は、残差サンプルのブロックを変換係数へ変換するために選択された変換を使用し得る。ビデオエンコーダ20によって適用される変換は、時にフォワード変換と呼ばれ得る。ビデオデコーダ30は、変換係数を残差サンプルのブロックへと逆変換するために、選択された変換を使用し得る。
[0119] 1つのまたはいくつかのイメージ/ビデオブロックは、現在のピクチャの復号された領域からのものであり得るか、または参照ピクチャからのものであり得る。1つのまたはいくつかのイメージ/ビデオブロックは、それらの隣接している再構成されたピクセルと現在ブロックの隣接している再構成されたピクセルとを比較(compare)すること、すなわちテンプレートマッチング処理、によって導出され得る。
[0120] 図7は、ビデオデコーダ30(またはビデオエンコーダ20)によって実施され得るテンプレートマッチング処理の例を示す。ビデオデコーダ30は、現在のピクチャ100をコーディングしており、より具体的には、現在ブロック102をコーディングしている。現在ブロック102の残差ブロックについての変換を決定するために、ビデオデコーダ30は、現在ブロック102の隣接している再構成されたサンプル104を、ピクチャ100における他の再構成されたサンプルと比較する。ビデオデコーダ30は、再構成された隣接しているサンプル104に最も近く、または充分に近く、マッチする他の再構成されたサンプルのグループを見つける。図7の例では、再構成されたサンプル106は、再構成された隣接しているサンプル104にマッチする再構成されたサンプルである。再構成されたサンプル106のロケーションに基づいて、ビデオデコーダ30は、ブロック108を位置特定する。以下に説明される様々な技法のうちの1つを使用して、ビデオデコーダ30は、ブロック102についての変換を決定するために、ブロック108を使用する。図7は、再構成された隣接しているサンプル106およびブロック108を隣接している再構成されたサンプル104および現在ブロック102と同じピクチャ中にあるものとして示しているが、再構成された隣接しているサンプル106およびブロック108は、いくつかの例では、ピクチャ100とは異なる参照ピクチャにあり得ることに留意されたい。
[0121] 1つのまたはいくつかのイメージ/ビデオブロックは、現在ブロックの予測ブロック(1つまたは複数)であり得る。したがって、「同様の(similar)」ブロックを探索する代わりに、この例では、ビデオコーダは、1つのまたは複数の変換候補を識別するために、現在ブロックの予測ブロックを直接的に使用し得る。別の例では、現在ブロックの予測ブロックの予測ブロック、すなわち、現在ブロックがそこから予測されるブロックはまた、変換アイデンティフィケーションのために使用される同様のイメージ/ビデオブロックのうちの1つであり得る。識別された変換は、分離可能な変換、すなわち左(列)または右(行)変換の両方を含むものか、または分離不可能な変換(例えば、NSSTからの変換候補)か、のいずれかであることができる。
[0122] ビデオエンコーダ20および/またはビデオデコーダ30は、初めに1つのまたはいくつかのイメージ/ビデオブロックに対して所与の変換サブセットからの各利用可能な変換候補を実施することによって変換を識別することができ、所与の基準の下で最良の効率を有する変換が、現在ブロックに適用されるために識別される変換であり得る。変換効率の基準は、位置特定されたイメージ/ビデオまたは残余ブロックに変換候補を適用した後の絶対値変換係数値和(SATC:Sum of absolute transformed coefficients value)であることができる。より小さいSATCは、より高い変換効率を意味する。別の例では、変換効率の基準は、上述したような、またhttp://web.stanford.edu/class/ee398a/handouts/lectures/07-TransformCoding.pdfに説明されているような変換コーディング利得であることができる。別の例では、変換効率の基準は、いくつかの選択された変換係数、例えば左上1、2x2または4x4の低周波数係数または係数走査順序における最初の/最後のN個の係数、の絶対値の合計であることができ、ここでNは、ブロックサイズに依存し得る事前に定義された値であることができる。
[0123] ビデオエンコーダ20および/またはビデオデコーダ30は、所与の基準を使用して1つのまたはいくつかのイメージ/ビデオ(または残差または予測)ブロックを分析することによって変換を識別することができ、その基準に従って、1つの変換または複数の変換(変換サブセット)が識別される。一例では、基準は、1つのまたはいくつかのイメージ/ビデオ(または残差、または予測)ブロックに対して実施される分析処理に依存し得る。分析処理の例は、予測ブロックのために使用されるコーディングモード、分散の量、(例えば、Sobel演算子(Sobel operator)を使用した)エッジ検出を含むが、それらに限定されるわけではない。分析処理の出力に従って、1つのまたは複数の変換候補(変換サブセット)が識別され、識別された1つの変換、または複数の識別された変換のうちの1つが、現在残差ブロックに対する変換として使用される。
[0124] 別の例では、基準は、1つのまたは複数の変換候補(変換サブセット)を識別するために直接的に使用されることができるいくつか利用可能な分類情報であり得る。利用可能な分類情報は、予測ブロックの位置において位置特定されたイメージ/ビデオブロックに対して適用されたALF(適応型ループフィルタ(Adaptive Loop Filter))分類情報を含み得るが、それに限定されるわけではない。このケースでは、分類情報と変換との間の関係は、事前に定義され得る。例えば、1つの変換または変換のサブセットは、量子化されたラプラシアンアクティビティ値(Laplacian activity values)および/または方向情報(いくつかの方向に沿った勾配)に基づいて選択され得る。
[0125] 別の例では、1つの変換候補のみを識別する代わりに、ビデオエンコーダ20および/またはビデオデコーダ30は、1つのまたはいくつかのイメージ/ビデオブロックを使用して変換サブセットを識別し得、識別された変換サブセットは、変換候補の事前に定義されたセット/グループからの1つより多くの変換候補を含み得る。このケースでは、インデックスは、識別された変換サブセットのうちのいずれの変換候補が現在ブロックのために実際に使用されるのかを示し、インデックスは、復号された情報を使用して、明示的にシグナリングされ得るまたは黙示的に導出され得る。
[0126] 別の例示的な技法によれば、ビデオエンコーダ20および/またはビデオデコーダ30は、変換の事前に定義されたセット/グループからの1つのまたは複数の変換(または変換サブセット)を識別するために、現在ブロックのいくつかのコード化された情報を使用し得る。そのようなコード化された情報は、例えば、ブロックサイズ、ブロック幅および/または高さ、ブロックエリアサイズ、ブロック幅対高さの比、変換係数、動き情報、アフィン(Affine)モード情報、IC(イルミネーション補償(Illumination Compensation))モード情報等を含み得るが、それらに限定されるわけではない。
[0127] 一例では、ビデオエンコーダ20および/またはビデオデコーダ30は、変換の事前に定義されたセット/グループからの1つのまたは複数の変換(または変換サブセット)を識別するために、シグナリングされた変換係数を使用し得る。ビデオエンコーダ20および/またはビデオデコーダ30は、例えば、変換係数に基づいて、所与の変換サブセットから選択された変換候補のインデックスを識別することができ得る。変換インデックスは、しかしながら、明示的にシグナリングされない可能性があるが、代わりにシグナリングされた変換係数に隠され得る。一例では、選択された変換候補は、非ゼロの変換のうちのいくつかまたはすべてのパリティをチェックすることによって識別され得る。別の例では、選択された変換候補は、非ゼロ係数が、変換係数ブロックのある特定のロケーション(高周波数、低周波数)において発生するかどうかのような、変換係数の分配をチェックすることによって識別され得る。
[0128] 一例では、動き情報は、変換の事前に定義されたセット/グループからの1つのまたは複数の変換(または変換サブセット)を識別するために使用されることができる。ビデオエンコーダ20および/またはビデオデコーダ30は、動き情報に基づいて、変換の事前に定義されたセット/グループからの1つのまたは複数の変換(または変換サブセット)を識別することができ得る。一例では、選択された変換(1つまたは複数)は、異なる変換が異なる大きさ範囲(different magnitude ranges)に適用されるような、動きベクトル(1つまたは複数)の大きさ(magnitude)に基づいて、識別される。別の例では、選択された変換(1つまたは複数)は、単予測または双予測(uni-prediction or bi-prediction)に基づいて、識別される。別の例では、選択された変換(1つまたは複数)は、動きベクトル(1つまたは複数)によって指し示される方向(1つまたは複数)に基づいて、識別される。別の例では、選択された変換(1つまたは複数)は、動きベクトル(1つまたは複数)のタイプ(並進またはアフィン運動)に基づいて、識別される。
[0129] 別の例示的な技法によれば、ビデオデコーダ30は、変換の事前に定義されたセット/グループからの1つのまたは複数の変換(または変換サブセット)を識別し得、次いでビデオデコーダ30は、識別された1つのまたは複数の変換(または変換サブセット)が、実際にブロックのために使用される選択された1つのまたは複数の変換(または変換サブセット)であるかどうかを示すフラグまたはインデックスを受信し得る。フラグ/インデックスは、ビットストリームに含まれ得、フラグ/インデックスは、既にコード化された情報によって導出されたコンテキストモデル化を使用してエントロピーコード化され得る。
[0130] 1つのまたは複数の変換(または変換サブセット)は、例えば、既に復号された変換係数ブロックを有する利用可能な変換候補の各々を使用して現在ブロックを再構成することによって識別され得る。各再構成されたブロックと、隣接している再構成されたブロックとの間の不連続性が測定されることができ、1つのまたは複数の変換(または変換サブセット)が、それらの再構成されたブロックと、隣接している再構成されたブロックとの間の最小限の不連続性を示す1つのまたは複数の変換を選択することによって識別され得る。
[0131] 別の例では、ビデオエンコーダ20および/またはビデオデコーダ30は、復号された変換係数ブロックを有する各利用可能な変換候補を使用して現在ブロックを再構成することによって1つのまたは複数の変換(または変換サブセット)を識別し得、各再構成されたブロックのトップおよび/または左境界の1つの(またはいくつかの)ラインと予測ブロックのそれらのとの間の差が計算される。1つのまたは複数の変換(または変換サブセット)は、最小限の差を示す1つのまたは複数の変換を選択することによって識別される。この技法は、イントラ予測されたブロックに適用され得るか、または、ある特定のイントラモードを使用して、例えば、方向性イントラ予測モードを用いて、ブロックに適用され得る。いくつかのインプリメンテーションでは、ライン(1つまたは複数)のトップまたは左の境界のみがイントラ予測モードの方向に基づいて使用される。
[0132] フラグ/インデックスをエントロピーコーディングするためのコンテキストモデル化は、変換係数ブロックのレベル(変換係数の大きさ)に依存し得、レベル値は、選択された変換係数からのレベル値の合計、またはすべての変換係数からのレベル値の合計、またはすべての変換係数からの二乗レベル(squared level)値の合計、1つからのものであり得る。別の例では、フラグ/インデックスをエントロピーコーディングするためのコンテキストモデル化は、変換係数ブロックの最後の位置に依存し得る。
[0133] 上で提案された技法は、ある特定の条件下で適用され得る。例えば、ある特定の技法は、ある特定の時間的なレベルについて引き起こされ得る。別の例では、ある特定の技法は、コーディングモードおよび/またはブロックサイズについて引き起こされる。
[0134] 図8は、本開示で説明される技法をインプリメントし得る例示的なビデオエンコーダ20を例示するブロック図である。ビデオエンコーダ20は、ビデオスライス内でビデオブロックのイントラおよびインターコーディングを実施し得る。イントラコーディングは、所与のビデオフレームまたはピクチャ内のビデオ中の空間的冗長性を減少させるまたは削除するために空間的予測に頼る。インターコーディングは、ビデオシーケンスの隣接したフレームまたはピクチャ内のビデオ中の時間的冗長性を減少させるまたは削除するために時間的予測に頼る。イントラ−モード(Iモード)は、いくつかの空間ベースの圧縮モードのうちの任意のものを指し得る。一方向予測(Pモード)または双予測(Bモード)のようなインターモードは、いくつかの時間ベースの圧縮モードのうちの任意のものを指し得る。
[0135] 図8の例では、ビデオエンコーダ20は、ビデオデータメモリ33、区分ユニット(partitioning unit)35、予測処理ユニット(prediction processing unit)41、加算器50、変換処理ユニット(transform processing unit)52、量子化ユニット(quantization unit)54、エントロピー符号化ユニット(entropy encoding unit)56を含む。予測処理ユニット41は、動き推定ユニット(MEU:motion estimation unit)42、動き補償ユニット(MCU:motion compensation unit)44、およびイントラ予測ユニット46を含む。ビデオブロック復元については、ビデオエンコーダ20はまた、逆量子化ユニット(inverse quantization unit)58、逆変換処理ユニット(inverse transform processing unit)60、加算器62、フィルタユニット64、および復号ピクチャバッファ(DPB:decoded picture buffer)66を含む。
[0136] 図8に示されるように、ビデオエンコーダ20は、ビデオデータを受信し、受信されたビデオデータをビデオデータメモリ33に記憶する。ビデオデータメモリ33は、ビデオエンコーダ20のコンポーネントによって符号化されることになるビデオデータを記憶し得る。ビデオデータメモリ33中に記憶されたビデオデータは、例えばビデオソース18から取得され得る。DPB66は、例えば、イントラまたはインターコーディングモードにおけるビデオエンコーダ20によるビデオデータの符号化で使用するための参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ33およびDPB66は、同期DRAM(SDRAM)、磁気抵抗RAM(MRAM)、抵抗RAM(RRAM(登録商標))、または他のタイプのメモリデバイスを含む動的ランダムアクセスメモリ(DRAM)のような多様なメモリデバイスのいずれによっても形成され得る。ビデオデータメモリ33およびDPB66は、同じメモリデバイスまたは別々のメモリデバイスによって提供され得る。様々な例において、ビデオデータメモリ33は、ビデオエンコーダ20の他のコンポーネントと共にオンチップであり得るか、またはそれらのコンポーネントに対してオフチップであり得る。
[0137] 区分ユニット35は、ビデオデータメモリ33からビデオデータを取り出し、ビデオデータをビデオブロックに区分する。この区分することはまた、例えば、CUおよびLCUの四分木構造に従って、スライス、タイル、または他のより大きなユニットへと区分すること、ならびにビデオブロック区分を含み得る。ビデオエンコーダ20は一般に、符号化されることになるビデオスライス内のビデオブロックを符号化するコンポーネントを例示する。スライスは、複数のビデオブロックに(および場合によっては、タイルと呼ばれるビデオブロックのセットに)分割され得る。予測処理ユニット41は、(コーディングレートおよびひずみのレベル等)のエラー結果に基づいて、現在ビデオブロックについて、複数のイントラコーディングモードのうちの1つまたは複数のインターコーディングモードのうちの1つのような複数の可能性のあるコーディングモードのうちの1つを選択し得る。予測処理ユニット41は、結果的なイントラまたはインターコード化ブロックを、残差ブロックデータを生成するために加算器50に提供し、および参照ピクチャとして使用するための符号化されたブロックを再構成するために加算器62に提供し得る。
[0138] 予測処理ユニット41内のイントラ予測ユニット46は、空間圧縮を提供するためにコード化されることになる現在ブロックと同じフレームまたはスライス中の1つまたは複数の隣接しているブロックに対する現在ビデオブロックのイントラ予測コーディングを実施し得る。予測処理ユニット41内の動き推定ユニット42および動き補償ユニット44は、時間的圧縮を提供するために、1つまたは複数の参照ピクチャ中の1つまたは複数の予測ブロックに対する現在ビデオブロックのインター予測コーディングを実施する。
[0139] 動き推定ユニット42は、ビデオシーケンスについての事前決定されたパターンに従って、ビデオスライスについてのインター予測モードを決定するように構成され得る。事前決定されたパターンは、シーケンス中のビデオスライスを、PスライスまたはBスライスとして指定し得る。動き推定ユニット42および動き補償ユニット44は、高度に統合され得るが、概念的な目的のために別々に例示されている。動き推定ユニット42によって実施される動き推定は、動きベクトルを生成する処理であり、それはビデオブロックについての動きを推定する。動きベクトルは、例えば、参照ピクチャ内の予測ブロックに対する現在ビデオフレームまたはピクチャ内のビデオブロックのPUのずれを示し得る。
[0140] 予測ブロックは、ピクセル差分の観点からコード化されることになるビデオブロックのPUに近くマッチすることが分かるブロックであり、それは差分絶対値和(SAD:sum of absolute difference)、差分二乗和(SSD:sum of square difference)、または他の差の測定基準によって決定され得る。いくつかの例では、ビデオエンコーダ20は、DPB66中に記憶された参照ピクチャのサブ整数ピクセル位置についての値を計算し得る。例えば、ビデオエンコーダ20は、参照ピクチャの4分の1ピクセル位置、8分の1ピクセル位置、または他の分数ピクセル位置の値を補間し得る。ゆえに、動き推定ユニット42は、全ピクセル位置および分数ピクセル位置に対する動き探索を実施し、分数ピクセル精度で動きベクトルを出力し得る。
[0141] 動き推定ユニット42は、PUの位置を参照ピクチャの予測ブロックの位置と比較することによってインターコード化されたスライス中のビデオブロックのPUについての動きベクトルを計算する。参照ピクチャは、第1の参照ピクチャリスト(リスト0)または第2の参照ピクチャリスト(リスト1)から選択され得、それらの各々は、DPB66中に記憶された1つまたは複数の参照ピクチャを識別する。動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56および動き補償ユニット44に送る。
[0142] 動き補償ユニット44によって実施される動き補償は、動き推定によって決定された動きベクトルに基づいて予測ブロックをフェッチングまたは生成することに関わり得、場合によってはサブピクセル精度に対する補間を実施する。現在ビデオブロックのPUについての動きベクトルを受信する際、動き補償ユニット44は、動きベクトルポイントが指し示す予測ブロックを参照ピクチャリストのうちの1つに位置特定し得る。ビデオエンコーダ20は、コード化されている現在ビデオブロックのピクセル値から予測ブロックのピクセル値を減算することによって残差ビデオブロックを形成し、ピクセル差分値を形成する。ピクセル差分値は、ブロックのための残差データを形成し、ルーマおよびクロマ差成分の両方を含み得る。加算器50は、この減算演算(subtraction operation)を実施する1つまたは複数のコンポーネントを表す。動き補償ユニット44はまた、ビデオスライスのビデオブロックを復号する際にビデオデコーダ30によって使用されるためのビデオスライスおよびビデオブロックに関連するシンタックス要素を生成し得る。
[0143] 予測処理ユニット41が現在ビデオブロックについての予測ブロックを生成した後、イントラ予測またはインター予測のいずれかによって、ビデオエンコーダ20は、現在ビデオブロックから予測ブロックを減算することによって残差ビデオブロックを形成する。残差ブロック中の残差ビデオデータは、1つまたは複数のTUに含まれ、変換処理ユニット52に適用され得る。変換処理ユニット52は、離散コサイン変換(DCT)または概念的に同様の変換のような変換を使用して残差ビデオデータを残差変換係数へと変換する。変換処理ユニット52は、ピクセル領域からの残差ビデオデータを、周波数領域のような変換領域に変換し得る。
[0144] 変換処理ユニット52は、結果として生じる変換係数を量子化ユニット54に送り得る。量子化ユニット54は、ビットレート(bit rate)をさらに減少させるために、変換係数を量子化する。量子化処理は、係数のうちのいくつかまたはすべてに関連するビット深度(bit depth)を減少させ得る。量子化の程度は、量子化パラメータを調整することによって修正され得る。いくつかの例では、量子化ユニット54は次いで、量子化された変換係数を含むマトリックスの走査を実施し得る。別の例では、エントロピー符号化ユニット56が走査を実施し得る。
[0145] 量子化に続いて、エントロピー符号化ユニット56は、量子化された変換係数をエントロピー符号化する。例えば、エントロピー符号化ユニット56は、コンテキスト適応型可変長コーディング(CAVLC:context adaptive variable length coding)、コンテキスト適応型バイナリ算術コーディング(CABAC:context adaptive binary arithmetic coding)、シンタックスベースのコンテキスト適応型バイナリ算術コーディング(SBAC:syntax-based context-adaptive binary arithmetic coding)、確率区間区分エントロピー(PIPE:probability interval partitioning entropy)コーディングまたは別のエントロピー符号化方法もしくは技法を実施し得る。エントロピー符号化ユニット56によるエントロピー符号化に続いて、符号化されたビットストリームは、ビデオデコーダ30に送信され、後の送信またはビデオデコーダ30による取り出しのためにアーカイブされ得る。エントロピー符号化ユニット56はまた、コード化されている現在のビデオスライスについての動きベクトルおよび他のシンタックス要素をエントロピー符号化し得る。
[0146] 逆量子化ユニット58および逆変換処理ユニット60は、参照ピクチャの参照ブロックとして後に使用するためにピクセル領域中の残差ブロックを再構成するために、逆量子化および逆変換をそれぞれ適用する。動き補償ユニット44は、参照ピクチャリストのうちの1つ内の参照ピクチャのうちの1つの予測ブロックに残差ブロックを追加することによって参照ブロックを計算し得る。動き補償ユニット44はまた、動き推定で使用するためのサブ整数ピクセル値(sub-integer pixel value)を計算するために再構成された残差ブロックに1つまたは複数の補間フィルタ(interpolation filter)を適用し得る。加算器62は、再構成されたブロックを生み出すために、動き補償ユニット44によって生み出された動き補償された予測ブロックに再構成された残差ブロックを追加する。
[0147] フィルタユニット64は、再構成されたブロック(例えば、加算器62の出力)をフィルタし、参照ブロックとして使用するためにDPB66にフィルタされた再構成されたブロックを記憶する。参照ブロックは、後続のビデオフレームまたはピクチャ中のブロックをインター予測するための参照ブロックとして動き推定ユニット42および動き補償ユニット44によって使用され得る。フィルタユニット64は、例えば、デブロッキングフィルタ(deblocking filter)、適応型ループフィルタ(ALF:adaptive loop filter)、サンプル適応型オフセット(SAO:sample adaptive offset)フィルタ、または他のタイプのフィルタのうちの1つまたは複数を使用して再構成されたビデオブロックをフィルタする。他のループフィルタ(コーディングループ中またはコーディングループ後のいずれかの)はまた、ピクセル遷移を平滑化するまたはもしそうでなければビデオ品質を改善するために使用され得る。
[0148] 図9は、本開示で説明される技法をインプリメントし得る例示的なビデオデコーダ30を例示するブロック図である。図9のビデオデコーダ30は、例えば、図8のビデオエンコーダ20に関して上述したシグナリングを受信するように構成され得る。図9の例では、ビデオデコーダ30は、ビデオデータメモリ78、エントロピー復号ユニット(entropy decoding unit)80、予測処理ユニット81、逆量子化ユニット86、逆変換処理ユニット88、加算器90、フィルタユニット92、およびDPB94を含む。予測処理ユニット81は、動き補償ユニット82およびイントラ予測ユニット84を含む。ビデオデコーダ30は、いくつかの例では、図8からのビデオエンコーダ20に関して説明された符号化パス(encoding pass)と、概して逆の関係の復号パス(decoding pass)を実施し得る。
[0149] 復号処理の間に、ビデオデコーダ30は、ビデオエンコーダ20からの符号化されたビデオスライスおよび関連したシンタックス要素のビデオブロックを表す符号化されたビデオビットストリーム(encoded video bitstream)を受信する。ビデオデコーダ30は、受信された符号化されたビデオビットストリームをビデオデータメモリ78に記憶する。ビデオデータメモリ78は、ビデオデコーダ30のコンポーネントによって復号されることとなる符号化されたビデオビットストリームのようなビデオデータを記憶し得る。ビデオデータメモリ78中に記憶されたビデオデータは、物理データ記憶媒体にアクセスすることによって、またはカメラのようなローカルビデオソースから、または記憶デバイス26から、リンク16を介する等して、取得され得る。ビデオデータメモリ78は、符号化されたビデオビットストリームからの符号化されたビデオデータを記憶するコード化されたピクチャバッファ(CPB:coded picture buffer)を形成し得る。DPB94は、例えば、イントラまたはインターコーディングモードにおいて、ビデオデコーダ30によってビデオデータを復号する際に使用するための参照ビデオデータを記憶する参照ピクチャメモリであり得る。ビデオデータメモリ78およびDPB94は、DRAM、SDRAM、MRAM、RRAM、または他のタイプのメモリデバイスのような多様なメモリデバイスのうちのいずれによっても形成され得る。ビデオデータメモリ78およびDPB94は、同じメモリデバイスまたは別々のメモリデバイスによって提供され得る。様々な例において、ビデオデータメモリ78は、ビデオデコーダ30の他のコンポーネントと共にオンチップであり得るか、またはそれらのコンポーネントに対してオフチップであり得る。
[0150] ビデオデコーダ30のエントロピー復号ユニット80は、量子化された係数、動きベクトル、および他のシンタックス要素を生成するために、ビデオデータメモリ78中に記憶されたビデオデータをエントロピー復号する。エントロピー復号ユニット80は、動きベクトルおよび他のシンタックス要素を予測処理ユニット81に転送する。ビデオデコーダ30は、ビデオスライスレベルおよび/またはビデオブロックレベルにおいてシンタックス要素を受信し得る。
[0151] ビデオスライスがイントラコード化(I)スライスとしてコード化されるとき、予測処理ユニット81のイントラ予測ユニット84は、現在のフレームまたはピクチャの前に復号されたブロックからのデータおよびシグナリングされたイントラ予測モードに基づいて、現在のビデオスライスのビデオブロックについての予測データを生成し得る。ビデオフレームがインターコード化されたスライス(例えば、BスライスまたはPスライス)としてコード化されるとき、予測処理ユニット81の動き補償ユニット82は、エントロピー復号ユニット80から受信された動きベクトルおよび他のシンタックス要素に基づいて、現在のビデオスライスのビデオブロックについての予測ブロックを生み出す。予測ブロックは、参照ピクチャリストのうちの1つ内の参照ピクチャのうちの1つから生み出され得る。ビデオデコーダ30は、DPB94中に記憶された参照ピクチャに基づいて、デフォルトの構成技法を使用して、参照フレームリストであるリスト0およびリスト1を組み立て得る。
[0152] 動き補償ユニット82は、動きベクトルおよび他のシンタックス要素をパースすることによって現在のビデオスライスのビデオブロックについての予測情報を決定し、その予測情報を使用して、復号されている現在ビデオブロックのための予測ブロックを生み出す。例えば、動き補償ユニット82は、ビデオスライスのビデオブロックをコード化するために使用される予測モード(例えば、イントラまたはインター予測)、インター予測スライスタイプ(例えば、BスライスまたはPスライス)、スライスについての参照ピクチャリストのうちの1つまたは複数についての構造(construction)情報、スライスの各インター符号化されたビデオブロックについての動きベクトル、スライスの各インターコード化されたビデオブロックについてのインター予測ステータス、および現在のビデオスライス中のビデオブロックを復号するための他の情報を決定するために、受信されたシンタックス要素のうちのいくつかを使用する。
[0153] 動き補償ユニット82はまた、補間フィルタに基づいて、補間を実施し得る。動き補償ユニット82は、参照ブロックのサブ整数ピクセルのための補間された値を計算するためにビデオブロックの符号化の間にビデオエンコーダ20によって使用されるような補間フィルタを使用し得る。このケースでは、動き補償ユニット82は、受信されたシンタックス要素からビデオエンコーダ20によって使用される補間フィルタを決定し、補間フィルタを使用して予測ブロックを生み出し得る。
[0154] 逆量子化ユニット86は、ビットストリーム中で提供されかつエントロピー復号ユニット80によって復号され量子化された変換係数を逆量子化する、すなわち、量子化解除する。逆量子化処理は、適用されるべき量子化の程度、同じく逆量子化の程度を決定するために、ビデオスライス中の各ビデオブロックについてビデオエンコーダ20によって計算された量子化パラメータの使用を含み得る。逆変換処理ユニット88は、ピクセル領域における残差ブロックを生み出すために、変換係数に対して、逆変換、例えば、逆DCT、逆整数変換(inverse integer transform)、または概念的に同様の逆変換処理を適用する。
[0155] 予測処理ユニットが、例えばイントラまたはインター予測を使用して現在ビデオブロックについての予測ブロックを生成した後で、ビデオデコーダ30は、逆変換処理ユニット88からの残差ブロックを動き補償ユニット82によって生成される対応する予測ブロックと合計することによって、再構成されたビデオブロックを形成する。加算器90は、この加算演算(summation operation)を実施する1つまたは複数のコンポーネントを表す。
[0156] フィルタユニット92は、例えば、デブロッキングフィルタ、ALFフィルタ、SAOフィルタ、または他のタイプのフィルタのうちの1つまたは複数を使用して再構成されたビデオブロックをフィルタする。他のループフィルタ(コーディングループ中またはコーディングループ後のいずれかの)はまた、ピクセル遷移を平滑化するまたはもしそうでなければビデオ品質を改善するために使用され得る。所与のフレームまたはピクチャ中の復号されたビデオブロックは次いで、DPB94に記憶され、それは、後続の動き補償のために使用される参照ピクチャを記憶する。DPB94は、図1のディスプレイデバイス32のようなディスプレイデバイス上での後の提示のために復号されたビデオを記憶する追加的なメモリの一部であり得るか、またはそれとは別個のものであり得る。
[0157] 図10は、本開示で説明される例示的なビデオ復号技法を例示するフローダイアグラムである。図10の技法は具体的に、および本開示は一般に、いかなる特定のタイプのビデオデコーダにも限定されないが、図10の例は、図1および図9のビデオデコーダ30に関して説明されることとなる。図10の例では、ビデオデコーダ30は、現在のピクチャの現在ブロックの予測ブロックの特性を決定する(120)。ビデオデコーダ30は、特性に基づいて、現在ブロックを復号するための変換を識別する(122)。
[0158] ビデオデコーダ30は、例えば、第2のブロック(second block)を位置特定するために、現在のピクチャの現在ブロックの予測ブロックの特性をビデオデータ中の他のブロック(other blocks)の特性と比較し、第2のブロックに基づいて、現在ブロックを復号するための変換を識別し得る。第2のブロックは、例えば、参照ピクチャからのブロックまたは現在のピクチャの復号された部分(decoded portion)からのブロックであり得る。第2のブロックは、複数のCUと完全にオーバーラップし得るかまたは部分的にオーバーラップし得るかのいずれかである。現在のピクチャの現在ブロックの予測ブロックの特性をビデオデータ中の他のブロックの特性と比較するために、ビデオデコーダ30は、現在ブロックの隣接している再構成されたサンプルを他のブロックの隣接している再構成されたサンプルと比較し得る。現在のピクチャの現在ブロックの予測ブロックの特性をビデオデータ中の他のブロックの特性と比較するために、ビデオデコーダ30は、現在ブロックの予測ブロックを他のブロックの予測ブロックと比較し得る。
[0159] 他の例では、現在のピクチャの現在ブロックの予測ブロックの特性を決定するために、ビデオデコーダ30は、予測ブロックにおけるエッジの存在を決定し得、ここにおいて、特性に基づいて、現在ブロックを復号するための変換を識別することは、エッジの存在に関連する変換を決定することを備える。現在のピクチャの現在ブロックの予測ブロックの特性を決定するために、ビデオデコーダ30は、予測ブロックにおける分散の量を決定し得、ここにおいて、特性に基づいて、現在ブロックを復号するための変換を識別することは、分散の量に関連する変換を決定することを備える。現在のピクチャの現在ブロックの予測ブロックの特性を決定するために、予測ブロックにおけるエッジ方向を決定することを備え、特性に基づいて、現在ブロックを復号するための変換を識別するために、ビデオデコーダ30は、エッジ方向に関連する変換を決定し得る。現在のピクチャの現在ブロックの予測ブロックの特性を決定するために、ビデオデコーダ30は、予測ブロックのコーディングモードを決定し得、特性に基づいて、現在ブロックを復号するための変換を識別するために、ビデオデコーダ30は、コーディングモードに関連する変換を決定し得る。現在のピクチャの現在ブロックの予測ブロックの特性を決定するために、ビデオデコーダ30は、予測ブロックについての適応ループフィルタ分類を決定し得、特性に基づいて、現在ブロックを復号するための変換を識別するために、ビデオデコーダ30は、適応ループフィルタ分類に関連する変換を決定し得る。
[0160] 一例では、特性に基づいて、現在ブロックを復号するための変換を識別するために、ビデオデコーダ30は、追加的なシグナリングを受信することなく、特性に基づいて直接的に変換を識別し得る。他の例では、特性に基づいて、現在ブロックを復号するための変換を識別するために、ビデオデコーダ30は、特性に基づいて、利用可能な変換のサブセット(a subset of available transforms)を識別し、サブセットからの変換を、現在ブロックを復号するための変換として識別するインデックス値(index value)を受信し得る。変換を識別した後に、ビデオデコーダ30は、現在ブロックについての残差ブロックを決定するために、変換係数のセットを逆変換する(124)。ビデオデコーダ30は、現在ブロックを復号するために、残差ブロックを現在ブロックの予測ブロックに追加する(126)。
[0161] 1つまたは複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せにおいてインプリメントされ得る。ソフトウェアにおいてインプリメントされる場合、これら機能は、1つまたは複数の命令またはコードとして、コンピュータ読み取り可能な媒体上で記憶または送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ読み取り可能な媒体は、コンピュータ読み取り可能な記憶媒体を含み得、それは、データ記憶媒体のような有形の媒体、または、例えば通信プロトコルに従って1つの場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む通信媒体に対応する。このように、コンピュータ読み取り可能な媒体は一般に、(1)非一時的である有形のコンピュータ読み取り可能な記憶媒体、または(2)信号(signal)または搬送波のような通信媒体に対応し得る。データ記憶媒体は、本開示に説明された技法のインプリメンテーションのための命令、コードおよび/またはデータ構造をリトリーブ(retrieve)するために1つまたは複数のコンピュータまたは1つまたは複数のプロセッサによってアクセスされることができる、任意の利用可能な媒体であり得る。コンピュータプログラム製品は、コンピュータ読み取り可能な媒体を含み得る。
[0162] 限定ではなく例として、そのようなコンピュータ読み取り可能な記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD−ROMまたは他の光ディスク記憶装置、磁気ディスク記憶装置、または他の磁気記憶デバイス、フラッシュメモリ、あるいは、命令またはデータ構造の形態で所望のプログラムコードを記憶するために使用されることができ、かつコンピュータによってアクセスされることができる任意の他の媒体を備えることができる。また、いかなる接続も、コンピュータ読み取り可能な媒体と適切に称される。例えば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波のようなワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波のようなワイヤレス技術は、媒体の定義に含まれる。しかしながら、コンピュータ読み取り可能な記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的な媒体を含まず、代わりに、非一時的な、有形の記憶媒体を対象とすることは、理解されるべきである。本明細書で使用される場合、ディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多目的ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびBlu−rayディスク(disc)を含み、ここで、ディスク(disks)は、通常磁気的にデータを再生し、一方ディスク(discs)は、レーザーを用いて光学的にデータを再生する。上記の組合せもまた、コンピュータ読み取り可能な媒体の範囲内に含まれるべきである。
[0163] 命令は、1つまたは複数のDSP、汎用マイクロプロセッサ、ASIC、FPGA、または他の同等の統合またはディスクリート論理回路構成のような1つまたは複数のプロセッサによって実行され得る。したがって、「プロセッサ」という用語は、ここで使用される場合、前述の構造のうちの任意のもの、またはここに説明された技法のインプリメンテーションのために適した任意の他の構造を指し得る。加えて、いくつかの態様では、ここに説明された機能性は、組み合わせられたコーデック内に組み込まれるか、または符号化および復号のために構成された専用のハードウェアおよび/またはソフトウェアモジュール内に提供され得る。また、これら技法は、1つまたは複数の回路または論理素子において完全にインプリメントされる可能性がある。
[0164] 本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(例えば、チップセット)を含む、多種多様なデバイスまたは装置においてインプリメントされ得る。開示された技法を実施するように構成されるデバイスの機能的態様を強調するために、様々なコンポーネント、モジュール、またはユニットが、本開示において説明されているが、必ずしも、複数の異なるハードウェアユニットによる実現を必要とするわけではない。むしろ、上述したように、様々なユニットは、好適なソフトウェアおよび/またはファームウェアと併せて、上述したような1つまたは複数のプロセッサを含む相互動作可能な複数のハードウェアユニットのコレクションによって提供され得るか、コーデックハードウェアユニットにおいて組み合わせられ得る。
[0165] 様々な例が説明された。これらのおよび他の例は、以下の特許請求の範囲の適用範囲内にある。

Claims (30)

  1. ビデオデータを復号するための方法であって、
    現在のピクチャの現在ブロックの予測ブロックの特性を決定することと、
    前記特性に基づいて、前記現在ブロックを復号するための変換を識別することと、
    前記現在ブロックについての残差ブロックを決定するために、変換係数を逆変換することと、
    前記現在ブロックを復号するために、前記残差ブロックを前記現在ブロックの予測ブロックに追加することと、
    を備える、方法。
  2. 第2のブロックを位置特定するために、前記現在のピクチャの前記現在ブロックの前記予測ブロックの前記特性を前記ビデオデータ中の他のブロックの特性と比較することと、
    前記第2のブロックに基づいて、前記現在ブロックを復号するための前記変換を識別することと、
    をさらに備える、請求項1に記載の方法。
  3. 前記第2のブロックが参照ピクチャからのブロックを備える、請求項2に記載の方法。
  4. 前記第2のブロックが前記現在のピクチャの復号された部分からのブロックを備える、請求項2に記載の方法。
  5. 前記第2のブロックが複数のコーディングユニットとオーバーラップする、請求項2に記載の方法。
  6. 前記現在のピクチャの前記現在ブロックの前記予測ブロックの前記特性を前記ビデオデータ中の前記他のブロックの特性と比較することが、前記現在ブロックの隣接している再構成されたサンプルを前記他のブロックの隣接している再構成されたサンプルと比較することを備える、請求項2に記載の方法。
  7. 前記現在のピクチャの前記現在ブロックの前記予測ブロックの前記特性を前記ビデオデータ中の前記他のブロックの特性と比較することが、前記現在ブロックの予測ブロックを前記他のブロックの予測ブロックと比較することを備える、請求項2に記載の方法。
  8. 前記現在のピクチャの前記現在ブロックの前記予測ブロックの前記特性を決定することが、前記予測ブロックにおけるエッジの存在を決定することを備え、ここにおいて、前記特性に基づいて、前記現在ブロックを復号するための前記変換を識別することが、前記エッジの前記存在に関連する変換を決定することを備える、請求項1に記載の方法。
  9. 前記現在のピクチャの前記現在ブロックの前記予測ブロックの前記特性を決定することが、前記予測ブロックにおける分散の量を決定することを備え、ここにおいて、前記特性に基づいて、前記現在ブロックを復号するための前記変換を識別することが、分散の前記量に関連する変換を決定することを備える、請求項1に記載の方法。
  10. 前記現在のピクチャの前記現在ブロックの前記予測ブロックの前記特性を決定することが、前記予測ブロックにおけるエッジ方向を決定することを備え、ここにおいて、前記特性に基づいて、前記現在ブロックを復号するための前記変換を識別することが、前記エッジ方向に関連する変換を決定することを備える、請求項1に記載の方法。
  11. 前記現在のピクチャの前記現在ブロックの前記予測ブロックの前記特性を決定することが、前記予測ブロックのコーディングモードを決定することを備え、ここにおいて、前記特性に基づいて、前記現在ブロックを復号するための前記変換を識別することが、前記コーディングモードに関連する変換を決定することを備える、請求項1に記載の方法。
  12. 前記現在のピクチャの前記現在ブロックの前記予測ブロックの前記特性を決定することが、前記予測ブロックについての適応ループフィルタ分類を決定することを備え、ここにおいて、前記特性に基づいて、前記現在ブロックを復号するための前記変換を識別することが、前記適応ループフィルタ分類に関連する変換を決定することを備える、請求項1に記載の方法。
  13. 前記特性に基づいて、前記現在ブロックを復号するための前記変換を識別することが、
    前記特性に基づいて、利用可能な変換のサブセットを識別することと、
    インデックス値を受信することと、ここにおいて、前記インデックス値が、前記サブセットからの変換を、前記現在ブロックを復号するための前記変換として識別する、
    を備える、請求項1に記載の方法。
  14. ビデオデータを復号するためのデバイスであって、
    前記ビデオデータを記憶するように構成されるメモリと、
    1つまたは複数のプロセッサと、
    を備え、
    前記1つまたは複数のプロセッサが、
    前記ビデオデータの現在のピクチャの現在ブロックの予測ブロックの特性を決定することと、
    前記特性に基づいて、前記現在ブロックを復号するための変換を識別することと、
    前記現在ブロックについての残差ブロックを決定するために、変換係数のセットを逆変換することと、
    前記現在ブロックを復号するために、前記残差ブロックを前記現在ブロックの予測ブロックに追加することと、
    を行うように構成される、デバイス。
  15. 前記1つまたは複数のプロセッサが、
    第2のブロックを位置特定するために、前記現在のピクチャの前記現在ブロックの前記予測ブロックの前記特性を前記ビデオデータ中の他のブロックの特性と比較することと、
    前記第2のブロックに基づいて、前記現在ブロックを復号するための前記変換を識別することと、
    を行うようにさらに構成される、請求項14に記載のデバイス。
  16. 前記第2のブロックが参照ピクチャからのブロックを備える、請求項15に記載のデバイス。
  17. 前記第2のブロックが前記現在のピクチャの復号された部分からのブロックを備える、請求項15に記載のデバイス。
  18. 前記第2のブロックが複数のコーディングユニットとオーバーラップする、請求項15に記載のデバイス。
  19. 前記現在のピクチャの前記現在ブロックの前記予測ブロックの前記特性を前記ビデオデータ中の前記他のブロックの特性と比較するために、前記1つまたは複数のプロセッサが、前記現在ブロックの隣接している再構成されたサンプルを前記他のブロックの隣接している再構成されたサンプルと比較するようにさらに構成される、請求項15に記載のデバイス。
  20. 前記現在のピクチャの前記現在ブロックの前記予測ブロックの前記特性を前記ビデオデータ中の前記他のブロックの特性と比較するために、前記1つまたは複数のプロセッサが、前記現在ブロックの予測ブロックを前記他のブロックの予測ブロックと比較するようにさらに構成される、請求項15に記載のデバイス。
  21. 前記現在のピクチャの前記現在ブロックの前記予測ブロックの前記特性を決定するために、前記1つまたは複数のプロセッサが、前記予測ブロックにおけるエッジの存在を決定するようにさらに構成され、ここにおいて、前記特性に基づいて、前記現在ブロックを復号するための前記変換を識別するために、前記1つまたは複数のプロセッサが、前記エッジの前記存在に関連する変換を決定するようにさらに構成される、請求項14に記載のデバイス。
  22. 前記現在のピクチャの前記現在ブロックの前記予測ブロックの前記特性を決定するために、前記1つまたは複数のプロセッサが、前記予測ブロックにおける分散の量を決定するようにさらに構成され、ここにおいて、前記特性に基づいて、前記現在ブロックを復号するための前記変換を識別するために、前記1つまたは複数のプロセッサが、分散の前記量に関連する変換を決定するようにさらに構成される、請求項14に記載のデバイス。
  23. 前記現在のピクチャの前記現在ブロックの前記予測ブロックの前記特性を決定するために、前記1つまたは複数のプロセッサが、前記予測ブロックにおけるエッジ方向を決定するようにさらに構成され、ここにおいて、前記特性に基づいて、前記現在ブロックを復号するための前記変換を識別するために、前記1つまたは複数のプロセッサが、前記エッジ方向に関連する変換を決定するようにさらに構成される、請求項14に記載のデバイス。
  24. 前記現在のピクチャの前記現在ブロックの前記予測ブロックの前記特性を決定するために、前記1つまたは複数のプロセッサが、前記予測ブロックのコーディングモードを決定するようにさらに構成され、ここにおいて、前記特性に基づいて、前記現在ブロックを復号するための前記変換を識別するために、前記1つまたは複数のプロセッサが、前記コーディングモードに関連する変換を決定するようにさらに構成される、請求項14に記載のデバイス。
  25. 前記現在のピクチャの前記現在ブロックの前記予測ブロックの前記特性を決定するために、前記1つまたは複数のプロセッサが、前記予測ブロックについての適応ループフィルタ分類を決定するようにさらに構成され、ここにおいて、前記特性に基づいて、前記現在ブロックを復号するための前記変換を識別するために、前記1つまたは複数のプロセッサが、前記適応ループフィルタ分類に関連する変換を決定するようにさらに構成される、請求項14に記載のデバイス。
  26. 前記特性に基づいて、前記現在ブロックを復号するための前記変換を識別するために、前記1つまたは複数のプロセッサが、
    前記特性に基づいて、利用可能な変換のサブセットを識別することと、
    インデックス値を受信することと、ここにおいて、前記インデックス値が、前記サブセットからの変換を、前記現在ブロックを復号するための前記変換として識別する、
    を行うようにさらに構成される、請求項14に記載のデバイス。
  27. 前記デバイスがワイヤレス通信デバイスを備え、符号化されたビデオデータを受信するように構成される受信機をさらに備える、請求項14に記載のデバイス。
  28. 前記ワイヤレス通信デバイスが電話ハンドセットを備え、前記受信機が、ワイヤレス通信規格に従って、前記符号化されたビデオデータを備える信号を復調するように構成される、請求項27に記載のデバイス。
  29. ビデオデータを復号するための装置であって、前記装置が、
    現在のピクチャの現在ブロックの予測ブロックの特性を決定するための手段と、
    前記特性に基づいて、前記現在ブロックを復号するための変換を識別するための手段と、
    前記現在ブロックについての残差ブロックを決定するために、変換係数を逆変換するための手段と、
    前記現在ブロックを復号するために、前記残差ブロックを前記現在ブロックの予測ブロックに追加するための手段と、
    を備える、装置。
  30. 1つまたは複数のプロセッサによって実行されると、前記1つまたは複数のプロセッサに、
    現在のピクチャの現在ブロックの予測ブロックの特性を決定することと、
    前記特性に基づいて、前記現在ブロックを復号するための変換を識別することと、
    前記現在ブロックについての残差ブロックを決定するために、変換係数のセットを逆変換することと、
    前記現在ブロックを復号するために、前記残差ブロックを前記現在ブロックの予測ブロックに追加することと、
    を行わせる命令を記憶するためのコンピュータ読み取り可能な媒体。
JP2019517272A 2016-10-01 2017-09-29 ビデオコーディングのための変換選択 Pending JP2019534624A (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201662403112P 2016-10-01 2016-10-01
US62/403,112 2016-10-01
US15/719,202 US10880564B2 (en) 2016-10-01 2017-09-28 Transform selection for video coding
US15/719,202 2017-09-28
PCT/US2017/054379 WO2018064517A1 (en) 2016-10-01 2017-09-29 Transform selection for video coding

Publications (1)

Publication Number Publication Date
JP2019534624A true JP2019534624A (ja) 2019-11-28

Family

ID=61759103

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019517272A Pending JP2019534624A (ja) 2016-10-01 2017-09-29 ビデオコーディングのための変換選択

Country Status (7)

Country Link
US (1) US10880564B2 (ja)
EP (1) EP3520405A1 (ja)
JP (1) JP2019534624A (ja)
KR (1) KR20190052008A (ja)
CN (1) CN109716772B (ja)
BR (1) BR112019006606A8 (ja)
WO (1) WO2018064517A1 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023508364A (ja) * 2020-09-10 2023-03-02 テンセント・アメリカ・エルエルシー コンテキスト適応変換セット
JP7472306B2 (ja) 2020-12-23 2024-04-22 テンセント・アメリカ・エルエルシー ビデオコーティングのための方法、及び装置

Families Citing this family (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20180103251A1 (en) * 2016-10-07 2018-04-12 Industrial Technology Research Institute Method for selecting prediction mode of intra prediction, video encoding device and image processing apparatus
US10554974B2 (en) * 2017-01-13 2020-02-04 Mediatek Inc. Method and apparatus enabling adaptive multiple transform for chroma transport blocks using control flags
EP3451663A1 (en) * 2017-08-31 2019-03-06 Thomson Licensing Pools of transforms for local selection of a set of transforms in video coding
US11303928B2 (en) * 2017-09-28 2022-04-12 Sharp Kabushiki Kaisha Image decoding apparatus and image coding apparatus
CN111602397B (zh) 2018-01-17 2024-01-23 英迪股份有限公司 使用各种变换技术的视频编码方法和装置
WO2019188466A1 (ja) * 2018-03-30 2019-10-03 ソニー株式会社 画像処理装置および方法
JP7301951B2 (ja) * 2018-04-01 2023-07-03 エルジー エレクトロニクス インコーポレイティド 縮小された2次変換を用いて、ビデオ信号を処理する方法及び装置
US11297348B2 (en) * 2018-04-13 2022-04-05 Mediatek Inc. Implicit transform settings for coding a block of pixels
US10999604B2 (en) 2018-04-13 2021-05-04 Mediatek Inc. Adaptive implicit transform setting
US10536720B2 (en) * 2018-05-07 2020-01-14 Tencent America LLC Method, apparatus and medium for decoding or encoding
US10462486B1 (en) * 2018-05-07 2019-10-29 Tencent America, Llc Fast method for implementing discrete sine transform type VII (DST 7)
US10986340B2 (en) 2018-06-01 2021-04-20 Qualcomm Incorporated Coding adaptive multiple transform information for video coding
CN115379216A (zh) * 2018-06-03 2022-11-22 Lg电子株式会社 视频信号的解码、编码和发送设备及存储视频信号的介质
US10771783B2 (en) 2018-06-11 2020-09-08 Google Llc Transforms for large video and image blocks
US10666981B2 (en) 2018-06-29 2020-05-26 Tencent America LLC Method, apparatus and medium for decoding or encoding
US10687081B2 (en) 2018-06-29 2020-06-16 Tencent America LLC Method, apparatus and medium for decoding or encoding
KR20230037707A (ko) 2018-08-08 2023-03-16 엘지전자 주식회사 영상의 부호화/복호화 방법 및 이를 위한 장치
SI3723375T1 (sl) * 2018-09-02 2023-07-31 Lg Electronics Inc Postopek za obdelavo slikovnih signalov in računalniško berljiv shranjevalni medij, ki shranjuje bitni tok, ki se generira z omenjenim postopkom
PL3723373T3 (pl) * 2018-09-02 2023-11-06 Lg Electronics Inc. Sposób dekodowania sygnału obrazu, sposób kodowania sygnału obrazu i nośnik danych
WO2020056760A1 (en) * 2018-09-21 2020-03-26 Alibaba Group Holding Limited Transform selection for small size block
WO2020071736A1 (ko) * 2018-10-01 2020-04-09 엘지전자 주식회사 비디오 신호의 부호화/복호화 방법 및 이를 위한 장치
WO2020092535A1 (en) * 2018-10-31 2020-05-07 Interdigital Vc Holdings, Inc. Multi-reference line intra prediction and most probable mode
KR20230154085A (ko) * 2018-12-17 2023-11-07 엘지전자 주식회사 고주파 제로잉을 기반으로 변환 계수 스캔 순서를 결정하는 방법 및 장치
US11323748B2 (en) 2018-12-19 2022-05-03 Qualcomm Incorporated Tree-based transform unit (TU) partition for video coding
WO2020216288A1 (en) * 2019-04-23 2020-10-29 Beijing Bytedance Network Technology Co., Ltd. Conditional use of multiple transform matrices in video coding
EP3949396A4 (en) 2019-05-10 2022-05-04 Beijing Bytedance Network Technology Co., Ltd. SELECTION OF SECONDARY TRANSFORMATION MATRICES FOR VIDEO PROCESSING
CN113994666A (zh) * 2019-06-06 2022-01-28 北京字节跳动网络技术有限公司 隐式选择变换候选
WO2020244662A1 (en) * 2019-06-06 2020-12-10 Beijing Bytedance Network Technology Co., Ltd. Simplified transform coding tools
JP7277616B2 (ja) 2019-06-07 2023-05-19 北京字節跳動網絡技術有限公司 ビデオ・データを処理する方法、装置及び記憶媒体
US11259016B2 (en) * 2019-06-30 2022-02-22 Tencent America LLC Method and apparatus for video coding
CN114208183A (zh) 2019-08-03 2022-03-18 北京字节跳动网络技术有限公司 视频的缩减二次变换中基于位置的模式导出
WO2021032045A1 (en) 2019-08-17 2021-02-25 Beijing Bytedance Network Technology Co., Ltd. Context modeling of side information for reduced secondary transforms in video
CN117459742A (zh) * 2019-09-21 2024-01-26 Lg电子株式会社 编码/解码设备及数据发送设备
KR20220050183A (ko) * 2019-09-21 2022-04-22 엘지전자 주식회사 변환에 기반한 영상 코딩 방법 및 그 장치
US20220353504A1 (en) * 2019-09-23 2022-11-03 Lg Electronics Inc. Image coding method based on transform, and device therefor
KR20220050966A (ko) 2019-09-25 2022-04-25 엘지전자 주식회사 변환에 기반한 영상 코딩 방법 및 그 장치
EP4017009A4 (en) * 2019-10-04 2022-11-23 LG Electronics Inc. TRANSFORMATION-BASED IMAGE CODING METHOD AND APPARATUS THEREOF
MX2022003996A (es) * 2019-10-04 2022-04-26 Lg Electronics Inc Metodo de codificacion de imagenes a base de transformacion, y dispositivo para el mismo.
KR20220050967A (ko) * 2019-10-04 2022-04-25 엘지전자 주식회사 변환에 기반한 영상 코딩 방법 및 그 장치
WO2021071294A1 (ko) * 2019-10-08 2021-04-15 엘지전자 주식회사 변환에 기반한 영상 코딩 방법 및 그 장치
CN114762344B (zh) * 2019-10-08 2023-11-21 Lg电子株式会社 基于变换的图像编码方法及其装置
US20220385943A1 (en) * 2019-10-08 2022-12-01 Lg Electronics Inc. Transform-based image coding method and device therefor
KR20220044311A (ko) * 2019-10-08 2022-04-07 엘지전자 주식회사 변환에 기반한 영상 코딩 방법 및 그 장치
US12022094B2 (en) 2019-10-08 2024-06-25 Lg Electronics Inc. Transform-based image coding method and device for same
US20230054294A1 (en) * 2020-01-10 2023-02-23 Lg Electronics Inc. Transform-based image coding method and device for same
WO2021141478A1 (ko) * 2020-01-12 2021-07-15 엘지전자 주식회사 변환에 기반한 영상 코딩 방법 및 그 장치
US11494875B2 (en) 2020-03-25 2022-11-08 Nintendo Co., Ltd. Systems and methods for machine learned image conversion
JP2023518865A (ja) * 2020-03-25 2023-05-08 任天堂株式会社 機械学習される画像コンバートのためのシステムおよび方法
US11379951B2 (en) 2020-03-25 2022-07-05 Nintendo Co., Ltd. Systems and methods for machine learned image conversion
CN116195254A (zh) * 2020-09-28 2023-05-30 交互数字Vc控股法国有限公司 用于通用视频编码的模板匹配预测
WO2023046463A1 (en) * 2021-09-23 2023-03-30 Interdigital Vc Holdings France, Sas Methods and apparatuses for encoding/decoding a video
WO2023118289A1 (en) * 2021-12-21 2023-06-29 Interdigital Vc Holdings France, Sas Transform coding based on depth or motion information
WO2024124178A1 (en) * 2022-12-08 2024-06-13 Beijing Dajia Internet Information Technology Co., Ltd. Methods and apparatus for transform training and coding

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2894330B2 (ja) * 1997-07-04 1999-05-24 日本電気株式会社 飛越し走査された動画像の可逆符号化方式
US6983079B2 (en) * 2001-09-20 2006-01-03 Seiko Epson Corporation Reducing blocking and ringing artifacts in low-bit-rate coding
KR101354151B1 (ko) * 2006-08-24 2014-01-28 삼성전자주식회사 영상 변환 방법 및 장치, 역변환 방법 및 장치
US8325801B2 (en) * 2008-08-15 2012-12-04 Mediatek Inc. Adaptive restoration for video coding
JP5215951B2 (ja) * 2009-07-01 2013-06-19 キヤノン株式会社 符号化装置及びその制御方法、コンピュータプログラム
KR101807170B1 (ko) * 2009-11-24 2017-12-08 에스케이 텔레콤주식회사 적응적 2차예측 기반 영상 부호화/복호화 방법, 장치 및 기록 매체
CN103385002A (zh) * 2010-02-17 2013-11-06 韩国电子通信研究院 用于对超高清图像进行编码的装置及其方法、以及解码装置及其方法
KR20110135787A (ko) * 2010-06-11 2011-12-19 삼성전자주식회사 엣지-적응 변환을 이용한 영상 부호화/복호화 시스템 및 방법
US9172968B2 (en) 2010-07-09 2015-10-27 Qualcomm Incorporated Video coding using directional transforms
US9800870B2 (en) * 2011-09-16 2017-10-24 Qualcomm Incorporated Line buffer reduction for short distance intra-prediction
US10264283B2 (en) * 2011-10-18 2019-04-16 Kt Corporation Method and apparatus for decoding a video signal using adaptive transform
KR20130049524A (ko) * 2011-11-04 2013-05-14 오수미 인트라 예측 블록 생성 방법
KR20130049522A (ko) * 2011-11-04 2013-05-14 오수미 인트라 예측 블록 생성 방법
US9756327B2 (en) * 2012-04-03 2017-09-05 Qualcomm Incorporated Quantization matrix and deblocking filter adjustments for video coding
US20140079135A1 (en) * 2012-09-14 2014-03-20 Qualcomm Incoporated Performing quantization to facilitate deblocking filtering
CN104737540B (zh) * 2012-11-13 2018-05-22 英特尔公司 用于下一代视频的视频编解码器架构
CN104704827B (zh) * 2012-11-13 2019-04-12 英特尔公司 用于下一代视频的内容自适应变换译码
US9538180B2 (en) * 2012-12-17 2017-01-03 Qualcomm Incorporated Motion vector prediction in video coding
US10015515B2 (en) * 2013-06-21 2018-07-03 Qualcomm Incorporated Intra prediction from a predictive block
US10313682B2 (en) * 2013-08-26 2019-06-04 Qualcomm Incorporated Determining regions when performing intra block copying
FR3023112A1 (fr) * 2014-06-27 2016-01-01 Bcom Procede de codage d'une image numerique, procede de decodage, dispositifs et programmes d'ordinateurs associes
US10306229B2 (en) 2015-01-26 2019-05-28 Qualcomm Incorporated Enhanced multiple transforms for prediction residual
FR3040578A1 (fr) * 2015-08-31 2017-03-03 Orange Procede de codage et de decodage d'images, dispositif de codage et de decodage d'images et programmes d'ordinateur correspondants
US10681379B2 (en) 2015-09-29 2020-06-09 Qualcomm Incorporated Non-separable secondary transform for video coding with reorganizing
US20170155905A1 (en) * 2015-11-30 2017-06-01 Intel Corporation Efficient intra video/image coding using wavelets and variable size transform coding
US11405645B2 (en) * 2017-02-28 2022-08-02 Google Llc Transform kernel selection and entropy coding

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2023508364A (ja) * 2020-09-10 2023-03-02 テンセント・アメリカ・エルエルシー コンテキスト適応変換セット
JP7500732B2 (ja) 2020-09-10 2024-06-17 テンセント・アメリカ・エルエルシー コンテキスト適応変換セット
JP7472306B2 (ja) 2020-12-23 2024-04-22 テンセント・アメリカ・エルエルシー ビデオコーティングのための方法、及び装置

Also Published As

Publication number Publication date
WO2018064517A1 (en) 2018-04-05
US10880564B2 (en) 2020-12-29
CN109716772A (zh) 2019-05-03
BR112019006606A8 (pt) 2020-02-04
KR20190052008A (ko) 2019-05-15
EP3520405A1 (en) 2019-08-07
US20180098081A1 (en) 2018-04-05
CN109716772B (zh) 2022-12-13
BR112019006606A2 (pt) 2019-07-02

Similar Documents

Publication Publication Date Title
CN109716772B (zh) 用于视频译码的变换选择
US11412224B2 (en) Look-up table for enhanced multiple transform
JP7071603B1 (ja) ビデオコーディングのためにブロックの複数のクラスのためのフィルタをマージすること
TWI815896B (zh) 寫碼用於視訊寫碼之自適應多重轉換資訊
KR102452745B1 (ko) 예측 잔차를 위한 향상된 다수의 변환들
JP2018142972A (ja) Bスライス中の予測ユニットの単方向インター予測への制限
AU2016332317A1 (en) Non-separable secondary transform for video coding
WO2023009459A1 (en) Video coding using multi-direction intra prediction
WO2024097377A1 (en) Methods and apparatus for transform training and coding
WO2024039806A1 (en) Methods and apparatus for transform training and coding
WO2024049770A1 (en) Methods and apparatus for transform training and coding
CN114556929A (zh) 用于视频译码的参数化基于图的可分离变换
BR112017016012B1 (pt) Múltiplas transformadas melhoradas para residual de predição