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

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

▶ ソニー株式会社の特許一覧

(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-07
(45)【発行日】2024-10-16
(54)【発明の名称】情報処理装置および情報処理方法
(51)【国際特許分類】
   H04N 21/238 20110101AFI20241008BHJP
   H04N 19/593 20140101ALI20241008BHJP
   H04N 19/46 20140101ALI20241008BHJP
   G06T 17/00 20060101ALI20241008BHJP
   H03M 7/30 20060101ALI20241008BHJP
【FI】
H04N21/238
H04N19/593
H04N19/46
G06T17/00
H03M7/30 Z
【請求項の数】 18
(21)【出願番号】P 2020563092
(86)(22)【出願日】2019-12-16
(86)【国際出願番号】 JP2019049089
(87)【国際公開番号】W WO2020137642
(87)【国際公開日】2020-07-02
【審査請求日】2022-10-27
(31)【優先権主張番号】P 2018248322
(32)【優先日】2018-12-28
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】000002185
【氏名又は名称】ソニーグループ株式会社
(74)【代理人】
【識別番号】100121131
【弁理士】
【氏名又は名称】西川 孝
(74)【代理人】
【氏名又は名称】稲本 義雄
(74)【代理人】
【識別番号】100168686
【弁理士】
【氏名又は名称】三浦 勇介
(72)【発明者】
【氏名】高橋 遼平
(72)【発明者】
【氏名】平林 光浩
(72)【発明者】
【氏名】勝股 充
(72)【発明者】
【氏名】津留 卓己
(72)【発明者】
【氏名】中神 央二
(72)【発明者】
【氏名】隈 智
【審査官】鈴木 順三
(56)【参考文献】
【文献】国際公開第2017/217191(WO,A1)
【文献】仲地 孝之,ポスト4K・8K時代のメディア伝送技術:MMT,Fundamentals Review [online],Vol.11 No.4,日本,電子情報通信学会 基礎・境界ソサイエティ,2018年04月,pp.288 - 301,https://www.jstage.jst.go.jp/article/essfr/11/4/11_288/_pdf/-char/ja
【文献】MAMMOU, Khaled ほか,G-PCC codec description v2,ISO/IEC JTC1/SC29/WG11 N18189 [online],ISO/IEC JTC1/SC29/WG11,2019年01月,第1頁 - 第40頁,https://mpeg.chiariglione.org/sites/default/files/files/standards/parts/docs/w18189
(58)【調査した分野】(Int.Cl.,DB名)
H04N 21/00 - 21/858
H04N 19/00 - 19/98
G06T 15/00 - 17/00
H03M 3/00 - 9/00
(57)【特許請求の範囲】
【請求項1】
Point Cloudデータを3次元構造ベースで符号化してPoint Cloudデータ符号化ストリームを生成する際に、前記Point Cloudデータが複数の部分に分割された個々の部分となる部分Point Cloudデータそれぞれの空間上の位置を示す空間位置情報と、それらの部分Point Cloudデータをグルーピングするグルーピング情報とを含むファイルを生成するファイル生成部
を備える情報処理装置。
【請求項2】
前記ファイル生成部により生成された前記ファイルは、前記Point Cloudデータのローカル座標系を基準に前記部分Point Cloudデータを表示するのに必用となる方向を示す方向対応情報をさらに含む
請求項1に記載の情報処理装置。
【請求項3】
前記ファイル生成部により生成された前記ファイルは、動的に変化する前記空間位置情報をさらに含む
請求項2に記載の情報処理装置。
【請求項4】
前記ファイル生成部により生成された前記ファイルは、動的に変化する前記方向対応情報をさらに含む
請求項2に記載の情報処理装置。
【請求項5】
前記ファイル生成部により生成された前記ファイルは、DASH MPD(Dynamic Adaptive Streaming over HTTP Media Presentation Description)、または、ISOBMFF(ISO Base Media File Format)構造を有するファイルである
請求項3または4に記載の情報処理装置。
【請求項6】
前記部分は、前記Point Cloudデータの中で独立してエンコードおよびデコードできるポイントの集合であるbrickで構成されており、
前記ファイル生成部により生成された前記ファイルは、前記brickの空間位置情報を、前記Point Cloudデータのストリーム内の前記brickを構成するデータ単位で紐づける情報をさらに含む
請求項1に記載の情報処理装置。
【請求項7】
前記部分Point Cloudデータは、前記Point Cloudデータの中で独立してエンコードおよびデコードできるポイントの集合であるbrickで構成されており、
前記ファイル生成部により生成された前記ファイルは、前記brickの空間位置情報を、前記部分Point Cloudデータのストリーム内の前記brickを構成するデータ単位で紐づける情報をさらに含む
請求項1に記載の情報処理装置。
【請求項8】
前記部分Point Cloudデータは、前記Point Cloudデータの中で独立してエンコードおよびデコードできるポイントの集合であるbrickで構成されており、
前記ファイル生成部により生成された前記ファイルは、前記brickの空間位置情報を、前記部分Point Cloudデータのストリーム内の前記brickを構成するデータ単位で紐づける情報をさらに含む
請求項1に記載の情報処理装置。
【請求項9】
情報処理装置が、
Point Cloudデータを3次元構造ベースで符号化してデータ符号化ストリームを生成する際に、前記Point Cloudデータが複数の部分に分割された個々の部分となる部分Point Cloudデータそれぞれの空間上の位置を示す空間位置情報と、それらの部分Point Cloudデータをグルーピングするグルーピング情報とを含むファイルを生成すること
を含む情報処理方法。
【請求項10】
Point Cloudデータを3次元構造ベースで符号化してPoint Cloudデータ符号化ストリームを生成する際に、前記Point Cloudデータが複数の部分に分割された個々の部分となる部分Point Cloudデータそれぞれの空間上の位置を示す空間位置情報と、それらの部分Point Cloudデータをグルーピングするグルーピング情報とを含むファイルを解析し、前記部分Point Cloudデータを復号する再生処理部
を備える情報処理装置。
【請求項11】
前記ファイルは、前記Point Cloudデータのローカル座標系を基準に前記部分Point Cloudデータを表示するのに必用となる方向を示す方向対応情報をさらに含む
請求項10に記載の情報処理装置。
【請求項12】
前記ファイルは、動的に変化する前記空間位置情報をさらに含む
請求項11に記載の情報処理装置。
【請求項13】
前記ファイルは、動的に変化する前記方向対応情報をさらに含む
請求項11に記載の情報処理装置。
【請求項14】
前記ファイルは、DASH MPD(Dynamic Adaptive Streaming over HTTP Media Presentation Description)、または、ISOBMFF(ISO Base Media File Format)構造を有するファイルである
請求項12または13に記載の情報処理装置。
【請求項15】
前記部分は、前記Point Cloudデータの中で独立してエンコードおよびデコードできるポイントの集合であるbrickで構成されており、
前記ファイルは、前記brickの空間位置情報を、前記Point Cloudデータのストリーム内の前記brickを構成するデータ単位で紐づける情報をさらに含む
請求項10に記載の情報処理装置。
【請求項16】
前記部分Point Cloudデータは、前記Point Cloudデータの中で独立してエンコードおよびデコードできるポイントの集合であるbrickで構成されており、
前記ファイルは、前記brickの空間位置情報を、前記部分Point Cloudデータのストリーム内の前記brickを構成するデータ単位で紐づける情報をさらに含む
請求項10に記載の情報処理装置。
【請求項17】
前記部分Point Cloudデータは、前記Point Cloudデータの中で独立してエンコードおよびデコードできるポイントの集合であるbrickで構成されており、
前記ファイルは、前記brickの空間位置情報を、前記部分Point Cloudデータのストリーム内の前記brickを構成するデータ単位で紐づける情報をさらに含む
請求項10に記載の情報処理装置。
【請求項18】
情報処理装置が、
Point Cloudデータを3次元構造ベースで符号化してPoint Cloudデータ符号化ストリームを生成する際に、前記Point Cloudデータが複数の部分に分割された個々の部分となる部分Point Cloudデータそれぞれの空間上の位置を示す空間位置情報と、それらの部分Point Cloudデータをグルーピングするグルーピング情報とを含むファイルを解析し、前記部分Point Cloudデータを復号すること
を含む情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報処理装置および情報処理方法に関し、特に、より高品位なG-PCCストリーム配信を行うことができるようにした情報処理装置および情報処理方法に関する。
【背景技術】
【0002】
従来、MPEG-I Part 9 Geometry-based Point Cloud Compression(ISO/IEC 23090-9)では、3次元空間上に位置情報と属性情報(例えば、色情報や反射情報など)とを同時に持った点の集合であるPoint Cloudの圧縮方法が規定される。
【0003】
例えば、非特許文献1で開示されているように、Geometry-based Point Cloud Compression (G-PCC) では、Point Cloudを、3次元構造を示すgeometryと、色や反射情報等を示すattributeとに分離して、符号化する。
【0004】
また、geometryの圧縮には、図1に示すようなoctree符号化が用いられる。例えば、octree符号化は、Voxel表現されたデータにおいて、各ブロック内のポイントの有無を、八分木によって表現する手法である。この手法では、図1に示すように、ポイントが存在するブロックは1、存在しないブロックは0で表現される。
【0005】
また、attributeの圧縮には、Predicting Weight Lifting,Region Adaptive Hierarchical Transform (RAHT)、またはFix Weight Liftingが用いられる。
【先行技術文献】
【非特許文献】
【0006】
【文献】w17770, Third Working Draft for G-PCC (Geometry-based PCC), July 2018, Ljubljana, Slovenia
【文献】w18001, Description of Core Experiment 13.2 for G-PCC: Tile and Slice based Coding of Point Cloud, October 2018, Macau, China
【発明の概要】
【発明が解決しようとする課題】
【0007】
ところで、従来の配信技術では、Point Cloudオブジェクトの3次元構造情報を、図1に示したようなoctree符号化で均一に圧縮したG-PCCストリームを配信する。このように、octree符号化で均一に圧縮する場合、配信されるG-PCCストリームは、周囲360°から視聴できる3次元情報を持ち、かつ、全周囲の精細さが同一となる。このとき、配信時のネットワーク帯域幅の制限から、下記の2つの点が懸念される。
【0008】
第1に、Point Cloudを構成するポイントが密となる高精細なG-PCCストリームを配信しようとすると、ある特定時間においてユーザが視聴できるPoint Cloudの一部分か否かに関係なく、Point Cloudオブジェクト全体の圧縮率を一律に下げる(即ち、高精細化する)ことになる。このため、不要にビットレートが増加して再生が途切れることが懸念される。
【0009】
第2に、再生途切れを抑制すべくビットレートを削減する場合、G-PCCストリーム全体の圧縮率を一律に上げる(即ち、低精細化する)ことになる。このため、ある特定時間においてユーザが視聴しているPoint Cloudオブジェクトの一部分まで、Point Cloudを構成するポイントが疎となって低精細となることが懸念される。
【0010】
このように、従来、ネットワーク帯域幅が効率良くなるように活用されておらず、高精細に視聴され、かつ、途切れずに再生されるような高品位なG-PCCストリーム配信が実現されていなかった。
【0011】
本開示は、このような状況に鑑みてなされたものであり、より高品位なG-PCCストリーム配信を行うことができるようにするものである。
【課題を解決するための手段】
【0012】
本開示の第1の側面の情報処理装置は、Point Cloudデータを3次元構造ベースで符号化してPoint Cloudデータ符号化ストリームを生成する際に、前記Point Cloudデータが複数の部分に分割された個々の部分となる部分Point Cloudデータそれぞれの空間上の位置を示す空間位置情報と、それらの部分Point Cloudデータをグルーピングするグルーピング情報とを含むファイルを生成するファイル生成部を備える。
【0013】
本開示の第1の側面の情報処理方法は、情報処理装置が、Point Cloudデータを3次元構造ベースで符号化してデータ符号化ストリームを生成する際に、前記Point Cloudデータが複数の部分に分割された個々の部分となる部分Point Cloudデータそれぞれの空間上の位置を示す空間位置情報と、それらの部分Point Cloudデータをグルーピングするグルーピング情報とを含むファイルを生成することを含む。
【0014】
本開示の第1の側面においては、Point Cloudデータを3次元構造ベースで符号化してデータ符号化ストリームを生成する際に、Point Cloudデータが複数の部分に分割された個々の部分となる部分Point Cloudデータそれぞれの空間上の位置を示す空間位置情報と、それらの部分Point Cloudデータをグルーピングするグルーピング情報とを含むファイルが生成される。
【0015】
本開示の第2の側面の情報処理装置は、Point Cloudデータを3次元構造ベースで符号化してPoint Cloudデータ符号化ストリームを生成する際に、前記Point Cloudデータが複数の部分に分割された個々の部分となる部分Point Cloudデータそれぞれの空間上の位置を示す空間位置情報と、それらの部分Point Cloudデータをグルーピングするグルーピング情報とを含むファイルを解析し、前記部分Point Cloudデータを復号する再生処理部を備える
【0016】
本開示の第2の側面の情報処理方法は、情報処理装置が、Point Cloudデータを3次元構造ベースで符号化してPoint Cloudデータ符号化ストリームを生成する際に、前記Point Cloudデータが複数の部分に分割された個々の部分となる部分Point Cloudデータそれぞれの空間上の位置を示す空間位置情報と、それらの部分Point Cloudデータをグルーピングするグルーピング情報とを含むファイルを解析し、前記部分Point Cloudデータを復号することを含む
【0017】
本開示の第2の側面においては、Point Cloudデータを3次元構造ベースで符号化してPoint Cloudデータ符号化ストリームを生成する際に、Point Cloudデータが複数の部分に分割された個々の部分となる部分Point Cloudデータそれぞれの空間上の位置を示す空間位置情報と、それらの部分Point Cloudデータをグルーピングするグルーピング情報とを含むファイルを解析し、部分Point Cloudデータが復号される。
【図面の簡単な説明】
【0018】
図1】octree符号化について説明する図である。
図2】Point Cloudオブジェクトの部分ごとに精細度を変えて符号化する一例を示す図である。
図3】方向情報により示される方向の一例を示す図である。
図4】方向情報のシグナリングの一例を示す図である。
図5】精細度情報のシグナリングの一例を示す図である。
図6】DirectionInformationBoxのシグナル場所の一例を示す図である。
図7】DirectionInformationBoxのシンタックスの一例を示す図である。
図8】4つに分割されたPoint Cloudオブジェクトの一例を示す図である。
図9】X軸方向で半分に分割されたobject boxの一例を示す図である。
図10】gpcc:blockInfoの属性の定義を示す図である。
図11】部分G-PCCストリームの空間位置情報およびグルーピング情報のシグナリングの一例を示す図である。
図12】空間位置情報のイメージ図である。
図13】部分G-PCCストリームの精細度情報のシグナリングの一例を示す図である。
図14】データ生成装置の構成例を示すブロック図である。
図15】データ再生装置の構成例を示すブロック図である。
図16】部分G-PCCストリームが格納されたファイルを生成する生成処理を説明するフローチャートである。
図17】部分G-PCCストリームが格納されたファイルを再生する再生処理を説明するフローチャートである。
図18】部分G-PCCストリームの方向対応情報の必要性について説明する図である。
図19】部分G-PCCストリームの方向対応情報のシグナリングの一例を示す図である。
図20】動的に変化する空間位置情報および方向対応情報の必要性について説明する図である。
図21】動的に変化する空間位置情報および方向対応情報のシグナリングの一例を示す図である。
図22】timed metadataのsample entryのシンタックスの一例を示す図である。
図23】timed metadataのsampleのシンタックスの一例を示す図である。
図24】各時間における空間位置情報のシグナリングの一例を示す図である。
図25】BlockGroupBoxのシグナル例を示す図である。
図26】BlockGroupBoxに部分G-PCCストリームの空間位置情報をシグナルするシンタックスの一例を示す図である。
図27】階層化による部分G-PCCストリームの生成について説明する図である。
図28】組み合わせられる各G-PCCストリームの空間位置情報のシグナリングの一例を示す図である。
図29】空間位置情報のイメージ図である。
図30】track referenceの運用例を示す図である。
図31】CombinedAreaLodInfoBox(‘cloi’)のシンタックスの一例を示す図である。
図32】BrickGroupEntryのシンタックスの一例を示す図である。
図33】UnitMapEntryのシンタックスの一例を示す図である。
図34】BrickGroupEntryおよびUnitMapEntryの運用例を示す図である。
図35】動的なbrick構成の変更について説明する図である。
図36】brick base trackおよびbrick trackの構成について説明する図である。
図37】brickの空間位置情報のシグナリングの一例を示す図である。
図38】レンダリング処理方法のシグナリングの一例を示す図である。
図39】RenderingInformationBoxのシグナル例を示す図である。
図40】RenderingInformationBoxのシンタックスの一例を示す図である。
図41】高精細化される部分の処理タイプのシンタックスの一例を示す図である。
図42】combined_track_existsフィールド、comnbined_track_idフィールド、およびcombined_area_typeフィールドを追加したシンタックスの一例を示す図である。
図43】priority_flagフィールドを追加したシンタックスの一例を示す図である。
図44】Sample Group概要を示す図である。
図45】本技術を適用したコンピュータの一実施の形態の構成例を示すブロック図である。
【発明を実施するための形態】
【0019】
以下、本技術を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
【0020】
<本開示における3つのポイント>
まず、本実施の形態において開示される技術において特徴となる第1乃至第3のポイントの概要について説明する。例えば、Point CloudオブジェクトをHMD(Head Mounted Display)やFlat Panel Displayで視聴する場合、視聴方向に対して反対側の表面形状および色は見えないという点を利用した視聴方向適応配信技術が用いられる。
【0021】
第1のポイントでは、1つのPoint Cloudオブジェクトの部分毎に精細度を変えて符号化したG-PCCストリームを配信する点が特徴となる。例えば、G-PCCストリームにおいて、高精細になっている方向を示す方向情報と、その方向における精細度を示す精細度情報とを付加する。これにより、クライアントは、視聴部分については高精細となり、かつ、視聴部分以外については低精細となるようにG-PCCストリームを取得することができる。従って、第1のポイントにより、ネットワーク帯域幅を有効活用した視聴部分の高精細化を実現することが可能となる。
【0022】
第2のポイントでは、1つのPoint Cloudオブジェクトを複数の部分オブジェクトに分割し、個々の部分オブジェクトごとに精細度を変えて符号化した部分G-PCCストリームを配信する点が特徴となる。また、第2のポイントでは、空間分割により生成した部分G-PCCストリームを配信する第1の手法と、階層化により生成した部分G-PCCストリームを配信する第2の手法とが提案される。
【0023】
例えば、第2のポイントの第1の手法においは、各部分G-PCCストリームに空間位置情報および精細度情報を付加する。これにより、クライアントは、視聴部分については高精細な部分G-PCCストリームを取得し、かつ、視聴部分以外については低精細な部分G-PCCストリームを取得することができる。従って、第2のポイントの第1の手法により、ネットワーク帯域幅を有効活用した視聴部分の高精細化を実現することが可能となる。
【0024】
また、第2のポイントの第2の手法においは、各部分G-PCCストリームに対し、第2のポイントの第1の手法で付加した情報に、高精細化するために組み合わせるべき部分G-PCCストリームを識別するための情報を付加する。これにより、クライアントは、視聴部分を高精細化するために必要な組み合わせで部分G-PCCストリームを取得することができる。従って、第2のポイントの第2の手法によっても、ネットワーク帯域幅を有効活用した視聴部分の高精細化を実現することが可能となる。
【0025】
第3のポイントでは、Point Cloudオブジェクトの低精細な部分のレンダリング処理を指定する。例えば、G-PCCストリームに対し、低精細な部分の主観品質向上のために必要なレンダリング処理の情報を付加する。これにより、クライアントは、指定されたレンダリング処理を識別し、その処理を実行可能である場合、そのG-PCCストリームを取得することができる。従って、第3のポイントにより、主観品質を維持しつつ、かつ、G-PCCストリーム配信に必要なネットワーク帯域幅を削減することが可能となる。
【0026】
なお、上述した第1乃至第3のポイントにおいて付加される情報は、DASH MPD(Dynamic Adaptive Streaming over HTTP Media Presentation Description)またはISOBMFF(ISO Base Media File Format)を拡張することによりシグナルされる。
【0027】
<第1のポイント>
図2乃至図7を参照して、部分毎に精細度を変えて符号化したG-PCCストリームを配信する第1のポイントについて説明する。
【0028】
図2に示すように、G-PCCストリームを生成する際、Point Cloudオブジェクトの部分ごとにVoxelを区切る細かさ(octree depth)を変更することで、部分毎に精細度を変えて符号化することが可能となる。
【0029】
図2に示す例では、Point Cloudオブジェクトが8つの部分に分けられている。そして、グレーのハッチングが施されている2つの部分が高精細(depth=10)に符号化され、残りの6つの部分が低精細(depth=5)に符号化されている。
【0030】
これにより、クライアントは、視聴部分については高精細となるように符号化されたG-PCCストリームを取得し、かつ、それ以外については低精細となる符号化されたG-PCCストリームを取得することができる。これにより、ネットワーク帯域幅を有効活用した視聴部分の高精細化が可能となる。このとき、部分毎の精細度はG-PCCストリームをデコードしないと識別できないため、クライアントがサーバー上のG-PCCストリームを選択および取得する際、視聴部分が高精細になっているG-PCCストリームを識別できるようにする必要がある。
【0031】
例えば、このような識別は、360°全天球映像の領域ごとの高画質化ストリームを視聴方向に応じて選択する際にも必要となる。即ち、360°全天球映像の領域ごとの高画質化ストリームの場合は、視点位置が固定であるため、ユーザの視聴部分は視聴方向に依存するのみであった。そのため、360°全天球映像の領域ごとの高画質化ストリームに対し、高画質化領域の視聴方向対応情報を付加することが一般的に行われている。
【0032】
これに対し、本技術におけるG-PCCストリームの場合、様々な視点位置から異なる視聴方向でPoint Cloudオブジェクトの同一部分を視聴することができる。このため、360°全天球映像で用いられるような視聴方向対応情報を参照しても、クライアントは、視聴部分が高精細化されているG-PCCストリームを適切に取得することができない。
【0033】
そこで、第1のポイントでは、G-PCCストリームにおいて、高精細になっている方向をシグナルすることを提案する。これにより、クライアントは、視聴方向および視点位置に応じて、視聴部分が高精細化されているG-PCCストリームを選択して取得することが可能となる。
【0034】
さらに、第1のポイントでは、G-PCCストリームの高精細になっている方向について、その方向の精細度情報をシグナルすることを提案する。これにより、G-PCCストリームの視聴部分が変化した場合、新たな視聴部分の精細度が、その変化する前の視聴部分の精細度と同等となるG-PCCストリームに切り替えることが可能となる。例えば、視聴部分の変化に伴って精細度が大きく変化する場合には、ユーザの視聴体験が悪化してしまうことが想定されるが、視聴部分の変化によっても精細度の変化を抑制することで、このような視聴体験の悪化を回避することができる。
【0035】
図3乃至図5を参照して、DASH MPDの拡張について説明する。
【0036】
例えば、G-PCCストリームにおいて高精細になっている方向の情報として、high lod direction descriptor (schemeIdUri=”urn:mpeg:mepgI:gpcc:high_lod_direction:2018”のSupplementalProperty)を新規定義してAdaptation Setにシグナルする。即ち、gpcc:directionInfo要素のdirection属性に、高精細になっている方向を示す方向情報をシグナルする。
【0037】
また、図3に示すように、direction属性の取りうる値は、Point Cloudのローカル座標系を基準として、0: X+,1: Y+,2: X-,3: Y-,4: Z+,5: Z-の6方向でシグナルすることができる。その他、45°刻み等、より細かい粒度で方向をシグナルしてもよい。
【0038】
なお、1つのG-PCCストリーム内で複数方向が高精細化されていてもよい。この場合、複数のgpcc:directionInfo要素を用いてシグナルされる。さらに、”gpcc:”はname space prefixであり、例えば”urn:mpeg:mpegI:gpcc:2018”のname spaceを利用するものとする。
【0039】
図4には、方向情報のシグナリングの一例が示されており、図4において太字で記載されている個所に方向情報がシグナルされている。
【0040】
例えば、ユーザがPoint Cloudのローカル座標系のX+方向の部分を視聴している場合、クライアントはhigh lod direction descriptorを参照してAdaptationSet@id=1を選択して、高精細化されている部分を取得することができる。これにより、ユーザの視聴部分を高精細化するPoint Cloudの表示が可能となる。
【0041】
さらに、high lod direction descriptorに対し、高精細化されている方向の精細度を示す精細度情報を追加し、Representationにシグナルする。例えば、gpcc:directionInfo要素のlod_ranking属性に、精細度ランキング情報をシグナルする。精細度ランキングは、値が小さいほど精細度が高いことを示す。
【0042】
図5には、精細度情報をシグナルする一例が示されており、図5において太字で記載されている個所に精細度情報がシグナルされている。
【0043】
例えば、ユーザがPoint Cloudのローカル座標系のX+方向の部分を視聴していて、クライアントが、Representation@id=”1-1”を再生中である場合において、ユーザがY+方向の部分を視聴するように視点位置および視聴方向が変化したとする。このとき、クライアントは、AdaptationSet@id=”2”のRepresentation@id=”2-1”を選択して、視点位置および視聴方向が変化する前と同じ精細度の部分を取得することができる。これにより、視聴部分の変化に伴って精細度が大きく変化してしまうことを抑制し、ユーザの視聴体験が悪化してしまうのを回避することができる。
【0044】
なお、高精細化されている方向の精細度情報として、精細度ランキング情報ではなく、高精細となっている方向のoctree depthの値をシグナルしてもよい。
【0045】
図6および図7を参照して、ISOBMFFの拡張について説明する。
【0046】
例えば、高精細となっている方向を示す方向情報、および、高精細化されている方向における精細度を示す精細度情報は、DirectionInformationBox(‘diri’)を新規定義してシグナルする。
【0047】
そして、図6に示すように、ISOBMFF trackのsample entryに、そのtrackに格納されるG-PCCストリームの方向情報および精細度情報(‘diri’)をシグナルする。従って、クライアントは、方向情報および精細度情報に基づいて、ISOBMFFに含まれる複数のtrackのうち、視聴部分を高精細化するtrackを選択し、視聴部分を高精細に再生することができる。
【0048】
図7には、directionInformationBoxのシンタックスの一例が示されている。
【0049】
図7のシンタックスにおいて、high_lod_directionフィールドと、lod_rankingフィールドとのセマンティクスは、high lod direction descriptorのgpcc:directionInfo要素の同名属性と同様である。
【0050】
なお、高精細化されている方向の精細度情報として、精細度ランキング情報ではなく、高精細となっている方向のoctree depthの値をシグナルしてもよい。また、精細度情報(‘diri’)は、ISOBMFF trackのsample entry以外にシグナルされてもよい。
【0051】
<第2のポイント>
図8乃至図37を参照して、部分オブジェクトそれぞれの精細度を変えて符号化した部分G-PCCストリームを配信する第2のポイントについて説明する。
【0052】
例えば、1つのPoint Cloudオブジェクトを複数の部分Point Cloudオブジェクトに分け、それぞれを符号化して部分G-PCCストリームを生成する。そして、符号化の際、octree depthを変更し、部分G-PCCストリームごとに精細度のバリエーションを持つようにする。これにより、クライアントは、視聴部分が高精細、それ以外は低精細となるよう部分G-PCCストリームを取得することで、帯域幅を有効活用した視聴部分の高精細化ができる。
【0053】
このとき、部分G-PCCストリームがPoint Cloudオブジェクト全体のどの部分に相当するのかを識別し、また、部分G-PCCストリームの精細度情報はデコードしなくても識別できるようにする必要がある。即ち、クライアントがサーバー上のG-PCCストリームを選択および取得する際、視聴部分を高精細化するための部分G-PCCストリームを適切に選択できるようにする必要がある。
【0054】
図8乃至図26を参照して、空間分割により生成した部分G-PCCストリームを配信する第2のポイントの第1の手法について説明する。
【0055】
図8に示すように、1つのPoint Cloudオブジェクトを空間分割することで、部分Point Cloudを生成し、それぞれを符号化して部分G-PCCストリームを生成・配信することができる。図8には、Point Cloudオブジェクトを4つに空間分割する場合の例が示されている。
【0056】
このとき、部分G-PCCストリームの空間位置情報、1つの全体Point Cloudオブジェクトを構成する部分G-PCCストリームのグルーピング情報をシグナルする。さらに、部分G-PCCストリームの精細度情報をシグナルする。
【0057】
これにより、クライアントは、グルーピング情報および部分G-PCCストリームの精細度情報を参照することで、視聴部分を高精細にするための部分G-PCCストリームを取得することができる。
【0058】
ここで、空間分割の方法、および、空間位置情報について説明する。
【0059】
例えば、Point Cloudオブジェクトの形状は、最大frame by frameで変わる。そこで、Point Cloudオブジェクトの形状の変化に依存しない、一定の分割ルールを適用することで空間分割を行う。具体的には、Point Cloudオブジェクト全体を含むbox(以下適宜、object boxと称する)に対して、相対的に同じ空間位置を占める直方体ブロック(以下適宜、blockと称する)に含まれる部分Point Cloudオブジェクトを、1つの部分G-PCCストリームとして符号化する。
【0060】
図9には、object boxをX軸方向で半分に分割する例が示されている。
【0061】
図9に示すように、時刻t0のPoint Cloudオブジェクト全体を含むobject boxが、部分Point Cloudオブジェクトt0-aおよびt0-bにX軸方向で半分に分割される。同様に、時刻t1では、部分Point Cloudオブジェクトt1-aおよびt1-bに分割れ、時刻t2では、部分Point Cloudオブジェクトt2-aおよびt2-bに分割れる。そして、aのG-PCCストリームは、部分Point Cloudオブジェクトt0-a、部分Point Cloudオブジェクトt1-a、および部分Point Cloudオブジェクトt2-aにより構成される。一方、bのG-PCCストリームは、部分Point Cloudオブジェクトt0-b、部分Point Cloudオブジェクトt1-b、および部分Point Cloudオブジェクトt2-bにより構成される。
【0062】
なお、この方法によれば、部分G-PCCストリームに含まれる部分Point Cloudオブジェクトの全体Point Cloudオブジェクトに対する相対的空間位置が動的に不変となる。相対的空間位置が動的に変わる場合、視聴部分とそれを含む部分G-PCCストリームの関係性が動的に変化する。そのため、クライアントが視聴部分を高精細化するG-PCCストリームを取得する場合、視聴部分が不変であったとしても、取得する高精細なG-PCCストリームを切り替える必要が出てしまう。そこで、この空間分割の手法によって、視聴部分が不変であるときには、取得する高精細なG-PCCストリームを切り替える必要をなくすことができる。
【0063】
図10乃至図13を参照して、DASH MPDの拡張について説明する。
【0064】
例えば、部分G-PCCストリームの空間位置情報およびグルーピング情報を、block information descriptor (schemeIdUri=”urn:mpeg:mepgI:gpcc:block_information:2018”のSupplementalProperty)を新規定義して、Adaptation Setにシグナルする。
【0065】
図10に示すように、空間位置情報は、gpcc:blockInfo要素のblock_offset_x, block_offset_y, block_offset_z, block_size_x, block_size_y, block_size_zの各属性で示す。これらの各属性は、全てobject boxのx, y, z軸の各辺を1とした時の相対値でシグナルする。なお、blockの位置および形状と、部分Point CloudオブジェクトをG-PCC符号化する際のbounding boxの位置および形状は同じものとする。なお、blockの位置および形状のいずれかと、部分Point CloudオブジェクトをG-PCC符号化する際のbounding boxの位置および形状のいずれかが異なる場合には、bounding box内におけるblockの位置および形状を示す情報を別途シグナルすればよい。
【0066】
また、グルーピング情報は、gpcc:blockInfo要素のobject_id属性で示す。同一のPoint Cloudオブジェクトを構成する部分G-PCCストリームに対して、同じ値のobject_id属性をシグナルする。
【0067】
図11には、部分G-PCCストリームの空間位置情報およびグルーピング情報のシグナリングの一例が示されており、図11において太字で記載されている個所に部分G-PCCストリームの空間位置情報およびグルーピング情報がシグナルされている。
【0068】
図12は、各Adaptation Setのblock information descriptorでシグナリングされる空間位置情報のイメージ図である。
【0069】
なお、gpcc:blockInfo要素に精細度情報をシグナルする属性を追加した上で、block information descriptorで複数のgpcc:blockInfo要素をシグナルすると、1 G-PCCストリームの空間位置ごとの精細度情報シグナリングが可能になる。例えば、上述した第1のポイントにおいて、この拡張したblock information descriptorを参照して、視聴部分が高精細化されているG-PCCストリームの選択処理を行ってもよい。
【0070】
また、空間位置情報シグナリングの変形例として、object boxのx, y, z軸の各辺のサイズをシグナルし、block_offset_x, block_offset_y, block_offset_z, block_size_x, block_size_y, block_size_を、そのサイズに対する相対値でシグナルしてもよい。
【0071】
さらに、部分G-PCCストリームの精細度情報を、lod information descriptor (schemeIdUri=”urn:mpeg:mepgI:gpcc:lod_information:2018”のSupplementalProperty)を新規定義して、Representationにシグナルする。例えば、gpcc:lodInfo要素のlod_ranking属性に、精細度ランキング情報をシグナルする。精細度ランキングは、値が小さいほど精細度が高いことを示す。
【0072】
図13には、部分G-PCCストリームの精細度情報のシグナリングの一例が示されており、図13において太字で記載されている個所に部分G-PCCストリームの精細度情報がシグナルされている。
【0073】
ここで、各Adaptation Setのblock information descriptorのシグナリングは、上述した図11で示したものと同様である。
【0074】
なお、精細度情報として、精細度ランキング情報ではなく、octree depthの値をシグナルしてもよい。
【0075】
また、図13に示した例において、クライアントがX+方向から視聴している場合、図12におけるblock bの部分G-PCCストリームを参照するAdaptation Set@id=”2”は高精細(lod_rankingの値が小さいもの)のRepresentationを選択する。さらに、この場合、block aの部分G-PCCストリームを参照するAdaptationSet@id=”1”は低精細(lod_rankingの値が大きいもの)のRepresentationを選択する。そして、それらの選択に従って、部分G-PCCストリームを取得することで、ネットワーク帯域幅を有効活用した視聴部分の高精細化ができる。例えば、Representation@id=”1-2”とRepresentation@id=”2-1”との2つのRepresentationが参照する部分G-PCCストリームを取得する。
【0076】
<システム構成>
図14および図15を参照して、本技術を適用したデータ生成装置およびデータ再生装置のシステム構成について説明する。
【0077】
図14には、データ生成装置の構成例を示すブロック図が示されている。
【0078】
図14に示すように、データ生成装置11は、制御部21、メモリ22、ファイル生成部23を備えて構成される。例えば、メモリ22には、制御部21がファイル生成部23を制御するのに必要な各種のデータが記憶されており、制御部21は、そのデータを参照して、ファイル生成部23におけるファイルの生成を制御する。
【0079】
ファイル生成部23は、データ入力部31、データ符号化・生成部32、MPD(Media Presentation Description)ファイル生成部33、記録部34、および出力部35を備えて構成される。例えば、データ入力部31に入力されたデータは、データ符号化・生成部32およびMPDファイル生成部33に供給される。そして、データ符号化・生成部32で生成されたファイルおよびMPDファイル生成部33で生成されたMPDが、記録部34を介して出力部35から出力され、例えば、記録メディアなどに記録される。
【0080】
データ符号化・生成部32は、前処理部36、符号化部37、およびファイル生成部38を有している。
【0081】
前処理部36は、データ入力部31から入力されるPoint Cloudオブジェクトを分割し、各部分Point Cloudオブジェクトを生成するのと同時に、空間位置情報およびグルーピング情報を生成する処理を実行する。
【0082】
符号化部37は、各部分Point CloudオブジェクトをG-PCC符号化し、部分G-PCCストリームを生成するのと同時に、精細度情報を生成する。
【0083】
ファイル生成部38は、各部分G-PCCストリームを個別のファイルに格納して、記録部34に供給する。
【0084】
図15には、データ再生装置の構成例を示すブロック図が示されている。
【0085】
図15に示すように、データ再生装置12は、制御部41、メモリ42、および再生処理部43を備えて構成される。例えば、メモリ42には、制御部41が再生処理部43を制御するのに必要な各種のデータが記憶されており、制御部41は、そのデータを参照して、再生処理部43におけるPoint Cloudの再生を制御する。
【0086】
再生処理部43は、取得部51、表示制御部52、データ解析・復号部53、および表示部54を備えて構成される。例えば、取得部51により取得された、即ち、記録メディアなどから読み出されたファイルおよびMPDは、データ解析・復号部53に供給される。そして、表示制御部52による表示制御に従ってデータ解析・復号部53において生成された表示画面が、表示部54において表示される。
【0087】
データ解析・復号部53は、ファイル解析部55、復号部56、および表示情報生成部57を有している。
【0088】
ファイル解析部55は、上述したような各種の情報がシグナリングされたメタデータを解析する。
【0089】
また、復号部56は、部分G-PCCストリームを復号する処理を実行する。
【0090】
また、表示情報生成部57は、空間位置情報に基づいてPoint Cloudオブジェクトを再構成し、Point Cloudをレンダリングして表示画面を生成して、表示部54に表示させる。
【0091】
<生成処理および再生処理>
【0092】
図16は、データ生成装置11のデータ符号化・生成部32が、部分G-PCCストリームが格納されたファイルを生成する生成処理を説明するフローチャートである。
【0093】
ステップS11において、前処理部36は、Point Cloudオブジェクトを分割し、各部分Point Cloudオブジェクトを生成するのと同時に、空間位置情報およびグルーピング情報を生成する。
【0094】
ステップS12において、符号化部37は、各部分Point CloudオブジェクトをG-PCC符号化し、部分G-PCCストリームを生成するのと同時に、精細度情報を生成する。
【0095】
ステップS13において、ファイル生成部38は、各部分G-PCCストリームを個別のファイルに格納して、記録部34に供給する。
【0096】
ステップS14において、MPDファイル生成部33は、各部分G-PCCストリームの空間位置情報、グルーピング情報、および精細度情報を含むMPDを生成して、記録部34に供給する。そして、記録部34により、部分G-PCCストリームが格納されたファイルとともにMPDが出力部35から出力された後、処理は終了される。
【0097】
図17は、データ再生装置12が、部分G-PCCストリームが格納されたファイルを再生する再生処理を説明するフローチャートである。
【0098】
ステップS21において、取得部51は、MPDを取得する。
【0099】
ステップS22において、表示制御部52は、ステップS21で取得部51が取得したMPDの空間位置情報に基づいて、現在の視野から見える部分G-PCCストリームのAdaptation Setと、見えない部分G-PCCストリームのAdaptation Setとを識別する。
【0100】
ステップS23において、表示制御部52は、MPDの精細度情報に基づいて、現在の視点位置および視野方向から見える部分G-PCCストリームについて、高精細なRepresentationを選択する。
【0101】
ステップS24において、表示制御部52は、MPDの精細度情報に基づいて、現在の視点位置および視野方向から見えない部分G-PCCストリームについて、低精細なRepresentationを選択する。
【0102】
ステップS25において、取得部51は、ステップS23およびS24で表示制御部52が選択したRepresentationから参照される部分G-PCCストリームを全て取得して、データ解析・復号部53に供給する。
【0103】
ステップS26において、データ解析・復号部53では、復号部56が、取得した部分G-PCCストリームをデコードし、表示情報生成部57が、空間位置情報に基づいてPoint Cloudオブジェクトを再構成して表示画面をレンダリングする。そして、表示情報生成部57によりレンダリングされた表示画面が、表示部54に表示される。
【0104】
ステップS27において、表示制御部52は、ストリームの終端であるか否かを判定する。ステップS27において、表示制御部52が、ストリームの終端でないと判定した場合、処理はステップS28に進む。
【0105】
ステップS28において、表示制御部52は、視野方向が変更されたか否かを判定し、視野方向が変更されていないと判定した場合には処理はステップS26に戻り、視野方向が変更されたと判定した場合には処理はステップS22に戻って、以下、同様の処理が繰り返して行われる。
【0106】
一方、ステップS27において、表示制御部52は、ストリームの終端であると判定した場合、処理は終了される。
【0107】
ところで、前述した空間位置情報のシグナリングのみでは、特定の視聴方向から視聴できる部分G-PCCストリームを全て識別できないことが発生すると想定される。
【0108】
例えば、図18においてハッチングが施されている領域は、部分G-PCCストリームa内に存在するが、図18において矢印で示す視聴方向から視聴可能である。このとき、視聴可能部分を高精細化するためには、空間位置情報をもとに視聴部分として識別される部分G-PCCストリームbに加え、部分G-PCCストリームaも高精細で取得する必要がある。しかしながら、前述した空間位置情報のシグナリングのみでは、部分G-PCCストリームaは低精細で取得してしまうため、高品位なG-PCCストリーム配信とならない。
【0109】
そこで、Point Cloudオブジェクトのローカル座標系を基準とした方向ごとに、表示に必要な部分G-PCCストリーム全てを識別するための情報を付加する。
【0110】
例えば、この部分G-PCCストリームの方向対応情報を、block information descriptorを拡張してシグナルする。具体的には、gpcc:directionInfo要素のdirection属性を追加する。
【0111】
図19には、部分G-PCCストリームの方向対応情報をシグナリングする一例が示されており、図19において太字で記載されている個所に部分G-PCCストリームの方向対応情報がシグナルされている。
【0112】
例えば、Adaptation Set@id=”1”は、図18における部分G-PCCストリームaに該当し、X+, Y+, X-, Y-, Z+, Z-の全方向を視聴する場合において必要な部分G-PCCストリームであることを示している。また、Adaptation Set@id=”2”は、部分G-PCCストリームbに該当し、X+, Y+, Y-, Z+, Z-の方向を視聴する場合において必要な部分G-PCCストリームであることを示し、X-の方向を視聴する場合には不要である。
【0113】
このように、方向対応情報をシグナルすることで、クライアントの視聴方向に必要な部分G-PCCストリームを正しく識別し、全て高精細で取得することができる。
【0114】
なお、1つの部分G-PCCストリームが複数の方向に対応する場合において、direction属性に空白区切りで方向情報をシグナルせずに、複数のgpcc:directionInfo要素をシグナルしてもよい。また、部分G-PCCストリームの方向対応情報のみ、個別のdescriptorでシグナルしてもよい。
【0115】
さらに、gpcc:directionInfo要素がシグナルされている場合、gpcc:blockInfo要素をシグナルしなくてもよいし、一緒に利用してもよい。一緒に利用する場合、gpcc:directionInfo要素を参照して視聴部分の表示に必要な部分G-PCCストリームを全て識別した上で、gpcc:blockInfo要素を参照してblockごとの細かな精細度変更を行うことができる。
【0116】
ところで、時間経過とともにPoint Cloudオブジェクトの外形が大きく変わり、ポイントがない、空の部分G-PCCストリームができる場合において、視聴部分に応じた取得処理が適切に行えないことがあるということが懸念される。
【0117】
図20を参照して、動的に変化する空間位置情報および方向対応情報の必要性について説明する。
【0118】
図20の上側に示すように、クライアントは視聴部分を高精細化する場合、視聴部分に相当するblock bおよびblock dをそれぞれ含む2つの部分G-PCCストリームを、高精細(depth=10)で取得することになる。その後、図20の下側に示すように、時刻tNにおいてPoint Cloudオブジェクトの外形が変化した場合、block bは空であるにもかかわらず、block bを含む部分G-PCCストリームを高精細で取得することになる。
【0119】
このため、時刻tNにおける視聴部分を高精細化するためには、block aおよびblock dをそれぞれ含む部分G-PCCストリームを取得する必要がある。
【0120】
そこで、動的に変化する方向対応情報および空間位置情報を付加する。具体的には、dynamic block information descriptor (schemeIdUri=”urn:mpeg:mepgI:gpcc:dynamic_block_information:2018”のSupplementalProperty)を新規定義して、AdaptationSetにシグナルする。
【0121】
例えば、gpcc:dynamicBlockInfo要素のblock_info_id属性には、このAdaptation Set内のRepresentationが参照する部分G-PCCストリームに紐づく、動的に変化する空間位置情報および方向対応情報をシグナルするtimed metadataを参照するRepresentationのidがシグナルされる。なお、object_id属性は、前述の通りである。
【0122】
また、timed metatadataを参照するRepresentationには、このRepresentationを動的に変化する空間位置情報および方向対応情報が適用される部分G-PCCストリームのRepresentationに紐づけるため、Representation@associationIdおよびRepresentation@associationTypeを利用する。さらに、associationTypeには、動的に変化する空間位置情報および方向対応情報であることを示す、”dbif”をシグナルする。
【0123】
図21には、動的に変化する空間位置情報および方向対応情報のシグナリングの一例が示されており、図21において太字で記載されている個所に、動的に変化する空間位置情報および方向対応情報がシグナルされている。
【0124】
即ち、上記timed metadataのsampleには、各時刻における方向対応情報をシグナルする。これにより、時刻ごとに各blockがどの方向に対応するのかの情報をシグナルできる。
【0125】
図22には、timed metadataのsample entryのシンタックスの一例が示されており、図23には、timed metadataのsampleのシンタックスの一例が示されている。
【0126】
なお、directionフィールドのセマンティクスは、block information descriptorのgpcc:directionInfo要素のdirection属性と同様である。
【0127】
また、図24に示すように、各時間における空間位置情報をシグナルしてもよい。これにより、動的に空間分割方法を変更できるため、空となるblockが生じない空間分割を行うことができる。
【0128】
なお、各フィールドのセマンティクスは、block information descriptorのgpcc:blockInfo要素の同名属性と同様である。
【0129】
このようなシグナリングにより、クライアントは、動的に変わる空間位置情報および方向対応情報を参照し、Point Cloudオブジェクトの外形が動的に大きく変わる場合においても、視聴部分を高精細化するための部分G-PCCストリームを適切に取得可能となる。
【0130】
図25および図26を参照して、ISOBMFFの拡張について説明する。
【0131】
例えば、ISOBMFFファイルの各trackに部分G-PCCストリームを格納する。このとき、1つのPoint Cloudオブジェクトを構成するtrack群を明示するために、ISOBMFFで定義されているtrack group機能を利用してグルーピングする。
【0132】
具体的には、図25に示すように、TrackGroupTypeBoxを拡張し、BlockGroupBox (‘blgp’)を新規に定義する。即ち、同じtrack_group_idのBlockGroupBoxがシグナルされるtrackは、同一のPoint Cloudオブジェクトを構成する部分G-PCCストリームを格納していることを示す。
【0133】
例えば、BlockGroupBoxには、DASH MPD拡張と同様、部分G-PCCストリームの空間位置情報、精細度情報、方向対応情報、並びに、動的に変化する空間位置情報および方向対応情報を持つtimed metadataへの参照情報がシグナルされる。なお、動的に変化する空間位置情報および方向対応情報を持つtimed metadataを格納するtrackは、refrence_type=’dbif’のtrack referenceによって、そのtimed metadataが適用される部分G-PCCストリームを格納するtrackに紐づけられる。
【0134】
これにより、クライアントは、このblgpの情報を参照してtrack選択を行い、視聴部分に相当する部分G-PCCストリームの優先デコードが可能となる。
【0135】
図26には、BlockGroupBoxに部分G-PCCストリームの空間位置情報をシグナルする場合のシンタックスが示されている。ここで、各フィールドのセマンティクスは、block information descriptorのgpcc:blockInfo要素の同名属性と同様である。
【0136】
なお、track group機能ではなく、EntityToGroupBoxを用いてグルーピングをシグナルしてもよい。また、精細度情報は、個別のBoxとしてtrackのsample entryにシグナルしてもよい。また、動的に変化する空間位置情報および方向対応情報はsample groupでシグナルしてもよい。
【0137】
さらに、空間位置情報とその空間位置毎の精細度情報を有する新規Boxを定義すると、1 G-PCCストリームの空間位置ごとの精細度情報シグナリングが可能になる。例えば、上述した第1のポイントにおいて、このBoxを参照して、視聴部分が高精細化されているG-PCCストリームを格納しているtrackの選択処理を行ってもよい。
【0138】
図27乃至図29を参照して、空間分割により生成した部分G-PCCストリームを配信する第2のポイントの第2の手法について説明する。
【0139】
図27に示すように、1つのPoint Cloudオブジェクトを、低精細な全体Point Cloudオブジェクトと、その一部分を高精細にするための部分Point Cloudオブジェクトに階層化し、それぞれを符号化して部分G-PCCストリームを生成・配信する方法である。図27には、Point Cloudオブジェクトを、低精細な全体Point Cloudオブジェクトと、2つの部分Point Cloudオブジェクトとに階層化する例が示されている。
【0140】
例えば、一部分を高精細化する部分G-PCCストリームには、以下のバリエーションがある。
・部分G-PCCストリーム単体で高精細となるもの(バリエーション1)
・部分G-PCCストリーム単体では低精細であり、低精細な全体G-PCCストリームと組み合わせる事で高精細な部分を構成するもの(バリエーション2)
なお、バリエーション2の一部分を高精細化する部分G-PCCストリームは、低精細な全体G-PCCストリームとは重複しないポイントを持つ。
【0141】
バリエーション1については、第2のポイントの第1の手法と同様のシグナリングを利用することで、クライアントは、全体G-PCCストリーム、部分G-PCCストリームの空間位置情報、グルーピング情報、および精細度情報を識別でき、視聴部分を高精細にするための全体・部分G-PCCストリームを取得することができる。
【0142】
バリエーション2についても同様のシグナリングを利用することはできるが、クライアントは視聴部分を高精細化するために、組み合わせるべき部分G-PCCストリームと全体G-PCCストリームとを識別することができない。そのため、クライアントは、視聴部分を高精細化するための適切なG-PCCストリームを取得することができない。
【0143】
そこで、組み合わせて高精細化できる部分G-PCCストリームと全体G-PCCストリームとを紐づける情報をシグナルする。これにより、クライアントは、この情報を参照することで、バリエーション2においても視聴部分を高精細にするための部分G-PCCストリームを取得することができる。
【0144】
次に、図28および図29を参照して、DASH MPDの拡張について説明する。
【0145】
例えば、MPEG-DASHで規定されるassociationIdおよびassociationTypeを利用して、組み合わせることで高精細な部分を構成する部分G-PCCストリームと全体G-PCCストリームを紐づける。
【0146】
そして、部分G-PCCストリームのRepresentationにおいて、associationIdには、組み合わせる全体G-PCCストリームのRepresentation@idをシグナルする。さらに、associationTypeには、紐づくRepresentationが部分G-PCCストリームと組み合わせることで高精細化が可能な全体G-PCCストリームであることを示す”pbas”をシグナルする。
【0147】
また、両者を組み合わせた結果としての精細度情報を、上述した第2のポイントの第1の手法で定義したlod information descriptorを拡張し、gpcc:combinedAreaLodInfoでシグナルする。さらに、combined_rep_id属性には、組み合わせる全体G-PCCストリームのRepresentation@idをシグナルし、lod_ranking属性では、両者を組み合わせた結果としての精細度情報をシグナルする。
【0148】
図28には、組み合わせられる各G-PCCストリームの空間位置情報のシグナリングの一例が示されており、図28において、太字で記載されている個所に、組み合わせられる各G-PCCストリームの空間位置情報がシグナルされている。
【0149】
図29には、図28に示すようにシグナリングされる空間位置情報のイメージ図が示されている。
【0150】
なお、associationId, associationTypeによる紐づけがなされていない場合、部分G-PCCストリーム単体で高精細となることを示す。
【0151】
また、部分G-PCCストリームが低精細であり、単独での再生を禁止したい場合、associationIdの代わりにdependencyIdで紐づける。または、SupplementalPropertyもしくはEssentialPropertyを用い、単独再生を禁止するdescriptorを定義してもよい。
【0152】
さらに、associationId、associationTypeを用いて、全体G-PCCストリームから部分G-PCCストリームを参照してもよい。
【0153】
このシグナリングにより、クライアントは組み合わせて視聴部分を高精細化するための適切なG-PCCストリーム取得することができる。
【0154】
なお、このシグナリングは、低精細な部分G-PCCストリーム同士を組み合わせることで高精細な部分を構成する場合にも、利用可能である。
【0155】
次に、図30および図31を参照して、ISOBMFFの拡張について説明する。
【0156】
図30に示すように、ISOBMFFファイルの各trackに階層化で生成した部分G-PCCストリームを格納する。このとき、ISOBMFFで定義されているtrack referenceの仕組みを利用することで、組み合わせることで高精細な部分を構成する部分G-PCCストリームと全体G-PCCストリームを紐づける。なお、reference_typeは’pbas’とする。
【0157】
例えば、track#3は、低精細な全体G-PCCストリーム、track#1およびtrack#2は、それぞれ全体Point Cloudオブジェクトの異なる部分に相当する部分G-PCCストリームを格納している。そして、reference_type=’pbas’のtrefにより、track#3の全体G-PCCストリームと組み合わせて高精細な部分を構成することが示されている。
【0158】
これにより、クライアントは、このtrack referenceのシグナリングにより、組み合わせて視聴部分を高精細化するための適切なG-PCCストリームを格納するtrackを選択、再生することができる。
【0159】
さらに、複数のG-PCCストリームを組み合わせた結果としての精細度情報をシグナルするCombinedAreaLodInfoBox(‘cloi’)を新規定義して、上述した第2のポイントの第1の手法で定義したBlockGroupBoxにシグナルする。
【0160】
図31には、CombinedAreaLodInfoBox(‘cloi’)のシンタックスが示されている。
【0161】
図31に示すように、combined_track_idフィールドで示されるtrackと組み合わせたときの精細度情報を、lod_rankingフィールドでシグナルする。lod_rankingフィールドのセマンティクスは、上述した第1のポイントのDirectionInformationBoxの同名フィールドと同様である。
【0162】
なお、上述した第2のポイントは、G-PCCのみではなく、Video based PCC (V-PCC)符号化されたストリームや、meshストリームおよびtextureストリームで構成されるものなど、3Dオブジェクト全般に適用可能である。
【0163】
<第1および第2のポイントの変形例>
ここで、第1および第2のポイントの変形例について説明する。
【0164】
例えば、第1のポイントにおいて、Voxelを区切る細かさを変更し、精細度を変える単位が、Point Cloudオブジェクトの中で独立してエンコードおよびデコードできるポイントの集合であってもよい。このポイントの集合をbrickと呼ぶ。なお、brickは、現在MPEGで議論中の符号化ツールであるtileとしてもよい。tileはsliceの集合であり、sliceは独立してエンコードおよびデコードできるポイントの集合である(上述の非特許文献2参照)。
【0165】
また、第2のポイントにおいて、部分G-PCCストリームが1つ、もしくは複数のbrickから構成されるように符号化されていてもよい。
【0166】
いずれの場合も、第1および第2のポイントで上述したようなシグナリングが適用可能である。
【0167】
さらに、1 G-PCCストリームを複数のbrickから構成されるように符号化することで、視聴部分に相当するbrickから優先的にデコード、レンダリングすることが可能になる。これは、デコードおよびレンダリングのパフォーマンスの低いクライアントにとって価値のあるユースケースである。
【0168】
また、従来のようにMPEGにおけるtileを用いる技術では、G-PCCストリーム内のbrickデータの空間位置情報はG-PCCストリームにシグナルすることが想定されている。この場合、視聴部分に相当するbrickデータにアクセスするには、一度G-PCCストリームをデコードする必要があり、処理のオーバーヘッドが大きい。また、視聴部分に相当するbrickを選択・デコードする場合において、上述した第2のポイントの第1の手法と同様に、brickの空間位置情報を、G-PCCストリーム内のbrickを構成するデータ単位で紐づける必要がある。
【0169】
そこで、図32乃至図37を参照して、brickの空間位置情報を、G-PCCストリーム内のbrickを構成するデータ単位で紐づけるためのISOBMFFの拡張について説明する。
【0170】
例えば、ISOBMFFで定義されているsample groupの機能を利用し、brickの空間位置情報を、G-PCCストリーム内のbrickを構成するデータ単位で紐づけることができる。具体的には、brickごとの空間位置情報をシグナルするBrickGroupEntryと、そのbrickごとの空間位置情報をG-PCCストリーム内のbrickを構成するデータ単位で紐づけるためのUnitMapEntryを新たに定義する。
【0171】
図32には、BrickGroupEntryのシンタックスが示されており、図33には、UnitMapEntryのシンタックスが示されている。
【0172】
図32および図33に示すシンタックスにおいて、BrickGroupEntryのbrick_offset_x, brick_offset_y, brick_offset_z, brick_size_x, brick_size_y, brick_size_zのセマンティクスは、上述した第2のポイントの第1の手法におけるBlockGroupBoxのblock_offset_x, block_offset_y, block_offset_z, block_size_x, block_size_y, block_size_zとそれぞれ同一である。
【0173】
また、UnitMapEntryのunit_indexは、groupIDで紐づくBrickGroupEntryが適用されるG-PCCストリーム内のbrickを構成するデータ単位のインデックス情報を示す。
【0174】
このunit_indexは、groupIDで紐づくBrickGroupEntryが適用されるG-PCCストリーム内のbrickを構成するGeometry bitstreamおよびAttribute bitstreamについて、それぞれを構成するデータ単位ごとに割り当てられてもよい。
【0175】
なお、MPEGで議論中の符号化ツールであるtileを適用する場合、BrickGroupEntryのbrick_offset_x, brick_offset_y, brick_offset_z, brick_size_x, brick_size_y, brick_size_zでシグナルされる領域は、tileのbounding boxの領域、または、複数tileのbounding boxの合計領域と一致する。
【0176】
図34には、BrickGroupEntryおよびUnitMapEntryの運用例が示されている。
【0177】
図34に示すように、G-PCCストリームの1 Point Cloudフレームを1 ISOBMFF sampleとし、brickを構成するデータ単位はGeometry bitstream (Geom)と紐づく、1つまたは複数のAttribute bitstream (Attr)である。
【0178】
例えば、クライアントが視聴部分に相当するbrickのみデコードしようとする場合、まず、grouping_type=’blif’のSampleGroupDescriptionBoxの各BrickGroupEntryを参照し、所望のbrickのgroupIDを識別する。次に、grouping_type=’unim’のSampleToGroupBoxおよびSampleGroupDescriptionBoxを参照し、各sampleが紐づくUnitMapEntryに所望のbrickのgroupIDのunit_indexが含まれていれば、sample内のそのunitのみデコードする。
【0179】
このシグナリングにより、図35に示すように、オブジェクトの動きに合わせて動的にbrick構成を変更し、空のbrickをなくすことができる。
【0180】
そして、これらのシグナリングを参照することで、視聴部分に相当するbrickデータに直接アクセスし、優先的にデコード、レンダリングすることが可能になる。
【0181】
さらに、変形例として、brickごとに分割して個別にISOBMFF trackに格納してもよい。例えば、brick base trackおよびbrick trackの2種類を定義する。
【0182】
brick base trackは、G-PCCストリームは格納せず、そのsample entryに全体G-PCCストリームのproile,level、およびbrick trackに格納されるG-PCCストリームをデコードするために必要な共通のパラメータセットを格納する。なお、sample entryのタイプは、’gpbb’とする。
【0183】
brick trackは、1つまたは複数のbrickからなるG-PCCストリームを格納し、そのsample entryに、trackに格納するG-PCCストリームのprofile, level、および格納するG-PCCストリームのみのデコードに必要なパラメータセットを格納する。なお、sample entryのタイプは、’gpcb’とする。
【0184】
さらに、brick base trackからbrick trackへreference_type=’gpbt’のtrack referenceをシグナルし、brick trackからbrick base trackへreference_type=’gpbb’のtrack referenceをシグナルする。
【0185】
図36には、brick base trackおよびbrick trackの構成図が示されている。
【0186】
図36に示すようなシグナリングにより、brick trackに格納されるパラメータセット、および紐づくbrick base trackに格納されるパラメータセットを参照することで、brick trackを単独デコードできる。つまり、視聴部分に相当するbrickデータを含むbrick trackを選択し、優先的にデコード、レンダリングすることが可能になる。
【0187】
さらに、brick base trackから参照されるbrick trackに格納されるG-PCCストリームのsampleをもとに全体G-PCCストリームを再構成し、single decoderでデコードできる。
【0188】
なお、各brick trackをtrack groupまたはEntityToGroupBoxでグルーピングし、brick base trackからのtrack referenceで、track groupの場合にはtrack_group_idを参照し、EntityToGroupの場合にはgorup_idを参照してもよい。
【0189】
このようなISOBMFF拡張によるシグナリングは、brickで構成されるストリームのみでなく、上述した第2のポイントで言及した部分G-PCCストリームに対しても同様に適用可能である。この際、brickをblockとみなせばよい。
【0190】
また、図37に示すように、brickの空間位置情報(brick_offset_x, brick_offset_y, brick_offset_z, brick_size_x, brick_size_y, brick_size_z)を、elementary streamのhigh level syntaxを拡張してシグナルしてもよい。
【0191】
例えば、G-PCCストリーム中のbrickを構成するデータユニットは、brick_idを通じて空間位置情報と紐づけられる。
【0192】
これにより、クライアントは、G-PCCストリームをデコードする際、このbrick_inventoryを参照することで全体のbrick構成を容易に識別でき、brick_idを通じて視聴部分に相当するbrickのデータユニットを識別して、デコードすることができる。
【0193】
<第3のポイント>
図38乃至図43を参照して、Point Cloudオブジェクトの低精細な部分のレンダリング処理を指定する第3のポイントについて説明する。
【0194】
例えば、Point Cloudオブジェクトについて、低精細な部分をそのままレンダリングすると、例えば、Point Cloudオブジェクトの反対側が透けて見えるなど、主観品質が低下する。このとき、低精細な部分のポイントのサイズを大きくするなどしてレンダリングすることで、主観品質を向上できる。
【0195】
従って、コンテンツ生成側が、低精細な部分の主観品質向上のために必要なレンダリング処理を指定し、クライアント側でそのレンダリング処理を実行することで、コンテンツ生成側の意図に沿った形で、Point Cloudオブジェクトの低精細な部分の主観品質を向上することができる。
【0196】
しかしながら、主観品質向上のためのレンダリングに必要なパラメータはG-PCCストリーム内にシグナルすることが想定されており、クライアントはG-PCCストリーム選択時において、主観品質向上レンダリング処理が必要か否か識別できない。
【0197】
そのため、レンダリング処理の実行が必要か否かを識別できるのはストリーム取得後になってしまい、クライアントが主観品質向上のためのレンダリング処理に非対応であった場合には、適切なレンダリングを実行することができない。もしくは、主観品質向上のためのレンダリング処理不要な別のストリーム取得し直すことになり、処理効率が低下することになる。
【0198】
従って、低精細なG-PCCストリームの主観品質向上のためのレンダリング処理が必要か否かを識別するための情報をシグナルすることによって、適切なレンダリングを実行できないことや、処理効率が低下することなど回避することができる。
【0199】
これにより、クライアントは自身の主観品質向上レンダリング処理能力を考慮し、処理できるならば低精細なG-PCCストリームを取得し、主観品質向上レンダリング処理を行うことで、主観品質は維持しつつ、G-PCCストリーム配信に必要なネットワーク帯域幅を削減することができる。
【0200】
ここで、DASH MPDの拡張について説明する。
【0201】
例えば、G-PCCストリームのレンダリング処理方法を、rendering information descriptor (schemeIdUri=”urn:mpeg:mepgI:gpcc:rendering_information:2018”のEssentialProperty)を新規定義して、Representationにシグナルする。
【0202】
そして、gpcc:renderingInfo要素のtype属性で、レンダリング処理方法をシグナルする。type=0のときは、一般的な処理手法である、Voxel形状でレンダリングすることを示し、type=1のときは、G-PCCストリーム内でシグナルされたパラメータに従いレンダリング処理を実行すること示す。G-PCCストリーム内のパラメータは、例えば、Voxelに内接する球としてレンダリングする、等である。
【0203】
図38には、レンダリング処理方法のシグナリングする一例が示されており、図38において、太字で記載されている個所にレンダリング処理方法がシグナルされている。
【0204】
例えば、主観品質向上レンダリング処理に対応しているクライアントであれば、帯域が狭い場合において、id=1-3のRepresentation、つまり、より低精細なストリームを取得でき、G-PCCストリーム配信に必要なネットワーク帯域幅を削減できる。
【0205】
なお、gpcc:renderingInfo要素のtypeでシグナルされた処理を強制するのではなく、コンテンツ生成側のおすすめ処理としてもよい。
【0206】
次に、ISOBMFFの拡張について説明する。
【0207】
例えば、ISOBMFF trackにおいて、主観品質向上レンダリング処理の情報をポストデコーディング処理情報としてシグナルする。
【0208】
具体的には、sample entry下の、ISOBMFFで定義されたRestrictedSchemeInformationBox (‘rinf’) を用いる。rinfは、デコード後のポストプロセス情報を格納するBoxである。rinf下のSchemeTypeBox (‘schm’) のscheme_typeは、主観品質向上レンダリング情報が格納されていることを示すために、’rndi’とする。
【0209】
図39には、RenderingInformationBoxのシグナル例が示されている。
【0210】
図39に示すように、SchemeInformationBox (‘schi’)は、schmのscheme_typeで指定された情報が格納されるBoxであり、scheme_type=’rndi’に対応するRenderingInformationBox (‘rndi’) をシグナルされる。
【0211】
図40には、RenderingInformationBoxのシンタックスの一例が示されている。
【0212】
なお、typeフィールドのセマンティクスは、rendering information descriptorのgpcc:renderingInfo要素の同名属性と同様である。
【0213】
図40に示すようなシグナリングにより、クライアントはrndiのtypeを識別でき、適切なレンダリング処理を実行できる。また、rndiのtypeでシグナルされるレンダリング処理を実行できない場合には、そのtrackを選択せず、同一ISOBMFFファイル内の他のtrackを選択するという処理が可能になる。
【0214】
ここで、第3のポイントの変形例について説明する。
【0215】
例えば、上述した第2のポイントの第2の手法のように階層化により生成した部分G-PCCストリーム配信に対して適用する場合、他のG-PCCストリームと組み合わせて高精細化される部分は、主観品質向上のためのレンダリング処理が不要である。この時、クライアントはPoint Cloudオブジェクトの部分ごとに主観品質向上のためのレンダリング処理を変更する必要がある。よって、適切なレンダリング処理を実行できるクライアントのみが前述のG-PCCストリームを取得できるようにするための情報を付加する。
【0216】
例えば、他のG-PCCストリームと組み合わせることで高精細化される部分の処理タイプをシグナルすることができる。
【0217】
ここで、DASH MPDの拡張について説明する。
【0218】
例えば、rendering information descriptorを拡張し、他のG-PCCストリームと組み合わせることで高精細化される部分の処理タイプをシグナルする。
【0219】
具体的には、gpcc:combinedAreaRenderingInfo要素を追加し、そのcombined_rep_id属性で組み合わせるG-PCCストリームのRepresentation@idをシグナルする。また、gpcc:combinedAreaRenderingInfo要素のtype属性で、組み合わせることで高精細化される部分の処理タイプをシグナルする。なお、セマンティクスはgpcc:renderingInfo要素のtype属性と同一である。
【0220】
図41には、高精細化される部分の処理タイプのシンタックスが示されている。図41において太字で記載されている個所に、高精細化される部分の処理タイプがシグナルされている。
【0221】
図41に示すシグナリングにより、gpcc:renderingInfo要素とgpcc:combinedAreaRenderingInfo要素のtypeを踏まえ、クライアント処理能力、例えば、Point Cloudオブジェクトの部分ごとに主観品質向上のためのレンダリング処理を変更して適用できるクライアントであれば、より低精細なストリームを取得できる。
【0222】
次に、ISOBMFFの拡張について説明する。
【0223】
例えば、前述のRenderingInformationBox (‘rndi’)を拡張し、combined_track_existsフィールド、comnbined_track_idフィールド、およびcombined_area_typeフィールドをシグナルする。
【0224】
また、combined_track_existsフィールドは、組み合わせることで高精細な部分を構成するG-PCCストリームにreference_type = ’pbas’のtrack referenceで紐づいているか否かを示す。また、combined_trak_idフィールドは、組み合わせるG-PCCストリームのtrack_idをシグナルする。combined_area_typeフィールドで、組み合わせることで高精細化される部分の処理タイプをシグナルする。
【0225】
これにより、クライアントは、これらの情報を識別し、適切なレンダリング処理を実行することができる。
【0226】
図42には、combined_track_existsフィールド、comnbined_track_idフィールド、およびcombined_area_typeフィールドを追加したシンタックスが示されている。図42において太字で記載されている個所に、combined_track_existsフィールド、comnbined_track_idフィールド、およびcombined_area_typeフィールドがシグナルされている。
【0227】
さらに、組み合わせることで高精細化される部分について、位置が一致し、重なるポイントがある場合において、組み合わせるG-PCCストリームのどちらのポイントをレンダリングするかの情報をシグナルしてもよい。この情報により、クライアントはコンテンツ生成側の意図に沿ったレンダリングを実行することが可能となる。
【0228】
具体的には、RenderingInformationBoxをさらに拡張し、priority_flagフィールドを追加する。そして、priority_flag=1の場合には、そのRenderingInformationBoxを持つtrackのG-PCCストリームがcombined_track_idのtrackのG-PCCストリームよりもレンダリングの優先度が高いことを示し、重なるポイントについては、priority_flag=1のtrackのG-PCCストリームのポイントのみレンダリングされる。一方、priority_flag=0の場合には逆に、重なるポイントについてはcombined_track_idのtrackのG-PCCストリームのポイントのみレンダリングされる。
【0229】
図43には、priority_flagフィールドを追加したシンタックスが示されており、図43において太字で記載されている個所に、priority_flagフィールドがシグナルされている。
【0230】
ここで、図44には、上述したSample Group概要が示されている。
【0231】
図44に示すSampleToGroupBoxのgrouping_typeは、紐づけられるSampleGroupDescriptionBoxのgrouping_typeを示す。また、1 entryにつき、sample_countとgroup_description_indexがシグナルされる。そして、group_description_indexは、紐づくGroupEntryのindexを示し、sample_countは、そのGroupEntryに属するsample数を示す。
【0232】
以上のように、本技術は、Point CloudオブジェクトをGeometryベースで符号化したPoint CloudストリームであるG-PCCストリームを、ユーザの視聴部分に応じて配信する際に、第1のポイントとして、1つのPoint Cloudオブジェクトの部分毎に精細度を変えて符号化したG-PCCストリームを配信することができる。または、第2のポイントとして、1つのPoint Cloudオブジェクトを複数の部分オブジェクトに分割し、それらの部分オブジェクトそれぞれの精細度を変えて符号化した部分G-PCCストリームを配信することができる。
【0233】
そして、第1のポイントでG-PCCストリームを配信するときに、G-PCCストリームに対して高精細となっている方向情報および精細度情報を付加することにより、クライアントは、それらの情報を参照し、視聴部分が高精細となるG-PCCストリームを取得することができる。
【0234】
または、第2のポイントで部分G-PCCストリームを配信するときに、各部分G-PCCストリームに対して空間位置情報および精細度情報を付加することにより、クライアントは、それらの情報を参照し、視聴部分が高精細となるよう部分G-PCCストリームを取得することができる。
【0235】
さらに、第3のポイントとして、低精細な部分、つまり、ポイントが疎になっている部分の主観的品質を向上させるために有効なレンダリング処理が必要か否かの情報を付加することができる。これにより、クライアントは、そのレンダリング処理の実行が可能であれば、より低精細な部分を含むG-PCCストリームを取得することで、G-PCCストリーム配信に必要なネットワーク帯域幅を削減することができる。
【0236】
なお、これらの付加される情報は、DASH MPDまたはISOBMFFを拡張することによりシグナルされる。
【0237】
そして、以上のようなポイントによって、ユーザの視聴部分が高精細となり、ユーザの視聴部分以外は低精細となるようにG-PCCストリームを配信することで、ネットワーク帯域幅を有効活用し、高品位、つまり途切れず高精細なG-PCCストリーム配信を実現することができる。
【0238】
<コンピュータの構成例>
次に、上述した一連の処理(情報処理方法)は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。
【0239】
図45は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示すブロック図である。
【0240】
プログラムは、コンピュータに内蔵されている記録媒体としてのハードディスク105やROM103に予め記録しておくことができる。
【0241】
あるいはまた、プログラムは、ドライブ109によって駆動されるリムーバブル記録媒体111に格納(記録)しておくことができる。このようなリムーバブル記録媒体111は、いわゆるパッケージソフトウェアとして提供することができる。ここで、リムーバブル記録媒体111としては、例えば、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory),MO(Magneto Optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリ等がある。
【0242】
なお、プログラムは、上述したようなリムーバブル記録媒体111からコンピュータにインストールする他、通信網や放送網を介して、コンピュータにダウンロードし、内蔵するハードディスク105にインストールすることができる。すなわち、プログラムは、例えば、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、コンピュータに無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送することができる。
【0243】
コンピュータは、CPU(Central Processing Unit)102を内蔵しており、CPU102には、バス101を介して、入出力インタフェース110が接続されている。
【0244】
CPU102は、入出力インタフェース110を介して、ユーザによって、入力部107が操作等されることにより指令が入力されると、それに従って、ROM(Read Only Memory)103に格納されているプログラムを実行する。あるいは、CPU102は、ハードディスク105に格納されたプログラムを、RAM(Random Access Memory)104にロードして実行する。
【0245】
これにより、CPU102は、上述したフローチャートにしたがった処理、あるいは上述したブロック図の構成により行われる処理を行う。そして、CPU102は、その処理結果を、必要に応じて、例えば、入出力インタフェース110を介して、出力部106から出力、あるいは、通信部108から送信、さらには、ハードディスク105に記録等させる。
【0246】
なお、入力部107は、キーボードや、マウス、マイク等で構成される。また、出力部106は、LCD(Liquid Crystal Display)やスピーカ等で構成される。
【0247】
ここで、本明細書において、コンピュータがプログラムに従って行う処理は、必ずしもフローチャートとして記載された順序に沿って時系列に行われる必要はない。すなわち、コンピュータがプログラムに従って行う処理は、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含む。
【0248】
また、プログラムは、1のコンピュータ(プロセッサ)により処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
【0249】
さらに、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、すべての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
【0250】
また、例えば、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。
【0251】
また、例えば、本技術は、1つの機能を、ネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
【0252】
また、例えば、上述したプログラムは、任意の装置において実行することができる。その場合、その装置が、必要な機能(機能ブロック等)を有し、必要な情報を得ることができるようにすればよい。
【0253】
また、例えば、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。換言するに、1つのステップに含まれる複数の処理を、複数のステップの処理として実行することもできる。逆に、複数のステップとして説明した処理を1つのステップとしてまとめて実行することもできる。
【0254】
なお、コンピュータが実行するプログラムは、プログラムを記述するステップの処理が、本明細書で説明する順序に沿って時系列に実行されるようにしても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで個別に実行されるようにしても良い。つまり、矛盾が生じない限り、各ステップの処理が上述した順序と異なる順序で実行されるようにしてもよい。さらに、このプログラムを記述するステップの処理が、他のプログラムの処理と並列に実行されるようにしても良いし、他のプログラムの処理と組み合わせて実行されるようにしても良い。
【0255】
なお、本明細書において複数説明した本技術は、矛盾が生じない限り、それぞれ独立に単体で実施することができる。もちろん、任意の複数の本技術を併用して実施することもできる。例えば、いずれかの実施の形態において説明した本技術の一部または全部を、他の実施の形態において説明した本技術の一部または全部と組み合わせて実施することもできる。また、上述した任意の本技術の一部または全部を、上述していない他の技術と併用して実施することもできる。
【0256】
<構成の組み合わせ例>
なお、本技術は以下のような構成も取ることができる。
(1)
Point Cloudデータを3次元構造ベースで符号化してPoint Cloudデータ符号化ストリームを生成する際に、前記Point Cloudデータが複数の部分に分割された個々の部分となる部分Point Cloudデータそれぞれの空間上の位置を示す空間位置情報と、それらの部分Point Cloudデータをグルーピングするグルーピング情報とを含むファイルを生成するファイル生成部
を備える情報処理装置。
(2)
前記ファイル生成部により生成された前記ファイルは、前記Point Cloudデータのローカル座標系を基準に前記部分Point Cloudを表示するのに必用となる方向を示す方向対応情報をさらに含む
上記(1)に記載の情報処理装置。
(3)
前記ファイル生成部により生成された前記ファイルは、動的に変化する前記空間位置情報をさらに含む
上記(2)に記載の情報処理装置。
(4)
前記ファイル生成部により生成された前記ファイルは、動的に変化する前記方向対応情報をさらに含む
上記(2)に記載の情報処理装置。
(5)
前記ファイル生成部により生成された前記ファイルは、DASH MPD(Dynamic Adaptive Streaming over HTTP Media Presentation Description)、または、ISOBMFF(ISO Base Media File Format)構造を有するファイルである
上記(3)または(4)に記載の情報処理装置。
(6)
前記部分は、前記Point Cloudデータの中で独立してエンコードおよびデコードできるポイントの集合であるbrickで構成されており、
前記ファイル生成部により生成された前記ファイルは、前記brickの空間位置情報を、前記Point Cloudデータのストリーム内の前記brickを構成するデータ単位で紐づける情報をさらに含む
上記(1)から(5)までのいずれかに記載の情報処理装置。
(7)
前記部分Point Cloudデータは、前記Point Cloudデータの中で独立してエンコードおよびデコードできるポイントの集合であるbrickで構成されており、
前記ファイル生成部により生成された前記ファイルは、前記brickの空間位置情報を、前記部分Point Cloudデータのストリーム内の前記brickを構成するデータ単位で紐づける情報をさらに含む
上記(1)から(6)までのいずれかに記載の情報処理装置。
(8)
前記部分Point Cloudデータは、前記Point Cloudデータの中で独立してエンコードおよびデコードできるポイントの集合であるbrickで構成されており、
前記ファイル生成部により生成された前記ファイルは、前記brickの空間位置情報を、前記部分Point Cloudデータのストリーム内の前記brickを構成するデータ単位で紐づける情報をさらに含む
上記(1)から(7)までのいずれかに記載の情報処理装置。
(9)
情報処理装置が、
Point Cloudデータを3次元構造ベースで符号化してデータ符号化ストリームを生成する際に、前記Point Cloudデータが複数の部分に分割された個々の部分となる部分Point Cloudデータそれぞれの空間上の位置を示す空間位置情報と、それらの部分Point Cloudデータをグルーピングするグルーピング情報とを含むファイルを生成すること
を含む情報処理方法。
(10)
Point Cloudデータを3次元構造ベースで符号化してPoint Cloudデータ符号化ストリームを生成する際に、符号化された部分の精細度を示す部分精細度情報を生成する符号化部を備え、
前記符号化部は、前記部分精細度情報に基づいて、前記Point Cloudデータのローカル座標系を基準に、相対的に高画質である領域についての方向を示す方向情報を生成する
情報処理装置。
(11)
前記符号化部により生成された前記部分精細度情報および前記方向情報を含むファイルを生成するファイル生成部
をさらに備える上記(10)に記載の情報処理装置。
(12)
前記ファイル生成部により生成された前記ファイルは、DASH MPD、または、ISOBMFF構造を有するファイルである
上記(11)に記載の情報処理装置。
(13)
前記ファイル生成部により生成された前記ファイルは、前記Point Cloudデータが複数の部分に分割された個々の部分となる部分Point Cloudデータについて、組み合わせることで高精細化できる前記部分Point Cloudデータの紐づけ情報をさらに含む
上記(12)に記載の情報処理装置。
(14)
前記ファイル生成部により生成された前記ファイルは、組み合わせられた前記部分Point Cloudデータの精細度を示す精細度情報をさらに含む
上記(13)に記載の情報処理装置。
(15)
前記ファイル生成部により生成された前記ファイルは、低精細な前記部分をレンダリングするためのレンダリング処理情報をさらに含む
上記(11)から(14)までのいずれかに記載の情報処理装置。
(16)
前記ファイル生成部により生成された前記ファイルは、前記部分ごとに異なる主観品質向上のために必要なレンダリング処理を示す主観品質向上レンダリング処理情報をさらに含む
上記(15)に記載の情報処理装置。
(17)
情報処理装置が、
Point Cloudデータを3次元構造ベースで符号化してデータ符号化ストリームを生成する際に、符号化された部分の精細度を示す部分精細度情報を生成すること
を含み、
前記部分精細度情報に基づいて、前記Point Cloudデータのローカル座標系を基準に、相対的に高画質である領域についての方向を示す方向情報が生成される
情報処理方法。
【0257】
なお、本実施の形態は、上述した実施の形態に限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。また、本明細書に記載された効果はあくまで例示であって限定されるものではなく、他の効果があってもよい。
【符号の説明】
【0258】
11 データ生成装置, 12 データ再生装置, 21 制御部, 22 メモリ, 23 ファイル生成部, 31 データ入力部, 32 データ符号化・生成部, 33 MPDファイル生成部, 34 記録部, 35 出力部, 36 前処理部, 37 符号化部, 38 ファイル生成部, 41 制御部, 42 メモリ, 43 再生処理部, 51 取得部, 52 表示制御部, 53 データ解析・復号部, 54 表示部, 55 ファイル解析部, 56 復号部, 57 表示情報生成部
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13
図14
図15
図16
図17
図18
図19
図20
図21
図22
図23
図24
図25
図26
図27
図28
図29
図30
図31
図32
図33
図34
図35
図36
図37
図38
図39
図40
図41
図42
図43
図44
図45