JP7455840B2 - ビデオコーディングのためのツリーベース変換ユニット(tu)区分 - Google Patents

ビデオコーディングのためのツリーベース変換ユニット(tu)区分 Download PDF

Info

Publication number
JP7455840B2
JP7455840B2 JP2021533599A JP2021533599A JP7455840B2 JP 7455840 B2 JP7455840 B2 JP 7455840B2 JP 2021533599 A JP2021533599 A JP 2021533599A JP 2021533599 A JP2021533599 A JP 2021533599A JP 7455840 B2 JP7455840 B2 JP 7455840B2
Authority
JP
Japan
Prior art keywords
residual
block
transform
partitioned
partition
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2021533599A
Other languages
English (en)
Other versions
JPWO2020131949A5 (ja
JP2022517908A (ja
Inventor
エギルメス、ヒルミ・エネス
セレジン、バディム
サイド、アミール
カルチェビチ、マルタ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Qualcomm Inc
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of JP2022517908A publication Critical patent/JP2022517908A/ja
Publication of JPWO2020131949A5 publication Critical patent/JPWO2020131949A5/ja
Application granted granted Critical
Publication of JP7455840B2 publication Critical patent/JP7455840B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/96Tree coding, e.g. quad-tree coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/70Methods 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

Landscapes

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

Description

[0001] 本出願は、それらの各々が全体として参照により本明細書に組み込まれる、2019年12月16日に出願された米国出願第16/715,274号と、2018年12月19日に出願された米国仮出願第62/782,292号との利益を主張する。
[0002] 本開示は、ビデオ符号化およびビデオ復号に関する。
[0003] デジタルビデオ能力は、デジタルテレビジョン、デジタルダイレクトブロードキャストシステム、ワイヤレスブロードキャストシステム、携帯情報端末(PDA)、ラップトップまたはデスクトップコンピュータ、タブレットコンピュータ、電子ブックリーダー、デジタルカメラ、デジタル記録デバイス、デジタルメディアプレーヤ、ビデオゲームデバイス、ビデオゲームコンソール、セルラー電話または衛星無線電話、いわゆる「スマートフォン」、ビデオ遠隔会議デバイス、ビデオストリーミングデバイスなどを含む、広範囲のデバイスに組み込まれ得る。デジタルビデオデバイスは、MPEG-2、MPEG-4、ITU-T H.263、ITU-T H.264/MPEG-4,Part10,アドバンストビデオコーディング(AVC:Advanced Video Coding)、ITU-T H.265/高効率ビデオコーディング(HEVC:High Efficiency Video Coding)によって定義された規格、およびそのような規格の拡張に記載されているビデオコーディング技法など、ビデオコーディング技法を実施する。ビデオデバイスは、そのようなビデオコーディング技法を実施することによって、デジタルビデオ情報をより効率的に送信、受信、符号化、復号、および/または記憶し得る。
[0004] ビデオコーディング技法は、ビデオシーケンスに固有の冗長性を低減または除去するための空間(ピクチャ内)予測および/または時間(ピクチャ間)予測を含む。ブロックベースのビデオコーディングでは、ビデオスライス(例えば、ビデオピクチャまたはビデオピクチャの一部分)が、コーディングツリーユニット(CTU:coding tree unit)、コーディングユニット(CU:coding unit)および/またはコーディングノードと呼ばれることもある、ビデオブロックに区分され得る。ピクチャのイントラコード化(I)スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間予測を使用して符号化される。ピクチャのインターコード化(PまたはB)スライス中のビデオブロックは、同じピクチャ中の隣接ブロック中の参照サンプルに対する空間予測、または他の参照ピクチャ中の参照サンプルに対する時間予測を使用し得る。ピクチャはフレームと呼ばれることがあり、参照ピクチャは参照フレームと呼ばれることがある。
[0005] 概して、本開示では、現代のビデオ圧縮規格の要素である、変換コーディングに関係する技法について説明する。例示的な技法は、変換ユニット(TU:transform unit)などの残差ブロックのよりフレキシブルな区分を提供し得、コーディング利得を改善し得る。
[0006] 一例では、ビデオデータを復号する方法は、ビデオデータの符号化表現を備えるビットストリーム中で、残差ブロックが区分されるかどうかを示す情報と、区分される残差ブロックに基づいて残差ブロックの区分ツリータイプを示す情報とを受信することを含み、ここにおいて、残差ブロックは、現在ブロックと予測ブロックとの間の差分を示す。本方法は、残差ブロックが区分されるという受信された情報と、残差ブロックの区分ツリータイプとに基づいて、残差ブロックが区分ツリータイプに従って区分される複数の残差サブブロックを決定することをさらに含む。本方法は、区分ツリータイプに従って複数の残差サブブロックに区分される残差ブロックに少なくとも部分的に基づいて現在ブロックの残差データを生成することをさらに含む。本方法は、残差データを使用して現在ブロックを復号することをさらに含む。
[0007] 別の例では、ビデオデータを復号するためのデバイスが、ビデオデータを記憶するように構成されたメモリを含む。本デバイスは、回路中に実装されたプロセッサをさらに含み、プロセッサは、ビデオデータの符号化表現を備えるビットストリーム中で、残差ブロックが区分されるかどうかを示す情報と、区分される残差ブロックに基づいて残差ブロックの区分ツリータイプを示す情報とを受信することと、ここにおいて、残差ブロックが、現在ブロックと予測ブロックとの間の差分を示す、残差ブロックが区分されるという受信された情報と、残差ブロックの区分ツリータイプとに基づいて、残差ブロックが区分ツリータイプに従って区分される複数の残差サブブロックを決定することと、区分ツリータイプに従って複数の残差サブブロックに区分される残差ブロックに少なくとも部分的に基づいて現在ブロックの残差データを生成することと、残差データを使用して現在ブロックを復号することとを行うように構成される。
[0008] 別の例では、命令を記憶したコンピュータ可読記憶媒体であって、命令は、実行されたとき、プロセッサに、ビデオデータの符号化表現を備えるビットストリーム中で、残差ブロックが区分されるかどうかを示す情報と、区分される残差ブロックに基づいて残差ブロックの区分ツリータイプを示す情報とを受信することと、ここにおいて、残差ブロックが、現在ブロックと予測ブロックとの間の差分を示す、残差ブロックが区分されるという受信された情報と、残差ブロックの区分ツリータイプとに基づいて、残差ブロックが区分ツリータイプに従って区分される複数の残差サブブロックを決定することと、区分ツリータイプに従って複数の残差サブブロックに区分される残差ブロックに少なくとも部分的に基づいて現在ブロックの残差データを生成することと、残差データを使用して現在ブロックを復号することとを行わせる、コンピュータ可読記憶媒体。
[0009] 別の例では、ビデオデータを復号するためのデバイスは、ビデオデータの符号化表現を備えるビットストリーム中で、残差ブロックが区分されるかどうかを示す情報と、区分される残差ブロックに基づいて残差ブロックの区分ツリータイプを示す情報とを受信するための手段を含み、ここにおいて、残差ブロックは、現在ブロックと予測ブロックとの間の差分を示す。本デバイスは、残差ブロックが区分されるという受信された情報と、残差ブロックの区分ツリータイプとに基づいて、残差ブロックが区分ツリータイプに従って区分される複数の残差サブブロックを決定するための手段をさらに含む。本デバイスは、区分ツリータイプに従って複数の残差サブブロックに区分される残差ブロックに少なくとも部分的に基づいて現在ブロックの残差データを生成するための手段をさらに含む。本デバイスは、残差データを使用して現在ブロックを復号するための手段をさらに含む。
[0010] 別の例では、ビデオデータを符号化する方法は、ビデオデータの現在ブロックの残差ブロックが区分ツリータイプに従って複数の残差サブブロックに区分されると決定することを含む。本方法は、残差ブロックが区分されるかどうかを示す情報をシグナリングし、区分される残差ブロックの区分ツリータイプを示す情報をさらにシグナリングするビデオデータの符号化表現としてビットストリームを符号化することをさらに含む。
[0011] 別の例では、ビデオデータを符号化するためのデバイスが、ビデオデータを記憶するように構成されたメモリを含む。本デバイスは、回路中に実装されたプロセッサをさらに含み、プロセッサは、ビデオデータの現在ブロックの残差ブロックが区分ツリータイプに従って複数の残差サブブロックに区分されると決定することと、残差ブロックが区分されるかどうかを示す情報をシグナリングし、区分される残差ブロックの区分ツリータイプを示す情報をさらにシグナリングするビデオデータの符号化表現としてビットストリームを符号化することとを行うように構成される。
[0012] 1つまたは複数の例の詳細が添付の図面および以下の説明に記載される。他の特徴、目的、および利点は、説明、図面、および特許請求の範囲から明らかになろう。
[0013] 本開示の技法を行い得る例示的なビデオ符号化および復号システムを示すブロック図。 [0014] 例示的なクワッドツリーバイナリツリー(QTBT:quadtree binary tree)構造を示す概念図。 対応するコーディングツリーユニット(CTU:coding tree unit)を示す概念図。 [0015] HEVCの残差クワッドツリーに基づく例示的な変換方式を示す概念図。 HEVCの残差クワッドツリーに基づく例示的な変換方式を示す概念図。 [0016] 適応変換選択を用いたハイブリッドビデオ符号化のための例示的なシステムを示すブロック図。 [0017] 個別の変換実施形態として水平変換を示す概念図。 個別の変換実施形態として垂直変換を示す概念図。 [0018] 変換シグナリングを示す概念図。 [0019] ブロック上のそれぞれのツリーベース区分を示す概念図。 [0020] クワッドツリーベース区分と、バイナリツリー区分と、トリプルツリー区分との例を示す概念図。 [0021] 本開示の技法を行い得る例示的なビデオエンコーダを示すブロック図。 [0022] 本開示の技法を行い得る例示的なビデオデコーダを示すブロック図。 [0023] 現在ブロックを符号化するための例示的な方法を示すフローチャート。 ビデオデータの現在ブロックを復号するための例示的な方法を示すフローチャート。 [0024] 区分ツリータイプに従って区分される残差ブロックを有するデータの現在ブロックを復号するための例示的な方法を示すフローチャート。 [0025] 区分ツリータイプに従って区分される残差ブロックを有するデータの現在ブロックを符号化するための例示的な方法を示すフローチャート。
詳細な説明
[0026] 本開示は変換コーディングに関する。変換コーディングでは、ビデオエンコーダのために、残差データのブロック(例えば、符号化されている現在ブロックと予測ブロックとの間の残差)がある。残差データは、空間ドメインから周波数ドメインに変換されて、変換係数の変換係数ブロックが生じる。ビデオデコーダは、変換係数ブロック(または場合によっては量子化の後の変換係数ブロック)を受信し、逆量子化(必要な場合)と逆変換とを行って、空間ドメインの値に戻すように残差データを再構築する。
[0027] 変換ユニット(TU)は、ルーマサンプルの変換ブロックと、対応するクロマサンプルの変換ブロックとを含む。変換ブロックは、復号プロセスにおける変換から生じるサンプルの矩形M×Nブロックであり得、変換は、変換係数のブロックが空間ドメイン値のブロックにコンバートされる復号プロセスの一部であり得る。従って、残差ブロックはTUの一例であり得る。残差ブロックは、サンプルドメインから周波数ドメインに変換された残差データであり得、複数の変換係数を含む。変換コーディングは、M.Wien、High Efficiency Video Coding: Coding Tools and Specification、Springer-Verlag、ベルリン、2015年により詳細に記載されている。
[0028] より詳細に説明されるように、本開示において説明される1つまたは複数の例では、適応多重(またはマルチコア)変換(AMT:adaptive multiple transform)または多重変換セット(MTS:multiple transform set)と呼ばれる変換方式を用いた変換コーディングのためにいくつかのツリーベース区分設計が使用され得る。AMTとMTSとは、ビデオコーディング規格間の名称変更により、AMTは今はMTSと呼ばれるので、同じ変換ツールを指し得る。
[0029] 例示的な変換方式は、米国特許公開第2016/0219290号並びにX.Zhao、S.Lee、J.Chen、L.Zhang、X.Li、Y.Chen、M.Karczewicz、およびH.Liu、Enhanced Multiple Transforms for Prediction Residuals、2015年1月に、また米国特許公開第2018/0020218号並びにX.Zhao、V.Seregin、M.Karczewicz、およびJ.Chen、Improved Look-up Table for Enhanced Multiple Transform、2016年7月に、また2019年5月30日に出願された米国出願第16/426,749号並びにH.E.Egilmez、Y.-H.Chao、A.Said、V.Seregin、およびM.Karczewicz、Adaptive multiple transforms with reduced signaling overheadに記載されている。
[0030] より詳細に説明されるように、いくつかの例では、残差ブロックは、複数の残差サブブロック(例えば、サブTU)に区分され得る。本開示では、残差ブロックが残差サブブロックに区分されるとビデオエンコーダがシグナリングし得、ビデオデコーダが決定し得る仕方と、残差ブロックが区分される様式(例えば、区分タイプ)との例示的な技法について説明する。さらに、サンプルドメイン中の残差データを周波数ドメインに変換するためにビデオエンコーダが利用し得る複数の変換タイプと、周波数ドメインデータをサンプルドメイン中の残差データに戻すように変換し(例えば、逆変換する)ためにビデオデコーダが利用し得る複数の変換タイプとがあり得る。本開示では、変換タイプを決定する例示的な仕方について説明する。
[0031] 図1は、本開示の技法を行い得る例示的なビデオ符号化および復号システム100を示すブロック図である。本開示の技法は、概して、ビデオデータをコーディング(符号化および/または復号)することを対象とする。概して、ビデオデータは、ビデオを処理するための何らかのデータを含む。従って、ビデオデータは、生の符号化されていないビデオ、符号化されたビデオ、復号された(例えば、再構築された)ビデオ、およびシグナリングデータなどのビデオメタデータを含み得る。
[0032] 図1に示されるように、システム100は、この例では、宛先デバイス116によって復号および表示されるべき符号化ビデオデータを提供するソースデバイス102を含む。特に、ソースデバイス102は、コンピュータ可読媒体110を介して宛先デバイス116にビデオデータを提供する。ソースデバイス102と宛先デバイス116とは、デスクトップコンピュータ、ノートブック(すなわち、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、スマートフォンなどの電話ハンドセット、テレビジョン、カメラ、ディスプレイデバイス、デジタルメディアプレーヤ、ビデオゲームコンソール、ビデオストリーミングデバイスなどを含む、広範囲のデバイスのいずれかを備え得る。いくつかの場合には、ソースデバイス102と宛先デバイス116とは、ワイヤレス通信のために装備され得、従って、ワイヤレス通信デバイスと呼ばれることがある。
[0033] 図1の例では、ソースデバイス102は、ビデオソース104と、メモリ106と、ビデオエンコーダ200と、出力インターフェース108とを含む。宛先デバイス116は、入力インターフェース122と、ビデオデコーダ300と、メモリ120と、ディスプレイデバイス118とを含む。本開示によれば、ソースデバイス102のビデオエンコーダ200と、宛先デバイス116のビデオデコーダ300とは、ビデオコーディングのためのツリーベース変換ユニット区分のための技法を適用するように構成され得る。従って、ソースデバイス102はビデオ符号化デバイスの例を表し、宛先デバイス116はビデオ復号デバイスの例を表す。他の例では、ソースデバイスと宛先デバイスとは、他の構成要素または配置を含み得る。例えば、ソースデバイス102は、外部カメラなど、外部ビデオソースからビデオデータを受信し得る。同様に、宛先デバイス116は、一体型ディスプレイデバイスを含むのではなく、外部ディスプレイデバイスとインターフェースし得る。
[0034] 図1に示されるシステム100は一例にすぎない。概して、どんなデジタルビデオ符号化および/または復号デバイスも、ビデオコーディングのためのツリーベース変換ユニット区分のための技法を行い得る。ソースデバイス102と宛先デバイス116とは、ソースデバイス102が宛先デバイス116への送信のためにコード化ビデオデータを生成するようなコーディングデバイスの例にすぎない。本開示では、「コーディング」デバイスを、データのコーディング(符号化および/または復号)を行うデバイスとして参照する。従って、ビデオエンコーダ200とビデオデコーダ300とは、コーディングデバイス、特に、それぞれビデオエンコーダとビデオデコーダとの例を表す。いくつかの例では、ソースデバイス102と宛先デバイス116とは、ソースデバイス102と宛先デバイス116との各々がビデオ符号化および復号構成要素を含むように、実質的に対称的に動作し得る。従って、システム100は、例えば、ビデオストリーミング、ビデオ再生、ビデオブロードキャスティング、またはビデオテレフォニーのための、ソースデバイス102と宛先デバイス116との間の一方向または双方向ビデオ送信をサポートし得る。
[0035] 概して、ビデオソース104は、ビデオデータ(すなわち、生の符号化されていないビデオデータ)のソースを表し、ビデオデータの連続的な一連のピクチャ(「フレーム」とも呼ばれる)をビデオエンコーダ200に提供し、ビデオエンコーダ200は、ピクチャのためにデータを符号化する。ソースデバイス102のビデオソース104は、ビデオカメラ、以前にキャプチャされた生のビデオを含んでいるビデオアーカイブ、および/またはビデオコンテンツプロバイダからビデオを受信するためのビデオフィードインターフェースなど、ビデオキャプチャデバイスを含み得る。さらなる代替として、ビデオソース104は、ソースビデオとして、コンピュータグラフィックスベースのデータ、またはライブビデオとアーカイブビデオとコンピュータ生成ビデオとの組合せを生成し得る。各場合において、ビデオエンコーダ200は、キャプチャされたビデオデータ、プリキャプチャされたビデオデータ、またはコンピュータ生成されたビデオデータを符号化する。ビデオエンコーダ200は、ピクチャを、(「表示順序」と呼ばれることがある)受信順序から、コーディングのためのコーディング順序に並べ替え得る。ビデオエンコーダ200は、符号化ビデオデータを含むビットストリームを生成し得る。ソースデバイス102は、次いで、例えば、宛先デバイス116の入力インターフェース122による受信および/または取出しのために、出力インターフェース108を介して符号化ビデオデータをコンピュータ可読媒体110上に出力し得る。
[0036] ソースデバイス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つまたは複数のビデオバッファとして割り振られ得る。
[0037] コンピュータ可読媒体110は、ソースデバイス102から宛先デバイス116に符号化ビデオデータを移送することが可能な任意のタイプの媒体またはデバイスを表し得る。一例では、コンピュータ可読媒体110は、ソースデバイス102が、例えば、無線周波数ネットワークまたはコンピュータベースのネットワークを介して、符号化ビデオデータを宛先デバイス116にリアルタイムで直接送信することを可能にするための通信媒体を表す。出力インターフェース108は、符号化ビデオデータを含む送信信号を変調し得、入力インターフェース122は、ワイヤレス通信プロトコルなどの通信規格に従って、受信された送信信号を復調し得る。通信媒体は、無線周波数(RF)スペクトルあるいは1つまたは複数の物理伝送線路など、任意のワイヤレスまたはワイヤード通信媒体を備え得る。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、またはインターネットなどのグローバルネットワークなど、パケットベースのネットワークの一部を形成し得る。通信媒体は、ルータ、スイッチ、基地局、またはソースデバイス102から宛先デバイス116への通信を容易にするために有用であり得る任意の他の機器を含み得る。
[0038] いくつかの例では、ソースデバイス102は、出力インターフェース108から記憶デバイス112に符号化データを出力し得る。同様に、宛先デバイス116は、入力インターフェース122を介して記憶デバイス112から符号化データにアクセスし得る。記憶デバイス112は、ハードドライブ、Blu-ray(登録商標)ディスク、DVD、CD-ROM、フラッシュメモリ、揮発性または不揮発性メモリ、あるいは符号化ビデオデータを記憶するための任意の他の好適なデジタル記憶媒体など、様々な分散されたまたはローカルにアクセスされるデータ記憶媒体のいずれかを含み得る。
[0039] いくつかの例では、ソースデバイス102は、ソースデバイス102によって生成された符号化ビデオを記憶し得るファイルサーバ114または別の中間記憶デバイスに符号化ビデオデータを出力し得る。宛先デバイス116は、ストリーミングまたはダウンロードを介して、ファイルサーバ114から、記憶されたビデオデータにアクセスし得る。ファイルサーバ114は、符号化ビデオデータを記憶し、その符号化ビデオデータを宛先デバイス116に送信することが可能な任意のタイプのサーバデバイスであり得る。ファイルサーバ114は、(例えば、ウェブサイト用の)ウェブサーバ、ファイル転送プロトコル(FTP)サーバ、コンテンツ配信ネットワークデバイス、またはネットワーク接続ストレージ(NAS)デバイスを表し得る。宛先デバイス116は、インターネット接続を含む、任意の標準データ接続を通してファイルサーバ114から符号化ビデオデータにアクセスし得る。これは、ファイルサーバ114に記憶された符号化ビデオデータにアクセスするのに好適であるワイヤレスチャネル(例えば、Wi-Fi(登録商標)接続)、ワイヤード接続(例えば、デジタル加入者線(DSL)、ケーブルモデムなど)、またはその両方の組合せを含み得る。ファイルサーバ114と入力インターフェース122とは、ストリーミング送信プロトコル、ダウンロード送信プロトコル、またはそれらの組合せに従って動作するように構成され得る。
[0040] 出力インターフェース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:system-on-a-chip)デバイスを含み得る。例えば、ソースデバイス102は、ビデオエンコーダ200および/または出力インターフェース108に帰属する機能を行うためのSoCデバイスを含み得、宛先デバイス116は、ビデオデコーダ300および/または入力インターフェース122に帰属する機能を行うためのSoCデバイスを含み得る。
[0041] 本開示の技法は、オーバージエアテレビジョン放送、ケーブルテレビジョン送信、衛星テレビジョン送信、動的適応ストリーミングオーバーHTTP(DASH:dynamic adaptive streaming over HTTP)などのインターネットストリーミングビデオ送信、データ記憶媒体上に符号化されたデジタルビデオ、データ記憶媒体に記憶されたデジタルビデオの復号、または他の適用例など、様々なマルチメディア適用例のいずれかをサポートするビデオコーディングに適用され得る。
[0042] 宛先デバイス116の入力インターフェース122は、コンピュータ可読媒体110(例えば、通信媒体、記憶デバイス112、ファイルサーバ114など)から符号化ビデオビットストリームを受信する。符号化ビデオビットストリームは、ビデオブロックまたは他のコード化ユニット(例えば、スライス、ピクチャ、ピクチャのグループ、シーケンスなど)の特性および/または処理を記述する値を有するシンタックス要素など、ビデオデコーダ300によっても使用される、ビデオエンコーダ200によって定義されるシグナリング情報を含み得る。ディスプレイデバイス118は、復号ビデオデータの復号ピクチャをユーザに表示する。ディスプレイデバイス118は、陰極線管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、または別のタイプのディスプレイデバイスなど、様々なディスプレイデバイスのいずれかを表し得る。
[0043] 図1には示されていないが、いくつかの例では、ビデオエンコーダ200とビデオデコーダ300とは各々、オーディオエンコーダおよび/またはオーディオデコーダと統合され得、共通のデータストリーム中にオーディオとビデオの両方を含む多重化ストリームを処理するために、適切なMUX-DEMUXユニット、あるいは他のハードウェアおよび/またはソフトウェアを含み得る。適用可能な場合、MUX-DEMUXユニットは、ITU H.223マルチプレクサプロトコル、またはユーザデータグラムプロトコル(UDP)などの他のプロトコルに準拠し得る。
[0044] ビデオエンコーダ200とビデオデコーダ300とは各々、1つまたは複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリート論理、ソフトウェア、ハードウェア、ファームウェアなど、様々な好適なエンコーダおよび/またはデコーダ回路のいずれか、あるいはそれらの任意の組合せとして実施され得る。本技法が部分的にソフトウェアで実施されるとき、デバイスは、好適な非一時的コンピュータ可読媒体にソフトウェアの命令を記憶し、本開示の技法を行うために1つまたは複数のプロセッサを使用するハードウェアでその命令を実行し得る。ビデオエンコーダ200とビデオデコーダ300との各々は、1つまたは複数のエンコーダまたはデコーダに含まれ得、それらのいずれかが、それぞれのデバイス中の複合エンコーダ/デコーダ(CODEC)の一部として組み込まれ得る。ビデオエンコーダ200および/またはビデオデコーダ300を含むデバイスは、集積回路、マイクロプロセッサ、および/またはセルラー電話機などのワイヤレス通信デバイスを備え得る。
[0045] ビデオエンコーダ200とビデオデコーダ300とは、高効率ビデオコーディング(HEVC)とも呼ばれるITU-T H.265などのビデオコーディング規格、あるいはマルチビューおよび/またはスケーラブルビデオコーディング拡張などのそれの拡張に従って動作し得る。代替的に、ビデオエンコーダ200とビデオデコーダ300とは、共同探査テストモデル(JEM:Joint Exploration Test Model)、または汎用ビデオコーディング(VVC:Versatile Video Coding)とも呼ばれるITU-T H.266など、他のプロプライエタリまたは業界規格に従って動作し得る。VVC規格のドラフトは、Brossら、「Versatile Video Coding (Draft 6)」、ITU-T SG 16 WP 3とISO/IEC JTC 1/SC 29/WG 11とのジョイントビデオエキスパーツチーム(JVET)、第15回会合:ヨーテボリ、SE、2019年7月3~12日、JVET-O2001-vE(以下、「VVCドラフト6」)に記載されている。VVC規格のより最近のドラフトは、Brossら、「Versatile Video Coding (Draft 7)」、ITU-T SG 16 WP 3とISO/IEC JTC 1/SC 29/WG 11とのジョイントビデオエキスパーツチーム(JVET)、第16回会合:ジュネーブ、CH、2019年10月1~11日、JVET-P2001-v9(以下、「VVCドラフト7」)に記載されている。ただし、本開示の技法は、いかなる特定のコーディング規格にも限定されない。
[0046] 概して、ビデオエンコーダ200とビデオデコーダ300とは、ピクチャのブロックベースのコーディングを行い得る。「ブロック」という用語は、処理されるべき(例えば、符号化されるべき、復号されるべき、あるいは符号化および/または復号プロセスにおいて他の方法で使用されるべき)データを含む構造を一般に意味する。例えば、ブロックは、ルミナンスおよび/またはクロミナンスデータのサンプルの2次元行列を含み得る。概して、ビデオエンコーダ200とビデオデコーダ300とは、YUV(例えば、Y、Cb、Cr)フォーマットで表されるビデオデータをコーディングし得る。すなわち、ピクチャのサンプルのために赤色、緑色、および青色(RGB)データをコーディングするのではなく、ビデオエンコーダ200とビデオデコーダ300とは、ルミナンス成分とクロミナンス成分とをコーディングし得、ここで、クロミナンス成分は、赤色相と青色相の両方のクロミナンス成分を含み得る。いくつかの例では、ビデオエンコーダ200は、符号化より前に、受信されたRGBフォーマット付きデータをYUV表現にコンバートし、ビデオデコーダ300は、YUV表現をRGBフォーマットにコンバートする。代替的に、前処理および後処理ユニット(図示されず)が、これらのコンバージョンを行い得る。
[0047] 本開示では、概して、ピクチャのコーディング(例えば、符号化および復号)を、ピクチャのデータを符号化または復号するプロセスを含むように参照し得る。同様に、本開示では、ピクチャのブロックのコーディングを、ブロックのデータを符号化または復号するプロセス、例えば、予測および/または残差コーディングを含むように参照し得る。符号化ビデオビットストリームは、概して、コーディング決定(例えば、コーディングモード)とブロックへのピクチャの区分とを表すシンタックス要素の一連の値を含む。従って、ピクチャまたはブロックをコーディングすることへの言及は、概して、ピクチャまたはブロックを形成しているシンタックス要素の値をコーディングすることとして理解されたい。
[0048] HEVCは、コーディングユニット(CU:coding units)、予測ユニット(PU:prediction units)、および変換ユニット(TU:transform units)を含む、様々なブロックを定義する。HEVCに従って、(ビデオエンコーダ200などの)ビデオコーダは、クワッドツリー構造に従ってコーディングツリーユニット(CTU:coding tree unit)をCUに区分する。すなわち、ビデオコーダは、CTUとCUとを4つの等しい重複しない正方形に区分し、クワッドツリーの各ノードは、0個または4個のいずれかの子ノードを有する。子ノードなしのノードは「リーフノード」と呼ばれることがあり、そのようなリーフノードのCUは、1つまたは複数のPU並びに/あるいは1つまたは複数のTUを含み得る。ビデオコーダは、PUとTUとをさらに区分し得る。例えば、HEVCでは、残差クワッドツリー(RQT:residual quadtree)は、TUの区分を表す。HEVCでは、PUはインター予測データを表すが、TUは残差データを表す。イントラ予測されるCUは、イントラモードインジケーションなどのイントラ予測情報を含む。
[0049] 別の例として、ビデオエンコーダ200とビデオデコーダ300とは、JEMまたはVVCに従って動作するように構成され得る。JEMまたはVVCに従って、(ビデオエンコーダ200などの)ビデオコーダは、ピクチャを複数のコーディングツリーユニット(CTU:coding tree units)に区分する。ビデオエンコーダ200は、クワッドツリーバイナリツリー(QTBT:quadtree-binary tree)構造またはマルチタイプツリー(MTT:Multi-Type Tree)構造など、ツリー構造に従ってCTUを区分し得る。QTBT構造は、HEVCのCUとPUとTUとの間の分離など、複数の区分タイプの概念を除去する。しかしながら、いくつかの例では、TUとCUは別様に区分され得る。すなわち、TUは、CUの形状およびサイズとは異なる形状およびサイズを有する複数のサブTUを含み得る。QTBT構造は、クワッドツリー区分に従って区分される第1のレベル、およびバイナリツリー区分に従って区分される第2のレベルという、2つのレベルを含む。QTBT構造のルートノードはCTUに対応する。バイナリツリーのリーフノードはコーディングユニット(CU:coding units)に対応する。
[0050] MTT区分構造では、ブロックは、クワッドツリー(QT:quadtree)区分と、バイナリツリー(BT:binary tree)区分と、1つまたは複数のタイプのトリプルツリー(TT:triple tree)(ターナリツリー(TT:ternary tree)とも呼ばれる)区分とを使用して区分され得る。トリプルまたはターナリツリー区分は、ブロックが3つのサブブロックに分割される区分である。いくつかの例では、トリプルまたはターナリツリー区分は、中心を通して元のブロックを分けることなしにブロックを3つのサブブロックに分ける。MTTにおける区分タイプ(例えば、QT、BT、およびTT)は、対称的または非対称的であり得る。
[0051] いくつかの例では、ビデオエンコーダ200とビデオデコーダ300とは、ルミナンス成分とクロミナンス成分との各々を表すために単一のQTBTまたはMTT構造を使用し得、他の例では、ビデオエンコーダ200とビデオデコーダ300とは、ルミナンス成分のための1つのQTBT/MTT構造、および両方のクロミナンス成分のための別のQTBT/MTT構造(またはそれぞれのクロミナンス成分のための2つのQTBT/MTT構造)など、2つ以上のQTBTまたはMTT構造を使用し得る。
[0052] ビデオエンコーダ200とビデオデコーダ300とは、HEVCに従うクワッドツリー区分、QTBT区分、MTT区分、または他の区分構造を使用するように構成され得る。説明の目的で、本開示の技法の説明はQTBT区分に関して提示される。しかしながら、本開示の技法は、クワッドツリー区分、または同様に他のタイプの区分を使用するように構成されたビデオコーダにも適用され得ることを理解されたい。
[0053] ブロック(例えば、CTUまたはCU)は、ピクチャ中で様々な仕方でグループ化され得る。一例として、ブリックは、ピクチャ中の特定のタイル内のCTU行の矩形領域を参照し得る。タイルは、ピクチャ中の特定のタイル列と特定のタイル行との内のCTUの矩形領域であり得る。タイル列は、ピクチャの高さに等しい高さと、(例えば、ピクチャパラメータセット中などの)シンタックス要素によって指定された幅とを有するCTUの矩形領域を参照する。タイル行は、(例えば、ピクチャパラメータセット中などの)シンタックス要素によって指定された高さと、ピクチャの幅に等しい幅とを有するCTUの矩形領域を参照する。
[0054] いくつかの例では、タイルは複数のブリックに区分され得、それらの各々は、タイル内に1つまたは複数のCTU行を含み得る。複数のブリックに区分されないタイルもブリックと呼ばれることがある。しかしながら、タイルの真のサブセットであるブリックは、タイルと呼ばれないことがある。
[0055] ピクチャ中のブリックはまた、スライス中に配置され得る。スライスは、もっぱら単一のネットワークアブストラクションレイヤ(NAL:network abstraction layer)ユニット中に含まれていることがあるピクチャの整数個のブリックであり得る。いくつかの例では、スライスは、いくつかの完全なタイル、または1つのタイルの完全なブリックの連続シーケンスのみのいずれかを含む。
[0056] 本開示では、例えば、16×16サンプルまたは16掛ける16のサンプルなど、垂直寸法と水平寸法とに関して、(CUまたは他のビデオブロックなどの)ブロックのサンプル寸法を参照するために「N×N(NxN)」と「N掛けるN(N by N)」とを互換的に使用し得る。一般に、16×16CUは、垂直方向に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] JEMとVVCとのいくつかの例はまた、インター予測モードと考えられ得る、アフィン動き補償モードを提供する。アフィン動き補償モードでは、ビデオエンコーダ200は、ズームインまたはアウト、回転、パースペクティブの動き、あるいは他の変則の動きタイプなど、非並進の動きを表す2つ以上の動きベクトルを決定し得る。
[0060] イントラ予測を行うために、ビデオエンコーダ200は、予測ブロックを生成するようにイントラ予測モードを選択し得る。JEMとVVCとのいくつかの例は、様々な方向性モード、並びに平面モードおよびDCモードを含む、67個のイントラ予測モードを提供する。概して、ビデオエンコーダ200は、現在ブロック(例えば、CUのブロック)のサンプルをそれから予測すべき、現在ブロックに対する隣接サンプルを記述するイントラ予測モードを選択する。そのようなサンプルは、ビデオエンコーダ200がラスタ走査順序で(左から右に、上から下に)CTUとCUとをコーディングすると仮定すると、概して、現在ブロックと同じピクチャ中の現在ブロックの上方、上方および左側、または左側にあり得る。
[0061] ビデオエンコーダ200は、現在ブロックについての予測モードを表すデータを符号化する。例えば、インター予測モードでは、ビデオエンコーダ200は、様々な利用可能なインター予測モードのうちのどれが使用されるか、並びに対応するモードの動き情報を表すデータを符号化し得る。例えば、単方向または双方向インター予測では、ビデオエンコーダ200は、高度動きベクトル予測(AMVP)またはマージモードを使用して動きベクトルを符号化し得る。ビデオエンコーダ200は、アフィン動き補償モードの動きベクトルを符号化するために同様のモードを使用し得る。
[0062] ブロックのイントラ予測またはインター予測などの予測に続いて、ビデオエンコーダ200は、ブロックについて残差データを計算し得る。残差ブロックなどの残差データは、ブロックと、対応する予測モードを使用して形成された、ブロックについての予測ブロックとの間の、サンプルごとの差分を表す。ビデオエンコーダ200は、サンプルドメインではなく変換ドメイン中に変換データを生成するために、残差ブロックに1つまたは複数の変換を適用し得る。残差ブロックへの変換の結果は、変換ドメイン(周波数ドメインとも呼ばれる)中の残差ブロックであり得る。残差ブロックはTUの一例であり、1つまたは複数の例では、TUは、複数のサブTU(例えば、残差サブブロック)にさらに区分され得る。
[0063] 一例として、ビデオエンコーダ200は、離散コサイン変換(DCT:discrete cosine transform)、整数変換、ウェーブレット変換、または概念的に同様の変換を残差ビデオデータに適用し得る。さらに、ビデオエンコーダ200は、モード依存非分離可能2次変換(MDNSST:mode-dependent non-separable secondary transform)、信号依存変換、カルーネンレーベ変換(KLT:Karhunen-Loeve transform)など、第1の変換に続いて2次変換を適用し得る。ビデオエンコーダ200は、1つまたは複数の変換の適用に続いて変換係数を生成する。DCTの使用は、一例として提供され、限定的であると考えられるべきではない。他の変換タイプがあり得、本開示において説明される例は、変換タイプのうちの1つまたは複数を利用することがある。例えば、ビデオエンコーダ200は、サンプルドメインから変換(例えば、周波数)ドメインへの変換のために使用すべき変換タイプを選択するように構成され得、ビデオデコーダ300は、変換ドメインからサンプルドメインに戻す変換(例えば、逆変換)のために使用すべき変換タイプを選択するように構成され得る。いくつかの例では、ビデオエンコーダ200とビデオデコーダ300が同じ変換タイプを選択するように、ビデオエンコーダ200は、様々な基準に基づいて使用すべき変換タイプを選択するように構成され得、ビデオデコーダ300は、そのような変換タイプを推論するように構成され得る。変換タイプを推論することによって、ビデオエンコーダ200は、変換タイプを示す情報を明示的にシグナリングすることが不要であり得、ビデオデコーダ300は、変換タイプを示す情報を受信することが不要であり得る。
[0064] 上述のように、変換係数を生成するための任意の変換に続いて、ビデオエンコーダ200は、変換係数の量子化を行い得る。量子化は、一般に、変換係数を表すために使用されるデータの量をできるだけ低減させるために変換係数が量子化され、さらなる圧縮を実現するプロセスを指す。量子化プロセスを行うことによって、ビデオエンコーダ200は、変換係数の一部または全部に関連するビット深度を低減し得る。例えば、ビデオエンコーダ200は、量子化中にnビット値をmビット値に切り捨て得、ここで、nはmよりも大きい。いくつかの例では、量子化を行うために、ビデオエンコーダ200は、量子化されるべき値のビット単位の右シフトを行い得る。
[0065] 量子化に続いて、ビデオエンコーダ200は、変換係数を走査して、量子化された変換係数を含む2次元行列から1次元ベクトルを生成し得る。走査は、より高いエネルギー(従って、より低い頻度)の変換係数をベクトルの前方に配置し、より低いエネルギー(従って、より高い頻度)の変換係数をベクトルの後方に配置するように設計され得る。いくつかの例では、ビデオエンコーダ200は、あらかじめ定義された走査順序を利用して、量子化された変換係数を走査してシリアル化ベクトルを生成し、次いで、ベクトルの量子化された変換係数をエントロピー符号化し得る。他の例では、ビデオエンコーダ200は適応型走査を行い得る。量子化された変換係数を走査して1次元ベクトルを形成した後に、ビデオエンコーダ200は、例えば、コンテキスト適応型バイナリ算術コーディング(CABAC:context-adaptive binary arithmetic coding)に従って、1次元ベクトルをエントロピー符号化し得る。ビデオエンコーダ200はまた、ビデオデータを復号する際のビデオデコーダ300による使用のために、符号化ビデオデータに関連付けられたメタデータを記述するシンタックス要素の値をエントロピー符号化し得る。
[0066] CABACを行うために、ビデオエンコーダ200は、コンテキストモデル内のコンテキストを、送信されるべきシンボルに割り当て得る。コンテキストは、例えば、シンボルの隣接値が0値であるか否かに関係し得る。確率決定は、シンボルに割り当てられたコンテキストに基づき得る。
[0067] ビデオエンコーダ200は、さらに、ブロックベースのシンタックスデータ、ピクチャベースのシンタックスデータ、およびシーケンスベースのシンタックスデータなどのシンタックスデータを、例えば、ピクチャヘッダ、ブロックヘッダ、スライスヘッダ、あるいはシーケンスパラメータセット(SPS:sequence parameter set)、ピクチャパラメータセット(PPS:picture parameter set)、またはビデオパラメータセット(VPS:video parameter set)などの他のシンタックスデータ中で、ビデオデコーダ300に対して生成し得る。ビデオデコーダ300は、対応するビデオデータをどのように復号すべきかを決定するために、そのようなシンタックスデータを同様に復号し得る。
[0068] このようにして、ビデオエンコーダ200は、符号化ビデオデータ、例えば、ブロック(例えば、CU)へのピクチャの区分並びにブロックの予測および/または残差情報を記述するシンタックス要素を含むビットストリームを生成し得る。最終的に、ビデオデコーダ300は、ビットストリームを受信し、符号化ビデオデータを復号し得る。
[0069] 概して、ビデオデコーダ300は、ビットストリームの符号化ビデオデータを復号するために、ビデオエンコーダ200によって行われたものの逆プロセスを行う。例えば、ビデオデコーダ300は、ビデオエンコーダ200のCABAC符号化プロセスと逆ではあるが、それと実質的に同様の様式でCABACを使用してビットストリームのシンタックス要素の値を復号し得る。シンタックス要素は、CTUのCUを定義するために、CTUへのピクチャの区分情報と、QTBT構造などの対応する区分構造に従う、各CTUの区分とを定義し得る。シンタックス要素は、ビデオデータのブロック(例えば、CU)についての予測および残差情報をさらに定義し得る。
[0070] 残差情報は、例えば、量子化された変換係数によって表され得る。ビデオデコーダ300は、ブロックの残差ブロックを再生するために、ブロックの量子化された変換係数を逆量子化し、逆変換し得る。ビデオデコーダ300は、ブロックの予測ブロックを形成するために、シグナリングされた予測モード(イントラまたはインター予測)と、関係する予測情報(例えば、インター予測のための動き情報)とを使用する。ビデオデコーダ300は、次いで、(サンプルごとに)予測ブロックと残差ブロックとを組み合わせて、元のブロックを再生し得る。ビデオデコーダ300は、ブロックの境界に沿って視覚的アーティファクトを低減するためにデブロッキングプロセスを行うことなど、追加の処理を行い得る。
[0071] 本開示の技法によれば、残差ブロック(例えば、TU)は、複数の残差サブブロック(例えば、サブTU)を形成するように区分され得る。例えば、TUは、(クワッドツリー区分などの)4つの正方形サブTU、(バイナリ区分などの)2つの矩形サブTU、または(ターナリ区分などの)3つの矩形サブTUのうちの1つに区分され得る。別の例は、4つの矩形サブTUに区分されたTUであり得る。さらに、複数の異なる変換タイプ(例えば、異なるタイプの離散コサイン変換(DCT)および離散サイン変換(DST))があり得る。
[0072] 本開示では、残差ブロック(例えば、TU)が区分されるかどうかをビデオエンコーダ200がシグナリングし得、ビデオデコーダ300が決定し得る例示的な仕方と、残差ブロックが区分される(例えば、区分ツリータイプを決定する)様式とについて説明する。また、本開示では、使用すべき変換タイプ(変換カーネルとも呼ばれる)を決定する例示的な仕方について説明する。
[0073] 例えば、ビデオデコーダ300は、ビデオデータの符号化表現を備えるビットストリーム中で、残差ブロックが区分されるかどうかを示す情報と、区分される残差ブロックに基づいて残差ブロックの区分ツリータイプを示す情報とを受信し得、ここにおいて、残差ブロックは、現在ブロックと予測ブロックとの間の差分を示す。ビデオデコーダ300は、残差ブロックが区分されるという受信された情報と、残差ブロックの区分ツリータイプとに基づいて、残差ブロックが区分ツリータイプに従って区分される複数の残差サブブロックを決定し得る。ビデオデコーダ300は、区分ツリータイプに従って複数の残差サブブロックに区分される残差ブロックに少なくとも部分的に基づいて現在ブロックの残差データを生成し得る。ビデオデコーダ300は、残差データを使用して現在ブロックをデコーディング得る。
[0074] 別の例では、ビデオエンコーダ200は、ビデオデータの現在ブロックの残差ブロックが区分ツリータイプに従って複数の残差サブブロックに区分されると決定し得る。ビデオエンコーダ200は、残差ブロックが区分されるかどうかを示す情報をシグナリングし、区分される残差ブロックの区分ツリータイプを示す情報をさらにシグナリングするビデオデータの符号化表現としてビットストリームを符号化し得る。
[0075] 本開示では、概して、シンタックス要素など、ある情報を「シグナリング」することに言及することがある。「シグナリング」という用語は、概して、符号化ビデオデータを復号するために使用されるシンタックス要素および/または他のデータの値の通信を指し得る。すなわち、ビデオエンコーダ200は、ビットストリーム中でシンタックス要素の値をシグナリングし得る。概して、シグナリングは、ビットストリーム中に値を生成することを指す。上述されたように、ソースデバイス102は、実質的にリアルタイムでビットストリームを宛先デバイス116に移送するか、または、宛先デバイス116による後の取出しのためにシンタックス要素を記憶デバイス112に記憶するときに起こり得るようになど、非リアルタイムでビットストリームを宛先デバイス116に移送し得る。
[0076] 図2Aと図2Bとは、例示的なクワッドツリーバイナリツリー(QTBT)構造130と、対応するコーディングツリーユニット(CTU)132とを示す概念図である。実線はクワッドツリー分割を表し、点線はバイナリツリー分割を表す。バイナリツリーの各分割(すなわち、非リーフ)ノードでは、どの分割タイプ(すなわち、水平または垂直)が使用されるかを示すために1つのフラグがシグナリングされ、ここで、この例では、0は水平分割を示し、1は垂直分割を示す。クワッドツリー分割では、クワッドツリーノードが、ブロックを、等しいサイズをもつ4つのサブブロックに水平および垂直に分割するので、分割タイプを示す必要がない。従って、QTBT構造130の領域ツリーレベル(すなわち、実線)についての(分割情報などの)シンタックス要素と、QTBT構造130の予測ツリーレベル(すなわち、破線)についての(分割情報などの)シンタックス要素とを、ビデオエンコーダ200は符号化し得、ビデオデコーダ300は復号し得る。QTBT構造130の端末リーフノードによって表されるCUについての、予測および変換データなどのビデオデータを、ビデオエンコーダ200は符号化し得、ビデオデコーダ300は復号し得る。
[0077] 概して、図2BのCTU132は、第1および第2のレベルにおいてQTBT構造130のノードに対応するブロックのサイズを定義するパラメータに関連付けられ得る。これらのパラメータは、(サンプル中のCTU132のサイズを表す)CTUサイズと、最小クワッドツリーサイズ(最小許容クワッドツリーリーフノードサイズを表すMinQTSize)と、最大バイナリツリーサイズ(最大許容バイナリツリールートノードサイズを表すMaxBTSize)と、最大バイナリツリー深度(最大許容バイナリツリー深度を表すMaxBTDepth)と、最小バイナリツリーサイズ(最小許容バイナリツリーリーフノードサイズを表すMinBTSize)とを含み得る。
[0078] CTUに対応するQTBT構造のルートノードは、QTBT構造の第1のレベルにおいて4つの子ノードを有し得、それらの各々は、クワッドツリー区分に従って区分され得る。すなわち、第1のレベルのノードは、(子ノードを有しない)リーフノードであるか、あるいは4つの子ノードを有する。QTBT構造130の例は、ブランチのために実線を有する親ノードと子ノードとを含むようなノードを表す。第1のレベルのノードが最大許容バイナリツリールートノードサイズ(MaxBTSize)よりも大きくない場合、ノードは、それぞれのバイナリツリーによってさらに区分され得る。1つのノードのバイナリツリー分割は、分割から生じるノードが最小許容バイナリツリーリーフノードサイズ(MinBTSize)または最大許容バイナリツリー深度(MaxBTDepth)に達するまで反復され得る。QTBT構造130の例は、ブランチのために破線を有するようなノードを表す。バイナリツリーリーフノードはコーディングユニット(CU)と呼ばれ、CUは、どんなさらなる区分もない予測(例えば、ピクチャ内またはピクチャ間予測)並びに変換のために使用される。上で論じられたように、CUは「ビデオブロック」または「ブロック」と呼ばれることもある。
[0079] QTBT区分構造の一例では、CTUサイズは、128×128(ルーマサンプルおよび2つの対応する64×64クロマサンプル)として設定され、MinQTSizeは16×16として設定され、MaxBTSizeは64×64として設定され、(幅と高さの両方について)MinBTSizeは4として設定され、MaxBTDepthは4として設定される。クワッドツリー区分は、クワッドツリーリーフノードを生成するために、最初にCTUに適用される。クワッドツリーリーフノードは、16×16(すなわち、MinQTSize)から128×128(すなわち、CTUサイズ)のサイズを有し得る。リーフクワッドツリーノードが128×128である場合、リーフクワッドツリーノードは、サイズがMaxBTSize(すなわち、この例では、64×64)を超えるので、バイナリツリーによってさらに分割されない。そうでない場合、リーフクワッドツリーノードは、バイナリツリーによってさらに区分される。従って、クワッドツリーリーフノードはまた、バイナリツリーのルートノードであり、0としてのバイナリツリー深度を有する。バイナリツリー深度がMaxBTDepth(この例では4)に達したとき、さらなる分割は許可されない。バイナリツリーノードがMinBTSize(この例では4)に等しい幅を有するとき、それは、さらなる水平分割が許可されないことを暗示する。同様に、MinBTSizeに等しい高さを有するバイナリツリーノードは、さらなる垂直分割がそのバイナリツリーノードのために許可されないことを暗示する。上述されたように、バイナリツリーのリーフノードは、CUと呼ばれ、さらなる区分なしに予測および変換に従ってさらに処理される。
[0080] 上述されたように、ビデオエンコーダ200は、サンプルドメインではなく変換ドメイン中に変換データを生成するために(例えば、変換ドメイン中に残差ブロックを生成するために)、残差ブロックに1つまたは複数の変換を適用し得る。以下で、離散サイン変換(DST)および離散コサイン変換(DCT)などの変換の例について説明する。HEVCにおいて使用される変換方式についても説明される。
[0081] 変換は、入力信号の代替表現を導出するプロセスを示す。N点ベクトルx=[x,x,…,xN-1と、所与のベクトルのセット{Φ,Φ,…,ΦM-1}とを仮定すれば、xは、Φ,Φ,…,ΦM-1の線形結合を使用して近似されるかまたは正確に表され得、これは、次のように公式化され得る。
[0082] 上記において、
は、xの近似または等価物であり得る。ベクトルf=[f,f,…,fM-1]は変換係数ベクトルと呼ばれ、{Φ,Φ,…,ΦM-1}は変換基底ベクトルである。
[0083] ビデオコーディングのシナリオでは、変換係数は、ほぼ非相関であり、疎である。例えば、入力ベクトルxのエネルギーは、数個の変換係数だけに圧縮され、残りの大多数の変換係数は一般に0に近くなる。
[0084] ビデオエンコーダ200とビデオデコーダ300とによって使用される変換のための入力データは、異なり得る。例えば、ビデオエンコーダ200では、変換される入力データは、残差の空間ドメイン値を変換係数ブロックの周波数ドメイン値(例えば、係数値)にコンバートすることによって変換係数ブロックを生成するための残差データである。ビデオデコーダ300では、変換される入力データは、変換係数ブロックの周波数ドメイン値を残差の空間ドメイン値にコンバートすることによって残差データを生成するための(例えば、場合によっては逆量子化の後の)変換係数ブロックである。ビデオデコーダ300がビデオエンコーダ200のプロセスの逆を行うので、ビデオデコーダ300によって行われる変換は、逆変換と見なされ得る。平易さのために、本開示では、入力データがビデオエンコーダ200とビデオデコーダ300について異なり、ビデオデコーダ300による変換がビデオエンコーダ200の変換の逆であり得るという理解とともに、入力データの変換について説明する。
[0085] 特定の入力データを仮定すれば、エネルギー圧縮に関する最適な変換は、変換基底ベクトルとして入力データの共分散行列の固有ベクトルを使用する、いわゆるカルーネンレーベ変換(KLT)である。従って、KLTは、データ依存型の変換であり、一般的な数学的公式化を有しない。しかしながら、(例えば、入力データが1次定常マルコフ過程を形成する場合などの)いくつかの仮定の下で、対応するKLTは、実際は、ユニタリー変換の正弦波ファミリーのメンバーであり、これは、2019年5月30日に出願された米国出願第16/426,749号並びにH.E.Egilmez、Y.-H.Chao、A.Said、V.Seregin、およびM.Karczewicz、Adaptive multiple transforms with reduced signaling overheadに紹介されている。ユニタリー変換の正弦波ファミリーは、次のように公式化される変換基底ベクトルを使用して変換を示す。
[0086] 上記において、eは、2.71828にほぼ等しい自然対数の底であり、A、B、およびθは概して複素数であり、mの値に依存する。
[0087] 離散フーリエ、コサイン、サイン、および(1次定常マルコフ過程のための)KLTを含むいくつかのよく知られている変換は、ユニタリー変換のこの正弦波ファミリーのメンバーである。Jain、A.K.、A sinusoidal family of unitary transforms、IEEE Trans. on Pattern Analysis and Machine Intelligence、1、356、1979年によれば、離散コサイン変換(DCT)および離散サイン変換(DST)ファミリーの完全セットは、異なるタイプ(すなわち、A、B、およびθの異なる値)に基づいて合計で16個の変換を含み、DCTとDSTとのこれらの異なるタイプの完全な定義が以下に与えられる。
[0088] 入力N点ベクトルがx=[x,x,…,xN-1として示され、それが、行列を乗算することによってy=[y,y,…,yN-1として示される別のN点変換係数ベクトルに変換されると仮定し、このプロセスは、次の変換公式化のうちの1つに従ってさらに示され得、ここにおいて、kは、両端値を含んで0からN-1にわたる。
DCTタイプI(DCT-1):
DCTタイプII(DCT-2):
[0089] DCTタイプIII(DCT-3):
DCTタイプIV(DCT-4):
DCTタイプV(DCT-5):
DCTタイプVI(DCT-6):
DCTタイプVII(DCT-7):
DCTタイプVIII(DCT-8):
DSTタイプI(DST-1):
DSTタイプII(DST-2):
DSTタイプIII(DST-3):
DSTタイプIV(DST-4):
DSTタイプV(DST-5):
DSTタイプVI(DST-6):
DSTタイプVII(DST-7):
DSTタイプVIII(DST-8):
[0090] 変換タイプは、変換基底関数の数学的公式化によって指定され、例えば、4点DST-VIIと8点DST-VIIは、Nの値関係なく同じ変換タイプ有する。
[0091] 一般性の喪失なしに、全ての上記の変換タイプは、以下の一般化された公式化を使用して表され得る。
[0092] 上記の式中で、Tは、1つのある変換の定義によって指定される変換行列、例えば、DCTタイプI~DCTタイプVIIIまたはDSTタイプI~DSTタイプVIIIであり、Tの行ベクトル、例えば、[Ti,0,Ti,1,Ti,2,…,Ti,N-1]は、i番目の変換基底ベクトルである。N点入力ベクトルに適用される変換は、N点変換と呼ばれる。
[0093] また、1次元入力データxに適用される上記の変換公式化は、以下のような行列乗算形式で表され得ることに留意されたい。
[0094] 上記の式中で、Tは、変換行列を示し、xは、入力データベクトルを示し、yは、出力変換係数ベクトルを示す。
[0095] 以下で、2次元(2D)入力データの変換について説明する。上述の変換は、1次元入力データに適用され得、変換はまた、2次元入力データソースに拡張され得る。例えば、Xが入力M×Nデータアレイであると仮定する。2D入力データに変換を適用するいくつかの方法は、分離可能および非分離可能2D変換を含む。
[0096] 分離可能2D変換は、以下のように公式化される、Xの水平ベクトルおよび垂直ベクトルに連続的に1D変換を適用する。
[0097] 上記の式中で、CおよびRは、それぞれ、所与のM×MおよびN×Nの変換行列を示す。公式化から、Cは、Xの列ベクトルに1D変換を適用し、Rは、Xの行ベクトルに1D変換を適用する。本開示では、簡単のために、左(垂直)変換および右(水平)変換としてCおよびRを示し、それらは両方とも、変換ペアを形成する。Cが、Rに等しく、直交行列である場合がある。そのような場合、分離可能2D変換は、ただ1つの変換行列によって決定される。
[0098] 非分離可能2D変換は、最初に、一例として次の数学的マッピングを行うことによって、Xの全ての要素を単一のベクトル、すなわち、X’に再編成した。
[0099] 次いで、1D変換T’が、以下のようにX’に適用される。
[0100] 上記の式中で、T’は、(M*N)×(M*N)変換行列である。
[0101] ビデオコーディングでは、2D変換が、1D変換と比較してはるかにより少ない演算(加算、乗算)カウントを必要とするので、分離可能2D変換が常に適用される。
[0102] 以下で、HEVCにおいて適用される変換タイプについて説明する。H.264/AVCなどのいくつかのビデオコーデックでは、4点および8点離散コサイン変換(DCT)タイプIIの整数近似値が、イントラ予測残差とインター予測残差の両方に常に適用される。残差サンプルの様々な統計値により良く適応するために、DCTタイプII以外の変換のよりフレキシブルなタイプが、後の世代のビデオコーデックにおいて利用される。例えば、HEVCでは、4点タイプVII離散サイン変換(DST)の整数近似値が、イントラ予測残差のために利用され、これは、S.A.Martucci、「Symmetric convolution and the discrete sine and cosine transforms」、IEEE Trans. Sig. Processing SP-42、1038~1051(1994年)において、DSTタイプVIIが、イントラ予測方向に沿って生成された残差ベクトルについてDCTタイプIIよりも効率的である(例えば、DSTタイプVIIが、水平イントラ予測方向によって生成された行残差ベクトルについてDCTタイプIIよりも効率的である)ことが、理論的に証明され、また実験的に検証されてもいる。HEVCでは、4点DSTタイプVIIの整数近似値は、4×4ルーマイントラ予測残差ブロックにのみ適用される。HEVCにおいて使用される4点DST-VIIが以下に示され、
4×4DST-VII:
[0103] HEVCでは、4×4ルーマイントラ予測残差ブロックでない残差ブロックに対して、以下に示されるように、4点、8点、16点および32点DCTタイプIIの整数近似値も適用される。
4点DCT-II:
8点DCT-II:
16点DCT-II:
32点DCT-II:
[0104] 図3Aと図3Bとは、HEVCの残差クワッドツリーに基づく例示的な変換方式を示す概念図である。HEVCでは、残差ブロックの様々な特性を適応させるために、残差クワッドツリー(RQT:residual quadtree)を使用する変換コーディング構造が適用され、これは、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において入手可能である。
[0105] RQTでは、各ピクチャは、特定のタイルまたはスライスについてラスタ走査順序でコーディングされるコーディングツリーユニット(CTU)に分けられる。CTUは、正方形ブロックであり、クワッドツリー、すなわち、コーディングツリーのルートを表す。CTUサイズは8×8から64×64ルーマサンプルにわたり得るが、一般に64×64が使用される。各CTUは、コーディングユニット(CU)と呼ばれるより小さい正方形ブロックにさらに分割され得る。CTUがCUに再帰的に分割された後、各CUは、予測ユニット(PU)と変換ユニット(TU)とにさらに分けられる。TUへのCUの区分は、クワッドツリー手法に基づいて再帰的に行われ、従って、各CUの残差信号は、ツリー構造、すなわち、残差クワッドツリー(RQT)によってコーディングされる。RQTは、4×4から32×32ルーマサンプルまでのTUサイズを可能にする。
[0106] 図3Aは、CU134が、文字a~jで標示された10個のTUを含む一例と、対応するブロック区分とを示す。図3Bに示されるRQT136の各ノードは、実際は、図3Aに対応する変換ユニット(TU)である。個々のTUは、深度優先トラバーサル(depth-first traversal)による再帰的Z走査に従う、アルファベット順として図3Aに示される深度優先ツリートラバーサル順序で処理される。クワッドツリー手法は、残差信号の変動する空間周波数特性に対する変換の適応を可能にする。
[0107] 一般に、より大きい空間サポートを有するより大きい変換ブロックサイズは、より良い周波数分解能を提供する。しかしながら、より小さい空間サポートを有するより小さい変換ブロックサイズは、より良い空間分解能を提供する。これらの2つ、すなわち、空間分解能と周波数分解能との間のトレードオフは、例えばレートひずみ最適化技法に基づいて、エンコーダモード決定によって選定される。レートひずみ最適化技法は、各コーディングモード(例えば、特定のRQT分割構造)についてコーディングビットと再構成ひずみとの加重和、すなわち、レートひずみコストを計算し、最小レートひずみコストをもつコーディングモードを最良のモードとして選択する。
[0108] ツリーの最大深度、最小許容変換サイズおよび最大許容変換サイズという、3つのパラメータがRQTにおいて定義される。最小変換サイズと最大変換サイズとは、前の段落において述べられたサポートされるブロック変換に対応する、4×4から32×32サンプルまでの範囲内で変動することがある。RQTの最大許容深度はTUの数を制限する。0に等しい最大深度は、各含まれるTBが最大許容変換サイズ、例えば、32×32に達した場合、コーディングブロック(CB)がこれ以上分割され得ないことを意味する。
[0109] 全てのこれらのパラメータは、相互作用し、RQT構造に影響を及ぼす。ルートCBサイズが64×64であり、最大深度が0に等しく、最大変換サイズが32×32に等しい場合について考える。この場合、CBは、さもなければ、それが、許容されない64×64TBにつながることになるので、少なくとも1回区分されなければならない。RQTパラメータ、すなわち、最大RQT深度、最小および最大変換サイズは、シーケンスパラメータセットレベルにおいてビットストリーム中で送信される。RQT深度に関して、イントラコード化CUとインターコード化CUとについて異なる値が指定され、シグナリングされ得る。
[0110] クワッドツリー変換は、イントラ残差ブロックとインター残差ブロックの両方に適用される。一般に、現在の残差クワッドツリー区分の同じサイズのDCT-II変換が残差ブロックに適用される。しかしながら、現在の残差クワッドツリーブロックが4×4であり、イントラ予測によって生成される場合、上記の4×4DST-VII変換が適用される。
[0111] HEVCでは、より大きいサイズの変換、例えば、64×64変換は、主に、それの限られた利益の考慮と、より比較的小さい分解能のビデオに対する比較的高い複雑さとにより、採用されない。
[0112] 図4は、適応変換選択を用いたハイブリッドビデオ符号化のための例示的なシステム140を示すブロック図である。本開示において説明される例示的な技法は、図4に示される典型的な適応変換コーディング方式に適用可能であり、ここで、予測残差のブロックごとに、エンコーダによって異なる変換が選定され得、変換の選定は、シグナリングのためにサイド情報として符号化される。
[0113] この例では、システム140は、ブロック分離ユニット142と、ブロック変換ユニット144と、量子化ユニット146と、ブロック予測ユニット148と、変換バンク150と、エントロピーコーディングユニット152と、フレームバッファ154と、逆変換ユニット156と、逆量子化ユニット158と、残差生成ユニット160と、ブロック再生ユニット162とを含む。
[0114] 概して、ブロック分離ユニット142が、ビデオデータのピクチャ(すなわち、フレーム)からブロックを生成する。ブロック予測ユニット148は、現在ブロックの予測ブロック(p)を生成し、残差生成ユニット160は、現在の(コーディングされていない)ブロックと予測ブロック(p)とから残差ブロック(r)を生成する。フレームバッファ154(復号ピクチャバッファ(DPB)とも呼ばれる)は、現在ピクチャの復号データと、もしあれば、前に復号されたフレームとを記憶する。ブロック予測ユニット148は、フレームバッファ154に記憶された1つまたは複数のピクチャの、前に復号されたデータから予測ブロックを生成し得る。
[0115] ブロック変換ユニット144は、周波数ドメイン中の残差データを表す変換ブロック(T(t)r)を生成するために、空間ドメイン中の残差データを含む残差ブロックに1つまたは複数の変換(T(t))を適用する。変換(T(t))は、例えば、離散コサイン変換(DCT)、離散サイン変換(DST)、水平および/または垂直変換、カルーネンレーベ変換(KLT)、あるいは任意の他のそのような変換であり得る。ブロック変換ユニット144は、変換ブロック(T(t)r)を量子化ユニット146に提供し、変換(t)のインジケーションを変換バンク150とエントロピーコーディングユニット152とに提供する。変換バンク150は、1つまたは複数の変換行列をブロック変換ユニット144と逆変換ユニット156とに提供する。
[0116] 本開示の技法によれば、ブロック変換ユニット144は、以下で論じられるように、クワッドツリー区分、バイナリツリー区分、ターナリツリー区分、または4TU区分のうちの1つなどの区分ツリータイプに従って、現在ブロックの残差ブロックを複数の残差サブブロックに区分し得、ブロック変換ユニットは、残差ブロックの区分のインジケーションをエントロピーコーディングユニット152に提供し得る。
[0117] 量子化ユニット146は、変換ブロックの変換係数を量子化し、量子化された変換ブロックをエントロピーコーディングユニット152と逆量子化ユニット158とに提供する。エントロピーコーディングユニット152は、例えば、変換インジケーション(t)、量子化変換係数、予測情報(例えば、予測モード、およびその予測モードにおいて使用されるべき参照データのロケーションなどの対応する情報、例えば、インター予測のための動き情報)を表すシンタックス要素を符号化する。
[0118] エントロピーコーディングユニット152は、残差ブロックに関して、残差ブロックが区分されるかどうか、および残差ブロックが区分される場合、どのように残差ブロックが区分されるかを表すシンタックス要素をエントロピー符号化するために本開示の技法を使用し得る。エントロピーコーディングユニット152は、残差ブロックに関して、残差ブロックが区分されるかどうかをシグナリングするフラグを符号化し得る。残差ブロックが複数のサブブロックに区分されるとき、エントロピーコーディングユニット152は、残差ブロックの区分タイプを示すインデックス値をも符号化し得る。例えば、ブロック変換ユニット144は、ツリータイプのセットについての情報を含むリストを構築するように構成され得る。ツリータイプのセットは、クワッドツリー区分およびバイナリツリー区分のうちの1つまたは複数を含む。ツリータイプのセットはまた、ターナリツリー区分と4TU区分とを含み得る。異なるツリータイプの例については、以下でより詳細に説明される。ブロック変換ユニット144は、ツリータイプのセットから区分タイプを識別するインデックス値を決定し得、エントロピー符号化ユニット152は、インデックス値を符号化し得る。エントロピーコーディングユニット152はまた、残差ブロックが水平に区分されるか垂直に区分されるか、区分が対称的であるか非対称的であるかなど、残差ブロックについて任意の他の区分情報を符号化し得る。
[0119] 逆量子化ユニット158は、量子化ユニット146から受信された量子化変換係数を逆量子化(すなわち、量子化解除)し得る。逆変換ユニット156は、区分ブロックが区分されるかどうかと、どのようにそれが区分されるかとを示すエントロピーコード化シンタックス要素に基づいて残差ブロックの区分を決定して、残差ブロックの区分を決定し得、逆量子化ユニット158から受信された変換係数に逆変換方式を適用して、現在ブロックの残差ブロック(r’)を再生し得る。ブロック再生ユニット162は、さらに、ブロック予測ユニット148からの予測ブロック(p)を、再生された残差ブロック(r’)と組み合わせて、復号ブロックを形成し、この復号ブロックはフレームバッファ154に記憶される。
[0120] 本開示の技法は、システム140、または対応する復号システムによって行われ得る。概して、本開示の技法は、適応変換コーディング方式に適用可能であり、ここで、予測残差のブロックごとに、異なる変換が、ビデオエンコーダ200によって選択されて、サイド情報としてシグナリングされ、サイド情報を使用してビデオデコーダ300によって決定され得る。サイド情報は、一例であり、限定的であると考えられるべきではない。
[0121] 実際には、計算複雑さを低減するために、ブロック変換は通常、分離可能様式で計算され、すなわち、水平ラインおよび垂直ラインは、図5Aおよび図5Bに示されるように、独立して変換される。図5Aと図5Bとは、個別の変換実施形態として水平変換と垂直変換とを示す概念図である。図5Aは、H個の水平変換170のセットを表し、図5Bは、W個の垂直変換172のセットを表す。特に、残差値の水平ラインと垂直ラインとは、それぞれ、水平変換170と垂直変換172とを使用して独立して変換され得る。
[0122] 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月に採用されている。
[0123] 米国特許公開第2016/0219290号と米国特許公開第2018/0020218号とに記載のAMT設計は、ビデオエンコーダ200がブロックごとに選択するための5つの変換オプションを提示する(この選択は、概してレートひずみメトリックに基づいて行われる)。次いで、選択された変換インデックスは、ビデオデコーダ300にシグナリングされる。
[0124] 図6は、変換シグナリングを示す概念図である。例えば、図6は、米国特許公開第2016/0219290号と米国特許公開第2018/0020218号とにおいて提案されるシグナリングを示し、ここで、デフォルト変換をシグナリングするために1ビットが使用され、4つの変換をシグナリングするために追加の2ビット(すなわち、合計3ビット)が使用される。例えば、5つの変換のうちの1つ(デフォルト変換)は0(すなわち、1ビット)を使用してシグナリングされ、他の4つの変換は3ビット(すなわち、100、101、110、および111)を使用してシグナリングされる。
[0125] 米国特許公開第2016/0219290号と米国特許公開第2018/0020218号とにおいて、デフォルト変換は、垂直と水平の両方にDCT-2を適用する分離可能2D DCTとして選択される。AMTの残りは、米国特許公開第2016/0219290号におけるイントラモード情報に基づいて定義される。米国特許公開第2018/0020218号は、予測モード情報とブロックサイズ情報の両方に基づいてそれらの4つの変換のセットを定義することによって米国特許公開第2016/0219290号の拡張を提案している。
[0126] VVC参照ソフトウェアのバージョン、VTM3.0では、図6に示されるシグナリング方式が使用される。特に、コーディングユニット(CU)ごとに、(i)DCT2が水平方向と垂直方向の両方に使用されるか、それとも(ii)水平または垂直に適用される1D変換を指定するために(AMT/MTSインデックスと呼ばれる)追加の2ビットが使用されるかを決定するために単一のビット(フラグ)が使用される。これらの4つの変換は、所与のブロックの行/列上に適用されるべきDST-7/DCT-8を割り当てることによって定義される。例えば、MTSインデックス=0は、水平と垂直の両方にDST-7を適用する分離可能変換に対応し、MTSインデックス=1は、水平にDCT-8を適用し、垂直にDST-7を適用することに対応する。
[0127] 現在、VVC(および参照ソフトウェアVTM-3.0)では、変換方式は、変換ユニット(TU)のためのフレキシブルな区分方法を有しないことがあり、ここで、変換ブロックサイズは、コーディングユニット(CU)サイズと同じである。実際には、区分により、よりフレキシブルな区分を介して異なる領域中に局所化されたエネルギーを変換が捕捉することが可能になるので、より良い圧縮性能は、(上述された)RQTなどのTU区分技法を使用して達成され得る。本開示は、VVC(VTM-3.0)に現在採用されているAMT/MTS方式に適応する様々なツリーベース区分設計を開示する。
[0128] 本開示の態様では、より大きい圧縮性能が達成されることを可能にする変換ユニット(TU)のためのよりフレキシブルな区分方式について説明し、また、そのような区分のためにどのように変換が選択され得るかについて説明する。例示的な技法は、ビデオエンコーダ200および/またはビデオデコーダ300によって行われ得る。平易さのために、例について、図7と図8とを用いて説明される。例えば、図7は、ブロック上のそれぞれのツリーベース区分を示す概念図である。一方、図8は、クワッドツリーベース区分と、バイナリツリー区分と、トリプルツリー区分との例を示す概念図である。図8に示されるように、トリプルツリーベース区分では、ブロック192Aまたはブロック192Bなどの変換ユニット(TU)は、3つのサブTU(例えば、P0、P1、およびP2)に区分される。クワッドツリー区分では、ブロック192CなどのTUは、正方形である4つのサブTU(例えば、P0、P1、P2、およびP3)に区分される。バイナリツリー区分では、ブロック192D、ブロック192E、ブロック192F、およびまたはブロック192DなどのTUは、2つのサブTU(例えば、P0およびP1)に区分される。
[0129] TUは、1つのレベルにおいてまたは複数のレベル(深度>0)において区分され得る。従って、TUは、複数のサブTUに区分され得、複数のサブTUのうちの1つまたは複数は、それら自体がさらに区分され得る、など。代替的に、TUは区分されなくてよく、TUのブロックサイズは、CUのブロックサイズと同様であり得る(深度=0)。本開示全体にわたって、「残差ブロック」および
「残差サブブロック」という用語が使用される。TUは、残差ブロックの一例であり、複数のサブTUは、複数の残差サブブロックの一例であることと、残差ブロックに関して本明細書で論じられる技法は、TUに等しく適用可能であることとを理解されたい。同様に、TUに関して本明細書で論じられる技法は、残差ブロックにも等しく適用可能である。
[0130] 区分の特定のレベルにおけるTUは、ツリーに基づいて区分され得る。ツリーおよび対応する区分の例は、図7に示される例を含む。例えば、クワッドツリー区分181Aは、クワッドツリー182に基づくブロックの区分であり、ここで、正方形または非正方形TUは、TUを水平と垂直の両方に区分することによって4つのサブTUに区分される。例えば、ブロック190Aは、クワッドツリー区分181Aに従って4つの等しいサイズの正方形ブロックに区分される。4TU区分181Bは、クワッドツリー184に基づくブロックの区分であり、ここで、正方形または非正方形TUは、TUを水平にのみ区分することによってまたはTUを垂直にのみ区分することによって、4つのサブTUに区分される。例えば、ブロック190Bは、4TU区分に従って4つの垂直矩形区分に垂直に区分され、ブロック190Cは、4TU区分に従って4つの水平矩形区分に水平に区分される。そのようなものとして、TUなどの残差ブロックは、クワッドツリー区分181A、4TU区分181Bのうちの少なくとも1つに従って区分され得る。
[0131] バイナリツリー区分181Cは、バイナリツリー186に基づくブロックの区分であり、ここで、正方形または非正方形TUは、TUを水平または垂直のいずれかに区分することによって取得される、2つのサブTUに区分される。ブロック190Dおよび190Gは各々、バイナリツリー区分181Cに従って2つの垂直矩形区分に垂直に区分され、ブロック190Eおよび190Fは各々、バイナリツリー区分181Cに従って2つの水平矩形区分に水平に区分される。ブロック190Dおよび190Eは、対称的に区分されて、その結果、ブロック190Dおよび190Eは各々、同じサイズの2つの区分を有することになる。一方、ブロック190Fおよび190Gは、非対称的に区分されて、その結果、ブロック190Fおよび190Gは各々、異なるサイズの2つの区分を有することになる。そのようなものとして、TUなどの残差ブロックは、バイナリツリー区分181Cに従って区分され得る。トリプルツリー区分181D(ターナリツリー区分とも呼ばれる)は、トリプルツリー188(ターナリツリーとしても知られる)に基づくブロックの区分であり、ここで、正方形または非正方形TUは、TUを2つの別個のロケーションにおいて水平または垂直のいずれかに区分することによって取得される、3つのサブTUに区分される。例えば、ブロック190Hは、トリプルツリー区分に従って3つの水平矩形区分に水平に区分され、ブロック190Iは、トリプルツリー区分に従って3つの垂直矩形区分に垂直に区分される。そのようなものとして、TUなどの残差ブロックは、トリプルツリー区分181Dに従って区分され得る。
[0132] TU区分は、正方形または非正方形TUブロックに適用され得る。図7は、正方形ブロックの例示的な区分を示すが、本技法は、矩形であり従って非正方形であるTUが、本開示全体にわたって説明される区分ツリーに従って等しく区分され得るように、非正方形ブロックにも適用可能である。例えば、正方形TUがバイナリツリーに従って2つの矩形TUに区分される場合、矩形TUの一方または両方も、区分ツリーのうちの1つに従って区分され得る。従って、TUなどの残差ブロックは、正方形または非正方形であり得、正方形残差ブロックと非正方形残差ブロックの両方が、本明細書において開示される技法に従って等しく区分され得る。
[0133] 区分情報をシグナリングするために、TUに分割があるかどうかを決定するためのフラグ(例えば、分割フラグ)がビットストリーム中でシグナリングされ得る。TUが区分される場合(すなわち、分割フラグが有効にされる場合)、区分のタイプを指定するための追加の区分/分割情報がシグナリングされ得る。そのような追加のインデックス情報は、ツリーのタイプ(例えば、クワッドツリー、バイナリツリー、ターナリツリー、および/または4TU分割)であり得る。
[0134] 例えば、ビデオエンコーダ200は、ビデオデータの現在ブロックの残差ブロックが区分ツリータイプに従って複数の残差サブブロックに区分されると決定し得、残差ブロックが区分されるかどうかを示す情報をシグナリングし、区分される残差ブロックの区分ツリータイプを示す情報をさらにシグナリングするビデオデータの符号化表現としてビットストリームを符号化し得る。同様に、ビデオデコーダは、ビデオデータの符号化表現を備えるビットストリーム中で、残差ブロックが区分されるかどうかを示す情報と、区分される残差ブロックに基づいて残差ブロックの区分ツリータイプを示す情報とを受信し得、ここにおいて、残差ブロックは、現在ブロックと予測ブロックとの間の差分を示す。
[0135] 所与の/シグナリングされたツリータイプについて、区分タイプがさらにシグナリングされ得る。例えば、トリプルツリーの場合(例えば、トリプルツリー区分181D)、単一のビットが、TUがブロック190Hにおけるように水平に分割されるか、またはブロック190Iにおけるように垂直に分割されるかを指定するための使用であり得る。バイナリツリーの場合(例えば、バイナリツリー区分181C)、シグナリングは、TUが、ブロック190Eおよび190Fにおけるように水平に分割されるか、またはブロック190Dおよび190Gにおけるように垂直に分割されるかを指定し、並びに、TUが、ブロック190Dおよび190Eにおけるように対称的に分割されるか、またはブロック190Fおよび190Gにおけるように非対称的に分割されるかを指定し得る。
例えば、残差ブロックの区分ツリータイプを示す情報をシグナリングするビットストリームは、ツリータイプのセットへのインデックス情報を含み得、ツリータイプ情報のセットは、クワッドツリー区分およびバイナリツリー区分のうちの1つまたは複数を含み得る。さらに、残差ブロックの区分ツリータイプを示す情報が、区分ツリータイプがバイナリツリー区分のうちの1つであることを示すとき、ビットストリームは、残差ブロックが水平に分割されるか垂直に分割されるかを示す情報をさらにシグナリングし得る。
[0136] いくつかの例では、TUを区分した後に取得されるサブTUの集合を仮定すれば、コード化ブロックフラグ(VVCではcbfと呼ばれる)は、予測モード、区分ツリータイプ、区分タイプ、またはビットストリーム中で符号化される任意の他のサイド情報に応じて推論および/または制限され得る。例えば、図8のブロック192Aおよび192B中でP1として示されるサブTUは、cbfシグナリングがP1のために必要とされないように、無効にされたcbfフラグ(フラグ=0)を常に有するように制限され得る。また、各サブTUの変換スキップフラグを推論または制限するために同様の方式が使用され得る。
[0137] いくつかの例では、区分の後に取得されるサブTUの集合を仮定すれば、サブTUごとに、そのサブTUに適用される分離可能変換を指定するためのAMT/MTSインデックスがシグナリングされ得る。このようにして、各サブTUに複数の変換が適用され得る。
[0138] いくつかの例では、AMT/MTSインデックスおよび/またはフラグなどの変換選択は、TUレベルにおいてなおシグナリングされ得、一様なTUがサブTUに分割される。これらの例では、あらゆるサブTUが、シグナリングされた変換選定を使用し得る。この場合、オーバーヘッドがサブTUごとに省かれ得、より細かい粒度の変換の利点が依然として利用され得る。
[0139] いくつかの例では、区分の後に取得されるサブTUの集合を仮定すれば、サブTUの変換カーネルは、水平方向、垂直方向または両方の方向のいずれかにおいて制限または推論され得る。制限または推論の一例は、予測モード、区分ツリータイプ、区分タイプまたは任意の他のサイド情報に基づいて行われる。この場合、AMT/MTSインデックス(または変換定義)は、予測モード、区分ツリータイプ、区分タイプまたは任意の他のサイド情報に基づいて制限または推論され得る。
[0140] いくつかの例では、特定の変換基底を制限または推論する代わりに、コンテキストモデリングは、制限/推論ルールに基づいて適用され得る。一例では、コンテキストは、制限ルールが適用される場合のために割り当てられ、そのような場合、変換選択は、依然として可能である(制限によりこの変換選択が可能でないときに異なる)が、コンテキストは、そのような変換選択をシグナリングするために割り当てられ、その結果、変換オーバーヘッドは、おそらくより効率的にコーディングされ、全ての変換選択が利用可能になる。割り当てられるコンテキストは、おそらく、変換選択シグナリング中にすでに存在しているコンテキストとは異なる別個のコンテキスト。
[0141] 以下の制限の例では、同じルールが、変換選択オーバーヘッドシグナリングにおけるコンテキスト割当てのために使用され得る。そのような設計の例は以下を含む。
[0142] (ブロック190Aとして図7およびブロック192Cとして図8に示されるような)クワッドツリー区分されたTUを仮定すれば、サブTU P0の変換は、DCT-8が垂直と水平の両方に使用されるように制限され得、サブTU P1の変換は、DST-7が水平に適用され、DST-8が両方とも垂直に使用されるように制限され得、サブTU P2の変換は、DCT-8が水平に適用され、DST-7が両方とも垂直に使用されるように制限され得、サブTU P3の変換は、DST-7が垂直と水平の両方に使用されるように制限され得る。
[0143] (ブロック190Aとして図7およびブロック192Cとして図8に示されるように)クワッドツリー区分されたTUを仮定すれば、全てのサブTU(P0、P1、P2およびP3)は、DST-7が垂直と水平の両方に使用されるように制限され得る。別の例では、DST-7またはDCT-8の代わりにDCT-2が使用され得る。
[0144] (ブロック190D~190Gとして図7およびブロック192D~192Gとして図8に示されるような)バイナリツリー区分されたTUを仮定すれば、サブTUの変換は、次のように推論/制限され得る。図7のブロック190Eおよび190F並びに図8のブロック192Eおよび192Fなどの水平分割では、サブTU P0を変換するために、DCT-2は水平に使用され得、DCT-8は垂直に使用され得、サブTU P1を変換するために、DCT-2は水平に使用され得、DST-7は垂直に使用され得る。ブロック190Dおよび190Gとして図7並びにブロック192Dおよび192Gとして図8に示されるような垂直分割では、サブTU P0を変換するために、DCT-8は水平に使用され得、DCT-2は垂直に使用され得、サブTU P1を変換するために、DST-7は水平に使用され得、DCT-2は垂直に使用され得る。DCT-2の代わりに、DST-7またはDCT-8も、上記の2つの場合のための変換として使用され得る。
[0145] 上記の方法の1つまたは組合せは、イントラ予測されるCUのためにのみ使用され得る。上記の方法の1つまたは組合せは、インター予測されるCUのためにのみ使用され得る。上記の方法の1つまたは組合せは、イントラ予測されるCUとインター予測されるCUの両方のために使用され得る。上記の方法の1つまたは組合せは、ルーマチャネルもしくはクロマチャネルまたは両方のために使用され得る。TU区分および関連する変換方式は、上記の方法の1つまたは組合せに基づいて定義され得る。
[0146] 図9は、本開示の技法を行い得る例示的なビデオエンコーダ200を示すブロック図である。図9は、説明の目的で提供されており、本開示において広く例示され、説明される技法を限定するものと考えられるべきではない。説明の目的で、本開示では、HEVCビデオコーディング規格および開発中のH.266ビデオコーディング規格などのビデオコーディング規格のコンテキストにおいて、ビデオエンコーダ200について説明する。しかしながら、本開示の技法は、これらのビデオコーディング規格に限定されず、一般的にビデオ符号化および復号に適用可能である。
[0147] 図9の例では、ビデオエンコーダ200は、ビデオデータメモリ230と、モード選択ユニット202と、残差生成ユニット204と、変換処理ユニット206と、量子化ユニット208と、逆量子化ユニット210と、逆変換処理ユニット212と、再構築ユニット214と、フィルタユニット216と、復号ピクチャバッファ(DPB:decoded picture buffer)218と、エントロピー符号化ユニット220とを含む。ビデオデータメモリ230と、モード選択ユニット202と、残差生成ユニット204と、変換処理ユニット206と、量子化ユニット208と、逆量子化ユニット210と、逆変換処理ユニット212と、再構築ユニット214と、フィルタユニット216と、DPB218と、エントロピー符号化ユニット220とのいずれかまたは全ては、1つまたは複数のプロセッサにおいてあるいは処理回路において実施され得る。例えば、ビデオエンコーダ200のユニットは、1つまたは複数の回路または論理要素として、ハードウェア回路の一部として、あるいはFPGAのプロセッサ、ASICの一部として実施され得る。その上、ビデオエンコーダ200は、これらおよび他の機能を行うための追加または代替のプロセッサまたは処理回路を含み得る。
[0148] ビデオデータメモリ230は、ビデオエンコーダ200の構成要素によって符号化されるべきビデオデータを記憶し得る。ビデオエンコーダ200は、例えば、ビデオソース104(図1)から、ビデオデータメモリ230に記憶されたビデオデータを受信し得る。DPB218は、ビデオエンコーダ200による後続のビデオデータの予測において使用する参照ビデオデータを記憶する参照ピクチャメモリとして働き得る。ビデオデータメモリ230とDPB218とは、同期DRAM(SDRAM)を含むダイナミックランダムアクセスメモリ(DRAM)、磁気抵抗RAM(MRAM)、抵抗性RAM(RRAM(登録商標))、または他のタイプのメモリデバイスなど、様々なメモリデバイスのいずれかによって形成され得る。ビデオデータメモリ230とDPB218とは、同じメモリデバイスまたは別個のメモリデバイスによって提供され得る。様々な例では、ビデオデータメモリ230は、図示のように、ビデオエンコーダ200の他の構成要素とともにオンチップであるか、またはそれらの構成要素に対してオフチップであり得る。
[0149] 本開示では、ビデオデータメモリ230への言及は、特にそのように説明されない限り、ビデオエンコーダ200の内部のメモリに限定されるものとして解釈されるべきではなく、または特にそのように説明されない限り、ビデオエンコーダ200の外部のメモリに限定されるものとして解釈されるべきではない。そうではなく、ビデオデータメモリ230への言及は、ビデオエンコーダ200が符号化のために受信するビデオデータ(例えば、符号化されるべきである現在ブロックのビデオデータ)を記憶する参照メモリとして理解されたい。図1のメモリ106はまた、ビデオエンコーダ200の様々なユニットからの出力の一時的記憶を提供し得る。
[0150] 図9の様々なユニットは、ビデオエンコーダ200によって行われる動作を理解するのを支援するために示される。ユニットは、固定機能回路、プログラマブル回路、またはそれらの組合せとして実施され得る。固定機能回路は、特定の機能を提供する回路を指し、行なわれ得る動作にプリセットされる。プログラマブル回路は、様々なタスクを行うように、および行われ得る動作においてフレキシブルな機能を提供するようにプログラムされ得る回路を指す。例えば、プログラマブル回路は、ソフトウェアまたはファームウェアの命令によって定義される様式でプログラマブル回路を動作させるソフトウェアまたはファームウェアを実行し得る。固定機能回路は、(例えば、パラメータを受信するかまたはパラメータを出力するための)ソフトウェア命令を実行し得るが、固定機能回路が行う動作のタイプは、概して不変である。いくつかの例では、ユニットのうちの1つまたは複数は、別個の回路ブロック(固定機能またはプログラマブル)であり得、いくつかの例では、ユニットのうちの1つまたは複数は、集積回路であり得る。
[0151] ビデオエンコーダ200は、算術論理ユニット(ALU)、基本機能ユニット(EFU)、デジタル回路、アナログ回路、および/またはプログラマブル回路から形成されるプログラマブルコアを含み得る。ビデオエンコーダ200の動作が、プログラマブル回路によって実行されるソフトウェアを使用して行われる例では、メモリ106(図1)は、ビデオエンコーダ200が受信し実行するソフトウェアの命令(例えば、オブジェクトコード)を記憶し得るか、またはビデオエンコーダ200内の別のメモリ(図示されず)が、そのような命令を記憶し得る。
[0152] ビデオデータメモリ230は、受信されたビデオデータを記憶するように構成される。ビデオエンコーダ200は、ビデオデータメモリ230からビデオデータのピクチャを取り出し、ビデオデータを残差生成ユニット204とモード選択ユニット202とに提供し得る。ビデオデータメモリ230中のビデオデータは、符号化されるべきである生のビデオデータであり得る。
[0153] モード選択ユニット202は、動き推定ユニット222と、動き補償ユニット224と、イントラ予測ユニット226とを含む。モード選択ユニット202は、他の予測モードに従ってビデオ予測を行うための追加の機能ユニットを含み得る。例として、モード選択ユニット202は、パレットユニット、(動き推定ユニット222および/または動き補償ユニット224の一部であり得る)イントラブロックコピーユニット、アフィンユニット、線形モデル(LM)ユニットなどを含み得る。
[0154] モード選択ユニット202は、概して、符号化パラメータの組合せと、そのような組合せについての得られたレートひずみ値とをテストするために、複数の符号化パスを協調させる。符号化パラメータは、CUへのCTUの区分、CUの予測モード、CUの残差データの変換タイプ、CUの残差データのための量子化パラメータなどを含み得る。モード選択ユニット202は、最終的に、他のテストされた組合せよりも良好であるレートひずみ値を有する符号化パラメータの組合せを選択し得る。
[0155] ビデオエンコーダ200は、ビデオデータメモリ230から取り出されたピクチャを一連のCTUに区分し、1つまたは複数のCTUをスライス内にカプセル化し得る。モード選択ユニット202は、上述のHEVCのQTBT構造またはクワッドツリー構造など、ツリー構造に従ってピクチャのCTUを区分し得る。上述されたように、ビデオエンコーダ200は、ツリー構造に従ってCTUを区分することから1つまたは複数のCUを形成し得る。そのようなCUは、一般に「ビデオブロック」または「ブロック」と呼ばれることもある。
[0156] 概して、モード選択ユニット202はまた、現在ブロック(例えば、現在CU、またはHEVCでは、PUとTUとの重複する部分)についての予測ブロックを生成するように、それの構成要素(例えば、動き推定ユニット222、動き補償ユニット224、およびイントラ予測ユニット226)を制御する。現在ブロックのインター予測のために、動き推定ユニット222は、1つまたは複数の参照ピクチャ(例えば、DPB218に記憶されている1つまたは複数の以前のコード化ピクチャ)中で1つまたは複数のぴったり一致する参照ブロックを識別するために動き探索を行い得る。特に、動き推定ユニット222は、例えば、絶対差分和(SAD:sum of absolute difference)、2乗差分和(SSD:sum of squared differences)、平均絶対差(MAD:mean absolute difference)、平均2乗差(MSD:mean squared differences)などに従って、現在ブロックに対して潜在的参照ブロックがどのくらい類似しているかを表す値を計算し得る。動き推定ユニット222は、概して、現在ブロックと考慮されている参照ブロックとの間のサンプルごとの差分を使用してこれらの計算を行い得る。動き推定ユニット222は、現在ブロックに最もぴったり一致する参照ブロックを示す、これらの計算から得られた最も低い値を有する参照ブロックを識別し得る。
[0157] 動き推定ユニット222は、現在ピクチャ中の現在ブロックの位置に対して参照ピクチャ中の参照ブロックの位置を定義する1つまたは複数の動きベクトル(MV)を形成し得る。動き推定ユニット222は、次いで、動きベクトルを動き補償ユニット224に提供し得る。例えば、単方向インター予測では、動き推定ユニット222は、単一の動きベクトルを提供し得るが、双方向インター予測では、動き推定ユニット222は、2つの動きベクトルを提供し得る。動き補償ユニット224は、次いで、動きベクトルを使用して予測ブロックを生成し得る。例えば、動き補償ユニット224は、動きベクトルを使用して参照ブロックのデータを取り出し得る。別の例として、動きベクトルが分数サンプル精度を有する場合、動き補償ユニット224は、1つまたは複数の補間フィルタに従って予測ブロックの値を補間し得る。その上、双方向インター予測では、動き補償ユニット224は、それぞれの動きベクトルによって識別された2つの参照ブロックについてデータを取り出し、例えば、サンプルごとの平均化または加重平均化を通して、取り出されたデータを組み合わせ得る。
[0158] 別の例として、イントラ予測、またはイントラ予測コーディングのために、イントラ予測ユニット226は、現在ブロックに隣接しているサンプルから予測ブロックを生成し得る。例えば、方向性モードでは、イントラ予測ユニット226は、隣接サンプルの値を概して数学的に組み合わせ、現在ブロックにわたって規定の方向にこれらの計算された値をポピュレートして、予測ブロックを生成し得る。別の例として、DCモードでは、イントラ予測ユニット226は、現在ブロックに対する隣接サンプルの平均を計算し、予測ブロックのサンプルごとにこの得られた平均を含むように予測ブロックを生成し得る。
[0159] モード選択ユニット202は、予測ブロックを残差生成ユニット204に提供する。残差生成ユニット204は、ビデオデータメモリ230から現在ブロックの生の非コード化バージョンを受信し、モード選択ユニット202から予測ブロックを受信する。残差生成ユニット204は、現在ブロックと予測ブロックとの間のサンプルごとの差分を計算する。得られたサンプルごとの差分は、現在ブロックの残差ブロックを定義する。いくつかの例では、残差生成ユニット204はまた、残差差分パルスコード変調(RDPCM:residual differential pulse code modulation)を使用して残差ブロックを生成するために、残差ブロック中のサンプル値の間の差分を決定し得る。いくつかの例では、残差生成ユニット204は、バイナリ減算を行う1つまたは複数の減算器回路を使用して形成され得る。
[0160] モード選択ユニット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サイズの非対称的区分をサポートし得る。
[0161] モード選択ユニット202がCUをPUにさらに区分しない例では、各CUは、ルーマコーディングブロックと、対応するクロマコーディングブロックとに関連付けられ得る。上記のように、CUのサイズは、CUのルーマコーディングブロックのサイズを指し得る。ビデオエンコーダ200とビデオデコーダ300とは、2N×2N、2N×N、またはN×2NのCUサイズをサポートし得る。
[0162] いくつかの例として、イントラブロックコピーモードコーディング、アフィンモードコーディング、および線形モデル(LM)モードコーディングなど、他のビデオコーディング技法では、モード選択ユニット202は、コーディング技法に関連付けられたそれぞれのユニットを介して、符号化されている現在ブロックの予測ブロックを生成する。パレットモードコーディングなど、いくつかの例では、モード選択ユニット202は、予測ブロックを生成せず、代わりに、選択されたパレットに基づいてブロックを再構築すべき様式を示すシンタックス要素を生成し得る。そのようなモードでは、モード選択ユニット202は、符号化されるためにこれらのシンタックス要素をエントロピー符号化ユニット220に提供し得る。
[0163] 上述されたように、残差生成ユニット204は、現在ブロックと、対応する予測ブロックとについて、ビデオデータを受信する。残差生成ユニット204は、次いで、現在ブロックの残差ブロックを生成する。残差ブロックを生成するために、残差生成ユニット204は、予測ブロックと現在ブロックとの間のサンプルごとの差分を計算する。
[0164] 本開示の技法によれば、現在ブロックの残差ブロック(すなわち、変換ユニット)を生成する一部として、残差生成ユニット204は、区分ツリータイプに従って現在ブロックの残差ブロックを複数の残差サブブロック(すなわち、変換ユニット)に区分し得る。残差生成ユニット204は、そのような区分を正方形残差ブロック並びに非正方形残差ブロック(例えば、矩形残差ブロック)に行い、正方形残差サブブロック並びに非正方形残差サブブロックを生成し得、残差生成ユニット204はまた、残差サブブロックのうちの1つまたは複数を区分し得る。
[0165] 上で論じられたように、区分ブロックは、図7および図8に示されるものなど、クワッドツリー区分、バイナリツリー区分、ターナリツリー区分、または4TU区分のうちの1つまたは複数に従って残差サブブロックに区分され得る。いくつかの例では、区分ブロックは、クワッドツリー区分またはバイナリツリー区分のうちの1つまたは複数に従って残差サブブロックに区分され得る。
[0166] 残差生成ユニット204が、バイナリツリー区分、ターナリツリー区分、または4TU区分に従って残差ブロックを区分するとき、残差生成ユニット204は、残差ブロックを水平に分割するか、または残差ブロックを垂直に分割し得る。例えば、図7のブロック190C、190E、190F、および190Hは、水平分割の例を示し、図7のブロック190B、190D、190G、および190Iは、垂直分割の例を示す。
[0167] 残差生成ユニット204がバイナリツリー区分またはターナリツリー区分に従って残差ブロックを区分して残差ブロックを水平に分割するかまたは垂直に分割するとき、残差生成ユニット204は、残差ブロックを対称的に分割し得るか、または残差ブロックを非対称的に分割し得る。例えば、図7のブロック190Dおよび190Eは、対称的分割の例を示し、図7のブロック190Fおよび190Gは、非対称的分割の例を示す。
[0168] 変換処理ユニット206は、変換係数のブロック(本明細書では「変換係数ブロック」と呼ばれる)を生成するために、残差ブロックに1つまたは複数の変換を適用する。変換処理ユニット206は、変換係数ブロックを形成するために、残差ブロックに様々な変換を適用し得る。例えば、変換処理ユニット206は、離散コサイン変換(DCT)、方向変換、カルーネンレーベ変換(KLT)、または概念的に同様の変換を残差ブロックに適用し得る。いくつかの例では、変換処理ユニット206は、複数の変換、例えば、1次変換および2次変換、例えば回転変換を残差ブロックに行い得る。いくつかの例では、変換処理ユニット206は、変換を残差ブロックに適用しない。
[0169] いくつかの例では、変換処理ユニット206は、残差ブロックの区分から生じる複数の残差サブブロックの各々に多重変換(MT:multiple transform)方式の複数の変換を適用することを含めて、現在ブロックの残差ブロックにMT方式の複数の変換を適用し得る。MT方式は、例えば、残差ブロックに適用されるべき1次変換と2次変換とを定義し得る。追加または代替として、MT方式は、上で論じられた図5Aと図5Bとに示されるものなど、水平変換と垂直変換とを定義し得る。いずれの場合も、変換処理ユニット206は、変換係数ブロックの変換係数を生成するために、残差ブロックにMT方式の各変換を適用し得る。
[0170] 例えば、変換処理ユニット206は、複数の残差サブブロックの各々のための変換を選択し得、ここで、複数の残差サブブロックのうちのそれぞれの残差ブロックのための変換の選択は、それぞれの残差ブロックの多重変換選択(MTS:multiple transform selection)インデックスである。このようにして、残差サブブロックごとに多重変換が選択され得る。
[0171] 別の例では、変換処理ユニット206は、残差ブロックの区分から生じる複数の残差サブブロックの各々に適用される残差ブロックのための変換を選択し得る。例えば、残差ブロックの区分から生じる各残差サブブロックに適用される残差ブロックのための多重変換が選択され得る。図8のブロック192Cの例では、ブロック192Cのための選択された多重変換は、残差サブブロックP0、P1、P2、およびP3の各々に適用され得る。
[0172] 本開示の技法によれば、変換処理ユニット206は、複数の残差サブブロックの各々についてコード化ブロックフラグ(cbf)および/または変換スキップフラグを決定し得る。コード化ブロックフラグは、残差サブブロックについて少なくとも1つの非0係数変換レベルが送信されるかどうかに関する情報をシグナリングし得る。変換スキップフラグは、残差サブブロックについて変換がスキップされるかどうかに関する情報をシグナリングし得る。
[0173] 本開示の技法によれば、変換処理ユニット206は、残差ブロックの区分ツリータイプまたは残差ブロックの区分タイプのうちの1つに少なくとも部分的に基づいて残差ブロックを区分することから生じる複数の残差サブブロックの変換カーネルを決定し得る。
[0174] 本開示の技法によれば、変換処理ユニット206は、残差ブロックの区分ツリータイプまたは残差ブロックの区分タイプのうちの1つに少なくとも部分的に基づいて複数の残差サブブロックのためのコンテキスト割当てを決定し得る。いくつかの例では、変換処理ユニット206は、現在ブロックのルーマ成分および/または現在ブロックのクロマ成分について複数の残差サブブロックのためのコンテキスト割当てを決定し得る。
[0175] 一例では、変換処理ユニット206が、残差ブロックがクワッドツリー区分に従って4つの残差サブブロックに区分されると決定したとき、変換処理ユニット206は、複数の残差サブブロックのうちの第1の残差サブブロックのためにDCT-8が水平変換と垂直変換の両方として使用されると決定し得、複数の残差サブブロックのうちの第2の残差サブブロックのためにDST-7が水平変換において使用され、DST-8が垂直変換として使用されると決定し得、複数の残差サブブロックのうちの第3の残差サブブロックのためにDCT-8が水平変換において使用され、DST-7が垂直変換として使用されると決定し得、複数の残差サブブロックのうちの第4の残差サブブロックのためにDST-7が水平変換と垂直変換の両方として使用されると決定し得る、。
[0176] 別の例では、変換処理ユニット206が、残差ブロックがクワッドツリー区分に従って4つの残差サブブロックに区分されると決定したとき、変換処理ユニット206は、複数の残差サブブロックの各々のためにDST-7が水平変換と垂直変換の両方として使用されると決定し得る。
[0177] 別の例では、変換処理ユニット206が、残差ブロックがクワッドツリー区分に従って4つの残差サブブロックに区分されると決定したとき、変換処理ユニット206は、複数の残差サブブロックのうちの1つまたは複数のためにDCT-2が水平変換または垂直変換のうちの少なくとも1つとして使用されると決定し得る。従って、例えば、複数の残差サブブロックのうちの1つまたは複数のために、DCT-2は水平変換として使用され得、DST-7またはDCT-8は垂直変換として使用され得、複数の残差サブブロックのうちの1つまたは複数のために、DCT-2は垂直変換として使用され得、DST-7またはDCT-8は水平変換として使用され得る。
[0178] 別の例では、変換処理ユニット206が、残差ブロックがバイナリツリー区分に従って2つの残差サブブロックに区分されると決定し、および残差ブロックの区分タイプが水平分割であると決定したとき、変換処理ユニット206は、複数の残差サブブロックのうちの第1の残差サブブロックのためにDCT-2が水平変換として使用され、DCT-8が垂直変換として使用されると決定し得、複数の残差サブブロックのうちの第2の残差サブブロックのためにDCT-2が水平変換として使用され、DST-7が垂直変換として使用されると決定し得る。
[0179] 別の例では、変換処理ユニット206が、残差ブロックがバイナリツリー区分に従って2つの残差サブブロックに区分されると決定し、および残差ブロックの区分タイプが垂直分割であると決定したとき、変換処理ユニット206は、複数の残差サブブロックのうちの第1の残差サブブロックのためにDCT-8が水平変換として使用され、DCT-2が垂直変換として使用されると決定し得、複数の残差サブブロックのうちの第2の残差サブブロックのためにDST-7が水平変換として使用され、DCT-2が垂直変換として使用されると決定し得る。
[0180] 別の例では、変換処理ユニット206が、残差ブロックがバイナリツリー区分に従って2つの残差サブブロックに区分されると決定したとき、変換処理ユニット206は、複数の残差サブブロックのうちの1つまたは複数のために、DST-7またはDCT-8のうちの1つが、垂直変換または水平変換としてのうちの少なくとも1つとして使用されると決定し得る。DST-7またはDCT-8の使用は、上述のバイナリツリー区分の例におけるDCT-2の代わりであり得る。
[0181] いくつかの例では、逆変換処理ユニット206は、残差ブロックのサイズに少なくとも部分的に基づいて残差ブロックのためのコンテキスト割当てを決定し得る。例えば、残差ブロックが、16個以下のサンプル(例えば、16個のサンプルのサイズを有する4×4ブロック)などの小さいサイズを有するとき、および残差ブロックがバイナリツリー区分に従って区分されるとき、逆変換処理ユニット206は、複数の残差サブブロックの各々のためにDST-7が水平変換と垂直変換の両方として使用されるように、複数の残差サブブロックのためのコンテキスト割当てを決定し得る。
[0182] 別の例では、残差ブロックが、16個以上のサンプル(例えば、32個のサンプルのサイズを有する4×8ブロック)などの大きいサイズを有するとき、および残差ブロックがバイナリツリー区分に従って区分されるとき、変換処理ユニット206は、複数の残差サブブロックのうちの第1の残差サブブロックのためにDCT-2が水平変換として使用され、DST-7が垂直変換として使用され、複数の残差サブブロックのうちの第2の残差サブブロックのためにDCT-2が垂直変換として使用され、DST-7が水平変換として使用されるように、複数の残差サブブロックのためのコンテキスト割当てを決定し得る。
[0183] 別の例では、残差ブロックが、2つ以下のサンプル(例えば、2×8ブロック)である水平サイズまたは垂直サイズを有するとき、変換処理ユニット206は、複数の残差サブブロックに変換が適用されるべきでないと決定し得る。
[0184] いくつかの例では、変換処理ユニット206は、イントラ予測されるブロックである現在ブロック上の複数の残差サブブロックベースのためのコンテキスト割当てを決定し得る。いくつかの例では、変換処理ユニット206は、インター予測されるブロックである現在ブロック上の複数の残差サブブロックベースのためのコンテキスト割当てを決定し得る。
[0185] 量子化ユニット208は、量子化された変換係数ブロックを生成するために、変換係数ブロック中の変換係数を量子化し得る。量子化ユニット208は、現在ブロックに関連付けられた量子化パラメータ(QP)値に従って変換係数ブロックの変換係数を量子化し得る。ビデオエンコーダ200は(例えば、モード選択ユニット202を介して)、CUに関連付けられたQP値を調整することによって、現在ブロックに関連付けられた変換係数ブロックに適用される量子化の程度を調整し得る。量子化は、情報の損失を導入することがあり、従って、量子化された変換係数は、変換処理ユニット206によって生成された元の変換係数よりも低い精度を有し得る。
[0186] 逆量子化ユニット210と逆変換処理ユニット212とは、変換係数ブロックから残差ブロックを再構築するために、それぞれ、量子化された変換係数ブロックに逆量子化と逆変換とを適用し得る。再構築ユニット214は、再構築された残差ブロックと、モード選択ユニット202によって生成された予測ブロックとに基づいて、(ある程度のひずみを潜在的にもっているものの)現在ブロックに対応する再構築されたブロックを生成し得る。例えば、再構築ユニット214は、再構築されたブロックを生成するために、モード選択ユニット202によって生成された予測ブロックからの対応するサンプルに、再構築された残差ブロックのサンプルを加算し得る。
[0187] フィルタユニット216は、再構築されたブロックに対して1つまたは複数のフィルタ演算を行い得る。例えば、フィルタユニット216は、CUのエッジに沿ってブロッキネスアーティファクトを低減するためのデブロッキング動作を行い得る。いくつかの例では、フィルタユニット216の動作はスキップされてよい。
[0188] ビデオエンコーダ200は、再構築されたブロックをDPB218に記憶する。例えば、フィルタユニット216の動作が必要とされない例において、再構築ユニット214は、再構築されたブロックをDPB218に記憶し得る。フィルタユニット216の動作が必要とされる例では、フィルタユニット216は、フィルタ処理された再構築されたブロックをDPB218に記憶し得る。動き推定ユニット222と動き補償ユニット224とは、後で符号化されるピクチャのブロックをインター予測するために、再構築(および潜在的にフィルタ処理)されたブロックから形成された参照ピクチャをDPB218から取り出し得る。加えて、イントラ予測ユニット226は、現在ピクチャ中の他のブロックをイントラ予測するために、現在ピクチャのDPB218中の再構築されたブロックを使用し得る。
[0189] 概して、エントロピー符号化ユニット220は、ビデオエンコーダ200の他の機能構成要素から受信されたシンタックス要素をエントロピー符号化し得る。例えば、エントロピー符号化ユニット220は、量子化ユニット208からの量子化された変換係数ブロックをエントロピー符号化し得る。別の例として、エントロピー符号化ユニット220は、モード選択ユニット202からの予測シンタックス要素(例えば、インター予測のための動き情報、またはイントラ予測のためのイントラモード情報)をエントロピー符号化し得る。エントロピー符号化ユニット220は、エントロピー符号化データを生成するために、ビデオデータの別の例であるシンタックス要素に対して1つまたは複数のエントロピー符号化演算を行い得る。例えば、エントロピー符号化ユニット220は、コンテキスト適応型可変長コーディング(CAVLC:context-adaptive variable length coding)動作、CABAC動作、可変対可変(V2V:variable-to-variable)長コーディング動作、シンタックスベースコンテキスト適応型バイナリ算術コーディング(SBAC:syntax-based context-adaptive binary arithmetic coding)動作、確率間隔区分エントロピー(PIPE:Probability Interval Partitioning Entropy)コーディング動作、指数ゴロム符号化動作、または別のタイプのエントロピー符号化動作をデータに対して行い得る。いくつかの例では、エントロピー符号化ユニット220は、シンタックス要素がエントロピー符号化されないバイパスモードで動作し得る。
[0190] 本開示の技法によれば、エントロピー符号化ユニット220は、残差ブロックのために、残差ブロックに関連する区分情報をエントロピー符号化し得る。残差ブロックに関連するそのような区分情報は、残差ブロックが区分されるかどうかを示し得る。残差ブロックが区分される場合、エントロピー符号化された区分情報は、残差ブロックの区分ツリータイプをさらに示し得る。区分ツリータイプは、クワッドツリー区分、バイナリツリー区分、ターナリツリー区分、または4TU区分のうちの1つであり得る。区分ツリータイプを示すために、エントロピー符号化された区分情報は、可能な区分タイプのリスト中のインデックスを含み得る。区分ツリータイプが、バイナリツリー区分、ターナリツリー区分、または4TU区分のうちの1つである場合、エントロピー符号化された区分情報は、残差ブロックが水平に分割されるか垂直に分割されるかを示す残差ブロックの区分タイプを示す情報をさらにシグナリングし得る。さらに、残差ブロックの区分ツリータイプが、バイナリツリー区分またはターナリツリー区分である場合、エントロピー符号化された情報は、TUが対称的に分割されるか非対称的に分割されるかを示す情報をさらにシグナリングし得る。
[0191] エントロピー符号化ユニット220はまた、残差ブロックのために、残差ブロックに関連する他の情報をエントロピー符号化し得る。例えば、エントロピー符号化ユニット220は、それぞれの残差サブブロックの各々のためのMTSインデックスなど、残差ブロックの区分から生じる複数の残差サブブロックの各々のために選択された変換のインジケーションを符号化し得る。別の例では、エントロピー符号化ユニット220は、残差ブロックのために選択された変換のインジケーションを符号化し得、ここで、選択された変換は、残差ブロックの区分から生じる複数の残差サブブロックの各々に適用される。
[0192] 本開示のいくつかの態様によれば、エントロピー符号化ユニット220は、残差ブロックの区分から生じる複数の残差サブブロックのためのコンテキスト割当て、または複数の残差サブブロックの変換カーネルに関連する情報を符号化するのを控え得る。代わりに、ビデオデコーダ300は、残差ブロックが区分されるかどうか、残差ブロックがそれに従って区分された区分ツリータイプ、残差ブロックの区分タイプ、並びにエントロピー符号化ユニット220によってエントロピー符号化される他のサイド情報など、エントロピー符号化ユニット220によって符号化される残差ブロックに関連する他の情報に基づいて残差ブロックに関するそのような情報を推論し得る。
[0193] ビデオエンコーダ200は、スライスまたはピクチャのブロックを再構築するために必要とされるエントロピー符号化されたシンタックス要素を含むビットストリームを出力し得る。特に、エントロピー符号化ユニット220は、本開示の本技法に従って、例えば、残差ブロックに関連するエントロピー符号化された区分情報を含むビットストリームを出力し得る。従って、エンコーダ200が、ビデオデータの現在ブロックの残差ブロックが区分ツリータイプに従って複数の残差サブブロックに区分されると決定すると、エントロピー符号化ユニット220は、残差ブロックが区分されるかどうかを示す情報をシグナリングし、区分される残差ブロックの区分ツリータイプを示す情報をさらにシグナリングするビデオデータの符号化表現としてビットストリームを符号化し得る。
[0194] 上述の動作は、ブロックに関して説明されている。そのような説明は、ルーマコーディングブロックおよび/またはクロマコーディングブロックのための動作であるものとして理解されたい。上述されたように、いくつかの例では、ルーマコーディングブロックとクロマコーディングブロックとは、CUのルーマ成分とクロマ成分とである。いくつかの例では、ルーマコーディングブロックとクロマコーディングブロックとは、PUのルーマ成分とクロマ成分とである。
[0195] いくつかの例では、ルーマコーディングブロックに関して行われる動作は、クロマコーディングブロックのために繰り返される必要はない。一例として、ルーマコーディングブロックのための動きベクトル(MV)と参照ピクチャとを識別するための動作は、クロマブロックのためのMVと参照ピクチャとを識別するために繰り返される必要はない。そうではなく、ルーマコーディングブロックのためのMVは、クロマブロックのためのMVを決定するためにスケーリングされてよく、参照ピクチャは同じであってよい。別の例として、イントラ予測プロセスは、ルーマコーディングブロックとクロマコーディングブロックについて同じであってよい。
[0196] ビデオエンコーダ200は、ビデオデータを記憶するように構成されたメモリと、回路中に実装された1つまたは複数の処理ユニットとを含む、ビデオデータを符号化するように構成されたデバイスの一例を表し、1つまたは複数の処理ユニットは、ビデオデータの現在ブロックの残差ブロックが区分ツリータイプに従って複数の残差サブブロックに区分されると決定することと、残差ブロックが区分されるかどうかを示す情報をシグナリングし、残差ブロックの区分ツリータイプを示す情報をさらにシグナリングするビデオデータの符号化表現としてビットストリームを符号化することとを行うように構成される。
[0197] 図10は、本開示の技法を行い得る例示的なビデオデコーダ300を示すブロック図である。図10は、説明の目的で提供されており、本開示において広く例示され、説明される技法に対する限定ではない。説明の目的で、本開示では、JEMと、VVCと、HEVCとの技法に従ってビデオデコーダ300について説明する。しかしながら、本開示の技法は、他のビデオコーディング規格に構成されたビデオコーディングデバイスによって行われ得る。
[0198] 図10の例では、ビデオデコーダ300は、コード化ピクチャバッファ(CPB:coded picture buffer)メモリ320と、エントロピー復号ユニット302と、予測処理ユニット304と、逆量子化ユニット306と、逆変換処理ユニット308と、再構築ユニット310と、フィルタユニット312と、復号ピクチャバッファ(DPB:decoded picture buffer)314とを含む。CPBメモリ320と、エントロピー復号ユニット302と、予測処理ユニット304と、逆量子化ユニット306と、逆変換処理ユニット308と、再構築ユニット310と、フィルタユニット312と、DPB314とのいずれかまたは全ては、1つまたは複数のプロセッサにおいてあるいは処理回路において実施され得る。例えば、ビデオデコーダ300のユニットは、1つまたは複数の回路または論理要素として、ハードウェア回路の一部として、あるいはFPGAのプロセッサ、ASICの一部として実施され得る。その上、ビデオデコーダ300は、これらおよび他の機能を行うための追加または代替のプロセッサまたは処理回路を含み得る。
[0199] 予測処理ユニット304は、動き補償ユニット316と、イントラ予測ユニット318とを含む。予測処理ユニット304は、他の予測モードに従って予測を行うための追加のユニットを含み得る。例として、予測処理ユニット304は、パレットユニット、(動き補償ユニット316の一部を形成し得る)イントラブロックコピーユニット、アフィンユニット、線形モデル(LM)ユニットなどを含み得る。他の例では、ビデオデコーダ300は、より多数の、より少数の、または異なる機能構成要素を含み得る。
[0200] 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の他の構成要素とともにオンチップであるか、またはそれらの構成要素に対してオフチップであり得る。
[0201] 追加または代替として、いくつかの例では、ビデオデコーダ300は、メモリ120(図1)からコード化ビデオデータを取り出し得る。すなわち、メモリ120は、CPBメモリ320を用いて上で論じられたデータを記憶し得る。同様に、メモリ120は、ビデオデコーダ300の機能の一部または全部が、ビデオデコーダ300の処理回路によって実行されるべきソフトウェアにおいて実施されたとき、ビデオデコーダ300によって実行されるべき命令を記憶し得る。従って、CPBメモリ320は、図10のビデオデコーダ300の他の構成要素とともに、ビットストリームを受信するための手段の例を表す。
[0202] 図10に示される様々なユニットは、ビデオデコーダ300によって行われる動作を理解するのを支援するために示される。ユニットは、固定機能回路、プログラマブル回路、またはそれらの組合せとして実施され得る。図9と同様に、固定機能回路は、特定の機能を提供する回路を指し、行われ得る動作にプリセットされる。プログラマブル回路は、様々なタスクを行うように、および行われ得る動作においてフレキシブルな機能を提供するようにプログラムされ得る回路を指す。例えば、プログラマブル回路は、ソフトウェアまたはファームウェアの命令によって定義される様式でプログラマブル回路を動作させるソフトウェアまたはファームウェアを実行し得る。固定機能回路は、(例えば、パラメータを受信するかまたはパラメータを出力するための)ソフトウェア命令を実行し得るが、固定機能回路が行う動作のタイプは、概して不変である。いくつかの例では、ユニットのうちの1つまたは複数は、別個の回路ブロック(固定機能またはプログラマブル)であり得、いくつかの例では、ユニットのうちの1つまたは複数は、集積回路であり得る。
[0203] ビデオデコーダ300は、ALU、EFU、デジタル回路、アナログ回路、および/またはプログラマブル回路から形成されるプログラマブルコアを含み得る。ビデオデコーダ300の動作が、プログラマブル回路上で実行されるソフトウェアによって行われる例では、ビデオデコーダ300が受信し実行するソフトウェアの命令(例えば、オブジェクトコード)をオンチップまたはオフチップメモリが記憶し得る。
[0204] エントロピー復号ユニット302は、CPBから符号化ビデオデータを受信し、ビデオデータをエントロピー復号してシンタックス要素を再生し得る。予測処理ユニット304と、逆量子化ユニット306と、逆変換処理ユニット308と、再構築ユニット310と、フィルタユニット312とは、ビットストリームから抽出されたシンタックス要素に基づいて復号ビデオデータを生成し得る。
[0205] 概して、ビデオデコーダ300は、ブロックごとにピクチャを再構築する。ビデオデコーダ300は、各ブロックに対して個々に再構築演算を行い得る(ここで、現在再構築されているブロック、すなわち、現在復号されているブロックは、「現在ブロック」と呼ばれることがある)。
[0206] エントロピー復号ユニット302は、量子化された変換係数ブロックの量子化された変換係数を定義するシンタックス要素、並びに量子化パラメータ(QP:quantization parameter)および/または変換モードインジケーションなどの変換情報をエントロピー復号し得る。
[0207] 本開示の技法によれば、ビデオデコーダ300は、ビデオデータの符号化表現を備えるビットストリーム中で、残差ブロックが区分されるかどうかを示す情報と、区分される残差ブロックに基づいて残差ブロックの区分ツリータイプを示す情報とを受信し得、ここにおいて、残差ブロックは、現在ブロックと予測ブロックとの間の差分を示す。残差ブロックが区分されるかどうかを示す情報と、残差ブロックの区分ツリータイプを示す情報とは、残差ブロックが区分されるかどうかと、そうである場合、残差ブロックの区分ツリータイプとをシグナリングするシンタックス要素であり得る。
[0208] いくつかの例では、残差ブロックの区分ツリータイプを示す情報は、ツリータイプのセットへのインデックス情報であり得、エントロピー復号ユニット302は、受信されたインデックス情報に基づいて区分ツリータイプを決定し得る。例えば、ツリータイプ情報のセットは、クワッドツリー区分およびバイナリツリー区分のうちの1つまたは複数を含み得る、
[0209] いくつかの例では、ビデオデコーダ300によって受信されるビットストリームは、残差ブロックが水平に分割されるか垂直に分割されるか、および/または残差ブロックが対称的に分割されるか非対称的に分割されるかを示す情報をさらに含み得る。
[0210] 例えば、ビットストリームは、残差ブロックについて、残差ブロックが区分されるかどうかをシグナリングするフラグを含み得る。フラグが有効にされる場合、ビットストリームは、クワッドツリー区分、バイナリツリー区分、ターナリツリー区分、および4TU区分という区分ツリータイプのリスト中のインデックスに対する複数のビットを介してなど、残差ブロックを区分するための区分ツリータイプを示すための、区分ツリータイプのリスト中のインデックスを含み得る。ビットストリームはまた、しかも、必要な場合、残差ブロックが水平に分割されるか垂直に分割されるかと、残差ブロックが対称的に分割されるか非対称的に分割されるかとをシグナリングするフラグを含み得る。
[0211] エントロピー復号ユニット302は、ビットストリームから復号されるデータの現在ブロックの残差ブロックに関連する区分情報をエントロピー復号し得る。特に、エントロピー復号ユニット302は、残差ブロックが区分されるかどうかを決定するために、区分情報を復号し得る。ビットストリーム中の残差データの区分情報が、残差ブロックが区分されることをシグナリングする場合、エントロピー復号ユニット302は、残差ブロックの区分ツリータイプを決定するために、区分情報をさらに復号し得る。残差ブロックの区分ツリータイプに応じて、エントロピー復号ユニット302は、残差ブロックが水平に分割されるか垂直に分割されるか、並びに残差ブロックが対称的に分割されるか非対称的に分割されるかを決定するために、ビットストリーム中の残差ブロックの区分情報を復号し得る。従って、エントロピー復号ユニット302は、図10のビデオデコーダ300の他の構成要素とともに、残差ブロックが区分ツリータイプに従って複数の残差サブブロックに区分されると決定するための手段の例を表す。
[0212] 加えて、いくつかの例では、エントロピー復号ユニット302はまた、データの現在ブロックの残差ブロックについて、残差ブロックに関連する他の情報をエントロピー復号し得る。例えば、エントロピー復号ユニット302は、それぞれの残差サブブロックの各々のためのMTSインデックスなど、残差ブロックの区分から生じる複数の残差サブブロックの各々のために選択された変換のインジケーションを復号し得る。
[0213] 別の例では、エントロピー復号ユニット302は、残差ブロックのために選択された変換のインジケーションを復号し得、ここで、選択された変換は、残差ブロックの区分から生じる複数の残差サブブロックの各々に適用される。残差ブロックのために選択されたそのような変換は、残差ブロックレベルにおいてビットストリーム中でシグナリングされ、それにより、残差ブロックを複数の残差サブブロックに区分する能力を維持しながら、残差サブブロックの各々について別個の変換を示す必要があることからのオーバーヘッドが省かれ得る。
[0214] 本開示の技法によれば、エントロピー復号ユニット302は、現在ブロックの予測モード、残差ブロックの区分ツリータイプ、残差ブロックの区分タイプ、またはビットストリーム中に含まれる任意の他のサイド情報などの情報に基づいて、複数の残差サブブロックの各々についてコード化ブロックフラグ(cbf:coded block flag)および/または変換スキップフラグを推論または制限し得る。コード化ブロックフラグは、残差サブブロックについて少なくとも1つの非0係数変換レベルが送信されるかどうかに関する情報をシグナリングし得る。変換スキップフラグは、残差サブブロックについて変換がスキップされるかどうかに関する情報をシグナリングし得る。例えば、エントロピー復号ユニット302は、cbfシグナリングが残差サブブロックのために必要とされないように、無効にされたコード化ブロックフラグ(フラグ=0)を常に有するように残差サブブロックを制限し得る。
[0215] エントロピー復号ユニット302は、逆変換処理ユニット308に、残差ブロックに関連するそのような情報を提供し得る。従って、逆量子化ユニット306が変換係数ブロックを形成した後に、逆変換処理ユニット308は、現在ブロックに関連する残差ブロックを生成するために、逆量子化ユニット306によって提供される1つまたは複数の変換係数ブロックとともに残差ブロックに関連するそのような情報を使用し得る。
[0216] 逆量子化ユニット306は、量子化の程度と、同様に、逆量子化ユニット306が適用すべき逆量子化の程度とを決定するために、量子化された変換係数ブロックに関連するQPを使用し得る。逆量子化ユニット306は、量子化された変換係数を逆量子化するために、例えば、ビット単位の左シフト演算を行い得る。逆量子化ユニット306は、それにより、変換係数を含む変換係数ブロックを形成し得る。
[0217] 逆量子化ユニット306が変換係数ブロックを形成した後に、逆変換処理ユニット308は、現在ブロックに関連する残差ブロックを生成するために、変換係数ブロックに1つまたは複数の逆変換を適用し得る。例えば、逆変換処理ユニット308は、逆DCT、逆整数変換、逆カルーネンレーベ変換(KLT)、逆回転変換、逆方向変換、または別の逆変換を変換係数ブロックに適用し得る。従って、逆変換処理ユニット308は、図10のビデオデコーダ300の他の構成要素とともに、区分ツリータイプに従って複数の残差サブブロックに区分される残差ブロックに少なくとも部分的に基づいて現在ブロックの残差データを生成するための手段の例を表す。
[0218] 本開示の技法によれば、逆変換処理ユニット308は、エントロピー復号ユニット302から、データの現在ブロックの残差ブロックに関連する区分情報を受信し得、複数の残差サブブロックへの残差ブロックの区分を決定し得る。上で論じられたように、エントロピー復号ユニット302は、残差ブロックが区分されるかどうかと、残差ブロックが水平に分割されるか垂直に分割されるかと、残差ブロックが対称的に分割されるか非対称的に分割されるかとを示す、現在ブロックの残差ブロックについての区分情報を復号し得る。逆の処理ユニット308は、現在ブロックデータのための残差ブロックの区分から生じる複数の残差サブブロックを決定するために、そのような情報を使用し得る。
[0219] 逆変換処理ユニット308は、現在ブロックデータのための残差ブロックの区分から生じる複数の残差サブブロックを生成することを含めて、ビデオデータの現在ブロックの残差ブロックを生成するために、区分情報に少なくとも部分的に基づいて1つまたは複数の変換係数ブロックに1つまたは複数の逆変換を適用し得る。このようにして、逆変換処理ユニット308は、ビデオデータの現在ブロックの残差データを生成する。
[0220] いくつかの例では、逆変換処理ユニット308は、エントロピー復号ユニット302によってビットストリームから復号された情報によって示される1つまたは複数の逆変換を適用し得る。例えば、ビットストリームが、それぞれの残差サブブロックの各々のためのMTSインデックスなど、残差ブロックの区分から生じる複数の残差サブブロックの各々のために選択された変換を示す情報を含む場合、逆変換処理ユニット308は、選択された変換を複数の残差サブブロックに適用し得る。別の例では、ビットストリームが、残差ブロックのために選択された変換を示す情報を含む場合、逆変換処理ユニット308は、選択された変換を残差ブロック中の複数の残差サブブロックの各々に適用し得る。
[0221] いくつかの例では、逆変換処理ユニット308は、ビットストリーム中に含まれる残差ブロックの区分情報および/または他のサイド情報に少なくとも部分的に基づいて、水平方向または垂直方向のうちの少なくとも1つにおいて複数の残差サブブロックの変換カーネルを推論または制限し得る。複数の残差サブブロックの変換カーネルを推論または制限することは、ビットストリーム中に含まれる残差ブロックの区分情報および/または他のサイド情報に少なくとも部分的に基づいて、複数の残差サブブロックのためのMTSインデックスまたは変換定義を推論または制限することを含む。
[0222] 変換カーネルを推論または制限することは、変換カーネルがビットストリーム中で明示的にシグナリングされないことを意味する。代わりに、変換カーネルは、ビットストリーム中の他の情報に少なくとも部分的に基づいて推論または制限され得る。一例では、変換カーネルは、残差ブロックがバイナリツリー区分に従って区分されるか、4TU区分に従って区分されるか、ターナリツリー区分に従って区分されるかに基づいてなど、ビットストリームによってシグナリングされる残差ブロックの区分ツリータイプに基づいて、残差ツリーが水平に分割されるか垂直に分割されるかに基づいてなど、残差ブロックの区分タイプに基づいて、および/またはビットストリーム中でシグナリングされる任意の他のサイド情報に基づいて推論または制限され得る。逆変換処理ユニット308は、ビデオデータの現在ブロックの残差ブロックを生成するために、複数の残差サブブロックのための推論または制限された変換カーネルに少なくとも部分的に基づいて1つまたは複数の変換係数ブロックに1つまたは複数の逆変換を適用し得る。
[0223] いくつかの例では、逆変換処理ユニット308は、ビットストリーム中に含まれる残差ブロックの区分情報および/または他のサイド情報に少なくとも部分的に基づいて複数の残差サブブロックのためのコンテキスト割当てを推論または制限し得、逆変換処理ユニット308は、ビデオデータの現在ブロックの残差ブロックを生成するために、複数の残差サブブロックのための推論または制限されたコンテキスト割当てに少なくとも部分的に基づいて1つまたは複数の変換係数ブロックに1つまたは複数の逆変換を適用し得る。
[0224] コンテキスト割当てが推論または制限されたとき、複数の残差サブブロックのための変換選択が依然として可能であり得、コンテキストは、そのような変換選択をシグナリングするために割り当てられる。割り当てられるコンテキストは、おそらく、変換選択シグナリング中にすでに存在しているコンテキストとは異なる別個のコンテキスト。その結果、変換オーバーヘッドはより効率的にコーディングされ得、全ての変換選択が利用可能になり得る。
[0225] 複数の残差サブブロックのためのコンテキスト割当てを推論または制限することは、コンテキスト割当てがビットストリーム中で明示的にシグナリングされないことを意味する。代わりに、コンテキスト割当ては、ビットストリーム中の他の情報に少なくとも部分的に基づいて推論または制限され得る。一例では、コンテキスト割当ては、残差ブロックがクワッドツリー区分に従って区分されるか、バイナリツリー区分に従って区分されるか、4TU区分に従って区分されるか、ターナリツリー区分に従って区分されるかに基づいてなど、ビットストリームによってシグナリングされる残差ブロックの区分ツリータイプに基づいて、残差ツリーが水平に分割されるか垂直に分割されるかに基づいてなど、残差ブロックの区分タイプに基づいて、および/またはビットストリーム中でシグナリングされる任意の他のサイド情報に基づいて推論または制限され得る。いくつかの例では、逆変換処理ユニット308は、現在ブロックのルーマ成分および/または現在ブロックのクロマ成分について複数の残差サブブロックのためのコンテキスト割当てを推論または制限し得る。
[0226] 一例では、逆変換処理ユニット308が、残差ブロックがクワッドツリー区分に従って4つの残差サブブロックに区分されると決定したとき、逆変換処理ユニット308は、複数の残差サブブロックのうちの第1の残差サブブロックのためにDCT-8が水平変換と垂直変換の両方として使用されるように、複数の残差サブブロックのうちの第2の残差サブブロックのためにDST-7が水平変換において使用され、DST-8が垂直変換として使用されるように、複数の残差サブブロックのうちの第3の残差サブブロックのためにDCT-8が水平変換において使用され、DST-7が垂直変換として使用されるように、および複数の残差サブブロックのうちの第4の残差サブブロックのためにDST-7が水平変換と垂直変換の両方として使用されるように、複数の残差サブブロックのためのコンテキスト割当てを推論または制限し得る、。
[0227] 別の例では、逆変換処理ユニット308が、残差ブロックがクワッドツリー区分に従って4つの残差サブブロックに区分されると決定したとき、逆変換処理ユニット308は、複数の残差サブブロックの各々のためにDST-7が水平変換と垂直変換の両方として使用されるように、複数の残差サブブロックのためのコンテキスト割当てを推論または制限し得る。
[0228] 別の例では、逆変換処理ユニット308が、残差ブロックがクワッドツリー区分に従って4つの残差サブブロックに区分されると決定したとき、逆変換処理ユニット308は、複数の残差サブブロックのうちの1つまたは複数のためにDCT-2が水平変換または垂直変換のうちの少なくとも1つとして使用されるように、複数の残差サブブロックのためのコンテキスト割当てを推論または制限し得る。従って、例えば、複数の残差サブブロックのうちの1つまたは複数のために、DCT-2は水平変換として推論または制限され得、DST-7またはDCT-8は垂直変換として推論または制限され得、複数の残差サブブロックのうちの1つまたは複数のために、DCT-2は垂直変換として推論または制限され得、DST-7またはDCT-8は水平変換として推論または制限され得る。
[0229] 別の例では、逆変換処理ユニット308が、残差ブロックがバイナリツリー区分に従って2つの残差サブブロックに区分されると決定し、および残差ブロックの区分タイプが水平分割であると決定したとき、逆変換処理ユニット308は、複数の残差サブブロックのうちの第1の残差サブブロックのためにDCT-2が水平変換として使用され、DCT-8が垂直変換として使用されるように、および複数の残差サブブロックのうちの第2の残差サブブロックのためにDCT-2が水平変換として使用され、DST-7が垂直変換として使用されるように、複数の残差サブブロックのためのコンテキスト割当てを推論または制限し得る。
[0230] 別の例では、逆変換処理ユニット308が、残差ブロックがバイナリツリー区分に従って2つの残差サブブロックに区分されると決定し、および残差ブロックの区分タイプが垂直分割であると決定したとき、変換逆変換処理ユニット308は、複数の残差サブブロックのうちの第1の残差サブブロックのためにDCT-8が水平変換として使用され、DCT-2が垂直変換として使用されるように、および複数の残差サブブロックのうちの第2の残差サブブロックのためにDST-7が水平変換として使用され、DCT-2が垂直変換として使用されるように、複数の残差サブブロックのためのコンテキスト割当てを推論または制限し得る。
[0231] 別の例では、逆変換処理ユニット308が、残差ブロックがバイナリツリー区分に従って2つの残差サブブロックに区分されると決定したとき、逆変換処理ユニット308は、複数の残差サブブロックのうちの1つまたは複数のために、DST-7またはDCT-8のうちの1つが、水平変換または垂直変換としてのうちの少なくとも1つとして使用されるように、複数の区分サブブロックのためのコンテキスト割当てを推論または制限し得る。DST-7またはDCT-8の使用は、上述のバイナリツリー区分の例におけるDCT-2の代わりであり得る。
[0232] いくつかの例では、逆変換処理ユニット308は、残差ブロックのサイズに少なくとも部分的に基づいて残差ブロックのためのコンテキスト割当てを推論または制限し得る。例えば、残差ブロックが、16個以下のサンプル(例えば、16個のサンプルのサイズを有する4×4ブロック)などの小さいサイズを有するとき、および残差ブロックがバイナリツリー区分に従って区分されるとき、逆変換処理ユニット308は、複数の残差サブブロックの各々のためにDST-7が水平変換と垂直変換の両方として使用されるように、複数の残差サブブロックのためのコンテキスト割当てを推論または制限し得る。
[0233] 別の例では、残差ブロックが、16個以上のサンプル(例えば、32個のサンプルのサイズを有する4×8ブロック)などの大きいサイズを有するとき、および残差ブロックがバイナリツリー区分に従って区分されるとき、逆変換処理ユニット308は、複数の残差サブブロックのうちの第1の残差サブブロックのためにDCT-2が水平変換として使用され、DST-7が垂直変換として使用され、複数の残差サブブロックのうちの第2の残差サブブロックのためにDCT-2が垂直変換として使用され、DST-7が水平変換として使用されるように、複数の残差サブブロックのためのコンテキスト割当てを推論または制限し得る。
[0234] 別の例では、残差ブロックが、2つ以下のサンプル(例えば、2×8ブロック)である水平サイズまたは垂直サイズを有するとき、逆変換処理ユニット308は、複数の残差サブブロックに変換が適用されないと推論または制限し得る。
[0235] いくつかの例では、逆変換処理ユニット308は、イントラ予測されるビデオブロックである現在ブロック上の複数の残差サブブロックベースのためのコンテキスト割当てを推論し得る。他の例では、逆変換処理ユニット308は、インター予測されるビデオブロックである現在ブロック上の複数の残差サブブロックベースのためのコンテキスト割当てを推論し得る。別の例では、逆変換処理ユニット308は、インター予測されるビデオブロックまたはイントラ予測されるビデオブロックである現在ブロック上の複数の残差サブブロックベースのためのコンテキスト割当てを推論し得る。
[0236] さらに、予測処理ユニット304は、エントロピー復号ユニット302によってエントロピー復号された予測情報シンタックス要素に従って予測ブロックを生成する。例えば、予測情報シンタックス要素が、現在ブロックがインター予測されることを示す場合、動き補償ユニット316は、予測ブロックを生成し得る。この場合、予測情報シンタックス要素は、参照ブロックをそれから取り出すべきDPB314中の参照ピクチャ、並びに現在ピクチャ中の現在ブロックのロケーションに対して参照ピクチャ中の参照ブロックのロケーションを識別する動きベクトルを示し得る。動き補償ユニット316は、概して、動き補償ユニット224(図9)に関して説明されたのと実質的に同様である様式でインター予測プロセスを行い得る。
[0237] 別の例として、予測情報シンタックス要素が、現在ブロックがイントラ予測されることを示す場合、イントラ予測ユニット318は、予測情報シンタックス要素によって示されるイントラ予測モードに従って予測ブロックを生成し得る。この場合も、イントラ予測ユニット318は、概して、イントラ予測ユニット226(図9)に関して説明されたのと実質的に同様である様式でイントラ予測プロセスを行い得る。イントラ予測ユニット318は、DPB314から、現在ブロックに対する隣接サンプルのデータを取り出し得る。
[0238] 再構築ユニット310は、予測ブロックと残差ブロックとを使用して現在ブロックを再構築し得る。例えば、再構築ユニット310は、現在ブロックを再構築するために、予測ブロックの対応するサンプルに残差ブロックのサンプルを加算し得る。従って、再構築ユニット310は、図10のビデオデコーダ300の他の構成要素とともに、残差データを使用して現在ブロックを復号するための手段の例を表す。
[0239] フィルタユニット312は、再構築されたブロックに対して1つまたは複数のフィルタ演算を行い得る。例えば、フィルタユニット312は、再構築されたブロックのエッジに沿ってブロッキネスアーティファクトを低減するためのデブロッキング動作を行い得る。フィルタユニット312の動作は、全ての例において必ずしも行われるとは限らない。
[0240] ビデオデコーダ300は、再構築されたブロックをDPB314に記憶し得る。例えば、フィルタユニット312の動作が行われない例において、再構築ユニット310は、再構築されたブロックをDPB314に記憶し得る。フィルタユニット312の動作が行われる例では、フィルタユニット312は、フィルタ処理された再構築されたブロックをDPB314に記憶し得る。上で論じられたように、DPB314は、イントラ予測のための現在ピクチャのサンプルおよび後続の動き補償のための以前に復号されたピクチャなど、参照情報を予測処理ユニット304に提供し得る。その上、ビデオデコーダ300は、DPB314からの復号ピクチャ(例えば、復号ビデオ)を、後続のプレゼンテーションのために、図1のディスプレイデバイス118などのディスプレイデバイス上に出力し得る。
[0241] このようにして、ビデオデコーダ300は、ビデオデータを記憶するように構成されたメモリと、回路中に実装された1つまたは複数の処理ユニットとを含む、ビデオ復号デバイスの一例を表し、1つまたは複数の処理ユニットは、ビデオデータの符号化表現を備えるビットストリーム中で、残差ブロックが区分されるかどうかを示す情報と、区分される残差ブロックに基づいて残差ブロックの区分ツリータイプを示す情報とを受信することと、ここにおいて、残差ブロックが、現在ブロックと予測ブロックとの間の差分を示す、残差ブロックが区分されるという受信された情報と、残差ブロックの区分ツリータイプとに基づいて、残差ブロックが区分ツリータイプに従って区分される複数の残差サブブロックを決定することと、区分ツリータイプに従って複数の残差サブブロックに区分される残差ブロックに少なくとも部分的に基づいて現在ブロックの残差データを生成することと、残差データを使用して現在ブロックを復号することとを行うように構成される。
[0242] 図11は、現在ブロックを符号化するための例示的な方法を示すフローチャートである。現在ブロックは現在CUを備え得る。ビデオエンコーダ200(図1および図9)に関して説明されるが、他のデバイスが図11の方法と同様の方法を行うように構成され得ることを理解されたい。
[0243] この例では、ビデオエンコーダ200は、初めに、現在ブロックを予測する(350)。例えば、ビデオエンコーダ200は、現在ブロックの予測ブロックを形成し得る。ビデオエンコーダ200は、次いで、現在ブロックの残差ブロックを計算し得る(352)。残差ブロックを計算するために、ビデオエンコーダ200は、元のコーディングされていないブロックと、現在ブロックの予測ブロックとの間の差分を計算し得る。残差ブロックを計算する一部として、ビデオエンコーダ200は、クワッドツリー区分またはバイナリツリー区分のうちの少なくとも1つに従って残差ブロックを複数の残差サブブロックに区分し得る。ビデオエンコーダ200がバイナリツリー区分に従って残差ブロックを区分する場合、ビデオエンコーダ200は、残差ブロックを水平に区分するかまたは垂直に区分し得る。さらに、ビデオエンコーダ200がバイナリツリー区分に従って残差ブロックを区分する場合、ビデオエンコーダ200は、残差ブロックを対称的に区分するかまたは非対称的に区分し得る。
[0244] ビデオエンコーダ200は、次いで、残差ブロックの係数を変換し、量子化し得る(354)。次に、ビデオエンコーダ200は、残差ブロックの量子化された変換係数を走査し得る(356)。走査中に、または走査に続いて、ビデオエンコーダ200は、変換係数をエントロピー符号化し得る(358)。例えば、ビデオエンコーダ200は、CAVLCまたはCABACを使用して変換係数を符号化し得る。ビデオエンコーダ200は、次いで、ブロックのエントロピー符号化されたデータを出力し得る(360)。ビデオエンコーダ200は、ブロックのエントロピー符号化されたデータをビットストリームとして出力し得る。ビットストリームは、残差ブロックに関して、残差ブロックが区分されるかどうかと、残差ブロックを区分するための区分ツリータイプ使用と、残差ブロックが区分されるかどうかを示す情報と、区分される残差ブロックの区分ツリータイプを示す情報とをシグナリングし得る。
[0245] 図12は、ビデオデータの現在ブロックを復号するための例示的な方法を示すフローチャートである。現在ブロックは現在CUを備え得る。ビデオデコーダ300(図1および図10)に関して説明されるが、他のデバイスが図12の方法と同様の方法を行うように構成され得ることを理解されたい。
[0246] ビデオデコーダ300は、エントロピー符号化された予測情報、および現在ブロックに対応する残差ブロックの係数についてのエントロピー符号化されたデータを含むビットストリームなど、現在ブロックのエントロピー符号化されたデータを受信し得る(370)。ビデオデコーダ300は、エントロピー符号化されたデータをエントロピー復号して、現在ブロックについての予測情報を決定し、残差ブロックの係数を再生し得る(372)。ビデオデコーダ300は、現在ブロックの残差ブロックについて、ビットストリームが、残差ブロックが区分されるかどうかを示す情報と、区分される残差ブロックに基づいて残差ブロックの区分ツリータイプを示す情報とを含むかどうかを決定し得る。
[0247] ビデオデコーダ300は、現在ブロックの予測ブロックを計算するために、例えば、現在ブロックについての予測情報によって示されるイントラ予測またはインター予測モードを使用して、現在ブロックを予測し得る(374)。ビデオデコーダ300は、次いで、量子化された変換係数のブロックを作成するために、再生された係数を逆走査し得る(376)。ビデオデコーダ300は、次いで、変換係数を逆量子化し、逆変換して、残差ブロックを生成し得る(378)。ビデオデコーダ300は、変換係数を逆変換して残差ブロックを生成するために、残差ブロックの区分に関するそのような情報を使用して、残差ブロックのためのコンテキスト割当てと変換選択とを推論または制限し得る。ビデオデコーダ300は、最終的に、予測ブロックと残差ブロックとを組み合わせることによって現在ブロックを復号し得る(380)。
[0248] 図13は、区分ツリータイプに従って区分される残差ブロックを有するデータの現在ブロックを復号するための例示的な方法を示すフローチャートである。ビデオデコーダ300(図1および図10)に関して説明されるが、他のデバイスが図13の方法と同様の方法を行うように構成され得ることを理解されたい。いくつかの例では、ビデオデコーダ300は、カメラ、コンピュータ、モバイルデバイス、ブロードキャスト受信機デバイス、またはセットトップボックスのうちの1つまたは複数を含み得る。いくつかの例では、ビデオデコーダ300は、集積回路、マイクロプロセッサ、またはワイヤレス通信デバイスのうちの少なくとも1つを含む。いくつかの例では、ビデオデコーダ300は、復号ビデオデータを表示するように構成されたディスプレイを含む。
[0249] ビデオデコーダ300は、ビデオデータの符号化表現を備えるビットストリーム中で、残差ブロックが区分されるかどうかを示す情報と、区分される残差ブロックに基づいて残差ブロックの区分ツリータイプを示す情報とを受信し得、ここにおいて、残差ブロックは、現在ブロックと予測ブロックとの間の差分を示す(400)。
[0250] いくつかの例では、区分ツリータイプを示す情報を受信することは、ツリータイプのセットへのインデックス情報を受信することを含み得、ビデオデコーダ300は、受信されたインデックス情報に基づいて区分ツリータイプを決定し得る。いくつかの例では、ツリータイプ情報のセットは、クワッドツリー区分およびバイナリツリー区分のうちの1つまたは複数を含む、いくつかの例では、区分ツリータイプを決定することは、区分ツリータイプがバイナリツリー区分のちの1つであると決定することを含み得、ビデオデコーダ300は、残差ブロックが水平に分割されるか垂直に分割されるかを示す情報を受信し得る。
[0251] ビデオデコーダ300は、残差ブロックが区分されるという受信された情報と、残差ブロックの区分ツリータイプとに基づいて、残差ブロックが区分ツリータイプに従って区分される複数の残差サブブロックを決定し得る(402)。
[0252] ビデオデコーダ300は、区分ツリータイプに従って複数の残差サブブロックに区分される残差ブロックに少なくとも部分的に基づいて現在ブロックの残差データを生成し得る(404)。いくつかの例では、ビデオデコーダ300は、残差ブロックの区分ツリータイプまたは残差ブロックの区分タイプのうちの1つに少なくとも部分的に基づいて、水平方向または垂直方向のうちの少なくとも1つにおいて複数の残差サブブロックの変換カーネルをビットストリームから推論し得、ここで、現在ブロックの残差データを生成することは、複数の残差サブブロックの変換カーネルに少なくとも部分的に基づいて残差データを生成することをさらに含み得る。
[0253] ビデオデコーダ300は、残差データを使用して現在ブロックを復号し得る(406)。
[0254] いくつかの例では、残差データを使用して現在ブロックを復号するために、ビデオデコーダ300は、現在ブロックの予測モードを表すデータを復号し、予測モードを使用して現在ブロックの予測ブロックを生成し、予測ブロックを残差データと組み合わせて現在ブロックを再生し得る。
[0255] いくつかの例では、現在ブロックは、インター予測またはイントラ予測される。いくつかの例では、現在ブロックは、コーディングユニット(CU)のルーマブロックを備える。いくつかの例では、現在ブロックは、コーディングユニット(CU)またはCUのブロックであり、現在ブロックの残差ブロックは、変換ユニット(TU)またはTUのブロックであり、複数の残差サブブロックは、非正方形サブTUであり、CUとは異なるサイズのものである。
[0256] 図14は、区分ツリータイプに従って区分される残差ブロックを有するデータの現在ブロックを符号化するための例示的な方法を示すフローチャートである。ビデオエンコーダ200(図1および図9)に関して説明されるが、他のデバイスが図14の方法と同様の方法を行うように構成され得ることを理解されたい。いくつかの例では、ビデオエンコーダ200は、集積回路、マイクロプロセッサ、またはワイヤレス通信デバイスのうちの少なくとも1つを含み得る。いくつかの例では、ビデオエンコーダ200は、ビデオデータをキャプチャするように構成されたカメラを含み得る。いくつかの例では、ビデオエンコーダ200は、カメラ、コンピュータ、モバイルデバイス、ブロードキャスト受信機デバイス、またはセットトップボックスのうちの1つまたは複数を含み得る。
[0257] ビデオエンコーダ200は、ビデオデータの現在ブロックの残差ブロックが区分ツリータイプに従って複数の残差サブブロックに区分されると決定し得る(450)。ビデオエンコーダ200は、残差ブロックが区分されるかどうかを示す情報をシグナリングし、区分される残差ブロックの区分ツリータイプを示す情報をさらにシグナリングするビデオデータの符号化表現としてビットストリームを符号化し得る(452)。
[0258] いくつかの例では、残差ブロックが区分されるかどうかを示す情報をシグナリングし、区分される残差ブロックの区分ツリータイプを示す情報をさらにシグナリングするビデオデータの符号化表現としてビットストリーム。いくつかの例では、ツリータイプ情報のセットは、クワッドツリー区分およびバイナリツリー区分のうちの1つまたは複数を含む。いくつかの例では、
残差ブロックの区分ツリータイプを示す情報が、区分ツリータイプがバイナリツリー区分のうちの1つであることを示すとき、ビットストリームは、残差ブロックが水平に分割されるか垂直に分割されるかを示す情報をさらにシグナリングする。
[0259] いくつかの例では、現在ブロックは、コーディングユニット(CU)またはCUのブロックであり、現在ブロックの残差ブロックは、変換ユニット(TU)またはTUのブロックであり、複数の残差サブブロックは、非正方形サブTUであり、CUとは異なるサイズのものである。
[0260] 上記例に応じて、本明細書で説明された技法のいずれかのいくつかの行為またはイベントは、異なるシーケンスで行い得、追加、マージ、または完全に除外され得る(例えば、全ての説明された行為またはイベントが本技法の実践のために必要であるとは限らない)ことを認識されたい。その上、いくつかの例では、行為またはイベントは、連続的にではなく、例えば、マルチスレッド処理、割込み処理、または複数のプロセッサを通して同時に行われ得る。
[0261] 1つまたは複数の例では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの任意の組合せにおいて実施され得る。ソフトウェアで実施される場合、機能は、1つまたは複数の命令またはコードとして、コンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体を介して送信され、ハードウェアベースの処理ユニットによって実行され得る。コンピュータ可読媒体は、データ記憶媒体などの有形媒体に対応する、コンピュータ可読記憶媒体を含み得るか、または、例えば、通信プロトコルに従って、ある場所から別の場所へのコンピュータプログラムの転送を促進する任意の媒体を含む通信媒体を含み得る。このようにして、コンピュータ可読媒体は、概して、(1)非一時的な有形コンピュータ可読記憶媒体、あるいは(2)信号または搬送波などの通信媒体に対応し得る。データ記憶媒体は、本開示において説明された技法の実施のための命令、コードおよび/またはデータ構造を取り出すために、1つまたは複数のコンピュータあるいは1つまたは複数のプロセッサによってアクセスされ得る、任意の利用可能な媒体であり得る。コンピュータプログラム製品はコンピュータ可読媒体を含み得る。
[0262] 限定ではなく例として、そのようなコンピュータ可読記憶媒体は、RAM、ROM、EEPROM(登録商標)、CD-ROMまたは他の光ディスクストレージ、磁気ディスクストレージ、または他の磁気ストレージデバイス、フラッシュメモリ、あるいは命令またはデータ構造の形態の所望のプログラムコードを記憶するために使用され得、コンピュータによってアクセスされ得る、任意の他の媒体を備えることができる。また、いかなる接続もコンピュータ可読媒体と適切に呼ばれる。例えば、命令が、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または赤外線、無線、およびマイクロ波などのワイヤレス技術を使用して、ウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は媒体の定義に含まれる。しかしながら、コンピュータ可読記憶媒体およびデータ記憶媒体は、接続、搬送波、信号、または他の一時的媒体を含むのではなく、代わりに、非一時的な有形の記憶媒体を対象とすることを理解されたい。本明細書において使用されるディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザーディスク(登録商標)(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フロッピー(登録商標)ディスク(disk)およびBlu-rayディスク(disc)を含み、ここで、ディスク(disk)は通常、データを磁気的に再生し、ディスク(disc)は、データをレーザーで光学的に再生する。上記の組合せもコンピュータ可読媒体の範囲内に含まれるべきである。
[0263] 命令は、1つまたは複数のデジタル信号プロセッサ(DSP)、汎用マイクロプロセッサ、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、あるいは他の等価な集積回路またはディスクリート論理回路など、1つまたは複数のプロセッサによって実行され得る。従って、本明細書において使用される「プロセッサ」および「処理回路」という用語は、前述の構造、または本明細書において説明された技法の実施に好適な任意の他の構造のいずれかを指し得る。加えて、いくつかの態様では、本明細書で説明された機能は、符号化および復号のために構成された専用ハードウェアおよび/またはソフトウェアモジュール内に提供されるか、あるいは複合コーデックに組み込まれ得る。また、本技法は、1つまたは複数の回路または論理要素において十分に実施され得る。
[0264] 本開示の技法は、ワイヤレスハンドセット、集積回路(IC)またはICのセット(例えば、チップセット)を含む、多種多様なデバイスまたは装置において実施され得る。本開示では、開示される技法を行うように構成されたデバイスの機能的態様を強調するために様々な構成要素、モジュール、またはユニットについて説明されたが、それらの構成要素、モジュール、またはユニットを、必ずしも異なるハードウェアユニットによって実現する必要があるとは限らない。そうではなく、上述されたように、様々なユニットは、好適なソフトウェアおよび/またはファームウェアとともに、上述された1つまたは複数のプロセッサを含めて、コーデックハードウェアユニットにおいて組み合わされるか、または相互動作可能なハードウェアユニットの集合によって提供され得る。
[0265] 様々な例について説明された。これらおよび他の例は、以下の特許請求の範囲内に入る。
以下に本願の出願当初の特許請求の範囲に記載された発明を付記する。
[C1]
ビデオデータを復号する方法であって、
前記ビデオデータの符号化表現を備えるビットストリーム中で、残差ブロックが区分されるかどうかを示す情報と、区分される前記残差ブロックに基づいて前記残差ブロックの区分ツリータイプを示す情報とを受信することと、ここにおいて、前記残差ブロックが、現在ブロックと予測ブロックとの間の差分を示す、
前記残差ブロックが区分されるという前記受信された情報と、前記残差ブロックの前記区分ツリータイプとに基づいて、前記残差ブロックが前記区分ツリータイプに従って区分される複数の残差サブブロックを決定することと、
前記区分ツリータイプに従って前記複数の残差サブブロックに区分される前記残差ブロックに少なくとも部分的に基づいて前記現在ブロックの残差データを生成することと、
前記残差データを使用して前記現在ブロックを復号することとを備える、方法。
[C2]
前記区分ツリータイプを示す前記情報を受信することが、ツリータイプのセットへのインデックス情報を受信することを備え、前記方法が、前記受信されたインデックス情報に基づいて前記区分ツリータイプを決定することをさらに備える、C1に記載の方法。
[C3]
ツリータイプの前記セットが、クワッドツリー区分およびバイナリツリー区分のうちの1つまたは複数を含む、C2に記載の方法。
[C4]
前記区分ツリータイプを決定することが、前記区分ツリータイプがバイナリツリー区分であると決定することを備え、前記方法は、前記残差ブロックが水平に分割されるか垂直に分割されるかを示す情報を受信することをさらに備える、C2に記載の方法。
[C5]
前記残差ブロックの前記区分ツリータイプまたは前記残差ブロックの区分タイプのうちの1つに少なくとも部分的に基づいて水平方向または垂直方向のうちの少なくとも1つにおいて前記複数の残差サブブロックの変換カーネルを前記ビットストリームから推論することをさらに備え、ここにおいて、
前記現在ブロックの前記残差データを生成することが、前記複数の残差サブブロックの前記変換カーネルに少なくとも部分的に基づいて前記残差データを生成することを備える、C1に記載の方法。
[C6]
前記現在ブロックが、インター予測またはイントラ予測される、C1に記載の方法。
[C7]
前記現在ブロックが、コーディングユニット(CU)のルーマブロックを備える、C1に記載の方法。
[C8]
前記現在ブロックが、コーディングユニット(CU)または前記CUのブロックであり、
前記現在ブロックの前記残差ブロックが、変換ユニット(TU)または前記TUのブロックであり、
前記複数の残差サブブロックが、非正方形サブTUであり、前記CUとは異なるサイズのものである、C1に記載の方法。
[C9]
前記現在ブロックを復号することが、
前記現在ブロックの予測モードを表すデータを復号することと、
前記予測モードを使用して前記現在ブロックの前記予測ブロックを生成することと、
前記現在ブロックを再生するために、前記予測ブロックを前記残差データと組み合わせることとを備える、C1に記載の方法。
[C10]
ビデオデータを復号するためのデバイスであって、
ビデオデータを記憶するように構成されたメモリと、
回路中に実装されたプロセッサとを備え、前記プロセッサは、
前記ビデオデータの符号化表現を備えるビットストリーム中で、残差ブロックが区分されるかどうかを示す情報と、区分される前記残差ブロックに基づいて前記残差ブロックの区分ツリータイプを示す情報とを受信することと、ここにおいて、前記残差ブロックが、現在ブロックと予測ブロックとの間の差分を示す、
前記残差ブロックが区分されるという前記受信された情報と、前記残差ブロックの前記区分ツリータイプとに基づいて、前記残差ブロックが前記区分ツリータイプに従って区分される複数の残差サブブロックを決定することと、
前記区分ツリータイプに従って前記複数の残差サブブロックに区分される前記残差ブロックに少なくとも部分的に基づいて前記現在ブロックの残差データを生成することと、
前記残差データを使用して前記現在ブロックを復号することとを行うように構成された、デバイス。
[C11]
前記区分ツリータイプを示す情報を受信するように構成された前記プロセッサが、ツリータイプのセットへのインデックス情報を受信するようにさらに構成され、
前記プロセッサが、前記受信されたインデックス情報に基づいて前記区分ツリータイプを決定するようにさらに構成された、C10に記載のデバイス。
[C12]
ツリータイプの前記セットが、クワッドツリー区分およびバイナリツリー区分のうちの1つまたは複数を含む、C11に記載のデバイス。
[C13]
前記区分ツリータイプを決定するように構成された前記プロセッサが、前記区分ツリータイプがバイナリツリー区分であると決定するようにさらに構成され、
前記プロセッサは、前記残差ブロックが水平に分割されるか垂直に分割されるかを示す情報を受信するようにさらに構成された、C11に記載のデバイス。
[C14]
前記プロセッサが、
前記残差ブロックの前記区分ツリータイプまたは前記残差ブロックの区分タイプのうちの1つに少なくとも部分的に基づいて水平方向または垂直方向のうちの少なくとも1つにおいて前記複数の残差サブブロックの変換カーネルを前記ビットストリームから推論するようにさらに構成され、ここにおいて、
前記現在ブロックの前記残差データを生成するように構成された前記プロセッサが、前記複数の残差サブブロックの前記変換カーネルに少なくとも部分的に基づいて前記残差データを生成するようにさらに構成された、C10に記載のデバイス。
[C15]
前記現在ブロックが、インター予測またはイントラ予測される、C10に記載のデバイス。
[C16]
前記現在ブロックが、コーディングユニット(CU)のルーマブロックを備える、C10に記載のデバイス。
[C17]
前記現在ブロックが、コーディングユニット(CU)または前記CUのブロックであり、
前記現在ブロックの前記残差ブロックが、変換ユニット(TU)または前記TUのブロックであり、
前記複数の残差サブブロックが、非正方形サブTUであり、前記CUとは異なるサイズのものである、C10に記載のデバイス。
[C18]
前記現在ブロックを復号するように構成された前記プロセッサが、
前記現在ブロックの予測モードを表すデータを復号することと、
前記予測モードを使用して前記現在ブロックの前記予測ブロックを生成することと、
前記現在ブロックを再生するために、前記予測ブロックを前記残差データと組み合わせることとを行うようにさらに構成された、C10に記載のデバイス。
[C19]
前記復号された現在ブロックを表示するように構成されたディスプレイをさらに備える、C10に記載のデバイス。
[C20]
カメラ、コンピュータ、モバイルデバイス、ブロードキャスト受信機デバイス、またはセットトップボックスのうちの1つまたは複数を備える、C10に記載のデバイス。
[C21]
集積回路、
マイクロプロセッサ、または
ワイヤレス通信デバイスのうちの少なくとも1つを備える、C10に記載のデバイス。
[C22]
命令を記憶したコンピュータ可読記憶媒体であって、前記命令は、実行されたとき、プロセッサに、
ビデオデータの符号化表現を備えるビットストリーム中で、残差ブロックが区分されるかどうかを示す情報と、区分される前記残差ブロックに基づいて前記残差ブロックの区分ツリータイプを示す情報とを受信することと、ここにおいて、前記残差ブロックが、現在ブロックと予測ブロックとの間の差分を示す、
前記残差ブロックが区分されるという前記受信された情報と、前記残差ブロックの前記区分ツリータイプとに基づいて、前記残差ブロックが前記区分ツリータイプに従って区分される複数の残差サブブロックを決定することと、
前記区分ツリータイプに従って前記複数の残差サブブロックに区分される前記残差ブロックに少なくとも部分的に基づいて前記現在ブロックの残差データを生成することと、
前記残差データを使用して前記現在ブロックを復号することとを行わせる、コンピュータ可読記憶媒体。
[C23]
ビデオデータを復号するためのデバイスであって、
前記ビデオデータの符号化表現を備えるビットストリーム中で、残差ブロックが区分されるかどうかを示す情報と、区分される前記残差ブロックに基づいて前記残差ブロックの区分ツリータイプを示す情報とを受信するための手段と、ここにおいて、前記残差ブロックが、現在ブロックと予測ブロックとの間の差分を示す、
前記残差ブロックが区分されるという前記受信された情報と、前記残差ブロックの前記区分ツリータイプとに基づいて、前記残差ブロックが前記区分ツリータイプに従って区分される複数の残差サブブロックを決定するための手段と、
前記区分ツリータイプに従って前記複数の残差サブブロックに区分される前記残差ブロックに少なくとも部分的に基づいて前記現在ブロックの残差データを生成するための手段と、
前記残差データを使用して前記現在ブロックを復号するための手段とを備える、デバイス。
[C24]
ビデオデータを符号化する方法であって、
ビデオデータの現在ブロックの残差ブロックが区分ツリータイプに従って複数の残差サブブロックに区分されると決定することと、
前記残差ブロックが区分されるかどうかを示す情報をシグナリングし、区分される前記残差ブロックの前記区分ツリータイプを示す情報をさらにシグナリングするビデオデータの符号化表現としてビットストリームを符号化することとを備える、方法。
[C25]
前記残差ブロックの前記区分ツリータイプを示す前記情報をシグナリングする前記ビットストリームが、ツリータイプのセットへのインデックス情報を含む、C24に記載の方法。
[C26]
ツリータイプの前記セットが、クワッドツリー区分およびバイナリツリー区分のうちの1つまたは複数を含む、C25に記載の方法。
[C27]
前記残差ブロックの前記区分ツリータイプを示す前記情報が、前記区分ツリータイプが前記バイナリツリー区分であることを示すとき、前記ビットストリームは、前記残差ブロックが水平に分割されるか垂直に分割されるかを示す情報をさらにシグナリングする、C25に記載の方法。
[C28]
現在ブロックが、コーディングユニット(CU)または前記CUのブロックであり、
前記現在ブロックの前記残差ブロックが、変換ユニット(TU)または前記TUのブロックであり、
前記複数の残差サブブロックが、非正方形サブTUであり、前記CUとは異なるサイズのものである、C24に記載の方法。
[C29]
ビデオデータを符号化するためのデバイスであって、
ビデオデータを記憶するように構成されたメモリと、
回路中に実装されたプロセッサとを備え、前記プロセッサは、
ビデオデータの現在ブロックの残差ブロックが区分ツリータイプに従って複数の残差サブブロックに区分されると決定することと、
前記残差ブロックが区分されるかどうかを示す情報をシグナリングし、区分される前記残差ブロックの前記区分ツリータイプを示す情報をさらにシグナリングするビデオデータの符号化表現としてビットストリームを符号化することとを行うように構成された、デバイス。
[C30]
前記残差ブロックの前記区分ツリータイプを示す前記情報をシグナリングする前記ビットストリームが、ツリータイプのセットへのインデックス情報を含む、C29に記載のデバイス。
[C31]
ツリータイプの前記セットが、クワッドツリー区分およびバイナリツリー区分のうちの1つまたは複数を含む、C30に記載のデバイス。
[C32]
前記ビットストリームが、前記残差ブロックの前記区分ツリータイプが前記バイナリツリー区分であることをシグナリングするとき、前記ビットストリームは、前記残差ブロックが水平に分割されるか垂直に分割されるかを示す前記残差ブロックの区分タイプをさらにシグナリングする、C31に記載のデバイス。
[C33]
現在ブロックが、コーディングユニット(CU)または前記CUのブロックであり、
前記現在ブロックの前記残差ブロックが、変換ユニット(TU)または前記TUのブロックであり、
前記複数の残差サブブロックが、非正方形サブTUであり、前記CUとは異なるサイズのものである、C29に記載のデバイス。
[C34]
前記ビデオデータをキャプチャするように構成されたカメラをさらに備える、C29に記載のデバイス。
[C35]
カメラ、コンピュータ、モバイルデバイス、ブロードキャスト受信機デバイス、またはセットトップボックスのうちの1つまたは複数を備える、C29に記載のデバイス。
[C36]
集積回路、
マイクロプロセッサ、または
ワイヤレス通信デバイスのうちの少なくとも1つを備える、C29に記載のデバイス。

Claims (15)

  1. ビデオデータを復号する方法であって、
    前記ビデオデータの符号化表現を備えるビットストリーム中で、残差ブロックが区分されるかどうかを示す情報と、記残差ブロックが区分されることに基づ前記残差ブロックの区分ツリータイプを示す情報とを受信することと、ここにおいて、前記区分ツリータイプを示す情報が、前記残差ブロックのみに関連付けられ、前記残差ブロックが、現在ブロックと予測ブロックとの間の差分を示す、
    前記残差ブロックが区分されるという前記受信された情報と、前記残差ブロックの前記区分ツリータイプとに基づいて、前記区分ツリータイプに従った前記残差ブロックの複数の残差サブブロックへの区分を決定することと、
    前記残差ブロックの前記複数の残差サブブロックへの前記決定された区分に基づいて、かつ、前記残差ブロックについて、水平方向または垂直方向のうちの少なくとも1つにおける前記複数の残差サブブロックのための変換カーネルの変換タイプを明確に示すシンタックス要素を前記ビットストリーム中で受信することなく、水平方向または垂直方向のうちの少なくとも1つにおける前記複数の残差サブブロックのための変換カーネルの変換タイプを推論することと、
    前記残差ブロックが前記区分ツリータイプに従って前記複数の残差サブブロックに区分されること、および前記推論された変換カーネルを使用すること、に少なくとも一部基づいて、前記現在ブロックの残差データを生成することと、
    前記残差データを使用して前記現在ブロックを復号することと、
    を備える、方法。
  2. 前記区分ツリータイプを示す前記情報を受信することが、ツリータイプのセットへのインデックス情報を受信することを備え、前記方法が、前記受信されたインデックス情報に基づいて前記区分ツリータイプを決定することをさらに備える、請求項1に記載の方法。
  3. ツリータイプの前記セットが、クワッドツリー区分およびバイナリツリー区分のうちの1つまたは複数を含む、請求項2に記載の方法。
  4. 前記区分ツリータイプを決定することが、前記区分ツリータイプがバイナリツリー区分であると決定することを備え、前記方法は、前記残差ブロックが水平に分割されるか垂直に分割されるかを示す情報を受信することをさらに備える、請求項2に記載の方法。
  5. 前記現在ブロックが、インター予測またはイントラ予測される、請求項1に記載の方法。
  6. 前記現在ブロックが、コーディングユニット(CU)のルーマブロックを備える、請求項1に記載の方法。
  7. 前記現在ブロックが、コーディングユニット(CU)または前記CUのブロックであり、
    前記現在ブロックの前記残差ブロックが、変換ユニット(TU)または前記TUのブロックであり、
    前記複数の残差サブブロックが、非正方形サブTUであり、前記CUとは異なるサイズのものである、請求項1に記載の方法。
  8. 前記現在ブロックを復号することが、
    前記現在ブロックの予測モードを表すデータを復号することと、
    前記予測モードを使用して前記現在ブロックの前記予測ブロックを生成することと、
    前記現在ブロックを再生するために、前記予測ブロックを前記残差データと組み合わせることとを備える、請求項1に記載の方法。
  9. ビデオデータを復号するためのデバイスであって、
    前記ビデオデータの符号化表現を備えるビットストリーム中で、残差ブロックが区分されるかどうかを示す情報と、前記残差ブロックが区分されることに基づ前記残差ブロックの区分ツリータイプを示す情報とを受信するための手段と、ここにおいて、前記区分ツリータイプを示す情報が、前記残差ブロックのみに関連付けられ、前記残差ブロックが、現在ブロックと予測ブロックとの間の差分を示す、
    前記残差ブロックが区分されるという前記受信された情報と、前記残差ブロックの前記区分ツリータイプとに基づいて、前記区分ツリータイプに従った前記残差ブロックの複数の残差サブブロックへの区分を決定するための手段と、
    前記残差ブロックの前記複数の残差サブブロックへの前記決定された区分に基づいて、かつ、前記残差ブロックについて、水平方向または垂直方向のうちの少なくとも1つにおける前記複数の残差サブブロックのための変換カーネルの変換タイプを明確に示すシンタックス要を前記ビットストリーム中で受信することなく、水平方向または垂直方向のうちの少なくとも1つにおける前記複数の残差サブブロックのための変換カーネルの変換タイプを推論するための手段と、
    前記残差ブロックが前記区分ツリータイプに従って前記複数の残差サブブロックに区分されること、および前記推論された変換カーネルを使用すること、に少なくとも一部基づいて、前記現在ブロックの残差データを生成するための手段と、
    前記残差データを使用して前記現在ブロックを復号するための手段と、
    を備える、デバイス。
  10. 請求項2乃至8のいずれか一項に記載の前記方法を実行するための手段をさらに備える、請求項9に記載のデバイス。
  11. 前記復号された現在ブロックを表示するように構成されたディスプレイをさらに備える、請求項10に記載のデバイス。
  12. 前記デバイスは、カメラ、コンピュータ、モバイルデバイス、ブロードキャスト受信機デバイス、またはセットトップボックスのうちの1つまたは複数を備える、請求項10に記載のデバイス。
  13. 集積回路、
    マイクロプロセッサ、または
    ワイヤレス通信デバイスのうちの少なくとも1つを備える、請求項10に記載のデバイス。
  14. ビデオデータを符号化する方法であって、
    区分ツリータイプに従って、ビデオデータの現在ブロックの残差ブロックを複数の残差サブブロックに区分することと、
    前記残差ブロックの前記複数の残差サブブロックへの前記区分に基づいて、水平方向または垂直方向のうちの少なくとも1つにおける前記複数の残差サブブロックのための変換カーネルの変換タイプを決定することと、
    前記残差ブロックが区分されるかどうかを示す情報をシグナリングし、区分される前記残差ブロックの前記区分ツリータイプを示す情報をさらにシグナリングするビデオデータの符号化表現としてビットストリームを符号化することと、
    備え、
    前記区分ツリータイプを示す前記情報が、前記残差ブロックのみに関連付けられ、前記ビットストリームが、前記複数の残差サブブロックの前記変換タイプのためのシグナリングされインデックスなしで符号化される、方法。
  15. ビデオデータを符号化するためのデバイスであって、
    ビデオデータを記憶するように構成されたメモリと、
    回路中に実装されたプロセッサと、を備え、前記プロセッサは、
    区分ツリータイプに従って、ビデオデータの現在ブロックの残差ブロックを複数の残差サブブロックに区分することと、
    前記残差ブロックの前記複数の残差サブブロックへの前記区分に基づいて、水平方向または垂直方向のうちの少なくとも1つにおける前記複数の残差サブブロックのための変換カーネルの変換タイプを決定することと、
    前記残差ブロックが区分されるかどうかを示す情報をシグナリングし、区分される前記残差ブロックの前記区分ツリータイプを示す情報をさらにシグナリングするビデオデータの符号化表現としてビットストリームを符号化することと、を行うように構成され、
    記区分ツリータイプを示す前記情報が、前記残差ブロックのみに関連付けられ、前記ビットストリームが、前記複数の残差サブブロックの前記変換タイプのためのシグナリングされインデックスなしで符号化される、デバイス。
JP2021533599A 2018-12-19 2019-12-17 ビデオコーディングのためのツリーベース変換ユニット(tu)区分 Active JP7455840B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201862782292P 2018-12-19 2018-12-19
US62/782,292 2018-12-19
US16/715,274 US11323748B2 (en) 2018-12-19 2019-12-16 Tree-based transform unit (TU) partition for video coding
US16/715,274 2019-12-16
PCT/US2019/066966 WO2020131949A1 (en) 2018-12-19 2019-12-17 Tree-based transform unit (tu) partition for video coding

Publications (3)

Publication Number Publication Date
JP2022517908A JP2022517908A (ja) 2022-03-11
JPWO2020131949A5 JPWO2020131949A5 (ja) 2022-11-29
JP7455840B2 true JP7455840B2 (ja) 2024-03-26

Family

ID=71097950

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021533599A Active JP7455840B2 (ja) 2018-12-19 2019-12-17 ビデオコーディングのためのツリーベース変換ユニット(tu)区分

Country Status (18)

Country Link
US (1) US11323748B2 (ja)
EP (1) EP3900337A1 (ja)
JP (1) JP7455840B2 (ja)
KR (1) KR20210103481A (ja)
CN (1) CN113170129A (ja)
AR (1) AR117456A1 (ja)
AU (1) AU2019402886B2 (ja)
BR (1) BR112021010946A2 (ja)
CA (1) CA3120045A1 (ja)
CL (1) CL2021001576A1 (ja)
CO (1) CO2021007864A2 (ja)
IL (1) IL283175A (ja)
MX (1) MX2021007190A (ja)
PH (1) PH12021551118A1 (ja)
SA (1) SA521422205B1 (ja)
SG (1) SG11202105070SA (ja)
TW (1) TW202038617A (ja)
WO (1) WO2020131949A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020185027A1 (ko) * 2019-03-13 2020-09-17 현대자동차주식회사 데이터 블록에 변환 생략 모드를 효율적으로 적용하기 위한 방법 및 장치
US11172211B2 (en) * 2019-04-04 2021-11-09 Tencent America LLC Method and apparatus for video coding
US11546592B2 (en) 2020-01-08 2023-01-03 Tencent America LLC Flexible block partitioning for chroma component
US11388401B2 (en) * 2020-06-26 2022-07-12 Google Llc Extended transform partitions for video compression

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160219290A1 (en) 2015-01-26 2016-07-28 Qualcomm Incorporated Enhanced multiple transforms for prediction residual
US20170208336A1 (en) 2016-01-15 2017-07-20 Qualcomm Incorporated Multi-type-tree framework for video coding
US20180020218A1 (en) 2016-07-15 2018-01-18 Qualcomm Incorporated Look-up table for enhanced multiple transform
US20180063553A1 (en) 2016-08-15 2018-03-01 Qualcomm Incorporated Intra video coding using a decoupled tree structure

Family Cites Families (179)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
BE1000643A5 (fr) 1987-06-05 1989-02-28 Belge Etat Procede de codage de signaux d'image.
JPH01155678A (ja) 1987-12-11 1989-06-19 Matsushita Electric Ind Co Ltd 半導体発光装置
JPH0270127A (ja) 1988-09-06 1990-03-09 Toshiba Corp 変換符号化方式
US5136371A (en) 1990-03-15 1992-08-04 Thomson Consumer Electronics, Inc. Digital image coding using random scanning
US5424778A (en) 1992-08-31 1995-06-13 Victor Company Of Japan, Ltd. Orthogonal transform coding apparatus and decoding apparatus
TW224553B (en) 1993-03-01 1994-06-01 Sony Co Ltd Method and apparatus for inverse discrete consine transform and coding/decoding of moving picture
TW297202B (ja) 1993-10-13 1997-02-01 Rca Thomson Licensing Corp
EP0729688A1 (en) 1993-11-15 1996-09-04 National Semiconductor Corporation Quadtree-structured walsh transform coding
KR0183688B1 (ko) 1994-01-12 1999-05-01 김광호 영상부호화방법 및 장치
JP3086396B2 (ja) 1995-03-10 2000-09-11 シャープ株式会社 画像符号化装置及び画像復号装置
KR0178198B1 (ko) 1995-03-28 1999-05-01 배순훈 영상 신호 부호화 장치
US5721822A (en) 1995-07-21 1998-02-24 Intel Corporation Run-length encoding/decoding video signals using scan patterns explicitly encoded into bitstreams
US5790706A (en) 1996-07-03 1998-08-04 Motorola, Inc. Method and apparatus for scanning of transform coefficients
KR100211050B1 (ko) 1996-11-05 1999-07-15 이계철 선택적 양자화 계수 전송 장치 및 방법
EP1689189A3 (en) 1996-11-07 2008-12-10 Panasonic Corporation Image encoder and image decoder
JP2002232887A (ja) 1996-11-07 2002-08-16 Matsushita Electric Ind Co Ltd 画像符号化方法および画像符号化装置並びに画像復号化方法および画像復号化装置
US5974181A (en) 1997-03-20 1999-10-26 Motorola, Inc. Data compression system, method, and apparatus
JPH10271505A (ja) 1997-03-25 1998-10-09 Oki Electric Ind Co Ltd 信号処理装置、符号化回路および復号回路
US5995055A (en) 1997-06-30 1999-11-30 Raytheon Company Planar antenna radiating structure having quasi-scan, frequency-independent driving-point impedance
CN100459715C (zh) 1997-07-31 2009-02-04 日本胜利株式会社 数字视频信号块间预测编码/解码装置及编码/解码方法
WO2000010131A1 (en) 1998-08-10 2000-02-24 Digital Accelerator Corporation Embedded quadtree wavelets in image compression
EP0986026A1 (en) 1998-09-07 2000-03-15 STMicroelectronics S.r.l. Fractal coding of data in the DCT domain
JP4226172B2 (ja) 1998-11-24 2009-02-18 株式会社ハイニックスセミコンダクター 適応的変換方法を用いる映像圧縮符号化装置および復号化装置ならびにその方法
BR0014954A (pt) 1999-10-22 2002-07-30 Activesky Inc Sistema de vìdeo baseado em objetos
US6476805B1 (en) 1999-12-23 2002-11-05 Microsoft Corporation Techniques for spatial displacement estimation and multi-resolution operations on light fields
US6654503B1 (en) 2000-04-28 2003-11-25 Sun Microsystems, Inc. Block-based, adaptive, lossless image coder
US6724818B1 (en) 2000-07-17 2004-04-20 Telefonaktiebolaget Lm Ericsson (Publ) Alternative block orders for better prediction
CN1142683C (zh) 2000-10-13 2004-03-17 清华大学 无转置行列分离二维离散余弦正反变换电路及其方法
JP2002135126A (ja) 2000-10-26 2002-05-10 Seiko Epson Corp 半導体装置及びこれを用いた電子機器
TW589870B (en) 2000-12-19 2004-06-01 Pts Corp Adaptive transforms
US6856701B2 (en) 2001-09-14 2005-02-15 Nokia Corporation Method and system for context-based adaptive binary arithmetic coding
CN101448162B (zh) 2001-12-17 2013-01-02 微软公司 处理视频图像的方法
WO2003053066A1 (en) 2001-12-17 2003-06-26 Microsoft Corporation Skip macroblock coding
KR100468844B1 (ko) 2002-01-07 2005-01-29 삼성전자주식회사 정지영상 및 동영상을 부호화/복호화하기 위한변환계수들의 최적주사방법
JP4447197B2 (ja) 2002-01-07 2010-04-07 三菱電機株式会社 動画像符号化装置および動画像復号装置
US7190840B2 (en) 2002-01-07 2007-03-13 Hewlett-Packard Development Company, L.P. Transform coefficient compression using multiple scans
HU228615B1 (en) 2002-01-14 2013-04-29 Nokia Corp Method of coding of digital video pictures
CN1620816A (zh) 2002-01-22 2005-05-25 诺基亚有限公司 图像/视频编码器和/或解码器中的编码变换系数
US6757576B2 (en) 2002-02-05 2004-06-29 Gcc, Inc. System and method for drawing and manufacturing bent pipes
KR100508798B1 (ko) 2002-04-09 2005-08-19 엘지전자 주식회사 쌍방향 예측 블록 예측 방법
US20060218482A1 (en) 2002-04-19 2006-09-28 Droplet Technology, Inc. Mobile imaging application, device architecture, service platform architecture and services
US7170937B2 (en) 2002-05-01 2007-01-30 Texas Instruments Incorporated Complexity-scalable intra-frame prediction technique
PT1467491E (pt) 2002-05-02 2007-03-30 Fraunhofer Ges Forschung Codificação aritmética de coeficientes de transformação
EP2860978B1 (en) 2002-05-28 2020-04-08 Dolby International AB Method and systems for image intra-prediction mode estimation, communication, and organization
US7145948B2 (en) 2002-05-29 2006-12-05 Koninklijke Philips Electronics N.V. Entropy constrained scalar quantizer for a Laplace-Markov source
US20030231795A1 (en) 2002-06-12 2003-12-18 Nokia Corporation Spatial prediction based intra-coding
US7289674B2 (en) 2002-06-11 2007-10-30 Nokia Corporation Spatial prediction based intra coding
RU2314656C2 (ru) 2002-06-11 2008-01-10 Нокиа Корпорейшн Внутреннее кодирование, основанное на пространственном прогнозировании
CN100553339C (zh) 2002-07-15 2009-10-21 株式会社日立制作所 动态图像解码方法
US6795584B2 (en) 2002-10-03 2004-09-21 Nokia Corporation Context-based adaptive variable length coding for adaptive block transforms
US7463782B2 (en) 2002-11-05 2008-12-09 Canon Kabushiki Kaisha Data encoding with an amplitude model and path between the data and corresponding decoding
US20040091047A1 (en) 2002-11-11 2004-05-13 Sony Corporation Method and apparatus for nonlinear multiple motion model and moving boundary extraction
FI116710B (fi) 2002-12-20 2006-01-31 Oplayo Oy Kuvien koodausmenetelmä ja -järjestely
BRPI0408087A (pt) 2003-03-03 2006-02-14 Agency Science Tech & Res método de intrapredição de codificação de vìdeo avançada (avc) para codificar vìdeo digital, aparelho que utiliza essa intrapredição e produto de programa de computador
KR100750110B1 (ko) 2003-04-22 2007-08-17 삼성전자주식회사 4×4인트라 휘도 예측 모드 결정방법 및 장치
JP3756897B2 (ja) 2003-07-30 2006-03-15 株式会社東芝 動画像符号化装置及び動画像符号化方法
US7289562B2 (en) 2003-08-01 2007-10-30 Polycom, Inc. Adaptive filter to improve H-264 video quality
US20050036549A1 (en) 2003-08-12 2005-02-17 Yong He Method and apparatus for selection of scanning mode in dual pass encoding
US7782954B2 (en) 2003-09-07 2010-08-24 Microsoft Corporation Scan patterns for progressive video content
US7688894B2 (en) 2003-09-07 2010-03-30 Microsoft Corporation Scan patterns for interlaced video content
US7379608B2 (en) 2003-12-04 2008-05-27 Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung, E.V. Arithmetic coding for transforming video and picture data units
JP4142563B2 (ja) 2003-12-12 2008-09-03 株式会社エヌ・ティ・ティ・ドコモ 動画像符号化装置、動画像符号化方法、及び動画像符号化プログラム
JP4127818B2 (ja) 2003-12-24 2008-07-30 株式会社東芝 動画像符号化方法及びその装置
US7142231B2 (en) 2003-12-29 2006-11-28 Nokia Corporation Method and apparatus for improved handset multi-tasking, including pattern recognition and augmentation of camera images
EP1558039A1 (en) 2004-01-21 2005-07-27 Deutsche Thomson-Brandt Gmbh Method and apparatus for generating/evaluating prediction information in picture signal encoding/decoding
CN100479527C (zh) 2004-02-26 2009-04-15 联合信源数字音视频技术(北京)有限公司 一种帧内预测模式选取方法
JP4542447B2 (ja) 2005-02-18 2010-09-15 株式会社日立製作所 画像の符号化/復号化装置、符号化/復号化プログラム及び符号化/復号化方法
JP5037938B2 (ja) 2004-04-28 2012-10-03 日立コンシューマエレクトロニクス株式会社 画像の符号化/復号化装置、符号化/復号化プログラム及び符号化/復号化方法
US8731054B2 (en) 2004-05-04 2014-05-20 Qualcomm Incorporated Method and apparatus for weighted prediction in predictive frames
US8369402B2 (en) 2004-06-17 2013-02-05 Canon Kabushiki Kaisha Apparatus and method for prediction modes selection based on image formation
US7664184B2 (en) 2004-07-21 2010-02-16 Amimon Ltd. Interpolation image compression
EP1808024B1 (en) 2004-11-04 2013-04-17 Thomson Licensing Fast intra mode prediction for a video encoder
JP2006140758A (ja) 2004-11-12 2006-06-01 Toshiba Corp 動画像符号化方法、動画像符号化装置および動画像符号化プログラム
JP4763422B2 (ja) 2004-12-03 2011-08-31 パナソニック株式会社 イントラ予測装置
US8311119B2 (en) 2004-12-31 2012-11-13 Microsoft Corporation Adaptive coefficient scan order
US20060153295A1 (en) 2005-01-12 2006-07-13 Nokia Corporation Method and system for inter-layer prediction mode coding in scalable video coding
US7751478B2 (en) 2005-01-21 2010-07-06 Seiko Epson Corporation Prediction intra-mode selection in an encoder
US7706443B2 (en) 2005-03-11 2010-04-27 General Instrument Corporation Method, article of manufacture, and apparatus for high quality, fast intra coding usable for creating digital video content
JP2006295408A (ja) 2005-04-07 2006-10-26 Matsushita Electric Ind Co Ltd 画像符号化装置及び画像符号化プログラム
EP1711018A1 (en) 2005-04-08 2006-10-11 Thomson Licensing Method and apparatus for encoding video pictures, and method and apparatus for decoding video pictures
EP1878257A1 (en) 2005-04-12 2008-01-16 Nokia Corporation Method and system for motion compensated fine granularity scalable video coding with drift control
EP1768415A1 (en) 2005-09-27 2007-03-28 Matsushita Electric Industrial Co., Ltd. Adaptive scan order of DCT coefficients and its signaling
KR100703200B1 (ko) 2005-06-29 2007-04-06 한국산업기술대학교산학협력단 인트라 부호화 장치 및 방법
KR101088375B1 (ko) 2005-07-21 2011-12-01 삼성전자주식회사 가변 블록 변환 장치 및 방법 및 이를 이용한 영상부호화/복호화 장치 및 방법
CN102176754B (zh) 2005-07-22 2013-02-06 三菱电机株式会社 图像编码装置和方法、以及图像解码装置和方法
US20090123066A1 (en) 2005-07-22 2009-05-14 Mitsubishi Electric Corporation Image encoding device, image decoding device, image encoding method, image decoding method, image encoding program, image decoding program, computer readable recording medium having image encoding program recorded therein,
US7933337B2 (en) 2005-08-12 2011-04-26 Microsoft Corporation Prediction of transform coefficients for image compression
JP2007053561A (ja) 2005-08-17 2007-03-01 Matsushita Electric Ind Co Ltd 画像符号化装置および画像符号化方法
JP4650173B2 (ja) 2005-09-05 2011-03-16 ソニー株式会社 符号化装置、符号化方法、符号化方法のプログラム及び符号化方法のプログラムを記録した記録媒体
US20070070082A1 (en) 2005-09-27 2007-03-29 Ati Technologies, Inc. Sample-level screen-door transparency using programmable transparency sample masks
EP2733952A1 (en) 2005-10-21 2014-05-21 Electronics and Telecommunications Research Institute Method for encoding moving picture using adaptive scanning
WO2007063472A2 (en) 2005-11-30 2007-06-07 Koninklijke Philips Electronics N.V. Encoding method and apparatus applying coefficient reordering
US7529484B2 (en) 2005-12-14 2009-05-05 Nec Laboratories America, Inc. Triplexer transceiver using parallel signal detection
CN1801940A (zh) 2005-12-15 2006-07-12 清华大学 整型变换电路和整型变换方法
US7944965B2 (en) 2005-12-19 2011-05-17 Seiko Epson Corporation Transform domain based distortion cost estimation
US8000539B2 (en) 2005-12-21 2011-08-16 Ntt Docomo, Inc. Geometrical image representation and compression
JP2007189276A (ja) 2006-01-11 2007-07-26 Victor Co Of Japan Ltd 画像圧縮装置及び画像圧縮プログラム
KR101246294B1 (ko) 2006-03-03 2013-03-21 삼성전자주식회사 영상의 인트라 예측 부호화, 복호화 방법 및 장치
JP2007267123A (ja) 2006-03-29 2007-10-11 Victor Co Of Japan Ltd 動画像符号化装置
US8036264B2 (en) 2006-05-23 2011-10-11 Lsi Corporation Memory management in video decoding systems
US20080008246A1 (en) 2006-07-05 2008-01-10 Debargha Mukherjee Optimizing video coding
JP2008022405A (ja) 2006-07-14 2008-01-31 Sony Corp 画像処理装置および方法、並びに、プログラム
KR100882949B1 (ko) 2006-08-17 2009-02-10 한국전자통신연구원 화소 유사성에 따라 적응적인 이산 코사인 변환 계수스캐닝을 이용한 부호화/복호화 장치 및 그 방법
RU2407221C1 (ru) 2006-10-10 2010-12-20 Ниппон Телеграф Энд Телефон Корпорейшн Способ и устройство управления кодированием с внутренним предсказанием, программа для них и запоминающий носитель, который хранит программу
JP4908180B2 (ja) 2006-12-20 2012-04-04 株式会社東芝 動画像符号化装置
KR101366086B1 (ko) 2007-01-03 2014-02-21 삼성전자주식회사 잔차 블록의 계수들에 대한 부호화 결정 방법, 장치,인코더 및 디코더
WO2008084817A1 (ja) 2007-01-09 2008-07-17 Kabushiki Kaisha Toshiba 画像符号化と復号化の方法及び装置
JP2008193627A (ja) 2007-01-12 2008-08-21 Mitsubishi Electric Corp 画像符号化装置、画像復号装置、および画像符号化方法、画像復号方法
KR101365570B1 (ko) 2007-01-18 2014-02-21 삼성전자주식회사 인트라 예측 부호화, 복호화 방법 및 장치
KR101341111B1 (ko) 2007-01-18 2013-12-13 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 화질 스케일러블 비디오 데이터 스트림
US8406299B2 (en) 2007-04-17 2013-03-26 Qualcomm Incorporated Directional transforms for intra-coding
US8571104B2 (en) 2007-06-15 2013-10-29 Qualcomm, Incorporated Adaptive coefficient scanning in video coding
US8619853B2 (en) 2007-06-15 2013-12-31 Qualcomm Incorporated Separable directional transforms
RU2496252C2 (ru) 2007-06-29 2013-10-20 Шарп Кабусики Кайся Устройство кодирования изображения, способ кодирования изображения, устройство декодирования изображения, способ декодирования изображения, программа и запоминающий носитель
US8437564B2 (en) 2007-08-07 2013-05-07 Ntt Docomo, Inc. Image and video compression using sparse orthonormal transforms
TW200910971A (en) 2007-08-22 2009-03-01 Univ Nat Cheng Kung Direction detection algorithms for H.264 intra prediction
JP5004180B2 (ja) 2007-11-07 2012-08-22 Kddi株式会社 動画像符号化装置および復号装置
WO2009080133A1 (en) 2007-12-21 2009-07-02 Telefonaktiebolaget Lm Ericsson (Publ) Adaptive intra mode selection
EP2081386A1 (en) 2008-01-18 2009-07-22 Panasonic Corporation High precision edge prediction for intracoding
US8024121B2 (en) 2008-01-25 2011-09-20 Smith International, Inc. Data compression method for use in downhole applications
CN101577605B (zh) 2008-05-08 2014-06-18 吴志军 基于滤波器相似度的语音lpc隐藏和提取算法
KR101549823B1 (ko) 2008-09-02 2015-09-04 삼성전자주식회사 적응적 이진화를 이용한 영상 부호화, 복호화 방법 및 장치
KR20100027384A (ko) 2008-09-02 2010-03-11 삼성전자주식회사 예측 모드 결정 방법 및 장치
US20100172409A1 (en) 2009-01-06 2010-07-08 Qualcom Incorporated Low-complexity transforms for data compression and decompression
CN102598660B (zh) 2009-04-20 2015-04-29 杜比实验室特许公司 用于多层视频传输的自适应内插滤波器
CN102598667B (zh) 2009-09-14 2015-03-18 汤姆森特许公司 帧内预测模式的高效视频编码和解码的方法和装置
US20110116539A1 (en) 2009-11-13 2011-05-19 Freescale Semiconductor, Inc. Method and apparatus for video decoding with reduced complexity inverse transform
US20110317757A1 (en) 2010-06-25 2011-12-29 Qualcomm Incorporated Intra prediction mode signaling for finer spatial prediction directions
US9172968B2 (en) 2010-07-09 2015-10-27 Qualcomm Incorporated Video coding using directional transforms
US8885701B2 (en) 2010-09-08 2014-11-11 Samsung Electronics Co., Ltd. Low complexity transform coding using adaptive DCT/DST for intra-prediction
US9641846B2 (en) 2010-10-22 2017-05-02 Qualcomm Incorporated Adaptive scanning of transform coefficients for video coding
US10992958B2 (en) 2010-12-29 2021-04-27 Qualcomm Incorporated Video coding using mapped transforms and scanning modes
US9807424B2 (en) 2011-01-10 2017-10-31 Qualcomm Incorporated Adaptive selection of region size for identification of samples in a transition zone for overlapped block motion compensation
BR112013032333B1 (pt) 2011-06-16 2022-07-26 Ge Video Compression, Llc Comutação de modo auxiliar para codificação por entropia
US9516316B2 (en) 2011-06-29 2016-12-06 Qualcomm Incorporated VLC coefficient coding for large chroma block
EP2742690B1 (en) * 2011-08-08 2016-07-27 Google Technology Holdings LLC Residual tree structure of transform unit partitioning
GB2559062B (en) 2011-10-17 2018-11-14 Kt Corp Video decoding method using transform method selected from a transform method set
CN107835420B (zh) * 2011-10-18 2021-05-14 株式会社Kt 视频信号解码方法
KR20130049526A (ko) 2011-11-04 2013-05-14 오수미 복원 블록 생성 방법
US9883203B2 (en) 2011-11-18 2018-01-30 Qualcomm Incorporated Adaptive overlapped block motion compensation
US9621894B2 (en) 2012-01-13 2017-04-11 Qualcomm Incorporated Determining contexts for coding transform coefficient data in video coding
US9131210B2 (en) * 2012-03-16 2015-09-08 Texas Instruments Incorporated Low-complexity two-dimensional (2D) separable transform design with transpose buffer management
US9912944B2 (en) * 2012-04-16 2018-03-06 Qualcomm Incorporated Simplified non-square quadtree transforms for video coding
US9307264B2 (en) 2012-06-22 2016-04-05 Sharp Kabushiki Kaisha Arithmetic decoding device, arithmetic coding device, image decoding apparatus, and image coding apparatus
US20140044162A1 (en) * 2012-08-08 2014-02-13 Qualcomm Incorporated Adaptive inference mode information derivation in scalable video coding
US9319684B2 (en) 2012-08-21 2016-04-19 Qualcomm Incorporated Alternative transform in scalable video coding
US20140307780A1 (en) 2013-04-11 2014-10-16 Mitsubishi Electric Research Laboratories, Inc. Method for Video Coding Using Blocks Partitioned According to Edge Orientations
CN103402097B (zh) 2013-08-15 2016-08-10 清华大学深圳研究生院 一种自由视点视频深度图编码方法及其失真预测方法
US9445132B2 (en) 2013-09-09 2016-09-13 Qualcomm Incorporated Two level last significant coefficient (LSC) position coding
US10278767B2 (en) 2014-03-27 2019-05-07 Endomedical Concepts, Inc. Vaporization electrodes and electrosurgical devices equipped therewith
US10230980B2 (en) 2015-01-26 2019-03-12 Qualcomm Incorporated Overlapped motion compensation for video coding
WO2016195455A1 (ko) * 2015-06-04 2016-12-08 엘지전자(주) 그래프 기반 변환을 이용하여 비디오 신호를 처리하는 방법 및 장치
CN115134596A (zh) * 2015-06-05 2022-09-30 杜比实验室特许公司 用于执行帧间预测的图像编解码方法、比特流存储方法
JPWO2016203981A1 (ja) * 2015-06-16 2018-04-05 シャープ株式会社 画像復号装置及び画像符号化装置
US10123044B2 (en) * 2015-07-16 2018-11-06 Mediatek Inc. Partial decoding circuit of video encoder/decoder for dealing with inverse second transform and partial encoding circuit of video encoder for dealing with second transform
CN106658019B (zh) * 2015-10-31 2019-11-12 华为技术有限公司 参考帧编解码的方法与装置
US20170155905A1 (en) * 2015-11-30 2017-06-01 Intel Corporation Efficient intra video/image coding using wavelets and variable size transform coding
EP3335422B1 (en) 2015-12-23 2021-12-01 Huawei Technologies Co., Ltd. Method and apparatus for transform coding with block-level transform selection and implicit signaling within hierarchical partitioning
CN107566848B (zh) * 2016-06-30 2020-04-14 华为技术有限公司 编解码的方法及装置
CN117412042A (zh) * 2016-07-13 2024-01-16 韩国电子通信研究院 图像编码/解码方法和装置
WO2018045332A1 (en) * 2016-09-02 2018-03-08 Vid Scale, Inc. Methods and apparatus for coded block flag coding in quad-tree plus binary-tree block partitioning
WO2018054506A1 (en) 2016-09-23 2018-03-29 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Transform block coding
CN107888928B (zh) * 2016-09-30 2020-02-14 华为技术有限公司 运动补偿预测方法和设备
US10880564B2 (en) 2016-10-01 2020-12-29 Qualcomm Incorporated Transform selection for video coding
US11095893B2 (en) 2016-10-12 2021-08-17 Qualcomm Incorporated Primary transform and secondary transform in video coding
CN107959855B (zh) * 2016-10-16 2020-02-14 华为技术有限公司 运动补偿预测方法和设备
FR3058019A1 (fr) * 2016-10-21 2018-04-27 Orange Procede de codage et de decodage de parametres d'image, dispositif de codage et de decodage de parametres d'image et programmes d'ordinateur correspondants
CN108271023B (zh) * 2017-01-04 2021-11-19 华为技术有限公司 图像预测方法和相关设备
KR102559063B1 (ko) * 2017-02-24 2023-07-24 주식회사 케이티 비디오 신호 처리 방법 및 장치
US10904568B2 (en) * 2017-03-09 2021-01-26 Kt Corporation Video signal processing method and device for intra prediction of coding or prediction blocks based on sample position based parameters
US10523966B2 (en) 2017-03-31 2019-12-31 Mediatek Inc. Coding transform blocks
US20180288439A1 (en) 2017-03-31 2018-10-04 Mediatek Inc. Multiple Transform Prediction
AU2018270853B2 (en) * 2017-05-17 2021-04-01 Kt Corporation Method and device for video signal processing
WO2019076138A1 (en) 2017-10-16 2019-04-25 Huawei Technologies Co., Ltd. METHOD AND APPARATUS FOR ENCODING
US11297348B2 (en) * 2018-04-13 2022-04-05 Mediatek Inc. Implicit transform settings for coding a block of pixels
US10986340B2 (en) 2018-06-01 2021-04-20 Qualcomm Incorporated Coding adaptive multiple transform information for video coding
US11259052B2 (en) 2018-07-16 2022-02-22 Qualcomm Incorporated Transform variations of multiple separable transform selection
US10893286B2 (en) * 2018-10-09 2021-01-12 Tencent America LLC Methods and apparatus for low-complexity MTS
BR112021014671A2 (pt) * 2019-01-28 2021-09-28 Op Solutions, Llc Transformada discreta de cosseno de formato adaptativo para particionamento geométrico com um número adaptativo de regiões

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160219290A1 (en) 2015-01-26 2016-07-28 Qualcomm Incorporated Enhanced multiple transforms for prediction residual
US20170208336A1 (en) 2016-01-15 2017-07-20 Qualcomm Incorporated Multi-type-tree framework for video coding
US20180020218A1 (en) 2016-07-15 2018-01-18 Qualcomm Incorporated Look-up table for enhanced multiple transform
US20180063553A1 (en) 2016-08-15 2018-03-01 Qualcomm Incorporated Intra video coding using a decoupled tree structure

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Benjamin Bross, Jianle Chen, Shan Liu, and Ye-Kui Wang,Versatile Video Coding (Draft 7),Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11,JVET-P2001 (version 14),16th Meeting: Geneva, CH,2019年11月14日,pp.67-71,77-85,153,299-302

Also Published As

Publication number Publication date
PH12021551118A1 (en) 2021-12-13
AU2019402886A1 (en) 2021-06-10
AR117456A1 (es) 2021-08-04
EP3900337A1 (en) 2021-10-27
JP2022517908A (ja) 2022-03-11
AU2019402886B2 (en) 2024-08-15
CL2021001576A1 (es) 2022-01-07
SG11202105070SA (en) 2021-07-29
CN113170129A (zh) 2021-07-23
CO2021007864A2 (es) 2021-06-21
US20200204833A1 (en) 2020-06-25
MX2021007190A (es) 2021-07-21
WO2020131949A1 (en) 2020-06-25
KR20210103481A (ko) 2021-08-23
IL283175A (en) 2021-06-30
TW202038617A (zh) 2020-10-16
BR112021010946A2 (pt) 2021-08-24
US11323748B2 (en) 2022-05-03
SA521422205B1 (ar) 2024-05-14
CA3120045A1 (en) 2020-06-25

Similar Documents

Publication Publication Date Title
US10986340B2 (en) Coding adaptive multiple transform information for video coding
JP7545410B2 (ja) ビデオコーディングのための拡張されたマルチプル変換選択
US20200366937A1 (en) Low-frequency non-separable transform signaling based on zero-out patterns for video coding
JP7455840B2 (ja) ビデオコーディングのためのツリーベース変換ユニット(tu)区分
US11539952B2 (en) Implicit transform selection in video coding
US11595663B2 (en) Secondary transform designs for partitioned transform units in video coding
US11259052B2 (en) Transform variations of multiple separable transform selection
JP2023040020A (ja) ビデオコーディングにおける係数領域ブロック差分パルスコード変調
JP7423647B2 (ja) 異なるクロマフォーマットを使用した三角予測ユニットモードでのビデオコーディング
US11228763B2 (en) Residual coding to support both lossy and lossless coding
JP2023544046A (ja) 高ビット深度ビデオコーディングのためのライスパラメータ値の適応的な導出
TW202131686A (zh) 視訊解碼中對多重變換選擇訊號傳遞的基於係數組的約束
JP2022552173A (ja) ビデオコーディングのための変換スキップにおける残差値のためのコーディング方式をシグナリングすること
RU2809181C2 (ru) Сегментация единиц преобразования (tu) на основе дерева для кодирования видео
KR20240087720A (ko) 비디오 코딩을 위한 다수의 변환 후보들의 적응적 결정

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20220222

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20221118

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20221118

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20230104

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20231010

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20231225

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240213

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240313

R150 Certificate of patent or registration of utility model

Ref document number: 7455840

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150