処理中

しばらくお待ちください...

設定

設定

1. WO2020008758 - 情報処理装置および情報処理方法、並びにプログラム

Document

明 細 書

発明の名称 情報処理装置および情報処理方法、並びにプログラム

技術分野

0001  

背景技術

0002   0003   0004   0005   0006  

先行技術文献

特許文献

0007  

非特許文献

0008  

発明の概要

発明が解決しようとする課題

0009   0010  

課題を解決するための手段

0011   0012   0013  

発明の効果

0014   0015  

図面の簡単な説明

0016  

発明を実施するための形態

0017   0018   0019   0020   0021   0022   0023   0024   0025   0026   0027   0028   0029   0030   0031   0032   0033   0034   0035   0036   0037   0038   0039   0040   0041   0042   0043   0044   0045   0046   0047   0048   0049   0050   0051   0052   0053   0054   0055   0056   0057   0058   0059   0060   0061   0062   0063   0064   0065   0066   0067   0068   0069   0070   0071   0072   0073   0074   0075   0076   0077   0078   0079   0080   0081   0082   0083   0084   0085   0086   0087   0088   0089   0090   0091   0092   0093   0094   0095   0096   0097   0098   0099   0100   0101   0102   0103   0104   0105   0106   0107   0108   0109   0110   0111   0112   0113   0114   0115   0116   0117   0118   0119   0120   0121   0122   0123   0124   0125   0126   0127   0128   0129   0130   0131   0132   0133   0134   0135   0136   0137   0138   0139   0140   0141   0142   0143   0144   0145   0146   0147   0148   0149   0150   0151   0152   0153   0154   0155   0156   0157   0158   0159   0160   0161   0162   0163   0164   0165   0166   0167   0168   0169   0170   0171   0172   0173   0174   0175   0176   0177   0178   0179   0180   0181   0182   0183   0184   0185   0186   0187   0188   0189   0190   0191   0192   0193   0194   0195   0196   0197   0198   0199   0200   0201   0202   0203   0204   0205   0206   0207   0208   0209   0210   0211   0212   0213   0214   0215   0216   0217   0218   0219   0220   0221   0222   0223   0224   0225   0226   0227   0228   0229   0230   0231   0232   0233   0234   0235   0236   0237   0238   0239   0240   0241   0242   0243   0244   0245   0246   0247   0248   0249   0250   0251   0252   0253   0254   0255   0256   0257   0258   0259   0260   0261   0262   0263   0264  

符号の説明

0265  

請求の範囲

1   2   3   4   5   6   7   8   9   10   11   12   13   14   15   16   17   18   19   20  

補正された請求の範囲(条約第19条)

1  *   2  *   3  *   4  *   5  *   6  *   7  *   8  *   9  *   10  *   11  *   12  *   13  *   14  *   15  *   16  *   17  *   18  *   19  *   20  *   21  *   22  *  

図面

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   46   47   48   49   50   51   52   53   54   55   56   57   58  

明 細 書

発明の名称 : 情報処理装置および情報処理方法、並びにプログラム

技術分野

[0001]
 本開示は、情報処理装置および情報処理方法、並びにプログラムに関し、特に、処理を簡潔に行うことができるようにした情報処理装置および情報処理方法、並びにプログラムに関する。

背景技術

[0002]
 従来、非特許文献1で開示されているように、3次元空間上に位置情報および属性情報(特に色情報)を同時に持った点の集合であるPoint Cloudの圧縮方法が規定されている。
[0003]
 また、非特許文献2には、Point Cloudの圧縮方法の一つとして、Point Cloudを複数の領域に分割(以下、セグメンテーションと称する)し、領域毎に平面投影してtexture画像およびgeometry画像を生成した後、それらを動画コーデックにより符号化する方法が開示されている。ここで、geometry画像は、Point Cloudを構成する点群のdepth情報から構成される画像である。
[0004]
 このようなPoint Cloudの圧縮方法は、PCC TMC2(Point Cloud Coding Test Model Category 2)と呼ばれている。また、PCC TMC2によって生成されたPoint Cloudのstream(以下、PC streamとも称する)の構造は、非特許文献3に開示されている。
[0005]
 そして、このようなPC streamを、over IP networkで配信するユースケースが期待されている。そこで、非特許文献4で開示されているように、既存の配信プラットフォームへのインパクトを抑制し、早期のサービス実現を目指すべく、MPEG(Moving Picture Experts Group)において、既存の枠組みであるISOBMFF/DASH(ISO Base Media File Format / Dynamic Adaptive St reaming over HTTP)による配信技術についての検討が開始された。
[0006]
 また、特許文献1では、3次元画像データを、サイドバイサイド方式やトップアンドボトム方式などでパッキングして記録する画像処理装置が開示されている。

先行技術文献

特許文献

[0007]
特許文献1 : 特開2011-142586号公報

非特許文献

[0008]
非特許文献1 : MPEG-I Part5 Point Cloud Compression (ISO/IEC 23090-5)
非特許文献2 : w17348, PCC Test Model Category 2 v1, January 2018, Gwangju, Korea
非特許文献3 : w17374, First Working Draft for PCC Category 2, January 2018, Gwangju, Korea
非特許文献4 : w17675, First idea on Systems technologies for Point Cloud Coding, April 2018, San Diego, US

発明の概要

発明が解決しようとする課題

[0009]
 ところで、上述の非特許文献3で開示されているようなPC streamの構造では、通常再生時にランダムアクセスが多量に発生することになり、Point Cloudを再生するクライアント側における処理が複雑なものとなるため、処理が遅延したり、処理コストが増大したりすることが懸念される。
[0010]
 本開示は、このような状況に鑑みてなされたものであり、処理を簡潔に行うことができるようにするものである。

課題を解決するための手段

[0011]
 本開示の一側面の情報処理装置は、3次元構造を表す3Dデータを2次元に変換することによって、少なくとも第1の画像および第2の画像と、前記第1の画像および前記第2の画像を3次元に構築するのに必要な3次元情報メタデータとが得られ、特定時刻に表示される前記3Dデータを構成する1単位のファイルを、前記第1の画像および前記第2の画像を前記3次元情報メタデータに基づいて3次元に再現して再生する際に必要な再生順に従って、前記第1の画像および前記第2の画像と前記3次元情報メタデータとを格納して生成するファイル生成部を備える。
[0012]
 本開示の一側面の情報処理方法またはプログラムは、3次元構造を表す3Dデータを2次元に変換することによって、少なくとも第1の画像および第2の画像と、前記第1の画像および前記第2の画像を3次元に構築するのに必要な3次元情報メタデータとが得られ、特定時刻に表示される前記3Dデータを構成する1単位のファイルを、前記第1の画像および前記第2の画像を前記3次元情報メタデータに基づいて3次元に再現して再生する際に必要な再生順に従って、前記第1の画像および前記第2の画像と前記3次元情報メタデータとを格納して生成することを含む。
[0013]
 本開示の一側面においては、3次元構造を表す3Dデータを2次元に変換することによって、少なくとも第1の画像および第2の画像と、第1の画像および第2の画像を3次元に構築するのに必要な3次元情報メタデータとが得られ、特定時刻に表示される3Dデータを構成する1単位のファイルが、第1の画像および第2の画像を3次元情報メタデータに基づいて3次元に再現して再生する際に必要な再生順に従って、第1の画像および第2の画像と3次元情報メタデータとを格納して生成される。

発明の効果

[0014]
 本開示の一側面によれば、処理を簡潔に行うことができる。
[0015]
 なお、ここに記載された効果は必ずしも限定されるものではなく、本開示中に記載されたいずれかの効果であってもよい。

図面の簡単な説明

[0016]
[図1] Point Cloudの圧縮方法を説明する図である。
[図2] PC streamの構造を示す図である。
[図3] GOFの構造を示す図である。
[図4] geometry video streamおよびtexture video streamの構造を示す図である。
[図5] 新たに定義するPC sampleの構造を示す図である。
[図6] PC sampleの一例を示す図である。
[図7] PC headerに格納される情報の一例を示す図である。
[図8] headerに格納される情報の一例を示す図である。
[図9] GOF headerに格納される情報の一例を示す図である。
[図10] PC streamをISOBMFFの1 trackに格納する際の一例を示す図である。
[図11] codec_specific_parametersの定義を示す図である。
[図12] PCSampleEntryの構造を示す図である。
[図13] PCHeaderBoxの一例を示す図である。
[図14] SubSampleEntryBoxの一例を示す図である。
[図15] LayerCompositionBoxの一例を示す図である。
[図16] num_layer_composed=2かつnum_of_component=2のPC sampleの一例を示す図である。
[図17] PCファイル生成処理を実行する情報処理装置の第1の構成例を示すブロック図である。
[図18] Point Cloud再生処理を実行する情報処理装置の第1の構成例を示すブロック図である。
[図19] PCファイル生成処理の第1の処理例を説明するフローチャートである。
[図20] Point Cloud再生処理の第1の処理例を説明するフローチャートである。
[図21] 第1の格納方法におけるISOBMFF構造の一例を示す図である。
[図22] enhancement trackからbase trackへ、track referenceによる紐づけについて説明する図である。
[図23] パッキングのバリエーションを示す図である。
[図24] elementary streamのシグナリングの一例を示す図である。
[図25] 新たに定義するSEIの一例を示す図である。
[図26] packing_arrangementおよびframe0_is_geometryの定義を説明する図である。
[図27] frame0の定義を示す図である。
[図28] PC streamをISOBMFFの1 trackに格納する際の一例を示す図である。
[図29] PCPackingInfoBoxの一例を示す図である。
[図30] packed PCファイル生成処理を実行する情報処理装置の第2の構成例を示すブロック図である。
[図31] Point Cloud再生処理を実行する情報処理装置の第2の構成例を示すブロック図である。
[図32] packed PCファイル生成処理の第2の処理例を説明するフローチャートである。
[図33] Point Cloud再生処理の第2の処理例を説明するフローチャートである。
[図34] PCPackingInfoBoxの変形例を示す図である。
[図35] 第2の格納方法におけるISOBMFF構造の一例を示す図である。
[図36] elementary streamのシグナリングの一例を示す図である。
[図37] ISOBMFFのシグナリングの一例を示す図である。
[図38] GOFEntry()の定義を示す図である。
[図39] PCFrameEntry()の定義を示す図である。
[図40] ComponentGroupEntry()の定義を示す図である。
[図41] sampleのインターリーブ周期の識別について説明する図である。
[図42] 第3の格納方法におけるISOBMFF構造の一例を示す図である。
[図43] SEIを用いずにシグナルする例について説明する図である。
[図44] ISOBMFFのシグナリングの一例を示す図である。
[図45] PCMultiStreamBoxのシンタックスの一例を示す図である。
[図46] PCMultiStreamBoxの変形例を示す図である。
[図47] PCTextureTrackGroupのシンタックスの一例を示す図である。
[図48] PCMultiStreamBoxの変形例を示す図である。
[図49] track groupで紐づくgeometry trackとtexture trackをシグナルする例を示す図である。
[図50] 新たに定義されるPCStreamGroupBoxの一例を示す図である。
[図51] 第4の格納方法におけるISOBMFF構造の一例を示す図である。
[図52] DASHのシグナリングについて説明する図である。
[図53] DASHのシグナリングについて説明する図である。
[図54] SubSampleInformationBoxの概要を示す図である。
[図55] Sample Groupの概要を示す図である。
[図56] データ生成装置の構成例を示すブロック図である。
[図57] データ再生装置の構成例を示すブロック図である。
[図58] 本技術を適用したコンピュータの一実施の形態の構成例を示すブロック図である。

発明を実施するための形態

[0017]
 以下、本技術を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
[0018]
 <従来の符号化方法>
 本技術を適用した符号化方法について説明する前に、図1乃至図4を参照して、従来の符号化方法について説明する。
[0019]
 図1は、上述した非特許文献2で開示されているPoint Cloudの圧縮方法を、簡略的に説明するための図である。
