(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-05-09
(45)【発行日】2024-05-17
(54)【発明の名称】サブピクチャスライス位置導出を伴うセグメント位置シグナリング
(51)【国際特許分類】
H04N 19/174 20140101AFI20240510BHJP
H04N 19/70 20140101ALI20240510BHJP
【FI】
H04N19/174
H04N19/70
(21)【出願番号】P 2022517854
(86)(22)【出願日】2020-06-26
(86)【国際出願番号】 SE2020050668
(87)【国際公開番号】W WO2021061033
(87)【国際公開日】2021-04-01
【審査請求日】2022-06-03
(32)【優先日】2019-09-23
(33)【優先権主張国・地域又は機関】US
【前置審査】
(73)【特許権者】
【識別番号】598036300
【氏名又は名称】テレフオンアクチーボラゲット エルエム エリクソン(パブル)
(74)【代理人】
【識別番号】100109726
【氏名又は名称】園田 吉隆
(74)【代理人】
【識別番号】100150670
【氏名又は名称】小梶 晴美
(74)【代理人】
【識別番号】100199705
【氏名又は名称】仙波 和之
(74)【代理人】
【識別番号】100194294
【氏名又は名称】石岡 利康
(72)【発明者】
【氏名】ダムガニアン, ミトラ
(72)【発明者】
【氏名】ペッテション, マルティン
(72)【発明者】
【氏名】ショバーリ, リキャルド
【審査官】久保 光宏
(56)【参考文献】
【文献】特表2022-548220(JP,A)
【文献】Ye-Kui Wang, et al.,"Core Experiment Description of Sub-Picture Coding",Document VCEG-O57, [online],ITU - Telecommunications Standardization Sector STUDY GROUP 16 Question 6 Video Coding Experts Group (VCEG),2002年01月16日,Pages 1-10,[令和5年5月25日検索], インターネット, <URL: https://www.itu.int/wftp3/av-arch/video-site/0112_Pat/VCEG-O57.doc>.
(58)【調査した分野】(Int.Cl.,DB名)
H04N19/00-19/98
CSDB(日本国特許庁)
学術文献等データベース(日本国特許庁)
IEEEXplore(IEEE)
(57)【特許請求の範囲】
【請求項1】
デコーダによって
実行される方法(600)であって、前記方法は、
符号化ビデオ
ビットストリー
ムを受信すること
であって、前記符号化ビデオビットストリームが、スライスアドレスの第1の部分を表す第1の値を符号化する第1のコードワードを含むスライスヘッダを含み、前記第1の値は、スライスが属するサブピクチャを示すサブピクチャIDであり、前記スライスヘッダが、前記スライスアドレスの第2の部分を表す第2の値を符号化する第2のコードワードを含み、前記第2の値は、前記スライスが属するサブピクチャ位置に対する、前記スライスの空間配置を示すローカルスライスアドレスであり、前記スライスアドレスが、ピクチャ内のスライスの空間ロケーションを指定する、
符号化ビデオビットストリームを受信することと、
前記第1のコードワードから前記第1の値を復号することと、
前記第2のコードワードから前記第2の値を復号することと、
前記第1の値と前記第2の値とを使用して、前記スライスアドレスを導出することと、
前記スライスを復号するために前記スライスアドレスを使用することと、
を含み、
前記スライスアドレスを導出することが、
パラメータセット中のシンタックスエレメントからマッピングリストを導出することと、
前記第1の値を、前記第1の値とは異なるマッピングされる値にマッピングするために前記マッピングリストを使用すること、
前記スライスアドレスを導出するために、前記マッピングされる値を使用することと、
を含む、方法。
【請求項2】
前記方法は、
第3のコードワードから第3の値を復号することであって、前記第3の値が前記スライスアドレスの第3の部分を表し、前記スライスアドレスの前記第3の部分が、
前記サブピクチャレベルよりも低い
スライスレベルにおけ
るアドレスを表す、第3の値を復号することと、
前記スライスアドレスを導出するために前記第1の値と前記第2の値と前記第3の値とを使用することと
をさらに含む、請求項
1に記載の方法。
【請求項3】
前記方法は、
前記符号化ビデオビットストリームにおけるコードワードから数Nを復号することをさらに含み、
前記第1の値または前記第2の値を前記復号することが、
前記符号化ビデオビットストリームから
前記数Nを復号することを含む、
請求項
1または2に記載の方法。
【請求項4】
前記数Nが、前記
サブピクチャ中の
スライスの数を表すか、または
前記数Nが、前記
サブピクチャ中の
スライスの最大数を表す、
請求項
3に記載の方法。
【請求項5】
前記方法が、
前記
符号化ビデオビットストリームが参照するパラメータセット中のフラグからフラグ値を復号することをさらに含み、
前記フラグ値が第1のフラグ値に等しい場合、前記
符号化ビデオビットストリーム中の各サブピクチャ中に1つのスライスのみがあり、
前記フラグ値が第2のフラグ値に等しい場合、前記
符号化ビデオビットストリーム中のサブピクチャ中に2つ以上のスライスがあり得る、請求項1から
4のいずれか一項に記載の方法。
【請求項6】
処理回路(802)によって実行されたとき、前記処理回路(802)に、請求項1から
5のいずれか一項に記載の方法を
実行させる命令(844)を備える、コンピュータプログラム(843)。
【請求項7】
請求項
6に記載のコンピュータプログラムを記憶しているコンピュータ可読記憶媒体(842)。
【請求項8】
請求項1から
5のいずれか一項に記載の方法を
実行するように適応された復号装置(800)。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ビデオコーディングおよび復号に関する。
【背景技術】
【0002】
1.HEVCおよびVVC
【0003】
高効率ビデオコーディング(HEVC)は、時間予測と空間予測の両方を利用する、ITU-TおよびMPEGによって規格化されたブロックベースビデオコーデックである。空間予測は、現在ピクチャ内からのイントラ(I)予測を使用して達成される。時間予測は、前に復号された参照ピクチャから、ブロックレベルでの単方向(P)予測または双方向インター(B)予測を使用して達成される。エンコーダでは、残差と呼ばれる、元のピクセルデータと予測されたピクセルデータとの間の差は、周波数ドメインに変換され、量子化され、次いで、同じくエントロピーコーディングされる、予測モードおよび動きベクトルなど、必要な予測パラメータとともに送信される前に、エントロピーコーディングされる。デコーダは、エントロピー復号と、逆量子化と、逆方向変換とを実施して残差を取得し、次いで、その残差をイントラ予測またはインター予測に追加してピクチャを再構築する。
【0004】
MPEGおよびITU-Tは、ジョイントビデオエキスプロラトリチーム(JVET:Joint Video Exploratory Team)内でHEVCの後継に取り組んでいる。開発中のこのビデオコーデックの名前は、多用途ビデオコーディング(VVC)である。これを書いているとき、VVCドラフト仕様の現在のバージョンは、「多用途ビデオコーディング(ドラフト6)」(JVET-O2001-vE)であった。本明細書でVVCが言及されるとき、VVCは、VVC仕様のドラフト6を指す。
【0005】
2.成分
【0006】
ビデオシーケンスは、各ピクチャが1つまたは複数の成分からなる一連のピクチャからなる。各成分は、サンプル値の2次元矩形アレイとして説明され得る。ビデオシーケンス中のピクチャは、3つの成分、すなわち、サンプル値がルーマ値である1つのルーマ成分(Y)と、サンプル値がクロマ値である2つのクロマ成分(Cb)および(Cr)とからなることが一般的である。クロマ成分の次元は、各次元においてルーマ成分よりも1/2だけ小さいことが一般的である。たとえば、HDピクチャのルーマ成分のサイズは1920×1080となり、クロマ成分は、各々、960×540の次元を有するであろう。成分は色成分と呼ばれることがある。本明細書では、ビデオシーケンスの符号化および復号のために有用な方法について説明する。しかしながら、説明される技法が静止画像の符号化および復号のためにも使用され得ることを理解されたい。
【0007】
3.ブロックおよびユニット
【0008】
ブロックは、サンプルの2次元アレイである。ビデオコーディングでは、各成分が1つまたは複数のブロックにスプリットされ、コード化ビデオビットストリームは一連のブロックである。
【0009】
ビデオコーディングでは、ピクチャは、特定のエリアをカバーするユニットにスプリットされることが一般的である。各ユニットは、その特定のエリアをなすすべてのブロックからなり、各ブロックは、1つのユニットのみに完全に属する。HEVCおよびVVCにおけるコーディングユニット(CU)は、そのようなユニットの一例である。コーディングツリーユニット(CTU)は、いくつかのCUにスプリットされ得る論理ユニットである。
【0010】
HEVCでは、CUは正方形であり、すなわち、CUはN×Nルーマサンプルのサイズを有し、ここで、Nは、64、32、16または8の値を有することができる。現在のH.266テストモデル多用途ビデオコーディング(VVC)では、CUは、矩形でもあり、すなわち、N×Mルーマサンプルのサイズを有することができ、ここで、NはMとは異なる。
【0011】
4.NALユニット
【0012】
HEVCとVVCの両方が、ネットワークアブストラクションレイヤ(NAL)を規定する。HEVCおよびVVCにおけるすべてのデータ、すなわち、ビデオコーディングレイヤ(VCL)データまたは非VCLデータの両方が、NALユニット中にカプセル化される。VCL NALユニットは、ピクチャサンプル値を表すデータを含んでいる。非VCL NALユニットは、パラメータセットおよび補足エンハンスメント情報(SEI:supplemental enhancement information)メッセージなど、追加の関連するデータを含んでいる。HEVCおよびVVCの現在のバージョンにおけるNALユニットは、NALユニットヘッダと呼ばれるヘッダから始まる。HEVCについてのNALユニットヘッダについてのシンタックスは、表1に示されており、スタートコードエミュレーションを防ぐために常に0に等しいものとするforbidden_zero_bitから開始する。それがなければ、いくつかのMPEGシステムは、HEVCビデオビットストリームを他のデータと混同し得るが、NALユニットヘッダ中の0ビットは、すべての可能なHEVCビットストリームをHEVCビットストリームとして一意に識別可能にする。nal_unit_type、nuh_layer_idおよびnuh_temporal_id_plus1コードワードは、それぞれ、どんなタイプのデータがNALユニット中で搬送されるかを識別するNALユニットのNALユニットタイプ、NALユニットが属するレイヤID、およびNALユニットが属する時間IDを指定する。NALユニットタイプは、NALユニットがどのようにパースおよび復号されるべきであるかを示し、指定する。VVCの現在のバージョンにおけるNALユニットヘッダは、HEVCにおけるNALユニットヘッダとまったく同様であるが、nal_unit_typeのために1ビット少なく使用し、代わりに、将来の使用のためにこのビットを予約する。
【0013】
NALユニットのバイトの残りは、NALユニットタイプによって示されるタイプのペイロードである。ビットストリームは、一連の連結されたNALユニットからなる。
【0014】
デコーダまたはビットストリームパーサは、NALユニットヘッダを見た後にNALユニットがどのようにハンドリング、たとえばパースおよび復号されるべきであるかを結論付けることができる。NALユニットのバイトの残りは、NALユニットタイプによって示されるタイプのペイロードである。ビットストリームは、一連の連結されたNALユニットからなる。
【0015】
NALユニットタイプは、NALユニットがどのようにパースおよび復号されるべきであるかを示し、規定する。VCL NALユニットは、現在ピクチャのピクチャタイプに関する情報を提供する。VVCドラフトの現在のバージョンのNALユニットタイプは、表3に示されている。
【0016】
復号順序は、ビットストリーム内のNALユニットの順序と同じである、NALユニットが復号されるものとする順序である。復号順序は出力順序とは異なり得、出力順序は、復号されたピクチャがデコーダによって表示などのために出力されるべきである順序である。
【0017】
5.イントラランダムアクセスポイント(IRAP)ピクチャおよびコード化ビデオシーケンス(CVS)
【0018】
HEVCにおけるイントラランダムアクセスポイント(IRAP)ピクチャは、その復号プロセスにおける予測のために、それ自体以外のいかなるピクチャも参照しないピクチャである。HEVCにおける復号順序におけるビットストリーム中の第1のピクチャは、IRAPピクチャでなければならないが、IRAPピクチャは、さらに、ビットストリームの後半においても現れ得る。HEVCは、3つのタイプのIRAPピクチャ、すなわち、切断リンクアクセス(BLA)ピクチャと、瞬時デコーダリフレッシュ(IDR)ピクチャと、クリーンランダムアクセス(CRA)ピクチャとを指定する。
【0019】
HEVCにおけるコード化ビデオシーケンス(CVS)は、IRAPアクセスユニットにおいて開始し、復号順序における次のIRAPアクセスユニットまでの、ただし次のIRAPアクセスユニットを含まない、一連のアクセスユニットである。
【0020】
IDRピクチャは、常に、新しいCVSを開始する。IDRピクチャは、関連するランダムアクセス復号可能リーディング(RADL:random access decodable leading)ピクチャを有し得る。IDRピクチャは、関連するランダムアクセススキップリーディング(RASL:random access skipped leading)ピクチャを有しない。
【0021】
HEVCにおけるBLAピクチャはまた、新しいCVSを開始し、復号プロセスに、IDRピクチャと同じ影響を及ぼす。しかしながら、HEVCにおけるBLAピクチャは、参照ピクチャの空でないセットを指定するシンタックスエレメントを含んでいることがある。BLAピクチャは関連するRASLピクチャを有し得、関連するRASLピクチャは、関連するRASLピクチャが、ビットストリーム中に存在しないことがあるピクチャへの参照を含んでいることがあるとき、デコーダによって出力されず、復号可能でないことがある。BLAピクチャは、復号される関連するRADLピクチャをも有し得る。BLAピクチャは、VVCの現在のバージョンにおいて規定されない。
【0022】
CRAピクチャは、関連するRADLまたはRASLピクチャを有し得る。BLAピクチャの場合と同様に、CRAピクチャは、参照ピクチャの空でないセットを指定するシンタックスエレメントを含んでいることがある。CRAピクチャでは、関連するRASLピクチャが、ビットストリーム中に存在しないピクチャへの参照を含んでいることがあるとき、関連するRASLピクチャが復号可能でないことがあるので、関連するRASLピクチャがデコーダによって出力されないことを指定するように、フラグがセットされ得る。CRAは、CVSを開始し得る。
【0023】
VVCドラフトの現在のバージョンでは、CVSは、CVS開始(CVSS)アクセスユニットにおいて開始され、CVSSアクセスユニットは、IRAPピクチャ、すなわち、IDRまたはCRAピクチャ、あるいは漸進的復号リフレッシュ(GDR:gradual decoding refresh)ピクチャを含んでいることがある。
【0024】
GDRピクチャは、本質的に、低遅延コーディングのために符号化されたビットストリーム中のランダムアクセスのために使用され、ここで、完全なIRAPピクチャは、あまりに多くの遅延を引き起こすことになる。GDRピクチャは、ビデオピクチャごとに更新する漸進的イントラリフレッシュを使用し得、ここで、各ピクチャは、部分的にイントラコーディングされるにすぎない。ビットストリームがGDRピクチャにおいてチューニングされたことを仮定すれば、ビデオがいつ完全にリフレッシュされ、出力の準備ができているかが、GDRピクチャによりシグナリングされる。GDRは、CVSを開始し得る。
【0025】
6.パラメータセット
【0026】
HEVCおよびVVCは、3つのタイプのパラメータセット、すなわち、ピクチャパラメータセット(PPS)と、シーケンスパラメータセット(SPS)と、ビデオパラメータセット(VPS)とを指定する。PPSは、1つまたは複数のピクチャについて共通であるデータを含んでおり、SPSは、コード化ビデオシーケンス(CVS)について共通であるデータを含んでおり、VPSは、複数のCVSについて共通であるデータを含んでいる。ビットストリーム中でランダムアクセスポイントを提供するために、IRAPピクチャまたはGDRピクチャとしてピクチャを周期的に符号化することが一般的であり、ここで、各そのようなピクチャは、復号するために必要なパラメータセット(VPS、SPS、PPS)に先行される。
【0027】
VVCの現在のバージョンは、2つの追加のパラメータセット、すなわち、適応パラメータセット(APS)とデコーダパラメータセット(DPS)とをも指定する。
【0028】
APSは、適応ループフィルタ(ALF)ツールと、ルーママッピングおよびクロマスケーリング(LMCS:luma mapping and chroma scaling)ツールとのために必要とされるパラメータを搬送する。
【0029】
DPSは、復号セッション中に変化しないことがあり、デコーダが知るのに良好であり得る、情報、たとえば許容されるサブレイヤの最大数を含んでいる。DPS中の情報は、復号プロセスの動作のために必要でない。
【0030】
7.タイルおよびブリック
【0031】
ドラフトVVCビデオコーディング規格は、ピクチャを、タイルと呼ばれることがある、矩形の空間的に独立した領域に分割するタイルツールを含む。ドラフトVVCコーディング規格におけるタイルは、HEVCにおいて使用されるタイルと同様であるが、2ステップ区分機構をもつ。タイルツールを使用して、HEVCにおけるピクチャがサンプルの行および列に区分され得、ここで、タイルは行と列との交差部である。
図9Aは、ピクチャのための合計20個のタイルを生じる、4つのタイル行と5つのタイル列とを使用する区分の一例を示す。
【0032】
タイル構造は、行の高さと列の幅とを指定することによって、ピクチャパラメータセット(PPS)中でシグナリングされる。個々の行および列は、異なるサイズを有することができるが、区分は、常に、それぞれ左から右に、および上から下に、ピクチャ全体にわたってスパンする。
【0033】
同じピクチャのタイル間に復号依存性はない。これは、イントラ予測と、エントロピーコーディングのためのコンテキスト選択と、動きベクトル予測とを含む。1つの例外は、ループ内フィルタ処理依存性が概してタイル間で許容されることである。
【0034】
VVCにおける2ステップタイル区分は、HEVCの場合のように、ピクチャをタイルに区分することによって開始する。次いで、各タイルは、
図9Bの右側に示されているように、随意に、水平境界によってブリックに区分され得る。現在のVVC仕様ドラフトでは、ブリックという単語は、さらに区分されないタイルのためにも使用され、これは、
図9Bの右側のピクチャが9つのブリックからなることを意味する。
【0035】
8.スライス
【0036】
HEVCにおけるスライスの概念は、ピクチャを独立してコーディングされたスライスに分割し、ここで、ピクチャ中の1つのスライスの復号は、同じピクチャ中の他のスライスから独立している。異なるコーディングタイプが同じピクチャのスライスのために使用され得る、すなわち、スライスは、Iスライス、Pスライス、またはBスライスのいずれかであり得る。スライスの1つの目的は、データ損失の場合に再同期を可能にすることである。
【0037】
VVCの現在のバージョンでは、スライスは、いくつかの完全なタイル、または1つのタイルの完全なブリックの連続するシーケンスのみのいずれかからなる。各スライスは、i)個々のスライスについてセットされ得るパラメータを備えるスライスヘッダと、ii)スライスデータとを有する。いくつかのパラメータは、ピクチャ中のすべてのスライスについて同じであるように制限される。CVS中の各スライスは、別個のVCL NALユニット中で搬送される。
【0038】
VVCドラフト仕様の前のバージョンでは、スライスは、タイルグループと呼ばれた。
【0039】
VVCの現在のバージョンでは、スライスの2つのモード、すなわち、ラスタ走査スライスモードおよび矩形スライスモードがサポートされる。ラスタ走査スライスモードでは、スライスは、ピクチャのタイルラスタ走査におけるタイルのシーケンスを含んでいる。矩形スライスモードでは、スライスは、ピクチャの矩形領域をまとめて形成する、ピクチャのいくつかのブリックを含んでいる。矩形スライス内のブリックは、スライスのブリックラスタ走査の順序おけるものである。
【0040】
VVCドラフト仕様の現在のバージョンでは、スライスヘッダ中で与えられるslice_address(表4参照)は、ピクチャ中のスライスについての空間位置を導出するために使用される。
【0041】
9.サブピクチャ
【0042】
サブピクチャは、VVCの現在のバージョンにおいてサポートされる。サブピクチャは、ピクチャ内の1つまたは複数のスライスの矩形領域として規定される。これは、サブピクチャが、ピクチャの矩形領域をまとめてカバーする1つまたは複数のスライスを含んでいることを意味する。VVC仕様の現在のバージョンでは、サブピクチャロケーションおよびサイズは、SPS中でシグナリングされる。サブピクチャ領域の境界は、SPS中のサブピクチャごとのフラグ(per-subpicture flag)subpic_treated_as_pic_flag[i]に条件付けられる(ループ内フィルタ処理演算を除外する)ピクチャ境界として扱われ得る。また、サブピクチャ境界上のループフィルタ処理は、SPS中のサブピクチャごとのフラグloop_filter_across_subpic_enabled_flag[i]に条件付けられる。表5は、VVCの現在のバージョンにおけるSPS中のサブピクチャシンタックスを示す。
【発明の概要】
【0043】
いくつかの課題が存在する。たとえば、VVCドラフト仕様の現在のバージョンでは、スライスヘッダ中でシグナリングされるslice_address(表4参照)は、ピクチャ中のスライスの空間位置を導出するために使用されるu(v)コード化コードワードである。しかしながら、サブピクチャ区分が使用されるとき、サブピクチャ中のスライスの空間位置は、スライスヘッダ中のslice_addressコードワードから直接導出され得ず、このスライスがあるサブピクチャに属することは、スライスヘッダから導出され得ない。VVC仕様の現在のバージョンにおけるサブピクチャ中のスライスの空間位置を導出するために、第1に、ピクチャ中のスライスの空間位置が導出される必要があり、第2に、ピクチャ中のその空間位置があるサブピクチャに属することが導出される必要があり、次いで、そのことから、第3のステップにおいて、そのサブピクチャ中のスライスの空間位置が導出され得る。サブピクチャ中のスライスの空間位置を導出するためのこのマルチステッププロセスは、簡略化され得、これは、スライス復号プロセスとサブピクチャ中の復号されたピクセル値の配置とを容易にすることになる。
【0044】
さらに、(サブビットストリーム抽出およびマージの場合のように)サブピクチャが抽出またはマージされているとき、サブピクチャ中のスライスの空間位置は変化しない。これは、サブピクチャ位置に対するスライスの配置がサブビットストリーム抽出およびマージプロセスにおいて固定されることを意味する。この情報は、現在、VVC仕様の現在のバージョンにおいて活用されず、VVC仕様の現在のバージョンは、VVC仕様の現在のバージョンに記載のスライスアドレスのためのシグナリングが準最適であり、改善され得ることを示す。
【0045】
VVC仕様の現在のバージョンでは、サブピクチャ区分を使用する場合、このスライスがどのサブピクチャ中に空間的に位置するかは、スライスヘッダのみから導出され得ない。この関係も、サブピクチャが抽出またはマージされているとき、固定されるが、この情報は、VVC仕様の現在のバージョンにおいて活用されない。
【0046】
本開示は、VVC仕様の現在のバージョンの短所を克服することを目的とする。一実施形態では、短所は、i)スライスが属するサブピクチャと、ii)スライスが属するサブピクチャ位置に対するスライスの空間配置とを示す情報をスライスヘッダ中に含めることによって克服される。たとえば、1つの変形形態では、スライスヘッダは、スライスアドレスについての2つの値、すなわち、i)スライスが属するサブピクチャを示すサブピクチャIDについての1つの値と、ii)スライスが属するサブピクチャ位置に対するスライスの空間配置を示すスライスアドレスについての1つの値とを含む。スライスアドレスの2つの値を使用して、ピクチャ中のスライスについての空間位置は、次いで、たとえば、(スライスヘッダ中でシグナリングされる値のうちの1つとして)サブピクチャIDからピクチャ中のサブピクチャロケーションを導出することと、次いで、スライスヘッダ中でシグナリングされる他のスライスアドレス値からサブピクチャ中のスライスの位置を導出することとによって導出され得る。
【0047】
VVC仕様の現在のバージョンでは、ビットストリームがサブビットストリーム抽出の結果である場合、slice_addressの値は、スライスの空間位置を導出するためにPPS中のslice_idの値にマッピングされる。この場合、サブビットストリーム中の含まれるスライスのサブセットが、「元の」ビットストリーム中のピクチャの左上コーナースライスを含まない場合、スライスIDの値と、スライスアドレスの値とは同じでなくなる。スライスIDは、サブビットストリーム抽出およびマージプロセスを可能にするための間接参照(indirection)機構を提供する。一実施形態では、スライスアドレスのための間接参照機構を使用する代わりに、間接参照機構とともにサブピクチャIDが使用され得る。この実施形態は、sub_bitstream抽出およびマージの場合に使用され得、ここで、サブピクチャに対するスライスアドレスは、プロセス中に同じままであり、サブピクチャIDは、初期サブピクチャIDを、新しいサブビットストリーム中のサブピクチャインデックスにマッピングするために、たとえば、SPSにおける間接参照機構を使用する。
【0048】
本開示のいくつかの態様およびそれらの実施形態は、上述の課題のソリューションを提供し得る。
【0049】
実施形態の第1の態様が、デコーダによって実施される方法を規定する。本方法は、コード化ビデオストリーム(CVS)を受信することを含む。本方法は、CVSを処理することを含み、CVSは、セグメントアドレスの第1の部分を表す1つまたは複数の値の第1のセットを符号化する1つまたは複数のコードワードの第1のセットを含み、CVSは、セグメントアドレスの第2の部分を表す1つまたは複数の値の第2のセットを符号化する1つまたは複数のコードワードの第2のセットを含み、セグメントアドレスは、ピクチャ内のセグメントの空間ロケーションを指定する。
【0050】
実施形態の第2の態様が、エンコーダによって実施される方法を規定する。本方法は、コード化ビデオストリーム(CVS)を生成することを含み、CVSは、セグメントアドレスの第1の部分を表す1つまたは複数の値の第1のセットを符号化する1つまたは複数のコードワードの第1のセットを含み、CVSは、セグメントアドレスの第2の部分を表す1つまたは複数の値の第2のセットを符号化する1つまたは複数のコードワードの第2のセットを含み、セグメントアドレスは、ピクチャ内のセグメントの空間ロケーションを指定する。
【0051】
実施形態の第3の態様が、処理回路によって実行されたとき、処理回路に、実施形態の第1の態様または第2の態様による方法を実施させる命令を備えるコンピュータプログラムを規定する。
【0052】
実施形態の第4の態様が、第3の態様によるコンピュータプログラムを含んでいるキャリアを規定し、キャリアは、電子信号、光信号、無線信号、およびコンピュータ可読記憶媒体のうちの1つである。
【0053】
実施形態の第5の態様が、実施形態の第1の態様による方法を実施するように適応された復号装置を規定する。
【0054】
実施形態の第6の態様が、実施形態の第2の態様による方法を実施するように適応された符号化装置を規定する。
【0055】
利点
【0056】
実施形態の利点は、実施形態が、一実施形態において、スライスヘッダ中で2つの値をシグナリングすることによってサブピクチャ中のスライスの相対位置を導出するためのマルチステッププロセスを簡略化することであり、一方は、サブピクチャに対するスライスアドレスであり、他方の値は、スライスがどのサブピクチャに属するかに関する情報、たとえば、サブピクチャとのスライスの固定関係を活用するサブピクチャID、およびサブピクチャエリア中のスライスの空間位置を復号プロセスに提供して、サブビットストリーム抽出およびマージを簡略化する。サブピクチャ中に複数のスライスがある場合、現在のVVC設計を使用するビットストリーム抽出は、各スライス中のslice_address値についてアドレス間接参照を必要とし得る。提案される実施形態を使用して、アドレス間接参照は、代わりにサブピクチャごとに行われ、これは、アドレス間接参照が、サブピクチャ中のすべてのスライスについて1回のみ行われることを意味する。
【図面の簡単な説明】
【0057】
【
図1】一実施形態による、システムを示す図である。
【
図2】一実施形態による、ビデオエンコーダの概略ブロック図である。
【
図3】一実施形態による、ビデオデコーダの概略ブロック図である。
【
図4】一実施形態による、符号化ビデオビットストリームを示す図である。
【
図6】一実施形態による、復号プロセスを示すフローチャートである。
【
図7】一実施形態による、符号化プロセスを示すフローチャートである。
【
図8】一実施形態による、装置のブロック図である。
【発明を実施するための形態】
【0058】
図1は、例示的な一実施形態による、システム100を示す。システム200は、ネットワーク110(たとえば、インターネットまたは他のネットワーク)を介してデコーダ204と通信しているエンコーダ202を含む。デブロッキングは、エンコーダ202とデコーダ204の両方において実施され得る。本明細書で説明される実施形態は、ビデオエンコーダ102またはビデオデコーダ104において使用され得る。
【0059】
図2は、一実施形態による、ビデオエンコーダ102の概略ブロック図である。同じフレーム中のまたは前のフレーム中のピクセルのすでに提供されたブロックから、動き推定器250を使用して動き推定を実施することによって、ピクセルの現在ブロックが予測される。動き推定の結果は、インター予測の場合、参照ブロックに関連する動きベクトルまたは変位ベクトルである。動きベクトルは、ピクセルのブロックのインター予測を出力するために動き補償器250によって使用され得る。イントラ予測器249が、ピクセルの現在ブロックのイントラ予測を算出する。動き推定器/補償器250からの出力と、イントラ予測器249からの出力とは、ピクセルの現在ブロックについてイントラ予測またはインター予測のいずれかを選択するセレクタ251中に入力される。セレクタ251からの出力は、加算器241の形態の誤差計算器に入力され、加算器241は、ピクセルの現在ブロックのピクセル値をも受信する。加算器241は、ピクセルのブロックとそのブロックの予測との間のピクセル値の差として残差誤差を計算および出力する。誤差は、離散コサイン変換などによって、変換器242中で変換され、量子化器243によって量子化され、その後、エントロピーエンコーダなどによるエンコーダ244におけるコーディングが続く。インターコーディングでは、推定された動きベクトルも、ピクセルの現在ブロックのコード化表現を生成するためにエンコーダ244にもたらされる。また、ピクセルの現在ブロックのための変換および量子化された残差誤差は、元の残差誤差を取り出すために、逆量子化器245と逆方向変換器246とに提供される。この誤差は、ピクセルの次のブロックの予測およびコーディングにおいて使用され得るピクセルの参照ブロックを作成するために、動き補償器250またはイントラ予測器249から出力されたブロック予測に加算器247によって加算される。この新しい参照ブロックは、デブロッキングフィルタ200によって最初に処理される。次いで、処理された新しい参照ブロックは、フレームバッファ248に一時的に記憶され、ここで、処理された新しい参照ブロックは、イントラ予測器249および動き推定器/補償器250にとって利用可能である。
【0060】
図3は、いくつかの実施形態による、ビデオデコーダ104のブロック図である。デコーダ104は、量子化および変換された残差誤差のセットを得るためにピクセルのブロックの符号化表現を復号するための、エントロピーデコーダなどのデコーダ361を含む。これらの残差誤差は、逆量子化器362によって量子化解除され、逆方向変換器363によって逆方向変換されて、残差誤差のセットを提供する。これらの残差誤差は、加算器364によってピクセルの参照ブロックのピクセル値に加算される。参照ブロックは、インター予測が実施されるのかイントラ予測が実施されるのかに応じて、動き推定器/補償器367またはイントラ予測器366によって決定される。それにより、セレクタ368が加算器364と動き推定器/補償器367とイントラ予測器366とに相互接続される。加算器364から出力されたピクセルの得られた復号されたブロックは、デブロッキングフィルタ300に入力される。ピクセルのフィルタ処理されたブロックは、デコーダ104から出力され、さらに、復号されるべきピクセルの後続のブロックのためのピクセルの参照ブロックとして使用されるようにフレームバッファ365に一時的に提供され得る。フレームバッファ365は、それにより、動き推定器/補償器367に接続されて、ピクセルの記憶されたブロックを動き推定器/補償器367にとって利用可能にする。加算器364からの出力はまた、イントラ予測器366に入力されて、ピクセルのフィルタ処理されていない参照ブロックとして使用され得る。
【0061】
図4は、例示的なビデオビットストリーム400を示す。ビットストリーム400はCVS401を含み、CVS401は、パラメータセット(PS)410(たとえば、パラメータセットを含んでいる非VCL NALユニット)と、いくつかのセグメント(たとえば、VVCスライスを含んでいるいくつかのVCL NALユニット)とを備える。セグメント412aおよび412bが示されている。セグメントは、セグメントデータ(SD)を備えるデータのユニットであり、SDはサンプルデータを備える。セグメントは、セグメントデータ(SD)に加えてセグメントヘッダ(SH)を有し得る。VVCスライスおよびHEVCスライスがセグメントの例である。セグメントはまた、ピクチャ、タイルグループ、あるいは完全なピクチャまたはピクチャの一部を備える何らかの他のエンティティであり得る。この例では、各セグメントは、セグメントデータに加えてセグメントヘッダを含む。
【0062】
階層区分の場合が
図5に示されており、ここで、ピクチャ502が、太い線で示されている大粒区分ブロック(large grain partition block)(たとえば、VVCサブピクチャ)に区分され(たとえば、ブロック511)、薄い点線が、大粒区分ブロック内の小粒区分ブロック(small grain partition block)(たとえば、VVCスライス)を示す(たとえば、ブロック511中に空間的に位置するブロック512参照)。いくつかの実施形態では、そのような階層区分の場合、小粒区分ブロック(たとえば、ブロック512)のヘッダまたはパラメータセット中で、少なくとも2つの値、すなわち、i)小粒区分がどの大粒区分ブロック中に空間的に位置するか(たとえば、ブロック511)を指定する1つの値と、ii)大粒区分ブロックの位置に対する小粒区分ブロックのアドレスを提供するための1つの値とがシグナリングされる。VVCスライスは、小粒区分ブロックの一例であり、VVCサブピクチャは、大粒区分ブロックの一例である。
【0063】
以下の実施形態が組み合わせられて、明示的に規定されないが、依然として本開示によってカバーされるソリューションを形成し得ることが、当業者によって理解されるべきである。また、以下で説明される実施形態は、スライス(たとえば、小粒区分ブロック)およびサブピクチャ(たとえば、大粒区分ブロック)に関して説明され得る。すなわち、スライスおよびサブピクチャという用語は、それぞれ、小粒区分ブロックおよび大粒区分ブロックと互換的に使用される。また、実施形態がスライスに関して説明されるが、本発明は、スライスに限定されず、他のセグメントをカバーするものとする。
【0064】
1.スライスヘッダ中でスライスアドレスについてシグナリングされる2つの値
【0065】
第1の実施形態では、2つの値、すなわち、i)小粒区分ブロックが空間的に中に位置する大粒区分ブロックを示す第1の値、たとえば、IDと、ii)大粒区分ブロックの位置に対する小粒区分ブロックの配置を示す第2の値とが、スライスのヘッダまたはパラメータセット中でシグナリングされる。この実施形態のための一例として、スライスアドレスをともに形成する2つの値、すなわち、i)スライスが属するサブピクチャ(すなわち、スライスが中に位置するサブピクチャ)を示す、サブピクチャIDについての第1の値と、ii)スライスが属するサブピクチャ位置に対するスライスの空間配置を示す、ローカルスライスアドレスについての1つの値とが、スライスヘッダ中でシグナリングされる。以下は、スライスヘッダについての例示的なシンタックスおよびセマンティクスである(すべての例示的なシンタックスおよびセマンティクスは、VVCドラフト仕様の現在のバージョンに加えてテキストとして与えられることに留意されたい)。
【0066】
subpic_idコードワード(別名、シンタックスエレメント)は、スライスが属するサブピクチャのIDを指定する。subpic_idコードワードは、subpics_present_flagを条件として、表中にあり、subpics_present_flagは、ピクチャ中にサブピクチャがあるとき、真であり(1に等しく)、サブピクチャがないとき、偽である(0に等しい)。subpic_idが偽である場合、local_slice_addressコードワードは、サブピクチャではなくピクチャに対するスライスの空間配置を指定する。Subpic_idの存在に対する他の条件が可能であり、条件がないことがあり、これは、local_slice_addressが存在するとき、subpic_idが常に存在することを意味することに留意されたい。存在しないとき、subpic_idの値は0に等しいと推論される。シンタックスエレメントの長さは、Ceil(Log2(N))ビットである。VVCの現在のバージョンでは、範囲0~254内にあり得るmax_subpics_minus_1をシグナリングするために8ビットがSPS中で使用されることに留意されたい。その場合、Nは、たとえば254であり得る。
【0067】
local_slice_addressコードワードは、subpic_idによって識別されるサブピクチャ中のスライスのスライスアドレスを指定する。存在しないとき、local_slice_addressの値は0に等しいと推論される。シンタックスエレメントの長さは、Ceil(Log2(max_num_slices_in_picture_minus1+1))ビットであり、ここで、max_num_slices_in_picture_minus1+1は、使用中のプロファイル、ティア、またはレベル規定によって可能にされるスライスの最大数である。
【0068】
local_slice_addressについての代替セマンティクスは、以下のようになる。
【0069】
local_slice_addressコードワードは、スライスのアドレスを指定する。存在しないとき、local_slice_addressの値は0に等しいと推論される。サブピクチャが可能にされない(subpics_present_flagが0に等しい)場合、以下が適用される。1)スライスアドレスはブリックIDであり、2)slice_addressの長さは、Ceil(Log2(NumBricksInPic))ビットであり、3)slice_addressの値は、両端値を含む0~NumBricksInPic-1の範囲内にあるものとする。そうではなく、サブピクチャが可能にされる(subpics_present_flagが1に等しい)場合、以下が適用される。1)スライスアドレスは、subpic_idをもつサブピクチャ中のスライスのスライスアドレスであり、2)slice_addressの長さはsignalled_slice_id_length_minus1+1ビットに等しい。
【0070】
デコーダは、ビットストリームから1つまたは複数のピクチャを復号するために、この実施形態では、以下のステップを実施し得、ここで、ビットストリームは、少なくとも2つのスライスを含む。
【0071】
1)ビットストリーム中の1つまたは複数のシンタックスエレメントから、区分構造が階層の2つ以上のレベルを有するかどうかを決定する。
【0072】
2)階層の2つ以上のレベルがある場合のスライスについて、以下を行う。2a)スライスについてスライスヘッダ中のコードワードから第1の値を復号し、ここで、第1の値はアドレスの第1の部分を表し、2b)スライスヘッダ中のコードワードから第2の値を復号し、ここで、第2の値はアドレスの第2の部分を表し、2c)第1の値と第2の値とから、ピクチャ内のスライスの位置を特定するスライスアドレスを導出し、2d)スライスを復号するためにスライスアドレスを使用する。
【0073】
別のバージョンでは、スライスのヘッダまたはパラメータセット中で値の2つのセットがシグナリングされ、ここで、各セットが1つまたは複数の値を含み得、セットのうちの1つ中の1つまたは複数の値は、サブピクチャの位置に対するスライスの配置をまとめて示し、別のセット中の1つまたは複数の値は、スライスがどのサブピクチャ中に空間的に位置するかをまとめて示す。このバージョンのための一例として、スライスアドレスについてスライスヘッダ中で、2つの値セットがシグナリングされ、1つの値セットは、スライスがどのサブピクチャに属するかを示すサブピクチャIDについての1つの値を含み、1つの値セットは、スライスが属するサブピクチャ位置に対するスライスの空間配置をまとめて示す、2つの値XsおよびYsを含む。
【0074】
2- 間接参照を使用すること
【0075】
別の実施形態では、小粒区分ブロックのヘッダまたはパラメータセット中で、2つの値がシグナリングされ、i)一方の値は、小粒区分ブロックが空間的に中に位置する大粒区分ブロックを示し、ii)他方の値は、大粒区分ブロックの位置に対する小粒区分ブロックの配置を示し、2つの値のうちの少なくとも1つは、ターゲットにされる値を指定するために、たとえば、ビットストリーム中のパラメータセット、たとえば、PPSまたはSPS中でシグナリングされ得るインデックスマッピングリストまたはアドレスマッピングリストを使用する間接参照機構を使用する。好ましくは、この実施形態では、大粒区分ブロックは、間接参照機構を使用するものである。
【0076】
たとえば、ピクチャが、4つの空間象限(spatial quadrant)にスプリットされると仮定し、ここで、各象限はサブピクチャである。4つのサブピクチャの各々が、各々1つのスライスのみからなるとさらに仮定する。この例では、すべての第2の値(たとえば、local_slice_address値)は、スライスの位置がサブピクチャの位置に等しいことを示すために、0に等しくなり得る。第1のID値(たとえば、subpic_id値)は、各スライスが属するサブピクチャを示すために、それぞれ、0、1、2、3に等しくなり得る。次に、サブピクチャ2および3がビットストリームから抽出され、それらの2つのサブピクチャからなる新しいビットストリームが作成されることを考える。そのような動作をサポートするために、たとえば、PPSは、ID値2および3が、それぞれ0および1にマッピングされる、間接参照またはインデックスマッピングを含んでいることがある。新しいビットストリームを復号するデコーダは、最初に、新しいビットストリーム中に2つのサブピクチャがあることを復号し、したがって、最終サブピクチャID0および1をそれらのサブピクチャに割り振り得る。次いで、デコーダは、インデックスマッピングを作成するために、PPS中の情報を復号することになる。その後、デコーダは、2のID値をもつスライスを復号し得る。インデックスマッピングを使用して、0に等しい最終サブピクチャID値が導出される。同様に、3のID値をもつスライスについて、最終サブピクチャID値は、1に等しいものとして導出される。この間接参照またはインデックスマッピング機構によって、サブピクチャデータを抽出し、各スライス中のスライスID値を書き直すことなしに新しいビットストリームを形成するが、代わりにインデックスマッピングを1回のみ作成することが可能である。
【0077】
3- 2つ以上のレベルの区分階層についてのアドレスをシグナリングすること
【0078】
別の実施形態では、3つ以上のレベルの区分階層、たとえば、小粒区分ブロックと中粒区分ブロック(medium grain partition block)と大粒区分ブロックとをもつ3レベル区分階層が存在し、小粒区分ブロックのヘッダまたはパラメータセット中で、少なくとも3つの値、すなわち、i)小粒区分ブロックが空間的に中に位置する中粒区分ブロックを示す第1の値、たとえば、IDと、ii)中粒区分ブロックの位置に対する小粒区分ブロックの配置を示す第2の値と、iii)小粒区分ブロックが空間的に中に位置する大粒区分ブロックを示す第3の値とがシグナリングされる。いくつかの実施形態では、ヘッダは、大粒区分ブロックの位置に対する小粒区分ブロックの配置を示す第4の値をも含む。この実施形態では、大粒ブロック区分に対する中粒区分ブロックの空間ロケーションは、中粒区分ブロックと大粒区分ブロックとに対する小粒区分ブロックの空間位置の差から導出される。
【0079】
4- サブピクチャ中のローカルスライスの数のシグナリング
【0080】
前の実施形態のいずれかに基づき得る別の実施形態では、現在サブピクチャ中のスライスの数は、スライスを復号するときに知られる。この情報は、各サブピクチャについてのスライスヘッダ中で直接またはパラメータセット中で直接、たとえば、num_slices_in_subpicまたはnum_slices_in_subpic_minus1コードワードを用いてシグナリングされ得る。以下の例は、VVCの現在のバージョンに加えて、スライスヘッダ中でnum_slices_in_subpic_minus1をシグナリングするためのシンタックスおよびセマンティクスを説明する。
【0081】
subpic_idコードワードは、スライスが属するサブピクチャのIDを指定する。存在しないとき、subpic_idの値は0に等しいと推論される。シンタックスエレメントの長さは、Ceil(Log2(N))ビットである。VVCの現在のバージョンでは、範囲0~254内にあり得るmax_subpics_minus_1をシグナリングするために8ビットがSPS中で使用されることに留意されたい。その場合、Nは、たとえば254であり得る。
【0082】
num_slices_in_subpic_minus1コードワードは、現在サブピクチャ中に存在するスライスの数(すなわち、num_slices_in_subpic_minus1+1)を示す。存在しないとき、num_slices_in_subpic_minus1の値は0に等しいと推論される。
【0083】
local_slice_addressコードワードは、subpic_idをもつサブピクチャ中のスライスのスライスアドレスを指定する。存在しないとき、local_slice_addressの値は0に等しいと推論される。シンタックスエレメントの長さは、Ceil(Log2(num_slices_in_subpic_minus1+1))ビットである。
【0084】
以下の例は、VVCの現在のバージョンに加えて、SPS中の各サブピクチャについて、num_slices_in_subpic_minus1[i]をシグナリングするためのシンタックスおよびセマンティクスを説明する。
【0085】
max_subpics_minus1+1の値は、CVS中に存在し得るサブピクチャの最大数を指定する。max_subpics_minus1は0~254の範囲内にあるものとする。255の値は、ITU-T|ISO/IECによる将来の使用のために予約される。
【0086】
num_slices_in_subpic_minus1[i]+1の値は、i番目のサブピクチャ中に存在するスライスの数を指定する。存在しないとき、num_slices_in_subpic_minus1[i]の値は0に等しいと推論される。
【0087】
実施形態5- subpic_idを導出するときにmax_subpic_minus1を使用すること
【0088】
第1の実施形態に基づき得る別の実施形態では、VVCの現在のバージョンにおいてSPS中でシグナリングされるmax_subpics_minus1コードワードは、subpic_idのために使用されるビット数を導出するために使用される。スライスヘッダ中のsubpic_idについてのセマンティクスは、その場合、subpic_idが、スライスが属するサブピクチャのIDを指定することであり得る。存在しないとき、subpic_idの値は0に等しいと推論される。シンタックスエレメントの長さは、Ceil(Log2(max_subpics_minus1+1))ビットである。
【0089】
6- サブピクチャごとに1つのスライスをシグナリングすること
【0090】
一実施形態では、フラグsingle_slice_in_subpicture_flagが、パラメータセット、好ましくはSPSまたはDPS中に存在する。このフラグがある値を有するとき、2つ以上のスライスからなるサブピクチャがないものとする。このフラグが別の値を有するとき、サブピクチャ中に複数のスライスがあり得る。
【0091】
slice_addressコードワードの存在は、各サブピクチャ中に1つのスライスがあることをフラグが示すとき、slice_addressコードワードがパースされないように、このフラグを条件とし得る。
【0092】
single_slice_in_subpicture_flagの値が1に等しいとき、これは、SPSを参照するCVS中の各サブピクチャ中に1つのスライスのみがあることを指定する。single_tile_in_pic_flagの値が0に等しいとき、これは、SPSを参照するCVS中のサブピクチャ中に2つ以上のスライスがあり得ることを指定する。single_slice_in_subpicture_flagが存在しないとき、single_slice_in_subpicture_flagは0に等しいと推論される。
【0093】
signalled_slice_id_length_minus1+1は、スライスヘッダ中で、存在するときにシンタックスエレメントslice_id[i]を表し、シンタックスエレメントslice_addressを表すために使用されるビット数を指定する。signalled_slice_id_length_minus1の値は、両端値を含む0~15の範囲内にあるものとする。存在しないとき、signalled_slice_id_length_minus1の値は、Ceil(Log2(Max(2,num_slices_in_pic_minus1+1)))-1に等しいと推論される。
【0094】
subpic_idは、スライスが属するサブピクチャのIDを指定する。存在しないとき、subpic_idの値は0に等しいと推論される。シンタックスエレメントの長さは、Ceil(Log2(max_subpics_minus1+1))ビットである。
【0095】
slice_addressはスライスのアドレスを指定する。存在しないとき、slice_addressの値は0に等しいと推論される。
【0096】
サブピクチャが可能にされない(subpics_present_flagが0に等しい)場合、以下が適用される。1)スライスアドレスはブリックIDであり、2)slice_addressの長さは、Ceil(Log2(NumBricksInPic))ビットであり、3)slice_addressの値は、両端値を含む0~NumBricksInPic-1の範囲内にあるものとする。
【0097】
そうではなく、サブピクチャが可能にされる(subpics_present_flagが1に等しい)場合、以下が適用される。1)スライスアドレスは、subpic_idに等しいサブピクチャIDをもつサブピクチャ内のスライスのスライスアドレスであり、2)slice_addressの長さは、signalled_slice_id_length_minus1+1ビットである。
【0098】
代替的に、サブピクチャごとのスライスの最大数max_number_of_slices_per_subpic_minus1コードワードは、パラメータセット中でシグナリングされ得る。この場合、slice_addressコードワードは、デコーダによってパースされないが、max_number_of_slices_per_subpic_minus1が0に等しい場合、0に等しいと推論される。max_number_of_slices_per_subpic_minus1が0よりも大きい場合にslice_addressのために使用すべきビット数は、Ceil(Log2(max_number_of_slices_per_subpic_minus1+1))ビットに等しくセットされ得る。
【0099】
図8は、ビデオエンコーダ102またはビデオデコーダ104を実装するための、いくつかの実施形態による、装置800のブロック図である。すなわち、装置800は、プロセス600および/またはプロセス700を実施するように動作可能である。装置800がビデオエンコーダ102を実装する実施形態では、装置800は「符号化装置800」と呼ばれることがあり、装置800がビデオデコーダ104を実装する実施形態では、装置800は「復号装置800」と呼ばれることがある。
図8に示されているように、装置800は、1つまたは複数のプロセッサ(P)855(たとえば、汎用マイクロプロセッサ、および/または、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)など、1つまたは複数の他のプロセッサなど)を含み得る処理回路(PC)802であって、そのプロセッサが、単一のハウジングにおいてまたは単一のデータセンタにおいて共同サイト式であり得るかあるいは地理的に分散され得る(すなわち、装置800が分散コンピューティング装置であり得る)、処理回路(PC)802と、ネットワークインターフェース848であって、装置800が、ネットワークインターフェース848が(直接または間接的に)接続されるネットワーク110(たとえば、インターネットプロトコル(IP)ネットワーク)に接続された他のノードにデータを送信し、他のノードからデータを受信することを可能にするための送信機(Tx)845および受信機(Rx)847を備える(たとえば、ネットワークインターフェース848はネットワーク110に無線で接続され得、その場合、ネットワークインターフェース848はアンテナ構成に接続される)、ネットワークインターフェース848と、1つまたは複数の不揮発性記憶デバイスおよび/または1つまたは複数の揮発性記憶デバイスを含み得るローカル記憶ユニット(別名「データ記憶システム」)808とを備え得る。PC802がプログラマブルプロセッサを含む実施形態では、コンピュータプログラム製品(CPP)841が提供され得る。CPP841はコンピュータ可読媒体(CRM)842を含み、CRM842は、コンピュータ可読命令(CRI)844を備えるコンピュータプログラム(CP)843を記憶する。CRM842は、磁気媒体(たとえば、ハードディスク)、光媒体、メモリデバイス(たとえば、ランダムアクセスメモリ、フラッシュメモリ)など、非一時的コンピュータ可読媒体であり得る。いくつかの実施形態では、コンピュータプログラム843のCRI844は、PC802によって実行されたとき、CRIが、装置800に、本明細書で説明されるステップ(たとえば、フローチャートを参照しながら本明細書で説明されるステップ)を実施させるように設定される。他の実施形態では、装置800は、コードの必要なしに本明細書で説明されるステップを実施するように設定され得る。すなわち、たとえば、PC802は、単に1つまたは複数のASICからなり得る。したがって、本明細書で説明される実施形態の特徴は、ハードウェアおよび/またはソフトウェアで実装され得る。
【0100】
様々な実施形態が(添付の書類を含む)本明細書で説明されたが、それらの実施形態は、限定ではなく、例として提示されたにすぎないことを理解されたい。したがって、本開示の広さおよび範囲は、上記で説明された例示的な実施形態のいずれによっても限定されるべきでない。その上、本明細書で別段に指示されていない限り、またはコンテキストによって明確に否定されていない限り、上記で説明されたエレメントのそれらのすべての考えられる変形形態における任意の組合せが、本開示によって包含される。
【0101】
さらに、上記で説明され、図面に示されたプロセスは、ステップのシーケンスとして示されたが、これは、説明のためにのみ行われた。したがって、いくつかのステップが追加され得、いくつかのステップが省略され得、ステップの順序が並べ替えられ得、いくつかのステップが並行して実施され得ることが企図される。
【0102】
略語 説明
ATSC 新型テレビジョンシステム委員会
AU アクセスユニット
AUD アクセスユニットデリミタ
ALF 適応ループフィルタ
APS 適応パラメータセット
BLA 切断リンクアクセス
CLVS コード化レイヤビデオシーケンス
CRA クリーンランダムアクセス
CVS コード化ビデオストリーム
CVSS CVS開始
CU コーディングユニット
DASH 動的適応ストリーミングオーバーHTTP
DPS 復号パラメータセット
DVB デジタルビデオブロードキャスティング
DRAP 依存ランダムアクセスポイント
GDR 漸進的復号リフレッシュ
HEVC 高効率ビデオコーディング
IDR 瞬時復号リフレッシュ
IRAP イントラランダムアクセスポイント
ISO 国際標準化機構
ISOBMFF ISOベースメディアファイルフォーマット
LMCS ルーママッピングおよびクロマスケーリング
MPEG モーションピクチャエキスパートグループ
MMT MPEGメディアトランスポート
NAL ネットワークアブストラクションレイヤ
NALU NALユニット
NUT NALユニットタイプ
PPS ピクチャパラメータセット
RADL ランダムアクセス復号可能リーディング
RAP ランダムアクセスポイント
RASL ランダムアクセススキップリーディング
RBSP ローバイトシーケンスペイロード
RPL 参照ピクチャリスト
SEI 補足エンハンスメントレイヤ
SPS シーケンスパラメータセット
STSA ステップワイズ時間レイヤアクセス
VCL ビデオコーディングレイヤ
VPS ビデオパラメータセット
VVC 多用途ビデオコーディング
【0103】
付録
以下のテキストは、VVCの現在のバージョンの変更を提案する寄与文書からのものである。
【0104】
テキスト始まり
要約
この寄与文書は、サブピクチャの場合のスライスアドレスシグナリングに関係するVVC仕様の以下の変更を提案する。
- 第1に、CVS中のサブピクチャの存在を条件として、現在スライスがどのサブピクチャに属するかを指定するためにスライスヘッダ中でサブピクチャIDをシグナリングすることが提案される。
- 第2に、スライスヘッダ中で、サブピクチャ位置に対するスライスアドレスをシグナリングすることが提案される。
- 第3に、サブピクチャIDについてのアドレス間接参照を使用し、スライスアドレスについてのアドレス間接参照を削除することが提案される。各サブピクチャについて、スライスアドレスは、サブピクチャに対して固定され、サブビットストリーム抽出およびマージプロセス中に再使用され得る。
1.序論
JVET-O2001-vEにおける現在のVVC仕様ドラフトでは、サブピクチャがサポートされ、サブビットストリーム抽出およびマージプロセスを簡略化することをターゲットにする。しかしながら、ピクチャおよびスライスなど、他の規定された階層区分に関する、サブピクチャのためのアドレスシグナリング機構は、改善を必要とし得る。
現在のVVC仕様ドラフトでは、スライスアドレスは、スライスヘッダ中でシグナリングされ、ピクチャ中のスライスの空間位置を導出するために使用される。しかしながら、サブピクチャが使用されるとき、およびサブピクチャ中に2つ以上のスライスがあるとき、現在のスライスアドレスシグナリング方式に関する数個の問題がある。
1- サブピクチャ中のスライスの空間位置は、スライスヘッダ中のslice_addressシンタックスから直接導出され得ず、その空間位置は、マルチステッププロセスを必要とする。
〇 ピクチャ中のスライスの空間位置が、最初に導出される必要がある。
〇 次いで、第2のステップにおいて、ピクチャ中のその空間位置がどのサブピクチャに属するかが導出される必要がある。
〇 次いで、第3のステップにおいて、そのサブピクチャ中のスライスの空間位置が導出され得る。
2- スライスヘッダから、このスライスがどのサブピクチャに属するかが導出され得ない。この情報は、サブビットストリームマージおよび抽出プロセスにとって有用であることになる。
3- サブピクチャ中のスライスの固定相対空間位置は、(サブビットストリーム抽出およびマージの場合のように)サブピクチャが抽出またはマージされているとき、活用されない。
4- slice_addressをslice_idにマッピングするために使用される間接参照機構は、サブビットストリーム抽出およびマージプロセスにとって準最適であり得、なぜなら、サブピクチャ中の複数のスライスの場合、現在のVVC設計を使用するサブビットストリーム抽出が、いくつかのアドレス間接参照、すなわち、各スライス中のslice_address値について1つの間接参照を必要とし得るからである。
2.提案
この寄与文書は、上記の問題を解決し、サブピクチャ中のスライスの相対位置を導出するためのマルチステッププロセスを簡略化するための、ソリューションを提案する。この寄与文書は、サブピクチャの場合のスライスアドレスシグナリングに関係する以下の変更を提案する。
- 第1に、CVS中のサブピクチャの存在に条件付けられる、現在スライスがどのサブピクチャに属するかを指定するためにスライスヘッダ中でサブピクチャIDをシグナリングすることが提案される。
- 第2に、スライスヘッダ中で、サブピクチャ位置に対するスライスアドレスをシグナリングすることが提案される。
- 第3に、サブピクチャIDについてのアドレス間接参照を使用し、スライスアドレスについてのアドレス間接参照を削除することが提案される。各サブピクチャについて、スライスアドレスは、サブピクチャに対して固定され、サブビットストリーム抽出およびマージプロセス中に再使用され得る。
-
この提案では、4つの前述の問題が、以下のようにして解決される。
1- サブピクチャ中のスライスの空間位置は、スライスヘッダから直接導出される。
2- スライスが属するサブピクチャのIDは、スライスヘッダ中でシグナリングされる。
3- サブピクチャ中のスライスの相対空間位置は、スライスヘッダ中でシグナリングされる。
4- 間接参照プロセスは、サブピクチャの抽出およびマージにおいて(スライスごとにではなく)サブピクチャごとに行われる。
以下は、JVET-O2001-vEに加える、スライスヘッダの提案されるシンタックスおよびセマンティクス変更である。
max_subpics_minus1+1は、CVS中に存在し得るサブピクチャの最大数を指定する。max_subpics_minus1は0~254の範囲内にあるものとする。255の値は、ITU-T|ISO/IECによる将来の使用のために予約される。
subpic_grid_col_width_minus1+1は、4つのサンプルの単位でサブピクチャ識別子グリッドの各エレメントの幅を指定する。シンタックスエレメントの長さは、Ceil(Log2(pic_width_max_in_luma_samples/4))ビットである。
変数NumSubPicGridColsは、以下のように導出される。
subpic_grid_row_height_minus1+1は、4つのサンプルの単位でサブピクチャ識別子グリッドの各エレメントの高さを指定する。シンタックスエレメントの長さは、Ceil(Log2(pic_height_max_in_luma_samples/4))ビットである。
変数NumSubPicGridRowsは、以下のように導出される。
subpic_grid_idx[i][j]は、グリッド位置(i,j)のサブピクチャインデックスを指定する。シンタックスエレメントの長さは、Ceil(Log2(max_subpics_minus1+1))ビットである。
変数SubPicTop[subpic_grid_idx[i][j]]、SubPicLeft[subpic_grid_idx[i][j]]、SubPicWidth[subpic_grid_idx[i][j]]、SubPicHeight[subpic_grid_idx[i][j]]、およびNumSubPicsは、以下のように導出される。
1に等しいsubpic_treated_as_pic_flag[i]は、CVS中の各コード化ピクチャのi番目のサブピクチャがループ内フィルタ処理演算を除く復号プロセスにおいてピクチャとして扱われることを指定する。0に等しいsubpic_treated_as_pic_flag[i]は、CVS中の各コード化ピクチャのi番目のサブピクチャがループ内フィルタ処理演算を除く復号プロセスにおいてピクチャとして扱われないことを指定する。存在しないとき、subpic_treated_as_pic_flag[i]の値は0に等しいと推論される。
1に等しいloop_filter_across_subpic_enabled_flag[i]は、ループ内フィルタ処理演算がCVS中の各コード化ピクチャ中のi番目のサブピクチャの境界にわたって実施され得ることを指定する。0に等しいloop_filter_across_subpic_enabled_flag[i]は、ループ内フィルタ処理演算がCVS中の各コード化ピクチャ中のi番目のサブピクチャの境界にわたって実施されないことを指定する。存在しないとき、loop_filter_across_subpic_enabled_pic_flag[i]の値は1に等しいと推論される。
以下の制約が適用されることが、ビットストリーム適合性の要件である。
- 任意の2つのサブピクチャsubpicAおよびsubpicBについて、subpicAのインデックスがsubpicBのインデックスよりも小さいとき、subPicAの任意のコード化NALユニットが、復号順序においてsubPicBの任意のコード化NALユニットに続くものとする。
- サブピクチャの形状は、各サブピクチャが、復号されたとき、ピクチャ境界からなる、または前に復号されたサブピクチャの境界からなる、そのサブピクチャの左境界全体および上境界全体を有するものとするようなものであるものとする。
以下は、JVET-O2001-vEに加える、スライスヘッダの提案されるシンタックスおよびセマンティクス変更である。
slice_pic_parameter_set_idは、使用中のPPSについてのpps_pic_parameter_set_idの値を指定する。slice_pic_parameter_set_idの値は、両端値を含む0~63の範囲内にあるものとする。
現在ピクチャのTemporalIdの値が、slice_pic_parameter_set_idに等しいpps_pic_parameter_set_idを有するPPSのTemporalIdの値よりも大きいかまたはそれに等しいものとすることが、ビットストリーム適合性の要件である。
rect_slice_flagが0に等しい場合、以下が適用される。
- スライスアドレスは、式(7-59)によって指定されるブリックIDである。
- slice_addressの長さは、Ceil(Log2(NumBricksInPic))ビットである。
- slice_addressの値は、両端値を含む0~NumBricksInPic-1の範囲内にあるものとする。
num_bricks_in_slice_minus1は、存在するとき、スライス中のブリックの数-1を指定する。num_bricks_in_slice_minus1の値は、両端値を含む0~NumBricksInPic-1の範囲内にあるものとする。rect_slice_flagが0に等しく、single_brick_per_slice_flagが1に等しいとき、num_bricks_in_slice_minus1の値は0に等しいと推論される。single_brick_per_slice_flagが1に等しいとき、num_bricks_in_slice_minus1の値は0に等しいと推論される。
現在スライス中のブリックの数を指定する変数NumBricksInCurrSliceと、現在スライス中のi番目のブリックのブリックインデックスを指定する変数SliceBrickIdx[i]とは、以下のように導出される。
テキスト終わり