IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ ホアウェイ・テクノロジーズ・カンパニー・リミテッドの特許一覧

特開2022-160530点群コーディング用の高レベルな構文設計
<>
  • 特開-点群コーディング用の高レベルな構文設計 図1
  • 特開-点群コーディング用の高レベルな構文設計 図2
  • 特開-点群コーディング用の高レベルな構文設計 図3
  • 特開-点群コーディング用の高レベルな構文設計 図4
  • 特開-点群コーディング用の高レベルな構文設計 図5
  • 特開-点群コーディング用の高レベルな構文設計 図6
  • 特開-点群コーディング用の高レベルな構文設計 図7
  • 特開-点群コーディング用の高レベルな構文設計 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022160530
(43)【公開日】2022-10-19
(54)【発明の名称】点群コーディング用の高レベルな構文設計
(51)【国際特許分類】
   H04N 19/70 20140101AFI20221012BHJP
   H04N 19/597 20140101ALI20221012BHJP
【FI】
H04N19/70
H04N19/597
【審査請求】有
【請求項の数】12
【出願形態】OL
【外国語出願】
(21)【出願番号】P 2022120241
(22)【出願日】2022-07-28
(62)【分割の表示】P 2020571849の分割
【原出願日】2019-04-11
(31)【優先権主張番号】62/690,132
(32)【優先日】2018-06-26
(33)【優先権主張国・地域又は機関】US
(71)【出願人】
【識別番号】504161984
【氏名又は名称】ホアウェイ・テクノロジーズ・カンパニー・リミテッド
(74)【代理人】
【識別番号】110000877
【氏名又は名称】弁理士法人RYUKA国際特許事務所
(72)【発明者】
【氏名】ワン、イエ-クイ
(57)【要約】      (修正有)
【課題】映像復号器により実施される点群符号化(PCC)の方法を提供する。
【解決手段】映像復号器により実施される点群符号化(PCC)の方法であって、符号化済みビットストリームのプロファイル及びレベルを指定するグループオブフレームヘッダを含む符号化済みビットストリームを受信する段階と、符号化済みビットストリームを復号する段階と、を含む。
【選択図】図6
【特許請求の範囲】
【請求項1】
構造化データを記憶したコンピュータ可読記録媒体であって、前記構造化データは符号化済みビットストリームであり、前記符号化済みビットストリームはグループオブフレームヘッダを含み、前記グループオブフレームヘッダは前記符号化済みビットストリームのプロファイル及びレベルを指定する、コンピュータ可読記録媒体。
【請求項2】
前記グループオブフレームヘッダは、グループオブフレームネットワーク抽象化層(NAL)ユニットである、請求項1に記載のコンピュータ可読記録媒体。
【請求項3】
前記グループオブフレームヘッダは、グループオブフレームヘッダパラメータを搬送するように構成される、請求項1または2に記載のコンピュータ可読記録媒体。
【請求項4】
占有マップの情報、ジオメトリの情報、及びテクスチャの情報のうち少なくとも1つが、前記グループオブフレームヘッダパラメータに含まれる、請求項3に記載のコンピュータ可読記録媒体。
【請求項5】
前記グループオブフレームヘッダは、補助情報及び占有マップを復号するための前記プロファイル及び前記レベルを指定する、請求項1から3のいずれか一項に記載のコンピュータ可読記録媒体。
【請求項6】
前記グループオブフレームヘッダは、ジオメトリ、テクスチャ、補助情報、及び占有マップの復号結果を利用する点群再構成処理を指定する、請求項1から3のいずれか一項に記載のコンピュータ可読記録媒体。
【請求項7】
前記プロファイル又は前記レベルは、補助情報及び占有マップの成分を復号する能力を示す、請求項1から3のいずれか一項に記載のコンピュータ可読記録媒体。
【請求項8】
前記プロファイル又は前記レベルは、点群再構成の能力を示す、請求項1から5のいずれか一項に記載のコンピュータ可読記録媒体。
【請求項9】
前記プロファイルは構文の指定サブセットである、請求項1から5のいずれか一項に記載のコンピュータ可読記録媒体。
【請求項10】
前記プロファイルは、コーディングツールの指定サブセットである、請求項1から5のいずれか一項に記載のコンピュータ可読記録媒体。
【請求項11】
前記レベルは、構文要素及び変数によって用いられ得る値に対する制約の規定セットである、請求項1から5のいずれか一項に記載のコンピュータ可読記録媒体。
【請求項12】
前記符号化済みビットストリームの前記プロファイルと前記レベルとの組み合わせが、前記符号化済みビットストリームの復号に必要な特定の復号能力を表す、請求項1から5のいずれか一項に記載のコンピュータ可読記録媒体。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は概して点群コーディングに関するものであり、具体的には、点群コーディング用の高レベルな構文に関する。
【背景技術】
【0002】
点群は、エンターテイメント業界、インテリジェント自動車のナビゲーション、地理空間的な検査、現実世界の対象物の3次元(3D)モデリング、仮想化などを含む幅広い用途で利用されている。点群の不均一なサンプリングジオメトリを考慮すると、そのようなデータの記憶及び伝送にはコンパクト表現が有益である。他の3D表示と比較すると、不規則な点群はより一般的であり、より広範囲のセンサ及びデータ取得方法に適用可能である。例えば、仮想現実世界での3D表示又はテレプレゼンス環境でのリモートレンダリングを行う場合、仮想形状のレンダリング及びリアルタイムの命令は、高密度な点群データ集合として処理される。
【発明の概要】
【0003】
第1態様は、映像復号器により実施される点群コーディング(PCC)の方法に関する。本方法は、グループオブフレームヘッダを含む符号化済みビットストリームを受信する段階であって、グループオブフレームヘッダは符号化済みビットストリームのプロファイル及びレベルを指定する、段階と、符号化済みビットストリームを復号する段階とを含む。
【0004】
第2態様は、映像符号化器により実施される点群コーディング(PCC)の方法に関する。本方法は、グループオブフレームヘッダを含む符号化済みビットストリームを生成する段階であって、グループオブフレームヘッダは符号化済みビットストリームのプロファイル及びレベルを指定する、段階と、符号化済みビットストリームを復号器に伝送する段階とを含む。
【0005】
本方法は、後述する点群コーディングに関連した複数の問題のうちの1つ又は複数を解決する高レベルな構文設計を提供する。したがって、映像コーディングの処理及びビデオコーデックは改善され、より効率が良くなるといったようになる。
【0006】
第1態様又は第2態様そのものによる本方法の第1の実装形態において、グループオブフレームヘッダは、グループオブフレームネットワーク抽象化層(NAL)ユニットである。
【0007】
第1態様若しくは第2態様そのものによる本方法の第2の実装形態、又は第1態様若しくは第2態様の前述の任意の実装形態において、グループオブフレームヘッダは、グループオブフレームヘッダパラメータを搬送するように構成される。
【0008】
第1態様若しくは第2態様そのものによる本方法の第3の実装形態、又は第1態様若しくは第2態様の前述の任意の実装形態において、占有情報、ジオメトリ情報、及び属性情報のうちの少なくとも1つが、グループオブフレームヘッダパラメータに含まれる。
【0009】
第1態様若しくは第2態様そのものによる本方法の第4の実装形態、又は第1態様若しくは第2態様の前述の任意の実装形態において、グループオブフレームヘッダは、占有マップの補助情報を復号するためのプロファイル及びレベルを指定する。
【0010】
第1態様若しくは第2態様そのものによる本方法の第5の実装形態、又は第1態様若しくは第2態様の前述の任意の実装形態において、グループオブフレームヘッダは、ジオメトリ、テクスチャ、補助情報、及び占有マップの復号結果を利用する点群再構成処理を指定する。
【0011】
第1態様若しくは第2態様そのものによる本方法の第6の実装形態、又は第1態様若しくは第2態様の前述の任意の実装形態において、プロファイル又はレベルは、補助情報及び占有マップの成分を復号する能力を示す。
【0012】
第1態様若しくは第2態様そのものによる本方法の第7の実装形態、又は第1態様若しくは第2態様の前述の任意の実装形態において、プロファイル又はレベルは、点群再構成の能力を示す。
【0013】
第1態様若しくは第2態様そのものによる本方法の第8の実装形態、又は第1態様若しくは第2態様の前述の任意の実装形態において、プロファイルは構文の指定サブセットである。
【0014】
第1態様若しくは第2態様そのものによる本方法の第9の実装形態、又は第1態様若しくは第2態様の前述の任意の実装形態において、プロファイルは、コーディングツールの指定サブセットである。
【0015】
第1態様若しくは第2態様そのものによる本方法の第10の実装形態、又は第1態様若しくは第2態様の前述の任意の実装形態において、レベルは、構文要素及び変数が用い得る値に対する制約の規定セットである。
【0016】
第1態様若しくは第2態様そのものによる本方法の第11の実装形態、又は第1態様若しくは第2態様の前述の任意の実装形態において、符号化済みビットストリームのプロファイルとレベルとの組み合わせが、符号化済みビットストリームの復号に必要な特定の復号能力を表す。
【0017】
第3態様は、ピクチャを受信して符号化する又はビットストリームを受信して復号するように構成された受信機と、受信機に連結された送信機であって、ビットストリームを復号器に伝送する又は復号済み画像をディスプレイに伝送するように構成された送信機と、受信機又は送信機のうちの少なくとも1つに連結されたメモリであって、命令を格納するように構成されたメモリと、メモリに連結されたプロセッサであって、メモリに格納された命令を実行して、前述の態様又は実装形態のうちのいずれかの方法を行うように構成されたプロセッサとを含むコーディング装置に関する。
【0018】
コーディング装置は、後述する点群コーディングに関連した複数の問題のうちの1つ又は複数を解決する高レベルな構文設計を利用する。したがって、映像コーディングの処理及びビデオコーデックは改善され、より効率が良くなるといったようになる。
【0019】
第3態様そのものによる装置の第1の実装形態において、本装置はさらに、画像を表示するように構成されたディスプレイを含む。
【0020】
第4態様は、符号化器と、符号化器と通信する復号器とを含むシステムに関する。符号化器又は復号器は、前述の態様又は実装形態のうちのいずれかのコーディング装置を含む。
【0021】
本システムは、後述する点群コーディングに関連した複数の問題のうちの1つ又は複数を解決する高レベルな構文設計を利用する。したがって、映像コーディングの処理及びビデオコーデックは改善され、より効率が良くなるといったようになる。
【0022】
第5態様は、ピクチャを受信して符号化する又はビットストリームを受信して復号するように構成された受信手段と、受信手段に連結された伝送手段であって、ビットストリームを復号器に伝送する又は復号済み画像を表示手段に伝送するように構成された伝送手段と、受信手段又は伝送手段のうちの少なくとも1つに連結された記憶手段であって、命令を格納するように構成された記憶手段と、記憶手段に連結された処理手段であって、記憶手段に格納された命令を実行して、前述の態様又は実装形態のうちのいずれかにおける方法を行うように構成された処理手段とを含むコーディングの手段に関する。
【0023】
コーディングの手段は、後述する点群コーディングに関連した複数の問題のうちの1つ又は複数を解決する高レベルな構文設計を利用する。したがって、映像コーディングの処理及びビデオコーデックは改善され、より効率が良くなるといったようになる。
【0024】
明確にすることを目的に、前述の複数の実施形態のうちのいずれか1つは、本開示の範囲内の新たな実施形態を作成するために、その他の前述の実施形態のうちの任意の1つ又は複数と組み合わされてよい。
【0025】
これらの特徴及び他の特徴は、添付の図面及び特許請求の範囲と併せて用いられる以下の詳細な説明によって明確に理解されるであろう。
【図面の簡単な説明】
【0026】
本開示をより十分に理解するために、ここでは、添付図面及び詳細な説明と併せて用いられる以下の簡潔な説明を参照する。ここで、同じ参照番号は同じ部分を表す。
【0027】
図1】コンテキストモデリング技法を利用し得る例示的なコーディングシステムを示すブロック図である。
【0028】
図2】コンテキストモデリング技法を実装し得る例示的な映像符号化器を示すブロック図である。
【0029】
図3】コンテキストモデリング技法を実装し得る例示的な映像復号器を示すブロック図である。
【0030】
図4】PCCと互換性のあるデータ構造体の一実施形態の概略図である。
【0031】
図5】映像復号器により実装される点群コーディングの方法の実施形態である。
【0032】
図6】映像符号化器により実装される点群コーディングの方法の実施形態である。
【0033】
図7】例示的な映像コーディングデバイスの概略図である。
【0034】
図8】コーディングの手段の一実施形態に係る概略図である。
【発明を実施するための形態】
【0035】
1つ又は複数の実施形態に係る例示的な実装態様が以下に提供されるが、開示されたシステム及び/又は方法は、現時点で知られているのか又は存在しているのかに関係なく、任意の数の技法を用いて実装されてよいことを最初に理解されたい。本開示は、本明細書において図示され説明される例示的な設計例及び実装形態を含む、以下に示される例示的な実装態様、図面、及び技法に決して限定されるべきではなく、添付の特許請求の範囲と共に、その均等物の全範囲内で修正されてよい。
【0036】
映像コーディング規格には、国際電気通信連合の電気通信標準化部門(ITU‐T)のH.261、国際標準化機構(ISO)/国際電気標準会議(IEC)の動画像符号化専門家グループ(MPEG)-1パート2、ITU‐TのH.262又はISO/IECのMPEG-2パート2、ITU-TのH.263、ISO/IECのMPEG-4パート2、ITU‐TのH.264又はISO/IECのMPEG-4パート10としても知られている高度映像コーディング(AVC)、及びITU‐TのH.265又はMPEG-Hパート2としても知られている高効率映像コーディング(HEVC)が含まれる。AVCには、スケーラブル映像コーディング(SVC)、多視点映像コーディング(MVC)、及び多視点映像コーディング+深度(MVC+D)、並びに3DのAVC(3D-AVC)などの拡張版が含まれる。HEVCには、スケーラブルHEVC(SHVC)、多視点HEVC(MV-HEVC)、及び3DのHEVC(3D-HEVC)などの拡張版が含まれる。
【0037】
点群とは、3D空間におけるデータ点の集合である。各データ点は、位置(例えば、X、Y、Z)、色(例えば、R、G、B、又はY、U、V)、及び場合によっては透過率、反射率、取得時間などのような他の特性を決定するパラメータで構成される。通常、クラウド内の各点は、その点に付与される同じ数の属性を有する。点群は、リアルタイムの3D没入型テレプレゼンス、インタラクティブな視差を用いて見るコンテンツ仮想現実(VR)、3Dの自由視点スポーツ再生放送、地理的情報システム、文化遺産、大規模な3Dの動的マップに基づく自律的ナビゲーション、及び自動車用途などの様々な用途に用いられてよい。
【0038】
ISO/IECの動画像符号化専門家グループ(MPEG)は、可逆圧縮及び不可逆圧縮をされた点群データに対する、かなり高い符号化効率とネットワーク環境へのロバスト性とを有する点群コーディングに関する新たなコーデック規格の開発を2016年に開始した。このコーデック規格を用いると、点群は、コンピュータデータの形態として操作され、また様々な記憶媒体に格納され、既存のネットワーク及び将来のネットワークを介して送受信され、既存の放送チャネル及び将来の放送チャネルで配信されることが可能になる。
【0039】
近年、点群コーディング(PCC)の取り組みは、PCCカテゴリ1、PCCカテゴリ2、及びPCCカテゴリ3という3つのカテゴリに分類されるようになり、ここでは、2つの別個の作業案が開発されていた。1つはPCCカテゴリ2(PCC Cat2)用であり、もう1つはPCCカテゴリ1及びPCCカテゴリ3(PCC Cat13)用である。PCC Cat2用の最新作業案(WD)は、MPEGの出力ドキュメントN17534に含まれており、PCC Cat13用の最新WDはMPEGの出力ドキュメントN17533に含まれている。
【0040】
PCC Cat2のWDにおけるPCC Cat2コーデックの設計の根底にある重要な指針は、既存のビデオコーデックを活用し、異なる映像シーケンスの集合として点群データを圧縮することにより、動的な点群のジオメトリ情報及びテクスチャ情報を圧縮することである。具体的には、2つの映像シーケンス(1つは点群データのジオメトリ情報を表しており、もう1つはテクスチャ情報を表している)が生成され、ビデオコーデックを用いて圧縮される。2つの映像シーケンスを解釈するための追加のメタデータ(すなわち、占有マップ及び補助パッチ情報)も、別々に生成され圧縮される。
【0041】
残念ながら、PCCの既存の設計には欠点がある。例えば、1つの時間インスタンスに関連するデータユニット(すなわち、1つのアクセスユニット(AU))が復号順に連続していない。PCC Cat 2のWDでは、AUごとのテクスチャ情報、ジオメトリ情報、補助情報、及び占有マップのデータユニットは、フレームのグループ(グループオブフレーム)の単位でインターリーブされる。すなわち、グループ内の全てのフレームのジオメトリデータは一緒になっている。テクスチャデータなどでも、同じであることが多い。PCC Cat 13のWDでは、AUごとのジオメトリのデータユニット及び一般的な属性は、PCCビットストリーム全体のレベルでインターリーブされる(例えば、PCCビットストリーム全体と同じ長さを有するフレームのグループ(グループオブフレーム)が1つだけある場合、PCC Cat2のWDと同じである)。1つのAUに属するデータユニットをインターリーブすると、本質的にエンドツーエンドの大きな遅延が生じ、この遅延は、アプリケーションシステムの表示期間における少なくともフレームのグループ(グループオブフレーム)の長さに等しい。
【0042】
別の欠点は、ビットストリームフォーマットに関する。ビットストリームフォーマットは、0x0003のような開始コードパターンのエミュレーションを可能にするので、開始コードエミュレーションの防止が必要とされるMPEG-2のトランスポートストリーム(TS)を介した伝送に有効ではない。PCC Cat2では、現時点において、group_of_frames_geometry_video_payload( )及びgroup_of_frames_texture_video_payload( )だけが、HEVC又はAVCがジオメトリ成分及びテクスチャ成分のコーディングに用いられる場合に、開始コードエミュレーションの防止を所定の位置に有している。PCC Cat13では、開始コードエミュレーションの防止はビットストリームのどこにも設けられていない。
【0043】
PCC Cat2のWDでは、ジオメトリビットストリーム及びテクスチャビットストリームのコーデック情報の一部(例えば、どのコーデックか、コーデックのプロファイル、レベルなど)が、構造体group_of_frames_geometry_video_payload( )及びgroup_of_frames_texture_video_payload( )の複数のインスタンスに深く埋められている。さらに、補助情報及び占有マップの成分を復号する能力並びに点群再構成の能力を示すプロファイル及びレベルのような情報の一部が欠けている。
【0044】
本明細書で開示されるのは、点群コーディングに関連した前述の問題のうちの1つ又は複数を解決する高レベルな構文設計である。以下でより十分に説明されるように、本開示は、データユニットヘッダ(PCCネットワークアクセス層(NAL)ヘッダとも呼ばれる)に含まれるタイプインジケータを利用して、PCC NALユニットのペイロードにおいてコンテンツのタイプを指定する。さらに、本開示は、グループオブフレームヘッダNALユニットを利用して、グループオブフレームヘッダパラメータを搬送する。グループオブフレームヘッダNALユニットは、それぞれのジオメトリビットストリーム又はテクスチャビットストリームのプロファイル及びレベルを信号で伝えるのにも用いられてよい。
【0045】
図1は、PCC映像コーディング技法を利用し得る例示的なコーディングシステム10を示すブロック図である。図1に示すように、コーディングシステム10は、その後に送信先デバイス14により復号される符号化済み映像データを提供する送信元デバイス12を含む。具体的には、送信元デバイス12は、コンピュータ可読媒体16を介して映像データを送信先デバイス14に提供してよい。送信元デバイス12及び送信先デバイス14は、デスクトップコンピュータ、ノートブック(例えば、ラップトップ)コンピュータ、タブレットコンピュータ、セットトップボックス、いわゆる「スマート」フォンなどの携帯電話機、いわゆる「スマート」パッド、テレビ、カメラ、表示デバイス、デジタルメディアプレイヤー、ビデオゲームコンソール、又はビデオストリーミングデバイスなどを含む幅広い範囲のデバイスのうちのいずれかを含んでよい。場合によっては、送信元デバイス12及び送信先デバイス14は、無線通信に対応してよい。
【0046】
送信先デバイス14は、コンピュータ可読媒体16を介して、復号される符号化済み映像データを受信してよい。コンピュータ可読媒体16は、符号化済み映像データを送信元デバイス12から送信先デバイス14へと移動できる任意のタイプの媒体又はデバイスを有してよい。1つの例において、コンピュータ可読媒体16は、送信元デバイス12が符号化済み映像データを送信先デバイス14へとリアルタイムで直接伝送することを可能にする通信媒体を有してよい。符号化済み映像データは、無線通信プロトコルなどの通信規格に従って変調され、送信先デバイス14に伝送されてよい。通信媒体は、無線周波数(RF)スペクトル又は1つ若しくは複数の物理伝送回線などの任意の無線通信媒体又は有線通信媒体を含んでよい。通信媒体は、ローカルエリアネットワーク、ワイドエリアネットワーク、又はインターネットなどのグローバルネットワークなどの、パケットベースのネットワークの一部を形成してよい。通信媒体は、ルータ、スイッチ、基地局、又は送信元デバイス12から送信先デバイス14への通信を容易にするのに役立ち得る任意の他の機器を含んでよい。
【0047】
いくつかの例において、符号化済みデータは、出力インタフェース22から記憶デバイスに出力されてよい。同様に、符号化済みデータは、入力インタフェースにより記憶デバイスからアクセスされてよい。記憶デバイスは、ハードドライブ、ブルーレイ(登録商標)ディスク、デジタルビデオディスク(DVD)、コンパクトディスクリードオンリメモリ(CD-ROM)、フラッシュメモリ、揮発性メモリ若しくは不揮発性メモリ、又は符号化済み映像データを格納するための任意の他の好適なデジタル記憶媒体などの様々な分散型又はローカルにアクセスされるデータ記憶媒体のうちのいずれかを含んでよい。さらなる例において、記憶デバイスは、送信元デバイス12により生成される符号化済み映像を格納し得るファイルサーバ又は別の中間記憶デバイスに対応してよい。送信先デバイス14は、ストリーミング又はダウンロードによって、格納された映像データに記憶デバイスからアクセスしてよい。ファイルサーバは、符号化済み映像データを格納し、当該符号化済み映像データを送信先デバイス14に伝送できる任意のタイプのサーバであってよい。例示的なファイルサーバには、(例えば、ウェブサイト向けの)ウェブサーバ、ファイル転送プロトコル(FTP)サーバ、ネットワーク接続型ストレージ(NAS)デバイス、又はローカルディスクドライブが含まれる。送信先デバイス14は、インターネット接続を含む任意の標準的なデータ接続を通じて、符号化済み映像データにアクセスしてよい。これには、無線チャネル(例えば、Wi-Fi(登録商標)接続)、有線接続(例えば、デジタル加入者回線(DSL)、ケーブルモデムなど)、又はファイルサーバに格納された符号化済み映像データにアクセスするのに好適な両方の組み合わせが含まれてよい。記憶デバイスからの符号化済み映像データの伝送は、ストリーミング伝送、ダウンロード伝送、又はこれらの組み合わせであってもよい。
【0048】
本開示の技法は、必ずしも無線用途又は無線設定に限定されない。これらの技法は、無線テレビ放送、ケーブルテレビ放送、衛星テレビ放送、インターネットストリーミングビデオ放送(動的適応型HTTPストリーミング(DASH)など)、データ記憶媒体上に符号化されたデジタル映像、データ記憶媒体に格納されたデジタル映像の復号、又は他のアプリケーションなどの様々なマルチメディアアプリケーションのうちのいずれかをサポートする映像コーディングに適用されてよい。いくつかの例において、コーディングシステム10は、一方向又は双方向の映像伝送をサポートして、ビデオストリーミング、ビデオ再生、ビデオ放送、及び/又は、ビデオテレフォニーなどのアプリケーションをサポートするように構成されてよい。
【0049】
図1の例において、送信元デバイス12は、映像ソース18と、映像符号化器20と、出力インタフェース22とを含む。送信先デバイス14は、入力インタフェース28と、映像復号器30と、表示デバイス32とを含む。本開示によれば、送信元デバイス12の映像符号化器20及び/又は送信先デバイス14の映像復号器30は、映像コーディングの技法を適用するように構成されてよい。他の実施例では、送信元デバイス及び送信先デバイスが他の構成要素又は装置を含んでよい。例えば、送信元デバイス12は、外部カメラなどの外部の映像ソースから映像データを受信してよい。同様に、送信先デバイス14は、一体化された表示デバイスを含むのではなく、外部の表示デバイスとインタフェースをとってよい。
【0050】
図示された図1のコーディングシステム10は、単なる1つの例にすぎない。映像コーディングの技法は、任意のデジタル映像符号化デバイス及び/又は復号デバイスにより実行されてよい。本開示の技法は概して、映像コーディングデバイスにより実行されるが、これらの技法は、通常「コーデック」と呼ばれる映像符号化器/復号器により実行されてもよい。さらに本開示の技法は、映像プリプロセッサにより実行されてもよい。映像符号化器及び/又は復号器は、グラフィックス処理装置(GPU)又は同様のデバイスであってよい。
【0051】
送信元デバイス12及び送信先デバイス14は、送信元デバイス12が送信先デバイス14に伝送するためにコーディングされた映像データを生成する、このようなコーディングデバイスの単なる例にすぎない。いくつかの例において、送信元デバイス12及び送信先デバイス14は、送信元デバイス12及び送信先デバイス14のそれぞれが映像符号化及び復号の構成要素を含むような実質的に対称的な方式で動作してよい。したがって、コーディングシステム10は、例えば、ビデオストリーミング、ビデオ再生、ビデオ放送、又はビデオテレフォニー用の映像デバイス12と14との間の一方向又は双方向の映像伝送をサポートしてよい。
【0052】
送信元デバイス12の映像ソース18は、ビデオカメラなどの映像撮影デバイス、これまでに撮影した映像を含む映像アーカイブ、及び/又は映像コンテンツプロバイダから映像を受信する映像供給インタフェースを含んでよい。さらなる選択肢として、映像ソース18は、コンピュータグラフィックスベースのデータを、ソース映像、又はライブ映像、アーカイブ映像、及びコンピュータ生成映像の組み合わせとして生成してよい。
【0053】
一部の例では、映像ソース18がビデオカメラである場合、送信元デバイス12及び送信先デバイス14は、いわゆるカメラ付き携帯電話又はテレビ電話を構成してよい。しかしながら上述したように、本開示で説明される技法は一般的に映像コーディングに適用可能であってよく、また無線アプリケーション及び/又は有線アプリケーションに適用されてよい。それぞれの場合において、撮影された映像、事前に撮影された映像、又はコンピュータ生成映像は、映像符号化器20により符号化されてよい。符号化済み映像の情報は次に、出力インタフェース22により、コンピュータ可読媒体16に出力されてよい。
【0054】
コンピュータ可読媒体16は、無線放送若しくは有線ネットワーク伝送などの一時的媒体、又はハードディスク、フラッシュドライブ、コンパクトディスク、デジタルビデオディスク、ブルーレイディスク、若しくは他のコンピュータ可読媒体などの記憶媒体(すなわち、非一時的記憶媒体)を含んでよい。いくつかの例では、ネットワークサーバ(不図示)が、符号化済み映像データを送信元デバイス12から受信し、当該符号化済み映像データを、例えばネットワーク伝送を介して送信先デバイス14に供給してよい。同様に、ディスク打抜き加工設備などの媒体生産設備のコンピューティングデバイスが、符号化済み映像データを送信元デバイス12から受信し、符号化済み映像データを含むディスクを生産してよい。したがって、コンピュータ可読媒体16は、様々な例において、様々な形態の1つ又は複数のコンピュータ可読媒体を含むものと理解されてよい。
【0055】
送信先デバイス14の入力インタフェース28は、コンピュータ可読媒体16から情報を受信する。コンピュータ可読媒体16の情報は、映像符号化器20により規定され、映像復号器30によっても用いられ、特性並びに/又はブロック及び他のコーディングされたユニット(例えば、ピクチャのグループ(GOP))の処理を説明する構文要素を含む、構文情報を含んでよい。表示デバイス32は、復号済み映像データをユーザに表示し、ブラウン管(CRT)、液晶ディスプレイ(LCD)、プラズマディスプレイ、有機発光ダイオード(OLED)ディスプレイ、又は別のタイプの表示デバイスなどの様々な表示デバイスのうちのいずれかを有してよい。
【0056】
映像符号化器20及び映像復号器30は、現在開発中の高効率映像コーディング(HEVC)規格などの映像コーディング規格に従って動作してよく、またHEVCのテストモデル(HM)に適合してよい。あるいは、映像符号化器20及び映像復号器30は、国際電気通信連合の電気通信標準化部門(ITU‐T)のH.264規格などの、あるいは動画像符号化専門家グループ(MPEG)-4パート10、高度映像コーディング(AVC)H.265/HEVCと呼ばれる規格、又はそのような規格の拡張版などの他の専用規格又は業界規格に従って動作してよい。しかしながら、本開示の技法は、任意の特定のコーディング規格に限定されない。映像コーディング規格の他の例には、MPEG-2及びITU‐TのH.263が含まれる。図1には示していないが、いくつかの態様では、映像符号化器20及び映像復号器30はそれぞれ、音声符号化器及び復号器と一体化されてよく、適切なマルチプレクサ-デマルチプレクサ(MUX-DEMUX)ユニット、又は他のハードウェア及びソフトウェアを含み、共通のデータストリーム又は別個のデータストリーム内の音声及び映像の両方の符号化を処理してよい。妥当な場合、MUX-DEMUXユニットは、ITUのH.223マルチプレクサプロトコル、又はユーザデータグラムプロトコル(UDP)などの他のプロトコルに適合してよい。
【0057】
映像符号化器20及び映像復号器30はそれぞれ、1つ又は複数のマイクロプロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)、ディスクリートロジック、ソフトウェア、ハードウェア、ファームウェア、又はこれらの任意の組み合わせなどの様々な好適な符号化器回路のうちのいずれかとして実装されてよい。これらの技法が部分的にソフトウェアで実装される場合、デバイスが、ソフトウェアの命令を好適な非一時的コンピュータ可読媒体に格納し、1つ又は複数のプロセッサを用いるハードウェアで命令を実行して、本開示の技法を実行してよい。映像符号化器20及び映像復号器30のそれぞれは、1つ又は複数の符号化器又は復号器に含まれてよく、そのいずれも一体型符号化器/復号器(コーデック)の一部としてそれぞれのデバイスに統合されてよい。映像符号化器20及び/又は映像復号器30を含むデバイスが、集積回路、マイクロプロセッサ、及び/又は携帯電話などの無線通信デバイスを含んでよい。
【0058】
図2は、映像コーディング技法を実装し得る映像符号化器20の一例を示すブロック図である。映像符号化器20は、映像スライス内の映像ブロックのイントラコーディング及びインターコーディングを実行してよい。イントラコーディングは、空間予測に依拠して、所与の映像フレーム又はピクチャ内の映像の空間冗長性を低減又は除去する。インターコーディングは、時間予測に依拠して、映像シーケンスの隣接するフレーム又はピクチャ内の映像の時間冗長性を低減又は除去する。イントラモード(Iモード)は、いくつかの空間ベースのコーディングモードのうちのいずれかを指してよい。片方向(片予測とも呼ばれる)予測(Pモード)又は双予測(双予測とも呼ばれる)(Bモード)などのインターモードは、いくつかの時間ベースのコーディングモードのうちのいずれかを指してよい。
【0059】
図2に示すように、映像符号化器20は、符号化される映像フレーム内の現在の映像ブロックを受信する。図2の例において、映像符号化器20は、モード選択ユニット40と、参照フレームメモリ64と、加算器50と、変換処理ユニット52と、量子化ユニット54と、エントロピーコーディングユニット56とを含む。次にモード選択ユニット40は、動き補償ユニット44と、動き推定ユニット42と、イントラ予測(イントラ予測とも呼ばれる)ユニット46と、分割ユニット48とを含む。映像符号化器20はまた、映像ブロック再構成のために、逆量子化ユニット58と、逆変換ユニット60と、加算器62とを含む。非ブロック化フィルタ(図2には示されていない)が、ブロック境界をフィルタリングして、再構成済み映像から濃淡のむらがあるアーチファクトを除去するために含まれてもよい。必要であれば、非ブロック化フィルタは通常、加算器62の出力をフィルタリングすることになるであろう。追加のフィルタ(ループ内又はループ後)も、非ブロック化フィルタに加えて用いられてよい。そのようなフィルタは簡略して表現するために示されていないが、必要であれば、(ループ内フィルタとして)加算器50の出力をフィルタリングしてよい。
【0060】
符号化処理の際に、映像符号化器20は符号化される映像フレーム又はスライスを受信する。フレーム又はスライスは、複数の映像ブロックに分割されてよい。動き推定ユニット42及び動き補償ユニット44は、受信した映像ブロックのインター予測コーディングを、1つ又は複数の参照フレーム内の1つ又は複数のブロックと比較することで行い、時間予測を提供する。イントラ予測ユニット46は代替的に、受信した映像ブロックのイントラ予測コーディングを、コーディングされるべきブロックと同じフレーム又はスライス内の1つ又は複数の隣接ブロックと比較することで行い、空間予測を提供してよい。映像符号化器20は、複数のコーディングパスを実行して、例えば、映像データのブロックごとに適切なコーディングモードを選択してよい。
【0061】
さらに、分割ユニット48は、以前のコーディングパスにおける以前の分割方式の評価に基づいて、映像データの各ブロックを複数のサブブロックに分割してよい。例えば、分割ユニット48は最初に、フレーム又はスライスを最大コーディングユニット(LCU)に分割し、レート歪み解析(例えばレート歪み最適化)に基づいて、LCUのそれぞれを複数のサブコーディングユニット(サブCU)に分割してよい。モード選択ユニット40はさらに、LCUを複数のサブCUに分割することを示すクアッドツリーデータ構造体を生み出してもよい。クアッドツリーのリーフノードCUは、1つ又は複数の予測ユニット(PU)及び1つ又は複数の変換ユニット(TU)を含んでよい。
【0062】
本開示は、HEVCの文脈においてCU、PU、若しくはTUのうちのいずれか、又は他の規格の文脈において同様のデータ構造体(例えば、H.264/AVCにおける、そのマクロブロック及びサブブロック)を指すのに「ブロック」という用語を用いる。CUは、コーディングノード、コーディングノードに関連付けられたPU及びTUを含む。CUのサイズはコーディングノードのサイズに対応し、形状は正方形である。CUのサイズは、8×8画素から最大64×64画素以上のツリーブロックのサイズまでの範囲に及んでよい。各CUは、1つ又は複数のPU及び1つ又は複数のTUを含んでよい。CUに関連付けられた構文データが、例えば、CUを1つ又は複数のPUに分割することを記述してよい。分割モードは、CUがスキップ又はダイレクトモードで符号化されるのか、イントラ予測モードで符号化されるのか、又はインター予測(インター予測とも呼ばれる)モードで符号化されるのかで、異なってよい。PUは、非正方形の形状になるように分割されてよい。CUに関連付けられた構文データは、例えば、クアッドツリーに従ってCUを1つ又は複数のTUに分割することを記述してもよい。TUは、正方形又は非正方形(例えば、矩形)の形状になり得る。
【0063】
モード選択ユニット40は、コーディングモードのうちの1つ(イントラ符号化モード又はインター符号化モード)を、例えばエラー結果に基づいて選択してよく、結果として得られるイントラコーディングされたブロック又はインターコーディングされたブロックを加算器50に提供して残差ブロックデータを生成し、加算器62に提供して参照フレームとして用いられる符号化済みブロックを再構成する。モード選択ユニット40はまた、動きベクトル、イントラモードインジケータ、分割情報、及び他のそのような構文情報などの構文要素をエントロピーコーディングユニット56に提供する。
【0064】
動き推定ユニット42及び動き補償ユニット44は、高度に統合されてよいが、概念的な説明のために別々に示されている。動き推定ユニット42により行われる動き推定は、映像ブロックの動きを推定する動きベクトルを生成する処理である。動きベクトルは、例えば、参照フレーム(又は他のコーディングされたユニット)内の予測ブロックに対する、現在の映像フレーム又はピクチャ内の映像ブロックのPUの変位を、現在のブロックが現在のフレーム(又は他のコーディングされたユニット)内でコーディングされることと比較して示してよい。予測ブロックは、画素差分の点で、コーディングされるブロックによく一致することが分かっているブロックであり、画素差分は、差分絶対値和(SAD)、差分二乗和(SSD)、又は他の差分メトリクスによって決定されてよい。いくつかの例において、映像符号化器20は、参照フレームメモリ64に格納された参照ピクチャのサブ整数画素位置の値を計算してよい。例えば、映像符号化器20は、参照ピクチャの1/4画素位置、1/8画素位置、又は他の端数画素位置の値を補間してよい。したがって、動き推定ユニット42は、完全画素位置及び端数画素位置に対して動き検索を実行し、端数画素精度を有する動きベクトルを出力してよい。
【0065】
動き推定ユニット42は、インターコーディングされたスライス内の映像ブロックのPUに対する動きベクトルを、PUの位置と参照ピクチャの予測ブロックの位置とを比較することで計算する。参照ピクチャは、第1の参照ピクチャリスト(リスト0)又は第2の参照ピクチャリスト(リスト1)から選択されてよく、これらのリストのそれぞれは、参照フレームメモリ64に格納された1つ又は複数の参照ピクチャを識別する。動き推定ユニット42は、計算された動きベクトルをエントロピー符号化ユニット56及び動き補償ユニット44に送信する。
【0066】
動き補償ユニット44により行われる動き補償は、動き推定ユニット42により決定される動きベクトルに基づいて予測ブロックを取得する又は生成することを必要とし得る。ここでも、動き推定ユニット42及び動き補償ユニット44は、いくつかの例において機能的に統合されてよい。動き補償ユニット44は、現在の映像ブロックのPUに対する動きベクトルを受信すると、動きベクトルが複数の参照ピクチャリストのうちの1つにおいて示す予測ブロックの位置を特定してよい。加算器50は、後述するように、コーディングされる現在の映像ブロックの画素値から予測ブロックの画素値を減算することで残差映像ブロックを形成し、画素差分値を形成する。一般的に、動き推定ユニット42は、輝度成分に対して動き推定を行い、動き補償ユニット44は輝度成分に基づいて計算された動きベクトルをクロマ成分及び輝度成分の両方に用いる。モード選択ユニット40も、映像復号器30が映像スライスの映像ブロックを復号する際に用いるために、映像ブロック及び映像スライスと関連付けられた構文要素を生成してよい。
【0067】
イントラ予測ユニット46は、上述したように、動き推定ユニット42及び動き補償ユニット44により行われるインター予測の代替として、現在のブロックをイントラ予測してよい。具体的には、イントラ予測ユニット46は、現在のブロックを符号化するのに用いるイントラ予測モードを決定してよい。いくつかの例において、イントラ予測ユニット46は、例えば別個の符号化パスで、様々なイントラ予測モードを用いて現在のブロックを符号化してよく、イントラ予測ユニット46(又はいくつかの例ではモード選択ユニット40)は、テストしたモードから、用いるのに適切なイントラ予測モードを選択してよい。
【0068】
例えば、イントラ予測ユニット46は、様々なテストされたイントラ予測モードに対して、レート歪み解析を用いてレート歪み値を計算し、テストしたモードの中で最良のレート歪み特性を有するイントラ予測モードを選択してよい。レート歪み解析は概して、符号化済みブロックと、符号化済みブロックを生み出すために符号化された元の符号化前のブロックとの間の歪み(又はエラー)の量、及び符号化済みブロックを生み出すのに用いられるビットレート(すなわち、ビット数)を決定する。イントラ予測ユニット46は、様々な符号化済みブロックの歪み及びレートから比を計算し、どのイントラ予測モードが該当ブロックに対して最良のレート歪み値を示すかを判定してよい。
【0069】
さらに、イントラ予測ユニット46は、深度モデリングモード(DMM)を用いて、深度マップの深度ブロックをコーディングするように構成されてよい。モード選択ユニット40は、利用可能なDMMモードが、イントラ予測モード及び(例えば、レート歪み最適化(RDO)を用いる)その他のDMMモードより良好なコーディング結果を生み出すかどうかを判定してよい。深度マップに対応するテクスチャ画像のデータが、参照フレームメモリ64に格納されてよい。動き推定ユニット42及び動き補償ユニット44は、深度マップの深度ブロックをインター予測するように構成されてもよい。
【0070】
イントラ予測ユニット46は、あるブロックに対してイントラ予測モード(例えば、従来のイントラ予測モード又は複数のDMMモードのうちの1つ)を選択した後に、当該ブロックに対して選択したイントラ予測モードを示す情報をエントロピーコーディングユニット56に供給してよい。エントロピーコーディングユニット56は、選択されたイントラ予測モードを示す情報を符号化してよい。映像符号化器20は、伝送されるビットストリームにコンフィギュレーションデータを含んでよく、コンフィギュレーションデータには、複数のイントラ予測モードインデックステーブル及び複数の修正されたイントラ予測モードインデックステーブル(符号語マッピングテーブルとも呼ばれる)、様々なブロックの符号化コンテキストの定義、並びにコンテキストごとに用いられる最も可能性の高いイントラ予測モード、イントラ予測モードインデックステーブル、及び修正されたイントラ予測モードインデックステーブルのインジケーションを含んでよい。
【0071】
映像符号化器20は、モード選択ユニット40からの予測データをコーディングされる元の映像ブロックから減算することで残差映像ブロックを形成する。加算器50は、この減算処理を行う成分又は複数の成分を表す。
【0072】
変換処理ユニット52は、離散コサイン変換(DCT)又は概念的に同様の変換などの変換を残差ブロックに適用して、残差変換係数値を含む映像ブロックを生成する。変換処理ユニット52は、概念的にDCTと同様の他の変換を実行してよい。ウェーブレット変換、整数変換、サブバンド変換、又は他のタイプの変換も用いられる可能性がある。
【0073】
変換処理ユニット52は、残差ブロックに変換を適用して、残差変換係数のブロックを生成する。この変換は、画素値ドメインからの残差情報を、周波数ドメインなどの変換ドメインに変換してよい。変換処理ユニット52は、結果として得られる変換係数を量子化ユニット54に送信してよい。量子化ユニット54は、この変換係数を量子化して、ビットレートをさらに低減する。量子化処理は、これらの係数の一部又は全てと関連付けられたビット深度を低減してよい。量子化の程度は、量子化パラメータを調整することで修正されてよい。いくつかの例において、量子化ユニット54は次に、量子化変換係数を含む行列のスキャンを実行してよい。あるいは、エントロピー符号化ユニット56がスキャンを実行してもよい。
【0074】
量子化に続いて、エントロピーコーディングユニット56は、量子化変換係数をエントロピーコーディングする。例えば、エントロピーコーディングユニット56は、コンテキスト適応型変数長コーディング(CAVLC)、コンテキスト適応型2値算術コーディング(CABAC)、構文ベースのコンテキスト適応型2値算術コーディング(SBAC)、確率区間区分エントロピー(PIPE)コーディング、又は別のエントロピーコーディング技法を実行してよい。コンテキストベースのエントロピーコーディングの場合、コンテキストは隣接ブロックに基づいてよい。エントロピーコーディングユニット56によるエントロピーコーディングに続いて、符号化済みビットストリームは、別のデバイス(例えば、映像復号器30)に伝送されても、後の伝送又は検索のためにアーカイブされてもよい。
【0075】
逆量子化ユニット58及び逆変換ユニット60が逆量子化及び逆変換にそれぞれ適用され、例えば、参照ブロックとして後で用いるために、画素ドメインにおいて残差ブロックを再構成する。動き補償ユニット44は、残差ブロックを参照フレームメモリ64の複数のフレームのうちの1つの予測ブロックに追加することにより、参照ブロックを計算してよい。動き補償ユニット44はまた、1つ又は複数の補間フィルタを再構成済み残差ブロックに適用し、動き推定で使用するサブ整数画素値を計算してよい。加算器62は、動き補償ユニット44により生成された再構成済み残差ブロックを動き補償予測ブロックに追加して、参照フレームメモリ64に記憶するために再構成済み映像ブロックを生成する。再構成済み映像ブロックは、次の映像フレーム内のブロックをインターコーディングするために、動き推定ユニット42及び動き補償ユニット44によって参照ブロックとして用いられてよい。
【0076】
図3は、映像コーディング技法を実装し得る映像復号器30の一例を示すブロック図である。図3の例において、映像復号器30は、エントロピー復号ユニット70と、動き補償ユニット72と、イントラ予測ユニット74と、逆量子化ユニット76と、逆変換ユニット78と、参照フレームメモリ82と、加算器80とを含む。映像復号器30は、いくつかの例において、映像符号化器20(図2)に関して説明した符号化パスに概して相補的な復号パスを実行してよい。動き補償ユニット72は、エントロピー復号ユニット70から受信する動きベクトルに基づいて予測データを生成してよく、イントラ予測ユニット74は、エントロピー復号ユニット70から受信するイントラ予測モードインジケータに基づいて予測データを生成してよい。
【0077】
復号処理の際に、映像復号器30は、符号化済み映像スライスの映像ブロック、及び映像符号化器20からの関連構文要素を表す符号化済み映像ビットストリームを受信する。映像復号器30のエントロピー復号ユニット70は、ビットストリームをエントロピー復号して、量子化された係数、動きベクトル又はイントラ予測モードインジケータ、及び他の構文要素を生成する。エントロピー復号ユニット70は、動きベクトル及び他の構文要素を動き補償ユニット72に転送する。映像復号器30は、映像スライスレベル及び/又は映像ブロックレベルで構文要素を受信してよい。
【0078】
映像スライスがイントラコーディングされた(I)スライスとしてコーディングされる場合、イントラ予測ユニット74は、信号で伝えられたイントラ予測モードと現在のフレーム又はピクチャのこれまでに復号されたブロックからのデータとに基づいて、現在の画像スライスの映像ブロックに対する予測データを生成してよい。映像フレームがインターコーディングされた(例えば、B、P、又はGPB)スライスとしてコーディングされる場合、動き補償ユニット72は、エントロピー復号ユニット70から受信する動きベクトルと他の構文要素とに基づいて、現在の画像スライスの映像ブロックに対する予測ブロックを生成する。予測ブロックは、複数の参照ピクチャリストのうちの1つにある複数の参照ピクチャのうちの1つから生成されてよい。映像復号器30は、参照フレームメモリ82に格納された参照ピクチャに基づき、デフォルトの構成技法を用いて、参照フレームリスト(リスト0及びリスト1)を構成してよい。
【0079】
動き補償ユニット72は、動きベクトル及び他の構文要素を解析することで、現在の画像スライスの映像ブロックに対する予測情報を決定し、当該予測情報を用いて、復号された現在の映像ブロックに対する予測ブロックを生成する。例えば、動き補償ユニット72は、受信した構文要素の一部を用いて、映像スライスの映像ブロックをコーディングするのに用いられる予測モード(例えば、イントラ予測又はインター予測)、インター予測スライスのタイプ(例えば、Bスライス、Pスライス、又はGPBスライス)、スライスの複数の参照ピクチャリストのうちの1つ又は複数に対する構成情報、スライスのインター符号化済み映像ブロックごとの動きベクトル、スライスのインターコーディングされた映像ブロックごとのインター予測ステータス、及び現在の画像スライスの映像ブロックを復号するための他の情報を決定する。
【0080】
動き補償ユニット72は、補間フィルタに基づいて補間も実行してよい。動き補償ユニット72は映像ブロックの符号化の際に映像符号化器20により用いられる補間フィルタを用いて、参照ブロックのサブ整数画素に対する補間値を計算してよい。この場合、動き補償ユニット72は、受信した構文要素から映像符号化器20により用いられる補間フィルタを決定し、当該補間フィルタを用いて予測ブロックを生成してよい。
【0081】
深度マップに対応するテクスチャ画像のデータが、参照フレームメモリ82に格納されてよい。動き補償ユニット72は、深度マップの深度ブロックをインター予測するように構成されてもよい。
【0082】
上記を念頭に置いて、本開示の基本概念の一部が説明される。
【0083】
PCC Cat2では、上述した第1の問題を解決するために、1つの時間インスタンス(例えば、1つのアクセスユニット)に関連するデータユニットは、復号順に連続してビットストリームに配置されるはずである。これらのデータユニットが復号順に連続してビットストリームに配置されると、各データユニットのタイプを識別することで、各データユニットを適切な復号器コンポーネントにルーティングする識別が可能になる。この設計はまた、既存のビデオコーデックを活用して、動的な点群のジオメトリ情報及びテクスチャ情報を圧縮するという、PCC Cat2コーデックの根底にある重要な構想に違反するのを回避できるはずである。
【0084】
既存のビデオコーデックを活用し、例えば、例としてHEVCを挙げると、ジオメトリ情報及びテクスチャ情報を別々に圧縮し、同時に1つの自己完結型のPCC Cat2ビットストリームを有することができるために、以下の態様は次のように明確に指定されるはずである。すなわち、(1)PCC Cat2ビットストリームからのジオメトリ成分用の適合HEVCビットストリームの抽出/構成、(2)PCC Cat2ビットストリームからのテクスチャ成分用の適合HEVCビットストリームの抽出/構成、及び(3)ジオメトリ成分及びテクスチャ成分用に抽出された適合HEVCビットストリームのそれぞれの適合点(すなわち、プロファイル、階層、レベル)のシグナリング/インジケーションである。
【0085】
上述した問題を解決するために、且つ上述した制約を全て満たすために、本開示は、PCCの高レベルな構文に関する2つの代替的なセットの方法を提供する。
【0086】
第1セットの方法では、PCC Cat2のジオメトリ成分及びテクスチャ成分のコーディングに用いられ得る全てのビデオコーデックに対して、共通の高レベルな構文が存在する。このセットの方法は、次のように要約される。
【0087】
図4は、PCCと互換性のあるデータ構造体400を示す。データ構造体400は、符号化器により生成され且つ復号器により受信されるビットストリームの一部を表してよい。図示するように、データユニットヘッダ404(PCC NALユニットヘッダと呼ばれることがある)がデータユニット402(PCC NALユニットと呼ばれることがある)ごとに追加される。1つのデータユニット402と1つのデータユニットヘッダ404とが図4のデータ構造体400に示されているが、実際の応用では、任意の数のデータユニット402及びデータユニットヘッダ404がデータ構造体400に含まれてよい。さらに言えば、データ構造体400を含むビットストリームが一連のデータユニット402を含み、それぞれがデータユニットヘッダ404を含んでよい。
【0088】
データユニットヘッダ404は、例えば、1つ又は2つのバイトを含んでよい。一実施形態において、各データユニット402は、1つのPCC NALユニットとして形成される。データユニット402はペイロード406を含む。一実施形態において、データユニット406は、補足拡張情報(SEI)メッセージ、シーケンスパラメータセット、ピクチャパラメータセット、スライス情報なども含んでよい。
【0089】
一実施形態において、データユニット402のペイロード406は、HEVCユニットであってもAVC NALユニットであってもよい。一実施形態において、ペイロード406は、ジオメトリ成分又はテクスチャ成分のデータを含んでよい。一実施形態において、ジオメトリ成分は、点群フレームと関連付けられた直交座標のセットである。一実施形態において、テクスチャ成分は、点群フレームの輝度サンプル値のセットである。HEVCが用いられる場合、データユニット402は、ペイロード406としてHEVC NALユニットを含むPCC NALユニットと呼ばれることがある。AVCが用いられる場合、データユニット402は、ペイロード406としてAVC NALユニットを含むPCC NALユニットと呼ばれることがある。
【0090】
一実施形態において、データユニットヘッダ404(例えば、PCC NALユニットヘッダ)は、以下に要約されるように設計される。
【0091】
まず、データユニットヘッダ404はタイプインジケータを含む。タイプインジケータは、例えば、5ビットであってよい。タイプインジケータは、ペイロード406で搬送されるコンテンツのタイプを指定する。例えば、タイプインジケータは、ペイロード406がジオメトリ情報又はテクスチャ情報を含むことを指定してよい。
【0092】
一実施形態において、予約されたデータユニット(データユニット402と同様であるが、後で用いるために予約されている)の一部は、PCC Cat13のデータユニットに用いられてよい。したがって、本開示の構想は、PCC Cat13にも適用される。そのため、PCC Cat2とPCC Cat13とを1つのコーデック標準仕様書に統一することが可能である。
【0093】
上述したように、現在のビットストリームフォーマットは、例えば、新たなNALユニット又はPCC NALユニットの開始を信号で伝える開始コードパターンのエミュレーションを可能にする。開始コードパターンは、例えば、0x0003であってよい。現在のビットストリームフォーマットは開始コードパターンのエミュレーションを可能にするので、開始コードは意図せずに信号で伝えられることがある。本開示は、この課題を解決するために、PCC NALユニット構文及びセマンティクス(以下を参照)を提供する。本明細書に示されるPCC NALユニット構文及びセマンティクスによって、開始コードエミュレーションの防止がPCC NALユニットごとに、そのコンテンツに関係なく確実に行われる。したがって、1バイト又は2バイトのデータユニットヘッダ404の最後のバイト(例えば、1バイトであれば、データユニットヘッダそのもの)は、0x00に等しくなるのを禁じられている。
【0094】
さらに、グループオブフレームヘッダ408(グループオブフレームヘッダNALユニットとも呼ばれる)は、グループオブフレームヘッダパラメータを搬送するように設計される。さらに、グループオブフレームヘッダNALユニットは、例えば、それぞれのジオメトリビットストリーム又はテクスチャビットストリームのプロファイル及びレベルなどの、他の全体的な情報のシグナリングを含む。一実施形態において、プロファイルは、構文の指定サブセット又はコーディングツールのサブセットである。一実施形態において、レベルは、構文要素及び変数が用い得る値に対する制約の規定セットのである。一実施形態において、ビットストリームのプロファイルとレベルとの組み合わせは、ビットストリームの復号に必要な特定の復号能力を表す。さらに、プロファイル及びレベルが、補助情報及び占有マップの復号、並びに(ジオメトリ、テクスチャ、補助情報、及び占有マップの復号結果を利用する)点群再構成処理のためにも規定される場合、当該プロファイル及びレベルもグループオブフレームヘッダ408において信号で伝えられる。一実施形態において、PCC補助情報は、パッチ情報、及び(PCCコーディングされたビットストリームからの点群信号の再構成に用いられる)点局所再構成情報のような情報を指す。一実施形態において、PCC占有マップは、テクスチャ値及び他の属性がサンプリングされる対象物によって3D空間のどの部分が占有されるかに関する情報を意味する。
【0095】
以下の構文で示されるように、異なるタイプのデータユニット402(PCC NALユニットとも呼ばれる)の順序に関する制約は明確に指定される。さらに、(データユニット402、データユニットヘッダ404などのうちのいくつかを含み得る)アクセスユニット410の開始は明確に指定される。
【0096】
さらに、それぞれのジオメトリビットストリーム又はテクスチャビットストリームの抽出/構成用の処理は、後述する構文及び/又はセマンティクスに明確に指定される。
【0097】
第2セットの方法では、異なる全体的な構文が異なるビデオコーデックに用いられる。ジオメトリ及びテクスチャのコーディングにHEVCを用いるPCC Cat2は、HEVCに対する修正版として指定され、ジオメトリ及びテクスチャのコーディングにAVCを用いるPCC Cat2は、AVCに対する修正版として指定される。このセットの方法は、次のように要約される。
【0098】
ジオメトリ及びテクスチャのコーディングにHEVCを用いるPCC Cat2では、ジオメトリ及びテクスチャは3つの別個の層(例えば、ジオメトリ用にd0及びd1という2つの層、テクスチャ用に1つの層)とみなされる。SEIメッセージ又は新たなタイプのNALユニットが、占有マップ及び補助情報に用いられる。2つの新たなSEIメッセージ(1つは占有マップ用、もう1つは補助情報用)が指定される。別のSEIメッセージ(シーケンスレベル)が、グループオブフレームヘッダパラメータ及び他の全体的な情報を搬送するように指定される。このSEIメッセージは、第1セットの方法におけるグループオブフレームヘッダ408と同様である。
【0099】
ジオメトリ及びテクスチャのコーディングにAVCを用いるPCC Cat2では、ジオメトリ及びテクスチャは、3つの別個の層(例えば、ジオメトリ用にd0及びd1という2つの層、テクスチャ用に1つの層)とみなされる。SEIメッセージ又は新たなタイプのNALユニットが、占有マップ及び補助パッチ情報に用いられる。独立してコーディングされた非ベース層の抽出と、適合点のシグナリング(例えば、プロファイル及びレベル)とは、単一層ビットストリームとして指定される。2つの新たなタイプのSEIメッセージ(1つは占有マップ用、もう1つは補助情報用)が指定される。別のSEIメッセージ(シーケンスレベル)が、グループオブフレームヘッダパラメータ及び他の全体的な情報を搬送するように指定される。このSEIメッセージは、第1セットの方法におけるグループオブフレームヘッダ408と同様である。
【0100】
上述した第1セットの方法は、以下に開示する定義、略語、構文、及びセマンティクスに基づいて実現され得る。具体的に言及されない態様は、最新のPCC Cat2のWDに見られるものと同じである。
【0101】
以下の定義が適用される。
【0102】
ビットストリーム:1つ又は複数のCPSを形成するコーディングされた点群フレーム及び関連データの表現を構成する一連のビットである。
【0103】
バイト:8ビットの配列であり、ビット値の配列として書き込まれる又は読み出される場合、配列内の左端及び右端のビットはそれぞれ、最上位ビット及び最下位ビットを表す。
【0104】
コーディングされたPCCシーケンス(CPS):復号順に、PCCイントラランダムアクセスピクチャ(IRAP)のAU、その後に続くPCC IRAP AUではないゼロ又はゼロより多くのPCC AUを含み、後続の全てのPCC AUまでを含むが、PCC IRAP AUである後続のPCC AUを何も含まない、PCC AUの配列である。
【0105】
復号順:構文要素が復号処理によって処理される順序である。
【0106】
復号処理:この仕様書(PCC Cat2のWDとも呼ばれる)に指定される、ビットストリームを読み出し、ビットストリームから復号点群フレームを抽出する処理である。
【0107】
グループオブフレームヘッダNALユニット:GOF_HEADERに等しいPccNalUnitTypeを有するPCC NALユニットである。
【0108】
PCC AU:指定された分類ルールに従って互いに関連付けられ、復号順に連続しており、1つの特定の表示時間に関連する全てのPCC NALユニットを含む、PCC NALユニットのセットである。
【0109】
PCC IRAP AU:グループオブフレームヘッダNALユニットを含むPCC AUである。
【0110】
PCC NALユニット:続くデータのタイプのインジケーションと、必要に応じてエミュレーション防止バイトが組み入れられたRBSPの形態で当該データを含むバイトとを含む構文構造である。
【0111】
ローバイトシーケンスペイロード(RBSP):PCC NALユニットにカプセル化され、空であるか、又はRBSP停止ビットと0に等しいゼロ又はゼロより多くの後続ビットとが後に続く構文要素を含むデータビット列(SODB)の形態を有する、整数個のバイトを含む構文構造である。
【0112】
ローバイトシーケンスペイロード(RBSP)停止ビット:RBSP内においてSODBの後に存在する1に等しいビットであり、RBSP内の端部の位置は、RBSP内の最後の非ゼロビットであるRBSP停止ビットをRBSPの端部から検索することにより識別することができる。
【0113】
SODB:RBSP内においてRBSP停止ビットの前に存在する構文要素を表す複数個のビットの配列であり、左端のビットは先頭の最上位ビットであるとみなされ、右端のビットは最後の最下位ビットであるとみなされる。
【0114】
構文要素:ビットストリームで表されるデータの要素である。
【0115】
構文構造:指定された順序でビットストリーム内に一緒に存在するゼロ又はゼロより多くの構文要素である。
【0116】
映像AU:特定のビデオコーデック当たりのアクセスユニットである。
【0117】
映像NALユニット:GEOMETRY_D0、GEOMETRY_D1、又はTEXTURE_NALUに等しいPccNalUnitTypeを有するPCC NALユニットである。
【0118】
以下の略語が適用される。
【0119】
AU:アクセスユニット
【0120】
CPS:コーディングされたPCCシーケンス
【0121】
IRAP:イントラランダムアクセスポイント
【0122】
NAL:ネットワーク抽象化層
【0123】
PCC:点群コーディング
【0124】
RBSP:ローバイトシーケンスペイロード
【0125】
SODB:データビット列
【0126】
以下では、構文、セマンティクス、及びサブビットストリーム抽出処理を提供する。その関連で、最新のPCC Cat2のWDの7.3項にある構文は、以下の事項に置き換えられる。
【0127】
PCC NALユニット構文が提供される。具体的には、一般的なPCC NALユニット構文は次の通りである。
【数1】
【0128】
PCC NALユニットヘッダ構文は次の通りである。
【数2】
【0129】
ローバイトシーケンスペイロード、トレーリングビット、バイトアライメント構文が提供される。具体的には、グループオブフレームRBSP構文は次の通りである。
【数3】
【0130】
補助情報フレームRBSP構文は次の通りである。
【数4】
【0131】
占有マップフレームRBSP構文は次の通りである。
【数5】
【0132】
HEVC仕様書の7.3.2.11項にあるRBSPトレーリングビット構文が適用される。同様に、HEVC仕様書の7.3.2.12項にあるバイトアライメント構文が適用される。PCCプロファイル及びレベルの構文は次の通りである。
【数6】
【0133】
最新のPCC Cat2のWDの7.4項にあるセマンティクスは、以下の事項及びその副項に置き換えられる。
【0134】
一般的に、構文構造及びこれらの構造内の構文要素に関連したセマンティクスが、この副項に指定される。構文要素のセマンティクスが表又は表のセットを用いて指定される場合、表に指定されていない任意の値は、他に特に指定がなければ、ビットストリームに存在しないものとする。
【0135】
PCC NALユニットのセマンティクスが説明される。一般的なPCC NALユニットのセマンティクスの場合、HEVC仕様書の7.4.2.1項にある一般的なNALユニットのセマンティクスが適用される。PCC NALユニットヘッダのセマンティクスは次の通りである。
【0136】
forbidden_zero_bitは、0に等しいものとする。
【0137】
pcc_nuh_reserved_zero_2bitsは、この仕様書のこのバージョンに適合するビットストリームでは、0に等しいものとする。pcc_nuh_reserved_zero_2bitsの他の値は、将来の使用のためにISO/IECにより予約されている。復号器は、pcc_nuh_reserved_zero_2bitsの値を無視するものとする。
【0138】
pcc_nal_unit_type_plus1-1は、変数PccNalUnitTypeの値を指定し、PccNalUnitTypeは、表1に指定されるように(下記を参照)、PCC NALユニットに含まれるRBSPデータ構造体のタイプを指定する。変数NalUnitTypeは、次のように指定される。
PccNalUnitType=pcc_category2_nal_unit_type_plus1-1 (7-1)
【0139】
セマンティクスが指定されていない、UNSPEC25~UNSPEC30(両端を含む)の範囲内にあるnal_unit_typeを有するPCC NALユニットは、本明細書に指定される復号処理に影響を与えないものとする。
【0140】
注1:UNSPEC25~UNSPEC30の範囲内にあるPCC NALユニットのタイプは、その用途により決定されるように用いられてよい。PccNalUnitTypeのこれらの値に対する復号処理は、本明細書では指定されない。異なる用途では、これらのPCC NALユニットタイプを異なる目的に用いるかもしれないので、これらのPccNalUnitTypeの値を用いてPCC NALユニットを生成する符号化器の設計と、これらのPccNalUnitTypeの値を用いてPCC NALユニットのコンテンツを解釈する復号器の設計とには、特別な注意を払う必要がある。本明細書は、これらの値のいかなる管理も定めていない。これらのPccNalUnitTypeの値は、使用法の「不一致」(例えば、同じPccNalUnitTypeの値に対するPCC NALユニットコンテンツの意味の異なる定義)が重要でない、又はあり得ない、又は管理されている(例えば、制御アプリケーション若しくはトランスポート仕様書で、又はビットストリームが配信される環境を制御することにより、規定されているか又は管理されている)という文脈で使用する場合に限り好適であるかもしれない。
【0141】
ビットストリームの復号ユニット内のデータ量を決定する以外の目的で、復号器は、PccNalUnitTypeの予約値を用いる全てのPCC NALユニットのコンテンツを無視する(ビットストリームから除去して棄却する)ものとする。
【0142】
注2:この要件により、この仕様書に対する互換性のある拡張版の将来の定義が可能となる。
【表1】
【0143】
注3:識別されたビデオコーデック(例えば、HEVC又はAVC)が、各CPSの第1のPCC AUに存在するグループオブフレームヘッダNALユニットに示されている。
【0144】
RBSP内のSODBのカプセル化(情報伝達)が提供される。その関連で、HEVC仕様書の7.4.2.3項が適用される。
【0145】
PCC NALユニット及びAU及びCPSへの関連性についての順序が提供される。一般的に、この項は、ビットストリーム内のPCC NALユニットの順序に関する制約を指定する。
【0146】
これらの制約に従うビットストリーム内のPCC NALユニットのいかなる順序も、本明細書ではPCC NALユニットの復号順と呼ばれる。映像NALユニットではないPCC NALユニットにおいては、7.3項の構文が構文要素の復号順を指定する。映像NALユニットにおいては、識別されたビデオコーデックの仕様書で指定される構文が、構文要素の復号順を指定する。復号器は、PCC NALユニット及びその構文要素を復号順に受信することができる。
【0147】
PCC NALユニット及びそのPCC AUへの関連性についての順序が提供される。
【0148】
この項は、PCC NALユニット及びそのPCC AUへの関連性についての順序を指定する。
【0149】
PCC AUは、グループオブフレームヘッダNALユニットの0又は1つ、1つのジオメトリd0映像AU、1つのジオメトリd1映像AU、1つの補助情報フレームNALユニット、1つの占有マップフレームNALユニット、及び1つのテクスチャ映像AUを、列挙されたこの順序で含む。
【0150】
NALユニットの映像AUへの関連性と、映像AU内のNALユニットの順序とは、識別されたビデオコーデック(例えば、HEVC又はAVC)の仕様書に指定されている。識別されたビデオコーデックは、各CPSの第1のPCC AUに存在するフレームヘッダNALユニットに示されている。
【0151】
各CPSの第1のPCC AUは、グループオブフレームヘッダNALユニットから始まり、各グループオブフレームヘッダNALユニットは、新たなPCC AUの開始を指定する。
【0152】
他のPCC AUは、ジオメトリd0映像AUの第1のNALユニットを含むPCC NALユニットから始まる。言い換えれば、ジオメトリd0映像AUの第1のNALユニットを含むPCC NALユニットは、グループオブフレームヘッダNALユニットが前に付かない場合、新たなPCC AUを開始する。
【0153】
PCC AU及びそのCPSへの関連性についての順序が提供される。
【0154】
本明細書に適合するビットストリームが、1つ又は複数のCPSで構成される。
【0155】
CPSは、1つ又は複数のPCC AUを含む。PCC NALユニット及びそのPCC AUへの関連性についての順序が、7.4.2.4.2項に説明されている。
【0156】
CPSの第1のPCC AUは、PCC IRAP AUである。
【0157】
ローバイトシーケンスペイロード、トレーリングビット、及びバイトアライメントセマンティックスが提供される。グループオブフレームヘッダRBSPセマンティクスは、次の通りである。
【0158】
identified_codecは、表2に示すジオメトリ成分及びテクスチャ成分のコーディングに用いられる識別されたビデオコーデックを指定する。
【表2】
【0159】
frame_widthは、ジオメトリ及びテクスチャ映像の、画素内のフレーム幅を示す。これは、occupancyResolutionの倍数であるものとする。
【0160】
frame_heightは、ジオメトリ及びテクスチャ映像の、画素内のフレーム高を示す。これは、occupancyResolutionの倍数であるものとする。
【0161】
occupancy_resolutionは、パッチがジオメトリ及びテクスチャ映像にパックされている、画素内の水平垂直解像度を示す。これは、occupancyPrecisionの偶数倍であるものとする。
【0162】
radius_to_smoothingは、平滑化用の隣接物を検出する半径を示す。radius_to_smoothingの値は、0~255(両端を含む)の範囲内にあるものとする。
【0163】
neighbor_count_smoothingは、平滑化に用いられる最大数の隣接物を示す。neighbor_count_smoothingの値は、0~255(両端を含む)の範囲内にあるものとする。
【0164】
radius2_boundary_detectionは、境界点検出用の半径を示す。radius2_boundary_detectionの値は、0~255(両端を含む)の範囲内にあるものとする。
【0165】
threshold_smoothingは、平滑化閾値を示す。threshold_smoothingの値は、0~255(両端を含む)の範囲内にあるものとする。
【0166】
lossless_geometryは、可逆ジオメトリコーディングを示す。1に等しいlossless_geometryの値は、点群ジオメトリ情報が可逆的にコーディングされていることを示す。0に等しいlossless_geometryの値は、点群ジオメトリ情報が不可逆方式でコーディングされていることを示す。
【0167】
lossless_textureは、可逆的なテクスチャ符号化を示す。1に等しいlossless_textureの値は、点群テクスチャ情報が可逆的にコーディングされていることを示す。0に等しいlossless_textureの値は、点群テクスチャ情報が不可逆方式でコーディングされていることを示す。
【0168】
no_attributesは、属性がジオメトリデータと共にコーディングされているかどうかを示す。1に等しいno_attributesの値は、コーディングされた点群ビットストリームがいかなる属性情報も含まないことを示す。0に等しいno_attributesの値は、コーディングされた点群ビットストリームが属性情報を含んでいることを示す。
【0169】
lossless_geometry_444は、ジオメトリフレームに、4:2:0の映像フォーマットを用いるのか、又は4:4:4の映像フォーマットを用いるのかを示す。1に等しいlossless_geometry_444の値は、ジオメトリ映像が4:4:4フォーマットでコーディングされていることを示す。0に等しいlossless_geometry_444の値は、ジオメトリ映像が4:2:0フォーマットでコーディングされていることを示す。
【0170】
absolute_d1_codingは、投影面に最も近い層以外のジオメトリ層がどのようにコーディングされているかを示す。1に等しいabsolute_d1_codingは、投影面に最も近い層以外のジオメトリ層用に、実際のジオメトリ値がコーディングされていることを示す。0に等しいabsolute_d1_codingは、投影面に最も近い層以外のジオメトリ層が別個にコーディングされていることを示す。
【0171】
bin_arithmetic_codingは、2値算術コーディングが用いられているかどうかを示す。1に等しいbin_arithmetic_codingの値は、全ての構文要素に2値算術コーディングが用いられていることを示す。0に等しいbin_arithmetic_codingの値は、一部の構文要素に非2値算術コーディングが用いられていることを示す。
【0172】
0に等しいgof_header_extension_flagは、グループオブフレームヘッダRBSP構文構造にgof_header_extension_data_flag構文要素が何も存在しないことを指定する。1に等しいgof_header_extension_flagは、グループオブフレームヘッダRBSP構文構造に存在するgof_header_extension_data_flag構文要素があることを指定する。復号器は、グループオブフレームヘッダNALユニット内のgof_header_extension_flagの値1に続く全てのデータを無視するものとする。
【0173】
gof_header_extension_data_flagは、任意の値を有してよい。その存在及び値は、復号器の適合性に影響を与えない。復号器は、全てのgof_header_extension_data_flag構文要素を無視するものとする。
【0174】
補助情報フレームRBSPセマンティクスが提供される。
【0175】
patch_countは、ジオメトリ及びテクスチャ映像に含まれるパッチの数である。これは、0より大きいものとする。
【0176】
occupancy_precisionは、占有マップ精度の、画素内の水平垂直解像度である。これは、占有が信号で伝えられるサブブロックサイズに対応する。占有マップの可逆コーディングを実現するために、これはサイズ1に設定されるはずである。
【0177】
max_candidate_countは、パッチ候補リスト内の最大数の候補を指定する。
【0178】
bit_count_u0は、patch_u0の固定長コーディングのビット数を指定する。
【0179】
bit_count_v0は、patch_v0の固定長コーディングのビット数を指定する。
【0180】
bit_count_u1は、patch_u1の固定長コーディングのビット数を指定する。
【0181】
bit_count_v1は、patch_v1の固定長コーディングのビット数を指定する。
【0182】
bit_count_d1は、patch_d1の固定長コーディングのビット数を指定する。
【0183】
occupancy_aux_stream_sizeは、パッチ情報及び占有マップをコーディングするのに用いられるバイト数である。
【0184】
以下の構文要素は、パッチごとに一度指定される。
【0185】
patch_u0は、パッチ境界ボックスのサイズ[occupancy_resolution]×[occupancy_resolution]の左上隅にあるサブブロックのx座標を指定する。patch_u0の値は、0~[frame_width/occupancy_resolution-1](両端を含む)の範囲内にあるものとする。
【0186】
patch_v0は、パッチ境界ボックスのサイズ[occupancy_resolution]×[occupancy_resolution]の左上隅にあるサブブロックのy座標を指定する。patch_v0の値は、0~[frame_height/occupancy_resolution-1](両端を含む)の範囲内にあるものとする。
【0187】
patch_u1は、パッチ点の3D境界ボックスの最小x座標を指定する。patch_u1の値は、0~[frame_width-1](両端を含む)の範囲内にあるものとする。
【0188】
patch_v1は、パッチ点の3D境界ボックスの最小y座標である。patch_v1の値は、0~[frameHeight-1](両端を含む)の範囲内にあるものとする。
【0189】
patch_d1は、パッチの最小深度を指定する。patch_d1の値は、0~<255?>(両端を含む)の範囲内にあるものとする。
【0190】
delta_size_u0は、現在のパッチと以前のパッチとのパッチ幅の差異である。delta_size_u0の値は、<-65536?>~<65535?>(両端を含む)の範囲内にあるものとする。
【0191】
delta_size_v0は、現在のパッチと以前のパッチとのパッチ高の差異である。delta_size_v0の値は、<-65536?>~<65535?>(両端を含む)の範囲内にあるものとする。
【0192】
normal_axisは、面投影インデックスを指定する。normal_axisの値は、0~2(両端を含む)の範囲内にあるものとする。0、1、及び2のnormalAxis値はそれぞれ、X、Y、及びZの投影軸に対応する。
【0193】
以下の構文要素は、ブロックごとに一度指定される。
【0194】
candidate_indexは、パッチ候補リスト内にあるインデックスである。candidate_indexの値は、0~max_candidate_count(両端を含む)の範囲内にあるものとする。
【0195】
patch_indexは、フレームに関連するサイズの降順でソートされたパッチリストに対するインデックスである。
【0196】
グループオブフレーム占有マップセマンティクスが提供される。
【0197】
以下の構文要素は、空でないブロックに提供される。
【0198】
is_fullは、サイズ[occupancy_resolution]×[occupancy_resolution]のブロックの現在の占有ブロックが満杯であるかどうかを指定する。1に等しいis_fullは、現在のブロックが満杯であることを指定する。0に等しいis_fullは、現在の占有ブロックが満杯ではないことを指定する。
【0199】
best_traversal_order_indexは、現在の[occupancy_resolution]×[occupancy_resolution]のブロックのサイズ[occupancy_precision]×[occupancy_precision]のサブブロックに対するスキャン順序を指定する。best_traversal_order_indexの値は、0~4(両端を含む)の範囲内にあるものとする。
【0200】
run_count_prefixは、変数runCountMinusTwoの導出に用いられる。
【0201】
run_count_suffixは、変数runCountMinusTwoの導出に用いられる。run_count_suffixの値は、存在しない場合、0に等しいと推定される。
【0202】
特定のブロックに対するblockToPatchの値が0に等しくない且つ当該ブロックが満杯ではない場合、runCountMinusTwo+2は、あるブロックに対して信号で伝える実行回数を表す。runCountMinusTwoの値は、0~([occupancy_resolution]×[occupancy_resolution]-1)(両端を含む)の範囲内にあるものとする。
【0203】
runCountMinusTwoは次のように導出される。
runCountMinusTwo=(1<<run_count_prefix)-1+run_count_suffix (7-85)
【0204】
占有は、([occupancyPrecision]×[occupancyPrecision]画素の)第1のサブブロックに対する占有値を指定する。0に等しい占有は、第1のサブブロックが空であることを指定する。1に等しい占有は、第1のサブブロックが占有されていることを指定する。
【0205】
run_length_idxは、実行長のインジケーションである。runLengthIdxの値は、0~14(両端を含む)の範囲内にあるものとする。
【0206】
変数runLengthは、表3を用いて、run_length_idxから導出される。
【表3】
【0207】
注:占有マップは、ジオメトリ及びテクスチャ映像の両方により共有される。
【0208】
HEVC仕様書の7.4.3.11項にあるRBSPトレーリングビットセマンティクスが適用される。HEVC仕様書の7.4.3.12項にあるバイトアライメントセマンティックスも適用される。PCCプロファイル及びレベルのセマンティクスは次の通りである。
【0209】
pcc_profile_idcは、付録Aに指定するように、CPSが適合するプロファイルを示す。ビットストリームは、付録Aに指定されるもの以外のpcc_profile_idcの値を含まないものとする。pcc_profile_idcの他の値は、ISO/IECによる将来の使用のために予約されている。
【0210】
pcc_pl_reserved_zero_19bitsは、この仕様書のこのバージョンに適合するビットストリームでは、0に等しいものとする。pcc_pl_reserved_zero_19bitsの他の値は、ISO/IECによる将来の使用のために予約されている。復号器は、pcc_pl_reserved_zero_19bitsの値を無視するものとする。
【0211】
pcc_level_idcは、付録Aに指定するように、CPSが適合するレベルを示す。ビットストリームは、付録Aに指定されるもの以外のpcc_level_idcの値を含まないものとする。pcc_level_idcの他の値は、ISO/IECによる将来の使用のために予約されている。
【0212】
10項に指定されるように抽出されるジオメトリHEVCビットストリームが適合するHEVC復号器により復号される場合のアクティブSPSにおいて、hevc_ptl_12bytes_geometryは、general_profile_idcからgeneral_level_idcまで(両端を含む)の12バイトの値に等しいものとする。
【0213】
10項に指定されるように抽出されるテクスチャHEVCビットストリームが適合するHEVC復号器により復号される場合のアクティブSPSにおいて、hevc_ptl_12bytes_textureは、general_profile_idcからgeneral_level_idcまで(両端を含む)の12バイトの値に等しいものとする。
【0214】
10項に指定されるように抽出されるジオメトリAVCビットストリームが適合するAVC復号器により復号される場合のアクティブSPSにおいて、avc_pl_3ytes_geometryは、profile_idcからlevel_idcまで(両端を含む)の3バイトの値に等しいものとする。
【0215】
10項に指定されるように抽出されるテクスチャAVCビットストリームが適合するAVC復号器により復号される場合のアクティブSPSにおいて、avc_pl_3ytes_textureは、profile_idcからlevel_idcまで(両端を含む)の3バイトの値に等しいものとする。
【0216】
最新のPCC Cat2のWDの104項におけるサブビットストリーム抽出処理は、以下のものに置き換えられる。サブビットストリーム抽出処理では、入力が、ビットストリーム、及びジオメトリd0、ジオメトリd1、又はテクスチャ成分の対象映像成分インジケーションである。この処理の出力は、サブビットストリームである。
【0217】
一実施形態において、適合するPCCビットストリームと対象映像成分インジケーションの任意の値とを有する、この項で指定される処理の出力である、任意の出力サブビットストリームが、識別されたビデオコーデックごとに適合する映像ビットストリームであるものとするということは、入力ビットストリームのビットストリーム適合性の要件である。
【0218】
出力サブビットストリームは、以下の順序付き段階によって導出される。
【0219】
対象映像成分インジケーションの値に応じて、次のことが適用される。
【0220】
ジオメトリd0成分が示されている場合、GEOMETRY_D0に等しくないPccNalUnitTypeを有する全てのPCC NALユニットを除去する。
【0221】
そうではなく、ジオメトリd1成分が示されている場合、GEOMETRY_D1に等しくないPccNalUnitTypeを有する全てのPCC NALユニットを除去する。
【0222】
そうではない場合(テクスチャ成分が示されている場合)、TEXTURE_NALUに等しくないPccNalUnitTypeを有する全てのPCC NALユニットを除去する。
【0223】
PCC NALユニットごとに、最初のバイトを除去する。
【0224】
別の実施形態が、以下に提供される。
【0225】
上記に要約された第1セットの方法の別の実施形態において、PCC NALユニットヘッダ(例えば、図4のデータユニットヘッダ404)は、ジオメトリ成分及びテクスチャ成分のコーディングに用いられるコーデックがPCC NALユニットタイプから推定され得るように設計される。例えば、PCC NALユニットヘッダは、以下に要約するように設計される。
【0226】
PCC NALユニットヘッダには、PCC NALユニットペイロードで搬送されるコンテンツのタイプを指定するタイプインジケータ(例えば、7ビット)が存在する。タイプは、例えば、以下のことに従って決定される。
【0227】
0:ペイロードはHEVC NALユニットを含む。
【0228】
1:ペイロードはAVC NALユニットを含む。
【0229】
2~63:予約済み。
【0230】
64:グループオブフレームヘッダNALユニット。
【0231】
65:補助情報NALユニット。
【0232】
66:占有マップNALユニット。
【0233】
67~126:予約済み。
【0234】
0~63(両端を含む)の範囲内にあるPCC NALユニットタイプを有するPCC NALユニットは、映像NALユニットと呼ばれる。
【0235】
予約済みのPCC NALユニットタイプの一部をPCC Cat13のデータユニットに用いることが可能であり、したがって、PCC Cat2とPCC Cat13とを1つの標準仕様書に統合することができる。
【0236】
図5は、映像復号器(例えば、映像復号器30)により実装される点群コーディングの方法500の実施形態である。方法500は、点群コーディングに関連する前述の問題のうちの1つ又は複数を解決するために実行されてよい。
【0237】
ブロック502では、グループオブフレームヘッダ(例えば、グループオブフレームヘッダ408)を含む符号化済みビットストリーム(例えば、データ構造体400)が受信される。グループオブフレームヘッダは、符号化済みビットストリームのプロファイル及びレベルを指定する。
【0238】
ブロック504では、符号化済みビットストリームが復号される。復号されたビットストリームは、ユーザに対して表示デバイス上に表示する画像又は映像を生成するのに利用されてよい。
【0239】
一実施形態において、グループオブフレームヘッダは、グループオブフレームネットワーク抽象化層(NAL)ユニットである。一実施形態において、グループオブフレームヘッダは、グループオブフレームヘッダパラメータを搬送するように構成される。
【0240】
一実施形態において、占有情報、ジオメトリ情報、及び属性情報のうちの少なくとも1つが、グループオブフレームヘッダパラメータに含まれる。PCC信号の各点は、3D位置(すなわち、空間属性)を有することに加えて、色、反射率、面法線などの複数の他の属性にも関連付けられてよい。
【0241】
一実施形態において、グループオブフレームヘッダは、占有マップの補助情報を復号するためのプロファイル及びレベルを指定する。一実施形態において、グループオブフレームヘッダは、ジオメトリ情報、テクスチャ情報、補助情報、及び占有マップの復号結果を利用する点群再構成処理を指定する。
【0242】
図6は、映像符号化器(例えば、映像符号化器20)により実装される点群コーディングの方法600の実施形態である。方法600は、点群コーディングに関連する前述の問題のうちの1つ又は複数を解決するために実行されてよい。
【0243】
ブロック602では、グループオブフレームヘッダ(例えば、グループオブフレームヘッダ408)を含む符号化済みビットストリーム(例えば、データ構造体400)が生成される。グループオブフレームヘッダは、符号化済みビットストリームのプロファイル及びレベルを指定する。
【0244】
ブロック604では、符号化済みビットストリームは復号器(例えば、映像復号器30)に伝送される。符号化済みビットストリームは、復号器により受信されると、ユーザに対して表示デバイス上に表示する画像又は映像を生成するために復号されてよい。
【0245】
一実施形態において、グループオブフレームヘッダは、グループオブフレームネットワーク抽象化層(NAL)ユニットである。一実施形態において、グループオブフレームヘッダは、グループオブフレームヘッダパラメータを搬送するように構成される。
【0246】
一実施形態において、占有情報、ジオメトリ情報、及び属性情報のうちの少なくとも1つが、グループオブフレームヘッダパラメータに含まれる。PCC信号の各点は、3D位置(すなわち、空間属性)を有することに加えて、色、反射率、面法線などの複数の他の属性にも関連付けられてよい。
【0247】
一実施形態において、グループオブフレームヘッダは、占有マップの補助情報を復号するためのプロファイル及びレベルを指定する。一実施形態において、グループオブフレームヘッダは、ジオメトリ情報、テクスチャ情報、補助情報、及び占有マップの復号結果を利用する点群再構成処理を指定する。
【0248】
図7は、本開示の一実施形態による映像コーディングデバイス700(例えば、映像符号化器20、映像復号器30など)の概略図である。映像コーディングデバイス700は、本明細書に開示される方法及び処理を実装するのに好適である。映像コーディングデバイス700は、データを受信するための入口ポート710及び受信機ユニット(Rx)720と、データを処理するプロセッサ、論理ユニット、又は中央演算処理装置(CPU)730と、データを伝送するための送信機ユニット(Tx)740及び出口ポート750と、データを格納するためのメモリ760とを含む。映像コーディングデバイス700は、入口ポート710、受信機ユニット720、送信機ユニット740、及び出口ポート750に連結された、光信号又は電気信号の出口又は入口用の、光/電気(OE)変換コンポーネント及び電気/光(EO)変換コンポーネントも含んでよい。
【0249】
プロセッサ730は、ハードウェア及びソフトウェアにより実装される。プロセッサ730は、1つ又は複数のCPUチップ、コア(例えば、マルチコアプロセッサとして)、フィールドプログラマブルゲートアレイ(FPGA)、特定用途向け集積回路(ASIC)、及びデジタル信号プロセッサ(DSP)として実装されてよい。プロセッサ730は、入口ポート710、受信機ユニット720、送信機ユニット740、出口ポート750、及びメモリ760と通信する。プロセッサ730は、コーディングモジュール770を有する。符号化モジュール770は、上述の開示した実施形態を実装する。したがって、コーディングモジュール770を含むことにより、コーディングデバイス700の機能に著しい改善がもたらされ、映像コーディングデバイス700を異なる状態に変化させられる。あるいは、コーディングモジュール770は、メモリ760に格納され且つプロセッサ730により実行される命令として実装される。
【0250】
映像コーディングデバイス700は、ユーザとの間でデータを通信するための入力及び/又は出力(I/O)デバイス780も含んでよい。I/Oデバイス780は、映像データを表示するためのディスプレイ、音声データを出力するためのスピーカなどの出力デバイスを含んでよい。I/Oデバイス780は、キーボード、マウス、トラックボールなどの入力デバイス、及び/又はそのような出力デバイスとやり取りするための対応するインタフェースも含んでよい。
【0251】
メモリ760は、1つ又は複数のディスクドライブ、テープドライブ、及びソリッドステートドライブを含み、オーバーフローデータ記憶デバイスとしてプログラムを格納し、そのようなプログラムが実行のために選択されるとプログラム実行時に読み出される命令及びデータを格納するのに用いられてよい。メモリ760は、揮発性及び不揮発性であってよく、リードオンリメモリ(ROM)、ランダムアクセスメモリ(RAM)、三値連想メモリ(TCAM)、及びスタティックランダムアクセスメモリ(SRAM)であってよい。
【0252】
図8は、コーディング手段800の一実施形態の概略図である。この実施形態において、コーディング手段800は、映像コーディングデバイス802(例えば、映像符号化器20又は映像復号器30)に実装される。映像コーディングデバイス802は、受信手段801を含む。受信手段801は、符号化するピクチャを受信する、又は復号するビットストリームを受信するように構成される。映像コーディングデバイス802は、受信手段801に連結された伝送手段807を含む。伝送手段807は、ビットストリームを復号器に伝送する、又は復号済み画像を表示手段(例えば、複数のI/Oデバイス780のうちの1つ)に伝送するように構成される。
【0253】
映像コーディングデバイス802は、記憶手段803を含む。記憶手段803は、受信手段801又は伝送手段807のうちの少なくとも1つに連結される。記憶手段803は、命令を格納するように構成される。映像コーディングデバイス802は、処理手段805も含む。処理手段805は、記憶手段803に連結される。処理手段805は、記憶手段803に格納された命令を実行し、本明細書に開示された方法を行うように構成される。
【0254】
いくつかの実施形態が本開示に提供されているが、開示されたシステム及び方法は、本開示の精神又は範囲から逸脱することなく、多くの他の特定の形態で具現化されてよいことが理解されるであろう。本実施例は、限定的なものではなく例示的なものとみなされるべきであり、本明細書で提供された詳細に限定する意図はない。例えば、様々な要素又はコンポーネントは、別のシステムにおいて組み合わされても統合されてもよく、あるいは、特定の特徴が省略されても実装されなくてもよい。
【0255】
さらに、様々な実施形態において別個のもの又は独立したものとして説明され示された、技法、システム、サブシステム、及び方法は、本開示の範囲から逸脱することなく、他のシステム、コンポーネント、技法、又は方法と組み合わされても統合されてもよい。変更、置換、及び修正に関する他の実施例が当業者によって確認可能であり、これらの実施例が、本明細書に開示された精神及び範囲から逸脱することなく作られてよい。
(項目1)
映像復号器により実施される点群コーディング(PCC)の方法であって、
グループオブフレームヘッダを含む符号化済みビットストリームを受信する段階であって、上記グループオブフレームヘッダは、上記符号化済みビットストリームのプロファイル及びレベルを指定する、段階と、
上記符号化済みビットストリームを復号する段階と
を備える方法。
(項目2)
映像符号化器により実施される点群コーディング(PCC)の方法であって、
グループオブフレームヘッダを含む符号化済みビットストリームを生成する段階であって、上記グループオブフレームヘッダは上記符号化済みビットストリームのプロファイル及びレベルを指定する、段階と、
上記符号化済みビットストリームを復号器に伝送する段階と
を備える方法。
(項目3)
上記グループオブフレームヘッダは、グループオブフレームネットワーク抽象化層(NAL)ユニットである、項目1から2のいずれかに記載の方法。
(項目4)
上記グループオブフレームヘッダは、グループオブフレームヘッダパラメータを搬送するように構成される、項目1から3のいずれかに記載の方法。
(項目5)
占有情報、ジオメトリ情報、及び属性情報のうちの少なくとも1つが、上記グループオブフレームヘッダパラメータに含まれる、項目1から4のいずれかに記載の方法。
(項目6)
上記グループオブフレームヘッダは、占有マップの補助情報を復号するための上記プロファイル及び上記レベルを指定する、項目1から5のいずれかに記載の方法。
(項目7)
上記グループオブフレームヘッダは、ジオメトリ、テクスチャ、補助情報、及び占有マップの復号結果を利用する点群再構成処理を指定する、項目1から6のいずれかに記載の方法。
(項目8)
上記プロファイル又は上記レベルは、補助情報及び占有マップの成分を復号する能力を示す、項目1から6のいずれかに記載の方法。
(項目9)
上記プロファイル又は上記レベルは、点群再構成の能力を示す、項目1から6のいずれかに記載の方法。
(項目10)
上記プロファイルは構文の指定サブセットである、項目1から6のいずれかに記載の方法。
(項目11)
上記プロファイルは、コーディングツールの指定サブセットである、項目1から6のいずれかに記載の方法。
(項目12)
上記レベルは、構文要素及び変数が用い得る値に対する制約の規定セットである、項目1から6のいずれかに記載の方法。
(項目13)
上記符号化済みビットストリームの上記プロファイルと上記レベルとの組み合わせが、上記符号化済みビットストリームの復号に必要な特定の復号能力を表す、項目1から6のいずれかに記載の方法。
(項目14)
符号化するピクチャを受信する又は復号するビットストリームを受信するように構成された受信機と、
上記受信機に連結された送信機であって、上記送信機は、上記ビットストリームを復号器に伝送する又は復号済み画像をディスプレイに伝送するように構成される、送信機と、
上記受信機又は上記送信機のうちの少なくとも1つに連結されたメモリであって、上記メモリは命令を格納するように構成される、メモリと、
上記メモリに連結されたプロセッサであって、上記プロセッサは、上記メモリに格納された上記命令を実行して、項目1から13のいずれかに記載の方法を行うように構成される、プロセッサと
を備えるコーディング装置。
(項目15)
上記符号化装置はさらに、画像を表示するように構成されたディスプレイを備える、項目8に記載のコーディング装置。
(項目16)
符号化器と、
上記符号化器と通信する復号器であって、上記符号化器又は上記復号器は、項目14から15のいずれかに記載のコーディング装置を含む、復号器と
を備えるシステム。
(項目17)
コーディングするための手段であって、
符号化するピクチャを受信する又は復号するビットストリームを受信するように構成された受信手段と、
上記受信手段に連結された伝送手段であって、上記伝送手段は、上記ビットストリームを復号器に伝送する又は復号済み画像を表示手段に伝送するように構成される、伝送手段と、
上記受信手段又は上記伝送手段のうちの少なくとも1つに連結された記憶手段であって、上記記憶手段は命令を格納するように構成される、記憶手段と、
上記記憶手段に連結された処理手段であって、上記処理手段は、上記記憶手段に格納された上記命令を実行して、請求項1から13のいずれかに記載の方法を行うように構成される、処理手段と
を備える、符号化するための手段。
図1
図2
図3
図4
図5
図6
図7
図8
【外国語明細書】