[0020]
 図1に示すように、まず、3次元構造を表すPoint Cloudが入力され、そのPoint Cloudがセグメンテーションされる。図1に示す例では、半球形状と円錐形状とが組み合わされた3次元構造を表すPoint Cloudが入力され、半球形状を1領域に、円錐形状を2領域に分割した3つの領域にセグメンテーションが行われる。次に、領域ごとに平面投影が行われ、それぞれの領域の表面の見た目を表す色情報からなるtexture画像、および、それぞれの領域の表面までの奥行(depth)を表す位置情報からなるgeometry画像が生成される。そして、texture画像およびgeometry画像が、例えば、AVC(Advanced Video Coding)やHEVC(High Efficiency Video Coding)などの動画像コーデックで符号化される。
[0021]
 図2は、PC streamの構造を示す図である。
[0022]
 図2に示すように、PC streamは1 streamで構成されており、Group of Frames(GOF)という単位において、特定の時間幅で連続的に表示される複数のPoint Cloud frameの構成要素がまとめられている。ここで、Point Cloud frame(以下、PC frameとも称する)は、同時刻に表示されるPoint Cloudのことである。
[0023]
 そして、GOFは、texture画像が符号化されたtexture video stream、geometry画像が符号化されたgeometry video stream、および、2D3D変換に用いる3次元情報メタデータ(auxiliary patch infoおよびoccupancy map)から構成される。ここで、geometry video streamおよびtexture video streamは、(PC streamのframe rate)×(GOF時間幅)×N個(layerの数)の複数のframeを持つ。そして、PC streamの1 frameにつき、geometry video streamおよびtexture video streamは、それぞれN個のframeを持つという特徴がある。これは、Point Cloudの厚み方向の層構造を表現するためである。つまり、それぞれN個のframeから、PC frameが構成されることを意味する。
[0024]
 例えば、クライアントは、PC stream内のgeometry video streamおよびtexture video streamをデコードし、occupancy mapを用いてgeometryパッチとtextureパッチを生成する。その後、クライアントは、auxiliary patch infoを用いて、まずはgeometryパッチから色のないPoint Cloudを生成し、続いて、そのPoint Cloud に対してtextureパッチにより色を付ける。
[0025]
 図3には、従来のPC streamにおけるGOFの構造が示されており、layer数が2である例が示されている。
[0026]
 図3に示すように、従来、特定の時間幅の中で表示されるPC frameがストリーム内で連続配置されない構造となっている。つまり、従来のPC streamでは、PC frame#1の再生に必要な要素と、PC frame#2の再生に必要な要素とが、互いに前後になるように配置される構造となっている。このため、例えば、PC frame#1の再生に必要な要素であるgeometry frame#1 layer0,geometry frame#1 layer1,auxiliary patch info & occupancy map#1,texture frame#1 layer0,texture frame#1 layer1にアクセスし、その後、PC frame#2の再生に必要な要素にアクセスする場合、texture frame#1 layer1より前方の位置に配置されているgeometry frame#2 layer0からアクセスを開始するような処理が発生してしまう。従って、上述したように、通常再生時にランダムアクセスが多量に発生してしまう。
[0027]
 この点で、図3に示すPC stream構造は、既存のビデオコーデックのストリーム構成とも異なっており、ISOBMFFへの格納およびover IP(Internet Protocol)での配信に適していない。
[0028]
 例えば、上述した非特許文献4では、geometry video streamとtexture video streamとを、streamごとに独立したものとして取り扱い、個別のtrackに格納する手法が開示されている。しかしながら、この手法においても、通常再生時にランダムアクセスが多量に発生することになってしまう。
[0029]
 また、この非特許文献4で開示されている手法は、図4に示すように、geometry video streamおよびtexture video streamを取得する際、各streamのbitrateをネットワーク帯域幅に応じて選択し、最適な品質のPCCを再構成するというユースケースに有用である。これは、サーバに多数のsingle stream(bitrateの異なるgeometry video streamとtexture video streamとの組み合わせ)を配置する負担がなくなるからである。
[0030]
 そこで、以下で説明する実施の形態は、このようなユースケースを実現する上で、PC streamを構成するgeometry video streamとtexture video streamとの紐づけ方法を新たに定義することで、クライアントにおける処理を簡潔に行うことができるようにするものである。
[0031]
 <ISOBMFF格納のためのPC sample定義>
 図5を参照して、ISOBMFF格納のために新たに定義するPoint Cloud sample(以下、PC sampleと称する)について説明する。
[0032]
 図5は、新たに定義するPC sampleの構造を示す図である。
[0033]
 まず、同時刻に表示されるPoint Cloudを構成する単位を1 PC frameと呼び、1 PC frameは1 PC sampleから構成されると定義する。そして、geometry画像およびtexture画像を3次元情報メタデータに基づいて3次元に再現して再生する際に必要な再生順に従って、geometry画像およびtexture画像と3次元情報メタデータとを、ISOBMFFの1 trackに格納する。このように定義することで、クライアントは、1 PC sampleをデコードすることによって同時刻に表示されるPoint Cloudを構成可能となる。これにより、クライアントは、上述したような通常再生中に多量のランダムアクセスが発生することを回避することができ、処理を簡潔に行うことができるため、例えば、処理の遅延や処理コストの増大などを回避することができる。
[0034]
 このように定義されたPC streamは、複数のPC sampleの連続で構成される。
[0035]
 図5に示すように、1 PC sampleは、複数のcomponentと3次元情報メタデータとで構成される。ここで、componentには、texture画像およびgeometry画像が含まれる。また、3次元情報メタデータは、auxiliary patch infoおよびoccupnacy map、並びにPC headerからなる。
[0036]
 また、1つのcomponentは、複数のsubsampleから構成される。つまり、1つのcomponentは、N個(layer)のgeometry subsample、および、N個(layer)のtexture subsampleから構成される。
[0037]
 そして、geometry subsamplesおよびtexture subsamplesは、それぞれ個別に動画コーデックで符号化される。ここで、subsampleは、geometry video streamおよびtexture video streamの1 pictureを構成する単位となる。
[0038]
 また、PC headerは、componentのlayer構造を示す情報を持つ。また、occupancy mapは、componentのピクチャ内のパッチ位置情報を持ち、auxiliary patch infoは、パッチを3Dオブジェクトに張り付けるための2D3D変換情報を持つ。
[0039]
 なお、GOF情報は、PC header内に含まれるが、PC sample内に個別にGOF headerをシグナルしてもよい。また、PC headerやauxiliary patch infoおよびoccupancy mapなどのような3次元情報メタデータを、subsampleとしてもよい。
[0040]
 <第1の格納方法>
 図6乃至図19を参照して、ISOBMFFの1 trackにPC streamを格納する方法である第1の格納方法について説明する。
[0041]
 図6乃至図9を参照して、elementary streamのシグナリングについて説明する。
[0042]
 図6には、layer数が2であり、かつ、符号化に用いた動画コーデックがAVCまたはHEVCである場合におけるPC sample(即ち、ISOBMFFのsample)の一例が示されている。ここで、図6に示されているAUD(Access Unit Delimiter)は、AVCまたはHEVCのaccess unit境界にシグナルされるNAL(Network Abstraction Layer) unitである。
[0043]
 図6に示すPC sampleは、PC headerに続いて、layer0のgeometry subsample、layer1のgeometry subsample、layer0のtexture subsample、およびlayer1のtexture subsampleが連続的に配置された構成となっている。
[0044]
 図7には、図6のPC headerに格納される情報の一例が示されている。
[0045]
 図7に示すように、PC headerには、例えば、PC sampleのサイズを示す情報(size_of_pc_frame)、および、1PC frameを構成するtexture画像またはgeometry画像のlayer数を示す情報(number_of_layer)が格納される。また、PC headerには、geometry画像またはtexture画像の幅を示す情報(frameWidth)、geometry画像またはtexture画像の高さを示す情報(frameHeight)、および、occupnacy mapの解像度を示す情報(occupancyResolution)が格納される。さらに、PC headerには、平滑化のための近傍点を検出する半径を示す情報(radiusToSmoothing)、平滑化に使用する近傍点の最大数を示す情報(neighborCountSmoothing)、境界点を検出する半径を示す情報(radius2BoundaryDetection)、および、平滑化閾値を示す情報(thresholdSmoothing)が格納される。
[0046]
 図8には、図6のheaderに格納される情報の一例が示されている。
[0047]
 図8に示すように、headerには、texture画像またはgeometry画像のsubsampleのサイズを示す情報(size_of_sample)、subsampleのタイプを示す情報(type)、および、subsampleのlayer識別子(layer_id)が格納される。例えば、subsampleのタイプを示す情報が0である場合、subsampleがgeometry画像であることを示し、subsampleのタイプを示す情報が1である場合、subsampleがtexture画像であることを示す。
[0048]
 また、occupancy mapおよびauxiliary patch infoは、geometry subsampleにSEI (Supplemental Enhancement Infromation)として含まれる。
[0049]
 これらのシグナリングによれば、クライアントは、PC headerからPC sampleの境界を識別可能であり、headerから各componentのsubsampleの境界を識別可能である。従って、クライアントは、それらの境界に従って、PC sampleからgeometry video streamおよびtexture video streamを抽出し、それぞれデコーダに入力してデコード処理を実施することができる。
[0050]
 なお、occupancy mapおよびauxiliary patch infoは、layer間で同じであれば同一の情報が各layerのsubsampleにシグナルされる。但し、layerごとに、その情報が異なっていてもよい。また、SEIは、texture subsampleにシグナルされてもよい。
[0051]
 また、PC streamのGOF先頭に、公知のGOF headerをシグナルしてもよい。
[0052]
 図9には、GOF headerに格納される情報の一例が示されている。
[0053]
 図9に示すように、GOF headerには、例えば、Group of Frames内のフレーム数を示す情報(group0fFramesSize)が格納される。その他、GOF headerには、図7に示したPC headerと同じ情報が格納される。
[0054]
 なお、occupancy mapを動画コーデックで符号化し、componentの一種として、occupancy subsampleとしてもよい。
[0055]
 図10乃至図16を参照して、ISOBMFFのシグナリングについて説明する。
[0056]
 図10には、PC streamをISOBMFFの1 trackに格納する際の一例が示されている。
[0057]
 例えば、ISOBMFFのmoovには、新たに定義するPCSampleEntry(図12参照)が格納され、PCSampleEntryは、図13に示すPCHeaderBox、図14に示すSubSampleEntryBox、および、図15に示すLayerCompositionBoxからなる。
[0058]
 また、ISOBMFFのmoofには、subs(SubSampleInformationBox)が格納され、図10に示すように、SubSampleInformationBoxを利用して、PC sample内のgeometry subsampleとtexture subsampleとの境界をシグナルすることができる。なお、SubSampleInformationについては、後述の図54に示すSubSampleInformationBoxの概要を参照して説明する。
[0059]
 そして、ISOBMFFのmdatに格納されるsampleとして、図6に示したようなPC sampleが格納される。
[0060]
 ここで、SubSampleInformationBoxにおいて、符号化コーデックごとに決まるsubsampleの情報であるcodec_specific_parametersが定義される。
[0061]
 即ち、図11に示すように、codec_specific_parametersの値が0であるとき、subsampleはgeometry subsampleであることを示し、codec_specific_parametersの値が1であるとき、subsampleはtexture subsampleであることを示す。
[0062]
 なお、codec_specific_parametersにlayer識別子の情報を含んでもよい。また、subsample informationは、連続するgeometry subsample群、texture subsample群の単位で提供されてもよい。さらに、occupancy mapやauxiliary patch infoなどのような3次元情報メタデータをSEIとしてシグナルせず、componentの一種としsubsampleとしてシグナルする場合は、subsample informationに、それぞれのsubsampleを示す値を追加してもよい。
[0063]
 図12には、本開示で新たに定義するPCSampleEntryの構造が示されている。
[0064]
 図12に示す構成において、PC streamを格納するISOBMFFのtrackのsample entryは、例えば、'pcbs'となる。
[0065]
 図13に示すように、PCHeaderBoxには、図7に示したPC headerと同一の情報が記述される。
[0066]
 例えば、PC stream内でPC header情報が変化する場合、PCHeaderBoxの情報をsample groupとしてシグナルしてもよい。また、GOF headerの情報は、PCHeaderBoxと個別に、sample entryやsample groupなどにシグナルしてもよい。なお、Sample Groupについては、後述の図55に示すSample Groupの概要を参照して説明する。
