(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公表特許公報(A)
(11)【公表番号】
(43)【公表日】2023-04-13
(54)【発明の名称】最大変換サイズ及び残差符号化方法のシグナリング
(51)【国際特許分類】
H04N 19/70 20140101AFI20230406BHJP
H04N 19/176 20140101ALI20230406BHJP
H04N 19/157 20140101ALI20230406BHJP
【FI】
H04N19/70
H04N19/176
H04N19/157
【審査請求】未請求
【予備審査請求】未請求
(21)【出願番号】P 2022545785
(86)(22)【出願日】2021-01-29
(85)【翻訳文提出日】2022-09-16
(86)【国際出願番号】 US2021015693
(87)【国際公開番号】W WO2021167769
(87)【国際公開日】2021-08-26
(32)【優先日】2020-02-21
(33)【優先権主張国・地域又は機関】US
(81)【指定国・地域】
(71)【出願人】
【識別番号】511050697
【氏名又は名称】アリババ グループ ホウルディング リミテッド
(74)【代理人】
【識別番号】100079108
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【氏名又は名称】大貫 敏史
(74)【代理人】
【識別番号】100117189
【氏名又は名称】江口 昭彦
(74)【代理人】
【識別番号】100134120
【氏名又は名称】内藤 和彦
(72)【発明者】
【氏名】サーヴァー,モハメッド ゴラム
(72)【発明者】
【氏名】ルオ,ジャンコン
(72)【発明者】
【氏名】イエ,ヤン
【テーマコード(参考)】
5C159
【Fターム(参考)】
5C159MA04
5C159MA05
5C159MA21
5C159MC11
5C159ME01
5C159PP05
5C159PP06
5C159PP07
5C159PP16
5C159RC12
5C159TA12
5C159TA21
5C159TA37
5C159TB08
5C159TC26
5C159TD02
5C159TD12
5C159UA02
5C159UA05
5C159UA16
(57)【要約】
本開示は、最大変換サイズ及び残差符号化方法をシグナリングするシステム及び方法を提供する。特定の開示実施形態によれば、方法は、ピクチャセットを含むビットストリームを受け取ることと、受け取ったビットストリームに従って、符号化ツリーブロックサイズの値を決定することと、符号化ツリーブロックサイズの値に基づいて、ルマサンプルに関する最大変換サイズを示すフラグをシグナリングするか否かを決定することと、を含む。
【特許請求の範囲】
【請求項1】
ピクチャセットを含むビットストリームを受け取ることと、
前記受け取ったビットストリームに従って、符号化ツリーブロックサイズの値を決定することと、
前記符号化ツリーブロックサイズの前記値に基づいて、ルマサンプルに関する最大変換サイズを示すフラグをシグナリングするか否かを決定することと、
を含む、映像データシグナリング方法。
【請求項2】
前記フラグをシグナリングするか否かを決定することが、
前記符号化ツリーブロックサイズの前記値が32より大きいことに応答して、前記フラグをシグナリングすること、又は
前記符号化ツリーブロックサイズの前記値が32以下であることに応答して、前記フラグがシグナリングされないことを決定すること、
を含む、請求項1に記載の方法。
【請求項3】
前記フラグをシグナリングするか否かを決定することが、
前記符号化ツリーブロックサイズの前記値が32に等しくないことに応答して、前記フラグをシグナリングすること、又は
前記符号化ツリーブロックサイズの前記値が32に等しいことに応答して、前記フラグがシグナリングされないことを決定すること、
を含む、請求項1に記載の方法。
【請求項4】
前記符号化ツリーブロックサイズの前記値が、符号化ツリーユニットのルマ符号化ツリーブロックサイズに関連付けられた値をさらに含む、請求項1に記載の方法。
【請求項5】
前記フラグをシグナリングするか否かを決定することが、
前記ルマ符号化ツリーブロックサイズに関連付けられた前記値が0より大きいことに応答して、前記フラグをシグナリングすること、又は
前記ルマ符号化ツリーブロックサイズに関連付けられた前記値が0に等しいことに応答して、前記フラグがシグナリングされないことを決定すること、
を含む、請求項4に記載の方法。
【請求項6】
前記フラグをシグナリングするか否かを決定することが、
前記ルマ符号化ツリーブロックサイズに関連付けられた前記値が0に等しくないことに応答して、前記フラグをシグナリングすること、又は
前記ルマ符号化ツリーブロックサイズに関連付けられた前記値が0に等しいことに応答して、前記フラグがシグナリングされないことを決定すること、
を含む、請求項4に記載の方法。
【請求項7】
前記最大変換サイズが64であることを前記フラグが示す、請求項1に記載の方法。
【請求項8】
映像データシグナリング装置であって、
命令セットを保存するメモリと、
1つ又は複数のプロセッサとを含み、前記1つ又は複数のプロセッサは、前記命令セットを実行して、
ピクチャセットを含むビットストリームを受け取ることと、
前記受け取ったビットストリームに従って、符号化ツリーブロックサイズの値を決定することと、
前記符号化ツリーブロックサイズの前記値に基づいて、ルマサンプルに関する最大変換サイズを示すフラグをシグナリングするか否かを決定することと、
を前記装置に行わせるように構成される、映像データシグナリング装置。
【請求項9】
前記フラグをシグナリングするか否かを決定することにおいて、前記1つ又は複数のプロセッサが、前記命令セットを実行して、
前記符号化ツリーブロックサイズの前記値が32より大きいことに応答して、前記フラグをシグナリングすること、又は
前記符号化ツリーブロックサイズの前記値が32以下であることに応答して、前記フラグがシグナリングされないことを決定すること、
を前記装置にさらに行わせるように構成される、請求項8に記載の装置。
【請求項10】
前記フラグをシグナリングするか否かを決定することにおいて、前記1つ又は複数のプロセッサが、前記命令セットを実行して、
前記符号化ツリーブロックサイズの前記値が32に等しくないことに応答して、前記フラグをシグナリングすること、又は
前記符号化ツリーブロックサイズの前記値が32に等しいことに応答して、前記フラグがシグナリングされないことを決定すること、
を前記装置にさらに行わせるように構成される、請求項8に記載の装置。
【請求項11】
前記符号化ツリーブロックサイズの前記値が、符号化ツリーユニットのルマ符号化ツリーブロックサイズに関連付けられた値をさらに含む、請求項8に記載の装置。
【請求項12】
前記フラグをシグナリングするか否かを決定することにおいて、前記1つ又は複数のプロセッサが、前記命令セットを実行して、
前記ルマ符号化ツリーブロックサイズに関連付けられた前記値が0より大きいことに応答して、前記フラグをシグナリングすること、又は
前記ルマ符号化ツリーブロックサイズに関連付けられた前記値が0に等しいことに応答して、前記フラグがシグナリングされないことを決定すること、
を前記装置にさらに行わせるように構成される、請求項11に記載の装置。
【請求項13】
前記フラグをシグナリングするか否かを決定することにおいて、前記1つ又は複数のプロセッサが、前記命令セットを実行して、
前記ルマ符号化ツリーブロックサイズに関連付けられた前記値が0に等しくないことに応答して、前記フラグをシグナリングすること、又は
前記ルマ符号化ツリーブロックサイズに関連付けられた前記値が0に等しいことに応答して、前記フラグがシグナリングされないことを決定すること、
を前記装置にさらに行わせるように構成される、請求項11に記載の装置。
【請求項14】
命令セットを保存する非一時的コンピュータ可読媒体であって、前記命令セットは、映像データシグナリング方法をコンピュータに行わせるために、前記コンピュータの少なくとも1つのプロセッサによって実行可能であり、前記方法が、
ピクチャセットを含むビットストリームを受け取ることと、
前記受け取ったビットストリームに従って、符号化ツリーブロックサイズの値を決定することと、
前記符号化ツリーブロックサイズの前記値に基づいて、ルマサンプルに関する最大変換サイズを示すフラグをシグナリングするか否かを決定することと、
を含む、非一時的コンピュータ可読媒体。
【請求項15】
前記フラグをシグナリングするか否かを決定することが、
前記符号化ツリーブロックサイズの前記値が32より大きいことに応答して、前記フラグをシグナリングすること、又は
前記符号化ツリーブロックサイズの前記値が32以下であることに応答して、前記フラグがシグナリングされないことを決定すること、
を含む、請求項14に記載の非一時的コンピュータ可読媒体。
【請求項16】
前記フラグをシグナリングするか否かを決定することが、
前記符号化ツリーブロックサイズの前記値が32に等しくないことに応答して、前記フラグをシグナリングすること、又は
前記符号化ツリーブロックサイズの前記値が32に等しいことに応答して、前記フラグがシグナリングされないことを決定すること、
を含む、請求項14に記載の非一時的コンピュータ可読媒体。
【請求項17】
前記符号化ツリーブロックサイズの前記値が、符号化ツリーユニットのルマ符号化ツリーブロックサイズに関連付けられた値をさらに含む、請求項14に記載の非一時的コンピュータ可読媒体。
【請求項18】
前記フラグをシグナリングするか否かを決定することが、
前記ルマ符号化ツリーブロックサイズに関連付けられた前記値が0より大きいことに応答して、前記フラグをシグナリングすること、又は
前記ルマ符号化ツリーブロックサイズに関連付けられた前記値が0に等しいことに応答して、前記フラグがシグナリングされないことを決定すること、
を含む、請求項17に記載の非一時的コンピュータ可読媒体。
【請求項19】
前記フラグをシグナリングするか否かを決定することが、
前記ルマ符号化ツリーブロックサイズに関連付けられた前記値が0に等しくないことに応答して、前記フラグをシグナリングすること、又は
前記ルマ符号化ツリーブロックサイズに関連付けられた前記値が0に等しいことに応答して、前記フラグがシグナリングされないことを決定すること、
を含む、請求項17に記載の非一時的コンピュータ可読媒体。
【請求項20】
前記最大変換サイズが64であることを前記フラグが示す、請求項14に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
[0001] 本開示は、全体として本明細書に援用される、2020年2月21日に出願された米国仮特許出願第62/980,117号に対する優先権を主張するものである。
【0002】
技術分野
[0002] 本開示は、一般に映像処理に関し、より具体的には、最大変換サイズ及び残差符号化方法をシグナリングする方法及び装置に関する。
【背景技術】
【0003】
背景
[0003] 映像は、視覚情報を捕捉する一連の静止ピクチャ(又は「フレーム」)である。記憶メモリ及び伝送帯域幅を減少させるために、映像は、記憶又は伝送前に圧縮され、表示前に復元され得る。圧縮プロセスは、通常、エンコーディングと呼ばれ、復元プロセスは、通常、デコーディングと呼ばれる。最も一般的には、予測、変換、量子化、エントロピー符号化、及びインループフィルタリングに基づく、標準化映像符号化技術を用いる様々な映像符号化フォーマットが存在する。特定の映像符号化フォーマットを指定する、HEVC(High Efficiency Video Coding)/H.265標準規格、VVC(Versatile Video Coding)/H.266標準規格、及びAVS標準規格などの映像符号化標準規格が、標準化機関によって開発されている。ますます高度な映像符号化技術が、映像標準規格に採用されるにつれて、新しい映像符号化標準規格の符号化効率は、ますます高くなる。
【発明の概要】
【課題を解決するための手段】
【0004】
開示の概要
[0004] 本開示の実施形態は、最大変換サイズをシグナリングする方法及び装置を提供する。幾つかの例示的実施形態では、方法は、ピクチャセットを含むビットストリームを受け取ることと、受け取ったビットストリームに従って、符号化ツリーブロックサイズの値を決定することと、符号化ツリーブロックサイズの値に基づいて、ルマサンプルに関する最大変換サイズを示すフラグをシグナリングするか否かを決定することと、を含む。
【0005】
[0005] 装置は、命令セットを保存するメモリと、1つ又は複数のプロセッサとを含み、1つ又は複数のプロセッサは、命令セットを実行して、ピクチャセットを含むビットストリームを受け取ることと、受け取ったビットストリームに従って、符号化ツリーブロックサイズの値を決定することと、符号化ツリーブロックサイズの値に基づいて、ルマサンプルに関する最大変換サイズを示すフラグをシグナリングするか否かを決定することと、を装置に行わせるように構成される。
【0006】
[0006] 本開示の実施形態は、命令セットを保存する非一時的コンピュータ可読媒体であって、命令セットは、最大変換サイズをシグナリングする方法をコンピュータに行わせるために、コンピュータの少なくとも1つのプロセッサによって実行可能であり、当該方法が、ピクチャセットを含むビットストリームを受け取ることと、受け取ったビットストリームに従って、符号化ツリーブロックサイズの値を決定することと、符号化ツリーブロックサイズの値に基づいて、ルマサンプルに関する最大変換サイズを示すフラグをシグナリングするか否かを決定することと、を含む、非一時的コンピュータ可読媒体をさらに提供する。
【0007】
[0007] 本開示の実施形態は、残差符号化方法をシグナリングする方法及び装置も提供する。幾つかの例示的実施形態では、方法は、ピクチャセットを含むビットストリームを受け取ることと、受け取ったビットストリームに従って、変換スキップモードが有効にされるか否かを示す第1のフラグの値を決定することと、第1のフラグの値に基づいて、残差符号化方法を示す第2のフラグをシグナリングするか否かを決定することと、を含む。
【0008】
[0008] 装置は、命令セットを保存するメモリと、1つ又は複数のプロセッサとを含み、1つ又は複数のプロセッサは、命令セットを実行して、ピクチャセットを含むビットストリームを受け取ることと、受け取ったビットストリームに従って、変換スキップモードが有効にされるか否かを示す第1のフラグの値を決定することと、第1のフラグの値に基づいて、残差符号化方法を示す第2のフラグをシグナリングするか否かを決定することと、を装置に行わせるように構成される。
【0009】
[0009] 本開示の実施形態は、命令セットを保存する非一時的コンピュータ可読媒体であって、命令セットは、残差符号化方法をシグナリングする方法をコンピュータに行わせるために、コンピュータの少なくとも1つのプロセッサによって実行可能であり、当該方法が、ピクチャセットを含むビットストリームを受け取ることと、受け取ったビットストリームに従って、変換スキップモードが有効にされるか否かを示す第1のフラグの値を決定することと、第1のフラグの値に基づいて、残差符号化方法を示す第2のフラグをシグナリングするか否かを決定することと、を含む、非一時的コンピュータ可読媒体をさらに提供する。
【0010】
図面の簡単な説明
[0010] 本開示の実施形態及び様々な局面は、以下の詳細な説明及び添付の図面に示される。図面に示される様々なフィーチャは、一定の縮尺で描かれていない。
【図面の簡単な説明】
【0011】
【
図1】[0011]本開示の幾つかの実施形態と一致した、映像シーケンス例の構造を示す模式図である。
【
図2A】[0012]本開示の幾つかの実施形態と一致した、ハイブリッド映像符号化システムの例示的エンコーディングプロセスを示す模式図である。
【
図2B】[0013]本開示の幾つかの実施形態と一致した、ハイブリッド映像符号化システムの別の例示的エンコーディングプロセスを示す模式図である。
【
図3A】[0014]本開示の幾つかの実施形態と一致した、ハイブリッド映像符号化システムの例示的デコーディングプロセスを示す模式図である。
【
図3B】[0015]本開示の幾つかの実施形態と一致した、ハイブリッド映像符号化システムの別の例示的デコーディングプロセスを示す模式図である。
【
図4】[0016]本開示の幾つかの実施形態と一致した、映像をエンコード又はデコードするための例示的装置のブロック図である。
【
図5A】[0017]本開示の幾つかの実施形態と一致した、最大変換サイズをシグナリングするための例示的方法である。
【
図5B】[0018]本開示の幾つかの実施形態と一致した、最大変換サイズをシグナリングするための例示的方法である。
【
図6A】[0019]本開示の幾つかの実施形態と一致した、残差符号化方法をシグナリングするための例示的方法である。
【
図6B】[0020]本開示の幾つかの実施形態と一致した、残差符号化方法をシグナリングするための例示的方法である。
【発明を実施するための形態】
【0012】
詳細な説明
[0021] これより、その例が添付の図面に示される例示的実施形態に詳細に言及する。以下の説明は、別段の説明のない限り、異なる図面の同じ番号が、同じ又は類似の要素を表す、添付の図面を参照する。例示的実施形態の以下の説明に記載する実施態様は、本発明と一致した全ての実施態様を表すわけではない。代わりに、それらは、添付の特許請求の範囲に記載される本発明に関連する局面と一致した装置及び方法の例に過ぎない。以下に、本開示の特定の局面をより詳細に記載する。援用された用語及び/又は定義と矛盾する場合は、本明細書に提供される用語及び定義が、支配権を握る。
【0013】
[0022] ITU-T VCEG(ITU-T Video Coding Expert Group)及びISO/IEC MPEG(ISO/IEC Moving Picture Expert Group)のJVET(Joint Video Experts Team)は、現在、VVC(Versatile Video Coding)/H.266標準規格を開発中である。VVC標準規格は、その先行バージョンであるHEVC(High Efficiency Video Coding)/H.265標準規格の圧縮効率を倍にすることを目的とする。つまり、VVCの目標は、HEVC/H.265と同じ主観的品質を半分の帯域幅で達成することである。
【0014】
[0023] 半分の帯域幅でHEVC/H.265と同じ主観的品質を達成するために、JVETは、JEM(joint exploration model)参照ソフトウェアを使用して、HEVCを超える技術を開発してきた。符号化技術がJEMに組み込まれたため、JEMは、HEVCよりも大幅に高い符号化性能を実現した。
【0015】
[0024] VVC標準規格は、最近開発されたものであり、より良い圧縮性能を提供する、さらに多くの符号化技術を加え続けている。VVCは、HEVC、H.264/AVC、MPEG2、H.263などの近代の映像圧縮標準規格で使用されてきた、同じハイブリッド映像符号化システムに基づく。
【0016】
[0025] 映像は、視覚情報を保存するために、時系列で配置された一連の静止ピクチャ(又は「フレーム」)である。映像キャプチャデバイス(例えば、カメラ)を使用して、これらのピクチャを時系列で捕捉及び保存することができ、映像再生デバイス(例えば、テレビ、コンピュータ、スマートフォン、タブレットコンピュータ、ビデオプレーヤー、又は表示機能を備えた任意のエンドユーザ端末)を使用して、このようなピクチャを時系列で表示することができる。また、用途によっては、監視、会議の開催、又は生放送などのために、映像キャプチャデバイスは、捕捉された映像を映像再生デバイス(例えば、モニタを備えたコンピュータ)にリアルタイムで伝送することができる。
【0017】
[0026] このような用途で必要とされる記憶空間及び伝送帯域幅を減少させるために、映像は、記憶及び伝送前に圧縮され、表示前に復元され得る。圧縮及び復元は、プロセッサ(例えば、汎用コンピュータのプロセッサ)又は専用ハードウェアによって実行されるソフトウェアによって実施され得る。圧縮用のモジュールは、一般に「エンコーダ」と呼ばれ、復元用のモジュールは、一般に「デコーダ」と呼ばれる。エンコーダ及びデコーダは、まとめて「コーデック」と呼ばれることがある。エンコーダ及びデコーダは、様々な適切なハードウェア、ソフトウェア、又はこれらの組み合わせの何れかとして実装され得る。例えば、エンコーダ及びデコーダのハードウェア実装は、1つ又は複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、離散論理、又はこれらの任意の組み合わせなどの回路網を含み得る。エンコーダ及びデコーダのソフトウェア実装は、プログラムコード、コンピュータ実行可能命令、ファームウェア、又はコンピュータ可読媒体に固定された、任意の適切なコンピュータ実施アルゴリズム若しくはプロセスを含み得る。映像圧縮及び復元は、MPEG-1、MPEG-2、MPEG-4、H.26x系などの様々なアルゴリズム又は標準規格によって実施され得る。用途によっては、コーデックが、第1の符号化標準規格から映像を復元し、第2の符号化標準規格を用いて復元映像を再圧縮することができ、この場合、コーデックは、「トランスコーダ」と呼ばれることがある。
【0018】
[0027] 映像エンコーディングプロセスは、ピクチャの再構成のために使用することができる有用な情報を識別及び保持し、再構成にとって重要ではない情報を無視することができる。無視された重要ではない情報を完全に再構成することができない場合、このようなエンコーディングプロセスは、「不可逆」と呼ばれることがある。そうでなければ、それは、「可逆」と呼ばれることがある。ほとんどのエンコーディングプロセスは、不可逆であり、これは、必要とされる記憶空間及び伝送帯域幅を減少させるためのトレードオフである。
【0019】
[0028] エンコードされているピクチャ(「現在のピクチャ」と呼ばれる)の有用な情報は、参照ピクチャ(例えば、前にエンコードされた、及び再構成されたピクチャ)に対する変化を含む。このような変化は、ピクセルの位置変化、輝度変化、又は色変化を含む場合があり、そのなかで、位置変化は、最も重要である。物体を表すピクセル群の位置変化は、参照ピクチャ及び現在のピクチャ間の物体の動きを反映し得る。
【0020】
[0029] 別のピクチャを参照することなく符号化されたピクチャ(すなわち、それは、それ自体の参照ピクチャである)は、「Iピクチャ」と呼ばれる。前のピクチャを参照ピクチャとして使用して符号化されたピクチャは、「Pピクチャ」と呼ばれる。前のピクチャ及び未来のピクチャの両方を参照ピクチャとして使用して(すなわち、参照が「双方向」である)符号化されたピクチャは、「Bピクチャ」と呼ばれる。
【0021】
[0030]
図1は、本開示の幾つかの実施形態による、映像シーケンス例100の構造を示す。映像シーケンス100は、ライブ映像、又は捕捉及びアーカイブされた映像でもよい。映像100は、実際の映像、コンピュータ生成された映像(例えば、コンピュータゲーム映像)、又はそれらの組み合わせ(例えば、拡張現実効果を有した実際の映像)でもよい。映像シーケンス100は、映像キャプチャデバイス(例えば、カメラ)、前に捕捉された映像を包含する映像アーカイブ(例えば、記憶デバイスに保存された映像ファイル)、又は映像コンテンツプロバイダから映像を受信するための映像フィードインタフェース(例えば、映像ブロードキャストトランシーバ)から入力され得る。
【0022】
[0031]
図1に示されるように、映像シーケンス100は、ピクチャ102、104、106、及び108を含む、タイムラインに沿って時間的に配置された一連のピクチャを含み得る。ピクチャ102~106は連続しており、ピクチャ106と108との間には、さらに多くのピクチャが存在する。
図1では、ピクチャ102は、Iピクチャであり、それの参照ピクチャは、ピクチャ102自体である。ピクチャ104は、Pピクチャであり、それの参照ピクチャは、矢印によって示されるように、ピクチャ102である。ピクチャ106は、Bピクチャであり、それの参照ピクチャは、矢印によって示されるように、ピクチャ104及び108である。幾つかの実施形態では、あるピクチャ(例えば、ピクチャ104)の参照ピクチャは、当該ピクチャの直前又は直後に存在しなくてもよい。例えば、ピクチャ104の参照ピクチャは、ピクチャ102に先行するピクチャでもよい。ピクチャ102~106の参照ピクチャは単なる例であり、本開示は、参照ピクチャの実施形態を
図1に示される例のように限定しないことに留意されたい。
【0023】
[0032] 一般的に、映像コーデックは、ピクチャ全体のエンコーディング又はデコーディングを、そのようなタスクの計算の複雑さゆえに、一度に行わない。より正確に言えば、それらは、ピクチャを基本セグメントに分割し、セグメントごとにピクチャをエンコード又はデコードし得る。このような基本セグメントは、本開示では、基本処理ユニット(「BPU(basic processing unit)」)と呼ばれる。例えば、
図1の構造110は、映像シーケンス100のあるピクチャ(例えば、ピクチャ102~108の何れか)の構造例を示す。構造110では、ピクチャは、4×4の基本処理ユニットに分割され、それらの境界は、破線で示されている。幾つかの実施形態では、基本処理ユニットは、一部の映像符号化標準規格(例えば、MPEG系統、H.261、H.263、若しくはH.264/AVC)では「マクロブロック」と呼ばれることがあり、又は一部の他の映像符号化標準規格(例えば、H.265/HEVC若しくはH.266/VVC)では、「符号化ツリーユニット」(「CTU(coding tree unit)」)と呼ばれることがある。基本処理ユニットは、128×128、64×64、32×32、16×16、4×8、16×32、又はピクセルの任意の形状及びサイズなどのピクチャの可変サイズを有し得る。基本処理ユニットのサイズ及び形状は、符号化効率と、基本処理ユニットにおいて維持されるべき詳細さのレベルのバランスに基づいて、ピクチャごとに選択することができる。CTUは、最大ブロックユニットであり、128×128もの数のルマサンプル(クロマフォーマットに応じて、対応するクロマサンプルをプラスする)を含み得る。CTUは、四分木、二分木、三分木、又はこれらの組み合わせを使用して、符号化ユニット(CU)にさらに区分化することができる。
【0024】
[0033] 基本処理ユニットは、コンピュータメモリに(例えば、映像フレームバッファに)保存された異なる複数のタイプの映像データの一群を含み得る論理ユニットでもよい。例えば、カラーピクチャの基本処理ユニットは、無彩色の明度情報を表すルマ成分(Y)、色情報を表す1つ又は複数のクロマ成分(例えば、Cb及びCr)、並びに関連のシンタックス要素を含み得る(ここでは、ルマ成分及びクロマ成分は、同じサイズの基本処理ユニットを有し得る)。ルマ成分及びクロマ成分は、一部の映像符号化標準規格(例えば、H.265/HEVC又はH.266/VVC)では、「符号化ツリーブロック」(「CTB(coding tree block)」)と呼ばれることがある。基本処理ユニットに対して行われるどのような演算も、それのルマ成分及びクロマ成分のそれぞれに対して繰り返し行うことができる。
【0025】
[0034] 映像符号化は、複数の演算ステージを有し、これらの例を
図2A~2B及び
図3A~3Bに示す。各ステージで、基本処理ユニットのサイズが、処理するにはまだ大き過ぎる場合があり、したがって、本開示では「基本処理サブユニット」と呼ばれるセグメントへとさらに分割され得る。幾つかの実施形態では、基本処理サブユニットは、一部の映像符号化標準規格(例えば、MPEG系統、H.261、H.263、若しくはH.264/AVC)では「ブロック」と呼ばれることがあり、又は一部の他の映像符号化標準規格(例えば、H.265/HEVC若しくはH.266/VVC)では、「符号化ユニット」(「CU(coding unit)」)と呼ばれることがある。基本処理サブユニットは、基本処理ユニットと同じ又はより小さいサイズを有してもよい。基本処理ユニットと同様に、基本処理サブユニットも、コンピュータメモリに(例えば、映像フレームバッファに)保存された異なる複数のタイプの映像データ(例えば、Y、Cb、Cr、及び関連のシンタックス要素)の一群を含み得る論理ユニットである。基本処理サブユニットに対して行われるどのような演算も、それのルマ成分及びクロマ成分のそれぞれに対して繰り返し行うことができる。このような分割は、処理のニーズに応じてさらなるレベルに対して行われ得ることに留意されたい。異なるステージが異なるスキームを用いて基本処理ユニットを分割し得ることにも留意されたい。
【0026】
[0035] 例えば、モード決定ステージ(それの一例を
図2Bに示す)において、エンコーダは、基本処理ユニットに対してどの予測モード(例えば、イントラピクチャ予測又はインターピクチャ予測)を使用すべきかを決定することができ、基本処理ユニットは、このような決定を下すには大き過ぎる場合がある。エンコーダは、基本処理ユニットを複数の基本処理サブユニット(例えば、H.265/HEVC又はH.266/VVCの場合のCU)に分割し、個々の基本処理サブユニットごとに予測タイプを決定することができる。
【0027】
[0036] 別の例として、予測ステージ(それの一例を
図2A~2Bに示す)において、エンコーダは、基本処理サブユニット(例えば、CU)のレベルで予測演算を行うことができる。しかしながら、場合によっては、基本処理サブユニットは、処理するにはまだ大き過ぎる場合がある。エンコーダは、基本処理サブユニットを(例えば、H.265/HEVC又はH.266/VVCにおいては「予測ブロック」又は「PB(prediction block)」と呼ばれる)より小さなセグメントにさらに分割することができ、このセグメントのレベルで、予測演算を行うことができる。
【0028】
[0037] 別の例として、変換ステージ(それの一例を
図2A~2Bに示す)では、エンコーダは、残差基本処理サブユニット(例えば、CU)に対して変換演算を行うことができる。しかしながら、場合によっては、基本処理サブユニットは、処理するにはまだ大き過ぎる場合がある。エンコーダは、基本処理サブユニットを(例えば、H.265/HEVC又はH.266/VVCにおいては「変換ブロック」又は「TB(transform block)」と呼ばれる)より小さなセグメントにさらに分割することができ、このセグメントのレベルで、変換演算を行うことができる。同じ基本処理サブユニットの分割スキームが予測ステージ及び変換ステージで異なり得ることに留意されたい。例えば、H.265/HEVC又はH.266/VVCでは、同じCUの予測ブロック及び変換ブロックが異なるサイズ及び数を有し得る。
【0029】
[0038]
図1の構造110では、基本処理ユニット112は、3×3の基本処理サブユニットにさらに分割され、それらの境界は、点線で示される。同じピクチャの異なる基本処理ユニットが、異なるスキームで基本処理サブユニットに分割されてもよい。
【0030】
[0039] 幾つかの実施態様では、並列処理能力、並びに映像エンコーディング及びデコーディングに対する誤り耐性を提供するために、ピクチャの領域ごとに、エンコーディング又はデコーディングプロセスがピクチャの他のどの領域からの情報にも依存しないことが可能であるように、ピクチャは、処理のために複数の領域に分割され得る。つまり、ピクチャの各領域は、独立して処理することができる。そうすることで、コーデックは、ピクチャの異なる複数の領域を並行して処理することができ、したがって、符号化効率が向上される。また、ある領域のデータが処理時に壊れた場合、又はネットワーク伝送時に失われた場合、コーデックは、壊れたデータ又は失われたデータに依存することなく、同じピクチャの他の領域を正確にエンコード又はデコードすることができ、したがって、誤り耐性能力が提供される。一部の映像符号化標準規格では、ピクチャは、異なる複数のタイプの領域に分割することができる。例えば、H.265/HEVC及びH.266/VVCは、2つの領域タイプ:「スライス」及び「タイル」を提供する。映像シーケンス100の異なる複数のピクチャが、ピクチャを領域に分割するための異なるパーティションスキームを有し得ることにも留意されたい。
【0031】
[0040] 例えば、
図1において、構造110は、3つの領域114、116、及び118に分割され、それらの境界は、構造110内の実線として示されている。領域114は、4つの基本処理ユニットを含む。領域116及び118のそれぞれは、6つの基本処理ユニットを含む。
図1の構造110の基本処理ユニット、基本処理サブユニット、及び領域は、単なる例であり、本開示は、それらの実施形態を限定しないことに留意されたい。
【0032】
[0041]
図2Aは、本開示の実施形態と一致したエンコーディングプロセス例200Aの模式図を示す。例えば、エンコーディングプロセス200Aは、エンコーダによって行うことができる。
図2Aに示されるように、エンコーダは、プロセス200Aに従って、映像シーケンス202を映像ビットストリーム228へとエンコードすることができる。
図1の映像シーケンス100と同様に、映像シーケンス202は、時間的順序で配置されたピクチャのセット(「オリジナルピクチャ」と呼ばれる)を含み得る。
図1の構造110と同様に、映像シーケンス202の各オリジナルピクチャは、エンコーダによって、基本処理ユニット、基本処理サブユニット、又は処理用の領域に分割することができる。幾つかの実施形態では、エンコーダは、映像シーケンス202のオリジナルピクチャごとに、基本処理ユニットのレベルでプロセス200Aを行うことができる。例えば、エンコーダは、反復的やり方でプロセス200Aを行うことができ、その場合、エンコーダは、プロセス200Aの1回の反復で1つの基本処理ユニットをエンコードすることができる。幾つかの実施形態では、エンコーダは、映像シーケンス202の各オリジナルピクチャの領域(例えば、領域114~118)に対してプロセス200Aを並行して行うことができる。
【0033】
[0042]
図2Aでは、エンコーダは、予測データ206及び予測BPU208を生成するために、映像シーケンス202のオリジナルピクチャの基本処理ユニット(「オリジナルBPU」と呼ばれる)を予測ステージ204に送ることができる。エンコーダは、オリジナルBPUから予測BPU208を減算することによって、残差BPU210を生成することができる。エンコーダは、量子化変換係数216を生成するために、残差BPU210を変換ステージ212及び量子化ステージ214に送ることができる。エンコーダは、映像ビットストリーム228を生成するために、予測データ206及び量子化変換係数216を二進符号化ステージ226に送ることができる。コンポーネント202、204、206、208、210、212、214、216、226、及び228は、「順方向経路」と呼ばれることがある。プロセス200A中に、エンコーダは、量子化ステージ214の後に、再構成残差BPU222を生成するために、量子化変換係数216を逆量子化ステージ218及び逆変換ステージ220に送ることができる。エンコーダは、再構成残差BPU222を予測BPU208に加算することによって、プロセス200Aの次の反復のために予測ステージ204において使用される予測基準224を生成することができる。プロセス200Aのコンポーネント218、220、222、及び224は、「再構成経路」と呼ばれることがある。再構成経路は、エンコーダ及びデコーダが共に予測のために同じ参照データを使用することを確実にするために使用することができる。
【0034】
[0043] エンコーダは、(順方向経路において)オリジナルピクチャの各オリジナルBPUをエンコードし、及び(再構成経路において)オリジナルピクチャの次のオリジナルBPUをエンコードするための予測基準224を生成するために、反復的にプロセス200Aを行うことができる。オリジナルピクチャの全てのオリジナルBPUをエンコードした後に、エンコーダは、映像シーケンス202の次のピクチャのエンコーディングに進むことができる。
【0035】
[0044] プロセス200Aを参照すると、エンコーダは、映像キャプチャデバイス(例えば、カメラ)によって生成された映像シーケンス202を受け取ることができる。本明細書で使用される「受け取る(receive)」という用語は、受け取ること、入力すること、獲得すること、取り出すこと、取得すること、読み出すこと、アクセスすること、又はデータを入力するためのあらゆる方法のあらゆるアクションを指し得る。
【0036】
[0045] 予測ステージ204において、現在の反復では、エンコーダは、オリジナルBPU及び予測基準224を受け取ることができ、並びに予測データ206及び予測BPU208を生成するために予測演算を行うことができる。予測基準224は、プロセス200Aの前の反復の再構成経路から生成することができる。予測ステージ204の目的は、予測データ206を抽出することにより、情報冗長性を低減することであり、予測データ206は、予測データ206及び予測基準224からオリジナルBPUを予測BPU208として再構成するために使用することができる。
【0037】
[0046] 理想的には、予測BPU208は、オリジナルBPUと同一となり得る。しかしながら、非理想的な予測及び再構成演算により、予測BPU208は、一般に、オリジナルBPUとは僅かに異なる。このような差を記録するために、予測BPU208を生成した後に、エンコーダは、それをオリジナルBPUから減算することによって、残差BPU210を生成することができる。例えば、エンコーダは、予測BPU208のピクセルの値(例えば、グレースケール値又はRGB値)をオリジナルBPUの対応するピクセルの値から減算することができる。残差BPU210の各ピクセルは、オリジナルBPU及び予測BPU208の対応するピクセル間のこのような減算の結果として残差値を有し得る。オリジナルBPUと比較して、予測データ206及び残差BPU210は、より少ないビットを有し得るが、それらを使用して、大きな品質の劣化なしにオリジナルBPUを再構成することができる。したがって、オリジナルBPUは、圧縮される。
【0038】
[0047] 残差BPU210をさらに圧縮するために、変換ステージ212において、エンコーダは、それを2次元「基底パターン」のセットに分解する(各基底パターンは、「変換係数」に関連付けられる)ことによって、残差BPU210の空間冗長性を減少させることができる。基底パターンは、同じサイズ(例えば、残差BPU210のサイズ)を有し得る。各基底パターンは、残差BPU210の変動周波数(例えば、明度変動の周波数)成分を表し得る。どの基底パターンも、その他の基底パターンの何れの結合(例えば、線形結合)からも再現することができない。つまり、この分解は、残差BPU210の変動を周波数領域に分解することができる。このような分解は、関数の離散フーリエ変換に類似し、ここでは、基底パターンは、離散フーリエ変換の基底関数(例えば、三角法関数)に類似し、変換係数は、基底関数に関連付けられた係数に類似する。
【0039】
[0048] 異なる変換アルゴリズムは、異なる基底パターンを使用することができる。例えば、離散コサイン変換、又は離散サイン変換などの様々な変換アルゴリズムを変換ステージ212において使用することができる。変換ステージ212における変換は、可逆である。すなわち、エンコーダは、(「逆変換」と呼ばれる)変換の逆演算によって残差BPU210を復元することができる。例えば、残差BPU210のピクセルを復元するために、逆変換は、基底パターンの対応するピクセルの値をそれぞれの関連付けられた係数で乗算すること、及びそれらの積を加算することによって加重和を生成することでもよい。映像符号化標準規格のために、エンコーダ及びデコーダは共に、同じ変換アルゴリズム(したがって、同じ基底パターン)を使用することができる。したがって、エンコーダは、変換係数のみを記録することができ、デコーダは、基底パターンをエンコーダから受け取ることなく、変換係数から残差BPU210を再構成することができる。残差BPU210と比較して、変換係数は、より少ないビットを有し得るが、それらを使用して、大きな品質の劣化なしに残差BPU210を再構成することができる。したがって、残差BPU210は、さらに圧縮される。
【0040】
[0049] エンコーダは、量子化ステージ214において変換係数をさらに圧縮することができる。変換プロセスにおいて、異なる基底パターンは、異なる変動周波数(例えば、明度変動周波数)を表し得る。人間の目は、一般に、低周波変動を認識することが得意であるため、エンコーダは、デコーディングにおいて大きな品質の劣化を生じさせることなく、高周波変動の情報を無視することができる。例えば、量子化ステージ214において、エンコーダは、各変換係数を(「量子化パラメータ」と呼ばれる)整数値で除算し、その商を最も近い整数に丸めることによって、量子化変換係数216を生成することができる。このような演算後に、高周波基底パターンの幾つかの変換係数がゼロに変換され得、低周波基底パターンの変換係数が、より小さい整数に変換され得る。エンコーダは、ゼロ値の量子化変換係数216を無視することができ、それによって、変換係数がさらに圧縮される。量子化プロセスも可逆であり、ここでは、量子化変換係数216は、(「逆量子化」と呼ばれる)量子化の逆演算で、変換係数に再構成され得る。
【0041】
[0050] エンコーダは、丸め演算においてこのような除算の余りを無視するので、量子化ステージ214は、不可逆となり得る。一般的に、量子化ステージ214は、プロセス200Aにおいて、最も多くの情報損失に寄与し得る。情報損失が大きくなるほど、量子化変換係数216が必要とし得るビットが少なくなる。異なる情報損失レベルを得るために、エンコーダは、量子化パラメータ又は量子化プロセスのその他のパラメータの異なる値を使用し得る。
【0042】
[0051] 二進符号化ステージ226では、エンコーダは、例えば、エントロピー符号化、可変長符号化、算術符号化、ハフマン符号化、コンテキスト適応的二進算術符号化、又はその他の可逆若しくは不可逆圧縮アルゴリズムなどの二進符号化技術を使用して、予測データ206及び量子化変換係数216をエンコードすることができる。幾つかの実施形態では、予測データ206及び量子化変換係数216の他にも、エンコーダは、例えば、予測ステージ204で使用される予測モード、予測演算のパラメータ、変換ステージ212における変換タイプ、量子化プロセスのパラメータ(例えば、量子化パラメータ)、又はエンコーダ制御パラメータ(例えば、ビットレート制御パラメータ)などの他の情報を二進符号化ステージ226においてエンコードすることができる。エンコーダは、二進符号化ステージ226の出力データを使用して、映像ビットストリーム228を生成することができる。幾つかの実施形態では、映像ビットストリーム228は、ネットワーク伝送のためにさらにパケット化され得る。
【0043】
[0052] プロセス200Aの再構成経路を参照すると、逆量子化ステージ218において、エンコーダは、量子化変換係数216に対して逆量子化を行うことによって、再構成変換係数を生成することができる。逆変換ステージ220では、エンコーダは、再構成変換係数に基づいて、再構成残差BPU222を生成することができる。エンコーダは、再構成残差BPU222を予測BPU208に加算することによって、プロセス200Aの次の反復で使用される予測基準224を生成することができる。
【0044】
[0053] 映像シーケンス202をエンコードするために、プロセス200Aの他のバリエーションが使用され得ることに留意されたい。幾つかの実施形態では、プロセス200Aのステージは、異なる順序でエンコーダによって行うことができる。幾つかの実施形態では、プロセス200Aの1つ又は複数のステージは、単一のステージに統合されてもよい。幾つかの実施形態では、プロセス200Aの単一のステージが、複数のステージに分割されてもよい。例えば、変換ステージ212及び量子化ステージ214が単一のステージに統合されてもよい。幾つかの実施形態では、プロセス200Aは、さらなるステージを含んでもよい。幾つかの実施形態では、プロセス200Aは、
図2Aの1つ又は複数のステージを省略してもよい。
【0045】
[0054]
図2Bは、本開示の実施形態と一致した別のエンコーディングプロセス例200Bの模式図を示す。プロセス200Bは、プロセス200Aから変更され得る。例えば、プロセス200Bは、ハイブリッド映像符号化標準規格(例えば、H.26x系)に準拠したエンコーダによって使用され得る。プロセス200Aと比較して、プロセス200Bの順方向経路は、モード決定ステージ230をさらに含み、予測ステージ204を空間予測ステージ2042及び時間予測ステージ2044に分割する。プロセス200Bの再構成経路は、ループフィルタステージ232及びバッファ234をさらに含む。
【0046】
[0055] 一般に、予測技術は、2つのタイプ:空間予測及び時間予測に分類することができる。空間予測(例えば、イントラピクチャ予測又は「イントラ予測」)は、同じピクチャ内の1つ又は複数の既に符号化された隣接BPUからのピクセルを使用することによって、現在のBPUを予測することができる。すなわち、空間予測における予測基準224は、隣接BPUを含み得る。空間予測は、ピクチャの固有の空間冗長性を減少させることができる。時間予測(例えば、インターピクチャ予測又は「インター予測」)は、1つ又は複数の既に符号化されたピクチャからの領域を使用することによって、現在のBPUを予測することができる。すなわち、時間予測における予測基準224は、符号化されたピクチャを含み得る。時間予測は、ピクチャの固有の時間冗長性を減少させることができる。
【0047】
[0056] プロセス200Bを参照すると、順方向経路において、エンコーダは、空間予測ステージ2042及び時間予測ステージ2044において予測演算を行う。例えば、空間予測ステージ2042において、エンコーダは、イントラ予測を行うことができる。エンコードされているピクチャのオリジナルBPUに関して、予測基準224は、同じピクチャ内の(順方向経路において)エンコードされ、及び(再構成経路において)再構成された1つ又は複数の隣接BPUを含み得る。エンコーダは、隣接BPUを外挿することによって予測BPU208を生成することができる。外挿技術には、例えば、線形外挿若しくは補間、又は多項式外挿若しくは補間などが含まれ得る。幾つかの実施形態では、エンコーダは、例えば予測BPU208のピクセルごとに、対応するピクセルの値を外挿することによって、ピクセルレベルで外挿を行い得る。外挿に使用される隣接BPUは、垂直方向(例えば、オリジナルBPUの上)、水平方向(例えば、オリジナルBPUの左)、対角線方向(例えば、オリジナルBPUの左下、右下、左上、若しくは右上)、又は使用した映像符号化標準規格において定義される任意の方向などの様々な方向からオリジナルBPUに対して位置し得る。イントラ予測の場合、予測データ206は、例えば、使用された隣接BPUの場所(例えば、座標)、使用された隣接BPUのサイズ、外挿のパラメータ、又はオリジナルBPUに対する使用された隣接BPUの方向などを含み得る。
【0048】
[0057] 別の例として、時間予測ステージ2044では、エンコーダは、インター予測を行うことができる。現在のピクチャのオリジナルBPUに関して、予測基準224は、(順方向経路において)エンコードされ、及び(再構成経路において)再構成された1つ又は複数のピクチャ(「参照ピクチャ」と呼ばれる)を含み得る。幾つかの実施形態では、参照ピクチャは、BPUごとにエンコードされ、及び再構成され得る。例えば、エンコーダは、再構成残差BPU222を予測BPU208に加算することによって、再構成BPUを生成することができる。同じピクチャの全ての再構成BPUが生成されると、エンコーダは、参照ピクチャとして再構成ピクチャを生成することができる。エンコーダは、参照ピクチャのある範囲(「探索窓(search window)」と呼ばれる)内のマッチング領域を探索するために、「動き推定」の演算を行い得る。参照ピクチャにおける探索窓の場所は、現在のピクチャにおけるオリジナルBPUの場所に基づいて決定することができる。例えば、探索窓は、参照ピクチャ内の、現在のピクチャのオリジナルBPUと同じ座標を有する場所を中心としてもよく、所定の距離だけ外に延在されてもよい。エンコーダが(例えば、ペル再帰アルゴリズム又はブロックマッチングアルゴリズムなどを使用して)探索窓内のオリジナルBPUに類似した領域を識別すると、エンコーダは、そのような領域をマッチング領域として決定することができる。マッチング領域は、オリジナルBPUとは異なる寸法(例えば、より小さい、等しい、より大きい、又は異なる形状)を有してもよい。参照ピクチャ及び現在のピクチャは、(例えば
図1に示されるように)タイムラインにおいて時間的に分離されるため、時間が経過するにつれて、マッチング領域がオリジナルBPUの場所に「移動する」と見なすことができる。エンコーダは、そのような動きの方向及び距離を「動きベクトル」として記録し得る。(例えば、
図1のピクチャ106のように)複数の参照ピクチャが使用される場合、エンコーダは、参照ピクチャごとに、マッチング領域を探索し、それに関連付けられた動きベクトルを決定することができる。幾つかの実施形態では、エンコーダは、それぞれのマッチング参照ピクチャのマッチング領域のピクセル値に重みを割り当てることができる。
【0049】
[0058] 動き推定を使用して、例えば、平行移動、回転、又はズーミングなどの様々なタイプの動きを識別することができる。インター予測の場合、予測データ206は、例えば、マッチング領域の場所(例えば、座標)、マッチング領域に関連付けられた動きベクトル、参照ピクチャの数、又は参照ピクチャに関連付けられた重みを含み得る。
【0050】
[0059] 予測BPU208を生成するために、エンコーダは、「動き補償」の演算を行い得る。動き補償を用いて、予測データ206(例えば、動きベクトル)及び予測基準224に基づいて予測BPU208を再構成することができる。例えば、エンコーダは、エンコーダが現在のピクチャのオリジナルBPUを予測することができる動きベクトルに従って、参照ピクチャのマッチング領域を移動させることができる。(例えば、
図1のピクチャ106のように)複数の参照ピクチャが使用される場合、エンコーダは、それぞれの動きベクトルに従って参照ピクチャのマッチング領域を移動させ、マッチング領域のピクセル値を平均することができる。幾つかの実施形態では、エンコーダがそれぞれのマッチング参照ピクチャのマッチング領域のピクセル値に重みを割り当てた場合、エンコーダは、移動されたマッチング領域のピクセル値の加重和を加えることができる。
【0051】
[0060] 幾つかの実施形態では、インター予測は、単方向又は双方向でもよい。単方向インター予測は、現在のピクチャに対して同じ時間方向の1つ又は複数の参照ピクチャを使用し得る。例えば、
図1のピクチャ104は、参照ピクチャ(例えば、ピクチャ102)がピクチャ104に先行する単方向インター予測ピクチャである。双方向インター予測は、現在のピクチャに対して両時間方向にある1つ又は複数の参照ピクチャを使用し得る。例えば、
図1のピクチャ106は、参照ピクチャ(例えば、ピクチャ104及び108)がピクチャ104に対して両時間方向にある双方向インター予測ピクチャである。
【0052】
[0061] プロセス200Bの順方向経路をさらに参照すると、空間予測2042及び時間予測ステージ2044の後に、モード決定ステージ230において、エンコーダは、プロセス200Bの現在の反復に関する予測モード(例えば、イントラ予測又はインター予測の一方)を選択することができる。例えば、エンコーダは、レート歪み最適化技術を行うことができ、その場合、エンコーダは、候補予測モードのビットレート、及び上記候補予測モード下の再構成参照ピクチャの歪みに応じて、コスト関数の値を最小にするために予測モードを選択することができる。選択された予測モードに応じて、エンコーダは、対応する予測BPU208及び予測データ206を生成することができる。
【0053】
[0062] プロセス200Bの再構成経路では、順方向経路においてイントラ予測モードが選択されていた場合、予測基準224(例えば、現在のピクチャ内でエンコードされ、再構成された現在のBPU)の生成後に、エンコーダは、後で使用するために(例えば、現在のピクチャの次のBPUの外挿のために)、予測基準224を空間予測ステージ2042に直接送ることができる。順方向経路においてインター予測モードが選択されていた場合、予測基準224(例えば、全てのBPUがエンコードされ、再構成された現在のピクチャ)の生成後に、エンコーダは、ループフィルタステージ232に予測基準224を送ることができ、その場合、エンコーダは、インター予測によって導入される歪み(例えば、ブロッキングアーチファクト)を低減又は無くすためにループフィルタを予測基準224に適用することができる。エンコーダは、ループフィルタステージ232において、例えば、非ブロック化、サンプル適応オフセット、又は適応ループフィルタなどの様々なループフィルタ技術を適用することができる。ループフィルタリングが行われた参照ピクチャは、後に使用するために(例えば、映像シーケンス202の未来ピクチャのためのインター予測基準ピクチャとして使用されるように)、バッファ234(又は「デコードピクチャバッファ」)に保存されてもよい。エンコーダは、時間予測ステージ2044で使用される1つ又は複数の参照ピクチャをバッファ234に保存し得る。幾つかの実施形態では、エンコーダは、量子化変換係数216、予測データ206、及び他の情報と共に、ループフィルタのパラメータ(例えば、ループフィルタ強度)を二進符号化ステージ226においてエンコードし得る。
【0054】
[0063]
図3Aは、本開示の実施形態と一致したデコーディングプロセス例300Aの模式図を示す。プロセス300Aは、
図2Aの圧縮プロセス200Aに対応する復元プロセスでもよい。幾つかの実施形態では、プロセス300Aは、プロセス200Aの再構成経路に類似し得る。デコーダは、プロセス300Aに従って、映像ビットストリーム228を映像ストリーム304へとデコードすることができる。映像ストリーム304は、映像シーケンス202に非常に類似し得る。しかしながら、圧縮及び復元プロセス(例えば、
図2A~2Bの量子化ステージ214)における情報損失により、一般に、映像ストリーム304は、映像シーケンス202と同一ではない。
図2A~2Bのプロセス200A及び200Bと同様に、デコーダは、映像ビットストリーム228においてエンコードされたピクチャごとに、基本処理ユニット(BPU)のレベルでプロセス300Aを行うことができる。例えば、デコーダは、反復的やり方でプロセス300Aを行うことができ、その場合、デコーダは、プロセス300Aの1回の反復で1つの基本処理ユニットをデコードすることができる。幾つかの実施形態では、デコーダは、映像ビットストリーム228においてエンコードされた各ピクチャの領域(例えば、領域114~118)に対してプロセス300Aを並行して行うことができる。
【0055】
[0064]
図3Aでは、デコーダは、エンコードされたピクチャの基本処理ユニット(「エンコードBPU」と呼ばれる)に関連付けられた映像ビットストリーム228の部分を二進デコーディングステージ302に送ることができる。二進デコーディングステージ302では、デコーダは、上記部分を予測データ206及び量子化変換係数216へとデコードすることができる。デコーダは、再構成残差BPU222を生成するために、量子化変換係数216を逆量子化ステージ218及び逆変換ステージ220に送ることができる。デコーダは、予測BPU208を生成するために、予測データ206を予測ステージ204に送ることができる。デコーダは、再構成残差BPU222を予測BPU208に加算することによって、予測基準224を生成することができる。幾つかの実施形態では、予測基準224は、バッファ(例えば、コンピュータメモリのデコードピクチャバッファ)に保存することができる。デコーダは、プロセス300Aの次の反復において予測演算を行うための予測ステージ204に予測基準224を送ることができる。
【0056】
[0065] デコーダは、エンコードされたピクチャの各エンコードBPUをデコードし、エンコードされたピクチャの次のエンコードBPUをエンコードするための予測基準224を生成するために、プロセス300Aを反復して行うことができる。エンコードされたピクチャの全てのエンコードBPUのデコーディング後に、デコーダは、表示のために上記ピクチャを映像ストリーム304に出力し、映像ビットストリーム228の次のエンコードされたピクチャのデコーディングに進み得る。
【0057】
[0066] 二進デコーディングステージ302では、デコーダは、エンコーダによって使用された二進符号化技術(例えば、エントロピー符号化、可変長符号化、算術符号化、ハフマン符号化、コンテキスト適応的二進算術符号化、又はその他の可逆圧縮アルゴリズム)の逆演算を行うことができる。幾つかの実施形態では、予測データ206及び量子化変換係数216の他にも、デコーダは、例えば、予測モード、予測演算のパラメータ、変換タイプ、量子化プロセスのパラメータ(例えば、量子化パラメータ)、又はエンコーダ制御パラメータ(例えば、ビットレート制御パラメータ)などの他の情報を二進デコーディングステージ302においてデコードすることができる。幾つかの実施形態では、映像ビットストリーム228がネットワーク上でパケット伝送される場合、デコーダは、映像ビットストリーム228を二進デコーディングステージ302に送る前に、それをデパケット化することができる。
【0058】
[0067]
図3Bは、本開示の実施形態と一致した別のデコーディングプロセス例300Bの模式図を示す。プロセス300Bは、プロセス300Aから変更され得る。例えば、プロセス300Bは、ハイブリッド映像符号化標準規格(例えば、H.26x系)に準拠したデコーダによって使用され得る。プロセス300Aと比較して、プロセス300Bは、予測ステージ204を空間予測ステージ2042及び時間予測ステージ2044にさらに分割し、ループフィルタステージ232及びバッファ234をさらに含む。
【0059】
[0068] プロセス300Bでは、デコード中のエンコードされたピクチャ(「現在のピクチャ」と呼ばれる)のエンコード基本処理ユニット(「現在のBPU」と呼ばれる)に関して、デコーダによって二進デコーディングステージ302からデコードされた予測データ206は、エンコーダによって現在のBPUをエンコードするためにどの予測モードが使用されたかに応じて、様々なタイプのデータを含み得る。例えば、現在のBPUをエンコードするためにイントラ予測がエンコーダによって使用された場合、予測データ206は、イントラ予測を示す予測モードインジケータ(例えば、フラグ値)、又はイントラ予測演算のパラメータなどを含み得る。イントラ予測演算のパラメータは、例えば、基準として使用される1つ又は複数の隣接BPUの場所(例えば、座標)、隣接BPUのサイズ、外挿のパラメータ、又はオリジナルBPUに対する隣接BPUの方向などを含み得る。別の例として、現在のBPUをエンコードするためにインター予測がエンコーダによって使用された場合、予測データ206は、インター予測を示す予測モードインジケータ(例えば、フラグ値)、又はインター予測演算のパラメータなどを含み得る。インター予測演算のパラメータは、例えば、現在のBPUに関連付けられた参照ピクチャの数、参照ピクチャにそれぞれ関連付けられた重み、それぞれの参照ピクチャにおける1つ若しくは複数のマッチング領域の場所(例えば、座標)、又はマッチング領域にそれぞれ関連付けられた1つ若しくは複数の動きベクトルなどを含み得る。
【0060】
[0069] 予測モードインジケータに基づいて、デコーダは、空間予測ステージ2042において空間予測(例えば、イントラ予測)を行うか、或いは時間予測ステージ2044において時間予測(例えば、インター予測)を行うかを決めることができる。このような空間予測又は時間予測を行う詳細は、
図2Bに示され、以下では繰り返さない。そのような空間予測又は時間予測を行った後に、デコーダは、予測BPU208を生成することができる。デコーダは、
図3Aに示されるように、予測BPU208及び再構成残差BPU222を加算することにより、予測基準224を生成することができる。
【0061】
[0070] プロセス300Bでは、デコーダは、プロセス300Bの次の反復において予測演算を行うための空間予測ステージ2042又は時間予測ステージ2044に予測基準224を送ることができる。例えば、現在のBPUが空間予測ステージ2042においてイントラ予測を用いてデコードされる場合、予測基準224(例えば、デコードされた現在のBPU)の生成後に、デコーダは、後に使用するために(例えば、現在のピクチャの次のBPUの外挿のために)予測基準224を空間予測ステージ2042に直接送ることができる。現在のBPUが時間予測ステージ2044においてインター予測を用いてデコードされる場合、予測基準224(例えば、全てのBPUがデコードされた参照ピクチャ)の生成後に、エンコーダは、歪み(例えば、ブロッキングアーチファクト)を低減又は無くすために、予測基準224をループフィルタステージ232に送ることができる。デコーダは、
図2Bに示したやり方で、ループフィルタを予測基準224に適用することができる。ループフィルタリングが行われた参照ピクチャは、後に使用するために(例えば、映像ビットストリーム228の未来にエンコードされるピクチャのためのインター予測基準ピクチャとして使用されるように)、バッファ234(例えば、コンピュータメモリのデコードピクチャバッファ)に保存されてもよい。デコーダは、時間予測ステージ2044で使用される1つ又は複数の参照ピクチャをバッファ234に保存し得る。幾つかの実施形態では、現在のBPUをエンコードするためにインター予測が使用されたことを予測データ206の予測モードインジケータが示す場合、予測データは、ループフィルタのパラメータ(例えば、ループフィルタ強度)をさらに含み得る。
【0062】
[0071]
図4は、本開示の実施形態による、映像をエンコード又はデコードするための装置例400のブロック図である。
図4に示されるように、装置400は、プロセッサ402を含み得る。プロセッサ402が本明細書に記載される命令を実行すると、装置400は、映像エンコーディング又はデコーディング用の専用マシンになることができる。プロセッサ402は、情報の操作又は処理を行うことが可能な任意のタイプの回路網でもよい。例えば、プロセッサ402は、幾つかの中央処理装置(すなわち「CPU」)、グラフィック処理ユニット(すなわち「GPU」)、ニューラル処理ユニット(「NPU」)、マイクロコントローラユニット(「MCU」)、光プロセッサ、プログラマブル論理コントローラ、マイクロコントローラ、マイクロプロセッサ、デジタル信号プロセッサ、IP(intellectual property)コア、プログラマブル論理アレイ(PLA)、プログラマブルアレイロジック(PAL)、汎用アレイロジック(GAL)、複合プログラマブル論理デバイス(CPLD)、フィールドプログラマブルゲートアレイ(FPGA)、システムオンチップ(SoC)、又は特定用途向け集積回路(ASIC)などの任意の組み合わせを含んでもよい。幾つかの実施形態では、プロセッサ402は、単一の論理コンポーネントとしてグループ化されたプロセッサのセットでもよい。例えば、
図4に示されるように、プロセッサ402は、プロセッサ402a、プロセッサ402b、及びプロセッサ402nを含む複数のプロセッサを含んでもよい。
【0063】
[0072] 装置400は、データ(例えば、命令セット、コンピュータコード、又は中間データなど)を保存するように構成されたメモリ404も含み得る。例えば、
図4に示されるように、保存されたデータは、プログラム命令(例えば、プロセス200A、200B、300A、又は300Bのステージを実装するためのプログラム命令)及び処理用データ(例えば、映像シーケンス202、映像ビットストリーム228、又は映像ストリーム304)を含み得る。プロセッサ402は、(例えば、バス410を介して)プログラム命令及び処理用データにアクセスし、処理用データに対して演算又は操作を行うために、プログラム命令を実行することができる。メモリ404は、高速ランダムアクセス記憶デバイス又は不揮発性記憶デバイスを含んでもよい。幾つかの実施形態では、メモリ404は、幾つかのランダムアクセスメモリ(RAM)、読出し専用メモリ(ROM)、光ディスク、磁気ディスク、ハードドライブ、ソリッドステートドライブ、フラッシュドライブ、SD(security digital)カード、メモリスティック、又はコンパクトフラッシュ(登録商標)(CF)カードなどの任意の組み合わせを含み得る。メモリ404もまた、単一の論理コンポーネントとしてグループ化されたメモリの一群(
図4では図示せず)でもよい。
【0064】
[0073] バス410は、内部バス(例えば、CPUメモリバス)、又は外部バス(例えば、ユニバーサルシリアルバスポート、周辺コンポーネント相互接続エクスプレスポート)などの装置400内のコンポーネント間でデータを転送する通信デバイスでもよい。
【0065】
[0074] 曖昧さを生じさせずに説明を簡単にするために、本開示においては、プロセッサ402及び他のデータ処理回路はまとめて「データ処理回路」と呼ばれる。データ処理回路は、完全にハードウェアとして、又はソフトウェア、ハードウェア、若しくはファームウェアの組み合わせとして実装されてもよい。さらに、データ処理回路は、単一の独立したモジュールでもよく、又は装置400の任意の他のコンポーネントと完全に若しくは部分的に統合されてもよい。
【0066】
[0075] 装置400は、ネットワーク(例えば、インターネット、イントラネット、ローカルエリアネットワーク、又はモバイル通信ネットワークなど)との有線又は無線通信を提供するために、ネットワークインタフェース406をさらに含み得る。幾つかの実施形態では、ネットワークインタフェース406は、幾つかのネットワークインタフェースコントローラ(NIC)、無線周波数(RF)モジュール、トランスポンダ、トランシーバ、モデム、ルータ、ゲートウェイ、有線ネットワークアダプタ、無線ネットワークアダプタ、ブルートゥース(登録商標)アダプタ、赤外線アダプタ、近距離無線通信(「NFC」)アダプタ、又はセルラーネットワークチップなどの任意の組み合わせを含んでもよい。
【0067】
[0076] 幾つかの実施形態では、任意選択的に、装置400は、1つ又は複数の周辺デバイスに対する接続を提供するために、周辺インタフェース408をさらに含んでもよい。
図4に示されるように、周辺デバイスは、カーソル制御デバイス(例えば、マウス、タッチパッド、若しくはタッチスクリーン)、キーボード、ディスプレイ(例えば、陰極線管ディスプレイ、液晶ディスプレイ、若しくは発光ダイオードディスプレイ)、又は映像入力デバイス(例えば、カメラ、若しくは映像アーカイブに結合された入力インタフェース)などを含み得る(ただし、これらに限定されない)。
【0068】
[0077] 映像コーデック(例えば、プロセス200A、200B、300A、又は300Bを行うコーデック)は、装置400内の任意のソフトウェア又はハードウェアモジュールの任意の組み合わせとして実装され得ることに留意されたい。例えば、プロセス200A、200B、300A、又は300Bの一部又は全てのステージが、メモリ404にロードされ得るプログラム命令などの、装置400の1つ又は複数のソフトウェアモジュールとして実装され得る。別の例として、プロセス200A、200B、300A、又は300Bの一部又は全てのステージは、専用データ処理回路など(例えば、FPGA、ASIC、又はNPUなど)の、装置400の1つ又は複数のハードウェアモジュールとして実装され得る。
【0069】
[0078] 第1の参照実施形態において、シーケンスパラメータセット(SPS)シンタックス要素sps_max_luma_transform_size_64_flagは、最大変換サイズを指定するためにシグナリングされる。1に等しいsps_max_luma_transform_size_64_flagは、ルマサンプルにおける最大変換サイズが64に等しいことを指定する。0に等しいsps_max_luma_transform_size_64_flagは、ルマサンプルにおける最大変換サイズが32に等しいことを指定する。第1の参照実施形態では、符号化ツリーブロックサイズ(CtbSizeY)の値にかかわらず、sps_max_luma_transform_size_64_flagが常にシグナリングされる。しかしながら、sps_max_luma_transform_size_64_flagは、シグナリングされることが必要とされるわけではなく、CtbSizeYが64未満であれば、0であると推論することができる。
【0070】
[0079] また、第2の参照実施形態では、スライスレベル残差符号化選択方法を使用することができる。以下は、slice_ts_residual_coding_disabled_flagの例示的セマンティクスである:
【数1】
【0071】
[0080] 第2の参照実施形態では、slice_ts_residual_coding_disabled_flagは常にシグナリングされる。しかしながら、slice_ts_residual_coding_disabled_flagは、変換スキップモードの残差符号化方法を指定するため、変換スキップモードがSPSレベルで無効にされる場合、スライスヘッダにおいてslice_ts_residual_coding_disabled_flagをシグナリングすることは必要とされず、0であると推論することができる。
【0072】
[0081] 本開示は、上記の符号化冗長性を減少させる方法及び装置を提供する。
【0073】
[0082]
図5Aは、本開示の幾つかの実施形態と一致した、最大変換サイズをシグナリングするための例示的方法である。幾つかの実施形態では、方法500Aは、エンコーダ、デコーダ、及び装置(例えば、
図4の装置400)の1つ又は複数のソフトウェア又はハードウェアコンポーネントによって行うことができる。例えば、プロセッサ(例えば、
図4のプロセッサ402)が、方法500Aを行うことができる。幾つかの実施形態では、方法500Aは、コンピュータ(例えば、
図4の装置400)によって実行される、プログラムコードなどのコンピュータ実行可能命令を含む、コンピュータ可読媒体で具現化されたコンピュータプログラム製品によって実装されてもよい。この方法は、以下のステップを含み得る。
【0074】
[0083] ステップ501では、ピクチャセットを含むビットストリームが受け取られる。説明した通り、カラーピクチャの基本処理ユニットは、無彩色の明度情報を表すルマ成分(Y)、色情報を表す1つ又は複数のクロマ成分(例えば、Cb及びCr)、並びに関連のシンタックス要素を含み得る(ここでは、ルマ成分及びクロマ成分は、同じサイズの基本処理ユニットを有し得る)。ルマ成分及びクロマ成分は、一部の映像符号化標準規格(例えば、H.265/HEVC又はH.266/VVC)では、「符号化ツリーブロック」(「CTB」)と呼ばれることがある。基本処理ユニットに対して行われるどのような演算も、それのルマ成分及びクロマ成分のそれぞれに対して繰り返し行うことができる。
【0075】
[0084] ステップ503では、受け取ったビットストリームに従って、符号化ツリーブロックサイズの値が決定される。符号化ツリーブロックサイズの値は、受け取ったビットストリームにおいてシグナリングされる。例えば、例示的セマンティクスにおけるCtbSizeYの値が決定される。
【0076】
[0085] ステップ505では、ルマサンプルに関する最大変換サイズを示すフラグをシグナリングするか否かが、符号化ツリーブロックサイズの値に基づいて決定される。例えば、シーケンスパラメータセット(SPS)シンタックス要素sps_max_luma_transform_size_64_flagは、最大変換サイズを指定するために使用することができる。1に等しいsps_max_luma_transform_size_64_flagは、ルマサンプルにおける最大変換サイズが64に等しいことを指定する。0に等しいsps_max_luma_transform_size_64_flagは、ルマサンプルにおける最大変換サイズが32に等しいことを指定する。
【0077】
[0086] 幾つかの実施形態では、ステップ505は、
図5Bに示されるようなステップ505-1、505-3、及び505-5を含み得る。
【0078】
[0087] ステップ505-1において、受け取ったビットストリームに従って、符号化ツリーブロックサイズの値が、第1の条件を満たすか、又は第2の条件を満たすかが決定される。
【0079】
[0088] 幾つかの実施形態では、第1の条件は、値が32より大きいことでもよく、第2の条件は、値が32以下であることでもよい。第1の条件が満たされることにより、最大変換サイズを示すフラグをシグナリングすることがもたらされ得る。そうでなければ、第2の条件が満たされることにより、フラグがシグナリングされないという決定がもたらされ得る。
【0080】
[0089] ステップ505-3において、符号化ツリーブロックサイズの値が32より大きいことに応答して、フラグがシグナリングされる。
【0081】
[0090] 例示的SPSシンタックスを以下で表1に記載する。最大変換サイズをシグナリングするための幾つかの例示的実施形態では、CtbSizeYが32より大きい場合のみ、sps_max_luma_transform_size_64_flagがシグナリングされる。表1は、幾つかの開示実施形態による、最大変換サイズをシグナリングするための例示的SPSシンタックス表の一部を示す。表1では、「if (CtbSizeY > 32)」を有する行は、第1の参照実施形態に使用されたシンタックスに対する変更を示す。説明した通り、第1の参照実施形態では、符号化ツリーブロックサイズ(CtbSizeY)の値にかかわらず、sps_max_luma_transform_size_64_flagが常にシグナリングされる。対照的に、本開示の幾つかの実施形態によれば、sps_max_luma_transform_size_64_flagは、必ずしもシグナリングされるとは限らない。表1に示されるように、CtbSizeYに対して、sps_max_luma_transform_size_64_flagのシグナリングが条件付けられる。
【0082】
【0083】
[0091] ステップ505-5では、符号化ツリーブロックサイズの値が32以下であることに応答して、フラグがシグナリングされないことが決定される。
【0084】
[0092] 表1と一致したシグナリング方法では、CtbSizeYが32より大きくなければ、sps_max_luma_transform_size_64_flagの値は、0であると推論される。CtbSizeYを導出するためのセマンティクスを以下に示す。
【数2】
【0085】
[0093] 幾つかの実施形態では、第1の条件及び第2の条件は、上記に記載したものとは異なり得る。以下の例では、第1の条件は、値が32に等しくないことでもよく、第2の条件は、値が32に等しいことでもよい。
【0086】
[0094] ステップ505-3の代替ステップでは、符号化ツリーブロックサイズの値が32に等しくないことに応答して、フラグがシグナリングされる。
【0087】
[0095] ステップ505-5の代替ステップでは、符号化ツリーブロックサイズの値が32に等しいことに応答して、フラグがシグナリングされないことが決定される。
【0088】
[0096] 例示的シンタックスを以下のように説明する。表1に示される、提案されたシンタックス変更は、「CtbSizeY > 32」の代わりに、条件「CtbSizeY != 32」を使用して実装することもできる。この場合、CtbSizeYが32に等しくなければ、sps_max_luma_transform_size_64_flagがシグナリングされ、CtbSizeYが32に等しければ、sps_max_luma_transform_size_64_flagが0であると推論される。
【0089】
[0097] 例示的シンタックスを以下のように説明する。表1に示される、提案されたシンタックス変更は、「CtbSizeY > 32」の代わりに、条件「CtbSizeY >= 64」を使用して実装することもできる。この場合、CtbSizeYが64以上であれば、sps_max_luma_transform_size_64_flagがシグナリングされ、CtbSizeYが64未満であれば、sps_max_luma_transform_size_64_flagが0であると推論される。つまり、CtbSizeYが32より大きい場合のみ、sps_max_luma_transform_size_64_flagがシグナリングすることを必要とされる。CtbSizeYが32より大きくなければ、sps_max_luma_transform_size_64_flagはシグナリングされず、0に等しいと推論される。代替的に、CtbSizeYが64以上である場合のみ、sps_max_luma_transform_size_64_flagがシグナリングされる。CtbSizeYが64未満であれば、sps_max_luma_transform_size_64_flagは、シグナリングされず、0に等しいと推論される。
【0090】
[0098] 最大変換サイズをシグナリングするための幾つかの例示的実施形態では、CtbSizeYを使用する代わりに、sps_log2_ctu_size_minus5に対して、sps_max_luma_transform_size_64_flagのシグナリングが条件付けられる。上記の通り、sps_log2_ctu_size_minus5+5は、各符号化ツリーユニット(CTU)のルマ符号化ツリーブロックサイズを指定する。CTUは、128×128もの数のルマサンプル(クロマフォーマットに応じて、対応するクロマサンプルをプラスする)を含み得る。以下の表2は、幾つかの開示実施形態による、最大変換サイズをシグナリングするための例示的SPSシンタックス表の一部を示す。表2では、「if (sps_log2_ctu_size_minus5 > 0)」を有する行は、第1の参照実施形態に使用されたシンタックスに対する変更を示す。説明した通り、第1の参照実施形態では、符号化ツリーブロックサイズ(例えば、CtbSizeY)の値にかかわらず、sps_max_luma_transform_size_64_flagが常にシグナリングされる。対照的に、本開示の幾つかの実施形態によれば、sps_max_luma_transform_size_64_flagは、必ずしもシグナリングされるとは限らない。表2に示されるように、幾つかの実施形態では、sps_log2_ctu_size_minus5に対して、sps_max_luma_transform_size_64_flagのシグナリングが条件付けられる。表2が示すように、sps_log2_ctu_size_minus5が0より大きければ、sps_max_luma_transform_size_64_flagがシグナリングされ、sps_log2_ctu_size_minus5が0であれば、sps_max_luma_transform_size_64_flagの値が0であると推論される。
【0091】
[0099] 幾つかの実施形態では、ステップ501における符号化ツリーブロックサイズの値は、各符号化ツリーユニットのルマ符号化ツリーブロックサイズに関連付けられた値をさらに含み得る。値(例えば、sps_log2_ctu_size_minus5)は、受け取ったビットストリームに従って決定することができる。
【0092】
[0100] 幾つかの実施形態では、ステップ505-1の代替ステップにおいて、各符号化ツリーユニットのルマ符号化ツリーブロックサイズに関連付けられた値が、第1の条件(例えば、0より大きいこと)を満たすか、又は第2の条件(例えば、0に等しいこと)を満たすかが決定され得る。
【0093】
[0101] 幾つかの実施形態では、ステップ505-3の代替ステップにおいて、各符号化ツリーユニットのルマ符号化ツリーブロックサイズに関連付けられた値が、第1の条件(例えば、0より大きいこと)を満たすことに応答して、フラグ(例えば、sps_max_luma_transform_size_64_flag)がシグナリングされる。
【0094】
[0102] 幾つかの実施形態では、ステップ505-5の代替ステップにおいて、各符号化ツリーユニットのルマ符号化ツリーブロックサイズに関連付けられた値が、第2の条件(例えば、0に等しいこと)を満たすことに応答して、フラグ(例えば、sps_max_luma_transform_size_64_flag)がシグナリングされないことが決定される。
【0095】
【0096】
[0103] 表2に示される上記のシンタックス変更は、条件「sps_log2_ctu_size_minus5 != 0」を使用して実装することもできる。この場合、sps_log2_ctu_size_minus5が0に等しくなければ、sps_max_luma_transform_size_64_flagがシグナリングされ、sps_log2_ctu_size_minus5が0に等しければ、sps_max_luma_transform_size_64_flagが0であると推論される。
【0097】
[0104] 幾つかの実施形態では、第1の条件は、上記の例で示したように、値(例えば、sps_log2_ctu_size_minus5)が0に等しくないことでもよい。ステップ505-3の代替ステップにおいて、各符号化ツリーユニットのルマ符号化ツリーブロックサイズに関連付けられた値が、第1の条件(例えば、sps_log2_ctu_size_minus5 != 0)を満たすことに応答して、フラグ(例えば、sps_max_luma_transform_size_64_flag)がシグナリングされる。
【0098】
[0105]
図6は、本開示の幾つかの実施形態と一致した、残差符号化方法をシグナリングする例示的方法である。幾つかの実施形態では、方法600Aは、エンコーダ、デコーダ、及び装置(例えば、
図4の装置400)の1つ又は複数のソフトウェア又はハードウェアコンポーネントによって行うことができる。例えば、プロセッサ(例えば、
図4のプロセッサ402)が、方法600Aを行うことができる。幾つかの実施形態では、方法600Aは、コンピュータ(例えば、
図4の装置400)によって実行される、プログラムコードなどのコンピュータ実行可能命令を含む、コンピュータ可読媒体で具現化されたコンピュータプログラム製品によって実装されてもよい。この方法は、以下のステップを含み得る。
【0099】
[0106] ステップ601では、ピクチャセットを含むビットストリームが受け取られる。説明した通り、カラーピクチャの基本処理ユニットは、無彩色の明度情報を表すルマ成分(Y)、色情報を表す1つ又は複数のクロマ成分(例えば、Cb及びCr)、並びに関連のシンタックス要素を含み得る(ここでは、ルマ成分及びクロマ成分は、同じサイズの基本処理ユニットを有し得る)。ルマ成分及びクロマ成分は、一部の映像符号化標準規格(例えば、H.265/HEVC又はH.266/VVC)では、「符号化ツリーブロック」(「CTB」)と呼ばれることがある。基本処理ユニットに対して行われるどのような演算も、それのルマ成分及びクロマ成分のそれぞれに対して繰り返し行うことができる。
【0100】
[0107] ステップ603では、受け取ったビットストリームに従って、変換スキップモードが有効にされるか否かを示す第1のフラグの値が決定される。第1のフラグの値は、受け取ったビットストリームにおいてシグナリングされ得る。例えば、sps_transform_skip_enabled_flagの値が決定され得る。
【0101】
[0108] ステップ605では、第1のフラグの値に基づいて、残差符号化方法を示す第2のフラグをシグナリングするか否かが決定される。例えば、第2のフラグは、スライスレベル残差符号化フラグでもよい。スライスレベル残差符号化フラグslice_ts_residual_coding_disabled_flagは、変換スキップモードの残差符号化方法を指定する。変換スキップモードがSPSレベルで無効にされる場合、スライスヘッダにおいてslice_ts_residual_coding_disabled_flagをシグナリングすることは必要とされず、0であると推論することができる。
【0102】
[0109] 幾つかの実施形態では、ステップ605は、
図6Bに示されるようなステップ605-1、605-3、及び605-5を含み得る。
【0103】
[0110] ステップ605-1において、受け取ったビットストリームに従って、第1のフラグの値が、第1の条件を満たすか、又は第2の条件を満たすかが決定される。
【0104】
[0111] 幾つかの実施形態では、第1の条件は、第1のフラグの値が1であることでもよく、第2の条件は、第1のフラグの値が0であることでもよい。第1の条件が満たされることにより、第2のフラグをシグナリングすることがもたらされ得る。そうでなければ、第2の条件が満たされることにより、第2のフラグがシグナリングされないという決定がもたらされ得る。
【0105】
[0112] ステップ605-3では、第1のフラグ(例えば、sps_transform_skip_enabled_flag)の値が1であることに応答して、第2のフラグ(例えば、slice_ts_residual_coding_disabled_flag)がシグナリングされる。
【0106】
[0113] ステップ605-5では、第1のフラグ(例えば、sps_transform_skip_enabled_flag)の値が0であることに応答して、第2のフラグ(例えば、slice_ts_residual_coding_disabled_flag)がシグナリングされないことが決定される。
【0107】
[0114] 例示的SPSシンタックスを以下で表3に記載する。残差符号化方法をシグナリングするための幾つかの例示的実施形態では、sps_transform_skip_enabled_flagが1に等しければ、スライスレベル残差符号化フラグslice_ts_residual_coding_disabled_flagがシグナリングされる。sps_transform_skip_enabled_flagが0に等しければ、slice_ts_residual_coding_disabled_flagの値は0であると推論される。sps_transform_skip_enabled_flagのセマンティクスを以下に示す。
【数3】
【0108】
[0115] 表3は、幾つかの開示実施形態による、残差符号化方法をシグナリングするための例示的スライスヘッダシンタックス表の一部を示す。表3では、「if (sps_transform_skip_enabled_flag)」を有する行は、第2の参照実施形態に使用されたシンタックスに対する変更を示す。説明した通り、第2の参照実施形態では、slice_ts_residual_coding_disabled_flagは、常にシグナリングされる。対照的に、本開示の幾つかの実施形態によれば、slice_ts_residual_coding_disabled_flagは、必ずしもシグナリングされるとは限らない。sps_transform_skip_enabled_flagが1に等しい場合のみ、slice_ts_residual_coding_disabled_flagがシグナリングされる。sps_transform_skip_enabled_flagが0に等しければ、slice_ts_residual_coding_disabled_flagは、シグナリングされず、0に等しいと推論される。提案された変更は、スライスヘッダレベルにおけるシグナリングオーバーヘッドを減少させることができる。
【0109】
【0110】
[0116] 幾つかの実施形態では、命令を含む非一時的コンピュータ可読記憶媒体も提供され、命令は、上記の方法を行うために、デバイス(開示のエンコーダ及びデコーダなど)によって実行され得る。非一時的媒体の一般的な形態には、例えば、フロッピー(登録商標)ディスク、フレキシブルディスク、ハードディスク、ソリッドステートドライブ、磁気テープ、又はその他の磁気データ記憶媒体、CD-ROM、その他の光学データ記憶媒体、孔のパターンを有する任意の物理媒体、RAM、PROM、及びEPROM、FLASH(登録商標)-EPROM又はその他のフラッシュメモリ、NVRAM、キャッシュ、レジスタ、その他のメモリチップ又はカートリッジ、並びに上記のネットワーク化バージョンが含まれる。デバイスは、1つ若しくは複数のプロセッサ(CPU)、入出力インタフェース、ネットワークインタフェース、及び/又はメモリを含み得る。
【0111】
[0117] 開示実施形態は、以下の条項を用いてさらに説明することができる。
1.ピクチャセットを含むビットストリームを受け取ることと、
受け取ったビットストリームに従って、符号化ツリーブロックサイズの値を決定することと、
符号化ツリーブロックサイズの値に基づいて、ルマサンプルに関する最大変換サイズを示すフラグをシグナリングするか否かを決定することと、
を含む、映像データシグナリング方法。
2.フラグをシグナリングするか否かを決定することが、
符号化ツリーブロックサイズの値が32より大きいことに応答して、フラグをシグナリングすること、又は
符号化ツリーブロックサイズの値が32以下であることに応答して、フラグがシグナリングされないことを決定すること、
を含む、条項1に記載の方法。
3.フラグをシグナリングするか否かを決定することが、
符号化ツリーブロックサイズの値が32に等しくないことに応答して、フラグをシグナリングすること、又は
符号化ツリーブロックサイズの値が32に等しいことに応答して、フラグがシグナリングされないことを決定すること、
を含む、条項1に記載の方法。
4.符号化ツリーブロックサイズの値が、符号化ツリーユニットのルマ符号化ツリーブロックサイズに関連付けられた値をさらに含む、条項1に記載の方法。
5.フラグをシグナリングするか否かを決定することが、
ルマ符号化ツリーブロックサイズに関連付けられた値が0より大きいことに応答して、フラグをシグナリングすること、又は
ルマ符号化ツリーブロックサイズに関連付けられた値が0に等しいことに応答して、フラグがシグナリングされないことを決定すること、
を含む、条項4に記載の方法。
6.フラグをシグナリングするか否かを決定することが、
ルマ符号化ツリーブロックサイズに関連付けられた値が0に等しくないことに応答して、フラグをシグナリングすること、又は
ルマ符号化ツリーブロックサイズに関連付けられた値が0に等しいことに応答して、フラグがシグナリングされないことを決定すること、
を含む、条項4に記載の方法。
7.最大変換サイズが64であることをフラグが示す、条項1~6の何れか一項に記載の方法。
8.ピクチャセットを含むビットストリームを受け取ることと、
受け取ったビットストリームに従って、変換スキップモードが有効にされるか否かを示す第1のフラグの値を決定することと、
第1のフラグの値に基づいて、残差符号化方法を示す第2のフラグをシグナリングするか否かを決定することと、
を含む、映像データシグナリング方法。
9.第2のフラグをシグナリングするか否かを決定することが、
第1のフラグの値が1であることに応答して、第2のフラグをシグナリングすること、又は
第1のフラグの値が0であることに応答して、第2のフラグがシグナリングされないことを決定すること、
を含む、条項8に記載の方法。
10.第1のフラグが、シーケンスパラメータセットにおいてシグナリングされ、及び
第2のフラグが、スライスヘッダにおいてシグナリングされる、条項8及び9に記載の方法。
11.命令セットを保存するメモリと、
1つ又は複数のプロセッサとを含み、1つ又は複数のプロセッサは、命令セットを実行して、
ピクチャセットを含むビットストリームを受け取ることと、
受け取ったビットストリームに従って、符号化ツリーブロックサイズの値を決定することと、
符号化ツリーブロックサイズの値に基づいて、ルマサンプルに関する最大変換サイズを示すフラグをシグナリングするか否かを決定することと、
を装置に行わせるように構成される、映像データシグナリング装置。
12.フラグをシグナリングするか否かを決定することにおいて、1つ又は複数のプロセッサが、命令セットを実行して、
符号化ツリーブロックサイズの値が32より大きいことに応答して、フラグをシグナリングすること、又は
符号化ツリーブロックサイズの値が32以下であることに応答して、フラグがシグナリングされないことを決定すること、
を装置にさらに行わせるように構成される、条項11に記載の装置。
13.フラグをシグナリングするか否かを決定することにおいて、1つ又は複数のプロセッサが、命令セットを実行して、
符号化ツリーブロックサイズの値が32に等しくないことに応答して、フラグをシグナリングすること、又は
符号化ツリーブロックサイズの値が32に等しいことに応答して、フラグがシグナリングされないことを決定すること、
を装置にさらに行わせるように構成される、条項11に記載の装置。
14.符号化ツリーブロックサイズの値が、符号化ツリーユニットのルマ符号化ツリーブロックサイズに関連付けられた値をさらに含む、条項11に記載の装置。
15.フラグをシグナリングするか否かを決定することにおいて、1つ又は複数のプロセッサが、命令セットを実行して、
ルマ符号化ツリーブロックサイズに関連付けられた値が0より大きいことに応答して、フラグをシグナリングすること、又は
ルマ符号化ツリーブロックサイズに関連付けられた値が0に等しいことに応答して、フラグがシグナリングされないことを決定すること、
を装置にさらに行わせるように構成される、条項14に記載の装置。
16.フラグをシグナリングするか否かを決定することにおいて、1つ又は複数のプロセッサが、命令セットを実行して、
ルマ符号化ツリーブロックサイズに関連付けられた値が0に等しくないことに応答して、フラグをシグナリングすること、又は
ルマ符号化ツリーブロックサイズに関連付けられた値が0に等しいことに応答して、フラグがシグナリングされないことを決定すること、
を装置にさらに行わせるように構成される、条項14に記載の装置。
17.最大変換サイズが64であることをフラグが示す、条項11~16の何れか一項に記載の装置。
18.命令セットを保存するメモリと、
1つ又は複数のプロセッサとを含み、1つ又は複数のプロセッサは、命令セットを実行して、
ピクチャセットを含むビットストリームを受け取ることと、
受け取ったビットストリームに従って、変換スキップモードが有効にされるか否かを示す第1のフラグの値を決定することと、
第1のフラグの値に基づいて、残差符号化方法を示す第2のフラグをシグナリングするか否かを決定することと、
を装置に行わせるように構成される、映像データシグナリング装置。
19.第2のフラグをシグナリングするか否かを決定することにおいて、1つ又は複数のプロセッサが、命令セットを実行して、
第1のフラグの値が1であることに応答して、第2のフラグをシグナリングすること、又は
第1のフラグの値が0であることに応答して、第2のフラグがシグナリングされないことを決定すること、
を装置にさらに行わせるように構成される、条項18に記載の装置。
20.第1のフラグが、シーケンスパラメータセットにおいてシグナリングされ、及び
第2のフラグが、スライスヘッダにおいてシグナリングされる、条項18又は19に記載の装置。
21.命令セットを保存する非一時的コンピュータ可読媒体であって、命令セットは、映像データシグナリング方法をコンピュータに行わせるために、コンピュータの少なくとも1つのプロセッサによって実行可能であり、方法が、
ピクチャセットを含むビットストリームを受け取ることと、
受け取ったビットストリームに従って、符号化ツリーブロックサイズの値を決定することと、
符号化ツリーブロックサイズの値に基づいて、ルマサンプルに関する最大変換サイズを示すフラグをシグナリングするか否かを決定することと、
を含む、非一時的コンピュータ可読媒体。
22.フラグをシグナリングするか否かを決定することが、
符号化ツリーブロックサイズの値が32より大きいことに応答して、フラグをシグナリングすること、又は
符号化ツリーブロックサイズの値が32以下であることに応答して、フラグがシグナリングされないことを決定すること、
を含む、条項21に記載の非一時的コンピュータ可読媒体。
23.フラグをシグナリングするか否かを決定することが、
符号化ツリーブロックサイズの値が32に等しくないことに応答して、フラグをシグナリングすること、又は
符号化ツリーブロックサイズの値が32に等しいことに応答して、フラグがシグナリングされないことを決定すること、
を含む、条項21に記載の非一時的コンピュータ可読媒体。
24.符号化ツリーブロックサイズの値が、符号化ツリーユニットのルマ符号化ツリーブロックサイズに関連付けられた値をさらに含む、条項21に記載の非一時的コンピュータ可読媒体。
25.フラグをシグナリングするか否かを決定することが、
ルマ符号化ツリーブロックサイズに関連付けられた値が0より大きいことに応答して、フラグをシグナリングすること、又は
ルマ符号化ツリーブロックサイズに関連付けられた値が0に等しいことに応答して、フラグがシグナリングされないことを決定すること、
を含む、条項24に記載の非一時的コンピュータ可読媒体。
26.フラグをシグナリングするか否かを決定することが、
ルマ符号化ツリーブロックサイズに関連付けられた値が0に等しくないことに応答して、フラグをシグナリングすること、又は
ルマ符号化ツリーブロックサイズに関連付けられた値が0に等しいことに応答して、フラグがシグナリングされないことを決定すること、
を含む、条項24に記載の非一時的コンピュータ可読媒体。
27.最大変換サイズが64であることをフラグが示す、条項21~26の何れか一項に記載の非一時的コンピュータ可読媒体。
28.命令セットを保存する非一時的コンピュータ可読媒体であって、命令セットは、映像データシグナリング方法をコンピュータに行わせるために、コンピュータの少なくとも1つのプロセッサによって実行可能であり、方法が、
ピクチャセットを含むビットストリームを受け取ることと、
受け取ったビットストリームに従って、変換スキップモードが有効にされるか否かを示す第1のフラグの値を決定することと、
第1のフラグの値に基づいて、残差符号化方法を示す第2のフラグをシグナリングするか否かを決定することと、
を含む、非一時的コンピュータ可読媒体。
29.第2のフラグをシグナリングするか否かを決定することが、
第1のフラグの値が1であることに応答して、第2のフラグをシグナリングすること、又は
第1のフラグの値が0であることに応答して、第2のフラグがシグナリングされないことを決定すること、
を含む、条項28に記載の非一時的コンピュータ可読媒体。
30.第1のフラグが、シーケンスパラメータセットにおいてシグナリングされ、及び
第2のフラグが、スライスヘッダにおいてシグナリングされる、条項28及び29に記載の非一時的コンピュータ可読媒体。
【0112】
[0118] 「第1の」及び「第2の」などの本明細書の関係語は、あるエンティティ又は動作を別のエンティティ又は動作と区別するためだけに使用されるものであり、これらのエンティティ又は動作間の実際の関係又は順序を必要とするもの、又は暗示するものではないことに留意されたい。また、「含む(comprising)」、「有する(having)」、「包含する(containing)」、及び「含む(including)」という語、並びに他の類似の形態は、意味が同等であること、及びこれらの語の何れか1つに続く1つ又は複数の項が、そのような1つ若しくは複数の項の網羅的列挙ではない点で、又は列挙された1つ若しくは複数の項のみに限定されない点で、オープンエンド形式であることが意図される。
【0113】
[0119] 本明細書では、特に別段の記載のない限り、「又は」という用語は、実行不可能でない限り、全ての可能な組み合わせを網羅する。例えば、データベースがA又はBを含み得ると記述される場合、別段の具体的な記述のない限り、又は実行不可能でない限り、データベースは、A、又はB、又はA及びBを含み得る。第2の例として、データベースがA、B、又はCを含み得ると記載される場合、特に別段の記載のない限り、又は実行不可能でない限り、データベースは、A、B、C、A及びB、A及びC、B及びC、A及びB及びCを含み得る。
【0114】
[0120] 上記の実施形態は、ハードウェア、又はソフトウェア(プログラムコード)、又はハードウェア及びソフトウェアの組み合わせによって実施され得ることが理解される。ソフトウェアによって実施される場合、それは、上記のコンピュータ可読媒体に保存され得る。ソフトウェアは、プロセッサによる実行時に、開示の方法を行うことができる。本開示に記載したコンピューティングユニット及び他の機能ユニットは、ハードウェア、又はソフトウェア、又はハードウェア及びソフトウェアの組み合わせによって実装され得る。当業者は、上記のモジュール/ユニットの内の複数が、1つのモジュール/ユニットとして統合され得ること、及び上記のモジュール/ユニットのそれぞれが、複数のサブモジュール/サブユニットにさらに分割され得ることも理解するだろう。
【0115】
[0121] 上述の明細書では、実施態様によって異なり得る多数の具体的詳細に関して、実施形態を説明した。記載した実施形態の特定の適応及び変更が行われ得る。ここに開示した発明の明細書及び実施を考慮して、他の実施形態が当業者には明らかとなり得る。上記明細書及び例は、単なる例示と見なされることが意図され、本発明の真の範囲及び精神は、以下の特許請求の範囲によって示される。また、図面に示されるステップの順序は、単に、説明のためのものであることが意図され、ステップの何れの特定の順序にも限定されることは意図されない。そのため、同じ方法を実施しながら、これらのステップが異なる順序で行われ得ることを当業者は理解できる。
【0116】
[0122] 図面及び明細書では、例示的実施形態を開示した。しかしながら、これらの実施形態に対して多くの変形形態及び変更形態を作ることができる。したがって、特定の用語が使用されるが、それらは、単に一般的及び説明的な意味で使用されるものであり、限定を意図したものではない。
【国際調査報告】