JP2023507099A - ビデオコーディングにおけるマルチプル変換選択シグナリングに対する係数グループベースの制限 - Google Patents
ビデオコーディングにおけるマルチプル変換選択シグナリングに対する係数グループベースの制限 Download PDFInfo
- Publication number
- JP2023507099A JP2023507099A JP2022535903A JP2022535903A JP2023507099A JP 2023507099 A JP2023507099 A JP 2023507099A JP 2022535903 A JP2022535903 A JP 2022535903A JP 2022535903 A JP2022535903 A JP 2022535903A JP 2023507099 A JP2023507099 A JP 2023507099A
- Authority
- JP
- Japan
- Prior art keywords
- transform
- block
- transform block
- coefficient
- determining
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/70—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/12—Selection 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods 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/176—Methods 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/18—Methods 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 a set of transform coefficients
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform 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
ビデオコーダは、ビデオデータの変換ブロックについて、非0変換係数を備える変換ブロックの少なくとも1つの係数グループが変換ブロックの最低周波数領域の外側にあると決定することができ、ここにおいて、少なくとも1つの係数グループは、各々が変換係数を備える複数の係数グループのうちの1つである。ビデオコーダは、少なくとも1つの係数グループが変換ブロックの最低周波数領域の外側にあるという決定に少なくとも部分的に基づいて、変換ブロックのためのマルチプル変換選択(MTS)を示すシンタックス要素をコーディングしないと決定し得る。ビデオコーダは、変換ブロックのためのマルチプル変換選択を示すシンタックス要素をコーディングしないという決定に少なくとも部分的に基づいて、ビデオデータをコーディングし得る。【選択図】 図11
Description
[0001]本出願は、各々の全内容がその全体において参照により本明細書に組み込まれる、2019年12月20日に出願された米国仮出願第62/951,975号の利益を主張する2020年12月17日に出願された米国出願第17/125,159号の優先権を主張する。
[0002]本開示は、ビデオ符号化およびビデオ復号に関する。
[0003]デジタルビデオ能力は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダー、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲーミングデバイス、ビデオゲームコンソール、セルラー電話または衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲のデバイスに組み込まれ得る。デジタルビデオデバイスは、MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4、Part10、アドバンストビデオコーディング(AVC)、ITU-T H.265/高効率ビデオコーディング(HEVC)によって定義された規格、およびそのような規格の拡張に記載されているビデオコーディング技法など、ビデオコーディング技法を実装する。ビデオデバイスは、そのようなビデオコーディング技法を実装することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および/または記憶し得る。
[0004]ビデオコーディング技法は、ビデオシーケンスに固有の冗長性を低減または除去するための空間(ピクチャ内)予測および/または時間(ピクチャ間)予測を含む。ブロックベースのビデオコーディングでは、ビデオスライス(たとえば、ビデオピクチャまたはビデオピクチャの一部分)が、コーディングツリーユニット(CTU)、コーディングユニット(CU)および/またはコーディングノードと呼ばれることもある、ビデオブロックに区分され得る。ピクチャのイントラコーディングされた(I)スライスの中のビデオブロックは、同じピクチャ中の近隣ブロックの中の参照サンプルに対する空間予測を使用して符号化される。ピクチャのインターコーディングされた(PまたはB)スライスの中のビデオブロックは、同じピクチャ中の隣接ブロックの中の参照サンプルに対する空間予測、または他の参照ピクチャ中の参照サンプルに対する時間予測を使用し得る。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
[0005]一般に、本開示の態様は、ビデオ圧縮規格の要素である、変換コーディングに関する。本開示の態様は、符号化および/または復号のためのマルチプル変換候補の中から選択された変換を指定するためにビデオエンコーダまたはデコーダ(コーデック)において使用され得る変換シグナリング技法について説明する。本明細書で説明される技法は、イントラモードなどの利用可能なサイド情報に基づいてシグナリングオーバーヘッドを低減し、それによってコーディング効率を改善することができ、高効率ビデオコーディング(HEVC/H.265)の拡張と、多用途ビデオコーディング(VVC/H.266)などの次世代のビデオコーディング規格とを含む高度ビデオコーデックにおいて使用され得る。
[0006]一例では、本開示は、ビデオデータをコーディングする方法が、ビデオデータの変換ブロックについて、非0変換係数を備える、変換ブロックの少なくとも1つの係数グループが、変換ブロックの最低周波数領域の外側にあると決定することと、ここにおいて、少なくとも1つの係数グループは、各々が変換係数を備える複数の係数グループのうちの1つであり;少なくとも1つの係数グループが変換ブロックの最低周波数領域の外側にあるという決定に少なくとも部分的に基づいて、変換ブロックのためのマルチプル変換選択(MTS:multiple transform selection)を示すシンタックス要素をコーディングしないと決定することと;変換ブロックのためのマルチプル変換選択を示すシンタックス要素をコーディングしないという決定に少なくとも部分的に基づいて、ビデオデータをコーディングすることとを含むことについて説明する。
[0007]別の例では、本開示は、データをコーディングするためのデバイスが、ビデオデータの変換ブロックについて、非0変換係数を備える変換ブロックの少なくとも1つの係数グループが変換ブロックの最低周波数領域の外側にあると決定するための手段と、ここにおいて、少なくとも1つの係数グループは、各々が変換係数を備える複数の係数グループのうちの1つであり;少なくとも1つの係数グループが変換ブロックの最低周波数領域の外側にあるという決定に少なくとも部分的に基づいて、変換ブロックのためのマルチプル変換選択(MTS)を示すシンタックス要素をコーディングしないと決定するための手段と;変換ブロックのためのマルチプル変換選択を示すシンタックス要素をコーディングしないという決定に少なくとも部分的に基づいて、ビデオデータをコーディングするための手段とを含むことについて説明する。
[0008]別の例では、本開示は、実行されたとき、1つまたは複数のプロセッサに、ビデオデータの変換ブロックについて、非0変換係数を備える変換ブロックの少なくとも1つの係数グループが変換ブロックの最低周波数領域の外側にあると決定することと、ここにおいて、少なくとも1つの係数グループは、各々が変換係数を備える複数の係数グループのうちの1つであり;少なくとも1つの係数グループが変換ブロックの最低周波数領域の外側にあるという決定に少なくとも部分的に基づいて、変換ブロックについてのマルチプル変換選択(MTS)を示すシンタックス要素をコーディングしないと決定することと;変換ブロックについてのマルチプル変換選択を示すシンタックス要素をコーディングしないという決定に少なくとも部分的に基づいて、ビデオデータをコーディングすることとを行わせる命令を記憶したコンピュータ可読記憶媒体について説明する。
[0009]別の例では、本開示は、デバイスについて説明する。本デバイスは、メモリと、回路内に実装されたプロセッサと、を含み、当該プロセッサは、ビデオデータの変換ブロックについて、非0変換係数を備える変換ブロックの少なくとも1つの係数グループが変換ブロックの最低周波数領域の外側にあると決定することと、ここにおいて、少なくとも1つの係数グループは、各々が変換係数を備える複数の係数グループのうちの1つであり;少なくとも1つの係数グループが変換ブロックの最低周波数領域の外側にあるという決定に少なくとも部分的に基づいて、変換ブロックのためのマルチプル変換選択(MTS)を示すシンタックス要素をコーディングしないと決定することと;変換ブロックのためのマルチプル変換選択を示すシンタックス要素をコーディングしないという決定に少なくとも部分的に基づいて、ビデオデータをコーディングすることと、を行うように構成される。
[0010]1つまたは複数の例の詳細が、添付の図面および以下の説明に記載される。他の特徴、目的、および利点は、説明、図面、および特許請求の範囲から明らかになろう。
[0022]本開示は、変換コーディングに関する。変換コーディングでは、ビデオエンコーダのために、残差データのブロック(たとえば、符号化されている現在のブロックと予測ブロックとの間の残差)がある。残差データは、空間ドメインから周波数ドメインに変換されて、変換係数の変換係数ブロック(本明細書では変換ブロックとも呼ばれる)が生じる。ビデオデコーダは、変換係数ブロック(または場合によっては量子化の後の変換係数ブロック)を受信し、残差データを値の空間ドメインに再構成して戻すために逆量子化(必要な場合)と逆変換とを実行する。
[0023]変換ユニット(TU)は、ルーマサンプルの変換ブロックと、対応するクロマサンプルの変換ブロックとを含む。変換ブロックは、復号プロセスにおける変換から生じるサンプルの矩形M×Nブロックであり得、変換は、変換係数のブロックが空間ドメイン値のブロックにコンバートされる復号プロセスの一部であり得る。したがって、残差ブロックは、TUの一例であり得る。残差ブロックは、サンプルドメインから周波数ドメインに変換された残差データであり得、複数の変換係数を含む。変換コーディングは、M.Wien,High Efficiency Video Coding:Coding Tools and Specification,Springer-Verlag,Berlin,2015により詳細に記載されている。
[0024]より詳細に説明されるように、本開示で説明される1つまたは複数の例において説明される技法は、適応マルチプル(またはマルチコア)変換(AMT:adaptive multiple (or multi-core) transform)またはマルチプル変換選択(MTS:multiple transform selection)と呼ばれる変換方式を利用する。AMTとMTSは、ビデオコーディング規格間の名称変更により、同じ変換ツールを指すことがあり、AMTは今ではMTSと呼ばれ、MTSに関して本明細書で説明される技法は、AMTに等しく適用可能である。以下の米国特許出願は、すなわち、2019年5月28日に発行された米国特許第10,306,229号、2018年1月18日に公開された米国特許公開第2018/0020218号、および2019年5月30日に出願された米国特許出願第16/426,749号は、マルチプル変換選択(MTS)技法について説明している。MTS技法は、一般に、前述のAMT技法と同じである。2019年5月30日に出願された米国特許出願第16/426,749号に記載されたMTSの例は、Joint Video Experts Team(JVET)のJoint Experimental Model(JEM-7.0)に採用されており(ITU-T SG16 WP3およびISO/IEC JTC1/SC29/WG11のJoint Video Experts Team(JVET)、JEM Software、https://jvet.hhi.fraunhofer.de/svn/svn_HMJEMSoftware/tags/HM-16.6-JEM-7.0参照)、以降、MTSの簡略版がVVCに採用されている。
[0025]より詳細に説明されるように、いくつかの例では、MTSの技法によれば、現在のコーディングユニット中の関連するルーマ変換ブロックの水平方向および垂直方向に沿ってどの変換カーネルが適用されるかを指定するために、MTSインデックスがシグナリングされ得る。しかしながら、MTSインデックスは、変換ブロックの最低周波数領域の外側に位置する非0変換係数が存在しない(たとえば、0値変換係数のみである)場合にのみシグナリングされ得る。変換ブロックの最低周波数領域の外側に非0変換係数が存在する場合、MTSインデックスはシグナリングされない。代わりに、MTSインデックスの値は、適用可能な変換カーネルを決定するために推測され得る。
[0026]本開示の態様は、変換ブロックの最低周波数領域の外側に位置する非0変換係数が存在しない場合のみMTSインデックスがシグナリングされることを確実にする方法で、変換ブロックのためのMTSインデックスをシグナリングすべきかどうかを決定するための技法について説明する。たとえば、ビデオエンコーダまたはビデオデコーダなどのビデオコーダは、
ビデオデータの変換ブロックのための変換係数を備える複数の係数グループのうちの最後にコーディングされた係数グループが変換ブロックの最低周波数領域の外側にあるかどうかを決定することによって、変換ブロックの最低周波数領域の外側に少なくとも1つの非0変換係数が存在するかどうかを決定し得る。ビデオコーダは、最後にコーディングされた係数グループが変換ブロックの最低周波数領域の外側に位置するかどうかの決定に少なくとも部分的に基づいて、変換ブロックのためのMTSインデックスを示すシンタックス要素をコーディングすべきかどうかを決定し得る。したがって、ビデオコーダは、マルチプル変換選択を示すシンタックス要素をコーディングすべきかどうかの決定に少なくとも部分的に基づいてビデオデータをコーディングし得る。
ビデオデータの変換ブロックのための変換係数を備える複数の係数グループのうちの最後にコーディングされた係数グループが変換ブロックの最低周波数領域の外側にあるかどうかを決定することによって、変換ブロックの最低周波数領域の外側に少なくとも1つの非0変換係数が存在するかどうかを決定し得る。ビデオコーダは、最後にコーディングされた係数グループが変換ブロックの最低周波数領域の外側に位置するかどうかの決定に少なくとも部分的に基づいて、変換ブロックのためのMTSインデックスを示すシンタックス要素をコーディングすべきかどうかを決定し得る。したがって、ビデオコーダは、マルチプル変換選択を示すシンタックス要素をコーディングすべきかどうかの決定に少なくとも部分的に基づいてビデオデータをコーディングし得る。
[0027]このようにして、本開示で説明される技法は、変換ブロックの最低周波数領域の外側に非0変換係数が存在する場合、MTSインデックスがシグナリングされるのを防ぎ、それによって、変換ブロックの最低周波数領域の外側に非0変換係数を有する変換ブロックのためのMTSインデックスの冗長なシグナリングを防ぐ。シグナリングされ得る冗長データの量を低減することによって、本開示で説明される技法は、ビデオデータのコーディング効率を改善することができ、HEVCの拡張とVVCなどの次世代のビデオコーディング規格とを含む高度ビデオコーデックにおいて使用され得る。
[0028]図1は、本開示の技法を実行し得る例示的なビデオ符号化および復号システム100を示すブロック図である。本開示の技法は、一般に、ビデオデータをコーディング(符号化および/または復号)することを対象とする。一般に、ビデオデータは、ビデオを処理するための何らかのデータを含む。したがって、ビデオデータは、生の符号化されていないビデオ、符号化されたビデオ、復号された(たとえば、再構成された)ビデオ、およびシグナリングデータなどのビデオメタデータを含み得る。
[0029]図1に示されているように、システム100は、この例では、宛先デバイス116によって復号および表示されるべき、符号化されたビデオデータを提供するソースデバイス102を含む。具体的には、ソースデバイス102は、コンピュータ可読媒体110を介して、宛先デバイス116にビデオデータを提供する。ソースデバイス102および宛先デバイス116は、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、モバイルデバイス、タブレットコンピュータ、セットトップボックス、スマートフォンなどの電話ハンドセット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイス、ブロードキャスト受信機デバイスなどを含む、広範囲にわたるデバイスのいずれかを備え得る。いくつかの場合には、ソースデバイス102および宛先デバイス116は、ワイヤレス通信のために装備され得、したがって、ワイヤレス通信デバイスと呼ばれることがある。
[0030]図1の例では、ソースデバイス102は、ビデオソース104と、メモリ106と、ビデオエンコーダ200と、出力インターフェース108とを含む。宛先デバイス116は、入力インターフェース122と、ビデオデコーダ300と、メモリ120と、ディスプレイデバイス118とを含む。本開示によれば、ソースデバイス102のビデオエンコーダ200と、宛先デバイス116のビデオデコーダ300とは、変換ブロックのためのMTSインデックスをコーディングすべきかどうかを決定するための技法を適用するように構成され得る。したがって、ソースデバイス102はビデオ符号化デバイスの一例を表し、宛先デバイス116はビデオ復号デバイスの一例を表す。他の例では、ソースデバイスおよび宛先デバイスは、他の構成要素または配置を含み得る。たとえば、ソースデバイス102は、外部カメラなどの外部ビデオソースからビデオデータを受信し得る。同様に、宛先デバイス116は、一体型ディスプレイデバイスを含むのではなく、外部ディスプレイデバイスとインターフェースし得る。
[0031]図1に示されているシステム100は、一例にすぎない。一般に、どんなデジタルビデオ符号化および/または復号デバイスも、変換ブロックのためのMTSインデックスをコーディングすべきかどうかを決定するための技法を実行し得る。ソースデバイス102および宛先デバイス116は、ソースデバイス102が宛先デバイス116への送信のためにコーディングされたビデオデータを生成するようなコーディングデバイスの例にすぎない。本開示では、データのコーディング(符号化および/または復号)を実施するデバイスとして「コーディング」デバイスに言及する。したがって、ビデオエンコーダ200およびビデオデコーダ300は、コーディングデバイス、特に、それぞれビデオエンコーダおよびビデオデコーダの例を表す。いくつかの例では、ソースデバイス102および宛先デバイス116は、ソースデバイス102と宛先デバイス116との各々がビデオ符号化および復号構成要素を含むように、実質的に対称的に動作し得る。したがって、システム100は、たとえば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、またはビデオテレフォニーのために、ソースデバイス102と宛先デバイス116との間の一方向または双方向のビデオ送信をサポートし得る。
[0032]一般に、ビデオソース104は、ビデオデータ(すなわち、生の符号化されていないビデオデータ)のソースを表し、ビデオデータの連続的な一連のピクチャ(「フレーム」とも呼ばれる)をビデオエンコーダ200に提供し、ビデオエンコーダ200は、ピクチャのためにデータを符号化する。ソースデバイス102のビデオソース104は、ビデオカメラ、以前にキャプチャされた生のビデオを含んでいるビデオアーカイブ、および/またはビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースなど、ビデオキャプチャデバイスを含み得る。さらなる代替として、ビデオソース104は、ソースビデオとして、コンピュータグラフィックスベースのデータ、またはライブビデオとアーカイブビデオとコンピュータ生成されたビデオとの組合せを生成し得る。各場合において、ビデオエンコーダ200は、キャプチャされたビデオデータ、プリキャプチャされたビデオデータ、またはコンピュータ生成されたビデオデータを符号化する。ビデオエンコーダ200は、ピクチャを、(「表示順序」と呼ばれることがある)受信順序から、コーディングのためのコーディング順序に並べ替え得る。ビデオエンコーダ200は、符号化されたビデオデータを含むビットストリームを生成し得る。ソースデバイス102は、次いで、たとえば、宛先デバイス116の入力インターフェース122による受信および/または取出しのために、出力インターフェース108を介して符号化されたビデオデータをコンピュータ可読媒体110上に出力し得る。
[0033]ソースデバイス102のメモリ106と、宛先デバイス116のメモリ120とは、汎用メモリを表す。いくつかの例では、メモリ106、120は、生のビデオデータ、たとえば、ビデオソース104からの生のビデオ、およびビデオデコーダ300からの生の復号されたビデオデータを記憶し得る。追加または代替として、メモリ106、120は、たとえば、それぞれ、ビデオエンコーダ200とビデオデコーダ300とによって実行可能なソフトウェア命令を記憶し得る。メモリ106およびメモリ120は、この例ではビデオエンコーダ200およびビデオデコーダ300は別個に示されているが、ビデオエンコーダ200およびビデオデコーダ300は、機能的に同様のまたは等価な目的で内部メモリをも含み得ることを理解されたい。さらに、メモリ106、120は、符号化されたビデオデータ、たとえば、ビデオエンコーダ200からの出力、およびビデオデコーダ300への入力を記憶し得る。いくつかの例では、メモリ106、120の部分は、たとえば、生の復号および/または符号化されたビデオデータを記憶するために、1つまたは複数のビデオバッファとして割り振られ得る。
[0034]コンピュータ可読媒体110は、ソースデバイス102から宛先デバイス116に符号化されたビデオデータを移送することが可能な任意のタイプの媒体またはデバイスを表し得る。一例では、コンピュータ可読媒体110は、ソースデバイス102が、たとえば、無線周波数ネットワークまたはコンピュータベースのネットワークを介して、符号化されたビデオデータを宛先デバイス116にリアルタイムで直接送信することを可能にするための通信媒体を表す。出力インターフェース108は、符号化されたビデオデータを含む送信信号を変調し得、入力インターフェース122は、ワイヤレス通信プロトコルなどの通信規格に従って、受信された送信信号を復調し得る。通信媒体は、無線周波数(RF)スペクトルまたは1つもしくは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワークなどのパケットベースネットワーク、またはインターネットなどのグローバルネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス102から宛先デバイス116への通信を容易にするために有用であり得る任意の他の機器を含み得る。
[0035]いくつかの例では、ソースデバイス102は、出力インターフェース108から記憶デバイス112に符号化データを出力し得る。同様に、宛先デバイス116は、入力インターフェース122を介して記憶デバイス112から符号化データにアクセスし得る。記憶デバイス112は、ハードドライブ、Blu-ray(登録商標)ディスク、DVD、CD-ROM、フラッシュメモリ、揮発性または不揮発性メモリ、あるいは符号化されたビデオデータを記憶するための任意の他の好適なデジタル記憶媒体などの、様々な分散されたまたはローカルにアクセスされるデータ記憶媒体のいずれかを含み得る。
[0036]いくつかの例では、ソースデバイス102は、ソースデバイス102によって生成された符号化されたビデオデータを記憶し得るファイルサーバ114または別の中間ストレージデバイスに符号化されたビデオデータを出力し得る。宛先デバイス116は、ストリーミングまたはダウンロードを介してファイルサーバ114からの記憶されたビデオデータにアクセスし得る。
[0037]ファイルサーバ114は、符号化されたビデオデータを記憶し、その符号化されたビデオデータを宛先デバイス116に送信することが可能な任意のタイプのサーバデバイスであり得る。ファイルサーバ114は、(たとえば、ウェブサイトのための)ウェブサーバ、(ファイル転送プロトコル(FTP)またはファイル配信オーバー単方向トランスポート(FLUTE:File Delivery over Unidirectional Transport)プロトコルなどの)ファイル転送プロトコルサービスを提供するように構成されたサーバ、コンテンツ配信ネットワーク(CDN)デバイス、ハイパーテキスト転送プロトコル(HTTP)サーバ、マルチメディアブロードキャストマルチキャストサービス(MBMS)または拡張MBMS(eMBMS)サーバ、および/あるいはネットワーク接続ストレージ(NAS)デバイスを表し得る。ファイルサーバ114は、追加または代替として、動的適応ストリーミングオーバーHTTP(DASH)、HTTPライブストリーミング(HLS)、リアルタイムストリーミングプロトコル(RTSP)、HTTP動的ストリーミングなど、1つまたは複数のHTTPストリーミングプロトコルを実装し得る。
[0038]宛先デバイス116は、インターネット接続を含む、任意の標準のデータ接続を通してファイルサーバ114から符号化されたビデオデータにアクセスし得る。これは、ファイルサーバ114に記憶された符号化されたビデオデータにアクセスするのに好適であるワイヤレスチャネル(たとえば、Wi-Fi(登録商標)接続)、ワイヤード接続(たとえば、デジタル加入者回線(DSL)、ケーブルモデムなど)、またはその両方の組合せを含み得る。入力インターフェース122は、ファイルサーバ114からメディアデータを取り出すまたは受信するための上記で説明された様々なプロトコル、あるいはメディアデータを取り出すための他のそのようなプロトコルのうちのいずれか1つまたは複数に従って動作するように構成され得る。
[0039]出力インターフェース108および入力インターフェース122は、ワイヤレス送信機/受信機、モデム、ワイヤードネットワーキング構成要素(たとえば、イーサネット(登録商標)カード)、様々なIEEE802.11規格のいずれかに従って動作するワイヤレス通信構成要素、または他の物理的構成要素を表し得る。出力インターフェース108および入力インターフェース122がワイヤレス構成要素を備える例では、出力インターフェース108および入力インターフェース122は、4G、4G-LTE(登録商標)(ロングタームエボリューション)、LTEアドバンスト、5Gなど、セルラー通信規格に従って、符号化されたビデオデータなどのデータを転送するように構成され得る。出力インターフェース108がワイヤレス送信機を備えるいくつかの例では、出力インターフェース108および入力インターフェース122は、IEEE802.11仕様、IEEE802.15仕様(たとえば、ZigBee(登録商標))、Bluetooth(登録商標)規格などの、他のワイヤレス規格に従って、符号化されたビデオデータなどのデータを転送するように構成され得る。いくつかの例では、ソースデバイス102および/または宛先デバイス116は、それぞれのシステムオンチップ(SoC)デバイスを含み得る。たとえば、ソースデバイス102は、ビデオエンコーダ200および/または出力インターフェース108に帰属される機能を実行するためのSoCデバイスを含み得、宛先デバイス116は、ビデオデコーダ300および/または入力インターフェース122に帰属される機能を実行するためのSoCデバイスを含み得る。
[0040]本開示の技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、動的適応ストリーミングオーバーHTTP(DASH)などのインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されたデジタルビデオ、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。
[0041]宛先デバイス116の入力インターフェース122は、コンピュータ可読媒体110(たとえば、通信媒体、記憶デバイス112、ファイルサーバ114など)から符号化されたビデオビットストリームを受信する。符号化されたビデオビットストリームは、ビデオブロックまたは他のコーディングされたユニット(たとえば、スライス、ピクチャ、ピクチャグループ、シーケンスなど)の特性および/または処理を記述する値を有するシンタックス要素など、ビデオデコーダ300によっても使用される、ビデオエンコーダ200によって定義されるシグナリング情報を含み得る。ディスプレイデバイス118は、復号されたビデオデータの復号されたピクチャをユーザに表示する。ディスプレイデバイス118は、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを表し得る。
[0042]図1には示されていないが、いくつかの例では、ビデオエンコーダ200およびビデオデコーダ300は各々、オーディオエンコーダおよび/またはオーディオデコーダと統合され得、共通のデータストリーム中にオーディオとビデオの両方を含む多重化ストリームをハンドリングするために、適切なMUX-DEMUXユニット、あるいは他のハードウェアおよび/またはソフトウェアを含み得る。適用可能な場合、MUX-DEMUXユニットは、ITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
[0043]ビデオエンコーダ200およびビデオデコーダ300は各々、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、個別論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダ回路および/またはデコーダ回路のいずれか、あるいはそれらの任意の組合せとして実装され得る。本技法が部分的にソフトウェアで実装されるとき、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアの命令を記憶し、本開示の技法を実施するために1つまたは複数のプロセッサを使用してその命令をハードウェアで実行し得る。ビデオエンコーダ200およびビデオデコーダ300の各々は、1つまたは複数のエンコーダまたはデコーダに含まれ得、それらのいずれかが、それぞれのデバイス中の複合エンコーダ/デコーダ(CODEC)の一部として組み込まれ得る。ビデオエンコーダ200および/またはビデオデコーダ300を含むデバイスは、集積回路、マイクロプロセッサ、および/または携帯電話などのワイヤレス通信デバイスを備えてもよい。
[0044]ビデオエンコーダ200およびビデオデコーダ300は、高効率ビデオコーディング(HEVC)とも呼ばれるITU-T H.265、またはマルチビューおよび/もしくはスケーラブルビデオコーディング拡張などのそれらの拡張などの、ビデオコーディング規格に従って動作し得る。代替的に、ビデオエンコーダ200およびビデオデコーダ300は、汎用ビデオコーディング(VVC)とも呼ばれるITU-T H.266など、他のプロプライエタリ規格または業界規格に従って動作し得る。VVC規格のドラフトは、Brossら、「Versatile Video Coding(Draft10)」、ITU-T SG16 WP3とISO/IEC JTC1/SC29/WG11とのジョイントビデオエキスパーツチーム(JVET)、第18回会合:遠隔会議による、2020年6月22日~7月1日、JVET-S2001-vA(以下では「VVC Draft10」)に記載されている。しかしながら、本開示の技法は、いかなる特定のコーディング規格にも限定されない。
[0045]一般に、ビデオエンコーダ200およびビデオデコーダ300は、ピクチャのブロックベースのコーディングを実行し得る。「ブロック」という用語は、一般に、処理されるべき(たとえば、符号化されるべき、復号されるべき、あるいは、さもなければ符号化および/または復号プロセスにおいて他の方法で使用されるべき)データを含む構造を指す。たとえば、ブロックは、ルミナンスおよび/またはクロミナンスデータのサンプルの2次元行列を含み得る。一般に、ビデオエンコーダ200およびビデオデコーダ300は、YUV(たとえば、Y、Cb、Cr)フォーマットで表されるビデオデータをコーディングし得る。すなわち、ピクチャのサンプルのために赤色、緑色、および青色(RGB)データをコーディングするのではなく、ビデオエンコーダ200およびビデオデコーダ300は、ルミナンス成分とクロミナンス成分とをコーディングし得、ここで、クロミナンス成分は、赤色相と青色相の両方のクロミナンス成分を含み得る。いくつかの例では、ビデオエンコーダ200は、符号化より前に、受信されたRGBフォーマットのデータをYUV表現にコンバートし、ビデオデコーダ300は、YUV表現をRGBフォーマットにコンバートする。代替的に、前処理および後処理ユニット(図示せず)が、これらの変換を実行し得る。
[0046]本開示は、一般に、ピクチャのデータを符号化または復号するプロセスを含むように、ピクチャのコーディング(たとえば、符号化および復号)に言及することがある。同様に、本開示は、ブロックのためのデータを符号化または復号するプロセス、たとえば、予測および/または残差コーディングを含むように、ピクチャのブロックのコーディングに言及することがある。符号化されたビデオビットストリームは、一般に、コーディング決定(たとえば、コーディングモード)とブロックへのピクチャの区分とを表すシンタックス要素のための一連の値を含む。したがって、ピクチャまたはブロックをコーディングすることへの言及は、一般に、ピクチャまたはブロックを形成するシンタックス要素についての値をコーディングすることとして理解されるべきである。
[0047]HEVCは、コーディングユニット(CU)、予測ユニット(PU)、および変換ユニット(TU)を含む、様々なブロックを定義する。HEVCに従って、(ビデオエンコーダ200などの)ビデオコーダは、4分木構造に従ってコーディングツリーユニット(CTU)をCUに区分する。すなわち、ビデオコーダは、CTUとCUとを4つの等しい重複しない正方形に区分し、クワッドツリーの各ノードは、0個または4つのいずれかの子ノードを有する。子ノードのないノードは、「リーフノード」と呼ばれることがあり、そのようなリーフノードのCUは、1つもしくは複数のPUおよび/または1つもしくは複数のTUを含み得る。ビデオコーダは、PUとTUとをさらに区分し得る。たとえば、HEVCでは、残差4分木(RQT)はTUの区分を表す。HEVCでは、PUはインター予測データを表すが、TUは残差データを表す。イントラ予測されるCUは、イントラモード指示などのイントラ予測情報を含む。
[0048]別の例として、ビデオエンコーダ200およびビデオデコーダ300は、VVCに従って動作するように構成され得る。VVCに従って、(ビデオエンコーダ200などの)ビデオコーダは、ピクチャを複数のコーディングツリーユニット(CTU)に区分する。ビデオエンコーダ200は、4分木2分木(QTBT)構造またはマルチタイプツリー(MTT)構造などの、木構造に従ってCTUを区分し得る。QTBT構造は、HEVCのCUとPUとTUとの間の分離など、複数の区分タイプの概念を除去する。QTBT構造は、2つのレベル、すなわち、4分木区分に従って区分される第1のレベルと、2分木区分に従って区分される第2のレベルとを含む。QTBT構造のルートノードは、CTUに対応する。2分木のリーフノードは、コーディングユニット(CU)に対応する。
[0049]MTT区分構造では、ブロックは、4分木(QT)区分と、2分木(BT)区分と、1つまたは複数のタイプの3分木(TT:triple tree)(3元木(TT:ternary tree)とも呼ばれる)区分とを使用して区分され得る。3分木または3元木区分は、ブロックが3つのサブブロックに分割される区分である。いくつかの例では、3分木または3元木区分は、中心を通って元のブロックを分割することなくブロックを3つのサブブロックに分割する。MTTにおける区分タイプ(たとえば、QT、BT、およびTT)は、対称的または非対称的であり得る。
[0050]いくつかの例では、ビデオエンコーダ200およびビデオデコーダ300は、ルミナンス成分とクロミナンス成分との各々を表すために単一のQTBTまたはMTT構造を使用し得、他の例では、ビデオエンコーダ200およびビデオデコーダ300は、ルミナンス成分のための1つのQTBT/MTT構造、および両方のクロミナンス成分のための別のQTBT/MTT構造(またはそれぞれのクロミナンス成分のための2つのQTBT/MTT構造)などの、2つ以上のQTBTまたはMTT構造を使用し得る。
[0051]ビデオエンコーダ200およびビデオデコーダ300は、HEVCによる4分木区分、QTBT区分、MTT区分、または他の区分構造を使用するように構成され得る。説明の目的で、本開示の技法の説明はQTBT区分に関して提示される。しかしながら、本開示の技法は、4分木区分、または同様に他のタイプの区分を使用するように構成されたビデオコーダにも適用され得ることを理解されたい。
[0052]いくつかの例では、CTUは、ルーマサンプルのコーディングツリーブロック(CTB)、3つのサンプルアレイを有するピクチャのクロマサンプルの2つの対応するCTB、あるいはモノクロームピクチャ、またはサンプルをコーディングするために使用される3つの別個の色平面とシンタックス構造とを使用してコーディングされるピクチャのサンプルのCTBを含む。CTBは、CTBへの成分の分割が区分になるように、何らかの値のNに対して、サンプルのN×Nブロックであり得る。成分は、ピクチャを4:2:0、4:2:2、または4:4:4色フォーマットに構成する3つのアレイ(ルーマおよび2つのクロマ)のうちの1つからのアレイまたは単一のサンプル、あるいはピクチャをモノクロームフォーマットに構成するアレイまたはアレイの単一のサンプルである。いくつかの例では、コーディングブロックは、コーディングブロックへのCTBの分割が区分になるように、何らかの値のMとNとに対して、サンプルのM×Nブロックである。
[0053]ブロック(たとえば、CTUまたはCU)は、ピクチャ中で様々な仕方でグループ化され得る。一例として、ブリックは、ピクチャ中の特定のタイル内のCTU行の矩形領域を参照し得る。タイルは、ピクチャ中の特定のタイル列と特定のタイル行との内のCTUの矩形領域であり得る。タイル列は、ピクチャの高さに等しい高さと、(たとえば、ピクチャパラメータセット中などの)シンタックス要素によって指定された幅とを有するCTUの矩形領域を参照する。タイル行は、(たとえば、ピクチャパラメータセット中などの)シンタックス要素によって指定された高さと、ピクチャの幅に等しい幅とを有するCTUの矩形領域を参照する。
[0054]いくつかの例では、タイルは複数のブリックに区分され得、それらの各々は、タイル内に1つまたは複数のCTU行を含み得る。複数のブリックに区分されないタイルもブリックと呼ばれることがある。しかしながら、タイルの真のサブセットであるブリックは、タイルと呼ばれないことがある。
[0055]ピクチャ中のブリックはまた、スライス中に配置され得る。スライスは、もっぱら単一のネットワークアブストラクションレイヤ(NAL)ユニット中に含まれていることがあるピクチャの整数個のブリックであり得る。いくつかの例では、スライスは、いくつかの完全なタイル、または1つのタイルの完全なブリックの連続シーケンスのみのいずれかを含む。
[0056]本開示では、たとえば、16×16サンプルまたは16掛ける16のサンプルなど、垂直および水平寸法に関して、(CUまたは他のビデオブロックなどの)ブロックのサンプル寸法を参照するために「N×N」と「N掛けるN(N by N)」とを互換的に使用し得る。一般に、16×16のCUは、垂直方向に16個のサンプルを有し(y=16)、水平方向に16個のサンプルを有する(x=16)。同様に、N×NのCUは、一般に、垂直方向にN個のサンプルを有し、水平方向にN個のサンプルを有し、ここで、Nは非負整数値を表す。CUの中のサンプルは、行および列に配置され得る。さらに、CUは、必ずしも、水平方向において垂直方向と同じ数のサンプルを有する必要があるとは限らない。たとえば、CUはN×Mサンプルを備え得、ここで、Mは必ずしもNに等しいとは限らない。
[0057]ビデオエンコーダ200は、予測および/または残差情報、ならびに他の情報を表すCUのためにビデオデータを符号化する。予測情報は、CUについて予測ブロックを形成するためにCUがどのように予測されるべきかを示す。残差情報は、一般に、符号化より前のCUのサンプルと予測ブロックとの間のサンプルごとの差分を表す。
[0058]CUを予測するために、ビデオエンコーダ200は、一般に、インター予測またはイントラ予測を通してCUについて予測ブロックを形成し得る。インター予測は、一般に、以前にコーディングされたピクチャのデータからCUを予測することを指すが、イントラ予測は、一般に、同じピクチャの以前にコーディングされたデータからCUを予測することを指す。インター予測を実行するために、ビデオエンコーダ200は、1つまたは複数の動きベクトルを使用して予測ブロックを生成し得る。ビデオエンコーダ200は、一般に、たとえば、CUと参照ブロックとの間の差分に関して、CUに厳密に一致する参照ブロックを識別するために動き探索を実行し得る。ビデオエンコーダ200は、参照ブロックが現在のCUに厳密に一致するかどうかを決定するために、絶対差分和(SAD)、2乗差分和(SSD)、平均絶対差(MAD)、平均2乗差(MSD)、または他のそのような差分計算を使用して差分メトリックを計算し得る。いくつかの例では、ビデオエンコーダ200は、単方向予測または双方向予測を使用して現在のCUを予測し得る。
[0059]VVCのいくつかの例はまた、インター予測モードと見なされ得るアフィン動き補償モードを提供する。アフィン動き補償モードでは、ビデオエンコーダ200は、ズームインまたはアウト、回転、パースペクティブの動き、あるいは他の変則の動きタイプなど、非並進の動きを表す2つ以上の動きベクトルを決定し得る。
[0060]イントラ予測を実施するために、ビデオエンコーダ200は、予測ブロックを生成するようにイントラ予測モードを選択し得る。VVCのいくつかの例は、様々な方向性モード、ならびに平面モードおよびDCモードを含む、67個のイントラ予測モードを提供する。一般に、ビデオエンコーダ200は、現在のブロック(たとえば、CUのブロック)のサンプルをそれから予測すべき、現在のブロックに対する隣接サンプルを記述するイントラ予測モードを選択する。そのようなサンプルは、ビデオエンコーダ200がラスタ走査順序で(左から右に、上から下に)CTUとCUとをコーディングすると仮定すると、一般に、現在のブロックと同じピクチャ中の現在のブロックの上方、上方および左側、または左側にあり得る。
[0061]ビデオエンコーダ200は、現在のブロックについて予測モードを表すデータを符号化する。たとえば、インター予測モードでは、ビデオエンコーダ200は、様々な利用可能なインター予測モードのうちのどれが使用されるか、ならびに対応するモードの動き情報を表すデータを符号化し得る。たとえば、単方向または双方向インター予測では、ビデオエンコーダ200は、高度動きベクトル予測(AMVP)またはマージモードを使用して動きベクトルを符号化し得る。ビデオエンコーダ200は、アフィン動き補償モードのための動きベクトルを符号化するために、同様のモードを使用し得る。
[0062]ブロックのイントラ予測またはインター予測などの予測に続いて、ビデオエンコーダ200は、ブロックについて残差データを計算し得る。残差ブロックなどの残差データは、ブロックと、対応する予測モードを使用して形成された、ブロックのための予測ブロックとの間の、サンプルごとの差分を表す。ビデオエンコーダ200は、サンプル領域ではなく変換領域中に変換データを作り出すために、残差ブロックに1つまたは複数の変換を適用し得る。たとえば、ビデオエンコーダ200は、離散コサイン変換(DCT)、整数変換、ウェーブレット変換、または概念的に同様の変換を残差ビデオデータに適用し得る。さらに、ビデオエンコーダ200は、第1の変換に続いて、モード依存非分離可能2次変換(MDNSST:mode-dependent non-separable secondary transform)、信号依存変換、カルーネンレーベ変換(KLT)などの2次変換を適用し得る。ビデオエンコーダ200は、1つまたは複数の変換の適用に続いて変換係数を作り出す。
[0063]上述のように、変換係数を作り出すための任意の変換に続いて、ビデオエンコーダ200は変換係数の量子化を実施し得る。量子化は、一般に、変換係数を表すために使用されるデータの量をできるだけ低減するために変換係数が量子化され、さらなる圧縮を行うプロセスを指す。量子化プロセスを実行することによって、ビデオエンコーダ200は、変換係数の一部または全部に関連付けられたビット深度を低減し得る。たとえば、ビデオエンコーダ200は、量子化の間にnビット値をmビット値に切り捨てることがあり、ここにおいて、nはmよりも大きい。いくつかの例では、量子化を実行するために、ビデオエンコーダ200は、量子化されるべき値のビットごとの右シフトを実行し得る。
[0064]量子化に続いて、ビデオエンコーダ200は、変換係数を走査して、量子化された変換係数を含む2次元行列から1次元ベクトルを作り出し得る。走査は、より高いエネルギー(したがって、より低い頻度)の変換係数をベクトルの前方に配置し、より低いエネルギー(したがって、より高い頻度)の変換係数をベクトルの後方に配置するように設計され得る。いくつかの例では、ビデオエンコーダ200は、シリアル化されたベクトルを作り出すために、量子化された変換係数を走査するために、あらかじめ定義された走査順序を利用し、次いで、ベクトルの量子化された変換係数をエントロピー符号化し得る。他の例では、ビデオエンコーダ200は、適応型走査を実施し得る。量子化された変換係数を走査して1次元ベクトルを形成した後に、ビデオエンコーダ200は、たとえば、コンテキスト適応型バイナリ算術コーディング(CABAC)に従って、1次元ベクトルをエントロピー符号化し得る。ビデオエンコーダ200はまた、ビデオデータを復号する際のビデオデコーダ300による使用のために、符号化されたビデオデータに関連付けられたメタデータを記述するシンタックス要素についての値をエントロピー符号化し得る。
[0065]CABACを実行するために、ビデオエンコーダ200は、コンテキストモデル内のコンテキストを、送信されるべきシンボルに割り当て得る。コンテキストは、たとえば、シンボルの近隣値が0値であるか否かに関係し得る。確率決定は、シンボルに割り当てられたコンテキストに基づき得る。
[0066]ビデオエンコーダ200は、さらに、ブロックベースのシンタックスデータ、ピクチャベースのシンタックスデータ、およびシーケンスベースのシンタックスデータなどのシンタックスデータを、たとえば、ピクチャヘッダ、ブロックヘッダ、スライスヘッダ、またはシーケンスパラメータセット(SPS)、ピクチャパラメータセット(PPS)、もしくはビデオパラメータセット(VPS)などの他のシンタックスデータの中で、ビデオデコーダ300に対して生成し得る。ビデオデコーダ300は、対応するビデオデータをどのように復号すべきかを決定するために、そのようなシンタックスデータを同様に復号し得る。
[0067]このようにして、ビデオエンコーダ200は、符号化されたビデオデータ、たとえば、ブロック(たとえば、CU)へのピクチャの区分ならびにブロックのための予測および/または残差情報を記述するシンタックス要素を含むビットストリームを生成し得る。最終的に、ビデオデコーダ300は、ビットストリームを受信し、符号化されたビデオデータを復号し得る。
[0068]一般に、ビデオデコーダ300は、ビットストリームの符号化されたビデオデータを復号するために、ビデオエンコーダ200によって実行されたものの逆プロセスを実行する。たとえば、ビデオデコーダ300は、ビデオエンコーダ200のCABAC符号化プロセスと逆ではあるが、それと実質的に同様の様式でCABACを使用してビットストリームのシンタックス要素の値を復号し得る。シンタックス要素は、CTUのCUを定義するために、ピクチャをCTUに区分するための区分情報と、QTBT構造などの対応する区分構造に従う、各CTUの区分とを定義し得る。シンタックス要素は、ビデオデータのブロック(たとえば、CU)のための予測および残差情報をさらに定義し得る。
[0069]残差情報は、たとえば、量子化された変換係数によって表され得る。ビデオデコーダ300は、ブロックのための残差ブロックを再生するために、ブロックの量子化された変換係数を逆量子化し、逆変換し得る。ビデオデコーダ300は、ブロックのための予測ブロックを形成するために、シグナリングされた予測モード(イントラまたはインター予測)と、関連する予測情報(たとえば、インター予測のための動き情報)とを使用する。ビデオデコーダ300は、次いで、元のブロックを再生するために(サンプルごとに)予測ブロックと残差ブロックとを組み合わせ得る。ビデオデコーダ300は、ブロックの境界に沿って視覚的アーティファクトを低減するためにデブロッキング処理を実行することなどの、追加の処理を実行し得る。
[0070]本開示の技法によれば、ビデオエンコーダ200およびビデオデコーダ300は、ビデオデータの変換ブロックについて、非0変換係数を備える変換ブロックの少なくとも1つの係数グループが変換ブロックの最低周波数領域の外側にあるかどうかを決定すること、ここにおいて、少なくとも1つの係数グループは、各々が変換係数を備える複数の係数グループのうちの1つであり、と、少なくとも1つのコーディングされた係数グループが変換ブロックの最低周波数領域の外側にあるかどうかの決定に少なくとも部分的に基づいて、変換ブロックのためのマルチプル変換選択(MTS)を示すシンタックス要素をコーディングすべきかどうかを決定することと、マルチプル変換選択を示すシンタックス要素をコーディングすべきかどうかの決定に少なくとも部分的に基づいてビデオデータをコーディングすることとを行い得る。
[0071]図2Aおよび図2Bは、例示的な4分木2分木(QTBT)構造130と、対応するコーディングツリーユニット(CTU)132とを示す概念図である。実線は4分木分割を表し、点線は2分木分割を表す。2分木の各分割(すなわち、非リーフ)ノードでは、どの分割タイプ(すなわち、水平または垂直)が使用されるかを示すために1つのフラグがシグナリングされ、ここにおいて、この例では、0は水平分割を示し、1は垂直分割を示す。4分木分割では、4分木ノードが、ブロックを、等しいサイズをもつ4つのサブブロックに水平および垂直に分割するので、分割タイプを示す必要がない。したがって、QTBT構造130の領域ツリーレベル(すなわち、実線)のための(分割情報などの)シンタックス要素と、QTBT構造130の予測ツリーレベル(すなわち、破線)のための(分割情報などの)シンタックス要素とを、ビデオエンコーダ200は符号化し得、ビデオデコーダ300は復号し得る。QTBT構造130の端末リーフノードによって表されるCUのための、予測および変換データなどのビデオデータを、ビデオエンコーダ200は符号化し得、ビデオデコーダ300は復号し得る。
[0072]一般に、図2BのCTU132は、第1および第2のレベルにおいてQTBT構造130のノードに対応するブロックのサイズを定義するパラメータに関連付けられ得る。これらのパラメータは、(サンプル単位でCTU132のサイズを表す)CTUサイズと、最小4分木サイズ(最小許容4分木リーフノードサイズを表す、MinQTSize)と、最大2分木サイズ(最大許容2分木ルートノードサイズを表す、MaxBTSize)と、最大2分木深度(最大許容2分木深度を表す、MaxBTDepth)と、最小2分木サイズ(最小許容2分木リーフノードサイズを表す、MinBTSize)とを含み得る。
[0073]CTUに対応するQTBT構造のルートノードは、QTBT構造の第1のレベルにおいて4つの子ノードを有し得、それらの各々は、4分木区分に従って区分され得る。すなわち、第1のレベルのノードは、(子ノードを有しない)リーフノードであるか、または4つの子ノードを有するかのいずれかである。QTBT構造130の例は、分岐のために実線を有する親ノードと子ノードとを含むようなノードを表す。第1のレベルのノードが最大許容2分木ルートノードサイズ(MaxBTSize)よりも大きくない場合、ノードはそれぞれの2分木によってさらに区分され得る。1つのノードの2分木分割は、分割から得られるノードが最小許容2分木リーフノードサイズ(MinBTSize)または最大許容2分木深度(MaxBTDepth)に到達するまで反復され得る。QTBT構造130の例は、ブランチのために破線を有するようなノードを表す。2分木リーフノードは、コーディングユニット(CU)と呼ばれ、コーディングユニット(CU)は、それ以上区分することなく、予測(たとえば、イントラピクチャ予測またはインターピクチャ予測)および変換のために使用される。上記で説明されたように、CUは、「ビデオブロック」または「ブロック」と呼ばれることもある。
[0074]QTBT区分構造の一例では、CTUサイズは、128×128(ルーマサンプルおよび2つの対応する64×64クロマサンプル)として設定され、MinQTSizeは16×16として設定され、MaxBTSizeは64×64として設定され、(幅と高さの両方について)MinBTSizeは4として設定され、MaxBTDepthは4として設定される。4分木リーフノードを生成するために、最初に4分木区分がCTUに適用される。4分木リーフノードは、16×16(すなわち、MinQTSize)から128×128(すなわち、CTUサイズ)までのサイズを有してよい。4分木リーフノードが128×128である場合、リーフ4分木ノードは、サイズがMaxBTSize(すなわち、この例では、64×64)を超えるので、2分木によってさらに分割されない。そうでない場合、4分木リーフノードは、2分木によってさらに区分される。したがって、4分木リーフノードはまた、2分木に対してルートノードであり、0としての2分木深度を有する。2分木深度がMaxBTDepth(この例では4)に達したとき、さらなる分割は許可されない。MinBTSize(この例では、4)に等しい幅を有する2分木ノード、それは、その2分木ノードのためにさらなる垂直分割(すなわち、幅の分割)が許可されないことを暗示する。同様に、MinBTSizeに等しい高さを有する2分木ノードは、その2分木ノードのためにさらなる水平分割(すなわち、高さの分割)が許可されないことを暗示する。上述のように、2分木のリーフノードはCUと呼ばれ、さらなる区分なしに予測および変換に従ってさらに処理される。
[0075]本開示は、一般に、シンタックス要素などのある情報を「シグナリング」することに言及することがある。「シグナリング」という用語は、一般に、符号化されたビデオデータを復号するために使用されるシンタックス要素および/または他のデータについての値の通信を指し得る。すなわち、ビデオエンコーダ200は、ビットストリームにおいてシンタックス要素についての値をシグナリングし得る。一般に、シグナリングは、ビットストリームにおいて値を生成することを指す。上述のように、ソースデバイス102は、実質的にリアルタイムでビットストリームを宛先デバイス116に移送するか、または、宛先デバイス116による後の取出しのためにシンタックス要素を記憶デバイス112に記憶するときに行われ得るように、非リアルタイムでビットストリームを宛先デバイス116に移送し得る。
[0076]図3Aおよび図3Bは、HEVCの残差4分木に基づく例示的な変換方式を示す概念図である。HEVCでは、残差ブロックの様々な特性を適応させるために、残差4分木(RQT)を使用する変換コーディング構造が適用され、これは、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)、2010年3月、726~729ページに手短に記載されている。RQTに関する追加の情報は、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において入手可能である。
[0077]RQTでは、各ピクチャは、特定のタイルまたはスライスについてラスタ走査順序でコーディングされるコーディングツリーユニット(CTU)に分割される。CTUは、正方形ブロックであり、4分木、すなわち、コーディングツリーのルートを表す。CTUサイズは8×8から64×64ルーマサンプルにわたり得るが、一般に64×64が使用される。各CTUは、コーディングユニット(CU)と呼ばれるより小さい正方形ブロックにさらに分割され得る。CTUがCUに再帰的に分割された後、各CUは、予測ユニット(PU)と変換ユニット(TU)とにさらに分けられる。TUへのCUの区分は、4分木手法に基づいて再帰的に行われ、したがって、各CUの残差信号は、ツリー構造、すなわち、残差4分木(RQT)によってコーディングされる。RQTは、4×4から32×32ルーマサンプルまでのTUサイズを可能にする。
[0078]図3Aは、CU134が、文字a~jで標示された10個のTUを含む一例と、対応するブロック区分とを示す。図3Bに示されているRQT136の各ノードは、図3Aに対応する変換ユニット(TU)である。個々のTUは、深度優先トラバーサル(depth-first traversal)による再帰的Z走査に従う、アルファベット順として図3Aに示されている深度優先ツリートラバーサル順序で処理される。4分木手法は、残差信号の変動する空間周波数特性に対する変換の適応を可能にする。
[0079]一般に、より大きい空間サポートを有するより大きい変換ブロックサイズは、より良い周波数解像度を与える。しかしながら、より小さい空間サポートを有するより小さい変換ブロックサイズは、より良い空間解像度を与える。その2つ、すなわち、空間解像度と周波数解像度との間のトレードオフは、たとえばレートひずみ最適化技法に基づいて、エンコーダモード決定によって選定される。レートひずみ最適化技法は、各コーディングモード(たとえば、特定のRQTスプリッティング構造)についてコーディングビットと再構成ひずみとの加重和、すなわち、レートひずみコストを計算し、最小レートひずみコストをもつコーディングモードを最良のモードとして選択する。
[0080]ツリーの最大深度、最小許容変換サイズおよび最大許容変換サイズという、3つのパラメータがRQTにおいて定義される。最小変換サイズおよび最大変換サイズは、前の段落において述べられたサポートされるブロック変換に対応する、4×4から32×32サンプルまでの範囲内で変動することがある。RQTの最大許容深度はTUの数を制限する。0に等しい最大深度は、各含まれるTBが最大許容変換サイズ、たとえば、32×32に達した場合、コーディングブロック(CB)がこれ以上分割され得ないことを意味する。
[0081]これらすべてのパラメータは、相互作用し、RQT構造に影響を及ぼす。ルートCBサイズが64×64であり、最大深度が0に等しく、最大変換サイズが32×32に等しい場合について考える。この場合、CBは、さもなければ、それが、許容されない64×64TBにつながることになるので、少なくとも1回区分されるべきである。RQTパラメータ、すなわち、最大RQT深度、最小および最大変換サイズは、シーケンスパラメータセットレベルにおいてビットストリーム中で送信される。RQT深度に関して、イントラコード化CUとインターコード化CUとについて異なる値が指定され、シグナリングされ得る。
[0082]4分木変換は、イントラ残差ブロックとインター残差ブロックの両方のために適用される。一般に、現在の残差4分木区分の同じサイズのDCT-II変換が残差ブロックに適用される。しかしながら、現在の残差4分木ブロックが4×4であり、イントラ予測によって生成される場合、上記の4×4DST-VII変換が適用される。
[0083]HEVCでは、より大きいサイズの変換、たとえば、64×64変換は、主に、それの限られた利益の考慮と、より比較的小さい分解能のビデオに対する比較的高い複雑さとにより、採用されない。
[0084]計算の複雑さを低減するために、ブロック変換は通常、分離可能様式で計算され、すなわち、水平ラインおよび垂直ラインは、図4Aおよび図4Bに示されているように、独立して変換される。図4Aおよび図4Bは、分離可能な変換実装形態として水平変換と垂直変換とを示す概念図である。図4Aは、H個の水平変換170のセットを表すが、図4Bは、W個の垂直変換172のセットを表す。特に、残差値の水平ラインおよび垂直ラインは、それぞれ、水平変換170と垂直変換172とを使用して独立して変換され得る。
[0085]HEVCより前のビデオコーディング規格では、固定の分離可能変換のみが使用され、ここにおいて、DCT-2が垂直と水平の両方に使用される。HEVCでは、DCT-2に加えて、DST-7も、固定の分離可能変換として4×4ブロックのために採用される。米国特許公開第2016/0219290号と、米国特許公開第2018/0020218号とは、それらの固定変換の適応拡張をカバーし、米国特許公開第2016/0219290号におけるAMTの一例は、ジョイントビデオエキスパーツチーム(JVET)の共同探査モデル(JEM)、X.Zhao、J.Chen、M.Karczewicz、L.Zhang、X.Li、およびW.-J.Chien、「Enhanced multiple transform for video coding」、Proc. Data Compression Conference、73~82ページ、2016年3月に採用されている。
[0086]米国特許公開第2016/0219290号と米国特許公開第2018/0020218号とに記載のAMT設計は、ビデオエンコーダ200がブロックごとに選択するための5つの変換オプションを提示する(この選択は、一般にレートひずみメトリックに基づいて行われる)。次いで、選択された変換インデックスは、ビデオデコーダ300にシグナリングされる。
[0087]図5は、変換シグナリングを示す概念図である。たとえば、図5は、米国特許公開第2016/0219290号と米国特許公開第2018/0020218号とにおいて提案されるシグナリングを示し、ここにおいて、デフォルト変換をシグナリングするために1ビットが使用され、4つの変換をシグナリングするために追加の2ビット(すなわち、合計3ビット)が使用される。たとえば、5つの変換のうちの1つ(デフォルト変換)は0(すなわち、1ビット)を使用してシグナリングされ、他の4つの変換は3ビット(すなわち、100、101、110、および111)を使用してシグナリングされる。
[0088]米国特許公開第2016/0219290号と米国特許公開第2018/0020218号とにおいて、デフォルト変換は、垂直と水平の両方にDCT-2を適用する分離可能2D DCTとして選択される。AMTの残りは、米国特許公開第2016/0219290号におけるイントラモード情報に基づいて定義される。米国特許公開第2018/0020218号は、予測モード情報とブロックサイズ情報の両方に基づいてそれらの4つの変換のセットを定義することによって米国特許公開第2016/0219290号の拡張を提案している。
[0089]VVC参照ソフトウェアのバージョン、VTM3.0では、図5に示されているシグナリング方式が使用される。コーディングユニット(CU)ごとに、(i)DCT2が水平と垂直の両方向に使用されるかどうかを決定するために単一のビット(フラグ)が使用されるか、あるいは(ii)水平または垂直に適用される1-D変換を指定するために(AMT/MTSインデックスと呼ばれる)追加の2ビットが使用される。これらの4つの変換は、所与のブロックの行/列上に適用されるべきDST-7/DCT-8を割り当てることによって定義される。たとえば、00の値を有する2つの追加のビットは、水平と垂直の両方にDST-7を適用する分離可能な変換に対応し得、01の値を有する2つの追加のビットは、水平にDCT-8を、垂直にDST-7を適用することに対応し得る。
[0090]本開示全体にわたって、MTSインデックスは、現在のコーディングユニット中の関連するルーマ変換ブロックの水平方向および垂直方向に沿って適用される分離可能な変換を指定するシンタックス要素であり得る。いくつかの例では、MTSインデックスは、図5に関して上記で説明されたように、先行する1ビット値または3ビット値であり得る。他の例では、MTSインデックスは、任意の適切なマルチプル変換を指定する1つまたは複数のビットであり得る。
[0091]MTSの技法によれば、MTSインデックスは、現在のコーディングユニット中の関連するルーマ変換ブロックの水平方向および垂直方向に沿ってどの変換カーネルが適用されるかを指定するためにシグナリングされ得る。しかしながら、MTSインデックスは、32×32変換ブロックの16×16左上領域などの、変換ブロックの左上領域であり得る、変換ブロックの最低周波数領域の外側に変換ブロックのための非0変換係数が存在しない場合にのみシグナリングされ得る。変換ブロックの最低周波数領域の外側に非0変換係数が存在する場合、MTSインデックスはシグナリングされない。代わりに、MTSインデックスの値は、適用可能な変換カーネルを決定するために推測され得る。
[0092]図6Aおよび図6Bは、変換ブロックを示す概念図である。図6Aに示されているように、変換ブロック182は、32×32サンプルを備え得る。図6Aは、32×32サンプルを備えるものとして変換ブロック182を示すが、本開示で説明される技法は、N×Mサンプルを備える任意の変換ブロックに適用可能であり得、ここにおいて、Mは必ずしもNに等しいとは限らない。変換ブロック182は、変換ブロック182の最低周波数変換係数を表す変換ブロック182の左上部分(たとえば、左上サブブロック)であり得る最低周波数領域184(図6Aでは影付きである)を含み得る。図6Aの例では、変換ブロック182の最低周波数領域184は、x軸とy軸の両方の上で0から15に及ぶ変換ブロック182の左上16×16サンプルであり得る。
[0093]一例として、変換ブロック182は、DCT変換またはDST変換に基づいて生成され得る。DCTまたはDST変換の1つの可能な結果は、変換係数がそれぞれの周波数に基づいて順序付けられることである。たとえば、低周波数に関連する変換係数は、変換ブロック182の左上部分に集められる傾向がある。したがって、最低周波数領域184は、低周波数に関連する変換係数を含む。
[0094]いくつかの例では、MTSインデックス(すなわち、マルチプル変換選択を示すシンタックス要素)は、変換ブロック182中の最低周波数領域184の外側にある変換ブロック182中の変換係数が各々0の値を有する場合のみ、変換ブロック182のために選択されたマルチプル変換(すなわち、分離可能な変換)を示す。変換ブロック182中の最低周波数領域184の外側の係数グループのいずれも非0変換係数を含まない場合、ビデオエンコーダ200は、変換ブロック182のために選択されたマルチプル変換を示すMTSインデックスを符号化し得、ビデオデコーダ300は、変換ブロック182のためのMTSインデックスを復号し得る。
[0095]しかしながら、変換ブロック182中の最低周波数領域184の外側の少なくとも1つの変換係数が非0値を有する場合、ビデオエンコーダ200は、変換ブロック182のために選択されたマルチプル変換を示すMTSインデックスを符号化しないと決定し得、ビデオデコーダ300は、代わりに、MTSインデックスの値が0などのデフォルト値であると推測し(たとえば、明示的なシンタックス要素なしで決定し)得、デフォルト変換(たとえば、DCT-2変換)を変換ブロックに適用し得る。
[0096]VVC Draft7、ドラフト14(すなわち、JVET-P2001-vE)では、以下で「mts_idx」と呼ばれるMTSインデックスは、以下の条件セットが満たされる場合にシグナリングされる。
[0097]表1に見られるように、ビデオコーダ(たとえば、ビデオエンコーダ200および/またはビデオデコーダ300)は、シンタックス要素MtsZeroOutSigCoeffFlagの値が1に等しいかどうかに少なくとも部分的に基づいて、シンタックス要素mts_idxがシグナリングされるかどうかを決定し得る。シンタックス要素MtsZeroOutSigCoeffFlagの値が1に等しい場合、ビデオコーダは、シンタックス要素mts_idxをシグナリングし得る。シンタックス要素MtsZeroOutSigCoeffFlagの値が0であるときなど、シンタックス要素MtsZeroOutSigCoeffFlagの値が1に等しくない場合、ビデオコーダは、シンタックス要素mts_idxをシグナリングしないことがある。代わりに、ビデオコーダは、0などの、MTSインデックスの値を推測し得る。MTSインデックスの推測値は、水平変換と垂直変換の両方に対するDCT-2変換などの特定の変換の選択に対応し得る。
[0098]シンタックス要素MtsZeroOutSigCoeffFlagの値は、変換ブロックの最低周波数領域の外側にある変換ブロックの係数の値がゼロ化される(すなわち、各々が0の値を有する)かどうかを示す。いくつかの例では、32×32変換ブロック182の場合、最低周波数領域184は、変換ブロックの左上16×16領域であり、これは、変換ブロック182の位置(0、0)から変換ブロック182の位置(15、15)に及ぶ。
[0099]したがって、VVC Draft7、ドラフト14では、表1のシンタックス要素MtsZeroOutSigCoeffFlagの値は、最後有意係数の位置に応じて以下の条件に従って0に設定される。
[0100]表2に見られるように、ビデオコーダは、変換ブロック182中の最後有意(すなわち、非0)係数の位置(たとえば、x軸上およびy軸上の位置)に基づいてシンタックス要素MtsZeroOutSigCoeffFlagの値を決定し得る。32×32変換ブロック182の最後有意係数の位置が16×16最低周波数領域184の外側にあるかどうかを決定するために、ビデオコーダは、最後有意係数の位置がx軸上およびy軸上で15よりも大きいかどうかを検査し、ここにおいて、シンタックス要素LastSignificantCoeffXの値は、変換ブロック182中のx軸上の最後有意係数の位置であり、LastSignificantCoeffYは、変換ブロック182中のy軸上の最後有意係数の位置である。
[0101]最後有意係数の位置がx軸上またはy軸上の少なくとも1つにおいて15よりも大きい場合、ビデオコーダは、変換ブロック182の最低周波数領域184の外側にある変換ブロック182の係数の値がゼロ化されていないと決定することができ、したがって、シンタックス要素MtsZeroOutSigCoeffFlagの値を0に設定することができる。最後有意係数の位置がx軸上またはy軸上のいずれにおいても15よりも大きくない場合、ビデオコーダは、変換ブロック182の最低周波数領域184の外側にある変換ブロック182の係数の値がゼロ化されたと決定することができ、したがって、シンタックス要素MtsZeroOutSigCoeffFlagの値を1に設定することができる。
[0102]しかしながら、変換ブロック182中の最後有意係数の位置は、常に、変換ブロック182の最低周波数領域184の外側にある変換ブロック182の係数の値がゼロ化されるかどうかの信頼できるインジケータであるとは限らないことがある。変換ブロック182中の最後有意係数が最低周波数領域184内にある場合であっても、変換ブロック182の最低周波数領域184の外側にある変換ブロック182の係数の値がゼロ化されない状況があり得る。
[0103]たとえば、ビデオコーダは、変換ブロック182の係数の対角走査を介して変換ブロック182の最後有意係数を決定するので、変換ブロック182中の最低周波数領域184中にある最後有意係数を走査する前に、変換ブロック182中の最低周波数領域184の外側の非0係数が走査されることが可能である。この例では、非0係数が変換ブロック182中の最低周波数領域184の外側に存在しても、ビデオコーダは、それにもかかわらず、最後有意係数が変換ブロック182中の最低周波数領域184中にあるので、変換ブロック182の最低周波数領域184の外側に非0係数値が存在しないと決定し得る。
[0104]この問題を解決するために、ビデオビットストリームは、次のように制限され得る。現在のコーディングユニットにおいて、residual_coding(x0,y0,log2sTbWidth,log2TbHeight,cIdx)シンタックス構造中の少なくとも1つのcoded_sub_block_flag[xS][yS]が、0に等しいcIdxおよび3よりも大きいxSまたはySに対して、0に等しくない場合、mts_idxが0に等しくなるべきであることがビットストリーム適合の要件である。しかしながら、ビットストリーム制限は、変換ブロック182が変換ブロック182の最低周波数領域184の外側に非0係数を含む場合でも、準拠していないビデオエンコーダが変換ブロック182のMTSインデックスを依然としてシグナリングしないことを保証しない場合がある。
[0105]したがって、本開示の態様は、上記で説明されたMTSシグナリングのためのビットストリーム制限をシンタックスベース制限で置き換えるための変換シグナリング技法について説明する。たとえば、MTSインデックスのシグナリングを制限するために最後有意係数位置の位置を使用する代わりに、MTSインデックスのシグナリングは、最後にコーディングされた係数グループ(CG)のロケーションに基づいて制限され得、ここにおいて、コーディングされたCGは、少なくとも1つの非0係数を含むCGであり、その結果、(i)MTSの潜在的な冗長シグナリングが回避され、(ii)MTSが使用されるとき(たとえば、DST-7とDCT-8との組合せが分離可能な変換として使用されるとき)、32×32TU中の左上16×16領域の外側の非0係数は可能でない。
[0106]いくつかの例では、CGは、走査順序で連続する係数のセットであり得る。たとえば、CGは、CGが変換ブロック182の4×4サブブロックに対応し得るように、走査順序で16個の連続する係数のセットであり得る。この例では、32×32TUは、64個の重複しないCGを含み得る。CGの他の例は、本明細書で開示される技法に等しく適用可能であり得る。
[0107]図6Bに示されているように、4×4係数グループを有する32×32変換ブロック182の例では、変換ブロック182中のCGの位置は(x,y)として示され、ここにおいて、xおよびyは各々、変換ブロック182中のCGの位置が(0、0)から(7、7)までの範囲となり得るように、0から7までの範囲であり得る。したがって、変換ブロック182の16×16最低周波数領域184は、変換ブロック182において(0、0)から(3、3)に及ぶことがあり、したがって、x軸およびy軸のうちの少なくとも1つに沿ったCGの位置が3よりも大きい場合、CGは変換ブロック182の最低周波数領域184の外側にある。
[0108]したがって、本開示のいくつかの態様では、ビデオコーダは、MTSインデックス(すなわち、シンタックス要素mts_idx)をシグナリングすることを許容されず、x軸またはy軸に沿った最後にコーディングされたCGの位置が3よりも大きい場合、MTSインデックスの値は0と推測される(すなわち、DCT-2が係数ブロックの水平変換および垂直変換として使用されると推測される)。そうでない場合、変換ブロック182中のCGがx軸およびy軸のうちの少なくとも1つに沿って3よりも大きい位置を有さない場合、ビデオコーダは、MTSインデックスをシグナリングし得る。
[0109]本開示の態様によれば、ビデオコーダは、x軸またはy軸における最後にコーディングされたCGの位置が3よりも大きい場合、MTSインデックスの値が代わりにデフォルト値と推測される(たとえば、DCT-2変換の選択を示すためにMTSインデックスの値が0であると推測する)ように、変換ブロック182のためのMTSインデックスをシグナリングしないと決定し得る。そうでない場合、コーディングされたCGがx軸またはy軸のいずれにおいても3よりも大きい位置を有さない場合、MTSインデックスは、ビデオエンコーダ200などによってシグナリングされ得る。同様に、コーディングされたCGがx軸またはy軸のいずれにおいても3よりも大きい位置を有さない場合、MTSインデックスは、変換ブロック182のための選択された分離可能な変換を決定するために、ビデオデコーダ300などによって構文解析され(parsed)得る。3は、MTSインデックスがシグナリング/構文解析され得るかどうかを決定するためのx軸およびy軸における最後にコーディングされたCGのしきい値のほんの一例であり得、任意の適切なファクタ(たとえば、変換ブロック182のサイズ)に応じて、3とは異なる値が、開示された技法に等しく適用可能であり得る。
[0110]本開示で改善され得るVVC Draft7、ドラフト14のセクションは、以下の表3に示される。ビデオエンコーダ200は、表1に示されたコーディングシンタックスに基づいて変換ブロック182のためのMTSインデックスをシグナリングすべきかどうかを決定し得、ビデオデコーダ300は、表1に示されたコーディングシンタックスに基づいて変換ブロック182のためのMTSインデックスを推測すべきかどうか、および/または符号化されたMTSインデックスを構文解析すべきかどうかを決定し得る。
[0111]VVC Draft7、バージョン14へのシンタックス変更が表3に記載されており、ここにおいて、<DELETE></DELETE>の間のコンテンツは残差コーディングシンタックスから、および/またはスライスデータセマンティクスから削除されるが、<ADD></ADD>の間のコンテンツは、本開示の技法に従って、残差コーディングシンタックスおよび/またはスライスデータセマンティクスに追加され、そのようなタグは、実際には残差コーディングシンタックスの一部ではない。同様に、<ADD>、</ADD>、<DELETE>、および</DELETE>は、本開示の技法に従って、残差コーディングシンタックスから削除されたシンタックスを示すために、本開示では単に読みやすさを目的として追加されており、そのようなタグは、実際には残差コーディングシンタックスの一部ではない。
[0112]表3に見られるように、最後有意係数の位置が変換ブロック182の最低周波数領域184の外側にあるかどうかを検査する、シンタックスif((LastSignificantCoeffX>15||LastSignificantCoeffY>15)&&cIdx==0)は、残差コーディングシンタックスから削除される。代わりに、変換ブロック182のMtsZeroOutSigCoeffFlagの値を決定するために、ビデオコーダ(たとえば、ビデオエンコーダ200またはビデオデコーダ300)は、CGについて、それがコーディングされたCGである(すなわち、非0係数を含む)かどうかを決定し、CGがコーディングされたCGである場合、コーディングされたCGが変換ブロック182の最低周波数領域184の外側にあるかどうかを決定するために、変換ブロック182中のCGを通して反復し得る。コーディングされたCGが変換ブロック182の最低周波数領域184の外側にあるとビデオコーダが決定した場合、ビデオコーダは、変換ブロック182の最低周波数領域184の外側の係数がゼロ化されていないことを示すために、変換ブロック182のMtsZeroOutSigCoeffFlagの値を0に設定し得る。
[0113]ビデオコーダは、変換ブロック182について、最後のサブブロックから開始する走査順序(たとえば、対角走査順序)に従って、変換ブロック182のCGを横断し(traverse through)得る。ビデオコーダは、ビデオコーダによって遭遇された各CGについて、コーディングされたサブブロックフラグがCGについて設定されているかどうかを決定することによって、CGがコーディングされたCGであるかどうかを決定し得る。表3に示されているように、ビデオコーダによって遭遇される各CGは、[xS][yS]の位置を有するように示され、ここにおいて、xSは、変換ブロック182中のx軸に沿ったCGの位置であり、yXは、変換ブロック182中のy軸に沿ったCGの位置である。
[0114]同じく表3に示すように、位置[xS][yS]におけるCGのためのコーディングされたサブブロックフラグは、シンタックス要素coded_sub_block_flag[xS][yS]として示される。CGのためのコーディングされたサブブロックフラグは、1の値または0の値のいずれかを有し得る。CGのためのコーディングされたサブフロックフラグは、CG中の変換係数のすべてが0である場合、0の値を有し、CGのためのコーディングされたサブブロックフラグは、CG中の変換係数のうちの少なくとも1つが非0である場合、1の値を有する。
[0115]ビデオコーダがCGに遭遇するとき、ビデオコーダは、CGのためのコーディングされたサブブロックフラグの値に基づいて、CGがコーディングされたCGである(非0係数を含む)かどうかを決定し得る。たとえば、ビデオコーダが、CGのためのコーディングされたサブブロックフラグの値が1であると決定する場合、ビデオコーダは、CGがコーディングされたCGであると決定し得る。ビデオコーダが、CGのためのコーディングされたサブブロックフラグの値が0であると決定する場合、ビデオコーダは、CGがコーディングされたCGではないと決定し得る。
[0116]ビデオコーダは、CGがコーディングされたCGであると決定したことに応答して、CGが変換ブロック182の最低周波数領域184の外側に位置するかどうかを決定し得る。4×4サブブロックとしてCGをもつ64×64変換ブロック182の場合、変換ブロック182中のCGの位置は、(0、0)から(7、7)に及ぶことができ、変換ブロック182の最低周波数領域184は、(0、0)から(3、3)に及ぶことができる。したがって、コーディングされたCGが変換ブロック182の最低周波数領域184の外側に位置するかどうかを決定するために、ビデオコーダは、x軸またはy軸のうちの少なくとも1つにおけるコーディングされたCGの位置が3よりも大きいかどうかを決定し得る。x軸またはy軸のうちの少なくとも1つにおけるコーディングされたCGの位置が3よりも大きいとビデオコーダが決定した場合、ビデオコーダは、非0変換係数を備える少なくとも1つのCGが変換ブロック182の最低周波数領域184の外側にあると決定し得る。
[0117]CGの位置が残差コーディングシンタックスにおいて[xS][yS]として示されると仮定すれば、ビデオコーダは、xSまたはySのいずれかの値が3よりも大きいかどうかを決定することによって、コーディングされたCGが最低周波数領域184の外側に位置するかどうかを決定し得る。コーディングされたCGのxSまたはySのいずれかの値が3よりも大きいとビデオコーダが決定する場合、ビデオコーダは、非0変換係数を備える少なくとも1つのCGが変換ブロック182の最低周波数領域184の外側にあると決定し得る。
[0118]表3に見られるように、本開示の技法は、条件付きシンタックスif((coded_sub_block_flag[xS][yS]||i==lastSubBlock)&&cIdx==0&&(xS>3||yS>3)MtsZeroOutSigCoeffFlag=0を残差コーディングシンタックスに追加する。ビデオコーダは、CGのためのコーディングされたサブブロックフラグ(coded_sub_block_flag[xS][yS])が1に設定されているかどうかと、x軸またはy軸のうちの少なくとも1つの上のCGの位置が3よりも大きいかどうか(xS>3||yS>3)とを決定することに基づいて、CGについて、CGがコーディングされたCGであるかどうかを検査するために条件付きシンタックスを実行する。CGがコーディングされたCGであり、x軸上またはy軸上のうちの少なくとも1つにおけるCGの位置が3よりも大きいとビデオコーダが決定する場合、ビデオコーダは、少なくとも1つの非0変換係数が変換ブロック182の最低周波数領域184の外側にあると決定し得、したがって、シンタックス要素MtsZeroOutSigCoeffFlagの値を0に設定し得る。CGがコーディングされたCGではない、および/または、x軸上でもy軸上でもCGの位置が3よりも大きくないとビデオコーダが決定した場合、ビデオコーダは、シンタックス要素MtsZeroOutSigCoeffFlagの値を設定することを控え得る。
[0119]したがって、ビデオコーダは、非0変換係数を備える少なくとも1つのCGが変換ブロック182の最低周波数領域184の外側にあるかどうかを決定するために、上記で説明された技法に従って、走査順序において変換ブロック182のCGを通して反復し得る。ビデオコーダが、変換ブロック182のCGを通して反復した後に、非0変換係数を備えるCGが変換ブロック182の最低周波数領域184の外側にないと決定する場合、ビデオコーダは、変換ブロック182のためのMTSインデックスをシグナリングおよび/または構文解析し得る。すなわち、ビデオエンコーダ200は、変換ブロック182に適用されるべきマルチプル変換を示すためにMTSインデックスをシグナリングし得、ビデオデコーダ300は、変換ブロック182に適用されるべきマルチプル変換を示すためにMTSインデックスを構文解析し得る。
[0120]ビデオコーダが、変換ブロック182のCGを通して反復した後に、非0変換係数を備える少なくとも1つのCGが変換ブロック182の最低周波数領域184の外側にあると決定する場合、ビデオコーダは、変換ブロック182のためのMTSインデックスをシグナリングおよび/または構文解析することを控え得る。すなわち、ビデオエンコーダ200は、変換ブロック182に適用されるべきマルチプル変換を示すためにMTSインデックスをシグナリングしないと決定し得る。同様に、ビデオデコーダ300は、ビデオエンコーダ200が変換ブロック182のためのMTSインデックスをシグナリングする場合でも、MTSインデックスのデフォルト値を推測し得る。
[0121]表1に関して上記で説明されたように、ビデオコーダは、シンタックス要素MtsZeroOutSigCoeffFlagの値が1に等しいかどうかに少なくとも部分的に基づいて、変換ブロック182のためのMTSインデックス(シンタックス要素mts_idx)がシグナリングされるかどうかを決定し得る。シンタックス要素MtsZeroOutSigCoeffFlagの値が1に等しい場合、ビデオコーダは、シンタックス要素mts_idxをシグナリングし得る。シンタックス要素MtsZeroOutSigCoeffFlagの値が0であるときなど、シンタックス要素MtsZeroOutSigCoeffFlagの値が1に等しくない場合、ビデオコーダは、シンタックス要素mts_idxをシグナリングしないことがある。代わりに、ビデオコーダは、0などの、MTSインデックスの値を推測し得る。MTSインデックスの推測値は、水平変換と垂直変換の両方に対するDCT-2変換などの特定の変換の選択に対応し得る。このようにして、ビデオエンコーダ200は、変換ブロック182のためのMTSインデックスをシグナリングすべきかどうかを決定し得、ビデオデコーダ300は、変換ブロック182のためのMTSインデックスを推測すべきかどうかを決定し得る。
[0122]ビデオエンコーダ200が、表1に示されたコーディングシンタックスに基づいて変換ブロック182のためのMTSインデックスをシグナリングすべきかどうかを決定し、ビデオデコーダ300が、表3に示されたコーディングシンタックスに基づいて変換ブロック182のためのMTSインデックスを推測すべきかどうか、および/または符号化されたMTSインデックスを構文解析すべきかどうかを決定するための、VVC Draft7、ドラフト14に記載された技法を改善する代替方法が表4に示されている。
[0123]ビデオエンコーダ200は、表1に示されたコーディングシンタックスに基づいて変換ブロック182のためのMTSインデックスをシグナリングすべきかどうかを決定し得、ビデオデコーダ300は、表1に示されたコーディングシンタックスに基づいて変換ブロック182のためのMTSインデックスを推測すべきかどうか、および/または符号化されたMTSインデックスを構文解析すべきかどうかを決定し得る。
[0124]VVC Draft7、バージョン14への代替のシンタックス変更が表4に記載されており、ここにおいて、<DELETE></DELETE>の間のコンテンツは残差コーディングシンタックスおよび/またはスライスデータセマンティクスから削除されるが、<ADD></ADD>の間のコンテンツは、本開示の技法に従って、残差コーディングシンタックスおよび/またはスライスデータセマンティクスに追加され、そのようなタグは、実際には残差コーディングシンタックスの一部ではない。同様に、<ADD>、</ADD>、<DELETE>、および</DELETE>は、本開示の技法に従って、残差コーディングシンタックスから削除されたシンタックスを示すために、本開示では単に読みやすさを目的として追加されており、そのようなタグは、実際には残差コーディングシンタックスの一部ではない。
[0125]表4の例示的な残差コーディングシンタックスに見られるように、x軸における最後にコーディングされたCGの位置は、シンタックス要素lastSubBlockXとして定義され、y軸における最後にコーディングされたCGの位置は、シンタックス要素lastSubBlockYとして定義される。さらに、条件付きシンタックスif((LastSignificantCoeffX>15||LastSignificantCoeffY>15)&&cIdx==0)が削除され、条件付きシンタックスif((lastSubBlockX>3||lastSubBlockY>3)&&cIdx==0)に置き換えられる。したがって、最後の係数位置を使用する代わりに、最後にコーディングされたCG位置が、MTSインデックスのシグナリングを制限するために使用される。
[0126]したがって、ビデオコーダは、変換ブロック182について、最後のサブブロックから開始する走査順序(たとえば、対角走査順序)に従って、変換ブロック182のCGを横断し(traverse through)得る。ビデオコーダは、ビデオコーダによって遭遇された各CGについて、コーディングされたサブブロックフラグがCGについて設定されているかどうかを決定することなどによって、CGがコーディングされたCGであるかどうかを決定し得る。ビデオコーダは、CGがコーディングされたCGであると決定する場合、CGが変換ブロック182の最低周波数領域184の外側に位置するかどうかを決定する。
[0127]4×4サブブロックとしてCGをもつ64×64変換ブロック182の場合、変換ブロック182中のCGの位置は、(0、0)から(7、7)に及ぶことができ、変換ブロック182の最低周波数領域184は、(0、0)から(3、3)に及ぶことができる。したがって、コーディングされたCGが変換ブロック182の最低周波数領域184の外側に位置するかどうかを決定するために、ビデオコーダは、x軸またはy軸のうちの少なくとも1つにおけるコーディングされたCGの位置が3よりも大きいかどうかを決定し得る。x軸またはy軸のうちの少なくとも1つにおけるコーディングされたCGの位置が3よりも大きいとビデオコーダが決定した場合、ビデオコーダは、非0変換係数を備える少なくとも1つのCGが変換ブロック182の最低周波数領域184の外側にあると決定し得る。
[0128]このようにして、上記の例示的なシンタックスでは、変換ブロック182において、x軸における最後にコーディングされたCGの位置(すなわち、lastSubBlockX)が3よりも大きい場合、または、y軸における最後にコーディングされたCGの位置(すなわち、lastSubBlockY)が3よりも大きい場合、ビデオエンコーダ200は、変換ブロック182のためのMTSインデックスをシグナリングしないことがあり、ビデオデコーダ300は、MTSインデックスの値が0であると推測することがある(すなわち、MtsZeroOutSigCoeffFlagが0に設定される)。他方では、x軸における最後にコーディングされたCGの位置(すなわち、lastSubBlockX)が3よりも大きくなく、y軸における最後にコーディングされたCGの位置(すなわち、lastSubBlockY)が3よりも大きくない場合、MTSインデックスは、(たとえば、ビデオエンコーダ200などのビデオエンコーダによって)シグナリングされるか、または(たとえば、ビデオデコーダ300などのビデオデコーダによって)構文解析される。
[0129]上記に示されるように、表3および表4では、「現在のコーディングユニットにおいて、residual_coding(x0,y0,log2TbWidth,log2TbHeight,cIdx)シンタックス構造における少なくとも1つのcoded_sub_block_flag[xS][yS]が、0に等しいcIdxおよび3よりも大きいxSまたはySに対して、0に等しくない場合、mts_idxが0に等しくなるべきであることがビットストリーム適合の要件である」という句が、スライスデータセマンティクスから削除される。上記で説明されたように、代わりに、MTSインデックスは、x軸における最後にコーディングされたCGの位置が3よりも大きい場合、または、y軸における最後にコーディングされたCGの位置が3よりも大きい場合、0などの値であると推測され得る。
[0130]図7は、本開示の技法を実行し得る例示的なビデオエンコーダ200を示すブロック図である。図7は、説明の目的で与えられており、本開示において広く例示され、説明される技法を限定するものと見なされるべきではない。説明の目的で、本開示は、VVC(開発中のITU-T H.266)およびHEVC(ITU-T H.265)の技法に従って、ビデオエンコーダ200について説明する。しかしながら、本開示の技法は、他のビデオコーディング規格に構成されたビデオ符号化デバイスによって実行され得る。
[0131]図7の例では、ビデオエンコーダ200は、ビデオデータメモリ230と、モード選択ユニット202と、残差生成ユニット204と、変換処理ユニット206と、量子化ユニット208と、逆量子化ユニット210と、逆変換処理ユニット212と、再構成ユニット214と、フィルタユニット216と、復号ピクチャバッファ(DPB)218と、エントロピー符号化ユニット220とを含む。ビデオデータメモリ230と、モード選択ユニット202と、残差生成ユニット204と、変換処理ユニット206と、量子化ユニット208と、逆量子化ユニット210と、逆変換処理ユニット212と、再構成ユニット214と、フィルタユニット216と、DPB218と、エントロピー符号化ユニット220とのいずれかまたはすべては、1つまたは複数のプロセッサにおいてまたは処理回路において実装され得る。たとえば、ビデオエンコーダ200のユニットは、1つまたは複数の回路または論理要素として、ハードウェア回路構成の一部として、またはプロセッサ、ASIC、もしくはFPGAの一部として、実装され得る。その上、ビデオエンコーダ200は、これらおよび他の機能を実行するために、追加または代替のプロセッサまたは処理回路構成を含んでよい。
[0132]ビデオデータメモリ230は、ビデオエンコーダ200の構成要素によって符号化されるべきビデオデータを記憶し得る。ビデオエンコーダ200は、たとえば、ビデオソース104(図1)からビデオデータメモリ230中に記憶されたビデオデータを受信し得る。DPB218は、ビデオエンコーダ200による後続のビデオデータの予測において使用するための参照ビデオデータを記憶する参照ピクチャメモリとして働き得る。ビデオデータメモリ230およびDPB218は、同期ダイナミックランダムアクセスメモリ(DRAM)(SDRAM)を含むDRAM、磁気抵抗RAM(MRAM)、抵抗性RAM(RRAM(登録商標))、または他のタイプのメモリデバイスなどの、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ230およびDPB218は、同じメモリデバイスまたは別個のメモリデバイスによって提供され得る。様々な例では、ビデオデータメモリ230は、図示のように、ビデオエンコーダ200の他の構成要素とともにオンチップであるか、またはそれらの構成要素に対してオフチップであり得る。
[0133]本開示では、ビデオデータメモリ230への言及は、特にそのように説明されない限り、ビデオエンコーダ200の内部のメモリに限定されるものとして解釈されるべきではなく、または特にそのように説明されない限り、ビデオエンコーダ200の外部のメモリに限定されるものとして解釈されるべきではない。そうではなく、ビデオデータメモリ230への言及は、ビデオエンコーダ200が符号化のために受信するビデオデータ(たとえば、符号化されるべきである現在のブロックのビデオデータ)を記憶する参照メモリとして理解されたい。図1のメモリ106はまた、ビデオエンコーダ200の様々なユニットからの出力の一時的記憶を提供し得る。
[0134]図7の様々なユニットは、ビデオエンコーダ200によって実行される動作を理解するのを支援するために示されている。ユニットは、固定機能回路、プログラマブル回路、またはそれらの組合せとして実装され得る。固定機能回路は、特定の機能を与える回路を指し、実行され得る動作に関してあらかじめ設定される。プログラマブル回路は、様々なタスクを実施するように、および実行され得る動作においてフレキシブルな機能を提供するようにプログラムされ得る回路を指す。たとえば、プログラマブル回路は、ソフトウェアまたはファームウェアの命令によって定義される様式でプログラマブル回路を動作させるソフトウェアまたはファームウェアを実行し得る。固定機能回路は、(たとえば、パラメータを受信するかまたはパラメータを出力するために)ソフトウェア命令を実行し得るが、固定機能回路が実施する動作のタイプは、概して不変である。いくつかの例では、ユニットのうちの1つまたは複数は、別個の回路ブロック(固定機能またはプログラマブル)であり得、いくつかの例では、ユニットのうちの1つまたは複数は、集積回路であり得る。
[0135]ビデオエンコーダ200は、算術論理ユニット(ALU)、基本機能ユニット(EFU)、デジタル回路、アナログ回路、および/またはプログラマブル回路から形成されるプログラマブルコアを含み得る。ビデオエンコーダ200の動作が、プログラマブル回路によって実行されるソフトウェアを使用して実施される例では、メモリ106(図1)は、ビデオエンコーダ200が受信し、実行するソフトウェアの命令(たとえば、オブジェクトコード)を記憶し得るか、またはビデオエンコーダ200内の別のメモリ(図示せず)が、そのような命令を記憶し得る。
[0136]ビデオデータメモリ230は、受信されたビデオデータを記憶するように構成される。ビデオエンコーダ200は、ビデオデータメモリ230からビデオデータのピクチャを取り出し、ビデオデータを残差生成ユニット204とモード選択ユニット202とに提供し得る。ビデオデータメモリ230中のビデオデータは、符号化されるべきである生のビデオデータであり得る。
[0137]モード選択ユニット202は、動き推定ユニット222と、動き補償ユニット224と、イントラ予測ユニット226とを含む。モード選択ユニット202は、他の予測モードに従ってビデオ予測を実行するための追加の機能ユニットを含み得る。例として、モード選択ユニット202は、パレットユニット、(動き推定ユニット222および/または動き補償ユニット224の一部であり得る)イントラブロックコピーユニット、アフィンユニット、線形モデル(LM)ユニットなどを含み得る。
[0138]モード選択ユニット202は、一般に、符号化パラメータの組合せと、そのような組合せのための得られたレートひずみ値とをテストするために、複数の符号化パスを協調させる。符号化パラメータは、CUへのCTUの区分、CUのための予測モード、CUの残差データのための変換タイプ、CUの残差データのための量子化パラメータなどを含み得る。モード選択ユニット202は、他のテストされた組合せよりも良好であるレートひずみ値を有する符号化パラメータの組合せを最終的に選択し得る。
[0139]ビデオエンコーダ200は、ビデオデータメモリ230から取り出されたピクチャを一連のCTUに区分し、スライス内の1つまたは複数のCTUをカプセル化し得る。モード選択ユニット202は、上記で説明されたHEVCのQTBT構造またはクワッドツリー構造など、ツリー構造に従ってピクチャのCTUを区分し得る。上記で説明されたように、ビデオエンコーダ200は、ツリー構造に従ってCTUを区分することから1つまたは複数のCUを形成し得る。そのようなCUは、概して「ビデオブロック」または「ブロック」と呼ばれることもある。
[0140]一般に、モード選択ユニット202はまた、現在のブロック(たとえば、現在CUまたはHEVCでは、PUとTUとの重複する部分)のための予測ブロックを生成するように、それの構成要素(たとえば、動き推定ユニット222、動き補償ユニット224、およびイントラ予測ユニット226)を制御する。現在のブロックのインター予測のために、動き推定ユニット222は、1つまたは複数の参照ピクチャ(たとえば、DPB218に記憶された1つまたは複数の以前にコーディングされたピクチャ)中で1つまたは複数の厳密に一致する参照ブロックを識別するために動き探索を実施し得る。特に、動き推定ユニット222は、たとえば、絶対差分和(SAD)、2乗差分和(SSD)、平均絶対差(MAD)、平均2乗差(MSD)などに従って、現在のブロックに対して潜在的参照ブロックがどのくらい類似しているかを表す値を計算し得る。動き推定ユニット222は、一般に、現在のブロックと考慮されている参照ブロックとの間のサンプルごとの差分を使用してこれらの計算を実行し得る。動き推定ユニット222は、現在のブロックに最も厳密に一致する参照ブロックを示す、これらの計算から得られた最も低い値を有する参照ブロックを識別し得る。
[0141]動き推定ユニット222は、現在のピクチャ中の現在のブロックの位置に対して参照ピクチャ中の参照ブロックの位置を定義する1つまたは複数の動きベクトル(MV)を形成し得る。動き推定ユニット222は、次いで、動きベクトルを動き補償ユニット224に提供し得る。たとえば、単方向インター予測では、動き推定ユニット222は、単一の動きベクトルを提供し得るが、双方向インター予測では、動き推定ユニット222は、2つの動きベクトルを提供し得る。動き補償ユニット224は、次いで、動きベクトルを使用して予測ブロックを生成し得る。たとえば、動き補償ユニット224は、動きベクトルを使用して参照ブロックのデータを取り出し得る。別の例として、動きベクトルが部分サンプル精度を有する場合、動き補償ユニット224は、1つまたは複数の補間フィルタに従って予測ブロックについての値を補間し得る。さらに、双方向インター予測では、動き補償ユニット224は、それぞれの動きベクトルによって識別された2つの参照ブロックのためのデータを取り出し、たとえば、サンプルごとの平均化または重み付け平均化を通して取り出されたデータを組み合わせ得る。
[0142]別の例として、イントラ予測、またはイントラ予測コーディングのために、イントラ予測ユニット226は、現在のブロックに隣接しているサンプルから予測ブロックを生成し得る。たとえば、方向性モードでは、イントラ予測ユニット226は、一般に、予測ブロックを作り出すために、隣接サンプルの値を数学的に組み合わせ、現在のブロックにわたって規定の方向にこれらの計算された値をポピュレートし得る。別の例として、DCモードでは、イントラ予測ユニット226は、現在のブロックに対する隣接サンプルの平均を計算し、予測ブロックのサンプルごとにこの得られた平均を含むように予測ブロックを生成し得る。
[0143]モード選択ユニット202は、予測ブロックを残差生成ユニット204に提供する。残差生成ユニット204は、ビデオデータメモリ230から現在のブロックの生の符号化されていないバージョンを受信し、モード選択ユニット202から予測ブロックを受信する。残差生成ユニット204は、現在のブロックと予測ブロックとの間のサンプルごとの差分を計算する。得られたサンプルごとの差分は、現在のブロックのための残差ブロックを定義する。いくつかの例では、残差生成ユニット204はまた、残差差分パルスコード変調(RDPCM)を使用して残差ブロックを生成するために、残差ブロック中のサンプル値間の差分を決定し得る。いくつかの例では、残差生成ユニット204は、バイナリ減算を実行する1つまたは複数の減算器回路を使用して形成され得る。
[0144]モード選択ユニット202がCUをPUに区分する例では、各PUは、ルーマ予測ユニットと、対応するクロマ予測ユニットとに関連付けられ得る。ビデオエンコーダ200およびビデオデコーダ300は、様々なサイズを有するPUをサポートし得る。上記のように、CUのサイズは、CUのルーマコーディングブロックのサイズを指し得、PUのサイズは、PUのルーマ予測ユニットのサイズを指し得る。特定のCUのサイズが2N×2Nであると仮定すると、ビデオエンコーダ200は、イントラ予測のための2N×2NまたはN×NのPUサイズと、インター予測のための2N×2N、2N×N、N×2N、N×N、または同様のものの対称PUサイズとをサポートし得る。ビデオエンコーダ200およびビデオデコーダ300はまた、インター予測のための2N×nU、2N×nD、nL×2N、およびnR×2NのPUサイズの非対称区分をサポートし得る。
[0145]モード選択ユニット202がCUをPUにさらに区分しない例では、各CUは、ルーマコーディングブロックと、対応するクロマコーディングブロックとに関連付けられ得る。上記のように、CUのサイズは、CUのルーマコーディングブロックのサイズを指し得る。ビデオエンコーダ200およびビデオデコーダ300は、2N×2N、2N×N、またはN×2NのCUサイズをサポートし得る。
[0146]いくつかの例として、イントラブロックコピーモードコーディング、アフィンモードコーディング、および線形モデル(LM)モードコーディングなどの他のビデオコーディング技法では、モード選択ユニット202は、コーディング技法に関連付けられたそれぞれのユニットを介して、符号化されている現在のブロックのための予測ブロックを生成する。パレットモードコーディングなどの、いくつかの例では、モード選択ユニット202は、予測ブロックを生成しないことがあり、代わりに、選択されたパレットに基づいてブロックを再構成すべき様式を示すシンタックス要素を生成し得る。そのようなモードでは、モード選択ユニット202は、符号化されるべきこれらのシンタックス要素をエントロピー符号化ユニット220に提供し得る。
[0147]上記で説明されたように、残差生成ユニット204は、現在のブロックのビデオデータと、対応する予測ブロックとを受信する。残差生成ユニット204は、次いで、現在のブロックのための残差ブロックを生成する。残差ブロックを生成するために、残差生成ユニット204は、予測ブロックと現在のブロックとの間のサンプルごとの差分を計算する。
[0148]変換処理ユニット206は、変換係数のブロック(本明細書では「変換係数ブロック」と呼ばれる)を生成するために、残差ブロックに1つまたは複数の変換を適用する。変換処理ユニット206は、変換係数ブロックを形成するために、残差ブロックに様々な変換を適用し得る。たとえば、変換処理ユニット206は、離散コサイン変換(DCT)、方向性変換、カルーネンレーベ変換(KLT)、または概念的に同様の変換を残差ブロックに適用し得る。いくつかの例では、変換処理ユニット206は、残差ブロックにマルチプル変換、たとえば、回転変換などの1次変換および2次変換を実行し得る。いくつかの例では、変換処理ユニット206は、残差ブロックに変換を適用しない。
[0149]いくつかの例では、変換処理ユニット206は、残差ブロックの区分から生じる複数の残差サブブロックの各々にマルチプル変換(MT)方式のマルチプル変換を適用することを含めて、現在のブロックのための残差ブロックにMT方式のマルチプル変換を適用し得る。MT方式は、たとえば、残差ブロックに適用されるべき1次変換と2次変換とを定義し得る。追加または代替として、MT方式は、上記で論じられた図4Aと図4Bとに示されているものなどの、水平変換と垂直変換とを定義し得る。いずれの場合も、変換処理ユニット206は、変換係数ブロックの変換係数を生成するために、残差ブロックにMT方式の各変換を適用し得る。
[0150]量子化ユニット208は、量子化された変換係数ブロックを生成するために変換係数ブロック中の変換係数を量子化し得る。量子化ユニット208は、現在のブロックに関連付けられた量子化パラメータ(QP)値に従って変換係数ブロックの変換係数を量子化し得る。ビデオエンコーダ200は(たとえば、モード選択ユニット202を介して)、CUに関連付けられたQP値を調整することによって、現在のブロックに関連付けられた変換係数ブロックに適用される量子化の程度を調整し得る。量子化は、情報の損失をもたらし得、したがって、量子化された変換係数は、変換処理ユニット206によって作り出された元の変換係数よりも低い精度を有し得る。
[0151]逆量子化ユニット210および逆変換処理ユニット212は、変換係数ブロックから残差ブロックを再構成するために、それぞれ、量子化された変換係数ブロックに逆量子化および逆変換を適用し得る。再構成ユニット214は、再構成された残差ブロックと、モード選択ユニット202によって生成された予測ブロックとに基づいて、(潜在的にある程度のひずみを伴うが)現在のブロックに対応する再構成されたブロックを作り出し得る。たとえば、再構成ユニット214は、再構成されたブロックを作り出すために、モード選択ユニット202によって生成された予測ブロックからの対応するサンプルに、再構成された残差ブロックのサンプルを加算し得る。
[0152]フィルタユニット216は、再構成されたブロックに対して1つまたは複数のフィルタ演算を実行し得る。たとえば、フィルタユニット216は、CUのエッジに沿ってブロッキネスアーティファクトを低減するためのデブロッキング動作を実行し得る。フィルタユニット216の動作は、いくつかの例では、スキップされ得る。
[0153]ビデオエンコーダ200は、DPB218中に再構成されたブロックを記憶する。たとえば、フィルタユニット216の動作が実行されない例では、再構成ユニット214は、DPB218に再構成されたブロックを記憶し得る。フィルタユニット216の動作が実行される例では、フィルタユニット216は、フィルタ処理された再構成されたブロックをDPB218に記憶し得る。動き推定ユニット222および動き補償ユニット224は、後で符号化されるピクチャのブロックをインター予測するために、再構成(および潜在的にフィルタ処理)されたブロックから形成された参照ピクチャをDPB218から取り出し得る。さらに、イントラ予測ユニット226は、現在のピクチャ中の他のブロックをイントラ予測するために、現在のピクチャのDPB218中の再構成されたブロックを使用し得る。
[0154]一般に、エントロピー符号化ユニット220は、ビデオエンコーダ200の他の機能構成要素から受信されたシンタックス要素をエントロピー符号化し得る。たとえば、エントロピー符号化ユニット220は、量子化ユニット208からの量子化された変換係数ブロックをエントロピー符号化し得る。別の例として、エントロピー符号化ユニット220は、モード選択ユニット202からの予測シンタックス要素(たとえば、インター予測のための動き情報またはイントラ予測のためのイントラモード情報)をエントロピー符号化し得る。エントロピー符号化ユニット220は、エントロピー符号化データを生成するために、ビデオデータの別の例であるシンタックス要素に対して1つまたは複数のエントロピー符号化動作を実行し得る。たとえば、エントロピー符号化ユニット220は、コンテキスト適応型可変長コーディング(CAVLC)動作、CABAC動作、可変対可変(V2V)長コーディング動作、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC)動作、確率間隔区分エントロピー(PIPE)コーディング動作、指数ゴロム符号化動作、または別のタイプのエントロピー符号化動作をデータに対して実行し得る。いくつかの例では、エントロピー符号化ユニット220は、シンタックス要素がエントロピー符号化されないバイパスモードで動作し得る。
[0155]いくつかの例では、各変換ブロックを符号化すること(たとえば、各量子化された変換係数ブロックをエントロピー符号化すること)の一部として、エントロピー符号化ユニット220は、各変換ブロックについて、ビデオエンコーダ200によって有意性マップをシグナリングするために送信されるべきビンの数を低減することの一部として変換ブロックのための1つまたは複数のコード化ブロックフラグを決定するために、変換ブロックの変換係数を走査し得る。たとえば、エントロピー符号化ユニット220は、変換ブロック中の各係数グループ(たとえば、変換係数の4×4グループ)について、係数グループのためのコード化サブブロックフラグを決定し得、ここにおいて、係数グループのためのコード化サブブロックフラグの値は、係数グループが非0変換係数を含むかどうかを示し、変換ブロックのためのコード化サブブロックフラグをシグナリング(たとえば、エントロピー符号化)し得る。
[0156]エントロピー符号化ユニット220は、ビデオデータの変換ブロックのために(たとえば、変換処理ユニット206によって)選択されたマルチプル変換(すなわち、分離可能な(separable)変換)を示すMTSインデックスを符号化する(すなわち、マルチプル変換選択を示すシンタックス要素を符号化する)ように構成され得る。
[0157]いくつかの例では、エントロピー符号化ユニット220は、ビデオデータの変換ブロックのために(たとえば、変換処理ユニット206によって)選択されたマルチプル変換(すなわち、分離可能な変換)を示すMTSインデックスを符号化する(すなわち、マルチプル変換選択を示すシンタックス要素を符号化する)べきかどうかを決定するように構成され得る。いくつかの例では、エントロピー符号化ユニット220は、変換ブロック中の最低周波数領域の外側にある変換ブロック中の変換係数が各々0の値を有する場合のみ、MTSインデックスを符号化することを決定するように構成され得、ここにおいて、変換ブロック中の最低周波数領域は、変換ブロックの最低周波数変換係数を表す変換ブロックの左上部分であり得る。
[0158]変換ブロック中の最低周波数領域の外側の各変換係数が0の値を有するかどうかを決定するために、エントロピー符号化ユニット220は、変換ブロック中の最低周波数領域の外側の少なくとも1つの係数グループが非0変換係数を有するかどうかを決定し得る。たとえば、エントロピー符号化ユニット220は、非0変換係数を含む係数グループについて、変換ブロックを係数グループごとに走査し得る。
[0159]エントロピー符号化ユニット220は、変換ブロックについて、係数グループが非0変換係数を含むかどうかを示す係数グループごとにコード化サブブロックフラグを決定したので、エントロピー符号化ユニット220は、非0変換係数を含む係数グループについて係数グループごとに変換ブロックを走査するために、係数グループのためのコード化サブブロックフラグを使用することが可能であり得る。たとえば、エントロピー符号化ユニット220は、変換ブロック中の各係数グループについて、係数グループのためのコード化サブブロックフラグの値に基づいて、係数グループが非ゼロ係数を含むかどうかを決定し得る。
[0160]コード化サブブロックフラグは、ビデオエンコーダ200によってシグナリングされる有意性フラグの数を低減するために、たとえば、符号化ユニット220によってすでに決定されているので、エントロピー符号化ユニット220は、係数グループが非0変換係数を含むかどうかを決定するために、コード化サブブロックフラグを使用することによって、変換ブロック中の非0変換係数の位置をより効率的に決定する(たとえば、より少ない処理サイクルを使用する)ことが可能であり得る。たとえば、64×64変換ブロックおよび4×4係数グループが与えられれば、エントロピー符号化ユニット220は、非0変換係数を含む係数グループについて変換ブロックを係数グループごとに走査するために、潜在的に変換ブロックの4,096個までの係数を走査しなければならないことと比較して、16個までのコード化サブブロックフラグを潜在的に走査し得、それによって、符号化ユニット220が変換ブロック中の非0変換係数の位置をより効率的に決定することを可能にする。
[0161]エントロピー符号化ユニット220が、非0変換係数を含む係数グループ(たとえば、係数が非0変換を含むことを示す、関連するコード化サブブロックフラグを有する係数グループ)に遭遇するとき、エントロピー符号化ユニット220は、係数グループが変換ブロック中の最低周波数領域の外側にあるかどうかを決定し得る。エントロピー符号化ユニット220によって遭遇された非0変換係数を含む係数グループが変換ブロック中の最低周波数領域の外側にあるとエントロピー符号化ユニット220が決定する場合、エントロピー符号化ユニット220は、変換ブロック中の最低周波数領域の外側の少なくとも1つの変換係数が非0値を有すると決定し得る。
[0162]係数グループが非0変換係数を含むことを示すコード化サブブロックフラグに各々が関連付けられた1つまたは複数の係数グループを変換ブロック内で決定するために、変換ブロックについて決定されたコード化サブブロックフラグを走査することによって、非0変換係数を含む係数グループについて係数グループごとに変換ブロック。
[0163]エントロピー符号化ユニット220が、変換ブロック中の最低周波数領域の外側の係数グループのいずれも非0変換係数を含んでいないと決定する場合、エントロピー符号化ユニット220は、変換ブロック中の最低周波数領域の外側にある変換ブロック中の変換係数が各々0の値を有すると決定し得る。エントロピー符号化ユニット220は、変換ブロック中の最低周波数領域の外側の係数がゼロ化される(すなわち、各々がゼロの値を有する)ことを示すフラグを設定することなどによって、ビデオデータの変換ブロックのために選択されたマルチプル変換を示すMTSインデックスを符号化し得る。
[0164]エントロピー符号化ユニット220が、変換ブロック中の最低周波数領域の外側の少なくとも1つの変換係数が非0値を有すると決定する場合、エントロピー符号化ユニット220は、ビデオデータの変換ブロックのために選択されたマルチプル変換を示すMTSインデックスを符号化しないと決定し得る。代わりに、ビデオデコーダ300は、MTSインデックスの値が0などのデフォルト値であると推測し(たとえば、明示的なシンタックス要素なしで決定し)得、デフォルト変換(たとえば、DCT-2変換)を変換ブロックに適用し得る。
[0165]ビデオエンコーダ200は、スライスまたはピクチャのブロックを再構成するために必要とされるエントロピー符号化シンタックス要素を含むビットストリームを出力し得る。特に、エントロピー符号化ユニット220がビットストリームを出力し得る。
[0166]上記で説明された動作は、ブロックに関して説明されている。そのような説明は、ルーマコーディングブロックおよび/またはクロマコーディングブロックのための動作であるものとして理解されるべきである。上記で説明されたように、いくつかの例では、ルーマコーディングブロックおよびクロマコーディングブロックは、CUのルーマ成分およびクロマ成分である。いくつかの例では、ルーマコーディングブロックおよびクロマコーディングブロックは、PUのルーマ成分およびクロマ成分である。
[0167]いくつかの例では、ルーマコーディングブロックに関して実行される動作は、クロマコーディングブロックのために繰り返される必要はない。一例として、ルーマコーディングブロックのための動きベクトル(MV)と参照ピクチャとを識別するための動作は、クロマブロックのためのMVと参照ピクチャとを識別するために繰り返される必要はない。むしろ、ルーマコーディングブロックのためのMVは、クロマブロックのためのMVを決定するためにスケーリングされ得、参照ピクチャは同じであり得る。別の例として、イントラ予測プロセスは、ルーマコーディングブロックおよびクロマコーディングブロックについて同じであり得る。
[0168]以下でより詳細に説明されるように、ビデオエンコーダ200は、ビデオデータを記憶するように構成されたメモリと、ビデオデータの変換ブロックについて、変換係数を備える複数の係数グループのうちの非0変換係数を備える少なくとも1つの係数グループが変換ブロックの最低周波数領域の外側にあるかどうかを決定することと、少なくとも1つのコーディングされた係数グループが変換ブロックの最低周波数領域の外側にあるかどうかの決定に少なくとも部分的に基づいて、変換ブロックのためのマルチプル変換選択(MTS)を示すシンタックス要素を符号化すべきかどうかを決定することと、マルチプル変換選択を示すシンタックス要素をコーディングすべきかどうかの決定に少なくとも部分的に基づいて、ビデオデータを符号化することとを行うように構成された、回路内に実装された1つまたは複数の処理ユニットとを含む、ビデオデータを符号化するように構成されたデバイスの一例を表す。
[0169]図8は、本開示の技法を実行し得る例示的なビデオデコーダ300を示すブロック図である。図8は、説明の目的で与えられており、本開示において広く例示され、説明される技法を限定するものではない。説明の目的で、本開示は、VVC(開発中のITU-T H.266)およびHEVC(ITU-T H.265)の技法に従って、ビデオデコーダ300について説明する。しかしながら、本開示の技法は、他のビデオコーディング規格に構成されたビデオコーディングデバイスによって実行され得る。
[0170]図8の例では、ビデオデコーダ300は、コード化ピクチャバッファ(CPB)320と、エントロピー復号ユニット302と、予測処理ユニット304と、逆量子化ユニット306と、逆変換処理ユニット308と、再構成ユニット310と、フィルタユニット312と、復号ピクチャバッファ(DPB)314とを含む。CPBメモリ320と、エントロピー復号ユニット302と、予測処理ユニット304と、逆量子化ユニット306と、逆変換処理ユニット308と、再構築ユニット310と、フィルタユニット312と、DPB314とのいずれかまたはすべては、1つもしくは複数のプロセッサにおいてまたは処理回路において実装され得る。たとえば、ビデオデコーダ300のユニットは、1つもしくは複数の回路または論理要素として、ハードウェア回路の一部として、あるいはプロセッサ、ASIC、またはFPGAの一部として実装され得る。その上、ビデオデコーダ300は、これらおよび他の機能を実行するための追加もしくは代替のプロセッサまたは処理回路を含み得る。
[0171]予測処理ユニット304は、動き補償ユニット316と、イントラ予測ユニット318とを含む。予測処理ユニット304は、他の予測モードに従って予測を実施するための追加のユニットを含み得る。例として、予測処理ユニット304は、パレットユニット、(動き補償ユニット316の一部を形成し得る)イントラブロックコピーユニット、アフィンユニット、線形モデル(LM)ユニットなどを含み得る。他の例では、ビデオデコーダ300は、より多数の、より少数の、または異なる機能の構成要素を含み得る。
[0172]CPBメモリ320は、ビデオデコーダ300の構成要素によって復号されるべき、符号化されたビデオビットストリームなどのビデオデータを記憶し得る。CPBメモリ320に記憶されるビデオデータは、たとえば、コンピュータ可読媒体110(図1)から取得され得る。CPBメモリ320は、符号化されたビデオビットストリームからの符号化されたビデオデータ(たとえば、シンタックス要素)を記憶するCPBを含み得る。また、CPBメモリ320は、ビデオデコーダ300の様々なユニットからの出力を表す一時データなどの、コーディングされたピクチャのシンタックス要素以外のビデオデータを記憶し得る。DPB314は、一般に、符号化されたビデオビットストリームの後続のデータまたはピクチャを復号するときにビデオデコーダ300が参照ビデオデータとして出力および/または使用し得る、復号されたピクチャを記憶する。CPBメモリ320およびDPB314は、SDRAMを含むDRAM、MRAM、RRAM、または他のタイプのメモリデバイスなどの、様々なメモリデバイスのいずれかによって形成され得る。CPBメモリ320およびDPB314は、同じメモリデバイスまたは別個のメモリデバイスによって提供され得る。様々な例では、CPBメモリ320は、ビデオデコーダ300の他の構成要素とともにオンチップであるか、またはそれらの構成要素に対してオフチップであり得る。
[0173]追加または代替として、いくつかの例では、ビデオデコーダ300は、メモリ120(図1)からコーディングされたビデオデータを取り出し得る。すなわち、メモリ120は、CPBメモリ320を用いて上記で説明されたようにデータを記憶し得る。同様に、メモリ120は、ビデオデコーダ300の機能の一部またはすべてが、ビデオデコーダ300の処理回路によって実行されるべきソフトウェアにおいて実装されたとき、ビデオデコーダ300によって実行されるべき命令を記憶し得る。
[0174]図8に示されている様々なユニットは、ビデオデコーダ300によって実行される動作を理解するのを支援するために示されている。ユニットは、固定機能回路、プログラマブル回路、またはそれらの組合せとして実装され得る。図7と同様に、固定機能回路は、特定の機能を与える回路を指し、実行され得る動作に関してあらかじめ設定される。プログラマブル回路は、様々なタスクを実行するようにプログラムされ得る回路を指し、実行され得る動作中にフレキシブルな機能を与える。たとえば、プログラマブル回路は、ソフトウェアまたはファームウェアの命令によって定義された方式でプログラマブル回路を動作させるソフトウェアまたはファームウェアを実行し得る。固定機能回路は、(たとえば、パラメータを受信するかまたはパラメータを出力するために)ソフトウェア命令を実行し得るが、固定機能回路が実施する動作のタイプは、概して不変である。いくつかの例では、ユニットのうちの1つまたは複数は、別個の回路ブロック(固定機能またはプログラマブル)であり得、いくつかの例では、ユニットのうちの1つまたは複数は、集積回路であり得る。
[0175]ビデオデコーダ300は、ALU、EFU、デジタル回路、アナログ回路、および/またはプログラマブル回路から形成されるプログラマブルコアを含み得る。ビデオデコーダ300の動作が、プログラマブル回路上で実行するソフトウェアによって実行される例では、オンチップまたはオフチップメモリは、ビデオデコーダ300が受信し、実行するソフトウェアの命令(たとえば、オブジェクトコード)を記憶し得る。
[0176]エントロピー復号ユニット302は、CPBから符号化されたビデオデータを受信し、シンタックス要素を再生するためにビデオデータをエントロピー復号し得る。予測処理ユニット304と、逆量子化ユニット306と、逆変換処理ユニット308と、再構築ユニット310と、フィルタユニット312とは、ビットストリームから抽出されたシンタックス要素に基づいて、復号されたビデオデータを生成し得る。
[0177]一般に、ビデオデコーダ300は、ブロックごとにピクチャを再構成する。ビデオデコーダ300は、各ブロックに対して個々に再構成動作を実行し得る(ここにおいて、現在再構成されているブロック、すなわち、現在復号されているブロックは、「現在のブロック」と呼ばれることがある)。
[0178]エントロピー復号ユニット302は、量子化された変換係数ブロックの量子化された変換係数を定義するシンタックス要素、ならびに量子化パラメータ(QP)および/または(1つまたは複数の)変換モード指示などの変換情報をエントロピー復号し得る。逆量子化ユニット306は、量子化の程度を決定するために、また同様に、逆量子化ユニット306が適用すべき逆量子化の程度を決定するために、量子化された変換係数ブロックと関連付けられるQPを使用し得る。逆量子化ユニット306は、たとえば、量子化された変換係数を逆量子化するためにビット単位の左シフト演算を実行し得る。逆量子化ユニット306は、それによって、変換係数を含む変換係数ブロックを形成し得る。
[0179]いくつかの例では、各変換ブロックを復号すること(たとえば、各変換係数ブロックをエントロピー復号すること)の一部として、エントロピー復号ユニット302は、変換ブロック中の各係数グループ(たとえば、変換係数の4×4グループ)のためのコード化サブブロックフラグを復号し得、ここにおいて、係数グループのためのコード化サブブロックフラグの値は、係数グループが非0変換係数を含むかどうかを示す。
[0180]逆量子化ユニット306が変換係数ブロックを形成した後、逆変換処理ユニット308は、現在のブロックに関連付けられた残差ブロックを生成するために、変換係数ブロックに1つまたは複数の逆変換を適用し得る。たとえば、逆変換処理ユニット308は、逆DCT、逆整数変換、逆カルーネンレーベ変換(KLT)、逆回転変換、逆方向変換、または別の逆変換を変換係数ブロックに適用し得る。
[0181]いくつかの例では、逆変換処理ユニット308は、ビデオデータの変換ブロックに(たとえば、MTS技法を使用して)1つまたは複数の逆マルチプル変換を適用するように構成され得る。上記で説明されたように、ビデオエンコーダ200は、変換ブロック中に非0変換係数が存在しない場合のみ、ビデオデータの変換ブロックのために選択されたマルチプル変換を示すシンタックス要素を符号化し得る。したがって、以下でより詳細に説明されるように、いくつかの例では、逆変換処理ユニット308は、ビデオデータの変換ブロックのためにビデオエンコーダ200によって選択されたマルチプル変換(すなわち、分離可能な変換)を示すビットストリーム中でシグナリングされたMTSインデックスをビデオエンコーダ200が復号する(すなわち、マルチプル変換選択を示すシンタックス要素を復号する)べきかどうかを決定するように構成され得る。
[0182]いくつかの例では、逆変換処理ユニット308は、変換ブロック中の最低周波数領域の外側にある変換ブロック中の変換係数が各々0の値を有する場合のみ、ビットストリーム中でシグナリングされたMTSインデックスを復号および使用するように構成され得、ここにおいて、変換ブロック中の最低周波数領域は、変換ブロックの最低周波数変換係数を表す変換ブロックの左上部分であり得る。
[0183]変換ブロック中の最低周波数領域の外側の各変換係数が0の値を有するかどうかを決定するために、逆変換処理ユニット308は、変換ブロック中の最低周波数領域の外側の少なくとも1つの係数グループが非0変換係数を有するかどうかを決定し得る。たとえば、逆変換処理ユニット308は、非0変換係数を含む係数グループについて、変換ブロックを係数グループごとに走査し得る。
[0184]エントロピー復号ユニット302は、変換ブロックについて、係数グループが非0変換係数を含むかどうかを示す係数グループごとにコード化サブブロックフラグをすでに復号したので、逆変換処理ユニット308は、非0変換係数を含む係数グループについて係数グループごとに変換ブロックを走査するために、係数グループのためのコード化サブブロックフラグを使用することが可能であり得る。たとえば、逆変換処理ユニット308は、変換ブロック中の各係数グループについて、係数グループのためのコード化サブブロックフラグの値に基づいて、係数グループが非ゼロ係数を含むかどうかを決定し得る。
[0185]コード化サブブロックフラグはエントロピー復号ユニット302によってすでに復号されているので、逆変換処理ユニット308は、係数グループが非0変換係数を含むかどうかを決定するためにコード化サブブロックフラグを使用することによって、変換ブロック中の非0変換係数の位置をより効率的に(たとえば、より少ない処理サイクルを使用して)決定することが可能であり得る。たとえば、64×64変換ブロックおよび4×4係数グループが与えられれば、逆変換処理ユニット308は、非0変換係数を含む係数グループについて変換ブロックを係数グループごとに走査するために、潜在的に変換ブロックの4,096個までの係数を走査しなければならないことと比較して、16個までのコード化サブブロックフラグを潜在的に走査し得、それによって、逆変換処理ユニット308が変換ブロック中の非0変換係数の位置をより効率的に決定することを可能にする。
[0186]逆変換処理ユニット308が、非0変換係数を含む係数グループ(たとえば、係数が非0変換を含むことを示す、関連するコード化サブブロックフラグを有する係数グループ)に遭遇するとき、逆変換処理ユニット308は、係数グループが変換ブロック中の最低周波数領域の外側にあるかどうかを決定し得る。逆変換処理ユニット308によって遭遇された非0変換係数を含む係数グループが変換ブロック中の最低周波数領域の外側にあると逆変換処理ユニット308が決定する場合、逆変換処理ユニット308は、変換ブロック中の最低周波数領域の外側の少なくとも1つの変換係数が非0値を有すると決定し得る。
[0187]逆変換処理ユニット308が、変換ブロック中の最低周波数領域の外側の係数グループのいずれも非0変換係数を含んでいないと決定する場合、逆変換処理ユニット308は、変換ブロック中の最低周波数領域の外側にある変換ブロック中の変換係数が各々0の値を有すると決定し得る。したがって、逆変換処理ユニット308は、シンタックス要素によって示されるマルチプル変換の逆マルチプル変換をビデオデータの変換ブロックに適用し得る。
[0188]逆変換処理ユニット308が、変換ブロック中の最低周波数領域の外側の少なくとも1つの変換係数が非0値を有すると決定する場合、逆変換処理ユニット308は、変換ブロックのためのMTSインデックスの値が0などのデフォルト値であると推測し(たとえば、明示的なシンタックス要素なしで決定し)得、ビデオデータの変換ブロックにデフォルト変換(たとえば、DCT-2変換)を適用し得る。逆変換処理ユニット308は、ビデオエンコーダ200から受信されたビットストリームが変換ブロックのためのMTSインデックスをシグナリングする場合でも、変換ブロックのためのMTSインデックスの値を推測し、それによって、変換ブロックのためのMTSインデックスを復号することを控え得る。
[0189]さらに、予測処理ユニット304は、エントロピー復号ユニット302によってエントロピー復号された予測情報シンタックス要素に従って予測ブロックを生成する。たとえば、現在のブロックがインター予測されていることを予測情報シンタックス要素が示す場合、動き補償ユニット316は、予測ブロックを生成し得る。この場合、予測情報シンタックス要素は、参照ブロックをそれから取り出すべきDPB314中の参照ピクチャ、ならびに現在のピクチャ中の現在のブロックのロケーションに対する参照ピクチャ中の参照ブロックのロケーションを識別する動きベクトルを示し得る。動き補償ユニット316は、一般に、動き補償ユニット224(図7)に関して説明された方式と実質的に同様である方式でインター予測プロセスを実行し得る。
[0190]別の例として、予測情報シンタックス要素が、現在のブロックがイントラ予測されることを示す場合、イントラ予測ユニット318は、予測情報シンタックス要素によって示されるイントラ予測モードに従って予測ブロックを生成し得る。この場合も、イントラ予測ユニット318は、一般に、イントラ予測ユニット226(図7)に関して説明された方式と実質的に同様である方式でイントラ予測プロセスを実行し得る。イントラ予測ユニット318は、DPB314から、現在のブロックに対する隣接サンプルのデータを取り出し得る。
[0191]再構成ユニット310は、予測ブロックと残差ブロックとを使用して現在のブロックを再構成し得る。たとえば、再構成ユニット310は、現在のブロックを再構成するために、予測ブロックの対応するサンプルに残差ブロックのサンプルを加算し得る。
[0192]フィルタユニット312は、再構成されたブロックに対して1つまたは複数のフィルタ演算を実行し得る。たとえば、フィルタユニット312は、再構成されたブロックの端部に沿ってブロッキネスアーティファクトを低減するためにデブロッキング動作を実行し得る。フィルタユニット312の動作は、必ずしもすべての例で実行されるとは限らない。
[0193]ビデオデコーダ300は、再構成されたブロックをDPB314に記憶し得る。たとえば、フィルタユニット312の動作が実行されない例では、再構成ユニット310は、DPB314に再構成されたブロックを記憶し得る。フィルタユニット312の動作が実行される例では、フィルタユニット312は、フィルタ処理された再構成されたブロックをDPB314に記憶し得る。上記で説明されたように、DPB314は、イントラ予測のための現在のピクチャのサンプル、および後続の動き補償のための以前に復号されたピクチャなどの、参照情報を予測処理ユニット304に提供し得る。その上、ビデオデコーダ300は、DPB314からの復号されたピクチャ(たとえば、復号されたビデオ)を、図1のディスプレイデバイス118などのディスプレイデバイス上での後続の提示のために、出力し得る。
[0194]このようにして、ビデオデコーダ300は、ビデオデータを記憶するように構成されたメモリと、ビデオデータの変換ブロックについて、変換係数を備える複数の係数グループのうちの非0変換係数を備える少なくとも1つの係数グループが変換ブロックの最低周波数領域の外側にあるかどうかを決定することと、少なくとも1つのコーディングされた係数グループが変換ブロックの最低周波数領域の外側にあるかどうかの決定に少なくとも部分的に基づいて、変換ブロックのためのマルチプル変換選択(MTS)を示すシンタックス要素を復号すべきかどうかを決定することと、マルチプル変換選択を示すシンタックス要素をコーディングすべきかどうかの決定に少なくとも部分的に基づいて、ビデオデータを復号することとを行うように構成された、回路内に実装された1つまたは複数の処理ユニットとを含む、ビデオ復号デバイスの一例を表す。
[0195]図9は、本開示の技法による、現在のブロックを符号化するための例示的な方法を示すフローチャートである。現在のブロックは、現在のCUを備え得る。ビデオエンコーダ200(図1および図7)に関して説明されるが、他のデバイスが図9の方法と同様の方法を実行するように構成され得ることを理解されたい。
[0196]この例では、ビデオエンコーダ200は、最初に現在のブロックを予測する(350)。たとえば、ビデオエンコーダ200は、現在のブロックのための予測ブロックを形成し得る。ビデオエンコーダ200は、次いで、現在のブロックのための残差ブロックを計算し得る(352)。残差ブロックを計算するために、ビデオエンコーダ200は、元の符号化されていないブロックと、現在のブロックのための予測ブロックとの間の差分を計算し得る。ビデオエンコーダ200は、次いで、残差ブロックを変換し、残差ブロックの変換係数を量子化し得る(354)。たとえば、ビデオエンコーダ200は、残差ブロックのためのマルチプル変換を選択し、MTSインデックスを介して選択されたマルチプル変換をシグナリングし得る。次に、ビデオエンコーダ200は、残差ブロックの量子化された変換係数を走査し得る(356)。走査中に、ビデオエンコーダ200は、変換係数を備える複数の係数グループのうちの非0変換係数を備える少なくとも1つの係数グループが残差ブロックの最低周波数領域の外側にあるかどうかを決定し得る。走査中に、または走査に続いて、ビデオエンコーダ200は、変換係数をエントロピー符号化し得る(358)。たとえば、ビデオエンコーダ200は、少なくとも1つのコーディングされた係数グループが変換ユニットの最低周波数領域の外側にあるかどうかの決定に少なくとも部分的に基づいて、残差ブロックのためのマルチプル変換選択を示すシンタックス要素を符号化すべきかどうかを決定し得、マルチプル変換選択を示すシンタックス要素を符号化すべきかどうかの決定に少なくとも部分的に基づいてビデオデータを符号化し得る。ビデオエンコーダ200は、CAVLCまたはCABACを使用して変換係数を符号化し得る。ビデオエンコーダ200は、次いで、ブロックのエントロピー符号化データを出力し得る(360)。
[0197]図10は、本開示の技法による、ビデオデータの現在のブロックを復号するための例示的な方法を示すフローチャートである。現在のブロックは、現在のCUを備え得る。ビデオデコーダ300(図1および図8)に関して説明されるが、他のデバイスが、図10の方法と同様の方法を実行するように構成され得ることを理解されたい。
[0198]ビデオデコーダ300は、エントロピー符号化された予測情報、および現在のブロックに対応する残差ブロックの変換係数のためのエントロピー符号化されたデータなどの、現在のブロックのためのエントロピー符号化されたデータを受信し得る(370)。ビデオデコーダ300は、現在のブロックのための予測情報を決定するために、および残差ブロックの変換係数を再生するために、エントロピー符号化されたデータをエントロピー復号し得る(372)。たとえば、ビデオデコーダ300は、変換係数を備える複数の係数グループのうちの非0変換係数を備える少なくとも1つの係数グループが残差ブロックの最低周波数領域の外にあるかどうかを決定し得、少なくとも1つのコーディングされた係数グループが変換ユニットの最低周波数領域の外にあるかどうかの決定に少なくとも部分的に基づいて、残差ブロックのためのマルチプル変換選択を示すシンタックス要素を復号すべきかどうかを決定し得る。ビデオデコーダ300が、変換係数を備える複数の係数グループのうちの非0変換係数を備える少なくとも1つの係数グループが残差ブロックの最低周波数領域の外側にあると決定する場合、ビデオデコーダ300は、残差ブロックのためのマルチプル変換選択を示すシンタックス要素を復号せず、代わりに、残差ブロックのためのマルチプル変換選択を示すシンタックス要素の値を推測し得る。
[0199]ビデオデコーダ300は、現在のブロックのための予測ブロックを計算するために、たとえば、現在のブロックのための予測情報によって示されるイントラ予測またはインター予測モードを使用して、現在のブロックを予測し得る(374)。ビデオデコーダ300は、次いで、量子化された変換係数のブロックを作成するために、再生された変換係数を逆走査し得る(376)。ビデオデコーダ300は、次いで、変換係数を逆量子化し、残差ブロックを生成するために、ビデオデコーダ300によって推測されたマルチプル変換の逆などの逆変換を変換係数に適用し得る。(378)。ビデオデコーダ300は、予測ブロックと残差ブロックとを組み合わせることによって、最終的に現在のブロックを復号し得る(380)。
[0200]図11は、マルチプル変換選択をコーディングすべきかどうかを決定するための例示的な方法を示すフローチャートである。図11に示されているように、ビデオエンコーダ200またはビデオデコーダ300などのビデオコーダは、ビデオデータの変換ブロックについて、非0変換係数を備える変換ブロックの少なくとも1つの係数グループが変換ブロックの最低周波数領域の外側にあると決定することができ、ここにおいて、少なくとも1つの係数グループは、各々が変換係数を備える複数の係数グループのうちの1つである(402)。ビデオコーダは、少なくとも1つの係数グループが変換ブロックの最低周波数領域の外側にあるという決定に少なくとも部分的に基づいて、変換ブロックのためのマルチプル変換選択(MTS)を示すシンタックス要素をコーディングしないと決定し得る(404)。ビデオコーダは、変換ブロックのためのマルチプル変換選択を示すシンタックス要素をコーディングしないという決定に少なくとも部分的に基づいて、ビデオデータをコーディングすることを決定し得る(406)。
[0201]いくつかの例では、非0変換係数を備える係数ブロックの少なくとも1つの係数グループが変換ブロックの最低周波数領域の外側にあると決定するために、ビデオコーダは、変換係数を備える複数の係数グループのうちの係数グループについて、係数グループのためのコード化サブブロックフラグが設定されていると決定し、係数グループのためのコード化サブブロックフラグが設定されていると決定したことに応答して、係数グループの位置がx軸またはy軸のうちの少なくとも1つにおいて3よりも大きいと決定し、係数グループの位置がx軸またはy軸のうちの少なくとも1つにおいて3よりも大きいと決定したことに応答して、ビデオデータの変換ブロックについて、非0変換係数を備える変換ブロックの少なくとも1つの係数グループが変換ブロックの最低周波数領域の外側にあると決定し得る。
[0202]いくつかの例では、ビデオコーダはさらに、ビデオデータの第2の変換ブロックについて、第2の変換ブロックの第2の複数の係数グループのうち、非0変換係数を備える係数グループが第2の変換ブロックの最低周波数領域の外側にないと決定することと、ここにおいて、第2の複数の係数グループは各々複数の変換係数を備える、係数グループが第2の変換ブロックの最低周波数領域の外側にないという決定に少なくとも部分的に基づいて、第2の変換ブロックのためのMTSを示す第2のシンタックス要素をコーディングすることを決定することと、第2の変換ブロックのためのMTSを示す第2のシンタックス要素をコーディングするという決定に少なくとも部分的に基づいて、ビデオデータをコーディングすることとを行うことができる。
[0203]いくつかの例では、非0係数グループを備える係数グループが第2の変換ブロックの最低周波数領域の外側にないと決定するために、ビデオコーダはさらに、第2の変換ブロックの複数の係数グループから、コード化サブブロックフラグが1つまたは複数の係数グループの各々について設定される1つまたは複数の係数グループを決定し、1つまたは複数の係数グループの各々の位置がx軸とy軸の両方において3よりも大きくないと決定し、1つまたは複数の係数グループの各々の位置がx軸とy軸の両方において3よりも大きくないと決定したことに応答して、ビデオデータの第2の変換ブロックについて、第2の変換ブロックの第2の複数の係数グループのうちの非0変換係数を備える係数グループが第2の変換ブロックの最低周波数領域の外側にないと決定することができる。
[0204]いくつかの例では、変換ブロックの最低周波数領域は、変換ブロックの左上領域を備える。いくつかの例では、変換ブロックは32×32ブロックを備え、変換ブロックの左上領域は32×32ブロックの左上16×16領域を備え、複数の係数グループの各々は、変換ブロックに関連付けられた係数の4×4ブロックを備える。いくつかの例では、変換ブロックのためのマルチプル変換選択を示すシンタックス要素は、変換ブロックのための分離可能な変換(separable transform)を指定するMTSインデックスを示す。
[0205]いくつかの例では、ビデオコーダは、ビデオエンコーダ200を備える。シンタックス要素をコーディングしないと決定するために、ビデオエンコーダ200は、シンタックス要素を符号化しないと決定し得、シンタックス要素をコーディングしないという決定に基づいてビデオデータをコーディングするために、ビデオエンコーダ200は、シンタックス要素を符号化することなくビデオデータを符号化するように構成される。
[0206]いくつかの例では、ビデオコーダは、ビデオデコーダ300を備える。シンタックス要素をコーディングしないと決定するために、ビデオデコーダ300は、シンタックス要素を復号しないと決定するように構成される。シンタックス要素をコーディングしないという決定に基づいてビデオデータをコーディングするために、ビデオデコーダ300は、シンタックス要素を復号することなくビデオデータを復号するように構成される。いくつかの例では、ビデオデータを復号するために、ビデオデコーダ300は、シンタックス要素を復号しないと決定したことに応答して、シンタックス要素の値を推測するように構成される。
[0207]いくつかの例では、ビデオコーダは、復号されたビデオデータを表示するように構成されるディスプレイをさらに備える。いくつかの例では、ビデオコーダは、カメラ、コンピュータ、モバイルデバイス、ブロードキャスト受信機デバイス、またはセットトップボックスのうちの1つまたは複数を備える。いくつかの例では、デバイスは、集積回路、マイクロプロセッサ、またはワイヤレス通信デバイスのうちの少なくとも1つを備える。
[0208]いくつかの例では、変換係数を備える複数の係数グループのうちの非0変換係数を備える少なくとも1つの係数グループが変換ブロックの最低周波数領域の外側にあると決定するために、ビデオコーダは、変換係数を備える複数の係数グループのうちの1つの係数グループについて、係数グループのためのコード化サブブロックフラグが設定されているかどうかを決定し、係数グループのためのコード化サブブロックフラグが設定されていると決定したことに応答して、係数グループの位置がx軸またはy軸のうちの少なくとも1つにおいて3よりも大きいかどうかを決定し、係数グループの位置がx軸またはy軸のうちの少なくとも1つにおいて3よりも大きいと決定したことに応答して、ビデオデータの変換ブロックについて、変換係数を備える複数の係数グループのうちの非0変換係数を備える少なくとも1つの係数グループが変換ブロックの最低周波数領域の外側にあると決定し得る。
[0209]いくつかの例では、ビデオデータの変換ブロックについて、変換係数を備える複数の係数グループのうちの非0変換係数を備える少なくとも1つの係数グループが変換ブロックの最低周波数領域の外側にあるかどうかを決定するために、ビデオコーダは、変換係数を備える係数グループのいずれも変換ブロックの最低周波数領域の外側にないと決定し得る。いくつかの例では、少なくとも1つのコーディングされた係数グループが変換ブロックの最低周波数領域の外側にあるかどうかの決定に少なくとも部分的に基づいて、変換ブロックのためのマルチプル変換選択を示すシンタックス要素をコーディングすべきかどうかを決定するために、ビデオコーダは、変換係数を備える係数グループのいずれも変換ブロックの最低周波数領域の外側にないと決定したことに応答して、変換ブロックのためのマルチプル変換選択を示すシンタックス要素をコーディングすることを決定し得る。いくつかの例では、マルチプル変換選択を示すシンタックス要素をコーディングすべきかどうかの決定に少なくとも部分的に基づいてビデオデータをコーディングするために、ビデオコーダは、変換ブロックのためのマルチプル変換選択を示すシンタックス要素を含むビデオデータをコーディングし得る。
[0210]いくつかの例では、変換係数を備える係数グループのいずれも変換ブロックの最低周波数領域の外側にないと決定するために、ビデオコーダは、変換係数を備える複数の係数グループから、1つまたは複数の係数グループの各々についてコード化サブブロックフラグが設定されている1つまたは複数の係数グループを決定し、1つまたは複数の係数グループの各々の位置がx軸またはy軸のうちの少なくとも1つにおいて3よりも大きいと決定し、1つまたは複数の係数グループの各々の位置がx軸とy軸の両方において3よりも大きくないと決定したことに応答して、ビデオデータの変換ブロックについて、変換係数を備える係数グループのいずれも変換ブロックの最低周波数領域の外側にないと決定し得る。
[0211]いくつかの例では、変換ブロックの最低周波数領域は、変換ブロックの左上領域を備える。いくつかの例では、変換ブロックは32×32ブロックを備え、変換ブロックの左上領域は32×32ブロックの左上16×16領域を備え、複数の係数グループの各々は、変換ブロックに関連付けられた係数の4×4ブロックを備える。
[0212]いくつかの例では、変換ブロックのためのマルチプル変換選択を示すシンタックス要素は、変換ブロックのための分離可能な変換を指定するMTSインデックスを示す。
[0213]いくつかの例では、ビデオコーダはビデオデコーダ300であり、ここにおいて、シンタックス要素をコーディングすべきかどうかを決定するために、ビデオデコーダ300は、シンタックス要素を復号すべきかどうかを決定するように構成され、ビデオデータをコーディングするために、ビデオデコーダ300は、ビデオデータを復号するように構成される。いくつかの例では、ビデオデータを復号するために、ビデオデコーダ300は、シンタックス要素を復号しないと決定したことに応答して、シンタックス要素の値を推測し得る。
[0214]いくつかの例では、ビデオデコーダ300は、復号されたビデオデータを表示するように構成されたディスプレイをさらに含む。いくつかの例では、ビデオデコーダ300は、カメラ、コンピュータ、モバイルデバイス、ブロードキャスト受信機デバイス、またはセットトップボックスのうちの1つまたは複数を備える。いくつかの例では、ビデオデコーダ300は、集積回路、マイクロプロセッサ、またはワイヤレス通信デバイスのうちの少なくとも1つを備える。
[0215]本開示は、以下の態様を含む。
[0216]態様1:ビデオデータをコーディングする方法は、ビデオデータの変換ブロックについて、非0変換係数を備える変換ブロックの少なくとも1つの係数グループが変換ブロックの最低周波数領域の外側にあると決定することと、ここにおいて、少なくとも1つの係数グループは、各々が変換係数を備える複数の係数グループのうちの1つであり;少なくとも1つの係数グループが変換ブロックの最低周波数領域の外側にあるという決定に少なくとも部分的に基づいて、変換ブロックのためのマルチプル変換選択(MTS)を示すシンタックス要素をコーディングしないと決定することと;変換ブロックのためのマルチプル変換選択を示すシンタックス要素をコーディングしないという決定に少なくとも部分的に基づいて、ビデオデータをコーディングすることとを含む。
[0217]態様2:非0変換係数を備える変換係数を備える変換ブロックの少なくとも1つの係数グループが変換ブロックの最低周波数領域の外側にあると決定することは、変換係数を備える複数の係数グループのうちの1つの係数グループについて、係数グループのためのコード化サブブロックフラグが設定されていると決定することと;係数グループのためのコード化サブブロックフラグが設定されていると決定したことに応答して、係数グループの位置がx軸またはy軸のうちの少なくとも1つにおいて3よりも大きいと決定することと;係数グループの位置がx軸またはy軸のうちの少なくとも1つにおいて3よりも大きいと決定したことに応答して、ビデオデータの変換ブロックについて、非0変換係数を備える変換ブロックの少なくとも1つの係数グループが変換ブロックの最低周波数領域の外側にあると決定することとをさらに備える、態様1に記載の方法。
[0218]態様3:態様1に記載の方法は、ビデオデータの第2の変換ブロックについて、第2の変換ブロックの第2の複数の係数グループのうち、非0変換係数を備える係数グループが第2の変換ブロックの最低周波数領域の外側にないと決定することと、ここにおいて、第2の複数の係数グループは各々複数の変換係数を備え;係数グループが第2の変換ブロックの最低周波数領域の外側にないという決定に少なくとも部分的に基づいて、第2の変換ブロックのためのMTSを示す第2のシンタックス要素をコーディングすることを決定することと;第2の変換ブロックのためのMTSを示す第2のシンタックス要素をコーディングするという決定に少なくとも部分的に基づいて、ビデオデータをコーディングすることとをさらに含む。
[0219]態様4:非0係数グループを備える係数グループが第2の変換ブロックの最低周波数領域の外側にないと決定することは、第2の変換ブロックの複数の係数グループから、コード化サブブロックフラグが1つまたは複数の係数グループの各々について設定される1つまたは複数の係数グループを決定することと;1つまたは複数の係数グループの各々の位置がx軸とy軸の両方において3よりも大きくないと決定することと;1つまたは複数の係数グループの各々の位置がx軸とy軸の両方において3よりも大きくないと決定したことに応答して、ビデオデータの第2の変換ブロックについて、第2の変換ブロックの第2の複数の係数グループのうちの非0変換係数を備える係数グループが第2の変換ブロックの最低周波数領域の外側にないと決定することとを備える、態様3に記載の方法。
[0220]態様5:変換ブロックの最低周波数領域は、変換ブロックの左上領域を備える、態様1から4のいずれかに記載の方法。
[0221]態様6:変換ブロックは32×32ブロックを備え;変換ブロックの左上領域は32×32ブロックの左上16×16領域を備え;複数の係数グループの各々は、変換ブロックに関連付けられた係数の4×4ブロックを備える、態様5に記載の方法。
[0222]態様7:変換ブロックのためのマルチプル変換選択を示すシンタックス要素は、変換ブロックのための分離可能な変換を指定するMTSインデックスを示す、態様1から6のいずれかに記載の方法。
[0223]態様8:シンタックス要素をコーディングしないと決定することは、シンタックス要素を符号化しないと決定することを備え;シンタックス要素をコーディングしないという決定に基づいてビデオデータをコーディングすることは、シンタックス要素を符号化することなくビデオデータを符号化することを備える、態様1および2のいずれかに記載の方法。
[0224]態様9:シンタックス要素をコーディングしないと決定することは、シンタックス要素を復号しないと決定することを備え;シンタックス要素をコーディングしないという決定に基づいてビデオデータをコーディングすることは、シンタックス要素を復号することなくビデオデータを復号することを備える、態様1および2のいずれかに記載の方法。
[0225]態様10:ビデオデータを復号することは、シンタックス要素を復号しないと決定したことに応答して、シンタックス要素の値を推測することをさらに備える、態様9に記載の方法。
[0226]態様11:ビデオデータをコーディングするためのデバイスは、メモリと、回路内に実装されたプロセッサとを含み、当該プロセッサは、ビデオデータの変換ブロックについて、非0変換係数を備える変換ブロックの少なくとも1つの係数グループが変換ブロックの最低周波数領域の外側にあると決定することと、ここにおいて、少なくとも1つの係数グループは、各々が変換係数を備える複数の係数グループのうちの1つであり;少なくとも1つの係数グループが変換ブロックの最低周波数領域の外側にあるという決定に少なくとも部分的に基づいて、変換ブロックのためのマルチプル変換選択(MTS)を示すシンタックス要素をコーディングしないと決定することと;変換ブロックのためのマルチプル変換選択を示すシンタックス要素をコーディングしないという決定に少なくとも部分的に基づいて、ビデオデータをコーディングすることとを行うように構成される。
[0227]態様12:非0変換係数を備える変換係数を備える変換ブロックの少なくとも1つの係数グループが変換ブロックの最低周波数領域の外側にあると決定するために、プロセッサは、変換係数を備える複数の係数グループのうちの係数グループについて、係数グループのためのコード化サブブロックフラグが設定されていると決定することと;係数グループのためのコード化サブブロックフラグが設定されていると決定したことに応答して、係数グループの位置がx軸またはy軸のうちの少なくとも1つにおいて3よりも大きいと決定することと;係数グループの位置がx軸またはy軸のうちの少なくとも1つにおいて3よりも大きいと決定したことに応答して、ビデオデータの変換ブロックについて、非0変換係数を備える変換ブロックの少なくとも1つの係数グループが変換ブロックの最低周波数領域の外側にあると決定することとを行うようにさらに構成される、態様11に記載のデバイス。
[0228]態様13:プロセッサは、ビデオデータの第2の変換ブロックについて、第2の変換ブロックの第2の複数の係数グループのうち、非0変換係数を備える係数グループが第2の変換ブロックの最低周波数領域の外側にないと決定することと、ここにおいて、第2の複数の係数グループは各々複数の変換係数を備え;係数グループが第2の変換ブロックの最低周波数領域の外側にないという決定に少なくとも部分的に基づいて、第2の変換ブロックのためのMTSを示す第2のシンタックス要素をコーディングすることを決定することと;第2の変換ブロックのためのMTSを示す第2のシンタックス要素をコーディングするという決定に少なくとも部分的に基づいて、ビデオデータをコーディングすることとを行うようにさらに構成される、態様11に記載のデバイス。
[0229]態様14:非0係数グループを備える係数グループが第2の変換ブロックの最低周波数領域の外側にないと決定するために、プロセッサは、第2の変換ブロックの複数の係数グループから、コード化サブブロックフラグが1つまたは複数の係数グループの各々について設定される1つまたは複数の係数グループを決定することと;1つまたは複数の係数グループの各々の位置がx軸とy軸の両方において3よりも大きくないと決定することと;1つまたは複数の係数グループの各々の位置がx軸とy軸の両方において3よりも大きくないと決定したことに応答して、ビデオデータの第2の変換ブロックについて、第2の変換ブロックの第2の複数の係数グループのうちの非0変換係数を備える係数グループが第2の変換ブロックの最低周波数領域の外側にないと決定することとを行うようにさらに構成される、態様13に記載のデバイス。
[0230]態様15:変換ブロックの最低周波数領域は、変換ブロックの左上領域を備える、態様11から14のいずれかに記載のデバイス。
[0231]態様16:変換ブロックは32×32ブロックを備え;変換ブロックの左上領域は32×32ブロックの左上16×16領域を備え;複数の係数グループの各々は、変換ブロックに関連付けられた係数の4×4ブロックを備える、態様15に記載のデバイス。
[0232]態様17:変換ブロックのためのマルチプル変換選択を示すシンタックス要素は、変換ブロックのための分離可能な変換を指定するMTSインデックスを示す、態様11から16のいずれかに記載のデバイス。
[0233]態様18:デバイスは、シンタックス要素をコーディングしないと決定するためのビデオエンコーダを備え、プロセッサは、シンタックス要素を符号化しないと決定するように構成され;シンタックス要素をコーディングしないという決定に基づいてビデオデータをコーディングするために、プロセッサは、シンタックス要素を符号化することなくビデオデータを符号化するように構成される、態様11および12のいずれかに記載のデバイス。
[0234]態様19:デバイスは、シンタックス要素をコーディングしないと決定するためのビデオデコーダを備え、プロセッサは、シンタックス要素を復号しないと決定するように構成され;シンタックス要素をコーディングしないという決定に基づいてビデオデータをコーディングするために、プロセッサは、シンタックス要素を復号することなくビデオデータを復号するように構成される、態様11および12のいずれかに記載のデバイス。
[0235]態様20:ビデオデータを復号するために、プロセッサは、シンタックス要素を復号しないと決定したことに応答して、シンタックス要素の値を推測するように構成される、態様19に記載のデバイス。
[0236]態様21:復号されたビデオデータを表示するように構成されたディスプレイをさらに備える、態様11から20のいずれかに記載のデバイス。
[0237]態様22:デバイスは、カメラ、コンピュータ、モバイルデバイス、ブロードキャスト受信機デバイス、またはセットトップボックスのうちの1つまたは複数を備える、態様11から21のいずれかに記載のデバイス。
[0238]態様23:集積回路、マイクロプロセッサ、またはワイヤレス通信デバイスのうちの少なくとも1つを備える、態様11から22のいずれかに記載のデバイス。
[0239]態様24:データをコーディングするためのデバイスは、ビデオデータの変換ブロックについて、非0変換係数を備える変換ブロックの少なくとも1つの係数グループが変換ブロックの最低周波数領域の外側にあると決定するための手段と、ここにおいて、少なくとも1つの係数グループは、各々が変換係数を備える複数の係数グループのうちの1つであり;少なくとも1つの係数グループが変換ブロックの最低周波数領域の外側にあるという決定に少なくとも部分的に基づいて、変換ブロックのためのマルチプル変換選択(MTS)を示すシンタックス要素をコーディングしないと決定するための手段と;変換ブロックのためのマルチプル変換選択を示すシンタックス要素をコーディングしないという決定に少なくとも部分的に基づいて、ビデオデータをコーディングするための手段とを含む。
[0240]態様25:非0変換係数を備える変換係数を備える変換ブロックの少なくとも1つの係数グループが変換ブロックの最低周波数領域の外側にあると決定するための手段は、変換係数を備える複数の係数グループのうちの係数グループについて、係数グループのためのコード化サブブロックフラグが設定されていると決定するための手段と;係数グループのためのコード化サブブロックフラグが設定されていると決定したことに応答して、係数グループの位置がx軸またはy軸のうちの少なくとも1つにおいて3よりも大きいと決定するための手段と;係数グループの位置がx軸またはy軸のうちの少なくとも1つにおいて3よりも大きいと決定したことに応答して、ビデオデータの変換ブロックについて、非0変換係数を備える変換ブロックの少なくとも1つの係数グループが変換ブロックの最低周波数領域の外側にあると決定するための手段とをさらに備える、態様24に記載のデバイス。
[0241]態様26:態様24に記載のデバイスは、ビデオデータの第2の変換ブロックについて、第2の変換ブロックの第2の複数の係数グループのうち、非0変換係数を備える係数グループが第2の変換ブロックの最低周波数領域の外側にないと決定するための手段と、ここにおいて、第2の複数の係数グループは各々複数の変換係数を備え;係数グループが第2の変換ブロックの最低周波数領域の外側にないという決定に少なくとも部分的に基づいて、第2の変換ブロックのためのMTSを示す第2のシンタックス要素をコーディングすることを決定するための手段と;第2の変換ブロックのためのMTSを示す第2のシンタックス要素をコーディングするという決定に少なくとも部分的に基づいて、ビデオデータをコーディングするための手段とをさらに含む。
[0242]態様27:非0係数グループを備える係数グループが第2の変換ブロックの最低周波数領域の外側にないと決定するための手段は、第2の変換ブロックの複数の係数グループから、コード化サブブロックフラグが1つまたは複数の係数グループの各々について設定される1つまたは複数の係数グループを決定するための手段と;1つまたは複数の係数グループの各々の位置がx軸とy軸の両方において3よりも大きくないと決定するための手段と;1つまたは複数の係数グループの各々の位置がx軸とy軸の両方において3よりも大きくないと決定したことに応答して、ビデオデータの第2の変換ブロックについて、第2の変換ブロックの第2の複数の係数グループのうちの非0変換係数を備える係数グループが第2の変換ブロックの最低周波数領域の外側にないと決定するための手段とを備える、態様26に記載のデバイス。
[0243]態様28:シンタックス要素をコーディングしないと決定するための手段は、シンタックス要素を復号しないと決定するための手段を備え;シンタックス要素をコーディングしないという決定に基づいてビデオデータをコーディングするための手段は、シンタックス要素を復号することなくビデオデータを復号するための手段を備える、態様24および25のいずれかに記載のデバイス。
[0244]態様29:ビデオデータを復号するための手段は、シンタックス要素を復号しないと決定したことに応答して、シンタックス要素の値を推測するための手段をさらに備える、態様28に記載のデバイス。
[0245]態様30:実行されたとき、1つまたは複数のプロセッサに、ビデオデータの変換ブロックについて、非0変換係数を備える変換ブロックの少なくとも1つの係数グループが変換ブロックの最低周波数領域の外側にあると決定することと、ここにおいて、少なくとも1つの係数グループは、各々が変換係数を備える複数の係数グループのうちの1つであり;少なくとも1つの係数グループが変換ブロックの最低周波数領域の外側にあるという決定に少なくとも部分的に基づいて、変換ブロックのためのマルチプル変換選択(MTS)を示すシンタックス要素をコーディングしないと決定することと;変換ブロックのためのマルチプル変換選択を示すシンタックス要素をコーディングしないという決定に少なくとも部分的に基づいて、ビデオデータをコーディングすることとを行わせる命令を記憶したコンピュータ可読記憶媒体。
[0246]態様31:ビデオデータをコーディングする方法であって、x軸またはy軸のうちの少なくとも1つにおける最後にコーディングされた係数グループの位置を決定することと;x軸またはy軸のうちの少なくとも1つにおける最後にコーディングされた係数グループの位置に基づいて、マルチプル変換選択(MTS)インデックスをシグナリングすべきかどうか、またはMTSインデックスを構文解析すべきかどうかを決定することと;MTSインデックスをシグナリングすべきかどうか、またはMTSインデックスを構文解析すべきかどうかの決定に少なくとも部分的に基づいてビデオデータをコーディングすることとを備える、方法。
[0247]態様32:x軸またはy軸のうちの少なくとも1つにおける最後にコーディングされた係数グループの位置に基づいて、MTSインデックスをシグナリングすべきかどうか、またはMTSインデックスを構文解析すべきかどうかを決定することは、x軸またはy軸のうちの少なくとも1つにおける最後にコーディングされた係数グループの位置が3よりも大きいことに基づいて、MTSインデックスをシグナリングしないと決定すること、またはMTSインデックスを構文解析しないと決定することをさらに備える、態様31に記載の方法。
[0248]態様33:MTSインデックスをシグナリングしないと決定すること、またはMTSインデックスを構文解析しないと決定することは、MTSインデックスについての値を推測することをさらに備える、態様32に記載の方法。
[0249]態様34:MTSインデックスについての値を推測することは、MTSインデックスについての値が0であると推測することを備える、態様31から33のいずれかに記載の方法。
[0250]態様35:MTXインデックスの値を推測することは、DCT-2変換に対応するMTSインデックスについての値を推測することを備える、態様31から34のいずれかに記載の方法。
[0251]態様36:x軸またはy軸のうちの少なくとも1つにおける最後にコーディングされた係数グループの位置に基づいて、MTSインデックスをシグナリングすべきかどうか、またはMTSインデックスを構文解析すべきかどうかを決定することは、x軸とy軸の両方における最後にコーディングされた係数グループの位置が3よりも大きくないことに基づいて、MTSインデックスをシグナリングすることを決定すること、および/またはMTSインデックスを構文解析することを決定することをさらに備える、態様31から35のいずれかに記載の方法。
[0252]態様37:MTSインデックスは、ビデオデータをコーディングするために使用されている分離可能な変換を指定する、態様31から36のいずれかに記載の方法。
[0253]態様38:MTSインデックスは、ビデオデータの現在のコーディングユニット中の1つまたは複数の関連するルーマ変換ブロックの水平方向および垂直方向に沿って1つまたは複数の変換カーネルが適用されることを指定する、態様31から37のいずれかに記載の方法。
[0254]態様39:コーディングすることは、復号することを備える、態様31から38のいずれかに記載の方法。
[0255]態様40:コーディングすることは、符号化することを備える、態様31から38のいずれかに記載の方法。
[0256]態様41:ビデオデータをコーディングするためのデバイスであって、態様31から40のいずれかの方法を実行するための1つまたは複数の手段を備えるデバイス。
[0257]態様42:1つまたは複数の手段は、回路内に実装された1つまたは複数のプロセッサを備える、態様41に記載のデバイス。
[0258]態様43:ビデオデータを記憶するためのメモリをさらに備える、態様41および42のいずれかに記載のデバイス。
[0259]態様44:復号されたビデオデータを表示するように構成されたディスプレイをさらに備える、態様41から43のいずれかに記載のデバイス。
[0260]態様45:カメラ、コンピュータ、モバイルデバイス、ブロードキャスト受信機デバイス、またはセットトップボックスのうちの1つまたは複数を備える、態様41から44のいずれかに記載のデバイス。
[0261]態様46:ビデオデコーダを備える、態様41から45のいずれかに記載のデバイス。
[0262]態様47:ビデオエンコーダを備える、態様41から46のいずれかに記載のデバイス。
[0263]態様48:実行されたとき、1つまたは複数のプロセッサに、態様30から40のいずれかに記載の方法を実行させる命令を記憶したコンピュータ可読記憶媒体。
[0264]上記例に応じて、本明細書で説明された技法のいずれかのいくつかの行為またはイベントは、異なるシーケンスで実施され得、追加、マージ、または完全に除外され得る(たとえば、すべての説明された行為またはイベントが本技法の実践のために必要であるとは限らない)ことを認識されたい。さらに、いくつかの例では、行為またはイベントは、連続的にではなく、たとえば、マルチスレッド処理、割込み処理、または複数のプロセッサを通して同時に実施され得る。
[0265]1つまたは複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せにおいて実装され得る。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応する、コンピュータ可読記憶媒体を含み得るか、または、たとえば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を促進する任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、一般に、(1)非一時的な有形コンピュータ可読記憶媒体、または(2)信号もしくは搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示において説明された技法の実装のための命令、コードおよび/またはデータ構造を取り出すために、1つもしくは複数のコンピュータまたは1つもしくは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
[0266]限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD-ROMもしくは他の光ディスクストレージ、磁気ディスクストレージ、もしくは他の磁気ストレージデバイス、フラッシュメモリ、または、命令もしくはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。たとえば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体が、接続、搬送波、信号、または他の一時的媒体を含むのではなく、代わりに非一時的な有形の記憶媒体を対象とすることを理解されたい。本明細書において使用されるディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびブルーレイ(登録商標)ディスク(disc)を含み、ここで、ディスク(disk)は通常、データを磁気的に再生し、ディスク(disc)は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲に含まれるべきである。
[0267]命令は、1つまたは複数のDSP、汎用マイクロプロセッサ、ASIC、FPGA、あるいは他の等価な集積回路またはディスクリート論理回路などの、1つまたは複数のプロセッサによって実行され得る。したがって、本明細書で使用される「プロセッサ」および「処理回路」という用語は、上記の構造、または本明細書で説明された技法の実装に好適な任意の他の構造のいずれかを指し得る。さらに、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成された専用ハードウェアおよび/またはソフトウェアモジュール内に提供されるか、あるいは複合コーデックに組み込まれ得る。また、本技法は、1つまたは複数の回路または論理要素で十分に実装され得る。
[0268]本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(たとえば、チップセット)を含む、多種多様なデバイスまたは装置で実装され得る。本開示では、開示される技法を実行するように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットについて説明しているが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。むしろ、上記で説明したように、様々なユニットが、好適なソフトウェアおよび/またはファームウェアとともに、上記で説明した1つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わされ得るか、または相互動作可能なハードウェアユニットの集合によって与えられ得る。
[0269]様々な例について説明してきた。これらおよび他の例は、次の特許請求の範囲内に入る。
Claims (30)
- ビデオデータをコーディングする方法であって、
ビデオデータの変換ブロックについて、非0変換係数を備える前記変換ブロックの少なくとも1つの係数グループが前記変換ブロックの最低周波数領域の外側にあると決定することと、ここにおいて、前記少なくとも1つの係数グループは、各々が変換係数を備える複数の係数グループのうちの1つであり、
前記少なくとも1つの係数グループが前記変換ブロックの前記最低周波数領域の外側にあるという前記決定に少なくとも部分的に基づいて、前記変換ブロックのためのマルチプル変換選択(MTS)を示すシンタックス要素をコーディングしないと決定することと、
前記変換ブロックのための前記マルチプル変換選択を示す前記シンタックス要素をコーディングしないという前記決定に少なくとも部分的に基づいて、前記ビデオデータをコーディングすることと、
を備える、方法。 - 非0変換係数を備える前記変換ブロックの少なくとも1つの係数グループが前記変換ブロックの前記最低周波数領域の外側にあると決定することは、
変換係数を備える前記複数の係数グループのうちの1つの係数グループについて、前記係数グループのためのコード化サブブロックフラグが設定されていると決定することと、
前記係数グループのための前記コード化サブブロックフラグが設定されていると決定したことに応答して、前記係数グループの位置がx軸またはy軸のうちの少なくとも1つにおいて3よりも大きいと決定することと、
前記係数グループの前記位置が前記x軸または前記y軸のうちの少なくとも1つにおいて3よりも大きいと決定したことに応答して、前記ビデオデータの前記変換ブロックについて、非0変換係数を備える前記変換ブロックの少なくとも1つの係数グループが前記変換ブロックの前記最低周波数領域の外側にあると決定することと、
をさらに備える、請求項1に記載の方法。 - ビデオデータの第2の変換ブロックについて、前記第2の変換ブロックの第2の複数の係数グループのうちの、非0変換係数を備える係数グループが前記第2の変換ブロックの最低周波数領域の外側にないと決定することと、ここにおいて、前記第2の複数の係数グループは各々、複数の変換係数を備え、
係数グループが前記第2の変換ブロックの前記最低周波数領域の外側にないという前記決定に少なくとも部分的に基づいて、前記第2の変換ブロックのための前記MTSを示す第2のシンタックス要素をコーディングすることを決定することと、
前記第2の変換ブロックのための前記MTSを示す前記第2のシンタックス要素をコーディングするという前記決定に少なくとも部分的に基づいて前記ビデオデータをコーディングすることと、
をさらに備える、請求項1に記載の方法。 - 非0係数グループを備える係数グループが前記第2の変換ブロックの前記最低周波数領域の外側にないと決定することは、
前記第2の変換ブロックの前記複数の係数グループから、コード化サブブロックフラグが前記1つまたは複数の係数グループの各々について設定されている1つまたは複数の係数グループを決定することと、
前記1つまたは複数の係数グループの各々の位置がx軸とy軸の両方において3よりも大きくないと決定することと、
前記1つまたは複数の係数グループの各々の前記位置が前記x軸と前記y軸の両方において3よりも大きくないと決定したことに応答して、前記ビデオデータの前記第2の変換ブロックについて、前記第2の変換ブロックの前記第2の複数の係数グループのうちの、非0変換係数を備える係数グループが前記第2の変換ブロックの最低周波数領域の外側にないと決定することと、
を備える、請求項3に記載の方法。 - 前記変換ブロックの前記最低周波数領域は、前記変換ブロックの左上領域を備える、請求項1に記載の方法。
- 前記変換ブロックは、32×32ブロックを備え、
前記変換ブロックの前記左上領域は、前記32×32ブロックの左上16×16領域を備え、
前記複数の係数グループの各々は、前記変換ブロックに関連付けられた係数の4×4ブロックを備える、
請求項5に記載の方法。 - 前記変換ブロックのための前記マルチプル変換選択を示す前記シンタックス要素は、前記変換ブロックのための分離可能な変換を指定するMTSインデックスを示す、
請求項1に記載の方法。 - 前記シンタックス要素をコーディングしないと決定することは、前記シンタックス要素を符号化しないと決定することを備え、
前記シンタックス要素をコーディングしないという前記決定に基づいて前記ビデオデータをコーディングすることは、前記シンタックス要素を符号化することなく前記ビデオデータを符号化することを備える、
請求項1に記載の方法。 - 前記シンタックス要素をコーディングしないと決定することは、前記シンタックス要素を復号しないと決定することを備え、
前記シンタックス要素をコーディングしないという前記決定に基づいて前記ビデオデータをコーディングすることは、前記シンタックス要素を復号することなく前記ビデオデータを復号することを備える、
請求項1に記載の方法。 - 前記ビデオデータを復号することは、
前記シンタックス要素を復号しないと決定したことに応答して、前記シンタックス要素の値を推測すること、
をさらに備える、請求項9に記載の方法。 - ビデオデータをコーディングするためのデバイスであって、
メモリと、
回路内に実装されたプロセッサと、を備え、前記プロセッサは、
ビデオデータの変換ブロックについて、非0変換係数を備える前記変換ブロックの少なくとも1つの係数グループが前記変換ブロックの最低周波数領域の外側にあると決定することと、ここにおいて、前記少なくとも1つの係数グループは、各々が変換係数を備える複数の係数グループのうちの1つであり、
前記少なくとも1つの係数グループが前記変換ブロックの前記最低周波数領域の外側にあるという前記決定に少なくとも部分的に基づいて、前記変換ブロックのためのマルチプル変換選択(MTS)を示すシンタックス要素をコーディングしないと決定することと、
前記変換ブロックのための前記マルチプル変換選択を示す前記シンタックス要素をコーディングしないという前記決定に少なくとも部分的に基づいて、前記ビデオデータをコーディングすることと、
を行うように構成された、デバイス。 - 非0変換係数を備える前記変換ブロックの少なくとも1つの係数グループが前記変換ブロックの前記最低周波数領域の外側にあると決定するために、前記プロセッサは、
変換係数を備える前記複数の係数グループのうちの1つの係数グループについて、前記係数グループのためのコード化サブブロックフラグが設定されていると決定することと、
前記係数グループのための前記コード化サブブロックフラグが設定されていると決定したことに応答して、前記係数グループの位置がx軸またはy軸のうちの少なくとも1つにおいて3よりも大きいと決定することと、
前記係数グループの前記位置が前記x軸または前記y軸のうちの少なくとも1つにおいて3よりも大きいと決定したことに応答して、前記ビデオデータの前記変換ブロックについて、非0変換係数を備える前記変換ブロックの少なくとも1つの係数グループが前記変換ブロックの前記最低周波数領域の外側にあると決定することと、
を行うようにさらに構成される、請求項11に記載のデバイス。 - 前記プロセッサは、
ビデオデータの第2の変換ブロックについて、前記第2の変換ブロックの第2の複数の係数グループのうちの、非0変換係数を備える係数グループが前記第2の変換ブロックの最低周波数領域の外側にないと決定することと、ここにおいて、前記第2の複数の係数グループは各々、複数の変換係数を備え、
係数グループが前記第2の変換ブロックの前記最低周波数領域の外側にないという前記決定に少なくとも部分的に基づいて、前記第2の変換ブロックのための前記MTSを示す第2のシンタックス要素をコーディングすることを決定することと、
前記第2の変換ブロックのための前記MTSを示す前記第2のシンタックス要素をコーディングするという前記決定に少なくとも部分的に基づいて前記ビデオデータをコーディングすることと、
を行うようにさらに構成される、請求項11に記載のデバイス。 - 非0係数グループを備える係数グループが前記第2の変換ブロックの前記最低周波数領域の外側にないと決定するために、前記プロセッサは、
前記第2の変換ブロックの前記複数の係数グループから、コード化サブブロックフラグが前記1つまたは複数の係数グループの各々について設定されている1つまたは複数の係数グループを決定することと、
前記1つまたは複数の係数グループの各々の位置がx軸とy軸の両方において3よりも大きくないと決定することと、
前記1つまたは複数の係数グループの各々の前記位置が前記x軸と前記y軸の両方において3よりも大きくないと決定したことに応答して、前記ビデオデータの前記第2の変換ブロックについて、前記第2の変換ブロックの前記第2の複数の係数グループのうちの、非0変換係数を備える係数グループが前記第2の変換ブロックの最低周波数領域の外側にないと決定することと、
を行うようにさらに構成される、請求項13に記載のデバイス。 - 前記変換ブロックの前記最低周波数領域は、前記変換ブロックの左上領域を備える、請求項11に記載のデバイス。
- 前記変換ブロックは、32×32ブロックを備え、
前記変換ブロックの前記左上領域は、前記32×32ブロックの左上16×16領域を備え、
前記複数の係数グループの各々は、前記変換ブロックに関連付けられた係数の4×4ブロックを備える、
請求項15に記載のデバイス。 - 前記変換ブロックのための前記マルチプル変換選択を示す前記シンタックス要素は、前記変換ブロックのための分離可能な変換を指定するMTSインデックスを示す、
請求項11に記載のデバイス。 - 前記デバイスは、ビデオエンコーダを備え、
前記シンタックス要素をコーディングしないと決定するために、前記プロセッサは、前記シンタックス要素を符号化しないと決定するように構成され、
前記シンタックス要素をコーディングしないという前記決定に基づいて前記ビデオデータをコーディングするために、前記プロセッサは、前記シンタックス要素を符号化することなく前記ビデオデータを符号化するように構成される、
請求項11に記載のデバイス。 - 前記デバイスは、ビデオデコーダを備え、
前記シンタックス要素をコーディングしないと決定するために、前記プロセッサは、前記シンタックス要素を復号しないと決定するように構成され、
前記シンタックス要素をコーディングしないという前記決定に基づいて前記ビデオデータをコーディングするために、前記プロセッサは、前記シンタックス要素を復号することなく前記ビデオデータを復号するように構成される、
請求項11に記載のデバイス。 - 前記ビデオデータを復号するために、前記プロセッサは、
前記シンタックス要素を復号しないと決定したことに応答して、前記シンタックス要素の値を推測するように構成される、請求項19に記載のデバイス。 - 復号ビデオデータを表示するように構成されたディスプレイをさらに備える、請求項11に記載のデバイス。
- 前記デバイスは、カメラ、コンピュータ、モバイルデバイス、ブロードキャスト受信機デバイス、またはセットトップボックスのうちの1つまたは複数を備える、請求項11に記載のデバイス。
- 前記デバイスは、
集積回路、
マイクロプロセッサ、または
ワイヤレス通信デバイス
のうちの少なくとも1つを備える、請求項11に記載のデバイス。 - データをコーディングするためのデバイスであって、
ビデオデータの変換ブロックについて、非0変換係数を備える前記変換ブロックの少なくとも1つの係数グループが前記変換ブロックの最低周波数領域の外側にあると決定するための手段と、ここにおいて、前記少なくとも1つの係数グループは、各々が変換係数を備える複数の係数グループのうちの1つであり、
前記少なくとも1つの係数グループが前記変換ブロックの前記最低周波数領域の外側にあるという前記決定に少なくとも部分的に基づいて、前記変換ブロックのためのマルチプル変換選択(MTS)を示すシンタックス要素をコーディングしないと決定するための手段と、
前記変換ブロックのための前記マルチプル変換選択を示す前記シンタックス要素をコーディングしないという前記決定に少なくとも部分的に基づいて、前記ビデオデータをコーディングするための手段と、
を備える、デバイス。 - 非0変換係数を備える前記変換ブロックの少なくとも1つの係数グループが前記変換ブロックの前記最低周波数領域の外側にあると決定するための前記手段は、
変換係数を備える前記複数の係数グループのうちの1つの係数グループについて、前記係数グループのためのコード化サブブロックフラグが設定されていると決定するための手段と、
前記係数グループのための前記コード化サブブロックフラグが設定されていると決定したことに応答して、前記係数グループの位置がx軸またはy軸のうちの少なくとも1つにおいて3よりも大きいと決定するための手段と、
前記係数グループの前記位置が前記x軸または前記y軸のうちの少なくとも1つにおいて3よりも大きいと決定したことに応答して、前記ビデオデータの前記変換ブロックについて、非0変換係数を備える前記変換ブロックの少なくとも1つの係数グループが前記変換ブロックの前記最低周波数領域の外側にあると決定するための手段と、
をさらに備える、請求項24に記載のデバイス。 - ビデオデータの第2の変換ブロックについて、前記第2の変換ブロックの第2の複数の係数グループのうちの、非0変換係数を備える係数グループが前記第2の変換ブロックの最低周波数領域の外側にないと決定するための手段と、ここにおいて、前記第2の複数の係数グループは各々、複数の変換係数を備え、
係数グループが前記第2の変換ブロックの前記最低周波数領域の外側にないという前記決定に少なくとも部分的に基づいて、前記第2の変換ブロックのための前記MTSを示す第2のシンタックス要素をコーディングすることを決定するための手段と、
前記第2の変換ブロックのための前記MTSを示す前記第2のシンタックス要素をコーディングするという前記決定に少なくとも部分的に基づいて前記ビデオデータをコーディングするための手段と、
をさらに備える、請求項24に記載のデバイス。 - 非0係数グループを備える係数グループが前記第2の変換ブロックの前記最低周波数領域の外側にないと決定するための前記手段は、
前記第2の変換ブロックの前記複数の係数グループから、コード化サブブロックフラグが前記1つまたは複数の係数グループの各々について設定されている1つまたは複数の係数グループを決定するための手段と、
前記1つまたは複数の係数グループの各々の位置がx軸とy軸の両方において3よりも大きくないと決定するための手段と、
前記1つまたは複数の係数グループの各々の前記位置が前記x軸と前記y軸の両方において3よりも大きくないと決定したことに応答して、前記ビデオデータの前記第2の変換ブロックについて、前記第2の変換ブロックの前記第2の複数の係数グループのうちの、非0変換係数を備える係数グループが前記第2の変換ブロックの最低周波数領域の外側にないと決定するための手段と、
を備える、請求項26に記載のデバイス。 - 前記シンタックス要素をコーディングしないと決定するための前記手段は、前記シンタックス要素を復号しないと決定するための手段を備え、
前記シンタックス要素をコーディングしないという前記決定に基づいて前記ビデオデータをコーディングするための前記手段は、前記シンタックス要素を復号することなく前記ビデオデータを復号するための手段を備える、
請求項24に記載のデバイス。 - 前記ビデオデータを復号するための前記手段は、
前記シンタックス要素を復号しないと決定したことに応答して、前記シンタックス要素の値を推測するための手段
をさらに備える、請求項28に記載のデバイス。 - 命令を記憶したコンピュータ可読記憶媒体であって、前記命令は、実行されたとき、1つまたは複数のプロセッサに、
ビデオデータの変換ブロックについて、非0変換係数を備える前記変換ブロックの少なくとも1つの係数グループが前記変換ブロックの最低周波数領域の外側にあると決定することと、ここにおいて、前記少なくとも1つの係数グループは、各々が変換係数を備える複数の係数グループのうちの1つであり、
前記少なくとも1つの係数グループが前記変換ブロックの前記最低周波数領域の外側にあるという前記決定に少なくとも部分的に基づいて、前記変換ブロックのためのマルチプル変換選択(MTS)を示すシンタックス要素をコーディングしないと決定することと、
前記変換ブロックのための前記マルチプル変換選択を示す前記シンタックス要素をコーディングしないという前記決定に少なくとも部分的に基づいて、前記ビデオデータをコーディングすることと、
を行わせる、コンピュータ可読記憶媒体。
Applications Claiming Priority (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962951975P | 2019-12-20 | 2019-12-20 | |
US62/951,975 | 2019-12-20 | ||
US17/125,159 US20210195192A1 (en) | 2019-12-20 | 2020-12-17 | Coefficient group based restriction on multiple transform selection signaling in video coding |
US17/125,159 | 2020-12-17 | ||
PCT/US2020/065963 WO2021127402A1 (en) | 2019-12-20 | 2020-12-18 | Coefficient group based restriction on multiple transform selection signaling in video coding |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2023507099A true JP2023507099A (ja) | 2023-02-21 |
Family
ID=76438662
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2022535903A Pending JP2023507099A (ja) | 2019-12-20 | 2020-12-18 | ビデオコーディングにおけるマルチプル変換選択シグナリングに対する係数グループベースの制限 |
Country Status (11)
Country | Link |
---|---|
US (1) | US20210195192A1 (ja) |
EP (1) | EP4078976A1 (ja) |
JP (1) | JP2023507099A (ja) |
KR (1) | KR20220110757A (ja) |
CN (1) | CN114868397A (ja) |
AU (1) | AU2020405164A1 (ja) |
BR (1) | BR112022011535A2 (ja) |
CA (1) | CA3162707A1 (ja) |
MX (1) | MX2022007316A (ja) |
TW (1) | TW202131686A (ja) |
WO (1) | WO2021127402A1 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11785254B2 (en) * | 2020-05-29 | 2023-10-10 | Tencent America LLC | Implicit mode dependent primary transforms |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10306229B2 (en) | 2015-01-26 | 2019-05-28 | Qualcomm Incorporated | Enhanced multiple transforms for prediction residual |
US10972733B2 (en) | 2016-07-15 | 2021-04-06 | Qualcomm Incorporated | Look-up table for enhanced multiple transform |
CN113950829B (zh) * | 2019-06-06 | 2025-01-10 | 北京字节跳动网络技术有限公司 | 简化的变换编解码工具 |
-
2020
- 2020-12-17 US US17/125,159 patent/US20210195192A1/en not_active Abandoned
- 2020-12-18 JP JP2022535903A patent/JP2023507099A/ja active Pending
- 2020-12-18 BR BR112022011535A patent/BR112022011535A2/pt not_active Application Discontinuation
- 2020-12-18 TW TW109144950A patent/TW202131686A/zh unknown
- 2020-12-18 AU AU2020405164A patent/AU2020405164A1/en not_active Abandoned
- 2020-12-18 CA CA3162707A patent/CA3162707A1/en active Pending
- 2020-12-18 EP EP20842632.0A patent/EP4078976A1/en not_active Withdrawn
- 2020-12-18 KR KR1020227019835A patent/KR20220110757A/ko unknown
- 2020-12-18 CN CN202080086604.6A patent/CN114868397A/zh active Pending
- 2020-12-18 WO PCT/US2020/065963 patent/WO2021127402A1/en unknown
- 2020-12-18 MX MX2022007316A patent/MX2022007316A/es unknown
Also Published As
Publication number | Publication date |
---|---|
EP4078976A1 (en) | 2022-10-26 |
US20210195192A1 (en) | 2021-06-24 |
MX2022007316A (es) | 2022-07-13 |
BR112022011535A2 (pt) | 2022-08-30 |
AU2020405164A1 (en) | 2022-06-16 |
WO2021127402A1 (en) | 2021-06-24 |
TW202131686A (zh) | 2021-08-16 |
CN114868397A (zh) | 2022-08-05 |
KR20220110757A (ko) | 2022-08-09 |
CA3162707A1 (en) | 2021-06-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11032572B2 (en) | Low-frequency non-separable transform signaling based on zero-out patterns for video coding | |
US11206400B2 (en) | Low-frequency non-separable transform (LFNST) simplifications | |
CN113940069A (zh) | 用于视频译码中的低频不可分离变换的变换和最后有效系数位置信令 | |
US11539982B2 (en) | Merge estimation region for multi-type-tree block structure | |
JP2023544705A (ja) | ビデオコーディング中の、ジョイント成分ニューラルネットワークベースのフィルタ処理 | |
JP2023040020A (ja) | ビデオコーディングにおける係数領域ブロック差分パルスコード変調 | |
JP2022539316A (ja) | ビデオコーディングにおける簡略化されたイントラクロマモードコーディング | |
US11368715B2 (en) | Block-based delta pulse code modulation for video coding | |
US11973983B2 (en) | Signaling coding scheme for residual values in transform skip for video coding | |
JP2023517467A (ja) | ビデオ圧縮のための低複雑度適応量子化 | |
JP2022538225A (ja) | ビデオコーディングにおけるクロマデルタ量子化パラメータ | |
US11706425B2 (en) | Multiple transform set signaling for video coding | |
US12184853B2 (en) | Residual coding selection and low-level signaling based on quantization parameter | |
US20210092376A1 (en) | Mode dependent block partition for lossless and mixed lossless and lossy video coding | |
JP2022537155A (ja) | ビデオコーディングにおけるdcイントラモード予測 | |
US11863752B2 (en) | Most probable modes for intra prediction for video coding | |
US11729381B2 (en) | Deblocking filter parameter signaling | |
JP2023507099A (ja) | ビデオコーディングにおけるマルチプル変換選択シグナリングに対する係数グループベースの制限 | |
JP2024501138A (ja) | ビデオコーディングのイントラ予測のための最確モード | |
JP2023517429A (ja) | ビデオコーディングのためのモノクロームパレットモード | |
WO2021061968A1 (en) | Parameter set signaling for video coding | |
WO2020257557A1 (en) | Maximum allowed block size for bdpcm mode | |
TWI871345B (zh) | 調色板及預測模式信令發送 |