[0067]
 また、このとき、PC sample内のPC headerおよびheaderはシグナルされなくてもよい。
[0068]
 そして、これらのシグナリングによれば、クライアントはsubsampleの中身をパースすることなく、PC sampleの境界および各componentのsubsampleの境界を識別可能である。つまり、クライアントは、システムレイヤのシグナリングのみを参照するという簡略化された処理で、PC sampleからgeometry video streamおよびtexture video streamを抽出し、それぞれデコーダに入力してデコード処理を実施することができる。
[0069]
 図14に示すように、SubSampleEntryBoxは、連続するsubsampleで構成されるtexture video stream、geometry video streamのコーデック、および、decoder configuration情報をシグナルする。
[0070]
 図14に示すnum_of_componentは、trackに格納されるcomponentの総数を示し、typeフィールドは、sub sample entryが対応するcomponentの種類を表す。例えば、typeフィールドが0である場合、sub sample entryが対応するcomponentの種類はgeometry画像であることを示し、typeフィールドが1である場合、sub sample entryが対応するcomponentの種類はtexture画像であることを示す。SampleEntry()は、componentの符号化コーデックに応じて変化し、例えば、HEVC符号化されている場合にはHEVCSampleEntryとなる。
[0071]
 また、各sub sample entryが対応するsubsampleへの紐づけは、sub sample informationのcodec_specific_parametersおよびsub sample entryのtypeでシグナルされるcomponentの種類によって行われる。なお、componentのtypeごとに、符号化コーデックを変更してもよい。
[0072]
 このシグナリングによれば、クライアントは、geometry video streamおよびtexture video streamのコーデックを識別し、正しくデコード処理を実行することができる。
[0073]
 図15に示すように、LayerCompositionBoxは、composition timeが同一となるlayer数、および、PC sampleを構成するcomponentの数をシグナルする。
[0074]
 例えば、num_layer_composedは、output orderで1 PC frameを構成するdecoded picture数を示す。また、num_of_componentは、1 PC frameを構成するcomponent数を示す。
[0075]
 なお、上述したようにsample entryにシグナルする例について説明したが、この場所に限らず、例えばSubSampleEntryBoxにシグナルされてもよい。このシグナリングによれば、異なるcomposition timeが割り当てられている各componentの各layerのsubsampleにおいて、同時刻に表示されるPoint Cloudを構成し、同時にレンダリングすべきsubsampleを明示的に示すことができる。これにより、クライアントは、正しくPoint Cloudを構成してレンダリングすることができる。
[0076]
 図16には、output orderで1 PC frameを構成するdecoded picture数が2(num_layer_composed=2)であって、かつ、1 PC frameを構成するcomponent数がgeometry画像とtexture画像との2(num_of_component=2)である、合計4 subsamplesから構成されるPC sampleの一例が示されている。このようなPC sampleについては、図15に示したLayerCompositionBoxの情報により、4 subsamplesから構成されることが示される。
[0077]
 なお、component数が1であって、layer数が2である構成は、従来の技術、例えば、ステレオ映像におけるtemporal interleavingと同様の考え方となる。しかしながら、本技術は、component数が複数であって、layer数が複数である構成への対応を可能としている点で、そのような構成への対応ができない従来の技術とは異なるものである。
[0078]
 <情報処理装置の第1の構成例>
 図17は、コンテンツを提供するサーバ側で、Point CloudコンテンツからPC streamを生成し、そのPC streamをISOBMFFに格納したPCファイルを生成するPCファイル生成処理を実行する情報処理装置の第1の構成例を示すブロック図である。
[0079]
 図17に示すように、情報処理装置11は、3D2D変換部21、符号化部22、PC stream生成部23、およびファイル生成部24を備えて構成される。
[0080]
 3D2D変換部21は、入力されるPoint Cloudを2次元に変換することによって、geometry画像およびtexture画像と、3次元情報メタデータ(auxiliary patch infoおよびoccupancy map)とを生成して、符号化部22に供給する。
[0081]
 符号化部22は、geometry画像と3次元情報メタデータから、3次元情報メタデータをSEIとして含むgeometry video streamを符号化し、texture画像からtexture video streamを符号化する。例えば、符号化部22AVCおよびHEVCといったnon-layered coding、または、SVCやSHEVCなどのようなlayered codingで符号化を行う。このとき、符号化部22は、2台のエンコーダ25-1および25-2によって、geometry画像の符号化とtexture画像の符号化とを並列的に行うことができる。
[0082]
 PC stream生成部23は、符号化部22により符号化されたgeometry video streamおよびtexture video streamを、PC frameを構成する単位でインターリーブし、図5に示したようなPC sampleを生成する。そして、PC stream生成部23は、複数のPC sampleからなるPC streamを生成して、ファイル生成部24に供給する。
[0083]
 ファイル生成部24は、geometry画像およびtexture画像を3次元情報メタデータに基づいて3次元に再現して再生する際に必要な再生順に従って、geometry画像およびtexture画像と3次元情報メタデータとを、ISOBMFFの1 trackに格納し、PCファイルを生成する。
[0084]
 このように構成される情報処理装置11は、Point CloudコンテンツからPC streamを生成し、そのPC streamをISOBMFFの1 trackに格納したPCファイルを出力することができる。
[0085]
 図18は、コンテンツを再生するクライアント側で、PCファイルから表示画像を生成してPoint Cloudを再生するPoint Cloud再生処理を実行する情報処理装置の第1の構成例を示すブロック図である。
[0086]
 図18に示すように、情報処理装置12は、抽出部31、復号部32、2D3D変換部33、および表示処理部34を備えて構成される。
[0087]
 抽出部31は、ISOBMFFのBoxでシグナルされる情報をもとに、PCファイルから、再生時刻に対応するgeometry video streamおよびtexture video streamを抽出して復号部32に供給する。
[0088]
 復号部32は、抽出部31から供給されるgeometry video streamおよびtexture video streamを復号して、2D3D変換部33に供給する。このとき、復号部32は、2台のデコーダ35-1および35-2によって、geometry画像の復号とtexture画像の復号とを並列的に行うことができる。
[0089]
 2D3D変換部33は、geometry video streamに含まれるSEI情報をもとに、Point Cloudを構築する。
[0090]
 表示処理部34は、2D3D変換部33により構築されたPoint Cloudを、クライアントの表示デバイスに合わせてレンダリングし、表示画像を生成して、図示しない表示デバイスに表示させる。
[0091]
 このように構成される情報処理装置12は、PCファイルからPoint Cloudを再生して、Point Cloudをレンダリングした表示画像を表示させることができる。
[0092]
 <PCファイル生成処理およびPoint Cloud再生処理の第1の処理例>
 図19は、図17の情報処理装置11が、Point CloudからPCファイルを生成するPCファイル生成処理を説明するフローチャートである。
[0093]
 例えば、情報処理装置11にPoint Cloudの入力が行われると処理が開始され、ステップS11において、3D2D変換部21は、入力されるPoint Cloudから、geometry画像、texture画像、および3次元情報メタデータを生成する。
[0094]
 ステップS12において、符号化部22は、ステップS11で3D2D変換部21により生成されたgeometry画像および3次元情報メタデータから、3次元情報メタデータをSEIとして含むgeometry video streamを符号化し、texture画像からtexture video streamを符号化する。
[0095]
 ステップS13において、PC stream生成部23は、PC frameを構成する単位(PC sample)でインターリーブし、PC streamを生成する。
[0096]
 ステップS14において、ファイル生成部24は、PC streamを、3次元情報メタデータを含むBoxをシグナルしたISOBMFFに格納し、PCファイルを生成する。このとき、ISOBMFFのsampleはPC sampleとなる。
[0097]
 図20は、図18の情報処理装置12が、PCファイルから表示画像を生成して再生するPoint Cloud再生処理を説明するフローチャートである。
[0098]
 例えば、情報処理装置12へPCファイルの先端から供給が始まると処理が開始され、ステップS21において、抽出部31は、ISOBMFFのBoxでシグナルされる情報をもとに、PCファイルから、再生時刻に対応するgeometry video streamおよびtexture video streamを抽出する。
[0099]
 ステップS22において、復号部32は、geometry video streamおよびtexture video streamを、それぞれ個別に復号する。このとき、geometry video streamおよびtexture video streamは2デコーダインスタンスによる個別のデコードとなる。
[0100]
 ステップS23において、2D3D変換部33は、geometry video streamに含まれるSEI情報をもとに、Point Cloudを構築する。
[0101]
 ステップS24において、表示処理部34は、クライアントの表示デバイスに合わせ、Point Cloudをレンダリングして表示画像を表示させる。
[0102]
 ステップS25において、抽出部31は、PC streamの終端か否かを判定し、PC streamの終端でない場合には処理はステップS21に戻り、PC streamの終端である場合には、処理は終了される。
[0103]
 以上のようなPCファイル生成処理およびPoint Cloud再生処理によって、クライアント側における処理が簡潔に行えるようにすることができる。
[0104]
 ここで、図21には、第1の格納方法でPC streamをISOBMFFの構造に格納したときのISOBMFF構造の一例が示されている。
[0105]
 なお、変形例として、第1の格納方法でPC streamをISOBMFFの構造に格納する際に、後述の第3の格納方法におけるISOBMFFのシグナリングと同様に、Group of Framesの境界を、sample groupを用いてシグナルしてもよい。また、elementary streamの符号化において、AVCおよびHEVCといったnon-layered codingではなく、SVC(Scalable Video Coding)やSHEVC(Scalable High Efficiency Video Coding)などのようなlayered codingを用いてもよい。
[0106]
 例えば、geometry video streamおよびtexture video streamのlayer 0はbase layerとして符号化され、geometry video streamおよびtexture video streamのlayer 1はenhancement layerとして符号化される。
[0107]
 即ち、図22に示すように、ISOBMFFの1 trackに1 layerが格納される場合には、enhancement trackには、enhancement layerのgeometry video streamおよびtexture video streamが格納され、base trackには、base layerのgeometry video streamおよびtexture video streamが格納される。そして、enhancement trackからbase trackへ、track reference(参照タイプ'sbas')で紐づけが行われる。このとき、base trackのsample entryはPCSampleEntry('pcbs')とし、enhancement trackのsample entryはPCEnhancementSampleEntry('penh')とする。例えば、enhancement trackは、layer数分に応じて存在する。
[0108]
 ここで、例えば、各trackに格納されているlayerが、layer 0およびlayer 1のどちらであるかを示すために、PC sample内のheaderでシグナルされるlayer識別子(例えば、図8のlayer_id)を、各trackのsample entryでシグナルしてもよい。または、PC sample内のheaderそのものを、各trackのsample entryに格納してもよい。
[0109]
 <第2の格納方法>
[0110]
 図23乃至図35を参照して、geometry/texture video streamを1 streamにパッキングしてISOBMFFの1 trackに格納する方法である第2の格納方法について説明する。
[0111]
 上述した第1の格納方法では、符号化前のtexture画像およびgeometry画像をインターリーブし、一つのvideo streamとして符号化することで、1デコーダによるデコード処理を実現することは可能である。しかしながら、そのような符号化では、texture画像とgeometry画像との間に相関が少ないことより、圧縮効率が悪化してしまう。
[0112]
 また、第1の格納方法では、生成されたシングルストリームを1デコーダでデコードすることも可能である。しかしながら、符号化されたtexture画像とgeometry画像との境界でデコーダの初期化が必要となることより、オーバーヘッドが大きくなってしまう。
[0113]
 つまり、第1の格納方法では、PCファイル生成処理において、texture video streamおよびgeometry video streamを個別に符号化し、Point Cloud再生処理において、geometry video streamおよびtexture video streamに対して2デコーダインスタンスによる個別のデコードが必要であった。このため、第1の格納方法を、1デコーダインスタンスによるデコードに適用すると、圧縮効率が悪化してしまい、また、オーバーヘッドが大きくなってしまう。
