(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-07-27
(45)【発行日】2023-08-04
(54)【発明の名称】様々な色度フォーマットをサポートするビデオコーディングツールのシグナリング
(51)【国際特許分類】
H04N 19/70 20140101AFI20230728BHJP
【FI】
H04N19/70
(21)【出願番号】P 2021557676
(86)(22)【出願日】2020-11-27
(86)【国際出願番号】 US2020062477
(87)【国際公開番号】W WO2021108750
(87)【国際公開日】2021-06-03
【審査請求日】2021-09-27
(32)【優先日】2019-11-29
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2019-12-12
(33)【優先権主張国・地域又は機関】US
(32)【優先日】2020-11-25
(33)【優先権主張国・地域又は機関】US
(73)【特許権者】
【識別番号】520353802
【氏名又は名称】テンセント・アメリカ・エルエルシー
(74)【代理人】
【識別番号】100110364
【氏名又は名称】実広 信哉
(74)【代理人】
【識別番号】100150197
【氏名又は名称】松尾 直樹
(72)【発明者】
【氏名】リン・リ
(72)【発明者】
【氏名】シアン・リ
(72)【発明者】
【氏名】チュン・オーヤン
(72)【発明者】
【氏名】シャン・リュウ
【審査官】鈴木 順三
(56)【参考文献】
【文献】Benjamin Bross et al.,"Versatile Video Coding (Draft 7)",[JVET-P2001-v9] (version 9),Joint Video Experts Team (JVET),2019年10月17日,pp.19,97,102-104,110,112
(58)【調査した分野】(Int.Cl.,DB名)
H04N 19/00 - 19/98
(57)【特許請求の範囲】
【請求項1】
少なくとも1つのプロセッサによって実行される、符号化されたビデオビットストリームを復号する方法であって、
前記符号化されたビデオビットストリームを取得するステップと、
前記符号化されたビデオビットストリームに含まれるビデオシーケンスの色度アレイタイプが第1色度アレイタイプであるかどうかを決定するステップであって、前記第1色度アレイタイプが、前記ビデオシーケンスが複数の色平面を含み、かつ前記複数の色平面が共同で符号化されることを示すステップと、
前記色度アレイタイプが前記第1色度アレイタイプではないとの決定に基づいて、前記符号化されたビデオビットストリームから少なくとも1つの構文要素を解析せずに、前記少なくとも1つの構文要素の値をゼロに設定するステップと、
前記少なくとも1つの構文要素の値がゼロであることに基づいて、前記少なくとも1つの構文要素に対応する少なくとも1つのコーディングツールを適用せずに、前記ビデオシーケンスを復号するステップと、を含
み、
前記少なくとも1つの構文要素は、シーケンスパラメータセット(SPS)において信号で通知され、色度残差の共同コーディングが無効になっているか有効になっているかを指定する、ことを特徴とする方法。
【請求項2】
前記色度アレイタイプは、前記ビデオシーケンスが前記複数の色平面を含むかどうかを示す第1フラグと、前記ビデオシーケンスの色度フォーマットを示す第1構文要素とに基づいて決定される、
ことを特徴とする請求項1に記載の方法。
【請求項3】
前記色度アレイタイプが前記第1色度アレイタイプであるとの決定に基づいて、前記少なくとも1つの構文要素を解析することにより、前記少なくとも1つの構文要素の値を設定するステップと、
前記少なくとも1つの構文要素の決定された値に基づいて、前記少なくとも1つの構文要素に対応する少なくとも1つのコーディングツールを適用することにより、前記ビデオシーケンスを復号するステップと、をさらに含む、
ことを特徴とする請求項1に記載の方法。
【請求項4】
前記少なくとも1つのコーディングツールには、ブロックベースのデルタパルス符号変調、パレットモードコーディング、およびアダプティブ色変換のうちの少なくとも1つが含まれる、
ことを特徴とする請求項1に記載の方法。
【請求項5】
符号化されたビデオビットストリームを復号するデバイスであって、
前記デバイスには、
プログラムコードを記憶するように構成される少なくとも1つのメモリと、
前記プログラムコードを読み取り、前記プログラムコードによって指示された通り動作するように構成される少なくとも1つのプロセッサと、が含まれ、
前記プログラムコードには、
前記少なくとも1つのプロセッサに、前記符号化されたビデオビットストリームを取得させるように構成される取得コードと、
前記少なくとも1つのプロセッサに、前記符号化されたビデオビットストリームに含まれるビデオシーケンスの色度アレイタイプが第1色度アレイタイプであるかどうかを決定させるように構成される決定コードであって、前記第1色度アレイタイプが、前記ビデオシーケンスが複数の色平面を含み、かつ前記複数の色平面が共同で符号化されることを示す決定コードと、
前記少なくとも1つのプロセッサに、前記色度アレイタイプが前記第1色度アレイタイプではないとの決定に基づいて、前記符号化されたビデオビットストリームか
ら少なくとも1つの構文要素を解析せずに、前記少なくとも1つの構文要素の値をゼロに設定させるように構成される第1設定コードと、
前記少なくとも1つのプロセッサに、前記少なくとも1つの構文要素の値がゼロであることに基づいて、前記少なくとも1つの構文要素に対応する少なくとも1つのコーディングツールを適用せずに、前記ビデオシーケンスを復号させるように構成される第1復号コードと、が含まれ
、
前記少なくとも1つの構文要素は、シーケンスパラメータセット(SPS)において信号で通知され、色度残差の共同コーディングが無効になっているか有効になっているかを指定する、
ことを特徴とするデバイス。
【請求項6】
前記色度アレイタイプは、前記ビデオシーケンスが前記複数の色平面を含むかどうかを示す第1フラグと、前記ビデオシーケンスの色度フォーマットを示す第1構文要素とに基づいて決定される、
ことを特徴とする請求項
5に記載のデバイス。
【請求項7】
前記プログラムコードには、さらに
前記少なくとも1つのプロセッサに、前記色度アレイタイプが前記第1色度アレイタイプであるとの決定に基づいて、前記少なくとも1つの構文要素を解析することにより、前記少なくとも1つの構文要素の値を設定させるように構成される第2設定コードと、
前記少なくとも1つのプロセッサに、前記少なくとも1つの構文要素の決定された値に基づいて、前記少なくとも1つの構文要素に対応する少なくとも1つのコーディングツールを適用することにより、前記ビデオシーケンスを復号させるように構成される第2復号コードと、が含まれる、
請求項
5に記載のデバイス。
【請求項8】
前記少なくとも1つのコーディングツールには、ブロックベースのデルタパルス符号変調、パレットモードコーディング、およびアダプティブ色変換のうちの少なくとも1つが含まれる、ことを特徴とする請求項
5に記載のデバイス。
【請求項9】
コンピュータプログラムであって、
請求項1~
4のいずれか1項に記載の方法を、符号化されたビデオビットストリームを復号するデバイスに実行させる、
ことを特徴とするコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
[関連出願への相互参照]
本願は、35U.S.C.§119から、2019年11月29日に米国特許商標庁に提出された米国仮出願第62/942,003号、2019年12月12日に米国特許商標庁に提出された米国仮出願第62/947,385号、および2020年11月25日に米国特許商標庁に提出された米国出願第17/104,688号に対する優先権を主張し、それらの開示の全体は、参照により本明細書に組み込まれる。
[技術分野]
【0002】
開示された主題は、ビデオ符号化および復号に関するものであり、より具体的には、様々な色度フォーマットをサポートするビデオコーディングツールのシグナリングに関するものである。
【背景技術】
【0003】
ITU-T VCEG(Q6/16)およびISO/IEC MPEG(JTC 1/SC 29/WG 11)は、2013年(バージョン1)、2014年(バージョン2)、2015年(バージョン3)および2016年(バージョン4)で、H.265/HEVC(High Efficiency Video Coding、高効率ビデオコーディング)規格を公開した。2015年に、この2つの標準化組織は、HEVCを超える次のビデオコーディング標準を開発する可能性を探るために、共同ビデオ探索チーム(JVET:Joint Video Exploration Team)を共同で設立した。2017年10月に、HEVCを超える機能を有するビデオ圧縮に関する共同提案募集(CfP:Call for Proposal)を発表した。2018年2月15日までに、標準ダイナミックレンジ(SDR:standard dynamic range)に関するCfP応答22件、ハイダイナミックレンジ(HDR:high dynamic range)に関するCfP応答12件、360個のビデオカテゴリーに関するCfP応答12件がそれぞれ提出された。2018年4月に、第122回のMPEG/第10回のJVET会議で、受信されたすべてのCfP応答が評価された。この会議の結果として、JVETは、HEVCを超える次世代ビデオコーディングの標準化プロセスを正式に開始した。新しい規格は、汎用ビデオコーディング(VVC:VersatileVideo Coding)と命名され、JVETは、共同ビデオ専門家チーム(Joint Video Expert Team)と改名された。
【発明の概要】
【課題を解決するための手段】
【0004】
一実施形態では、符号化されたビデオビットストリームを復号する方法が提供され、前記方法は、
前記符号化されたビデオビットストリームを取得するステップと、
前記符号化されたビデオビットストリームに含まれるビデオシーケンスの色度アレイタイプが第1色度アレイタイプであるかどうかを決定するステップであって、前記第1色度アレイタイプが、前記ビデオシーケンスが複数の色平面を含み、かつ前記複数の色平面が共同で符号化されることを示すステップと、
前記色度アレイタイプが前記第1色度アレイタイプではないとの決定に基づいて、前記符号化されたビデオビットストリームから少なくとも1つの構文要素を解析せずに、前記少なくとも1つの構文要素の値をゼロに設定するステップと、
前記少なくとも1つの構文要素の値がゼロであることに基づいて、前記少なくとも1つの構文要素に対応する少なくとも1つのコーティングツールを適用せずに、前記ビデオシーケンスを復号するステップと、を含む。
【0005】
一実施形態では、符号化されたビデオビットストリームを復号するデバイスが提供され、
前記デバイスには、
プログラムコードを記憶するように構成される少なくとも1つのメモリと、
前記プログラムコードを読み取り、前記プログラムコードによって指示された通り動作するように構成される少なくとも1つのプロセッサと、が含まれ、
前記プログラムコードには、
前記少なくとも1つのプロセッサに、前記符号化されたビデオビットストリームを取得させるように構成される取得コードと、
前記少なくとも1つのプロセッサに、前記符号化されたビデオビットストリームに含まれるビデオシーケンスの色度アレイタイプが第1色度アレイタイプであるかどうかを決定させるように構成される決定コードであって、前記第1色度アレイタイプが、前記ビデオシーケンスが複数の色平面を含み、かつ前記複数の色平面が共同で符号化されることを示す決定コードと、
前記少なくとも1つのプロセッサに、前記色度アレイタイプが前記第1色度アレイタイプではないとの決定に基づいて、前記符号化されたビデオビットストリームから前記少なくとも1つの構文要素を解析せずに、前記少なくとも1つの構文要素の値をゼロに設定させるように構成される第1設定コードと、
前記少なくとも1つのプロセッサに、前記少なくとも1つの構文要素の値がゼロであることに基づいて、前記少なくとも1つの構文要素に対応する少なくとも1つのコーディングツールを適用せずに、前記ビデオシーケンスを復号させるように構成される第1復号コードと、が含まれる。
【0006】
一実施形態では、1つまたは複数の命令を含む命令が記憶されている非一時的なコンピュータ読み取り可能な媒体が提供され、前記命令が、前記符号化されたビデオビットストリームを復号するデバイスの1つまたは複数のプロセッサによって実行されるとき、前記1つまたは複数のプロセッサに、
前記符号化されたビデオビットストリームを取得するステップと、
前記符号化されたビデオビットストリームに含まれるビデオシーケンスの色度アレイタイプが第1色度アレイタイプであるかどうかを決定するステップであって、前記第1色度アレイタイプが、前記ビデオシーケンスが複数の色平面を含み、かつ前記複数の色平面が共同で符号化されることを示すステップと、
前記色度アレイタイプが前記第1色度アレイタイプではないとの決定に基づいて、前記符号化されたビデオビットストリームから少なくとも1つの構文要素を解析せずに、前記少なくとも1つの構文要素の値をゼロに設定するステップと、
前記少なくとも1つの構文要素の値がゼロであることに基づいて、前記少なくとも1つの構文要素に対応する少なくとも1つのコーディングツールを適用せずに、前記ビデオシーケンスを復号するステップと、を実行させる。
【図面の簡単な説明】
【0007】
【
図1】一実施形態による、通信システムの簡略化されたブロック図の概略図である。
【
図2】一実施形態による、通信システムの簡略化されたブロック図の概略図である。
【
図3】一実施形態による、デコーダの簡略化されたブロック図の概略図である。
【
図4】一実施形態による、エンコーダの簡略化されたブロック図の概略図である。
【
図5A】一実施形態による、符号化されたビデオビットストリームを復号するための例示的なプロセスのフローチャートを示す図である。
【
図5B】一実施形態による、符号化されたビデオビットストリームを復号するための例示的なプロセスのフローチャートを示す図である。
【
図5C】一実施形態による、符号化されたビデオビットストリームを復号するための例示的なプロセスのフローチャートを示す図である。
【
図6】一実施形態による、符号化されたビデオビットストリームを復号するための例示的なプロセスのフローチャートである。
【
図7】一実施形態による、コンピュータシステムの概略図である。
【発明を実施するための形態】
【0008】
開示された主題のさらなる特徴、性質および様々な利点は、以下の詳細な説明および添付の図面からより明らかになる。
【0009】
図1は、本開示の実施形態による通信システム(100)の簡略化されたブロック図を示す。通信システム(100)は、ネットワーク(150)を介して相互接続された、少なくとも2つの端末(110、120)を含むことができる。データの単方向伝送について、第1端末(110)は、ネットワーク(150)を介して他の端末(120)に送信するために、ローカル位置でビデオデータを符号化することができる。第2端末(120)は、ネットワーク(150)から他の端末の符号化されたビデオデータを受信し、符号化されたデータを復号化して、復元されたビデオデータを表示することができる。単方向データ伝送は、メディアサービングアプリケーションでは一般的である。
【0010】
図1は、例えば、ビデオ会議中に発生する可能性がある、符号化されたビデオの双方向伝送をサポートする第2ペアの端末(130、140)を示す。データの双方向伝送の場合、各端末(130、140)は、)は、ネットワーク(150)を介して他の端末に送信するために、ローカルで捕捉されたビデオデータを符号化することができる。各端末(130、140)は、他の端末によって送信された、符号化されたビデオデータを受信することもでき、符号化されたデータを復号化することができ、また復元されたビデオデータをローカルの表示デバイスに表示することもできる。
【0011】
図1において、端末(110~140)は、サーバ、パーソナルコンピュータ、およびスマートフォンとして示されてもよいが、本開示の原理は、そのように限定されない場合がある。本開示の実施形態は、ラップトップコンピュータ、タブレットコンピュータ、メディアプレーヤおよび/または専用のビデオ会議機器を使用するアプリケーションを見つける。ネットワーク(150)は、符号化されたビデオデータを端末(110~140)で送信する任意の数のネットワークを表し、例えば、有線および/または無線の通信ネットワークを含む。通信ネットワーク(150)は、回線交換および/またはパケット交換のチャネルでデータを交換することができる。代表的なネットワークは、電気通信ネットワーク、ローカルエリアネットワーク、ワイドエリアネットワークおよび/またはインターネットを含む。本議論の目的のために、ネットワーク(150)のアーキテクチャおよびトポロジは、以下に本明細書で説明されない限り、本開示の動作にとって重要ではない場合がある。
【0012】
図2は、開示された主題に対するアプリケーションの例として、ストリーミング環境におけるビデオエンコーダおよびデコーダの配置を示す。開示された主題は、例えば、光ディスク(CD:Compect Disc)、高密度デジタルビデオディスク(DVD:Digital Video Disc)、メモリスティックなどを含むデジタルメディアへの圧縮されたビデオの記憶、ビデオ会議、デジタルTVなどを含む、他のビデオサポートアプリケーションにも同等に適用可能である。
【0013】
ストリーミングシステムは、捕捉サブシステム(213)を含むことができ、この捕捉サブシステムが、例えばデジタルカメラなどのビデオソース(201)を含むことができ、例えば圧縮されていないビデオサンプルストリーム(202)を作成する。符号化されたビデオビットストリームと比較する際に、高いデータボリュームを強調するために太い線で描かれたサンプルストリーム(202)は、カメラ(201)に結合されたエンコーダ(203)によって処理されることができる。エンコーダ(203)は、以下で詳細に説明するように、開示された主題の様々な態様を可能にするかまたは実現するために、ハードウェア、ソフトウェア、またはそれらの組み合わせを含むことができる。サンプルストリームと比較する際により低いデータボリュームを強調するために細い線で描かれた、符号化されたビデオビットストリーム(204)は、将来の使用のためにストリーミングサーバ(205)に記憶されることができる。1つ以上のストリーミングクライアント(206、208)は、ストリーミングサーバ(205)にアクセスして、符号化されたビデオビットストリーム(204)のコピー(207、209)を検索することができる。クライアント(206)は、ビデオデコーダ(210)を含むことができ、このビデオデコーダ(210)は、伝入される、符号化されたビデオビットストリーム(207)のコピーを復号化して、伝出される、ビデオサンプルストリーム(211)を作成することができ、このビデオサンプルストリーム(211)が、ディスプレイ(212)または他のレンダリングデバイス(図示せず)に表示されることができる。 一部のストリーミングシステムでは、ビデオビットストリーム(204、207、209)は、特定のビデオコーディング/圧縮規格に従ってエンコードされることができる。それらの標準の例には、ITU-T H.265建議書が含まれている。開発されているのは、非公式に多機能ビデオコーディングまたはVVC(Versatile VideoCoding)として知られているビデオコーディング標準である。開示された主題は、VVCのコンテキストで使用されることができる。
【0014】
図3は、本開示の実施形態による、ビデオデコーダ(210)の機能ブロック図であり得る。
図3に示すように、受信機(310)は、ビデオデコーダ(210)によって復号化される1つ以上の符号化されたビデオシーケンスを受信することができ、同じまたは別の実施形態では、一度に1つの符号化されたビデオシーケンスを受信することができ、ここで、各符号化されたビデオシーケンスの復号化が、他の符号化されたビデオシーケンスから独立している。符号化されたビデオシーケンスは、チャネル(312)から受信されることができ、このチャネルが、符号化されたビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアのリンクであってもよい。受信機(310)は、それぞれの使用エンティティ(図示せず)に転送されることができる、例えば符号化されたオーディオデータおよび/または補助のデータストリームなどの他のデータとともに、符号化されたビデオデータを受信することができる。受信機(310)は、符号化されたビデオシーケンスを他のデータから分離することができる。ネットワークジッタを防止するために、バッファメモリ(315)は、受信機(310)とエントロピーデコーダ/解析器(Parser)(320)(以後の「解析器」)との間に結合されることができる。受信機(310)が十分な帯域幅および制御可能性を有するストア/フォワードデバイスからまたは等時性同期ネットワークからデータを受信する場合、バッファメモリ(315)は、必要ではないかまたは小さくでもよい。インターネットなどのベストエフォートパケットネットワークで使用するために、バッファメモリ(315)は、必要になる場合があり、比較的大きくすることができ、有利には適応性のサイズにすることができる。
【0015】
ビデオデコーダ(210)は、エントロピー符号化されたビデオシーケンスからシンボル(321)を再構築するための解析器(320)を含むことができる。これらのシンボルのカテゴリには、ビデオデコーダ(210)の動作を管理するために使用される情報と、デコーダの不可欠な部分ではないが、
図3に示すように、そのデコーダに結合されることができるディスプレイ(212)などのレンダリングデバイスを制御するための潜在的な情報とが含まれる。レンダリングデバイスの制御情報は、補助拡張情報(SEI:Supplemental Enhancement Information)メッセージまたはビデオユーザビリティ情報(VUI:Video Usability Information)パラメータセットフラグメント(図示せず)の形であってもよい。解析器(320)は、受信された、符号化されたビデオシーケンスに対して解析/エントロピー復号化を行うことができる。符号化されたビデオシーケンスの符号化は、ビデオ符号化技術または規格に従うことができて、当業者に知られている原理に従うことができ、可変長符号化、ハフマン符号化(Huffman coding)、コンテキスト感度を有するかまたは有しないかの算術符号化などを含む。解析器(320)は、グループに対応する少なくとも1つのパラメータに基づいて、符号化されたビデオシーケンスから、ビデオデコーダにおける画素のサブグループのうちの少なくとも1つのためのサブグループパラメータのセットを、抽出することができる。サブグループは、画像のグループ(GOP:Group of Pictures)、画像、サブ画像、タイル、スライス、ブリック、マクロブロック、符号化ツリーユニット(CTU:Coding Tree Unit)、符号化ユニット(CU:Coding Unit)、ブロック、変換ユニット(TU:Trans form Unit)、予測ユニット(PU:Prection Unit)などを含むことができる。タイルは、画像における特定のタイル列およびタイル行内のCU/CTUの長方形の領域を示すことができる。 ブリックは、特定のタイル内のCU/CTU行の長方形の領域を示すことができる。スライスは、NALユニットに含まれる、画像の1つまたは複数のブリックを示すことができる。 サブ画像は、画像における1つまたは複数のスライスの長方形の領域を示すことができる。エントロピーデコーダ/解析器は、変換係数、量子化器パラメータ値、動きベクトルなどの情報を符号化されたビデオシーケンスから抽出することもできる。
【0016】
解析器(320)は、シンボル(321)を作成するために、バッファメモリ(315)から受信されたビデオシーケンスに対してエントロピー復号化/解析動作を実行することができる。
【0017】
シンボル(321)の再構築は、符号化されたビデオ画像またはその一部(例えば、レーム間画像およびフレーム内画像、フレーム間ブロックおよびフレーム内ブロック)のタイプ、および他の要因に応じて、複数の異なるユニットに関連することができる。どのようなユニットに関連するか、およびどのように関連するかは、解析器(320)によって、符号化されたビデオシーケンスから解析されたサブグループ制御情報によって制御されることができる。解析器(320)と以下の複数のユニットの間との間のそのようなサブグループ制御情報のフローは明確にするために説明されていない。
【0018】
既に言及された機能ブロックに加えて、ビデオデコーダ210は、以下に説明するように、いくつかの機能ユニットに概念的に細分化されることができる。商業的制約で動作する実際の実施形態では、これらのユニットの多くは、互いに密接に相互作用し、少なくとも部分的には互いに統合されることができる。しかしながら、開示された主題を説明する目的のために、以下の機能ユニットへの概念的な細分が適切である。
【0019】
第1ユニットは、スケーラ/逆変換ユニット(351)である。スケーラ/逆変換ユニット(351)は、量子化された変換係数と、どのような変換を使用するか、ブロックサイズ、量子化因子、量子化スケーリング行列などを含む制御情報とを、シンボル(321)として解析器(320)から受信する。スケーラ/逆変換ユニット(351)は、アグリゲータ(355)に入力できるサンプル値を含むブロックを出力することができる。
【0020】
いくつかの場合では、スケーラ/逆変換ユニット(351)の出力サンプルは、フレーム内符号化ブロックに属することができ、即ち、このフレーム内符号化ブロックは、以前に再構築された画像からの予測情報を使用していないが、現在の画像の以前に再構築された部分からの予測情報を使用できるブロックである。このような予測情報は、フレーム内画像予測ユニット(352)によって提供されてもよい。いくつかの場合では、フレーム内画像予測ユニット(352)は、現在の(部分的に再構築された)画像(358)から抽出された、周囲の既に再構築された情報を使用して、再構築中のブロックと同じサイズおよび形状のブロックを生成する。アグリゲータ(355)は、いくつかの場合では、サンプルごとに基づいて、フレーム内予測ユニット(352)によって生成された予測情報を、スケーラ/逆変換ユニット(351)によって提供される出力サンプル情報に追加する。
【0021】
他の場合では、スケーラ/逆変換ユニット(351)の出力サンプルは、フレーム間符号化されたブロックおよび潜在的に動き補償されたブロックに属することができる。このような場合、動き補償予測ユニット(353)は、参照画像メモリ(357)にアクセスして、予測に用いられるサンプルを抽出することができる。抽出されたサンプルが、ブロックに関連するシンボル(321)に従って動き補償された後、これらのサンプルは、出力サンプル情報を生成するために、アグリゲータ(355)によってスケーラ/逆変換ユニットの出力(この場合、残差サンプルまたは残差信号と呼ばれる)に追加されることができる。動き補償ユニットが予測サンプルを抽出するときの参照画像メモリ内のアドレスは、例えば、X、Yおよび参照画像成分を有することができるシンボル(321)の形で、動き補償ユニットに利用可能な動きベクトルによって制御されることができる。動き補償は、サブサンプルの正確な運動ベクトルが使用中であるときに、参照画像メモリから抽出されたサンプル値の補間、運動ベクトル予測メカニズムなどを含むこともできる。
【0022】
アグリゲータ(355)の出力サンプルは、ループフィルタユニット(356)において様々なループフィルタリング技術によって採用されてもよい。ビデオ圧縮技術は、符号化されたビデオビットストリームに含まれ、解析器(320)からのシンボル(321)としてループフィルタユニット(356)に利用可能になるパラメータによって制御されるループ内フィルタ技術を含みことができ、また、符号化された画像または符号化されたビデオシーケンスの前の部分(復号化順序で)を復号化する期間で得られたメタ情報に応答し、および、以前に再構築されてループフィルタされたサンプル値に応答することもできる。
【0023】
ループフィルタユニット(356)の出力は、レンダリングデバイス(212)に出力することができ、および、将来のフレーム間画像予測で使用するために参照画像メモリに記憶することができるサンプルストリームとすることができる。
【0024】
特定の符号化された画像は、一旦完全に再構築されると、将来の予測のための参考画像として使用されることができる。例えば、符号化された画像が一旦完全に再構築され、かつ、符号化された画像が(例えば、解析器(320)によって)参照画像として識別されると、現在の画像(358)は、参照画像バッファ(357)の一部となることができ、また、後続の符号化された画像の再構築を開始する前に、新しい現在の画像メモリを再割り当てすることができる。
【0025】
ビデオデコーダ210は、例えばITU-T REC. H.265などの規格における所定のビデオ圧縮技術に従って復号化動作を実行することができる。符号化されたビデオシーケンスは、ビデオ圧縮技術ドキュメントまたは規格において、特に、それらのプロファイルドキュメントにおいて指定されたビデオ圧縮技術または規格の構文に従うという意味で、使用されているビデオ圧縮技術または規格によって指定された構文に従うことができる。符号化されたビデオシーケンスの複雑さが、ビデオ圧縮技術または規格の階層によって定義された範囲内にあることもコンプライアンスに必要である。いくつかの場合では、階層は、最大画像サイズ、最大フレームレート、(例えば、毎秒メガ(mega)個のサンプルを単位として測定された)最大再構築サンプルレート、最大参照画像サイズなどを制限する。階層によって設定された制限は、いくつかの場合では、仮想参照デコーダ(HRD:Hypthetical Reference Decoder)仕様と、符号化されたビデオシーケンスにおいて信号で通知されたHRDバッファ管理のメタデータとによって、さらに限定されることができる。
【0026】
一実施形態では、受信機(310)は、符号化されたビデオとともに付加(冗長)的なデータを受信することができる。付加的なデータは、符号化されたビデオシーケンスの一部として含まれることができる。付加的なデータは、データを適切に復号化し、および/または、元のビデオデータをより正確に再構築するために、ビデオデコーダ(210)によって使用されることができる。付加的なデータは、例えば、時間的、空間的、または信号雑音比(SNR:signal noise ratio)拡張層、冗長スライス、冗長画像、前方誤り訂正符号などの形式にすることができる。
図4は、本開示の一実施形態によるビデオエンコーダ(203)の機能ブロック図である。
【0027】
エンコーダ(203)は、エンコーダ(203)によって符号化されるビデオ画像を捕捉することができるビデオソース(201)(それはエンコーダの一部ではない)から、ビデオサンプルを受信することができる。
【0028】
ビデオソース(201)は、エンコーダ(203)によって符号化されるソースビデオシーケンスをデジタルビデオサンプルストリームの形で提供することができ、前記タルビデオサンプルストリームは、任意の適切なビット深度(例えば、8ビット、10ビット、12ビット、…)、任意の色空間(例えば、BT.601 Y CrCB、RGB…)、および任意の適切なサンプリング構造(例えば、Y CrCb 4:2:0、Y CrCb 4:4:4)を有することができる。メディアサービスシステムでは、ビデオソース(201)は、以前に準備されたビデオを記憶する記憶デバイスであってもよい。ビデオ会議システムでは、ビデオソース(201)は、ローカル画像情報をビデオシーケンスとして捕捉するカメラであり得る。ビデオデータは、順番に見られるときに動きを与える複数の個別の画像として提供されることができる。画像自体は、空間画素アレイとして構成されてもよく、ここで、各画素は、使用中のサンプリング構造、色空間などに応じて、1つ以上のサンプルを含むことができる。当業者は、画素とサンプルとの間の関係を容易に理解することができる。以下の説明は、サンプルに焦点を当てる。
【0029】
一実施形態によれば、エンコーダ(203)は、リアルタイムで、またはアプリケーションによって要求される任意の他の時間制約の下で、ソースビデオシーケンスの画像を符号化して圧縮し、符号化されたビデオシーケンス(443)にすることができる。適切な符号化速度を実施することは、コントローラ(450)の1つの機能である。コントローラは、以下で説明するように他の機能ユニットを制御し、これらのユニットに機能的に結合される。結合は、明瞭にするために図示されていない。コントローラによって設定されたパラメータは、レート制御関連パラメータ(例えば、画像スキップ、量子化器、レート歪み最適化技術のλ(ラムダ)値)、画像サイズ、画像グループ(GOP:group of pictures)レイアウト、最大動きベクトル探索範囲などを含むことができる。当業者は、コントローラ(450)の他の機能を容易に識別することができ、これらの機能が、特定のシステム設計のために最適化されたビデオエンコーダ(203)に関係するからである。
【0030】
いくつかのビデオエンコーダは、当業者が容易に認識する「符号化ループ」で動作する。過度に簡単化された説明として、符号化ループは、エンコーダ(430)(以下、「ソースコーダ」)(符号化される入力画像と、参照画像とに基づいてシンボルを作成することを担当する)の符号化部分と、エンコーダ(203)に埋め込まれた(ローカル)デコーダ(433)とによって構成されることができ、前記デコーダ(433)は、(リモート)デコーダによってサンプルデータを作成するようにシンボルを再構築してサンプルデータを作成する(開示された主題で考慮されているビデオ圧縮技術では、シンボルと符号化されたビデオビットストリームとの間の任意の圧縮が無損失であるため)。再構築されたサンプルストリームは、参照画像メモリ(434)に入力される。シンボルストリームの復号化により、デコーダの場所(ローカルまたはリモート)に関係なくビット正確な結果が得られるため、参照画像バッファのコンテンツは、ローカルエンコーダとリモートエンコーダとの間でもビットで正確に対応する。言い換えれば、エンコーダの予測部分が「見た」参照画像サンプルは、デコーダが復号化期間に予測を使用する際に「見た」サンプル値と全く同じである。この参照画像の同期性の基本原理(および、例えばチャネル誤差の原因で同期性を維持できない場合に生じるドリフト)は、当業者によく知られている。
【0031】
「ローカル」デコーダ(433)の動作は、既に
図3に関連して以上で詳細に説明された、「リモート」デコーダ(210)の動作と同じであってもよい。しかし、
図4をさらに簡単に参照すると、シンボルが利用可能であり、かつ、エントロピーコーダ(445)および解析器(320)によって符号化されたビデオシーケンスへのシンボルの符号化/復号化が無損失であることができるため、(チャネル(312)、受信機(310)、バッファメモリ(315)および解析器(320)を含む)デコーダ(210)のエントロピー復号化部分は、ローカルデコーダ(433)で完全に実行されていない可能性がある。
【0032】
この時点で、デコーダに存在する解析/エントロピー復号化以外のいかなるデコーダ技術も、対応するエンコーダにおいて、実質的に同一の機能形式で必ず存在する必要がある、ということが観察されている。このため、開示された主題は、デコーダ動作に焦点を合わせている。エンコーダ技術の説明は、包括的に説明されているデコーダ技術の逆であるため、省略されることができる。特定の領域だけで、より詳細な説明が必要であり、以下で提供される。
【0033】
その動作の一部として、ソースコーダ(430)は、動き補償予測符号化を実行することができ、前記動き補償予測符号化は、ビデオシーケンスから「参照フレーム」として指定された1つ以上の以前に符号化されたフレームを参照して、入力フレームを予測的に符号化する。このようにして、符号化エンジン(432)は、入力フレームの画素ブロックと、入力フレームに対する予測参照として選択されることができる参照フレームの画素ブロックとの間の差分を符号化する。
【0034】
ローカルビデオデコーダ(433)は、ソースコーダ(430)によって作成されたシンボルに基づいて、参照フレームとして指定されることができるフレームの符号化されたビデオデータを復号化することができる。符号化エンジン(432)の動作は、有利には損失性のプロセスであってもよい。符号化されたビデオデータがビデオデコーダ(
図4に示されない)で復号化されることができる場合、再構築されたビデオシーケンスは、通常、いくつかの誤差を伴うソースビデオシーケンスのレプリカであってもよい。ローカルビデオデコーダ(433)は、参照フレームに対してビデオデコーダによって実行されることができる復号化プロセスを複製して、再構築された参照フレームを参照画像キャッシュ(434)に記憶させることができる。このようにして、エンコーダ(203)は、遠端ビデオデコーダによって得られる(伝送誤差が存在しない)再構築された参照フレームと共通のコンテンツを有する再構築された参照フレームのコピーを、ローカルに記憶することができる。
【0035】
予測器(435)は、符号化エンジン(432)に対して予測検索を実行することができる。すなわち、符号化される新しいフレームについて、予測器(435)は、新しい画像の適切な予測参照として機能するサンプルデータ(候補参照画素ブロックとして)または特定のメタデータ、例えば参照画像動きベクトル、ブロック形状などについて、参照画像メモリ(434)を検索することができる。予測器(435)は、適切な予測参照を見つけるために、サンプルブロックに基づいて、画素ブロックごとに動作することができる。いくつかの場合では、予測器(435)によって得られた検索結果によって決定されるように、入力画像は、参照画像メモリ(434)に記憶された複数の参照画像から引き出された予測参照を有することができる。
【0036】
コントローラ(450)は、例えば、ビデオデータを符号化するために使用されるパラメータおよびサブグループパラメータの設定を含む、ビデオコーダ(430)の符号化動作を管理することができる。
【0037】
上述のすべての機能ユニットの出力は、エントロピーコーダ(445)においてエントロピー符号化されることができる。エントロピーコーダは、ハフマン符号化、可変長符号化、算術符号化などのような、当業者に知られている技術に従って、シンボルを無損失で圧縮することにより、様々な機能ユニットによって生成されたシンボルを符号化されたビデオシーケンスに変換する。
【0038】
送信機(440)は、符号化されたビデオデータを記憶する記憶デバイスへのハードウェア/ソフトウェアリンクであることができる通信チャネル(460)を介した送信に備えるために、エントロピーコーダ(445)によって作成された、符号化されたビデオシーケンスをバッファリングすることができる。送信機(440)は、ビデオコーダ(430)からの符号化されたビデオデータを、送信される他のデータ、例えば、符号化されたオーディオデータおよび/または補助データストリーム(ソースは図示せず)とマージすることができる。
【0039】
コントローラ(450)は、ビデオエンコーダ(203)の動作を管理することができる。符号化する期間、コントローラ(450)は、各符号化された画像に、特定の符号化された画像タイプを割り当てることができ、これは、それぞれの画像に適用できる符号化技術に影響を与える可能性がある。例えば、画像は、以下のフレームタイプのいずれかとして割り当てられることが多く、即ち、
フレーム内画像(I画像)は、シーケンス内の任意の他のフレームを予測ソースとして使用せずに、符号化および復号化されることができるものであってもよい。いくつかのビデオコーデックは、例えば、独立デコーダリフレッシュ(IDR:Independent Decoder Refresh)画像などの異なるタイプのフレーム内画像を許容する。当業者は、I画像の変種およびそれらのそれぞれのアプリケーションおよび特徴を理解している。
【0040】
予測画像(P画像)は、多くとも1つの動きベクトルおよび参照インデックスを使用して各データブロックのサンプル値を予測するフレーム内予測またはフレーム間予測を、使用して符号化および復号化され得るものであってもよい。
【0041】
双方向予測画像(B画像)は、多くとも2つの動きベクトルおよび参照インデックスを使用して各ブロックのサンプル値を予測するフレーム内予測またはフレーム間予測を使用して、符号化および復号化され得るものであってもよい。同様に、複数の予測画像は、単一のブロックの再構築に2つ以上の参照画像および関連されたメタデータを使用することができる。
【0042】
ソース画像は、一般的に、複数のサンプルデータブロック(例えば、それぞれ4x4、8x8、4x8、または16x16個のサンプルのブロック)に空間的に細分化され、ブロックごとに符号化されることができる。ブロックは、当該ブロックのそれぞれの画像に適用される符号化割り当てによって決定されるように、他の(既に符号化された)ブロックを参照して予測的に符号化されることができる。例えば、I画像のブロックは、非予測的に符号化されてもよく、またはそれらが同じ画像の既に符号化されたブロックを参照して予測的に符号化されてもよい(空間予測またはフレーム内予測)。P画像の画素ブロックは、1つ前に符号化された参照画像を参照して、空間的予測を介してまたは時間的予測を介して予測的に符号化されてもよい。B画像のブロックは、1つまたは2つ前に符号化された参照画像を参照して、空間予測または時間領域予測を介して予測的に符号化されてもよい。
【0043】
ビデオコーダ(203)は、例えばITU-T REC.H.265などのような所定のビデオ符号化技術または規格に従って、符号化動作を実行することができる。その動作において、ビデオコーダ(203)は、入力ビデオシーケンスにおける時間的および空間的冗長性を利用する予測符号化動作を含む、さまざまな圧縮動作を実行することができる。したがって、符号化されたビデオデータは、使用されるビデオ符号化技術または規格によって指定された構文に従うことができる。
【0044】
一実施形態では、送信機(440)は、符号化されたビデオとともに、付加的なデータを送信することができる。ビデオコーダ(430)は、そのようなデータを、符号化されたビデオシーケンスの一部として含むことができる。付加的なデータは、時間的/空間的/SNR拡張層、冗長画像やスライスなどの他の形式の冗長データ、補足拡張情報(SEI:Supplementary Enhancement Information)メッセージ、視覚ユーザビリティ情報(VUI:Visual Usability Information)パラメータセットフラグメントなどを含むことができる。
【0045】
VVCドラフト7は、符号化されるビデオシーケンスが複数の色平面を有し、かつこれらの色平面が共同で符号化されることができると仮定する技術を採用している。ただし、状況によっては、ビデオがモノクロである場合や、ビデオの色平面が個別に符号化される必要がある場合には、これらの共同色平面符号化ツールは、もはや適用できなくなるい。これらの状況をサポートするために、実施形態は、必要に応じてこれらの共同色平面符号化ツールを無効にするために、VCCドラフト7を超える構文およびセマンティクスを提供する。
【0046】
VVCドラフト7は、モノクロビデオのコーディングおよび4:4:4色度フォーマットビデオの3つの色成分のコーディングを別々にサポートすることを目的とする。これらのアプリケーションをサポートするために、VCCドラフト7は、ChromaArrayTypeと呼ばれる変数を定義することで、入力ビデオがモノクロである場合、およびビデオの色成分を個別かつ独立に符号化する必要がある場合には適用できるまたは適用できない、関連付けられたコーディングツールを有効または無効にする。
【0047】
VVCドラフト7では、separate_colour_plane_flagの値に応じて、変数ChromaArrayTypeの値が以下のように割り当てられ、即ち、separate_colour_plane_flagが0に等しい場合、ChromaArrayTypeは、chroma_format_idcに等しく設定される。それ以外の場合、separate_colour_plane_flagが1に等しい場合、ChromaArrayTypeは、0に等しく設定される。
【0048】
ChromaArrayTypeが0である場合、これは、入力ビデオがモノクロであるか、個別に符号化された色平面を有する4:4:4であることを意味することができる。VVCドラフト7は、モノクロのビデオに適用できない、およびビデオの色成分のそれぞれを符号化する必要があるビデオに適用できないコーディングツールを無効にすることを目的とし、まるで各成分はモノクロであるかのようである。しかし、ChromaArrayTypeが0である場合、VCCドラフト7は、sps_joint_cbcr_enabled_flagまたはpps_joint_cbcr_qp_offset_present_flagによって有効にされたコーディングツールなどの、これらのコーディングツールのうちのいくつかを無効にすることができない。実施形態は、VVCドラフト7に対する修正に関し、これにより、入力ビデオがモノクロであるか、または個別に符号化された色平面を有する4:4:4であるときはいつでも、いくつかのコーディングツールを無効にすることができる。
VVCドラフト7における構文は、以下の表1、表2および表3に斜体で示されている。
【0049】
【0050】
【0051】
【0052】
【0053】
【0054】
【0055】
【0056】
【0057】
【0058】
【0059】
【0060】
【0061】
【0062】
【0063】
【0064】
実施形態は、以下のように、ChromaArrayTypeが0に等しいときにsps_joint_cbcr_enabled_flagを処理することに関することができる。表4に示すように、ChromaArrayTypeが0に等しい場合、sps_joint_cbcr_enabled_flagは解析されず、0であると推定され、それにより、色度残差コーディングとしての、共同CbおよびCr残差コーディングは、必要ではない復号プロセスを回避するために無効にする。テキストの変更は、斜体で強調表示され、取り消し線付きのテキストは、削除されたテキストを表す。
【0065】
【0066】
0に等しいsps_joint_cbcr_enabled_flagは、色度残差の共同コーディングが無効になっていることを指定することができる。1に等しいsps_joint_cbcr_enabled_flagは、色度残差の共同コーディングが有効になっていることを指定することができる。sps_joint_cbcr_enabled_flagが存在しない場合、0に等しいと推測されることができる。
【0067】
ChromaArrayTypeが0である場合、ビデオ成分は、符号化されるべきであり、まるでビデオ成分はモノクロであるか、または個別に符号化された色平面を有する4:4:4であるかのようである。表1、表2および表3における斜体の構文に示されているように、構文要素pps_cb_qp_offset、pps_cr_qp_offset、pps_joint_cbcr_qp_offset_present_flag、pps_slice_chroma_qp_offsets_present_flag、pps_cu_chroma_qp_offset_list_enabled_flag、alf_chroma_filter_signal_flagは、ChromaArrayType上で独立に信号で通知される。ChromaArrayTypeが0である場合、これらのフラグの値は、1にすることができ、これは、コーディングツールが、ビデオ成分を符号化するのには適さないようにして、まるでビデオ成分はモノクロであるか、または個別に符号化された色平面を有する4:4:4であるかのようである。これは、ChromaArrayTypeと、上記の構文要素との間のシグナリングの競合を引き起こす。
【0068】
ChromaArrayTypeと、関連付けられた構文要素との間のシグナリングには競合が存在しないことを保証するために、実施形態は、シーケンスパラメータセットRBSPの構文、画像パラメータセットRBSPの構文、および適応ループフィルタデータの構文への変更に関する。
【0069】
実施形態は、以下の表5、表6、表7および表8に示すVVCドラフト7の仕様テキストに対するテキスト変更の形式で説明される。テキストの変更は、斜体で強調表示され、取り消し線付きのテキストは、削除されたテキストを表す。
【0070】
【0071】
【0072】
【0073】
【0074】
【0075】
【0076】
【0077】
【0078】
【0079】
【0080】
【0081】
【0082】
【0083】
【0084】
【0085】
【0086】
pps_chroma_present_flagは、色度成分が存在しているかどうかを指定することができる。pps_chroma_present_flagが1に等しい場合、色度関連構文は、PPSにおいて存在することができる。0に等しいpps_chroma_present_flagは、色度成分が存在していないことを指示することができる。ChromaArrayTypeが0に等しい場合、pps_chroma_present_flagが0に等しいことは、ビットストリーム一致性への要件であってよい。
【0087】
pps_cb_qp_offsetおよびpps_cr_qp_offsetは、Qp’CbおよびQp’Qrを導出するために使用される輝度量子化パラメータQp’Yへのオフセットをそれぞれ指定することができる。pps_cb_qp_offsetおよびpps_cr_qp_offsetの値は、-12から+12までの範囲内にあり得る(エンドポイントを含む)。ChromaArrayTypeが0に等しい場合、pps_cb_qp_offsetおよびpps_cr_qp_offsetの値は、復号プロセスで使用されないことができ、またデコーダは、それらの値を無視することができる。
【0088】
1に等しいpps_joint_cbcr_qp_offset_present_flagは、pps_joint_cbcr_qp_offset_valueおよびjoint_cbcr_qp_offset_list[i]が、PPS RBSPの構文構造体に存在することを指定することができる。0に等しいpps_joint_cbcr_qp_offset_present_flagは、pps_joint_cbcr_qp_offset_valueおよびjoint_cbcr_qp_offset_list[i]が、PPS RBSPの構文構造体に存在しないことを指定することができる。pps_joint_cbcr_qp_offset_present_flagが存在しない場合、それは0に等しいと推定されることができる。
【0089】
1に等しいpps_slice_chroma_qp_offsets_present_flagは、slice_cb_qp_offsetおよびslice_cr_qp_offsetの構文要素が、関連付けられたスライスヘッダーに存在することを示すことができる。0に等しいpps_slice_chroma_qp_offsets_present_flagは、それらの構文要素が、関連付けられたスライスヘッダーに存在しないことを示すことができる。pps_slice_chroma_qp_offsets_present_flagが存在しない場合、それは0に等しいと推定されることができる。
【0090】
1に等しいpps_cu_chroma_qp_offset_list_enabled_flagは、pic_cu_chroma_qp_offset_subdiv_intra_sliceおよびpic_cu_chroma_qp_offset_inter_sliceの構文要素が、PPSを参照するPHsに存在し、かつcu_chroma_qp_offset_flagが、変換ユニットの構文およびパレットコーディングの構文内に存在することを指定することができる。0に等しいpps_cu_chroma_qp_offset_list_enabled_flagは、pic_cu_chroma_qp_offset_subdiv_intra_sliceおよびpic_cu_chroma_qp_offset_inter_slice構文要素が、PPSを参照する画像ヘッダーに存在しなく、かつcu_chroma_qp_offset_flagが、変換ユニットの構文およびパレットコーディングの構文に存在しないことを指定することができる。pps_cu_chroma_qp_offset_list_enabled_flagが存在しない場合、それは0に等しいと推定されることができる。
【0091】
aps_chroma_present_flagは、色度成分が存在するかどうかを指定する。aps_chroma_present_flagが1に等しい場合、色度関連の構文は、APSに存在することができる。に等しいaps_chroma_present_flagは、色度関連の構文が存在しないことを指定することができる。ChromaArrayTypeが0に等しい場合、pps_chroma_present_flagが0に等しいことは、ビットストリーム一致性への要件であってよい。
【0092】
1に等しいalf_chroma_filter_signal_flagは、色度フィルタが信号で通知されることを指定することができる。0に等しいalf_chroma_filter_signal_flagは、色度フィルタが信号で通知されないことを指定することができる。alf_chroma_filter_signal_flagが存在しない場合、それは0に等しいと推定されることができる。
【0093】
ChromaArrayTypeが0である場合、ビデオ成分は、符号化されることができ、まるでビデオ成分はモノクロであるか、または個別に符号化された色平面を有する4:4:4であるかのようである。
【0094】
図5Aでは、pps_chroma_present_flagが0であるとき、色度QP関連の構文の解析は、必要ではない復号プロセスを回避するために無効にされることができる。pps_cb_qp_offset、pps_cr_qp_offset、pps_joint_cbcr_qp_offset_present_flag、pps_slice_chroma_qp_offsets_present_flag、pps_cu_chroma_qp_offset_list_enabled_flagなどの構文は、0と推定されることができ、従って、デコーダ側のQP導出プロセスには適用されない。
【0095】
図5Bでは、aps_chroma_present_flagが0である場合、色度フィルタとしての色度ALFフィルタは、必要ではない復号プロセスを回避するために、無効にされることができる。したがって、構文alf_chroma_filter_signal_flagは、0と推定される。
【0096】
図5Cでは、VVCドラフト7には、色度フォーマットが4:4:4であって個別の色平面を持っていない場合にのみ適用されるいくつかのコーディングツールがあり、例えば色度のためのBDPCM、PLTおよびACTなどである。色度フォーマットが4:4:4であって個別の色平面を有する場合、これらの
コーディングツールに関連付けられた構文は解析されるべきではなく、これは、色度成分が輝度成分として存在することを意味する。したがって、これらの構文の解析は、必要ではない復号プロセスを回避するために、ChromaArrayTypeが3に等しい場合にのみ実行されるべきである。
【0097】
詳細には、
図5A~
図5Cは、実施形態による、符号化されたビデオビットストリームを復号するための例示的なプロセス500A、500Bおよび500Cのフローチャートである。実施形態では、プロセス500A、500Bおよび500Cのいずれか、またはプロセス500A、500Bおよび500Cの任意の部分は、必要に応じて、任意の組み合わせまたは順列で、および任意の順序で組み合わせられてもよい。いくつかの実施形態では、
図5A~
図5Cの1つまたは複数のプロセスブロックは、デコーダ210によって実行されてもよい。いくつかの実施形態では、
図5A~
図5Cの1つまたは複数のプロセスブロックは、デコーダ210と分離された、またはデコーダ210を含む別のデバイスまたはデバイスのグループ(例えばエンコーダ203など)によって実行されてもよい。
【0098】
図5Aに示されるように、プロセス500Aは、符号化されたビデオシーケンスを含む符号化されたビデオビットストリームを取得するステップ(ブロック511)を含むことができる。
【0099】
図5Aにさらに示されるように、プロセス500Aは、pps_chroma_present_flagが1に等しいかどうかを決定するステップ(ブロック512)を含むことができる。
【0100】
図5Aにさらに示されるように、pps_chroma_present_flagが1に等しくない(ブロック512において「いいえ」である)場合、プロセス500Aは、ブロック513に進む。しかしながら、pps_chroma_present_flagが1に等しい(ブロック512において「はい」である)場合、プロセス500Aは、ブロック515に進む。
【0101】
図5Aにさらに示されるように、プロセス500Aは、色度QP関連構文を解析せずに、色度QP関連構文の値が0に等しいと推定するステップ(ブロック513)と、次に、色度QP関連構文を適用せずに、ビデオシーケンスを復号するステップ(ブロック514)とを含むことができる。
図5Aにさらに示されるように、プロセス500Aは、色度QP関連構文の値を解析するステップ(ブロック515)を含むことができる。
【0102】
図5Aにさらに示されるように、プロセス500Aは、色度QP関連構文の値が0に等しいかどうかを決定するステップ(ブロック516)を含むことができる。
【0103】
図5Aにさらに示されるように、色度QP相関構文の値が0に等しいと決定された(ブロック516において「はい」である)場合、プロセス500Aは、ブロック514に進む。しかしながら、色度QP関連構文の値が0に等しくないと決定された場合(ブロック516において「いいえ」である)、プロセス500Aは、ブロック517に進み、ここで、色度QP関連構文が、ビデオシーケンスを復号するときに適用される。
【0104】
図5Bに示されるように、プロセス500Bは、符号化されたビデオシーケンスを含む符号化されたビデオビットストリームを取得するステップ(ブロック521)を含むことができる。
【0105】
図5Bにさらに示されるように、プロセス500Bは、aps_chroma_present_flagが1に等しいかどうかを決定するステップ(ブロック522)を含むことができる。
【0106】
図5Bにさらに示されるように、aps_chroma_present_flagが1に等しくない(ブロック522において「いいえ」である)場合、プロセス500Bは、ブロック523に進む。しかしながら、aps_chroma_present_flagが1に等しい(ブロック522において「はい」である)場合、プロセス500Bは、ブロック525に進む。
【0107】
図5Bにさらに示されるように、プロセス500Bは、alf_chroma_filter_signal_flagを解析せずに、alf_chroma_filter_signal_flagの値が0に等しいと推定するステップ(ブロック523)と、次に、ALF色度フィルタを適用せずに、ビデオシーケンスを復号するステップ(ブロック524)とを含むことができる。
【0108】
図5Bにさらに示されるように、プロセス500Bは、alf_chroma_filter_signal_flagの値を解析するステップ(ブロック525)を含むことができる。
【0109】
図5Bにさらに示されるように、プロセス500Bは、alf_chroma_filter_signal_flagの値が1に等しいかどうかを決定するステップ(ブロック526)を含むことができる。
【0110】
図5Bにさらに示されるように、色度QP関連構文の値が1に等しくないと決定された(ブロック526において「いいえ」である)場合、プロセス500Bは、ブロック524に進む。しかしながら、alf_chroma_filter_signal_flagの値が1に等しいと決定された(ブロック526において「はい」である)場合、プロセス500Bは、ブロック527に進み、ここで、ALF色度フィルタが、ビデオシーケンスを復号するときに適用される。
【0111】
図5Cに示すように、プロセス500Cは、符号化されたビデオシーケンスを含む符号化されたビデオビットストリームを取得するステップ(ブロック531)を含むことができる。
【0112】
図5Cにさらに示されるように、プロセス500Cは、chromaArrayTypeが3に等しいかどうかを決定するステップ(ブロック532)を含むことができる。
【0113】
図5Cにさらに示されるように、chromaArrayTypeが3に等しくない(ブロック532において「いいえ」である)場合、プロセス500Cは、ブロック533に進む。しかしながら、chromaArrayTypeが3に等しい(ブロック532において「はい」である)場合、プロセス500Cは、ブロック535に進む。
【0114】
図5Cにさらに示されるように、プロセス500Cは、4:4:4であって個別の色平面を持っていない色度フォーマットに関連付けられた構文を解析せずに、4:4:4であって個別の色平面を持っていない色度フォーマットに関連付けられた構文の値が0に等しいと推定するステップ(ブロック533)と、次に、4:4:4であって個別の色平面を持っていない色度フォーマットに関連付けられたコーディングツールを適用せずに、ビデオシーケンスを復号するステップ(ブロック534)とを含むことができる。
【0115】
図5Cにさらに示されるように、プロセス500Cは、4:4:4であって個別の色平面を持っていない色度フォーマットに関連付けられた構文の値を解析するステップ(ブロック535)を含むことができる。
【0116】
図5Cにさらに示されるように、処理500Cは、4:4:4であって個別の色平面を持っていない色度フォーマットに関連付けられた構文の値が1に等しいかどうかを決定するステップ(ブロック536)を含むことができる。
【0117】
図5Cにさらに示されるように、4:4:4であって個別の色平面を持っていない色度フォーマットに関連付けられた構文の値が1に等しくないと決定された(ブロック536において「いいえ」である)場合、プロセス500Cは、ブロック534に進む。しかしながら、4:4:4であって個別の色平面を持っていない色度フォーマットに関連付けられた構文の値が1に等しいと決定された(ブロック536において「はい」である)場合、プロセス500Cは、ブロック537に進み、ここで、4:4:4であって個別の色平面を持っていない色度フォーマットに関連付けられた
コーディングツールが、ビデオシーケンスを復号するときに適用される。
【0118】
図6は、実施形態による、符号化されたビデオビットストリームを復号するための例示的なプロセス600のフローチャートである。実施形態では、プロセス600の任意の部分は、必要に応じて、任意の組み合わせまたは順列で、および任意の順序で組み合わせられてもよい。いくつかの実施形態では、
図6の1つまたは複数のプロセスブロックは、デコーダ210によって実行されてもよい。いくつかの実施形態では、
図6の1つまたは複数のプロセスブロックは、デコーダ210から分離された、またはデコーダ210を含む別のデバイスまたはデバイスのグループ(例えばエンコーダ203など)によって実行されてもよい。
図6に示されるように、プロセス600は、符号化されたビデオビットストリームを取得するステップ(ブロック601)を含むことができる。
【0119】
図6にさらに示されるように、プロセス600は、符号化されたビデオビットストリームに含まれるビデオシーケンスの色度アレイタイプが、ビデオシーケンスが複数の色平面を含み、かつ複数の色平面が共同で符号化されることを示す第1色度アレイタイプであるかどうかを決定するステップ(ブロック602)を含むことができる。
【0120】
図6にさらに示されるように、色度アレイタイプが第1色度アレイタイプではない(ブロック602において「いいえ」である)場合、プロセス600は、ブロック603に進む。しかしながら、色度アレイタイプが第1色度アレイタイプである(ブロック602において「はい」である)場合、プロセス600は、ブロック605に進む。
【0121】
図6にさらに示されるように、プロセス600は、符号化されたビデオビットストリームから少なくとも1つの構文要素を解析せずに、少なくとも1つの構文要素の値が0であると推定するステップ(ブロック603)と、次に、少なくとも1つの構文要素に対応する少なくとも1つの
コーディングツールを適用せずに、ビデオシーケンスを復号するステップ(ブロック604)とを含むことができる。
【0122】
図6にさらに示されるように、プロセス600は、少なくとも1つの構文要素の値が0に等しいかどうかを決定するステップ(ブロック
606)を含んでもよい。
【0123】
図6に示されるように、少なくとも1つの構文要素の値が0に等しいと決定された(ブロック606において「はい」である)場合、プロセス600は、ブロック604に進む。しかしながら、少なくとも1つの構文要素の値が0に等しくないと決定された(ブロック606において「いいえ」である)場合、プロセス600は、ブロック607に進み、ここで、ビデオシーケンスが、少なくとも1つの構文要素の値に基づいて、
コーディングツールを使用して復号される。
【0124】
実施形態では、色度アレイタイプは、ビデオシーケンスが複数の色平面を含むかどうかを示す第1フラグと、ビデオシーケンスの色度フォーマットを示す第1構文要素とに基づいて決定されることができる。
【0125】
実施形態では、少なくとも1つのコーディングツールは、ブロックベースのデルタパルス符号変調、パレットモードコーディング、およびアダプティブ色変換のうちの少なくとも1つを含むことができる。
ツールを使用して復号される。
【0126】
実施形態では、色度アレイタイプが第2色度アレイタイプであることに基づいて、画像パラメータセット(PPS)において信号で通知される第2フラグの値は、0に等しく設定されることができ、第2色度アレイタイプは、ビデオシーケンスが複数の色平面を含まないこと、または複数の色平面が個別に符号化されることを示す。
【0127】
実施形態では、少なくとも1つの構文要素は、PPSにおいて信号で通知されることができ、また、少なくとも1つのコーディングツールは、ビデオシーケンスの色度量子化パラメータに対応することができる。
【0128】
実施形態では、色度アレイタイプが第2色度アレイタイプであることに基づいて、適応パラメータセット(APS)において信号で通知される第3フラグの値は、ゼロに等しく設定されることができ、第2色度アレイタイプは、ビデオシーケンスが複数の色平面を含まないこと、または複数の色平面が個別に符号化されることを示す。
【0129】
実施形態では、少なくとも1つの構文要素は、APSにおいて信号で通知されることができ、また、少なくとも1つのコーディングツールは、アダプティブループフィルタに対応することができる。
【0130】
図5A~
図5Cおよび
図6は、プロセス500A、500B、500Cおよび600の例示的なブロックを示しているが、いくつかの実施形態では、プロセス500A、500B、500Cおよび600は、
図5A~
図5Cおよび
図6に描かれているブロックよりも、追加的なブロック、より少ないブロック、異なるブロック、または異なって並べられたブロックを含むことができる。付加的にまたは代替的に、プロセス500A、500B、500Cおよび600のブロックのうちの2つ以上は、並列に実行されることができる。
【0131】
さらに、提案された方法は、処理回路(例えば、1つまたは複数のプロセッサまたは1つまたは複数の集積回路)によって実現されることができる。一例では、1つまたは複数のプロセッサは、非一時的なコンピュータ読み取り可能な媒体に格納されているプログラムを実行することで、提案された方法のうちの1つまたは複数を実行する。
【0132】
上記の技術は、コンピュータ読み取り可能な命令を使用してコンピュータソフトウェアとして実現され、また、1つ以上のコンピュータ読み取り可能な媒体に物理的に記憶されることができる。例えば、
図7は、開示された主題のいくつかの実施形態を実現するのに適したコンピュータシステム700を示す。
【0133】
コンピュータソフトウェアは、任意の適切なマシンコードまたはコンピュータ言語を使用して符号化されてもよく、アセンブリ、コンパイル、リンクなどのメカニズムによって命令を含むコードを作成してもよいし、この命令は、コンピュータ中央処理ユニット(CPU:computer central processing unit)、グラフィック処理ユニット(GPU:Graphics Processing Unit)などによって直接的に実行されてもよく、または解釈、マイクロコードなどによって実行されてもよい。
【0134】
命令は、例えば、パーソナルコンピュータ、タブレットコンピュータ、サーバ、スマートフォン、ゲームデバイス、オブジェクトネットワークデバイス(internet of things devices)などを含む、様々なタイプのコンピュータまたはそのコンポーネントで実行されてもよい。
【0135】
図7に示されるコンピュータシステム700のコンポーネントは、本質的に例示的なものであり、本開示の実施形態を実現するコンピュータソフトウェアの使用範囲または機能に関するいかなる制限も示唆することが意図されていない。コンポーネントの構成は、コンピュータシステム700の例示的な実施形態に示されているコンポーネントのいずれかまたは組み合わせに関連する任意の依存性または要件を有すると解釈されるべきではない。
【0136】
コンピュータシステム700は、いくつかのヒューマンインターフェース入力デバイスを含むことができる。このようなヒューマンインターフェース入力デバイスは、例えば、触覚入力(例えば、キーストローク、スワイプ、データグローブの動き)、オーディオ入力(例えば、音声、拍手など)、視覚入力(例えば、ジェスチャーなど)、嗅覚入力(図示せず)によって、1人以上のユーザによる入力に応答することができる。ヒューマンインターフェース入力デバイスは、例えばオーディオ(例えば、音声、音楽、環境音など)、画像(例えば、スキャンされた画像、静止画像カメラから得られた写真画像など)、ビデオ(例えば、2次元ビデオ、立体映像を含む3次元ビデオなど)などの、人間による意識的な入力に必ずしも直接関連しているとは限らない、特定のメディアを捕捉するために使用されることもできる。
【0137】
ヒューマンインターフェース入力デバイスは、キーボード701、マウス702、トラックパッド703、タッチスクリーン710および関連付けられたグラフィックアダプタ750、データグローブ、ジョイスティック705、マイクロホン706、スキャナ707、カメラ708のうちの1つまたは複数を含むことができる(そのうちの1つだけが図示された)。
【0138】
コンピュータシステム700はまた、いくつかのヒューマンインターフェース出力デバイスを含むことができる。そのようなヒューマンインターフェース出力デバイスは、例えば、触覚出力、音、光、および嗅覚/味覚によって、1人以上のユーザの感覚を刺激することができる。このようなヒューマンインターフェース出力デバイスは、触覚出力デバイス(例えば、タッチスクリーン710、データグローブ、ジョイスティック705による触覚フィードバックであるが、入力デバイスとして作用しない触覚フィードバックデバイスであってもよい)、オーディオ出力デバイス(例えば、スピーカ709、ヘッドホン(図示せず))、視覚出力デバイス(例えば、ブラウン管(CRT:cathode ray tube)スクリーン、液晶ディスプレイ(LCD:liquid-crystal display)スクリーン、プラズマスクリーン、有機発光ダイオード(OLED:organic light-emitting diode)スクリーンを含むスクリーン710であり、各々は、タッチスクリーン入力機能を備えてもよく、あるいは備えていなくてもよく、各々は、触覚フィードバック機能を備えてもよく、あるいは備えていなくてもよいし、これらのいくつかは、ステレオグラフィック出力、仮想現実メガネ(図示せず)、ホログラフィックディスプレイとスモークタンク(図示せず)、およびプリンタ(図示せず)などによって、2次元の視覚出力または3次元以上の視覚出力を出力することができる。
【0139】
コンピュータシステム700は、例えば、CD/DVDを有するCD/DVD ROM/RW 720を含む光学媒体または類似の媒体721、サムドライブ722、リムーバブルハードドライブまたはソリッドステートドライブ723、テープおよびフロッピーディスク(図示せず)などのレガシー磁気媒体、セキュリティドングル(図示せず)などの特殊なROM/ASIC/PLDベースのデバイスなどのような、人間がアクセス可能な記憶デバイスおよびそれらに関連する媒体を含むことができる。
【0140】
当業者はまた、ここで開示されている主題に関連して使用される「コンピュータ読み取り可能な媒体」という用語が、伝送媒体、搬送波、または他の一時的な信号を包含しないことを理解すべきである。
【0141】
コンピュータシステム700はまた、1つ以上の通信ネットワーク(755)へのインターフェース(複数)を含むことができる。ネットワークは、例えば、無線、有線、光学的であってもよい。ネットワークはさらに、ローカルネットワーク、広域ネットワーク、大都市圏ネットワーク、車両用ネットワークおよび産業用ネットワーク、リアルタイムネットワーク、遅延耐性ネットワークなどであってもよい。ネットワークの例は、イーサネット(登録商標)、無線LAN、セルラーネットワーク((モバイル通信グローバルシステム(GSM)、第3世代(3G)、第4世代(4G)、第5世代(5G)、長期的な進化(LTE)などを含む)などのローカルエリアネットワーク、テレビケーブルまたは無線広域デジタルネットワーク(有線テレビ、衛星テレビ、地上放送テレビを含む)、車両用ネットワークおよび産業用ネットワーク(CANBusを含む)などを含む。いくつかのネットワークは、一般に、いくつかの汎用データポートまたは周辺バス(749)(例えば、コンピュータシステム700のユニバーサルシリアルバス(USB:universal serial bus)ポート)に接続された外部ネットワークインターフェースアダプタ(754)が必要であり、他のシステムは、通常、以下に説明するようにシステムバスに接続することによって、コンピュータシステム700のコアに統合される(例えば、イーサネットインターフェースからPCコンピュータシステムへ、またはセルラーネットワークインターフェースからスマートフォンコンピュータシステムへ)。一例として、ネットワーク755は、ネットワークインターフェース754を使用して周辺バス749に接続され得る。
【0142】
これらのネットワークのいずれかを使用して、コンピュータシステム700は、他のエンティティと通信することができる。このような通信は、単方向の受信のみ(例えば、放送TV)、単方向の送信のみ(例えば、CANバスから特定のCANバスデバイスへ)、あるいは、双方向の、例えばローカルまたは広域デジタルネットワークを使用して他のコンピュータシステムへの通信であってもよい。上記のように、特定のプロトコルおよびプロトコルスタックは、それらのネットワークおよびネットワークインターフェース(754)のそれぞれで使用されることができる。
【0143】
上記のヒューマンインターフェースデバイス、ヒューマンアクセス可能な記憶デバイス、およびネットワークインターフェースは、コンピュータシステム700のコア740に接続されることができる。
【0144】
コア740は、1つ以上の中央処理ユニット(CPU)741、画像処理ユニット(GPU)742、フィールドプログラマブルゲートエリア(FPGA)743の形式の専用プログラマブル処理ユニット、特定のタスクのためのハードウェア加速器744などを含むことができる。これらのデバイスは、リードオンリーメモリ(ROM:Read-only memory)745、ランダムアクセスメモリ(RAM:Random-access memory)746、例えば内部の非ユーザアクセスハードドライブ、ソリッドステートドライブ(SSD:solid-state drive)などの内部大容量ストレージ747などとともに、システムバス748を介して接続されてもよい。いくつかのコンピュータシステムでは、システムバス748は、付加的なCPU、GPUなどによって拡張を可能にするために、1つ以上の物理的プラグの形でアクセスすることができる。周辺デバイスは、コアのシステムバス748に直接に接続されてもよく、または周辺バス749を介して接続されてもよい。周辺バスのアーキテクチャは、周辺コンポーネント相互接続(PCI:peripheral component interconnect)、汎用シリアルバス(USB)などを含む。
【0145】
CPU 741、GPU 742、FPGA 743、および加速器744は、いくつかの命令を実行することができ、これらの命令を組み合わせて上記のコンピュータコードを構成することができる。そのコンピュータコードは、ROM 745またはRAM 746に記憶されることができる。また、一時的なデータは、RAM 746に記憶されることができる一方、永久的なデータは、例えば内部大容量ストレージ747に記憶されることができる。1つ以上のCPU 741、GPU 742、大容量ストレージ747、ROM 745、RAM 746などと密接に関連することができる、高速ストレージを使用することにより、任意のメモリデバイスに対する高速記憶および検索が可能になる。
【0146】
コンピュータ読み取り可能な媒体は、様々なコンピュータ実行された動作を実行するためのコンピュータコードを有することができる。媒体およびコンピュータコードは、本開示の目的のために特別に設計および構成されたものであってもよく、またはコンピュータソフトウェア分野の技術者によって知られ、利用可能な媒体およびコードであってもよい。
【0147】
限定ではなく例として、アーキテクチャ700、特にコア740を有するコンピュータシステムは、1つ以上の有形な、コンピュータ読み取り可能な媒体に具体化されたソフトウェアを実行する、(CPU、GPU、FPGA、加速器などを含む)プロセッサの結果として機能を提供することができる。このようなコンピュータ読み取り可能な媒体は、上述したようにユーザがアクセス可能な大容量ストレージに関連する媒体であり、コア内部大容量ストレージ747またはROM 745などの、不揮発性コア740を有する特定のストレージであってもよい。本開示の様々な実施形態を実現するソフトウェアは、そのようなデバイスに記憶され、コア740によって実行されてもよい。コンピュータ読み取り可能な媒体は、特定のニーズに応じて、1つ以上のメモリデバイスまたはチップを含むことができる。このソフトウェアは、コア740、具体的にはその中のプロセッサ(CPU、GPU、FPGAなどを含む)に、RAM 746に記憶されているデータ構造を定義することと、ソフトウェアによって定義されたプロセスに従ってこのようなデータ構造を変更することとを含む、ここで説明された特定のプロセスまたは特定のプロセスの特定の部分を実行させることができる。加えてまたは代替として、コンピュータシステムは、ロジックハードワイヤまたは他の方式で回路(例えば、加速器744)によって具体化された結果としての機能を提供することができ、この回路は、ソフトウェアの代わりに動作しまたはソフトウェアと一緒に動作して、ここで説明された特定のプロセスまたは特定のプロセスの特定の部分を実行してもよい。適切な場合には、ソフトウェアへの参照はロジックを含むことができ、逆もまた然りである。適切な場合には、コンピュータ読み取り可能な媒体への参照は、実行のソフトウェアを記憶する回路(例えば、集積回路(IC)など)、実行のロジックを具体化する回路、またはその両方を兼ね備えることができる。本開示は、ハードウェアとソフトウェアの任意の適切な組み合わせを包含する。
【0148】
本開示は、いくつかの例示的な実施形態について説明したが、本開示の範囲内にある変更、置換、および様々な均等置換が存在している。したがって、当業者は、本明細書では明示的に示されていないか、または説明されていないが、本開示の原則を具体化しているので、本開示の精神および範囲内ある、様々なシステムおよび方法を設計することができる、ということを理解されたい。
【0149】
付録A:頭字語
HEVC:High Efficiency Video Coding、高効率ビデオ符号化/復号化
VVC:versatile video coding、汎用ビデオ符号化
JVET:Joint Video Exploration Team、共同ビデオ探索チーム
CU:Coding Uni、符号化ユニット
VTM:Versatile Video Coding Test Model、多用途ビデオコーディングテストモデル
SPS:sequence parameter set、シーケンスパラメータセット
BDPCM:Block-based Delta Pulse Code Modulation、ブロックベースのデルタパルス符号変調
ACT:Adaptive Color Transform、アダプティブ色変換
4:4:4: video with chroma format equal to 4:4:4、4:4:4に等しい色度フォーマットを有するビデオ
ALF:adaptive loop filter、アダプティブループフィルタ
QP:quantization parameter、量子化パラメータ
PLT:palette mode coding、パレットモードコーディング