[0114]
 そこで、第2の格納方法では、複数の画像を、上述した特許文献1に記載の方法などで1つの画像にパッキングし、符号化してPC streamを構成する。例えば、複数componentの画像を1つの画像にパッキングしたり、複数layerの画像を1つの画像にパッキングしたり、複数componentの複数layerの画像を1つの画像にパッキングすることができる。これにより、上述したような圧縮効率の悪化を回避しつつ、クライアントによる1デコーダインスタンスでのデコード処理を可能にする。なお、パッキングの方法としては、side by sideやtop & bottomなどの方法を採用するだけでなく、その他の方法を採用してもよい。
[0115]
 図23を参照して、パッキングのバリエーションについて説明する。
[0116]
 図23のAには、side by sideの方法で、同一のlayerを異なるcomponentどうしで1つの画像にパッキングする例が示されている。即ち、layer 0のtexture画像とlayer 0のgeometry画像とをside by sideで1つの画像にパッキングし、layer 1のtexture画像とlayer 1のgeometry画像とをside by sideで1つの画像にパッキングする。
[0117]
 図23のBには、side by sideの方法で、同一のcomponentの画像を異なるlayerどうしで1つの画像にパッキングする例が示されている。即ち、layer 0のtexture画像とlayer 1のtexture画像とをside by sideで1つの画像にパッキングし、layer 0のgeometry画像とlayer 1のgeometry画像とをside by sideで1つの画像にパッキングする。
[0118]
 なお、図23のBに示すパッキングでは、1デコーダインスタンスでのデコード処理は可能であるものの、上述したようにtexture画像とgeometry画像との間に相関が少ないため、圧縮効率の悪化を改善することにはならない。しかしながら、layer間で画像の相関が高い場合においては、パッキングされた画像内で参照関係を持たせることで、符号化効率の向上を図ることができる。なお、図23のBに示すパッキングは、後述する第4の格納方法のように、geometry video streamおよびtexture video streamを分割してtrackに格納する場合において有効なパッキングとなる。
[0119]
 図23のCには、side by sideの方法で、同一のcomponentの画像を異なるlayerどうしで1つの画像にパッキングした2枚の画像を、top & bottomの方法で1つの画像にパッキングすることで、全てのcomponentにおける全てのlayerの画像を1つの画像にパッキングする例が示されている。即ち、layer 0のtexture画像とlayer 1のtexture画像とをside by sideで1つの画像にパッキングするとともに、layer 0のgeometry画像とlayer 1のgeometry画像とをside by sideで1つの画像にパッキングする。そして、それらの2つの画像を、top & bottomで1つの画像にパッキングすることで、layer 0のtexture画像、layer 1のtexture画像、layer 0のgeometry画像、およびlayer 1のgeometry画像が1つの画像にパッキングされる。
[0120]
 ここで、以下、図23を参照して説明したように、複数の画像をパッキングした1枚の画像をpacked PC画像と称する。そして、packed PC画像の連続を符号化したものを、packed PC streamと称し、packed PC streamをISOBMFFに格納したものをpacked PCファイルと称する。
[0121]
 なお、ここで説明した第2の格納方法におけるパッキング方法は、geometry画像およびtexture画像のように、それぞれ大きく異なる画像をパッキングする点で、例えば、視差を利用した立体視に関する先行技術であるステレオパッキングとは異なる技術である。
[0122]
 以下では、図23のAに示したように、同一のlayerの画像を異なるcomponentどうしで1つの画像にパッキングしたpacked PC画像を用いた例について説明する。
[0123]
 図24には、elementary streamのシグナリングの一例が示されている。
[0124]
 図24では、layer数が2であり、かつ、符号化に用いた動画コーデックがAVCまたはHEVCの場合におけるPC sampleの一例が示されている。
[0125]
 図24に示すように、geometry画像およびtexture画像を1つの画像にパッキングしたpacked PC streamを構成する1つのpacked PC画像を1 subsampleとしている点で、第1の格納方法(上述の図6参照)とは異なる。
[0126]
 また、第2の格納方法では、headerは、第1の格納方法で定義した情報に加え、subsampleのタイプとしてgeometry+textureをシグナルする。
[0127]
 例えば、図25に示すように、SEIとして、point cloud frame packing SEIを新たに定義してシグナルすることができる。図25に示されているSEIは、geometry画像およびtexture画像のパッキング方法についての情報を持つ。
[0128]
 例えば、図26に示すように、SEIにおいて、packing_arrangementが0である場合、パッキングがside by sideであることを示し、packing_arrangementが1である場合、パッキングがtop & bottomであることを示す。また、packing_arrangementが、その他である場合、パッキングがreservedであることを示す。同様に、SEIにおいて、frame0_is_geometryが0である場合、frame0がgeometryであることを示し、frame0_is_geometryが1である場合、frame0がtextureであることを示す。
[0129]
 ここで、frame0の定義は、図27に示すようになる。例えば、side by sideの場合には、図27のAに示すように、frame0が左側、かつ、frame1が右側となるようにパッキングされる。また、top & bottomの場合には、図27のBに示すように、frame0が上側、かつ、frame1が下側となるようにパッキングされる。
[0130]
 なお、この情報のシグナルはSEIに限らず他の場所でシグナルしてもよく、例えばPC headerでシグナルしてもよい。また、パッキング方法には、side by sideおよびtop & bottom以外の方法を用いてもよい。
[0131]
 また、クロマサブサンプリングが4:2:2や4:2:0などである場合、色差信号間引きを考慮し、パッキングされる各componentの幅および高さを2の倍数のピクセル数とすることで、エンコード処理やcomponent切り出し処理などを容易に行うことができる。また、パッキングされる各componentの幅および高さを、8または16の倍数のピクセル数とすることで、エンコード時のブロックサイズとの親和性を高めることができ、エンコード処理やcomponent切り出し処理などを容易に行うことができる。
[0132]
 以上のように、これらのシグナリングによれば、PC headerからPC sampleの境界を識別可能であり、headerでsubsampleの境界を識別可能である。また、point cloud frame packing SEIからtexture画像およびgeometry画像の分離が可能となる。これにより、クライアントは、subsampleをデコードした後、正しくPoint Cloudを構成してレンダリングが可能となる。
[0133]
 図28には、packed PC画像を符号化したpacked PC streamをISOBMFFの1 trackに格納する際の一例が示されている。
[0134]
 図28に示すように、SubSampleInformationBox('subs')のcodec_specific_parametersの値が2であるとき、subsampleはgeometry&texture subsampleであることを示す。即ち、第2の格納方法では、codec_specific_parametersの値について、図11を参照して説明した0および1に追加して2が用いられる点で、第1の格納方法とは相違する。このように、SubSampleInformationBoxを利用して、PC sample内のgeometry&texture subsampleの境界をシグナルすることができる。なお、SubSampleInformationについては、後述の図54に示すSubSampleInformationBoxの概要を参照して説明する。
[0135]
 また、図29に示すように、図25に示したpoint cloud frame packing SEIと同様に、texture画像およびgeometry画像のパッキング方法についての情報を持つPCPackingInfoBoxがsample entryにシグナルされる。
[0136]
 なお、第2の格納方法においても、第1の格納方法で説明した変形例を、同様に適用することができる。
[0137]
 また、第2の格納方法は、例えば、第1の格納方法でのrestricted schemeとして運用され、sample entryは'resv'となり、SchemeTypeBoxのscheme_typeは'pacp'となる。このとき、ポストデコード処理に使用されるPCPackingInfoBoxは、図28に示したように、rinf/schi下にシグナルされる。
[0138]
 <情報処理装置の第2の構成例>
 図30は、コンテンツを提供するサーバ側で、Point CloudコンテンツからPCファイルを生成するPCファイル生成処理を実行する情報処理装置の第2の構成例を示すブロック図である。なお、図30に示す情報処理装置11Aにおいて、図17の情報処理装置11と共通する構成については、同一の符号を付し、その詳細な説明は省略する。
[0139]
 図20に示すように、情報処理装置11Aは、3D2D変換部21、符号化部22A、PC stream生成部23、ファイル生成部24、およびパッキング処理部26を備えて構成される。
[0140]
 即ち、情報処理装置11Aは、パッキング処理部26を備え、符号化部22Aが1台のエンコーダ25を有する点で、図17の情報処理装置11と異なる構成となっている。
[0141]
 パッキング処理部26は、上述したようなパッキング方法で、texture画像およびgeometry画像、並びに、それらの各layerをパッキングして、packed PC画像を符号化部22Aに供給する。
[0142]
 符号化部22Aは、1台のエンコーダ25でpacked PC画像を符号化することができる。
[0143]
 図31は、コンテンツを再生するクライアント側で、packed PCファイルから表示画像を生成してPoint Cloudを再生するPoint Cloud再生処理を実行する情報処理装置の第2の構成例を示すブロック図である。なお、図31に示す情報処理装置12Aにおいて、図18の情報処理装置12と共通する構成については、同一の符号を付し、その詳細な説明は省略する。
[0144]
 即ち、情報処理装置12Aは、復号部32Aが1台のデコーダ35を有する点で、図18の情報処理装置12と異なる構成となっている。
[0145]
 情報処理装置12Aでは、抽出部31が、ISOBMFFのBoxでシグナルされる情報をもとに、packed PCファイルから、再生時刻に対応するpacked PC streamを抽出し、復号部32Aが、1台のデコーダ35でpacked PC streamを復号することができる。
[0146]
 <packed PCファイル生成処理およびPoint Cloud再生処理の処理例>
 図32は、図30の情報処理装置11Aが、Point Cloudからpacked PC streamを生成し、そのpacked PC streamをISOBMFFに格納したpacked PCファイルを生成するpacked PCファイル生成処理を説明するフローチャートである。
[0147]
 例えば、情報処理装置11AにPoint Cloudの入力が行われると処理が開始され、ステップS31において、3D2D変換部21は、入力されるPoint Cloudから、geometry画像、texture画像、および3次元情報メタデータを生成する。
[0148]
 ステップS32において、パッキング処理部26は、texture画像およびgeometry画像、並びに、それらの各layerをパッキングして、packed PC画像を生成する。
[0149]
 ステップS33において、符号化部22Aは、ステップS32で3D2D変換部21により生成されたpacked PC画像を符号化する。
[0150]
 ステップS34において、PC stream生成部23は、packed PC streamを構成する単位でインターリーブし、3次元情報メタデータおよびパッキング情報をSEIとして含むpacked PC streamを生成する。
[0151]
 ステップS35において、ファイル生成部24はpacked PC streamを、3次元情報メタデータを含むBoxをシグナルしたISOBMFFに格納して、packed PCファイルを生成する。このとき、ISOBMFFのsampleはPC sampleとなる。
[0152]
 図33は、図31の情報処理装置12Aが、packed PCファイルから表示画像を生成して再生するPoint Cloud再生処理を説明するフローチャートである。
[0153]
 例えば、情報処理装置12AへPC streamの先端から供給が始まると処理が開始され、ステップS41において、抽出部31は、ISOBMFFのBoxでシグナルされる情報をもとに、packed PCファイルから、再生時刻に対応するpacked PC streamを抽出する。
[0154]
 ステップS42において、復号部32Aは、packed PC streamを復号する。このとき、packed PC streamは1デコーダインスタンスによるデコードとなる。
[0155]
 ステップS43において、2D3D変換部33は、パッキング情報と、packed PC streamに含まれるSEI情報をもとに、Point Cloudを構築する。
[0156]
 ステップS44において、表示処理部34は、クライアントの表示デバイスに合わせ、Point Cloudをレンダリングして表示画像を表示させる。
[0157]
 ステップS45において、抽出部31は、PC streamの終端か否かを判定し、PC streamの終端でない場合には処理はステップS41に戻り、PC streamの終端である場合には、処理は終了される。
[0158]
 以上のようなpacked PCファイル生成処理およびPoint Cloud再生処理によって、クライアント側における処理が簡潔に行えるようにすることができる。
[0159]
 ここで、図34には、第2の格納方法でpacked PC streamをISOBMFFの構造に格納したときのISOBMFF構造の一例が示されている。
[0160]
 これらのシグナリングによれば、クライアントは、subsampleの中身をパースすることなく、PC sampleの境界および各componentのsubsampleの境界を識別可能である。そして、クライアントは、PCPackingInfoBoxからtexture画像とgeometry画像の分離に必要な情報を取得することができる。従って、クライアントは、システムレイヤのシグナリングのみを参照するという簡略化された処理で、PC sampleからpacked PC streamを抽出してデコード処理を実施する。その後、クライアントは、packed PC画像からgeometry画像とtexture画像とを分離し、Point Cloudを構成してレンダリングを実行することができる。
[0161]
 なお、図23のAに示したパッキングと同様に、例えば、図23のBに示したパッキング、および、図23のCに示したパッキングについても、point cloud frame packing SEI(図25)およびPCPackingInfoBox(図29)によりパッキング方法をシグナルすることができる。これにより、クライアントは、texture画像およびgeometry画像の各layerを分離することが可能となる。
[0162]
 また、point cloud frame packing SEIおよびPCPackingInfoBoxにより、例えば、各componentおよび各layerのピクチャ内における配置や位置、サイズなどをシグナルすることで、自由度のあるパッキングを行うことができる。
[0163]
 図35には、PCPackingInfoBoxの変形例が示されている。
[0164]
 図35に示すように、PCPackingInfoBoxには、例えば、packed PC画像を構成するcomponent数を示す情報(component_num)、packed PC画像を構成するlayer数を示す情報(layer_num)、および、componentの種類を示す情報(component_type)が記述される。例えば、component_typeが0である場合、componentの種類はgeometry画像であること示し、component_typeが1である場合、componentの種類はtexture画像であることを示す。また、PCPackingInfoBoxには、layer識別子(layer_id)、並びに、packed PC画像内においてcomponent_typeおよびlayer_idで示される画像が配置される位置を示す情報(left/top)と、それらのサイズを示す情報(width/height)とが記述される。
[0165]
 なお、例えば、これまで説明したようにgeometry画像およびtexture画像をcomponentとして扱うのに加えて、occupancy mapをcomponentとして扱ってもよい。この場合、occupancy mapも、geometry画像およびtexture画像とともにパッキングすることができる。
[0166]
 <第3の格納方法>
 図36乃至図43を参照して、PC sampleを定義せずPC streamをISOBMFFの1 trackに格納する方法である第3の格納方法について説明する。ここで、第3の格納方法は、上述したようなPC sampleという概念を用いずに、texture subsampleおよびgeometry subsampleをISOBMFFのsampleとして格納する点で、第1の格納方法および第2の格納方法に対する変形例となる。
[0167]
 従って、第3の格納方法におけるelementary streamのシグナリングは、第1の格納方法におけるelementary stream(図6参照)および第2の格納方法におけるelementary stream(図24参照)と同一の構造となる。但し、第3の格納方法では、1SOBMFFにおけるsampleをgeometry subsampleおよびtexture subsampleと定義する。そして、1SOBMFFにおけるsampleと定義されたgeometry subsampleをgeometry sampleと称し、1SOBMFFにおけるsampleと定義されたtexture subsampleをtexture sampleと称する。
[0168]
 図36には、第3の格納方法におけるelementary streamのシグナリングの一例として、第1の格納方法におけるelementary streamと同様の構造が示されている。
[0169]
 図37には、ISOBMFFのシグナリングの一例が示されている。
[0170]
 例えば、図37に示すように、sample groupを用いて、Group of Framesの境界(GOFEntry)、PC frameの境界(PCFrameEntry)、texture samplesの境界、geometry samplesの境界、およびtexture&geometry samplesの境界(ComponentGroupEntry)をシグナルすることができる。なお、Sample Groupについては、後述の図55に示すSample Groupの概要を参照して説明する。
[0171]
 そして、各sampleは、SampleToGroupBox ('sbgp')を通じて、SampleGroupDescriptionBox ('sgpd')でシグナルされる各SampleGroupEntryに紐づけられる。なお、sgpdは、MovieBox ('moov')内のSampleTableBox ('stbl')にシグナルされてもよい。
[0172]
 ここで、図38乃至図40に、新たに定義したGroupEntryを示す。
[0173]
 図38に示すようにGOFEntryは定義され、grouping_type_parameter='gofg'とする。
[0174]
 なお、GOFEntryの各fieldのセマンティクスは、上述の図9に示したGOF headerの各fieldと同一である。
[0175]
 図39に示すようにPCFrameEntryは定義され、grouping_type_parameter='pcfg'とする。
[0176]
 例えば、PCFrameEntryにおけるsize_of_pc_frameフィールドは、PC frameのサイズを示す。また、number_of_componentフィールドは、PC frameを構成するcomponentの数を示し、具体的には、geometry画像およびtexture画像から構成される場合には、2となる。
[0177]
 図40に示すようにComponentGroupEntryは定義され、grouping_type_parameter='cmpg'とする。
[0178]
 例えば、ComponentGroupEntryにおけるtypeフィールドは、このsample groupに属するsampleのcomponentの種類を示す。具体的には、typeフィールドが0である場合には、componentの種類がgeometry画像であることを示し、typeフィールドが1である場合には、componentの種類がtexture画像であることを示す。また、typeフィールドが2である場合には、componentの種類がgeometry&texture(第2の格納方法)であることを示す。
[0179]
 なお、occupancy mapやauxiliary patch infoなどのような3次元情報メタデータをSEIとしてシグナルせずにcomponentの一種として扱う場合、typeフィールドに、それぞれのcomponentの種類を示す値を追加してもよい。
[0180]
 また、ComponentGroupEntryにおけるnumber_of_layerフィールドは、componentのlayer数を示す。
[0181]
 さらに、ComponentGroupEntryの代わりに、GeometryGroupEntryおよびTextureGroupEntryを定義してもよい。そして、GeometryGroupEntryによりgeometry samplesの境界をシグナルし、TextureGroupEntryによりtexture samplesの境界をシグナルすることができる。
[0182]
 また、occupancy mapやauxiliary patch infoなどのような3次元情報メタデータをSEIとしてシグナルせず、componentの一種とし、sampleとしてシグナルする場合は、それぞれのsamplesの境界をシグナルするGroupEntryを定義してもよい。そして、GroupEntryにより、それぞれのsamplesの境界を示してもよい。
[0183]
 なお、第2の格納方法のように、各componentおよび各layerが1つの画像にパッキングされた場合には、sample entryにPCPackingInfoBoxがシグナルされる。
[0184]
 ここで、第3の格納方法において、ISOBMFFに格納されるストリームはAVCやHEVC,SVC,SHEVCなどに準拠させることができ、その場合、これらのコーデックのrestricted schemeとして運用することができる。例えば、sample entryは'resv'になり、SchemeTypeBoxのscheme_typeは'pcbs'になり、OriginalFormatBoxのdata_formatは用いられたコーデックによって、avc1やhev1などになる。
[0185]
 そして、これらの新たに定義された複数のBoxは、ポストデコード処理に使用されるという位置づけになり、図37に示すrinf/schi下にシグナルされる。さらに、このrinf/schiには、第1の格納方法で説明したPCHeaderBoxおよびLayerCompositionBoxも、図示するようにシグナルされる。
[0186]
 また、例えば、texture video streamおよびgeometry video streamが各2 layerで構成されている場合、120pのvideo streamは30pのPC streamに相当する。
[0187]
 これにより、図41に示すように、クライアントは、(LayerCompositionBoxのnum_layer_composed × num_of_component)の値から、sampleのインターリーブ周期である4 samplesを識別することができる。
[0188]
 そして、これらのシグナリングによれば、クライアントはsampleの中身をパースすることなく、sample groupの情報を通じて、Group of Framesの境界、PC sampleの境界および各componentのsampleの境界を識別可能である。つまり、クライアントは、PCPackingInfoBoxからtexture画像とgeometry画像との分離に必要な情報を取得できる。
[0189]
 従って、クライアントは、システムレイヤのシグナリングのみを参照するという簡略化された処理で、geometry video streamおよびtexture video streamを抽出してデコード処理を実施する。その後、クライアントは、geometry画像とtexture画像とを分離し、Point Cloudを構成してレンダリングを実行することができる。
[0190]
 ここで、第1の格納方法のようにパッキングを適用しない場合、生成処理および再生処理は、それぞれ図19および図20のフローチャートを参照して上述したのと同様に行われる。このとき、図19のステップS14において、PC streamを、3次元情報メタデータを含むBoxをシグナルしたISOBMFFに格納する際、ISOBMFFのsampleは各componentのsampleとなる。また、図20のステップS22において、geometry video streamおよびtexture video streamは、2デコーダインスタンスによる個別のデコードとなる。
[0191]
 また、第2の格納方法のようにパッキングを適用する場合、生成処理および再生処理は、それぞれ図32および図33のフローチャートを参照して上述したのと同様に行われる。このとき、図32のステップS35において、packed PC streamを、3次元情報メタデータを含むBoxをシグナルしたISOBMFFに格納する際、ISOBMFFのsampleはpacked PC streamの1 pictureとなる。また、図33のステップS42において、packed PC streamは1デコーダインスタンスによるデコードとなる。
[0192]
 ここで、図42には、第3の格納方法でPC streamをISOBMFFの構造に格納したときのISOBMFF構造の一例が示されている。
[0193]
 なお、図43を参照して、SEIを用いずにシグナルする例について説明する。
[0194]
 ここまで、PC frame内の3次元情報メタデータについて、SEIを用いてシグナルする例について説明した。これに対し、例えば、ISOBMFFで規定されるsample auxiliary informationを利用して3次元情報メタデータをシグナルしてもよい。
[0195]
 即ち、図43に示すように、SampleAuxiliaryInformationOffsetBox ('saio')のoffsetフィールドでsample auxiliary infromationの位置をシグナルする。同様に、SampleAuxiliaryInformationSizeBox ('saiz')のsample_info_sizeフィールドで、各sampleに紐づくsample auxiliary informationのサイズをシグナルする。例えば、SampleAuxiliaryInformationOffsetBoxおよびSampleAuxiliaryInformationSizeBoxは、aux_info_type='pcmd'で関連づけられる。
[0196]
 SEIは、AVCやHEVCなどのような符号化コーデックで用いられる要素であるため、SEIを用いた場合には、コーデックに依存したシグナリングとなってしまう。これに対し、sample auxiliary informationを用いた場合には、符号化コーデックに依存することなく3次元情報メタデータをシグナルすることが可能となる。
[0197]
 <第4の格納方法>
 図44乃至図53を参照して、PC streamをgeometry video streamおよびtexture video streamに分け、ISOBMFFの2 tracksに格納する方法である第4の格納方法について説明する。
[0198]
 図44には、第4の格納方法におけるISOBMFFのシグナリングの一例が示されている。
[0199]
 図44に示すように、PC streamをgeometry video streamとtexture video streamとに分離し、それぞれをISOBMFFの1 trackに格納する。ここで、geometry video streamを格納するtrackをgeometry track(または主track)と称し、texture video streamを格納するtrackをtexture track(または副track)と称する。また、geometry trackには、auxiliary patch infoおよびoccupancy mapも格納される。
[0200]
 そして、geometry trackおよびtexture trackの関係性を、track referenceと、新たに定義したPCMultiStreamBoxでシグナルする。
[0201]
 なお、第4の格納方法においても、第3の格納方法と同様に、Group of Frames、およおび、PC frameの境界を示すsample groupをシグナルしてもよい。
[0202]
 また、第1の格納方法の変形例と同様に、ISOBMFFの1 trackに、1 layerが格納される構成としてもよい。ここで、例えば、各trackに格納されているlayerが、layer 0およびlayer 1のどちらであるかを示すために、PC sample内のheaderでシグナルされるlayer識別子(例えば、図8のlayer_id)を、各trackのsample entryでシグナルしてもよい。または、PC sample内のheaderそのものを、各trackのsample entryに格納してもよい。
[0203]
 ここで、第4の格納方法において、ISOBMFFに格納されるストリームはAVCやHEVC,SVC,SHEVCなどに準拠させることができ、その場合、これらのコーデックのrestricted schemeとして運用できる。例えば、sample entryは'resv'になり、SchemeTypeBoxのscheme_typeは'pcbs'になり、OriginalFormatBoxのdata_formatは用いられたコーデックによって、avc1やhev1などになる。
[0204]
 そして、これらの新たに定義された複数のBoxは、ポストデコード処理に使用されるという位置づけになり、図44に示すrinf/schi下にシグナルされる。さらに、このrinf/schiには、第1の格納方法で説明したPCHeaderBoxおよびLayerCompositionBoxも、図示するようにシグナルされる。
[0205]
 なお、occupancy mapやauxiliary patch infoなどのような3次元情報メタデータをSEIとしてシグナルせず、componentの一種とした場合は、3次元メタデータをISOBMFFの1 trackに格納してもよい。この場合、3次元メタデータを格納するtrackのsample entryにも、geometry trackやtexture trackなどと同様のBoxおよび情報がシグナルされてもよい。
[0206]
 また、例えば、texture video streamおよびgeometry video streamが各2 layerで構成され、個別trackに格納されている場合、各60pのvideo streamは30pのPC streamに相当する。これにより、クライアントは、(LayerCompositionBoxのnum_layer_composed × num_of_component)の値から、sampleのインターリーブ周期を識別することができる。
[0207]
 なお、第4の格納方法における手法は、上述した第3の格納方法のみでなく、第1の格納方法および第2の格納方法において同一のcomponentの異なるlayerのパッキングの構成に対しても、適用可能である。特に、第2の格納方法において、図23のBを参照して説明したように、同一のcomponentの画像を異なるlayerどうしで1つの画像にパッキングする手法において、geometry video streamとtexture video streamとを分割してtrackに格納することで、texture画像とgeometry画像との間に相関が少ないのに起因して、圧縮効率が悪化してしまうのを回避することができる。
[0208]
 さらに、1つのgeometry trackに対して、例えば、bitrateの異なる複数のtexture trackが紐づくような構成としてもよい。
[0209]
 図45には、PCMultiStreamBoxのシンタックスの一例が示されている。
[0210]
 例えば、isGeometryStream=1である場合にはgeometry trackであることを示し、それ以外の場合にはtexture trackであることを示す。また、geometry trackであれば、紐づくtexture trackのtrack_idをシグナルする。
[0211]
 このようなシグナリングによれば、クライアントはtrack referenceが示されていることで、任意の1 trackのTrackReferenceBoxをパースするだけで、どのtrackがgeometry trackか識別可能である。その後、クライアントは、geometry trackのPCMultiStreamBoxをパースし、全ての関連texture trackを識別することができる。つまり、クライアントは、最大でも2 trackをパースするだけで全体の構成を識別可能であり、特に複数のtexture trackが紐づくケースにおいて処理を簡易化することが可能となる。
[0212]
 ここで、PCMultiStreamBoxのシンタックスの変形例として、bitrateの異なるtexture trackをまとめてtrack groupでシグナルし、図46に示すように、texture_track_group_idでtexture track groupに紐づけてもよい。
[0213]
 この場合、track groupは、図47に示すように、PCTextureTrackGroupBoxを新たに定義し、rack_group_typeは'pctg'である。
[0214]
 なお、texture_track_idで、PCTextureTrackGroupのtrack_group_idに紐づけてもよい。
[0215]
 また、図48に示すように、PCMultiStreamBoxに、textureがgeometryと同じtrackに格納されているか否かを示すisInGeometryStreamを追加してもよい。これにより、第1乃至第3の格納方法でも、シグナル可能なBoxとすることができる。
[0216]
 さらに、PCMultiStreamBoxの代わりに、図49に示すように、track groupで紐づくgeometry trackとtexture trackをシグナルしてもよい。
[0217]
 そして、図50に示すように、track groupは、PCStreamGroupBoxを新たに定義し、rack_group_typeは'pcgp'である。このとき、track_group_idが等しいpcgpを有するtrackは、一つのPC streamを構成する。例えば、isGeometry=0であれば、そのtrackはtexture trackであることを示し、isGeometry=1であれば、そのtrackはgeometry trackであることを示す。
[0218]
 ここで、図51には、第4の格納方法でPC streamをISOBMFFの構造に格納したときのISOBMFF構造の一例が示されている。
[0219]
 <DASHのシグナリング>
 図52および図53を参照して、DASHのシグナリングについて説明する。
[0220]
 例えば、texture画像およびgeometry画像と3次元情報メタデータとは、DASHのMPDでシグナルされる。そして、図52に示すように、SupplementalProperty or EssentialProperty@schemeIdUri=="urn:mpeg:mpegI:pointcloud"をPC Component Descriptorと定義し、Representationが、texture画像およびgeometry画像のどちらであるかを示す。
[0221]
 また、図52に示すように、texture representationからgeometry representationへの紐づけをRepresentation@dependencyIdで行う。これは、presentation時に、geometry画像および3次元情報メタデータがないとtexture画像をマッピングできないという依存関係があるためである。
[0222]
 これらのシグナリングによれば、クライアントがDASH配信コンテンツを取得する際、PC Component Descriptorを参照し、PC streamを構成するgeometry video streamとtexture video streamを適切に取得することができる。また、ネットワーク帯域幅に応じて、適切なtexture video streamの切り替えも可能となる。
[0223]
 なお、geometry representationからtexture representationへの紐づけをRepresentation@associationIdで行ってもよい。
[0224]
 この場合、図53に示すように、associationTypeは"ptex"となる。geometryは単独で色のないpoint cloudのpresentationを可能とするため、associationIdを用いた紐づけが適切である。
[0225]
 その他、上述した第1乃至第4の格納方法において、layer 0以外のtexture subsampleおよびgeometry subsample、または、layer 0以外のtexture sampleおよびgeometry subsampleを、layer 0のsubsample、または、sampleのSEIとして、全て格納してもよい。
[0226]
 ここで、図54には、SubSampleInformationBoxの概要が示されている。
[0227]
 図54に示すように、sample中の、連続した特定byte領域をsub-sampleと定義している。また、sub-sampleの定義は符号化コーデックごとに決まっており、例えばHEVCなら、NAL unitがsub-sampleとなる。また、SubSampleInformationBoxでは、sub-sampleごとに情報を付加することができる。
[0228]
 また、図55には、Sample Groupの概要が示されている。
[0229]
 図55に示すように、Sample To Group Boxのgrouping_typeは、紐づけられるSample Group Description Boxのgrouping_typeを示す。1 entryにつき、sample_countとgroup_description_indexがシグナルされる。そして、group_description_indexは、紐づくGroup Entryのindexを示し、sample_countは、そのGroup Entryに属するsample数を示す。
[0230]
 <システム構成>
 図56および図57を参照して、本技術を適用したデータ生成装置およびデータ再生装置のシステム構成について説明する。
[0231]
 図56には、データ生成装置の構成例を示すブロック図が示されている。
[0232]
 図56に示すように、データ生成装置51は、制御部61およびファイル生成部62を備えており、ファイル生成部62は、データ入力部71、データ符号化・生成部72、MPD(Media Presentation Description)ファイル生成部73、記録部74、およびアップロード部75を備えて構成される。そして、データ符号化・生成部72は、前処理部76、符号化部77、およびセグメントファイル生成部78を有している。
[0233]
 例えば、前処理部76は、上述の3D2D変換部21(図17または図30)に対応し、入力されるPoint Cloudから、geometry画像、texture画像、および3次元情報メタデータを生成する処理を実行する。
[0234]
 また、符号化部77は、上述の符号化部22(図17)に対応し、geometry video streamおよびtexture video streamを符号化する処理を実行する。または、符号化部77は、上述の符号化部22A(図30)に対応し、packed PC画像を符号化する処理を実行する。
[0235]
 また、セグメントファイル生成部78は、上述のPC stream生成部23およびファイル生成部24(図17または図30)に対応し、PC streamを生成し、そのPC streamをISOBMFFに格納したPCファイルを生成する処理を実行する。
[0236]
 図57には、データ再生装置の構成例を示すブロック図が示されている。
[0237]
 図57に示すように、データ再生装置52は、制御部81および再生処理部82を備えており、再生処理部82は、MPDファイル取得部91、MPDファイル処理部92、セグメントファイル取得部93、表示制御部94、データ解析・復号部95、および表示部96を備えて構成さる。そして、データ解析・復号部95は、セグメントファイル処理部97、復号部98、および表示情報生成部99を有している。
[0238]
 例えば、セグメントファイル処理部97は、上述の抽出部31(図18)に対応し、再生時刻に対応するgeometry video streamおよびtexture video streamを抽出する処理を実行する。または、セグメントファイル処理部97は、上述の抽出部31(図31)に対応し、再生時刻に対応するpacked PC streamを抽出する処理を実行する。
[0239]
 また、復号部98は、上述の復号部32(図18)に対応し、geometry video streamおよびtexture video streamを、それぞれ個別に復号する処理を実行する。または、復号部98は、上述の復号部32A(図31)に対応し、packed PC streamを復号する処理を実行する。
[0240]
 また、表示情報生成部99は、2D3D変換部33および表示処理部34(図18または図31)に対応し、Point Cloudを構築しPoint Cloudをレンダリングして表示画像を表示させる。
[0241]
 以上のように、本技術によれば、ISOBMFF格納に適したPC stream構造(PC sample)を定義し、PC streamをISOBMFFの1 trackに格納することができる。これにより、クライアントによる再生時、システムレイヤのシグナリングのみを参照するという簡略化された処理で、PC streamのデコード処理の実行を可能とし、通常再生時のstream内ランダムアクセスの発生を抑制することができる。
[0242]
 また、第3の格納方法のように、PC sampleの定義を用いず、PC streamをISOBMFFの1 trackに格納することによっても、同様に、簡略化された処理で、PC streamのデコード処理の実行を可能とすることができる。
[0243]
 さらに、第2の格納方法のように、PC streamのgeometry video streamおよびtexture video streamを1 streamにパッキングしてISOBMFFの1 trackに格納することができる。これにより、クライアントによる再生時、1 デコーダインスタンスでのPC streamのデコード処理の実行を可能にすることができる。
[0244]
 また、第4の格納方法のように、PC streamをgeometry video streamとtexture video streamに分け、ISOBMFFの2 tracksに格納することができる。これにより、geometry video streamを格納するtrackとtexture video streamを格納するtrackの紐づけを効率的に行うことができる。従って、ネットワーク帯域に応じたPC stream画質の最適化するためのクライアントにおけるstream取得処理を容易に行うことができる。
[0245]
 <コンピュータの構成例>
 次に、上述した一連の処理(情報処理方法)は、ハードウェアにより行うこともできるし、ソフトウェアにより行うこともできる。一連の処理をソフトウェアによって行う場合には、そのソフトウェアを構成するプログラムが、汎用のコンピュータ等にインストールされる。
[0246]
 図58は、上述した一連の処理を実行するプログラムがインストールされるコンピュータの一実施の形態の構成例を示すブロック図である。
[0247]
 プログラムは、コンピュータに内蔵されている記録媒体としてのハードディスク105やROM103に予め記録しておくことができる。
[0248]
 あるいはまた、プログラムは、ドライブ109によって駆動されるリムーバブル記録媒体111に格納(記録)しておくことができる。このようなリムーバブル記録媒体111は、いわゆるパッケージソフトウェアとして提供することができる。ここで、リムーバブル記録媒体111としては、例えば、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory),MO(Magneto Optical)ディスク,DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリ等がある。
[0249]
 なお、プログラムは、上述したようなリムーバブル記録媒体111からコンピュータにインストールする他、通信網や放送網を介して、コンピュータにダウンロードし、内蔵するハードディスク105にインストールすることができる。すなわち、プログラムは、例えば、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、コンピュータに無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、コンピュータに有線で転送することができる。
[0250]
 コンピュータは、CPU(Central Processing Unit)102を内蔵しており、CPU102には、バス101を介して、入出力インタフェース110が接続されている。
[0251]
 CPU102は、入出力インタフェース110を介して、ユーザによって、入力部107が操作等されることにより指令が入力されると、それに従って、ROM(Read Only Memory)103に格納されているプログラムを実行する。あるいは、CPU102は、ハードディスク105に格納されたプログラムを、RAM(Random Access Memory)104にロードして実行する。
[0252]
 これにより、CPU102は、上述したフローチャートにしたがった処理、あるいは上述したブロック図の構成により行われる処理を行う。そして、CPU102は、その処理結果を、必要に応じて、例えば、入出力インタフェース110を介して、出力部106から出力、あるいは、通信部108から送信、さらには、ハードディスク105に記録等させる。
[0253]
 なお、入力部107は、キーボードや、マウス、マイク等で構成される。また、出力部106は、LCD(Liquid Crystal Display)やスピーカ等で構成される。
[0254]
 ここで、本明細書において、コンピュータがプログラムに従って行う処理は、必ずしもフローチャートとして記載された順序に沿って時系列に行われる必要はない。すなわち、コンピュータがプログラムに従って行う処理は、並列的あるいは個別に実行される処理(例えば、並列処理あるいはオブジェクトによる処理)も含む。
[0255]
 また、プログラムは、1のコンピュータ(プロセッサ)により処理されるものであっても良いし、複数のコンピュータによって分散処理されるものであっても良い。さらに、プログラムは、遠方のコンピュータに転送されて実行されるものであっても良い。
[0256]
 さらに、本明細書において、システムとは、複数の構成要素(装置、モジュール(部品)等)の集合を意味し、すべての構成要素が同一筐体中にあるか否かは問わない。したがって、別個の筐体に収納され、ネットワークを介して接続されている複数の装置、及び、1つの筐体の中に複数のモジュールが収納されている1つの装置は、いずれも、システムである。
[0257]
 また、例えば、1つの装置(または処理部)として説明した構成を分割し、複数の装置(または処理部)として構成するようにしてもよい。逆に、以上において複数の装置(または処理部)として説明した構成をまとめて1つの装置(または処理部)として構成されるようにしてもよい。また、各装置(または各処理部)の構成に上述した以外の構成を付加するようにしてももちろんよい。さらに、システム全体としての構成や動作が実質的に同じであれば、ある装置(または処理部)の構成の一部を他の装置(または他の処理部)の構成に含めるようにしてもよい。
[0258]
 また、例えば、本技術は、1つの機能を、ネットワークを介して複数の装置で分担、共同して処理するクラウドコンピューティングの構成をとることができる。
[0259]
 また、例えば、上述したプログラムは、任意の装置において実行することができる。その場合、その装置が、必要な機能(機能ブロック等)を有し、必要な情報を得ることができるようにすればよい。
[0260]
 また、例えば、上述のフローチャートで説明した各ステップは、1つの装置で実行する他、複数の装置で分担して実行することができる。さらに、1つのステップに複数の処理が含まれる場合には、その1つのステップに含まれる複数の処理は、1つの装置で実行する他、複数の装置で分担して実行することができる。換言するに、1つのステップに含まれる複数の処理を、複数のステップの処理として実行することもできる。逆に、複数のステップとして説明した処理を1つのステップとしてまとめて実行することもできる。
[0261]
 なお、コンピュータが実行するプログラムは、プログラムを記述するステップの処理が、本明細書で説明する順序に沿って時系列に実行されるようにしても良いし、並列に、あるいは呼び出しが行われたとき等の必要なタイミングで個別に実行されるようにしても良い。つまり、矛盾が生じない限り、各ステップの処理が上述した順序と異なる順序で実行されるようにしてもよい。さらに、このプログラムを記述するステップの処理が、他のプログラムの処理と並列に実行されるようにしても良いし、他のプログラムの処理と組み合わせて実行されるようにしても良い。
[0262]
 なお、本明細書において複数説明した本技術は、矛盾が生じない限り、それぞれ独立に単体で実施することができる。もちろん、任意の複数の本技術を併用して実施することもできる。例えば、いずれかの実施の形態において説明した本技術の一部または全部を、他の実施の形態において説明した本技術の一部または全部と組み合わせて実施することもできる。また、上述した任意の本技術の一部または全部を、上述していない他の技術と併用して実施することもできる。
[0263]
 <構成の組み合わせ例>
 なお、本技術は以下のような構成も取ることができる。
(1)
 3次元構造を表す3Dデータを2次元に変換することによって、少なくとも第1の画像および第2の画像と、前記第1の画像および前記第2の画像を3次元に構築するのに必要な3次元情報メタデータとが得られ、特定時刻に表示される前記3Dデータを構成する1単位のファイルを、前記第1の画像および前記第2の画像を前記3次元情報メタデータに基づいて3次元に再現して再生する際に必要な再生順に従って、前記第1の画像および前記第2の画像と前記3次元情報メタデータとを格納して生成するファイル生成部
 を備える情報処理装置。
(2)
 前記第1の画像および前記第2の画像を符号化して、第1の画像ストリームおよび第2の画像ストリームを生成する符号化部
 をさらに備え、
 前記ファイル生成部は、前記第1の画像ストリームおよび前記第2の画像ストリームがそれぞれ復号された後に、前記第1の画像および前記第2の画像を前記3次元情報メタデータに基づいて3次元構造として再構築されるのに必要な復号順に従って、前記第1の画像および前記第2の画像と前記3次元情報メタデータとを格納して前記ファイルを生成する
 上記(1)に記載の情報処理装置。
(3)
 前記符号化部は、前記第1の画像および前記第2の画像をnon-layered codingで符号化する
 上記(2)に記載の情報処理装置。
(4)
 前記3次元情報メタデータは、前記第1の画像および前記第2の画像を指し示す情報を含む
 上記(1)から(3)までのいずれかに記載の情報処理装置。
(5)
 前記3次元情報メタデータは、Group of Framesを示す情報を含む
 上記(1)から(4)までのいずれかに記載の情報処理装置。
(6)
 前記3次元情報メタデータは、同時刻に表示するlayer数およびcomponent数を示す情報を含む
 上記(1)から(5)までのいずれかに記載の情報処理装置。
(7)
 前記3次元情報メタデータは、前記3Dデータの前記3次元構造の構成要素ごとのコーデック情報を含む
 上記(1)から(6)までのいずれかに記載の情報処理装置。
(8)
 前記符号化部は、前記第1の画像および前記第2の画像をlayered codingで符号化する
 上記(2)に記載の情報処理装置。
(9)
 複数の画像を1つのパッキング画像にパッキングするパッキング処理部
 をさらに備え、
 前記ファイル生成部は、前記パッキング画像、前記3次元情報メタデータ、および、前記パッキングの方法を示すパッキング情報を前記ファイルに格納する
 上記(1)から(8)までのいずれかに記載の情報処理装置。
(10)
 前記パッキング処理部は、同一のlayerの前記第1の画像どうし、および、同一のlayerの前記第2の画像どうしをパッキングする
 上記(9)に記載の情報処理装置。
(11)
 前記パッキング処理部は、前記第1の画像と前記第2の画像との同一のlayerどうしをパッキングする
 上記(9)に記載の情報処理装置。
(12)
 前記パッキング処理部は、前記第1の画像および前記第2の画像の全てのlayerをパッキングする
 上記(9)に記載の情報処理装置。
(13)
 前記ファイル生成部は、前記第1の画像および前記第2の画像と前記3次元情報メタデータとを少なくとも含むストリームを、ISOBMFF(ISO Base Media File Format)の1 sampleとして格納することで前記ファイルを生成する
 上記(1)から(12)までのいずれかに記載の情報処理装置。
(14)
 前記第1の画像および前記第2の画像のいずれか一方が前記3次元情報メタデータを含み、前記第1の画像および前記第2の画像で、それぞれが前記1 sampleとして格納される
 上記(13)に記載の情報処理装置。
(15)
 前記ファイル生成部は、前記第1の画像および前記第2の画像と前記3次元情報メタデータとを少なくとも含むストリームを、異なるトラックに格納することで前記ファイルを生成する
 上記(1)から(14)までのいずれかに記載の情報処理装置。
(16)
 前記3次元情報メタデータは、前記トラックの間の関係性を示す情報を含む
 上記(15)に記載の情報処理装置。
(17)
 前記第1の画像および前記第2の画像と前記3次元情報メタデータとは、ISOBMFFでシグナルされる
 上記(1)から(16)までのいずれかに記載の情報処理装置。
(18)
 前記第1の画像および前記第2の画像と前記3次元情報メタデータとは、DASH(Dynamic Adaptive St reaming over HTTP)のMPD(Media Presentation Description)でシグナルされる
 上記(1)から(16)までのいずれかに記載の情報処理装置。
(19)
 情報処理装置が、
 3次元構造を表す3Dデータを2次元に変換することによって、少なくとも第1の画像および第2の画像と、前記第1の画像および前記第2の画像を3次元に構築するのに必要な3次元情報メタデータとが得られ、特定時刻に表示される前記3Dデータを構成する1単位のファイルを、前記第1の画像および前記第2の画像を前記3次元情報メタデータに基づいて3次元に再現して再生する際に必要な再生順に従って、前記第1の画像および前記第2の画像と前記3次元情報メタデータとを格納して生成すること
 を含む情報処理方法。
(20)
 情報処理装置のコンピュータに、
 3次元構造を表す3Dデータを2次元に変換することによって、少なくとも第1の画像および第2の画像と、前記第1の画像および前記第2の画像を3次元に構築するのに必要な3次元情報メタデータとが得られ、特定時刻に表示される前記3Dデータを構成する1単位のファイルを、前記第1の画像および前記第2の画像を前記3次元情報メタデータに基づいて3次元に再現して再生する際に必要な再生順に従って、前記第1の画像および前記第2の画像と前記3次元情報メタデータとを格納して生成すること
 を含む情報処理を実行させるためのプログラム。
[0264]
 なお、本実施の形態は、上述した実施の形態に限定されるものではなく、本開示の要旨を逸脱しない範囲において種々の変更が可能である。また、本明細書に記載された効果はあくまで例示であって限定されるものではなく、他の効果があってもよい。

符号の説明

[0265]
 11および12 情報処理装置, 21 3D2D変換部, 22 符号化部, 23 PC stream生成部, 24 ファイル生成部, 31 抽出部, 32 復号部, 33 2D3D変換部, 34 表示処理部, 51 データ生成装置, 52 データ再生装置, 61 制御部, 62 ファイル生成部, 71 データ入力部, 72 データ符号化・生成部, 73 MPDファイル生成部, 74 記録部, 75 アップロード部, 76 前処理部, 77 符号化部, 78 セグメントファイル生成部, 81 制御部, 82 再生処理部, 91 MPDファイル取得部, 92 MPDファイル処理部, 93 セグメントファイル取得部, 94 表示制御部, 95 データ解析・復号部, 96 表示部, 97 セグメントファイル処理部, 98 復号部, 99 表示情報生成部

請求の範囲

[請求項1]
 3次元構造を表す3Dデータを2次元に変換することによって、少なくとも第1の画像および第2の画像と、前記第1の画像および前記第2の画像を3次元に構築するのに必要な3次元情報メタデータとが得られ、特定時刻に表示される前記3Dデータを構成する1単位のファイルを、前記第1の画像および前記第2の画像を前記3次元情報メタデータに基づいて3次元に再現して再生する際に必要な再生順に従って、前記第1の画像および前記第2の画像と前記3次元情報メタデータとを格納して生成するファイル生成部
 を備える情報処理装置。
[請求項2]
 前記第1の画像および前記第2の画像を符号化して、第1の画像ストリームおよび第2の画像ストリームを生成する符号化部
 をさらに備え、
 前記ファイル生成部は、前記第1の画像ストリームおよび前記第2の画像ストリームがそれぞれ復号された後に、前記第1の画像および前記第2の画像を前記3次元情報メタデータに基づいて3次元構造として再構築されるのに必要な復号順に従って、前記第1の画像および前記第2の画像と前記3次元情報メタデータとを格納して前記ファイルを生成する
 請求項1に記載の情報処理装置。
[請求項3]
 前記符号化部は、前記第1の画像および前記第2の画像をnon-layered codingで符号化する
 請求項2に記載の情報処理装置。
[請求項4]
 前記3次元情報メタデータは、前記第1の画像および前記第2の画像を指し示す情報を含む
 請求項3に記載の情報処理装置。
[請求項5]
 前記3次元情報メタデータは、Group of Framesを示す情報を含む
 請求項3に記載の情報処理装置。
[請求項6]
 前記3次元情報メタデータは、同時刻に表示するlayer数およびcomponent数を示す情報を含む
 請求項3に記載の情報処理装置。
[請求項7]
 前記3次元情報メタデータは、前記3Dデータの前記3次元構造の構成要素ごとのコーデック情報を含む
 請求項3に記載の情報処理装置。
[請求項8]
 前記符号化部は、前記第1の画像および前記第2の画像をlayered codingで符号化する
 請求項2に記載の情報処理装置。
[請求項9]
 複数の画像を1つのパッキング画像にパッキングするパッキング処理部
 をさらに備え、
 前記ファイル生成部は、前記パッキング画像、前記3次元情報メタデータ、および、前記パッキングの方法を示すパッキング情報を前記ファイルに格納する
 請求項1に記載の情報処理装置。
[請求項10]
 前記パッキング処理部は、同一のlayerの前記第1の画像どうし、および、同一のlayerの前記第2の画像どうしをパッキングする
 請求項9に記載の情報処理装置。
[請求項11]
 前記パッキング処理部は、前記第1の画像と前記第2の画像との同一のlayerどうしをパッキングする
 請求項9に記載の情報処理装置。
[請求項12]
 前記パッキング処理部は、前記第1の画像および前記第2の画像の全てのlayerをパッキングする
 請求項9に記載の情報処理装置。
[請求項13]
 前記ファイル生成部は、前記第1の画像および前記第2の画像と前記3次元情報メタデータとを少なくとも含むストリームを、ISOBMFF(ISO Base Media File Format)の1 sampleとして格納することで前記ファイルを生成する
 請求項1に記載の情報処理装置。
[請求項14]
 前記第1の画像および前記第2の画像のいずれか一方が前記3次元情報メタデータを含み、前記第1の画像および前記第2の画像で、それぞれが前記1 sampleとして格納される
 請求項13に記載の情報処理装置。
[請求項15]
 前記ファイル生成部は、前記第1の画像および前記第2の画像と前記3次元情報メタデータとを少なくとも含むストリームを、異なるトラックに格納することで前記ファイルを生成する
 請求項1に記載の情報処理装置。
[請求項16]
 前記3次元情報メタデータは、前記トラックの間の関係性を示す情報を含む
 請求項15に記載の情報処理装置。
[請求項17]
 前記第1の画像および前記第2の画像と前記3次元情報メタデータとは、ISOBMFFでシグナルされる
 請求項15に記載の情報処理装置。
[請求項18]
 前記第1の画像および前記第2の画像と前記3次元情報メタデータとは、DASH(Dynamic Adaptive St reaming over HTTP)のMPD(Media Presentation Description)でシグナルされる
 請求項15に記載の情報処理装置。
[請求項19]
 情報処理装置が、
 3次元構造を表す3Dデータを2次元に変換することによって、少なくとも第1の画像および第2の画像と、前記第1の画像および前記第2の画像を3次元に構築するのに必要な3次元情報メタデータとが得られ、特定時刻に表示される前記3Dデータを構成する1単位のファイルを、前記第1の画像および前記第2の画像を前記3次元情報メタデータに基づいて3次元に再現して再生する際に必要な再生順に従って、前記第1の画像および前記第2の画像と前記3次元情報メタデータとを格納して生成すること
 を含む情報処理方法。
[請求項20]
 情報処理装置のコンピュータに、
 3次元構造を表す3Dデータを2次元に変換することによって、少なくとも第1の画像および第2の画像と、前記第1の画像および前記第2の画像を3次元に構築するのに必要な3次元情報メタデータとが得られ、特定時刻に表示される前記3Dデータを構成する1単位のファイルを、前記第1の画像および前記第2の画像を前記3次元情報メタデータに基づいて3次元に再現して再生する際に必要な再生順に従って、前記第1の画像および前記第2の画像と前記3次元情報メタデータとを格納して生成すること
 を含む情報処理を実行させるためのプログラム。

補正された請求の範囲(条約第19条)
[ 2019年11月5日 ( 05.11.2019 )  国際事務局受理 ]

[1]
[補正後] 特定時刻に表示されるPoint Cloudを構成する単位であるPC Sampleにおいて、
 PC Sampleは、前記前記Point Cloudに対応する3Dデータを2次元に変換することにより得られるGeometry画像のSub Sample、Texture画像のSub Sample、および3次元情報メタデータで構成され、
 前記3次元情報メタデータには、前記PC Sampleのheader情報であるPC headerが含まれ、
 前記PC headerには、前記PC Sample内における前記Geometry画像のSub Sample数または前記Texture画像のSub Sample数であるLayer数の情報が含まれており、
 前記Geometry画像のSub Sample、前記Texture画像のSub Sample、および前記3次元情報メタデータを格納してファイルを生成するファイル生成部
 を備える情報処理装置。
[2]
[補正後] 前記ファイルはISOBMFF(ISO Base Media File Format)であって、前記Layer数の情報は、前記ファイルのメタデータ領域であるmoov Boxに格納される
 請求項1に記載の情報処理装置。
[3]
[補正後] 前記Layer数の情報は、前記ファイルに格納される前記Geometry画像のSub Sampleおよび前記Texture画像のSub Sampleに対応するTrackのSample Entryに格納される
 請求項2に記載の情報処理装置。
[4]
[補正後] 前記PC headerには、さらに前記Sub SampleがGeometry画像のSub Sampleか、Texture画像のSub Sampleかを示すType情報、および、前記Sub Sampleが対応するLayerを示すLayer識別子が含まれる
 請求項1に記載の情報処理装置。
[5]
[補正後] 前記Type情報が0であるとき、前記Sub SampleはGeometry画像のSub Sampleであることを示し、前記Type情報が1であるとき、前記Sub SampleはTexture画像のSub Sampleであることを示す
 請求項4に記載の情報処理装置。
[6]
[補正後] 前記Type情報は、SubSampleInformationとしてシグナルされる
 請求項5に記載の情報処理装置。
[7]
[補正後] 前記Type情報は、SubSampleEntryBoxにシグナルされる
 請求項5に記載の情報処理装置。
[8]
[補正後] 特定時刻に表示されるPoint Cloudを構成する複数のSampleにおいて、
 前記複数のSampleは、前記Point Cloudに対応する3Dデータを2次元に変換することにより得られるGeometry画像のSample、Texture画像のSample、および3次元情報メタデータで構成され、
 前記3次元情報メタデータには、前記Sampleのheader情報であるPC headerが含まれ、
 前記PCheaderには、特定時刻に表示されるPoint Cloudを構成する前記Geometry画像のSample数または前記Texture画像のSample数であるLayer数の情報が含まれており、
 前記Geometry画像のSample、前記Texture画像のSample、および前記3次元情報メタデータを格納してファイルを生成するファイル生成部
 を備える情報処理装置。
[9]
[補正後] 前記ファイルはISOBMFF(ISO Base Media File Format)であって、
 前記Layer数の情報は、前記ファイルのメタデータ領域であるmoov Boxに格納される
 請求項8に記載の情報処理装置。
[10]
[補正後] 前記Layer数の情報は、前記ファイルに格納される前記Geometry画像のSampleおよび前記Texture画像のSampleに対応するTrackのSample Entryに格納される
 請求項9に記載の情報処理装置。
[11]
[補正後] 前記PC headerには、さらに前記SampleがGeometry画像のSampleか、Texture画像のSampleかを示すType情報、および、前記Sampleが対応するLayerを示すLayer識別子が含まれる
 請求項9に記載の情報処理装置。
[12]
[補正後] 前記Layer識別子は、Sample Entryでシグナルされる
 請求項11に記載の情報処理装置。
[13]
[補正後] 前記Type情報が0であるとき、前記SampleはGeometry画像のSampleであることを示し、前記Type情報が1であるとき、前記SampleはTexture画像のSampleであることを示す
 請求項11に記載の情報処理装置。
[14]
[補正後] 前記Type情報は、SubSampleInformationとしてシグナルされる
 請求項13に記載の情報処理装置。
[15]
[補正後] 前記Type情報は、SubSampleEntryBoxにシグナルされる
 請求項13に記載の情報処理装置。
[16]
[補正後] 前記3次元情報メタデータは、前記複数のSampleの間の関係性を示す情報を含む
 請求項8に記載の情報処理装置。
[17]
[補正後] 前記Geometry画像および前記Texture画像と前記3次元情報メタデータとは、ISOBMFFでシグナルされる
 請求項8に記載の情報処理装置。
[18]
[補正後] 前記Geometry画像および前記Texture画像と前記3次元情報メタデータとは、DASH(Dynamic Adaptive St reaming over HTTP)のMPD(Media Presentation Description)でシグナルされる
 請求項8に記載の情報処理装置。
[19]
[補正後] 情報処理装置が、
 特定時刻に表示されるPoint Cloudを構成する単位であるPC Sampleにおいて、
 PC Sampleは、前記前記Point Cloudに対応する3Dデータを2次元に変換することにより得られるGeometry画像のSub Sample、Texture画像のSub Sample、および3次元情報メタデータで構成され、
 前記3次元情報メタデータには、前記PC Sampleのheader情報であるPC headerが含まれ、
 前記PC headerには、前記PC Sample内における前記Geometry画像のSub Sample数または前記Texture画像のSub Sample数であるLayer数の情報が含まれており、
 前記Geometry画像のSub Sample、前記Texture画像のSub Sample、および前記3次元情報メタデータを格納してファイルを生成すること
 を含む情報処理方法。
[20]
[補正後] 情報処理装置のコンピュータに、
 特定時刻に表示されるPoint Cloudを構成する単位であるPC Sampleにおいて、
 PC Sampleは、前記前記Point Cloudに対応する3Dデータを2次元に変換することにより得られるGeometry画像のSub Sample、Texture画像のSub Sample、および3次元情報メタデータで構成され、
 前記3次元情報メタデータには、前記PC Sampleのheader情報であるPC headerが含まれ、
 前記PC headerには、前記PC Sample内における前記Geometry画像のSub Sample数または前記Texture画像のSub Sample数であるLayer数の情報が含まれており、
 前記Geometry画像のSub Sample、前記Texture画像のSub Sample、および前記3次元情報メタデータを格納してファイルを生成すること
 を含む情報処理を実行させるためのプログラム。
[21]
[追加] 情報処理装置が、
 特定時刻に表示されるPoint Cloudを構成する複数のSampleにおいて、
 前記複数のSampleは、前記Point Cloudに対応する3Dデータを2次元に変換することにより得られるGeometry画像のSample、Texture画像のSample、および3次元情報メタデータで構成され、
 前記3次元情報メタデータには、前記Sampleのheader情報であるPC headerが含まれ、
 前記PCheaderには、特定時刻に表示されるPoint Cloudを構成する前記Geometry画像のSample数または前記Texture画像のSample数であるLayer数の情報が含まれており、
 前記Geometry画像のSample、前記Texture画像のSample、および前記3次元情報メタデータを格納してファイルを生成すること
 を含む情報処理方法。
[22]
[追加] 情報処理装置のコンピュータに、
 特定時刻に表示されるPoint Cloudを構成する複数のSampleにおいて、
 前記複数のSampleは、前記Point Cloudに対応する3Dデータを2次元に変換することにより得られるGeometry画像のSample、Texture画像のSample、および3次元情報メタデータで構成され、
 前記3次元情報メタデータには、前記Sampleのheader情報であるPC headerが含まれ、
 前記PCheaderには、特定時刻に表示されるPoint Cloudを構成する前記Geometry画像のSample数または前記Texture画像のSample数であるLayer数の情報が含まれており、
 前記Geometry画像のSample、前記Texture画像のSample、および前記3次元情報メタデータを格納してファイルを生成すること
 を含む情報処理を実行させるためのプログラム。

図面

[ 図 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]

[ 図 46]

[ 図 47]

[ 図 48]

[ 図 49]

[ 図 50]

[ 図 51]

[ 図 52]

[ 図 53]

[ 図 54]

[ 図 55]

[ 図 56]

[ 図 57]

[ 図 58]